@teambit/snapping 0.0.7 → 0.0.10

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.
@@ -2,6 +2,10 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ require("core-js/modules/es.array.flat.js");
6
+
7
+ require("core-js/modules/es.array.unscopables.flat.js");
8
+
5
9
  Object.defineProperty(exports, "__esModule", {
6
10
  value: true
7
11
  });
@@ -28,7 +32,7 @@ function _issues() {
28
32
  }
29
33
 
30
34
  function _componentIssuesTemplate() {
31
- const data = _interopRequireDefault(require("@teambit/legacy/dist/cli/templates/component-issues-template"));
35
+ const data = require("@teambit/legacy/dist/cli/templates/component-issues-template");
32
36
 
33
37
  _componentIssuesTemplate = function () {
34
38
  return data;
@@ -37,19 +41,43 @@ function _componentIssuesTemplate() {
37
41
  return data;
38
42
  }
39
43
 
44
+ function _chalk() {
45
+ const data = _interopRequireDefault(require("chalk"));
46
+
47
+ _chalk = function () {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _lodash() {
55
+ const data = require("lodash");
56
+
57
+ _lodash = function () {
58
+ return data;
59
+ };
60
+
61
+ return data;
62
+ }
63
+
40
64
  class ComponentsHaveIssues extends _bitError().BitError {
41
65
  constructor(components) {
42
- const issuesColored = (0, _componentIssuesTemplate().default)(components);
66
+ components.forEach(component => {
67
+ component.issues = component.issues.filterNonTagBlocking();
68
+ });
69
+ const allIssueNames = (0, _lodash().uniq)(components.map(comp => comp.issues.getAllIssueNames()).flat());
70
+ const issuesColored = componentIssuesTemplate(components);
43
71
  super(`error: issues found with the following components
44
72
  ${issuesColored}
45
73
 
46
74
  to get the list of component-issues names and suggestions how to resolve them, run "bit component-issues".
47
75
 
48
76
  while highly not recommended, it's possible to ignore issues in two ways:
49
- 1) temporarily ignore for this tag/snap command by entering "--ignore-issues" flag, e.g. \`bit tag --ignore-issues "MultipleEnvs, ImportNonMainFiles" \`
77
+ 1) temporarily ignore for this tag/snap command by entering "--ignore-issues" flag, e.g. \`bit tag --ignore-issues "${allIssueNames.join(', ')}" \`
50
78
  2) ignore the issue completely by configuring it in the workspace.jsonc file. e.g:
51
79
  "${_issues().default.id}": {
52
- "ignoreIssues": ["ParseErrors", "MissingPackagesDependenciesOnFs"]
80
+ "ignoreIssues": [${allIssueNames.map(issue => `"${issue}"`).join(', ')}]
53
81
  }
54
82
  `);
55
83
  }
@@ -58,4 +86,13 @@ while highly not recommended, it's possible to ignore issues in two ways:
58
86
 
59
87
  exports.ComponentsHaveIssues = ComponentsHaveIssues;
60
88
 
89
+ function componentIssuesTemplate(components) {
90
+ function format(component) {
91
+ return `${_chalk().default.underline(_chalk().default.cyan(component.id.toString()))}\n${(0, _componentIssuesTemplate().formatIssues)(component)}`;
92
+ }
93
+
94
+ const result = `\n${components.map(format).join('\n')}`;
95
+ return result;
96
+ }
97
+
61
98
  //# sourceMappingURL=components-have-issues.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["components-have-issues.ts"],"names":["ComponentsHaveIssues","BitError","constructor","components","issuesColored","IssuesAspect","id"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,oBAAN,SAAmCC,oBAAnC,CAA4C;AACjDC,EAAAA,WAAW,CAACC,UAAD,EAAkC;AAC3C,UAAMC,aAAa,GAAG,wCAAwBD,UAAxB,CAAtB;AACA,UAAO;AACX,EAAEC,aAAc;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,GAAGC,kBAAaC,EAAG;AACnB;AACA;AACA,CAXI;AAYD;;AAfgD","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport IssuesAspect from '@teambit/issues';\nimport componentIssuesTemplate from '@teambit/legacy/dist/cli/templates/component-issues-template';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\n\nexport class ComponentsHaveIssues extends BitError {\n constructor(components: ConsumerComponent[]) {\n const issuesColored = componentIssuesTemplate(components);\n super(`error: issues found with the following components\n${issuesColored}\n\nto get the list of component-issues names and suggestions how to resolve them, run \"bit component-issues\".\n\nwhile highly not recommended, it's possible to ignore issues in two ways:\n1) temporarily ignore for this tag/snap command by entering \"--ignore-issues\" flag, e.g. \\`bit tag --ignore-issues \"MultipleEnvs, ImportNonMainFiles\" \\`\n2) ignore the issue completely by configuring it in the workspace.jsonc file. e.g:\n\"${IssuesAspect.id}\": {\n \"ignoreIssues\": [\"ParseErrors\", \"MissingPackagesDependenciesOnFs\"]\n}\n`);\n }\n}\n"]}
1
+ {"version":3,"sources":["components-have-issues.ts"],"names":["ComponentsHaveIssues","BitError","constructor","components","forEach","component","issues","filterNonTagBlocking","allIssueNames","map","comp","getAllIssueNames","flat","issuesColored","componentIssuesTemplate","join","IssuesAspect","id","issue","format","chalk","underline","cyan","toString","result"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,oBAAN,SAAmCC,oBAAnC,CAA4C;AACjDC,EAAAA,WAAW,CAACC,UAAD,EAAkC;AAC3CA,IAAAA,UAAU,CAACC,OAAX,CAAoBC,SAAD,IAAe;AAChCA,MAAAA,SAAS,CAACC,MAAV,GAAmBD,SAAS,CAACC,MAAV,CAAiBC,oBAAjB,EAAnB;AACD,KAFD;AAGA,UAAMC,aAAa,GAAG,oBAAKL,UAAU,CAACM,GAAX,CAAgBC,IAAD,IAAUA,IAAI,CAACJ,MAAL,CAAYK,gBAAZ,EAAzB,EAAyDC,IAAzD,EAAL,CAAtB;AACA,UAAMC,aAAa,GAAGC,uBAAuB,CAACX,UAAD,CAA7C;AACA,UAAO;AACX,EAAEU,aAAc;AAChB;AACA;AACA;AACA;AACA,sHAAsHL,aAAa,CAACO,IAAd,CAChH,IADgH,CAEhH;AACN;AACA,GAAGC,kBAAaC,EAAG;AACnB,qBAAqBT,aAAa,CAACC,GAAd,CAAmBS,KAAD,IAAY,IAAGA,KAAM,GAAvC,EAA2CH,IAA3C,CAAgD,IAAhD,CAAsD;AAC3E;AACA,CAbI;AAcD;;AArBgD;;;;AAwBnD,SAASD,uBAAT,CAAiCX,UAAjC,EAAkE;AAChE,WAASgB,MAAT,CAAgBd,SAAhB,EAA8C;AAC5C,WAAQ,GAAEe,iBAAMC,SAAN,CAAgBD,iBAAME,IAAN,CAAWjB,SAAS,CAACY,EAAV,CAAaM,QAAb,EAAX,CAAhB,CAAqD,KAAI,6CAAalB,SAAb,CAAwB,EAA3F;AACD;;AAED,QAAMmB,MAAM,GAAI,KAAIrB,UAAU,CAACM,GAAX,CAAeU,MAAf,EAAuBJ,IAAvB,CAA4B,IAA5B,CAAkC,EAAtD;AACA,SAAOS,MAAP;AACD","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport IssuesAspect from '@teambit/issues';\nimport { formatIssues } from '@teambit/legacy/dist/cli/templates/component-issues-template';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport chalk from 'chalk';\nimport { uniq } from 'lodash';\n\nexport class ComponentsHaveIssues extends BitError {\n constructor(components: ConsumerComponent[]) {\n components.forEach((component) => {\n component.issues = component.issues.filterNonTagBlocking();\n });\n const allIssueNames = uniq(components.map((comp) => comp.issues.getAllIssueNames()).flat());\n const issuesColored = componentIssuesTemplate(components);\n super(`error: issues found with the following components\n${issuesColored}\n\nto get the list of component-issues names and suggestions how to resolve them, run \"bit component-issues\".\n\nwhile highly not recommended, it's possible to ignore issues in two ways:\n1) temporarily ignore for this tag/snap command by entering \"--ignore-issues\" flag, e.g. \\`bit tag --ignore-issues \"${allIssueNames.join(\n ', '\n )}\" \\`\n2) ignore the issue completely by configuring it in the workspace.jsonc file. e.g:\n\"${IssuesAspect.id}\": {\n \"ignoreIssues\": [${allIssueNames.map((issue) => `\"${issue}\"`).join(', ')}]\n}\n`);\n }\n}\n\nfunction componentIssuesTemplate(components: ConsumerComponent[]) {\n function format(component: ConsumerComponent) {\n return `${chalk.underline(chalk.cyan(component.id.toString()))}\\n${formatIssues(component)}`;\n }\n\n const result = `\\n${components.map(format).join('\\n')}`;\n return result;\n}\n"]}
@@ -5,12 +5,14 @@ import { BitIds } from '@teambit/legacy/dist/bit-id';
5
5
  import { TagResults, BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';
6
6
  import { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';
7
7
  import { Logger, LoggerMain } from '@teambit/logger';
8
+ import { InsightsMain } from '@teambit/insights';
8
9
  import { IssuesMain } from '@teambit/issues';
9
10
  export declare class SnappingMain {
10
11
  private workspace;
11
12
  private logger;
12
13
  private issues;
13
- constructor(workspace: Workspace, logger: Logger, issues: IssuesMain);
14
+ private insights;
15
+ constructor(workspace: Workspace, logger: Logger, issues: IssuesMain, insights: InsightsMain);
14
16
  /**
15
17
  * tag the given component ids or all modified/new components if "all" param is set.
16
18
  * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias
@@ -51,16 +53,18 @@ export declare class SnappingMain {
51
53
  }): Promise<SnapResults | null>;
52
54
  private loadComponentsForTag;
53
55
  private throwForComponentIssues;
56
+ private throwForLegacyDependenciesInsideHarmony;
54
57
  private getComponentsToTag;
55
58
  static slots: never[];
56
59
  static dependencies: import("@teambit/harmony").Aspect[];
57
60
  static runtime: import("@teambit/harmony").RuntimeDefinition;
58
- static provider([workspace, cli, community, loggerMain, issues]: [
61
+ static provider([workspace, cli, community, loggerMain, issues, insights]: [
59
62
  Workspace,
60
63
  CLIMain,
61
64
  CommunityMain,
62
65
  LoggerMain,
63
- IssuesMain
66
+ IssuesMain,
67
+ InsightsMain
64
68
  ]): Promise<SnappingMain>;
65
69
  }
66
70
  export default SnappingMain;
@@ -261,6 +261,36 @@ function _bitError() {
261
261
  return data;
262
262
  }
263
263
 
264
+ function _pMap() {
265
+ const data = _interopRequireDefault(require("p-map"));
266
+
267
+ _pMap = function () {
268
+ return data;
269
+ };
270
+
271
+ return data;
272
+ }
273
+
274
+ function _insights() {
275
+ const data = require("@teambit/insights");
276
+
277
+ _insights = function () {
278
+ return data;
279
+ };
280
+
281
+ return data;
282
+ }
283
+
284
+ function _concurrency() {
285
+ const data = require("@teambit/legacy/dist/utils/concurrency");
286
+
287
+ _concurrency = function () {
288
+ return data;
289
+ };
290
+
291
+ return data;
292
+ }
293
+
264
294
  function _failedLoadForTag() {
265
295
  const data = require("@teambit/legacy/dist/consumer/component/exceptions/failed-load-for-tag");
266
296
 
@@ -324,10 +354,11 @@ function _componentsHaveIssues() {
324
354
  const HooksManagerInstance = _hooks().default.getInstance();
325
355
 
326
356
  class SnappingMain {
327
- constructor(workspace, logger, issues) {
357
+ constructor(workspace, logger, issues, insights) {
328
358
  this.workspace = workspace;
329
359
  this.logger = logger;
330
360
  this.issues = issues;
361
+ this.insights = insights;
331
362
  }
332
363
  /**
333
364
  * tag the given component ids or all modified/new components if "all" param is set.
@@ -442,7 +473,8 @@ class SnappingMain {
442
473
  }
443
474
 
444
475
  const components = await this.loadComponentsForTag(legacyBitIds);
445
- this.throwForComponentIssues(components, ignoreIssues);
476
+ await this.throwForLegacyDependenciesInsideHarmony(components);
477
+ await this.throwForComponentIssues(components, ignoreIssues);
446
478
  const areComponentsMissingFromScope = components.some(c => !c.componentFromModel && c.id.hasScope());
447
479
 
448
480
  if (areComponentsMissingFromScope) {
@@ -529,7 +561,8 @@ class SnappingMain {
529
561
  this.logger.debug(`snapping the following components: ${ids.toString()}`);
530
562
  await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();
531
563
  const components = await this.loadComponentsForTag(ids);
532
- this.throwForComponentIssues(components, ignoreIssues);
564
+ await this.throwForLegacyDependenciesInsideHarmony(components);
565
+ await this.throwForComponentIssues(components, ignoreIssues);
533
566
  const areComponentsMissingFromScope = components.some(c => !c.componentFromModel && c.id.hasScope());
534
567
 
535
568
  if (areComponentsMissingFromScope) {
@@ -644,8 +677,8 @@ class SnappingMain {
644
677
  return reloadedComponents;
645
678
  }
646
679
 
647
- throwForComponentIssues(components, ignoreIssues) {
648
- components.forEach(component => {
680
+ async throwForComponentIssues(legacyComponents, ignoreIssues) {
681
+ legacyComponents.forEach(component => {
649
682
  if (this.workspace.isLegacy && component.issues) {
650
683
  component.issues.delete(_componentIssues().IssuesClasses.RelativeComponentsAuthored);
651
684
  }
@@ -659,6 +692,12 @@ class SnappingMain {
659
692
  const issuesToIgnoreFromFlag = (ignoreIssues === null || ignoreIssues === void 0 ? void 0 : ignoreIssues.split(',').map(issue => issue.trim())) || [];
660
693
  const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnore();
661
694
  const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];
695
+
696
+ if (!this.workspace.isLegacy && !issuesToIgnore.includes(_componentIssues().IssuesClasses.CircularDependencies.name)) {
697
+ const components = await this.workspace.getManyByLegacy(legacyComponents);
698
+ await this.insights.addInsightsAsComponentIssues(components);
699
+ }
700
+
662
701
  issuesToIgnore.forEach(issue => {
663
702
  const issueClass = _componentIssues().IssuesClasses[issue];
664
703
 
@@ -666,11 +705,11 @@ class SnappingMain {
666
705
  throw new Error(`unrecognized component-issue "${issue}". please specify one of the following:\n${Object.keys(_componentIssues().IssuesClasses).join('\n')}`);
667
706
  }
668
707
 
669
- components.forEach(component => {
708
+ legacyComponents.forEach(component => {
670
709
  component.issues.delete(issueClass);
671
710
  });
672
711
  });
673
- const componentsWithBlockingIssues = components.filter(component => {
712
+ const componentsWithBlockingIssues = legacyComponents.filter(component => {
674
713
  var _component$issues3;
675
714
 
676
715
  return (_component$issues3 = component.issues) === null || _component$issues3 === void 0 ? void 0 : _component$issues3.shouldBlockTagging();
@@ -681,6 +720,31 @@ class SnappingMain {
681
720
  }
682
721
  }
683
722
 
723
+ async throwForLegacyDependenciesInsideHarmony(components) {
724
+ if (this.workspace.isLegacy) {
725
+ return;
726
+ }
727
+
728
+ const throwForComponent = async component => {
729
+ const dependenciesIds = component.getAllDependenciesIds();
730
+ const legacyScope = this.workspace.scope.legacyScope;
731
+ await Promise.all(dependenciesIds.map(async depId => {
732
+ if (!depId.hasVersion()) return;
733
+ const modelComp = await legacyScope.getModelComponentIfExist(depId);
734
+ if (!modelComp) return;
735
+ const version = await modelComp.loadVersion(depId.version, legacyScope.objects);
736
+
737
+ if (version.isLegacy) {
738
+ throw new Error(`unable tagging "${component.id.toString()}", its dependency "${depId.toString()}" is legacy`);
739
+ }
740
+ }));
741
+ };
742
+
743
+ await (0, _pMap().default)(components, component => throwForComponent(component), {
744
+ concurrency: (0, _concurrency().concurrentComponentsLimit)()
745
+ });
746
+ }
747
+
684
748
  async getComponentsToTag(isAllScope, exactVersion, includeImported, persist, force, ids, snapped) {
685
749
  const warnings = [];
686
750
  const componentsList = new (_componentsList().default)(this.workspace.consumer);
@@ -747,9 +811,9 @@ class SnappingMain {
747
811
  };
748
812
  }
749
813
 
750
- static async provider([workspace, cli, community, loggerMain, issues]) {
814
+ static async provider([workspace, cli, community, loggerMain, issues, insights]) {
751
815
  const logger = loggerMain.createLogger(_snapping().SnappingAspect.id);
752
- const snapping = new SnappingMain(workspace, logger, issues);
816
+ const snapping = new SnappingMain(workspace, logger, issues, insights);
753
817
  const snapCmd = new (_snapCmd().SnapCmd)(community.getBaseDomain(), snapping);
754
818
  const tagCmd = new (_tagCmd().TagCmd)(community.getBaseDomain(), snapping);
755
819
  cli.register(tagCmd, snapCmd);
@@ -760,7 +824,7 @@ class SnappingMain {
760
824
 
761
825
  exports.SnappingMain = SnappingMain;
762
826
  (0, _defineProperty2().default)(SnappingMain, "slots", []);
763
- (0, _defineProperty2().default)(SnappingMain, "dependencies", [_workspace().default, _cli().CLIAspect, _community().default, _logger().LoggerAspect, _issues().default]);
827
+ (0, _defineProperty2().default)(SnappingMain, "dependencies", [_workspace().default, _cli().CLIAspect, _community().default, _logger().LoggerAspect, _issues().default, _insights().InsightsAspect]);
764
828
  (0, _defineProperty2().default)(SnappingMain, "runtime", _cli().MainRuntime);
765
829
 
766
830
  _snapping().SnappingAspect.addRuntime(SnappingMain);
@@ -1 +1 @@
1
- {"version":3,"sources":["snapping.main.runtime.ts"],"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","tag","ids","message","ver","all","editor","snapped","patch","minor","major","preRelease","force","verbose","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","scope","build","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","BUILD_ON_CI","Boolean","getVersion","length","BitError","releaseFlags","filter","x","releaseType","DEFAULT_BIT_RELEASE_TYPE","includeImported","exactVersion","ConsumerNotFound","idsHasWildcard","isAll","validExactVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","isLegacy","debug","toString","Analytics","addBreadCrumb","hashData","componentFsCache","deleteAllDependenciesDataCache","components","loadComponentsForTag","throwForComponentIssues","areComponentsMissingFromScope","some","c","componentFromModel","id","hasScope","ComponentsPendingImport","taggedComponents","autoTaggedResults","publishedPackages","consumerComponents","legacyScope","resolveUnmerged","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","snap","skipAutoSnap","Error","LanesIsDisabled","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","idHasWildcard","bitId","getParsedId","componentStatus","getComponentStatusById","modified","tagPendingComponents","listTagPendingComponents","filterComponentsByWildcard","loadComponents","toVersionLatest","shouldReloadComponents","componentsWithRelativePaths","componentsWithFilesNotDir","componentsWithCustomModuleResolution","forEach","component","componentMap","rootDir","hasRelativePaths","getIssue","IssuesClasses","RelativeComponentsAuthored","hasCustomModuleResolutions","MissingCustomModuleResolutionLinks","trackDir","changeRootDirAndUpdateFilesAccordingly","push","toStringWithoutVersion","FailedLoadForTag","sort","clearCache","reloadedComponents","delete","issuesToIgnoreFromFlag","split","map","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnore","issuesToIgnore","issueClass","Object","keys","join","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","isAllScope","softTaggedComponents","listSoftTaggedComponents","listTagPendingOfAllScope","listSnappedComponentsOnMain","snappedComponentsIds","toBitId","Promise","idWithoutVer","version","allIds","changeVersion","flat","tagPendingComponentsLatest","latestVersions","componentId","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapping","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","MainRuntime","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA,MAAMA,oBAAoB,GAAGC,iBAAaC,WAAb,EAA7B;;AAEO,MAAMC,YAAN,CAAmB;AACxBC,EAAAA,WAAW,CAASC,SAAT,EAAuCC,MAAvC,EAA+DC,MAA/D,EAAmF;AAAA,SAA1EF,SAA0E,GAA1EA,SAA0E;AAAA,SAA5CC,MAA4C,GAA5CA,MAA4C;AAAA,SAApBC,MAAoB,GAApBA,MAAoB;AAAE;AAEhG;AACF;AACA;AACA;AACA;AACA;AACE;;;AACS,QAAHC,GAAG,CAAC;AACRC,IAAAA,GAAG,GAAG,EADE;AAERC,IAAAA,OAAO,GAAG,EAFF;AAGRC,IAAAA,GAHQ;AAIRC,IAAAA,GAAG,GAAG,KAJE;AAKRC,IAAAA,MAAM,GAAG,EALD;AAMRC,IAAAA,OAAO,GAAG,KANF;AAORC,IAAAA,KAPQ;AAQRC,IAAAA,KARQ;AASRC,IAAAA,KATQ;AAURC,IAAAA,UAVQ;AAWRC,IAAAA,KAAK,GAAG,KAXA;AAYRC,IAAAA,OAAO,GAAG,KAZF;AAaRC,IAAAA,YAbQ;AAcRC,IAAAA,mBAAmB,GAAG,KAdd;AAeRC,IAAAA,SAAS,GAAG,KAfJ;AAgBRC,IAAAA,WAAW,GAAG,KAhBN;AAiBRC,IAAAA,KAjBQ;AAkBRC,IAAAA,KAlBQ;AAmBRC,IAAAA,IAAI,GAAG,KAnBC;AAoBRC,IAAAA,OAAO,GAAG,KApBF;AAqBRC,IAAAA,WAAW,GAAG,KArBN;AAsBRC,IAAAA,WAAW,GAAG,CAtBN;AAuBRC,IAAAA,0BAA0B,GAAG;AAvBrB,GAAD,EAmCgD;AACvDL,IAAAA,KAAK,GAAG,uCAAiBM,4BAAjB,IAAgCC,OAAO,CAACP,KAAD,CAAvC,GAAiD,IAAzD;AACA,QAAIC,IAAJ,EAAUD,KAAK,GAAG,KAAR;;AACV,aAASQ,UAAT,GAA0C;AACxC,UAAIT,KAAK,IAAI,uBAASA,KAAT,CAAb,EAA8B,OAAOA,KAAP;AAC9B,UAAIb,GAAG,IAAI,uBAASA,GAAT,CAAX,EAA0B,OAAOA,GAAP;AAC1B,UAAIE,OAAO,IAAI,uBAASA,OAAT,CAAf,EAAkC,OAAOA,OAAP;AAClC,aAAOH,GAAP;AACD;;AAED,QAAI,CAACF,GAAG,CAAC0B,MAAL,IAAe,CAACvB,GAAhB,IAAuB,CAACE,OAAxB,IAAmC,CAACW,KAApC,IAA6C,CAACG,OAAlD,EAA2D;AACzD,YAAM,KAAIQ,oBAAJ,EAAa,4DAAb,CAAN;AACD;;AACD,QAAI3B,GAAG,CAAC0B,MAAJ,IAAcvB,GAAlB,EAAuB;AACrB,YAAM,KAAIwB,oBAAJ,EACJ,0GADI,CAAN;AAGD;;AACD,QAAIL,0BAA0B,IAAIF,WAAlC,EAA+C;AAC7C,YAAM,KAAIO,oBAAJ,EAAa,uEAAb,CAAN;AACD;;AACD,QAAIxB,GAAG,IAAIgB,OAAX,EAAoB;AAClB,YAAM,KAAIQ,oBAAJ,EAAa,qDAAb,CAAN;AACD;;AACD,QAAIvB,MAAM,IAAIe,OAAd,EAAuB;AACrB,YAAM,KAAIQ,oBAAJ,EAAa,wDAAb,CAAN;AACD;;AACD,QAAIvB,MAAM,IAAIH,OAAd,EAAuB;AACrB,YAAM,KAAI0B,oBAAJ,EAAa,wDAAb,CAAN;AACD;;AAED,UAAMC,YAAY,GAAG,CAACtB,KAAD,EAAQC,KAAR,EAAeC,KAAf,EAAsBC,UAAtB,EAAkCoB,MAAlC,CAA0CC,CAAD,IAAOA,CAAhD,CAArB;;AACA,QAAIF,YAAY,CAACF,MAAb,GAAsB,CAA1B,EAA6B;AAC3B,YAAM,KAAIC,oBAAJ,EAAa,0EAAb,CAAN;AACD;;AAED,QAAII,WAAwB,GAAGC,qCAA/B;;AACA,UAAMC,eAAe,GAAGT,OAAO,CAACR,KAAK,IAAIb,GAAV,CAA/B;AAEA,QAAIK,KAAJ,EAAWuB,WAAW,GAAG,OAAd,CAAX,KACK,IAAIxB,KAAJ,EAAWwB,WAAW,GAAG,OAAd,CAAX,KACA,IAAIzB,KAAJ,EAAWyB,WAAW,GAAG,OAAd,CAAX,KACA,IAAItB,UAAJ,EAAgBsB,WAAW,GAAG,YAAd;AAErB,UAAMG,YAAY,GAAGT,UAAU,EAA/B;AACAtB,IAAAA,GAAG,GAAGqB,OAAO,CAACrB,GAAD,CAAb;AACAE,IAAAA,OAAO,GAAGmB,OAAO,CAACnB,OAAD,CAAjB;AACAI,IAAAA,UAAU,GAAG,OAAOA,UAAP,KAAsB,QAAtB,GAAiCA,UAAjC,GAA8C,EAA3D;AAEA,QAAI,CAAC,KAAKb,SAAV,EAAqB,MAAM,KAAIuC,8BAAJ,GAAN;AACrB,UAAMC,cAAc,GAAG,4BAAYpC,GAAZ,CAAvB;AACA,UAAMqC,KAAK,GAAGb,OAAO,CAACrB,GAAG,IAAIa,KAAP,IAAgBoB,cAAjB,CAArB;AACA,UAAME,iBAAiB,GAAG,qCAAgBJ,YAAhB,CAA1B;AACA,UAAMK,QAAQ,GAAG,KAAK3C,SAAL,CAAe2C,QAAhC;AACA,UAAMC,cAAc,GAAG,KAAIC,yBAAJ,EAAmBF,QAAnB,CAAvB;;AACAG,sBAAOC,KAAP,CAAa,gCAAb;;AACA,UAAMC,aAAa,GAAG,MAAMJ,cAAc,CAACK,iBAAf,EAA5B;AACA,UAAM;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAuB,MAAM,KAAKC,kBAAL,CACjCxB,OAAO,CAACR,KAAD,CAD0B,EAEjCkB,YAFiC,EAGjCD,eAHiC,EAIjCd,OAJiC,EAKjCT,KALiC,EAMjCV,GANiC,EAOjCK,OAPiC,CAAnC;AASA,QAAI4C,iBAAEC,OAAF,CAAUJ,MAAV,CAAJ,EAAuB,OAAO,IAAP;;AAEvB,UAAMK,YAAY,GAAGC,gBAAOC,SAAP,CAAiBP,MAAjB,CAArB;;AAEA,QAAI,KAAKlD,SAAL,CAAe0D,QAAnB,EAA6B;AAC3BnC,MAAAA,OAAO,GAAG,IAAV;AACD;;AACD,SAAKtB,MAAL,CAAY0D,KAAZ,CAAmB,qCAAoCJ,YAAY,CAACK,QAAb,EAAwB,EAA/E;;AACAC,2BAAUC,aAAV,CAAwB,KAAxB,EAAgC,qCAAoCD,uBAAUE,QAAV,CAAmBR,YAAnB,CAAiC,EAArG;;AACA,QAAI,CAACjC,IAAL,EAAW;AACT,YAAM,KAAKtB,SAAL,CAAe2C,QAAf,CAAwBqB,gBAAxB,CAAyCC,8BAAzC,EAAN;AACD;;AACD,UAAMC,UAAU,GAAG,MAAM,KAAKC,oBAAL,CAA0BZ,YAA1B,CAAzB;AACA,SAAKa,uBAAL,CAA6BF,UAA7B,EAAyClD,YAAzC;AACA,UAAMqD,6BAA6B,GAAGH,UAAU,CAACI,IAAX,CAAiBC,CAAD,IAAO,CAACA,CAAC,CAACC,kBAAH,IAAyBD,CAAC,CAACE,EAAF,CAAKC,QAAL,EAAhD,CAAtC;;AACA,QAAIL,6BAAJ,EAAmC;AACjC,YAAM,KAAIM,kCAAJ,GAAN;AACD;;AAED,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA,iBAApB;AAAuCC,MAAAA;AAAvC,QAA6D,MAAM,kCAAkB;AACzFC,MAAAA,kBAAkB,EAAEb,UADqE;AAEzF9D,MAAAA,GAAG,EAAEmD,YAFoF;AAGzFnC,MAAAA,KAAK,EAAE,KAAKpB,SAAL,CAAeoB,KAAf,CAAqB4D,WAH6D;AAIzF3E,MAAAA,OAJyF;AAKzFG,MAAAA,MALyF;AAMzF8B,MAAAA,YAAY,EAAEI,iBAN2E;AAOzFP,MAAAA,WAPyF;AAQzFtB,MAAAA,UARyF;AASzFC,MAAAA,KATyF;AAUzF6B,MAAAA,QAAQ,EAAE,KAAK3C,SAAL,CAAe2C,QAVgE;AAWzF1B,MAAAA,mBAXyF;AAYzFC,MAAAA,SAZyF;AAazFH,MAAAA,OAbyF;AAczFI,MAAAA,WAdyF;AAezFG,MAAAA,IAfyF;AAgBzFD,MAAAA,KAhByF;AAiBzFE,MAAAA,OAjByF;AAkBzF0D,MAAAA,eAAe,EAAE,KAlBwE;AAmBzFvD,MAAAA,0BAnByF;AAoBzFF,MAAAA,WApByF;AAqBzFC,MAAAA;AArByF,KAAlB,CAAzE;AAwBA,UAAMyD,UAAU,GAAG;AAAEN,MAAAA,gBAAF;AAAoBC,MAAAA,iBAApB;AAAuCM,MAAAA,SAAS,EAAE7D,IAAlD;AAAwDwD,MAAAA;AAAxD,KAAnB,CA7GuD,CA8GvD;;AACAI,IAAAA,UAAU,CAAC/B,QAAX,GAAsBA,QAAtB,CA/GuD,CAiHvD;;AACA+B,IAAAA,UAAU,CAAClC,aAAX,GAA2BA,aAA3B;AACA,UAAMoC,QAAQ,GAAG3C,KAAK,GAAG4C,8BAAH,GAAuBC,0BAA7C;AACA3F,IAAAA,oBAAoB,SAApB,IAAAA,oBAAoB,WAApB,YAAAA,oBAAoB,CAAE4F,WAAtB,CAAkCH,QAAlC,EAA4CF,UAA5C;;AACArB,2BAAU2B,YAAV,CACE,gBADF,EAEE;AACAnC,qBAAEoC,MAAF,CAASP,UAAU,CAACN,gBAApB,EAAsCM,UAAU,CAACL,iBAAjD,EAAoEK,UAAU,CAAClC,aAA/E,EAA8FlB,MAHhG;;AAKA,UAAMa,QAAQ,CAAC+C,SAAT,EAAN,CA1HuD,CA2HvD;;AACA,WAAOR,UAAP;AACD;AAED;AACF;AACA;AACA;;;AACY,QAAJS,IAAI,CAAC;AACTlB,IAAAA,EADS;AACL;AACJlB,IAAAA,YAFS;AAEK;AACd0B,IAAAA,eAAe,GAAG,KAHT;AAIT5E,IAAAA,OAAO,GAAG,EAJD;AAKTS,IAAAA,KAAK,GAAG,KALC;AAMTC,IAAAA,OAAO,GAAG,KAND;AAOTC,IAAAA,YAPS;AAQTE,IAAAA,SAAS,GAAG,KARH;AAST0E,IAAAA,YAAY,GAAG,KATN;AAUTvE,IAAAA,KAVS;AAWTK,IAAAA,0BAA0B,GAAG,KAXpB;AAYTF,IAAAA,WAAW,GAAG;AAZL,GAAD,EA0BsB;AAC9B,QAAI,CAAC,KAAKxB,SAAV,EAAqB,MAAM,KAAIuC,8BAAJ,GAAN;AACrB,QAAIkC,EAAE,IAAIlB,YAAV,EAAwB,MAAM,IAAIsC,KAAJ,CAAW,iDAAX,CAAN;AACxB,UAAMlD,QAAkB,GAAG,KAAK3C,SAAL,CAAe2C,QAA1C;AACA,QAAIA,QAAQ,CAACe,QAAb,EAAuB,MAAM,KAAIoC,kCAAJ,GAAN;AACvB,UAAMlD,cAAc,GAAG,KAAIC,yBAAJ,EAAmBF,QAAnB,CAAvB;AACA,UAAMK,aAAa,GAAI,MAAMJ,cAAc,CAACK,iBAAf,EAA7B;AACA,UAAM7C,GAAG,GAAGmD,YAAY,KAAK,MAAMwC,YAAY,EAAvB,CAAxB;AACA,QAAI,CAAC3F,GAAL,EAAU,OAAO,IAAP;AACV,SAAKH,MAAL,CAAY0D,KAAZ,CAAmB,sCAAqCvD,GAAG,CAACwD,QAAJ,EAAe,EAAvE;AACA,UAAM,KAAK5D,SAAL,CAAe2C,QAAf,CAAwBqB,gBAAxB,CAAyCC,8BAAzC,EAAN;AACA,UAAMC,UAAU,GAAG,MAAM,KAAKC,oBAAL,CAA0B/D,GAA1B,CAAzB;AACA,SAAKgE,uBAAL,CAA6BF,UAA7B,EAAyClD,YAAzC;AACA,UAAMqD,6BAA6B,GAAGH,UAAU,CAACI,IAAX,CAAiBC,CAAD,IAAO,CAACA,CAAC,CAACC,kBAAH,IAAyBD,CAAC,CAACE,EAAF,CAAKC,QAAL,EAAhD,CAAtC;;AACA,QAAIL,6BAAJ,EAAmC;AACjC,YAAM,KAAIM,kCAAJ,GAAN;AACD;;AAED,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,QAA0C,MAAM,kCAAkB;AACtEE,MAAAA,kBAAkB,EAAEb,UADkD;AAEtE9D,MAAAA,GAFsE;AAGtEa,MAAAA,mBAAmB,EAAE,KAHiD;AAItEG,MAAAA,KAAK,EAAE,KAAKpB,SAAL,CAAeoB,KAAf,CAAqB4D,WAJ0C;AAKtE3E,MAAAA,OALsE;AAMtES,MAAAA,KANsE;AAOtE6B,MAAAA,QAAQ,EAAE,KAAK3C,SAAL,CAAe2C,QAP6C;AAQtEzB,MAAAA,SARsE;AAStEH,MAAAA,OATsE;AAUtEI,MAAAA,WAAW,EAAEyE,YAVyD;AAWtErE,MAAAA,OAAO,EAAE,IAX6D;AAYtED,MAAAA,IAAI,EAAE,KAZgE;AAatED,MAAAA,KAbsE;AActE4D,MAAAA,eAdsE;AAetEe,MAAAA,MAAM,EAAE,IAf8D;AAgBtEtE,MAAAA,0BAhBsE;AAiBtEF,MAAAA;AAjBsE,KAAlB,CAAtD,CAlB8B,CAqC9B;;AACA,UAAMyE,WAAwB,GAAG;AAAEC,MAAAA,iBAAiB,EAAEtB,gBAArB;AAAuCuB,MAAAA,kBAAkB,EAAEtB;AAA3D,KAAjC;AAEAoB,IAAAA,WAAW,CAACjD,aAAZ,GAA4BA,aAA5B;AACA,UAAMoD,WAAW,GAAGzD,QAAQ,CAAC0D,gBAAT,EAApB;AACAJ,IAAAA,WAAW,CAACK,QAAZ,GAAuBF,WAAW,CAACG,SAAZ,KAA0B,IAA1B,GAAiCH,WAAW,CAACI,IAApE;AACA,UAAM7D,QAAQ,CAAC+C,SAAT,EAAN,CA3C8B,CA4C9B;;AACA,WAAOO,WAAP;;AAEA,mBAAeF,YAAf,GAA+C;AAC7C,YAAMU,aAAa,GAAGhC,EAAE,IAAI,4BAAYA,EAAZ,CAA5B;;AACA,UAAIA,EAAE,IAAI,CAACgC,aAAX,EAA0B;AACxB,cAAMC,KAAK,GAAG/D,QAAQ,CAACgE,WAAT,CAAqBlC,EAArB,CAAd;;AACA,YAAI,CAAC3D,KAAL,EAAY;AACV,gBAAM8F,eAAe,GAAG,MAAMjE,QAAQ,CAACkE,sBAAT,CAAgCH,KAAhC,CAA9B,CADU,CAEV;;AACA,cAAIE,eAAe,CAACE,QAAhB,KAA6B,KAAjC,EAAwC,OAAO,IAAP;AACzC;;AACD,eAAO,KAAItD,eAAJ,EAAWkD,KAAX,CAAP;AACD;;AACD,YAAMK,oBAAoB,GAAG,MAAMnE,cAAc,CAACoE,wBAAf,EAAnC,CAX6C,CAY7C;;AACA,UAAI3D,iBAAEC,OAAF,CAAUyD,oBAAV,CAAJ,EAAqC,OAAO,IAAP;AACrC,aAAON,aAAa,GAAG5D,0BAAeoE,0BAAf,CAA0CF,oBAA1C,EAAgEtC,EAAhE,CAAH,GAAyEsC,oBAA7F;AACD;AACF;;AAEiC,QAApB5C,oBAAoB,CAAC/D,GAAD,EAAoC;AACpE,UAAM;AAAE8D,MAAAA;AAAF,QAAiB,MAAM,KAAKlE,SAAL,CAAe2C,QAAf,CAAwBuE,cAAxB,CAAuC9G,GAAG,CAAC+G,eAAJ,EAAvC,CAA7B;;AACA,QAAI,KAAKnH,SAAL,CAAe0D,QAAnB,EAA6B;AAC3B,aAAOQ,UAAP;AACD;;AACD,QAAIkD,sBAAsB,GAAG,KAA7B;AACA,UAAMC,2BAAqC,GAAG,EAA9C;AACA,UAAMC,yBAAmC,GAAG,EAA5C;AACA,UAAMC,oCAA8C,GAAG,EAAvD;AACArD,IAAAA,UAAU,CAACsD,OAAX,CAAoBC,SAAD,IAAe;AAAA;;AAChC,YAAMC,YAAY,GAAGD,SAAS,CAACC,YAA/B;AACA,UAAIA,YAAY,CAACC,OAAjB,EAA0B;AAC1B,YAAMC,gBAAgB,wBAAGH,SAAS,CAACvH,MAAb,sDAAG,kBAAkB2H,QAAlB,CAA2BC,iCAAcC,0BAAzC,CAAzB;AACA,YAAMC,0BAA0B,yBAAGP,SAAS,CAACvH,MAAb,uDAAG,mBAAkB2H,QAAlB,CAA2BC,iCAAcG,kCAAzC,CAAnC,CAJgC,CAKhC;;AACA,UAAIP,YAAY,CAACQ,QAAb,IAAyB,CAACN,gBAA9B,EAAgD;AAC9CF,QAAAA,YAAY,CAACS,sCAAb,CAAoDT,YAAY,CAACQ,QAAjE;AACAd,QAAAA,sBAAsB,GAAG,IAAzB;AACA;AACD;;AACD,UAAIQ,gBAAJ,EAAsB;AACpBP,QAAAA,2BAA2B,CAACe,IAA5B,CAAiCX,SAAS,CAAChD,EAAV,CAAa4D,sBAAb,EAAjC;AACD;;AACD,UAAI,CAACX,YAAY,CAACQ,QAAlB,EAA4B;AAC1BZ,QAAAA,yBAAyB,CAACc,IAA1B,CAA+BX,SAAS,CAAChD,EAAV,CAAa4D,sBAAb,EAA/B;AACD;;AACD,UAAIL,0BAAJ,EAAgC;AAC9BT,QAAAA,oCAAoC,CAACa,IAArC,CAA0CX,SAAS,CAAChD,EAAV,CAAa4D,sBAAb,EAA1C;AACD;AACF,KApBD;;AAqBA,QAAIhB,2BAA2B,CAACvF,MAA5B,IAAsCwF,yBAAyB,CAACxF,MAApE,EAA4E;AAC1E,YAAM,KAAIwG,oCAAJ,EACJjB,2BAA2B,CAACkB,IAA5B,EADI,EAEJjB,yBAAyB,CAACiB,IAA1B,EAFI,EAGJhB,oCAAoC,CAACgB,IAArC,EAHI,CAAN;AAKD;;AACD,QAAI,CAACnB,sBAAL,EAA6B,OAAOlD,UAAP;AAC7B,SAAKlE,SAAL,CAAewI,UAAf;AACA,UAAM;AAAEtE,MAAAA,UAAU,EAAEuE;AAAd,QAAqC,MAAM,KAAKzI,SAAL,CAAe2C,QAAf,CAAwBuE,cAAxB,CAAuC9G,GAAvC,CAAjD;AACA,WAAOqI,kBAAP;AACD;;AAEOrE,EAAAA,uBAAuB,CAACF,UAAD,EAA0BlD,YAA1B,EAAiD;AAC9EkD,IAAAA,UAAU,CAACsD,OAAX,CAAoBC,SAAD,IAAe;AAChC,UAAI,KAAKzH,SAAL,CAAe0D,QAAf,IAA2B+D,SAAS,CAACvH,MAAzC,EAAiD;AAC/CuH,QAAAA,SAAS,CAACvH,MAAV,CAAiBwI,MAAjB,CAAwBZ,iCAAcC,0BAAtC;AACD;AACF,KAJD;;AAKA,QAAI/G,YAAY,KAAK,GAArB,EAA0B;AACxB;AACA;AACD;;AACD,UAAM2H,sBAAsB,GAAG,CAAA3H,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAE4H,KAAd,CAAoB,GAApB,EAAyBC,GAAzB,CAA8BC,KAAD,IAAWA,KAAK,CAACC,IAAN,EAAxC,MAAyD,EAAxF;AACA,UAAMC,wBAAwB,GAAG,KAAK9I,MAAL,CAAY+I,iBAAZ,EAAjC;AACA,UAAMC,cAAc,GAAG,CAAC,GAAGP,sBAAJ,EAA4B,GAAGK,wBAA/B,CAAvB;AACAE,IAAAA,cAAc,CAAC1B,OAAf,CAAwBsB,KAAD,IAAW;AAChC,YAAMK,UAAU,GAAGrB,iCAAcgB,KAAd,CAAnB;;AACA,UAAI,CAACK,UAAL,EAAiB;AACf,cAAM,IAAItD,KAAJ,CACH,iCAAgCiD,KAAM,4CAA2CM,MAAM,CAACC,IAAP,CAChFvB,gCADgF,EAEhFwB,IAFgF,CAE3E,IAF2E,CAErE,EAHT,CAAN;AAKD;;AACDpF,MAAAA,UAAU,CAACsD,OAAX,CAAoBC,SAAD,IAAe;AAChCA,QAAAA,SAAS,CAACvH,MAAV,CAAiBwI,MAAjB,CAAwBS,UAAxB;AACD,OAFD;AAGD,KAZD;AAaA,UAAMI,4BAA4B,GAAGrF,UAAU,CAACjC,MAAX,CAAmBwF,SAAD;AAAA;;AAAA,mCAAeA,SAAS,CAACvH,MAAzB,uDAAe,mBAAkBsJ,kBAAlB,EAAf;AAAA,KAAlB,CAArC;;AACA,QAAI,CAACnG,iBAAEC,OAAF,CAAUiG,4BAAV,CAAL,EAA8C;AAC5C,YAAM,KAAIE,4CAAJ,EAAyBF,4BAAzB,CAAN;AACD;AACF;;AAE+B,QAAlBnG,kBAAkB,CAC9BsG,UAD8B,EAE9BpH,YAF8B,EAG9BD,eAH8B,EAI9Bd,OAJ8B,EAK9BT,KAL8B,EAM9BV,GAN8B,EAO9BK,OAP8B,EAQoB;AAClD,UAAM0C,QAAkB,GAAG,EAA3B;AACA,UAAMP,cAAc,GAAG,KAAIC,yBAAJ,EAAmB,KAAK7C,SAAL,CAAe2C,QAAlC,CAAvB;;AACA,QAAIpB,OAAJ,EAAa;AACX,YAAMoI,oBAAoB,GAAG/G,cAAc,CAACgH,wBAAf,EAA7B;AACA,aAAO;AAAE1G,QAAAA,MAAM,EAAEyG,oBAAV;AAAgCxG,QAAAA,QAAQ,EAAE;AAA1C,OAAP;AACD;;AAED,UAAM4D,oBAAoB,GAAG2C,UAAU,GACnC,MAAM9G,cAAc,CAACiH,wBAAf,CAAwCxH,eAAxC,CAD6B,GAEnC,MAAMO,cAAc,CAACoE,wBAAf,EAFV;AAIA,UAAMd,iBAAiB,GAAG,MAAMtD,cAAc,CAACkH,2BAAf,EAAhC;AACA,UAAMC,oBAAoB,GAAG7D,iBAAiB,CAAC2C,GAAlB,CAAuBtE,CAAD,IAAOA,CAAC,CAACyF,OAAF,EAA7B,CAA7B;;AAEA,QAAI5J,GAAG,CAAC0B,MAAR,EAAgB;AACd,YAAMoB,MAAM,GAAG,MAAM+G,OAAO,CAAC1J,GAAR,CACnBH,GAAG,CAACyI,GAAJ,CAAQ,MAAOpE,EAAP,IAAc;AACpB,cAAM,CAACyF,YAAD,EAAeC,OAAf,IAA0B1F,EAAE,CAACmE,KAAH,CAAS,GAAT,CAAhC;AACA,cAAMnC,aAAa,GAAG,4BAAYhC,EAAZ,CAAtB;;AACA,YAAIgC,aAAJ,EAAmB;AACjB,gBAAM2D,MAAM,GAAGvH,0BAAeoE,0BAAf,CAA0CF,oBAA1C,EAAgEmD,YAAhE,CAAf;;AACA,iBAAOE,MAAM,CAACvB,GAAP,CAAYnC,KAAD,IAAWA,KAAK,CAAC2D,aAAN,CAAoBF,OAApB,CAAtB,CAAP;AACD;;AACD,cAAMzD,KAAK,GAAG,KAAK1G,SAAL,CAAe2C,QAAf,CAAwBgE,WAAxB,CAAoCuD,YAApC,CAAd;;AACA,YAAI,CAACpJ,KAAL,EAAY;AACV,gBAAM8F,eAAe,GAAG,MAAM,KAAK5G,SAAL,CAAe2C,QAAf,CAAwBkE,sBAAxB,CAA+CH,KAA/C,CAA9B;AACA,cAAIE,eAAe,CAACE,QAAhB,KAA6B,KAAjC,EAAwC,OAAO,IAAP;AACzC;;AACD,eAAOJ,KAAK,CAAC2D,aAAN,CAAoBF,OAApB,CAAP;AACD,OAbD,CADmB,CAArB;AAiBA,aAAO;AAAEjH,QAAAA,MAAM,EAAE,uBAAQA,MAAM,CAACoH,IAAP,EAAR,CAAV;AAAkCnH,QAAAA;AAAlC,OAAP;AACD;;AAED,QAAI1C,OAAJ,EAAa;AACX,aAAO;AAAEyC,QAAAA,MAAM,EAAE6G,oBAAV;AAAgC5G,QAAAA;AAAhC,OAAP;AACD;;AAED4D,IAAAA,oBAAoB,CAACqB,IAArB,CAA0B,GAAG2B,oBAA7B;;AAEA,QAAIL,UAAU,IAAIpH,YAAlB,EAAgC;AAC9B,YAAMiI,0BAA0B,GAAG,MAAM,KAAKvK,SAAL,CAAeoB,KAAf,CAAqB4D,WAArB,CAAiCwF,cAAjC,CACvCzD,oBADuC,EAEvC,KAFuC,CAAzC;AAIAwD,MAAAA,0BAA0B,CAAC/C,OAA3B,CAAoCiD,WAAD,IAAiB;AAClD,YAAIA,WAAW,CAACN,OAAZ,IAAuBO,kBAAOC,KAAP,CAAaF,WAAW,CAACN,OAAzB,CAAvB,IAA4DO,kBAAOE,EAAP,CAAUH,WAAW,CAACN,OAAtB,EAA+B7H,YAA/B,CAAhE,EAA8G;AAC5Ga,UAAAA,QAAQ,CAACiF,IAAT,CAAe,YAAWqC,WAAW,CAAC7G,QAAZ,EAAuB,+BAA8BtB,YAAa,EAA5F;AACD;AACF,OAJD;AAKD;;AAED,WAAO;AAAEY,MAAAA,MAAM,EAAE6D,oBAAoB,CAAC8B,GAArB,CAA0BpE,EAAD,IAAQA,EAAE,CAAC4F,aAAH,CAAiBQ,SAAjB,CAAjC,CAAV;AAAyE1H,MAAAA;AAAzE,KAAP;AACD;;AAKoB,eAAR2H,QAAQ,CAAC,CAAC9K,SAAD,EAAY+K,GAAZ,EAAiBC,SAAjB,EAA4BC,UAA5B,EAAwC/K,MAAxC,CAAD,EAMlB;AACD,UAAMD,MAAM,GAAGgL,UAAU,CAACC,YAAX,CAAwBC,2BAAe1G,EAAvC,CAAf;AACA,UAAM2G,QAAQ,GAAG,IAAItL,YAAJ,CAAiBE,SAAjB,EAA4BC,MAA5B,EAAoCC,MAApC,CAAjB;AACA,UAAMmL,OAAO,GAAG,KAAIC,kBAAJ,EAAYN,SAAS,CAACO,aAAV,EAAZ,EAAuCH,QAAvC,CAAhB;AACA,UAAMI,MAAM,GAAG,KAAIC,gBAAJ,EAAWT,SAAS,CAACO,aAAV,EAAX,EAAsCH,QAAtC,CAAf;AACAL,IAAAA,GAAG,CAACW,QAAJ,CAAaF,MAAb,EAAqBH,OAArB;AACA,WAAOD,QAAP;AACD;;AAvauB;;;gCAAbtL,Y,WAuZI,E;gCAvZJA,Y,kBAwZW,CAAC6L,oBAAD,EAAkBC,gBAAlB,EAA6BC,oBAA7B,EAA8CC,sBAA9C,EAA4DC,iBAA5D,C;gCAxZXjM,Y,aAyZMkM,kB;;AAiBnBb,2BAAec,UAAf,CAA0BnM,YAA1B;;eAEeA,Y","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { isString } from '@teambit/legacy/dist/utils';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK, DEFAULT_BIT_RELEASE_TYPE } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport HooksManager from '@teambit/legacy/dist/hooks';\nimport { TagResults, BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport tagModelComponent from '@teambit/legacy/dist/scope/component-ops/tag-model-component';\nimport { LanesIsDisabled } from '@teambit/legacy/dist/consumer/lanes/exceptions/lanes-is-disabled';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { FailedLoadForTag } from '@teambit/legacy/dist/consumer/component/exceptions/failed-load-for-tag';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport class SnappingMain {\n constructor(private workspace: Workspace, private logger: Logger, private issues: IssuesMain) {}\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n ver,\n all = false,\n editor = '',\n snapped = false,\n patch,\n minor,\n major,\n preRelease,\n force = false,\n verbose = false,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n scope,\n build,\n soft = false,\n persist = false,\n forceDeploy = false,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean | string;\n ver?: string;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n if (soft) build = false;\n function getVersion(): string | undefined {\n if (scope && isString(scope)) return scope;\n if (all && isString(all)) return all;\n if (snapped && isString(snapped)) return snapped;\n return ver;\n }\n\n if (!ids.length && !all && !snapped && !scope && !persist) {\n throw new BitError('missing [id]. to tag all components, please use --all flag');\n }\n if (ids.length && all) {\n throw new BitError(\n 'you can use either a specific component [id] to tag a particular component or --all flag to tag them all'\n );\n }\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (all && persist) {\n throw new BitError('you can use either --all or --persist, but not both');\n }\n if (editor && persist) {\n throw new BitError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new BitError('you can use either --editor or --message, but not both');\n }\n\n const releaseFlags = [patch, minor, major, preRelease].filter((x) => x);\n if (releaseFlags.length > 1) {\n throw new BitError('you can use only one of the following - patch, minor, major, pre-release');\n }\n\n let releaseType: ReleaseType = DEFAULT_BIT_RELEASE_TYPE;\n const includeImported = Boolean(scope && all);\n\n if (major) releaseType = 'major';\n else if (minor) releaseType = 'minor';\n else if (patch) releaseType = 'patch';\n else if (preRelease) releaseType = 'prerelease';\n\n const exactVersion = getVersion();\n all = Boolean(all);\n snapped = Boolean(snapped);\n preRelease = typeof preRelease === 'string' ? preRelease : '';\n\n if (!this.workspace) throw new ConsumerNotFound();\n const idsHasWildcard = hasWildcard(ids);\n const isAll = Boolean(all || scope || idsHasWildcard);\n const validExactVersion = validateVersion(exactVersion);\n const consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n loader.start('determine components to tag...');\n const newComponents = await componentsList.listNewComponents();\n const { bitIds, warnings } = await this.getComponentsToTag(\n Boolean(scope),\n exactVersion,\n includeImported,\n persist,\n force,\n ids,\n snapped\n );\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n if (this.workspace.isLegacy) {\n persist = true;\n }\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n consumerComponents: components,\n ids: legacyBitIds,\n scope: this.workspace.scope.legacyScope,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preRelease,\n force,\n consumer: this.workspace.consumer,\n ignoreNewestVersion,\n skipTests,\n verbose,\n skipAutoTag,\n soft,\n build,\n persist,\n resolveUnmerged: false,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n });\n\n const tagResults = { taggedComponents, autoTaggedResults, isSoftTag: soft, publishedPackages };\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.warnings = warnings;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.newComponents = newComponents;\n const postHook = isAll ? POST_TAG_ALL_HOOK : POST_TAG_HOOK;\n HooksManagerInstance?.triggerHook(postHook, tagResults);\n Analytics.setExtraData(\n 'num_components',\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n R.concat(tagResults.taggedComponents, tagResults.autoTaggedResults, tagResults.newComponents).length\n );\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n /**\n * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.\n * once a component is snapped on a lane, it becomes part of it.\n */\n async snap({\n id, // @todo: rename to \"patterns\"\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n resolveUnmerged = false,\n message = '',\n force = false,\n verbose = false,\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n }: {\n id?: string;\n legacyBitIds?: BitIds;\n resolveUnmerged?: boolean;\n message?: string;\n force?: boolean;\n verbose?: boolean;\n ignoreIssues?: string;\n build: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new ConsumerNotFound();\n if (id && legacyBitIds) throw new Error(`please pass either id or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n if (consumer.isLegacy) throw new LanesIsDisabled();\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap());\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n scope: this.workspace.scope.legacyScope,\n message,\n force,\n consumer: this.workspace.consumer,\n skipTests,\n verbose,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n resolveUnmerged,\n isSnap: true,\n disableTagAndSnapPipelines,\n forceDeploy,\n });\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const snapResults: SnapResults = { snappedComponents: taggedComponents, autoSnappedResults: autoTaggedResults };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.name;\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(): Promise<BitIds> {\n const idHasWildcard = id && hasWildcard(id);\n if (id && !idHasWildcard) {\n const bitId = consumer.getParsedId(id);\n if (!force) {\n const componentStatus = await consumer.getComponentStatusById(bitId);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (componentStatus.modified === false) return null;\n }\n return new BitIds(bitId);\n }\n const tagPendingComponents = await componentsList.listTagPendingComponents();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (R.isEmpty(tagPendingComponents)) return null;\n return idHasWildcard ? ComponentsList.filterComponentsByWildcard(tagPendingComponents, id) : tagPendingComponents;\n }\n }\n\n private async loadComponentsForTag(ids: BitIds): Promise<Component[]> {\n const { components } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n if (this.workspace.isLegacy) {\n return components;\n }\n let shouldReloadComponents = false;\n const componentsWithRelativePaths: string[] = [];\n const componentsWithFilesNotDir: string[] = [];\n const componentsWithCustomModuleResolution: string[] = [];\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (componentMap.rootDir) return;\n const hasRelativePaths = component.issues?.getIssue(IssuesClasses.RelativeComponentsAuthored);\n const hasCustomModuleResolutions = component.issues?.getIssue(IssuesClasses.MissingCustomModuleResolutionLinks);\n // leaving this because it can be helpful for users upgrade from legacy\n if (componentMap.trackDir && !hasRelativePaths) {\n componentMap.changeRootDirAndUpdateFilesAccordingly(componentMap.trackDir);\n shouldReloadComponents = true;\n return;\n }\n if (hasRelativePaths) {\n componentsWithRelativePaths.push(component.id.toStringWithoutVersion());\n }\n if (!componentMap.trackDir) {\n componentsWithFilesNotDir.push(component.id.toStringWithoutVersion());\n }\n if (hasCustomModuleResolutions) {\n componentsWithCustomModuleResolution.push(component.id.toStringWithoutVersion());\n }\n });\n if (componentsWithRelativePaths.length || componentsWithFilesNotDir.length) {\n throw new FailedLoadForTag(\n componentsWithRelativePaths.sort(),\n componentsWithFilesNotDir.sort(),\n componentsWithCustomModuleResolution.sort()\n );\n }\n if (!shouldReloadComponents) return components;\n this.workspace.clearCache();\n const { components: reloadedComponents } = await this.workspace.consumer.loadComponents(ids);\n return reloadedComponents;\n }\n\n private throwForComponentIssues(components: Component[], ignoreIssues?: string) {\n components.forEach((component) => {\n if (this.workspace.isLegacy && component.issues) {\n component.issues.delete(IssuesClasses.RelativeComponentsAuthored);\n }\n });\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnore();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n issuesToIgnore.forEach((issue) => {\n const issueClass = IssuesClasses[issue];\n if (!issueClass) {\n throw new Error(\n `unrecognized component-issue \"${issue}\". please specify one of the following:\\n${Object.keys(\n IssuesClasses\n ).join('\\n')}`\n );\n }\n components.forEach((component) => {\n component.issues.delete(issueClass);\n });\n });\n const componentsWithBlockingIssues = components.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private async getComponentsToTag(\n isAllScope: boolean,\n exactVersion: string | undefined,\n includeImported: boolean,\n persist: boolean,\n force: boolean,\n ids: string[],\n snapped: boolean\n ): Promise<{ bitIds: BitId[]; warnings: string[] }> {\n const warnings: string[] = [];\n const componentsList = new ComponentsList(this.workspace.consumer);\n if (persist) {\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n return { bitIds: softTaggedComponents, warnings: [] };\n }\n\n const tagPendingComponents = isAllScope\n ? await componentsList.listTagPendingOfAllScope(includeImported)\n : await componentsList.listTagPendingComponents();\n\n const snappedComponents = await componentsList.listSnappedComponentsOnMain();\n const snappedComponentsIds = snappedComponents.map((c) => c.toBitId());\n\n if (ids.length) {\n const bitIds = await Promise.all(\n ids.map(async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idHasWildcard = hasWildcard(id);\n if (idHasWildcard) {\n const allIds = ComponentsList.filterComponentsByWildcard(tagPendingComponents, idWithoutVer);\n return allIds.map((bitId) => bitId.changeVersion(version));\n }\n const bitId = this.workspace.consumer.getParsedId(idWithoutVer);\n if (!force) {\n const componentStatus = await this.workspace.consumer.getComponentStatusById(bitId);\n if (componentStatus.modified === false) return null;\n }\n return bitId.changeVersion(version);\n })\n );\n\n return { bitIds: compact(bitIds.flat()), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n tagPendingComponents.push(...snappedComponentsIds);\n\n if (isAllScope && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(\n tagPendingComponents,\n false\n );\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingComponents.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, CLIAspect, CommunityAspect, LoggerAspect, IssuesAspect];\n static runtime = MainRuntime;\n static async provider([workspace, cli, community, loggerMain, issues]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(workspace, logger, issues);\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping);\n const tagCmd = new TagCmd(community.getBaseDomain(), snapping);\n cli.register(tagCmd, snapCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"]}
1
+ {"version":3,"sources":["snapping.main.runtime.ts"],"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","tag","ids","message","ver","all","editor","snapped","patch","minor","major","preRelease","force","verbose","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","scope","build","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","BUILD_ON_CI","Boolean","getVersion","length","BitError","releaseFlags","filter","x","releaseType","DEFAULT_BIT_RELEASE_TYPE","includeImported","exactVersion","ConsumerNotFound","idsHasWildcard","isAll","validExactVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","isLegacy","debug","toString","Analytics","addBreadCrumb","hashData","componentFsCache","deleteAllDependenciesDataCache","components","loadComponentsForTag","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","areComponentsMissingFromScope","some","c","componentFromModel","id","hasScope","ComponentsPendingImport","taggedComponents","autoTaggedResults","publishedPackages","consumerComponents","legacyScope","resolveUnmerged","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","snap","skipAutoSnap","Error","LanesIsDisabled","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","idHasWildcard","bitId","getParsedId","componentStatus","getComponentStatusById","modified","tagPendingComponents","listTagPendingComponents","filterComponentsByWildcard","loadComponents","toVersionLatest","shouldReloadComponents","componentsWithRelativePaths","componentsWithFilesNotDir","componentsWithCustomModuleResolution","forEach","component","componentMap","rootDir","hasRelativePaths","getIssue","IssuesClasses","RelativeComponentsAuthored","hasCustomModuleResolutions","MissingCustomModuleResolutionLinks","trackDir","changeRootDirAndUpdateFilesAccordingly","push","toStringWithoutVersion","FailedLoadForTag","sort","clearCache","reloadedComponents","legacyComponents","delete","issuesToIgnoreFromFlag","split","map","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnore","issuesToIgnore","includes","CircularDependencies","getManyByLegacy","addInsightsAsComponentIssues","issueClass","Object","keys","join","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","throwForComponent","dependenciesIds","getAllDependenciesIds","Promise","depId","hasVersion","modelComp","getModelComponentIfExist","version","loadVersion","objects","concurrency","isAllScope","softTaggedComponents","listSoftTaggedComponents","listTagPendingOfAllScope","listSnappedComponentsOnMain","snappedComponentsIds","toBitId","idWithoutVer","allIds","changeVersion","flat","tagPendingComponentsLatest","latestVersions","componentId","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapping","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","MainRuntime","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;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","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { isString } from '@teambit/legacy/dist/utils';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK, DEFAULT_BIT_RELEASE_TYPE } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport HooksManager from '@teambit/legacy/dist/hooks';\nimport { TagResults, BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport tagModelComponent from '@teambit/legacy/dist/scope/component-ops/tag-model-component';\nimport { LanesIsDisabled } from '@teambit/legacy/dist/consumer/lanes/exceptions/lanes-is-disabled';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport { FailedLoadForTag } from '@teambit/legacy/dist/consumer/component/exceptions/failed-load-for-tag';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport class SnappingMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain\n ) {}\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n ver,\n all = false,\n editor = '',\n snapped = false,\n patch,\n minor,\n major,\n preRelease,\n force = false,\n verbose = false,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n scope,\n build,\n soft = false,\n persist = false,\n forceDeploy = false,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean | string;\n ver?: string;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n if (soft) build = false;\n function getVersion(): string | undefined {\n if (scope && isString(scope)) return scope;\n if (all && isString(all)) return all;\n if (snapped && isString(snapped)) return snapped;\n return ver;\n }\n\n if (!ids.length && !all && !snapped && !scope && !persist) {\n throw new BitError('missing [id]. to tag all components, please use --all flag');\n }\n if (ids.length && all) {\n throw new BitError(\n 'you can use either a specific component [id] to tag a particular component or --all flag to tag them all'\n );\n }\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (all && persist) {\n throw new BitError('you can use either --all or --persist, but not both');\n }\n if (editor && persist) {\n throw new BitError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new BitError('you can use either --editor or --message, but not both');\n }\n\n const releaseFlags = [patch, minor, major, preRelease].filter((x) => x);\n if (releaseFlags.length > 1) {\n throw new BitError('you can use only one of the following - patch, minor, major, pre-release');\n }\n\n let releaseType: ReleaseType = DEFAULT_BIT_RELEASE_TYPE;\n const includeImported = Boolean(scope && all);\n\n if (major) releaseType = 'major';\n else if (minor) releaseType = 'minor';\n else if (patch) releaseType = 'patch';\n else if (preRelease) releaseType = 'prerelease';\n\n const exactVersion = getVersion();\n all = Boolean(all);\n snapped = Boolean(snapped);\n preRelease = typeof preRelease === 'string' ? preRelease : '';\n\n if (!this.workspace) throw new ConsumerNotFound();\n const idsHasWildcard = hasWildcard(ids);\n const isAll = Boolean(all || scope || idsHasWildcard);\n const validExactVersion = validateVersion(exactVersion);\n const consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n loader.start('determine components to tag...');\n const newComponents = await componentsList.listNewComponents();\n const { bitIds, warnings } = await this.getComponentsToTag(\n Boolean(scope),\n exactVersion,\n includeImported,\n persist,\n force,\n ids,\n snapped\n );\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n if (this.workspace.isLegacy) {\n persist = true;\n }\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n consumerComponents: components,\n ids: legacyBitIds,\n scope: this.workspace.scope.legacyScope,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preRelease,\n force,\n consumer: this.workspace.consumer,\n ignoreNewestVersion,\n skipTests,\n verbose,\n skipAutoTag,\n soft,\n build,\n persist,\n resolveUnmerged: false,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n });\n\n const tagResults = { taggedComponents, autoTaggedResults, isSoftTag: soft, publishedPackages };\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.warnings = warnings;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.newComponents = newComponents;\n const postHook = isAll ? POST_TAG_ALL_HOOK : POST_TAG_HOOK;\n HooksManagerInstance?.triggerHook(postHook, tagResults);\n Analytics.setExtraData(\n 'num_components',\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n R.concat(tagResults.taggedComponents, tagResults.autoTaggedResults, tagResults.newComponents).length\n );\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n /**\n * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.\n * once a component is snapped on a lane, it becomes part of it.\n */\n async snap({\n id, // @todo: rename to \"patterns\"\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n resolveUnmerged = false,\n message = '',\n force = false,\n verbose = false,\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n }: {\n id?: string;\n legacyBitIds?: BitIds;\n resolveUnmerged?: boolean;\n message?: string;\n force?: boolean;\n verbose?: boolean;\n ignoreIssues?: string;\n build: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new ConsumerNotFound();\n if (id && legacyBitIds) throw new Error(`please pass either id or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n if (consumer.isLegacy) throw new LanesIsDisabled();\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap());\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n scope: this.workspace.scope.legacyScope,\n message,\n force,\n consumer: this.workspace.consumer,\n skipTests,\n verbose,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n resolveUnmerged,\n isSnap: true,\n disableTagAndSnapPipelines,\n forceDeploy,\n });\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const snapResults: SnapResults = { snappedComponents: taggedComponents, autoSnappedResults: autoTaggedResults };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.name;\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(): Promise<BitIds> {\n const idHasWildcard = id && hasWildcard(id);\n if (id && !idHasWildcard) {\n const bitId = consumer.getParsedId(id);\n if (!force) {\n const componentStatus = await consumer.getComponentStatusById(bitId);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (componentStatus.modified === false) return null;\n }\n return new BitIds(bitId);\n }\n const tagPendingComponents = await componentsList.listTagPendingComponents();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (R.isEmpty(tagPendingComponents)) return null;\n return idHasWildcard ? ComponentsList.filterComponentsByWildcard(tagPendingComponents, id) : tagPendingComponents;\n }\n }\n\n private async loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n if (this.workspace.isLegacy) {\n return components;\n }\n let shouldReloadComponents = false;\n const componentsWithRelativePaths: string[] = [];\n const componentsWithFilesNotDir: string[] = [];\n const componentsWithCustomModuleResolution: string[] = [];\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (componentMap.rootDir) return;\n const hasRelativePaths = component.issues?.getIssue(IssuesClasses.RelativeComponentsAuthored);\n const hasCustomModuleResolutions = component.issues?.getIssue(IssuesClasses.MissingCustomModuleResolutionLinks);\n // leaving this because it can be helpful for users upgrade from legacy\n if (componentMap.trackDir && !hasRelativePaths) {\n componentMap.changeRootDirAndUpdateFilesAccordingly(componentMap.trackDir);\n shouldReloadComponents = true;\n return;\n }\n if (hasRelativePaths) {\n componentsWithRelativePaths.push(component.id.toStringWithoutVersion());\n }\n if (!componentMap.trackDir) {\n componentsWithFilesNotDir.push(component.id.toStringWithoutVersion());\n }\n if (hasCustomModuleResolutions) {\n componentsWithCustomModuleResolution.push(component.id.toStringWithoutVersion());\n }\n });\n if (componentsWithRelativePaths.length || componentsWithFilesNotDir.length) {\n throw new FailedLoadForTag(\n componentsWithRelativePaths.sort(),\n componentsWithFilesNotDir.sort(),\n componentsWithCustomModuleResolution.sort()\n );\n }\n if (!shouldReloadComponents) return components;\n this.workspace.clearCache();\n const { components: reloadedComponents } = await this.workspace.consumer.loadComponents(ids);\n return reloadedComponents;\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], ignoreIssues?: string) {\n legacyComponents.forEach((component) => {\n if (this.workspace.isLegacy && component.issues) {\n component.issues.delete(IssuesClasses.RelativeComponentsAuthored);\n }\n });\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnore();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n if (!this.workspace.isLegacy && !issuesToIgnore.includes(IssuesClasses.CircularDependencies.name)) {\n const components = await this.workspace.getManyByLegacy(legacyComponents);\n await this.insights.addInsightsAsComponentIssues(components);\n }\n issuesToIgnore.forEach((issue) => {\n const issueClass = IssuesClasses[issue];\n if (!issueClass) {\n throw new Error(\n `unrecognized component-issue \"${issue}\". please specify one of the following:\\n${Object.keys(\n IssuesClasses\n ).join('\\n')}`\n );\n }\n legacyComponents.forEach((component) => {\n component.issues.delete(issueClass);\n });\n });\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n if (this.workspace.isLegacy) {\n return;\n }\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n private async getComponentsToTag(\n isAllScope: boolean,\n exactVersion: string | undefined,\n includeImported: boolean,\n persist: boolean,\n force: boolean,\n ids: string[],\n snapped: boolean\n ): Promise<{ bitIds: BitId[]; warnings: string[] }> {\n const warnings: string[] = [];\n const componentsList = new ComponentsList(this.workspace.consumer);\n if (persist) {\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n return { bitIds: softTaggedComponents, warnings: [] };\n }\n\n const tagPendingComponents = isAllScope\n ? await componentsList.listTagPendingOfAllScope(includeImported)\n : await componentsList.listTagPendingComponents();\n\n const snappedComponents = await componentsList.listSnappedComponentsOnMain();\n const snappedComponentsIds = snappedComponents.map((c) => c.toBitId());\n\n if (ids.length) {\n const bitIds = await Promise.all(\n ids.map(async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idHasWildcard = hasWildcard(id);\n if (idHasWildcard) {\n const allIds = ComponentsList.filterComponentsByWildcard(tagPendingComponents, idWithoutVer);\n return allIds.map((bitId) => bitId.changeVersion(version));\n }\n const bitId = this.workspace.consumer.getParsedId(idWithoutVer);\n if (!force) {\n const componentStatus = await this.workspace.consumer.getComponentStatusById(bitId);\n if (componentStatus.modified === false) return null;\n }\n return bitId.changeVersion(version);\n })\n );\n\n return { bitIds: compact(bitIds.flat()), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n tagPendingComponents.push(...snappedComponentsIds);\n\n if (isAllScope && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(\n tagPendingComponents,\n false\n );\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingComponents.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, CLIAspect, CommunityAspect, LoggerAspect, IssuesAspect, InsightsAspect];\n static runtime = MainRuntime;\n static async provider([workspace, cli, community, loggerMain, issues, insights]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(workspace, logger, issues, insights);\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping);\n const tagCmd = new TagCmd(community.getBaseDomain(), snapping);\n cli.register(tagCmd, snapCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"]}
package/package.json CHANGED
@@ -1,28 +1,30 @@
1
1
  {
2
2
  "name": "@teambit/snapping",
3
- "version": "0.0.7",
3
+ "version": "0.0.10",
4
4
  "homepage": "https://bit.dev/teambit/component/snapping",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "snapping",
9
- "version": "0.0.7"
9
+ "version": "0.0.10"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
13
- "@teambit/harmony": "0.2.11",
14
13
  "lodash": "4.17.21",
14
+ "@teambit/harmony": "0.2.11",
15
+ "p-map": "4.0.0",
15
16
  "ramda": "0.27.1",
16
17
  "semver": "7.3.4",
17
18
  "@babel/runtime": "7.12.18",
18
19
  "core-js": "^3.0.0",
19
20
  "@teambit/bit-error": "0.0.394",
20
- "@teambit/issues": "0.0.2",
21
- "@teambit/cli": "0.0.463",
22
- "@teambit/component-issues": "0.0.48",
23
- "@teambit/community": "0.0.11",
24
- "@teambit/logger": "0.0.555",
25
- "@teambit/workspace": "0.0.692"
21
+ "@teambit/issues": "0.0.3",
22
+ "@teambit/cli": "0.0.464",
23
+ "@teambit/component-issues": "0.0.49",
24
+ "@teambit/community": "0.0.12",
25
+ "@teambit/insights": "0.0.695",
26
+ "@teambit/logger": "0.0.556",
27
+ "@teambit/workspace": "0.0.695"
26
28
  },
27
29
  "devDependencies": {
28
30
  "@types/lodash": "4.14.165",
@@ -35,13 +37,13 @@
35
37
  "@types/react-dom": "^17.0.5",
36
38
  "@types/react": "^17.0.8",
37
39
  "@types/node": "12.20.4",
38
- "@teambit/compiler": "0.0.692",
40
+ "@teambit/compiler": "0.0.695",
39
41
  "@teambit/component.testing.mock-components": "0.0.4",
40
42
  "@teambit/harmony.testing.load-aspect": "0.0.4",
41
43
  "@teambit/workspace.testing.mock-workspace": "0.0.4"
42
44
  },
43
45
  "peerDependencies": {
44
- "@teambit/legacy": "1.0.241",
46
+ "@teambit/legacy": "1.0.242",
45
47
  "react-dom": "^16.8.0 || ^17.0.0",
46
48
  "react": "^16.8.0 || ^17.0.0"
47
49
  },
@@ -69,7 +71,7 @@
69
71
  "react": "-"
70
72
  },
71
73
  "peerDependencies": {
72
- "@teambit/legacy": "1.0.241",
74
+ "@teambit/legacy": "1.0.242",
73
75
  "react-dom": "^16.8.0 || ^17.0.0",
74
76
  "react": "^16.8.0 || ^17.0.0"
75
77
  }