@teambit/lanes 0.0.288 → 0.0.291

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.
@@ -121,6 +121,26 @@ function _constants() {
121
121
  return data;
122
122
  }
123
123
 
124
+ function _logger() {
125
+ const data = require("@teambit/logger");
126
+
127
+ _logger = function () {
128
+ return data;
129
+ };
130
+
131
+ return data;
132
+ }
133
+
134
+ function _mergeVersion() {
135
+ const data = require("@teambit/legacy/dist/consumer/versions-ops/merge-version");
136
+
137
+ _mergeVersion = function () {
138
+ return data;
139
+ };
140
+
141
+ return data;
142
+ }
143
+
124
144
  function _community() {
125
145
  const data = require("@teambit/community");
126
146
 
@@ -131,6 +151,16 @@ function _community() {
131
151
  return data;
132
152
  }
133
153
 
154
+ function _component() {
155
+ const data = _interopRequireDefault(require("@teambit/component"));
156
+
157
+ _component = function () {
158
+ return data;
159
+ };
160
+
161
+ return data;
162
+ }
163
+
134
164
  function _removeLanes() {
135
165
  const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/lanes/remove-lanes"));
136
166
 
@@ -201,15 +231,27 @@ function _mergeLanes() {
201
231
  return data;
202
232
  }
203
233
 
234
+ function _switchLanes() {
235
+ const data = require("./switch-lanes");
236
+
237
+ _switchLanes = function () {
238
+ return data;
239
+ };
240
+
241
+ return data;
242
+ }
243
+
204
244
  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; }
205
245
 
206
246
  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
247
 
208
248
  class LanesMain {
209
- constructor(workspace, scope, merging) {
249
+ constructor(workspace, scope, merging, componentAspect, logger) {
210
250
  this.workspace = workspace;
211
251
  this.scope = scope;
212
252
  this.merging = merging;
253
+ this.componentAspect = componentAspect;
254
+ this.logger = logger;
213
255
  }
214
256
 
215
257
  async getLanes({
@@ -314,14 +356,66 @@ class LanesMain {
314
356
  throw new (_bitError().BitError)(`unable to merge a lane outside of Bit workspace`);
315
357
  }
316
358
 
317
- const mergeResults = await (0, _mergeLanes().mergeLanes)(_objectSpread({
359
+ const results = await (0, _mergeLanes().mergeLanes)(_objectSpread({
318
360
  merging: this.merging,
319
361
  consumer: this.workspace.consumer,
320
362
  laneName
321
363
  }, options));
322
364
  await this.workspace.consumer.onDestroy();
323
365
  this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);
324
- return mergeResults;
366
+ return results;
367
+ }
368
+ /**
369
+ * switch to a different local or remote lane.
370
+ * switching to a remote lane also imports and writes the components of that remote lane.
371
+ * by default, only the components existing on the workspace will be imported from that lane, unless the "getAll"
372
+ * flag is true.
373
+ */
374
+
375
+
376
+ async switchLanes(laneName, {
377
+ newLaneName,
378
+ merge,
379
+ getAll = false,
380
+ skipDependencyInstallation = false
381
+ }) {
382
+ if (!this.workspace) {
383
+ throw new (_bitError().BitError)(`unable to switch lanes outside of Bit workspace`);
384
+ }
385
+
386
+ let mergeStrategy;
387
+
388
+ if (merge && typeof merge === 'string') {
389
+ const mergeOptions = Object.keys(_mergeVersion().MergeOptions);
390
+
391
+ if (!mergeOptions.includes(merge)) {
392
+ throw new (_bitError().BitError)(`merge must be one of the following: ${mergeOptions.join(', ')}`);
393
+ }
394
+
395
+ mergeStrategy = merge;
396
+ }
397
+
398
+ const switchProps = {
399
+ laneName,
400
+ existingOnWorkspaceOnly: !getAll,
401
+ newLaneName
402
+ };
403
+ const checkoutProps = {
404
+ mergeStrategy,
405
+ skipNpmInstall: skipDependencyInstallation,
406
+ verbose: false,
407
+ // not relevant in Harmony
408
+ ignorePackageJson: true,
409
+ // not relevant in Harmony
410
+ ignoreDist: true,
411
+ // not relevant in Harmony
412
+ isLane: true,
413
+ promptMergeOptions: false,
414
+ writeConfig: false,
415
+ reset: false,
416
+ all: false
417
+ };
418
+ return new (_switchLanes().LaneSwitcher)(this.workspace, this.logger, switchProps, checkoutProps).switch();
325
419
  }
326
420
  /**
327
421
  * the values array may include zero to two values and will be processed as following:
@@ -342,7 +436,7 @@ class LanesMain {
342
436
  name
343
437
  });
344
438
  const laneComponents = lane.components;
345
- const host = this.workspace || this.scope;
439
+ const host = this.componentAspect.getHost();
346
440
  const laneComponentIds = await Promise.all(laneComponents.map(laneComponent => {
347
441
  const legacyIdWithVersion = laneComponent.id.changeVersion(laneComponent.head);
348
442
  return host.resolveComponentId(legacyIdWithVersion);
@@ -351,6 +445,108 @@ class LanesMain {
351
445
  return components;
352
446
  }
353
447
 
448
+ async getLaneReadmeComponent(name) {
449
+ if (!name) return undefined;
450
+ const [lane] = await this.getLanes({
451
+ name
452
+ });
453
+ const laneReadmeComponent = lane.readmeComponent;
454
+ if (!laneReadmeComponent) return undefined;
455
+ const host = this.componentAspect.getHost();
456
+ const laneReadmeComponentId = await host.resolveComponentId(laneReadmeComponent.id.changeVersion(laneReadmeComponent.head));
457
+ const readmeComponent = await host.get(laneReadmeComponentId);
458
+ return readmeComponent;
459
+ }
460
+
461
+ async removeLaneReadme(laneName) {
462
+ if (!this.workspace) {
463
+ throw new (_bitError().BitError)('unable to remove the lane readme component outside of Bit workspace');
464
+ }
465
+
466
+ const currentLaneName = this.getCurrentLane();
467
+
468
+ if (!laneName && !currentLaneName) {
469
+ return {
470
+ result: false,
471
+ message: 'unable to remove the lane readme component. Either pass a laneName or switch to a lane'
472
+ };
473
+ }
474
+
475
+ const laneId = laneName && _laneId().default.from(laneName) || _laneId().default.from(currentLaneName);
476
+
477
+ const scope = this.workspace.scope.legacyScope;
478
+ const lane = await scope.loadLane(laneId);
479
+
480
+ if (!(lane !== null && lane !== void 0 && lane.readmeComponent)) {
481
+ throw new (_bitError().BitError)(`there is no readme component added to the lane ${laneName || currentLaneName}`);
482
+ }
483
+
484
+ const readmeComponentId = await this.workspace.resolveComponentId(lane.readmeComponent.id);
485
+ const existingLaneConfig = (await this.workspace.getSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id)) || {};
486
+
487
+ const remoteLaneIdStr = (lane.remoteLaneId || _laneId().default.from(laneId.name, lane.scope)).toString();
488
+
489
+ if (existingLaneConfig.readme) {
490
+ delete existingLaneConfig.readme[remoteLaneIdStr];
491
+ await this.workspace.removeSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, false);
492
+ await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, existingLaneConfig);
493
+ }
494
+
495
+ lane.setReadmeComponent(undefined);
496
+ await scope.lanes.saveLane(lane);
497
+ await this.workspace.bitMap.write();
498
+ return {
499
+ result: true
500
+ };
501
+ }
502
+
503
+ async addLaneReadme(readmeComponentIdStr, laneName) {
504
+ if (!this.workspace) {
505
+ throw new (_bitError().BitError)(`unable to track a lane readme component outside of Bit workspace`);
506
+ }
507
+
508
+ const readmeComponentId = await this.workspace.resolveComponentId(readmeComponentIdStr);
509
+ const currentLaneName = this.getCurrentLane();
510
+ const readmeComponentBitId = readmeComponentId._legacy;
511
+
512
+ const laneId = laneName && _laneId().default.from(laneName) || _laneId().default.from(currentLaneName);
513
+
514
+ const scope = this.workspace.scope.legacyScope;
515
+ const lane = await scope.loadLane(laneId);
516
+
517
+ if (!lane) {
518
+ return {
519
+ result: false,
520
+ message: `cannot find lane ${laneName}`
521
+ };
522
+ }
523
+
524
+ lane.setReadmeComponent(readmeComponentBitId);
525
+ await scope.lanes.saveLane(lane);
526
+ const existingLaneConfig = (await this.workspace.getSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id)) || {};
527
+
528
+ const remoteLaneIdStr = (lane.remoteLaneId || _laneId().default.from(laneId.name, lane.scope)).toString();
529
+
530
+ if (existingLaneConfig.readme) {
531
+ await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, _objectSpread(_objectSpread({}, existingLaneConfig), {}, {
532
+ readme: _objectSpread(_objectSpread({}, existingLaneConfig.readme), {}, {
533
+ [remoteLaneIdStr]: true
534
+ })
535
+ }));
536
+ } else {
537
+ await this.workspace.addSpecificComponentConfig(readmeComponentId, _lanes().LanesAspect.id, _objectSpread(_objectSpread({}, existingLaneConfig), {}, {
538
+ readme: {
539
+ [remoteLaneIdStr]: true
540
+ }
541
+ }));
542
+ }
543
+
544
+ await this.workspace.bitMap.write();
545
+ return {
546
+ result: true
547
+ };
548
+ }
549
+
354
550
  async getLaneDataOfDefaultLane() {
355
551
  var _this$workspace4;
356
552
 
@@ -375,14 +571,15 @@ class LanesMain {
375
571
  };
376
572
  }
377
573
 
378
- static async provider([cli, scope, workspace, graphql, community, merging]) {
379
- const lanesMain = new LanesMain(workspace, scope, merging);
574
+ static async provider([cli, scope, workspace, graphql, community, merging, component, loggerMain]) {
575
+ const logger = loggerMain.createLogger(_lanes().LanesAspect.id);
576
+ const lanesMain = new LanesMain(workspace, scope, merging, component, logger);
380
577
  const isLegacy = workspace && workspace.consumer.isLegacy;
381
- const switchCmd = new (_switch().SwitchCmd)();
578
+ const switchCmd = new (_switch().SwitchCmd)(lanesMain);
382
579
 
383
580
  if (!isLegacy) {
384
581
  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)];
582
+ 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
583
  cli.register(laneCmd, switchCmd);
387
584
  graphql.register((0, _lanes2().lanesSchema)(lanesMain));
388
585
  }
@@ -394,7 +591,7 @@ class LanesMain {
394
591
 
395
592
  exports.LanesMain = LanesMain;
396
593
  (0, _defineProperty2().default)(LanesMain, "slots", []);
397
- (0, _defineProperty2().default)(LanesMain, "dependencies", [_cli().CLIAspect, _scope().ScopeAspect, _workspace().WorkspaceAspect, _graphql().GraphqlAspect, _community().CommunityAspect, _merging().MergingAspect]);
594
+ (0, _defineProperty2().default)(LanesMain, "dependencies", [_cli().CLIAspect, _scope().ScopeAspect, _workspace().WorkspaceAspect, _graphql().GraphqlAspect, _community().CommunityAspect, _merging().MergingAspect, _component().default, _logger().LoggerAspect]);
398
595
  (0, _defineProperty2().default)(LanesMain, "runtime", _cli().MainRuntime);
399
596
 
400
597
  _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","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 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 { 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,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"]}
@@ -0,0 +1,32 @@
1
+ import { BitId } from '@teambit/legacy-bit-id';
2
+ import { LaneComponent } from '@teambit/legacy/dist/scope/models/lane';
3
+ import { CheckoutProps } from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';
4
+ import { ApplyVersionResults } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
5
+ import { Workspace } from '@teambit/workspace';
6
+ import { Logger } from '@teambit/logger';
7
+ export declare type SwitchProps = {
8
+ laneName: string;
9
+ remoteScope?: string;
10
+ ids?: BitId[];
11
+ existingOnWorkspaceOnly: boolean;
12
+ localLaneName?: string;
13
+ remoteLaneScope?: string;
14
+ remoteLaneName?: string;
15
+ remoteLaneComponents?: LaneComponent[];
16
+ localTrackedLane?: string;
17
+ newLaneName?: string;
18
+ };
19
+ export declare class LaneSwitcher {
20
+ private workspace;
21
+ private logger;
22
+ private switchProps;
23
+ private checkoutProps;
24
+ private consumer;
25
+ constructor(workspace: Workspace, logger: Logger, switchProps: SwitchProps, checkoutProps: CheckoutProps);
26
+ switch(): Promise<ApplyVersionResults>;
27
+ private populateSwitchProps;
28
+ private populatePropsAccordingToRemoteLane;
29
+ private populatePropsAccordingToLocalLane;
30
+ private getAllComponentsStatus;
31
+ private saveLanesData;
32
+ }