@teambit/lanes 0.0.296 → 0.0.299

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.
@@ -6,9 +6,17 @@ require("core-js/modules/es.array.iterator.js");
6
6
 
7
7
  require("core-js/modules/es.promise.js");
8
8
 
9
+ require("core-js/modules/es.regexp.exec.js");
10
+
9
11
  Object.defineProperty(exports, "__esModule", {
10
12
  value: true
11
13
  });
14
+ Object.defineProperty(exports, "Lane", {
15
+ enumerable: true,
16
+ get: function () {
17
+ return _models().Lane;
18
+ }
19
+ });
12
20
  exports.default = exports.LanesMain = void 0;
13
21
 
14
22
  function _defineProperty2() {
@@ -101,20 +109,20 @@ function _bitError() {
101
109
  return data;
102
110
  }
103
111
 
104
- function _createLane() {
105
- const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/lanes/create-lane"));
112
+ function _logger() {
113
+ const data = require("@teambit/logger");
106
114
 
107
- _createLane = function () {
115
+ _logger = function () {
108
116
  return data;
109
117
  };
110
118
 
111
119
  return data;
112
120
  }
113
121
 
114
- function _logger() {
115
- const data = require("@teambit/logger");
122
+ function _exportScopeComponents() {
123
+ const data = require("@teambit/legacy/dist/scope/component-ops/export-scope-components");
116
124
 
117
- _logger = function () {
125
+ _exportScopeComponents = function () {
118
126
  return data;
119
127
  };
120
128
 
@@ -161,6 +169,36 @@ function _removeLanes() {
161
169
  return data;
162
170
  }
163
171
 
172
+ function _workspaceLane() {
173
+ const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/bit-map/workspace-lane"));
174
+
175
+ _workspaceLane = function () {
176
+ return data;
177
+ };
178
+
179
+ return data;
180
+ }
181
+
182
+ function _models() {
183
+ const data = require("@teambit/legacy/dist/scope/models");
184
+
185
+ _models = function () {
186
+ return data;
187
+ };
188
+
189
+ return data;
190
+ }
191
+
192
+ function _bitId() {
193
+ const data = require("@teambit/legacy/dist/bit-id");
194
+
195
+ _bitId = function () {
196
+ return data;
197
+ };
198
+
199
+ return data;
200
+ }
201
+
164
202
  function _merging() {
165
203
  const data = require("@teambit/merging");
166
204
 
@@ -231,6 +269,16 @@ function _switchLanes() {
231
269
  return data;
232
270
  }
233
271
 
272
+ function _createLane() {
273
+ const data = require("./create-lane");
274
+
275
+ _createLane = function () {
276
+ return data;
277
+ };
278
+
279
+ return data;
280
+ }
281
+
234
282
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
235
283
 
236
284
  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; }
@@ -284,20 +332,30 @@ class LanesMain {
284
332
  return this.scope.legacyScope.lanes.getCurrentLaneName();
285
333
  }
286
334
 
335
+ getCurrentLaneId() {
336
+ if (!this.workspace) return null;
337
+ return this.scope.legacyScope.lanes.getCurrentLaneId();
338
+ }
339
+
287
340
  async createLane(name, {
288
341
  remoteScope,
289
- remoteName
342
+ alias
290
343
  } = {}) {
291
344
  if (!this.workspace) {
292
345
  throw new (_bitError().BitError)(`unable to create a lane outside of Bit workspace`);
293
346
  }
294
347
 
295
- await (0, _createLane().default)(this.workspace.consumer, name);
348
+ if (alias) {
349
+ (0, _createLane().throwForInvalidLaneName)(alias);
350
+ }
351
+
352
+ const scope = remoteScope || this.workspace.defaultScope;
353
+ await (0, _createLane().createLane)(this.workspace.consumer, name, scope);
296
354
  this.scope.legacyScope.lanes.setCurrentLane(name);
297
355
  const trackLaneData = {
298
- localLane: name,
299
- remoteLane: remoteName || name,
300
- remoteScope: remoteScope || this.workspace.defaultScope
356
+ localLane: alias || name,
357
+ remoteLane: name,
358
+ remoteScope: scope
301
359
  };
302
360
  this.scope.legacyScope.lanes.trackLane(trackLaneData);
303
361
  await this.workspace.consumer.onDestroy();
@@ -309,7 +367,8 @@ class LanesMain {
309
367
  throw new (_bitError().BitError)(`unable to track a lane outside of Bit workspace`);
310
368
  }
311
369
 
312
- const lane = await this.scope.legacyScope.lanes.loadLane(_laneId().LaneId.from(localName));
370
+ const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(localName);
371
+ const lane = await this.scope.legacyScope.lanes.loadLane(laneId);
313
372
 
314
373
  if (!lane) {
315
374
  throw new (_bitError().BitError)(`unable to find a local lane "${localName}"`);
@@ -330,6 +389,153 @@ class LanesMain {
330
389
  };
331
390
  }
332
391
 
392
+ async aliasLane(laneName, alias) {
393
+ if (!this.workspace) {
394
+ throw new (_bitError().BitError)(`unable to alias a lane outside of Bit workspace`);
395
+ }
396
+
397
+ if (alias.includes(_laneId().LANE_REMOTE_DELIMITER)) {
398
+ throw new (_bitError().BitError)(`an alias cannot include a delimiter "${_laneId().LANE_REMOTE_DELIMITER}"`);
399
+ }
400
+
401
+ if (alias === laneName) {
402
+ throw new (_bitError().BitError)(`an alias cannot be the same as the lane name`);
403
+ }
404
+
405
+ const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(laneName);
406
+ const lane = await this.scope.legacyScope.lanes.loadLane(laneId);
407
+
408
+ if (!lane) {
409
+ throw new (_bitError().BitError)(`unable to find a local lane "${laneName}"`);
410
+ }
411
+
412
+ const trackData = {
413
+ localLane: alias,
414
+ remoteLane: laneId.name,
415
+ remoteScope: laneId.scope
416
+ };
417
+ const laneNameWithoutScope = laneName.includes(_laneId().LANE_REMOTE_DELIMITER) ? laneName.split(_laneId().LANE_REMOTE_DELIMITER)[1] : laneName;
418
+ this.scope.legacyScope.lanes.removeTrackLane(laneNameWithoutScope);
419
+ this.scope.legacyScope.lanes.trackLane(trackData);
420
+ await this.workspace.consumer.onDestroy();
421
+ return {
422
+ laneId
423
+ };
424
+ }
425
+
426
+ async changeScope(laneName, remoteScope) {
427
+ if (!this.workspace) {
428
+ throw new (_bitError().BitError)(`unable to change-scope of a lane outside of Bit workspace`);
429
+ }
430
+
431
+ const laneNameWithoutScope = laneName.includes(_laneId().LANE_REMOTE_DELIMITER) ? laneName.split(_laneId().LANE_REMOTE_DELIMITER)[1] : laneName;
432
+ const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(laneName);
433
+ const lane = await this.scope.legacyScope.lanes.loadLane(laneId);
434
+
435
+ if (!lane) {
436
+ throw new (_bitError().BitError)(`unable to find a local lane "${laneName}"`);
437
+ }
438
+
439
+ const remoteScopeBefore = lane.scope;
440
+ lane.scope = remoteScope;
441
+ const trackData = {
442
+ localLane: laneNameWithoutScope,
443
+ remoteLane: laneId.name,
444
+ remoteScope
445
+ };
446
+ this.scope.legacyScope.lanes.trackLane(trackData);
447
+ await this.scope.legacyScope.lanes.saveLane(lane);
448
+ await this.workspace.consumer.onDestroy();
449
+ return {
450
+ remoteScopeBefore
451
+ };
452
+ }
453
+ /**
454
+ * change a lane-name and if possible, export the lane to the remote
455
+ */
456
+
457
+
458
+ async rename(currentName, newName) {
459
+ if (!this.workspace) {
460
+ throw new (_bitError().BitError)(`unable to rename a lane outside of Bit workspace`);
461
+ }
462
+
463
+ (0, _createLane().throwForInvalidLaneName)(newName);
464
+ const existingAliasWithNewName = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(newName);
465
+
466
+ if (existingAliasWithNewName) {
467
+ const remoteIdStr = `${existingAliasWithNewName.remoteLane}/${existingAliasWithNewName.remoteScope}`;
468
+ throw new (_bitError().BitError)(`unable to rename to ${newName}. this name is already used to track: ${remoteIdStr}`);
469
+ }
470
+
471
+ const laneNameWithoutScope = currentName.includes(_laneId().LANE_REMOTE_DELIMITER) ? currentName.split(_laneId().LANE_REMOTE_DELIMITER)[1] : currentName;
472
+ const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(currentName);
473
+ const lane = await this.scope.legacyScope.lanes.loadLane(laneId);
474
+
475
+ if (!lane) {
476
+ throw new (_bitError().BitError)(`unable to find a local lane "${currentName}"`);
477
+ } // rename the workspace-lane file
478
+
479
+
480
+ const previousAlias = this.scope.legacyScope.lanes.getAliasByLaneId(laneId);
481
+
482
+ if (previousAlias) {
483
+ await _workspaceLane().default.rename(this.scope.legacyScope.getPath(), previousAlias, newName);
484
+ } // rename the ref file
485
+
486
+
487
+ await this.scope.legacyScope.objects.remoteLanes.renameRefByNewLaneName(laneNameWithoutScope, newName, lane.scope); // change tracking data
488
+
489
+ const afterTrackData = {
490
+ localLane: newName,
491
+ remoteLane: newName,
492
+ remoteScope: lane.scope
493
+ };
494
+ this.scope.legacyScope.lanes.trackLane(afterTrackData);
495
+ this.scope.legacyScope.lanes.removeTrackLane(laneNameWithoutScope); // change the lane object
496
+
497
+ lane.name = newName;
498
+ await this.scope.legacyScope.lanes.saveLane(lane); // change current-lane if needed
499
+
500
+ const currentLaneName = this.getCurrentLane();
501
+ if (currentLaneName === laneNameWithoutScope) this.scope.legacyScope.lanes.setCurrentLane(newName); // export the lane with only the name-change
502
+
503
+ const clonedLaneToExport = lane.clone();
504
+ clonedLaneToExport.components = []; // otherwise, it'll export the changes done on the components.
505
+
506
+ let exported = false;
507
+ let exportErr;
508
+
509
+ try {
510
+ await this.exportLane(clonedLaneToExport);
511
+ exported = true;
512
+ } catch (err) {
513
+ this.logger.error(`unable to export ${lane.id.toString()}: ${err.message}`);
514
+ exportErr = err;
515
+ }
516
+
517
+ await this.workspace.consumer.onDestroy();
518
+ return {
519
+ exported,
520
+ exportErr
521
+ };
522
+ }
523
+
524
+ async exportLane(lane) {
525
+ await (0, _exportScopeComponents().exportMany)({
526
+ scope: this.scope.legacyScope,
527
+ isLegacy: false,
528
+ laneObject: lane,
529
+ ids: new (_bitId().BitIds)(),
530
+ codemod: false,
531
+ changeLocallyAlthoughRemoteIsDifferent: false,
532
+ includeDependencies: false,
533
+ remoteName: null,
534
+ idsWithFutureScope: new (_bitId().BitIds)(),
535
+ allVersions: false
536
+ });
537
+ }
538
+
333
539
  async removeLanes(laneNames, {
334
540
  remote,
335
541
  force
@@ -364,7 +570,7 @@ class LanesMain {
364
570
 
365
571
 
366
572
  async switchLanes(laneName, {
367
- newLaneName,
573
+ alias,
368
574
  merge,
369
575
  getAll = false,
370
576
  skipDependencyInstallation = false
@@ -385,10 +591,14 @@ class LanesMain {
385
591
  mergeStrategy = merge;
386
592
  }
387
593
 
594
+ if (alias) {
595
+ (0, _createLane().throwForInvalidLaneName)(alias);
596
+ }
597
+
388
598
  const switchProps = {
389
599
  laneName,
390
600
  existingOnWorkspaceOnly: !getAll,
391
- newLaneName
601
+ alias
392
602
  };
393
603
  const checkoutProps = {
394
604
  mergeStrategy,
@@ -462,9 +672,8 @@ class LanesMain {
462
672
  };
463
673
  }
464
674
 
465
- const laneId = laneName && _laneId().LaneId.from(laneName) || _laneId().LaneId.from(currentLaneName);
466
-
467
675
  const scope = this.workspace.scope.legacyScope;
676
+ const laneId = laneName ? await scope.lanes.parseLaneIdFromString(laneName) : this.getCurrentLaneId();
468
677
  const lane = await scope.loadLane(laneId);
469
678
 
470
679
  if (!(lane !== null && lane !== void 0 && lane.readmeComponent)) {
@@ -473,8 +682,7 @@ class LanesMain {
473
682
 
474
683
  const readmeComponentId = await this.workspace.resolveComponentId(lane.readmeComponent.id);
475
684
  const existingLaneConfig = (await this.workspace.getSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id)) || {};
476
-
477
- const remoteLaneIdStr = (lane.remoteLaneId || _laneId().LaneId.from(laneId.name, lane.scope)).toString();
685
+ const remoteLaneIdStr = lane.toLaneId().toString();
478
686
 
479
687
  if (existingLaneConfig.readme) {
480
688
  delete existingLaneConfig.readme[remoteLaneIdStr];
@@ -496,12 +704,9 @@ class LanesMain {
496
704
  }
497
705
 
498
706
  const readmeComponentId = await this.workspace.resolveComponentId(readmeComponentIdStr);
499
- const currentLaneName = this.getCurrentLane();
500
707
  const readmeComponentBitId = readmeComponentId._legacy;
501
-
502
- const laneId = laneName && _laneId().LaneId.from(laneName) || _laneId().LaneId.from(currentLaneName);
503
-
504
708
  const scope = this.workspace.scope.legacyScope;
709
+ const laneId = laneName ? await scope.lanes.parseLaneIdFromString(laneName) : this.getCurrentLaneId();
505
710
  const lane = await scope.loadLane(laneId);
506
711
 
507
712
  if (!lane) {
@@ -514,8 +719,7 @@ class LanesMain {
514
719
  lane.setReadmeComponent(readmeComponentBitId);
515
720
  await scope.lanes.saveLane(lane);
516
721
  const existingLaneConfig = (await this.workspace.getSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id)) || {};
517
-
518
- const remoteLaneIdStr = (lane.remoteLaneId || _laneId().LaneId.from(laneId.name, lane.scope)).toString();
722
+ const remoteLaneIdStr = lane.toLaneId().toString();
519
723
 
520
724
  if (existingLaneConfig.readme) {
521
725
  await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, _objectSpread(_objectSpread({}, existingLaneConfig), {}, {
@@ -569,7 +773,7 @@ class LanesMain {
569
773
 
570
774
  if (!isLegacy) {
571
775
  const laneCmd = new (_lane().LaneCmd)(lanesMain, workspace, scope, community.getDocsDomain());
572
- 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)];
776
+ 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().LaneChangeScopeCmd)(lanesMain), new (_lane().LaneAliasCmd)(lanesMain), new (_lane().LaneRenameCmd)(lanesMain), new (_lanesModules().LaneDiffCmd)(workspace, scope), new (_lane().LaneAddReadmeCmd)(lanesMain), new (_lane().LaneRemoveReadmeCmd)(lanesMain), new (_lane().LaneImportCmd)(switchCmd)];
573
777
  cli.register(laneCmd, switchCmd);
574
778
  graphql.register((0, _lanes2().lanesSchema)(lanesMain));
575
779
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["lanes.main.runtime.ts"],"names":["LanesMain","constructor","workspace","scope","merging","componentAspect","logger","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","switchLanes","newLaneName","merge","getAll","skipDependencyInstallation","mergeStrategy","mergeOptions","Object","keys","MergeOptions","includes","join","switchProps","existingOnWorkspaceOnly","checkoutProps","skipNpmInstall","verbose","ignorePackageJson","ignoreDist","isLane","promptMergeOptions","writeConfig","reset","all","LaneSwitcher","switch","getDiff","values","diffOptions","laneDiffGenerator","LaneDiffGenerator","generate","getLaneComponentModels","laneComponents","components","host","getHost","laneComponentIds","Promise","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","loggerMain","createLogger","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","LoggerAspect","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, DEFAULT_LANE } from '@teambit/lane-id';\nimport { BitError } from '@teambit/bit-error';\nimport createNewLane from '@teambit/legacy/dist/consumer/lanes/create-lane';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport {\n MergeStrategy,\n ApplyVersionResults,\n MergeOptions,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { TrackLane } from '@teambit/legacy/dist/scope/scope-json';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport removeLanes from '@teambit/legacy/dist/consumer/lanes/remove-lanes';\nimport { 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';\nimport { LaneSwitcher } from './switch-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 type SwitchLaneOptions = {\n newLaneName?: string;\n merge?: MergeStrategy;\n getAll?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n override?: boolean;\n};\n\nexport class LanesMain {\n constructor(\n private workspace: Workspace | undefined,\n private scope: ScopeMain,\n private merging: MergingMain,\n private componentAspect: ComponentMain,\n private logger: Logger\n ) {}\n\n async getLanes({\n name,\n remote,\n merged,\n showDefaultLane,\n notMerged,\n }: {\n name?: string;\n remote?: string;\n merged?: boolean;\n showDefaultLane?: boolean;\n notMerged?: boolean;\n }): Promise<LaneData[]> {\n const showMergeData = Boolean(merged || notMerged);\n const consumer = this.workspace?.consumer;\n if (remote) {\n const remoteObj = await getRemoteByName(remote, consumer);\n const lanes = await remoteObj.listLanes(name, showMergeData);\n return lanes;\n }\n\n if (name === DEFAULT_LANE) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n return defaultLane ? [defaultLane] : [];\n }\n\n const lanes = await this.scope.legacyScope.lanes.getLanesData(this.scope.legacyScope, name, showMergeData);\n\n if (showDefaultLane) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n if (defaultLane) lanes.push(defaultLane);\n }\n\n return lanes;\n }\n\n getCurrentLane(): string | null {\n if (!this.workspace?.consumer) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneName();\n }\n\n 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 * switch to a different local or remote lane.\n * switching to a remote lane also imports and writes the components of that remote lane.\n * by default, only the components existing on the workspace will be imported from that lane, unless the \"getAll\"\n * flag is true.\n */\n async switchLanes(\n laneName: string,\n { newLaneName, merge, getAll = false, skipDependencyInstallation = false }: SwitchLaneOptions\n ) {\n if (!this.workspace) {\n throw new BitError(`unable to switch lanes outside of Bit workspace`);\n }\n let mergeStrategy;\n if (merge && typeof merge === 'string') {\n const mergeOptions = Object.keys(MergeOptions);\n if (!mergeOptions.includes(merge)) {\n throw new BitError(`merge must be one of the following: ${mergeOptions.join(', ')}`);\n }\n mergeStrategy = merge;\n }\n\n const switchProps = {\n laneName,\n existingOnWorkspaceOnly: !getAll,\n newLaneName,\n };\n const checkoutProps = {\n mergeStrategy,\n skipNpmInstall: skipDependencyInstallation,\n verbose: false, // not relevant in Harmony\n ignorePackageJson: true, // not relevant in Harmony\n ignoreDist: true, // not relevant in Harmony\n isLane: true,\n promptMergeOptions: false,\n writeConfig: false,\n reset: false,\n all: false,\n };\n return new LaneSwitcher(this.workspace, this.logger, switchProps, checkoutProps).switch();\n }\n\n /**\n * the values array may include zero to two values and will be processed as following:\n * [] => diff between the current lane and default lane. (only inside workspace).\n * [to] => diff between the current lane (or default-lane when in scope) and \"to\" lane.\n * [from, to] => diff between \"from\" lane and \"to\" lane.\n */\n public getDiff(values: string[], diffOptions: DiffOptions = {}) {\n const laneDiffGenerator = new LaneDiffGenerator(this.workspace, this.scope);\n return laneDiffGenerator.generate(values, diffOptions);\n }\n\n async getLaneComponentModels(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 LoggerAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, scope, workspace, graphql, community, merging, component, loggerMain]: [\n CLIMain,\n ScopeMain,\n Workspace,\n GraphqlMain,\n CommunityMain,\n MergingMain,\n ComponentMain,\n LoggerMain\n ]) {\n const logger = loggerMain.createLogger(LanesAspect.id);\n const lanesMain = new LanesMain(workspace, scope, merging, component, logger);\n const isLegacy = workspace && workspace.consumer.isLegacy;\n const switchCmd = new SwitchCmd(lanesMain);\n if (!isLegacy) {\n const laneCmd = new LaneCmd(lanesMain, workspace, scope, community.getDocsDomain());\n laneCmd.commands = [\n new LaneListCmd(lanesMain, workspace, scope),\n switchCmd,\n new LaneShowCmd(lanesMain, workspace, scope),\n new LaneCreateCmd(lanesMain),\n new LaneMergeCmd(lanesMain),\n new LaneRemoveCmd(lanesMain),\n new 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
+ {"version":3,"sources":["lanes.main.runtime.ts"],"names":["LanesMain","constructor","workspace","scope","merging","componentAspect","logger","getLanes","name","remote","merged","showDefaultLane","notMerged","showMergeData","Boolean","consumer","remoteObj","lanes","listLanes","DEFAULT_LANE","defaultLane","getLaneDataOfDefaultLane","legacyScope","getLanesData","push","getCurrentLane","getCurrentLaneName","getCurrentLaneId","createLane","remoteScope","alias","BitError","defaultScope","setCurrentLane","trackLaneData","localLane","remoteLane","trackLane","onDestroy","localName","remoteName","laneId","parseLaneIdFromString","lane","loadLane","beforeTrackData","getRemoteTrackedDataByLocalLane","beforeTrackDataCloned","undefined","afterTrackData","aliasLane","laneName","includes","LANE_REMOTE_DELIMITER","trackData","laneNameWithoutScope","split","removeTrackLane","changeScope","remoteScopeBefore","saveLane","rename","currentName","newName","existingAliasWithNewName","remoteIdStr","previousAlias","getAliasByLaneId","WorkspaceLane","getPath","objects","remoteLanes","renameRefByNewLaneName","currentLaneName","clonedLaneToExport","clone","components","exported","exportErr","exportLane","err","error","id","toString","message","isLegacy","laneObject","ids","BitIds","codemod","changeLocallyAlthoughRemoteIsDifferent","includeDependencies","idsWithFutureScope","allVersions","removeLanes","laneNames","force","results","laneResults","mergeLane","options","bitMap","syncWithLanes","workspaceLane","switchLanes","merge","getAll","skipDependencyInstallation","mergeStrategy","mergeOptions","Object","keys","MergeOptions","join","switchProps","existingOnWorkspaceOnly","checkoutProps","skipNpmInstall","verbose","ignorePackageJson","ignoreDist","isLane","promptMergeOptions","writeConfig","reset","all","LaneSwitcher","switch","getDiff","values","diffOptions","laneDiffGenerator","LaneDiffGenerator","generate","getLaneComponentModels","laneComponents","host","getHost","laneComponentIds","Promise","map","laneComponent","legacyIdWithVersion","changeVersion","head","resolveComponentId","getMany","getLaneReadmeComponent","laneReadmeComponent","readmeComponent","laneReadmeComponentId","get","removeLaneReadme","result","readmeComponentId","existingLaneConfig","getSpecificComponentConfig","LanesAspect","remoteLaneIdStr","toLaneId","readme","removeSpecificComponentConfig","addSpecificComponentConfig","setReadmeComponent","write","addLaneReadme","readmeComponentIdStr","readmeComponentBitId","_legacy","bitIds","scopeComponents","list","filter","component","getAuthoredAndImportedBitIdsOfDefaultLane","bitId","version","isMerged","provider","cli","graphql","community","loggerMain","createLogger","lanesMain","switchCmd","SwitchCmd","laneCmd","LaneCmd","getDocsDomain","commands","LaneListCmd","LaneShowCmd","LaneCreateCmd","LaneMergeCmd","LaneRemoveCmd","LaneChangeScopeCmd","LaneAliasCmd","LaneRenameCmd","LaneDiffCmd","LaneAddReadmeCmd","LaneRemoveReadmeCmd","LaneImportCmd","register","CLIAspect","ScopeAspect","WorkspaceAspect","GraphqlAspect","CommunityAspect","MergingAspect","ComponentAspect","LoggerAspect","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, DEFAULT_LANE, LANE_REMOTE_DELIMITER } from '@teambit/lane-id';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport { exportMany } from '@teambit/legacy/dist/scope/component-ops/export-scope-components';\nimport {\n MergeStrategy,\n ApplyVersionResults,\n MergeOptions,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { TrackLane } from '@teambit/legacy/dist/scope/scope-json';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport removeLanes from '@teambit/legacy/dist/consumer/lanes/remove-lanes';\nimport WorkspaceLane from '@teambit/legacy/dist/consumer/bit-map/workspace-lane';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport { MergingMain, MergingAspect } from '@teambit/merging';\nimport { LanesAspect } from './lanes.aspect';\nimport {\n LaneCmd,\n LaneCreateCmd,\n LaneImportCmd,\n LaneListCmd,\n LaneMergeCmd,\n LaneRemoveCmd,\n LaneShowCmd,\n LaneChangeScopeCmd,\n LaneAliasCmd,\n LaneRenameCmd,\n LaneAddReadmeCmd,\n LaneRemoveReadmeCmd,\n} from './lane.cmd';\nimport { lanesSchema } from './lanes.graphql';\nimport { SwitchCmd } from './switch.cmd';\nimport { mergeLanes } from './merge-lanes';\nimport { LaneSwitcher } from './switch-lanes';\nimport { createLane, throwForInvalidLaneName } from './create-lane';\n\nexport { Lane };\n\nexport type LaneResults = {\n lanes: LaneData[];\n currentLane?: string | null;\n};\n\nexport type MergeLaneOptions = {\n remoteName: string | null;\n mergeStrategy: MergeStrategy;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n keepReadme: boolean;\n};\n\nexport type CreateLaneOptions = {\n remoteScope?: string; // default to the defaultScope in workspace.jsonc\n alias?: string; // default to the remote name\n};\n\nexport type SwitchLaneOptions = {\n alias?: string;\n merge?: MergeStrategy;\n getAll?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n override?: boolean;\n};\n\nexport class LanesMain {\n constructor(\n private workspace: Workspace | undefined,\n private scope: ScopeMain,\n private merging: MergingMain,\n private componentAspect: ComponentMain,\n private logger: Logger\n ) {}\n\n async getLanes({\n name,\n remote,\n merged,\n showDefaultLane,\n notMerged,\n }: {\n name?: string;\n remote?: string;\n merged?: boolean;\n showDefaultLane?: boolean;\n notMerged?: boolean;\n }): Promise<LaneData[]> {\n const showMergeData = Boolean(merged || notMerged);\n const consumer = this.workspace?.consumer;\n if (remote) {\n const remoteObj = await getRemoteByName(remote, consumer);\n const lanes = await remoteObj.listLanes(name, showMergeData);\n return lanes;\n }\n\n if (name === DEFAULT_LANE) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n return defaultLane ? [defaultLane] : [];\n }\n\n const lanes = await this.scope.legacyScope.lanes.getLanesData(this.scope.legacyScope, name, showMergeData);\n\n if (showDefaultLane) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n if (defaultLane) lanes.push(defaultLane);\n }\n\n return lanes;\n }\n\n getCurrentLane(): string | null {\n if (!this.workspace?.consumer) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneName();\n }\n\n getCurrentLaneId(): LaneId | null {\n if (!this.workspace) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneId();\n }\n\n async createLane(name: string, { remoteScope, alias }: CreateLaneOptions = {}): Promise<TrackLane> {\n if (!this.workspace) {\n throw new BitError(`unable to create a lane outside of Bit workspace`);\n }\n if (alias) {\n throwForInvalidLaneName(alias);\n }\n const scope = remoteScope || this.workspace.defaultScope;\n await createLane(this.workspace.consumer, name, scope);\n this.scope.legacyScope.lanes.setCurrentLane(name);\n const trackLaneData = {\n localLane: alias || name,\n remoteLane: name,\n remoteScope: scope,\n };\n this.scope.legacyScope.lanes.trackLane(trackLaneData);\n await this.workspace.consumer.onDestroy();\n\n return trackLaneData;\n }\n\n async trackLane(\n localName: string,\n remoteScope: string,\n remoteName?: string\n ): Promise<{ beforeTrackData?: TrackLane; afterTrackData: TrackLane }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane outside of Bit workspace`);\n }\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(localName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${localName}\"`);\n }\n const beforeTrackData = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(localName);\n const beforeTrackDataCloned = beforeTrackData ? { ...beforeTrackData } : undefined;\n const afterTrackData = {\n localLane: localName,\n remoteLane: remoteName || beforeTrackData?.remoteLane || localName,\n remoteScope,\n };\n this.scope.legacyScope.lanes.trackLane(afterTrackData);\n await this.workspace.consumer.onDestroy();\n\n return { beforeTrackData: beforeTrackDataCloned, afterTrackData };\n }\n\n async aliasLane(laneName: string, alias: string): Promise<{ laneId: LaneId }> {\n if (!this.workspace) {\n throw new BitError(`unable to alias a lane outside of Bit workspace`);\n }\n if (alias.includes(LANE_REMOTE_DELIMITER)) {\n throw new BitError(`an alias cannot include a delimiter \"${LANE_REMOTE_DELIMITER}\"`);\n }\n if (alias === laneName) {\n throw new BitError(`an alias cannot be the same as the lane name`);\n }\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(laneName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${laneName}\"`);\n }\n const trackData = {\n localLane: alias,\n remoteLane: laneId.name,\n remoteScope: laneId.scope,\n };\n const laneNameWithoutScope = laneName.includes(LANE_REMOTE_DELIMITER)\n ? laneName.split(LANE_REMOTE_DELIMITER)[1]\n : laneName;\n this.scope.legacyScope.lanes.removeTrackLane(laneNameWithoutScope);\n this.scope.legacyScope.lanes.trackLane(trackData);\n await this.workspace.consumer.onDestroy();\n\n return { laneId };\n }\n\n async changeScope(laneName: string, remoteScope: string): Promise<{ remoteScopeBefore: string }> {\n if (!this.workspace) {\n throw new BitError(`unable to change-scope of a lane outside of Bit workspace`);\n }\n const laneNameWithoutScope = laneName.includes(LANE_REMOTE_DELIMITER)\n ? laneName.split(LANE_REMOTE_DELIMITER)[1]\n : laneName;\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(laneName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${laneName}\"`);\n }\n const remoteScopeBefore = lane.scope;\n lane.scope = remoteScope;\n const trackData = {\n localLane: laneNameWithoutScope,\n remoteLane: laneId.name,\n remoteScope,\n };\n this.scope.legacyScope.lanes.trackLane(trackData);\n await this.scope.legacyScope.lanes.saveLane(lane);\n await this.workspace.consumer.onDestroy();\n\n return { remoteScopeBefore };\n }\n\n /**\n * change a lane-name and if possible, export the lane to the remote\n */\n async rename(currentName: string, newName: string): Promise<{ exported: boolean; exportErr?: Error }> {\n if (!this.workspace) {\n throw new BitError(`unable to rename a lane outside of Bit workspace`);\n }\n throwForInvalidLaneName(newName);\n const existingAliasWithNewName = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(newName);\n if (existingAliasWithNewName) {\n const remoteIdStr = `${existingAliasWithNewName.remoteLane}/${existingAliasWithNewName.remoteScope}`;\n throw new BitError(`unable to rename to ${newName}. this name is already used to track: ${remoteIdStr}`);\n }\n const laneNameWithoutScope = currentName.includes(LANE_REMOTE_DELIMITER)\n ? currentName.split(LANE_REMOTE_DELIMITER)[1]\n : currentName;\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(currentName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${currentName}\"`);\n }\n\n // rename the workspace-lane file\n const previousAlias = this.scope.legacyScope.lanes.getAliasByLaneId(laneId);\n if (previousAlias) {\n await WorkspaceLane.rename(this.scope.legacyScope.getPath(), previousAlias, newName);\n }\n\n // rename the ref file\n await this.scope.legacyScope.objects.remoteLanes.renameRefByNewLaneName(laneNameWithoutScope, newName, lane.scope);\n\n // change tracking data\n const afterTrackData = {\n localLane: newName,\n remoteLane: newName,\n remoteScope: lane.scope,\n };\n this.scope.legacyScope.lanes.trackLane(afterTrackData);\n this.scope.legacyScope.lanes.removeTrackLane(laneNameWithoutScope);\n\n // change the lane object\n lane.name = newName;\n await this.scope.legacyScope.lanes.saveLane(lane);\n\n // change current-lane if needed\n const currentLaneName = this.getCurrentLane();\n if (currentLaneName === laneNameWithoutScope) this.scope.legacyScope.lanes.setCurrentLane(newName);\n\n // export the lane with only the name-change\n const clonedLaneToExport = lane.clone();\n clonedLaneToExport.components = []; // otherwise, it'll export the changes done on the components.\n let exported = false;\n let exportErr: Error | undefined;\n try {\n await this.exportLane(clonedLaneToExport);\n exported = true;\n } catch (err: any) {\n this.logger.error(`unable to export ${lane.id.toString()}: ${err.message}`);\n exportErr = err;\n }\n\n await this.workspace.consumer.onDestroy();\n\n return { exported, exportErr };\n }\n\n async exportLane(lane: Lane) {\n await exportMany({\n scope: this.scope.legacyScope,\n isLegacy: false,\n laneObject: lane,\n ids: new BitIds(),\n codemod: false,\n changeLocallyAlthoughRemoteIsDifferent: false,\n includeDependencies: false,\n remoteName: null,\n idsWithFutureScope: new BitIds(),\n allVersions: false,\n });\n }\n\n async removeLanes(laneNames: string[], { remote, force }: { remote: boolean; force: boolean }): Promise<string[]> {\n const results = await removeLanes(this.workspace?.consumer, laneNames, remote, force);\n if (this.workspace) await this.workspace.consumer.onDestroy();\n\n return results.laneResults;\n }\n\n async mergeLane(\n laneName: string,\n options: MergeLaneOptions\n ): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n if (!this.workspace) {\n throw new BitError(`unable to merge a lane outside of Bit workspace`);\n }\n const results = await mergeLanes({\n merging: this.merging,\n consumer: this.workspace.consumer,\n laneName,\n ...options,\n });\n\n await this.workspace.consumer.onDestroy();\n this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);\n return results;\n }\n\n /**\n * switch to a different local or remote lane.\n * switching to a remote lane also imports and writes the components of that remote lane.\n * by default, only the components existing on the workspace will be imported from that lane, unless the \"getAll\"\n * flag is true.\n */\n async switchLanes(\n laneName: string,\n { alias, merge, getAll = false, skipDependencyInstallation = false }: SwitchLaneOptions\n ) {\n if (!this.workspace) {\n throw new BitError(`unable to switch lanes outside of Bit workspace`);\n }\n let mergeStrategy;\n if (merge && typeof merge === 'string') {\n const mergeOptions = Object.keys(MergeOptions);\n if (!mergeOptions.includes(merge)) {\n throw new BitError(`merge must be one of the following: ${mergeOptions.join(', ')}`);\n }\n mergeStrategy = merge;\n }\n if (alias) {\n throwForInvalidLaneName(alias);\n }\n\n const switchProps = {\n laneName,\n existingOnWorkspaceOnly: !getAll,\n alias,\n };\n const checkoutProps = {\n mergeStrategy,\n skipNpmInstall: skipDependencyInstallation,\n verbose: false, // not relevant in Harmony\n ignorePackageJson: true, // not relevant in Harmony\n ignoreDist: true, // not relevant in Harmony\n isLane: true,\n promptMergeOptions: false,\n writeConfig: false,\n reset: false,\n all: false,\n };\n return new LaneSwitcher(this.workspace, this.logger, switchProps, checkoutProps).switch();\n }\n\n /**\n * the values array may include zero to two values and will be processed as following:\n * [] => diff between the current lane and default lane. (only inside workspace).\n * [to] => diff between the current lane (or default-lane when in scope) and \"to\" lane.\n * [from, to] => diff between \"from\" lane and \"to\" lane.\n */\n public getDiff(values: string[], diffOptions: DiffOptions = {}) {\n const laneDiffGenerator = new LaneDiffGenerator(this.workspace, this.scope);\n return laneDiffGenerator.generate(values, diffOptions);\n }\n\n async getLaneComponentModels(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 scope: LegacyScope = this.workspace.scope.legacyScope;\n const laneId: LaneId = laneName\n ? await scope.lanes.parseLaneIdFromString(laneName)\n : (this.getCurrentLaneId() as LaneId);\n const lane: Lane | null | undefined = await scope.loadLane(laneId);\n\n if (!lane?.readmeComponent) {\n throw new BitError(`there is no readme component added to the lane ${laneName || currentLaneName}`);\n }\n\n const readmeComponentId = await this.workspace.resolveComponentId(lane.readmeComponent.id);\n const existingLaneConfig =\n (await this.workspace.getSpecificComponentConfig(readmeComponentId, LanesAspect.id)) || {};\n\n const remoteLaneIdStr = lane.toLaneId().toString();\n\n if (existingLaneConfig.readme) {\n delete existingLaneConfig.readme[remoteLaneIdStr];\n await this.workspace.removeSpecificComponentConfig(readmeComponentId, LanesAspect.id, false);\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, existingLaneConfig);\n }\n\n lane.setReadmeComponent(undefined);\n await scope.lanes.saveLane(lane);\n await this.workspace.bitMap.write();\n\n return { result: true };\n }\n\n async addLaneReadme(readmeComponentIdStr: string, laneName?: string): Promise<{ result: boolean; message?: string }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane readme component outside of Bit workspace`);\n }\n const readmeComponentId = await this.workspace.resolveComponentId(readmeComponentIdStr);\n\n const readmeComponentBitId = readmeComponentId._legacy;\n const scope: LegacyScope = this.workspace.scope.legacyScope;\n const laneId: LaneId = laneName\n ? await scope.lanes.parseLaneIdFromString(laneName)\n : (this.getCurrentLaneId() as LaneId);\n\n const lane: Lane | null | undefined = await scope.loadLane(laneId);\n\n if (!lane) {\n return { result: false, message: `cannot find lane ${laneName}` };\n }\n\n lane.setReadmeComponent(readmeComponentBitId);\n await scope.lanes.saveLane(lane);\n\n const existingLaneConfig =\n (await this.workspace.getSpecificComponentConfig(readmeComponentId, LanesAspect.id)) || {};\n\n const remoteLaneIdStr = lane.toLaneId().toString();\n\n if (existingLaneConfig.readme) {\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, {\n ...existingLaneConfig,\n readme: {\n ...existingLaneConfig.readme,\n [remoteLaneIdStr]: true,\n },\n });\n } else {\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, {\n ...existingLaneConfig,\n readme: {\n [remoteLaneIdStr]: true,\n },\n });\n }\n await this.workspace.bitMap.write();\n return { result: true };\n }\n\n private async getLaneDataOfDefaultLane(): Promise<LaneData | null> {\n const consumer = this.workspace?.consumer;\n let bitIds: BitId[] = [];\n if (!consumer) {\n const scopeComponents = await this.scope.list();\n bitIds = scopeComponents.filter((component) => component.head).map((component) => component.id._legacy);\n } else {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n }\n\n return {\n name: DEFAULT_LANE,\n remote: null,\n components: bitIds.map((bitId) => ({ id: bitId, head: bitId.version as string })),\n isMerged: null,\n };\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n ScopeAspect,\n WorkspaceAspect,\n GraphqlAspect,\n CommunityAspect,\n MergingAspect,\n ComponentAspect,\n LoggerAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, scope, workspace, graphql, community, merging, component, loggerMain]: [\n CLIMain,\n ScopeMain,\n Workspace,\n GraphqlMain,\n CommunityMain,\n MergingMain,\n ComponentMain,\n LoggerMain\n ]) {\n const logger = loggerMain.createLogger(LanesAspect.id);\n const lanesMain = new LanesMain(workspace, scope, merging, component, logger);\n const isLegacy = workspace && workspace.consumer.isLegacy;\n const switchCmd = new SwitchCmd(lanesMain);\n if (!isLegacy) {\n const laneCmd = new LaneCmd(lanesMain, workspace, scope, community.getDocsDomain());\n laneCmd.commands = [\n new LaneListCmd(lanesMain, workspace, scope),\n switchCmd,\n new LaneShowCmd(lanesMain, workspace, scope),\n new LaneCreateCmd(lanesMain),\n new LaneMergeCmd(lanesMain),\n new LaneRemoveCmd(lanesMain),\n new LaneChangeScopeCmd(lanesMain),\n new LaneAliasCmd(lanesMain),\n new LaneRenameCmd(lanesMain),\n new LaneDiffCmd(workspace, scope),\n new LaneAddReadmeCmd(lanesMain),\n new LaneRemoveReadmeCmd(lanesMain),\n new LaneImportCmd(switchCmd),\n ];\n cli.register(laneCmd, switchCmd);\n graphql.register(lanesSchema(lanesMain));\n }\n return lanesMain;\n }\n}\n\nLanesAspect.addRuntime(LanesMain);\n\nexport default LanesMain;\n"]}
@@ -67,11 +67,8 @@ async function mergeLanes({
67
67
  throw new (_bitError().BitError)(`unable to switch to lane "${laneName}", you're already checked out to this lane`);
68
68
  }
69
69
 
70
- const localLaneId = consumer.getCurrentLaneId();
71
- const localLane = currentLaneId.isDefault() ? null : await consumer.scope.loadLane(localLaneId);
72
- const laneId = new (_laneId().LaneId)({
73
- name: laneName
74
- });
70
+ const laneId = await consumer.getParsedLaneId(laneName);
71
+ const localLane = currentLaneId.isDefault() ? null : await consumer.scope.loadLane(currentLaneId);
75
72
  let bitIds;
76
73
  let otherLane;
77
74
  let remoteLane;
@@ -83,7 +80,7 @@ async function mergeLanes({
83
80
  bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane().filter(id => id.hasVersion());
84
81
  otherLaneName = _laneId().DEFAULT_LANE;
85
82
  } else if (remoteName) {
86
- const remoteLaneId = _laneId().RemoteLaneId.from(laneId.name, remoteName);
83
+ const remoteLaneId = _laneId().LaneId.from(laneId.name, remoteName);
87
84
 
88
85
  remoteLane = await consumer.scope.objects.remoteLanes.getRemoteLane(remoteLaneId);
89
86
 
@@ -1 +1 @@
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 { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ApplyVersionResults, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { LaneId, RemoteLaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport { MergingMain } from '@teambit/merging';\nimport { remove } from '@teambit/legacy/dist/api/consumer';\n\nexport async function mergeLanes({\n merging,\n consumer,\n mergeStrategy,\n laneName,\n remoteName,\n noSnap,\n snapMessage,\n existingOnWorkspaceOnly,\n build,\n keepReadme,\n}: {\n merging: MergingMain;\n consumer: Consumer;\n mergeStrategy: MergeStrategy;\n laneName: string;\n remoteName: string | null;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n keepReadme?: boolean;\n}): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n const currentLaneId = consumer.getCurrentLaneId();\n if (!remoteName && laneName === currentLaneId.name) {\n throw new BitError(`unable to switch to lane \"${laneName}\", you're already checked out to this lane`);\n }\n const 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"]}
1
+ {"version":3,"sources":["merge-lanes.ts"],"names":["mergeLanes","merging","consumer","mergeStrategy","laneName","remoteName","noSnap","snapMessage","existingOnWorkspaceOnly","build","keepReadme","currentLaneId","getCurrentLaneId","name","BitError","laneId","getParsedLaneId","localLane","isDefault","scope","loadLane","bitIds","otherLane","remoteLane","otherLaneName","isDefaultLane","DEFAULT_LANE","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","filter","id","hasVersion","remoteLaneId","LaneId","from","objects","remoteLanes","getRemoteLane","length","getRemoteBitIds","components","map","c","changeVersion","head","toString","allComponentsStatus","getAllComponentsStatus","mergeResults","mergeSnaps","mergedSuccessfully","failedComponents","every","failedComponent","unchangedLegitimately","deleteResults","readmeComponent","syncWithLanes","workspaceLane","readmeComponentId","hash","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 { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ApplyVersionResults, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport { MergingMain } from '@teambit/merging';\nimport { remove } from '@teambit/legacy/dist/api/consumer';\n\nexport async function mergeLanes({\n merging,\n consumer,\n mergeStrategy,\n laneName,\n remoteName,\n noSnap,\n snapMessage,\n existingOnWorkspaceOnly,\n build,\n keepReadme,\n}: {\n merging: MergingMain;\n consumer: Consumer;\n mergeStrategy: MergeStrategy;\n laneName: string;\n remoteName: string | null;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n keepReadme?: boolean;\n}): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n const currentLaneId = consumer.getCurrentLaneId();\n if (!remoteName && laneName === currentLaneId.name) {\n throw new BitError(`unable to switch to lane \"${laneName}\", you're already checked out to this lane`);\n }\n const laneId = await consumer.getParsedLaneId(laneName);\n const localLane = currentLaneId.isDefault() ? null : await consumer.scope.loadLane(currentLaneId);\n let bitIds: BitId[];\n let otherLane: Lane | null | undefined;\n let remoteLane;\n let otherLaneName: string;\n const isDefaultLane = laneName === DEFAULT_LANE;\n\n if (isDefaultLane) {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane().filter((id) => id.hasVersion());\n otherLaneName = DEFAULT_LANE;\n } else if (remoteName) {\n const remoteLaneId = LaneId.from(laneId.name, remoteName);\n remoteLane = await consumer.scope.objects.remoteLanes.getRemoteLane(remoteLaneId);\n if (!remoteLane.length) {\n throw new BitError(\n `unable to switch to \"${laneName}\" of \"${remoteName}\", the remote lane was not found or not fetched locally`\n );\n }\n bitIds = await consumer.scope.objects.remoteLanes.getRemoteBitIds(remoteLaneId);\n otherLaneName = `${remoteName}/${laneId.name}`;\n } else {\n otherLane = await consumer.scope.loadLane(laneId);\n if (!otherLane) throw new BitError(`unable to switch to \"${laneName}\", the lane was not found`);\n bitIds = otherLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n otherLaneName = laneId.name;\n }\n\n const allComponentsStatus = await getAllComponentsStatus();\n\n const mergeResults = await merging.mergeSnaps({\n mergeStrategy,\n allComponentsStatus,\n remoteName,\n laneId,\n localLane,\n noSnap,\n snapMessage,\n build,\n });\n\n const mergedSuccessfully =\n !mergeResults.failedComponents ||\n mergeResults.failedComponents.length === 0 ||\n mergeResults.failedComponents.every((failedComponent) => failedComponent.unchangedLegitimately);\n\n let deleteResults = {};\n\n if (!keepReadme && otherLane && otherLane.readmeComponent && mergedSuccessfully) {\n await consumer.bitMap.syncWithLanes(consumer.bitMap.workspaceLane);\n\n const readmeComponentId = [\n otherLane.readmeComponent.id.changeVersion(otherLane.readmeComponent?.head?.hash).toString(),\n ];\n\n deleteResults = await remove({\n ids: readmeComponentId,\n force: false,\n remote: false,\n track: false,\n deleteFiles: true,\n });\n } else if (!otherLane) {\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"]}