@teambit/lanes 1.0.945 → 1.0.947
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/lane.cmd.js
CHANGED
|
@@ -32,6 +32,13 @@ function _workspace() {
|
|
|
32
32
|
};
|
|
33
33
|
return data;
|
|
34
34
|
}
|
|
35
|
+
function _cli() {
|
|
36
|
+
const data = require("@teambit/cli");
|
|
37
|
+
_cli = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
35
42
|
function _legacy() {
|
|
36
43
|
const data = require("@teambit/legacy.scope");
|
|
37
44
|
_legacy = function () {
|
|
@@ -97,52 +104,59 @@ class LaneListCmd {
|
|
|
97
104
|
});
|
|
98
105
|
if (merged) {
|
|
99
106
|
const mergedLanes = lanes.filter(l => l.isMerged);
|
|
100
|
-
if (!mergedLanes.length) return
|
|
101
|
-
|
|
107
|
+
if (!mergedLanes.length) return (0, _cli().formatHint)('none of the lanes is merged');
|
|
108
|
+
const items = mergedLanes.map(m => (0, _cli().formatItem)(m.name));
|
|
109
|
+
return (0, _cli().formatSection)('merged lanes', '', items);
|
|
102
110
|
}
|
|
103
111
|
if (notMerged) {
|
|
104
112
|
const unmergedLanes = lanes.filter(l => !l.isMerged);
|
|
105
|
-
if (!unmergedLanes.length) return
|
|
106
|
-
|
|
113
|
+
if (!unmergedLanes.length) return (0, _cli().formatHint)('all lanes are merged');
|
|
114
|
+
const items = unmergedLanes.map(m => (0, _cli().formatItem)(m.name));
|
|
115
|
+
return (0, _cli().formatSection)('unmerged lanes', '', items);
|
|
107
116
|
}
|
|
108
117
|
const currentLane = this.lanes.getCurrentLaneId() || this.lanes.getDefaultLaneId();
|
|
109
118
|
const laneDataOfCurrentLane = currentLane ? lanes.find(l => currentLane.isEqual(l.id)) : undefined;
|
|
110
119
|
const currentAlias = laneDataOfCurrentLane ? laneDataOfCurrentLane.alias : undefined;
|
|
111
120
|
const currentLaneReadmeComponentStr = outputReadmeComponent(laneDataOfCurrentLane?.readmeComponent);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const
|
|
115
|
-
if (
|
|
116
|
-
|
|
121
|
+
const getCurrentLaneOutput = () => {
|
|
122
|
+
if (remote) return '';
|
|
123
|
+
const currentLaneLabel = `current lane - ${_chalk().default.green(laneIdStr(currentLane, currentAlias))}${currentLaneReadmeComponentStr}`;
|
|
124
|
+
if (details && laneDataOfCurrentLane) {
|
|
125
|
+
return `${currentLaneLabel}\n${outputComponents(laneDataOfCurrentLane.components)}`;
|
|
117
126
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
127
|
+
return currentLaneLabel;
|
|
128
|
+
};
|
|
129
|
+
const getAvailableLanesOutput = () => {
|
|
130
|
+
const otherLanes = lanes.filter(l => !currentLane.isEqual(l.id));
|
|
131
|
+
if (!otherLanes.length) return '';
|
|
121
132
|
if (details) {
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
133
|
+
const items = otherLanes.map(laneData => {
|
|
134
|
+
const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);
|
|
135
|
+
const laneTitle = `> ${_chalk().default.bold(laneIdStr(laneData.id, laneData.alias))}`;
|
|
136
|
+
const components = outputComponents(laneData.components);
|
|
137
|
+
return `${laneTitle}${readmeComponentStr}\n${components}`;
|
|
138
|
+
});
|
|
139
|
+
return items.join('\n\n');
|
|
125
140
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
141
|
+
const items = otherLanes.map(laneData => {
|
|
142
|
+
const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);
|
|
143
|
+
return (0, _cli().formatItem)(`${_chalk().default.green(laneIdStr(laneData.id, laneData.alias))} (${laneData.components.length} components)${readmeComponentStr}`);
|
|
144
|
+
});
|
|
145
|
+
return (0, _cli().formatSection)('available lanes', '', items);
|
|
146
|
+
};
|
|
147
|
+
const getFooter = () => {
|
|
148
|
+
const hints = [];
|
|
130
149
|
if (details) {
|
|
131
|
-
|
|
150
|
+
hints.push('use --merged and --not-merged to see which of the lanes is fully merged');
|
|
132
151
|
} else {
|
|
133
|
-
|
|
152
|
+
hints.push("use 'bit lane list --details' or 'bit lane show <lane-name>' for more info");
|
|
153
|
+
}
|
|
154
|
+
if (!remote && this.workspace) {
|
|
155
|
+
hints.push("switch lanes using 'bit switch <name>'. create lanes using 'bit lane create <name>'");
|
|
134
156
|
}
|
|
135
|
-
|
|
136
|
-
return footer;
|
|
157
|
+
return (0, _cli().formatHint)(hints.join('\n'));
|
|
137
158
|
};
|
|
138
|
-
return
|
|
139
|
-
function outputCurrentLane() {
|
|
140
|
-
return currentLaneStr ? `${currentLaneStr}\n` : '';
|
|
141
|
-
}
|
|
142
|
-
function outputAvailableLanes() {
|
|
143
|
-
if (!availableLanes) return '';
|
|
144
|
-
return remote ? `${availableLanes}\n` : `\nAvailable lanes:\n${availableLanes}\n`;
|
|
145
|
-
}
|
|
159
|
+
return (0, _cli().joinSections)([getCurrentLaneOutput(), getAvailableLanesOutput(), getFooter()]);
|
|
146
160
|
}
|
|
147
161
|
async json(args, laneOptions) {
|
|
148
162
|
const {
|
|
@@ -226,11 +240,12 @@ class LaneShowCmd {
|
|
|
226
240
|
const onlyLane = lanes[0];
|
|
227
241
|
const laneId = onlyLane.id;
|
|
228
242
|
const laneIdStr = laneId.isDefault() ? _laneId().DEFAULT_LANE : laneId.toString();
|
|
229
|
-
const title =
|
|
230
|
-
const author = onlyLane.log ? `author: ${onlyLane.log?.username || 'N/A'} <${onlyLane.log?.email || 'N/A'}
|
|
231
|
-
const date = onlyLane.log?.date ? `created: ${new Date(parseInt(onlyLane.log.date)).toLocaleString()}
|
|
232
|
-
const link = laneId.isDefault() ? '' : `link: https://${_legacy2().DEFAULT_CLOUD_DOMAIN}/${laneId.scope.replace('.', '/')}/~lane/${laneId.name}
|
|
233
|
-
|
|
243
|
+
const title = (0, _cli().formatTitle)(laneIdStr);
|
|
244
|
+
const author = onlyLane.log ? `author: ${onlyLane.log?.username || 'N/A'} <${onlyLane.log?.email || 'N/A'}>` : '';
|
|
245
|
+
const date = onlyLane.log?.date ? `created: ${new Date(parseInt(onlyLane.log.date)).toLocaleString()}` : '';
|
|
246
|
+
const link = laneId.isDefault() ? '' : `link: https://${_legacy2().DEFAULT_CLOUD_DOMAIN}/${laneId.scope.replace('.', '/')}/~lane/${laneId.name}`;
|
|
247
|
+
const meta = [author, date, link].filter(Boolean).join('\n');
|
|
248
|
+
return (0, _cli().joinSections)([title, meta, outputComponents(onlyLane.components)]);
|
|
234
249
|
}
|
|
235
250
|
async geLanesData([name], laneOptions) {
|
|
236
251
|
const {
|
|
@@ -276,11 +291,10 @@ a lane created from another lane contains all the components of the original lan
|
|
|
276
291
|
if (createLaneOptions.remoteScope) createLaneOptions.scope = createLaneOptions.remoteScope;
|
|
277
292
|
const result = await this.lanes.createLane(name, createLaneOptions);
|
|
278
293
|
const remoteScopeOrDefaultScope = createLaneOptions.scope ? `the remote scope ${_chalk().default.bold(createLaneOptions.scope)}` : `the default-scope ${_chalk().default.bold(result.laneId.scope)}. you can change the lane's scope, before it is exported, with the "bit lane change-scope" command`;
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
return `${title}\n${remoteScopeOutput}`;
|
|
294
|
+
const summary = (0, _cli().formatSuccessSummary)(`successfully created and checked out to lane ${_chalk().default.bold(result.alias || result.laneId.name)}`);
|
|
295
|
+
const note = currentLane ? (0, _cli().formatHint)(`note - your new lane will be based on lane ${currentLane.name}`) : '';
|
|
296
|
+
const scopeInfo = (0, _cli().formatHint)(`this lane will be exported to ${remoteScopeOrDefaultScope}`);
|
|
297
|
+
return (0, _cli().joinSections)([summary, note, scopeInfo]);
|
|
284
298
|
}
|
|
285
299
|
}
|
|
286
300
|
exports.LaneCreateCmd = LaneCreateCmd;
|
|
@@ -728,13 +742,15 @@ class LaneRemoveReadmeCmd {
|
|
|
728
742
|
}
|
|
729
743
|
exports.LaneRemoveReadmeCmd = LaneRemoveReadmeCmd;
|
|
730
744
|
function outputComponents(components) {
|
|
731
|
-
const
|
|
732
|
-
|
|
733
|
-
return componentsTitle + componentsStr;
|
|
745
|
+
const items = components.map(c => (0, _cli().formatItem)(`${c.id.toString()} - ${c.head}`));
|
|
746
|
+
return (0, _cli().formatSection)('components', '', items);
|
|
734
747
|
}
|
|
735
748
|
function outputReadmeComponent(component) {
|
|
736
749
|
if (!component) return '';
|
|
737
|
-
|
|
750
|
+
const head = component.head || '(unsnapped)';
|
|
751
|
+
const hint = component.head ? '' : ` - use "bit snap ${component.id.fullName}" to snap before exporting`;
|
|
752
|
+
const prefix = component.head ? ' ' : ` ${_cli().warnSymbol} `;
|
|
753
|
+
return `${prefix}readme: ${component.id} - ${head}${hint}`;
|
|
738
754
|
}
|
|
739
755
|
|
|
740
756
|
//# sourceMappingURL=lane.cmd.js.map
|
package/dist/lane.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","_laneId","_checkout","_workspace","_legacy","_bitError","_yesno","_legacy2","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LaneListCmd","constructor","lanes","workspace","scope","report","args","laneOptions","details","remote","merged","notMerged","laneIdStr","laneId","alias","isDefault","name","toString","getLanes","showDefaultLane","mergedLanes","filter","l","isMerged","length","chalk","green","map","m","join","unmergedLanes","currentLane","getCurrentLaneId","getDefaultLaneId","laneDataOfCurrentLane","find","isEqual","id","undefined","currentAlias","currentLaneReadmeComponentStr","outputReadmeComponent","readmeComponent","currentLaneStr","currentLaneComponents","outputComponents","components","availableLanes","laneData","readmeComponentStr","laneTitle","bold","concat","outputFooter","footer","outputCurrentLane","outputAvailableLanes","json","lanesData","serializeLaneData","getCurrentLaneNameOrAlias","exports","LaneCurrentCmd","currentLaneId","DEFAULT_LANE","LaneShowCmd","geLanesData","onlyLane","title","author","log","username","email","date","Date","parseInt","toLocaleString","link","DEFAULT_CLOUD_DOMAIN","replace","Error","getCurrentLaneName","parseLaneId","LaneCreateCmd","description","createLaneOptions","OutsideWorkspaceError","getCurrentLane","remoteScope","result","createLane","remoteScopeOrDefaultScope","yellow","remoteScopeOutput","LaneAliasCmd","laneName","aliasLane","CatLaneHistoryCmd","laneHistory","getLaneHistory","JSON","stringify","toObject","LaneCheckoutCmd","historyId","opts","checkoutHistory","checkoutOutput","LaneRevertCmd","revertHistory","component","filesStatus","entries","reduce","acc","filePath","status","removedComponents","addedComponents","newComponents","failedComponents","unchangedMessage","unchangedLegitimately","leftUnresolvedConflicts","newFromLane","newFromLaneAdded","version","resolvedComponents","abortedComponents","installationError","message","compilationError","mergeSnapError","mergeSnapResults","snappedComponents","toStringArray","exportedIds","workspaceConfigUpdateResult","logs","LaneHistoryCmd","getHistoryData","BitError","importLaneHistory","history","getHistory","historyItem","singleItem","getDateString","items","keys","uuid","item","LaneEjectCmd","COMPONENT_PATTERN_HELP","pattern","results","eject","body","LaneChangeScopeCmd","remoteScopeBefore","localName","changeScope","LaneRenameCmd","newName","currentName","rename","LaneRemoveCmd","names","force","silent","logger","clearStatusLine","shouldProceed","yesno","question","laneResults","removeLanes","LaneRemoveCompCmd","LaneImportCmd","switchCmd","lane","skipDependencyInstallation","branch","autoMergeResolve","forceOurs","forceTheirs","LaneFetchCmd","fetchCmd","all","getLaneIdStr","LaneCmd","LaneRemoveReadmeCmd","removeLaneReadme","red","componentsTitle","componentsStr","c","head","fullName"],"sources":["lane.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport chalk from 'chalk';\nimport type { ScopeMain } from '@teambit/scope';\nimport type { LaneId } from '@teambit/lane-id';\nimport { DEFAULT_LANE } from '@teambit/lane-id';\nimport { checkoutOutput } from '@teambit/checkout';\nimport type { Workspace } from '@teambit/workspace';\nimport { OutsideWorkspaceError } from '@teambit/workspace';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport type { LaneData } from '@teambit/legacy.scope';\nimport { serializeLaneData } from '@teambit/legacy.scope';\nimport { BitError } from '@teambit/bit-error';\nimport yesno from 'yesno';\nimport { COMPONENT_PATTERN_HELP, DEFAULT_CLOUD_DOMAIN } from '@teambit/legacy.constants';\nimport type { CreateLaneOptions, LanesMain } from './lanes.main.runtime';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport type { SwitchCmd } from './switch.cmd';\nimport type { FetchCmd } from '@teambit/importer';\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 local or remote 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 a json format\"],\n ['r', 'remote <remote-scope-name>', 'show all remote lanes from the specified scope'],\n ['', 'merged', 'list only merged lanes'],\n ['', 'not-merged', \"list only lanes that haven't been merged\"],\n ] as CommandOptions;\n loader = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(\n private lanes: LanesMain,\n private workspace: Workspace,\n private scope: ScopeMain\n ) {}\n\n async report(args, laneOptions: LaneOptions): Promise<string> {\n const { details, remote, merged, notMerged } = laneOptions;\n const laneIdStr = (laneId: LaneId, alias?: string | null) => {\n if (laneId.isDefault()) return laneId.name;\n if (alias) return `${laneId.toString()} (${alias})`;\n return laneId.toString();\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.getCurrentLaneId() || this.lanes.getDefaultLaneId();\n const laneDataOfCurrentLane = currentLane ? lanes.find((l) => currentLane.isEqual(l.id)) : undefined;\n const currentAlias = laneDataOfCurrentLane ? laneDataOfCurrentLane.alias : undefined;\n const currentLaneReadmeComponentStr = outputReadmeComponent(laneDataOfCurrentLane?.readmeComponent);\n let currentLaneStr = remote\n ? ''\n : `current lane - ${chalk.green.green(laneIdStr(currentLane, currentAlias))}${currentLaneReadmeComponentStr}`;\n\n if (details) {\n const currentLaneComponents = laneDataOfCurrentLane ? outputComponents(laneDataOfCurrentLane.components) : '';\n if (currentLaneStr) {\n currentLaneStr += `\\n${currentLaneComponents}`;\n }\n }\n\n const availableLanes = lanes\n .filter((l) => !currentLane.isEqual(l.id))\n .map((laneData) => {\n const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);\n if (details) {\n const laneTitle = `> ${chalk.bold(laneIdStr(laneData.id, laneData.alias))}\\n`;\n const components = outputComponents(laneData.components);\n return laneTitle + readmeComponentStr.concat('\\n') + components;\n }\n return ` > ${chalk.green(laneIdStr(laneData.id, laneData.alias))} (${\n laneData.components.length\n } 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 local scope use 'bit lane list --details', or 'bit lane show <lane-name>' for a specific lane.\";\n }\n if (!remote && this.workspace)\n footer += `\\nswitch lanes using 'bit switch <name>'. create lanes using 'bit lane create <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 lanesData = await this.lanes.getLanes({\n remote,\n showDefaultLane: true,\n merged,\n notMerged,\n });\n const lanes = lanesData.map(serializeLaneData);\n const currentLane = this.lanes.getCurrentLaneNameOrAlias();\n return { lanes, currentLane };\n }\n}\n\nexport class LaneCurrentCmd implements Command {\n name = 'current';\n description = 'display the name of the current lane';\n alias = '';\n options = [['j', 'json', 'output in json format']] as CommandOptions;\n loader = false;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report(): Promise<string> {\n const currentLaneId = this.lanes.getCurrentLaneId();\n if (!currentLaneId || currentLaneId.isDefault()) {\n return DEFAULT_LANE;\n }\n const alias = this.lanes.getCurrentLaneNameOrAlias();\n if (alias && alias !== currentLaneId.name) {\n return `${currentLaneId.toString()} (${alias})`;\n }\n return currentLaneId.toString();\n }\n\n async json(): Promise<Record<string, unknown>> {\n const currentLaneId = this.lanes.getCurrentLaneId();\n if (!currentLaneId || currentLaneId.isDefault()) {\n return { name: DEFAULT_LANE, scope: null, id: DEFAULT_LANE, isDefault: true, alias: null };\n }\n const alias = this.lanes.getCurrentLaneNameOrAlias();\n return {\n name: currentLaneId.name,\n scope: currentLaneId.scope,\n id: currentLaneId.toString(),\n isDefault: false,\n alias: alias !== currentLaneId.name ? alias : null,\n };\n }\n}\n\nexport class LaneShowCmd implements Command {\n name = 'show [lane-name]';\n description = `show lane details. if no lane specified, show the current lane`;\n alias = '';\n options = [\n ['j', 'json', 'show the lane details in json format'],\n ['r', 'remote', 'show details of the remote head of the provided lane'],\n ] as CommandOptions;\n loader = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(\n private lanes: LanesMain,\n private workspace: Workspace,\n private scope: ScopeMain\n ) {}\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n const lanes = await this.geLanesData([name], laneOptions);\n const onlyLane = lanes[0];\n const laneId = onlyLane.id;\n const laneIdStr = laneId.isDefault() ? DEFAULT_LANE : laneId.toString();\n const title = `showing information for ${chalk.bold(laneIdStr)}\\n`;\n const author = onlyLane.log ? `author: ${onlyLane.log?.username || 'N/A'} <${onlyLane.log?.email || 'N/A'}>\\n` : '';\n const date = onlyLane.log?.date ? `created: ${new Date(parseInt(onlyLane.log.date)).toLocaleString()}\\n` : '';\n const link = laneId.isDefault()\n ? ''\n : `link: https://${DEFAULT_CLOUD_DOMAIN}/${laneId.scope.replace('.', '/')}/~lane/${laneId.name}\\n`;\n return title + author + date + link + outputComponents(onlyLane.components);\n }\n\n private async geLanesData([name]: [string], laneOptions: LaneOptions) {\n const { remote } = laneOptions;\n\n if (!name && remote) {\n throw new Error('remote flag is not supported without lane name');\n }\n if (!name) {\n name = this.lanes.getCurrentLaneName() || DEFAULT_LANE;\n }\n\n const laneId = await this.lanes.parseLaneId(name);\n\n const lanes = await this.lanes.getLanes({\n name: laneId.name,\n remote: remote ? laneId.scope : undefined,\n });\n\n return lanes;\n }\n\n async json([name]: [string], laneOptions: LaneOptions) {\n const lanes = await this.geLanesData([name], laneOptions);\n return serializeLaneData(lanes[0]);\n }\n}\n\nexport class LaneCreateCmd implements Command {\n name = 'create <lane-name>';\n arguments = [\n {\n name: 'lane-name',\n description: 'the name for the new lane',\n },\n ];\n description = `creates a new lane and switches to it`;\n extendedDescription = `a lane created from main (default-lane) is empty until components are snapped.\na lane created from another lane contains all the components of the original lane.`;\n alias = '';\n options = [\n [\n 's',\n 'scope <scope-name>',\n 'remote scope to which this lane will be exported, default to the workspace.json\\'s defaultScope (can be changed up to first export of the lane with \"bit lane change-scope\")',\n ],\n ['', 'remote-scope <scope-name>', 'DEPRECATED. use --scope'],\n [\n '',\n 'alias <name>',\n 'a local alias to refer to this lane, defaults to the `<lane-name>` (can be added later with \"bit lane alias\")',\n ],\n [\n '',\n 'fork-lane-new-scope',\n 'create the new lane in a different scope than its parent lane (if created from another lane)',\n ],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([name]: [string], createLaneOptions: CreateLaneOptions & { remoteScope?: string }): Promise<string> {\n if (!this.lanes.workspace) throw new OutsideWorkspaceError();\n const currentLane = await this.lanes.getCurrentLane();\n if (createLaneOptions.remoteScope) createLaneOptions.scope = createLaneOptions.remoteScope;\n const result = await this.lanes.createLane(name, createLaneOptions);\n const remoteScopeOrDefaultScope = createLaneOptions.scope\n ? `the remote scope ${chalk.bold(createLaneOptions.scope)}`\n : `the default-scope ${chalk.bold(\n result.laneId.scope\n )}. you can change the lane's scope, before it is exported, with the \"bit lane change-scope\" command`;\n const title = chalk.green(\n `successfully added and checked out to the new lane ${chalk.bold(result.alias || result.laneId.name)}\n ${currentLane ? chalk.yellow(`\\nnote - your new lane will be based on lane ${currentLane.name}`) : ''}\n `\n );\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 = 'adds an alias to a lane';\n extendedDescription = `an alias is a name that can be used locally to refer to a lane. it is saved locally and never reaches the remote.\nit is useful e.g. when having multiple lanes with the same name, but with different remote scopes.`;\n alias = '';\n options = [] as CommandOptions;\n loader = 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)} for lane ${chalk.bold(laneId.toString())}`;\n }\n}\n\nexport class CatLaneHistoryCmd implements Command {\n name = 'cat-lane-history <lane-name>';\n description = 'cat lane-history object by lane-name';\n private = true;\n alias = 'clh';\n options = [] as CommandOptions;\n loader = true;\n group = 'advanced';\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName]: [string]): Promise<string> {\n const laneId = await this.lanes.parseLaneId(laneName);\n const laneHistory = await this.lanes.getLaneHistory(laneId);\n return JSON.stringify(laneHistory.toObject(), null, 2);\n }\n}\n\nexport type LaneCheckoutOpts = {\n skipDependencyInstallation?: boolean;\n restoreDeletedComponents?: boolean;\n};\n\nexport class LaneCheckoutCmd implements Command {\n name = 'checkout <history-id>';\n description = 'checkout to a previous history of the current lane. see also \"bit lane revert\"';\n arguments = [\n { name: 'history-id', description: 'the history-id to checkout to. run \"bit lane history\" to list the ids' },\n ];\n alias = '';\n options = [\n ['x', 'skip-dependency-installation', 'do not install dependencies of the checked out components'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([historyId]: [string], opts: LaneCheckoutOpts): Promise<string> {\n const result = await this.lanes.checkoutHistory(historyId, opts);\n return checkoutOutput(result, {}, `successfully checked out according to history-id: ${historyId}`);\n }\n}\n\nexport class LaneRevertCmd implements Command {\n name = 'revert <history-id>';\n description = 'revert to a previous history of the current lane. see also \"bit lane checkout\"';\n extendedDescription = `revert is similar to \"lane checkout\", but it keeps the versions and only change the files.\nchoose one or the other based on your needs.\nif you want to continue working on this lane and needs the changes from the history to be the head, then use \"lane revert\".\nif you want to fork the lane from a certain point in history, use \"lane checkout\" and create a new lane from it.`;\n arguments = [\n { name: 'history-id', description: 'the history-id to checkout to. run \"bit lane history\" to list the ids' },\n ];\n alias = '';\n options = [\n ['x', 'skip-dependency-installation', 'do not install dependencies of the checked out components'],\n ['', 'restore-deleted-components', 'restore components that were deleted after this history point'],\n ['j', 'json', 'return the revert result in json format'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([historyId]: [string], opts: LaneCheckoutOpts): Promise<string> {\n const result = await this.lanes.revertHistory(historyId, opts);\n return checkoutOutput(result, {}, `successfully reverted according to history-id: ${historyId}`);\n }\n\n async json([historyId]: [string], opts: LaneCheckoutOpts) {\n const result = await this.lanes.revertHistory(historyId, opts);\n return {\n components: result.components?.map((component) => ({\n id: component.id.toString(),\n filesStatus: Object.entries(component.filesStatus || {}).reduce(\n (acc, [filePath, status]) => {\n acc[filePath] = status;\n return acc;\n },\n {} as Record<string, string>\n ),\n })),\n removedComponents: result.removedComponents?.map((id) => id.toString()),\n addedComponents: result.addedComponents?.map((id) => id.toString()),\n newComponents: result.newComponents?.map((id) => id.toString()),\n failedComponents: result.failedComponents?.map((component) => ({\n id: component.id.toString(),\n unchangedMessage: component.unchangedMessage,\n unchangedLegitimately: component.unchangedLegitimately,\n })),\n leftUnresolvedConflicts: result.leftUnresolvedConflicts,\n newFromLane: result.newFromLane,\n newFromLaneAdded: result.newFromLaneAdded,\n version: result.version,\n resolvedComponents: result.resolvedComponents?.map((component) => component.id.toString()),\n abortedComponents: result.abortedComponents?.map((component) => ({\n id: component.id.toString(),\n filesStatus: Object.entries(component.filesStatus || {}).reduce(\n (acc, [filePath, status]) => {\n acc[filePath] = status;\n return acc;\n },\n {} as Record<string, string>\n ),\n })),\n installationError: result.installationError?.message,\n compilationError: result.compilationError?.message,\n mergeSnapError: result.mergeSnapError?.message,\n mergeSnapResults: result.mergeSnapResults\n ? {\n snappedComponents: result.mergeSnapResults.snappedComponents?.map((component) => component.id.toString()),\n removedComponents: result.mergeSnapResults.removedComponents?.toStringArray(),\n exportedIds: result.mergeSnapResults.exportedIds?.map((id) => id.toString()),\n }\n : null,\n workspaceConfigUpdateResult: result.workspaceConfigUpdateResult\n ? {\n logs: result.workspaceConfigUpdateResult.logs,\n }\n : undefined,\n historyId,\n };\n }\n}\n\nexport class LaneHistoryCmd implements Command {\n name = 'history [lane-name]';\n description = 'show lane history, default to the current lane';\n extendedDescription = `list from the oldest to the newest history items`;\n alias = '';\n options = [\n ['', 'id <string>', 'show a specific history item'],\n ['j', 'json', 'return the lane history in json format'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n private async getHistoryData(laneName?: string, id?: string) {\n const laneId = laneName ? await this.lanes.parseLaneId(laneName) : this.lanes.getCurrentLaneId();\n if (!laneId || laneId.isDefault()) throw new BitError(`unable to show history of the default lane (main)`);\n await this.lanes.importLaneHistory(laneId);\n const laneHistory = await this.lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n\n if (id) {\n const historyItem = history[id];\n if (!historyItem) throw new Error(`history id ${id} was not found`);\n return { historyItem, id, history, singleItem: true };\n }\n\n return { history, singleItem: false };\n }\n\n private getDateString(date: string) {\n return new Date(parseInt(date)).toLocaleString();\n }\n\n async report([laneName]: [string], { id }: { id?: string }): Promise<string> {\n const { history, historyItem, singleItem } = await this.getHistoryData(laneName, id);\n\n if (singleItem && historyItem) {\n const date = this.getDateString(historyItem.log.date);\n const message = historyItem.log.message;\n return `${id} ${date} ${historyItem.log.username} ${message}\\n\\n${historyItem.components.join('\\n')}`;\n }\n\n const items = Object.keys(history).map((uuid) => {\n const item = history[uuid];\n const date = this.getDateString(item.log.date);\n const message = item.log.message;\n return `${uuid} ${date} ${item.log.username} ${message}`;\n });\n return items.join('\\n');\n }\n\n async json([laneName]: [string], { id }: { id?: string }) {\n const { history, historyItem, id: historyId, singleItem } = await this.getHistoryData(laneName, id);\n\n if (singleItem && historyItem) {\n return {\n id: historyId,\n date: historyItem.log.date,\n username: historyItem.log.username,\n message: historyItem.log.message,\n components: historyItem.components,\n };\n }\n\n return Object.keys(history).map((uuid) => {\n const item = history[uuid];\n return {\n id: uuid,\n date: item.log.date,\n username: item.log.username,\n message: item.log.message,\n components: item.components,\n };\n });\n }\n}\n\nexport class LaneEjectCmd implements Command {\n name = 'eject <component-pattern>';\n description = `delete a component from the lane and install it as a package from main`;\n extendedDescription = `NOTE: unlike \"bit eject\" on main, this command doesn't only remove the component from the\nworkspace, but also mark it as deleted from the lane, so it won't be merged later on.`;\n alias = '';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n options = [] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.lanes.eject(pattern);\n const title = chalk.green('successfully ejected the following components');\n const body = results.map((r) => r.toString()).join('\\n');\n return `${title}\\n${body}`;\n }\n}\n\nexport class LaneChangeScopeCmd implements Command {\n name = 'change-scope <remote-scope-name>';\n description = `changes the remote scope of a lane`;\n extendedDescription = 'NOTE: available only before the lane is exported to the remote';\n alias = '';\n options = [\n [\n 'l',\n 'lane-name <lane-name>',\n 'the name of the lane to change its remote scope. if not specified, the current lane is used',\n ],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([remoteScope]: [string], { laneName }: { laneName?: string }): Promise<string> {\n const { remoteScopeBefore, localName } = await this.lanes.changeScope(remoteScope, laneName);\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 <new-name>';\n description = `change the lane-name locally`;\n extendedDescription = 'the remote will be updated after the next \"bit export\" command';\n alias = '';\n options = [\n ['l', 'lane-name <lane-name>', 'the name of the lane to rename. if not specified, the current lane is used'],\n ] as CommandOptions;\n loader = true;\n constructor(private lanes: LanesMain) {}\n\n async report([newName]: [string], { laneName }: { laneName?: string }): Promise<string> {\n const { currentName } = await this.lanes.rename(newName, laneName);\n return `the lane ${chalk.bold(currentName)}'s name has been changed to ${chalk.bold(newName)}.`;\n }\n}\n\nexport class LaneRemoveCmd implements Command {\n name = 'remove <lanes...>';\n arguments = [{ name: 'lanes...', description: 'A list of lane names, separated by spaces' }];\n description = `remove or delete lanes`;\n group = 'collaborate';\n alias = '';\n options = [\n [\n 'r',\n 'remote',\n 'delete a remote lane. use remote/lane-id syntax e.g. bit lane remove owner.org/my-lane --remote. Delete is immediate, no export required',\n ],\n ['f', 'force', 'removes/deletes the lane even when the lane is not yet merged to main'],\n ['s', 'silent', 'skip confirmation'],\n ] as CommandOptions;\n loader = 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 this.lanes.logger.clearStatusLine(); // stop the logger to avoid polluting the prompt\n const shouldProceed = await yesno({\n question: 'Are you sure you would like to proceed with this operation? [yes(y)/no(n)]',\n });\n if (!shouldProceed) {\n throw new BitError('the operation has been cancelled');\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 type RemoveCompsOpts = { workspaceOnly?: boolean; updateMain?: boolean };\n\nexport class LaneRemoveCompCmd implements Command {\n name = 'remove-comp <component-pattern>';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n description = `DEPRECATED. remove components when on a lane`;\n group = 'collaborate';\n alias = 'rc';\n options = [\n [\n '',\n 'workspace-only',\n 'do not mark the components as removed from the lane. instead, remove them from the workspace only',\n ],\n [\n '',\n 'update-main',\n 'EXPERIMENTAL. remove, i.e. delete, component/s on the main lane after merging this lane into main',\n ],\n ] as CommandOptions;\n loader = true;\n\n constructor(\n private workspace: Workspace,\n private lanes: LanesMain\n ) {}\n\n async report(): Promise<string> {\n throw new BitError(`bit lane remove-comp has been removed. please use \"bit remove\" or \"bit delete\" instead`);\n }\n}\n\nexport class LaneImportCmd implements Command {\n name = 'import <lane>';\n description = `import a remote lane to your workspace and switch to that lane`;\n arguments = [{ name: 'lane', description: 'the remote lane name' }];\n alias = '';\n options = [\n ['x', 'skip-dependency-installation', 'do not install dependencies of the imported components'],\n [\n 'p',\n 'pattern <component-pattern>',\n 'import only components from the lane that fit the specified component-pattern to the workspace. works only when the workspace is empty',\n ],\n ['', 'branch', 'create and checkout a new git branch named after the lane'],\n [\n 'r',\n 'auto-merge-resolve <merge-strategy>',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['', 'force-ours', 'do not merge, preserve local files as is'],\n ['', 'force-theirs', 'do not merge, just overwrite with incoming files'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private switchCmd: SwitchCmd) {}\n\n async report(\n [lane]: [string],\n {\n skipDependencyInstallation = false,\n pattern,\n branch = false,\n autoMergeResolve,\n forceOurs = false,\n forceTheirs = false,\n }: {\n skipDependencyInstallation: boolean;\n pattern?: string;\n branch?: boolean;\n autoMergeResolve?: MergeStrategy;\n forceOurs?: boolean;\n forceTheirs?: boolean;\n }\n ): Promise<string> {\n if (forceOurs && forceTheirs) {\n throw new BitError('please use either --force-ours or --force-theirs, not both');\n }\n return this.switchCmd.report([lane], {\n skipDependencyInstallation,\n pattern,\n branch,\n autoMergeResolve,\n forceOurs,\n forceTheirs,\n });\n }\n}\n\nexport class LaneFetchCmd implements Command {\n name = 'fetch [lane-id]';\n description = `fetch component objects from lanes. if no lane-id is provided, it fetches from the current lane`;\n extendedDescription = `note, it does not save the remote lanes objects locally, only the refs`;\n alias = '';\n options = [['a', 'all', 'fetch all remote lanes']] as CommandOptions;\n loader = true;\n\n constructor(\n private fetchCmd: FetchCmd,\n private lanes: LanesMain\n ) {}\n\n async report([laneId]: [string], { all }: { all?: boolean }): Promise<string> {\n if (all) return this.fetchCmd.report([[]], { lanes: true });\n const getLaneIdStr = () => {\n if (laneId) return laneId;\n const currentLane = this.lanes.getCurrentLaneId();\n if (!currentLane || currentLane.isDefault())\n throw new BitError('you are not checked out to any lane. please specify a lane-id to fetch or use --all flag');\n return currentLane.toString();\n };\n const lane = getLaneIdStr();\n return this.fetchCmd.report([[lane]], { lanes: true });\n }\n}\n\nexport class LaneCmd implements Command {\n name = 'lane [sub-command]';\n description = 'manage lanes for parallel development';\n extendedDescription = `lanes allow isolated development of features without affecting main branch components.\ncreate, switch between, and merge lanes to coordinate parallel work across teams.\nwithout a sub-command, lists all available lanes.`;\n alias = 'l';\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 <remote-scope-name>', 'show all remote lanes from the specified scope'],\n ['', 'merged', 'list only merged lanes'],\n ['', 'not-merged', \"list only lanes that haven't been merged\"],\n ] as CommandOptions;\n loader = true;\n group = 'collaborate';\n remoteOp = true;\n skipWorkspace = true;\n helpUrl = 'reference/components/lanes';\n commands: Command[] = [];\n\n constructor(\n private lanes: LanesMain,\n private workspace: Workspace,\n private scope: ScopeMain\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\n/**\n * @deprecated - only use it to revert the add-readme command changes\n */\nexport class LaneRemoveReadmeCmd implements Command {\n name = 'remove-readme [laneName]';\n description =\n 'DEPRECATED (only use it if you have used add-readme and want to undo it). remove lane readme component';\n options = [] as CommandOptions;\n loader = 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 ${\n laneName || this.lanes.getCurrentLaneName()\n }`\n );\n }\n\n return chalk.red(`${message}\\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.fullName}\" to snap the readme component on the lane before exporting)`\n }`}\\n`;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","_laneId","_checkout","_workspace","_cli","_legacy","_bitError","_yesno","_legacy2","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LaneListCmd","constructor","lanes","workspace","scope","report","args","laneOptions","details","remote","merged","notMerged","laneIdStr","laneId","alias","isDefault","name","toString","getLanes","showDefaultLane","mergedLanes","filter","l","isMerged","length","formatHint","items","map","m","formatItem","formatSection","unmergedLanes","currentLane","getCurrentLaneId","getDefaultLaneId","laneDataOfCurrentLane","find","isEqual","id","undefined","currentAlias","currentLaneReadmeComponentStr","outputReadmeComponent","readmeComponent","getCurrentLaneOutput","currentLaneLabel","chalk","green","outputComponents","components","getAvailableLanesOutput","otherLanes","laneData","readmeComponentStr","laneTitle","bold","join","getFooter","hints","push","joinSections","json","lanesData","serializeLaneData","getCurrentLaneNameOrAlias","exports","LaneCurrentCmd","currentLaneId","DEFAULT_LANE","LaneShowCmd","geLanesData","onlyLane","title","formatTitle","author","log","username","email","date","Date","parseInt","toLocaleString","link","DEFAULT_CLOUD_DOMAIN","replace","meta","Boolean","Error","getCurrentLaneName","parseLaneId","LaneCreateCmd","description","createLaneOptions","OutsideWorkspaceError","getCurrentLane","remoteScope","result","createLane","remoteScopeOrDefaultScope","summary","formatSuccessSummary","note","scopeInfo","LaneAliasCmd","laneName","aliasLane","CatLaneHistoryCmd","laneHistory","getLaneHistory","JSON","stringify","toObject","LaneCheckoutCmd","historyId","opts","checkoutHistory","checkoutOutput","LaneRevertCmd","revertHistory","component","filesStatus","entries","reduce","acc","filePath","status","removedComponents","addedComponents","newComponents","failedComponents","unchangedMessage","unchangedLegitimately","leftUnresolvedConflicts","newFromLane","newFromLaneAdded","version","resolvedComponents","abortedComponents","installationError","message","compilationError","mergeSnapError","mergeSnapResults","snappedComponents","toStringArray","exportedIds","workspaceConfigUpdateResult","logs","LaneHistoryCmd","getHistoryData","BitError","importLaneHistory","history","getHistory","historyItem","singleItem","getDateString","keys","uuid","item","LaneEjectCmd","COMPONENT_PATTERN_HELP","pattern","results","eject","body","LaneChangeScopeCmd","remoteScopeBefore","localName","changeScope","LaneRenameCmd","newName","currentName","rename","LaneRemoveCmd","names","force","silent","logger","clearStatusLine","shouldProceed","yesno","question","laneResults","removeLanes","LaneRemoveCompCmd","LaneImportCmd","switchCmd","lane","skipDependencyInstallation","branch","autoMergeResolve","forceOurs","forceTheirs","LaneFetchCmd","fetchCmd","all","getLaneIdStr","LaneCmd","LaneRemoveReadmeCmd","removeLaneReadme","red","c","head","hint","fullName","prefix","warnSymbol"],"sources":["lane.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport chalk from 'chalk';\nimport type { ScopeMain } from '@teambit/scope';\nimport type { LaneId } from '@teambit/lane-id';\nimport { DEFAULT_LANE } from '@teambit/lane-id';\nimport { checkoutOutput } from '@teambit/checkout';\nimport type { Workspace } from '@teambit/workspace';\nimport { OutsideWorkspaceError } from '@teambit/workspace';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport {\n formatTitle,\n formatSection,\n formatItem,\n formatSuccessSummary,\n formatHint,\n warnSymbol,\n joinSections,\n} from '@teambit/cli';\nimport type { LaneData } from '@teambit/legacy.scope';\nimport { serializeLaneData } from '@teambit/legacy.scope';\nimport { BitError } from '@teambit/bit-error';\nimport yesno from 'yesno';\nimport { COMPONENT_PATTERN_HELP, DEFAULT_CLOUD_DOMAIN } from '@teambit/legacy.constants';\nimport type { CreateLaneOptions, LanesMain } from './lanes.main.runtime';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport type { SwitchCmd } from './switch.cmd';\nimport type { FetchCmd } from '@teambit/importer';\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 local or remote 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 a json format\"],\n ['r', 'remote <remote-scope-name>', 'show all remote lanes from the specified scope'],\n ['', 'merged', 'list only merged lanes'],\n ['', 'not-merged', \"list only lanes that haven't been merged\"],\n ] as CommandOptions;\n loader = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(\n private lanes: LanesMain,\n private workspace: Workspace,\n private scope: ScopeMain\n ) {}\n\n async report(args, laneOptions: LaneOptions): Promise<string> {\n const { details, remote, merged, notMerged } = laneOptions;\n const laneIdStr = (laneId: LaneId, alias?: string | null) => {\n if (laneId.isDefault()) return laneId.name;\n if (alias) return `${laneId.toString()} (${alias})`;\n return laneId.toString();\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 formatHint('none of the lanes is merged');\n const items = mergedLanes.map((m) => formatItem(m.name));\n return formatSection('merged lanes', '', items);\n }\n if (notMerged) {\n const unmergedLanes = lanes.filter((l) => !l.isMerged);\n if (!unmergedLanes.length) return formatHint('all lanes are merged');\n const items = unmergedLanes.map((m) => formatItem(m.name));\n return formatSection('unmerged lanes', '', items);\n }\n const currentLane = this.lanes.getCurrentLaneId() || this.lanes.getDefaultLaneId();\n const laneDataOfCurrentLane = currentLane ? lanes.find((l) => currentLane.isEqual(l.id)) : undefined;\n const currentAlias = laneDataOfCurrentLane ? laneDataOfCurrentLane.alias : undefined;\n const currentLaneReadmeComponentStr = outputReadmeComponent(laneDataOfCurrentLane?.readmeComponent);\n\n const getCurrentLaneOutput = () => {\n if (remote) return '';\n const currentLaneLabel = `current lane - ${chalk.green(laneIdStr(currentLane, currentAlias))}${currentLaneReadmeComponentStr}`;\n if (details && laneDataOfCurrentLane) {\n return `${currentLaneLabel}\\n${outputComponents(laneDataOfCurrentLane.components)}`;\n }\n return currentLaneLabel;\n };\n\n const getAvailableLanesOutput = () => {\n const otherLanes = lanes.filter((l) => !currentLane.isEqual(l.id));\n if (!otherLanes.length) return '';\n if (details) {\n const items = otherLanes.map((laneData) => {\n const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);\n const laneTitle = `> ${chalk.bold(laneIdStr(laneData.id, laneData.alias))}`;\n const components = outputComponents(laneData.components);\n return `${laneTitle}${readmeComponentStr}\\n${components}`;\n });\n return items.join('\\n\\n');\n }\n const items = otherLanes.map((laneData) => {\n const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);\n return formatItem(\n `${chalk.green(laneIdStr(laneData.id, laneData.alias))} (${laneData.components.length} components)${readmeComponentStr}`\n );\n });\n return formatSection('available lanes', '', items);\n };\n\n const getFooter = () => {\n const hints: string[] = [];\n if (details) {\n hints.push('use --merged and --not-merged to see which of the lanes is fully merged');\n } else {\n hints.push(\"use 'bit lane list --details' or 'bit lane show <lane-name>' for more info\");\n }\n if (!remote && this.workspace) {\n hints.push(\"switch lanes using 'bit switch <name>'. create lanes using 'bit lane create <name>'\");\n }\n return formatHint(hints.join('\\n'));\n };\n\n return joinSections([getCurrentLaneOutput(), getAvailableLanesOutput(), getFooter()]);\n }\n async json(args, laneOptions: LaneOptions) {\n const { remote, merged = false, notMerged = false } = laneOptions;\n\n const lanesData = await this.lanes.getLanes({\n remote,\n showDefaultLane: true,\n merged,\n notMerged,\n });\n const lanes = lanesData.map(serializeLaneData);\n const currentLane = this.lanes.getCurrentLaneNameOrAlias();\n return { lanes, currentLane };\n }\n}\n\nexport class LaneCurrentCmd implements Command {\n name = 'current';\n description = 'display the name of the current lane';\n alias = '';\n options = [['j', 'json', 'output in json format']] as CommandOptions;\n loader = false;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report(): Promise<string> {\n const currentLaneId = this.lanes.getCurrentLaneId();\n if (!currentLaneId || currentLaneId.isDefault()) {\n return DEFAULT_LANE;\n }\n const alias = this.lanes.getCurrentLaneNameOrAlias();\n if (alias && alias !== currentLaneId.name) {\n return `${currentLaneId.toString()} (${alias})`;\n }\n return currentLaneId.toString();\n }\n\n async json(): Promise<Record<string, unknown>> {\n const currentLaneId = this.lanes.getCurrentLaneId();\n if (!currentLaneId || currentLaneId.isDefault()) {\n return { name: DEFAULT_LANE, scope: null, id: DEFAULT_LANE, isDefault: true, alias: null };\n }\n const alias = this.lanes.getCurrentLaneNameOrAlias();\n return {\n name: currentLaneId.name,\n scope: currentLaneId.scope,\n id: currentLaneId.toString(),\n isDefault: false,\n alias: alias !== currentLaneId.name ? alias : null,\n };\n }\n}\n\nexport class LaneShowCmd implements Command {\n name = 'show [lane-name]';\n description = `show lane details. if no lane specified, show the current lane`;\n alias = '';\n options = [\n ['j', 'json', 'show the lane details in json format'],\n ['r', 'remote', 'show details of the remote head of the provided lane'],\n ] as CommandOptions;\n loader = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(\n private lanes: LanesMain,\n private workspace: Workspace,\n private scope: ScopeMain\n ) {}\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n const lanes = await this.geLanesData([name], laneOptions);\n const onlyLane = lanes[0];\n const laneId = onlyLane.id;\n const laneIdStr = laneId.isDefault() ? DEFAULT_LANE : laneId.toString();\n const title = formatTitle(laneIdStr);\n const author = onlyLane.log ? `author: ${onlyLane.log?.username || 'N/A'} <${onlyLane.log?.email || 'N/A'}>` : '';\n const date = onlyLane.log?.date ? `created: ${new Date(parseInt(onlyLane.log.date)).toLocaleString()}` : '';\n const link = laneId.isDefault()\n ? ''\n : `link: https://${DEFAULT_CLOUD_DOMAIN}/${laneId.scope.replace('.', '/')}/~lane/${laneId.name}`;\n const meta = [author, date, link].filter(Boolean).join('\\n');\n return joinSections([title, meta, outputComponents(onlyLane.components)]);\n }\n\n private async geLanesData([name]: [string], laneOptions: LaneOptions) {\n const { remote } = laneOptions;\n\n if (!name && remote) {\n throw new Error('remote flag is not supported without lane name');\n }\n if (!name) {\n name = this.lanes.getCurrentLaneName() || DEFAULT_LANE;\n }\n\n const laneId = await this.lanes.parseLaneId(name);\n\n const lanes = await this.lanes.getLanes({\n name: laneId.name,\n remote: remote ? laneId.scope : undefined,\n });\n\n return lanes;\n }\n\n async json([name]: [string], laneOptions: LaneOptions) {\n const lanes = await this.geLanesData([name], laneOptions);\n return serializeLaneData(lanes[0]);\n }\n}\n\nexport class LaneCreateCmd implements Command {\n name = 'create <lane-name>';\n arguments = [\n {\n name: 'lane-name',\n description: 'the name for the new lane',\n },\n ];\n description = `creates a new lane and switches to it`;\n extendedDescription = `a lane created from main (default-lane) is empty until components are snapped.\na lane created from another lane contains all the components of the original lane.`;\n alias = '';\n options = [\n [\n 's',\n 'scope <scope-name>',\n 'remote scope to which this lane will be exported, default to the workspace.json\\'s defaultScope (can be changed up to first export of the lane with \"bit lane change-scope\")',\n ],\n ['', 'remote-scope <scope-name>', 'DEPRECATED. use --scope'],\n [\n '',\n 'alias <name>',\n 'a local alias to refer to this lane, defaults to the `<lane-name>` (can be added later with \"bit lane alias\")',\n ],\n [\n '',\n 'fork-lane-new-scope',\n 'create the new lane in a different scope than its parent lane (if created from another lane)',\n ],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([name]: [string], createLaneOptions: CreateLaneOptions & { remoteScope?: string }): Promise<string> {\n if (!this.lanes.workspace) throw new OutsideWorkspaceError();\n const currentLane = await this.lanes.getCurrentLane();\n if (createLaneOptions.remoteScope) createLaneOptions.scope = createLaneOptions.remoteScope;\n const result = await this.lanes.createLane(name, createLaneOptions);\n const remoteScopeOrDefaultScope = createLaneOptions.scope\n ? `the remote scope ${chalk.bold(createLaneOptions.scope)}`\n : `the default-scope ${chalk.bold(\n result.laneId.scope\n )}. you can change the lane's scope, before it is exported, with the \"bit lane change-scope\" command`;\n const summary = formatSuccessSummary(\n `successfully created and checked out to lane ${chalk.bold(result.alias || result.laneId.name)}`\n );\n const note = currentLane ? formatHint(`note - your new lane will be based on lane ${currentLane.name}`) : '';\n const scopeInfo = formatHint(`this lane will be exported to ${remoteScopeOrDefaultScope}`);\n return joinSections([summary, note, scopeInfo]);\n }\n}\n\nexport class LaneAliasCmd implements Command {\n name = 'alias <lane-name> <alias>';\n description = 'adds an alias to a lane';\n extendedDescription = `an alias is a name that can be used locally to refer to a lane. it is saved locally and never reaches the remote.\nit is useful e.g. when having multiple lanes with the same name, but with different remote scopes.`;\n alias = '';\n options = [] as CommandOptions;\n loader = 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)} for lane ${chalk.bold(laneId.toString())}`;\n }\n}\n\nexport class CatLaneHistoryCmd implements Command {\n name = 'cat-lane-history <lane-name>';\n description = 'cat lane-history object by lane-name';\n private = true;\n alias = 'clh';\n options = [] as CommandOptions;\n loader = true;\n group = 'advanced';\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName]: [string]): Promise<string> {\n const laneId = await this.lanes.parseLaneId(laneName);\n const laneHistory = await this.lanes.getLaneHistory(laneId);\n return JSON.stringify(laneHistory.toObject(), null, 2);\n }\n}\n\nexport type LaneCheckoutOpts = {\n skipDependencyInstallation?: boolean;\n restoreDeletedComponents?: boolean;\n};\n\nexport class LaneCheckoutCmd implements Command {\n name = 'checkout <history-id>';\n description = 'checkout to a previous history of the current lane. see also \"bit lane revert\"';\n arguments = [\n { name: 'history-id', description: 'the history-id to checkout to. run \"bit lane history\" to list the ids' },\n ];\n alias = '';\n options = [\n ['x', 'skip-dependency-installation', 'do not install dependencies of the checked out components'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([historyId]: [string], opts: LaneCheckoutOpts): Promise<string> {\n const result = await this.lanes.checkoutHistory(historyId, opts);\n return checkoutOutput(result, {}, `successfully checked out according to history-id: ${historyId}`);\n }\n}\n\nexport class LaneRevertCmd implements Command {\n name = 'revert <history-id>';\n description = 'revert to a previous history of the current lane. see also \"bit lane checkout\"';\n extendedDescription = `revert is similar to \"lane checkout\", but it keeps the versions and only change the files.\nchoose one or the other based on your needs.\nif you want to continue working on this lane and needs the changes from the history to be the head, then use \"lane revert\".\nif you want to fork the lane from a certain point in history, use \"lane checkout\" and create a new lane from it.`;\n arguments = [\n { name: 'history-id', description: 'the history-id to checkout to. run \"bit lane history\" to list the ids' },\n ];\n alias = '';\n options = [\n ['x', 'skip-dependency-installation', 'do not install dependencies of the checked out components'],\n ['', 'restore-deleted-components', 'restore components that were deleted after this history point'],\n ['j', 'json', 'return the revert result in json format'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([historyId]: [string], opts: LaneCheckoutOpts): Promise<string> {\n const result = await this.lanes.revertHistory(historyId, opts);\n return checkoutOutput(result, {}, `successfully reverted according to history-id: ${historyId}`);\n }\n\n async json([historyId]: [string], opts: LaneCheckoutOpts) {\n const result = await this.lanes.revertHistory(historyId, opts);\n return {\n components: result.components?.map((component) => ({\n id: component.id.toString(),\n filesStatus: Object.entries(component.filesStatus || {}).reduce(\n (acc, [filePath, status]) => {\n acc[filePath] = status;\n return acc;\n },\n {} as Record<string, string>\n ),\n })),\n removedComponents: result.removedComponents?.map((id) => id.toString()),\n addedComponents: result.addedComponents?.map((id) => id.toString()),\n newComponents: result.newComponents?.map((id) => id.toString()),\n failedComponents: result.failedComponents?.map((component) => ({\n id: component.id.toString(),\n unchangedMessage: component.unchangedMessage,\n unchangedLegitimately: component.unchangedLegitimately,\n })),\n leftUnresolvedConflicts: result.leftUnresolvedConflicts,\n newFromLane: result.newFromLane,\n newFromLaneAdded: result.newFromLaneAdded,\n version: result.version,\n resolvedComponents: result.resolvedComponents?.map((component) => component.id.toString()),\n abortedComponents: result.abortedComponents?.map((component) => ({\n id: component.id.toString(),\n filesStatus: Object.entries(component.filesStatus || {}).reduce(\n (acc, [filePath, status]) => {\n acc[filePath] = status;\n return acc;\n },\n {} as Record<string, string>\n ),\n })),\n installationError: result.installationError?.message,\n compilationError: result.compilationError?.message,\n mergeSnapError: result.mergeSnapError?.message,\n mergeSnapResults: result.mergeSnapResults\n ? {\n snappedComponents: result.mergeSnapResults.snappedComponents?.map((component) => component.id.toString()),\n removedComponents: result.mergeSnapResults.removedComponents?.toStringArray(),\n exportedIds: result.mergeSnapResults.exportedIds?.map((id) => id.toString()),\n }\n : null,\n workspaceConfigUpdateResult: result.workspaceConfigUpdateResult\n ? {\n logs: result.workspaceConfigUpdateResult.logs,\n }\n : undefined,\n historyId,\n };\n }\n}\n\nexport class LaneHistoryCmd implements Command {\n name = 'history [lane-name]';\n description = 'show lane history, default to the current lane';\n extendedDescription = `list from the oldest to the newest history items`;\n alias = '';\n options = [\n ['', 'id <string>', 'show a specific history item'],\n ['j', 'json', 'return the lane history in json format'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n private async getHistoryData(laneName?: string, id?: string) {\n const laneId = laneName ? await this.lanes.parseLaneId(laneName) : this.lanes.getCurrentLaneId();\n if (!laneId || laneId.isDefault()) throw new BitError(`unable to show history of the default lane (main)`);\n await this.lanes.importLaneHistory(laneId);\n const laneHistory = await this.lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n\n if (id) {\n const historyItem = history[id];\n if (!historyItem) throw new Error(`history id ${id} was not found`);\n return { historyItem, id, history, singleItem: true };\n }\n\n return { history, singleItem: false };\n }\n\n private getDateString(date: string) {\n return new Date(parseInt(date)).toLocaleString();\n }\n\n async report([laneName]: [string], { id }: { id?: string }): Promise<string> {\n const { history, historyItem, singleItem } = await this.getHistoryData(laneName, id);\n\n if (singleItem && historyItem) {\n const date = this.getDateString(historyItem.log.date);\n const message = historyItem.log.message;\n return `${id} ${date} ${historyItem.log.username} ${message}\\n\\n${historyItem.components.join('\\n')}`;\n }\n\n const items = Object.keys(history).map((uuid) => {\n const item = history[uuid];\n const date = this.getDateString(item.log.date);\n const message = item.log.message;\n return `${uuid} ${date} ${item.log.username} ${message}`;\n });\n return items.join('\\n');\n }\n\n async json([laneName]: [string], { id }: { id?: string }) {\n const { history, historyItem, id: historyId, singleItem } = await this.getHistoryData(laneName, id);\n\n if (singleItem && historyItem) {\n return {\n id: historyId,\n date: historyItem.log.date,\n username: historyItem.log.username,\n message: historyItem.log.message,\n components: historyItem.components,\n };\n }\n\n return Object.keys(history).map((uuid) => {\n const item = history[uuid];\n return {\n id: uuid,\n date: item.log.date,\n username: item.log.username,\n message: item.log.message,\n components: item.components,\n };\n });\n }\n}\n\nexport class LaneEjectCmd implements Command {\n name = 'eject <component-pattern>';\n description = `delete a component from the lane and install it as a package from main`;\n extendedDescription = `NOTE: unlike \"bit eject\" on main, this command doesn't only remove the component from the\nworkspace, but also mark it as deleted from the lane, so it won't be merged later on.`;\n alias = '';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n options = [] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.lanes.eject(pattern);\n const title = chalk.green('successfully ejected the following components');\n const body = results.map((r) => r.toString()).join('\\n');\n return `${title}\\n${body}`;\n }\n}\n\nexport class LaneChangeScopeCmd implements Command {\n name = 'change-scope <remote-scope-name>';\n description = `changes the remote scope of a lane`;\n extendedDescription = 'NOTE: available only before the lane is exported to the remote';\n alias = '';\n options = [\n [\n 'l',\n 'lane-name <lane-name>',\n 'the name of the lane to change its remote scope. if not specified, the current lane is used',\n ],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([remoteScope]: [string], { laneName }: { laneName?: string }): Promise<string> {\n const { remoteScopeBefore, localName } = await this.lanes.changeScope(remoteScope, laneName);\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 <new-name>';\n description = `change the lane-name locally`;\n extendedDescription = 'the remote will be updated after the next \"bit export\" command';\n alias = '';\n options = [\n ['l', 'lane-name <lane-name>', 'the name of the lane to rename. if not specified, the current lane is used'],\n ] as CommandOptions;\n loader = true;\n constructor(private lanes: LanesMain) {}\n\n async report([newName]: [string], { laneName }: { laneName?: string }): Promise<string> {\n const { currentName } = await this.lanes.rename(newName, laneName);\n return `the lane ${chalk.bold(currentName)}'s name has been changed to ${chalk.bold(newName)}.`;\n }\n}\n\nexport class LaneRemoveCmd implements Command {\n name = 'remove <lanes...>';\n arguments = [{ name: 'lanes...', description: 'A list of lane names, separated by spaces' }];\n description = `remove or delete lanes`;\n group = 'collaborate';\n alias = '';\n options = [\n [\n 'r',\n 'remote',\n 'delete a remote lane. use remote/lane-id syntax e.g. bit lane remove owner.org/my-lane --remote. Delete is immediate, no export required',\n ],\n ['f', 'force', 'removes/deletes the lane even when the lane is not yet merged to main'],\n ['s', 'silent', 'skip confirmation'],\n ] as CommandOptions;\n loader = 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 this.lanes.logger.clearStatusLine(); // stop the logger to avoid polluting the prompt\n const shouldProceed = await yesno({\n question: 'Are you sure you would like to proceed with this operation? [yes(y)/no(n)]',\n });\n if (!shouldProceed) {\n throw new BitError('the operation has been cancelled');\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 type RemoveCompsOpts = { workspaceOnly?: boolean; updateMain?: boolean };\n\nexport class LaneRemoveCompCmd implements Command {\n name = 'remove-comp <component-pattern>';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n description = `DEPRECATED. remove components when on a lane`;\n group = 'collaborate';\n alias = 'rc';\n options = [\n [\n '',\n 'workspace-only',\n 'do not mark the components as removed from the lane. instead, remove them from the workspace only',\n ],\n [\n '',\n 'update-main',\n 'EXPERIMENTAL. remove, i.e. delete, component/s on the main lane after merging this lane into main',\n ],\n ] as CommandOptions;\n loader = true;\n\n constructor(\n private workspace: Workspace,\n private lanes: LanesMain\n ) {}\n\n async report(): Promise<string> {\n throw new BitError(`bit lane remove-comp has been removed. please use \"bit remove\" or \"bit delete\" instead`);\n }\n}\n\nexport class LaneImportCmd implements Command {\n name = 'import <lane>';\n description = `import a remote lane to your workspace and switch to that lane`;\n arguments = [{ name: 'lane', description: 'the remote lane name' }];\n alias = '';\n options = [\n ['x', 'skip-dependency-installation', 'do not install dependencies of the imported components'],\n [\n 'p',\n 'pattern <component-pattern>',\n 'import only components from the lane that fit the specified component-pattern to the workspace. works only when the workspace is empty',\n ],\n ['', 'branch', 'create and checkout a new git branch named after the lane'],\n [\n 'r',\n 'auto-merge-resolve <merge-strategy>',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['', 'force-ours', 'do not merge, preserve local files as is'],\n ['', 'force-theirs', 'do not merge, just overwrite with incoming files'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private switchCmd: SwitchCmd) {}\n\n async report(\n [lane]: [string],\n {\n skipDependencyInstallation = false,\n pattern,\n branch = false,\n autoMergeResolve,\n forceOurs = false,\n forceTheirs = false,\n }: {\n skipDependencyInstallation: boolean;\n pattern?: string;\n branch?: boolean;\n autoMergeResolve?: MergeStrategy;\n forceOurs?: boolean;\n forceTheirs?: boolean;\n }\n ): Promise<string> {\n if (forceOurs && forceTheirs) {\n throw new BitError('please use either --force-ours or --force-theirs, not both');\n }\n return this.switchCmd.report([lane], {\n skipDependencyInstallation,\n pattern,\n branch,\n autoMergeResolve,\n forceOurs,\n forceTheirs,\n });\n }\n}\n\nexport class LaneFetchCmd implements Command {\n name = 'fetch [lane-id]';\n description = `fetch component objects from lanes. if no lane-id is provided, it fetches from the current lane`;\n extendedDescription = `note, it does not save the remote lanes objects locally, only the refs`;\n alias = '';\n options = [['a', 'all', 'fetch all remote lanes']] as CommandOptions;\n loader = true;\n\n constructor(\n private fetchCmd: FetchCmd,\n private lanes: LanesMain\n ) {}\n\n async report([laneId]: [string], { all }: { all?: boolean }): Promise<string> {\n if (all) return this.fetchCmd.report([[]], { lanes: true });\n const getLaneIdStr = () => {\n if (laneId) return laneId;\n const currentLane = this.lanes.getCurrentLaneId();\n if (!currentLane || currentLane.isDefault())\n throw new BitError('you are not checked out to any lane. please specify a lane-id to fetch or use --all flag');\n return currentLane.toString();\n };\n const lane = getLaneIdStr();\n return this.fetchCmd.report([[lane]], { lanes: true });\n }\n}\n\nexport class LaneCmd implements Command {\n name = 'lane [sub-command]';\n description = 'manage lanes for parallel development';\n extendedDescription = `lanes allow isolated development of features without affecting main branch components.\ncreate, switch between, and merge lanes to coordinate parallel work across teams.\nwithout a sub-command, lists all available lanes.`;\n alias = 'l';\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 <remote-scope-name>', 'show all remote lanes from the specified scope'],\n ['', 'merged', 'list only merged lanes'],\n ['', 'not-merged', \"list only lanes that haven't been merged\"],\n ] as CommandOptions;\n loader = true;\n group = 'collaborate';\n remoteOp = true;\n skipWorkspace = true;\n helpUrl = 'reference/components/lanes';\n commands: Command[] = [];\n\n constructor(\n private lanes: LanesMain,\n private workspace: Workspace,\n private scope: ScopeMain\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\n/**\n * @deprecated - only use it to revert the add-readme command changes\n */\nexport class LaneRemoveReadmeCmd implements Command {\n name = 'remove-readme [laneName]';\n description =\n 'DEPRECATED (only use it if you have used add-readme and want to undo it). remove lane readme component';\n options = [] as CommandOptions;\n loader = 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 ${\n laneName || this.lanes.getCurrentLaneName()\n }`\n );\n }\n\n return chalk.red(`${message}\\n`);\n }\n}\n\nfunction outputComponents(components: LaneData['components']): string {\n const items = components.map((c) => formatItem(`${c.id.toString()} - ${c.head}`));\n return formatSection('components', '', items);\n}\n\nfunction outputReadmeComponent(component: LaneData['readmeComponent']): string {\n if (!component) return '';\n const head = component.head || '(unsnapped)';\n const hint = component.head ? '' : ` - use \"bit snap ${component.id.fullName}\" to snap before exporting`;\n const prefix = component.head ? ' ' : ` ${warnSymbol} `;\n return `${prefix}readme: ${component.id} - ${head}${hint}`;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.947/dist/lanes.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.947/dist/lanes.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/dist/switch.cmd.js
CHANGED
|
@@ -11,16 +11,16 @@ function _chalk() {
|
|
|
11
11
|
};
|
|
12
12
|
return data;
|
|
13
13
|
}
|
|
14
|
-
function
|
|
15
|
-
const data = require("
|
|
16
|
-
|
|
14
|
+
function _componentModules() {
|
|
15
|
+
const data = require("@teambit/component.modules.merge-helper");
|
|
16
|
+
_componentModules = function () {
|
|
17
17
|
return data;
|
|
18
18
|
};
|
|
19
19
|
return data;
|
|
20
20
|
}
|
|
21
|
-
function
|
|
22
|
-
const data = require("@teambit/
|
|
23
|
-
|
|
21
|
+
function _cli() {
|
|
22
|
+
const data = require("@teambit/cli");
|
|
23
|
+
_cli = function () {
|
|
24
24
|
return data;
|
|
25
25
|
};
|
|
26
26
|
return data;
|
|
@@ -96,28 +96,22 @@ ${_legacy().COMPONENT_PATTERN_HELP}`], ['n', 'alias <string>', "relevant when th
|
|
|
96
96
|
}
|
|
97
97
|
const getFailureOutput = () => {
|
|
98
98
|
if (!failedComponents || !failedComponents.length) return '';
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
// all failures here are "unchangedLegitimately". otherwise, it would have been thrown as an error
|
|
102
|
-
if (!verbose) return null;
|
|
103
|
-
return `${_chalk().default.bold(failedComponent.id.toString())} - ${_chalk().default.white(failedComponent.unchangedMessage)}`;
|
|
104
|
-
})).join('\n');
|
|
105
|
-
if (!body) {
|
|
106
|
-
return `${_chalk().default.bold(`\nswitch skipped legitimately for ${failedComponents.length} component(s)`)}
|
|
107
|
-
(use --verbose to list them next time)`;
|
|
99
|
+
if (!verbose) {
|
|
100
|
+
return (0, _cli().formatHint)(`switch skipped for ${failedComponents.length} component(s) (use --verbose to list them)`);
|
|
108
101
|
}
|
|
109
|
-
|
|
102
|
+
const items = failedComponents.map(failedComponent => (0, _cli().formatItem)(`${_chalk().default.bold(failedComponent.id.toString())} - ${failedComponent.unchangedMessage}`));
|
|
103
|
+
return (0, _cli().formatSection)('switch skipped', '', items);
|
|
110
104
|
};
|
|
111
105
|
const getSuccessfulOutput = () => {
|
|
112
|
-
const laneSwitched =
|
|
113
|
-
if (!components || !components.length) return `No components have been changed
|
|
114
|
-
const title = `successfully switched ${components.length} components to the head of lane ${lane}
|
|
115
|
-
return
|
|
106
|
+
const laneSwitched = (0, _cli().formatSuccessSummary)(`successfully set "${_chalk().default.bold(lane)}" as the active lane`);
|
|
107
|
+
if (!components || !components.length) return `No components have been changed.\n${laneSwitched}`;
|
|
108
|
+
const title = `successfully switched ${components.length} components to the head of lane ${lane}`;
|
|
109
|
+
return [(0, _cli().formatSuccessSummary)(title), (0, _componentModules().applyVersionReport)(components, true, false), laneSwitched].filter(Boolean).join('\n');
|
|
116
110
|
};
|
|
117
111
|
const getGitBranchWarningOutput = () => {
|
|
118
|
-
return gitBranchWarning ? _chalk().default.yellow(`Warning: ${gitBranchWarning}`) :
|
|
112
|
+
return gitBranchWarning ? _chalk().default.yellow(`Warning: ${gitBranchWarning}`) : '';
|
|
119
113
|
};
|
|
120
|
-
return (0,
|
|
114
|
+
return (0, _cli().joinSections)([getFailureOutput(), getSuccessfulOutput(), getGitBranchWarningOutput(), (0, _componentModules().installationErrorOutput)(installationError), (0, _componentModules().compilationErrorOutput)(compilationError)]);
|
|
121
115
|
}
|
|
122
116
|
}
|
|
123
117
|
exports.SwitchCmd = SwitchCmd;
|
package/dist/switch.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","_lodash","_componentModules","_legacy","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SwitchCmd","constructor","lanes","name","description","COMPONENT_PATTERN_HELP","report","lane","head","alias","autoMergeResolve","forceOurs","forceTheirs","getAll","workspaceOnly","skipDependencyInstallation","pattern","verbose","json","branch","switchResult","switchLanes","merge","components","failedComponents","installationError","compilationError","gitBranchWarning","logger","warn","JSON","stringify","getFailureOutput","length","title","body","compact","map","failedComponent","chalk","bold","id","toString","white","unchangedMessage","join","underline","getSuccessfulOutput","laneSwitched","green","applyVersionReport","getGitBranchWarningOutput","yellow","installationErrorOutput","compilationErrorOutput","exports"],"sources":["switch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { compact } from 'lodash';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport {\n applyVersionReport,\n installationErrorOutput,\n compilationErrorOutput,\n} from '@teambit/component.modules.merge-helper';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { LanesMain } from './lanes.main.runtime';\n\nexport class SwitchCmd implements Command {\n name = 'switch <lane>';\n description = `switch to the specified lane`;\n extendedDescription = ``;\n private = true;\n group = 'collaborate';\n alias = '';\n arguments = [\n {\n name: 'lane',\n description: 'lane-name or lane-id (if lane is not local) to switch to',\n },\n ];\n options = [\n ['h', 'head', 'switch to the head of the lane/main (fetches the latest changes from the remote)'],\n [\n 'r',\n 'auto-merge-resolve <merge-strategy>',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['', 'force-ours', 'do not merge, preserve local files as is'],\n ['', 'force-theirs', 'do not merge, just overwrite with incoming files'],\n ['a', 'get-all', 'DEPRECATED. this is currently the default behavior'],\n ['', 'workspace-only', 'checkout only the components in the workspace to the selected lane'],\n ['x', 'skip-dependency-installation', 'do not install dependencies of the imported components'],\n [\n 'p',\n 'pattern <component-pattern>',\n `switch only the lane components matching the specified component-pattern. only works when the workspace is empty\\n\n${COMPONENT_PATTERN_HELP}`,\n ],\n [\n 'n',\n 'alias <string>',\n \"relevant when the specified lane is a remote lane. create a local alias for the lane (doesnt affect the lane's name on the remote\",\n ],\n ['', 'verbose', 'display detailed information about components that legitimately were not switched'],\n ['j', 'json', 'return the output as JSON'],\n ['', 'branch', 'create and checkout a new git branch named after the lane'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [lane]: [string],\n {\n head,\n alias,\n autoMergeResolve,\n forceOurs,\n forceTheirs,\n getAll = false,\n workspaceOnly = false,\n skipDependencyInstallation = false,\n pattern,\n verbose,\n json = false,\n branch = false,\n }: {\n head?: boolean;\n alias?: string;\n autoMergeResolve?: MergeStrategy;\n forceOurs?: boolean;\n forceTheirs?: boolean;\n getAll?: boolean;\n workspaceOnly?: boolean;\n skipDependencyInstallation?: boolean;\n override?: boolean;\n pattern?: string;\n verbose?: boolean;\n json?: boolean;\n branch?: boolean;\n }\n ) {\n const switchResult = await this.lanes.switchLanes(lane, {\n head,\n alias,\n merge: autoMergeResolve,\n forceOurs,\n forceTheirs,\n workspaceOnly,\n pattern,\n skipDependencyInstallation,\n branch,\n });\n const { components, failedComponents, installationError, compilationError, gitBranchWarning } = switchResult;\n\n if (getAll) {\n this.lanes.logger.warn('the --get-all flag is deprecated and currently the default behavior');\n }\n if (json) {\n return JSON.stringify({ components, failedComponents }, null, 4);\n }\n const getFailureOutput = () => {\n if (!failedComponents || !failedComponents.length) return '';\n const title = '\\nswitch skipped for the following component(s)';\n const body = compact(\n failedComponents.map((failedComponent) => {\n // all failures here are \"unchangedLegitimately\". otherwise, it would have been thrown as an error\n if (!verbose) return null;\n return `${chalk.bold(failedComponent.id.toString())} - ${chalk.white(failedComponent.unchangedMessage)}`;\n })\n ).join('\\n');\n if (!body) {\n return `${chalk.bold(`\\nswitch skipped legitimately for ${failedComponents.length} component(s)`)}\n (use --verbose to list them next time)`;\n }\n return `${chalk.underline(title)}\\n${body}`;\n };\n const getSuccessfulOutput = () => {\n const laneSwitched = chalk.green(`\\nsuccessfully set \"${chalk.bold(lane)}\" as the active lane`);\n if (!components || !components.length) return `No components have been changed.${laneSwitched}`;\n const title = `successfully switched ${components.length} components to the head of lane ${lane}\\n`;\n return chalk.bold(title) + applyVersionReport(components, true, false) + laneSwitched;\n };\n\n const getGitBranchWarningOutput = () => {\n return gitBranchWarning ? chalk.yellow(`Warning: ${gitBranchWarning}`) : null;\n };\n\n return compact([\n getFailureOutput(),\n getSuccessfulOutput(),\n getGitBranchWarningOutput(),\n installationErrorOutput(installationError),\n compilationErrorOutput(compilationError),\n ]).join('\\n\\n');\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","_componentModules","_cli","_legacy","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SwitchCmd","constructor","lanes","name","description","COMPONENT_PATTERN_HELP","report","lane","head","alias","autoMergeResolve","forceOurs","forceTheirs","getAll","workspaceOnly","skipDependencyInstallation","pattern","verbose","json","branch","switchResult","switchLanes","merge","components","failedComponents","installationError","compilationError","gitBranchWarning","logger","warn","JSON","stringify","getFailureOutput","length","formatHint","items","map","failedComponent","formatItem","chalk","bold","id","toString","unchangedMessage","formatSection","getSuccessfulOutput","laneSwitched","formatSuccessSummary","title","applyVersionReport","filter","Boolean","join","getGitBranchWarningOutput","yellow","joinSections","installationErrorOutput","compilationErrorOutput","exports"],"sources":["switch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport {\n applyVersionReport,\n installationErrorOutput,\n compilationErrorOutput,\n} from '@teambit/component.modules.merge-helper';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { formatItem, formatSection, formatSuccessSummary, formatHint, joinSections } from '@teambit/cli';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { LanesMain } from './lanes.main.runtime';\n\nexport class SwitchCmd implements Command {\n name = 'switch <lane>';\n description = `switch to the specified lane`;\n extendedDescription = ``;\n private = true;\n group = 'collaborate';\n alias = '';\n arguments = [\n {\n name: 'lane',\n description: 'lane-name or lane-id (if lane is not local) to switch to',\n },\n ];\n options = [\n ['h', 'head', 'switch to the head of the lane/main (fetches the latest changes from the remote)'],\n [\n 'r',\n 'auto-merge-resolve <merge-strategy>',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['', 'force-ours', 'do not merge, preserve local files as is'],\n ['', 'force-theirs', 'do not merge, just overwrite with incoming files'],\n ['a', 'get-all', 'DEPRECATED. this is currently the default behavior'],\n ['', 'workspace-only', 'checkout only the components in the workspace to the selected lane'],\n ['x', 'skip-dependency-installation', 'do not install dependencies of the imported components'],\n [\n 'p',\n 'pattern <component-pattern>',\n `switch only the lane components matching the specified component-pattern. only works when the workspace is empty\\n\n${COMPONENT_PATTERN_HELP}`,\n ],\n [\n 'n',\n 'alias <string>',\n \"relevant when the specified lane is a remote lane. create a local alias for the lane (doesnt affect the lane's name on the remote\",\n ],\n ['', 'verbose', 'display detailed information about components that legitimately were not switched'],\n ['j', 'json', 'return the output as JSON'],\n ['', 'branch', 'create and checkout a new git branch named after the lane'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [lane]: [string],\n {\n head,\n alias,\n autoMergeResolve,\n forceOurs,\n forceTheirs,\n getAll = false,\n workspaceOnly = false,\n skipDependencyInstallation = false,\n pattern,\n verbose,\n json = false,\n branch = false,\n }: {\n head?: boolean;\n alias?: string;\n autoMergeResolve?: MergeStrategy;\n forceOurs?: boolean;\n forceTheirs?: boolean;\n getAll?: boolean;\n workspaceOnly?: boolean;\n skipDependencyInstallation?: boolean;\n override?: boolean;\n pattern?: string;\n verbose?: boolean;\n json?: boolean;\n branch?: boolean;\n }\n ) {\n const switchResult = await this.lanes.switchLanes(lane, {\n head,\n alias,\n merge: autoMergeResolve,\n forceOurs,\n forceTheirs,\n workspaceOnly,\n pattern,\n skipDependencyInstallation,\n branch,\n });\n const { components, failedComponents, installationError, compilationError, gitBranchWarning } = switchResult;\n\n if (getAll) {\n this.lanes.logger.warn('the --get-all flag is deprecated and currently the default behavior');\n }\n if (json) {\n return JSON.stringify({ components, failedComponents }, null, 4);\n }\n const getFailureOutput = () => {\n if (!failedComponents || !failedComponents.length) return '';\n if (!verbose) {\n return formatHint(`switch skipped for ${failedComponents.length} component(s) (use --verbose to list them)`);\n }\n const items = failedComponents.map((failedComponent) =>\n formatItem(`${chalk.bold(failedComponent.id.toString())} - ${failedComponent.unchangedMessage}`)\n );\n return formatSection('switch skipped', '', items);\n };\n const getSuccessfulOutput = () => {\n const laneSwitched = formatSuccessSummary(`successfully set \"${chalk.bold(lane)}\" as the active lane`);\n if (!components || !components.length) return `No components have been changed.\\n${laneSwitched}`;\n const title = `successfully switched ${components.length} components to the head of lane ${lane}`;\n return [formatSuccessSummary(title), applyVersionReport(components, true, false), laneSwitched]\n .filter(Boolean)\n .join('\\n');\n };\n\n const getGitBranchWarningOutput = () => {\n return gitBranchWarning ? chalk.yellow(`Warning: ${gitBranchWarning}`) : '';\n };\n\n return joinSections([\n getFailureOutput(),\n getSuccessfulOutput(),\n getGitBranchWarningOutput(),\n installationErrorOutput(installationError),\n compilationErrorOutput(compilationError),\n ]);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/lanes",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.947",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/lanes/lanes",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.lanes",
|
|
8
8
|
"name": "lanes",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.947"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "4.1.2",
|
|
@@ -21,22 +21,25 @@
|
|
|
21
21
|
"group-array": "1.0.0",
|
|
22
22
|
"@teambit/lanes.ui.models.lanes-model": "0.0.232",
|
|
23
23
|
"@teambit/bit-error": "0.0.404",
|
|
24
|
-
"@teambit/
|
|
24
|
+
"@teambit/cli": "0.0.1310",
|
|
25
|
+
"@teambit/component.modules.merge-helper": "0.0.47",
|
|
25
26
|
"@teambit/lane-id": "0.0.312",
|
|
26
27
|
"@teambit/legacy.constants": "0.0.24",
|
|
27
|
-
"@teambit/legacy.scope": "0.0.
|
|
28
|
+
"@teambit/legacy.scope": "0.0.104",
|
|
28
29
|
"@teambit/harmony": "0.4.7",
|
|
30
|
+
"@teambit/express": "0.0.1409",
|
|
31
|
+
"@teambit/logger": "0.0.1403",
|
|
29
32
|
"@teambit/component-id": "1.2.4",
|
|
30
|
-
"@teambit/component.snap-distance": "0.0.
|
|
33
|
+
"@teambit/component.snap-distance": "0.0.105",
|
|
31
34
|
"@teambit/git.modules.git-executable": "0.0.25",
|
|
32
35
|
"@teambit/harmony.modules.concurrency": "0.0.25",
|
|
33
36
|
"@teambit/lanes.entities.lane-diff": "0.0.188",
|
|
34
|
-
"@teambit/lanes.modules.create-lane": "0.0.
|
|
35
|
-
"@teambit/lanes.modules.diff": "0.0.
|
|
37
|
+
"@teambit/lanes.modules.create-lane": "0.0.139",
|
|
38
|
+
"@teambit/lanes.modules.diff": "0.0.606",
|
|
36
39
|
"@teambit/legacy-bit-id": "1.1.3",
|
|
37
|
-
"@teambit/legacy.component-diff": "0.0.
|
|
38
|
-
"@teambit/legacy.component-list": "0.0.
|
|
39
|
-
"@teambit/scope.remotes": "0.0.
|
|
40
|
+
"@teambit/legacy.component-diff": "0.0.158",
|
|
41
|
+
"@teambit/legacy.component-list": "0.0.158",
|
|
42
|
+
"@teambit/scope.remotes": "0.0.104",
|
|
40
43
|
"@teambit/lanes.hooks.use-lanes": "0.0.292",
|
|
41
44
|
"@teambit/lanes.hooks.use-viewed-lane-from-url": "0.0.254",
|
|
42
45
|
"@teambit/lanes.ui.lane-overview": "0.0.303",
|
|
@@ -50,37 +53,34 @@
|
|
|
50
53
|
"@teambit/lanes.ui.navigation.lane-switcher": "0.0.235",
|
|
51
54
|
"@teambit/scope.ui.scope-icon": "0.0.99",
|
|
52
55
|
"@teambit/ui-foundation.ui.react-router.use-query": "0.0.505",
|
|
53
|
-
"@teambit/legacy.consumer": "0.0.
|
|
54
|
-
"@teambit/scope.network": "0.0.
|
|
55
|
-
"@teambit/checkout": "1.0.
|
|
56
|
-
"@teambit/
|
|
57
|
-
"@teambit/
|
|
58
|
-
"@teambit/
|
|
59
|
-
"@teambit/
|
|
60
|
-
"@teambit/
|
|
61
|
-
"@teambit/
|
|
62
|
-
"@teambit/
|
|
63
|
-
"@teambit/
|
|
64
|
-
"@teambit/
|
|
65
|
-
"@teambit/
|
|
66
|
-
"@teambit/
|
|
67
|
-
"@teambit/
|
|
68
|
-
"@teambit/
|
|
69
|
-
"@teambit/
|
|
70
|
-
"@teambit/remove": "1.0.930",
|
|
71
|
-
"@teambit/command-bar": "1.0.930",
|
|
72
|
-
"@teambit/ui": "1.0.930"
|
|
56
|
+
"@teambit/legacy.consumer": "0.0.104",
|
|
57
|
+
"@teambit/scope.network": "0.0.104",
|
|
58
|
+
"@teambit/checkout": "1.0.932",
|
|
59
|
+
"@teambit/importer": "1.0.932",
|
|
60
|
+
"@teambit/scope": "1.0.932",
|
|
61
|
+
"@teambit/workspace": "1.0.932",
|
|
62
|
+
"@teambit/graphql": "1.0.932",
|
|
63
|
+
"@teambit/component-compare": "1.0.932",
|
|
64
|
+
"@teambit/component-writer": "1.0.932",
|
|
65
|
+
"@teambit/component": "1.0.932",
|
|
66
|
+
"@teambit/export": "1.0.932",
|
|
67
|
+
"@teambit/install": "1.0.932",
|
|
68
|
+
"@teambit/merging": "1.0.933",
|
|
69
|
+
"@teambit/objects": "0.0.439",
|
|
70
|
+
"@teambit/remove": "1.0.932",
|
|
71
|
+
"@teambit/command-bar": "1.0.932",
|
|
72
|
+
"@teambit/ui": "1.0.932"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
75
|
"@types/lodash": "4.14.165",
|
|
76
76
|
"@types/fs-extra": "9.0.7",
|
|
77
77
|
"@types/mocha": "9.1.0",
|
|
78
|
-
"@teambit/component.testing.mock-components": "0.0.
|
|
79
|
-
"@teambit/harmony.testing.load-aspect": "0.0.
|
|
80
|
-
"@teambit/workspace.testing.mock-workspace": "0.0.
|
|
78
|
+
"@teambit/component.testing.mock-components": "0.0.373",
|
|
79
|
+
"@teambit/harmony.testing.load-aspect": "0.0.368",
|
|
80
|
+
"@teambit/workspace.testing.mock-workspace": "0.0.170",
|
|
81
81
|
"@teambit/harmony.envs.core-aspect-env": "0.1.4",
|
|
82
|
-
"@teambit/merge-lanes": "1.0.
|
|
83
|
-
"@teambit/snapping": "1.0.
|
|
82
|
+
"@teambit/merge-lanes": "1.0.947",
|
|
83
|
+
"@teambit/snapping": "1.0.932"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"react": "^17.0.0 || ^18.0.0",
|