@teambit/lanes 0.0.298 → 0.0.299
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create-lane.d.ts +2 -1
- package/dist/create-lane.js +13 -7
- package/dist/create-lane.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lane.cmd.d.ts +28 -2
- package/dist/lane.cmd.js +62 -13
- package/dist/lane.cmd.js.map +1 -1
- package/dist/lanes.docs.mdx +16 -4
- package/dist/lanes.main.runtime.d.ts +22 -4
- package/dist/lanes.main.runtime.js +223 -19
- package/dist/lanes.main.runtime.js.map +1 -1
- package/dist/merge-lanes.js +3 -6
- package/dist/merge-lanes.js.map +1 -1
- package/dist/switch-lanes.d.ts +3 -5
- package/dist/switch-lanes.js +36 -59
- package/dist/switch-lanes.js.map +1 -1
- package/dist/switch.cmd.d.ts +2 -2
- package/dist/switch.cmd.js +3 -3
- package/dist/switch.cmd.js.map +1 -1
- package/lanes.docs.mdx +16 -4
- package/package-tar/teambit-lanes-0.0.299.tgz +0 -0
- package/package.json +17 -17
- package/{preview-1651721125153.js → preview-1652002449479.js} +2 -2
- package/package-tar/teambit-lanes-0.0.298.tgz +0 -0
package/dist/create-lane.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
1
|
import { Consumer } from '@teambit/legacy/dist/consumer';
|
2
2
|
import Lane from '@teambit/legacy/dist/scope/models/lane';
|
3
|
-
export declare function createLane(consumer: Consumer, laneName: string, remoteLane?: Lane): Promise<Lane>;
|
3
|
+
export declare function createLane(consumer: Consumer, laneName: string, scopeName: string, remoteLane?: Lane): Promise<Lane>;
|
4
|
+
export declare function throwForInvalidLaneName(laneName: string): void;
|
package/dist/create-lane.js
CHANGED
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
9
9
|
});
|
10
10
|
exports.createLane = createLane;
|
11
|
+
exports.throwForInvalidLaneName = throwForInvalidLaneName;
|
11
12
|
|
12
13
|
function _bitError() {
|
13
14
|
const data = require("@teambit/bit-error");
|
@@ -49,16 +50,14 @@ function _workspaceLane() {
|
|
49
50
|
return data;
|
50
51
|
}
|
51
52
|
|
52
|
-
async function createLane(consumer, laneName, remoteLane) {
|
53
|
+
async function createLane(consumer, laneName, scopeName, remoteLane) {
|
53
54
|
const lanes = await consumer.scope.listLanes();
|
54
55
|
|
55
56
|
if (lanes.find(lane => lane.name === laneName)) {
|
56
57
|
throw new (_bitError().BitError)(`lane "${laneName}" already exists, to switch to this lane, please use "bit switch" command`);
|
57
58
|
}
|
58
59
|
|
59
|
-
|
60
|
-
throw new (_bitError().BitError)(`lane "${laneName}" has invalid characters. lane name can only contain alphanumeric, lowercase characters, and the following ["-", "_", "$", "!"]`);
|
61
|
-
}
|
60
|
+
throwForInvalidLaneName(laneName);
|
62
61
|
|
63
62
|
const getDataToPopulateLaneObjectIfNeeded = async () => {
|
64
63
|
if (remoteLane) return remoteLane.components; // when branching from one lane to another, copy components from the origin lane
|
@@ -80,8 +79,9 @@ async function createLane(consumer, laneName, remoteLane) {
|
|
80
79
|
const newLane = remoteLane ? _lane().default.from({
|
81
80
|
name: laneName,
|
82
81
|
hash: remoteLane.hash().toString(),
|
83
|
-
log: remoteLane.log
|
84
|
-
|
82
|
+
log: remoteLane.log,
|
83
|
+
scope: remoteLane.scope
|
84
|
+
}) : _lane().default.create(laneName, scopeName);
|
85
85
|
const dataToPopulate = await getDataToPopulateLaneObjectIfNeeded();
|
86
86
|
newLane.setLaneComponents(dataToPopulate);
|
87
87
|
await consumer.scope.lanes.saveLane(newLane);
|
@@ -93,8 +93,14 @@ async function createLane(consumer, laneName, remoteLane) {
|
|
93
93
|
return newLane;
|
94
94
|
}
|
95
95
|
|
96
|
+
function throwForInvalidLaneName(laneName) {
|
97
|
+
if (!isValidLaneName(laneName)) {
|
98
|
+
throw new (_bitError().BitError)(`lane "${laneName}" has invalid characters. lane name can only contain alphanumeric, lowercase characters, and the following ["-", "_", "$", "!"]`);
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
96
102
|
function isValidLaneName(val) {
|
97
|
-
if (typeof val !== 'string') return false; // @todo: should we allow slash?
|
103
|
+
if (typeof val !== 'string') return false; // @todo: should we allow slash? if so, we should probably replace the lane-delimiter with something else. (maybe ":")
|
98
104
|
|
99
105
|
return /^[$\-_!a-z0-9]+$/.test(val);
|
100
106
|
}
|
package/dist/create-lane.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["create-lane.ts"],"names":["createLane","consumer","laneName","remoteLane","lanes","scope","listLanes","find","lane","name","BitError","
|
1
|
+
{"version":3,"sources":["create-lane.ts"],"names":["createLane","consumer","laneName","scopeName","remoteLane","lanes","scope","listLanes","find","lane","name","BitError","throwForInvalidLaneName","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","isValidLaneName","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,CACLC,QADK,EAELC,QAFK,EAGLC,SAHK,EAILC,UAJK,EAKU;AACf,QAAMC,KAAK,GAAG,MAAMJ,QAAQ,CAACK,KAAT,CAAeC,SAAf,EAApB;;AACA,MAAIF,KAAK,CAACG,IAAN,CAAYC,IAAD,IAAUA,IAAI,CAACC,IAAL,KAAcR,QAAnC,CAAJ,EAAkD;AAChD,UAAM,KAAIS,oBAAJ,EAAc,SAAQT,QAAS,2EAA/B,CAAN;AACD;;AACDU,EAAAA,uBAAuB,CAACV,QAAD,CAAvB;;AACA,QAAMW,mCAAmC,GAAG,YAAsC;AAChF,QAAIT,UAAJ,EAAgB,OAAOA,UAAU,CAACU,UAAlB,CADgE,CAEhF;AACA;;AACA,UAAMC,iBAAiB,GAAG,MAAMd,QAAQ,CAACe,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,GAAGlB,QAAQ,CAACmB,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,EAAER,QAAR;AAAkBwB,IAAAA,IAAI,EAAEtB,UAAU,CAACsB,IAAX,GAAkBC,QAAlB,EAAxB;AAAsDC,IAAAA,GAAG,EAAExB,UAAU,CAACwB,GAAtE;AAA2EtB,IAAAA,KAAK,EAAEF,UAAU,CAACE;AAA7F,GAAV,CADsB,GAEtBkB,gBAAKK,MAAL,CAAY3B,QAAZ,EAAsBC,SAAtB,CAFJ;AAGA,QAAM2B,cAAc,GAAG,MAAMjB,mCAAmC,EAAhE;AACAU,EAAAA,OAAO,CAACQ,iBAAR,CAA0BD,cAA1B;AAEA,QAAM7B,QAAQ,CAACK,KAAT,CAAeD,KAAf,CAAqB2B,QAArB,CAA8BT,OAA9B,CAAN;;AAEA,QAAMU,eAAe,GAAGC,yBAAcC,IAAd,CAAmBjC,QAAnB,EAA6BD,QAAQ,CAACK,KAAT,CAAe8B,OAAf,EAA7B,CAAxB;;AACAH,EAAAA,eAAe,CAACX,GAAhB,GAAsBL,sCAAsC,EAA5D;AACA,QAAMgB,eAAe,CAACI,KAAhB,EAAN;AAEA,SAAOd,OAAP;AACD;;AAEM,SAASX,uBAAT,CAAiCV,QAAjC,EAAmD;AACxD,MAAI,CAACoC,eAAe,CAACpC,QAAD,CAApB,EAAgC;AAC9B,UAAM,KAAIS,oBAAJ,EACH,SAAQT,QAAS,iIADd,CAAN;AAGD;AACF;;AAED,SAASoC,eAAT,CAAyBC,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(\n consumer: Consumer,\n laneName: string,\n scopeName: string,\n remoteLane?: Lane\n): 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 throwForInvalidLaneName(laneName);\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, scope: remoteLane.scope })\n : Lane.create(laneName, scopeName);\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\nexport function throwForInvalidLaneName(laneName: string) {\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\nfunction isValidLaneName(val: unknown): boolean {\n if (typeof val !== 'string') return false;\n // @todo: should we allow slash? if so, we should probably replace the lane-delimiter with something else. (maybe \":\")\n return /^[$\\-_!a-z0-9]+$/.test(val);\n}\n"]}
|
package/dist/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { LanesAspect } from './lanes.aspect';
|
2
|
-
export type { LanesMain } from './lanes.main.runtime';
|
2
|
+
export type { LanesMain, Lane } from './lanes.main.runtime';
|
3
3
|
export type { LanesUI } from './lanes.ui.runtime';
|
4
4
|
export default LanesAspect;
|
5
5
|
export { LanesAspect };
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["LanesAspect"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;eAIeA,oB","sourcesContent":["import { LanesAspect } from './lanes.aspect';\n\nexport type { LanesMain } from './lanes.main.runtime';\nexport type { LanesUI } from './lanes.ui.runtime';\nexport default LanesAspect;\nexport { LanesAspect };\n"]}
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["LanesAspect"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;eAIeA,oB","sourcesContent":["import { LanesAspect } from './lanes.aspect';\n\nexport type { LanesMain, Lane } from './lanes.main.runtime';\nexport type { LanesUI } from './lanes.ui.runtime';\nexport default LanesAspect;\nexport { LanesAspect };\n"]}
|
package/dist/lane.cmd.d.ts
CHANGED
@@ -52,6 +52,7 @@ export declare class LaneCreateCmd implements Command {
|
|
52
52
|
private lanes;
|
53
53
|
name: string;
|
54
54
|
description: string;
|
55
|
+
extendedDescription: string;
|
55
56
|
alias: string;
|
56
57
|
options: CommandOptions;
|
57
58
|
loader: boolean;
|
@@ -60,17 +61,42 @@ export declare class LaneCreateCmd implements Command {
|
|
60
61
|
constructor(lanes: LanesMain);
|
61
62
|
report([name]: [string], createLaneOptions: CreateLaneOptions): Promise<string>;
|
62
63
|
}
|
63
|
-
export declare class
|
64
|
+
export declare class LaneAliasCmd implements Command {
|
64
65
|
private lanes;
|
65
66
|
name: string;
|
66
67
|
description: string;
|
68
|
+
extendedDescription: string;
|
67
69
|
alias: string;
|
68
70
|
options: CommandOptions;
|
69
71
|
loader: boolean;
|
70
72
|
private: boolean;
|
71
73
|
migration: boolean;
|
72
74
|
constructor(lanes: LanesMain);
|
73
|
-
report([
|
75
|
+
report([laneName, alias]: [string, string, string]): Promise<string>;
|
76
|
+
}
|
77
|
+
export declare class LaneChangeScopeCmd implements Command {
|
78
|
+
private lanes;
|
79
|
+
name: string;
|
80
|
+
description: string;
|
81
|
+
alias: string;
|
82
|
+
options: CommandOptions;
|
83
|
+
loader: boolean;
|
84
|
+
private: boolean;
|
85
|
+
migration: boolean;
|
86
|
+
constructor(lanes: LanesMain);
|
87
|
+
report([localName, remoteScope]: [string, string]): Promise<string>;
|
88
|
+
}
|
89
|
+
export declare class LaneRenameCmd implements Command {
|
90
|
+
private lanes;
|
91
|
+
name: string;
|
92
|
+
description: string;
|
93
|
+
alias: string;
|
94
|
+
options: CommandOptions;
|
95
|
+
loader: boolean;
|
96
|
+
private: boolean;
|
97
|
+
migration: boolean;
|
98
|
+
constructor(lanes: LanesMain);
|
99
|
+
report([currentName, newName]: [string, string]): Promise<string>;
|
74
100
|
}
|
75
101
|
export declare class LaneMergeCmd implements Command {
|
76
102
|
private lanes;
|
package/dist/lane.cmd.js
CHANGED
@@ -11,7 +11,7 @@ require("core-js/modules/es.promise.js");
|
|
11
11
|
Object.defineProperty(exports, "__esModule", {
|
12
12
|
value: true
|
13
13
|
});
|
14
|
-
exports.
|
14
|
+
exports.LaneShowCmd = exports.LaneRenameCmd = exports.LaneRemoveReadmeCmd = exports.LaneRemoveCmd = exports.LaneMergeCmd = exports.LaneListCmd = exports.LaneImportCmd = exports.LaneCreateCmd = exports.LaneCmd = exports.LaneChangeScopeCmd = exports.LaneAliasCmd = exports.LaneAddReadmeCmd = void 0;
|
15
15
|
|
16
16
|
function _defineProperty2() {
|
17
17
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
@@ -275,8 +275,10 @@ class LaneCreateCmd {
|
|
275
275
|
this.lanes = lanes;
|
276
276
|
(0, _defineProperty2().default)(this, "name", 'create <name>');
|
277
277
|
(0, _defineProperty2().default)(this, "description", `create and switch to a new lane`);
|
278
|
+
(0, _defineProperty2().default)(this, "extendedDescription", `a lane created from main (default-lane) is empty until components are snapped.
|
279
|
+
a lane created from another lane has all the components of the original lane.`);
|
278
280
|
(0, _defineProperty2().default)(this, "alias", '');
|
279
|
-
(0, _defineProperty2().default)(this, "options", [['', 'remote-scope <string>', 'remote scope where this lane will be exported to (can be changed later with "bit lane
|
281
|
+
(0, _defineProperty2().default)(this, "options", [['', 'remote-scope <string>', 'remote scope where this lane will be exported to, default to the defaultScope (can be changed later with "bit lane change-scope")'], ['', 'alias <string>', 'a local alias to refer to this lane, default to the <name> (can be added later with "bit lane alias")']]);
|
280
282
|
(0, _defineProperty2().default)(this, "loader", true);
|
281
283
|
(0, _defineProperty2().default)(this, "private", true);
|
282
284
|
(0, _defineProperty2().default)(this, "migration", true);
|
@@ -296,11 +298,13 @@ class LaneCreateCmd {
|
|
296
298
|
|
297
299
|
exports.LaneCreateCmd = LaneCreateCmd;
|
298
300
|
|
299
|
-
class
|
301
|
+
class LaneAliasCmd {
|
300
302
|
constructor(lanes) {
|
301
303
|
this.lanes = lanes;
|
302
|
-
(0, _defineProperty2().default)(this, "name", '
|
303
|
-
(0, _defineProperty2().default)(this, "description",
|
304
|
+
(0, _defineProperty2().default)(this, "name", 'alias <lane-name> <alias>');
|
305
|
+
(0, _defineProperty2().default)(this, "description", 'add an alias to a lane');
|
306
|
+
(0, _defineProperty2().default)(this, "extendedDescription", `an alias is a name that can be used to refer to a lane. it is saved locally and never reach the remote.
|
307
|
+
it is useful when having multiple lanes with the same name, but with different remote scopes.`);
|
304
308
|
(0, _defineProperty2().default)(this, "alias", '');
|
305
309
|
(0, _defineProperty2().default)(this, "options", []);
|
306
310
|
(0, _defineProperty2().default)(this, "loader", true);
|
@@ -308,19 +312,64 @@ class LaneTrackCmd {
|
|
308
312
|
(0, _defineProperty2().default)(this, "migration", true);
|
309
313
|
}
|
310
314
|
|
311
|
-
async report([
|
315
|
+
async report([laneName, alias]) {
|
312
316
|
const {
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
const remoteScopeChanges = afterTrackData.remoteScope === (beforeTrackData === null || beforeTrackData === void 0 ? void 0 : beforeTrackData.remoteScope) ? `the remote-scope has not been changed` : `the remote-scope has been changed from ${_chalk().default.bold((beforeTrackData === null || beforeTrackData === void 0 ? void 0 : beforeTrackData.remoteScope) || '<n/a>')} to ${_chalk().default.bold(afterTrackData.remoteScope)}`;
|
317
|
-
const remoteNameChanges = afterTrackData.remoteLane === (beforeTrackData === null || beforeTrackData === void 0 ? void 0 : beforeTrackData.remoteLane) ? `the remote-name has not been changed` : `the remote-name has been changed from ${_chalk().default.bold((beforeTrackData === null || beforeTrackData === void 0 ? void 0 : beforeTrackData.remoteLane) || '<n/a>')} to ${_chalk().default.bold(afterTrackData.remoteLane)}`;
|
318
|
-
return `${remoteScopeChanges}\n${remoteNameChanges}`;
|
317
|
+
laneId
|
318
|
+
} = await this.lanes.aliasLane(laneName, alias);
|
319
|
+
return `successfully added the alias ${_chalk().default.bold(alias)} to the lane ${_chalk().default.bold(laneId.toString())}`;
|
319
320
|
}
|
320
321
|
|
321
322
|
}
|
322
323
|
|
323
|
-
exports.
|
324
|
+
exports.LaneAliasCmd = LaneAliasCmd;
|
325
|
+
|
326
|
+
class LaneChangeScopeCmd {
|
327
|
+
constructor(lanes) {
|
328
|
+
this.lanes = lanes;
|
329
|
+
(0, _defineProperty2().default)(this, "name", 'change-scope <lane-name> <remote-scope>');
|
330
|
+
(0, _defineProperty2().default)(this, "description", `change the remote scope of a lane`);
|
331
|
+
(0, _defineProperty2().default)(this, "alias", '');
|
332
|
+
(0, _defineProperty2().default)(this, "options", []);
|
333
|
+
(0, _defineProperty2().default)(this, "loader", true);
|
334
|
+
(0, _defineProperty2().default)(this, "private", true);
|
335
|
+
(0, _defineProperty2().default)(this, "migration", true);
|
336
|
+
}
|
337
|
+
|
338
|
+
async report([localName, remoteScope]) {
|
339
|
+
const {
|
340
|
+
remoteScopeBefore
|
341
|
+
} = await this.lanes.changeScope(localName, remoteScope);
|
342
|
+
return `the remote-scope of ${_chalk().default.bold(localName)} has been changed from ${_chalk().default.bold(remoteScopeBefore)} to ${_chalk().default.bold(remoteScope)}`;
|
343
|
+
}
|
344
|
+
|
345
|
+
}
|
346
|
+
|
347
|
+
exports.LaneChangeScopeCmd = LaneChangeScopeCmd;
|
348
|
+
|
349
|
+
class LaneRenameCmd {
|
350
|
+
constructor(lanes) {
|
351
|
+
this.lanes = lanes;
|
352
|
+
(0, _defineProperty2().default)(this, "name", 'rename <current-name> <new-name>');
|
353
|
+
(0, _defineProperty2().default)(this, "description", `EXPERIMENTAL. change the lane-name locally and on the remote (if exported)`);
|
354
|
+
(0, _defineProperty2().default)(this, "alias", '');
|
355
|
+
(0, _defineProperty2().default)(this, "options", []);
|
356
|
+
(0, _defineProperty2().default)(this, "loader", true);
|
357
|
+
(0, _defineProperty2().default)(this, "private", true);
|
358
|
+
(0, _defineProperty2().default)(this, "migration", true);
|
359
|
+
}
|
360
|
+
|
361
|
+
async report([currentName, newName]) {
|
362
|
+
const {
|
363
|
+
exported,
|
364
|
+
exportErr
|
365
|
+
} = await this.lanes.rename(currentName, newName);
|
366
|
+
const exportedStr = exported ? `and have been exported successfully to the remote` : `however if failed to export the renamed lane to the remote, due to an error: ${(exportErr === null || exportErr === void 0 ? void 0 : exportErr.message) || 'unknown'}`;
|
367
|
+
return `the lane ${_chalk().default.bold(currentName)} has been changed to ${_chalk().default.bold(newName)}, ${exportedStr}`;
|
368
|
+
}
|
369
|
+
|
370
|
+
}
|
371
|
+
|
372
|
+
exports.LaneRenameCmd = LaneRenameCmd;
|
324
373
|
|
325
374
|
class LaneMergeCmd {
|
326
375
|
constructor(lanes) {
|
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","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"]}
|
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","LaneAliasCmd","laneName","alias","laneId","aliasLane","toString","LaneChangeScopeCmd","localName","remoteScopeBefore","changeScope","LaneRenameCmd","currentName","newName","exported","exportErr","rename","exportedStr","message","LaneMergeCmd","ours","theirs","manual","remoteName","build","existing","existingOnWorkspaceOnly","noSnap","snapMessage","keepReadme","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","removeLaneReadme","red","LaneAddReadmeCmd","componentId","addLaneReadme","componentsTitle","componentsStr","c","id","head","component","remoteLane"],"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 extendedDescription = `a lane created from main (default-lane) is empty until components are snapped.\na lane created from another lane has all the components of the original lane.`;\n alias = '';\n options = [\n [\n '',\n 'remote-scope <string>',\n 'remote scope where this lane will be exported to, default to the defaultScope (can be changed later with \"bit lane change-scope\")',\n ],\n [\n '',\n 'alias <string>',\n 'a local alias to refer to this lane, default to the <name> (can be added later with \"bit lane alias\")',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([name]: [string], createLaneOptions: CreateLaneOptions): Promise<string> {\n const result = await this.lanes.createLane(name, createLaneOptions);\n const remoteScopeOrDefaultScope = createLaneOptions.remoteScope\n ? `the remote scope ${chalk.bold(createLaneOptions.remoteScope)}`\n : `the default-scope ${chalk.bold(result.remoteScope)}. to change it, please run \"bit lane track\" command`;\n const title = chalk.green(`successfully added and checked out to a new lane ${chalk.bold(result.localLane)}`);\n const remoteScopeOutput = `this lane will be exported to ${remoteScopeOrDefaultScope}`;\n return `${title}\\n${remoteScopeOutput}`;\n }\n}\n\nexport class LaneAliasCmd implements Command {\n name = 'alias <lane-name> <alias>';\n description = 'add an alias to a lane';\n extendedDescription = `an alias is a name that can be used to refer to a lane. it is saved locally and never reach the remote.\nit is useful when having multiple lanes with the same name, but with different remote scopes.`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName, alias]: [string, string, string]): Promise<string> {\n const { laneId } = await this.lanes.aliasLane(laneName, alias);\n return `successfully added the alias ${chalk.bold(alias)} to the lane ${chalk.bold(laneId.toString())}`;\n }\n}\n\nexport class LaneChangeScopeCmd implements Command {\n name = 'change-scope <lane-name> <remote-scope>';\n description = `change the remote scope of a lane`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([localName, remoteScope]: [string, string]): Promise<string> {\n const { remoteScopeBefore } = await this.lanes.changeScope(localName, remoteScope);\n return `the remote-scope of ${chalk.bold(localName)} has been changed from ${chalk.bold(\n remoteScopeBefore\n )} to ${chalk.bold(remoteScope)}`;\n }\n}\n\nexport class LaneRenameCmd implements Command {\n name = 'rename <current-name> <new-name>';\n description = `EXPERIMENTAL. change the lane-name locally and on the remote (if exported)`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([currentName, newName]: [string, string]): Promise<string> {\n const { exported, exportErr } = await this.lanes.rename(currentName, newName);\n const exportedStr = exported\n ? `and have been exported successfully to the remote`\n : `however if failed to export the renamed lane to the remote, due to an error: ${\n exportErr?.message || 'unknown'\n }`;\n return `the lane ${chalk.bold(currentName)} has been changed to ${chalk.bold(newName)}, ${exportedStr}`;\n }\n}\n\nexport class LaneMergeCmd implements Command {\n name = 'merge <lane>';\n description = `merge a local or a remote lane`;\n alias = '';\n options = [\n ['', 'remote <name>', 'remote scope name'],\n ['', 'ours', 'in case of a conflict, override the used version with the current modification'],\n ['', 'theirs', 'in case of a conflict, override the current modification with the specified version'],\n ['', 'manual', 'in case of a conflict, leave the files with a conflict state to resolve them manually later'],\n ['', 'existing', 'checkout only components in a lane that exist in the workspace'],\n ['', 'no-snap', 'do not auto snap in case the merge completed without conflicts'],\n ['', 'build', 'in case of snap during the merge, run the build-pipeline (similar to bit snap --build)'],\n ['m', 'message <message>', 'override the default message for the auto snap'],\n ['', 'keep-readme', 'skip deleting the lane readme component after merging'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [name]: [string],\n {\n ours = false,\n theirs = false,\n manual = false,\n remote: remoteName,\n build,\n existing: existingOnWorkspaceOnly = false,\n noSnap = false,\n message: snapMessage = '',\n keepReadme = false,\n }: {\n ours: boolean;\n theirs: boolean;\n manual: boolean;\n remote?: string;\n existing?: boolean;\n build?: boolean;\n noSnap: boolean;\n message: string;\n keepReadme?: boolean;\n }\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n const mergeStrategy = getMergeStrategy(ours, theirs, manual);\n if (noSnap && snapMessage) throw new BitError('unable to use \"noSnap\" and \"message\" flags together');\n\n const { mergeResults, deleteResults } = await this.lanes.mergeLane(name, {\n // @ts-ignore\n remoteName,\n build,\n // @ts-ignore\n mergeStrategy,\n existingOnWorkspaceOnly,\n noSnap,\n snapMessage,\n keepReadme,\n });\n\n const mergeResult = `${mergeReport(mergeResults)}`;\n const deleteResult = `${deleteResults.localResult ? paintRemoved(deleteResults.localResult, false) : ''}${(\n deleteResults.remoteResult || []\n ).map((item) => paintRemoved(item, true))}${\n (deleteResults.readmeResult && chalk.yellow(deleteResults.readmeResult)) || ''\n }\\n`;\n return mergeResult + deleteResult;\n }\n}\n\nexport class LaneRemoveCmd implements Command {\n name = 'remove <lane...>';\n description = `remove lanes`;\n alias = '';\n options = [\n ['r', 'remote', 'remove a remote lane (in the lane arg, use remote/lane-id syntax)'],\n [\n 'f',\n 'force',\n 'removes the component from the scope, even if used as a dependency. WARNING: components that depend on this component will corrupt',\n ],\n ['s', 'silent', 'skip confirmation'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [names]: [string[]],\n {\n remote = false,\n force = false,\n silent = false,\n }: {\n remote: boolean;\n force: boolean;\n silent: boolean;\n }\n ): Promise<string> {\n if (!silent) {\n const removePromptResult = await approveOperation();\n // @ts-ignore\n if (!yn(removePromptResult.shouldProceed)) {\n throw new BitError('the operation has been canceled');\n }\n }\n const laneResults = await this.lanes.removeLanes(names, { remote, force });\n return chalk.green(`successfully removed the following lane(s): ${chalk.bold(laneResults.join(', '))}`);\n }\n}\n\nexport class LaneImportCmd implements Command {\n name = 'import <lane>';\n description = `import a remote lane to your workspace`;\n alias = '';\n options = [\n ['', 'skip-dependency-installation', 'do not install packages of the imported components'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private switchCmd: SwitchCmd) {}\n\n async report(\n [lane]: [string],\n { skipDependencyInstallation = false }: { skipDependencyInstallation: boolean }\n ): Promise<string> {\n return this.switchCmd.report([lane], { getAll: true, skipDependencyInstallation });\n }\n}\n\nexport class LaneCmd implements Command {\n name = 'lane [name]';\n 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"]}
|
package/dist/lanes.docs.mdx
CHANGED
@@ -11,16 +11,16 @@ The following describes the final implementation, which differs from the specifi
|
|
11
11
|
|
12
12
|
```
|
13
13
|
- create a snap: `bit snap` (synopsis similar to the `bit tag`)
|
14
|
-
- create a new lane: `bit lane create <name
|
14
|
+
- create a new lane: `bit lane create <name>`
|
15
15
|
- list lanes: `bit lane list`
|
16
16
|
- switch between lanes: `bit switch <name>`
|
17
17
|
- merge lanes: `bit lane merge`
|
18
18
|
- show lane details: `bit lane show <name>`
|
19
19
|
- diff between lanes: `bit lane diff <values>`
|
20
20
|
- track local lane to a remote lane: `bit switch --as`
|
21
|
-
- remove a lane `bit lane remove <name>`.
|
21
|
+
- remove a lane: `bit lane remove <name>`.
|
22
22
|
- fetch lane objects (without the components): `bit fetch --lanes`
|
23
|
-
- import a lane: `bit
|
23
|
+
- import a lane: `bit lane import`
|
24
24
|
- export current lane: `bit export`
|
25
25
|
- (internal) cat lane object: `bit cat-lane <name>`
|
26
26
|
```
|
@@ -31,12 +31,17 @@ The following describes the final implementation, which differs from the specifi
|
|
31
31
|
- [ ] Bit import with no args. When bitmap has a remote lane, should import the lane.
|
32
32
|
- [ ] Tag dependencies to include them in a lane.
|
33
33
|
- [ ] Test bit-fetch components
|
34
|
-
- [ ] Rename lanes.
|
34
|
+
- [ ] Rename lanes: enable importing a lane after rename.
|
35
35
|
- [ ] Fix performance issue. Now it fetches all parents every time. It doesn't make sense.
|
36
36
|
- [ ] Fix performance issue. Now it traverses all parents to see if a hash in there.
|
37
37
|
|
38
38
|
## Important points
|
39
39
|
|
40
|
+
### Lane ID
|
41
|
+
|
42
|
+
The Lane id consists of the lane name and the scope. If this is a new lane, the scope is the defaultScope.
|
43
|
+
The `LaneId` _always_ has these two props.
|
44
|
+
|
40
45
|
### Performance consideration
|
41
46
|
|
42
47
|
Currently, if it imports with no-deps, it doesn't ask for parents, if it imports with deps it imports with all parents. It is originated from src/api/scope/lib/fetch.ts: `const collectParents = !noDependencies;`. We need to make a decision here.
|
@@ -51,6 +56,7 @@ Currently, if it imports with no-deps, it doesn't ask for parents, if it imports
|
|
51
56
|
- Snap's hash is generated by a UUID and then converted into sha1. `sha1(v4())`.
|
52
57
|
- Lane's hash is generated by a UUID and then converted into sha1. `sha1(v4())`.
|
53
58
|
- Tag's hash stays the same. Generated by the `Version.id()`.
|
59
|
+
- Lane's hash doesn't get changed even if the lane has been renamed or its scope changed.
|
54
60
|
|
55
61
|
### Lane Data
|
56
62
|
|
@@ -85,3 +91,9 @@ Summary of when/what lanes data is saved per command:
|
|
85
91
|
### Useful APIs
|
86
92
|
|
87
93
|
- bit-map `getAllIdsAvailableOnLane()` filters the currently checked out lane.
|
94
|
+
|
95
|
+
### Remove component from a lane
|
96
|
+
|
97
|
+
Locally, to remove a component from a lane, use `bit remove` command. It will remove the component from the local lane-object.
|
98
|
+
This change won't affect the remote scope, even after exporting the lane. This is becuase on the remote, the merge-lane process doesn't remove anything, only adds/changes components to the lane object.
|
99
|
+
Remember that by default when importing a lane, only the components on the workspace are part of the lane, so the same lane-object, locally can have less components than the remote and obviously in this case we don't want to remove them from the remote on export.
|
@@ -3,13 +3,16 @@ import { ScopeMain } from '@teambit/scope';
|
|
3
3
|
import { GraphqlMain } from '@teambit/graphql';
|
4
4
|
import { Workspace } from '@teambit/workspace';
|
5
5
|
import { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';
|
6
|
+
import { LaneId } from '@teambit/lane-id';
|
6
7
|
import { Logger, LoggerMain } from '@teambit/logger';
|
7
8
|
import { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';
|
8
9
|
import { MergeStrategy, ApplyVersionResults } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
|
9
10
|
import { TrackLane } from '@teambit/legacy/dist/scope/scope-json';
|
10
11
|
import type { CommunityMain } from '@teambit/community';
|
11
12
|
import { Component, ComponentMain } from '@teambit/component';
|
13
|
+
import { Lane } from '@teambit/legacy/dist/scope/models';
|
12
14
|
import { MergingMain } from '@teambit/merging';
|
15
|
+
export { Lane };
|
13
16
|
export declare type LaneResults = {
|
14
17
|
lanes: LaneData[];
|
15
18
|
currentLane?: string | null;
|
@@ -25,10 +28,10 @@ export declare type MergeLaneOptions = {
|
|
25
28
|
};
|
26
29
|
export declare type CreateLaneOptions = {
|
27
30
|
remoteScope?: string;
|
28
|
-
|
31
|
+
alias?: string;
|
29
32
|
};
|
30
33
|
export declare type SwitchLaneOptions = {
|
31
|
-
|
34
|
+
alias?: string;
|
32
35
|
merge?: MergeStrategy;
|
33
36
|
getAll?: boolean;
|
34
37
|
skipDependencyInstallation?: boolean;
|
@@ -50,11 +53,26 @@ export declare class LanesMain {
|
|
50
53
|
notMerged?: boolean;
|
51
54
|
}): Promise<LaneData[]>;
|
52
55
|
getCurrentLane(): string | null;
|
53
|
-
|
56
|
+
getCurrentLaneId(): LaneId | null;
|
57
|
+
createLane(name: string, { remoteScope, alias }?: CreateLaneOptions): Promise<TrackLane>;
|
54
58
|
trackLane(localName: string, remoteScope: string, remoteName?: string): Promise<{
|
55
59
|
beforeTrackData?: TrackLane;
|
56
60
|
afterTrackData: TrackLane;
|
57
61
|
}>;
|
62
|
+
aliasLane(laneName: string, alias: string): Promise<{
|
63
|
+
laneId: LaneId;
|
64
|
+
}>;
|
65
|
+
changeScope(laneName: string, remoteScope: string): Promise<{
|
66
|
+
remoteScopeBefore: string;
|
67
|
+
}>;
|
68
|
+
/**
|
69
|
+
* change a lane-name and if possible, export the lane to the remote
|
70
|
+
*/
|
71
|
+
rename(currentName: string, newName: string): Promise<{
|
72
|
+
exported: boolean;
|
73
|
+
exportErr?: Error;
|
74
|
+
}>;
|
75
|
+
exportLane(lane: Lane): Promise<void>;
|
58
76
|
removeLanes(laneNames: string[], { remote, force }: {
|
59
77
|
remote: boolean;
|
60
78
|
force: boolean;
|
@@ -69,7 +87,7 @@ export declare class LanesMain {
|
|
69
87
|
* by default, only the components existing on the workspace will be imported from that lane, unless the "getAll"
|
70
88
|
* flag is true.
|
71
89
|
*/
|
72
|
-
switchLanes(laneName: string, {
|
90
|
+
switchLanes(laneName: string, { alias, merge, getAll, skipDependencyInstallation }: SwitchLaneOptions): Promise<ApplyVersionResults>;
|
73
91
|
/**
|
74
92
|
* the values array may include zero to two values and will be processed as following:
|
75
93
|
* [] => diff between the current lane and default lane. (only inside workspace).
|