@teambit/status 1.0.652 → 1.0.654

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/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { StatusAspect } from './status.aspect';
2
2
  export type { StatusMain } from './status.main.runtime';
3
+ export { formatStatusOutput, StatusFormatterOptions } from './status-formatter';
3
4
  export default StatusAspect;
4
5
  export { StatusAspect };
package/dist/index.js CHANGED
@@ -9,7 +9,19 @@ Object.defineProperty(exports, "StatusAspect", {
9
9
  return _status().StatusAspect;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "StatusFormatterOptions", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _statusFormatter().StatusFormatterOptions;
16
+ }
17
+ });
12
18
  exports.default = void 0;
19
+ Object.defineProperty(exports, "formatStatusOutput", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _statusFormatter().formatStatusOutput;
23
+ }
24
+ });
13
25
  function _status() {
14
26
  const data = require("./status.aspect");
15
27
  _status = function () {
@@ -17,6 +29,13 @@ function _status() {
17
29
  };
18
30
  return data;
19
31
  }
32
+ function _statusFormatter() {
33
+ const data = require("./status-formatter");
34
+ _statusFormatter = function () {
35
+ return data;
36
+ };
37
+ return data;
38
+ }
20
39
  var _default = exports.default = _status().StatusAspect;
21
40
 
22
41
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_status","data","require","_default","exports","default","StatusAspect"],"sources":["index.ts"],"sourcesContent":["import { StatusAspect } from './status.aspect';\n\nexport type { StatusMain } from './status.main.runtime';\nexport default StatusAspect;\nexport { StatusAspect };\n"],"mappings":";;;;;;;;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA+C,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGhCC,sBAAY","ignoreList":[]}
1
+ {"version":3,"names":["_status","data","require","_statusFormatter","_default","exports","default","StatusAspect"],"sources":["index.ts"],"sourcesContent":["import { StatusAspect } from './status.aspect';\n\nexport type { StatusMain } from './status.main.runtime';\nexport { formatStatusOutput, StatusFormatterOptions } from './status-formatter';\nexport default StatusAspect;\nexport { StatusAspect };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAE,iBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,gBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgF,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACjEC,sBAAY","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
- import { IssuesList } from '@teambit/component-issues';
3
2
  import { StatusMain } from './status.main.runtime';
4
3
  type StatusFlags = {
5
4
  strict?: boolean;
@@ -7,6 +6,7 @@ type StatusFlags = {
7
6
  lanes?: boolean;
8
7
  ignoreCircularDependencies?: boolean;
9
8
  warnings?: boolean;
9
+ failOnError?: boolean;
10
10
  };
11
11
  type StatusJsonResults = {
12
12
  newComponents: string[];
@@ -65,10 +65,9 @@ export declare class StatusCmd implements Command {
65
65
  loader: boolean;
66
66
  constructor(status: StatusMain);
67
67
  json(_args: any, { lanes, ignoreCircularDependencies }: StatusFlags): Promise<StatusJsonResults>;
68
- report(_args: any, { strict, verbose, lanes, ignoreCircularDependencies, warnings }: StatusFlags): Promise<{
68
+ report(_args: any, { strict, verbose, lanes, ignoreCircularDependencies, warnings, failOnError }: StatusFlags): Promise<{
69
69
  data: string;
70
70
  code: number;
71
71
  }>;
72
72
  }
73
- export declare function formatIssues(issues: IssuesList): string;
74
73
  export {};
@@ -4,42 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.StatusCmd = void 0;
7
- exports.formatIssues = formatIssues;
8
- function _chalk() {
9
- const data = _interopRequireDefault(require("chalk"));
10
- _chalk = function () {
7
+ function _statusFormatter() {
8
+ const data = require("./status-formatter");
9
+ _statusFormatter = function () {
11
10
  return data;
12
11
  };
13
12
  return data;
14
13
  }
15
- function _legacy() {
16
- const data = require("@teambit/legacy.constants");
17
- _legacy = function () {
18
- return data;
19
- };
20
- return data;
21
- }
22
- function _lodash() {
23
- const data = require("lodash");
24
- _lodash = function () {
25
- return data;
26
- };
27
- return data;
28
- }
29
- function _componentVersion() {
30
- const data = require("@teambit/component-version");
31
- _componentVersion = function () {
32
- return data;
33
- };
34
- return data;
35
- }
36
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
37
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
38
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
39
16
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
40
17
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
41
18
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
42
- const TROUBLESHOOTING_MESSAGE = _chalk().default.yellow(`learn more about Bit components: ${_legacy().BASE_DOCS_DOMAIN}reference/components/component-anatomy`);
43
19
  class StatusCmd {
44
20
  constructor(status) {
45
21
  this.status = status;
@@ -48,7 +24,7 @@ class StatusCmd {
48
24
  _defineProperty(this, "group", 'info-analysis');
49
25
  _defineProperty(this, "extendedDescription", void 0);
50
26
  _defineProperty(this, "alias", 's');
51
- _defineProperty(this, "options", [['j', 'json', 'return a json version of the component'], ['w', 'warnings', 'show warnings. by default, only issues that block tag/snap are shown'], ['', 'verbose', 'show extra data: full snap hashes for staged components, and divergence point for lanes'], ['l', 'lanes', 'when on a lane, show updates from main and updates from forked lanes'], ['', 'strict', 'in case issues found, exit with code 1'], ['c', 'ignore-circular-dependencies', 'do not check for circular dependencies to get the results quicker']]);
27
+ _defineProperty(this, "options", [['j', 'json', 'return a json version of the component'], ['w', 'warnings', 'show warnings. by default, only issues that block tag/snap are shown'], ['', 'verbose', 'show extra data: full snap hashes for staged components, and divergence point for lanes'], ['l', 'lanes', 'when on a lane, show updates from main and updates from forked lanes'], ['', 'strict', 'exit with code 1 if any issues are found (both errors and warnings)'], ['', 'fail-on-error', 'exit with code 1 only when tag/snap blocker issues are found (not warnings)'], ['c', 'ignore-circular-dependencies', 'do not check for circular dependencies to get the results quicker']]);
52
28
  _defineProperty(this, "loader", true);
53
29
  }
54
30
  async json(_args, {
@@ -125,216 +101,26 @@ class StatusCmd {
125
101
  workspaceIssues
126
102
  };
127
103
  }
128
-
129
- // eslint-disable-next-line complexity
130
104
  async report(_args, {
131
105
  strict,
132
106
  verbose,
133
107
  lanes,
134
108
  ignoreCircularDependencies,
135
- warnings
109
+ warnings,
110
+ failOnError
136
111
  }) {
137
- const {
138
- newComponents,
139
- modifiedComponents,
140
- stagedComponents,
141
- componentsWithIssues,
142
- importPendingComponents,
143
- autoTagPendingComponents,
144
- invalidComponents,
145
- locallySoftRemoved,
146
- remotelySoftRemoved,
147
- outdatedComponents,
148
- mergePendingComponents,
149
- componentsDuringMergeState,
150
- softTaggedComponents,
151
- snappedComponents,
152
- pendingUpdatesFromMain,
153
- localOnly,
154
- updatesFromForked,
155
- unavailableOnMain,
156
- currentLaneId,
157
- forkedLaneId,
158
- workspaceIssues
159
- } = await this.status.status({
112
+ const statusResult = await this.status.status({
160
113
  lanes,
161
114
  ignoreCircularDependencies
162
115
  });
163
- // If there is problem with at least one component we want to show a link to the
164
- // troubleshooting doc
165
- let showTroubleshootingLink = false;
166
- function format(id, showIssues = false, message, localVersions, showSoftTagMsg = true) {
167
- const idWithIssues = componentsWithIssues.find(c => c.id.isEqual(id));
168
- const isSoftTagged = Boolean(softTaggedComponents.find(softTaggedId => softTaggedId.isEqual(id)));
169
- const getStatusText = () => {
170
- if (message) return message;
171
- if (idWithIssues) {
172
- return idWithIssues.issues.hasTagBlockerIssues() ? _legacy().statusFailureMsg : _legacy().statusWarningsMsg;
173
- }
174
- return 'ok';
175
- };
176
- const getColor = () => {
177
- if (message) return 'yellow';
178
- if (idWithIssues) return idWithIssues.issues.hasTagBlockerIssues() ? 'red' : 'yellow';
179
- return 'green';
180
- };
181
- const messageStatusText = getStatusText();
182
- const messageStatusTextWithSoftTag = isSoftTagged && showSoftTagMsg ? `${messageStatusText} (soft-tagged)` : messageStatusText;
183
- const messageStatus = _chalk().default[getColor()](messageStatusTextWithSoftTag);
184
- let idFormatted = _chalk().default.white(' > ') + _chalk().default.cyan(id.toStringWithoutVersion());
185
- if (!showIssues && !localVersions) {
186
- return `${idFormatted} ... ${messageStatus}`;
187
- }
188
- if (localVersions) {
189
- if (verbose) {
190
- idFormatted += `. versions: ${localVersions.join(', ')}`;
191
- } else {
192
- const [snaps, tags] = (0, _lodash().partition)(localVersions, version => (0, _componentVersion().isHash)(version));
193
- const tagsStr = tags.length ? `versions: ${tags.join(', ')}` : '';
194
- const snapsStr = snaps.length ? `${snaps.length} snap(s)` : '';
195
- idFormatted += `. `;
196
- idFormatted += tagsStr && snapsStr ? `${tagsStr}. and ${snapsStr}` : tagsStr || snapsStr;
197
- }
198
- }
199
- idFormatted += ' ... ';
200
- if (showIssues && idWithIssues) {
201
- showTroubleshootingLink = true;
202
- const issuesTxt = idWithIssues.issues.hasTagBlockerIssues() ? _legacy().statusFailureMsg : _legacy().statusWarningsMsg;
203
- const issuesColor = idWithIssues.issues.hasTagBlockerIssues() ? 'red' : 'yellow';
204
- return `${idFormatted} ${_chalk().default[issuesColor](issuesTxt)}${formatIssues(idWithIssues.issues)}`;
205
- }
206
- return `${idFormatted}${messageStatus}`;
207
- }
208
- function formatCategory(title, description, compsOutput) {
209
- if (!compsOutput.length) return '';
210
- const titleOutput = _chalk().default.underline.white(`${title} (${compsOutput.length})`);
211
- const descOutput = description ? `${description}\n` : '';
212
- return [titleOutput, descOutput, ...compsOutput].join('\n');
213
- }
214
- const importPendingWarning = importPendingComponents.length ? _chalk().default.yellow(`${_legacy().IMPORT_PENDING_MSG}.\n`) : '';
215
- const newCompFormatted = newComponents.map(c => format(c));
216
- const {
217
- missing,
218
- nonMissing
219
- } = (0, _lodash().groupBy)(newCompFormatted, component => {
220
- return component.includes(_legacy().statusFailureMsg) ? 'missing' : 'nonMissing';
221
- });
222
- const outdatedTitle = 'pending updates';
223
- const outdatedDesc = '(use "bit checkout head" to merge changes)\n(use "bit diff [component_id] [new_version]" to compare changes)\n(use "bit log [component_id]" to list all available versions)';
224
- const outdatedComps = outdatedComponents.map(component => {
225
- const latest = component.latestVersion && component.latestVersion !== component.headVersion ? ` latest: ${component.latestVersion}` : '';
226
- return ` > ${_chalk().default.cyan(component.id.toStringWithoutVersion())} current: ${component.id.version} head: ${component.headVersion}${latest}`;
227
- });
228
- const outdatedStr = formatCategory(outdatedTitle, outdatedDesc, outdatedComps);
229
- const pendingMergeTitle = 'pending merge';
230
- const pendingMergeDesc = `(use "bit reset" to discard local tags/snaps, and bit checkout head to re-merge with the remote.
231
- alternatively, to keep local tags/snaps history, use "bit merge [component-id]")`;
232
- const pendingMergeComps = mergePendingComponents.map(component => {
233
- return ` > ${_chalk().default.cyan(component.id.toString())} local and remote have diverged and have ${component.divergeData.snapsOnSourceOnly.length} (source) and ${component.divergeData.snapsOnTargetOnly.length} (target) uncommon snaps respectively`;
116
+ return (0, _statusFormatter().formatStatusOutput)(statusResult, {
117
+ strict,
118
+ verbose,
119
+ warnings,
120
+ failOnError
234
121
  });
235
- const pendingMergeStr = formatCategory(pendingMergeTitle, pendingMergeDesc, pendingMergeComps);
236
- const compDuringMergeTitle = 'components in merge state';
237
- const compDuringMergeDesc = `(use "bit snap/tag [--unmerged]" to complete the merge process.
238
- to cancel the merge operation, use either "bit lane merge-abort" (for prior "bit lane merge" command)
239
- or use "bit merge [component-id] --abort" (for prior "bit merge" command)`;
240
- const compDuringMergeComps = componentsDuringMergeState.map(c => format(c));
241
- const compDuringMergeStr = formatCategory(compDuringMergeTitle, compDuringMergeDesc, compDuringMergeComps);
242
- const newComponentDescription = '\n(use "bit snap/tag" to lock a version with all your changes)\n';
243
- const newComponentsTitle = newComponents.length ? _chalk().default.underline.white('new components') + newComponentDescription : '';
244
- const newComponentsOutput = [newComponentsTitle, ...(nonMissing || []), ...(missing || [])].join('\n');
245
- const modifiedDesc = '(use "bit diff" to compare changes)';
246
- const modifiedComponentOutput = formatCategory('modified components', modifiedDesc, modifiedComponents.map(c => format(c)));
247
- const autoTagPendingTitle = 'components pending auto-tag (when their modified dependencies are tagged)';
248
- const autoTagPendingOutput = formatCategory(autoTagPendingTitle, '', autoTagPendingComponents.map(c => format(c)));
249
- const componentsWithIssuesToPrint = componentsWithIssues.filter(c => c.issues.hasTagBlockerIssues() || warnings);
250
- const compWithIssuesDesc = '(fix the issues according to the suggested solution)';
251
- const compWithIssuesOutput = formatCategory('components with issues', compWithIssuesDesc, componentsWithIssuesToPrint.map(c => format(c.id, true)).sort());
252
- const invalidDesc = 'these components failed to load';
253
- const invalidComps = invalidComponents.map(c => format(c.id, false, getInvalidComponentLabel(c.error))).sort();
254
- const invalidComponentOutput = formatCategory(_legacy().statusInvalidComponentsMsg, invalidDesc, invalidComps);
255
- const locallySoftRemovedDesc = '(tag/snap and export the components to update the deletion to the remote. to undo deletion, run "bit recover")';
256
- const locallySoftRemovedOutput = formatCategory('soft-removed components locally', locallySoftRemovedDesc, locallySoftRemoved.map(c => format(c)).sort());
257
- const remotelySoftRemovedDesc = '(use "bit remove" to remove them from the workspace. use "bit recover" to undo the deletion)';
258
- const remotelySoftRemovedOutput = formatCategory('components deleted on the remote', remotelySoftRemovedDesc, remotelySoftRemoved.map(c => format(c)).sort());
259
- const stagedDesc = '(use "bit export" to push these component versions to the remote scope)';
260
- const stagedComps = stagedComponents.map(c => format(c.id, false, undefined, c.versions));
261
- const stagedComponentsOutput = formatCategory('staged components', stagedDesc, stagedComps);
262
- const localOnlyDesc = '(these components are excluded from tag/snap/export commands)';
263
- const localOnlyComps = localOnly.map(c => format(c)).sort();
264
- const localOnlyComponentsOutput = formatCategory('local-only components', localOnlyDesc, localOnlyComps);
265
- const softTaggedDesc = '(use "bit tag --persist" to complete the tag)';
266
- const softTaggedComps = softTaggedComponents.map(id => format(id, false, undefined, undefined, false));
267
- const softTaggedComponentsOutput = formatCategory('soft-tagged components', softTaggedDesc, softTaggedComps);
268
- const snappedDesc = '(use "bit tag" or "bit tag --snapped" to lock a semver version)';
269
- const snappedComponentsOutput = formatCategory('snapped components (tag pending)', snappedDesc, snappedComponents.map(c => format(c)));
270
- const unavailableOnMainDesc = '(use "bit checkout head" to make them available)';
271
- const unavailableOnMainOutput = formatCategory('components unavailable on main', unavailableOnMainDesc, unavailableOnMain.map(c => format(c)));
272
- const getUpdateFromMsg = (divergeData, from = 'main') => {
273
- if (divergeData.err) return divergeData.err.message;
274
- let msg = `${from} is ahead by ${divergeData.snapsOnTargetOnly.length || 0} snaps`;
275
- if (divergeData.snapsOnSourceOnly && verbose) {
276
- msg += ` (diverged since ${divergeData.commonSnapBeforeDiverge?.toShortString()})`;
277
- }
278
- return msg;
279
- };
280
- const updatesFromMainDesc = '(use "bit lane merge main" to merge the changes)';
281
- const pendingUpdatesFromMainIds = pendingUpdatesFromMain.map(c => format(c.id, false, getUpdateFromMsg(c.divergeData)));
282
- const updatesFromMainOutput = formatCategory('pending updates from main', updatesFromMainDesc, pendingUpdatesFromMainIds);
283
- let updatesFromForkedOutput = '';
284
- if (forkedLaneId) {
285
- const updatesFromForkedDesc = `(use "bit lane merge ${forkedLaneId.toString()}" to merge the changes
286
- use "bit fetch ${forkedLaneId.toString()} --lanes" to update ${forkedLaneId.name} locally)`;
287
- const pendingUpdatesFromForkedIds = updatesFromForked.map(c => format(c.id, false, getUpdateFromMsg(c.divergeData, forkedLaneId.name)));
288
- updatesFromForkedOutput = formatCategory(`updates from ${forkedLaneId.name}`, updatesFromForkedDesc, pendingUpdatesFromForkedIds);
289
- }
290
- const getLaneStr = () => {
291
- if (currentLaneId.isDefault()) return '';
292
- const prefix = `\n\ncurrent lane ${_chalk().default.bold(currentLaneId.toString())}`;
293
- if (lanes) return prefix;
294
- return `${prefix}\nconsider adding "--lanes" flag to see updates from main/forked`;
295
- };
296
- const getWorkspaceIssuesOutput = () => {
297
- if (!workspaceIssues.length) return '';
298
- const title = _chalk().default.underline.white('workspace issues');
299
- const issues = workspaceIssues.join('\n');
300
- return `\n\n${title}\n${issues}`;
301
- };
302
- const troubleshootingStr = showTroubleshootingLink ? `\n${TROUBLESHOOTING_MESSAGE}` : '';
303
- const wereWarningsFilteredOut = componentsWithIssuesToPrint.length < componentsWithIssues.length;
304
- const showWarningsStr = wereWarningsFilteredOut ? `\n${_chalk().default.yellow('to view the warnings, use --warnings flag.')}` : '';
305
- const statusMsg = importPendingWarning + (0, _lodash().compact)([outdatedStr, pendingMergeStr, updatesFromMainOutput, updatesFromForkedOutput, compDuringMergeStr, localOnlyComponentsOutput, newComponentsOutput, modifiedComponentOutput, snappedComponentsOutput, stagedComponentsOutput, softTaggedComponentsOutput, unavailableOnMainOutput, autoTagPendingOutput, compWithIssuesOutput, invalidComponentOutput, locallySoftRemovedOutput, remotelySoftRemovedOutput]).join(_chalk().default.underline('\n \n') + _chalk().default.white('\n')) + showWarningsStr + troubleshootingStr;
306
- const results = (statusMsg || _chalk().default.yellow(_legacy().statusWorkspaceIsCleanMsg)) + getWorkspaceIssuesOutput() + getLaneStr();
307
- const exitCode = componentsWithIssues.length && strict ? 1 : 0;
308
- return {
309
- data: results,
310
- code: exitCode
311
- };
312
122
  }
313
123
  }
314
124
  exports.StatusCmd = StatusCmd;
315
- function formatIssues(issues) {
316
- return ` ${issues?.outputForCLI()}\n`;
317
- }
318
- function getInvalidComponentLabel(error) {
319
- switch (error.name) {
320
- case 'MainFileRemoved':
321
- return 'main-file was removed (use "bit add" with "--main" and "--id" flags to add a main file)';
322
- case 'ComponentNotFoundInPath':
323
- return 'component files were deleted (use "bit remove [component_id]") or moved (use "bit move <old-dir> <new-dir>"). to restore use "bit checkout reset [component_id]"';
324
- case 'ExtensionFileNotFound':
325
- // @ts-ignore error.path is set for ExtensionFileNotFound
326
- return `extension file is missing at ${_chalk().default.bold(error.path)}`;
327
- case 'ComponentsPendingImport':
328
- return 'component objects are missing from the scope (use "bit import [component_id] --objects" to get them back)';
329
- case 'NoComponentDir':
330
- return `component files were added individually without root directory (invalid on Harmony. re-add as a directory or use "bit move --component" to help with the move)`;
331
- case 'IgnoredDirectory':
332
- return `component files or directory were ignored (probably by .gitignore)`;
333
- case 'NoCommonSnap':
334
- return `component history is unrelated to main (merge main with --resolve-unrelated flag)`;
335
- default:
336
- return error.name;
337
- }
338
- }
339
125
 
340
126
  //# sourceMappingURL=status-cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_legacy","_lodash","_componentVersion","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","TROUBLESHOOTING_MESSAGE","chalk","yellow","BASE_DOCS_DOMAIN","StatusCmd","constructor","status","json","_args","lanes","ignoreCircularDependencies","newComponents","modifiedComponents","stagedComponents","componentsWithIssues","importPendingComponents","autoTagPendingComponents","invalidComponents","locallySoftRemoved","remotelySoftRemoved","outdatedComponents","mergePendingComponents","componentsDuringMergeState","softTaggedComponents","snappedComponents","unavailableOnMain","pendingUpdatesFromMain","updatesFromForked","currentLaneId","forkedLaneId","workspaceIssues","localOnly","map","c","toStringWithoutVersion","id","versions","issues","toObjectIncludeDataAsString","s","error","p","divergeData","toString","report","strict","verbose","warnings","showTroubleshootingLink","format","showIssues","message","localVersions","showSoftTagMsg","idWithIssues","find","isEqual","isSoftTagged","Boolean","softTaggedId","getStatusText","hasTagBlockerIssues","statusFailureMsg","statusWarningsMsg","getColor","messageStatusText","messageStatusTextWithSoftTag","messageStatus","idFormatted","white","cyan","join","snaps","tags","partition","version","isHash","tagsStr","snapsStr","issuesTxt","issuesColor","formatIssues","formatCategory","title","description","compsOutput","titleOutput","underline","descOutput","importPendingWarning","IMPORT_PENDING_MSG","newCompFormatted","missing","nonMissing","groupBy","component","includes","outdatedTitle","outdatedDesc","outdatedComps","latest","latestVersion","headVersion","outdatedStr","pendingMergeTitle","pendingMergeDesc","pendingMergeComps","snapsOnSourceOnly","snapsOnTargetOnly","pendingMergeStr","compDuringMergeTitle","compDuringMergeDesc","compDuringMergeComps","compDuringMergeStr","newComponentDescription","newComponentsTitle","newComponentsOutput","modifiedDesc","modifiedComponentOutput","autoTagPendingTitle","autoTagPendingOutput","componentsWithIssuesToPrint","compWithIssuesDesc","compWithIssuesOutput","sort","invalidDesc","invalidComps","getInvalidComponentLabel","invalidComponentOutput","statusInvalidComponentsMsg","locallySoftRemovedDesc","locallySoftRemovedOutput","remotelySoftRemovedDesc","remotelySoftRemovedOutput","stagedDesc","stagedComps","undefined","stagedComponentsOutput","localOnlyDesc","localOnlyComps","localOnlyComponentsOutput","softTaggedDesc","softTaggedComps","softTaggedComponentsOutput","snappedDesc","snappedComponentsOutput","unavailableOnMainDesc","unavailableOnMainOutput","getUpdateFromMsg","from","err","msg","commonSnapBeforeDiverge","toShortString","updatesFromMainDesc","pendingUpdatesFromMainIds","updatesFromMainOutput","updatesFromForkedOutput","updatesFromForkedDesc","name","pendingUpdatesFromForkedIds","getLaneStr","isDefault","prefix","bold","getWorkspaceIssuesOutput","troubleshootingStr","wereWarningsFilteredOut","showWarningsStr","statusMsg","compact","results","statusWorkspaceIsCleanMsg","exitCode","code","exports","outputForCLI","path"],"sources":["status-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { ComponentID } from '@teambit/component-id';\nimport { SnapsDistance } from '@teambit/component.snap-distance';\nimport { IssuesList } from '@teambit/component-issues';\nimport {\n IMPORT_PENDING_MSG,\n statusFailureMsg,\n statusWarningsMsg,\n statusInvalidComponentsMsg,\n statusWorkspaceIsCleanMsg,\n BASE_DOCS_DOMAIN,\n} from '@teambit/legacy.constants';\nimport { compact, groupBy, partition } from 'lodash';\nimport { isHash } from '@teambit/component-version';\nimport { StatusMain, StatusResult } from './status.main.runtime';\n\nconst TROUBLESHOOTING_MESSAGE = chalk.yellow(\n `learn more about Bit components: ${BASE_DOCS_DOMAIN}reference/components/component-anatomy`\n);\n\ntype StatusFlags = {\n strict?: boolean;\n verbose?: boolean;\n lanes?: boolean;\n ignoreCircularDependencies?: boolean;\n warnings?: boolean;\n};\n\ntype StatusJsonResults = {\n newComponents: string[];\n modifiedComponents: string[];\n stagedComponents: Array<{ id: string; versions: string[] }>;\n unavailableOnMain: string[];\n componentsWithIssues: Array<{\n id: string;\n issues: Array<{\n type: string;\n description: string;\n data: any;\n }>;\n }>;\n importPendingComponents: string[];\n autoTagPendingComponents: string[];\n invalidComponents: Array<{ id: string; error: Error }>;\n locallySoftRemoved: string[];\n remotelySoftRemoved: string[];\n outdatedComponents: Array<{ id: string; headVersion: string; latestVersion?: string }>;\n mergePendingComponents: string[];\n componentsDuringMergeState: string[];\n softTaggedComponents: string[];\n snappedComponents: string[];\n localOnly: string[];\n pendingUpdatesFromMain: Array<{\n id: string;\n divergeData: any;\n }>;\n updatesFromForked: Array<{\n id: string;\n divergeData: any;\n }>;\n currentLaneId: string;\n forkedLaneId: string | undefined;\n workspaceIssues: string[];\n};\n\nexport class StatusCmd implements Command {\n name = 'status';\n description = 'present the current status of components in the workspace, including indication of detected issues';\n group = 'info-analysis';\n extendedDescription: string;\n alias = 's';\n options = [\n ['j', 'json', 'return a json version of the component'],\n ['w', 'warnings', 'show warnings. by default, only issues that block tag/snap are shown'],\n ['', 'verbose', 'show extra data: full snap hashes for staged components, and divergence point for lanes'],\n ['l', 'lanes', 'when on a lane, show updates from main and updates from forked lanes'],\n ['', 'strict', 'in case issues found, exit with code 1'],\n ['c', 'ignore-circular-dependencies', 'do not check for circular dependencies to get the results quicker'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private status: StatusMain) {}\n\n async json(_args, { lanes, ignoreCircularDependencies }: StatusFlags): Promise<StatusJsonResults> {\n const {\n newComponents,\n modifiedComponents,\n stagedComponents,\n componentsWithIssues,\n importPendingComponents,\n autoTagPendingComponents,\n invalidComponents,\n locallySoftRemoved,\n remotelySoftRemoved,\n outdatedComponents,\n mergePendingComponents,\n componentsDuringMergeState,\n softTaggedComponents,\n snappedComponents,\n unavailableOnMain,\n pendingUpdatesFromMain,\n updatesFromForked,\n currentLaneId,\n forkedLaneId,\n workspaceIssues,\n localOnly,\n }: StatusResult = await this.status.status({ lanes, ignoreCircularDependencies });\n return {\n newComponents: newComponents.map((c) => c.toStringWithoutVersion()),\n modifiedComponents: modifiedComponents.map((c) => c.toStringWithoutVersion()),\n stagedComponents: stagedComponents.map((c) => ({ id: c.id.toStringWithoutVersion(), versions: c.versions })),\n unavailableOnMain: unavailableOnMain.map((c) => c.toStringWithoutVersion()),\n componentsWithIssues: componentsWithIssues.map((c) => ({\n id: c.id.toStringWithoutVersion(),\n issues: c.issues?.toObjectIncludeDataAsString(),\n })),\n importPendingComponents: importPendingComponents.map((id) => id.toStringWithoutVersion()),\n autoTagPendingComponents: autoTagPendingComponents.map((s) => s.toStringWithoutVersion()),\n invalidComponents: invalidComponents.map(({ id, error }) => ({ id: id.toStringWithoutVersion(), error })),\n locallySoftRemoved: locallySoftRemoved.map((id) => id.toStringWithoutVersion()),\n remotelySoftRemoved: remotelySoftRemoved.map((id) => id.toStringWithoutVersion()),\n outdatedComponents: outdatedComponents.map((c) => ({ ...c, id: c.id.toStringWithoutVersion() })),\n mergePendingComponents: mergePendingComponents.map((c) => c.id.toStringWithoutVersion()),\n componentsDuringMergeState: componentsDuringMergeState.map((id) => id.toStringWithoutVersion()),\n softTaggedComponents: softTaggedComponents.map((s) => s.toStringWithoutVersion()),\n snappedComponents: snappedComponents.map((s) => s.toStringWithoutVersion()),\n localOnly: localOnly.map((id) => id.toStringWithoutVersion()),\n pendingUpdatesFromMain: pendingUpdatesFromMain.map((p) => ({\n id: p.id.toStringWithoutVersion(),\n divergeData: p.divergeData,\n })),\n updatesFromForked: updatesFromForked.map((p) => ({\n id: p.id.toStringWithoutVersion(),\n divergeData: p.divergeData,\n })),\n currentLaneId: currentLaneId.toString(),\n forkedLaneId: forkedLaneId?.toString(),\n workspaceIssues,\n };\n }\n\n // eslint-disable-next-line complexity\n async report(_args, { strict, verbose, lanes, ignoreCircularDependencies, warnings }: StatusFlags) {\n const {\n newComponents,\n modifiedComponents,\n stagedComponents,\n componentsWithIssues,\n importPendingComponents,\n autoTagPendingComponents,\n invalidComponents,\n locallySoftRemoved,\n remotelySoftRemoved,\n outdatedComponents,\n mergePendingComponents,\n componentsDuringMergeState,\n softTaggedComponents,\n snappedComponents,\n pendingUpdatesFromMain,\n localOnly,\n updatesFromForked,\n unavailableOnMain,\n currentLaneId,\n forkedLaneId,\n workspaceIssues,\n }: StatusResult = await this.status.status({ lanes, ignoreCircularDependencies });\n // If there is problem with at least one component we want to show a link to the\n // troubleshooting doc\n let showTroubleshootingLink = false;\n\n function format(\n id: ComponentID,\n showIssues = false,\n message?: string,\n localVersions?: string[],\n showSoftTagMsg = true\n ): string {\n const idWithIssues = componentsWithIssues.find((c) => c.id.isEqual(id));\n const isSoftTagged = Boolean(softTaggedComponents.find((softTaggedId) => softTaggedId.isEqual(id)));\n const getStatusText = () => {\n if (message) return message;\n if (idWithIssues) {\n return idWithIssues.issues.hasTagBlockerIssues() ? statusFailureMsg : statusWarningsMsg;\n }\n return 'ok';\n };\n const getColor = () => {\n if (message) return 'yellow';\n if (idWithIssues) return idWithIssues.issues.hasTagBlockerIssues() ? 'red' : 'yellow';\n return 'green';\n };\n const messageStatusText = getStatusText();\n const messageStatusTextWithSoftTag =\n isSoftTagged && showSoftTagMsg ? `${messageStatusText} (soft-tagged)` : messageStatusText;\n const messageStatus = chalk[getColor()](messageStatusTextWithSoftTag);\n let idFormatted = chalk.white(' > ') + chalk.cyan(id.toStringWithoutVersion());\n\n if (!showIssues && !localVersions) {\n return `${idFormatted} ... ${messageStatus}`;\n }\n if (localVersions) {\n if (verbose) {\n idFormatted += `. versions: ${localVersions.join(', ')}`;\n } else {\n const [snaps, tags] = partition(localVersions, (version) => isHash(version));\n const tagsStr = tags.length ? `versions: ${tags.join(', ')}` : '';\n const snapsStr = snaps.length ? `${snaps.length} snap(s)` : '';\n idFormatted += `. `;\n idFormatted += tagsStr && snapsStr ? `${tagsStr}. and ${snapsStr}` : tagsStr || snapsStr;\n }\n }\n idFormatted += ' ... ';\n if (showIssues && idWithIssues) {\n showTroubleshootingLink = true;\n const issuesTxt = idWithIssues.issues.hasTagBlockerIssues() ? statusFailureMsg : statusWarningsMsg;\n const issuesColor = idWithIssues.issues.hasTagBlockerIssues() ? 'red' : 'yellow';\n return `${idFormatted} ${chalk[issuesColor](issuesTxt)}${formatIssues(idWithIssues.issues)}`;\n }\n return `${idFormatted}${messageStatus}`;\n }\n\n function formatCategory(title: string, description: string, compsOutput: string[]) {\n if (!compsOutput.length) return '';\n const titleOutput = chalk.underline.white(`${title} (${compsOutput.length})`);\n const descOutput = description ? `${description}\\n` : '';\n return [titleOutput, descOutput, ...compsOutput].join('\\n');\n }\n\n const importPendingWarning = importPendingComponents.length ? chalk.yellow(`${IMPORT_PENDING_MSG}.\\n`) : '';\n\n const newCompFormatted = newComponents.map((c) => format(c));\n const { missing, nonMissing } = groupBy(newCompFormatted, (component) => {\n return component.includes(statusFailureMsg) ? 'missing' : 'nonMissing';\n });\n\n const outdatedTitle = 'pending updates';\n const outdatedDesc =\n '(use \"bit checkout head\" to merge changes)\\n(use \"bit diff [component_id] [new_version]\" to compare changes)\\n(use \"bit log [component_id]\" to list all available versions)';\n const outdatedComps = outdatedComponents.map((component) => {\n const latest =\n component.latestVersion && component.latestVersion !== component.headVersion\n ? ` latest: ${component.latestVersion}`\n : '';\n return ` > ${chalk.cyan(component.id.toStringWithoutVersion())} current: ${component.id.version} head: ${\n component.headVersion\n }${latest}`;\n });\n const outdatedStr = formatCategory(outdatedTitle, outdatedDesc, outdatedComps);\n\n const pendingMergeTitle = 'pending merge';\n const pendingMergeDesc = `(use \"bit reset\" to discard local tags/snaps, and bit checkout head to re-merge with the remote.\nalternatively, to keep local tags/snaps history, use \"bit merge [component-id]\")`;\n const pendingMergeComps = mergePendingComponents.map((component) => {\n return ` > ${chalk.cyan(component.id.toString())} local and remote have diverged and have ${\n component.divergeData.snapsOnSourceOnly.length\n } (source) and ${component.divergeData.snapsOnTargetOnly.length} (target) uncommon snaps respectively`;\n });\n\n const pendingMergeStr = formatCategory(pendingMergeTitle, pendingMergeDesc, pendingMergeComps);\n\n const compDuringMergeTitle = 'components in merge state';\n const compDuringMergeDesc = `(use \"bit snap/tag [--unmerged]\" to complete the merge process.\nto cancel the merge operation, use either \"bit lane merge-abort\" (for prior \"bit lane merge\" command)\nor use \"bit merge [component-id] --abort\" (for prior \"bit merge\" command)`;\n const compDuringMergeComps = componentsDuringMergeState.map((c) => format(c));\n\n const compDuringMergeStr = formatCategory(compDuringMergeTitle, compDuringMergeDesc, compDuringMergeComps);\n\n const newComponentDescription = '\\n(use \"bit snap/tag\" to lock a version with all your changes)\\n';\n const newComponentsTitle = newComponents.length\n ? chalk.underline.white('new components') + newComponentDescription\n : '';\n\n const newComponentsOutput = [newComponentsTitle, ...(nonMissing || []), ...(missing || [])].join('\\n');\n\n const modifiedDesc = '(use \"bit diff\" to compare changes)';\n const modifiedComponentOutput = formatCategory(\n 'modified components',\n modifiedDesc,\n modifiedComponents.map((c) => format(c))\n );\n\n const autoTagPendingTitle = 'components pending auto-tag (when their modified dependencies are tagged)';\n const autoTagPendingOutput = formatCategory(\n autoTagPendingTitle,\n '',\n autoTagPendingComponents.map((c) => format(c))\n );\n\n const componentsWithIssuesToPrint = componentsWithIssues.filter((c) => c.issues.hasTagBlockerIssues() || warnings);\n const compWithIssuesDesc = '(fix the issues according to the suggested solution)';\n const compWithIssuesOutput = formatCategory(\n 'components with issues',\n compWithIssuesDesc,\n componentsWithIssuesToPrint.map((c) => format(c.id, true)).sort()\n );\n\n const invalidDesc = 'these components failed to load';\n const invalidComps = invalidComponents.map((c) => format(c.id, false, getInvalidComponentLabel(c.error))).sort();\n const invalidComponentOutput = formatCategory(statusInvalidComponentsMsg, invalidDesc, invalidComps);\n\n const locallySoftRemovedDesc =\n '(tag/snap and export the components to update the deletion to the remote. to undo deletion, run \"bit recover\")';\n const locallySoftRemovedOutput = formatCategory(\n 'soft-removed components locally',\n locallySoftRemovedDesc,\n locallySoftRemoved.map((c) => format(c)).sort()\n );\n\n const remotelySoftRemovedDesc =\n '(use \"bit remove\" to remove them from the workspace. use \"bit recover\" to undo the deletion)';\n const remotelySoftRemovedOutput = formatCategory(\n 'components deleted on the remote',\n remotelySoftRemovedDesc,\n remotelySoftRemoved.map((c) => format(c)).sort()\n );\n\n const stagedDesc = '(use \"bit export\" to push these component versions to the remote scope)';\n const stagedComps = stagedComponents.map((c) => format(c.id, false, undefined, c.versions));\n const stagedComponentsOutput = formatCategory('staged components', stagedDesc, stagedComps);\n\n const localOnlyDesc = '(these components are excluded from tag/snap/export commands)';\n const localOnlyComps = localOnly.map((c) => format(c)).sort();\n const localOnlyComponentsOutput = formatCategory('local-only components', localOnlyDesc, localOnlyComps);\n\n const softTaggedDesc = '(use \"bit tag --persist\" to complete the tag)';\n const softTaggedComps = softTaggedComponents.map((id) => format(id, false, undefined, undefined, false));\n const softTaggedComponentsOutput = formatCategory('soft-tagged components', softTaggedDesc, softTaggedComps);\n\n const snappedDesc = '(use \"bit tag\" or \"bit tag --snapped\" to lock a semver version)';\n const snappedComponentsOutput = formatCategory(\n 'snapped components (tag pending)',\n snappedDesc,\n snappedComponents.map((c) => format(c))\n );\n\n const unavailableOnMainDesc = '(use \"bit checkout head\" to make them available)';\n const unavailableOnMainOutput = formatCategory(\n 'components unavailable on main',\n unavailableOnMainDesc,\n unavailableOnMain.map((c) => format(c))\n );\n\n const getUpdateFromMsg = (divergeData: SnapsDistance, from = 'main'): string => {\n if (divergeData.err) return divergeData.err.message;\n let msg = `${from} is ahead by ${divergeData.snapsOnTargetOnly.length || 0} snaps`;\n if (divergeData.snapsOnSourceOnly && verbose) {\n msg += ` (diverged since ${divergeData.commonSnapBeforeDiverge?.toShortString()})`;\n }\n return msg;\n };\n\n const updatesFromMainDesc = '(use \"bit lane merge main\" to merge the changes)';\n const pendingUpdatesFromMainIds = pendingUpdatesFromMain.map((c) =>\n format(c.id, false, getUpdateFromMsg(c.divergeData))\n );\n const updatesFromMainOutput = formatCategory(\n 'pending updates from main',\n updatesFromMainDesc,\n pendingUpdatesFromMainIds\n );\n\n let updatesFromForkedOutput = '';\n if (forkedLaneId) {\n const updatesFromForkedDesc = `(use \"bit lane merge ${forkedLaneId.toString()}\" to merge the changes\nuse \"bit fetch ${forkedLaneId.toString()} --lanes\" to update ${forkedLaneId.name} locally)`;\n const pendingUpdatesFromForkedIds = updatesFromForked.map((c) =>\n format(c.id, false, getUpdateFromMsg(c.divergeData, forkedLaneId.name))\n );\n updatesFromForkedOutput = formatCategory(\n `updates from ${forkedLaneId.name}`,\n updatesFromForkedDesc,\n pendingUpdatesFromForkedIds\n );\n }\n\n const getLaneStr = () => {\n if (currentLaneId.isDefault()) return '';\n const prefix = `\\n\\ncurrent lane ${chalk.bold(currentLaneId.toString())}`;\n if (lanes) return prefix;\n return `${prefix}\\nconsider adding \"--lanes\" flag to see updates from main/forked`;\n };\n\n const getWorkspaceIssuesOutput = () => {\n if (!workspaceIssues.length) return '';\n const title = chalk.underline.white('workspace issues');\n const issues = workspaceIssues.join('\\n');\n return `\\n\\n${title}\\n${issues}`;\n };\n\n const troubleshootingStr = showTroubleshootingLink ? `\\n${TROUBLESHOOTING_MESSAGE}` : '';\n const wereWarningsFilteredOut = componentsWithIssuesToPrint.length < componentsWithIssues.length;\n const showWarningsStr = wereWarningsFilteredOut\n ? `\\n${chalk.yellow('to view the warnings, use --warnings flag.')}`\n : '';\n\n const statusMsg =\n importPendingWarning +\n compact([\n outdatedStr,\n pendingMergeStr,\n updatesFromMainOutput,\n updatesFromForkedOutput,\n compDuringMergeStr,\n localOnlyComponentsOutput,\n newComponentsOutput,\n modifiedComponentOutput,\n snappedComponentsOutput,\n stagedComponentsOutput,\n softTaggedComponentsOutput,\n unavailableOnMainOutput,\n autoTagPendingOutput,\n compWithIssuesOutput,\n invalidComponentOutput,\n locallySoftRemovedOutput,\n remotelySoftRemovedOutput,\n ]).join(chalk.underline('\\n \\n') + chalk.white('\\n')) +\n showWarningsStr +\n troubleshootingStr;\n\n const results = (statusMsg || chalk.yellow(statusWorkspaceIsCleanMsg)) + getWorkspaceIssuesOutput() + getLaneStr();\n\n const exitCode = componentsWithIssues.length && strict ? 1 : 0;\n\n return {\n data: results,\n code: exitCode,\n };\n }\n}\n\nexport function formatIssues(issues: IssuesList) {\n return ` ${issues?.outputForCLI()}\\n`;\n}\n\nfunction getInvalidComponentLabel(error: Error) {\n switch (error.name) {\n case 'MainFileRemoved':\n return 'main-file was removed (use \"bit add\" with \"--main\" and \"--id\" flags to add a main file)';\n case 'ComponentNotFoundInPath':\n return 'component files were deleted (use \"bit remove [component_id]\") or moved (use \"bit move <old-dir> <new-dir>\"). to restore use \"bit checkout reset [component_id]\"';\n case 'ExtensionFileNotFound':\n // @ts-ignore error.path is set for ExtensionFileNotFound\n return `extension file is missing at ${chalk.bold(error.path)}`;\n case 'ComponentsPendingImport':\n return 'component objects are missing from the scope (use \"bit import [component_id] --objects\" to get them back)';\n case 'NoComponentDir':\n return `component files were added individually without root directory (invalid on Harmony. re-add as a directory or use \"bit move --component\" to help with the move)`;\n case 'IgnoredDirectory':\n return `component files or directory were ignored (probably by .gitignore)`;\n case 'NoCommonSnap':\n return `component history is unrelated to main (merge main with --resolve-unrelated flag)`;\n default:\n return error.name;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_statusFormatter","data","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","StatusCmd","constructor","status","json","_args","lanes","ignoreCircularDependencies","newComponents","modifiedComponents","stagedComponents","componentsWithIssues","importPendingComponents","autoTagPendingComponents","invalidComponents","locallySoftRemoved","remotelySoftRemoved","outdatedComponents","mergePendingComponents","componentsDuringMergeState","softTaggedComponents","snappedComponents","unavailableOnMain","pendingUpdatesFromMain","updatesFromForked","currentLaneId","forkedLaneId","workspaceIssues","localOnly","map","c","toStringWithoutVersion","id","versions","issues","toObjectIncludeDataAsString","s","error","p","divergeData","toString","report","strict","verbose","warnings","failOnError","statusResult","formatStatusOutput","exports"],"sources":["status-cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { StatusMain, StatusResult } from './status.main.runtime';\nimport { formatStatusOutput } from './status-formatter';\n\ntype StatusFlags = {\n strict?: boolean;\n verbose?: boolean;\n lanes?: boolean;\n ignoreCircularDependencies?: boolean;\n warnings?: boolean;\n failOnError?: boolean;\n};\n\ntype StatusJsonResults = {\n newComponents: string[];\n modifiedComponents: string[];\n stagedComponents: Array<{ id: string; versions: string[] }>;\n unavailableOnMain: string[];\n componentsWithIssues: Array<{\n id: string;\n issues: Array<{\n type: string;\n description: string;\n data: any;\n }>;\n }>;\n importPendingComponents: string[];\n autoTagPendingComponents: string[];\n invalidComponents: Array<{ id: string; error: Error }>;\n locallySoftRemoved: string[];\n remotelySoftRemoved: string[];\n outdatedComponents: Array<{ id: string; headVersion: string; latestVersion?: string }>;\n mergePendingComponents: string[];\n componentsDuringMergeState: string[];\n softTaggedComponents: string[];\n snappedComponents: string[];\n localOnly: string[];\n pendingUpdatesFromMain: Array<{\n id: string;\n divergeData: any;\n }>;\n updatesFromForked: Array<{\n id: string;\n divergeData: any;\n }>;\n currentLaneId: string;\n forkedLaneId: string | undefined;\n workspaceIssues: string[];\n};\n\nexport class StatusCmd implements Command {\n name = 'status';\n description = 'present the current status of components in the workspace, including indication of detected issues';\n group = 'info-analysis';\n extendedDescription: string;\n alias = 's';\n options = [\n ['j', 'json', 'return a json version of the component'],\n ['w', 'warnings', 'show warnings. by default, only issues that block tag/snap are shown'],\n ['', 'verbose', 'show extra data: full snap hashes for staged components, and divergence point for lanes'],\n ['l', 'lanes', 'when on a lane, show updates from main and updates from forked lanes'],\n ['', 'strict', 'exit with code 1 if any issues are found (both errors and warnings)'],\n ['', 'fail-on-error', 'exit with code 1 only when tag/snap blocker issues are found (not warnings)'],\n ['c', 'ignore-circular-dependencies', 'do not check for circular dependencies to get the results quicker'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private status: StatusMain) {}\n\n async json(_args, { lanes, ignoreCircularDependencies }: StatusFlags): Promise<StatusJsonResults> {\n const {\n newComponents,\n modifiedComponents,\n stagedComponents,\n componentsWithIssues,\n importPendingComponents,\n autoTagPendingComponents,\n invalidComponents,\n locallySoftRemoved,\n remotelySoftRemoved,\n outdatedComponents,\n mergePendingComponents,\n componentsDuringMergeState,\n softTaggedComponents,\n snappedComponents,\n unavailableOnMain,\n pendingUpdatesFromMain,\n updatesFromForked,\n currentLaneId,\n forkedLaneId,\n workspaceIssues,\n localOnly,\n }: StatusResult = await this.status.status({ lanes, ignoreCircularDependencies });\n return {\n newComponents: newComponents.map((c) => c.toStringWithoutVersion()),\n modifiedComponents: modifiedComponents.map((c) => c.toStringWithoutVersion()),\n stagedComponents: stagedComponents.map((c) => ({ id: c.id.toStringWithoutVersion(), versions: c.versions })),\n unavailableOnMain: unavailableOnMain.map((c) => c.toStringWithoutVersion()),\n componentsWithIssues: componentsWithIssues.map((c) => ({\n id: c.id.toStringWithoutVersion(),\n issues: c.issues?.toObjectIncludeDataAsString(),\n })),\n importPendingComponents: importPendingComponents.map((id) => id.toStringWithoutVersion()),\n autoTagPendingComponents: autoTagPendingComponents.map((s) => s.toStringWithoutVersion()),\n invalidComponents: invalidComponents.map(({ id, error }) => ({ id: id.toStringWithoutVersion(), error })),\n locallySoftRemoved: locallySoftRemoved.map((id) => id.toStringWithoutVersion()),\n remotelySoftRemoved: remotelySoftRemoved.map((id) => id.toStringWithoutVersion()),\n outdatedComponents: outdatedComponents.map((c) => ({ ...c, id: c.id.toStringWithoutVersion() })),\n mergePendingComponents: mergePendingComponents.map((c) => c.id.toStringWithoutVersion()),\n componentsDuringMergeState: componentsDuringMergeState.map((id) => id.toStringWithoutVersion()),\n softTaggedComponents: softTaggedComponents.map((s) => s.toStringWithoutVersion()),\n snappedComponents: snappedComponents.map((s) => s.toStringWithoutVersion()),\n localOnly: localOnly.map((id) => id.toStringWithoutVersion()),\n pendingUpdatesFromMain: pendingUpdatesFromMain.map((p) => ({\n id: p.id.toStringWithoutVersion(),\n divergeData: p.divergeData,\n })),\n updatesFromForked: updatesFromForked.map((p) => ({\n id: p.id.toStringWithoutVersion(),\n divergeData: p.divergeData,\n })),\n currentLaneId: currentLaneId.toString(),\n forkedLaneId: forkedLaneId?.toString(),\n workspaceIssues,\n };\n }\n\n async report(_args, { strict, verbose, lanes, ignoreCircularDependencies, warnings, failOnError }: StatusFlags) {\n const statusResult: StatusResult = await this.status.status({ lanes, ignoreCircularDependencies });\n return formatStatusOutput(statusResult, { strict, verbose, warnings, failOnError });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { IssuesList } from '@teambit/component-issues';
2
+ import { StatusResult } from './status.main.runtime';
3
+ export type StatusFormatterOptions = {
4
+ strict?: boolean;
5
+ verbose?: boolean;
6
+ warnings?: boolean;
7
+ failOnError?: boolean;
8
+ };
9
+ export declare function formatStatusOutput(statusResult: StatusResult, options?: StatusFormatterOptions): {
10
+ data: string;
11
+ code: number;
12
+ };
13
+ export declare function formatIssues(issues: IssuesList): string;
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatIssues = formatIssues;
7
+ exports.formatStatusOutput = formatStatusOutput;
8
+ function _chalk() {
9
+ const data = _interopRequireDefault(require("chalk"));
10
+ _chalk = function () {
11
+ return data;
12
+ };
13
+ return data;
14
+ }
15
+ function _legacy() {
16
+ const data = require("@teambit/legacy.constants");
17
+ _legacy = function () {
18
+ return data;
19
+ };
20
+ return data;
21
+ }
22
+ function _lodash() {
23
+ const data = require("lodash");
24
+ _lodash = function () {
25
+ return data;
26
+ };
27
+ return data;
28
+ }
29
+ function _componentVersion() {
30
+ const data = require("@teambit/component-version");
31
+ _componentVersion = function () {
32
+ return data;
33
+ };
34
+ return data;
35
+ }
36
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
37
+ const TROUBLESHOOTING_MESSAGE = _chalk().default.yellow(`learn more about Bit components: ${_legacy().BASE_DOCS_DOMAIN}reference/components/component-anatomy`);
38
+ function formatStatusOutput(statusResult, options = {}) {
39
+ const {
40
+ strict = false,
41
+ verbose = false,
42
+ warnings = false,
43
+ failOnError = false
44
+ } = options;
45
+ const {
46
+ newComponents,
47
+ modifiedComponents,
48
+ stagedComponents,
49
+ componentsWithIssues,
50
+ importPendingComponents,
51
+ autoTagPendingComponents,
52
+ invalidComponents,
53
+ locallySoftRemoved,
54
+ remotelySoftRemoved,
55
+ outdatedComponents,
56
+ mergePendingComponents,
57
+ componentsDuringMergeState,
58
+ softTaggedComponents,
59
+ snappedComponents,
60
+ pendingUpdatesFromMain,
61
+ localOnly,
62
+ updatesFromForked,
63
+ unavailableOnMain,
64
+ currentLaneId,
65
+ forkedLaneId,
66
+ workspaceIssues
67
+ } = statusResult;
68
+
69
+ // If there is problem with at least one component we want to show a link to the
70
+ // troubleshooting doc
71
+ let showTroubleshootingLink = false;
72
+ function format(id, showIssues = false, message, localVersions, showSoftTagMsg = true) {
73
+ const idWithIssues = componentsWithIssues.find(c => c.id.isEqual(id));
74
+ const isSoftTagged = Boolean(softTaggedComponents.find(softTaggedId => softTaggedId.isEqual(id)));
75
+ const getStatusText = () => {
76
+ if (message) return message;
77
+ if (idWithIssues) {
78
+ return idWithIssues.issues.hasTagBlockerIssues() ? _legacy().statusFailureMsg : _legacy().statusWarningsMsg;
79
+ }
80
+ return 'ok';
81
+ };
82
+ const getColor = () => {
83
+ if (message) return 'yellow';
84
+ if (idWithIssues) return idWithIssues.issues.hasTagBlockerIssues() ? 'red' : 'yellow';
85
+ return 'green';
86
+ };
87
+ const messageStatusText = getStatusText();
88
+ const messageStatusTextWithSoftTag = isSoftTagged && showSoftTagMsg ? `${messageStatusText} (soft-tagged)` : messageStatusText;
89
+ const messageStatus = _chalk().default[getColor()](messageStatusTextWithSoftTag);
90
+ let idFormatted = _chalk().default.white(' > ') + _chalk().default.cyan(id.toStringWithoutVersion());
91
+ if (!showIssues && !localVersions) {
92
+ return `${idFormatted} ... ${messageStatus}`;
93
+ }
94
+ if (localVersions) {
95
+ if (verbose) {
96
+ idFormatted += `. versions: ${localVersions.join(', ')}`;
97
+ } else {
98
+ const [snaps, tags] = (0, _lodash().partition)(localVersions, version => (0, _componentVersion().isHash)(version));
99
+ const tagsStr = tags.length ? `versions: ${tags.join(', ')}` : '';
100
+ const snapsStr = snaps.length ? `${snaps.length} snap(s)` : '';
101
+ idFormatted += `. `;
102
+ idFormatted += tagsStr && snapsStr ? `${tagsStr}. and ${snapsStr}` : tagsStr || snapsStr;
103
+ }
104
+ }
105
+ idFormatted += ' ... ';
106
+ if (showIssues && idWithIssues) {
107
+ showTroubleshootingLink = true;
108
+ const issuesTxt = idWithIssues.issues.hasTagBlockerIssues() ? _legacy().statusFailureMsg : _legacy().statusWarningsMsg;
109
+ const issuesColor = idWithIssues.issues.hasTagBlockerIssues() ? 'red' : 'yellow';
110
+ return `${idFormatted} ${_chalk().default[issuesColor](issuesTxt)}${formatIssues(idWithIssues.issues)}`;
111
+ }
112
+ return `${idFormatted}${messageStatus}`;
113
+ }
114
+ function formatCategory(title, description, compsOutput) {
115
+ if (!compsOutput.length) return '';
116
+ const titleOutput = _chalk().default.underline.white(`${title} (${compsOutput.length})`);
117
+ const descOutput = description ? `${description}\n` : '';
118
+ return [titleOutput, descOutput, ...compsOutput].join('\n');
119
+ }
120
+ const importPendingWarning = importPendingComponents.length ? _chalk().default.yellow(`${_legacy().IMPORT_PENDING_MSG}.\n`) : '';
121
+ const newCompFormatted = newComponents.map(c => format(c));
122
+ const {
123
+ missing,
124
+ nonMissing
125
+ } = (0, _lodash().groupBy)(newCompFormatted, component => {
126
+ return component.includes(_legacy().statusFailureMsg) ? 'missing' : 'nonMissing';
127
+ });
128
+ const outdatedTitle = 'pending updates';
129
+ const outdatedDesc = '(use "bit checkout head" to merge changes)\n(use "bit diff [component_id] [new_version]" to compare changes)\n(use "bit log [component_id]" to list all available versions)';
130
+ const outdatedComps = outdatedComponents.map(component => {
131
+ const latest = component.latestVersion && component.latestVersion !== component.headVersion ? ` latest: ${component.latestVersion}` : '';
132
+ return ` > ${_chalk().default.cyan(component.id.toStringWithoutVersion())} current: ${component.id.version} head: ${component.headVersion}${latest}`;
133
+ });
134
+ const outdatedStr = formatCategory(outdatedTitle, outdatedDesc, outdatedComps);
135
+ const pendingMergeTitle = 'pending merge';
136
+ const pendingMergeDesc = `(use "bit reset" to discard local tags/snaps, and bit checkout head to re-merge with the remote.
137
+ alternatively, to keep local tags/snaps history, use "bit merge [component-id]")`;
138
+ const pendingMergeComps = mergePendingComponents.map(component => {
139
+ return ` > ${_chalk().default.cyan(component.id.toString())} local and remote have diverged and have ${component.divergeData.snapsOnSourceOnly.length} (source) and ${component.divergeData.snapsOnTargetOnly.length} (target) uncommon snaps respectively`;
140
+ });
141
+ const pendingMergeStr = formatCategory(pendingMergeTitle, pendingMergeDesc, pendingMergeComps);
142
+ const compDuringMergeTitle = 'components in merge state';
143
+ const compDuringMergeDesc = `(use "bit snap/tag [--unmerged]" to complete the merge process.
144
+ to cancel the merge operation, use either "bit lane merge-abort" (for prior "bit lane merge" command)
145
+ or use "bit merge [component-id] --abort" (for prior "bit merge" command)`;
146
+ const compDuringMergeComps = componentsDuringMergeState.map(c => format(c));
147
+ const compDuringMergeStr = formatCategory(compDuringMergeTitle, compDuringMergeDesc, compDuringMergeComps);
148
+ const newComponentDescription = '\n(use "bit snap/tag" to lock a version with all your changes)\n';
149
+ const newComponentsTitle = newComponents.length ? _chalk().default.underline.white('new components') + newComponentDescription : '';
150
+ const newComponentsOutput = [newComponentsTitle, ...(nonMissing || []), ...(missing || [])].join('\n');
151
+ const modifiedDesc = '(use "bit diff" to compare changes)';
152
+ const modifiedComponentOutput = formatCategory('modified components', modifiedDesc, modifiedComponents.map(c => format(c)));
153
+ const autoTagPendingTitle = 'components pending auto-tag (when their modified dependencies are tagged)';
154
+ const autoTagPendingOutput = formatCategory(autoTagPendingTitle, '', autoTagPendingComponents.map(c => format(c)));
155
+ const componentsWithIssuesToPrint = componentsWithIssues.filter(c => c.issues.hasTagBlockerIssues() || warnings);
156
+ const compWithIssuesDesc = '(fix the issues according to the suggested solution)';
157
+ const compWithIssuesOutput = formatCategory('components with issues', compWithIssuesDesc, componentsWithIssuesToPrint.map(c => format(c.id, true)).sort());
158
+ const invalidDesc = 'these components failed to load';
159
+ const invalidComps = invalidComponents.map(c => format(c.id, false, getInvalidComponentLabel(c.error))).sort();
160
+ const invalidComponentOutput = formatCategory(_legacy().statusInvalidComponentsMsg, invalidDesc, invalidComps);
161
+ const locallySoftRemovedDesc = '(tag/snap and export the components to update the deletion to the remote. to undo deletion, run "bit recover")';
162
+ const locallySoftRemovedOutput = formatCategory('soft-removed components locally', locallySoftRemovedDesc, locallySoftRemoved.map(c => format(c)).sort());
163
+ const remotelySoftRemovedDesc = '(use "bit remove" to remove them from the workspace. use "bit recover" to undo the deletion)';
164
+ const remotelySoftRemovedOutput = formatCategory('components deleted on the remote', remotelySoftRemovedDesc, remotelySoftRemoved.map(c => format(c)).sort());
165
+ const stagedDesc = '(use "bit export" to push these component versions to the remote scope)';
166
+ const stagedComps = stagedComponents.map(c => format(c.id, false, undefined, c.versions));
167
+ const stagedComponentsOutput = formatCategory('staged components', stagedDesc, stagedComps);
168
+ const localOnlyDesc = '(these components are excluded from tag/snap/export commands)';
169
+ const localOnlyComps = localOnly.map(c => format(c)).sort();
170
+ const localOnlyComponentsOutput = formatCategory('local-only components', localOnlyDesc, localOnlyComps);
171
+ const softTaggedDesc = '(use "bit tag --persist" to complete the tag)';
172
+ const softTaggedComps = softTaggedComponents.map(id => format(id, false, undefined, undefined, false));
173
+ const softTaggedComponentsOutput = formatCategory('soft-tagged components', softTaggedDesc, softTaggedComps);
174
+ const snappedDesc = '(use "bit tag" or "bit tag --snapped" to lock a semver version)';
175
+ const snappedComponentsOutput = formatCategory('snapped components (tag pending)', snappedDesc, snappedComponents.map(c => format(c)));
176
+ const unavailableOnMainDesc = '(use "bit checkout head" to make them available)';
177
+ const unavailableOnMainOutput = formatCategory('components unavailable on main', unavailableOnMainDesc, unavailableOnMain.map(c => format(c)));
178
+ const getUpdateFromMsg = (divergeData, from = 'main') => {
179
+ if (divergeData.err) return divergeData.err.message;
180
+ let msg = `${from} is ahead by ${divergeData.snapsOnTargetOnly.length || 0} snaps`;
181
+ if (divergeData.snapsOnSourceOnly && verbose) {
182
+ msg += ` (diverged since ${divergeData.commonSnapBeforeDiverge?.toShortString()})`;
183
+ }
184
+ return msg;
185
+ };
186
+ const updatesFromMainDesc = '(use "bit lane merge main" to merge the changes)';
187
+ const pendingUpdatesFromMainIds = pendingUpdatesFromMain.map(c => format(c.id, false, getUpdateFromMsg(c.divergeData)));
188
+ const updatesFromMainOutput = formatCategory('pending updates from main', updatesFromMainDesc, pendingUpdatesFromMainIds);
189
+ let updatesFromForkedOutput = '';
190
+ if (forkedLaneId) {
191
+ const updatesFromForkedDesc = `(use "bit lane merge ${forkedLaneId.toString()}" to merge the changes
192
+ use "bit fetch ${forkedLaneId.toString()} --lanes" to update ${forkedLaneId.name} locally)`;
193
+ const pendingUpdatesFromForkedIds = updatesFromForked.map(c => format(c.id, false, getUpdateFromMsg(c.divergeData, forkedLaneId.name)));
194
+ updatesFromForkedOutput = formatCategory(`updates from ${forkedLaneId.name}`, updatesFromForkedDesc, pendingUpdatesFromForkedIds);
195
+ }
196
+ const getLaneStr = () => {
197
+ if (currentLaneId.isDefault()) return '';
198
+ const prefix = `\n\ncurrent lane ${_chalk().default.bold(currentLaneId.toString())}`;
199
+ return prefix;
200
+ };
201
+ const getWorkspaceIssuesOutput = () => {
202
+ if (!workspaceIssues.length) return '';
203
+ const title = _chalk().default.underline.white('workspace issues');
204
+ const issues = workspaceIssues.join('\n');
205
+ return `\n\n${title}\n${issues}`;
206
+ };
207
+ const troubleshootingStr = showTroubleshootingLink ? `\n${TROUBLESHOOTING_MESSAGE}` : '';
208
+ const wereWarningsFilteredOut = componentsWithIssuesToPrint.length < componentsWithIssues.length;
209
+ const showWarningsStr = wereWarningsFilteredOut ? `\n${_chalk().default.yellow('to view the warnings, use --warnings flag.')}` : '';
210
+ const statusMsg = importPendingWarning + (0, _lodash().compact)([outdatedStr, pendingMergeStr, updatesFromMainOutput, updatesFromForkedOutput, compDuringMergeStr, localOnlyComponentsOutput, newComponentsOutput, modifiedComponentOutput, snappedComponentsOutput, stagedComponentsOutput, softTaggedComponentsOutput, unavailableOnMainOutput, autoTagPendingOutput, compWithIssuesOutput, invalidComponentOutput, locallySoftRemovedOutput, remotelySoftRemovedOutput]).join(_chalk().default.underline('\n \n') + _chalk().default.white('\n')) + showWarningsStr + troubleshootingStr;
211
+ const results = (statusMsg || _chalk().default.yellow(_legacy().statusWorkspaceIsCleanMsg)) + getWorkspaceIssuesOutput() + getLaneStr();
212
+
213
+ // Determine exit code based on flags
214
+ let exitCode = 0;
215
+ if (strict && componentsWithIssues.length > 0) {
216
+ // Strict mode: fail on any issues (both errors and warnings)
217
+ exitCode = 1;
218
+ } else if (failOnError) {
219
+ // Fail only on tag blocker issues (errors), not warnings
220
+ const hasTagBlockerIssues = componentsWithIssues.some(c => c.issues.hasTagBlockerIssues());
221
+ if (hasTagBlockerIssues) {
222
+ exitCode = 1;
223
+ }
224
+ }
225
+ return {
226
+ data: results,
227
+ code: exitCode
228
+ };
229
+ }
230
+ function formatIssues(issues) {
231
+ return ` ${issues?.outputForCLI()}\n`;
232
+ }
233
+ function getInvalidComponentLabel(error) {
234
+ switch (error.name) {
235
+ case 'MainFileRemoved':
236
+ return 'main-file was removed (use "bit add" with "--main" and "--id" flags to add a main file)';
237
+ case 'ComponentNotFoundInPath':
238
+ return 'component files were deleted (use "bit remove [component_id]") or moved (use "bit move <old-dir> <new-dir>"). to restore use "bit checkout reset [component_id]"';
239
+ case 'ExtensionFileNotFound':
240
+ // @ts-ignore error.path is set for ExtensionFileNotFound
241
+ return `extension file is missing at ${_chalk().default.bold(error.path)}`;
242
+ case 'ComponentsPendingImport':
243
+ return 'component objects are missing from the scope (use "bit import [component_id] --objects" to get them back)';
244
+ case 'NoComponentDir':
245
+ return `component files were added individually without root directory (invalid on Harmony. re-add as a directory or use "bit move --component" to help with the move)`;
246
+ case 'IgnoredDirectory':
247
+ return `component files or directory were ignored (probably by .gitignore)`;
248
+ case 'NoCommonSnap':
249
+ return `component history is unrelated to main (merge main with --resolve-unrelated flag)`;
250
+ default:
251
+ return error.name;
252
+ }
253
+ }
254
+
255
+ //# sourceMappingURL=status-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_legacy","_lodash","_componentVersion","e","__esModule","default","TROUBLESHOOTING_MESSAGE","chalk","yellow","BASE_DOCS_DOMAIN","formatStatusOutput","statusResult","options","strict","verbose","warnings","failOnError","newComponents","modifiedComponents","stagedComponents","componentsWithIssues","importPendingComponents","autoTagPendingComponents","invalidComponents","locallySoftRemoved","remotelySoftRemoved","outdatedComponents","mergePendingComponents","componentsDuringMergeState","softTaggedComponents","snappedComponents","pendingUpdatesFromMain","localOnly","updatesFromForked","unavailableOnMain","currentLaneId","forkedLaneId","workspaceIssues","showTroubleshootingLink","format","id","showIssues","message","localVersions","showSoftTagMsg","idWithIssues","find","c","isEqual","isSoftTagged","Boolean","softTaggedId","getStatusText","issues","hasTagBlockerIssues","statusFailureMsg","statusWarningsMsg","getColor","messageStatusText","messageStatusTextWithSoftTag","messageStatus","idFormatted","white","cyan","toStringWithoutVersion","join","snaps","tags","partition","version","isHash","tagsStr","length","snapsStr","issuesTxt","issuesColor","formatIssues","formatCategory","title","description","compsOutput","titleOutput","underline","descOutput","importPendingWarning","IMPORT_PENDING_MSG","newCompFormatted","map","missing","nonMissing","groupBy","component","includes","outdatedTitle","outdatedDesc","outdatedComps","latest","latestVersion","headVersion","outdatedStr","pendingMergeTitle","pendingMergeDesc","pendingMergeComps","toString","divergeData","snapsOnSourceOnly","snapsOnTargetOnly","pendingMergeStr","compDuringMergeTitle","compDuringMergeDesc","compDuringMergeComps","compDuringMergeStr","newComponentDescription","newComponentsTitle","newComponentsOutput","modifiedDesc","modifiedComponentOutput","autoTagPendingTitle","autoTagPendingOutput","componentsWithIssuesToPrint","filter","compWithIssuesDesc","compWithIssuesOutput","sort","invalidDesc","invalidComps","getInvalidComponentLabel","error","invalidComponentOutput","statusInvalidComponentsMsg","locallySoftRemovedDesc","locallySoftRemovedOutput","remotelySoftRemovedDesc","remotelySoftRemovedOutput","stagedDesc","stagedComps","undefined","versions","stagedComponentsOutput","localOnlyDesc","localOnlyComps","localOnlyComponentsOutput","softTaggedDesc","softTaggedComps","softTaggedComponentsOutput","snappedDesc","snappedComponentsOutput","unavailableOnMainDesc","unavailableOnMainOutput","getUpdateFromMsg","from","err","msg","commonSnapBeforeDiverge","toShortString","updatesFromMainDesc","pendingUpdatesFromMainIds","updatesFromMainOutput","updatesFromForkedOutput","updatesFromForkedDesc","name","pendingUpdatesFromForkedIds","getLaneStr","isDefault","prefix","bold","getWorkspaceIssuesOutput","troubleshootingStr","wereWarningsFilteredOut","showWarningsStr","statusMsg","compact","results","statusWorkspaceIsCleanMsg","exitCode","some","code","outputForCLI","path"],"sources":["status-formatter.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { ComponentID } from '@teambit/component-id';\nimport { SnapsDistance } from '@teambit/component.snap-distance';\nimport { IssuesList } from '@teambit/component-issues';\nimport {\n IMPORT_PENDING_MSG,\n statusFailureMsg,\n statusWarningsMsg,\n statusInvalidComponentsMsg,\n statusWorkspaceIsCleanMsg,\n BASE_DOCS_DOMAIN,\n} from '@teambit/legacy.constants';\nimport { compact, groupBy, partition } from 'lodash';\nimport { isHash } from '@teambit/component-version';\nimport { StatusResult } from './status.main.runtime';\n\nconst TROUBLESHOOTING_MESSAGE = chalk.yellow(\n `learn more about Bit components: ${BASE_DOCS_DOMAIN}reference/components/component-anatomy`\n);\n\nexport type StatusFormatterOptions = {\n strict?: boolean;\n verbose?: boolean;\n warnings?: boolean;\n failOnError?: boolean;\n};\n\nexport function formatStatusOutput(\n statusResult: StatusResult,\n options: StatusFormatterOptions = {}\n): { data: string; code: number } {\n const { strict = false, verbose = false, warnings = false, failOnError = false } = options;\n\n const {\n newComponents,\n modifiedComponents,\n stagedComponents,\n componentsWithIssues,\n importPendingComponents,\n autoTagPendingComponents,\n invalidComponents,\n locallySoftRemoved,\n remotelySoftRemoved,\n outdatedComponents,\n mergePendingComponents,\n componentsDuringMergeState,\n softTaggedComponents,\n snappedComponents,\n pendingUpdatesFromMain,\n localOnly,\n updatesFromForked,\n unavailableOnMain,\n currentLaneId,\n forkedLaneId,\n workspaceIssues,\n } = statusResult;\n\n // If there is problem with at least one component we want to show a link to the\n // troubleshooting doc\n let showTroubleshootingLink = false;\n\n function format(\n id: ComponentID,\n showIssues = false,\n message?: string,\n localVersions?: string[],\n showSoftTagMsg = true\n ): string {\n const idWithIssues = componentsWithIssues.find((c) => c.id.isEqual(id));\n const isSoftTagged = Boolean(softTaggedComponents.find((softTaggedId) => softTaggedId.isEqual(id)));\n const getStatusText = () => {\n if (message) return message;\n if (idWithIssues) {\n return idWithIssues.issues.hasTagBlockerIssues() ? statusFailureMsg : statusWarningsMsg;\n }\n return 'ok';\n };\n const getColor = () => {\n if (message) return 'yellow';\n if (idWithIssues) return idWithIssues.issues.hasTagBlockerIssues() ? 'red' : 'yellow';\n return 'green';\n };\n const messageStatusText = getStatusText();\n const messageStatusTextWithSoftTag =\n isSoftTagged && showSoftTagMsg ? `${messageStatusText} (soft-tagged)` : messageStatusText;\n const messageStatus = chalk[getColor()](messageStatusTextWithSoftTag);\n let idFormatted = chalk.white(' > ') + chalk.cyan(id.toStringWithoutVersion());\n\n if (!showIssues && !localVersions) {\n return `${idFormatted} ... ${messageStatus}`;\n }\n if (localVersions) {\n if (verbose) {\n idFormatted += `. versions: ${localVersions.join(', ')}`;\n } else {\n const [snaps, tags] = partition(localVersions, (version) => isHash(version));\n const tagsStr = tags.length ? `versions: ${tags.join(', ')}` : '';\n const snapsStr = snaps.length ? `${snaps.length} snap(s)` : '';\n idFormatted += `. `;\n idFormatted += tagsStr && snapsStr ? `${tagsStr}. and ${snapsStr}` : tagsStr || snapsStr;\n }\n }\n idFormatted += ' ... ';\n if (showIssues && idWithIssues) {\n showTroubleshootingLink = true;\n const issuesTxt = idWithIssues.issues.hasTagBlockerIssues() ? statusFailureMsg : statusWarningsMsg;\n const issuesColor = idWithIssues.issues.hasTagBlockerIssues() ? 'red' : 'yellow';\n return `${idFormatted} ${chalk[issuesColor](issuesTxt)}${formatIssues(idWithIssues.issues)}`;\n }\n return `${idFormatted}${messageStatus}`;\n }\n\n function formatCategory(title: string, description: string, compsOutput: string[]) {\n if (!compsOutput.length) return '';\n const titleOutput = chalk.underline.white(`${title} (${compsOutput.length})`);\n const descOutput = description ? `${description}\\n` : '';\n return [titleOutput, descOutput, ...compsOutput].join('\\n');\n }\n\n const importPendingWarning = importPendingComponents.length ? chalk.yellow(`${IMPORT_PENDING_MSG}.\\n`) : '';\n\n const newCompFormatted = newComponents.map((c) => format(c));\n const { missing, nonMissing } = groupBy(newCompFormatted, (component) => {\n return component.includes(statusFailureMsg) ? 'missing' : 'nonMissing';\n });\n\n const outdatedTitle = 'pending updates';\n const outdatedDesc =\n '(use \"bit checkout head\" to merge changes)\\n(use \"bit diff [component_id] [new_version]\" to compare changes)\\n(use \"bit log [component_id]\" to list all available versions)';\n const outdatedComps = outdatedComponents.map((component) => {\n const latest =\n component.latestVersion && component.latestVersion !== component.headVersion\n ? ` latest: ${component.latestVersion}`\n : '';\n return ` > ${chalk.cyan(component.id.toStringWithoutVersion())} current: ${component.id.version} head: ${\n component.headVersion\n }${latest}`;\n });\n const outdatedStr = formatCategory(outdatedTitle, outdatedDesc, outdatedComps);\n\n const pendingMergeTitle = 'pending merge';\n const pendingMergeDesc = `(use \"bit reset\" to discard local tags/snaps, and bit checkout head to re-merge with the remote.\nalternatively, to keep local tags/snaps history, use \"bit merge [component-id]\")`;\n const pendingMergeComps = mergePendingComponents.map((component) => {\n return ` > ${chalk.cyan(component.id.toString())} local and remote have diverged and have ${\n component.divergeData.snapsOnSourceOnly.length\n } (source) and ${component.divergeData.snapsOnTargetOnly.length} (target) uncommon snaps respectively`;\n });\n\n const pendingMergeStr = formatCategory(pendingMergeTitle, pendingMergeDesc, pendingMergeComps);\n\n const compDuringMergeTitle = 'components in merge state';\n const compDuringMergeDesc = `(use \"bit snap/tag [--unmerged]\" to complete the merge process.\nto cancel the merge operation, use either \"bit lane merge-abort\" (for prior \"bit lane merge\" command)\nor use \"bit merge [component-id] --abort\" (for prior \"bit merge\" command)`;\n const compDuringMergeComps = componentsDuringMergeState.map((c) => format(c));\n\n const compDuringMergeStr = formatCategory(compDuringMergeTitle, compDuringMergeDesc, compDuringMergeComps);\n\n const newComponentDescription = '\\n(use \"bit snap/tag\" to lock a version with all your changes)\\n';\n const newComponentsTitle = newComponents.length\n ? chalk.underline.white('new components') + newComponentDescription\n : '';\n\n const newComponentsOutput = [newComponentsTitle, ...(nonMissing || []), ...(missing || [])].join('\\n');\n\n const modifiedDesc = '(use \"bit diff\" to compare changes)';\n const modifiedComponentOutput = formatCategory(\n 'modified components',\n modifiedDesc,\n modifiedComponents.map((c) => format(c))\n );\n\n const autoTagPendingTitle = 'components pending auto-tag (when their modified dependencies are tagged)';\n const autoTagPendingOutput = formatCategory(\n autoTagPendingTitle,\n '',\n autoTagPendingComponents.map((c) => format(c))\n );\n\n const componentsWithIssuesToPrint = componentsWithIssues.filter((c) => c.issues.hasTagBlockerIssues() || warnings);\n const compWithIssuesDesc = '(fix the issues according to the suggested solution)';\n const compWithIssuesOutput = formatCategory(\n 'components with issues',\n compWithIssuesDesc,\n componentsWithIssuesToPrint.map((c) => format(c.id, true)).sort()\n );\n\n const invalidDesc = 'these components failed to load';\n const invalidComps = invalidComponents.map((c) => format(c.id, false, getInvalidComponentLabel(c.error))).sort();\n const invalidComponentOutput = formatCategory(statusInvalidComponentsMsg, invalidDesc, invalidComps);\n\n const locallySoftRemovedDesc =\n '(tag/snap and export the components to update the deletion to the remote. to undo deletion, run \"bit recover\")';\n const locallySoftRemovedOutput = formatCategory(\n 'soft-removed components locally',\n locallySoftRemovedDesc,\n locallySoftRemoved.map((c) => format(c)).sort()\n );\n\n const remotelySoftRemovedDesc =\n '(use \"bit remove\" to remove them from the workspace. use \"bit recover\" to undo the deletion)';\n const remotelySoftRemovedOutput = formatCategory(\n 'components deleted on the remote',\n remotelySoftRemovedDesc,\n remotelySoftRemoved.map((c) => format(c)).sort()\n );\n\n const stagedDesc = '(use \"bit export\" to push these component versions to the remote scope)';\n const stagedComps = stagedComponents.map((c) => format(c.id, false, undefined, c.versions));\n const stagedComponentsOutput = formatCategory('staged components', stagedDesc, stagedComps);\n\n const localOnlyDesc = '(these components are excluded from tag/snap/export commands)';\n const localOnlyComps = localOnly.map((c) => format(c)).sort();\n const localOnlyComponentsOutput = formatCategory('local-only components', localOnlyDesc, localOnlyComps);\n\n const softTaggedDesc = '(use \"bit tag --persist\" to complete the tag)';\n const softTaggedComps = softTaggedComponents.map((id) => format(id, false, undefined, undefined, false));\n const softTaggedComponentsOutput = formatCategory('soft-tagged components', softTaggedDesc, softTaggedComps);\n\n const snappedDesc = '(use \"bit tag\" or \"bit tag --snapped\" to lock a semver version)';\n const snappedComponentsOutput = formatCategory(\n 'snapped components (tag pending)',\n snappedDesc,\n snappedComponents.map((c) => format(c))\n );\n\n const unavailableOnMainDesc = '(use \"bit checkout head\" to make them available)';\n const unavailableOnMainOutput = formatCategory(\n 'components unavailable on main',\n unavailableOnMainDesc,\n unavailableOnMain.map((c) => format(c))\n );\n\n const getUpdateFromMsg = (divergeData: SnapsDistance, from = 'main'): string => {\n if (divergeData.err) return divergeData.err.message;\n let msg = `${from} is ahead by ${divergeData.snapsOnTargetOnly.length || 0} snaps`;\n if (divergeData.snapsOnSourceOnly && verbose) {\n msg += ` (diverged since ${divergeData.commonSnapBeforeDiverge?.toShortString()})`;\n }\n return msg;\n };\n\n const updatesFromMainDesc = '(use \"bit lane merge main\" to merge the changes)';\n const pendingUpdatesFromMainIds = pendingUpdatesFromMain.map((c) =>\n format(c.id, false, getUpdateFromMsg(c.divergeData))\n );\n const updatesFromMainOutput = formatCategory(\n 'pending updates from main',\n updatesFromMainDesc,\n pendingUpdatesFromMainIds\n );\n\n let updatesFromForkedOutput = '';\n if (forkedLaneId) {\n const updatesFromForkedDesc = `(use \"bit lane merge ${forkedLaneId.toString()}\" to merge the changes\nuse \"bit fetch ${forkedLaneId.toString()} --lanes\" to update ${forkedLaneId.name} locally)`;\n const pendingUpdatesFromForkedIds = updatesFromForked.map((c) =>\n format(c.id, false, getUpdateFromMsg(c.divergeData, forkedLaneId.name))\n );\n updatesFromForkedOutput = formatCategory(\n `updates from ${forkedLaneId.name}`,\n updatesFromForkedDesc,\n pendingUpdatesFromForkedIds\n );\n }\n\n const getLaneStr = () => {\n if (currentLaneId.isDefault()) return '';\n const prefix = `\\n\\ncurrent lane ${chalk.bold(currentLaneId.toString())}`;\n return prefix;\n };\n\n const getWorkspaceIssuesOutput = () => {\n if (!workspaceIssues.length) return '';\n const title = chalk.underline.white('workspace issues');\n const issues = workspaceIssues.join('\\n');\n return `\\n\\n${title}\\n${issues}`;\n };\n\n const troubleshootingStr = showTroubleshootingLink ? `\\n${TROUBLESHOOTING_MESSAGE}` : '';\n const wereWarningsFilteredOut = componentsWithIssuesToPrint.length < componentsWithIssues.length;\n const showWarningsStr = wereWarningsFilteredOut\n ? `\\n${chalk.yellow('to view the warnings, use --warnings flag.')}`\n : '';\n\n const statusMsg =\n importPendingWarning +\n compact([\n outdatedStr,\n pendingMergeStr,\n updatesFromMainOutput,\n updatesFromForkedOutput,\n compDuringMergeStr,\n localOnlyComponentsOutput,\n newComponentsOutput,\n modifiedComponentOutput,\n snappedComponentsOutput,\n stagedComponentsOutput,\n softTaggedComponentsOutput,\n unavailableOnMainOutput,\n autoTagPendingOutput,\n compWithIssuesOutput,\n invalidComponentOutput,\n locallySoftRemovedOutput,\n remotelySoftRemovedOutput,\n ]).join(chalk.underline('\\n \\n') + chalk.white('\\n')) +\n showWarningsStr +\n troubleshootingStr;\n\n const results = (statusMsg || chalk.yellow(statusWorkspaceIsCleanMsg)) + getWorkspaceIssuesOutput() + getLaneStr();\n\n // Determine exit code based on flags\n let exitCode = 0;\n if (strict && componentsWithIssues.length > 0) {\n // Strict mode: fail on any issues (both errors and warnings)\n exitCode = 1;\n } else if (failOnError) {\n // Fail only on tag blocker issues (errors), not warnings\n const hasTagBlockerIssues = componentsWithIssues.some((c) => c.issues.hasTagBlockerIssues());\n if (hasTagBlockerIssues) {\n exitCode = 1;\n }\n }\n\n return {\n data: results,\n code: exitCode,\n };\n}\n\nexport function formatIssues(issues: IssuesList) {\n return ` ${issues?.outputForCLI()}\\n`;\n}\n\nfunction getInvalidComponentLabel(error: Error) {\n switch (error.name) {\n case 'MainFileRemoved':\n return 'main-file was removed (use \"bit add\" with \"--main\" and \"--id\" flags to add a main file)';\n case 'ComponentNotFoundInPath':\n return 'component files were deleted (use \"bit remove [component_id]\") or moved (use \"bit move <old-dir> <new-dir>\"). to restore use \"bit checkout reset [component_id]\"';\n case 'ExtensionFileNotFound':\n // @ts-ignore error.path is set for ExtensionFileNotFound\n return `extension file is missing at ${chalk.bold(error.path)}`;\n case 'ComponentsPendingImport':\n return 'component objects are missing from the scope (use \"bit import [component_id] --objects\" to get them back)';\n case 'NoComponentDir':\n return `component files were added individually without root directory (invalid on Harmony. re-add as a directory or use \"bit move --component\" to help with the move)`;\n case 'IgnoredDirectory':\n return `component files or directory were ignored (probably by .gitignore)`;\n case 'NoCommonSnap':\n return `component history is unrelated to main (merge main with --resolve-unrelated flag)`;\n default:\n return error.name;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ import { IssuesMain } from '@teambit/issues';
12
12
  import { MiniStatusOpts } from './mini-status-cmd';
13
13
  import { LoggerMain, Logger } from '@teambit/logger';
14
14
  import { MergingMain } from '@teambit/merging';
15
+ import { StatusFormatterOptions } from './status-formatter';
15
16
  type DivergeDataPerId = {
16
17
  id: ComponentID;
17
18
  divergeData: SnapsDistance;
@@ -71,6 +72,10 @@ export declare class StatusMain {
71
72
  ignoreCircularDependencies?: boolean;
72
73
  }): Promise<StatusResult>;
73
74
  statusMini(componentPattern?: string, opts?: MiniStatusOpts): Promise<MiniStatusResults>;
75
+ formatStatusOutput(statusResult: StatusResult, formatterOptions?: StatusFormatterOptions): Promise<{
76
+ data: string;
77
+ code: number;
78
+ }>;
74
79
  private addRemovedStagedIfNeeded;
75
80
  private divergeDataErrorsToInvalidComp;
76
81
  static slots: never[];
@@ -116,6 +116,13 @@ function _merging() {
116
116
  };
117
117
  return data;
118
118
  }
119
+ function _statusFormatter() {
120
+ const data = require("./status-formatter");
121
+ _statusFormatter = function () {
122
+ return data;
123
+ };
124
+ return data;
125
+ }
119
126
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
120
127
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
121
128
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -259,6 +266,9 @@ class StatusMain {
259
266
  compWithIssues
260
267
  };
261
268
  }
269
+ async formatStatusOutput(statusResult, formatterOptions = {}) {
270
+ return (0, _statusFormatter().formatStatusOutput)(statusResult, formatterOptions);
271
+ }
262
272
  async addRemovedStagedIfNeeded(stagedComponents) {
263
273
  const removedStagedIds = await this.remove.getRemovedStaged();
264
274
  if (!removedStagedIds.length) return;
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_pMapSeries","_interopRequireDefault","_componentIssues","_workspace","_lanes","_componentId","_remove","_legacy","_legacy2","_insights","_issues","_statusCmd","_status","_miniStatusCmd","_logger","_merging","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BEFORE_STATUS","StatusMain","constructor","workspace","issues","insights","remove","lanes","logger","merging","status","ignoreCircularDependencies","OutsideWorkspaceError","setStatusLine","loadOpts","loadDocs","loadCompositions","components","allComps","invalidComponents","allInvalidComponents","listWithInvalid","consumer","laneObj","getCurrentLaneObject","componentsList","ComponentsList","newComponents","listNewComponents","modifiedComponents","modified","stagedComponents","listExportPendingComponents","addRemovedStagedIfNeeded","stagedComponentsWithVersions","pMapSeries","stagedComp","id","toComponentId","fromWorkspace","getIdIfExist","versions","getLocalTagsOrHashes","scope","objects","unavailableOnMain","getUnavailableOnMainComponents","autoTagPendingComponentsIds","listAutoTagPendingComponentIds","locallySoftRemoved","listLocallySoftRemoved","remotelySoftRemoved","listRemotelySoftRemoved","importPendingComponents","filter","c","err","ComponentsPendingImport","map","error","divergeInvalid","divergeDataErrorsToInvalidComp","push","idsDuringMergeState","listDuringMergeStateComponents","mergePendingComponents","listMergePendingComponents","mergePendingComponentsIds","ComponentIdList","fromArray","outdatedComponents","listOutdatedComponents","length","issuesFromFlag","IssuesClasses","CircularDependencies","name","issuesToIgnore","getIssuesToIgnoreGlobally","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","componentsWithIssues","component","state","isEmpty","softTaggedComponents","bySoftTagged","snappedComponents","bySnappedOnMain","pendingUpdatesFromMain","listUpdatesFromMainPending","updatesFromForked","listUpdatesFromForked","currentLaneId","getCurrentLaneId","currentLane","forkedLaneId","forkedFrom","workspaceIssues","getWorkspaceIssues","localOnly","listLocalOnly","sortObjectsWithId","objectsWithId","sort","a","b","toString","localeCompare","onDestroy","ComponentID","sortIds","autoTagPendingComponents","headVersion","latestVersion","divergeData","diverge","componentsDuringMergeState","message","statusMini","componentPattern","opts","ids","idsByPattern","listIds","compFiles","getFilesModification","newComps","forEach","comp","hasVersion","isModified","comps","showIssues","getMany","compWithIssues","removedStagedIds","getRemovedStaged","nonExistsInStaged","find","isEqualWithoutVersion","modelComps","Promise","all","legacyScope","getModelComponent","_consumer","modelComponent","setDivergeData","undefined","getDivergeData","provider","cli","loggerMain","createLogger","StatusAspect","statusMain","register","StatusCmd","MiniStatusCmd","exports","CLIAspect","WorkspaceAspect","InsightsAspect","IssuesAspect","RemoveAspect","LanesAspect","LoggerAspect","MergingAspect","MainRuntime","addRuntime"],"sources":["status.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport pMapSeries from 'p-map-series';\nimport { LaneId } from '@teambit/lane-id';\nimport { IssuesClasses, IssuesList } from '@teambit/component-issues';\nimport { WorkspaceAspect, OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { LanesAspect, LanesMain } from '@teambit/lanes';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { Component, InvalidComponent } from '@teambit/component';\nimport { RemoveAspect, RemoveMain } from '@teambit/remove';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { ComponentsPendingImport } from '@teambit/legacy.consumer';\nimport { ComponentsList } from '@teambit/legacy.component-list';\nimport { ModelComponent } from '@teambit/objects';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { SnapsDistance } from '@teambit/component.snap-distance';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\nimport { StatusCmd } from './status-cmd';\nimport { StatusAspect } from './status.aspect';\nimport { MiniStatusCmd, MiniStatusOpts } from './mini-status-cmd';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { MergingAspect, MergingMain } from '@teambit/merging';\n\ntype DivergeDataPerId = { id: ComponentID; divergeData: SnapsDistance };\nconst BEFORE_STATUS = 'fetching status';\n\nexport type StatusResult = {\n newComponents: ComponentID[];\n modifiedComponents: ComponentID[];\n stagedComponents: { id: ComponentID; versions: string[] }[];\n componentsWithIssues: { id: ComponentID; issues: IssuesList }[];\n importPendingComponents: ComponentID[];\n autoTagPendingComponents: ComponentID[];\n invalidComponents: { id: ComponentID; error: Error }[];\n locallySoftRemoved: ComponentID[];\n remotelySoftRemoved: ComponentID[];\n outdatedComponents: { id: ComponentID; headVersion: string; latestVersion?: string }[];\n mergePendingComponents: DivergeDataPerId[];\n componentsDuringMergeState: ComponentID[];\n softTaggedComponents: ComponentID[];\n snappedComponents: ComponentID[];\n pendingUpdatesFromMain: DivergeDataPerId[];\n updatesFromForked: DivergeDataPerId[];\n unavailableOnMain: ComponentID[];\n currentLaneId: LaneId;\n forkedLaneId?: LaneId;\n workspaceIssues: string[];\n localOnly: ComponentID[];\n};\n\nexport type MiniStatusResults = {\n modified: ComponentID[];\n newComps: ComponentID[];\n compWithIssues?: Component[];\n};\n\nexport class StatusMain {\n constructor(\n private workspace: Workspace,\n private issues: IssuesMain,\n private insights: InsightsMain,\n private remove: RemoveMain,\n private lanes: LanesMain,\n private logger: Logger,\n private merging: MergingMain\n ) {}\n\n async status({\n lanes,\n ignoreCircularDependencies,\n }: {\n lanes?: boolean;\n ignoreCircularDependencies?: boolean;\n }): Promise<StatusResult> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n this.logger.setStatusLine(BEFORE_STATUS);\n const loadOpts = {\n loadDocs: false,\n loadCompositions: false,\n };\n const { components: allComps, invalidComponents: allInvalidComponents } =\n await this.workspace.listWithInvalid(loadOpts);\n const consumer = this.workspace.consumer;\n const laneObj = await this.workspace.getCurrentLaneObject();\n const componentsList = new ComponentsList(this.workspace);\n const newComponents: ConsumerComponent[] = (await componentsList.listNewComponents(\n true,\n loadOpts\n )) as ConsumerComponent[];\n const modifiedComponents = await this.workspace.modified(loadOpts);\n const stagedComponents: ModelComponent[] = await componentsList.listExportPendingComponents(laneObj);\n await this.addRemovedStagedIfNeeded(stagedComponents);\n const stagedComponentsWithVersions = await pMapSeries(stagedComponents, async (stagedComp) => {\n const id = stagedComp.toComponentId();\n const fromWorkspace = this.workspace.getIdIfExist(id);\n const versions = await stagedComp.getLocalTagsOrHashes(consumer.scope.objects, fromWorkspace);\n return {\n id,\n versions,\n };\n });\n\n const unavailableOnMain = await this.workspace.getUnavailableOnMainComponents();\n const autoTagPendingComponentsIds = await this.workspace.listAutoTagPendingComponentIds();\n const locallySoftRemoved = await componentsList.listLocallySoftRemoved();\n const remotelySoftRemoved = await componentsList.listRemotelySoftRemoved();\n const importPendingComponents = allInvalidComponents\n .filter((c) => c.err instanceof ComponentsPendingImport)\n .map((i) => i.id);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const invalidComponents = allInvalidComponents.filter((c) => !(c.error instanceof ComponentsPendingImport));\n const divergeInvalid = await this.divergeDataErrorsToInvalidComp(allComps);\n invalidComponents.push(...divergeInvalid);\n const idsDuringMergeState = componentsList.listDuringMergeStateComponents();\n const mergePendingComponents = await this.merging.listMergePendingComponents(componentsList);\n const mergePendingComponentsIds = ComponentIdList.fromArray(mergePendingComponents.map((c) => c.id));\n const outdatedComponents = await componentsList.listOutdatedComponents(mergePendingComponentsIds, loadOpts);\n if (allComps.length) {\n const issuesFromFlag = ignoreCircularDependencies ? [IssuesClasses.CircularDependencies.name] : [];\n const issuesToIgnore = [...this.issues.getIssuesToIgnoreGlobally(), ...issuesFromFlag];\n await this.issues.triggerAddComponentIssues(allComps, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(allComps);\n }\n const componentsWithIssues = allComps.filter((component) => !component.state.issues.isEmpty());\n const softTaggedComponents = this.workspace.filter.bySoftTagged();\n const snappedComponents = await this.workspace.filter.bySnappedOnMain();\n const pendingUpdatesFromMain = lanes ? await this.lanes.listUpdatesFromMainPending(componentsList) : [];\n const updatesFromForked = lanes ? await this.lanes.listUpdatesFromForked(componentsList) : [];\n const currentLaneId = consumer.getCurrentLaneId();\n const currentLane = await consumer.getCurrentLaneObject();\n const forkedLaneId = currentLane?.forkedFrom;\n const workspaceIssues = this.workspace.getWorkspaceIssues();\n const localOnly = this.workspace.listLocalOnly();\n\n const sortObjectsWithId = <T>(objectsWithId: Array<T & { id: ComponentID }>): Array<T & { id: ComponentID }> => {\n return objectsWithId.sort((a, b) => a.id.toString().localeCompare(b.id.toString()));\n };\n\n await consumer.onDestroy('status');\n return {\n newComponents: ComponentID.sortIds(newComponents.map((c) => c.id)),\n modifiedComponents: ComponentID.sortIds(modifiedComponents.map((c) => c.id)),\n stagedComponents: sortObjectsWithId(stagedComponentsWithVersions),\n componentsWithIssues: sortObjectsWithId(componentsWithIssues.map((c) => ({ id: c.id, issues: c.state.issues }))),\n importPendingComponents, // no need to sort, we use only its length\n autoTagPendingComponents: ComponentID.sortIds(autoTagPendingComponentsIds),\n invalidComponents: sortObjectsWithId(invalidComponents.map((c) => ({ id: c.id, error: c.err }))),\n locallySoftRemoved: ComponentID.sortIds(locallySoftRemoved),\n remotelySoftRemoved: ComponentID.sortIds(remotelySoftRemoved.map((c) => c.id)),\n outdatedComponents: sortObjectsWithId(\n outdatedComponents.map((c) => ({\n id: c.id,\n headVersion: c.headVersion,\n latestVersion: c.latestVersion,\n }))\n ),\n mergePendingComponents: sortObjectsWithId(\n mergePendingComponents.map((c) => ({ id: c.id, divergeData: c.diverge }))\n ),\n componentsDuringMergeState: ComponentID.sortIds(idsDuringMergeState),\n softTaggedComponents: ComponentID.sortIds(softTaggedComponents),\n snappedComponents: ComponentID.sortIds(snappedComponents),\n pendingUpdatesFromMain: sortObjectsWithId(pendingUpdatesFromMain),\n updatesFromForked: sortObjectsWithId(updatesFromForked),\n unavailableOnMain,\n currentLaneId,\n forkedLaneId,\n workspaceIssues: workspaceIssues.map((err) => err.message),\n localOnly,\n };\n }\n\n async statusMini(componentPattern?: string, opts: MiniStatusOpts = {}): Promise<MiniStatusResults> {\n const ids = componentPattern ? await this.workspace.idsByPattern(componentPattern) : this.workspace.listIds();\n const compFiles = await pMapSeries(ids, (id) => this.workspace.getFilesModification(id));\n const modified: ComponentID[] = [];\n const newComps: ComponentID[] = [];\n compFiles.forEach((comp) => {\n if (!comp.id.hasVersion()) newComps.push(comp.id);\n if (comp.isModified()) modified.push(comp.id);\n });\n const loadOpts = {\n loadDocs: false,\n loadCompositions: false,\n };\n const comps = opts.showIssues ? await this.workspace.getMany(ids, loadOpts) : [];\n if (opts.showIssues) {\n const issuesFromFlag = opts.ignoreCircularDependencies ? [IssuesClasses.CircularDependencies.name] : [];\n const issuesToIgnore = [...this.issues.getIssuesToIgnoreGlobally(), ...issuesFromFlag];\n await this.issues.triggerAddComponentIssues(comps, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(comps);\n }\n const compWithIssues = comps.filter((c) => !c.state.issues.isEmpty());\n\n return { modified, newComps, compWithIssues };\n }\n\n private async addRemovedStagedIfNeeded(stagedComponents: ModelComponent[]) {\n const removedStagedIds = await this.remove.getRemovedStaged();\n if (!removedStagedIds.length) return;\n const nonExistsInStaged = removedStagedIds.filter(\n (id) => !stagedComponents.find((c) => c.toComponentId().isEqualWithoutVersion(id))\n );\n if (!nonExistsInStaged.length) return;\n const modelComps = await Promise.all(\n nonExistsInStaged.map((id) => this.workspace.scope.legacyScope.getModelComponent(id))\n );\n stagedComponents.push(...modelComps);\n }\n\n private async divergeDataErrorsToInvalidComp(components: Component[]): Promise<InvalidComponent[]> {\n const invalidComponents: InvalidComponent[] = [];\n await Promise.all(\n components.map(async (component) => {\n const comp = component.state._consumer as ConsumerComponent;\n if (!comp.modelComponent) return;\n await comp.modelComponent.setDivergeData(this.workspace.scope.legacyScope.objects, false, undefined, comp.id);\n const divergeData = comp.modelComponent.getDivergeData();\n if (divergeData.err) {\n invalidComponents.push({ id: component.id, err: divergeData.err });\n }\n })\n );\n return invalidComponents;\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n InsightsAspect,\n IssuesAspect,\n RemoveAspect,\n LanesAspect,\n LoggerAspect,\n MergingAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, workspace, insights, issues, remove, lanes, loggerMain, merging]: [\n CLIMain,\n Workspace,\n InsightsMain,\n IssuesMain,\n RemoveMain,\n LanesMain,\n LoggerMain,\n MergingMain,\n ]) {\n const logger = loggerMain.createLogger(StatusAspect.id);\n const statusMain = new StatusMain(workspace, issues, insights, remove, lanes, logger, merging);\n cli.register(new StatusCmd(statusMain), new MiniStatusCmd(statusMain));\n return statusMain;\n }\n}\n\nStatusAspect.addRuntime(StatusMain);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_pMapSeries","_interopRequireDefault","_componentIssues","_workspace","_lanes","_componentId","_remove","_legacy","_legacy2","_insights","_issues","_statusCmd","_status","_miniStatusCmd","_logger","_merging","_statusFormatter","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BEFORE_STATUS","StatusMain","constructor","workspace","issues","insights","remove","lanes","logger","merging","status","ignoreCircularDependencies","OutsideWorkspaceError","setStatusLine","loadOpts","loadDocs","loadCompositions","components","allComps","invalidComponents","allInvalidComponents","listWithInvalid","consumer","laneObj","getCurrentLaneObject","componentsList","ComponentsList","newComponents","listNewComponents","modifiedComponents","modified","stagedComponents","listExportPendingComponents","addRemovedStagedIfNeeded","stagedComponentsWithVersions","pMapSeries","stagedComp","id","toComponentId","fromWorkspace","getIdIfExist","versions","getLocalTagsOrHashes","scope","objects","unavailableOnMain","getUnavailableOnMainComponents","autoTagPendingComponentsIds","listAutoTagPendingComponentIds","locallySoftRemoved","listLocallySoftRemoved","remotelySoftRemoved","listRemotelySoftRemoved","importPendingComponents","filter","c","err","ComponentsPendingImport","map","error","divergeInvalid","divergeDataErrorsToInvalidComp","push","idsDuringMergeState","listDuringMergeStateComponents","mergePendingComponents","listMergePendingComponents","mergePendingComponentsIds","ComponentIdList","fromArray","outdatedComponents","listOutdatedComponents","length","issuesFromFlag","IssuesClasses","CircularDependencies","name","issuesToIgnore","getIssuesToIgnoreGlobally","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","componentsWithIssues","component","state","isEmpty","softTaggedComponents","bySoftTagged","snappedComponents","bySnappedOnMain","pendingUpdatesFromMain","listUpdatesFromMainPending","updatesFromForked","listUpdatesFromForked","currentLaneId","getCurrentLaneId","currentLane","forkedLaneId","forkedFrom","workspaceIssues","getWorkspaceIssues","localOnly","listLocalOnly","sortObjectsWithId","objectsWithId","sort","a","b","toString","localeCompare","onDestroy","ComponentID","sortIds","autoTagPendingComponents","headVersion","latestVersion","divergeData","diverge","componentsDuringMergeState","message","statusMini","componentPattern","opts","ids","idsByPattern","listIds","compFiles","getFilesModification","newComps","forEach","comp","hasVersion","isModified","comps","showIssues","getMany","compWithIssues","formatStatusOutput","statusResult","formatterOptions","removedStagedIds","getRemovedStaged","nonExistsInStaged","find","isEqualWithoutVersion","modelComps","Promise","all","legacyScope","getModelComponent","_consumer","modelComponent","setDivergeData","undefined","getDivergeData","provider","cli","loggerMain","createLogger","StatusAspect","statusMain","register","StatusCmd","MiniStatusCmd","exports","CLIAspect","WorkspaceAspect","InsightsAspect","IssuesAspect","RemoveAspect","LanesAspect","LoggerAspect","MergingAspect","MainRuntime","addRuntime"],"sources":["status.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport pMapSeries from 'p-map-series';\nimport { LaneId } from '@teambit/lane-id';\nimport { IssuesClasses, IssuesList } from '@teambit/component-issues';\nimport { WorkspaceAspect, OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { LanesAspect, LanesMain } from '@teambit/lanes';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { Component, InvalidComponent } from '@teambit/component';\nimport { RemoveAspect, RemoveMain } from '@teambit/remove';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { ComponentsPendingImport } from '@teambit/legacy.consumer';\nimport { ComponentsList } from '@teambit/legacy.component-list';\nimport { ModelComponent } from '@teambit/objects';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { SnapsDistance } from '@teambit/component.snap-distance';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\nimport { StatusCmd } from './status-cmd';\nimport { StatusAspect } from './status.aspect';\nimport { MiniStatusCmd, MiniStatusOpts } from './mini-status-cmd';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { MergingAspect, MergingMain } from '@teambit/merging';\nimport { formatStatusOutput, StatusFormatterOptions } from './status-formatter';\n\ntype DivergeDataPerId = { id: ComponentID; divergeData: SnapsDistance };\nconst BEFORE_STATUS = 'fetching status';\n\nexport type StatusResult = {\n newComponents: ComponentID[];\n modifiedComponents: ComponentID[];\n stagedComponents: { id: ComponentID; versions: string[] }[];\n componentsWithIssues: { id: ComponentID; issues: IssuesList }[];\n importPendingComponents: ComponentID[];\n autoTagPendingComponents: ComponentID[];\n invalidComponents: { id: ComponentID; error: Error }[];\n locallySoftRemoved: ComponentID[];\n remotelySoftRemoved: ComponentID[];\n outdatedComponents: { id: ComponentID; headVersion: string; latestVersion?: string }[];\n mergePendingComponents: DivergeDataPerId[];\n componentsDuringMergeState: ComponentID[];\n softTaggedComponents: ComponentID[];\n snappedComponents: ComponentID[];\n pendingUpdatesFromMain: DivergeDataPerId[];\n updatesFromForked: DivergeDataPerId[];\n unavailableOnMain: ComponentID[];\n currentLaneId: LaneId;\n forkedLaneId?: LaneId;\n workspaceIssues: string[];\n localOnly: ComponentID[];\n};\n\nexport type MiniStatusResults = {\n modified: ComponentID[];\n newComps: ComponentID[];\n compWithIssues?: Component[];\n};\n\nexport class StatusMain {\n constructor(\n private workspace: Workspace,\n private issues: IssuesMain,\n private insights: InsightsMain,\n private remove: RemoveMain,\n private lanes: LanesMain,\n private logger: Logger,\n private merging: MergingMain\n ) {}\n\n async status({\n lanes,\n ignoreCircularDependencies,\n }: {\n lanes?: boolean;\n ignoreCircularDependencies?: boolean;\n }): Promise<StatusResult> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n this.logger.setStatusLine(BEFORE_STATUS);\n const loadOpts = {\n loadDocs: false,\n loadCompositions: false,\n };\n const { components: allComps, invalidComponents: allInvalidComponents } =\n await this.workspace.listWithInvalid(loadOpts);\n const consumer = this.workspace.consumer;\n const laneObj = await this.workspace.getCurrentLaneObject();\n const componentsList = new ComponentsList(this.workspace);\n const newComponents: ConsumerComponent[] = (await componentsList.listNewComponents(\n true,\n loadOpts\n )) as ConsumerComponent[];\n const modifiedComponents = await this.workspace.modified(loadOpts);\n const stagedComponents: ModelComponent[] = await componentsList.listExportPendingComponents(laneObj);\n await this.addRemovedStagedIfNeeded(stagedComponents);\n const stagedComponentsWithVersions = await pMapSeries(stagedComponents, async (stagedComp) => {\n const id = stagedComp.toComponentId();\n const fromWorkspace = this.workspace.getIdIfExist(id);\n const versions = await stagedComp.getLocalTagsOrHashes(consumer.scope.objects, fromWorkspace);\n return {\n id,\n versions,\n };\n });\n\n const unavailableOnMain = await this.workspace.getUnavailableOnMainComponents();\n const autoTagPendingComponentsIds = await this.workspace.listAutoTagPendingComponentIds();\n const locallySoftRemoved = await componentsList.listLocallySoftRemoved();\n const remotelySoftRemoved = await componentsList.listRemotelySoftRemoved();\n const importPendingComponents = allInvalidComponents\n .filter((c) => c.err instanceof ComponentsPendingImport)\n .map((i) => i.id);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const invalidComponents = allInvalidComponents.filter((c) => !(c.error instanceof ComponentsPendingImport));\n const divergeInvalid = await this.divergeDataErrorsToInvalidComp(allComps);\n invalidComponents.push(...divergeInvalid);\n const idsDuringMergeState = componentsList.listDuringMergeStateComponents();\n const mergePendingComponents = await this.merging.listMergePendingComponents(componentsList);\n const mergePendingComponentsIds = ComponentIdList.fromArray(mergePendingComponents.map((c) => c.id));\n const outdatedComponents = await componentsList.listOutdatedComponents(mergePendingComponentsIds, loadOpts);\n if (allComps.length) {\n const issuesFromFlag = ignoreCircularDependencies ? [IssuesClasses.CircularDependencies.name] : [];\n const issuesToIgnore = [...this.issues.getIssuesToIgnoreGlobally(), ...issuesFromFlag];\n await this.issues.triggerAddComponentIssues(allComps, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(allComps);\n }\n const componentsWithIssues = allComps.filter((component) => !component.state.issues.isEmpty());\n const softTaggedComponents = this.workspace.filter.bySoftTagged();\n const snappedComponents = await this.workspace.filter.bySnappedOnMain();\n const pendingUpdatesFromMain = lanes ? await this.lanes.listUpdatesFromMainPending(componentsList) : [];\n const updatesFromForked = lanes ? await this.lanes.listUpdatesFromForked(componentsList) : [];\n const currentLaneId = consumer.getCurrentLaneId();\n const currentLane = await consumer.getCurrentLaneObject();\n const forkedLaneId = currentLane?.forkedFrom;\n const workspaceIssues = this.workspace.getWorkspaceIssues();\n const localOnly = this.workspace.listLocalOnly();\n\n const sortObjectsWithId = <T>(objectsWithId: Array<T & { id: ComponentID }>): Array<T & { id: ComponentID }> => {\n return objectsWithId.sort((a, b) => a.id.toString().localeCompare(b.id.toString()));\n };\n\n await consumer.onDestroy('status');\n return {\n newComponents: ComponentID.sortIds(newComponents.map((c) => c.id)),\n modifiedComponents: ComponentID.sortIds(modifiedComponents.map((c) => c.id)),\n stagedComponents: sortObjectsWithId(stagedComponentsWithVersions),\n componentsWithIssues: sortObjectsWithId(componentsWithIssues.map((c) => ({ id: c.id, issues: c.state.issues }))),\n importPendingComponents, // no need to sort, we use only its length\n autoTagPendingComponents: ComponentID.sortIds(autoTagPendingComponentsIds),\n invalidComponents: sortObjectsWithId(invalidComponents.map((c) => ({ id: c.id, error: c.err }))),\n locallySoftRemoved: ComponentID.sortIds(locallySoftRemoved),\n remotelySoftRemoved: ComponentID.sortIds(remotelySoftRemoved.map((c) => c.id)),\n outdatedComponents: sortObjectsWithId(\n outdatedComponents.map((c) => ({\n id: c.id,\n headVersion: c.headVersion,\n latestVersion: c.latestVersion,\n }))\n ),\n mergePendingComponents: sortObjectsWithId(\n mergePendingComponents.map((c) => ({ id: c.id, divergeData: c.diverge }))\n ),\n componentsDuringMergeState: ComponentID.sortIds(idsDuringMergeState),\n softTaggedComponents: ComponentID.sortIds(softTaggedComponents),\n snappedComponents: ComponentID.sortIds(snappedComponents),\n pendingUpdatesFromMain: sortObjectsWithId(pendingUpdatesFromMain),\n updatesFromForked: sortObjectsWithId(updatesFromForked),\n unavailableOnMain,\n currentLaneId,\n forkedLaneId,\n workspaceIssues: workspaceIssues.map((err) => err.message),\n localOnly,\n };\n }\n\n async statusMini(componentPattern?: string, opts: MiniStatusOpts = {}): Promise<MiniStatusResults> {\n const ids = componentPattern ? await this.workspace.idsByPattern(componentPattern) : this.workspace.listIds();\n const compFiles = await pMapSeries(ids, (id) => this.workspace.getFilesModification(id));\n const modified: ComponentID[] = [];\n const newComps: ComponentID[] = [];\n compFiles.forEach((comp) => {\n if (!comp.id.hasVersion()) newComps.push(comp.id);\n if (comp.isModified()) modified.push(comp.id);\n });\n const loadOpts = {\n loadDocs: false,\n loadCompositions: false,\n };\n const comps = opts.showIssues ? await this.workspace.getMany(ids, loadOpts) : [];\n if (opts.showIssues) {\n const issuesFromFlag = opts.ignoreCircularDependencies ? [IssuesClasses.CircularDependencies.name] : [];\n const issuesToIgnore = [...this.issues.getIssuesToIgnoreGlobally(), ...issuesFromFlag];\n await this.issues.triggerAddComponentIssues(comps, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(comps);\n }\n const compWithIssues = comps.filter((c) => !c.state.issues.isEmpty());\n\n return { modified, newComps, compWithIssues };\n }\n\n async formatStatusOutput(\n statusResult: StatusResult,\n formatterOptions: StatusFormatterOptions = {}\n ): Promise<{ data: string; code: number }> {\n return formatStatusOutput(statusResult, formatterOptions);\n }\n\n private async addRemovedStagedIfNeeded(stagedComponents: ModelComponent[]) {\n const removedStagedIds = await this.remove.getRemovedStaged();\n if (!removedStagedIds.length) return;\n const nonExistsInStaged = removedStagedIds.filter(\n (id) => !stagedComponents.find((c) => c.toComponentId().isEqualWithoutVersion(id))\n );\n if (!nonExistsInStaged.length) return;\n const modelComps = await Promise.all(\n nonExistsInStaged.map((id) => this.workspace.scope.legacyScope.getModelComponent(id))\n );\n stagedComponents.push(...modelComps);\n }\n\n private async divergeDataErrorsToInvalidComp(components: Component[]): Promise<InvalidComponent[]> {\n const invalidComponents: InvalidComponent[] = [];\n await Promise.all(\n components.map(async (component) => {\n const comp = component.state._consumer as ConsumerComponent;\n if (!comp.modelComponent) return;\n await comp.modelComponent.setDivergeData(this.workspace.scope.legacyScope.objects, false, undefined, comp.id);\n const divergeData = comp.modelComponent.getDivergeData();\n if (divergeData.err) {\n invalidComponents.push({ id: component.id, err: divergeData.err });\n }\n })\n );\n return invalidComponents;\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n InsightsAspect,\n IssuesAspect,\n RemoveAspect,\n LanesAspect,\n LoggerAspect,\n MergingAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, workspace, insights, issues, remove, lanes, loggerMain, merging]: [\n CLIMain,\n Workspace,\n InsightsMain,\n IssuesMain,\n RemoveMain,\n LanesMain,\n LoggerMain,\n MergingMain,\n ]) {\n const logger = loggerMain.createLogger(StatusAspect.id);\n const statusMain = new StatusMain(workspace, issues, insights, remove, lanes, logger, merging);\n cli.register(new StatusCmd(statusMain), new MiniStatusCmd(statusMain));\n return statusMain;\n }\n}\n\nStatusAspect.addRuntime(StatusMain);\n"],"mappings":";;;;;;AAAA,SAAAA,KAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,iBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,gBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,WAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,UAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,OAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,MAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,aAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,YAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAQ,QAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,OAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,QAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,OAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,SAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,QAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAW,UAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,SAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAY,QAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,OAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,WAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,UAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,QAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,OAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,eAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,cAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,QAAA;EAAA,MAAAhB,IAAA,GAAAC,OAAA;EAAAe,OAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,SAAA;EAAA,MAAAjB,IAAA,GAAAC,OAAA;EAAAgB,QAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,iBAAA;EAAA,MAAAlB,IAAA,GAAAC,OAAA;EAAAiB,gBAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgF,SAAAG,uBAAAgB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAGhF,MAAMgB,aAAa,GAAG,iBAAiB;AAgChC,MAAMC,UAAU,CAAC;EACtBC,WAAWA,CACDC,SAAoB,EACpBC,MAAkB,EAClBC,QAAsB,EACtBC,MAAkB,EAClBC,KAAgB,EAChBC,MAAc,EACdC,OAAoB,EAC5B;IAAA,KAPQN,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,QAAsB,GAAtBA,QAAsB;IAAA,KACtBC,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,KAAgB,GAAhBA,KAAgB;IAAA,KAChBC,MAAc,GAAdA,MAAc;IAAA,KACdC,OAAoB,GAApBA,OAAoB;EAC3B;EAEH,MAAMC,MAAMA,CAAC;IACXH,KAAK;IACLI;EAIF,CAAC,EAAyB;IACxB,IAAI,CAAC,IAAI,CAACR,SAAS,EAAE,MAAM,KAAIS,kCAAqB,EAAC,CAAC;IACtD,IAAI,CAACJ,MAAM,CAACK,aAAa,CAACb,aAAa,CAAC;IACxC,MAAMc,QAAQ,GAAG;MACfC,QAAQ,EAAE,KAAK;MACfC,gBAAgB,EAAE;IACpB,CAAC;IACD,MAAM;MAAEC,UAAU,EAAEC,QAAQ;MAAEC,iBAAiB,EAAEC;IAAqB,CAAC,GACrE,MAAM,IAAI,CAACjB,SAAS,CAACkB,eAAe,CAACP,QAAQ,CAAC;IAChD,MAAMQ,QAAQ,GAAG,IAAI,CAACnB,SAAS,CAACmB,QAAQ;IACxC,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACpB,SAAS,CAACqB,oBAAoB,CAAC,CAAC;IAC3D,MAAMC,cAAc,GAAG,KAAIC,yBAAc,EAAC,IAAI,CAACvB,SAAS,CAAC;IACzD,MAAMwB,aAAkC,GAAI,MAAMF,cAAc,CAACG,iBAAiB,CAChF,IAAI,EACJd,QACF,CAAyB;IACzB,MAAMe,kBAAkB,GAAG,MAAM,IAAI,CAAC1B,SAAS,CAAC2B,QAAQ,CAAChB,QAAQ,CAAC;IAClE,MAAMiB,gBAAkC,GAAG,MAAMN,cAAc,CAACO,2BAA2B,CAACT,OAAO,CAAC;IACpG,MAAM,IAAI,CAACU,wBAAwB,CAACF,gBAAgB,CAAC;IACrD,MAAMG,4BAA4B,GAAG,MAAM,IAAAC,qBAAU,EAACJ,gBAAgB,EAAE,MAAOK,UAAU,IAAK;MAC5F,MAAMC,EAAE,GAAGD,UAAU,CAACE,aAAa,CAAC,CAAC;MACrC,MAAMC,aAAa,GAAG,IAAI,CAACpC,SAAS,CAACqC,YAAY,CAACH,EAAE,CAAC;MACrD,MAAMI,QAAQ,GAAG,MAAML,UAAU,CAACM,oBAAoB,CAACpB,QAAQ,CAACqB,KAAK,CAACC,OAAO,EAAEL,aAAa,CAAC;MAC7F,OAAO;QACLF,EAAE;QACFI;MACF,CAAC;IACH,CAAC,CAAC;IAEF,MAAMI,iBAAiB,GAAG,MAAM,IAAI,CAAC1C,SAAS,CAAC2C,8BAA8B,CAAC,CAAC;IAC/E,MAAMC,2BAA2B,GAAG,MAAM,IAAI,CAAC5C,SAAS,CAAC6C,8BAA8B,CAAC,CAAC;IACzF,MAAMC,kBAAkB,GAAG,MAAMxB,cAAc,CAACyB,sBAAsB,CAAC,CAAC;IACxE,MAAMC,mBAAmB,GAAG,MAAM1B,cAAc,CAAC2B,uBAAuB,CAAC,CAAC;IAC1E,MAAMC,uBAAuB,GAAGjC,oBAAoB,CACjDkC,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,YAAYC,iCAAuB,CAAC,CACvDC,GAAG,CAAElE,CAAC,IAAKA,CAAC,CAAC6C,EAAE,CAAC;IACnB;IACA,MAAMlB,iBAAiB,GAAGC,oBAAoB,CAACkC,MAAM,CAAEC,CAAC,IAAK,EAAEA,CAAC,CAACI,KAAK,YAAYF,iCAAuB,CAAC,CAAC;IAC3G,MAAMG,cAAc,GAAG,MAAM,IAAI,CAACC,8BAA8B,CAAC3C,QAAQ,CAAC;IAC1EC,iBAAiB,CAAC2C,IAAI,CAAC,GAAGF,cAAc,CAAC;IACzC,MAAMG,mBAAmB,GAAGtC,cAAc,CAACuC,8BAA8B,CAAC,CAAC;IAC3E,MAAMC,sBAAsB,GAAG,MAAM,IAAI,CAACxD,OAAO,CAACyD,0BAA0B,CAACzC,cAAc,CAAC;IAC5F,MAAM0C,yBAAyB,GAAGC,8BAAe,CAACC,SAAS,CAACJ,sBAAsB,CAACP,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAAClB,EAAE,CAAC,CAAC;IACpG,MAAMiC,kBAAkB,GAAG,MAAM7C,cAAc,CAAC8C,sBAAsB,CAACJ,yBAAyB,EAAErD,QAAQ,CAAC;IAC3G,IAAII,QAAQ,CAACsD,MAAM,EAAE;MACnB,MAAMC,cAAc,GAAG9D,0BAA0B,GAAG,CAAC+D,gCAAa,CAACC,oBAAoB,CAACC,IAAI,CAAC,GAAG,EAAE;MAClG,MAAMC,cAAc,GAAG,CAAC,GAAG,IAAI,CAACzE,MAAM,CAAC0E,yBAAyB,CAAC,CAAC,EAAE,GAAGL,cAAc,CAAC;MACtF,MAAM,IAAI,CAACrE,MAAM,CAAC2E,yBAAyB,CAAC7D,QAAQ,EAAE2D,cAAc,CAAC;MACrE,IAAI,CAACzE,MAAM,CAAC4E,iCAAiC,CAAC9D,QAAQ,CAAC;IACzD;IACA,MAAM+D,oBAAoB,GAAG/D,QAAQ,CAACoC,MAAM,CAAE4B,SAAS,IAAK,CAACA,SAAS,CAACC,KAAK,CAAC/E,MAAM,CAACgF,OAAO,CAAC,CAAC,CAAC;IAC9F,MAAMC,oBAAoB,GAAG,IAAI,CAAClF,SAAS,CAACmD,MAAM,CAACgC,YAAY,CAAC,CAAC;IACjE,MAAMC,iBAAiB,GAAG,MAAM,IAAI,CAACpF,SAAS,CAACmD,MAAM,CAACkC,eAAe,CAAC,CAAC;IACvE,MAAMC,sBAAsB,GAAGlF,KAAK,GAAG,MAAM,IAAI,CAACA,KAAK,CAACmF,0BAA0B,CAACjE,cAAc,CAAC,GAAG,EAAE;IACvG,MAAMkE,iBAAiB,GAAGpF,KAAK,GAAG,MAAM,IAAI,CAACA,KAAK,CAACqF,qBAAqB,CAACnE,cAAc,CAAC,GAAG,EAAE;IAC7F,MAAMoE,aAAa,GAAGvE,QAAQ,CAACwE,gBAAgB,CAAC,CAAC;IACjD,MAAMC,WAAW,GAAG,MAAMzE,QAAQ,CAACE,oBAAoB,CAAC,CAAC;IACzD,MAAMwE,YAAY,GAAGD,WAAW,EAAEE,UAAU;IAC5C,MAAMC,eAAe,GAAG,IAAI,CAAC/F,SAAS,CAACgG,kBAAkB,CAAC,CAAC;IAC3D,MAAMC,SAAS,GAAG,IAAI,CAACjG,SAAS,CAACkG,aAAa,CAAC,CAAC;IAEhD,MAAMC,iBAAiB,GAAOC,aAA6C,IAAqC;MAC9G,OAAOA,aAAa,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACpE,EAAE,CAACsE,QAAQ,CAAC,CAAC,CAACC,aAAa,CAACF,CAAC,CAACrE,EAAE,CAACsE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,MAAMrF,QAAQ,CAACuF,SAAS,CAAC,QAAQ,CAAC;IAClC,OAAO;MACLlF,aAAa,EAAEmF,0BAAW,CAACC,OAAO,CAACpF,aAAa,CAAC+B,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAAClB,EAAE,CAAC,CAAC;MAClER,kBAAkB,EAAEiF,0BAAW,CAACC,OAAO,CAAClF,kBAAkB,CAAC6B,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAAClB,EAAE,CAAC,CAAC;MAC5EN,gBAAgB,EAAEuE,iBAAiB,CAACpE,4BAA4B,CAAC;MACjE+C,oBAAoB,EAAEqB,iBAAiB,CAACrB,oBAAoB,CAACvB,GAAG,CAAEH,CAAC,KAAM;QAAElB,EAAE,EAAEkB,CAAC,CAAClB,EAAE;QAAEjC,MAAM,EAAEmD,CAAC,CAAC4B,KAAK,CAAC/E;MAAO,CAAC,CAAC,CAAC,CAAC;MAChHiD,uBAAuB;MAAE;MACzB2D,wBAAwB,EAAEF,0BAAW,CAACC,OAAO,CAAChE,2BAA2B,CAAC;MAC1E5B,iBAAiB,EAAEmF,iBAAiB,CAACnF,iBAAiB,CAACuC,GAAG,CAAEH,CAAC,KAAM;QAAElB,EAAE,EAAEkB,CAAC,CAAClB,EAAE;QAAEsB,KAAK,EAAEJ,CAAC,CAACC;MAAI,CAAC,CAAC,CAAC,CAAC;MAChGP,kBAAkB,EAAE6D,0BAAW,CAACC,OAAO,CAAC9D,kBAAkB,CAAC;MAC3DE,mBAAmB,EAAE2D,0BAAW,CAACC,OAAO,CAAC5D,mBAAmB,CAACO,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAAClB,EAAE,CAAC,CAAC;MAC9EiC,kBAAkB,EAAEgC,iBAAiB,CACnChC,kBAAkB,CAACZ,GAAG,CAAEH,CAAC,KAAM;QAC7BlB,EAAE,EAAEkB,CAAC,CAAClB,EAAE;QACR4E,WAAW,EAAE1D,CAAC,CAAC0D,WAAW;QAC1BC,aAAa,EAAE3D,CAAC,CAAC2D;MACnB,CAAC,CAAC,CACJ,CAAC;MACDjD,sBAAsB,EAAEqC,iBAAiB,CACvCrC,sBAAsB,CAACP,GAAG,CAAEH,CAAC,KAAM;QAAElB,EAAE,EAAEkB,CAAC,CAAClB,EAAE;QAAE8E,WAAW,EAAE5D,CAAC,CAAC6D;MAAQ,CAAC,CAAC,CAC1E,CAAC;MACDC,0BAA0B,EAAEP,0BAAW,CAACC,OAAO,CAAChD,mBAAmB,CAAC;MACpEsB,oBAAoB,EAAEyB,0BAAW,CAACC,OAAO,CAAC1B,oBAAoB,CAAC;MAC/DE,iBAAiB,EAAEuB,0BAAW,CAACC,OAAO,CAACxB,iBAAiB,CAAC;MACzDE,sBAAsB,EAAEa,iBAAiB,CAACb,sBAAsB,CAAC;MACjEE,iBAAiB,EAAEW,iBAAiB,CAACX,iBAAiB,CAAC;MACvD9C,iBAAiB;MACjBgD,aAAa;MACbG,YAAY;MACZE,eAAe,EAAEA,eAAe,CAACxC,GAAG,CAAEF,GAAG,IAAKA,GAAG,CAAC8D,OAAO,CAAC;MAC1DlB;IACF,CAAC;EACH;EAEA,MAAMmB,UAAUA,CAACC,gBAAyB,EAAEC,IAAoB,GAAG,CAAC,CAAC,EAA8B;IACjG,MAAMC,GAAG,GAAGF,gBAAgB,GAAG,MAAM,IAAI,CAACrH,SAAS,CAACwH,YAAY,CAACH,gBAAgB,CAAC,GAAG,IAAI,CAACrH,SAAS,CAACyH,OAAO,CAAC,CAAC;IAC7G,MAAMC,SAAS,GAAG,MAAM,IAAA1F,qBAAU,EAACuF,GAAG,EAAGrF,EAAE,IAAK,IAAI,CAAClC,SAAS,CAAC2H,oBAAoB,CAACzF,EAAE,CAAC,CAAC;IACxF,MAAMP,QAAuB,GAAG,EAAE;IAClC,MAAMiG,QAAuB,GAAG,EAAE;IAClCF,SAAS,CAACG,OAAO,CAAEC,IAAI,IAAK;MAC1B,IAAI,CAACA,IAAI,CAAC5F,EAAE,CAAC6F,UAAU,CAAC,CAAC,EAAEH,QAAQ,CAACjE,IAAI,CAACmE,IAAI,CAAC5F,EAAE,CAAC;MACjD,IAAI4F,IAAI,CAACE,UAAU,CAAC,CAAC,EAAErG,QAAQ,CAACgC,IAAI,CAACmE,IAAI,CAAC5F,EAAE,CAAC;IAC/C,CAAC,CAAC;IACF,MAAMvB,QAAQ,GAAG;MACfC,QAAQ,EAAE,KAAK;MACfC,gBAAgB,EAAE;IACpB,CAAC;IACD,MAAMoH,KAAK,GAAGX,IAAI,CAACY,UAAU,GAAG,MAAM,IAAI,CAAClI,SAAS,CAACmI,OAAO,CAACZ,GAAG,EAAE5G,QAAQ,CAAC,GAAG,EAAE;IAChF,IAAI2G,IAAI,CAACY,UAAU,EAAE;MACnB,MAAM5D,cAAc,GAAGgD,IAAI,CAAC9G,0BAA0B,GAAG,CAAC+D,gCAAa,CAACC,oBAAoB,CAACC,IAAI,CAAC,GAAG,EAAE;MACvG,MAAMC,cAAc,GAAG,CAAC,GAAG,IAAI,CAACzE,MAAM,CAAC0E,yBAAyB,CAAC,CAAC,EAAE,GAAGL,cAAc,CAAC;MACtF,MAAM,IAAI,CAACrE,MAAM,CAAC2E,yBAAyB,CAACqD,KAAK,EAAEvD,cAAc,CAAC;MAClE,IAAI,CAACzE,MAAM,CAAC4E,iCAAiC,CAACoD,KAAK,CAAC;IACtD;IACA,MAAMG,cAAc,GAAGH,KAAK,CAAC9E,MAAM,CAAEC,CAAC,IAAK,CAACA,CAAC,CAAC4B,KAAK,CAAC/E,MAAM,CAACgF,OAAO,CAAC,CAAC,CAAC;IAErE,OAAO;MAAEtD,QAAQ;MAAEiG,QAAQ;MAAEQ;IAAe,CAAC;EAC/C;EAEA,MAAMC,kBAAkBA,CACtBC,YAA0B,EAC1BC,gBAAwC,GAAG,CAAC,CAAC,EACJ;IACzC,OAAO,IAAAF,qCAAkB,EAACC,YAAY,EAAEC,gBAAgB,CAAC;EAC3D;EAEA,MAAczG,wBAAwBA,CAACF,gBAAkC,EAAE;IACzE,MAAM4G,gBAAgB,GAAG,MAAM,IAAI,CAACrI,MAAM,CAACsI,gBAAgB,CAAC,CAAC;IAC7D,IAAI,CAACD,gBAAgB,CAACnE,MAAM,EAAE;IAC9B,MAAMqE,iBAAiB,GAAGF,gBAAgB,CAACrF,MAAM,CAC9CjB,EAAE,IAAK,CAACN,gBAAgB,CAAC+G,IAAI,CAAEvF,CAAC,IAAKA,CAAC,CAACjB,aAAa,CAAC,CAAC,CAACyG,qBAAqB,CAAC1G,EAAE,CAAC,CACnF,CAAC;IACD,IAAI,CAACwG,iBAAiB,CAACrE,MAAM,EAAE;IAC/B,MAAMwE,UAAU,GAAG,MAAMC,OAAO,CAACC,GAAG,CAClCL,iBAAiB,CAACnF,GAAG,CAAErB,EAAE,IAAK,IAAI,CAAClC,SAAS,CAACwC,KAAK,CAACwG,WAAW,CAACC,iBAAiB,CAAC/G,EAAE,CAAC,CACtF,CAAC;IACDN,gBAAgB,CAAC+B,IAAI,CAAC,GAAGkF,UAAU,CAAC;EACtC;EAEA,MAAcnF,8BAA8BA,CAAC5C,UAAuB,EAA+B;IACjG,MAAME,iBAAqC,GAAG,EAAE;IAChD,MAAM8H,OAAO,CAACC,GAAG,CACfjI,UAAU,CAACyC,GAAG,CAAC,MAAOwB,SAAS,IAAK;MAClC,MAAM+C,IAAI,GAAG/C,SAAS,CAACC,KAAK,CAACkE,SAA8B;MAC3D,IAAI,CAACpB,IAAI,CAACqB,cAAc,EAAE;MAC1B,MAAMrB,IAAI,CAACqB,cAAc,CAACC,cAAc,CAAC,IAAI,CAACpJ,SAAS,CAACwC,KAAK,CAACwG,WAAW,CAACvG,OAAO,EAAE,KAAK,EAAE4G,SAAS,EAAEvB,IAAI,CAAC5F,EAAE,CAAC;MAC7G,MAAM8E,WAAW,GAAGc,IAAI,CAACqB,cAAc,CAACG,cAAc,CAAC,CAAC;MACxD,IAAItC,WAAW,CAAC3D,GAAG,EAAE;QACnBrC,iBAAiB,CAAC2C,IAAI,CAAC;UAAEzB,EAAE,EAAE6C,SAAS,CAAC7C,EAAE;UAAEmB,GAAG,EAAE2D,WAAW,CAAC3D;QAAI,CAAC,CAAC;MACpE;IACF,CAAC,CACH,CAAC;IACD,OAAOrC,iBAAiB;EAC1B;EAcA,aAAauI,QAAQA,CAAC,CAACC,GAAG,EAAExJ,SAAS,EAAEE,QAAQ,EAAED,MAAM,EAAEE,MAAM,EAAEC,KAAK,EAAEqJ,UAAU,EAAEnJ,OAAO,CAS1F,EAAE;IACD,MAAMD,MAAM,GAAGoJ,UAAU,CAACC,YAAY,CAACC,sBAAY,CAACzH,EAAE,CAAC;IACvD,MAAM0H,UAAU,GAAG,IAAI9J,UAAU,CAACE,SAAS,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC9FkJ,GAAG,CAACK,QAAQ,CAAC,KAAIC,sBAAS,EAACF,UAAU,CAAC,EAAE,KAAIG,8BAAa,EAACH,UAAU,CAAC,CAAC;IACtE,OAAOA,UAAU;EACnB;AACF;AAACI,OAAA,CAAAlK,UAAA,GAAAA,UAAA;AAAAnB,eAAA,CA5MYmB,UAAU,WAiLN,EAAE;AAAAnB,eAAA,CAjLNmB,UAAU,kBAkLC,CACpBmK,gBAAS,EACTC,4BAAe,EACfC,0BAAc,EACdC,sBAAY,EACZC,sBAAY,EACZC,oBAAW,EACXC,sBAAY,EACZC,wBAAa,CACd;AAAA7L,eAAA,CA3LUmB,UAAU,aA4LJ2K,kBAAW;AAkB9Bd,sBAAY,CAACe,UAAU,CAAC5K,UAAU,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/status",
3
- "version": "1.0.652",
3
+ "version": "1.0.654",
4
4
  "homepage": "https://bit.cloud/teambit/component/status",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "status",
9
- "version": "1.0.652"
9
+ "version": "1.0.654"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -16,22 +16,22 @@
16
16
  "@teambit/component-version": "1.0.4",
17
17
  "@teambit/harmony": "0.4.7",
18
18
  "@teambit/lane-id": "0.0.312",
19
- "@teambit/cli": "0.0.1228",
19
+ "@teambit/cli": "0.0.1229",
20
20
  "@teambit/legacy.constants": "0.0.12",
21
21
  "@teambit/component-issues": "0.0.159",
22
22
  "@teambit/component.snap-distance": "0.0.56",
23
- "@teambit/component": "1.0.651",
24
- "@teambit/insights": "1.0.651",
25
- "@teambit/issues": "1.0.651",
26
- "@teambit/lanes": "1.0.652",
23
+ "@teambit/component": "1.0.652",
24
+ "@teambit/insights": "1.0.652",
25
+ "@teambit/issues": "1.0.652",
26
+ "@teambit/lanes": "1.0.653",
27
27
  "@teambit/legacy.component-list": "0.0.109",
28
28
  "@teambit/legacy.consumer-component": "0.0.56",
29
29
  "@teambit/legacy.consumer": "0.0.55",
30
- "@teambit/logger": "0.0.1321",
31
- "@teambit/merging": "1.0.651",
32
- "@teambit/objects": "0.0.158",
33
- "@teambit/remove": "1.0.651",
34
- "@teambit/workspace": "1.0.651"
30
+ "@teambit/logger": "0.0.1322",
31
+ "@teambit/merging": "1.0.652",
32
+ "@teambit/objects": "0.0.159",
33
+ "@teambit/remove": "1.0.652",
34
+ "@teambit/workspace": "1.0.652"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/lodash": "4.14.165",