@teambit/lanes 0.0.287 → 0.0.290

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.
@@ -83,7 +83,7 @@ export declare class LaneMergeCmd implements Command {
83
83
  migration: boolean;
84
84
  remoteOp: boolean;
85
85
  constructor(lanes: LanesMain);
86
- report([name]: [string], { ours, theirs, manual, remote: remoteName, build, existing: existingOnWorkspaceOnly, noSnap, message: snapMessage, }: {
86
+ report([name]: [string], { ours, theirs, manual, remote: remoteName, build, existing: existingOnWorkspaceOnly, noSnap, message: snapMessage, keepReadme, }: {
87
87
  ours: boolean;
88
88
  theirs: boolean;
89
89
  manual: boolean;
@@ -92,6 +92,7 @@ export declare class LaneMergeCmd implements Command {
92
92
  build?: boolean;
93
93
  noSnap: boolean;
94
94
  message: string;
95
+ keepReadme?: boolean;
95
96
  }): Promise<string>;
96
97
  }
97
98
  export declare class LaneRemoveCmd implements Command {
@@ -142,4 +143,26 @@ export declare class LaneCmd implements Command {
142
143
  constructor(lanes: LanesMain, workspace: Workspace, scope: ScopeMain, docsDomain: string);
143
144
  report([name]: [string], laneOptions: LaneOptions): Promise<string>;
144
145
  }
146
+ export declare class LaneRemoveReadmeCmd implements Command {
147
+ private lanes;
148
+ name: string;
149
+ description: string;
150
+ options: CommandOptions;
151
+ loader: boolean;
152
+ private: boolean;
153
+ skipWorkspace: boolean;
154
+ constructor(lanes: LanesMain);
155
+ report([laneName]: [string]): Promise<string>;
156
+ }
157
+ export declare class LaneAddReadmeCmd implements Command {
158
+ private lanes;
159
+ name: string;
160
+ description: string;
161
+ options: CommandOptions;
162
+ loader: boolean;
163
+ private: boolean;
164
+ skipWorkspace: boolean;
165
+ constructor(lanes: LanesMain);
166
+ report([componentId, laneName]: [string, string]): Promise<string>;
167
+ }
145
168
  export {};
package/dist/lane.cmd.js CHANGED
@@ -11,7 +11,7 @@ require("core-js/modules/es.promise.js");
11
11
  Object.defineProperty(exports, "__esModule", {
12
12
  value: true
13
13
  });
14
- exports.LaneTrackCmd = exports.LaneShowCmd = exports.LaneRemoveCmd = exports.LaneMergeCmd = exports.LaneListCmd = exports.LaneImportCmd = exports.LaneCreateCmd = exports.LaneCmd = void 0;
14
+ exports.LaneTrackCmd = exports.LaneShowCmd = exports.LaneRemoveReadmeCmd = exports.LaneRemoveCmd = exports.LaneMergeCmd = exports.LaneListCmd = exports.LaneImportCmd = exports.LaneCreateCmd = exports.LaneCmd = exports.LaneAddReadmeCmd = void 0;
15
15
 
16
16
  function _defineProperty2() {
17
17
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -93,6 +93,16 @@ function _prompts() {
93
93
  return data;
94
94
  }
95
95
 
96
+ function _removeTemplate() {
97
+ const data = _interopRequireDefault(require("@teambit/legacy/dist/cli/templates/remove-template"));
98
+
99
+ _removeTemplate = function () {
100
+ return data;
101
+ };
102
+
103
+ return data;
104
+ }
105
+
96
106
  // eslint-disable-next-line max-classes-per-file
97
107
  class LaneListCmd {
98
108
  constructor(lanes, workspace, scope) {
@@ -137,10 +147,12 @@ class LaneListCmd {
137
147
  }
138
148
 
139
149
  const currentLane = this.lanes.getCurrentLane();
140
- let currentLaneStr = currentLane ? `current lane - ${_chalk().default.green.bold(currentLane)}` : '';
150
+ const laneDataOfCurrentLane = currentLane ? lanes.find(l => l.name === currentLane) : undefined;
151
+ const currentLaneReadmeComponentStr = outputReadmeComponent(laneDataOfCurrentLane === null || laneDataOfCurrentLane === void 0 ? void 0 : laneDataOfCurrentLane.readmeComponent);
152
+ let currentLaneStr = currentLane ? `current lane - ${_chalk().default.green.green(currentLane)}` : '';
153
+ currentLaneStr += currentLaneReadmeComponentStr;
141
154
 
142
155
  if (details) {
143
- const laneDataOfCurrentLane = lanes.find(l => l.name === currentLane);
144
156
  const remoteOfCurrentLane = laneDataOfCurrentLane ? laneDataOfCurrentLane.remote : null;
145
157
  const currentLaneComponents = laneDataOfCurrentLane ? outputComponents(laneDataOfCurrentLane.components) : '';
146
158
 
@@ -151,13 +163,15 @@ class LaneListCmd {
151
163
 
152
164
  const availableLanes = lanes.filter(l => l.name !== currentLane) // @ts-ignore
153
165
  .map(laneData => {
166
+ const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);
167
+
154
168
  if (details) {
155
169
  const laneTitle = `> ${_chalk().default.bold(laneData.name)}${outputRemoteLane(laneData.remote)}\n`;
156
170
  const components = outputComponents(laneData.components);
157
- return laneTitle + components;
171
+ return laneTitle + readmeComponentStr.concat('\n') + components;
158
172
  }
159
173
 
160
- return ` > ${_chalk().default.bold(laneData.name)} (${laneData.components.length} components)`;
174
+ return ` > ${_chalk().default.green(laneData.name)} (${laneData.components.length} components)${readmeComponentStr}`;
161
175
  }).join('\n');
162
176
 
163
177
  const outputFooter = () => {
@@ -310,7 +324,7 @@ class LaneMergeCmd {
310
324
  (0, _defineProperty2().default)(this, "name", 'merge <lane>');
311
325
  (0, _defineProperty2().default)(this, "description", `merge a local or a remote lane`);
312
326
  (0, _defineProperty2().default)(this, "alias", '');
313
- (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']]);
327
+ (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']]);
314
328
  (0, _defineProperty2().default)(this, "loader", true);
315
329
  (0, _defineProperty2().default)(this, "private", true);
316
330
  (0, _defineProperty2().default)(this, "migration", true);
@@ -325,12 +339,16 @@ class LaneMergeCmd {
325
339
  build,
326
340
  existing: existingOnWorkspaceOnly = false,
327
341
  noSnap = false,
328
- message: snapMessage = ''
342
+ message: snapMessage = '',
343
+ keepReadme = false
329
344
  }) {
330
345
  build = (0, _featureToggle().isFeatureEnabled)(_featureToggle().BUILD_ON_CI) ? Boolean(build) : true;
331
346
  const mergeStrategy = (0, _mergeVersion().getMergeStrategy)(ours, theirs, manual);
332
347
  if (noSnap && snapMessage) throw new (_bitError().BitError)('unable to use "noSnap" and "message" flags together');
333
- const results = await this.lanes.mergeLane(name, {
348
+ const {
349
+ mergeResults,
350
+ deleteResults
351
+ } = await this.lanes.mergeLane(name, {
334
352
  // @ts-ignore
335
353
  remoteName,
336
354
  build,
@@ -338,9 +356,12 @@ class LaneMergeCmd {
338
356
  mergeStrategy,
339
357
  existingOnWorkspaceOnly,
340
358
  noSnap,
341
- snapMessage
359
+ snapMessage,
360
+ keepReadme
342
361
  });
343
- return (0, _merging().mergeReport)(results);
362
+ const mergeResult = `${(0, _merging().mergeReport)(mergeResults)}`;
363
+ 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`;
364
+ return mergeResult + deleteResult;
344
365
  }
345
366
 
346
367
  }
@@ -436,12 +457,69 @@ https://${docsDomain}/components/lanes`;
436
457
 
437
458
  exports.LaneCmd = LaneCmd;
438
459
 
460
+ class LaneRemoveReadmeCmd {
461
+ constructor(lanes) {
462
+ this.lanes = lanes;
463
+ (0, _defineProperty2().default)(this, "name", 'remove-readme [laneName]');
464
+ (0, _defineProperty2().default)(this, "description", 'EXPERIMENTAL. remove lane readme component');
465
+ (0, _defineProperty2().default)(this, "options", []);
466
+ (0, _defineProperty2().default)(this, "loader", true);
467
+ (0, _defineProperty2().default)(this, "private", true);
468
+ (0, _defineProperty2().default)(this, "skipWorkspace", false);
469
+ }
470
+
471
+ async report([laneName]) {
472
+ const {
473
+ result,
474
+ message
475
+ } = await this.lanes.removeLaneReadme(laneName);
476
+
477
+ if (result) {
478
+ return _chalk().default.green(`the readme component has been successfully removed from the lane ${laneName || this.lanes.getCurrentLane()}`);
479
+ }
480
+
481
+ return _chalk().default.red(`${message}\n`);
482
+ }
483
+
484
+ }
485
+
486
+ exports.LaneRemoveReadmeCmd = LaneRemoveReadmeCmd;
487
+
488
+ class LaneAddReadmeCmd {
489
+ constructor(lanes) {
490
+ this.lanes = lanes;
491
+ (0, _defineProperty2().default)(this, "name", 'add-readme <componentId> [laneName]');
492
+ (0, _defineProperty2().default)(this, "description", 'EXPERIMENTAL. add lane readme component');
493
+ (0, _defineProperty2().default)(this, "options", []);
494
+ (0, _defineProperty2().default)(this, "loader", true);
495
+ (0, _defineProperty2().default)(this, "private", true);
496
+ (0, _defineProperty2().default)(this, "skipWorkspace", false);
497
+ }
498
+
499
+ async report([componentId, laneName]) {
500
+ const {
501
+ result,
502
+ message
503
+ } = await this.lanes.addLaneReadme(componentId, laneName);
504
+ if (result) return _chalk().default.green(`the component ${componentId} has been successfully added as the readme component for the lane ${laneName || this.lanes.getCurrentLane()}`);
505
+ return _chalk().default.red(`${message || ''}\nthe component ${componentId} could not be added as a readme component for the lane ${laneName || this.lanes.getCurrentLane()}`);
506
+ }
507
+
508
+ }
509
+
510
+ exports.LaneAddReadmeCmd = LaneAddReadmeCmd;
511
+
439
512
  function outputComponents(components) {
440
- const componentsTitle = `\tcomponents (${components.length})\n`;
513
+ const componentsTitle = `\t${_chalk().default.bold(`components (${components.length})`)}\n`;
441
514
  const componentsStr = components.map(c => `\t ${c.id.toString()} - ${c.head}`).join('\n');
442
515
  return componentsTitle + componentsStr;
443
516
  }
444
517
 
518
+ function outputReadmeComponent(component) {
519
+ if (!component) return '';
520
+ return `\n\t${`${_chalk().default.yellow('readme component')}\n\t ${component.id} - ${component.head || `(unsnapped)\n\t("use bit snap ${component.id.name}" to snap the readme component on the lane before exporting)`}`}\n`;
521
+ }
522
+
445
523
  function outputRemoteLane(remoteLane) {
446
524
  if (!remoteLane) return '';
447
525
  return ` - (remote lane - ${remoteLane})`;
@@ -1 +1 @@
1
- {"version":3,"sources":["lane.cmd.ts"],"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","currentLaneStr","bold","laneDataOfCurrentLane","find","remoteOfCurrentLane","currentLaneComponents","outputComponents","components","outputRemoteLane","availableLanes","laneData","laneTitle","outputFooter","footer","outputCurrentLane","outputAvailableLanes","json","LaneShowCmd","onlyLane","title","LaneCreateCmd","createLaneOptions","result","createLane","remoteScopeOrDefaultScope","remoteScope","localLane","remoteScopeOutput","LaneTrackCmd","localName","remoteName","beforeTrackData","afterTrackData","trackLane","remoteScopeChanges","remoteNameChanges","remoteLane","LaneMergeCmd","ours","theirs","manual","build","existing","existingOnWorkspaceOnly","noSnap","message","snapMessage","BUILD_ON_CI","Boolean","mergeStrategy","BitError","results","mergeLane","LaneRemoveCmd","names","force","silent","removePromptResult","shouldRemove","laneResults","removeLanes","LaneImportCmd","switchCmd","lane","skipDependencyInstallation","getAll","LaneCmd","docsDomain","description","componentsTitle","componentsStr","c","id","toString","head"],"mappings":"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","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 { removePrompt } from '@teambit/legacy/dist/prompts';\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 let currentLaneStr = currentLane ? `current lane - ${chalk.green.bold(currentLane as string)}` : '';\n if (details) {\n const laneDataOfCurrentLane = lanes.find((l) => l.name === currentLane);\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 if (details) {\n const laneTitle = `> ${chalk.bold(laneData.name)}${outputRemoteLane(laneData.remote)}\\n`;\n const components = outputComponents(laneData.components);\n return laneTitle + components;\n }\n return ` > ${chalk.bold(laneData.name)} (${laneData.components.length} components)`;\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 return title + 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 alias = '';\n options = [\n [\n '',\n 'remote-scope <string>',\n 'remote scope where this lane will be exported to (can be changed later with \"bit lane track\")',\n ],\n [\n '',\n 'remote-name <string>',\n 'lane name on the remote, default to the local name (can be changed later with \"bit lane track\")',\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 LaneTrackCmd implements Command {\n name = 'track <local-name> <remote-scope> [remote-name]';\n description = `change the remote scope or remote lane of the local 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, remoteName]: [string, string, string]): Promise<string> {\n const { beforeTrackData, afterTrackData } = await this.lanes.trackLane(localName, remoteScope, remoteName);\n const remoteScopeChanges =\n afterTrackData.remoteScope === beforeTrackData?.remoteScope\n ? `the remote-scope has not been changed`\n : `the remote-scope has been changed from ${chalk.bold(\n beforeTrackData?.remoteScope || '<n/a>'\n )} to ${chalk.bold(afterTrackData.remoteScope)}`;\n const remoteNameChanges =\n afterTrackData.remoteLane === beforeTrackData?.remoteLane\n ? `the remote-name has not been changed`\n : `the remote-name has been changed from ${chalk.bold(beforeTrackData?.remoteLane || '<n/a>')} to ${chalk.bold(\n afterTrackData.remoteLane\n )}`;\n\n return `${remoteScopeChanges}\\n${remoteNameChanges}`;\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 ] 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 }: {\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 }\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 results = await this.lanes.mergeLane(name, {\n // @ts-ignore\n remoteName,\n build,\n // @ts-ignore\n mergeStrategy,\n existingOnWorkspaceOnly,\n noSnap,\n snapMessage,\n });\n return mergeReport(results);\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 removePrompt();\n // @ts-ignore\n if (!yn(removePromptResult.shouldRemove)) {\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 shortDescription = 'show lanes details';\n description: string;\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\nfunction outputComponents(components: LaneData['components']): string {\n const componentsTitle = `\\tcomponents (${components.length})\\n`;\n const componentsStr = components.map((c) => `\\t ${c.id.toString()} - ${c.head}`).join('\\n');\n return componentsTitle + componentsStr;\n}\n\nfunction outputRemoteLane(remoteLane: string | null | undefined): string {\n if (!remoteLane) return '';\n return ` - (remote lane - ${remoteLane})`;\n}\n"]}
1
+ {"version":3,"sources":["lane.cmd.ts"],"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","LaneCreateCmd","createLaneOptions","result","createLane","remoteScopeOrDefaultScope","remoteScope","localLane","remoteScopeOutput","LaneTrackCmd","localName","remoteName","beforeTrackData","afterTrackData","trackLane","remoteScopeChanges","remoteNameChanges","remoteLane","LaneMergeCmd","ours","theirs","manual","build","existing","existingOnWorkspaceOnly","noSnap","message","snapMessage","keepReadme","BUILD_ON_CI","Boolean","mergeStrategy","BitError","mergeResults","deleteResults","mergeLane","mergeResult","deleteResult","localResult","remoteResult","item","readmeResult","yellow","LaneRemoveCmd","names","force","silent","removePromptResult","shouldRemove","laneResults","removeLanes","LaneImportCmd","switchCmd","lane","skipDependencyInstallation","getAll","LaneCmd","docsDomain","description","LaneRemoveReadmeCmd","laneName","removeLaneReadme","red","LaneAddReadmeCmd","componentId","addLaneReadme","componentsTitle","componentsStr","c","id","toString","head","component"],"mappings":"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","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 { removePrompt } 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 return title + 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 alias = '';\n options = [\n [\n '',\n 'remote-scope <string>',\n 'remote scope where this lane will be exported to (can be changed later with \"bit lane track\")',\n ],\n [\n '',\n 'remote-name <string>',\n 'lane name on the remote, default to the local name (can be changed later with \"bit lane track\")',\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 LaneTrackCmd implements Command {\n name = 'track <local-name> <remote-scope> [remote-name]';\n description = `change the remote scope or remote lane of the local 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, remoteName]: [string, string, string]): Promise<string> {\n const { beforeTrackData, afterTrackData } = await this.lanes.trackLane(localName, remoteScope, remoteName);\n const remoteScopeChanges =\n afterTrackData.remoteScope === beforeTrackData?.remoteScope\n ? `the remote-scope has not been changed`\n : `the remote-scope has been changed from ${chalk.bold(\n beforeTrackData?.remoteScope || '<n/a>'\n )} to ${chalk.bold(afterTrackData.remoteScope)}`;\n const remoteNameChanges =\n afterTrackData.remoteLane === beforeTrackData?.remoteLane\n ? `the remote-name has not been changed`\n : `the remote-name has been changed from ${chalk.bold(beforeTrackData?.remoteLane || '<n/a>')} to ${chalk.bold(\n afterTrackData.remoteLane\n )}`;\n\n return `${remoteScopeChanges}\\n${remoteNameChanges}`;\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 removePrompt();\n // @ts-ignore\n if (!yn(removePromptResult.shouldRemove)) {\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 shortDescription = 'show lanes details';\n description: string;\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"]}
@@ -81,6 +81,7 @@ function lanesSchema(lanesMainRuntime) {
81
81
  isMerged: Boolean
82
82
  remote: String
83
83
  components(offset: Int, limit: Int): [Component!]!
84
+ readmeComponent: Component
84
85
  }
85
86
 
86
87
  # Lane API
@@ -148,6 +149,10 @@ function lanesSchema(lanesMainRuntime) {
148
149
  components: async lane => {
149
150
  const laneComponents = await lanesMainRuntime.getLaneComponentModels(lane.name);
150
151
  return laneComponents;
152
+ },
153
+ readmeComponent: async lane => {
154
+ const laneReadmeComponent = await lanesMainRuntime.getLaneReadmeComponent(lane.name);
155
+ return laneReadmeComponent;
151
156
  }
152
157
  },
153
158
  Query: {
@@ -1 +1 @@
1
- {"version":3,"sources":["lanes.graphql.ts"],"names":["lanesSchema","lanesMainRuntime","typeDefs","resolvers","Lanes","id","list","lanesMain","ids","limit","offset","lanes","length","getLanes","Promise","all","map","name","current","currentLaneId","getCurrentLane","undefined","currentLane","diff","from","to","options","getDiffResults","getDiff","compsWithDiff","item","toString","Lane","lane","isMerged","remote","components","laneComponents","getLaneComponentModels","Query"],"mappings":"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","sourcesContent":["import { Schema } from '@teambit/graphql';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport gql from 'graphql-tag';\nimport { flatten, slice } from 'lodash';\n\nimport { LanesMain } from './lanes.main.runtime';\n\nexport function lanesSchema(lanesMainRuntime: LanesMain): Schema {\n return {\n typeDefs: gql`\n type FileDiff {\n filePath: String!\n diffOutput: String\n }\n\n type FieldsDiff {\n fieldName: String!\n diffOutput: String\n }\n\n type DiffResults {\n id: String\n hasDiff: Boolean\n filesDiff: [FileDiff]\n fieldsDiff: [FieldsDiff]\n }\n\n type GetDiffResult {\n newComps: [String]\n compsWithNoChanges: [String]\n toLaneName: String\n compsWithDiff: [DiffResults]\n }\n\n input DiffOptions {\n color: Boolean\n }\n\n type Lane {\n id: String!\n isMerged: Boolean\n remote: String\n components(offset: Int, limit: Int): [Component!]!\n }\n\n # Lane API\n type Lanes {\n id: String!\n list(ids: [String!], offset: Int, limit: Int): [Lane!]!\n diff(from: String!, to: String!, options: DiffOptions): GetDiffResult\n current: Lane\n }\n\n type Query {\n lanes: Lanes\n }\n `,\n resolvers: {\n Lanes: {\n // need this for Apollo InMemory Caching\n id: () => 'lanes',\n list: async (\n lanesMain: LanesMain,\n { ids, limit, offset }: { ids?: string[]; offset?: number; limit?: number }\n ) => {\n let lanes: LaneData[] = [];\n\n if (!ids || ids.length === 0) {\n lanes = await lanesMain.getLanes({});\n } else {\n lanes = flatten(await Promise.all(ids.map((id) => lanesMain.getLanes({ name: id }))));\n }\n\n if (limit || offset) {\n lanes = slice(lanes, offset, limit && limit + (offset || 0));\n }\n\n return lanes;\n },\n current: async (lanesMain: LanesMain) => {\n const currentLaneId = lanesMain.getCurrentLane();\n if (!currentLaneId) return undefined;\n const [currentLane] = await lanesMain.getLanes({ name: currentLaneId });\n return currentLane;\n },\n diff: async (\n lanesMain: LanesMain,\n { from, to, options }: { to: string; from: string; options: { color?: boolean } }\n ) => {\n const getDiffResults = await lanesMain.getDiff([from, to], options);\n return {\n ...getDiffResults,\n compsWithDiff: getDiffResults.compsWithDiff.map((item) => ({ ...item, id: item.id.toString() })),\n };\n },\n },\n Lane: {\n id: (lane: LaneData) => lane.name,\n isMerged: (lane: LaneData) => lane.isMerged,\n remote: (lane: LaneData) => lane.remote,\n components: async (lane: LaneData) => {\n const laneComponents = await lanesMainRuntime.getLaneComponentModels(lane.name);\n return laneComponents;\n },\n },\n Query: {\n lanes: () => lanesMainRuntime,\n },\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["lanes.graphql.ts"],"names":["lanesSchema","lanesMainRuntime","typeDefs","resolvers","Lanes","id","list","lanesMain","ids","limit","offset","lanes","length","getLanes","Promise","all","map","name","current","currentLaneId","getCurrentLane","undefined","currentLane","diff","from","to","options","getDiffResults","getDiff","compsWithDiff","item","toString","Lane","lane","isMerged","remote","components","laneComponents","getLaneComponentModels","readmeComponent","laneReadmeComponent","getLaneReadmeComponent","Query"],"mappings":"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","sourcesContent":["import { Schema } from '@teambit/graphql';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport gql from 'graphql-tag';\nimport { flatten, slice } from 'lodash';\n\nimport { LanesMain } from './lanes.main.runtime';\n\nexport function lanesSchema(lanesMainRuntime: LanesMain): Schema {\n return {\n typeDefs: gql`\n type FileDiff {\n filePath: String!\n diffOutput: String\n }\n\n type FieldsDiff {\n fieldName: String!\n diffOutput: String\n }\n\n type DiffResults {\n id: String\n hasDiff: Boolean\n filesDiff: [FileDiff]\n fieldsDiff: [FieldsDiff]\n }\n\n type GetDiffResult {\n newComps: [String]\n compsWithNoChanges: [String]\n toLaneName: String\n compsWithDiff: [DiffResults]\n }\n\n input DiffOptions {\n color: Boolean\n }\n\n type Lane {\n id: String!\n isMerged: Boolean\n remote: String\n components(offset: Int, limit: Int): [Component!]!\n readmeComponent: Component\n }\n\n # Lane API\n type Lanes {\n id: String!\n list(ids: [String!], offset: Int, limit: Int): [Lane!]!\n diff(from: String!, to: String!, options: DiffOptions): GetDiffResult\n current: Lane\n }\n\n type Query {\n lanes: Lanes\n }\n `,\n resolvers: {\n Lanes: {\n // need this for Apollo InMemory Caching\n id: () => 'lanes',\n list: async (\n lanesMain: LanesMain,\n { ids, limit, offset }: { ids?: string[]; offset?: number; limit?: number }\n ) => {\n let lanes: LaneData[] = [];\n\n if (!ids || ids.length === 0) {\n lanes = await lanesMain.getLanes({});\n } else {\n lanes = flatten(await Promise.all(ids.map((id) => lanesMain.getLanes({ name: id }))));\n }\n\n if (limit || offset) {\n lanes = slice(lanes, offset, limit && limit + (offset || 0));\n }\n\n return lanes;\n },\n current: async (lanesMain: LanesMain) => {\n const currentLaneId = lanesMain.getCurrentLane();\n if (!currentLaneId) return undefined;\n const [currentLane] = await lanesMain.getLanes({ name: currentLaneId });\n return currentLane;\n },\n diff: async (\n lanesMain: LanesMain,\n { from, to, options }: { to: string; from: string; options: { color?: boolean } }\n ) => {\n const getDiffResults = await lanesMain.getDiff([from, to], options);\n return {\n ...getDiffResults,\n compsWithDiff: getDiffResults.compsWithDiff.map((item) => ({ ...item, id: item.id.toString() })),\n };\n },\n },\n Lane: {\n id: (lane: LaneData) => lane.name,\n isMerged: (lane: LaneData) => lane.isMerged,\n remote: (lane: LaneData) => lane.remote,\n components: async (lane: LaneData) => {\n const laneComponents = await lanesMainRuntime.getLaneComponentModels(lane.name);\n return laneComponents;\n },\n readmeComponent: async (lane: LaneData) => {\n const laneReadmeComponent = await lanesMainRuntime.getLaneReadmeComponent(lane.name);\n return laneReadmeComponent;\n },\n },\n Query: {\n lanes: () => lanesMainRuntime,\n },\n },\n };\n}\n"]}
@@ -7,7 +7,7 @@ import { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/compone
7
7
  import { MergeStrategy, ApplyVersionResults } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
8
8
  import { TrackLane } from '@teambit/legacy/dist/scope/scope-json';
9
9
  import type { CommunityMain } from '@teambit/community';
10
- import { Component } from '@teambit/component';
10
+ import { Component, ComponentMain } from '@teambit/component';
11
11
  import { MergingMain } from '@teambit/merging';
12
12
  export declare type LaneResults = {
13
13
  lanes: LaneData[];
@@ -20,6 +20,7 @@ export declare type MergeLaneOptions = {
20
20
  snapMessage: string;
21
21
  existingOnWorkspaceOnly: boolean;
22
22
  build: boolean;
23
+ keepReadme: boolean;
23
24
  };
24
25
  export declare type CreateLaneOptions = {
25
26
  remoteScope?: string;
@@ -29,7 +30,8 @@ export declare class LanesMain {
29
30
  private workspace;
30
31
  private scope;
31
32
  private merging;
32
- constructor(workspace: Workspace | undefined, scope: ScopeMain, merging: MergingMain);
33
+ private componentAspect;
34
+ constructor(workspace: Workspace | undefined, scope: ScopeMain, merging: MergingMain, componentAspect: ComponentMain);
33
35
  getLanes({ name, remote, merged, showDefaultLane, notMerged, }: {
34
36
  name?: string;
35
37
  remote?: string;
@@ -47,7 +49,10 @@ export declare class LanesMain {
47
49
  remote: boolean;
48
50
  force: boolean;
49
51
  }): Promise<string[]>;
50
- mergeLane(laneName: string, options: MergeLaneOptions): Promise<ApplyVersionResults>;
52
+ mergeLane(laneName: string, options: MergeLaneOptions): Promise<{
53
+ mergeResults: ApplyVersionResults;
54
+ deleteResults: any;
55
+ }>;
51
56
  /**
52
57
  * the values array may include zero to two values and will be processed as following:
53
58
  * [] => diff between the current lane and default lane. (only inside workspace).
@@ -61,17 +66,27 @@ export declare class LanesMain {
61
66
  toLaneName: string;
62
67
  }>;
63
68
  getLaneComponentModels(name: string): Promise<Component[]>;
69
+ getLaneReadmeComponent(name: string): Promise<Component | undefined>;
70
+ removeLaneReadme(laneName?: string): Promise<{
71
+ result: boolean;
72
+ message?: string;
73
+ }>;
74
+ addLaneReadme(readmeComponentIdStr: string, laneName?: string): Promise<{
75
+ result: boolean;
76
+ message?: string;
77
+ }>;
64
78
  private getLaneDataOfDefaultLane;
65
79
  static slots: never[];
66
80
  static dependencies: import("@teambit/harmony").Aspect[];
67
81
  static runtime: import("@teambit/harmony").RuntimeDefinition;
68
- static provider([cli, scope, workspace, graphql, community, merging]: [
82
+ static provider([cli, scope, workspace, graphql, community, merging, component]: [
69
83
  CLIMain,
70
84
  ScopeMain,
71
85
  Workspace,
72
86
  GraphqlMain,
73
87
  CommunityMain,
74
- MergingMain
88
+ MergingMain,
89
+ ComponentMain
75
90
  ]): Promise<LanesMain>;
76
91
  }
77
92
  export default LanesMain;
@@ -131,6 +131,16 @@ function _community() {
131
131
  return data;
132
132
  }
133
133
 
134
+ function _component() {
135
+ const data = _interopRequireDefault(require("@teambit/component"));
136
+
137
+ _component = function () {
138
+ return data;
139
+ };
140
+
141
+ return data;
142
+ }
143
+
134
144
  function _removeLanes() {
135
145
  const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/lanes/remove-lanes"));
136
146
 
@@ -206,10 +216,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
206
216
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
207
217
 
208
218
  class LanesMain {
209
- constructor(workspace, scope, merging) {
219
+ constructor(workspace, scope, merging, componentAspect) {
210
220
  this.workspace = workspace;
211
221
  this.scope = scope;
212
222
  this.merging = merging;
223
+ this.componentAspect = componentAspect;
213
224
  }
214
225
 
215
226
  async getLanes({
@@ -314,14 +325,14 @@ class LanesMain {
314
325
  throw new (_bitError().BitError)(`unable to merge a lane outside of Bit workspace`);
315
326
  }
316
327
 
317
- const mergeResults = await (0, _mergeLanes().mergeLanes)(_objectSpread({
328
+ const results = await (0, _mergeLanes().mergeLanes)(_objectSpread({
318
329
  merging: this.merging,
319
330
  consumer: this.workspace.consumer,
320
331
  laneName
321
332
  }, options));
322
333
  await this.workspace.consumer.onDestroy();
323
334
  this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);
324
- return mergeResults;
335
+ return results;
325
336
  }
326
337
  /**
327
338
  * the values array may include zero to two values and will be processed as following:
@@ -342,7 +353,7 @@ class LanesMain {
342
353
  name
343
354
  });
344
355
  const laneComponents = lane.components;
345
- const host = this.workspace || this.scope;
356
+ const host = this.componentAspect.getHost();
346
357
  const laneComponentIds = await Promise.all(laneComponents.map(laneComponent => {
347
358
  const legacyIdWithVersion = laneComponent.id.changeVersion(laneComponent.head);
348
359
  return host.resolveComponentId(legacyIdWithVersion);
@@ -351,6 +362,108 @@ class LanesMain {
351
362
  return components;
352
363
  }
353
364
 
365
+ async getLaneReadmeComponent(name) {
366
+ if (!name) return undefined;
367
+ const [lane] = await this.getLanes({
368
+ name
369
+ });
370
+ const laneReadmeComponent = lane.readmeComponent;
371
+ if (!laneReadmeComponent) return undefined;
372
+ const host = this.componentAspect.getHost();
373
+ const laneReadmeComponentId = await host.resolveComponentId(laneReadmeComponent.id.changeVersion(laneReadmeComponent.head));
374
+ const readmeComponent = await host.get(laneReadmeComponentId);
375
+ return readmeComponent;
376
+ }
377
+
378
+ async removeLaneReadme(laneName) {
379
+ if (!this.workspace) {
380
+ throw new (_bitError().BitError)('unable to remove the lane readme component outside of Bit workspace');
381
+ }
382
+
383
+ const currentLaneName = this.getCurrentLane();
384
+
385
+ if (!laneName && !currentLaneName) {
386
+ return {
387
+ result: false,
388
+ message: 'unable to remove the lane readme component. Either pass a laneName or switch to a lane'
389
+ };
390
+ }
391
+
392
+ const laneId = laneName && _laneId().default.from(laneName) || _laneId().default.from(currentLaneName);
393
+
394
+ const scope = this.workspace.scope.legacyScope;
395
+ const lane = await scope.loadLane(laneId);
396
+
397
+ if (!(lane !== null && lane !== void 0 && lane.readmeComponent)) {
398
+ throw new (_bitError().BitError)(`there is no readme component added to the lane ${laneName || currentLaneName}`);
399
+ }
400
+
401
+ const readmeComponentId = await this.workspace.resolveComponentId(lane.readmeComponent.id);
402
+ const existingLaneConfig = (await this.workspace.getSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id)) || {};
403
+
404
+ const remoteLaneIdStr = (lane.remoteLaneId || _laneId().default.from(laneId.name, lane.scope)).toString();
405
+
406
+ if (existingLaneConfig.readme) {
407
+ delete existingLaneConfig.readme[remoteLaneIdStr];
408
+ await this.workspace.removeSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, false);
409
+ await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, existingLaneConfig);
410
+ }
411
+
412
+ lane.setReadmeComponent(undefined);
413
+ await scope.lanes.saveLane(lane);
414
+ await this.workspace.bitMap.write();
415
+ return {
416
+ result: true
417
+ };
418
+ }
419
+
420
+ async addLaneReadme(readmeComponentIdStr, laneName) {
421
+ if (!this.workspace) {
422
+ throw new (_bitError().BitError)(`unable to track a lane readme component outside of Bit workspace`);
423
+ }
424
+
425
+ const readmeComponentId = await this.workspace.resolveComponentId(readmeComponentIdStr);
426
+ const currentLaneName = this.getCurrentLane();
427
+ const readmeComponentBitId = readmeComponentId._legacy;
428
+
429
+ const laneId = laneName && _laneId().default.from(laneName) || _laneId().default.from(currentLaneName);
430
+
431
+ const scope = this.workspace.scope.legacyScope;
432
+ const lane = await scope.loadLane(laneId);
433
+
434
+ if (!lane) {
435
+ return {
436
+ result: false,
437
+ message: `cannot find lane ${laneName}`
438
+ };
439
+ }
440
+
441
+ lane.setReadmeComponent(readmeComponentBitId);
442
+ await scope.lanes.saveLane(lane);
443
+ const existingLaneConfig = (await this.workspace.getSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id)) || {};
444
+
445
+ const remoteLaneIdStr = (lane.remoteLaneId || _laneId().default.from(laneId.name, lane.scope)).toString();
446
+
447
+ if (existingLaneConfig.readme) {
448
+ await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, _objectSpread(_objectSpread({}, existingLaneConfig), {}, {
449
+ readme: _objectSpread(_objectSpread({}, existingLaneConfig.readme), {}, {
450
+ [remoteLaneIdStr]: true
451
+ })
452
+ }));
453
+ } else {
454
+ await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, _objectSpread(_objectSpread({}, existingLaneConfig), {}, {
455
+ readme: {
456
+ [remoteLaneIdStr]: true
457
+ }
458
+ }));
459
+ }
460
+
461
+ await this.workspace.bitMap.write();
462
+ return {
463
+ result: true
464
+ };
465
+ }
466
+
354
467
  async getLaneDataOfDefaultLane() {
355
468
  var _this$workspace4;
356
469
 
@@ -375,14 +488,14 @@ class LanesMain {
375
488
  };
376
489
  }
377
490
 
378
- static async provider([cli, scope, workspace, graphql, community, merging]) {
379
- const lanesMain = new LanesMain(workspace, scope, merging);
491
+ static async provider([cli, scope, workspace, graphql, community, merging, component]) {
492
+ const lanesMain = new LanesMain(workspace, scope, merging, component);
380
493
  const isLegacy = workspace && workspace.consumer.isLegacy;
381
494
  const switchCmd = new (_switch().SwitchCmd)();
382
495
 
383
496
  if (!isLegacy) {
384
497
  const laneCmd = new (_lane().LaneCmd)(lanesMain, workspace, scope, community.getDocsDomain());
385
- laneCmd.commands = [new (_lane().LaneListCmd)(lanesMain, workspace, scope), switchCmd, new (_lane().LaneShowCmd)(lanesMain, workspace, scope), new (_lane().LaneCreateCmd)(lanesMain), new (_lane().LaneMergeCmd)(lanesMain), new (_lane().LaneRemoveCmd)(lanesMain), new (_lane().LaneTrackCmd)(lanesMain), new (_lanesModules().LaneDiffCmd)(workspace, scope), new (_lane().LaneImportCmd)(switchCmd)];
498
+ laneCmd.commands = [new (_lane().LaneListCmd)(lanesMain, workspace, scope), switchCmd, new (_lane().LaneShowCmd)(lanesMain, workspace, scope), new (_lane().LaneCreateCmd)(lanesMain), new (_lane().LaneMergeCmd)(lanesMain), new (_lane().LaneRemoveCmd)(lanesMain), new (_lane().LaneTrackCmd)(lanesMain), new (_lanesModules().LaneDiffCmd)(workspace, scope), new (_lane().LaneAddReadmeCmd)(lanesMain), new (_lane().LaneRemoveReadmeCmd)(lanesMain), new (_lane().LaneImportCmd)(switchCmd)];
386
499
  cli.register(laneCmd, switchCmd);
387
500
  graphql.register((0, _lanes2().lanesSchema)(lanesMain));
388
501
  }
@@ -394,7 +507,7 @@ class LanesMain {
394
507
 
395
508
  exports.LanesMain = LanesMain;
396
509
  (0, _defineProperty2().default)(LanesMain, "slots", []);
397
- (0, _defineProperty2().default)(LanesMain, "dependencies", [_cli().CLIAspect, _scope().ScopeAspect, _workspace().WorkspaceAspect, _graphql().GraphqlAspect, _community().CommunityAspect, _merging().MergingAspect]);
510
+ (0, _defineProperty2().default)(LanesMain, "dependencies", [_cli().CLIAspect, _scope().ScopeAspect, _workspace().WorkspaceAspect, _graphql().GraphqlAspect, _community().CommunityAspect, _merging().MergingAspect, _component().default]);
398
511
  (0, _defineProperty2().default)(LanesMain, "runtime", _cli().MainRuntime);
399
512
 
400
513
  _lanes().LanesAspect.addRuntime(LanesMain);
@@ -1 +1 @@
1
- {"version":3,"sources":["lanes.main.runtime.ts"],"names":["LanesMain","constructor","workspace","scope","merging","getLanes","name","remote","merged","showDefaultLane","notMerged","showMergeData","Boolean","consumer","remoteObj","lanes","listLanes","DEFAULT_LANE","defaultLane","getLaneDataOfDefaultLane","legacyScope","getLanesData","push","getCurrentLane","getCurrentLaneName","createLane","remoteScope","remoteName","BitError","setCurrentLane","trackLaneData","localLane","remoteLane","defaultScope","trackLane","onDestroy","localName","lane","loadLane","LaneId","from","beforeTrackData","getRemoteTrackedDataByLocalLane","beforeTrackDataCloned","undefined","afterTrackData","removeLanes","laneNames","force","results","laneResults","mergeLane","laneName","options","mergeResults","bitMap","syncWithLanes","workspaceLane","getDiff","values","diffOptions","laneDiffGenerator","LaneDiffGenerator","generate","getLaneComponentModels","laneComponents","components","host","laneComponentIds","Promise","all","map","laneComponent","legacyIdWithVersion","id","changeVersion","head","resolveComponentId","getMany","bitIds","scopeComponents","list","filter","component","_legacy","getAuthoredAndImportedBitIdsOfDefaultLane","bitId","version","isMerged","provider","cli","graphql","community","lanesMain","isLegacy","switchCmd","SwitchCmd","laneCmd","LaneCmd","getDocsDomain","commands","LaneListCmd","LaneShowCmd","LaneCreateCmd","LaneMergeCmd","LaneRemoveCmd","LaneTrackCmd","LaneDiffCmd","LaneImportCmd","register","CLIAspect","ScopeAspect","WorkspaceAspect","GraphqlAspect","CommunityAspect","MergingAspect","MainRuntime","LanesAspect","addRuntime"],"mappings":"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","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 from '@teambit/legacy/dist/lane-id/lane-id';\nimport { BitError } from '@teambit/bit-error';\nimport createNewLane from '@teambit/legacy/dist/consumer/lanes/create-lane';\nimport { DEFAULT_LANE } from '@teambit/legacy/dist/constants';\nimport { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport { MergeStrategy, ApplyVersionResults } 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 { Component } from '@teambit/component';\nimport removeLanes from '@teambit/legacy/dist/consumer/lanes/remove-lanes';\nimport { BitId } from '@teambit/legacy-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 LaneTrackCmd,\n} from './lane.cmd';\nimport { lanesSchema } from './lanes.graphql';\nimport { SwitchCmd } from './switch.cmd';\nimport { mergeLanes } from './merge-lanes';\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};\n\nexport type CreateLaneOptions = {\n remoteScope?: string; // default to the defaultScope in workspace.jsonc\n remoteName?: string; // default to the local lane\n};\n\nexport class LanesMain {\n constructor(private workspace: Workspace | undefined, private scope: ScopeMain, private merging: MergingMain) {}\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 async createLane(name: string, { remoteScope, remoteName }: CreateLaneOptions = {}): Promise<TrackLane> {\n if (!this.workspace) {\n throw new BitError(`unable to create a lane outside of Bit workspace`);\n }\n await createNewLane(this.workspace.consumer, name);\n this.scope.legacyScope.lanes.setCurrentLane(name);\n const trackLaneData = {\n localLane: name,\n remoteLane: remoteName || name,\n remoteScope: remoteScope || this.workspace.defaultScope,\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 lane = await this.scope.legacyScope.lanes.loadLane(LaneId.from(localName));\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 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(laneName: string, options: MergeLaneOptions): Promise<ApplyVersionResults> {\n if (!this.workspace) {\n throw new BitError(`unable to merge a lane outside of Bit workspace`);\n }\n const mergeResults = await mergeLanes({\n merging: this.merging,\n consumer: this.workspace.consumer,\n laneName,\n ...options,\n });\n await this.workspace.consumer.onDestroy();\n this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);\n return mergeResults;\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(name: string): Promise<Component[]> {\n if (!name) return [];\n\n const [lane] = await this.getLanes({ name });\n const laneComponents = lane.components;\n const host = this.workspace || this.scope;\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 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 = [CLIAspect, ScopeAspect, WorkspaceAspect, GraphqlAspect, CommunityAspect, MergingAspect];\n static runtime = MainRuntime;\n static async provider([cli, scope, workspace, graphql, community, merging]: [\n CLIMain,\n ScopeMain,\n Workspace,\n GraphqlMain,\n CommunityMain,\n MergingMain\n ]) {\n const lanesMain = new LanesMain(workspace, scope, merging);\n const isLegacy = workspace && workspace.consumer.isLegacy;\n const switchCmd = new SwitchCmd();\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 LaneTrackCmd(lanesMain),\n new LaneDiffCmd(workspace, scope),\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"]}
1
+ {"version":3,"sources":["lanes.main.runtime.ts"],"names":["LanesMain","constructor","workspace","scope","merging","componentAspect","getLanes","name","remote","merged","showDefaultLane","notMerged","showMergeData","Boolean","consumer","remoteObj","lanes","listLanes","DEFAULT_LANE","defaultLane","getLaneDataOfDefaultLane","legacyScope","getLanesData","push","getCurrentLane","getCurrentLaneName","createLane","remoteScope","remoteName","BitError","setCurrentLane","trackLaneData","localLane","remoteLane","defaultScope","trackLane","onDestroy","localName","lane","loadLane","LaneId","from","beforeTrackData","getRemoteTrackedDataByLocalLane","beforeTrackDataCloned","undefined","afterTrackData","removeLanes","laneNames","force","results","laneResults","mergeLane","laneName","options","bitMap","syncWithLanes","workspaceLane","getDiff","values","diffOptions","laneDiffGenerator","LaneDiffGenerator","generate","getLaneComponentModels","laneComponents","components","host","getHost","laneComponentIds","Promise","all","map","laneComponent","legacyIdWithVersion","id","changeVersion","head","resolveComponentId","getMany","getLaneReadmeComponent","laneReadmeComponent","readmeComponent","laneReadmeComponentId","get","removeLaneReadme","currentLaneName","result","message","laneId","readmeComponentId","existingLaneConfig","getSpecificComponentConfig","LanesAspect","remoteLaneIdStr","remoteLaneId","toString","readme","removeSpecificComponentConfig","addSpecificComponentConfig","setReadmeComponent","saveLane","write","addLaneReadme","readmeComponentIdStr","readmeComponentBitId","_legacy","bitIds","scopeComponents","list","filter","component","getAuthoredAndImportedBitIdsOfDefaultLane","bitId","version","isMerged","provider","cli","graphql","community","lanesMain","isLegacy","switchCmd","SwitchCmd","laneCmd","LaneCmd","getDocsDomain","commands","LaneListCmd","LaneShowCmd","LaneCreateCmd","LaneMergeCmd","LaneRemoveCmd","LaneTrackCmd","LaneDiffCmd","LaneAddReadmeCmd","LaneRemoveReadmeCmd","LaneImportCmd","register","CLIAspect","ScopeAspect","WorkspaceAspect","GraphqlAspect","CommunityAspect","MergingAspect","ComponentAspect","MainRuntime","addRuntime"],"mappings":"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","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 from '@teambit/legacy/dist/lane-id/lane-id';\nimport { BitError } from '@teambit/bit-error';\nimport createNewLane from '@teambit/legacy/dist/consumer/lanes/create-lane';\nimport { DEFAULT_LANE } from '@teambit/legacy/dist/constants';\nimport { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport { MergeStrategy, ApplyVersionResults } 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 { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport { BitId } from '@teambit/legacy-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 LaneTrackCmd,\n LaneAddReadmeCmd,\n LaneRemoveReadmeCmd,\n} from './lane.cmd';\nimport { lanesSchema } from './lanes.graphql';\nimport { SwitchCmd } from './switch.cmd';\nimport { mergeLanes } from './merge-lanes';\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 remoteName?: string; // default to the local lane\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 ) {}\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 async createLane(name: string, { remoteScope, remoteName }: CreateLaneOptions = {}): Promise<TrackLane> {\n if (!this.workspace) {\n throw new BitError(`unable to create a lane outside of Bit workspace`);\n }\n await createNewLane(this.workspace.consumer, name);\n this.scope.legacyScope.lanes.setCurrentLane(name);\n const trackLaneData = {\n localLane: name,\n remoteLane: remoteName || name,\n remoteScope: remoteScope || this.workspace.defaultScope,\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 lane = await this.scope.legacyScope.lanes.loadLane(LaneId.from(localName));\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 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 * 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(name: string): Promise<Component[]> {\n if (!name) return [];\n\n const [lane] = await this.getLanes({ name });\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(name: string): Promise<Component | undefined> {\n if (!name) return undefined;\n\n const [lane] = await this.getLanes({ name });\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 laneId: LaneId = (laneName && LaneId.from(laneName)) || LaneId.from(currentLaneName as string);\n const scope: LegacyScope = this.workspace.scope.legacyScope;\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.remoteLaneId || LaneId.from(laneId.name, lane.scope)).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 currentLaneName = this.getCurrentLane();\n\n const readmeComponentBitId = readmeComponentId._legacy;\n\n const laneId: LaneId = (laneName && LaneId.from(laneName)) || LaneId.from(currentLaneName as string);\n const scope: LegacyScope = this.workspace.scope.legacyScope;\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.remoteLaneId || LaneId.from(laneId.name, lane.scope)).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 ];\n static runtime = MainRuntime;\n static async provider([cli, scope, workspace, graphql, community, merging, component]: [\n CLIMain,\n ScopeMain,\n Workspace,\n GraphqlMain,\n CommunityMain,\n MergingMain,\n ComponentMain\n ]) {\n const lanesMain = new LanesMain(workspace, scope, merging, component);\n const isLegacy = workspace && workspace.consumer.isLegacy;\n const switchCmd = new SwitchCmd();\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 LaneTrackCmd(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"]}
@@ -1,7 +1,7 @@
1
1
  import { Consumer } from '@teambit/legacy/dist/consumer';
2
2
  import { ApplyVersionResults, MergeStrategy } 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, }: {
4
+ export declare function mergeLanes({ merging, consumer, mergeStrategy, laneName, remoteName, noSnap, snapMessage, existingOnWorkspaceOnly, build, keepReadme, }: {
5
5
  merging: MergingMain;
6
6
  consumer: Consumer;
7
7
  mergeStrategy: MergeStrategy;
@@ -11,4 +11,8 @@ export declare function mergeLanes({ merging, consumer, mergeStrategy, laneName,
11
11
  snapMessage: string;
12
12
  existingOnWorkspaceOnly: boolean;
13
13
  build: boolean;
14
- }): Promise<ApplyVersionResults>;
14
+ keepReadme?: boolean;
15
+ }): Promise<{
16
+ mergeResults: ApplyVersionResults;
17
+ deleteResults: any;
18
+ }>;
@@ -49,6 +49,16 @@ function _repositories() {
49
49
  return data;
50
50
  }
51
51
 
52
+ function _consumer() {
53
+ const data = require("@teambit/legacy/dist/api/consumer");
54
+
55
+ _consumer = function () {
56
+ return data;
57
+ };
58
+
59
+ return data;
60
+ }
61
+
52
62
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
53
63
 
54
64
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -62,7 +72,8 @@ async function mergeLanes({
62
72
  noSnap,
63
73
  snapMessage,
64
74
  existingOnWorkspaceOnly,
65
- build
75
+ build,
76
+ keepReadme
66
77
  }) {
67
78
  const currentLaneId = consumer.getCurrentLaneId();
68
79
 
@@ -104,7 +115,7 @@ async function mergeLanes({
104
115
  }
105
116
 
106
117
  const allComponentsStatus = await getAllComponentsStatus();
107
- return merging.mergeSnaps({
118
+ const mergeResults = await merging.mergeSnaps({
108
119
  mergeStrategy,
109
120
  allComponentsStatus,
110
121
  remoteName,
@@ -114,6 +125,35 @@ async function mergeLanes({
114
125
  snapMessage,
115
126
  build
116
127
  });
128
+ const mergedSuccessfully = !mergeResults.failedComponents || mergeResults.failedComponents.length === 0 || mergeResults.failedComponents.every(failedComponent => failedComponent.unchangedLegitimately);
129
+ let deleteResults = {};
130
+
131
+ if (!keepReadme && otherLane && otherLane.readmeComponent && mergedSuccessfully) {
132
+ var _otherLane$readmeComp, _otherLane$readmeComp2;
133
+
134
+ await consumer.bitMap.syncWithLanes(consumer.bitMap.workspaceLane);
135
+ const readmeComponentId = [otherLane.readmeComponent.id.changeVersion((_otherLane$readmeComp = otherLane.readmeComponent) === null || _otherLane$readmeComp === void 0 ? void 0 : (_otherLane$readmeComp2 = _otherLane$readmeComp.head) === null || _otherLane$readmeComp2 === void 0 ? void 0 : _otherLane$readmeComp2.hash).toString()];
136
+ deleteResults = await (0, _consumer().remove)({
137
+ ids: readmeComponentId,
138
+ force: false,
139
+ remote: false,
140
+ track: false,
141
+ deleteFiles: true
142
+ });
143
+ } else if (!otherLane) {
144
+ deleteResults = {
145
+ readmeResult: `missing lane ${laneName}`
146
+ };
147
+ } else if (!otherLane.readmeComponent) {
148
+ deleteResults = {
149
+ readmeResult: `lane ${otherLane.name} doesn't have a readme component`
150
+ };
151
+ }
152
+
153
+ return {
154
+ mergeResults,
155
+ deleteResults
156
+ };
117
157
 
118
158
  async function getAllComponentsStatus() {
119
159
  const tmp = new (_repositories().Tmp)(consumer.scope);
@@ -1 +1 @@
1
- {"version":3,"sources":["merge-lanes.ts"],"names":["mergeLanes","merging","consumer","mergeStrategy","laneName","remoteName","noSnap","snapMessage","existingOnWorkspaceOnly","build","currentLaneId","getCurrentLaneId","name","BitError","localLaneId","localLane","isDefault","scope","loadLane","laneId","LaneId","bitIds","otherLane","remoteLane","otherLaneName","isDefaultLane","DEFAULT_LANE","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","filter","id","hasVersion","remoteLaneId","RemoteLaneId","from","objects","remoteLanes","getRemoteLane","length","getRemoteBitIds","components","map","c","changeVersion","head","toString","allComponentsStatus","getAllComponentsStatus","mergeSnaps","tmp","Tmp","componentsStatus","Promise","all","bitId","getComponentMergeStatus","clear","err"],"mappings":"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","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { DEFAULT_LANE } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ApplyVersionResults, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport LaneId, { RemoteLaneId } from '@teambit/legacy/dist/lane-id/lane-id';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport { MergingMain } from '@teambit/merging';\n\nexport async function mergeLanes({\n merging,\n consumer,\n mergeStrategy,\n laneName,\n remoteName,\n noSnap,\n snapMessage,\n existingOnWorkspaceOnly,\n build,\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}): Promise<ApplyVersionResults> {\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 localLaneId = consumer.getCurrentLaneId();\n const localLane = currentLaneId.isDefault() ? null : await consumer.scope.loadLane(localLaneId);\n const laneId = new LaneId({ name: laneName });\n let bitIds: BitId[];\n let otherLane: Lane | null;\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 = RemoteLaneId.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 const allComponentsStatus = await getAllComponentsStatus();\n\n return merging.mergeSnaps({\n mergeStrategy,\n allComponentsStatus,\n remoteName,\n laneId,\n localLane,\n noSnap,\n snapMessage,\n build,\n });\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"]}
1
+ {"version":3,"sources":["merge-lanes.ts"],"names":["mergeLanes","merging","consumer","mergeStrategy","laneName","remoteName","noSnap","snapMessage","existingOnWorkspaceOnly","build","keepReadme","currentLaneId","getCurrentLaneId","name","BitError","localLaneId","localLane","isDefault","scope","loadLane","laneId","LaneId","bitIds","otherLane","remoteLane","otherLaneName","isDefaultLane","DEFAULT_LANE","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","filter","id","hasVersion","remoteLaneId","RemoteLaneId","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","ids","force","remote","track","deleteFiles","readmeResult","tmp","Tmp","componentsStatus","Promise","all","bitId","getComponentMergeStatus","clear","err"],"mappings":"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","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { DEFAULT_LANE } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ApplyVersionResults, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport LaneId, { RemoteLaneId } from '@teambit/legacy/dist/lane-id/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 localLaneId = consumer.getCurrentLaneId();\n const localLane = currentLaneId.isDefault() ? null : await consumer.scope.loadLane(localLaneId);\n const laneId = new LaneId({ name: laneName });\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 = RemoteLaneId.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) {\n deleteResults = { readmeResult: `missing lane ${laneName}` };\n } else if (!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"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/lanes",
3
- "version": "0.0.287",
3
+ "version": "0.0.290",
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.287"
9
+ "version": "0.0.290"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -19,21 +19,21 @@
19
19
  "core-js": "^3.0.0",
20
20
  "@teambit/harmony": "0.3.3",
21
21
  "@teambit/bit-error": "0.0.394",
22
- "@teambit/cli": "0.0.476",
23
- "@teambit/merging": "0.0.30",
24
- "@teambit/scope": "0.0.715",
25
- "@teambit/workspace": "0.0.715",
26
- "@teambit/graphql": "0.0.715",
27
- "@teambit/community": "0.0.24",
28
- "@teambit/component": "0.0.715",
22
+ "@teambit/cli": "0.0.477",
23
+ "@teambit/merging": "0.0.33",
24
+ "@teambit/scope": "0.0.718",
25
+ "@teambit/workspace": "0.0.718",
26
+ "@teambit/graphql": "0.0.718",
27
+ "@teambit/community": "0.0.25",
28
+ "@teambit/component": "0.0.718",
29
29
  "@teambit/lanes.modules.diff": "0.0.107",
30
30
  "@teambit/legacy-bit-id": "0.0.399",
31
- "@teambit/lanes.ui.lanes": "0.0.42",
32
- "@teambit/react-router": "0.0.715",
33
- "@teambit/sidebar": "0.0.715",
31
+ "@teambit/lanes.ui.lanes": "0.0.44",
32
+ "@teambit/react-router": "0.0.718",
33
+ "@teambit/sidebar": "0.0.718",
34
34
  "@teambit/ui-foundation.ui.menu": "0.0.487",
35
35
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.489",
36
- "@teambit/ui": "0.0.715"
36
+ "@teambit/ui": "0.0.718"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/react": "^17.0.8",
@@ -49,7 +49,7 @@
49
49
  "@teambit/workspace.testing.mock-workspace": "0.0.5"
50
50
  },
51
51
  "peerDependencies": {
52
- "@teambit/legacy": "1.0.256",
52
+ "@teambit/legacy": "1.0.257",
53
53
  "react-dom": "^16.8.0 || ^17.0.0",
54
54
  "react": "^16.8.0 || ^17.0.0"
55
55
  },
@@ -77,7 +77,7 @@
77
77
  "react": "-"
78
78
  },
79
79
  "peerDependencies": {
80
- "@teambit/legacy": "1.0.256",
80
+ "@teambit/legacy": "1.0.257",
81
81
  "react-dom": "^16.8.0 || ^17.0.0",
82
82
  "react": "^16.8.0 || ^17.0.0"
83
83
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.287/dist/lanes.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.287/dist/lanes.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.290/dist/lanes.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.290/dist/lanes.docs.mdx')]