@teambit/lanes 0.0.295 → 0.0.298
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.
- package/dist/create-lane.d.ts +3 -0
- package/dist/create-lane.js +102 -0
- package/dist/create-lane.js.map +1 -0
- package/dist/lane.cmd.js +6 -2
- package/dist/lane.cmd.js.map +1 -1
- package/dist/lanes.main.runtime.js +11 -11
- package/dist/lanes.main.runtime.js.map +1 -1
- package/dist/lanes.ui.runtime.d.ts +2 -3
- package/dist/lanes.ui.runtime.js +40 -12
- package/dist/lanes.ui.runtime.js.map +1 -1
- package/dist/switch-lanes.d.ts +2 -2
- package/dist/switch-lanes.js +60 -54
- package/dist/switch-lanes.js.map +1 -1
- package/lanes.ui.runtime.tsx +37 -13
- package/package-tar/teambit-lanes-0.0.298.tgz +0 -0
- package/package.json +17 -18
- package/{preview-1651461816534.js → preview-1651721125153.js} +2 -2
- package/package-tar/teambit-lanes-0.0.295.tgz +0 -0
@@ -0,0 +1,102 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
require("core-js/modules/es.promise.js");
|
6
|
+
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
exports.createLane = createLane;
|
11
|
+
|
12
|
+
function _bitError() {
|
13
|
+
const data = require("@teambit/bit-error");
|
14
|
+
|
15
|
+
_bitError = function () {
|
16
|
+
return data;
|
17
|
+
};
|
18
|
+
|
19
|
+
return data;
|
20
|
+
}
|
21
|
+
|
22
|
+
function _bitId() {
|
23
|
+
const data = require("@teambit/legacy/dist/bit-id");
|
24
|
+
|
25
|
+
_bitId = function () {
|
26
|
+
return data;
|
27
|
+
};
|
28
|
+
|
29
|
+
return data;
|
30
|
+
}
|
31
|
+
|
32
|
+
function _lane() {
|
33
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/scope/models/lane"));
|
34
|
+
|
35
|
+
_lane = function () {
|
36
|
+
return data;
|
37
|
+
};
|
38
|
+
|
39
|
+
return data;
|
40
|
+
}
|
41
|
+
|
42
|
+
function _workspaceLane() {
|
43
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/bit-map/workspace-lane"));
|
44
|
+
|
45
|
+
_workspaceLane = function () {
|
46
|
+
return data;
|
47
|
+
};
|
48
|
+
|
49
|
+
return data;
|
50
|
+
}
|
51
|
+
|
52
|
+
async function createLane(consumer, laneName, remoteLane) {
|
53
|
+
const lanes = await consumer.scope.listLanes();
|
54
|
+
|
55
|
+
if (lanes.find(lane => lane.name === laneName)) {
|
56
|
+
throw new (_bitError().BitError)(`lane "${laneName}" already exists, to switch to this lane, please use "bit switch" command`);
|
57
|
+
}
|
58
|
+
|
59
|
+
if (!isValidLaneName(laneName)) {
|
60
|
+
throw new (_bitError().BitError)(`lane "${laneName}" has invalid characters. lane name can only contain alphanumeric, lowercase characters, and the following ["-", "_", "$", "!"]`);
|
61
|
+
}
|
62
|
+
|
63
|
+
const getDataToPopulateLaneObjectIfNeeded = async () => {
|
64
|
+
if (remoteLane) return remoteLane.components; // when branching from one lane to another, copy components from the origin lane
|
65
|
+
// when branching from main, no need to copy anything
|
66
|
+
|
67
|
+
const currentLaneObject = await consumer.getCurrentLaneObject();
|
68
|
+
return currentLaneObject ? currentLaneObject.components : [];
|
69
|
+
};
|
70
|
+
|
71
|
+
const getDataToPopulateWorkspaceLaneIfNeeded = () => {
|
72
|
+
if (remoteLane) return new (_bitId().BitIds)(); // if remoteLane, this got created when importing a remote lane
|
73
|
+
// when branching from one lane to another, copy components from the origin workspace-lane
|
74
|
+
// when branching from main, no need to copy anything
|
75
|
+
|
76
|
+
const currentWorkspaceLane = consumer.bitMap.workspaceLane;
|
77
|
+
return currentWorkspaceLane ? currentWorkspaceLane.ids : new (_bitId().BitIds)();
|
78
|
+
};
|
79
|
+
|
80
|
+
const newLane = remoteLane ? _lane().default.from({
|
81
|
+
name: laneName,
|
82
|
+
hash: remoteLane.hash().toString(),
|
83
|
+
log: remoteLane.log
|
84
|
+
}) : _lane().default.create(laneName);
|
85
|
+
const dataToPopulate = await getDataToPopulateLaneObjectIfNeeded();
|
86
|
+
newLane.setLaneComponents(dataToPopulate);
|
87
|
+
await consumer.scope.lanes.saveLane(newLane);
|
88
|
+
|
89
|
+
const workspaceConfig = _workspaceLane().default.load(laneName, consumer.scope.getPath());
|
90
|
+
|
91
|
+
workspaceConfig.ids = getDataToPopulateWorkspaceLaneIfNeeded();
|
92
|
+
await workspaceConfig.write();
|
93
|
+
return newLane;
|
94
|
+
}
|
95
|
+
|
96
|
+
function isValidLaneName(val) {
|
97
|
+
if (typeof val !== 'string') return false; // @todo: should we allow slash?
|
98
|
+
|
99
|
+
return /^[$\-_!a-z0-9]+$/.test(val);
|
100
|
+
}
|
101
|
+
|
102
|
+
//# sourceMappingURL=create-lane.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["create-lane.ts"],"names":["createLane","consumer","laneName","remoteLane","lanes","scope","listLanes","find","lane","name","BitError","isValidLaneName","getDataToPopulateLaneObjectIfNeeded","components","currentLaneObject","getCurrentLaneObject","getDataToPopulateWorkspaceLaneIfNeeded","BitIds","currentWorkspaceLane","bitMap","workspaceLane","ids","newLane","Lane","from","hash","toString","log","create","dataToPopulate","setLaneComponents","saveLane","workspaceConfig","WorkspaceLane","load","getPath","write","val","test"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,eAAeA,UAAf,CAA0BC,QAA1B,EAA8CC,QAA9C,EAAgEC,UAAhE,EAAkG;AACvG,QAAMC,KAAK,GAAG,MAAMH,QAAQ,CAACI,KAAT,CAAeC,SAAf,EAApB;;AACA,MAAIF,KAAK,CAACG,IAAN,CAAYC,IAAD,IAAUA,IAAI,CAACC,IAAL,KAAcP,QAAnC,CAAJ,EAAkD;AAChD,UAAM,KAAIQ,oBAAJ,EAAc,SAAQR,QAAS,2EAA/B,CAAN;AACD;;AACD,MAAI,CAACS,eAAe,CAACT,QAAD,CAApB,EAAgC;AAC9B,UAAM,KAAIQ,oBAAJ,EACH,SAAQR,QAAS,iIADd,CAAN;AAGD;;AAED,QAAMU,mCAAmC,GAAG,YAAsC;AAChF,QAAIT,UAAJ,EAAgB,OAAOA,UAAU,CAACU,UAAlB,CADgE,CAEhF;AACA;;AACA,UAAMC,iBAAiB,GAAG,MAAMb,QAAQ,CAACc,oBAAT,EAAhC;AACA,WAAOD,iBAAiB,GAAGA,iBAAiB,CAACD,UAArB,GAAkC,EAA1D;AACD,GAND;;AAOA,QAAMG,sCAAsC,GAAG,MAAc;AAC3D,QAAIb,UAAJ,EAAgB,OAAO,KAAIc,eAAJ,GAAP,CAD2C,CACtB;AACrC;AACA;;AACA,UAAMC,oBAAoB,GAAGjB,QAAQ,CAACkB,MAAT,CAAgBC,aAA7C;AACA,WAAOF,oBAAoB,GAAGA,oBAAoB,CAACG,GAAxB,GAA8B,KAAIJ,eAAJ,GAAzD;AACD,GAND;;AAOA,QAAMK,OAAO,GAAGnB,UAAU,GACtBoB,gBAAKC,IAAL,CAAU;AAAEf,IAAAA,IAAI,EAAEP,QAAR;AAAkBuB,IAAAA,IAAI,EAAEtB,UAAU,CAACsB,IAAX,GAAkBC,QAAlB,EAAxB;AAAsDC,IAAAA,GAAG,EAAExB,UAAU,CAACwB;AAAtE,GAAV,CADsB,GAEtBJ,gBAAKK,MAAL,CAAY1B,QAAZ,CAFJ;AAGA,QAAM2B,cAAc,GAAG,MAAMjB,mCAAmC,EAAhE;AACAU,EAAAA,OAAO,CAACQ,iBAAR,CAA0BD,cAA1B;AAEA,QAAM5B,QAAQ,CAACI,KAAT,CAAeD,KAAf,CAAqB2B,QAArB,CAA8BT,OAA9B,CAAN;;AAEA,QAAMU,eAAe,GAAGC,yBAAcC,IAAd,CAAmBhC,QAAnB,EAA6BD,QAAQ,CAACI,KAAT,CAAe8B,OAAf,EAA7B,CAAxB;;AACAH,EAAAA,eAAe,CAACX,GAAhB,GAAsBL,sCAAsC,EAA5D;AACA,QAAMgB,eAAe,CAACI,KAAhB,EAAN;AAEA,SAAOd,OAAP;AACD;;AAED,SAASX,eAAT,CAAyB0B,GAAzB,EAAgD;AAC9C,MAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B,OAAO,KAAP,CADiB,CAE9C;;AACA,SAAO,mBAAmBC,IAAnB,CAAwBD,GAAxB,CAAP;AACD","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport Lane, { LaneComponent } from '@teambit/legacy/dist/scope/models/lane';\nimport WorkspaceLane from '@teambit/legacy/dist/consumer/bit-map/workspace-lane';\n\nexport async function createLane(consumer: Consumer, laneName: string, remoteLane?: Lane): Promise<Lane> {\n const lanes = await consumer.scope.listLanes();\n if (lanes.find((lane) => lane.name === laneName)) {\n throw new BitError(`lane \"${laneName}\" already exists, to switch to this lane, please use \"bit switch\" command`);\n }\n if (!isValidLaneName(laneName)) {\n throw new BitError(\n `lane \"${laneName}\" has invalid characters. lane name can only contain alphanumeric, lowercase characters, and the following [\"-\", \"_\", \"$\", \"!\"]`\n );\n }\n\n const getDataToPopulateLaneObjectIfNeeded = async (): Promise<LaneComponent[]> => {\n if (remoteLane) return remoteLane.components;\n // when branching from one lane to another, copy components from the origin lane\n // when branching from main, no need to copy anything\n const currentLaneObject = await consumer.getCurrentLaneObject();\n return currentLaneObject ? currentLaneObject.components : [];\n };\n const getDataToPopulateWorkspaceLaneIfNeeded = (): BitIds => {\n if (remoteLane) return new BitIds(); // if remoteLane, this got created when importing a remote lane\n // when branching from one lane to another, copy components from the origin workspace-lane\n // when branching from main, no need to copy anything\n const currentWorkspaceLane = consumer.bitMap.workspaceLane;\n return currentWorkspaceLane ? currentWorkspaceLane.ids : new BitIds();\n };\n const newLane = remoteLane\n ? Lane.from({ name: laneName, hash: remoteLane.hash().toString(), log: remoteLane.log })\n : Lane.create(laneName);\n const dataToPopulate = await getDataToPopulateLaneObjectIfNeeded();\n newLane.setLaneComponents(dataToPopulate);\n\n await consumer.scope.lanes.saveLane(newLane);\n\n const workspaceConfig = WorkspaceLane.load(laneName, consumer.scope.getPath());\n workspaceConfig.ids = getDataToPopulateWorkspaceLaneIfNeeded();\n await workspaceConfig.write();\n\n return newLane;\n}\n\nfunction isValidLaneName(val: unknown): boolean {\n if (typeof val !== 'string') return false;\n // @todo: should we allow slash?\n return /^[$\\-_!a-z0-9]+$/.test(val);\n}\n"]}
|
package/dist/lane.cmd.js
CHANGED
@@ -239,6 +239,8 @@ class LaneShowCmd {
|
|
239
239
|
}
|
240
240
|
|
241
241
|
async report([name], laneOptions) {
|
242
|
+
var _onlyLane$log, _onlyLane$log2, _onlyLane$log3;
|
243
|
+
|
242
244
|
const {
|
243
245
|
remote
|
244
246
|
} = laneOptions;
|
@@ -248,7 +250,9 @@ class LaneShowCmd {
|
|
248
250
|
});
|
249
251
|
const onlyLane = lanes[0];
|
250
252
|
const title = `showing information for ${_chalk().default.bold(name)}${outputRemoteLane(onlyLane.remote)}\n`;
|
251
|
-
|
253
|
+
const author = `author: ${((_onlyLane$log = onlyLane.log) === null || _onlyLane$log === void 0 ? void 0 : _onlyLane$log.username) || 'N/A'} <${((_onlyLane$log2 = onlyLane.log) === null || _onlyLane$log2 === void 0 ? void 0 : _onlyLane$log2.email) || 'N/A'}>\n`;
|
254
|
+
const date = (_onlyLane$log3 = onlyLane.log) !== null && _onlyLane$log3 !== void 0 && _onlyLane$log3.date ? `${new Date(parseInt(onlyLane.log.date)).toLocaleString()}\n` : undefined;
|
255
|
+
return title + author + date + outputComponents(onlyLane.components);
|
252
256
|
}
|
253
257
|
|
254
258
|
async json([name], laneOptions) {
|
@@ -388,7 +392,7 @@ class LaneRemoveCmd {
|
|
388
392
|
if (!silent) {
|
389
393
|
const removePromptResult = await (0, _prompts().approveOperation)(); // @ts-ignore
|
390
394
|
|
391
|
-
if (!(0, _yn().default)(removePromptResult.
|
395
|
+
if (!(0, _yn().default)(removePromptResult.shouldProceed)) {
|
392
396
|
throw new (_bitError().BitError)('the operation has been canceled');
|
393
397
|
}
|
394
398
|
}
|
package/dist/lane.cmd.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["lane.cmd.ts"],"names":["LaneListCmd","constructor","lanes","workspace","scope","report","args","laneOptions","details","remote","merged","notMerged","getLanes","showDefaultLane","mergedLanes","filter","l","isMerged","length","chalk","green","map","m","name","join","unmergedLanes","currentLane","getCurrentLane","laneDataOfCurrentLane","find","undefined","currentLaneReadmeComponentStr","outputReadmeComponent","readmeComponent","currentLaneStr","remoteOfCurrentLane","currentLaneComponents","outputComponents","components","outputRemoteLane","availableLanes","laneData","readmeComponentStr","laneTitle","bold","concat","outputFooter","footer","outputCurrentLane","outputAvailableLanes","json","LaneShowCmd","onlyLane","title","LaneCreateCmd","createLaneOptions","result","createLane","remoteScopeOrDefaultScope","remoteScope","localLane","remoteScopeOutput","LaneTrackCmd","localName","remoteName","beforeTrackData","afterTrackData","trackLane","remoteScopeChanges","remoteNameChanges","remoteLane","LaneMergeCmd","ours","theirs","manual","build","existing","existingOnWorkspaceOnly","noSnap","message","snapMessage","keepReadme","BUILD_ON_CI","Boolean","mergeStrategy","BitError","mergeResults","deleteResults","mergeLane","mergeResult","deleteResult","localResult","remoteResult","item","readmeResult","yellow","LaneRemoveCmd","names","force","silent","removePromptResult","shouldRemove","laneResults","removeLanes","LaneImportCmd","switchCmd","lane","skipDependencyInstallation","getAll","LaneCmd","docsDomain","description","LaneRemoveReadmeCmd","laneName","removeLaneReadme","red","LaneAddReadmeCmd","componentId","addLaneReadme","componentsTitle","componentsStr","c","id","toString","head","component"],"mappings":"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","sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport chalk from 'chalk';\nimport yn from 'yn';\nimport { ScopeMain } from '@teambit/scope';\nimport { Workspace } from '@teambit/workspace';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport { getMergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { mergeReport } from '@teambit/merging';\nimport { BUILD_ON_CI, isFeatureEnabled } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { BitError } from '@teambit/bit-error';\nimport { approveOperation } from '@teambit/legacy/dist/prompts';\nimport paintRemoved from '@teambit/legacy/dist/cli/templates/remove-template';\nimport { CreateLaneOptions, LanesMain } from './lanes.main.runtime';\nimport { SwitchCmd } from './switch.cmd';\n\ntype LaneOptions = {\n details?: boolean;\n remote?: string;\n merged?: boolean;\n notMerged?: boolean;\n json?: boolean;\n};\n\nexport class LaneListCmd implements Command {\n name = 'list';\n description = `list lanes`;\n alias = '';\n options = [\n ['d', 'details', 'show more details on the state of each component in each lane'],\n ['j', 'json', 'show lanes details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ['', 'merged', 'show merged lanes'],\n ['', 'not-merged', 'show not merged lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain) {}\n\n async report(args, laneOptions: LaneOptions): Promise<string> {\n const { details, remote, merged, notMerged } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n remote,\n merged,\n notMerged,\n showDefaultLane: true,\n });\n if (merged) {\n const mergedLanes = lanes.filter((l) => l.isMerged);\n if (!mergedLanes.length) return chalk.green('None of the lanes is merged');\n return chalk.green(mergedLanes.map((m) => m.name).join('\\n'));\n }\n if (notMerged) {\n const unmergedLanes = lanes.filter((l) => !l.isMerged);\n if (!unmergedLanes.length) return chalk.green('All lanes are merged');\n return chalk.green(unmergedLanes.map((m) => m.name).join('\\n'));\n }\n const currentLane = this.lanes.getCurrentLane();\n const laneDataOfCurrentLane = currentLane ? lanes.find((l) => l.name === currentLane) : undefined;\n const currentLaneReadmeComponentStr = outputReadmeComponent(laneDataOfCurrentLane?.readmeComponent);\n let currentLaneStr = currentLane ? `current lane - ${chalk.green.green(currentLane as string)}` : '';\n currentLaneStr += currentLaneReadmeComponentStr;\n\n if (details) {\n const remoteOfCurrentLane = laneDataOfCurrentLane ? laneDataOfCurrentLane.remote : null;\n const currentLaneComponents = laneDataOfCurrentLane ? outputComponents(laneDataOfCurrentLane.components) : '';\n if (currentLaneStr) {\n currentLaneStr += `${outputRemoteLane(remoteOfCurrentLane)}\\n${currentLaneComponents}`;\n }\n }\n\n const availableLanes = lanes\n .filter((l) => l.name !== currentLane)\n // @ts-ignore\n .map((laneData) => {\n const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);\n if (details) {\n const laneTitle = `> ${chalk.bold(laneData.name)}${outputRemoteLane(laneData.remote)}\\n`;\n const components = outputComponents(laneData.components);\n return laneTitle + readmeComponentStr.concat('\\n') + components;\n }\n return ` > ${chalk.green(laneData.name)} (${laneData.components.length} components)${readmeComponentStr}`;\n })\n .join('\\n');\n\n const outputFooter = () => {\n let footer = '\\n';\n if (details) {\n footer += 'You can use --merged and --not-merged to see which of the lanes is fully merged.';\n } else {\n footer +=\n \"to get more info on all lanes in workspace use 'bit lane list --details' or 'bit lane show <lane-name>' for a specific lane.\";\n }\n if (!remote && this.workspace) footer += `\\nswitch lanes using 'bit switch <name>'.`;\n\n return footer;\n };\n\n return outputCurrentLane() + outputAvailableLanes() + outputFooter();\n\n function outputCurrentLane() {\n return currentLaneStr ? `${currentLaneStr}\\n` : '';\n }\n\n function outputAvailableLanes() {\n if (!availableLanes) return '';\n return remote ? `${availableLanes}\\n` : `\\nAvailable lanes:\\n${availableLanes}\\n`;\n }\n }\n async json(args, laneOptions: LaneOptions) {\n const { remote, merged = false, notMerged = false } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n remote,\n showDefaultLane: true,\n merged,\n notMerged,\n });\n const currentLane = this.lanes.getCurrentLane();\n return { lanes, currentLane };\n }\n}\n\nexport class LaneShowCmd implements Command {\n name = 'show <name>';\n description = `show lane details`;\n alias = '';\n options = [\n ['j', 'json', 'show the lane details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain) {}\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n const { remote } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n name,\n remote,\n });\n\n const onlyLane = lanes[0];\n const title = `showing information for ${chalk.bold(name)}${outputRemoteLane(onlyLane.remote)}\\n`;\n return title + outputComponents(onlyLane.components);\n }\n\n async json([name]: [string], laneOptions: LaneOptions) {\n const { remote } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n name,\n remote,\n });\n return lanes[0];\n }\n}\n\nexport class LaneCreateCmd implements Command {\n name = 'create <name>';\n description = `create and switch to a new lane`;\n alias = '';\n options = [\n [\n '',\n 'remote-scope <string>',\n 'remote scope where this lane will be exported to (can be changed later with \"bit lane track\")',\n ],\n [\n '',\n 'remote-name <string>',\n 'lane name on the remote, default to the local name (can be changed later with \"bit lane track\")',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([name]: [string], createLaneOptions: CreateLaneOptions): Promise<string> {\n const result = await this.lanes.createLane(name, createLaneOptions);\n const remoteScopeOrDefaultScope = createLaneOptions.remoteScope\n ? `the remote scope ${chalk.bold(createLaneOptions.remoteScope)}`\n : `the default-scope ${chalk.bold(result.remoteScope)}. to change it, please run \"bit lane track\" command`;\n const title = chalk.green(`successfully added and checked out to a new lane ${chalk.bold(result.localLane)}`);\n const remoteScopeOutput = `this lane will be exported to ${remoteScopeOrDefaultScope}`;\n return `${title}\\n${remoteScopeOutput}`;\n }\n}\n\nexport class LaneTrackCmd implements Command {\n name = 'track <local-name> <remote-scope> [remote-name]';\n description = `change the remote scope or remote lane of the local lane`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([localName, remoteScope, remoteName]: [string, string, string]): Promise<string> {\n const { beforeTrackData, afterTrackData } = await this.lanes.trackLane(localName, remoteScope, remoteName);\n const remoteScopeChanges =\n afterTrackData.remoteScope === beforeTrackData?.remoteScope\n ? `the remote-scope has not been changed`\n : `the remote-scope has been changed from ${chalk.bold(\n beforeTrackData?.remoteScope || '<n/a>'\n )} to ${chalk.bold(afterTrackData.remoteScope)}`;\n const remoteNameChanges =\n afterTrackData.remoteLane === beforeTrackData?.remoteLane\n ? `the remote-name has not been changed`\n : `the remote-name has been changed from ${chalk.bold(beforeTrackData?.remoteLane || '<n/a>')} to ${chalk.bold(\n afterTrackData.remoteLane\n )}`;\n\n return `${remoteScopeChanges}\\n${remoteNameChanges}`;\n }\n}\n\nexport class LaneMergeCmd implements Command {\n name = 'merge <lane>';\n description = `merge a local or a remote lane`;\n alias = '';\n options = [\n ['', 'remote <name>', 'remote scope name'],\n ['', 'ours', 'in case of a conflict, override the used version with the current modification'],\n ['', 'theirs', 'in case of a conflict, override the current modification with the specified version'],\n ['', 'manual', 'in case of a conflict, leave the files with a conflict state to resolve them manually later'],\n ['', 'existing', 'checkout only components in a lane that exist in the workspace'],\n ['', 'no-snap', 'do not auto snap in case the merge completed without conflicts'],\n ['', 'build', 'in case of snap during the merge, run the build-pipeline (similar to bit snap --build)'],\n ['m', 'message <message>', 'override the default message for the auto snap'],\n ['', 'keep-readme', 'skip deleting the lane readme component after merging'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [name]: [string],\n {\n ours = false,\n theirs = false,\n manual = false,\n remote: remoteName,\n build,\n existing: existingOnWorkspaceOnly = false,\n noSnap = false,\n message: snapMessage = '',\n keepReadme = false,\n }: {\n ours: boolean;\n theirs: boolean;\n manual: boolean;\n remote?: string;\n existing?: boolean;\n build?: boolean;\n noSnap: boolean;\n message: string;\n keepReadme?: boolean;\n }\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n const mergeStrategy = getMergeStrategy(ours, theirs, manual);\n if (noSnap && snapMessage) throw new BitError('unable to use \"noSnap\" and \"message\" flags together');\n\n const { mergeResults, deleteResults } = await this.lanes.mergeLane(name, {\n // @ts-ignore\n remoteName,\n build,\n // @ts-ignore\n mergeStrategy,\n existingOnWorkspaceOnly,\n noSnap,\n snapMessage,\n keepReadme,\n });\n\n const mergeResult = `${mergeReport(mergeResults)}`;\n const deleteResult = `${deleteResults.localResult ? paintRemoved(deleteResults.localResult, false) : ''}${(\n deleteResults.remoteResult || []\n ).map((item) => paintRemoved(item, true))}${\n (deleteResults.readmeResult && chalk.yellow(deleteResults.readmeResult)) || ''\n }\\n`;\n return mergeResult + deleteResult;\n }\n}\n\nexport class LaneRemoveCmd implements Command {\n name = 'remove <lane...>';\n description = `remove lanes`;\n alias = '';\n options = [\n ['r', 'remote', 'remove a remote lane (in the lane arg, use remote/lane-id syntax)'],\n [\n 'f',\n 'force',\n 'removes the component from the scope, even if used as a dependency. WARNING: components that depend on this component will corrupt',\n ],\n ['s', 'silent', 'skip confirmation'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [names]: [string[]],\n {\n remote = false,\n force = false,\n silent = false,\n }: {\n remote: boolean;\n force: boolean;\n silent: boolean;\n }\n ): Promise<string> {\n if (!silent) {\n const removePromptResult = await approveOperation();\n // @ts-ignore\n if (!yn(removePromptResult.shouldRemove)) {\n throw new BitError('the operation has been canceled');\n }\n }\n const laneResults = await this.lanes.removeLanes(names, { remote, force });\n return chalk.green(`successfully removed the following lane(s): ${chalk.bold(laneResults.join(', '))}`);\n }\n}\n\nexport class LaneImportCmd implements Command {\n name = 'import <lane>';\n description = `import a remote lane to your workspace`;\n alias = '';\n options = [\n ['', 'skip-dependency-installation', 'do not install packages of the imported components'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private switchCmd: SwitchCmd) {}\n\n async report(\n [lane]: [string],\n { skipDependencyInstallation = false }: { skipDependencyInstallation: boolean }\n ): Promise<string> {\n return this.switchCmd.report([lane], { getAll: true, skipDependencyInstallation });\n }\n}\n\nexport class LaneCmd implements Command {\n name = 'lane [name]';\n shortDescription = 'show lanes details';\n description: string;\n alias = '';\n options = [\n ['d', 'details', 'show more details on the state of each component in each lane'],\n ['j', 'json', 'show lanes details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ['', 'merged', 'show merged lanes'],\n ['', 'not-merged', 'show not merged lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n commands: Command[] = [];\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain, docsDomain: string) {\n this.description = `show lanes details\nhttps://${docsDomain}/components/lanes`;\n }\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n return new LaneListCmd(this.lanes, this.workspace, this.scope).report([name], laneOptions);\n }\n}\n\nexport class LaneRemoveReadmeCmd implements Command {\n name = 'remove-readme [laneName]';\n description = 'EXPERIMENTAL. remove lane readme component';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName]: [string]): Promise<string> {\n const { result, message } = await this.lanes.removeLaneReadme(laneName);\n\n if (result) {\n return chalk.green(\n `the readme component has been successfully removed from the lane ${laneName || this.lanes.getCurrentLane()}`\n );\n }\n\n return chalk.red(`${message}\\n`);\n }\n}\n\nexport class LaneAddReadmeCmd implements Command {\n name = 'add-readme <componentId> [laneName]';\n description = 'EXPERIMENTAL. add lane readme component';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report([componentId, laneName]: [string, string]): Promise<string> {\n const { result, message } = await this.lanes.addLaneReadme(componentId, laneName);\n\n if (result)\n return chalk.green(\n `the component ${componentId} has been successfully added as the readme component for the lane ${\n laneName || this.lanes.getCurrentLane()\n }`\n );\n\n return chalk.red(\n `${message || ''}\\nthe component ${componentId} could not be added as a readme component for the lane ${\n laneName || this.lanes.getCurrentLane()\n }`\n );\n }\n}\n\nfunction outputComponents(components: LaneData['components']): string {\n const componentsTitle = `\\t${chalk.bold(`components (${components.length})`)}\\n`;\n const componentsStr = components.map((c) => `\\t ${c.id.toString()} - ${c.head}`).join('\\n');\n return componentsTitle + componentsStr;\n}\n\nfunction outputReadmeComponent(component: LaneData['readmeComponent']): string {\n if (!component) return '';\n return `\\n\\t${`${chalk.yellow('readme component')}\\n\\t ${component.id} - ${\n component.head ||\n `(unsnapped)\\n\\t(\"use bit snap ${component.id.name}\" to snap the readme component on the lane before exporting)`\n }`}\\n`;\n}\n\nfunction outputRemoteLane(remoteLane: string | null | undefined): string {\n if (!remoteLane) return '';\n return ` - (remote lane - ${remoteLane})`;\n}\n"]}
|
1
|
+
{"version":3,"sources":["lane.cmd.ts"],"names":["LaneListCmd","constructor","lanes","workspace","scope","report","args","laneOptions","details","remote","merged","notMerged","getLanes","showDefaultLane","mergedLanes","filter","l","isMerged","length","chalk","green","map","m","name","join","unmergedLanes","currentLane","getCurrentLane","laneDataOfCurrentLane","find","undefined","currentLaneReadmeComponentStr","outputReadmeComponent","readmeComponent","currentLaneStr","remoteOfCurrentLane","currentLaneComponents","outputComponents","components","outputRemoteLane","availableLanes","laneData","readmeComponentStr","laneTitle","bold","concat","outputFooter","footer","outputCurrentLane","outputAvailableLanes","json","LaneShowCmd","onlyLane","title","author","log","username","email","date","Date","parseInt","toLocaleString","LaneCreateCmd","createLaneOptions","result","createLane","remoteScopeOrDefaultScope","remoteScope","localLane","remoteScopeOutput","LaneTrackCmd","localName","remoteName","beforeTrackData","afterTrackData","trackLane","remoteScopeChanges","remoteNameChanges","remoteLane","LaneMergeCmd","ours","theirs","manual","build","existing","existingOnWorkspaceOnly","noSnap","message","snapMessage","keepReadme","BUILD_ON_CI","Boolean","mergeStrategy","BitError","mergeResults","deleteResults","mergeLane","mergeResult","deleteResult","localResult","remoteResult","item","readmeResult","yellow","LaneRemoveCmd","names","force","silent","removePromptResult","shouldProceed","laneResults","removeLanes","LaneImportCmd","switchCmd","lane","skipDependencyInstallation","getAll","LaneCmd","docsDomain","description","LaneRemoveReadmeCmd","laneName","removeLaneReadme","red","LaneAddReadmeCmd","componentId","addLaneReadme","componentsTitle","componentsStr","c","id","toString","head","component"],"mappings":"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","sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport chalk from 'chalk';\nimport yn from 'yn';\nimport { ScopeMain } from '@teambit/scope';\nimport { Workspace } from '@teambit/workspace';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport { getMergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { mergeReport } from '@teambit/merging';\nimport { BUILD_ON_CI, isFeatureEnabled } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { BitError } from '@teambit/bit-error';\nimport { approveOperation } from '@teambit/legacy/dist/prompts';\nimport paintRemoved from '@teambit/legacy/dist/cli/templates/remove-template';\nimport { CreateLaneOptions, LanesMain } from './lanes.main.runtime';\nimport { SwitchCmd } from './switch.cmd';\n\ntype LaneOptions = {\n details?: boolean;\n remote?: string;\n merged?: boolean;\n notMerged?: boolean;\n json?: boolean;\n};\n\nexport class LaneListCmd implements Command {\n name = 'list';\n description = `list lanes`;\n alias = '';\n options = [\n ['d', 'details', 'show more details on the state of each component in each lane'],\n ['j', 'json', 'show lanes details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ['', 'merged', 'show merged lanes'],\n ['', 'not-merged', 'show not merged lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain) {}\n\n async report(args, laneOptions: LaneOptions): Promise<string> {\n const { details, remote, merged, notMerged } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n remote,\n merged,\n notMerged,\n showDefaultLane: true,\n });\n if (merged) {\n const mergedLanes = lanes.filter((l) => l.isMerged);\n if (!mergedLanes.length) return chalk.green('None of the lanes is merged');\n return chalk.green(mergedLanes.map((m) => m.name).join('\\n'));\n }\n if (notMerged) {\n const unmergedLanes = lanes.filter((l) => !l.isMerged);\n if (!unmergedLanes.length) return chalk.green('All lanes are merged');\n return chalk.green(unmergedLanes.map((m) => m.name).join('\\n'));\n }\n const currentLane = this.lanes.getCurrentLane();\n const laneDataOfCurrentLane = currentLane ? lanes.find((l) => l.name === currentLane) : undefined;\n const currentLaneReadmeComponentStr = outputReadmeComponent(laneDataOfCurrentLane?.readmeComponent);\n let currentLaneStr = currentLane ? `current lane - ${chalk.green.green(currentLane as string)}` : '';\n currentLaneStr += currentLaneReadmeComponentStr;\n\n if (details) {\n const remoteOfCurrentLane = laneDataOfCurrentLane ? laneDataOfCurrentLane.remote : null;\n const currentLaneComponents = laneDataOfCurrentLane ? outputComponents(laneDataOfCurrentLane.components) : '';\n if (currentLaneStr) {\n currentLaneStr += `${outputRemoteLane(remoteOfCurrentLane)}\\n${currentLaneComponents}`;\n }\n }\n\n const availableLanes = lanes\n .filter((l) => l.name !== currentLane)\n // @ts-ignore\n .map((laneData) => {\n const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);\n if (details) {\n const laneTitle = `> ${chalk.bold(laneData.name)}${outputRemoteLane(laneData.remote)}\\n`;\n const components = outputComponents(laneData.components);\n return laneTitle + readmeComponentStr.concat('\\n') + components;\n }\n return ` > ${chalk.green(laneData.name)} (${laneData.components.length} components)${readmeComponentStr}`;\n })\n .join('\\n');\n\n const outputFooter = () => {\n let footer = '\\n';\n if (details) {\n footer += 'You can use --merged and --not-merged to see which of the lanes is fully merged.';\n } else {\n footer +=\n \"to get more info on all lanes in workspace use 'bit lane list --details' or 'bit lane show <lane-name>' for a specific lane.\";\n }\n if (!remote && this.workspace) footer += `\\nswitch lanes using 'bit switch <name>'.`;\n\n return footer;\n };\n\n return outputCurrentLane() + outputAvailableLanes() + outputFooter();\n\n function outputCurrentLane() {\n return currentLaneStr ? `${currentLaneStr}\\n` : '';\n }\n\n function outputAvailableLanes() {\n if (!availableLanes) return '';\n return remote ? `${availableLanes}\\n` : `\\nAvailable lanes:\\n${availableLanes}\\n`;\n }\n }\n async json(args, laneOptions: LaneOptions) {\n const { remote, merged = false, notMerged = false } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n remote,\n showDefaultLane: true,\n merged,\n notMerged,\n });\n const currentLane = this.lanes.getCurrentLane();\n return { lanes, currentLane };\n }\n}\n\nexport class LaneShowCmd implements Command {\n name = 'show <name>';\n description = `show lane details`;\n alias = '';\n options = [\n ['j', 'json', 'show the lane details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain) {}\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n const { remote } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n name,\n remote,\n });\n\n const onlyLane = lanes[0];\n const title = `showing information for ${chalk.bold(name)}${outputRemoteLane(onlyLane.remote)}\\n`;\n const author = `author: ${onlyLane.log?.username || 'N/A'} <${onlyLane.log?.email || 'N/A'}>\\n`;\n const date = onlyLane.log?.date ? `${new Date(parseInt(onlyLane.log.date)).toLocaleString()}\\n` : undefined;\n return title + author + date + outputComponents(onlyLane.components);\n }\n\n async json([name]: [string], laneOptions: LaneOptions) {\n const { remote } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n name,\n remote,\n });\n return lanes[0];\n }\n}\n\nexport class LaneCreateCmd implements Command {\n name = 'create <name>';\n description = `create and switch to a new lane`;\n alias = '';\n options = [\n [\n '',\n 'remote-scope <string>',\n 'remote scope where this lane will be exported to (can be changed later with \"bit lane track\")',\n ],\n [\n '',\n 'remote-name <string>',\n 'lane name on the remote, default to the local name (can be changed later with \"bit lane track\")',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([name]: [string], createLaneOptions: CreateLaneOptions): Promise<string> {\n const result = await this.lanes.createLane(name, createLaneOptions);\n const remoteScopeOrDefaultScope = createLaneOptions.remoteScope\n ? `the remote scope ${chalk.bold(createLaneOptions.remoteScope)}`\n : `the default-scope ${chalk.bold(result.remoteScope)}. to change it, please run \"bit lane track\" command`;\n const title = chalk.green(`successfully added and checked out to a new lane ${chalk.bold(result.localLane)}`);\n const remoteScopeOutput = `this lane will be exported to ${remoteScopeOrDefaultScope}`;\n return `${title}\\n${remoteScopeOutput}`;\n }\n}\n\nexport class LaneTrackCmd implements Command {\n name = 'track <local-name> <remote-scope> [remote-name]';\n description = `change the remote scope or remote lane of the local lane`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([localName, remoteScope, remoteName]: [string, string, string]): Promise<string> {\n const { beforeTrackData, afterTrackData } = await this.lanes.trackLane(localName, remoteScope, remoteName);\n const remoteScopeChanges =\n afterTrackData.remoteScope === beforeTrackData?.remoteScope\n ? `the remote-scope has not been changed`\n : `the remote-scope has been changed from ${chalk.bold(\n beforeTrackData?.remoteScope || '<n/a>'\n )} to ${chalk.bold(afterTrackData.remoteScope)}`;\n const remoteNameChanges =\n afterTrackData.remoteLane === beforeTrackData?.remoteLane\n ? `the remote-name has not been changed`\n : `the remote-name has been changed from ${chalk.bold(beforeTrackData?.remoteLane || '<n/a>')} to ${chalk.bold(\n afterTrackData.remoteLane\n )}`;\n\n return `${remoteScopeChanges}\\n${remoteNameChanges}`;\n }\n}\n\nexport class LaneMergeCmd implements Command {\n name = 'merge <lane>';\n description = `merge a local or a remote lane`;\n alias = '';\n options = [\n ['', 'remote <name>', 'remote scope name'],\n ['', 'ours', 'in case of a conflict, override the used version with the current modification'],\n ['', 'theirs', 'in case of a conflict, override the current modification with the specified version'],\n ['', 'manual', 'in case of a conflict, leave the files with a conflict state to resolve them manually later'],\n ['', 'existing', 'checkout only components in a lane that exist in the workspace'],\n ['', 'no-snap', 'do not auto snap in case the merge completed without conflicts'],\n ['', 'build', 'in case of snap during the merge, run the build-pipeline (similar to bit snap --build)'],\n ['m', 'message <message>', 'override the default message for the auto snap'],\n ['', 'keep-readme', 'skip deleting the lane readme component after merging'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [name]: [string],\n {\n ours = false,\n theirs = false,\n manual = false,\n remote: remoteName,\n build,\n existing: existingOnWorkspaceOnly = false,\n noSnap = false,\n message: snapMessage = '',\n keepReadme = false,\n }: {\n ours: boolean;\n theirs: boolean;\n manual: boolean;\n remote?: string;\n existing?: boolean;\n build?: boolean;\n noSnap: boolean;\n message: string;\n keepReadme?: boolean;\n }\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n const mergeStrategy = getMergeStrategy(ours, theirs, manual);\n if (noSnap && snapMessage) throw new BitError('unable to use \"noSnap\" and \"message\" flags together');\n\n const { mergeResults, deleteResults } = await this.lanes.mergeLane(name, {\n // @ts-ignore\n remoteName,\n build,\n // @ts-ignore\n mergeStrategy,\n existingOnWorkspaceOnly,\n noSnap,\n snapMessage,\n keepReadme,\n });\n\n const mergeResult = `${mergeReport(mergeResults)}`;\n const deleteResult = `${deleteResults.localResult ? paintRemoved(deleteResults.localResult, false) : ''}${(\n deleteResults.remoteResult || []\n ).map((item) => paintRemoved(item, true))}${\n (deleteResults.readmeResult && chalk.yellow(deleteResults.readmeResult)) || ''\n }\\n`;\n return mergeResult + deleteResult;\n }\n}\n\nexport class LaneRemoveCmd implements Command {\n name = 'remove <lane...>';\n description = `remove lanes`;\n alias = '';\n options = [\n ['r', 'remote', 'remove a remote lane (in the lane arg, use remote/lane-id syntax)'],\n [\n 'f',\n 'force',\n 'removes the component from the scope, even if used as a dependency. WARNING: components that depend on this component will corrupt',\n ],\n ['s', 'silent', 'skip confirmation'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [names]: [string[]],\n {\n remote = false,\n force = false,\n silent = false,\n }: {\n remote: boolean;\n force: boolean;\n silent: boolean;\n }\n ): Promise<string> {\n if (!silent) {\n const removePromptResult = await approveOperation();\n // @ts-ignore\n if (!yn(removePromptResult.shouldProceed)) {\n throw new BitError('the operation has been canceled');\n }\n }\n const laneResults = await this.lanes.removeLanes(names, { remote, force });\n return chalk.green(`successfully removed the following lane(s): ${chalk.bold(laneResults.join(', '))}`);\n }\n}\n\nexport class LaneImportCmd implements Command {\n name = 'import <lane>';\n description = `import a remote lane to your workspace`;\n alias = '';\n options = [\n ['', 'skip-dependency-installation', 'do not install packages of the imported components'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private switchCmd: SwitchCmd) {}\n\n async report(\n [lane]: [string],\n { skipDependencyInstallation = false }: { skipDependencyInstallation: boolean }\n ): Promise<string> {\n return this.switchCmd.report([lane], { getAll: true, skipDependencyInstallation });\n }\n}\n\nexport class LaneCmd implements Command {\n name = 'lane [name]';\n shortDescription = 'show lanes details';\n description: string;\n alias = '';\n options = [\n ['d', 'details', 'show more details on the state of each component in each lane'],\n ['j', 'json', 'show lanes details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ['', 'merged', 'show merged lanes'],\n ['', 'not-merged', 'show not merged lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n commands: Command[] = [];\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain, docsDomain: string) {\n this.description = `show lanes details\nhttps://${docsDomain}/components/lanes`;\n }\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n return new LaneListCmd(this.lanes, this.workspace, this.scope).report([name], laneOptions);\n }\n}\n\nexport class LaneRemoveReadmeCmd implements Command {\n name = 'remove-readme [laneName]';\n description = 'EXPERIMENTAL. remove lane readme component';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName]: [string]): Promise<string> {\n const { result, message } = await this.lanes.removeLaneReadme(laneName);\n\n if (result) {\n return chalk.green(\n `the readme component has been successfully removed from the lane ${laneName || this.lanes.getCurrentLane()}`\n );\n }\n\n return chalk.red(`${message}\\n`);\n }\n}\n\nexport class LaneAddReadmeCmd implements Command {\n name = 'add-readme <componentId> [laneName]';\n description = 'EXPERIMENTAL. add lane readme component';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report([componentId, laneName]: [string, string]): Promise<string> {\n const { result, message } = await this.lanes.addLaneReadme(componentId, laneName);\n\n if (result)\n return chalk.green(\n `the component ${componentId} has been successfully added as the readme component for the lane ${\n laneName || this.lanes.getCurrentLane()\n }`\n );\n\n return chalk.red(\n `${message || ''}\\nthe component ${componentId} could not be added as a readme component for the lane ${\n laneName || this.lanes.getCurrentLane()\n }`\n );\n }\n}\n\nfunction outputComponents(components: LaneData['components']): string {\n const componentsTitle = `\\t${chalk.bold(`components (${components.length})`)}\\n`;\n const componentsStr = components.map((c) => `\\t ${c.id.toString()} - ${c.head}`).join('\\n');\n return componentsTitle + componentsStr;\n}\n\nfunction outputReadmeComponent(component: LaneData['readmeComponent']): string {\n if (!component) return '';\n return `\\n\\t${`${chalk.yellow('readme component')}\\n\\t ${component.id} - ${\n component.head ||\n `(unsnapped)\\n\\t(\"use bit snap ${component.id.name}\" to snap the readme component on the lane before exporting)`\n }`}\\n`;\n}\n\nfunction outputRemoteLane(remoteLane: string | null | undefined): string {\n if (!remoteLane) return '';\n return ` - (remote lane - ${remoteLane})`;\n}\n"]}
|
@@ -101,16 +101,6 @@ function _bitError() {
|
|
101
101
|
return data;
|
102
102
|
}
|
103
103
|
|
104
|
-
function _createLane() {
|
105
|
-
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/lanes/create-lane"));
|
106
|
-
|
107
|
-
_createLane = function () {
|
108
|
-
return data;
|
109
|
-
};
|
110
|
-
|
111
|
-
return data;
|
112
|
-
}
|
113
|
-
|
114
104
|
function _logger() {
|
115
105
|
const data = require("@teambit/logger");
|
116
106
|
|
@@ -231,6 +221,16 @@ function _switchLanes() {
|
|
231
221
|
return data;
|
232
222
|
}
|
233
223
|
|
224
|
+
function _createLane() {
|
225
|
+
const data = require("./create-lane");
|
226
|
+
|
227
|
+
_createLane = function () {
|
228
|
+
return data;
|
229
|
+
};
|
230
|
+
|
231
|
+
return data;
|
232
|
+
}
|
233
|
+
|
234
234
|
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
235
|
|
236
236
|
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; }
|
@@ -292,7 +292,7 @@ class LanesMain {
|
|
292
292
|
throw new (_bitError().BitError)(`unable to create a lane outside of Bit workspace`);
|
293
293
|
}
|
294
294
|
|
295
|
-
await (0, _createLane().
|
295
|
+
await (0, _createLane().createLane)(this.workspace.consumer, name);
|
296
296
|
this.scope.legacyScope.lanes.setCurrentLane(name);
|
297
297
|
const trackLaneData = {
|
298
298
|
localLane: name,
|
@@ -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","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 { 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';\nimport { createLane } from './create-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 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 createLane(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"]}
|
@@ -2,10 +2,9 @@ import { RouteProps } from 'react-router-dom';
|
|
2
2
|
import { Harmony } from '@teambit/harmony';
|
3
3
|
import { UiUI } from '@teambit/ui';
|
4
4
|
import { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
|
5
|
-
import { LanesOrderedNavigationSlot, LaneOverviewLineSlot, LaneOverviewLine } from '@teambit/lanes.ui.lanes';
|
5
|
+
import { LanesOrderedNavigationSlot, LaneOverviewLineSlot, LaneOverviewLine, LanesNavPlugin } from '@teambit/lanes.ui.lanes';
|
6
6
|
import { ScopeUI } from '@teambit/scope';
|
7
7
|
import { WorkspaceUI } from '@teambit/workspace';
|
8
|
-
import { NavLinkProps } from '@teambit/react-router';
|
9
8
|
import { ComponentUI } from '@teambit/component';
|
10
9
|
import { SidebarUI } from '@teambit/sidebar';
|
11
10
|
import { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';
|
@@ -43,7 +42,7 @@ export declare class LanesUI {
|
|
43
42
|
* register a new line beneath the lane overview section.
|
44
43
|
*/
|
45
44
|
registerOverviewLine(...lines: LaneOverviewLine[]): this;
|
46
|
-
registerNavigation(
|
45
|
+
registerNavigation(routes: LanesNavPlugin[]): void;
|
47
46
|
static provider([uiUi, componentUi, workspaceUi, scopeUi, sidebarUi]: [UiUI, ComponentUI, WorkspaceUI, ScopeUI, SidebarUI], _: any, [routeSlot, overviewSlot, navSlot, menuWidgetSlot]: [
|
48
47
|
RouteSlot,
|
49
48
|
LaneOverviewLineSlot,
|
package/dist/lanes.ui.runtime.js
CHANGED
@@ -143,10 +143,26 @@ class LanesUI {
|
|
143
143
|
path: _lanesUi().LanesModel.laneComponentUrlRegex,
|
144
144
|
children: this.componentUi.getComponentUI(this.host)
|
145
145
|
}, {
|
146
|
-
path: _lanesUi().LanesModel.laneRouteUrlRegex
|
147
|
-
children: /*#__PURE__*/_react().default.createElement(_lanesUi().
|
146
|
+
path: `${_lanesUi().LanesModel.laneRouteUrlRegex}/~readme`,
|
147
|
+
children: /*#__PURE__*/_react().default.createElement(_lanesUi().LaneReadmeOverview, {
|
148
|
+
host: this.host,
|
149
|
+
overviewSlot: this.overviewSlot,
|
150
|
+
routeSlot: this.routeSlot
|
151
|
+
})
|
152
|
+
}, {
|
153
|
+
path: `${_lanesUi().LanesModel.laneRouteUrlRegex}/~gallery`,
|
154
|
+
children: /*#__PURE__*/_react().default.createElement(_lanesUi().LaneGallery, {
|
148
155
|
routeSlot: this.routeSlot,
|
149
|
-
overviewSlot: this.overviewSlot
|
156
|
+
overviewSlot: this.overviewSlot,
|
157
|
+
host: this.lanesHost
|
158
|
+
})
|
159
|
+
}, {
|
160
|
+
exact: true,
|
161
|
+
path: `${_lanesUi().LanesModel.laneRouteUrlRegex}`,
|
162
|
+
children: /*#__PURE__*/_react().default.createElement(_lanesUi().LaneReadmeOverview, {
|
163
|
+
host: this.host,
|
164
|
+
overviewSlot: this.overviewSlot,
|
165
|
+
routeSlot: this.routeSlot
|
150
166
|
})
|
151
167
|
}]);
|
152
168
|
this.hostAspect.registerMenuRoutes([{
|
@@ -166,10 +182,25 @@ class LanesUI {
|
|
166
182
|
}
|
167
183
|
|
168
184
|
registerLanesRoutes() {
|
169
|
-
this.registerNavigation({
|
170
|
-
|
171
|
-
|
172
|
-
|
185
|
+
this.registerNavigation([{
|
186
|
+
props: {
|
187
|
+
href: '',
|
188
|
+
children: 'README'
|
189
|
+
},
|
190
|
+
order: 1,
|
191
|
+
hide: () => {
|
192
|
+
var _lanesContext$viewedL;
|
193
|
+
|
194
|
+
const lanesContext = (0, _lanesUi().useLanesContext)();
|
195
|
+
return !(lanesContext !== null && lanesContext !== void 0 && (_lanesContext$viewedL = lanesContext.viewedLane) !== null && _lanesContext$viewedL !== void 0 && _lanesContext$viewedL.readmeComponent);
|
196
|
+
}
|
197
|
+
}, {
|
198
|
+
props: {
|
199
|
+
href: '~gallery',
|
200
|
+
children: 'Gallery'
|
201
|
+
},
|
202
|
+
order: 1
|
203
|
+
}]);
|
173
204
|
}
|
174
205
|
|
175
206
|
registerRoutes() {
|
@@ -191,11 +222,8 @@ class LanesUI {
|
|
191
222
|
return this;
|
192
223
|
}
|
193
224
|
|
194
|
-
registerNavigation(
|
195
|
-
this.navSlot.register(
|
196
|
-
props: nav,
|
197
|
-
order
|
198
|
-
});
|
225
|
+
registerNavigation(routes) {
|
226
|
+
this.navSlot.register(routes);
|
199
227
|
}
|
200
228
|
|
201
229
|
static async provider([uiUi, componentUi, workspaceUi, scopeUi, sidebarUi], _, [routeSlot, overviewSlot, navSlot, menuWidgetSlot], harmony) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["lanes.ui.runtime.tsx"],"names":["LanesUI","constructor","componentUi","routeSlot","navSlot","menuWidgetSlot","overviewSlot","workspace","scope","children","hostAspect","lanesHost","host","WorkspaceAspect","id","ScopeAspect","registerHostAspectRoutes","registerRoutes","path","LanesModel","laneComponentUrlRegex","getComponentUI","laneRouteUrlRegex","registerMenuRoutes","getMenu","registerMenuWidget","menuItems","register","registerLanesRoutes","registerNavigation","href","registerRoute","route","registerOverviewLine","lines","nav","order","props","provider","uiUi","workspaceUi","scopeUi","sidebarUi","_","harmony","config","String","get","lanesUi","registerRenderHooks","reactContext","renderContext","drawer","LanesDrawer","showScope","registerDrawer","UIAspect","ComponentAspect","SidebarAspect","UIRuntime","Slot","withType","LanesAspect","addRuntime"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\nimport { RouteProps } from 'react-router-dom';\nimport { Slot, Harmony } from '@teambit/harmony';\nimport { UIRuntime, UiUI, UIAspect } from '@teambit/ui';\nimport { LanesAspect } from '@teambit/lanes';\nimport { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport {\n LanesDrawer,\n LanesHost,\n LanesOverview,\n LanesOrderedNavigationSlot,\n LanesModel,\n LanesOverviewMenu,\n ViewedLaneFromUrl,\n LaneOverviewLineSlot,\n LaneOverviewLine,\n UseLaneMenu,\n} from '@teambit/lanes.ui.lanes';\nimport ScopeAspect, { ScopeUI } from '@teambit/scope';\nimport WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';\nimport { NavLinkProps } from '@teambit/react-router';\nimport ComponentAspect, { ComponentUI } from '@teambit/component';\nimport SidebarAspect, { SidebarUI } from '@teambit/sidebar';\nimport { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\n\nexport class LanesUI {\n static dependencies = [UIAspect, ComponentAspect, WorkspaceAspect, ScopeAspect, SidebarAspect];\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<LaneOverviewLineSlot>(),\n Slot.withType<NavigationSlot>(),\n Slot.withType<MenuWidgetSlot>(),\n ];\n\n constructor(\n private componentUi: ComponentUI,\n private routeSlot: RouteSlot,\n private navSlot: LanesOrderedNavigationSlot,\n private menuWidgetSlot: MenuWidgetSlot,\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: LaneOverviewLineSlot,\n private workspace?: WorkspaceUI,\n private scope?: ScopeUI\n ) {\n this.hostAspect = workspace || scope;\n this.lanesHost = workspace ? 'workspace' : 'scope';\n this.host = workspace ? WorkspaceAspect.id : ScopeAspect.id;\n }\n\n private readonly lanesHost: LanesHost;\n private readonly hostAspect?: WorkspaceUI | ScopeUI;\n private readonly host: string;\n\n private registerHostAspectRoutes() {\n if (!this.hostAspect) return;\n this.hostAspect.registerRoutes([\n {\n path: LanesModel.laneComponentUrlRegex,\n children: this.componentUi.getComponentUI(this.host),\n },\n {\n path: LanesModel.laneRouteUrlRegex,\n children: <LanesOverview routeSlot={this.routeSlot} overviewSlot={this.overviewSlot} />,\n },\n ]);\n this.hostAspect.registerMenuRoutes([\n {\n path: LanesModel.laneComponentUrlRegex,\n children: this.componentUi.getMenu(this.host),\n },\n {\n path: LanesModel.laneRouteUrlRegex,\n children: <LanesOverviewMenu navigationSlot={this.navSlot} widgetSlot={this.menuWidgetSlot} />,\n },\n ]);\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n }\n\n private registerLanesRoutes() {\n this.registerNavigation({\n href: '',\n children: 'Gallery',\n });\n }\n\n private registerRoutes() {\n this.registerHostAspectRoutes();\n this.registerLanesRoutes();\n }\n\n private renderContext = ({ children }: { children: ReactNode }) => {\n return <ViewedLaneFromUrl>{children}</ViewedLaneFromUrl>;\n };\n\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n /**\n * register a new line beneath the lane overview section.\n */\n registerOverviewLine(...lines: LaneOverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n registerNavigation(nav: NavLinkProps, order?: number) {\n this.navSlot.register({\n props: nav,\n order,\n });\n }\n\n static async provider(\n [uiUi, componentUi, workspaceUi, scopeUi, sidebarUi]: [UiUI, ComponentUI, WorkspaceUI, ScopeUI, SidebarUI],\n _,\n [routeSlot, overviewSlot, navSlot, menuWidgetSlot]: [\n RouteSlot,\n LaneOverviewLineSlot,\n LanesOrderedNavigationSlot,\n MenuWidgetSlot\n ],\n harmony: Harmony\n ) {\n const { config } = harmony;\n const host = String(config.get('teambit.harmony/bit'));\n let workspace: WorkspaceUI | undefined;\n let scope: ScopeUI | undefined;\n if (host === WorkspaceAspect.id) {\n workspace = workspaceUi;\n }\n if (host === ScopeAspect.id) {\n scope = scopeUi;\n }\n const lanesUi = new LanesUI(componentUi, routeSlot, navSlot, overviewSlot, menuWidgetSlot, workspace, scope);\n uiUi.registerRenderHooks({ reactContext: lanesUi.renderContext });\n const drawer = new LanesDrawer({ showScope: lanesUi.lanesHost === 'workspace' });\n sidebarUi.registerDrawer(drawer);\n lanesUi.registerRoutes();\n lanesUi.registerMenuWidget(() => <UseLaneMenu host={lanesUi.lanesHost} />);\n return lanesUi;\n }\n}\n\nexport default LanesUI;\n\nLanesAspect.addRuntime(LanesUI);\n"]}
|
1
|
+
{"version":3,"sources":["lanes.ui.runtime.tsx"],"names":["LanesUI","constructor","componentUi","routeSlot","navSlot","menuWidgetSlot","overviewSlot","workspace","scope","children","hostAspect","lanesHost","host","WorkspaceAspect","id","ScopeAspect","registerHostAspectRoutes","registerRoutes","path","LanesModel","laneComponentUrlRegex","getComponentUI","laneRouteUrlRegex","exact","registerMenuRoutes","getMenu","registerMenuWidget","menuItems","register","registerLanesRoutes","registerNavigation","props","href","order","hide","lanesContext","viewedLane","readmeComponent","registerRoute","route","registerOverviewLine","lines","routes","provider","uiUi","workspaceUi","scopeUi","sidebarUi","_","harmony","config","String","get","lanesUi","registerRenderHooks","reactContext","renderContext","drawer","LanesDrawer","showScope","registerDrawer","UIAspect","ComponentAspect","SidebarAspect","UIRuntime","Slot","withType","LanesAspect","addRuntime"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\nimport { RouteProps } from 'react-router-dom';\nimport { Slot, Harmony } from '@teambit/harmony';\nimport { UIRuntime, UiUI, UIAspect } from '@teambit/ui';\nimport { LanesAspect } from '@teambit/lanes';\nimport { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport {\n LanesDrawer,\n LanesHost,\n LaneGallery,\n LanesOrderedNavigationSlot,\n LanesModel,\n LanesOverviewMenu,\n ViewedLaneFromUrl,\n LaneOverviewLineSlot,\n LaneOverviewLine,\n UseLaneMenu,\n useLanesContext,\n LanesNavPlugin,\n LaneReadmeOverview,\n} from '@teambit/lanes.ui.lanes';\nimport ScopeAspect, { ScopeUI } from '@teambit/scope';\nimport WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';\nimport ComponentAspect, { ComponentUI } from '@teambit/component';\nimport SidebarAspect, { SidebarUI } from '@teambit/sidebar';\nimport { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\n\nexport class LanesUI {\n static dependencies = [UIAspect, ComponentAspect, WorkspaceAspect, ScopeAspect, SidebarAspect];\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<LaneOverviewLineSlot>(),\n Slot.withType<NavigationSlot>(),\n Slot.withType<MenuWidgetSlot>(),\n ];\n\n constructor(\n private componentUi: ComponentUI,\n private routeSlot: RouteSlot,\n private navSlot: LanesOrderedNavigationSlot,\n private menuWidgetSlot: MenuWidgetSlot,\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: LaneOverviewLineSlot,\n private workspace?: WorkspaceUI,\n private scope?: ScopeUI\n ) {\n this.hostAspect = workspace || scope;\n this.lanesHost = workspace ? 'workspace' : 'scope';\n this.host = workspace ? WorkspaceAspect.id : ScopeAspect.id;\n }\n\n private readonly lanesHost: LanesHost;\n private readonly hostAspect?: WorkspaceUI | ScopeUI;\n private readonly host: string;\n\n private registerHostAspectRoutes() {\n if (!this.hostAspect) return;\n this.hostAspect.registerRoutes([\n {\n path: LanesModel.laneComponentUrlRegex,\n children: this.componentUi.getComponentUI(this.host),\n },\n {\n path: `${LanesModel.laneRouteUrlRegex}/~readme`,\n children: <LaneReadmeOverview host={this.host} overviewSlot={this.overviewSlot} routeSlot={this.routeSlot} />,\n },\n {\n path: `${LanesModel.laneRouteUrlRegex}/~gallery`,\n children: <LaneGallery routeSlot={this.routeSlot} overviewSlot={this.overviewSlot} host={this.lanesHost}/>,\n },\n {\n exact: true,\n path: `${LanesModel.laneRouteUrlRegex}`,\n children: <LaneReadmeOverview host={this.host} overviewSlot={this.overviewSlot} routeSlot={this.routeSlot} />,\n },\n ]);\n this.hostAspect.registerMenuRoutes([\n {\n path: LanesModel.laneComponentUrlRegex,\n children: this.componentUi.getMenu(this.host),\n },\n {\n path: LanesModel.laneRouteUrlRegex,\n children: <LanesOverviewMenu navigationSlot={this.navSlot} widgetSlot={this.menuWidgetSlot} />,\n },\n ]);\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n }\n\n private registerLanesRoutes() {\n this.registerNavigation([\n {\n props: {\n href: '',\n children: 'README',\n },\n order: 1,\n hide: () => {\n const lanesContext = useLanesContext();\n return !lanesContext?.viewedLane?.readmeComponent;\n },\n },\n {\n props: {\n href: '~gallery',\n children: 'Gallery',\n },\n order: 1,\n },\n ]);\n }\n\n private registerRoutes() {\n this.registerHostAspectRoutes();\n this.registerLanesRoutes();\n }\n\n private renderContext = ({ children }: { children: ReactNode }) => {\n return <ViewedLaneFromUrl>{children}</ViewedLaneFromUrl>;\n };\n\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n /**\n * register a new line beneath the lane overview section.\n */\n registerOverviewLine(...lines: LaneOverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n registerNavigation(routes: LanesNavPlugin[]) {\n this.navSlot.register(routes);\n }\n\n static async provider(\n [uiUi, componentUi, workspaceUi, scopeUi, sidebarUi]: [UiUI, ComponentUI, WorkspaceUI, ScopeUI, SidebarUI],\n _,\n [routeSlot, overviewSlot, navSlot, menuWidgetSlot]: [\n RouteSlot,\n LaneOverviewLineSlot,\n LanesOrderedNavigationSlot,\n MenuWidgetSlot\n ],\n harmony: Harmony\n ) {\n const { config } = harmony;\n const host = String(config.get('teambit.harmony/bit'));\n let workspace: WorkspaceUI | undefined;\n let scope: ScopeUI | undefined;\n if (host === WorkspaceAspect.id) {\n workspace = workspaceUi;\n }\n if (host === ScopeAspect.id) {\n scope = scopeUi;\n }\n const lanesUi = new LanesUI(componentUi, routeSlot, navSlot, overviewSlot, menuWidgetSlot, workspace, scope);\n uiUi.registerRenderHooks({ reactContext: lanesUi.renderContext });\n const drawer = new LanesDrawer({ showScope: lanesUi.lanesHost === 'workspace' });\n sidebarUi.registerDrawer(drawer);\n lanesUi.registerRoutes();\n lanesUi.registerMenuWidget(() => <UseLaneMenu host={lanesUi.lanesHost} />);\n return lanesUi;\n }\n}\n\nexport default LanesUI;\n\nLanesAspect.addRuntime(LanesUI);\n"]}
|
package/dist/switch-lanes.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { BitId } from '@teambit/legacy-bit-id';
|
2
|
-
import {
|
2
|
+
import { Lane } from '@teambit/legacy/dist/scope/models';
|
3
3
|
import { CheckoutProps } from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';
|
4
4
|
import { ApplyVersionResults } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
|
5
5
|
import { Workspace } from '@teambit/workspace';
|
@@ -12,7 +12,7 @@ export declare type SwitchProps = {
|
|
12
12
|
localLaneName?: string;
|
13
13
|
remoteLaneScope?: string;
|
14
14
|
remoteLaneName?: string;
|
15
|
-
|
15
|
+
remoteLane?: Lane;
|
16
16
|
localTrackedLane?: string;
|
17
17
|
newLaneName?: string;
|
18
18
|
};
|
package/dist/switch-lanes.js
CHANGED
@@ -111,20 +111,30 @@ function _mergeVersion() {
|
|
111
111
|
return data;
|
112
112
|
}
|
113
113
|
|
114
|
-
function
|
115
|
-
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/
|
114
|
+
function _threeWayMerge() {
|
115
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge"));
|
116
116
|
|
117
|
-
|
117
|
+
_threeWayMerge = function () {
|
118
118
|
return data;
|
119
119
|
};
|
120
120
|
|
121
121
|
return data;
|
122
122
|
}
|
123
123
|
|
124
|
-
function
|
125
|
-
const data =
|
124
|
+
function _bitError() {
|
125
|
+
const data = require("@teambit/bit-error");
|
126
126
|
|
127
|
-
|
127
|
+
_bitError = function () {
|
128
|
+
return data;
|
129
|
+
};
|
130
|
+
|
131
|
+
return data;
|
132
|
+
}
|
133
|
+
|
134
|
+
function _createLane() {
|
135
|
+
const data = require("./create-lane");
|
136
|
+
|
137
|
+
_createLane = function () {
|
128
138
|
return data;
|
129
139
|
};
|
130
140
|
|
@@ -216,7 +226,7 @@ class LaneSwitcher {
|
|
216
226
|
}
|
217
227
|
|
218
228
|
if (remoteLaneId.name === _laneId().DEFAULT_LANE) {
|
219
|
-
throw new (
|
229
|
+
throw new (_bitError().BitError)(`invalid remote lane id "${this.switchProps.laneName}". to switch to the main lane on remote,
|
220
230
|
run "bit switch main" and then "bit import".`);
|
221
231
|
} // fetch the remote to update all heads
|
222
232
|
|
@@ -226,7 +236,7 @@ class LaneSwitcher {
|
|
226
236
|
this.switchProps.localLaneName = this.switchProps.newLaneName || localTrackedLane || remoteLaneId.name;
|
227
237
|
|
228
238
|
if (this.consumer.getCurrentLaneId().name === this.switchProps.localLaneName) {
|
229
|
-
throw new (
|
239
|
+
throw new (_bitError().BitError)(`already checked out to "${this.switchProps.localLaneName}"`);
|
230
240
|
}
|
231
241
|
|
232
242
|
const scopeComponentImporter = _scopeComponentsImporter().default.getInstance(this.consumer.scope);
|
@@ -234,21 +244,26 @@ class LaneSwitcher {
|
|
234
244
|
const remoteLaneObjects = await scopeComponentImporter.importFromLanes([remoteLaneId]);
|
235
245
|
|
236
246
|
if (remoteLaneObjects.length === 0) {
|
237
|
-
throw new (
|
247
|
+
throw new (_bitError().BitError)(`invalid lane id "${this.switchProps.laneName}", the lane ${this.switchProps.laneName} doesn't exist.`);
|
238
248
|
}
|
239
249
|
|
240
|
-
|
250
|
+
if (remoteLaneObjects.length > 1) {
|
251
|
+
const allLanes = remoteLaneObjects.map(l => l.id()).join(', ');
|
252
|
+
throw new (_bitError().BitError)(`switching to multiple lanes is not supported. got: ${allLanes}`);
|
253
|
+
}
|
254
|
+
|
255
|
+
const remoteLane = remoteLaneObjects[0];
|
241
256
|
this.switchProps.remoteLaneName = remoteLaneId.name;
|
242
257
|
this.switchProps.laneName = remoteLaneId.name;
|
243
258
|
this.switchProps.remoteLaneScope = remoteLaneId.scope;
|
244
259
|
this.switchProps.remoteScope = remoteLaneId.scope;
|
245
|
-
this.switchProps.ids =
|
246
|
-
this.switchProps.remoteLaneComponents = remoteLaneComponents;
|
260
|
+
this.switchProps.ids = remoteLane.components.map(l => l.id.changeVersion(l.head.toString()));
|
247
261
|
this.switchProps.localTrackedLane = localTrackedLane || undefined;
|
262
|
+
this.switchProps.remoteLane = remoteLane;
|
248
263
|
const laneExistsLocally = lanes.find(l => l.name === this.switchProps.localLaneName);
|
249
264
|
|
250
265
|
if (laneExistsLocally) {
|
251
|
-
throw new (
|
266
|
+
throw new (_bitError().BitError)(`unable to checkout to a remote lane ${this.switchProps.remoteScope}/${this.switchProps.laneName}.
|
252
267
|
the local lane "${this.switchProps.localLaneName}" already exists, please switch to the local lane first by running "bit switch ${this.switchProps.localLaneName}"
|
253
268
|
then, to merge the remote lane into the local lane, run "bit lane merge ${this.switchProps.localLaneName} --remote ${this.switchProps.remoteScope}"`);
|
254
269
|
}
|
@@ -294,55 +309,44 @@ then, to merge the remote lane into the local lane, run "bit lane merge ${this.s
|
|
294
309
|
}
|
295
310
|
|
296
311
|
async saveLanesData() {
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
laneComponents: this.switchProps.remoteLaneComponents
|
303
|
-
});
|
304
|
-
}
|
305
|
-
|
306
|
-
}
|
312
|
+
const saveRemoteLaneToBitmap = () => {
|
313
|
+
if (this.switchProps.remoteLaneScope) {
|
314
|
+
this.consumer.bitMap.setRemoteLane(_laneId().RemoteLaneId.from(this.switchProps.remoteLaneName, this.switchProps.remoteLaneScope)); // add versions to lane
|
315
|
+
}
|
316
|
+
};
|
307
317
|
|
308
|
-
|
318
|
+
const throwIfLaneExists = async () => {
|
319
|
+
const allLanes = await this.consumer.scope.listLanes();
|
309
320
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
}
|
315
|
-
};
|
321
|
+
if (allLanes.find(l => l.name === this.switchProps.localLaneName)) {
|
322
|
+
throw new (_generalError().default)(`unable to checkout to lane "${this.switchProps.localLaneName}".
|
323
|
+
the lane already exists. please switch to the lane and merge`);
|
324
|
+
}
|
325
|
+
};
|
316
326
|
|
317
|
-
|
318
|
-
|
327
|
+
if (this.switchProps.remoteLane) {
|
328
|
+
await throwIfLaneExists();
|
329
|
+
await (0, _createLane().createLane)(this.consumer, this.switchProps.localLaneName, this.switchProps.remoteLane);
|
319
330
|
|
320
|
-
|
321
|
-
|
322
|
-
|
331
|
+
if (!this.switchProps.localTrackedLane) {
|
332
|
+
this.consumer.scope.lanes.trackLane({
|
333
|
+
localLane: this.switchProps.localLaneName,
|
334
|
+
remoteLane: this.switchProps.remoteLaneName,
|
335
|
+
remoteScope: this.switchProps.remoteLaneScope
|
336
|
+
});
|
337
|
+
}
|
323
338
|
}
|
324
|
-
};
|
325
339
|
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
if (opts.addTrackingInfo) {
|
331
|
-
// otherwise, it is tracked already
|
332
|
-
consumer.scope.lanes.trackLane({
|
333
|
-
localLane: opts.localLaneName,
|
334
|
-
remoteLane: opts.remoteLaneName,
|
335
|
-
remoteScope: opts.remoteLaneScope
|
336
|
-
});
|
337
|
-
}
|
340
|
+
saveRemoteLaneToBitmap();
|
341
|
+
this.consumer.scope.lanes.setCurrentLane(this.switchProps.localLaneName);
|
342
|
+
const workspaceLane = this.switchProps.localLaneName === _laneId().DEFAULT_LANE ? null : _workspaceLane().default.load(this.switchProps.localLaneName, this.consumer.scope.path);
|
343
|
+
this.consumer.bitMap.syncWithLanes(workspaceLane);
|
338
344
|
}
|
339
345
|
|
340
|
-
saveRemoteLaneToBitmap();
|
341
|
-
consumer.scope.lanes.setCurrentLane(opts.localLaneName);
|
342
|
-
const workspaceLane = opts.localLaneName === _laneId().DEFAULT_LANE ? null : _workspaceLane().default.load(opts.localLaneName, consumer.scope.path);
|
343
|
-
consumer.bitMap.syncWithLanes(workspaceLane);
|
344
346
|
}
|
345
347
|
|
348
|
+
exports.LaneSwitcher = LaneSwitcher;
|
349
|
+
|
346
350
|
async function getComponentStatus(consumer, id, switchProps) {
|
347
351
|
const componentStatus = {
|
348
352
|
id
|
@@ -409,8 +413,10 @@ async function getComponentStatus(consumer, id, switchProps) {
|
|
409
413
|
|
410
414
|
|
411
415
|
const baseComponent = await modelComponent.loadVersion(currentlyUsedVersion, consumer.scope.objects);
|
412
|
-
const component = await consumer.loadComponent(existingBitMapId);
|
413
|
-
|
416
|
+
const component = await consumer.loadComponent(existingBitMapId); // don't use `consumer.isModified` here. otherwise, if there are dependency changes, the user can't discard them
|
417
|
+
// and won't be able to switch lanes.
|
418
|
+
|
419
|
+
const isModified = await consumer.isComponentSourceCodeModified(baseComponent, component);
|
414
420
|
let mergeResults;
|
415
421
|
|
416
422
|
const isHeadSameAsMain = () => {
|
package/dist/switch-lanes.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["switch-lanes.ts"],"names":["LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","consumer","switch","setStatusLine","populateSwitchProps","allComponentsStatus","getAllComponentsStatus","componentWithConflict","find","component","mergeResults","hasConflicts","promptMergeOptions","mergeStrategy","GeneralError","id","toStringWithoutVersion","failedComponents","filter","componentStatus","failureMessage","map","succeededComponents","componentsResults","componentFromFS","saveLanesData","componentsWithDependencies","c","manyComponentsWriter","ManyComponentsWriter","installNpmPackages","skipNpmInstall","override","verbose","writeDists","ignoreDist","writeConfig","writePackageJson","ignorePackageJson","writeAll","appliedVersionComponents","applyVersionResult","onDestroy","components","lanes","scope","listLanes","isDefaultLane","laneName","DEFAULT_LANE","localLane","lane","name","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","remoteLaneId","RemoteLaneId","parse","e","localTrackedLane","getLocalTrackedLaneByRemoteName","debug","toString","localLaneName","newLaneName","getCurrentLaneId","scopeComponentImporter","ScopeComponentsImporter","getInstance","remoteLaneObjects","importFromLanes","length","remoteLaneComponents","remoteLaneName","remoteLaneScope","remoteScope","ids","l","changeVersion","head","undefined","laneExistsLocally","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","tmp","Tmp","componentsStatusP","getComponentStatus","componentsStatus","Promise","all","clear","err","saveCheckedOutLaneInfo","addTrackingInfo","laneComponents","opts","saveRemoteLaneToBitmap","setRemoteLane","from","throwIfLaneExists","allLanes","trackLane","remoteLane","setCurrentLane","workspaceLane","WorkspaceLane","load","path","syncWithLanes","returnFailure","msg","modelComponent","getModelComponentIfExist","unmerged","objects","unmergedComponents","getEntry","resolved","version","existingBitMapId","getBitIdIfExist","ignoreVersion","componentOnLane","loadVersion","existingOnWorkspaceOnly","componentFromModel","hasVersion","currentlyUsedVersion","baseComponent","loadComponent","isModified","isComponentModified","isHeadSameAsMain","getHead","tagVersion","getTagOfRefIfExists","headVersion","otherComponent","otherLabel","currentComponent","currentLabel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAOA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAmBO,MAAMA,YAAN,CAAmB;AAExBC,EAAAA,WAAW,CACDC,SADC,EAEDC,MAFC,EAGDC,WAHC,EAIDC,aAJC,EAKT;AAAA,SAJQH,SAIR,GAJQA,SAIR;AAAA,SAHQC,MAGR,GAHQA,MAGR;AAAA,SAFQC,WAER,GAFQA,WAER;AAAA,SADQC,aACR,GADQA,aACR;AAAA;AACA,SAAKC,QAAL,GAAgB,KAAKJ,SAAL,CAAeI,QAA/B;AACD;;AAEW,QAANC,MAAM,GAAiC;AAC3C,SAAKJ,MAAL,CAAYK,aAAZ,CAA2B,iBAA3B;AACA,UAAM,KAAKC,mBAAL,EAAN;AACA,UAAMC,mBAAsC,GAAG,MAAM,KAAKC,sBAAL,EAArD;AACA,UAAMC,qBAAqB,GAAGF,mBAAmB,CAACG,IAApB,CAC3BC,SAAD,IAAeA,SAAS,CAACC,YAAV,IAA0BD,SAAS,CAACC,YAAV,CAAuBC,YADpC,CAA9B;;AAGA,QAAIJ,qBAAJ,EAA2B;AACzB,UAAI,CAAC,KAAKP,aAAL,CAAmBY,kBAApB,IAA0C,CAAC,KAAKZ,aAAL,CAAmBa,aAAlE,EAAiF;AAC/E,cAAM,KAAIC,uBAAJ,EACH,4CAA2CP,qBAAqB,CAACQ,EAAtB,CAAyBC,sBAAzB,EAAkD,wHAD1F,CAAN;AAGD;;AACD,UAAI,CAAC,KAAKhB,aAAL,CAAmBa,aAAxB,EAAuC,KAAKb,aAAL,CAAmBa,aAAnB,GAAmC,MAAM,kDAAzC;AACxC;;AACD,UAAMI,gBAAoC,GAAGZ,mBAAmB,CAC7Da,MAD0C,CAClCC,eAAD,IAAqBA,eAAe,CAACC,cADF,EAE1CC,GAF0C,CAErCF,eAAD,KAAsB;AAAEJ,MAAAA,EAAE,EAAEI,eAAe,CAACJ,EAAtB;AAA0BK,MAAAA,cAAc,EAAED,eAAe,CAACC;AAA1D,KAAtB,CAFsC,CAA7C;AAIA,UAAME,mBAAmB,GAAGjB,mBAAmB,CAACa,MAApB,CAA4BC,eAAD,IAAqB,CAACA,eAAe,CAACC,cAAjE,CAA5B,CAnB2C,CAoB3C;AACA;;AACA,UAAMG,iBAAiB,GAAG,MAAM,2BAAUD,mBAAV,EAA+B,CAAC;AAAEP,MAAAA,EAAF;AAAMS,MAAAA,eAAN;AAAuBd,MAAAA;AAAvB,KAAD,KAA2C;AACxG,aAAO,qCAAa,KAAKT,QAAlB,EAA4Bc,EAA5B,EAAgCS,eAAhC,EAAiDd,YAAjD,EAA+D,KAAKV,aAApE,CAAP;AACD,KAF+B,CAAhC;AAIA,yDAA6BsB,mBAA7B,EAAkDC,iBAAlD;AAEA,UAAM,KAAKE,aAAL,EAAN;AAEA,UAAMC,0BAA0B,GAAGH,iBAAiB,CACjDF,GADgC,CAC3BM,CAAD,IAAOA,CAAC,CAAClB,SADmB,EAEhCS,MAFgC,CAExBS,CAAD,IAAOA,CAFkB,CAAnC;AAIA,UAAMC,oBAAoB,GAAG,KAAIC,+BAAJ,EAAyB;AACpD5B,MAAAA,QAAQ,EAAE,KAAKA,QADqC;AAEpDyB,MAAAA,0BAFoD;AAGpDI,MAAAA,kBAAkB,EAAE,CAAC,KAAK9B,aAAL,CAAmB+B,cAHY;AAIpDC,MAAAA,QAAQ,EAAE,IAJ0C;AAKpDC,MAAAA,OAAO,EAAE,KAAKjC,aAAL,CAAmBiC,OALwB;AAMpDC,MAAAA,UAAU,EAAE,CAAC,KAAKlC,aAAL,CAAmBmC,UANoB;AAOpDC,MAAAA,WAAW,EAAE,KAAKpC,aAAL,CAAmBoC,WAPoB;AAQpDC,MAAAA,gBAAgB,EAAE,CAAC,KAAKrC,aAAL,CAAmBsC;AARc,KAAzB,CAA7B;AAUA,UAAMV,oBAAoB,CAACW,QAArB,EAAN;AACA,UAAM,4CAAoBhB,iBAApB,EAAuC,KAAKtB,QAA5C,CAAN;AAEA,UAAMuC,wBAAwB,GAAGjB,iBAAiB,CAACF,GAAlB,CAAuBM,CAAD,IAAOA,CAAC,CAACc,kBAA/B,CAAjC;AAEA,UAAM,KAAKxC,QAAL,CAAcyC,SAAd,EAAN;AAEA,WAAO;AAAEC,MAAAA,UAAU,EAAEH,wBAAd;AAAwCvB,MAAAA;AAAxC,KAAP;AACD;;AAEgC,QAAnBb,mBAAmB,GAAG;AAClC,UAAMwC,KAAK,GAAG,MAAM,KAAK3C,QAAL,CAAc4C,KAAd,CAAoBC,SAApB,EAApB;;AACA,UAAMC,aAAa,GAAG,KAAKhD,WAAL,CAAiBiD,QAAjB,KAA8BC,sBAApD;;AAEA,UAAMC,SAAS,GAAGN,KAAK,CAACpC,IAAN,CAAY2C,IAAD,IAAUA,IAAI,CAACC,IAAL,KAAc,KAAKrD,WAAL,CAAiBiD,QAApD,CAAlB;;AAEA,QAAID,aAAa,IAAIG,SAArB,EAAgC;AAC9B,WAAKG,iCAAL,CAAuCH,SAAvC;AACD,KAFD,MAEO;AACL,YAAM,KAAKI,kCAAL,CAAwCV,KAAxC,CAAN;AACD;AACF;;AAE+C,QAAlCU,kCAAkC,CAACV,KAAD,EAAgB;AAC9D,QAAIW,YAAJ;;AACA,QAAI;AACFA,MAAAA,YAAY,GAAGC,uBAAaC,KAAb,CAAmB,KAAK1D,WAAL,CAAiBiD,QAApC,CAAf;AACD,KAFD,CAEE,OAAOU,CAAP,EAAU;AACV,YAAM,KAAI5C,uBAAJ,EACH,oBAAmB,KAAKf,WAAL,CAAiBiD,QAAS,eAAc,KAAKjD,WAAL,CAAiBiD,QAAS,iBADlF,CAAN;AAGD;;AACD,QAAIO,YAAY,CAACH,IAAb,KAAsBH,sBAA1B,EAAwC;AACtC,YAAM,KAAInC,uBAAJ,EAAkB,2BAA0B,KAAKf,WAAL,CAAiBiD,QAAS;AAClF,mDADY,CAAN;AAED,KAZ6D,CAa9D;;;AACA,UAAMW,gBAAgB,GAAG,KAAK1D,QAAL,CAAc4C,KAAd,CAAoBD,KAApB,CAA0BgB,+BAA1B,CACvBL,YAAY,CAACH,IADU,EAEvBG,YAAY,CAACV,KAFU,CAAzB;AAIA,SAAK/C,MAAL,CAAY+D,KAAZ,CAAmB,qDAAoDN,YAAY,CAACO,QAAb,EAAwB,EAA/F;AACA,SAAK/D,WAAL,CAAiBgE,aAAjB,GAAiC,KAAKhE,WAAL,CAAiBiE,WAAjB,IAAgCL,gBAAhC,IAAoDJ,YAAY,CAACH,IAAlG;;AACA,QAAI,KAAKnD,QAAL,CAAcgE,gBAAd,GAAiCb,IAAjC,KAA0C,KAAKrD,WAAL,CAAiBgE,aAA/D,EAA8E;AAC5E,YAAM,KAAIjD,uBAAJ,EAAkB,2BAA0B,KAAKf,WAAL,CAAiBgE,aAAc,GAA3E,CAAN;AACD;;AACD,UAAMG,sBAAsB,GAAGC,mCAAwBC,WAAxB,CAAoC,KAAKnE,QAAL,CAAc4C,KAAlD,CAA/B;;AACA,UAAMwB,iBAAiB,GAAG,MAAMH,sBAAsB,CAACI,eAAvB,CAAuC,CAACf,YAAD,CAAvC,CAAhC;;AACA,QAAIc,iBAAiB,CAACE,MAAlB,KAA6B,CAAjC,EAAoC;AAClC,YAAM,KAAIzD,uBAAJ,EACH,oBAAmB,KAAKf,WAAL,CAAiBiD,QAAS,eAAc,KAAKjD,WAAL,CAAiBiD,QAAS,iBADlF,CAAN;AAGD;;AACD,UAAMwB,oBAAoB,GAAGH,iBAAiB,CAAC,CAAD,CAAjB,CAAqB1B,UAAlD;AACA,SAAK5C,WAAL,CAAiB0E,cAAjB,GAAkClB,YAAY,CAACH,IAA/C;AACA,SAAKrD,WAAL,CAAiBiD,QAAjB,GAA4BO,YAAY,CAACH,IAAzC;AACA,SAAKrD,WAAL,CAAiB2E,eAAjB,GAAmCnB,YAAY,CAACV,KAAhD;AACA,SAAK9C,WAAL,CAAiB4E,WAAjB,GAA+BpB,YAAY,CAACV,KAA5C;AACA,SAAK9C,WAAL,CAAiB6E,GAAjB,GAAuBJ,oBAAoB,CAACnD,GAArB,CAA0BwD,CAAD,IAAOA,CAAC,CAAC9D,EAAF,CAAK+D,aAAL,CAAmBD,CAAC,CAACE,IAAF,CAAOjB,QAAP,EAAnB,CAAhC,CAAvB;AACA,SAAK/D,WAAL,CAAiByE,oBAAjB,GAAwCA,oBAAxC;AACA,SAAKzE,WAAL,CAAiB4D,gBAAjB,GAAoCA,gBAAgB,IAAIqB,SAAxD;AACA,UAAMC,iBAAiB,GAAGrC,KAAK,CAACpC,IAAN,CAAYqE,CAAD,IAAOA,CAAC,CAACzB,IAAF,KAAW,KAAKrD,WAAL,CAAiBgE,aAA9C,CAA1B;;AACA,QAAIkB,iBAAJ,EAAuB;AACrB,YAAM,KAAInE,uBAAJ,EAAkB,uCAAsC,KAAKf,WAAL,CAAiB4E,WAAY,IAAG,KAAK5E,WAAL,CAAiBiD,QAAS;AAC9H,kBAAkB,KAAKjD,WAAL,CAAiBgE,aAAc,kFAAiF,KAAKhE,WAAL,CAAiBgE,aAAc;AACjK,0EAA0E,KAAKhE,WAAL,CAAiBgE,aAAc,aAAY,KAAKhE,WAAL,CAAiB4E,WAAY,GAFtI,CAAN;AAGD;;AACD,SAAK7E,MAAL,CAAY+D,KAAZ,CAAmB,+CAAnB;AACD;;AAEOR,EAAAA,iCAAiC,CAACH,SAAD,EAA8B;AACrE,SAAKnD,WAAL,CAAiBgE,aAAjB,GAAiC,KAAKhE,WAAL,CAAiBiD,QAAlD;;AACA,QAAI,KAAK/C,QAAL,CAAcgE,gBAAd,GAAiCb,IAAjC,KAA0C,KAAKrD,WAAL,CAAiBiD,QAA/D,EAAyE;AACvE,YAAM,KAAIlC,uBAAJ,EAAkB,2BAA0B,KAAKf,WAAL,CAAiBiD,QAAS,GAAtE,CAAN;AACD;;AACD,QAAI,KAAKjD,WAAL,CAAiBiD,QAAjB,KAA8BC,sBAAlC,EAAgD;AAC9C,WAAKlD,WAAL,CAAiB6E,GAAjB,GAAuB,KAAK3E,QAAL,CAAciF,MAAd,CAAqBC,yCAArB,EAAvB;AACA;AACD;;AACD,QAAI,CAACjC,SAAL,EAAgB;AACd,YAAM,KAAIpC,uBAAJ,EACH,gCAA+B,KAAKf,WAAL,CAAiBiD,QAAS,sDADtD,CAAN;AAGD;;AACD,SAAKjD,WAAL,CAAiB6E,GAAjB,GAAuB1B,SAAS,CAACP,UAAV,CAAqBtB,GAArB,CAA0BM,CAAD,IAAOA,CAAC,CAACZ,EAAF,CAAK+D,aAAL,CAAmBnD,CAAC,CAACoD,IAAF,CAAOjB,QAAP,EAAnB,CAAhC,CAAvB;AACD;;AAEmC,QAAtBxD,sBAAsB,GAA+B;AACjE,UAAM;AAAEsE,MAAAA;AAAF,QAAU,KAAK7E,WAArB;AACA,UAAMqF,GAAG,GAAG,KAAIC,mBAAJ,EAAQ,KAAKpF,QAAL,CAAc4C,KAAtB,CAAZ;;AACA,QAAI;AACF,YAAMyC,iBAAiB,GAAIV,GAAD,CAAiBvD,GAAjB,CAAsBN,EAAD,IAAQwE,kBAAkB,CAAC,KAAKtF,QAAN,EAAgBc,EAAhB,EAAoB,KAAKhB,WAAzB,CAA/C,CAA1B;AACA,YAAMyF,gBAAgB,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYJ,iBAAZ,CAA/B;AACA,YAAMF,GAAG,CAACO,KAAJ,EAAN,CAHE,CAIF;;AACA,aAAOH,gBAAP;AACD,KAND,CAME,OAAOI,GAAP,EAAiB;AACjB,YAAMR,GAAG,CAACO,KAAJ,EAAN;AACA,YAAMC,GAAN;AACD;AACF;;AAC0B,QAAbnE,aAAa,GAAG;AAC5B,UAAMoE,sBAAsB,CAAC,KAAK5F,QAAN,EAAgB;AAC1CyE,MAAAA,eAAe,EAAE,KAAK3E,WAAL,CAAiB2E,eADQ;AAE1CD,MAAAA,cAAc,EAAE,KAAK1E,WAAL,CAAiB0E,cAFS;AAG1CV,MAAAA,aAAa,EAAE,KAAKhE,WAAL,CAAiBgE,aAHU;AAI1C+B,MAAAA,eAAe,EAAE,CAAC,KAAK/F,WAAL,CAAiB4D,gBAJO;AAK1CoC,MAAAA,cAAc,EAAE,KAAKhG,WAAL,CAAiByE;AALS,KAAhB,CAA5B;AAOD;;AApKuB;;;;AAuK1B,eAAeqB,sBAAf,CACE5F,QADF,EAEE+F,IAFF,EASE;AACA,QAAMC,sBAAsB,GAAG,MAAM;AACnC,QAAID,IAAI,CAACtB,eAAT,EAA0B;AACxBzE,MAAAA,QAAQ,CAACiF,MAAT,CAAgBgB,aAAhB,CAA8B1C,uBAAa2C,IAAb,CAAkBH,IAAI,CAACvB,cAAvB,EAAiDuB,IAAI,CAACtB,eAAtD,CAA9B,EADwB,CAExB;AACD;AACF,GALD;;AAMA,QAAM0B,iBAAiB,GAAG,YAAY;AACpC,UAAMC,QAAQ,GAAG,MAAMpG,QAAQ,CAAC4C,KAAT,CAAeC,SAAf,EAAvB;;AACA,QAAIuD,QAAQ,CAAC7F,IAAT,CAAeqE,CAAD,IAAOA,CAAC,CAACzB,IAAF,KAAW4C,IAAI,CAACjC,aAArC,CAAJ,EAAyD;AACvD,YAAM,KAAIjD,uBAAJ,EAAkB,+BAA8BkF,IAAI,CAACjC,aAAc;AAC/E,6DADY,CAAN;AAED;AACF,GAND;;AAQA,MAAIiC,IAAI,CAACtB,eAAT,EAA0B;AACxB,UAAM0B,iBAAiB,EAAvB;AACA,UAAM,2BAAcnG,QAAd,EAAwB+F,IAAI,CAACjC,aAA7B,EAAsDiC,IAAI,CAACD,cAA3D,CAAN;;AACA,QAAIC,IAAI,CAACF,eAAT,EAA0B;AACxB;AACA7F,MAAAA,QAAQ,CAAC4C,KAAT,CAAeD,KAAf,CAAqB0D,SAArB,CAA+B;AAC7BpD,QAAAA,SAAS,EAAE8C,IAAI,CAACjC,aADa;AAE7BwC,QAAAA,UAAU,EAAEP,IAAI,CAACvB,cAFY;AAG7BE,QAAAA,WAAW,EAAEqB,IAAI,CAACtB;AAHW,OAA/B;AAKD;AACF;;AAEDuB,EAAAA,sBAAsB;AACtBhG,EAAAA,QAAQ,CAAC4C,KAAT,CAAeD,KAAf,CAAqB4D,cAArB,CAAoCR,IAAI,CAACjC,aAAzC;AACA,QAAM0C,aAAa,GACjBT,IAAI,CAACjC,aAAL,KAAuBd,sBAAvB,GAAsC,IAAtC,GAA6CyD,yBAAcC,IAAd,CAAmBX,IAAI,CAACjC,aAAxB,EAAiD9D,QAAQ,CAAC4C,KAAT,CAAe+D,IAAhE,CAD/C;AAEA3G,EAAAA,QAAQ,CAACiF,MAAT,CAAgB2B,aAAhB,CAA8BJ,aAA9B;AACD;;AAED,eAAelB,kBAAf,CAAkCtF,QAAlC,EAAsDc,EAAtD,EAAiEhB,WAAjE,EAAqH;AACnH,QAAMoB,eAAgC,GAAG;AAAEJ,IAAAA;AAAF,GAAzC;;AACA,QAAM+F,aAAa,GAAIC,GAAD,IAAiB;AACrC5F,IAAAA,eAAe,CAACC,cAAhB,GAAiC2F,GAAjC;AACA,WAAO5F,eAAP;AACD,GAHD;;AAIA,QAAM6F,cAAc,GAAG,MAAM/G,QAAQ,CAAC4C,KAAT,CAAeoE,wBAAf,CAAwClG,EAAxC,CAA7B;;AACA,MAAI,CAACiG,cAAL,EAAqB;AACnB,WAAOF,aAAa,CAAE,aAAY/F,EAAE,CAAC+C,QAAH,EAAc,qBAA5B,CAApB;AACD;;AACD,QAAMoD,QAAQ,GAAGjH,QAAQ,CAAC4C,KAAT,CAAesE,OAAf,CAAuBC,kBAAvB,CAA0CC,QAA1C,CAAmDtG,EAAE,CAACqC,IAAtD,CAAjB;;AACA,MAAI8D,QAAQ,IAAIA,QAAQ,CAACI,QAAT,KAAsB,KAAtC,EAA6C;AAC3C,WAAOR,aAAa,CACjB,aAAY/F,EAAE,CAACC,sBAAH,EAA4B,uFADvB,CAApB;AAGD;;AACD,QAAMuG,OAAO,GAAGxG,EAAE,CAACwG,OAAnB;;AACA,MAAI,CAACA,OAAL,EAAc;AACZ,WAAOT,aAAa,CAAE,uCAAsC7D,sBAAa,EAArD,CAApB;AACD;;AACD,QAAMuE,gBAAgB,GAAGvH,QAAQ,CAACiF,MAAT,CAAgBuC,eAAhB,CAAgC1G,EAAhC,EAAoC;AAAE2G,IAAAA,aAAa,EAAE;AAAjB,GAApC,CAAzB;AACA,QAAMC,eAAwB,GAAG,MAAMX,cAAc,CAACY,WAAf,CAA2BL,OAA3B,EAAoCtH,QAAQ,CAAC4C,KAAT,CAAesE,OAAnD,CAAvC;;AACA,MAAI,CAACK,gBAAL,EAAuB;AACrB,QAAIzH,WAAW,CAAC8H,uBAAhB,EAAyC;AACvC,aAAOf,aAAa,CAAE,aAAY/F,EAAE,CAACC,sBAAH,EAA4B,0BAA1C,CAApB;AACD;;AACD,WAAO;AAAEQ,MAAAA,eAAe,EAAEwD,SAAnB;AAA8B8C,MAAAA,kBAAkB,EAAEH,eAAlD;AAAmE5G,MAAAA,EAAnE;AAAuEL,MAAAA,YAAY,EAAE;AAArF,KAAP;AACD;;AACD,MAAI,CAAC8G,gBAAgB,CAACO,UAAjB,EAAL,EAAoC;AAClC;AACA;AACA;AACA,WAAO;AAAEvG,MAAAA,eAAe,EAAEwD,SAAnB;AAA8B8C,MAAAA,kBAAkB,EAAEH,eAAlD;AAAmE5G,MAAAA,EAAnE;AAAuEL,MAAAA,YAAY,EAAE;AAArF,KAAP;AACD;;AACD,QAAMsH,oBAAoB,GAAGR,gBAAgB,CAACD,OAA9C;;AACA,MAAIS,oBAAoB,KAAKT,OAA7B,EAAsC;AACpC,WAAOT,aAAa,CAAE,aAAY/F,EAAE,CAACC,sBAAH,EAA4B,0BAAyBuG,OAAQ,EAA3E,CAApB;AACD,GArCkH,CAsCnH;;;AACA,QAAMU,aAAsB,GAAG,MAAMjB,cAAc,CAACY,WAAf,CAA2BI,oBAA3B,EAAiD/H,QAAQ,CAAC4C,KAAT,CAAesE,OAAhE,CAArC;AACA,QAAM1G,SAAS,GAAG,MAAMR,QAAQ,CAACiI,aAAT,CAAuBV,gBAAvB,CAAxB;AACA,QAAMW,UAAU,GAAG,MAAMlI,QAAQ,CAACmI,mBAAT,CAA6BH,aAA7B,EAA4CxH,SAA5C,CAAzB;AACA,MAAIC,YAAJ;;AACA,QAAM2H,gBAAgB,GAAG,MAAM;AAC7B,UAAMtD,IAAI,GAAGiC,cAAc,CAACsB,OAAf,EAAb;AACA,QAAI,CAACvD,IAAL,EAAW,OAAO,KAAP;AACX,QAAI,CAACyC,gBAAgB,CAACD,OAAtB,EAA+B,OAAO,KAAP;AAC/B,UAAMgB,UAAU,GAAGvB,cAAc,CAACwB,mBAAf,CAAmCzD,IAAnC,CAAnB;AACA,UAAM0D,WAAW,GAAGF,UAAU,IAAIxD,IAAI,CAACjB,QAAL,EAAlC;AACA,WAAO0D,gBAAgB,CAACD,OAAjB,KAA6BkB,WAApC;AACD,GAPD;;AAQA,MAAIN,UAAJ,EAAgB;AACd,QAAI,CAACE,gBAAgB,EAArB,EAAyB;AACvB,YAAM,KAAIvH,uBAAJ,EACH,sBAAqBC,EAAE,CAACC,sBAAH,EAA4B,yDAD9C,CAAN;AAGD;;AAED,UAAM0H,cAAuB,GAAG,MAAM1B,cAAc,CAACY,WAAf,CACpCJ,gBAAgB,CAACD,OADmB,EACA;AACpCtH,IAAAA,QAAQ,CAAC4C,KAAT,CAAesE,OAFqB,CAAtC;AAIAzG,IAAAA,YAAY,GAAG,MAAM,8BAAc;AACjCT,MAAAA,QADiC;AAEjCyI,MAAAA,cAFiC;AAGjCC,MAAAA,UAAU,EAAEpB,OAHqB;AAIjCqB,MAAAA,gBAAgB,EAAEnI,SAJe;AAKjCoI,MAAAA,YAAY,EAAG,GAAEb,oBAAqB,WALL;AAMjCC,MAAAA;AANiC,KAAd,CAArB;AAQD,GAtEkH,CAuEnH;;;AACA,SAAO;AAAEzG,IAAAA,eAAe,EAAEf,SAAnB;AAA8BqH,IAAAA,kBAAkB,EAAEH,eAAlD;AAAmE5G,IAAAA,EAAnE;AAAuEL,IAAAA;AAAvE,GAAP;AACD","sourcesContent":["import mapSeries from 'p-map-series';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { RemoteLaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ComponentWithDependencies } from '@teambit/legacy/dist/scope';\nimport { Version, Lane } from '@teambit/legacy/dist/scope/models';\nimport { LaneComponent } from '@teambit/legacy/dist/scope/models/lane';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport WorkspaceLane from '@teambit/legacy/dist/consumer/bit-map/workspace-lane';\nimport {\n applyVersion,\n ComponentStatus,\n CheckoutProps,\n deleteFilesIfNeeded,\n markFilesToBeRemovedIfNeeded,\n} from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport {\n FailedComponents,\n getMergeStrategyInteractive,\n ApplyVersionResults,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport createNewLane from '@teambit/legacy/dist/consumer/lanes/create-lane';\nimport threeWayMerge, {\n MergeResultsThreeWay,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\n\nexport type SwitchProps = {\n laneName: string;\n remoteScope?: string;\n ids?: BitId[];\n existingOnWorkspaceOnly: boolean;\n localLaneName?: string;\n remoteLaneScope?: string;\n remoteLaneName?: string;\n remoteLaneComponents?: LaneComponent[];\n localTrackedLane?: string;\n newLaneName?: string;\n};\n\nexport class LaneSwitcher {\n private consumer: Consumer;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private switchProps: SwitchProps,\n private checkoutProps: CheckoutProps\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n async switch(): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(`switching lanes`);\n await this.populateSwitchProps();\n const allComponentsStatus: ComponentStatus[] = await this.getAllComponentsStatus();\n const componentWithConflict = allComponentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict) {\n if (!this.checkoutProps.promptMergeOptions && !this.checkoutProps.mergeStrategy) {\n throw new GeneralError(\n `automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\\nplease use \"--manual\" to manually merge changes or use \"--theirs / --ours\" to choose one of the conflicted versions`\n );\n }\n if (!this.checkoutProps.mergeStrategy) this.checkoutProps.mergeStrategy = await getMergeStrategyInteractive();\n }\n const failedComponents: FailedComponents[] = allComponentsStatus\n .filter((componentStatus) => componentStatus.failureMessage)\n .map((componentStatus) => ({ id: componentStatus.id, failureMessage: componentStatus.failureMessage as string }));\n\n const succeededComponents = allComponentsStatus.filter((componentStatus) => !componentStatus.failureMessage);\n // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,\n // which can be an issue when some components are also dependencies of others\n const componentsResults = await mapSeries(succeededComponents, ({ id, componentFromFS, mergeResults }) => {\n return applyVersion(this.consumer, id, componentFromFS, mergeResults, this.checkoutProps);\n });\n\n markFilesToBeRemovedIfNeeded(succeededComponents, componentsResults);\n\n await this.saveLanesData();\n\n const componentsWithDependencies = componentsResults\n .map((c) => c.component)\n .filter((c) => c) as ComponentWithDependencies[];\n\n const manyComponentsWriter = new ManyComponentsWriter({\n consumer: this.consumer,\n componentsWithDependencies,\n installNpmPackages: !this.checkoutProps.skipNpmInstall,\n override: true,\n verbose: this.checkoutProps.verbose,\n writeDists: !this.checkoutProps.ignoreDist,\n writeConfig: this.checkoutProps.writeConfig,\n writePackageJson: !this.checkoutProps.ignorePackageJson,\n });\n await manyComponentsWriter.writeAll();\n await deleteFilesIfNeeded(componentsResults, this.consumer);\n\n const appliedVersionComponents = componentsResults.map((c) => c.applyVersionResult);\n\n await this.consumer.onDestroy();\n\n return { components: appliedVersionComponents, failedComponents };\n }\n\n private async populateSwitchProps() {\n const lanes = await this.consumer.scope.listLanes();\n const isDefaultLane = this.switchProps.laneName === DEFAULT_LANE;\n\n const localLane = lanes.find((lane) => lane.name === this.switchProps.laneName);\n\n if (isDefaultLane || localLane) {\n this.populatePropsAccordingToLocalLane(localLane);\n } else {\n await this.populatePropsAccordingToRemoteLane(lanes);\n }\n }\n\n private async populatePropsAccordingToRemoteLane(lanes: Lane[]) {\n let remoteLaneId: RemoteLaneId;\n try {\n remoteLaneId = RemoteLaneId.parse(this.switchProps.laneName);\n } catch (e) {\n throw new GeneralError(\n `invalid lane id \"${this.switchProps.laneName}\", the lane ${this.switchProps.laneName} doesn't exist.`\n );\n }\n if (remoteLaneId.name === DEFAULT_LANE) {\n throw new GeneralError(`invalid remote lane id \"${this.switchProps.laneName}\". to switch to the main lane on remote,\n run \"bit switch main\" and then \"bit import\".`);\n }\n // fetch the remote to update all heads\n const localTrackedLane = this.consumer.scope.lanes.getLocalTrackedLaneByRemoteName(\n remoteLaneId.name,\n remoteLaneId.scope as string\n );\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n this.switchProps.localLaneName = this.switchProps.newLaneName || localTrackedLane || remoteLaneId.name;\n if (this.consumer.getCurrentLaneId().name === this.switchProps.localLaneName) {\n throw new GeneralError(`already checked out to \"${this.switchProps.localLaneName}\"`);\n }\n const scopeComponentImporter = ScopeComponentsImporter.getInstance(this.consumer.scope);\n const remoteLaneObjects = await scopeComponentImporter.importFromLanes([remoteLaneId]);\n if (remoteLaneObjects.length === 0) {\n throw new GeneralError(\n `invalid lane id \"${this.switchProps.laneName}\", the lane ${this.switchProps.laneName} doesn't exist.`\n );\n }\n const remoteLaneComponents = remoteLaneObjects[0].components;\n this.switchProps.remoteLaneName = remoteLaneId.name;\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.remoteLaneScope = remoteLaneId.scope;\n this.switchProps.remoteScope = remoteLaneId.scope;\n this.switchProps.ids = remoteLaneComponents.map((l) => l.id.changeVersion(l.head.toString()));\n this.switchProps.remoteLaneComponents = remoteLaneComponents;\n this.switchProps.localTrackedLane = localTrackedLane || undefined;\n const laneExistsLocally = lanes.find((l) => l.name === this.switchProps.localLaneName);\n if (laneExistsLocally) {\n throw new GeneralError(`unable to checkout to a remote lane ${this.switchProps.remoteScope}/${this.switchProps.laneName}.\nthe local lane \"${this.switchProps.localLaneName}\" already exists, please switch to the local lane first by running \"bit switch ${this.switchProps.localLaneName}\"\nthen, to merge the remote lane into the local lane, run \"bit lane merge ${this.switchProps.localLaneName} --remote ${this.switchProps.remoteScope}\"`);\n }\n this.logger.debug(`populatePropsAccordingToRemoteLane, completed`);\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane | undefined) {\n this.switchProps.localLaneName = this.switchProps.laneName;\n if (this.consumer.getCurrentLaneId().name === this.switchProps.laneName) {\n throw new GeneralError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n if (this.switchProps.laneName === DEFAULT_LANE) {\n this.switchProps.ids = this.consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n return;\n }\n if (!localLane) {\n throw new GeneralError(\n `unable to find a local lane \"${this.switchProps.laneName}\", to create a new lane please run \"bit lane create\"`\n );\n }\n this.switchProps.ids = localLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n }\n\n private async getAllComponentsStatus(): Promise<ComponentStatus[]> {\n const { ids } = this.switchProps;\n const tmp = new Tmp(this.consumer.scope);\n try {\n const componentsStatusP = (ids as BitId[]).map((id) => getComponentStatus(this.consumer, id, this.switchProps));\n const componentsStatus = await Promise.all(componentsStatusP);\n await tmp.clear();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n }\n private async saveLanesData() {\n await saveCheckedOutLaneInfo(this.consumer, {\n remoteLaneScope: this.switchProps.remoteLaneScope,\n remoteLaneName: this.switchProps.remoteLaneName,\n localLaneName: this.switchProps.localLaneName,\n addTrackingInfo: !this.switchProps.localTrackedLane,\n laneComponents: this.switchProps.remoteLaneComponents,\n });\n }\n}\n\nasync function saveCheckedOutLaneInfo(\n consumer: Consumer,\n opts: {\n remoteLaneScope?: string;\n remoteLaneName?: string;\n localLaneName?: string;\n addTrackingInfo?: boolean;\n laneComponents?: LaneComponent[];\n }\n) {\n const saveRemoteLaneToBitmap = () => {\n if (opts.remoteLaneScope) {\n consumer.bitMap.setRemoteLane(RemoteLaneId.from(opts.remoteLaneName as string, opts.remoteLaneScope));\n // add versions to lane\n }\n };\n const throwIfLaneExists = async () => {\n const allLanes = await consumer.scope.listLanes();\n if (allLanes.find((l) => l.name === opts.localLaneName)) {\n throw new GeneralError(`unable to checkout to lane \"${opts.localLaneName}\".\nthe lane already exists. please switch to the lane and merge`);\n }\n };\n\n if (opts.remoteLaneScope) {\n await throwIfLaneExists();\n await createNewLane(consumer, opts.localLaneName as string, opts.laneComponents);\n if (opts.addTrackingInfo) {\n // otherwise, it is tracked already\n consumer.scope.lanes.trackLane({\n localLane: opts.localLaneName as string,\n remoteLane: opts.remoteLaneName as string,\n remoteScope: opts.remoteLaneScope as string,\n });\n }\n }\n\n saveRemoteLaneToBitmap();\n consumer.scope.lanes.setCurrentLane(opts.localLaneName as string);\n const workspaceLane =\n opts.localLaneName === DEFAULT_LANE ? null : WorkspaceLane.load(opts.localLaneName as string, consumer.scope.path);\n consumer.bitMap.syncWithLanes(workspaceLane);\n}\n\nasync function getComponentStatus(consumer: Consumer, id: BitId, switchProps: SwitchProps): Promise<ComponentStatus> {\n const componentStatus: ComponentStatus = { id };\n const returnFailure = (msg: string) => {\n componentStatus.failureMessage = msg;\n return componentStatus;\n };\n const modelComponent = await consumer.scope.getModelComponentIfExist(id);\n if (!modelComponent) {\n return returnFailure(`component ${id.toString()} had never imported`);\n }\n const unmerged = consumer.scope.objects.unmergedComponents.getEntry(id.name);\n if (unmerged && unmerged.resolved === false) {\n return returnFailure(\n `component ${id.toStringWithoutVersion()} has conflicts that need to be resolved first, please use bit merge --resolve/--abort`\n );\n }\n const version = id.version;\n if (!version) {\n return returnFailure(`component doesn't have any snaps on ${DEFAULT_LANE}`);\n }\n const existingBitMapId = consumer.bitMap.getBitIdIfExist(id, { ignoreVersion: true });\n const componentOnLane: Version = await modelComponent.loadVersion(version, consumer.scope.objects);\n if (!existingBitMapId) {\n if (switchProps.existingOnWorkspaceOnly) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is not in the workspace`);\n }\n return { componentFromFS: undefined, componentFromModel: componentOnLane, id, mergeResults: null };\n }\n if (!existingBitMapId.hasVersion()) {\n // happens when switching from main to a lane and a component was snapped on the lane.\n // in the .bitmap file, the version is \"latest\" or empty. so we just need to write the component according to the\n // model. we don't care about the componentFromFS\n return { componentFromFS: undefined, componentFromModel: componentOnLane, id, mergeResults: null };\n }\n const currentlyUsedVersion = existingBitMapId.version;\n if (currentlyUsedVersion === version) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is already at version ${version}`);\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const baseComponent: Version = await modelComponent.loadVersion(currentlyUsedVersion, consumer.scope.objects);\n const component = await consumer.loadComponent(existingBitMapId);\n const isModified = await consumer.isComponentModified(baseComponent, component);\n let mergeResults: MergeResultsThreeWay | null | undefined;\n const isHeadSameAsMain = () => {\n const head = modelComponent.getHead();\n if (!head) return false;\n if (!existingBitMapId.version) return false;\n const tagVersion = modelComponent.getTagOfRefIfExists(head);\n const headVersion = tagVersion || head.toString();\n return existingBitMapId.version === headVersion;\n };\n if (isModified) {\n if (!isHeadSameAsMain()) {\n throw new GeneralError(\n `unable to checkout ${id.toStringWithoutVersion()}, the component is modified and belongs to another lane`\n );\n }\n\n const otherComponent: Version = await modelComponent.loadVersion(\n existingBitMapId.version as string, // we are here because the head is same as main. so, existingBitMapId.version must be set\n consumer.scope.objects\n );\n mergeResults = await threeWayMerge({\n consumer,\n otherComponent,\n otherLabel: version,\n currentComponent: component,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return { componentFromFS: component, componentFromModel: componentOnLane, id, mergeResults };\n}\n"]}
|
1
|
+
{"version":3,"sources":["switch-lanes.ts"],"names":["LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","consumer","switch","setStatusLine","populateSwitchProps","allComponentsStatus","getAllComponentsStatus","componentWithConflict","find","component","mergeResults","hasConflicts","promptMergeOptions","mergeStrategy","GeneralError","id","toStringWithoutVersion","failedComponents","filter","componentStatus","failureMessage","map","succeededComponents","componentsResults","componentFromFS","saveLanesData","componentsWithDependencies","c","manyComponentsWriter","ManyComponentsWriter","installNpmPackages","skipNpmInstall","override","verbose","writeDists","ignoreDist","writeConfig","writePackageJson","ignorePackageJson","writeAll","appliedVersionComponents","applyVersionResult","onDestroy","components","lanes","scope","listLanes","isDefaultLane","laneName","DEFAULT_LANE","localLane","lane","name","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","remoteLaneId","RemoteLaneId","parse","e","BitError","localTrackedLane","getLocalTrackedLaneByRemoteName","debug","toString","localLaneName","newLaneName","getCurrentLaneId","scopeComponentImporter","ScopeComponentsImporter","getInstance","remoteLaneObjects","importFromLanes","length","allLanes","l","join","remoteLane","remoteLaneName","remoteLaneScope","remoteScope","ids","changeVersion","head","undefined","laneExistsLocally","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","tmp","Tmp","componentsStatusP","getComponentStatus","componentsStatus","Promise","all","clear","err","saveRemoteLaneToBitmap","setRemoteLane","from","throwIfLaneExists","trackLane","setCurrentLane","workspaceLane","WorkspaceLane","load","path","syncWithLanes","returnFailure","msg","modelComponent","getModelComponentIfExist","unmerged","objects","unmergedComponents","getEntry","resolved","version","existingBitMapId","getBitIdIfExist","ignoreVersion","componentOnLane","loadVersion","existingOnWorkspaceOnly","componentFromModel","hasVersion","currentlyUsedVersion","baseComponent","loadComponent","isModified","isComponentSourceCodeModified","isHeadSameAsMain","getHead","tagVersion","getTagOfRefIfExists","headVersion","otherComponent","otherLabel","currentComponent","currentLabel"],"mappings":"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","sourcesContent":["import mapSeries from 'p-map-series';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { RemoteLaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ComponentWithDependencies } from '@teambit/legacy/dist/scope';\nimport { Version, Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport WorkspaceLane from '@teambit/legacy/dist/consumer/bit-map/workspace-lane';\nimport {\n applyVersion,\n ComponentStatus,\n CheckoutProps,\n deleteFilesIfNeeded,\n markFilesToBeRemovedIfNeeded,\n} from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport {\n FailedComponents,\n getMergeStrategyInteractive,\n ApplyVersionResults,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport threeWayMerge, {\n MergeResultsThreeWay,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { createLane } from './create-lane';\n\nexport type SwitchProps = {\n laneName: string;\n remoteScope?: string;\n ids?: BitId[];\n existingOnWorkspaceOnly: boolean;\n localLaneName?: string;\n remoteLaneScope?: string;\n remoteLaneName?: string;\n remoteLane?: Lane;\n localTrackedLane?: string;\n newLaneName?: string;\n};\n\nexport class LaneSwitcher {\n private consumer: Consumer;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private switchProps: SwitchProps,\n private checkoutProps: CheckoutProps\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n async switch(): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(`switching lanes`);\n await this.populateSwitchProps();\n const allComponentsStatus: ComponentStatus[] = await this.getAllComponentsStatus();\n const componentWithConflict = allComponentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict) {\n if (!this.checkoutProps.promptMergeOptions && !this.checkoutProps.mergeStrategy) {\n throw new GeneralError(\n `automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\\nplease use \"--manual\" to manually merge changes or use \"--theirs / --ours\" to choose one of the conflicted versions`\n );\n }\n if (!this.checkoutProps.mergeStrategy) this.checkoutProps.mergeStrategy = await getMergeStrategyInteractive();\n }\n const failedComponents: FailedComponents[] = allComponentsStatus\n .filter((componentStatus) => componentStatus.failureMessage)\n .map((componentStatus) => ({ id: componentStatus.id, failureMessage: componentStatus.failureMessage as string }));\n\n const succeededComponents = allComponentsStatus.filter((componentStatus) => !componentStatus.failureMessage);\n // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,\n // which can be an issue when some components are also dependencies of others\n const componentsResults = await mapSeries(succeededComponents, ({ id, componentFromFS, mergeResults }) => {\n return applyVersion(this.consumer, id, componentFromFS, mergeResults, this.checkoutProps);\n });\n\n markFilesToBeRemovedIfNeeded(succeededComponents, componentsResults);\n\n await this.saveLanesData();\n\n const componentsWithDependencies = componentsResults\n .map((c) => c.component)\n .filter((c) => c) as ComponentWithDependencies[];\n\n const manyComponentsWriter = new ManyComponentsWriter({\n consumer: this.consumer,\n componentsWithDependencies,\n installNpmPackages: !this.checkoutProps.skipNpmInstall,\n override: true,\n verbose: this.checkoutProps.verbose,\n writeDists: !this.checkoutProps.ignoreDist,\n writeConfig: this.checkoutProps.writeConfig,\n writePackageJson: !this.checkoutProps.ignorePackageJson,\n });\n await manyComponentsWriter.writeAll();\n await deleteFilesIfNeeded(componentsResults, this.consumer);\n\n const appliedVersionComponents = componentsResults.map((c) => c.applyVersionResult);\n\n await this.consumer.onDestroy();\n\n return { components: appliedVersionComponents, failedComponents };\n }\n\n private async populateSwitchProps() {\n const lanes = await this.consumer.scope.listLanes();\n const isDefaultLane = this.switchProps.laneName === DEFAULT_LANE;\n\n const localLane = lanes.find((lane) => lane.name === this.switchProps.laneName);\n\n if (isDefaultLane || localLane) {\n this.populatePropsAccordingToLocalLane(localLane);\n } else {\n await this.populatePropsAccordingToRemoteLane(lanes);\n }\n }\n\n private async populatePropsAccordingToRemoteLane(lanes: Lane[]) {\n let remoteLaneId: RemoteLaneId;\n try {\n remoteLaneId = RemoteLaneId.parse(this.switchProps.laneName);\n } catch (e) {\n throw new GeneralError(\n `invalid lane id \"${this.switchProps.laneName}\", the lane ${this.switchProps.laneName} doesn't exist.`\n );\n }\n if (remoteLaneId.name === DEFAULT_LANE) {\n throw new BitError(`invalid remote lane id \"${this.switchProps.laneName}\". to switch to the main lane on remote,\n run \"bit switch main\" and then \"bit import\".`);\n }\n // fetch the remote to update all heads\n const localTrackedLane = this.consumer.scope.lanes.getLocalTrackedLaneByRemoteName(\n remoteLaneId.name,\n remoteLaneId.scope as string\n );\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n this.switchProps.localLaneName = this.switchProps.newLaneName || localTrackedLane || remoteLaneId.name;\n if (this.consumer.getCurrentLaneId().name === this.switchProps.localLaneName) {\n throw new BitError(`already checked out to \"${this.switchProps.localLaneName}\"`);\n }\n const scopeComponentImporter = ScopeComponentsImporter.getInstance(this.consumer.scope);\n const remoteLaneObjects = await scopeComponentImporter.importFromLanes([remoteLaneId]);\n if (remoteLaneObjects.length === 0) {\n throw new BitError(\n `invalid lane id \"${this.switchProps.laneName}\", the lane ${this.switchProps.laneName} doesn't exist.`\n );\n }\n if (remoteLaneObjects.length > 1) {\n const allLanes = remoteLaneObjects.map((l) => l.id()).join(', ');\n throw new BitError(`switching to multiple lanes is not supported. got: ${allLanes}`);\n }\n const remoteLane = remoteLaneObjects[0];\n this.switchProps.remoteLaneName = remoteLaneId.name;\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.remoteLaneScope = remoteLaneId.scope;\n this.switchProps.remoteScope = remoteLaneId.scope;\n this.switchProps.ids = remoteLane.components.map((l) => l.id.changeVersion(l.head.toString()));\n this.switchProps.localTrackedLane = localTrackedLane || undefined;\n this.switchProps.remoteLane = remoteLane;\n const laneExistsLocally = lanes.find((l) => l.name === this.switchProps.localLaneName);\n if (laneExistsLocally) {\n throw new BitError(`unable to checkout to a remote lane ${this.switchProps.remoteScope}/${this.switchProps.laneName}.\nthe local lane \"${this.switchProps.localLaneName}\" already exists, please switch to the local lane first by running \"bit switch ${this.switchProps.localLaneName}\"\nthen, to merge the remote lane into the local lane, run \"bit lane merge ${this.switchProps.localLaneName} --remote ${this.switchProps.remoteScope}\"`);\n }\n this.logger.debug(`populatePropsAccordingToRemoteLane, completed`);\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane | undefined) {\n this.switchProps.localLaneName = this.switchProps.laneName;\n if (this.consumer.getCurrentLaneId().name === this.switchProps.laneName) {\n throw new GeneralError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n if (this.switchProps.laneName === DEFAULT_LANE) {\n this.switchProps.ids = this.consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n return;\n }\n if (!localLane) {\n throw new GeneralError(\n `unable to find a local lane \"${this.switchProps.laneName}\", to create a new lane please run \"bit lane create\"`\n );\n }\n this.switchProps.ids = localLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n }\n\n private async getAllComponentsStatus(): Promise<ComponentStatus[]> {\n const { ids } = this.switchProps;\n const tmp = new Tmp(this.consumer.scope);\n try {\n const componentsStatusP = (ids as BitId[]).map((id) => getComponentStatus(this.consumer, id, this.switchProps));\n const componentsStatus = await Promise.all(componentsStatusP);\n await tmp.clear();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n }\n\n private async saveLanesData() {\n const saveRemoteLaneToBitmap = () => {\n if (this.switchProps.remoteLaneScope) {\n this.consumer.bitMap.setRemoteLane(\n RemoteLaneId.from(this.switchProps.remoteLaneName as string, this.switchProps.remoteLaneScope)\n );\n // add versions to lane\n }\n };\n const throwIfLaneExists = async () => {\n const allLanes = await this.consumer.scope.listLanes();\n if (allLanes.find((l) => l.name === this.switchProps.localLaneName)) {\n throw new GeneralError(`unable to checkout to lane \"${this.switchProps.localLaneName}\".\n the lane already exists. please switch to the lane and merge`);\n }\n };\n\n if (this.switchProps.remoteLane) {\n await throwIfLaneExists();\n await createLane(this.consumer, this.switchProps.localLaneName as string, this.switchProps.remoteLane);\n if (!this.switchProps.localTrackedLane) {\n this.consumer.scope.lanes.trackLane({\n localLane: this.switchProps.localLaneName as string,\n remoteLane: this.switchProps.remoteLaneName as string,\n remoteScope: this.switchProps.remoteLaneScope as string,\n });\n }\n }\n\n saveRemoteLaneToBitmap();\n this.consumer.scope.lanes.setCurrentLane(this.switchProps.localLaneName as string);\n const workspaceLane =\n this.switchProps.localLaneName === DEFAULT_LANE\n ? null\n : WorkspaceLane.load(this.switchProps.localLaneName as string, this.consumer.scope.path);\n this.consumer.bitMap.syncWithLanes(workspaceLane);\n }\n}\n\nasync function getComponentStatus(consumer: Consumer, id: BitId, switchProps: SwitchProps): Promise<ComponentStatus> {\n const componentStatus: ComponentStatus = { id };\n const returnFailure = (msg: string) => {\n componentStatus.failureMessage = msg;\n return componentStatus;\n };\n const modelComponent = await consumer.scope.getModelComponentIfExist(id);\n if (!modelComponent) {\n return returnFailure(`component ${id.toString()} had never imported`);\n }\n const unmerged = consumer.scope.objects.unmergedComponents.getEntry(id.name);\n if (unmerged && unmerged.resolved === false) {\n return returnFailure(\n `component ${id.toStringWithoutVersion()} has conflicts that need to be resolved first, please use bit merge --resolve/--abort`\n );\n }\n const version = id.version;\n if (!version) {\n return returnFailure(`component doesn't have any snaps on ${DEFAULT_LANE}`);\n }\n const existingBitMapId = consumer.bitMap.getBitIdIfExist(id, { ignoreVersion: true });\n const componentOnLane: Version = await modelComponent.loadVersion(version, consumer.scope.objects);\n if (!existingBitMapId) {\n if (switchProps.existingOnWorkspaceOnly) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is not in the workspace`);\n }\n return { componentFromFS: undefined, componentFromModel: componentOnLane, id, mergeResults: null };\n }\n if (!existingBitMapId.hasVersion()) {\n // happens when switching from main to a lane and a component was snapped on the lane.\n // in the .bitmap file, the version is \"latest\" or empty. so we just need to write the component according to the\n // model. we don't care about the componentFromFS\n return { componentFromFS: undefined, componentFromModel: componentOnLane, id, mergeResults: null };\n }\n const currentlyUsedVersion = existingBitMapId.version;\n if (currentlyUsedVersion === version) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is already at version ${version}`);\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const baseComponent: Version = await modelComponent.loadVersion(currentlyUsedVersion, consumer.scope.objects);\n const component = await consumer.loadComponent(existingBitMapId);\n // don't use `consumer.isModified` here. otherwise, if there are dependency changes, the user can't discard them\n // and won't be able to switch lanes.\n const isModified = await consumer.isComponentSourceCodeModified(baseComponent, component);\n let mergeResults: MergeResultsThreeWay | null | undefined;\n const isHeadSameAsMain = () => {\n const head = modelComponent.getHead();\n if (!head) return false;\n if (!existingBitMapId.version) return false;\n const tagVersion = modelComponent.getTagOfRefIfExists(head);\n const headVersion = tagVersion || head.toString();\n return existingBitMapId.version === headVersion;\n };\n if (isModified) {\n if (!isHeadSameAsMain()) {\n throw new GeneralError(\n `unable to checkout ${id.toStringWithoutVersion()}, the component is modified and belongs to another lane`\n );\n }\n\n const otherComponent: Version = await modelComponent.loadVersion(\n existingBitMapId.version as string, // we are here because the head is same as main. so, existingBitMapId.version must be set\n consumer.scope.objects\n );\n mergeResults = await threeWayMerge({\n consumer,\n otherComponent,\n otherLabel: version,\n currentComponent: component,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return { componentFromFS: component, componentFromModel: componentOnLane, id, mergeResults };\n}\n"]}
|
package/lanes.ui.runtime.tsx
CHANGED
@@ -7,7 +7,7 @@ import { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-route
|
|
7
7
|
import {
|
8
8
|
LanesDrawer,
|
9
9
|
LanesHost,
|
10
|
-
|
10
|
+
LaneGallery,
|
11
11
|
LanesOrderedNavigationSlot,
|
12
12
|
LanesModel,
|
13
13
|
LanesOverviewMenu,
|
@@ -15,10 +15,12 @@ import {
|
|
15
15
|
LaneOverviewLineSlot,
|
16
16
|
LaneOverviewLine,
|
17
17
|
UseLaneMenu,
|
18
|
+
useLanesContext,
|
19
|
+
LanesNavPlugin,
|
20
|
+
LaneReadmeOverview,
|
18
21
|
} from '@teambit/lanes.ui.lanes';
|
19
22
|
import ScopeAspect, { ScopeUI } from '@teambit/scope';
|
20
23
|
import WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';
|
21
|
-
import { NavLinkProps } from '@teambit/react-router';
|
22
24
|
import ComponentAspect, { ComponentUI } from '@teambit/component';
|
23
25
|
import SidebarAspect, { SidebarUI } from '@teambit/sidebar';
|
24
26
|
import { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';
|
@@ -62,8 +64,17 @@ export class LanesUI {
|
|
62
64
|
children: this.componentUi.getComponentUI(this.host),
|
63
65
|
},
|
64
66
|
{
|
65
|
-
path: LanesModel.laneRouteUrlRegex
|
66
|
-
children: <
|
67
|
+
path: `${LanesModel.laneRouteUrlRegex}/~readme`,
|
68
|
+
children: <LaneReadmeOverview host={this.host} overviewSlot={this.overviewSlot} routeSlot={this.routeSlot} />,
|
69
|
+
},
|
70
|
+
{
|
71
|
+
path: `${LanesModel.laneRouteUrlRegex}/~gallery`,
|
72
|
+
children: <LaneGallery routeSlot={this.routeSlot} overviewSlot={this.overviewSlot} host={this.lanesHost}/>,
|
73
|
+
},
|
74
|
+
{
|
75
|
+
exact: true,
|
76
|
+
path: `${LanesModel.laneRouteUrlRegex}`,
|
77
|
+
children: <LaneReadmeOverview host={this.host} overviewSlot={this.overviewSlot} routeSlot={this.routeSlot} />,
|
67
78
|
},
|
68
79
|
]);
|
69
80
|
this.hostAspect.registerMenuRoutes([
|
@@ -83,10 +94,26 @@ export class LanesUI {
|
|
83
94
|
}
|
84
95
|
|
85
96
|
private registerLanesRoutes() {
|
86
|
-
this.registerNavigation(
|
87
|
-
|
88
|
-
|
89
|
-
|
97
|
+
this.registerNavigation([
|
98
|
+
{
|
99
|
+
props: {
|
100
|
+
href: '',
|
101
|
+
children: 'README',
|
102
|
+
},
|
103
|
+
order: 1,
|
104
|
+
hide: () => {
|
105
|
+
const lanesContext = useLanesContext();
|
106
|
+
return !lanesContext?.viewedLane?.readmeComponent;
|
107
|
+
},
|
108
|
+
},
|
109
|
+
{
|
110
|
+
props: {
|
111
|
+
href: '~gallery',
|
112
|
+
children: 'Gallery',
|
113
|
+
},
|
114
|
+
order: 1,
|
115
|
+
},
|
116
|
+
]);
|
90
117
|
}
|
91
118
|
|
92
119
|
private registerRoutes() {
|
@@ -111,11 +138,8 @@ export class LanesUI {
|
|
111
138
|
return this;
|
112
139
|
}
|
113
140
|
|
114
|
-
registerNavigation(
|
115
|
-
this.navSlot.register(
|
116
|
-
props: nav,
|
117
|
-
order,
|
118
|
-
});
|
141
|
+
registerNavigation(routes: LanesNavPlugin[]) {
|
142
|
+
this.navSlot.register(routes);
|
119
143
|
}
|
120
144
|
|
121
145
|
static async provider(
|
Binary file
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/lanes",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.298",
|
4
4
|
"homepage": "https://bit.dev/teambit/lanes/lanes",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.lanes",
|
8
8
|
"name": "lanes",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.298"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "4.1.2",
|
@@ -19,23 +19,22 @@
|
|
19
19
|
"core-js": "^3.0.0",
|
20
20
|
"@teambit/harmony": "0.3.3",
|
21
21
|
"@teambit/bit-error": "0.0.394",
|
22
|
-
"@teambit/cli": "0.0.
|
23
|
-
"@teambit/merging": "0.0.
|
24
|
-
"@teambit/scope": "0.0.
|
25
|
-
"@teambit/workspace": "0.0.
|
26
|
-
"@teambit/graphql": "0.0.
|
27
|
-
"@teambit/community": "0.0.
|
28
|
-
"@teambit/component": "0.0.
|
29
|
-
"@teambit/lane-id": "0.0.
|
30
|
-
"@teambit/lanes.modules.diff": "0.0.
|
22
|
+
"@teambit/cli": "0.0.485",
|
23
|
+
"@teambit/merging": "0.0.41",
|
24
|
+
"@teambit/scope": "0.0.726",
|
25
|
+
"@teambit/workspace": "0.0.726",
|
26
|
+
"@teambit/graphql": "0.0.726",
|
27
|
+
"@teambit/community": "0.0.33",
|
28
|
+
"@teambit/component": "0.0.726",
|
29
|
+
"@teambit/lane-id": "0.0.4",
|
30
|
+
"@teambit/lanes.modules.diff": "0.0.112",
|
31
31
|
"@teambit/legacy-bit-id": "0.0.399",
|
32
|
-
"@teambit/logger": "0.0.
|
33
|
-
"@teambit/lanes.ui.lanes": "0.0.
|
34
|
-
"@teambit/
|
35
|
-
"@teambit/sidebar": "0.0.723",
|
32
|
+
"@teambit/logger": "0.0.577",
|
33
|
+
"@teambit/lanes.ui.lanes": "0.0.51",
|
34
|
+
"@teambit/sidebar": "0.0.726",
|
36
35
|
"@teambit/ui-foundation.ui.menu": "0.0.487",
|
37
36
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.489",
|
38
|
-
"@teambit/ui": "0.0.
|
37
|
+
"@teambit/ui": "0.0.726"
|
39
38
|
},
|
40
39
|
"devDependencies": {
|
41
40
|
"@types/react": "^17.0.8",
|
@@ -51,7 +50,7 @@
|
|
51
50
|
"@teambit/workspace.testing.mock-workspace": "0.0.5"
|
52
51
|
},
|
53
52
|
"peerDependencies": {
|
54
|
-
"@teambit/legacy": "1.0.
|
53
|
+
"@teambit/legacy": "1.0.264",
|
55
54
|
"react-dom": "^16.8.0 || ^17.0.0",
|
56
55
|
"react": "^16.8.0 || ^17.0.0"
|
57
56
|
},
|
@@ -79,7 +78,7 @@
|
|
79
78
|
"react": "-"
|
80
79
|
},
|
81
80
|
"peerDependencies": {
|
82
|
-
"@teambit/legacy": "1.0.
|
81
|
+
"@teambit/legacy": "1.0.264",
|
83
82
|
"react-dom": "^16.8.0 || ^17.0.0",
|
84
83
|
"react": "^16.8.0 || ^17.0.0"
|
85
84
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.298/dist/lanes.composition.js')]
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.298/dist/lanes.docs.mdx')]
|
Binary file
|