@teambit/snapping 0.0.397 → 0.0.399

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/snap-cmd.js CHANGED
@@ -49,6 +49,13 @@ function _bitError() {
49
49
  };
50
50
  return data;
51
51
  }
52
+ function _tagCmd() {
53
+ const data = require("./tag-cmd");
54
+ _tagCmd = function () {
55
+ return data;
56
+ };
57
+ return data;
58
+ }
52
59
  class SnapCmd {
53
60
  constructor(snapping, logger) {
54
61
  this.snapping = snapping;
@@ -119,13 +126,14 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
119
126
  autoSnappedResults,
120
127
  warnings,
121
128
  newComponents,
122
- laneName
129
+ laneName,
130
+ removedComponents
123
131
  } = results;
124
132
  const changedComponents = snappedComponents.filter(component => !newComponents.searchWithoutVersion(component.id));
125
133
  const addedComponents = snappedComponents.filter(component => newComponents.searchWithoutVersion(component.id));
126
134
  const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;
127
135
  const warningsOutput = warnings && warnings.length ? `${_chalk().default.yellow(warnings.join('\n'))}\n\n` : '';
128
- const tagExplanation = `\n(use "bit export" to push these components to a remote")
136
+ const snapExplanation = `\n(use "bit export" to push these components to a remote")
129
137
  (use "bit reset" to unstage versions)\n`;
130
138
  const compInBold = id => {
131
139
  const version = id.hasVersion() ? `@${id.version}` : '';
@@ -148,7 +156,7 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
148
156
  return `\n${_chalk().default.underline(label)}\n(${explanation})\n${outputComponents(components)}\n`;
149
157
  };
150
158
  const laneStr = laneName ? ` on "${laneName}" lane` : '';
151
- return warningsOutput + _chalk().default.green(`${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`) + tagExplanation + outputIfExists('new components', 'first version for components', addedComponents) + outputIfExists('changed components', 'components that got a version bump', changedComponents);
159
+ return warningsOutput + _chalk().default.green(`${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`) + snapExplanation + outputIfExists('new components', 'first version for components', addedComponents) + outputIfExists('changed components', 'components that got a version bump', changedComponents) + (0, _tagCmd().outputIdsIfExists)('removed components', removedComponents);
152
160
  }
153
161
  }
154
162
  exports.SnapCmd = SnapCmd;
@@ -1 +1 @@
1
- {"version":3,"names":["SnapCmd","constructor","snapping","logger","name","description","COMPONENT_PATTERN_HELP","Object","keys","IssuesClasses","join","report","pattern","message","all","force","unmerged","editor","ignoreIssues","build","skipTests","skipAutoSnap","disableSnapPipeline","forceDeploy","unmodified","failFast","isFeatureEnabled","BUILD_ON_CI","Boolean","disableTagAndSnapPipelines","BitError","consoleWarning","results","snap","exitOnFirstFailedTask","chalk","yellow","NOTHING_TO_SNAP_MSG","snappedComponents","autoSnappedResults","warnings","newComponents","laneName","changedComponents","filter","component","searchWithoutVersion","id","addedComponents","autoTaggedCount","length","warningsOutput","tagExplanation","compInBold","version","hasVersion","bold","toStringWithoutVersion","outputComponents","comps","map","componentOutput","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_SNAPPED_MSG","outputIfExists","label","explanation","components","underline","laneStr","green"],"sources":["snap-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { NOTHING_TO_SNAP_MSG, AUTO_SNAPPED_MSG, COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { SnappingMain, SnapResults } from './snapping.main.runtime';\n\nexport class SnapCmd implements Command {\n name = 'snap [component-pattern]';\n description = 'EXPERIMENTAL. create an immutable and exportable component snapshot (no release version)';\n extendedDescription: string;\n group = 'development';\n arguments = [\n {\n name: 'component-pattern',\n description: `${COMPONENT_PATTERN_HELP}. By default, all new and modified components are snapped.`,\n },\n ];\n helpUrl = 'docs/components/snaps';\n alias = '';\n options = [\n ['m', 'message <message>', 'log message describing the latest changes'],\n ['', 'unmodified', 'include unmodified components (by default, only new and modified components are snapped)'],\n ['', 'unmerged', 'EXPERIMENTAL. complete a merge process by snapping the unmerged components'],\n [\n 'b',\n 'build',\n 'EXPERIMENTAL. not needed for now. run the build pipeline in case the feature-flag build-on-ci is enabled',\n ],\n [\n '',\n 'editor [editor]',\n 'EXPERIMENTAL. open an editor to write a tag message for each component. optionally, specify the editor-name (defaults to vim).',\n ],\n ['', 'skip-tests', 'skip running component tests during snap process'],\n ['', 'skip-auto-snap', 'skip auto snapping dependents'],\n ['', 'disable-snap-pipeline', 'skip the snap pipeline'],\n ['', 'force-deploy', 'run the deploy pipeline although the build failed'],\n [\n 'i',\n 'ignore-issues [issues]',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ['a', 'all', 'DEPRECATED (not needed anymore, it is the default now). snap all new and modified components'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)',\n ],\n [\n 'f',\n 'force',\n 'DEPRECATED (use \"--skip-tests\" or \"--unmodified\" instead). force-snap even if tests are failing and even when component has not changed',\n ],\n ] as CommandOptions;\n loader = true;\n migration = true;\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n async report(\n [pattern]: string[],\n {\n message = '',\n all = false,\n force = false,\n unmerged = false,\n editor = '',\n ignoreIssues,\n build,\n skipTests = false,\n skipAutoSnap = false,\n disableSnapPipeline = false,\n forceDeploy = false,\n unmodified = false,\n failFast = false,\n }: {\n message?: string;\n all?: boolean;\n force?: boolean;\n unmerged?: boolean;\n editor?: string;\n ignoreIssues?: string;\n build?: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableSnapPipeline?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n failFast?: boolean;\n }\n ) {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-snap-pipeline, but not both');\n }\n\n if (all) {\n this.logger.consoleWarning(\n `--all is deprecated, please omit it. \"bit snap\" by default will snap all new and modified components`\n );\n }\n if (force) {\n this.logger.consoleWarning(\n `--force is deprecated, use either --skip-tests or --unmodified depending on the use case`\n );\n if (pattern) unmodified = true;\n }\n if (!message && !editor) {\n this.logger.consoleWarning(\n `--message will be mandatory in the next few releases. make sure to add a message with your snap`\n );\n }\n\n const results = await this.snapping.snap({\n pattern,\n message,\n unmerged,\n editor,\n ignoreIssues,\n build,\n skipTests,\n skipAutoSnap,\n disableTagAndSnapPipelines,\n forceDeploy,\n unmodified,\n exitOnFirstFailedTask: failFast,\n });\n\n if (!results) return chalk.yellow(NOTHING_TO_SNAP_MSG);\n const { snappedComponents, autoSnappedResults, warnings, newComponents, laneName }: SnapResults = results;\n const changedComponents = snappedComponents.filter(\n (component) => !newComponents.searchWithoutVersion(component.id)\n );\n const addedComponents = snappedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const tagExplanation = `\\n(use \"bit export\" to push these components to a remote\")\n(use \"bit reset\" to unstage versions)\\n`;\n\n const compInBold = (id: BitId) => {\n const version = id.hasVersion() ? `@${id.version}` : '';\n return `${chalk.bold(id.toStringWithoutVersion())}${version}`;\n };\n\n const outputComponents = (comps: ConsumerComponent[]) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${compInBold(component.id)}`;\n const autoTag = autoSnappedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => compInBold(a.component.id));\n componentOutput += `\\n ${AUTO_SNAPPED_MSG} (${autoTagComp.length} total):\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n const laneStr = laneName ? ` on \"${laneName}\" lane` : '';\n\n return (\n warningsOutput +\n chalk.green(`${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`) +\n tagExplanation +\n outputIfExists('new components', 'first version for components', addedComponents) +\n outputIfExists('changed components', 'components that got a version bump', changedComponents)\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["SnapCmd","constructor","snapping","logger","name","description","COMPONENT_PATTERN_HELP","Object","keys","IssuesClasses","join","report","pattern","message","all","force","unmerged","editor","ignoreIssues","build","skipTests","skipAutoSnap","disableSnapPipeline","forceDeploy","unmodified","failFast","isFeatureEnabled","BUILD_ON_CI","Boolean","disableTagAndSnapPipelines","BitError","consoleWarning","results","snap","exitOnFirstFailedTask","chalk","yellow","NOTHING_TO_SNAP_MSG","snappedComponents","autoSnappedResults","warnings","newComponents","laneName","removedComponents","changedComponents","filter","component","searchWithoutVersion","id","addedComponents","autoTaggedCount","length","warningsOutput","snapExplanation","compInBold","version","hasVersion","bold","toStringWithoutVersion","outputComponents","comps","map","componentOutput","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_SNAPPED_MSG","outputIfExists","label","explanation","components","underline","laneStr","green","outputIdsIfExists"],"sources":["snap-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { NOTHING_TO_SNAP_MSG, AUTO_SNAPPED_MSG, COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { SnappingMain, SnapResults } from './snapping.main.runtime';\nimport { outputIdsIfExists } from './tag-cmd';\n\nexport class SnapCmd implements Command {\n name = 'snap [component-pattern]';\n description = 'EXPERIMENTAL. create an immutable and exportable component snapshot (no release version)';\n extendedDescription: string;\n group = 'development';\n arguments = [\n {\n name: 'component-pattern',\n description: `${COMPONENT_PATTERN_HELP}. By default, all new and modified components are snapped.`,\n },\n ];\n helpUrl = 'docs/components/snaps';\n alias = '';\n options = [\n ['m', 'message <message>', 'log message describing the latest changes'],\n ['', 'unmodified', 'include unmodified components (by default, only new and modified components are snapped)'],\n ['', 'unmerged', 'EXPERIMENTAL. complete a merge process by snapping the unmerged components'],\n [\n 'b',\n 'build',\n 'EXPERIMENTAL. not needed for now. run the build pipeline in case the feature-flag build-on-ci is enabled',\n ],\n [\n '',\n 'editor [editor]',\n 'EXPERIMENTAL. open an editor to write a tag message for each component. optionally, specify the editor-name (defaults to vim).',\n ],\n ['', 'skip-tests', 'skip running component tests during snap process'],\n ['', 'skip-auto-snap', 'skip auto snapping dependents'],\n ['', 'disable-snap-pipeline', 'skip the snap pipeline'],\n ['', 'force-deploy', 'run the deploy pipeline although the build failed'],\n [\n 'i',\n 'ignore-issues [issues]',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ['a', 'all', 'DEPRECATED (not needed anymore, it is the default now). snap all new and modified components'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)',\n ],\n [\n 'f',\n 'force',\n 'DEPRECATED (use \"--skip-tests\" or \"--unmodified\" instead). force-snap even if tests are failing and even when component has not changed',\n ],\n ] as CommandOptions;\n loader = true;\n migration = true;\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n async report(\n [pattern]: string[],\n {\n message = '',\n all = false,\n force = false,\n unmerged = false,\n editor = '',\n ignoreIssues,\n build,\n skipTests = false,\n skipAutoSnap = false,\n disableSnapPipeline = false,\n forceDeploy = false,\n unmodified = false,\n failFast = false,\n }: {\n message?: string;\n all?: boolean;\n force?: boolean;\n unmerged?: boolean;\n editor?: string;\n ignoreIssues?: string;\n build?: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableSnapPipeline?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n failFast?: boolean;\n }\n ) {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-snap-pipeline, but not both');\n }\n\n if (all) {\n this.logger.consoleWarning(\n `--all is deprecated, please omit it. \"bit snap\" by default will snap all new and modified components`\n );\n }\n if (force) {\n this.logger.consoleWarning(\n `--force is deprecated, use either --skip-tests or --unmodified depending on the use case`\n );\n if (pattern) unmodified = true;\n }\n if (!message && !editor) {\n this.logger.consoleWarning(\n `--message will be mandatory in the next few releases. make sure to add a message with your snap`\n );\n }\n\n const results = await this.snapping.snap({\n pattern,\n message,\n unmerged,\n editor,\n ignoreIssues,\n build,\n skipTests,\n skipAutoSnap,\n disableTagAndSnapPipelines,\n forceDeploy,\n unmodified,\n exitOnFirstFailedTask: failFast,\n });\n\n if (!results) return chalk.yellow(NOTHING_TO_SNAP_MSG);\n const { snappedComponents, autoSnappedResults, warnings, newComponents, laneName, removedComponents }: SnapResults =\n results;\n const changedComponents = snappedComponents.filter(\n (component) => !newComponents.searchWithoutVersion(component.id)\n );\n const addedComponents = snappedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const snapExplanation = `\\n(use \"bit export\" to push these components to a remote\")\n(use \"bit reset\" to unstage versions)\\n`;\n\n const compInBold = (id: BitId) => {\n const version = id.hasVersion() ? `@${id.version}` : '';\n return `${chalk.bold(id.toStringWithoutVersion())}${version}`;\n };\n\n const outputComponents = (comps: ConsumerComponent[]) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${compInBold(component.id)}`;\n const autoTag = autoSnappedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => compInBold(a.component.id));\n componentOutput += `\\n ${AUTO_SNAPPED_MSG} (${autoTagComp.length} total):\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n const laneStr = laneName ? ` on \"${laneName}\" lane` : '';\n\n return (\n warningsOutput +\n chalk.green(`${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`) +\n snapExplanation +\n outputIfExists('new components', 'first version for components', addedComponents) +\n outputIfExists('changed components', 'components that got a version bump', changedComponents) +\n outputIdsIfExists('removed components', removedComponents)\n );\n }\n}\n"],"mappings":"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"}
@@ -30,25 +30,26 @@ export declare type TagDataPerComp = {
30
30
  prereleaseId?: string;
31
31
  message?: string;
32
32
  };
33
- export declare type SnapResults = {
33
+ export declare type SnapResults = BasicTagResults & {
34
34
  snappedComponents: ConsumerComponent[];
35
35
  autoSnappedResults: AutoTagResult[];
36
- warnings: string[];
37
- newComponents: BitIds;
38
36
  laneName: string | null;
39
37
  };
40
38
  export declare type SnapFromScopeResults = {
41
39
  snappedIds: string[];
42
40
  exportedIds?: string[];
43
41
  };
44
- export declare type TagResults = {
42
+ export declare type TagResults = BasicTagResults & {
45
43
  taggedComponents: ConsumerComponent[];
46
44
  autoTaggedResults: AutoTagResult[];
47
- warnings: string[];
48
- newComponents: BitIds;
49
45
  isSoftTag: boolean;
50
46
  publishedPackages: string[];
51
47
  };
48
+ export declare type BasicTagResults = {
49
+ warnings: string[];
50
+ newComponents: BitIds;
51
+ removedComponents?: BitIds;
52
+ };
52
53
  export declare class SnappingMain {
53
54
  private workspace;
54
55
  private logger;
@@ -404,7 +404,8 @@ class SnappingMain {
404
404
  taggedComponents,
405
405
  autoTaggedResults,
406
406
  publishedPackages,
407
- stagedConfig
407
+ stagedConfig,
408
+ removedComponents
408
409
  } = await (0, _tagModelComponent().tagModelComponent)({
409
410
  workspace: this.workspace,
410
411
  scope: this.scope,
@@ -434,13 +435,11 @@ class SnappingMain {
434
435
  taggedComponents,
435
436
  autoTaggedResults,
436
437
  isSoftTag: soft,
437
- publishedPackages
438
+ publishedPackages,
439
+ warnings,
440
+ newComponents,
441
+ removedComponents
438
442
  };
439
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
440
- tagResults.warnings = warnings;
441
-
442
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
443
- tagResults.newComponents = newComponents;
444
443
  const postHook = isAll ? _constants().POST_TAG_ALL_HOOK : _constants().POST_TAG_HOOK;
445
444
  HooksManagerInstance === null || HooksManagerInstance === void 0 ? void 0 : HooksManagerInstance.triggerHook(postHook, tagResults);
446
445
  _analytics().Analytics.setExtraData('num_components',
@@ -647,7 +646,8 @@ class SnappingMain {
647
646
  const {
648
647
  taggedComponents,
649
648
  autoTaggedResults,
650
- stagedConfig
649
+ stagedConfig,
650
+ removedComponents
651
651
  } = await (0, _tagModelComponent().tagModelComponent)({
652
652
  workspace: this.workspace,
653
653
  scope: this.scope,
@@ -672,9 +672,10 @@ class SnappingMain {
672
672
  });
673
673
  const snapResults = {
674
674
  snappedComponents: taggedComponents,
675
- autoSnappedResults: autoTaggedResults
675
+ autoSnappedResults: autoTaggedResults,
676
+ newComponents,
677
+ removedComponents
676
678
  };
677
- snapResults.newComponents = newComponents;
678
679
  const currentLane = consumer.getCurrentLaneId();
679
680
  snapResults.laneName = currentLane.isDefault() ? null : currentLane.toString();
680
681
  await consumer.onDestroy();
@@ -972,7 +973,7 @@ there are matching among unmodified components thought. consider using --unmodif
972
973
  }
973
974
  }
974
975
  throwForPendingImport(components) {
975
- const componentsMissingFromScope = components.filter(c => !c.removed).filter(c => !c.componentFromModel && c.id.hasScope()).map(c => c.id.toString());
976
+ const componentsMissingFromScope = components.filter(c => !c.isRemoved()).filter(c => !c.componentFromModel && c.id.hasScope()).map(c => c.id.toString());
976
977
  if (componentsMissingFromScope.length) {
977
978
  throw new (_componentsPendingImport().default)(componentsMissingFromScope);
978
979
  }
@@ -1 +1 @@
1
- {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","dependencyResolver","scope","exporter","builder","importer","objectsRepo","legacyScope","objects","tag","ids","message","version","editor","snapped","unmerged","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","build","unmodified","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","failFast","BitError","exactVersion","OutsideWorkspaceError","idsHasWildcard","hasWildcard","isAll","Boolean","length","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","debug","toString","components","loadComponentsForTagOrSnap","consumerComponents","map","c","state","_consumer","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","throwForPendingImport","taggedComponents","autoTaggedResults","publishedPackages","stagedConfig","tagModelComponent","snapping","packageManagerConfigRootDir","path","exitOnFirstFailedTask","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","Analytics","setExtraData","concat","onDestroy","write","tagFromScope","tagDataPerCompRaw","params","tagDataPerComp","Promise","all","tagData","componentId","resolveComponentId","dependencies","resolveMultipleComponentIds","versionToTag","prereleaseId","componentIds","t","_legacy","componentIdsLatest","id","changeVersion","LATEST","deps","compact","flat","dep","import","useCache","d","getCompIdWithExactVersionAccordingToSemver","loadMany","comp","find","isEqual","ignoreVersion","Error","updateDependenciesVersionsOfComponent","allComponentsBuildSuccessfully","every","buildStatus","BuildStatus","Succeed","legacyIds","results","skipBuildPipeline","copyLogFromPreviousSnap","push","exportMany","idsWithFutureScope","allVersions","snapFromScope","snapDataPerCompRaw","snapDataPerComp","snapData","aspects","lane","laneIdStr","laneId","LaneId","parse","importLaneObject","setCurrentLaneId","scopeImporter","shouldOnlyFetchFromCurrentLane","addAspectsFromConfigObject","isSnap","exportedIds","updatedLane","loadLane","toLaneId","undefined","exported","laneObject","exportHeadsOnly","e","snappedIds","snap","pattern","skipAutoSnap","getIdsToSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","listDuringMergeStateComponents","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","tagPendingComponentsIds","shouldThrowForNoMatching","getCompIds","includes","compId","filterIdsFromPoolIdsByPattern","allTagPending","reset","componentPattern","head","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","idsMatchingPatternBitIds","componentsToUntag","filter","modelComponent","hasWithoutVersion","toBitId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponents","listSoftTaggedComponents","softTaggedComponentsIds","idsToRemoveSoftTags","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","isRealUntag","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","_addFlattenedDependenciesToComponents","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","stop","_addFlattenedDepsGraphToComponents","graph","Graph","addEdges","label","get","forEach","setNode","Node","setEdge","Edge","devDependencies","extensionDependencies","allFlattened","flattenedDependencies","allFlattenedUniq","uniqFromArray","allFlattenedWithoutCurrent","componentsAndVersions","getComponentsAndVersions","versionStr","someCompsHaveMissingFlattened","edges","outEdges","flattenedEdges","allEdges","edgesWithBitIds","edge","source","node","attr","target","type","flattened","flattenedFromEdges","uniq","missingFlattened","difference","warn","join","missingBitIds","_updateComponentsByTagResult","tagResult","matchingComponent","existingBuilder","extensions","findCoreExtension","Extensions","data","builderData","_getPublishedPackages","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","_addCompToObjects","shouldValidateVersion","_addCompFromScopeToObjects","unmergedComponent","unmergedComponents","getEntry","name","unrelated","hash","previouslyUsedVersion","unrelatedHead","Ref","from","addAsOnlyParent","addParent","log","UnmergedComponents","buildSnapMessage","removeComponent","validate","objectRepo","sources","findOrAddComponent","artifactFiles","getArtifactsFiles","artifacts","transformArtifactsFromVinylToSource","files","consumerComponentToVersion","add","addVersion","file","_enrichComp","consumerComponent","modifiedLog","_getObjectsToEnrichComp","obj","loadVersion","addModifiedLog","artifactObjects","artifactsFiles","artifactsSource","ArtifactFiles","fromVinylsToSources","vinyls","populateRefsFromSources","shouldClearCacheFirst","compIds","componentFsCache","deleteAllDependenciesDataCache","clearComponentCache","getMany","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","legacyComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","workspaceIssues","getWorkspaceIssues","issuesStr","issueErr","componentsMissingFromScope","removed","componentFromModel","hasScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","depId","hasVersion","modelComp","getModelComponentIfExist","isLegacy","pMap","concurrency","concurrentComponentsLimit","isHash","range","getExactVersionBySemverRange","currentBitIds","depsBitIds","updatedIds","componentIdStr","legacyComponent","dependenciesList","getDependencies","updatedBitId","searchWithoutVersion","depIdStr","packageName","findDependency","getPackageName","ext","extensionId","dependenciesListSerialized","extractDepsFromLegacy","serialize","extId","DependencyResolverAspect","existingExtension","findExtension","Object","assign","extension","ExtensionDataEntry","includeUnmodified","tagPendingBitIds","listSnappedComponentsOnMain","snappedComponentsIds","pMapSeries","idWithoutVer","idHasWildcard","allIds","componentStatus","getComponentStatusById","modified","bitId","tagPendingBitIdsIncludeSnapped","tagPendingComponentsLatest","latestVersions","semver","valid","gt","provider","cli","loggerMain","createLogger","SnappingAspect","snapCmd","SnapCmd","tagCmd","TagCmd","tagFromScopeCmd","TagFromScopeCmd","snapFromScopeCmd","SnapFromScopeCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","LoggerAspect","IssuesAspect","InsightsAspect","ScopeAspect","ExportAspect","BuilderAspect","ImporterAspect","MainRuntime","addRuntime"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { FlattenedDependenciesGetter } from '@teambit/legacy/dist/scope/component-ops/get-flattened-dependencies';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact, difference, uniq } 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, Extensions, LATEST, BuildStatus } 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 pMapSeries from 'p-map-series';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport loader from '@teambit/legacy/dist/cli/loader';\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 pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport {\n removeLocalVersionsForAllComponents,\n untagResult,\n getComponentsWithOptionToUntag,\n removeLocalVersionsForMultipleComponents,\n} from '@teambit/legacy/dist/scope/component-ops/untag-component';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Lane, ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { Component } from '@teambit/component';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { LaneId } from '@teambit/lane-id';\nimport ImporterAspect, { ImporterMain } from '@teambit/importer';\nimport { ExportAspect, ExportMain } from '@teambit/export';\nimport UnmergedComponents from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport { ComponentID } from '@teambit/component-id';\nimport { isHash } from '@teambit/component-version';\nimport { BitObject, Ref, Repository } from '@teambit/legacy/dist/scope/objects';\nimport {\n ArtifactFiles,\n ArtifactSource,\n getArtifactsFiles,\n} from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { AutoTagResult } from '@teambit/legacy/dist/scope/component-ops/auto-tag';\nimport Version, { DepEdge, DepEdgeType, Log } from '@teambit/legacy/dist/scope/models/version';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\nimport ResetCmd from './reset-cmd';\nimport { tagModelComponent, updateComponentsVersions, BasicTagParams } from './tag-model-component';\nimport { TagDataPerCompRaw, TagFromScopeCmd } from './tag-from-scope.cmd';\nimport { SnapDataPerCompRaw, SnapFromScopeCmd } from './snap-from-scope.cmd';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport type TagDataPerComp = {\n componentId: ComponentID;\n dependencies: ComponentID[];\n versionToTag?: string; // must be set for tag. undefined for snap.\n prereleaseId?: string;\n message?: string;\n};\n\nexport type SnapResults = {\n snappedComponents: ConsumerComponent[];\n autoSnappedResults: AutoTagResult[];\n warnings: string[];\n newComponents: BitIds;\n laneName: string | null; // null if default\n};\n\nexport type SnapFromScopeResults = {\n snappedIds: string[];\n exportedIds?: string[];\n};\n\nexport type TagResults = {\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n warnings: string[];\n newComponents: BitIds;\n isSoftTag: boolean;\n publishedPackages: string[];\n};\n\nexport class SnappingMain {\n private objectsRepo: Repository;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain,\n private dependencyResolver: DependencyResolverMain,\n private scope: ScopeMain,\n private exporter: ExportMain,\n private builder: BuilderMain,\n private importer: ImporterMain\n ) {\n this.objectsRepo = this.scope?.legacyScope?.objects;\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 version,\n editor = '',\n snapped = false,\n unmerged = false,\n releaseType,\n preReleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n build,\n unmodified = false,\n soft = false,\n persist = false,\n forceDeploy = false,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n failFast = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean;\n unmerged?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n failFast?: boolean;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n if (soft) build = false;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-tag-pipeline, 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 exactVersion = version;\n if (!this.workspace) throw new OutsideWorkspaceError();\n const idsHasWildcard = hasWildcard(ids);\n const isAll = Boolean(!ids.length || 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 unmodified,\n exactVersion,\n persist,\n ids,\n snapped,\n unmerged\n );\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n const components = await this.loadComponentsForTagOrSnap(legacyBitIds, !soft);\n const consumerComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n await this.throwForLegacyDependenciesInsideHarmony(consumerComponents);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(consumerComponents);\n\n const { taggedComponents, autoTaggedResults, publishedPackages, stagedConfig } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents,\n ids: legacyBitIds,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\n dependencyResolver: this.dependencyResolver,\n exitOnFirstFailedTask: failFast,\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 await stagedConfig?.write();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n async tagFromScope(\n tagDataPerCompRaw: TagDataPerCompRaw[],\n params: {\n push?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n incrementBy?: number;\n } & Partial<BasicTagParams>\n ): Promise<TagResults | null> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n const tagDataPerComp = await Promise.all(\n tagDataPerCompRaw.map(async (tagData) => {\n return {\n componentId: await this.scope.resolveComponentId(tagData.componentId),\n dependencies: tagData.dependencies ? await this.scope.resolveMultipleComponentIds(tagData.dependencies) : [],\n versionToTag: tagData.versionToTag || 'patch',\n prereleaseId: tagData.prereleaseId,\n message: tagData.message,\n };\n })\n );\n const componentIds = tagDataPerComp.map((t) => t.componentId);\n const bitIds = componentIds.map((c) => c._legacy);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n const deps = compact(tagDataPerComp.map((t) => t.dependencies).flat()).map((dep) => dep.changeVersion(LATEST));\n const components = await this.scope.import(componentIdsLatest);\n\n // import deps to be able to resolve semver\n await this.scope.import(deps, { useCache: false });\n await Promise.all(\n tagDataPerComp.map(async (tagData) => {\n tagData.dependencies = tagData.dependencies\n ? await Promise.all(tagData.dependencies.map((d) => this.getCompIdWithExactVersionAccordingToSemver(d)))\n : [];\n })\n );\n\n // needed in order to load all aspects of these components\n await this.scope.loadMany(components.map((c) => c.id));\n await Promise.all(\n components.map(async (comp) => {\n const tagData = tagDataPerComp.find((t) => t.componentId.isEqual(comp.id, { ignoreVersion: true }));\n if (!tagData) throw new Error(`unable to find ${comp.id.toString()} in tagDataPerComp`);\n if (!tagData.dependencies.length) return;\n await this.updateDependenciesVersionsOfComponent(comp, tagData.dependencies, bitIds);\n })\n );\n const consumerComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n const allComponentsBuildSuccessfully = consumerComponents.every((comp) => {\n if (!comp.buildStatus) throw new Error(`tag-from-scope expect ${comp.id.toString()} to have buildStatus`);\n return comp.buildStatus === BuildStatus.Succeed;\n });\n const legacyIds = BitIds.fromArray(componentIds.map((id) => id._legacy));\n const results = await tagModelComponent({\n ...params,\n scope: this.scope,\n consumerComponents,\n tagDataPerComp,\n skipBuildPipeline: allComponentsBuildSuccessfully,\n copyLogFromPreviousSnap: true,\n snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: true,\n persist: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents, publishedPackages } = results;\n\n if (params.push) {\n await this.exporter.exportMany({\n scope: this.scope.legacyScope,\n ids: legacyIds,\n idsWithFutureScope: legacyIds,\n allVersions: false,\n });\n }\n\n return {\n taggedComponents,\n autoTaggedResults: [],\n isSoftTag: false,\n publishedPackages,\n warnings: [],\n newComponents: new BitIds(),\n };\n }\n\n async snapFromScope(\n snapDataPerCompRaw: SnapDataPerCompRaw[],\n params: {\n push?: boolean;\n ignoreIssues?: string;\n lane?: string;\n } & Partial<BasicTagParams>\n ): Promise<SnapFromScopeResults> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n const snapDataPerComp = await Promise.all(\n snapDataPerCompRaw.map(async (snapData) => {\n return {\n componentId: await this.scope.resolveComponentId(snapData.componentId),\n dependencies: snapData.dependencies\n ? await this.scope.resolveMultipleComponentIds(snapData.dependencies)\n : [],\n aspects: snapData.aspects,\n message: snapData.message,\n };\n })\n );\n const componentIds = snapDataPerComp.map((t) => t.componentId);\n const bitIds = componentIds.map((c) => c._legacy);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n\n let lane: Lane | undefined;\n const laneIdStr = params.lane;\n if (laneIdStr) {\n const laneId = LaneId.parse(laneIdStr);\n lane = await this.importer.importLaneObject(laneId);\n // this is critical. otherwise, later on, when loading aspects and isolating capsules, we'll try to fetch dists\n // from the original scope instead of the lane-scope.\n this.scope.legacyScope.setCurrentLaneId(laneId);\n this.scope.legacyScope.scopeImporter.shouldOnlyFetchFromCurrentLane = true;\n }\n\n const components = await this.scope.import(componentIdsLatest, { lane });\n await Promise.all(\n components.map(async (comp) => {\n const snapData = snapDataPerComp.find((t) => {\n return t.componentId.isEqual(comp.id, { ignoreVersion: true });\n });\n if (!snapData) throw new Error(`unable to find ${comp.id.toString()} in snapDataPerComp`);\n if (snapData.aspects) await this.scope.addAspectsFromConfigObject(comp, snapData.aspects);\n if (snapData.dependencies.length) {\n await this.updateDependenciesVersionsOfComponent(comp, snapData.dependencies, bitIds);\n }\n })\n );\n const consumerComponents = components.map((c) => c.state._consumer);\n const legacyIds = BitIds.fromArray(componentIds.map((id) => id._legacy));\n const results = await tagModelComponent({\n ...params,\n scope: this.scope,\n consumerComponents,\n tagDataPerComp: snapDataPerComp,\n snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: true,\n persist: true,\n isSnap: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents } = results;\n let exportedIds: string[] | undefined;\n if (params.push) {\n const updatedLane = lane ? await this.scope.legacyScope.loadLane(lane.toLaneId()) : undefined;\n const { exported } = await this.exporter.exportMany({\n scope: this.scope.legacyScope,\n ids: legacyIds,\n idsWithFutureScope: legacyIds,\n allVersions: false,\n laneObject: updatedLane || undefined,\n // no need other snaps. only the latest one. without this option, when snapping on lane from another-scope, it\n // may throw an error saying the previous snaps don't exist on the filesystem.\n // (see the e2e - \"snap on a lane when the component is new to the lane and the scope\")\n exportHeadsOnly: true,\n });\n exportedIds = exported.map((e) => e.toString());\n }\n\n return {\n snappedIds: taggedComponents.map((comp) => comp.id.toString()),\n exportedIds,\n };\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 pattern,\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n unmerged,\n editor,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n exitOnFirstFailedTask = false,\n }: {\n pattern?: string;\n legacyBitIds?: BitIds;\n unmerged?: boolean;\n editor?: string;\n message?: string;\n ignoreIssues?: string;\n build: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n exitOnFirstFailedTask?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (pattern && legacyBitIds) throw new Error(`please pass either pattern or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap(this.workspace));\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n const components = await this.loadComponentsForTagOrSnap(ids);\n const consumerComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n await this.throwForLegacyDependenciesInsideHarmony(consumerComponents);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(consumerComponents);\n\n const { taggedComponents, autoTaggedResults, stagedConfig } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n editor,\n consumerComponents,\n ids,\n ignoreNewestVersion: false,\n message,\n skipTests,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n isSnap: true,\n disableTagAndSnapPipelines,\n forceDeploy,\n packageManagerConfigRootDir: this.workspace.path,\n dependencyResolver: this.dependencyResolver,\n exitOnFirstFailedTask,\n });\n\n const snapResults: Partial<SnapResults> = {\n snappedComponents: taggedComponents,\n autoSnappedResults: autoTaggedResults,\n };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.toString();\n await consumer.onDestroy();\n await stagedConfig?.write();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(workspace: Workspace): Promise<BitIds | null> {\n if (unmerged) {\n return componentsList.listDuringMergeStateComponents();\n }\n const tagPendingComponents = unmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n if (R.isEmpty(tagPendingComponents)) return null;\n const tagPendingComponentsIds = await workspace.resolveMultipleComponentIds(tagPendingComponents);\n // when unmodified, we ask for all components, throw if no matching. if not unmodified and no matching, see error\n // below, suggesting to use --unmodified flag.\n const shouldThrowForNoMatching = unmodified;\n const getCompIds = async () => {\n if (!pattern) return tagPendingComponentsIds;\n if (!pattern.includes('*') && !pattern.includes(',')) {\n const compId = await workspace.resolveComponentId(pattern);\n return [compId];\n }\n return workspace.scope.filterIdsFromPoolIdsByPattern(\n pattern,\n tagPendingComponentsIds,\n shouldThrowForNoMatching\n );\n };\n const componentIds = await getCompIds();\n if (!componentIds.length && pattern) {\n const allTagPending = await componentsList.listPotentialTagAllWorkspace();\n if (allTagPending.length) {\n throw new BitError(`unable to find matching for \"${pattern}\" pattern among modified/new components.\nthere are matching among unmodified components thought. consider using --unmodified flag if needed`);\n }\n }\n if (!componentIds.length) {\n return null;\n }\n return BitIds.fromArray(componentIds.map((c) => c._legacy));\n }\n }\n\n /**\n * remove tags/snaps that exist locally, which were not exported yet.\n * once a tag/snap is exported, it's impossible to delete it as other components may depend on it\n */\n async reset(\n componentPattern?: string,\n head?: boolean,\n force = false,\n soft = false\n ): Promise<{ results: untagResult[]; isSoftUntag: boolean }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const consumer = this.workspace.consumer;\n const currentLane = await consumer.getCurrentLaneObject();\n const untag = async (): Promise<untagResult[]> => {\n if (!componentPattern) {\n return removeLocalVersionsForAllComponents(consumer, currentLane, head);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(consumer);\n const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern);\n const idsMatchingPatternBitIds = BitIds.fromArray(idsMatchingPattern.map((id) => id._legacy));\n const componentsToUntag = candidateComponents.filter((modelComponent) =>\n idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toBitId())\n );\n return removeLocalVersionsForMultipleComponents(componentsToUntag, currentLane, head, force, consumer.scope);\n };\n const softUntag = async () => {\n const componentsList = new ComponentsList(consumer);\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n const softTaggedComponentsIds = await this.workspace.resolveMultipleComponentIds(softTaggedComponents);\n const idsToRemoveSoftTags = componentPattern\n ? this.workspace.scope.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds)\n : softTaggedComponentsIds;\n return compact(\n idsToRemoveSoftTags.map((componentId) => {\n const componentMap = consumer.bitMap.getComponent(componentId._legacy, { ignoreScopeAndVersion: true });\n const removedVersion = componentMap.nextVersion?.version;\n if (!removedVersion) return null;\n componentMap.clearNextVersion();\n return { id: componentId._legacy, versions: [removedVersion] };\n })\n );\n };\n let results: untagResult[];\n const isRealUntag = !soft;\n if (isRealUntag) {\n results = await untag();\n await consumer.scope.objects.persist();\n const components = results.map((result) => result.component);\n await updateComponentsVersions(this.workspace, components as ModelComponent[], false);\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy();\n return { results, isSoftUntag: !isRealUntag };\n }\n\n async _addFlattenedDependenciesToComponents(components: ConsumerComponent[]) {\n loader.start('importing missing dependencies...');\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(this.scope.legacyScope, components);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n loader.stop();\n await this._addFlattenedDepsGraphToComponents(components);\n }\n\n async _addFlattenedDepsGraphToComponents(components: ConsumerComponent[]) {\n const graph = new Graph<BitId, string>();\n const addEdges = (compId: BitId, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n graph.setNode(new Node(dep.id.toString(), dep.id));\n graph.setEdge(new Edge(compId.toString(), dep.id.toString(), label));\n });\n };\n components.forEach((comp) => {\n graph.setNode(new Node(comp.id.toString(), comp.id));\n addEdges(comp.id, comp.dependencies, 'prod');\n addEdges(comp.id, comp.devDependencies, 'dev');\n addEdges(comp.id, comp.extensionDependencies, 'ext');\n });\n const allFlattened = components.map((comp) => comp.flattenedDependencies);\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened.flat());\n const allFlattenedWithoutCurrent = allFlattenedUniq.filter((id) => !components.find((c) => c.id.isEqual(id)));\n const componentsAndVersions = await this.scope.legacyScope.getComponentsAndVersions(\n BitIds.fromArray(allFlattenedWithoutCurrent)\n );\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compId = component.toBitId().changeVersion(versionStr);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n let someCompsHaveMissingFlattened = false;\n components.forEach((component) => {\n const edges = graph.outEdges(component.id.toString());\n const flattenedEdges = component.flattenedDependencies.map((dep) => graph.outEdges(dep.toString())).flat();\n const allEdges = [...edges, ...flattenedEdges];\n const edgesWithBitIds: DepEdge[] = allEdges.map((edge) => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n source: graph.node(edge.source)!.attr,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n target: graph.node(edge.target)!.attr,\n type: edge.attr as DepEdgeType,\n }));\n component.flattenedEdges = edgesWithBitIds;\n\n // due to some previous bugs, some components might have missing flattened dependencies.\n // as a result, the flattenedEdges may have more components than the flattenedDependencies, which will cause\n // issues later on when the graph is built. this fixes it by adding the missing flattened dependencies, and\n // then recursively adding the flattenedEdge accordingly.\n const flattened = component.flattenedDependencies.map((dep) => dep.toString());\n const flattenedFromEdges = uniq(\n edgesWithBitIds.map((edge) => [edge.target.toString(), edge.source.toString()]).flat()\n );\n const missingFlattened = difference(flattenedFromEdges, flattened).filter((id) => id !== component.id.toString());\n\n if (missingFlattened.length) {\n someCompsHaveMissingFlattened = true;\n this.logger.warn(`missing flattened for ${component.id.toString()}: ${missingFlattened.join(', ')}`);\n const missingBitIds = missingFlattened.map((id) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return graph.node(id)!.attr;\n });\n component.flattenedDependencies.push(...missingBitIds);\n }\n });\n if (someCompsHaveMissingFlattened) {\n await this._addFlattenedDepsGraphToComponents(components);\n }\n }\n\n _updateComponentsByTagResult(components: ConsumerComponent[], tagResult: LegacyOnTagResult[]) {\n tagResult.forEach((result) => {\n const matchingComponent = components.find((c) => c.id.isEqual(result.id));\n if (matchingComponent) {\n const existingBuilder = matchingComponent.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = result.builderData.data;\n else matchingComponent.extensions.push(result.builderData);\n }\n });\n }\n\n _getPublishedPackages(components: ConsumerComponent[]): string[] {\n const publishedPackages = components.map((comp) => {\n const builderExt = comp.extensions.findCoreExtension(Extensions.builder);\n const pkgData = builderExt?.data?.aspectsData?.find((a) => a.aspectId === Extensions.pkg);\n return pkgData?.data?.publishedPackage;\n });\n return compact(publishedPackages);\n }\n\n async _addCompToObjects({\n source,\n consumer,\n lane,\n shouldValidateVersion = false,\n }: {\n source: ConsumerComponent;\n consumer: Consumer;\n lane: Lane | null;\n shouldValidateVersion?: boolean;\n }): Promise<ModelComponent> {\n const { component, version } = await this._addCompFromScopeToObjects(source, lane);\n const unmergedComponent = consumer.scope.objects.unmergedComponents.getEntry(component.name);\n if (unmergedComponent) {\n if (unmergedComponent.unrelated) {\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding an unrelated entry ${unmergedComponent.head.hash}`\n );\n if (!source.previouslyUsedVersion) {\n throw new Error(\n `source.previouslyUsedVersion must be set for ${component.name} because it's unrelated resolved.`\n );\n }\n const unrelatedHead = Ref.from(source.previouslyUsedVersion);\n version.unrelated = { head: unrelatedHead, laneId: unmergedComponent.laneId };\n version.addAsOnlyParent(unmergedComponent.head);\n } else {\n // this is adding a second parent to the version. the order is important. the first parent is coming from the current-lane.\n version.addParent(unmergedComponent.head);\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding a parent ${unmergedComponent.head.hash}`\n );\n version.log.message = version.log.message || UnmergedComponents.buildSnapMessage(unmergedComponent);\n }\n consumer.scope.objects.unmergedComponents.removeComponent(component.name);\n }\n if (shouldValidateVersion) version.validate();\n return component;\n }\n\n async _addCompFromScopeToObjects(\n source: ConsumerComponent,\n lane: Lane | null\n ): Promise<{\n component: ModelComponent;\n version: Version;\n }> {\n const objectRepo = this.objectsRepo;\n // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n const component = await this.scope.legacyScope.sources.findOrAddComponent(source);\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files, flattenedEdges } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n objectRepo.add(version);\n if (flattenedEdges) this.objectsRepo.add(flattenedEdges);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, objectRepo, source.previouslyUsedVersion);\n objectRepo.add(component);\n files.forEach((file) => objectRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => objectRepo.add(file.source));\n return { component, version };\n }\n\n async _enrichComp(consumerComponent: ConsumerComponent, modifiedLog?: Log) {\n const objects = await this._getObjectsToEnrichComp(consumerComponent, modifiedLog);\n objects.forEach((obj) => this.objectsRepo.add(obj));\n return consumerComponent;\n }\n\n async _getObjectsToEnrichComp(consumerComponent: ConsumerComponent, modifiedLog?: Log): Promise<BitObject[]> {\n const component =\n consumerComponent.modelComponent || (await this.scope.legacyScope.sources.findOrAddComponent(consumerComponent));\n const version = await component.loadVersion(consumerComponent.id.version as string, this.objectsRepo, true, true);\n if (modifiedLog) version.addModifiedLog(modifiedLog);\n const artifactFiles = getArtifactsFiles(consumerComponent.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n version.extensions = consumerComponent.extensions;\n version.buildStatus = consumerComponent.buildStatus;\n const artifactObjects = artifacts.map((file) => file.source);\n return [version, ...artifactObjects];\n }\n\n private transformArtifactsFromVinylToSource(artifactsFiles: ArtifactFiles[]): ArtifactSource[] {\n const artifacts: ArtifactSource[] = [];\n artifactsFiles.forEach((artifactFiles) => {\n const artifactsSource = ArtifactFiles.fromVinylsToSources(artifactFiles.vinyls);\n if (artifactsSource.length) artifactFiles.populateRefsFromSources(artifactsSource);\n artifacts.push(...artifactsSource);\n });\n return artifacts;\n }\n\n private async loadComponentsForTagOrSnap(ids: BitIds, shouldClearCacheFirst = true): Promise<Component[]> {\n const compIds = await this.workspace.resolveMultipleComponentIds(ids);\n if (shouldClearCacheFirst) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n compIds.map((compId) => this.workspace.clearComponentCache(compId));\n }\n\n return this.workspace.getMany(compIds.map((id) => id.changeVersion(undefined)));\n }\n\n private async throwForComponentIssues(components: Component[], ignoreIssues?: string) {\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n await this.issues.triggerAddComponentIssues(components, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(components, issuesToIgnore);\n const legacyComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n\n const workspaceIssues = this.workspace.getWorkspaceIssues();\n if (workspaceIssues.length) {\n const issuesStr = workspaceIssues.map((issueErr) => issueErr.message).join('\\n');\n throw new BitError(`the workspace has the following issues:\\n${issuesStr}`);\n }\n }\n\n private throwForPendingImport(components: ConsumerComponent[]) {\n const componentsMissingFromScope = components\n .filter((c) => !c.removed)\n .filter((c) => !c.componentFromModel && c.id.hasScope())\n .map((c) => c.id.toString());\n if (componentsMissingFromScope.length) {\n throw new ComponentsPendingImport(componentsMissingFromScope);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\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 /**\n * the compId.version can be a range (e.g. \"^1.0.0\"), in which case, it finds the component in the local scope and\n * resolves the latest version that falls under the range.\n * in case the version has no range, it returns the same compId.\n * in case it has no version, it returns the latest.\n */\n async getCompIdWithExactVersionAccordingToSemver(compId: ComponentID): Promise<ComponentID> {\n if (isHash(compId.version)) {\n return compId;\n }\n const range = compId.version || '*'; // if not version specified, assume the latest\n const id = compId.changeVersion(undefined);\n const exactVersion = await this.scope.getExactVersionBySemverRange(id, range);\n if (!exactVersion) {\n throw new Error(`unable to find a version that satisfies \"${range}\" of \"${compId.toString()}\"`);\n }\n return compId.changeVersion(exactVersion);\n }\n\n async updateDependenciesVersionsOfComponent(\n component: Component,\n dependencies: ComponentID[],\n currentBitIds: BitId[]\n ) {\n const depsBitIds = dependencies.map((d) => d._legacy);\n const updatedIds = BitIds.fromArray([...currentBitIds, ...depsBitIds]);\n const componentIdStr = component.id.toString();\n const legacyComponent: ConsumerComponent = component.state._consumer;\n const deps = [...legacyComponent.dependencies.get(), ...legacyComponent.devDependencies.get()];\n const dependenciesList = await this.dependencyResolver.getDependencies(component);\n deps.forEach((dep) => {\n const updatedBitId = updatedIds.searchWithoutVersion(dep.id);\n if (updatedBitId) {\n const depIdStr = dep.id.toString();\n const packageName = dependenciesList.findDependency(depIdStr)?.getPackageName?.();\n if (!packageName) {\n throw new Error(\n `unable to find the package-name of \"${depIdStr}\" dependency inside the dependency-resolver data of \"${componentIdStr}\"`\n );\n }\n this.logger.debug(`updating \"${componentIdStr}\", dependency ${depIdStr} to version ${updatedBitId.version}}`);\n dep.id = updatedBitId;\n dep.packageName = packageName;\n }\n });\n legacyComponent.extensions.forEach((ext) => {\n if (!ext.extensionId) return;\n const updatedBitId = updatedIds.searchWithoutVersion(ext.extensionId);\n if (updatedBitId) {\n this.logger.debug(\n `updating \"${componentIdStr}\", extension ${ext.extensionId.toString()} to version ${updatedBitId.version}}`\n );\n ext.extensionId = updatedBitId;\n }\n });\n\n const dependenciesListSerialized = (await this.dependencyResolver.extractDepsFromLegacy(component)).serialize();\n const extId = DependencyResolverAspect.id;\n const data = { dependencies: dependenciesListSerialized };\n const existingExtension = component.state._consumer.extensions.findExtension(extId);\n if (existingExtension) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n const extension = new ExtensionDataEntry(undefined, undefined, extId, undefined, data);\n component.state._consumer.extensions.push(extension);\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean,\n unmerged: 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 tagPendingBitIds = includeUnmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n\n const tagPendingComponentsIds = await this.workspace.resolveMultipleComponentIds(tagPendingBitIds);\n\n const snappedComponents = await componentsList.listSnappedComponentsOnMain();\n const snappedComponentsIds = snappedComponents.map((c) => c.toBitId());\n\n if (ids.length) {\n const componentIds = await pMapSeries(ids, async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idHasWildcard = hasWildcard(id);\n if (idHasWildcard) {\n const allIds = this.workspace.scope.filterIdsFromPoolIdsByPattern(idWithoutVer, tagPendingComponentsIds);\n return allIds.map((componentId) => componentId.changeVersion(version));\n }\n const componentId = await this.workspace.resolveComponentId(idWithoutVer);\n if (!includeUnmodified) {\n const componentStatus = await this.workspace.consumer.getComponentStatusById(componentId._legacy);\n if (componentStatus.modified === false) return null;\n }\n return componentId.changeVersion(version);\n });\n\n return { bitIds: compact(componentIds.flat()).map((bitId) => bitId._legacy), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n if (unmerged) {\n return { bitIds: componentsList.listDuringMergeStateComponents(), warnings };\n }\n\n const tagPendingBitIdsIncludeSnapped = [...tagPendingBitIds, ...snappedComponentsIds];\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(tagPendingBitIds, false);\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: tagPendingBitIdsIncludeSnapped.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n LoggerAspect,\n IssuesAspect,\n InsightsAspect,\n DependencyResolverAspect,\n ScopeAspect,\n ExportAspect,\n BuilderAspect,\n ImporterAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n workspace,\n cli,\n loggerMain,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer,\n ]: [\n Workspace,\n CLIMain,\n LoggerMain,\n IssuesMain,\n InsightsMain,\n DependencyResolverMain,\n ScopeMain,\n ExportMain,\n BuilderMain,\n ImporterMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(\n workspace,\n logger,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer\n );\n const snapCmd = new SnapCmd(snapping, logger);\n const tagCmd = new TagCmd(snapping, logger);\n const tagFromScopeCmd = new TagFromScopeCmd(snapping, logger);\n const snapFromScopeCmd = new SnapFromScopeCmd(snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd, tagFromScopeCmd, snapFromScopeCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;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"}
1
+ {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","dependencyResolver","scope","exporter","builder","importer","objectsRepo","legacyScope","objects","tag","ids","message","version","editor","snapped","unmerged","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","build","unmodified","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","failFast","BitError","exactVersion","OutsideWorkspaceError","idsHasWildcard","hasWildcard","isAll","Boolean","length","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","debug","toString","components","loadComponentsForTagOrSnap","consumerComponents","map","c","state","_consumer","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","throwForPendingImport","taggedComponents","autoTaggedResults","publishedPackages","stagedConfig","removedComponents","tagModelComponent","snapping","packageManagerConfigRootDir","path","exitOnFirstFailedTask","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","Analytics","setExtraData","concat","onDestroy","write","tagFromScope","tagDataPerCompRaw","params","tagDataPerComp","Promise","all","tagData","componentId","resolveComponentId","dependencies","resolveMultipleComponentIds","versionToTag","prereleaseId","componentIds","t","_legacy","componentIdsLatest","id","changeVersion","LATEST","deps","compact","flat","dep","import","useCache","d","getCompIdWithExactVersionAccordingToSemver","loadMany","comp","find","isEqual","ignoreVersion","Error","updateDependenciesVersionsOfComponent","allComponentsBuildSuccessfully","every","buildStatus","BuildStatus","Succeed","legacyIds","results","skipBuildPipeline","copyLogFromPreviousSnap","push","exportMany","idsWithFutureScope","allVersions","snapFromScope","snapDataPerCompRaw","snapDataPerComp","snapData","aspects","lane","laneIdStr","laneId","LaneId","parse","importLaneObject","setCurrentLaneId","scopeImporter","shouldOnlyFetchFromCurrentLane","addAspectsFromConfigObject","isSnap","exportedIds","updatedLane","loadLane","toLaneId","undefined","exported","laneObject","exportHeadsOnly","e","snappedIds","snap","pattern","skipAutoSnap","getIdsToSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","listDuringMergeStateComponents","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","tagPendingComponentsIds","shouldThrowForNoMatching","getCompIds","includes","compId","filterIdsFromPoolIdsByPattern","allTagPending","reset","componentPattern","head","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","idsMatchingPatternBitIds","componentsToUntag","filter","modelComponent","hasWithoutVersion","toBitId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponents","listSoftTaggedComponents","softTaggedComponentsIds","idsToRemoveSoftTags","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","isRealUntag","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","_addFlattenedDependenciesToComponents","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","stop","_addFlattenedDepsGraphToComponents","graph","Graph","addEdges","label","get","forEach","setNode","Node","setEdge","Edge","devDependencies","extensionDependencies","allFlattened","flattenedDependencies","allFlattenedUniq","uniqFromArray","allFlattenedWithoutCurrent","componentsAndVersions","getComponentsAndVersions","versionStr","someCompsHaveMissingFlattened","edges","outEdges","flattenedEdges","allEdges","edgesWithBitIds","edge","source","node","attr","target","type","flattened","flattenedFromEdges","uniq","missingFlattened","difference","warn","join","missingBitIds","_updateComponentsByTagResult","tagResult","matchingComponent","existingBuilder","extensions","findCoreExtension","Extensions","data","builderData","_getPublishedPackages","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","_addCompToObjects","shouldValidateVersion","_addCompFromScopeToObjects","unmergedComponent","unmergedComponents","getEntry","name","unrelated","hash","previouslyUsedVersion","unrelatedHead","Ref","from","addAsOnlyParent","addParent","log","UnmergedComponents","buildSnapMessage","removeComponent","validate","objectRepo","sources","findOrAddComponent","artifactFiles","getArtifactsFiles","artifacts","transformArtifactsFromVinylToSource","files","consumerComponentToVersion","add","addVersion","file","_enrichComp","consumerComponent","modifiedLog","_getObjectsToEnrichComp","obj","loadVersion","addModifiedLog","artifactObjects","artifactsFiles","artifactsSource","ArtifactFiles","fromVinylsToSources","vinyls","populateRefsFromSources","shouldClearCacheFirst","compIds","componentFsCache","deleteAllDependenciesDataCache","clearComponentCache","getMany","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","legacyComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","workspaceIssues","getWorkspaceIssues","issuesStr","issueErr","componentsMissingFromScope","isRemoved","componentFromModel","hasScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","depId","hasVersion","modelComp","getModelComponentIfExist","isLegacy","pMap","concurrency","concurrentComponentsLimit","isHash","range","getExactVersionBySemverRange","currentBitIds","depsBitIds","updatedIds","componentIdStr","legacyComponent","dependenciesList","getDependencies","updatedBitId","searchWithoutVersion","depIdStr","packageName","findDependency","getPackageName","ext","extensionId","dependenciesListSerialized","extractDepsFromLegacy","serialize","extId","DependencyResolverAspect","existingExtension","findExtension","Object","assign","extension","ExtensionDataEntry","includeUnmodified","tagPendingBitIds","listSnappedComponentsOnMain","snappedComponentsIds","pMapSeries","idWithoutVer","idHasWildcard","allIds","componentStatus","getComponentStatusById","modified","bitId","tagPendingBitIdsIncludeSnapped","tagPendingComponentsLatest","latestVersions","semver","valid","gt","provider","cli","loggerMain","createLogger","SnappingAspect","snapCmd","SnapCmd","tagCmd","TagCmd","tagFromScopeCmd","TagFromScopeCmd","snapFromScopeCmd","SnapFromScopeCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","LoggerAspect","IssuesAspect","InsightsAspect","ScopeAspect","ExportAspect","BuilderAspect","ImporterAspect","MainRuntime","addRuntime"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { FlattenedDependenciesGetter } from '@teambit/legacy/dist/scope/component-ops/get-flattened-dependencies';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact, difference, uniq } 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, Extensions, LATEST, BuildStatus } 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 pMapSeries from 'p-map-series';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport loader from '@teambit/legacy/dist/cli/loader';\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 pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport {\n removeLocalVersionsForAllComponents,\n untagResult,\n getComponentsWithOptionToUntag,\n removeLocalVersionsForMultipleComponents,\n} from '@teambit/legacy/dist/scope/component-ops/untag-component';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Lane, ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { Component } from '@teambit/component';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { LaneId } from '@teambit/lane-id';\nimport ImporterAspect, { ImporterMain } from '@teambit/importer';\nimport { ExportAspect, ExportMain } from '@teambit/export';\nimport UnmergedComponents from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport { ComponentID } from '@teambit/component-id';\nimport { isHash } from '@teambit/component-version';\nimport { BitObject, Ref, Repository } from '@teambit/legacy/dist/scope/objects';\nimport {\n ArtifactFiles,\n ArtifactSource,\n getArtifactsFiles,\n} from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { AutoTagResult } from '@teambit/legacy/dist/scope/component-ops/auto-tag';\nimport Version, { DepEdge, DepEdgeType, Log } from '@teambit/legacy/dist/scope/models/version';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\nimport ResetCmd from './reset-cmd';\nimport { tagModelComponent, updateComponentsVersions, BasicTagParams } from './tag-model-component';\nimport { TagDataPerCompRaw, TagFromScopeCmd } from './tag-from-scope.cmd';\nimport { SnapDataPerCompRaw, SnapFromScopeCmd } from './snap-from-scope.cmd';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport type TagDataPerComp = {\n componentId: ComponentID;\n dependencies: ComponentID[];\n versionToTag?: string; // must be set for tag. undefined for snap.\n prereleaseId?: string;\n message?: string;\n};\n\nexport type SnapResults = BasicTagResults & {\n snappedComponents: ConsumerComponent[];\n autoSnappedResults: AutoTagResult[];\n laneName: string | null; // null if default\n};\n\nexport type SnapFromScopeResults = {\n snappedIds: string[];\n exportedIds?: string[];\n};\n\nexport type TagResults = BasicTagResults & {\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n isSoftTag: boolean;\n publishedPackages: string[];\n};\n\nexport type BasicTagResults = {\n warnings: string[];\n newComponents: BitIds;\n removedComponents?: BitIds;\n};\n\nexport class SnappingMain {\n private objectsRepo: Repository;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain,\n private dependencyResolver: DependencyResolverMain,\n private scope: ScopeMain,\n private exporter: ExportMain,\n private builder: BuilderMain,\n private importer: ImporterMain\n ) {\n this.objectsRepo = this.scope?.legacyScope?.objects;\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 version,\n editor = '',\n snapped = false,\n unmerged = false,\n releaseType,\n preReleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n build,\n unmodified = false,\n soft = false,\n persist = false,\n forceDeploy = false,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n failFast = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean;\n unmerged?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n failFast?: boolean;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n if (soft) build = false;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-tag-pipeline, 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 exactVersion = version;\n if (!this.workspace) throw new OutsideWorkspaceError();\n const idsHasWildcard = hasWildcard(ids);\n const isAll = Boolean(!ids.length || 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 unmodified,\n exactVersion,\n persist,\n ids,\n snapped,\n unmerged\n );\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n const components = await this.loadComponentsForTagOrSnap(legacyBitIds, !soft);\n const consumerComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n await this.throwForLegacyDependenciesInsideHarmony(consumerComponents);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(consumerComponents);\n\n const { taggedComponents, autoTaggedResults, publishedPackages, stagedConfig, removedComponents } =\n await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents,\n ids: legacyBitIds,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\n dependencyResolver: this.dependencyResolver,\n exitOnFirstFailedTask: failFast,\n });\n\n const tagResults = {\n taggedComponents,\n autoTaggedResults,\n isSoftTag: soft,\n publishedPackages,\n warnings,\n newComponents,\n removedComponents,\n };\n\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 await stagedConfig?.write();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n async tagFromScope(\n tagDataPerCompRaw: TagDataPerCompRaw[],\n params: {\n push?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n incrementBy?: number;\n } & Partial<BasicTagParams>\n ): Promise<TagResults | null> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n const tagDataPerComp = await Promise.all(\n tagDataPerCompRaw.map(async (tagData) => {\n return {\n componentId: await this.scope.resolveComponentId(tagData.componentId),\n dependencies: tagData.dependencies ? await this.scope.resolveMultipleComponentIds(tagData.dependencies) : [],\n versionToTag: tagData.versionToTag || 'patch',\n prereleaseId: tagData.prereleaseId,\n message: tagData.message,\n };\n })\n );\n const componentIds = tagDataPerComp.map((t) => t.componentId);\n const bitIds = componentIds.map((c) => c._legacy);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n const deps = compact(tagDataPerComp.map((t) => t.dependencies).flat()).map((dep) => dep.changeVersion(LATEST));\n const components = await this.scope.import(componentIdsLatest);\n\n // import deps to be able to resolve semver\n await this.scope.import(deps, { useCache: false });\n await Promise.all(\n tagDataPerComp.map(async (tagData) => {\n tagData.dependencies = tagData.dependencies\n ? await Promise.all(tagData.dependencies.map((d) => this.getCompIdWithExactVersionAccordingToSemver(d)))\n : [];\n })\n );\n\n // needed in order to load all aspects of these components\n await this.scope.loadMany(components.map((c) => c.id));\n await Promise.all(\n components.map(async (comp) => {\n const tagData = tagDataPerComp.find((t) => t.componentId.isEqual(comp.id, { ignoreVersion: true }));\n if (!tagData) throw new Error(`unable to find ${comp.id.toString()} in tagDataPerComp`);\n if (!tagData.dependencies.length) return;\n await this.updateDependenciesVersionsOfComponent(comp, tagData.dependencies, bitIds);\n })\n );\n const consumerComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n const allComponentsBuildSuccessfully = consumerComponents.every((comp) => {\n if (!comp.buildStatus) throw new Error(`tag-from-scope expect ${comp.id.toString()} to have buildStatus`);\n return comp.buildStatus === BuildStatus.Succeed;\n });\n const legacyIds = BitIds.fromArray(componentIds.map((id) => id._legacy));\n const results = await tagModelComponent({\n ...params,\n scope: this.scope,\n consumerComponents,\n tagDataPerComp,\n skipBuildPipeline: allComponentsBuildSuccessfully,\n copyLogFromPreviousSnap: true,\n snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: true,\n persist: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents, publishedPackages } = results;\n\n if (params.push) {\n await this.exporter.exportMany({\n scope: this.scope.legacyScope,\n ids: legacyIds,\n idsWithFutureScope: legacyIds,\n allVersions: false,\n });\n }\n\n return {\n taggedComponents,\n autoTaggedResults: [],\n isSoftTag: false,\n publishedPackages,\n warnings: [],\n newComponents: new BitIds(),\n };\n }\n\n async snapFromScope(\n snapDataPerCompRaw: SnapDataPerCompRaw[],\n params: {\n push?: boolean;\n ignoreIssues?: string;\n lane?: string;\n } & Partial<BasicTagParams>\n ): Promise<SnapFromScopeResults> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n const snapDataPerComp = await Promise.all(\n snapDataPerCompRaw.map(async (snapData) => {\n return {\n componentId: await this.scope.resolveComponentId(snapData.componentId),\n dependencies: snapData.dependencies\n ? await this.scope.resolveMultipleComponentIds(snapData.dependencies)\n : [],\n aspects: snapData.aspects,\n message: snapData.message,\n };\n })\n );\n const componentIds = snapDataPerComp.map((t) => t.componentId);\n const bitIds = componentIds.map((c) => c._legacy);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n\n let lane: Lane | undefined;\n const laneIdStr = params.lane;\n if (laneIdStr) {\n const laneId = LaneId.parse(laneIdStr);\n lane = await this.importer.importLaneObject(laneId);\n // this is critical. otherwise, later on, when loading aspects and isolating capsules, we'll try to fetch dists\n // from the original scope instead of the lane-scope.\n this.scope.legacyScope.setCurrentLaneId(laneId);\n this.scope.legacyScope.scopeImporter.shouldOnlyFetchFromCurrentLane = true;\n }\n\n const components = await this.scope.import(componentIdsLatest, { lane });\n await Promise.all(\n components.map(async (comp) => {\n const snapData = snapDataPerComp.find((t) => {\n return t.componentId.isEqual(comp.id, { ignoreVersion: true });\n });\n if (!snapData) throw new Error(`unable to find ${comp.id.toString()} in snapDataPerComp`);\n if (snapData.aspects) await this.scope.addAspectsFromConfigObject(comp, snapData.aspects);\n if (snapData.dependencies.length) {\n await this.updateDependenciesVersionsOfComponent(comp, snapData.dependencies, bitIds);\n }\n })\n );\n const consumerComponents = components.map((c) => c.state._consumer);\n const legacyIds = BitIds.fromArray(componentIds.map((id) => id._legacy));\n const results = await tagModelComponent({\n ...params,\n scope: this.scope,\n consumerComponents,\n tagDataPerComp: snapDataPerComp,\n snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: true,\n persist: true,\n isSnap: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents } = results;\n let exportedIds: string[] | undefined;\n if (params.push) {\n const updatedLane = lane ? await this.scope.legacyScope.loadLane(lane.toLaneId()) : undefined;\n const { exported } = await this.exporter.exportMany({\n scope: this.scope.legacyScope,\n ids: legacyIds,\n idsWithFutureScope: legacyIds,\n allVersions: false,\n laneObject: updatedLane || undefined,\n // no need other snaps. only the latest one. without this option, when snapping on lane from another-scope, it\n // may throw an error saying the previous snaps don't exist on the filesystem.\n // (see the e2e - \"snap on a lane when the component is new to the lane and the scope\")\n exportHeadsOnly: true,\n });\n exportedIds = exported.map((e) => e.toString());\n }\n\n return {\n snappedIds: taggedComponents.map((comp) => comp.id.toString()),\n exportedIds,\n };\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 pattern,\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n unmerged,\n editor,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n exitOnFirstFailedTask = false,\n }: {\n pattern?: string;\n legacyBitIds?: BitIds;\n unmerged?: boolean;\n editor?: string;\n message?: string;\n ignoreIssues?: string;\n build: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n exitOnFirstFailedTask?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (pattern && legacyBitIds) throw new Error(`please pass either pattern or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap(this.workspace));\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n const components = await this.loadComponentsForTagOrSnap(ids);\n const consumerComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n await this.throwForLegacyDependenciesInsideHarmony(consumerComponents);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(consumerComponents);\n\n const { taggedComponents, autoTaggedResults, stagedConfig, removedComponents } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n editor,\n consumerComponents,\n ids,\n ignoreNewestVersion: false,\n message,\n skipTests,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n isSnap: true,\n disableTagAndSnapPipelines,\n forceDeploy,\n packageManagerConfigRootDir: this.workspace.path,\n dependencyResolver: this.dependencyResolver,\n exitOnFirstFailedTask,\n });\n\n const snapResults: Partial<SnapResults> = {\n snappedComponents: taggedComponents,\n autoSnappedResults: autoTaggedResults,\n newComponents,\n removedComponents,\n };\n\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.toString();\n await consumer.onDestroy();\n await stagedConfig?.write();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(workspace: Workspace): Promise<BitIds | null> {\n if (unmerged) {\n return componentsList.listDuringMergeStateComponents();\n }\n const tagPendingComponents = unmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n if (R.isEmpty(tagPendingComponents)) return null;\n const tagPendingComponentsIds = await workspace.resolveMultipleComponentIds(tagPendingComponents);\n // when unmodified, we ask for all components, throw if no matching. if not unmodified and no matching, see error\n // below, suggesting to use --unmodified flag.\n const shouldThrowForNoMatching = unmodified;\n const getCompIds = async () => {\n if (!pattern) return tagPendingComponentsIds;\n if (!pattern.includes('*') && !pattern.includes(',')) {\n const compId = await workspace.resolveComponentId(pattern);\n return [compId];\n }\n return workspace.scope.filterIdsFromPoolIdsByPattern(\n pattern,\n tagPendingComponentsIds,\n shouldThrowForNoMatching\n );\n };\n const componentIds = await getCompIds();\n if (!componentIds.length && pattern) {\n const allTagPending = await componentsList.listPotentialTagAllWorkspace();\n if (allTagPending.length) {\n throw new BitError(`unable to find matching for \"${pattern}\" pattern among modified/new components.\nthere are matching among unmodified components thought. consider using --unmodified flag if needed`);\n }\n }\n if (!componentIds.length) {\n return null;\n }\n return BitIds.fromArray(componentIds.map((c) => c._legacy));\n }\n }\n\n /**\n * remove tags/snaps that exist locally, which were not exported yet.\n * once a tag/snap is exported, it's impossible to delete it as other components may depend on it\n */\n async reset(\n componentPattern?: string,\n head?: boolean,\n force = false,\n soft = false\n ): Promise<{ results: untagResult[]; isSoftUntag: boolean }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const consumer = this.workspace.consumer;\n const currentLane = await consumer.getCurrentLaneObject();\n const untag = async (): Promise<untagResult[]> => {\n if (!componentPattern) {\n return removeLocalVersionsForAllComponents(consumer, currentLane, head);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(consumer);\n const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern);\n const idsMatchingPatternBitIds = BitIds.fromArray(idsMatchingPattern.map((id) => id._legacy));\n const componentsToUntag = candidateComponents.filter((modelComponent) =>\n idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toBitId())\n );\n return removeLocalVersionsForMultipleComponents(componentsToUntag, currentLane, head, force, consumer.scope);\n };\n const softUntag = async () => {\n const componentsList = new ComponentsList(consumer);\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n const softTaggedComponentsIds = await this.workspace.resolveMultipleComponentIds(softTaggedComponents);\n const idsToRemoveSoftTags = componentPattern\n ? this.workspace.scope.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds)\n : softTaggedComponentsIds;\n return compact(\n idsToRemoveSoftTags.map((componentId) => {\n const componentMap = consumer.bitMap.getComponent(componentId._legacy, { ignoreScopeAndVersion: true });\n const removedVersion = componentMap.nextVersion?.version;\n if (!removedVersion) return null;\n componentMap.clearNextVersion();\n return { id: componentId._legacy, versions: [removedVersion] };\n })\n );\n };\n let results: untagResult[];\n const isRealUntag = !soft;\n if (isRealUntag) {\n results = await untag();\n await consumer.scope.objects.persist();\n const components = results.map((result) => result.component);\n await updateComponentsVersions(this.workspace, components as ModelComponent[], false);\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy();\n return { results, isSoftUntag: !isRealUntag };\n }\n\n async _addFlattenedDependenciesToComponents(components: ConsumerComponent[]) {\n loader.start('importing missing dependencies...');\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(this.scope.legacyScope, components);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n loader.stop();\n await this._addFlattenedDepsGraphToComponents(components);\n }\n\n async _addFlattenedDepsGraphToComponents(components: ConsumerComponent[]) {\n const graph = new Graph<BitId, string>();\n const addEdges = (compId: BitId, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n graph.setNode(new Node(dep.id.toString(), dep.id));\n graph.setEdge(new Edge(compId.toString(), dep.id.toString(), label));\n });\n };\n components.forEach((comp) => {\n graph.setNode(new Node(comp.id.toString(), comp.id));\n addEdges(comp.id, comp.dependencies, 'prod');\n addEdges(comp.id, comp.devDependencies, 'dev');\n addEdges(comp.id, comp.extensionDependencies, 'ext');\n });\n const allFlattened = components.map((comp) => comp.flattenedDependencies);\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened.flat());\n const allFlattenedWithoutCurrent = allFlattenedUniq.filter((id) => !components.find((c) => c.id.isEqual(id)));\n const componentsAndVersions = await this.scope.legacyScope.getComponentsAndVersions(\n BitIds.fromArray(allFlattenedWithoutCurrent)\n );\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compId = component.toBitId().changeVersion(versionStr);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n let someCompsHaveMissingFlattened = false;\n components.forEach((component) => {\n const edges = graph.outEdges(component.id.toString());\n const flattenedEdges = component.flattenedDependencies.map((dep) => graph.outEdges(dep.toString())).flat();\n const allEdges = [...edges, ...flattenedEdges];\n const edgesWithBitIds: DepEdge[] = allEdges.map((edge) => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n source: graph.node(edge.source)!.attr,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n target: graph.node(edge.target)!.attr,\n type: edge.attr as DepEdgeType,\n }));\n component.flattenedEdges = edgesWithBitIds;\n\n // due to some previous bugs, some components might have missing flattened dependencies.\n // as a result, the flattenedEdges may have more components than the flattenedDependencies, which will cause\n // issues later on when the graph is built. this fixes it by adding the missing flattened dependencies, and\n // then recursively adding the flattenedEdge accordingly.\n const flattened = component.flattenedDependencies.map((dep) => dep.toString());\n const flattenedFromEdges = uniq(\n edgesWithBitIds.map((edge) => [edge.target.toString(), edge.source.toString()]).flat()\n );\n const missingFlattened = difference(flattenedFromEdges, flattened).filter((id) => id !== component.id.toString());\n\n if (missingFlattened.length) {\n someCompsHaveMissingFlattened = true;\n this.logger.warn(`missing flattened for ${component.id.toString()}: ${missingFlattened.join(', ')}`);\n const missingBitIds = missingFlattened.map((id) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return graph.node(id)!.attr;\n });\n component.flattenedDependencies.push(...missingBitIds);\n }\n });\n if (someCompsHaveMissingFlattened) {\n await this._addFlattenedDepsGraphToComponents(components);\n }\n }\n\n _updateComponentsByTagResult(components: ConsumerComponent[], tagResult: LegacyOnTagResult[]) {\n tagResult.forEach((result) => {\n const matchingComponent = components.find((c) => c.id.isEqual(result.id));\n if (matchingComponent) {\n const existingBuilder = matchingComponent.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = result.builderData.data;\n else matchingComponent.extensions.push(result.builderData);\n }\n });\n }\n\n _getPublishedPackages(components: ConsumerComponent[]): string[] {\n const publishedPackages = components.map((comp) => {\n const builderExt = comp.extensions.findCoreExtension(Extensions.builder);\n const pkgData = builderExt?.data?.aspectsData?.find((a) => a.aspectId === Extensions.pkg);\n return pkgData?.data?.publishedPackage;\n });\n return compact(publishedPackages);\n }\n\n async _addCompToObjects({\n source,\n consumer,\n lane,\n shouldValidateVersion = false,\n }: {\n source: ConsumerComponent;\n consumer: Consumer;\n lane: Lane | null;\n shouldValidateVersion?: boolean;\n }): Promise<ModelComponent> {\n const { component, version } = await this._addCompFromScopeToObjects(source, lane);\n const unmergedComponent = consumer.scope.objects.unmergedComponents.getEntry(component.name);\n if (unmergedComponent) {\n if (unmergedComponent.unrelated) {\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding an unrelated entry ${unmergedComponent.head.hash}`\n );\n if (!source.previouslyUsedVersion) {\n throw new Error(\n `source.previouslyUsedVersion must be set for ${component.name} because it's unrelated resolved.`\n );\n }\n const unrelatedHead = Ref.from(source.previouslyUsedVersion);\n version.unrelated = { head: unrelatedHead, laneId: unmergedComponent.laneId };\n version.addAsOnlyParent(unmergedComponent.head);\n } else {\n // this is adding a second parent to the version. the order is important. the first parent is coming from the current-lane.\n version.addParent(unmergedComponent.head);\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding a parent ${unmergedComponent.head.hash}`\n );\n version.log.message = version.log.message || UnmergedComponents.buildSnapMessage(unmergedComponent);\n }\n consumer.scope.objects.unmergedComponents.removeComponent(component.name);\n }\n if (shouldValidateVersion) version.validate();\n return component;\n }\n\n async _addCompFromScopeToObjects(\n source: ConsumerComponent,\n lane: Lane | null\n ): Promise<{\n component: ModelComponent;\n version: Version;\n }> {\n const objectRepo = this.objectsRepo;\n // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n const component = await this.scope.legacyScope.sources.findOrAddComponent(source);\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files, flattenedEdges } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n objectRepo.add(version);\n if (flattenedEdges) this.objectsRepo.add(flattenedEdges);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, objectRepo, source.previouslyUsedVersion);\n objectRepo.add(component);\n files.forEach((file) => objectRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => objectRepo.add(file.source));\n return { component, version };\n }\n\n async _enrichComp(consumerComponent: ConsumerComponent, modifiedLog?: Log) {\n const objects = await this._getObjectsToEnrichComp(consumerComponent, modifiedLog);\n objects.forEach((obj) => this.objectsRepo.add(obj));\n return consumerComponent;\n }\n\n async _getObjectsToEnrichComp(consumerComponent: ConsumerComponent, modifiedLog?: Log): Promise<BitObject[]> {\n const component =\n consumerComponent.modelComponent || (await this.scope.legacyScope.sources.findOrAddComponent(consumerComponent));\n const version = await component.loadVersion(consumerComponent.id.version as string, this.objectsRepo, true, true);\n if (modifiedLog) version.addModifiedLog(modifiedLog);\n const artifactFiles = getArtifactsFiles(consumerComponent.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n version.extensions = consumerComponent.extensions;\n version.buildStatus = consumerComponent.buildStatus;\n const artifactObjects = artifacts.map((file) => file.source);\n return [version, ...artifactObjects];\n }\n\n private transformArtifactsFromVinylToSource(artifactsFiles: ArtifactFiles[]): ArtifactSource[] {\n const artifacts: ArtifactSource[] = [];\n artifactsFiles.forEach((artifactFiles) => {\n const artifactsSource = ArtifactFiles.fromVinylsToSources(artifactFiles.vinyls);\n if (artifactsSource.length) artifactFiles.populateRefsFromSources(artifactsSource);\n artifacts.push(...artifactsSource);\n });\n return artifacts;\n }\n\n private async loadComponentsForTagOrSnap(ids: BitIds, shouldClearCacheFirst = true): Promise<Component[]> {\n const compIds = await this.workspace.resolveMultipleComponentIds(ids);\n if (shouldClearCacheFirst) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n compIds.map((compId) => this.workspace.clearComponentCache(compId));\n }\n\n return this.workspace.getMany(compIds.map((id) => id.changeVersion(undefined)));\n }\n\n private async throwForComponentIssues(components: Component[], ignoreIssues?: string) {\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n await this.issues.triggerAddComponentIssues(components, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(components, issuesToIgnore);\n const legacyComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n\n const workspaceIssues = this.workspace.getWorkspaceIssues();\n if (workspaceIssues.length) {\n const issuesStr = workspaceIssues.map((issueErr) => issueErr.message).join('\\n');\n throw new BitError(`the workspace has the following issues:\\n${issuesStr}`);\n }\n }\n\n private throwForPendingImport(components: ConsumerComponent[]) {\n const componentsMissingFromScope = components\n .filter((c) => !c.isRemoved())\n .filter((c) => !c.componentFromModel && c.id.hasScope())\n .map((c) => c.id.toString());\n if (componentsMissingFromScope.length) {\n throw new ComponentsPendingImport(componentsMissingFromScope);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\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 /**\n * the compId.version can be a range (e.g. \"^1.0.0\"), in which case, it finds the component in the local scope and\n * resolves the latest version that falls under the range.\n * in case the version has no range, it returns the same compId.\n * in case it has no version, it returns the latest.\n */\n async getCompIdWithExactVersionAccordingToSemver(compId: ComponentID): Promise<ComponentID> {\n if (isHash(compId.version)) {\n return compId;\n }\n const range = compId.version || '*'; // if not version specified, assume the latest\n const id = compId.changeVersion(undefined);\n const exactVersion = await this.scope.getExactVersionBySemverRange(id, range);\n if (!exactVersion) {\n throw new Error(`unable to find a version that satisfies \"${range}\" of \"${compId.toString()}\"`);\n }\n return compId.changeVersion(exactVersion);\n }\n\n async updateDependenciesVersionsOfComponent(\n component: Component,\n dependencies: ComponentID[],\n currentBitIds: BitId[]\n ) {\n const depsBitIds = dependencies.map((d) => d._legacy);\n const updatedIds = BitIds.fromArray([...currentBitIds, ...depsBitIds]);\n const componentIdStr = component.id.toString();\n const legacyComponent: ConsumerComponent = component.state._consumer;\n const deps = [...legacyComponent.dependencies.get(), ...legacyComponent.devDependencies.get()];\n const dependenciesList = await this.dependencyResolver.getDependencies(component);\n deps.forEach((dep) => {\n const updatedBitId = updatedIds.searchWithoutVersion(dep.id);\n if (updatedBitId) {\n const depIdStr = dep.id.toString();\n const packageName = dependenciesList.findDependency(depIdStr)?.getPackageName?.();\n if (!packageName) {\n throw new Error(\n `unable to find the package-name of \"${depIdStr}\" dependency inside the dependency-resolver data of \"${componentIdStr}\"`\n );\n }\n this.logger.debug(`updating \"${componentIdStr}\", dependency ${depIdStr} to version ${updatedBitId.version}}`);\n dep.id = updatedBitId;\n dep.packageName = packageName;\n }\n });\n legacyComponent.extensions.forEach((ext) => {\n if (!ext.extensionId) return;\n const updatedBitId = updatedIds.searchWithoutVersion(ext.extensionId);\n if (updatedBitId) {\n this.logger.debug(\n `updating \"${componentIdStr}\", extension ${ext.extensionId.toString()} to version ${updatedBitId.version}}`\n );\n ext.extensionId = updatedBitId;\n }\n });\n\n const dependenciesListSerialized = (await this.dependencyResolver.extractDepsFromLegacy(component)).serialize();\n const extId = DependencyResolverAspect.id;\n const data = { dependencies: dependenciesListSerialized };\n const existingExtension = component.state._consumer.extensions.findExtension(extId);\n if (existingExtension) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n const extension = new ExtensionDataEntry(undefined, undefined, extId, undefined, data);\n component.state._consumer.extensions.push(extension);\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean,\n unmerged: 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 tagPendingBitIds = includeUnmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n\n const tagPendingComponentsIds = await this.workspace.resolveMultipleComponentIds(tagPendingBitIds);\n\n const snappedComponents = await componentsList.listSnappedComponentsOnMain();\n const snappedComponentsIds = snappedComponents.map((c) => c.toBitId());\n\n if (ids.length) {\n const componentIds = await pMapSeries(ids, async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idHasWildcard = hasWildcard(id);\n if (idHasWildcard) {\n const allIds = this.workspace.scope.filterIdsFromPoolIdsByPattern(idWithoutVer, tagPendingComponentsIds);\n return allIds.map((componentId) => componentId.changeVersion(version));\n }\n const componentId = await this.workspace.resolveComponentId(idWithoutVer);\n if (!includeUnmodified) {\n const componentStatus = await this.workspace.consumer.getComponentStatusById(componentId._legacy);\n if (componentStatus.modified === false) return null;\n }\n return componentId.changeVersion(version);\n });\n\n return { bitIds: compact(componentIds.flat()).map((bitId) => bitId._legacy), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n if (unmerged) {\n return { bitIds: componentsList.listDuringMergeStateComponents(), warnings };\n }\n\n const tagPendingBitIdsIncludeSnapped = [...tagPendingBitIds, ...snappedComponentsIds];\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(tagPendingBitIds, false);\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: tagPendingBitIdsIncludeSnapped.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n LoggerAspect,\n IssuesAspect,\n InsightsAspect,\n DependencyResolverAspect,\n ScopeAspect,\n ExportAspect,\n BuilderAspect,\n ImporterAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n workspace,\n cli,\n loggerMain,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer,\n ]: [\n Workspace,\n CLIMain,\n LoggerMain,\n IssuesMain,\n InsightsMain,\n DependencyResolverMain,\n ScopeMain,\n ExportMain,\n BuilderMain,\n ImporterMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(\n workspace,\n logger,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer\n );\n const snapCmd = new SnapCmd(snapping, logger);\n const tagCmd = new TagCmd(snapping, logger);\n const tagFromScopeCmd = new TagFromScopeCmd(snapping, logger);\n const snapFromScopeCmd = new SnapFromScopeCmd(snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd, tagFromScopeCmd, snapFromScopeCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;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"}
package/dist/tag-cmd.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { BitIds } from '@teambit/legacy/dist/bit-id';
1
2
  import { Command, CommandOptions } from '@teambit/cli';
2
3
  import { ReleaseType } from 'semver';
3
4
  import { Logger } from '@teambit/logger';
@@ -46,3 +47,4 @@ export declare class TagCmd implements Command {
46
47
  disableTagPipeline?: boolean;
47
48
  } & Partial<BasicTagParams>): Promise<string>;
48
49
  }
50
+ export declare function outputIdsIfExists(label: string, ids?: BitIds): string;
package/dist/tag-cmd.js CHANGED
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.TagCmd = void 0;
10
+ exports.outputIdsIfExists = outputIdsIfExists;
10
11
  function _defineProperty2() {
11
12
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
13
  _defineProperty2 = function () {
@@ -206,7 +207,8 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
206
207
  taggedComponents,
207
208
  autoTaggedResults,
208
209
  warnings,
209
- newComponents
210
+ newComponents,
211
+ removedComponents
210
212
  } = results;
211
213
  const changedComponents = taggedComponents.filter(component => !newComponents.searchWithoutVersion(component.id));
212
214
  const addedComponents = taggedComponents.filter(component => newComponents.searchWithoutVersion(component.id));
@@ -251,9 +253,13 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
251
253
  const newDesc = results.isSoftTag ? 'set to be tagged first version for components' : 'first version for components';
252
254
  const changedDesc = results.isSoftTag ? 'components that set to get a version bump' : 'components that got a version bump';
253
255
  const softTagClarification = results.isSoftTag ? _chalk().default.bold('keep in mind that this is a soft-tag (changes recorded to be tagged), to persist the changes use --persist flag') : '';
254
- return warningsOutput + _chalk().default.green(`${taggedComponents.length + autoTaggedCount} component(s) ${results.isSoftTag ? 'soft-' : ''}tagged`) + tagExplanation + outputIfExists('new components', newDesc, addedComponents) + outputIfExists('changed components', changedDesc, changedComponents) + publishOutput() + softTagClarification;
256
+ return warningsOutput + _chalk().default.green(`${taggedComponents.length + autoTaggedCount} component(s) ${results.isSoftTag ? 'soft-' : ''}tagged`) + tagExplanation + outputIfExists('new components', newDesc, addedComponents) + outputIfExists('changed components', changedDesc, changedComponents) + outputIdsIfExists('removed components', removedComponents) + publishOutput() + softTagClarification;
255
257
  }
256
258
  }
257
259
  exports.TagCmd = TagCmd;
260
+ function outputIdsIfExists(label, ids) {
261
+ if (!(ids !== null && ids !== void 0 && ids.length)) return '';
262
+ return `\n${_chalk().default.underline(label)}\n${ids.map(id => id.toStringWithoutVersion()).join('\n')}\n`;
263
+ }
258
264
 
259
265
  //# sourceMappingURL=tag-cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RELEASE_TYPES","TagCmd","constructor","snapping","logger","name","description","join","Object","keys","IssuesClasses","cmd","report","patterns","message","ver","all","editor","snapped","unmerged","patch","minor","major","preRelease","increment","prereleaseId","force","ignoreUnresolvedDependencies","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","scope","unmodified","build","soft","persist","disableDeployPipeline","disableTagPipeline","forceDeploy","failFast","incrementBy","BitError","consoleWarning","length","releaseFlags","filter","x","getReleaseType","includes","DEFAULT_BIT_RELEASE_TYPE","getPreReleaseId","undefined","disableTagAndSnapPipelines","isFeatureEnabled","BUILD_ON_CI","Boolean","params","ids","releaseType","preReleaseId","version","results","tag","chalk","yellow","NOTHING_TO_TAG_MSG","taggedComponents","autoTaggedResults","warnings","newComponents","changedComponents","component","searchWithoutVersion","id","addedComponents","autoTaggedCount","warningsOutput","tagExplanationPersist","tagExplanationSoft","tagExplanation","isSoftTag","compInBold","hasVersion","bold","toStringWithoutVersion","outputComponents","comps","map","componentOutput","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_TAGGED_MSG","publishOutput","publishedPackages","successTitle","green","successCompsStr","successOutput","softTagPrefix","outputIfExists","label","explanation","components","underline","newDesc","changedDesc","softTagClarification"],"sources":["tag-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { NOTHING_TO_TAG_MSG, AUTO_TAGGED_MSG } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { DEFAULT_BIT_RELEASE_TYPE } from '@teambit/legacy/dist/constants';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ReleaseType } from 'semver';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { TagResults, SnappingMain } from './snapping.main.runtime';\nimport { BasicTagParams } from './tag-model-component';\n\nconst RELEASE_TYPES = ['major', 'premajor', 'minor', 'preminor', 'patch', 'prepatch', 'prerelease'];\n\nexport class TagCmd implements Command {\n name = 'tag [component-patterns...]';\n group = 'development';\n description = 'create an immutable and exportable component snapshot, tagged with a release version.';\n extendedDescription = `if no patterns are provided, it will tag all new and modified components.\nif patterns are entered, you can specify a version per pattern using \"@\" sign, e.g. bit tag foo@1.0.0 bar@minor baz@major`;\n arguments = [\n {\n name: 'component-patterns...',\n description:\n 'a list of component names, IDs or patterns (separated by space). run \"bit pattern --help\" to get more data about patterns. By default, all modified are tagged.',\n },\n ];\n helpUrl = 'docs/components/snaps';\n alias = 't';\n loader = true;\n options = [\n ['m', 'message <message>', 'a log message describing latest changes'],\n ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are tagged)'],\n [\n '',\n 'editor [editor]',\n 'EXPERIMENTAL. open an editor to write a tag message for each component. optionally, specify the editor-name (defaults to vim).',\n ],\n ['v', 'ver <version>', 'tag with the given version'],\n ['l', 'increment <level>', `options are: [${RELEASE_TYPES.join(', ')}], default to patch`],\n ['', 'prerelease-id <id>', 'prerelease identifier (e.g. \"dev\" to get \"1.0.0-dev.1\")'],\n ['p', 'patch', 'syntactic sugar for \"--increment patch\"'],\n ['', 'minor', 'syntactic sugar for \"--increment minor\"'],\n ['', 'major', 'syntactic sugar for \"--increment major\"'],\n ['', 'pre-release [identifier]', 'syntactic sugar for \"--increment prerelease\" and `--prerelease-id <identifier>`'],\n ['', 'snapped', 'EXPERIMENTAL. tag components that their head is a snap (not a tag)'],\n ['', 'unmerged', 'EXPERIMENTAL. complete a merge process by tagging the unmerged components'],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n ['', 'skip-auto-tag', 'skip auto tagging dependents'],\n ['', 'soft', 'do not persist. only keep note of the changes to be made'],\n ['', 'persist', 'persist the changes generated by --soft tag'],\n ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'],\n ['', 'force-deploy', 'run the tag pipeline although the build failed'],\n [\n '',\n 'increment-by <number>',\n '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.',\n ],\n [\n 'i',\n 'ignore-issues [issues]',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)',\n ],\n ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'],\n [\n 'a',\n 'all [version]',\n 'DEPRECATED (not needed anymore, it is the default now). tag all new and modified components',\n ],\n ['s', 'scope [version]', 'DEPRECATED (use \"--unmodified\" instead). tag all components of the current scope'],\n [\n 'f',\n 'force',\n 'DEPRECATED (use \"--skip-tests\" or \"--unmodified\" instead). force-tag even if tests are failing and even when component has not changed',\n ],\n ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'],\n ] as CommandOptions;\n migration = true;\n remoteOp = true; // In case a compiler / tester is not installed\n examples = [{ cmd: 'tag --ver 1.0.0', description: 'tag all components to version 1.0.0' }];\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n // eslint-disable-next-line complexity\n async report(\n [patterns = []]: [string[]],\n {\n message = '',\n ver,\n all = false,\n editor = '',\n snapped = false,\n unmerged = false,\n patch,\n minor,\n major,\n preRelease,\n increment,\n prereleaseId,\n force = false,\n ignoreUnresolvedDependencies,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n scope,\n unmodified = false,\n build,\n soft = false,\n persist = false,\n disableDeployPipeline = false,\n disableTagPipeline = false,\n forceDeploy = false,\n failFast = false,\n incrementBy = 1,\n }: {\n all?: boolean | string;\n snapped?: boolean;\n unmerged?: boolean;\n ver?: string;\n force?: boolean;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n increment?: ReleaseType;\n preRelease?: string;\n prereleaseId?: string;\n ignoreUnresolvedDependencies?: boolean;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n disableDeployPipeline?: boolean;\n failFast?: boolean;\n disableTagPipeline?: boolean;\n } & Partial<BasicTagParams>\n ): Promise<string> {\n if (typeof ignoreUnresolvedDependencies === 'boolean') {\n throw new BitError(`--ignore-unresolved-dependencies has been removed, please use --ignore-issues instead`);\n }\n if (ignoreIssues && typeof ignoreIssues === 'boolean') {\n throw new BitError(`--ignore-issues expects issues to be ignored, please run \"bit tag -h\" for the issues list`);\n }\n if (disableDeployPipeline) {\n this.logger.consoleWarning(`--disable-deploy-pipeline is deprecated, please use --disable-tag-pipeline instead`);\n }\n if (!message && !persist && !editor) {\n this.logger.consoleWarning(\n `--message will be mandatory in the next few releases. make sure to add a message with your tag`\n );\n }\n if (all) {\n this.logger.consoleWarning(\n `--all is deprecated, please omit it. \"bit tag\" by default will tag all new and modified components. to specify a version, use --ver flag`\n );\n if (typeof all === 'string') {\n ver = all;\n }\n }\n if (scope) {\n this.logger.consoleWarning(`--scope is deprecated, use --unmodified instead`);\n unmodified = true;\n if (typeof scope === 'string') {\n ver = scope;\n }\n }\n if (force) {\n this.logger.consoleWarning(\n `--force is deprecated, use either --skip-tests or --unmodified depending on the use case`\n );\n if (patterns.length) unmodified = true;\n }\n if (prereleaseId && (!increment || increment === 'major' || increment === 'minor' || increment === 'patch')) {\n throw new BitError(\n `--prerelease-id should be entered along with --increment flag, while --increment must be one of the following: [prepatch, prerelease, preminor, premajor]`\n );\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 const getReleaseType = (): ReleaseType => {\n if (increment) {\n if (!RELEASE_TYPES.includes(increment)) {\n throw new BitError(`invalid increment-level \"${increment}\".\n semver allows the following options only: ${RELEASE_TYPES.join(', ')}`);\n }\n return increment;\n }\n if (major) return 'major';\n if (minor) return 'minor';\n if (patch) return 'patch';\n if (preRelease) return 'prerelease';\n return DEFAULT_BIT_RELEASE_TYPE;\n };\n const getPreReleaseId = (): string | undefined => {\n if (prereleaseId) {\n return prereleaseId;\n }\n if (preRelease && typeof preRelease === 'string') {\n return preRelease;\n }\n return undefined;\n };\n\n const disableTagAndSnapPipelines = disableTagPipeline || disableDeployPipeline;\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n\n const params = {\n ids: patterns,\n snapped,\n unmerged,\n editor,\n message,\n releaseType: getReleaseType(),\n preReleaseId: getPreReleaseId(),\n ignoreIssues,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n build,\n soft,\n persist,\n unmodified,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n version: ver,\n failFast,\n };\n\n const results = await this.snapping.tag(params);\n if (!results) return chalk.yellow(NOTHING_TO_TAG_MSG);\n const { taggedComponents, autoTaggedResults, warnings, newComponents }: TagResults = results;\n const changedComponents = taggedComponents.filter((component) => !newComponents.searchWithoutVersion(component.id));\n const addedComponents = taggedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoTaggedResults ? autoTaggedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const tagExplanationPersist = `\\n(use \"bit export [collection]\" to push these components to a remote\")\n(use \"bit reset\" to unstage versions)\\n`;\n const tagExplanationSoft = `\\n(use \"bit tag --persist\" to persist the changes\")\n(use \"bit reset --soft\" to remove the soft-tags)\\n`;\n\n const tagExplanation = results.isSoftTag ? tagExplanationSoft : tagExplanationPersist;\n\n const compInBold = (id: BitId) => {\n const version = id.hasVersion() ? `@${id.version}` : '';\n return `${chalk.bold(id.toStringWithoutVersion())}${version}`;\n };\n\n const outputComponents = (comps: ConsumerComponent[]) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${compInBold(component.id)}`;\n const autoTag = autoTaggedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => compInBold(a.component.id));\n componentOutput += `\\n ${AUTO_TAGGED_MSG}:\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const publishOutput = () => {\n const { publishedPackages } = results;\n if (!publishedPackages || !publishedPackages.length) return '';\n const successTitle = `\\n\\n${chalk.green(\n `published the following ${publishedPackages.length} component(s) successfully\\n`\n )}`;\n const successCompsStr = publishedPackages.join('\\n');\n const successOutput = successCompsStr ? successTitle + successCompsStr : '';\n return successOutput;\n };\n\n const softTagPrefix = results.isSoftTag ? 'soft-tagged ' : '';\n const outputIfExists = (label, explanation, components: ConsumerComponent[]) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(softTagPrefix + label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const newDesc = results.isSoftTag\n ? 'set to be tagged first version for components'\n : 'first version for components';\n const changedDesc = results.isSoftTag\n ? 'components that set to get a version bump'\n : 'components that got a version bump';\n const softTagClarification = results.isSoftTag\n ? chalk.bold(\n 'keep in mind that this is a soft-tag (changes recorded to be tagged), to persist the changes use --persist flag'\n )\n : '';\n return (\n warningsOutput +\n chalk.green(\n `${taggedComponents.length + autoTaggedCount} component(s) ${results.isSoftTag ? 'soft-' : ''}tagged`\n ) +\n tagExplanation +\n outputIfExists('new components', newDesc, addedComponents) +\n outputIfExists('changed components', changedDesc, changedComponents) +\n publishOutput() +\n softTagClarification\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["RELEASE_TYPES","TagCmd","constructor","snapping","logger","name","description","join","Object","keys","IssuesClasses","cmd","report","patterns","message","ver","all","editor","snapped","unmerged","patch","minor","major","preRelease","increment","prereleaseId","force","ignoreUnresolvedDependencies","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","scope","unmodified","build","soft","persist","disableDeployPipeline","disableTagPipeline","forceDeploy","failFast","incrementBy","BitError","consoleWarning","length","releaseFlags","filter","x","getReleaseType","includes","DEFAULT_BIT_RELEASE_TYPE","getPreReleaseId","undefined","disableTagAndSnapPipelines","isFeatureEnabled","BUILD_ON_CI","Boolean","params","ids","releaseType","preReleaseId","version","results","tag","chalk","yellow","NOTHING_TO_TAG_MSG","taggedComponents","autoTaggedResults","warnings","newComponents","removedComponents","changedComponents","component","searchWithoutVersion","id","addedComponents","autoTaggedCount","warningsOutput","tagExplanationPersist","tagExplanationSoft","tagExplanation","isSoftTag","compInBold","hasVersion","bold","toStringWithoutVersion","outputComponents","comps","map","componentOutput","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_TAGGED_MSG","publishOutput","publishedPackages","successTitle","green","successCompsStr","successOutput","softTagPrefix","outputIfExists","label","explanation","components","underline","newDesc","changedDesc","softTagClarification","outputIdsIfExists"],"sources":["tag-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { NOTHING_TO_TAG_MSG, AUTO_TAGGED_MSG } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { DEFAULT_BIT_RELEASE_TYPE } from '@teambit/legacy/dist/constants';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ReleaseType } from 'semver';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { TagResults, SnappingMain } from './snapping.main.runtime';\nimport { BasicTagParams } from './tag-model-component';\n\nconst RELEASE_TYPES = ['major', 'premajor', 'minor', 'preminor', 'patch', 'prepatch', 'prerelease'];\n\nexport class TagCmd implements Command {\n name = 'tag [component-patterns...]';\n group = 'development';\n description = 'create an immutable and exportable component snapshot, tagged with a release version.';\n extendedDescription = `if no patterns are provided, it will tag all new and modified components.\nif patterns are entered, you can specify a version per pattern using \"@\" sign, e.g. bit tag foo@1.0.0 bar@minor baz@major`;\n arguments = [\n {\n name: 'component-patterns...',\n description:\n 'a list of component names, IDs or patterns (separated by space). run \"bit pattern --help\" to get more data about patterns. By default, all modified are tagged.',\n },\n ];\n helpUrl = 'docs/components/snaps';\n alias = 't';\n loader = true;\n options = [\n ['m', 'message <message>', 'a log message describing latest changes'],\n ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are tagged)'],\n [\n '',\n 'editor [editor]',\n 'EXPERIMENTAL. open an editor to write a tag message for each component. optionally, specify the editor-name (defaults to vim).',\n ],\n ['v', 'ver <version>', 'tag with the given version'],\n ['l', 'increment <level>', `options are: [${RELEASE_TYPES.join(', ')}], default to patch`],\n ['', 'prerelease-id <id>', 'prerelease identifier (e.g. \"dev\" to get \"1.0.0-dev.1\")'],\n ['p', 'patch', 'syntactic sugar for \"--increment patch\"'],\n ['', 'minor', 'syntactic sugar for \"--increment minor\"'],\n ['', 'major', 'syntactic sugar for \"--increment major\"'],\n ['', 'pre-release [identifier]', 'syntactic sugar for \"--increment prerelease\" and `--prerelease-id <identifier>`'],\n ['', 'snapped', 'EXPERIMENTAL. tag components that their head is a snap (not a tag)'],\n ['', 'unmerged', 'EXPERIMENTAL. complete a merge process by tagging the unmerged components'],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n ['', 'skip-auto-tag', 'skip auto tagging dependents'],\n ['', 'soft', 'do not persist. only keep note of the changes to be made'],\n ['', 'persist', 'persist the changes generated by --soft tag'],\n ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'],\n ['', 'force-deploy', 'run the tag pipeline although the build failed'],\n [\n '',\n 'increment-by <number>',\n '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.',\n ],\n [\n 'i',\n 'ignore-issues [issues]',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)',\n ],\n ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'],\n [\n 'a',\n 'all [version]',\n 'DEPRECATED (not needed anymore, it is the default now). tag all new and modified components',\n ],\n ['s', 'scope [version]', 'DEPRECATED (use \"--unmodified\" instead). tag all components of the current scope'],\n [\n 'f',\n 'force',\n 'DEPRECATED (use \"--skip-tests\" or \"--unmodified\" instead). force-tag even if tests are failing and even when component has not changed',\n ],\n ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'],\n ] as CommandOptions;\n migration = true;\n remoteOp = true; // In case a compiler / tester is not installed\n examples = [{ cmd: 'tag --ver 1.0.0', description: 'tag all components to version 1.0.0' }];\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n // eslint-disable-next-line complexity\n async report(\n [patterns = []]: [string[]],\n {\n message = '',\n ver,\n all = false,\n editor = '',\n snapped = false,\n unmerged = false,\n patch,\n minor,\n major,\n preRelease,\n increment,\n prereleaseId,\n force = false,\n ignoreUnresolvedDependencies,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n scope,\n unmodified = false,\n build,\n soft = false,\n persist = false,\n disableDeployPipeline = false,\n disableTagPipeline = false,\n forceDeploy = false,\n failFast = false,\n incrementBy = 1,\n }: {\n all?: boolean | string;\n snapped?: boolean;\n unmerged?: boolean;\n ver?: string;\n force?: boolean;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n increment?: ReleaseType;\n preRelease?: string;\n prereleaseId?: string;\n ignoreUnresolvedDependencies?: boolean;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n disableDeployPipeline?: boolean;\n failFast?: boolean;\n disableTagPipeline?: boolean;\n } & Partial<BasicTagParams>\n ): Promise<string> {\n if (typeof ignoreUnresolvedDependencies === 'boolean') {\n throw new BitError(`--ignore-unresolved-dependencies has been removed, please use --ignore-issues instead`);\n }\n if (ignoreIssues && typeof ignoreIssues === 'boolean') {\n throw new BitError(`--ignore-issues expects issues to be ignored, please run \"bit tag -h\" for the issues list`);\n }\n if (disableDeployPipeline) {\n this.logger.consoleWarning(`--disable-deploy-pipeline is deprecated, please use --disable-tag-pipeline instead`);\n }\n if (!message && !persist && !editor) {\n this.logger.consoleWarning(\n `--message will be mandatory in the next few releases. make sure to add a message with your tag`\n );\n }\n if (all) {\n this.logger.consoleWarning(\n `--all is deprecated, please omit it. \"bit tag\" by default will tag all new and modified components. to specify a version, use --ver flag`\n );\n if (typeof all === 'string') {\n ver = all;\n }\n }\n if (scope) {\n this.logger.consoleWarning(`--scope is deprecated, use --unmodified instead`);\n unmodified = true;\n if (typeof scope === 'string') {\n ver = scope;\n }\n }\n if (force) {\n this.logger.consoleWarning(\n `--force is deprecated, use either --skip-tests or --unmodified depending on the use case`\n );\n if (patterns.length) unmodified = true;\n }\n if (prereleaseId && (!increment || increment === 'major' || increment === 'minor' || increment === 'patch')) {\n throw new BitError(\n `--prerelease-id should be entered along with --increment flag, while --increment must be one of the following: [prepatch, prerelease, preminor, premajor]`\n );\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 const getReleaseType = (): ReleaseType => {\n if (increment) {\n if (!RELEASE_TYPES.includes(increment)) {\n throw new BitError(`invalid increment-level \"${increment}\".\n semver allows the following options only: ${RELEASE_TYPES.join(', ')}`);\n }\n return increment;\n }\n if (major) return 'major';\n if (minor) return 'minor';\n if (patch) return 'patch';\n if (preRelease) return 'prerelease';\n return DEFAULT_BIT_RELEASE_TYPE;\n };\n const getPreReleaseId = (): string | undefined => {\n if (prereleaseId) {\n return prereleaseId;\n }\n if (preRelease && typeof preRelease === 'string') {\n return preRelease;\n }\n return undefined;\n };\n\n const disableTagAndSnapPipelines = disableTagPipeline || disableDeployPipeline;\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n\n const params = {\n ids: patterns,\n snapped,\n unmerged,\n editor,\n message,\n releaseType: getReleaseType(),\n preReleaseId: getPreReleaseId(),\n ignoreIssues,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n build,\n soft,\n persist,\n unmodified,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n version: ver,\n failFast,\n };\n\n const results = await this.snapping.tag(params);\n if (!results) return chalk.yellow(NOTHING_TO_TAG_MSG);\n const { taggedComponents, autoTaggedResults, warnings, newComponents, removedComponents }: TagResults = results;\n const changedComponents = taggedComponents.filter((component) => !newComponents.searchWithoutVersion(component.id));\n const addedComponents = taggedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoTaggedResults ? autoTaggedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const tagExplanationPersist = `\\n(use \"bit export [collection]\" to push these components to a remote\")\n(use \"bit reset\" to unstage versions)\\n`;\n const tagExplanationSoft = `\\n(use \"bit tag --persist\" to persist the changes\")\n(use \"bit reset --soft\" to remove the soft-tags)\\n`;\n\n const tagExplanation = results.isSoftTag ? tagExplanationSoft : tagExplanationPersist;\n\n const compInBold = (id: BitId) => {\n const version = id.hasVersion() ? `@${id.version}` : '';\n return `${chalk.bold(id.toStringWithoutVersion())}${version}`;\n };\n\n const outputComponents = (comps: ConsumerComponent[]) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${compInBold(component.id)}`;\n const autoTag = autoTaggedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => compInBold(a.component.id));\n componentOutput += `\\n ${AUTO_TAGGED_MSG}:\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const publishOutput = () => {\n const { publishedPackages } = results;\n if (!publishedPackages || !publishedPackages.length) return '';\n const successTitle = `\\n\\n${chalk.green(\n `published the following ${publishedPackages.length} component(s) successfully\\n`\n )}`;\n const successCompsStr = publishedPackages.join('\\n');\n const successOutput = successCompsStr ? successTitle + successCompsStr : '';\n return successOutput;\n };\n\n const softTagPrefix = results.isSoftTag ? 'soft-tagged ' : '';\n const outputIfExists = (label, explanation, components: ConsumerComponent[]) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(softTagPrefix + label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const newDesc = results.isSoftTag\n ? 'set to be tagged first version for components'\n : 'first version for components';\n const changedDesc = results.isSoftTag\n ? 'components that set to get a version bump'\n : 'components that got a version bump';\n const softTagClarification = results.isSoftTag\n ? chalk.bold(\n 'keep in mind that this is a soft-tag (changes recorded to be tagged), to persist the changes use --persist flag'\n )\n : '';\n return (\n warningsOutput +\n chalk.green(\n `${taggedComponents.length + autoTaggedCount} component(s) ${results.isSoftTag ? 'soft-' : ''}tagged`\n ) +\n tagExplanation +\n outputIfExists('new components', newDesc, addedComponents) +\n outputIfExists('changed components', changedDesc, changedComponents) +\n outputIdsIfExists('removed components', removedComponents) +\n publishOutput() +\n softTagClarification\n );\n }\n}\n\nexport function outputIdsIfExists(label: string, ids?: BitIds) {\n if (!ids?.length) return '';\n return `\\n${chalk.underline(label)}\\n${ids.map((id) => id.toStringWithoutVersion()).join('\\n')}\\n`;\n}\n"],"mappings":"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"}
@@ -46,6 +46,7 @@ export declare function tagModelComponent({ workspace, scope, snapping, builder,
46
46
  autoTaggedResults: AutoTagResult[];
47
47
  publishedPackages: string[];
48
48
  stagedConfig?: StagedConfig;
49
+ removedComponents?: BitIds;
49
50
  }>;
50
51
  export declare function getBasicLog(): Promise<Log>;
51
52
  export declare function getBitCloudUsername(): Promise<string | undefined>;
@@ -102,6 +102,13 @@ function _showDoctorError() {
102
102
  };
103
103
  return data;
104
104
  }
105
+ function _deleteComponentFiles() {
106
+ const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component-ops/delete-component-files"));
107
+ _deleteComponentFiles = function () {
108
+ return data;
109
+ };
110
+ return data;
111
+ }
105
112
  function _logger() {
106
113
  const data = _interopRequireDefault(require("@teambit/legacy/dist/logger/logger"));
107
114
  _logger = function () {
@@ -360,8 +367,9 @@ async function tagModelComponent({
360
367
  addBuildStatus(allComponentsToTag, _constants().BuildStatus.Succeed);
361
368
  await (0, _pMapSeries().default)(allComponentsToTag, consumerComponent => snapping._enrichComp(consumerComponent));
362
369
  }
370
+ let removedComponents;
363
371
  if (!soft) {
364
- await removeDeletedComponentsFromBitmap(allComponentsToTag, workspace);
372
+ removedComponents = await removeDeletedComponentsFromBitmap(allComponentsToTag, workspace);
365
373
  await legacyScope.objects.persist();
366
374
  await removeMergeConfigFromComponents(unmergedComps, allComponentsToTag, workspace);
367
375
  if (workspace) {
@@ -372,19 +380,20 @@ async function tagModelComponent({
372
380
  taggedComponents: componentsToTag,
373
381
  autoTaggedResults: autoTagData,
374
382
  publishedPackages,
375
- stagedConfig
383
+ stagedConfig,
384
+ removedComponents
376
385
  };
377
386
  }
378
387
  async function removeDeletedComponentsFromBitmap(comps, workspace) {
379
388
  if (!workspace) {
380
- return;
389
+ return undefined;
381
390
  }
382
- await Promise.all(comps.map(async comp => {
383
- if (comp.removed) {
384
- const compId = await workspace.resolveComponentId(comp.id);
385
- workspace.bitMap.removeComponent(compId);
386
- }
387
- }));
391
+ const removedComps = comps.filter(comp => comp.isRemoved());
392
+ if (!removedComps.length) return undefined;
393
+ const compBitIdsToRemove = _bitId().BitIds.fromArray(removedComps.map(c => c.id));
394
+ await (0, _deleteComponentFiles().default)(workspace.consumer, compBitIdsToRemove);
395
+ await workspace.consumer.cleanFromBitMap(compBitIdsToRemove);
396
+ return compBitIdsToRemove;
388
397
  }
389
398
  async function removeMergeConfigFromComponents(unmergedComps, components, workspace) {
390
399
  if (!workspace || !unmergedComps.length) {
@@ -1 +1 @@
1
- {"version":3,"names":["updateDependenciesVersions","componentsToTag","dependencyResolver","getNewDependencyVersion","id","foundDependency","find","component","isEqualWithoutVersion","changeVersion","version","changeExtensionsVersion","extensions","forEach","ext","extensionId","newDepId","oneComponentToTag","getAllDependencies","dependency","updateDepsOnLegacyTag","bind","setHashes","componentToTag","setNewVersion","sha1","v4","setFutureVersions","scope","releaseType","exactVersion","persist","autoTagIds","ids","incrementBy","preReleaseId","soft","tagDataPerComp","isPreReleaseLike","includes","Promise","all","map","isAutoTag","hasWithoutVersion","modelComponent","sources","findOrAddComponent","nextVersion","componentMap","getNewVersion","tagData","t","componentId","_legacy","Error","toStringWithoutVersion","versionToTag","exactVersionOrReleaseType","getValidVersionOrReleaseType","getVersionToAdd","undefined","prereleaseId","preRelease","versionByEnteredId","getVersionByEnteredId","newVersion","enteredIds","enteredId","searchWithoutVersion","hasVersion","tagModelComponent","workspace","snapping","builder","consumerComponents","skipBuildPipeline","message","editor","ignoreNewestVersion","skipTests","skipAutoTag","build","isSnap","disableTagAndSnapPipelines","forceDeploy","packageManagerConfigRootDir","copyLogFromPreviousSnap","exitOnFirstFailedTask","consumer","legacyScope","consumerComponentsIdsMap","consumerComponent","componentIdString","toString","R","values","idsToTag","BitIds","fromArray","c","idsToTriggerAutoTag","filter","autoTagData","getAutoTagInfo","autoTagComponents","autoTagItem","autoTagComponentsFiltered","has","autoTag","allComponentsToTag","messagesFromEditorFetcher","MessagePerComponentFetcher","getMessagePerId","getMessagesFromEditor","tmp","msg","messagePerId","newestVersionsP","componentFromModel","getModelComponentIfExist","ShowDoctorError","listVersions","length","latest","getHeadRegardlessOfLaneAsTagOrHash","currentVersion","latestVersion","newestVersions","newestVersionsWithoutEmpty","newest","isEmpty","NewerVersionFound","logger","debugAndAddBreadCrumb","setCurrentSchema","addLogToComponents","unmergedComps","listComponentsDuringMerge","stagedConfig","updateNextVersionOnBitmap","_addFlattenedDependenciesToComponents","emptyBuilderData","addBuildStatus","BuildStatus","Pending","addComponentsToScope","Boolean","modelComponents","getModelComponent","updateComponentsVersions","publishedPackages","harmonyComps","onTagOpts","throwOnError","combineBuildDataFromParent","seedersOnly","isolateOptions","builderOptions","reloadAspectsWithNewVersion","getManyByLegacy","builderDataMap","tagListener","buildResult","builderDataMapToLegacyOnTagResults","_updateComponentsByTagResult","push","_getPublishedPackages","Succeed","mapSeries","_enrichComp","removeDeletedComponentsFromBitmap","objects","removeMergeConfigFromComponents","linkToNodeModulesByComponents","taggedComponents","autoTaggedResults","comps","comp","removed","compId","resolveComponentId","bitMap","removeComponent","components","configMergeFile","getConflictMergeFile","isNowSnapped","removeConflict","hasConflict","write","delete","shouldValidateVersion","lane","getCurrentLaneObject","_addCompToObjects","source","_addCompFromScopeToObjects","existingBuilder","findCoreExtension","Extensions","data","autoTagComps","messagePerComponent","basicLog","getBasicLog","getLog","msgFromEditor","item","currentLog","log","date","username","email","autoTagComp","defaultMsg","getBitCloudUsername","globalConfig","get","CFG_USER_NAME_KEY","CFG_USER_EMAIL_KEY","Date","now","token","CFG_USER_TOKEN_KEY","res","fetch","getCloudDomain","headers","Authorization","object","json","user","payload","error","getBitCloudUser","schema","CURRENT_SCHEMA","buildStatus","isTag","currentLane","getCurrentLaneId","getStagedConfig","isAvailableOnMain","isDefault","ModelComponent","hasHead","updateVersions","toBitIdWithLatestVersionAllowNull","updateComponentId","availableOnMain","setComponentProp","getComponent","config","addComponentConfig","removeConfig","hash","getRef","stagedSnaps","addSnap","getConfigPerId","clearNextVersion"],"sources":["tag-model-component.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport fetch from 'node-fetch';\nimport R from 'ramda';\nimport { isEmpty } from 'lodash';\nimport { ReleaseType } from 'semver';\nimport { v4 } from 'uuid';\nimport * as globalConfig from '@teambit/legacy/dist/api/consumer/lib/global-config';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport {\n BuildStatus,\n CFG_USER_EMAIL_KEY,\n CFG_USER_NAME_KEY,\n CFG_USER_TOKEN_KEY,\n getCloudDomain,\n Extensions,\n} from '@teambit/legacy/dist/constants';\nimport { CURRENT_SCHEMA } from '@teambit/legacy/dist/consumer/component/component-schema';\nimport { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport { NewerVersionFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport ShowDoctorError from '@teambit/legacy/dist/error/show-doctor-error';\nimport { Component } from '@teambit/component';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { sha1 } from '@teambit/legacy/dist/utils';\nimport { ComponentID } from '@teambit/component-id';\nimport { AutoTagResult, getAutoTagInfo } from '@teambit/legacy/dist/scope/component-ops/auto-tag';\nimport { getValidVersionOrReleaseType } from '@teambit/legacy/dist/utils/semver-helper';\nimport { BuilderMain, OnTagOpts } from '@teambit/builder';\nimport { Log } from '@teambit/legacy/dist/scope/models/version';\nimport {\n MessagePerComponent,\n MessagePerComponentFetcher,\n} from '@teambit/legacy/dist/scope/component-ops/message-per-component';\nimport { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ScopeMain, StagedConfig } from '@teambit/scope';\nimport { Workspace } from '@teambit/workspace';\nimport { SnappingMain, TagDataPerComp } from './snapping.main.runtime';\n\nexport type onTagIdTransformer = (id: BitId) => BitId | null;\n\nexport type BasicTagParams = {\n message: string;\n ignoreNewestVersion?: boolean;\n skipTests?: boolean;\n skipAutoTag?: boolean;\n build?: boolean;\n soft?: boolean;\n persist: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n preReleaseId?: string;\n editor?: string;\n unmodified?: boolean;\n};\n\nfunction updateDependenciesVersions(\n componentsToTag: ConsumerComponent[],\n dependencyResolver: DependencyResolverMain\n): void {\n const getNewDependencyVersion = (id: BitId): BitId | null => {\n const foundDependency = componentsToTag.find((component) => component.id.isEqualWithoutVersion(id));\n return foundDependency ? id.changeVersion(foundDependency.version) : null;\n };\n const changeExtensionsVersion = (component: ConsumerComponent): void => {\n component.extensions.forEach((ext) => {\n if (ext.extensionId) {\n const newDepId = getNewDependencyVersion(ext.extensionId);\n if (newDepId) ext.extensionId = newDepId;\n }\n });\n };\n\n componentsToTag.forEach((oneComponentToTag) => {\n oneComponentToTag.getAllDependencies().forEach((dependency) => {\n const newDepId = getNewDependencyVersion(dependency.id);\n if (newDepId) dependency.id = newDepId;\n });\n changeExtensionsVersion(oneComponentToTag);\n // @ts-ignore\n oneComponentToTag = dependencyResolver.updateDepsOnLegacyTag(oneComponentToTag, getNewDependencyVersion.bind(this));\n });\n}\n\nfunction setHashes(componentsToTag: ConsumerComponent[]): void {\n componentsToTag.forEach((componentToTag) => {\n componentToTag.setNewVersion(sha1(v4()));\n });\n}\n\nasync function setFutureVersions(\n componentsToTag: ConsumerComponent[],\n scope: Scope,\n releaseType: ReleaseType | undefined,\n exactVersion: string | null | undefined,\n persist: boolean,\n autoTagIds: BitIds,\n ids: BitIds,\n incrementBy?: number,\n preReleaseId?: string,\n soft?: boolean,\n tagDataPerComp?: TagDataPerComp[]\n): Promise<void> {\n const isPreReleaseLike = releaseType\n ? ['prerelease', 'premajor', 'preminor', 'prepatch'].includes(releaseType)\n : false;\n await Promise.all(\n componentsToTag.map(async (componentToTag) => {\n const isAutoTag = autoTagIds.hasWithoutVersion(componentToTag.id);\n const modelComponent = await scope.sources.findOrAddComponent(componentToTag);\n const nextVersion = componentToTag.componentMap?.nextVersion?.version;\n const getNewVersion = (): string => {\n if (tagDataPerComp) {\n const tagData = tagDataPerComp.find((t) => t.componentId._legacy.isEqualWithoutVersion(componentToTag.id));\n if (!tagData) throw new Error(`tag-data is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n if (!tagData.versionToTag)\n throw new Error(`tag-data.TagResults is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(tagData.versionToTag);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n tagData.prereleaseId\n );\n }\n if (nextVersion && persist) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(nextVersion);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n componentToTag.componentMap?.nextVersion?.preRelease\n );\n }\n if (isAutoTag) {\n // auto-tag always bumped as patch unless it's pre-release\n if (isPreReleaseLike) {\n return soft\n ? (releaseType as string)\n : modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n }\n return soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preReleaseId);\n }\n const versionByEnteredId = getVersionByEnteredId(ids, componentToTag, modelComponent);\n return soft\n ? versionByEnteredId || exactVersion || (releaseType as string)\n : versionByEnteredId || modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n };\n const newVersion = getNewVersion();\n componentToTag.setNewVersion(newVersion);\n })\n );\n}\n\nfunction getVersionByEnteredId(\n enteredIds: BitIds,\n component: ConsumerComponent,\n modelComponent: ModelComponent\n): string | undefined {\n const enteredId = enteredIds.searchWithoutVersion(component.id);\n if (enteredId && enteredId.hasVersion()) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(enteredId.version as string);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion\n );\n }\n return undefined;\n}\n\nexport async function tagModelComponent({\n workspace,\n scope,\n snapping,\n builder,\n consumerComponents,\n ids,\n tagDataPerComp,\n skipBuildPipeline = false,\n message,\n editor,\n exactVersion,\n releaseType,\n preReleaseId,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag,\n soft,\n build,\n persist,\n isSnap = false,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir,\n dependencyResolver,\n copyLogFromPreviousSnap = false,\n exitOnFirstFailedTask = false,\n}: {\n workspace?: Workspace;\n scope: ScopeMain;\n snapping: SnappingMain;\n builder: BuilderMain;\n consumerComponents: ConsumerComponent[];\n ids: BitIds;\n tagDataPerComp?: TagDataPerComp[];\n skipBuildPipeline?: boolean;\n copyLogFromPreviousSnap?: boolean;\n exactVersion?: string | null | undefined;\n releaseType?: ReleaseType;\n incrementBy?: number;\n isSnap?: boolean;\n packageManagerConfigRootDir?: string;\n dependencyResolver: DependencyResolverMain;\n exitOnFirstFailedTask?: boolean;\n} & BasicTagParams): Promise<{\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n publishedPackages: string[];\n stagedConfig?: StagedConfig;\n}> {\n const consumer = workspace?.consumer;\n const legacyScope = scope.legacyScope;\n const consumerComponentsIdsMap = {};\n // Concat and unique all the dependencies from all the components so we will not import\n // the same dependency more then once, it's mainly for performance purpose\n consumerComponents.forEach((consumerComponent) => {\n const componentIdString = consumerComponent.id.toString();\n // Store it in a map so we can take it easily from the sorted array which contain only the id\n consumerComponentsIdsMap[componentIdString] = consumerComponent;\n });\n const componentsToTag: ConsumerComponent[] = R.values(consumerComponentsIdsMap); // consumerComponents unique\n const idsToTag = BitIds.fromArray(componentsToTag.map((c) => c.id));\n // ids without versions are new. it's impossible that tagged (and not-modified) components has\n // them as dependencies.\n const idsToTriggerAutoTag = idsToTag.filter((id) => id.hasVersion());\n const autoTagData =\n skipAutoTag || !consumer ? [] : await getAutoTagInfo(consumer, BitIds.fromArray(idsToTriggerAutoTag));\n const autoTagComponents = autoTagData.map((autoTagItem) => autoTagItem.component);\n const autoTagComponentsFiltered = autoTagComponents.filter((c) => !idsToTag.has(c.id));\n const autoTagIds = BitIds.fromArray(autoTagComponentsFiltered.map((autoTag) => autoTag.id));\n const allComponentsToTag = [...componentsToTag, ...autoTagComponentsFiltered];\n\n const messagesFromEditorFetcher = new MessagePerComponentFetcher(idsToTag, autoTagIds);\n const getMessagePerId = async () => {\n if (editor) return messagesFromEditorFetcher.getMessagesFromEditor(legacyScope.tmp, editor);\n if (tagDataPerComp) return tagDataPerComp.map((t) => ({ id: t.componentId._legacy, msg: t.message || message }));\n return [];\n };\n const messagePerId = await getMessagePerId();\n\n // check for each one of the components whether it is using an old version\n if (!ignoreNewestVersion && !isSnap) {\n const newestVersionsP = allComponentsToTag.map(async (component) => {\n if (component.componentFromModel) {\n // otherwise it's a new component, so this check is irrelevant\n const modelComponent = await legacyScope.getModelComponentIfExist(component.id);\n if (!modelComponent) throw new ShowDoctorError(`component ${component.id} was not found in the model`);\n if (!modelComponent.listVersions().length) return null; // no versions yet, no issues.\n const latest = modelComponent.getHeadRegardlessOfLaneAsTagOrHash();\n if (latest !== component.version) {\n return {\n componentId: component.id.toStringWithoutVersion(),\n currentVersion: component.version,\n latestVersion: latest,\n };\n }\n }\n return null;\n });\n const newestVersions = await Promise.all(newestVersionsP);\n const newestVersionsWithoutEmpty = newestVersions.filter((newest) => newest);\n if (!isEmpty(newestVersionsWithoutEmpty)) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n throw new NewerVersionFound(newestVersionsWithoutEmpty);\n }\n }\n\n logger.debugAndAddBreadCrumb('tag-model-components', 'sequentially persist all components');\n // go through all components and find the future versions for them\n isSnap\n ? setHashes(allComponentsToTag)\n : await setFutureVersions(\n allComponentsToTag,\n legacyScope,\n releaseType,\n exactVersion,\n persist,\n autoTagIds,\n ids,\n incrementBy,\n preReleaseId,\n soft,\n tagDataPerComp\n );\n setCurrentSchema(allComponentsToTag);\n // go through all dependencies and update their versions\n updateDependenciesVersions(allComponentsToTag, dependencyResolver);\n\n await addLogToComponents(componentsToTag, autoTagComponents, persist, message, messagePerId, copyLogFromPreviousSnap);\n // don't move it down. otherwise, it'll be empty and we don't know which components were during merge.\n const unmergedComps = workspace ? await workspace.listComponentsDuringMerge() : [];\n let stagedConfig;\n if (soft) {\n if (!consumer) throw new Error(`unable to soft-tag without consumer`);\n consumer.updateNextVersionOnBitmap(allComponentsToTag, preReleaseId);\n } else {\n await snapping._addFlattenedDependenciesToComponents(allComponentsToTag);\n emptyBuilderData(allComponentsToTag);\n addBuildStatus(allComponentsToTag, BuildStatus.Pending);\n await addComponentsToScope(legacyScope, snapping, allComponentsToTag, Boolean(build), consumer);\n\n if (workspace) {\n const modelComponents = await Promise.all(\n allComponentsToTag.map((c) => {\n return c.modelComponent || legacyScope.getModelComponent(c.id);\n })\n );\n stagedConfig = await updateComponentsVersions(workspace, modelComponents);\n }\n }\n\n const publishedPackages: string[] = [];\n let harmonyComps: Component[] = [];\n if (build) {\n const onTagOpts: OnTagOpts = {\n disableTagAndSnapPipelines,\n throwOnError: true,\n forceDeploy,\n isSnap,\n skipBuildPipeline,\n combineBuildDataFromParent: skipBuildPipeline,\n };\n const seedersOnly = !workspace; // if tag from scope, build only the given components\n const isolateOptions = { packageManagerConfigRootDir, seedersOnly };\n const builderOptions = { exitOnFirstFailedTask, skipTests };\n\n await scope.reloadAspectsWithNewVersion(allComponentsToTag);\n harmonyComps = await (workspace || scope).getManyByLegacy(allComponentsToTag);\n const { builderDataMap } = await builder.tagListener(harmonyComps, onTagOpts, isolateOptions, builderOptions);\n const buildResult = scope.builderDataMapToLegacyOnTagResults(builderDataMap);\n\n snapping._updateComponentsByTagResult(allComponentsToTag, buildResult);\n publishedPackages.push(...snapping._getPublishedPackages(allComponentsToTag));\n addBuildStatus(allComponentsToTag, BuildStatus.Succeed);\n await mapSeries(allComponentsToTag, (consumerComponent) => snapping._enrichComp(consumerComponent));\n }\n\n if (!soft) {\n await removeDeletedComponentsFromBitmap(allComponentsToTag, workspace);\n await legacyScope.objects.persist();\n await removeMergeConfigFromComponents(unmergedComps, allComponentsToTag, workspace);\n if (workspace) {\n await linkToNodeModulesByComponents(\n harmonyComps.length ? harmonyComps : await workspace.scope.getManyByLegacy(allComponentsToTag),\n workspace\n );\n }\n }\n\n return { taggedComponents: componentsToTag, autoTaggedResults: autoTagData, publishedPackages, stagedConfig };\n}\n\nasync function removeDeletedComponentsFromBitmap(comps: ConsumerComponent[], workspace?: Workspace) {\n if (!workspace) {\n return;\n }\n await Promise.all(\n comps.map(async (comp) => {\n if (comp.removed) {\n const compId = await workspace.resolveComponentId(comp.id);\n workspace.bitMap.removeComponent(compId);\n }\n })\n );\n}\n\nasync function removeMergeConfigFromComponents(\n unmergedComps: ComponentID[],\n components: ConsumerComponent[],\n workspace?: Workspace\n) {\n if (!workspace || !unmergedComps.length) {\n return;\n }\n const configMergeFile = workspace.getConflictMergeFile();\n\n unmergedComps.forEach((compId) => {\n const isNowSnapped = components.find((c) => c.id.isEqualWithoutVersion(compId._legacy));\n if (isNowSnapped) {\n configMergeFile.removeConflict(compId.toStringWithoutVersion());\n }\n });\n if (configMergeFile.hasConflict()) {\n await configMergeFile.write();\n } else {\n await configMergeFile.delete();\n }\n}\n\nasync function addComponentsToScope(\n scope: Scope,\n snapping: SnappingMain,\n components: ConsumerComponent[],\n shouldValidateVersion: boolean,\n consumer?: Consumer\n) {\n const lane = await scope.getCurrentLaneObject();\n if (consumer) {\n await mapSeries(components, async (component) => {\n await snapping._addCompToObjects({\n source: component,\n consumer,\n lane,\n shouldValidateVersion,\n });\n });\n } else {\n await mapSeries(components, async (component) => {\n await snapping._addCompFromScopeToObjects(component, lane);\n });\n }\n}\n\nfunction emptyBuilderData(components: ConsumerComponent[]) {\n components.forEach((component) => {\n const existingBuilder = component.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = {};\n });\n}\n\nasync function addLogToComponents(\n components: ConsumerComponent[],\n autoTagComps: ConsumerComponent[],\n persist: boolean,\n message: string,\n messagePerComponent: MessagePerComponent[],\n copyLogFromPreviousSnap = false\n) {\n // @ts-ignore this happens when running `bit tag -m \"\"`.\n if (message === true) {\n message = '';\n }\n const basicLog = await getBasicLog();\n const getLog = (component: ConsumerComponent): Log => {\n const nextVersion = persist ? component.componentMap?.nextVersion : null;\n const msgFromEditor = messagePerComponent.find((item) => item.id.isEqualWithoutVersion(component.id))?.msg;\n if (copyLogFromPreviousSnap) {\n const currentLog = component.log;\n if (!currentLog) {\n throw new Error(\n `addLogToComponents is set copyLogFromPreviousSnap: true, but it is unable to find log in the previous snap`\n );\n }\n currentLog.message = msgFromEditor || message || currentLog.message;\n currentLog.date = basicLog.date;\n return currentLog;\n }\n\n return {\n username: nextVersion?.username || basicLog.username,\n email: nextVersion?.email || basicLog.email,\n message: nextVersion?.message || msgFromEditor || message,\n date: basicLog.date,\n };\n };\n\n components.forEach((component) => {\n component.log = getLog(component);\n });\n autoTagComps.forEach((autoTagComp) => {\n autoTagComp.log = getLog(autoTagComp);\n const defaultMsg = 'bump dependencies versions';\n if (message) {\n autoTagComp.log.message += ` (${defaultMsg})`;\n } else if (!autoTagComp.log.message) {\n autoTagComp.log.message = defaultMsg;\n }\n });\n}\n\nexport async function getBasicLog(): Promise<Log> {\n const username = (await getBitCloudUsername()) || (await globalConfig.get(CFG_USER_NAME_KEY));\n const email = await globalConfig.get(CFG_USER_EMAIL_KEY);\n return {\n username,\n email,\n message: '',\n date: Date.now().toString(),\n };\n}\n\nexport async function getBitCloudUsername(): Promise<string | undefined> {\n const token = await globalConfig.get(CFG_USER_TOKEN_KEY);\n if (!token) return '';\n try {\n const res = await fetch(`https://api.${getCloudDomain()}/user`, {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n });\n const object = await res.json();\n const user = object.payload;\n const username = user.username;\n return username;\n } catch (error) {\n return undefined;\n }\n}\n\nexport type BitCloudUser = {\n username?: string;\n name?: string;\n displayName?: string;\n profileImage?: string;\n};\n\nexport async function getBitCloudUser(): Promise<BitCloudUser | undefined> {\n const token = await globalConfig.get(CFG_USER_TOKEN_KEY);\n if (!token) return undefined;\n\n try {\n const res = await fetch(`https://api.${getCloudDomain()}/user`, {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n });\n const object = await res.json();\n const user = object.payload;\n\n return {\n ...user,\n };\n } catch (error) {\n return undefined;\n }\n}\n\nfunction setCurrentSchema(components: ConsumerComponent[]) {\n components.forEach((component) => {\n component.schema = CURRENT_SCHEMA;\n });\n}\n\nfunction addBuildStatus(components: ConsumerComponent[], buildStatus: BuildStatus) {\n components.forEach((component) => {\n component.buildStatus = buildStatus;\n });\n}\n\nexport async function updateComponentsVersions(\n workspace: Workspace,\n components: Array<ModelComponent>,\n isTag = true\n): Promise<StagedConfig> {\n const consumer = workspace.consumer;\n const currentLane = consumer.getCurrentLaneId();\n const stagedConfig = await workspace.scope.getStagedConfig();\n const isAvailableOnMain = async (component: ModelComponent | ConsumerComponent, id: BitId): Promise<boolean> => {\n if (currentLane.isDefault()) {\n return true;\n }\n if (!id.hasVersion()) {\n // component was unsnapped on the current lane and is back to a new component\n return true;\n }\n const modelComponent =\n component instanceof ModelComponent ? component : await consumer.scope.getModelComponent(component.id);\n return modelComponent.hasHead();\n };\n\n const updateVersions = async (modelComponent: ModelComponent) => {\n const id: BitId = modelComponent.toBitIdWithLatestVersionAllowNull();\n consumer.bitMap.updateComponentId(id);\n const availableOnMain = await isAvailableOnMain(modelComponent, id);\n if (!availableOnMain) {\n consumer.bitMap.setComponentProp(id, 'onLanesOnly', true);\n }\n const componentMap = consumer.bitMap.getComponent(id);\n const compId = await workspace.resolveComponentId(id);\n // it can be either a tag/snap or reset.\n if (isTag) {\n const config = componentMap.config;\n stagedConfig.addComponentConfig(compId, config);\n consumer.bitMap.removeConfig(id);\n const hash = modelComponent.getRef(id.version as string);\n if (!hash) throw new Error(`updateComponentsVersions: unable to find a hash for ${id.toString()}`);\n workspace.scope.legacyScope.stagedSnaps.addSnap(hash?.toString());\n } else if (!componentMap.config) {\n componentMap.config = stagedConfig.getConfigPerId(compId);\n }\n componentMap.clearNextVersion();\n };\n // important! DO NOT use Promise.all here! otherwise, you're gonna enter into a whole world of pain.\n // imagine tagging comp1 with auto-tagged comp2, comp1 package.json is written while comp2 is\n // trying to get the dependencies of comp1 using its package.json.\n await mapSeries(components, updateVersions);\n await workspace.scope.legacyScope.stagedSnaps.write();\n\n return stagedConfig;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["updateDependenciesVersions","componentsToTag","dependencyResolver","getNewDependencyVersion","id","foundDependency","find","component","isEqualWithoutVersion","changeVersion","version","changeExtensionsVersion","extensions","forEach","ext","extensionId","newDepId","oneComponentToTag","getAllDependencies","dependency","updateDepsOnLegacyTag","bind","setHashes","componentToTag","setNewVersion","sha1","v4","setFutureVersions","scope","releaseType","exactVersion","persist","autoTagIds","ids","incrementBy","preReleaseId","soft","tagDataPerComp","isPreReleaseLike","includes","Promise","all","map","isAutoTag","hasWithoutVersion","modelComponent","sources","findOrAddComponent","nextVersion","componentMap","getNewVersion","tagData","t","componentId","_legacy","Error","toStringWithoutVersion","versionToTag","exactVersionOrReleaseType","getValidVersionOrReleaseType","getVersionToAdd","undefined","prereleaseId","preRelease","versionByEnteredId","getVersionByEnteredId","newVersion","enteredIds","enteredId","searchWithoutVersion","hasVersion","tagModelComponent","workspace","snapping","builder","consumerComponents","skipBuildPipeline","message","editor","ignoreNewestVersion","skipTests","skipAutoTag","build","isSnap","disableTagAndSnapPipelines","forceDeploy","packageManagerConfigRootDir","copyLogFromPreviousSnap","exitOnFirstFailedTask","consumer","legacyScope","consumerComponentsIdsMap","consumerComponent","componentIdString","toString","R","values","idsToTag","BitIds","fromArray","c","idsToTriggerAutoTag","filter","autoTagData","getAutoTagInfo","autoTagComponents","autoTagItem","autoTagComponentsFiltered","has","autoTag","allComponentsToTag","messagesFromEditorFetcher","MessagePerComponentFetcher","getMessagePerId","getMessagesFromEditor","tmp","msg","messagePerId","newestVersionsP","componentFromModel","getModelComponentIfExist","ShowDoctorError","listVersions","length","latest","getHeadRegardlessOfLaneAsTagOrHash","currentVersion","latestVersion","newestVersions","newestVersionsWithoutEmpty","newest","isEmpty","NewerVersionFound","logger","debugAndAddBreadCrumb","setCurrentSchema","addLogToComponents","unmergedComps","listComponentsDuringMerge","stagedConfig","updateNextVersionOnBitmap","_addFlattenedDependenciesToComponents","emptyBuilderData","addBuildStatus","BuildStatus","Pending","addComponentsToScope","Boolean","modelComponents","getModelComponent","updateComponentsVersions","publishedPackages","harmonyComps","onTagOpts","throwOnError","combineBuildDataFromParent","seedersOnly","isolateOptions","builderOptions","reloadAspectsWithNewVersion","getManyByLegacy","builderDataMap","tagListener","buildResult","builderDataMapToLegacyOnTagResults","_updateComponentsByTagResult","push","_getPublishedPackages","Succeed","mapSeries","_enrichComp","removedComponents","removeDeletedComponentsFromBitmap","objects","removeMergeConfigFromComponents","linkToNodeModulesByComponents","taggedComponents","autoTaggedResults","comps","removedComps","comp","isRemoved","compBitIdsToRemove","deleteComponentsFiles","cleanFromBitMap","components","configMergeFile","getConflictMergeFile","compId","isNowSnapped","removeConflict","hasConflict","write","delete","shouldValidateVersion","lane","getCurrentLaneObject","_addCompToObjects","source","_addCompFromScopeToObjects","existingBuilder","findCoreExtension","Extensions","data","autoTagComps","messagePerComponent","basicLog","getBasicLog","getLog","msgFromEditor","item","currentLog","log","date","username","email","autoTagComp","defaultMsg","getBitCloudUsername","globalConfig","get","CFG_USER_NAME_KEY","CFG_USER_EMAIL_KEY","Date","now","token","CFG_USER_TOKEN_KEY","res","fetch","getCloudDomain","headers","Authorization","object","json","user","payload","error","getBitCloudUser","schema","CURRENT_SCHEMA","buildStatus","isTag","currentLane","getCurrentLaneId","getStagedConfig","isAvailableOnMain","isDefault","ModelComponent","hasHead","updateVersions","toBitIdWithLatestVersionAllowNull","bitMap","updateComponentId","availableOnMain","setComponentProp","getComponent","resolveComponentId","config","addComponentConfig","removeConfig","hash","getRef","stagedSnaps","addSnap","getConfigPerId","clearNextVersion"],"sources":["tag-model-component.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport fetch from 'node-fetch';\nimport R from 'ramda';\nimport { isEmpty } from 'lodash';\nimport { ReleaseType } from 'semver';\nimport { v4 } from 'uuid';\nimport * as globalConfig from '@teambit/legacy/dist/api/consumer/lib/global-config';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport {\n BuildStatus,\n CFG_USER_EMAIL_KEY,\n CFG_USER_NAME_KEY,\n CFG_USER_TOKEN_KEY,\n getCloudDomain,\n Extensions,\n} from '@teambit/legacy/dist/constants';\nimport { CURRENT_SCHEMA } from '@teambit/legacy/dist/consumer/component/component-schema';\nimport { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport { NewerVersionFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport ShowDoctorError from '@teambit/legacy/dist/error/show-doctor-error';\nimport { Component } from '@teambit/component';\nimport deleteComponentsFiles from '@teambit/legacy/dist/consumer/component-ops/delete-component-files';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { sha1 } from '@teambit/legacy/dist/utils';\nimport { ComponentID } from '@teambit/component-id';\nimport { AutoTagResult, getAutoTagInfo } from '@teambit/legacy/dist/scope/component-ops/auto-tag';\nimport { getValidVersionOrReleaseType } from '@teambit/legacy/dist/utils/semver-helper';\nimport { BuilderMain, OnTagOpts } from '@teambit/builder';\nimport { Log } from '@teambit/legacy/dist/scope/models/version';\nimport {\n MessagePerComponent,\n MessagePerComponentFetcher,\n} from '@teambit/legacy/dist/scope/component-ops/message-per-component';\nimport { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ScopeMain, StagedConfig } from '@teambit/scope';\nimport { Workspace } from '@teambit/workspace';\nimport { SnappingMain, TagDataPerComp } from './snapping.main.runtime';\n\nexport type onTagIdTransformer = (id: BitId) => BitId | null;\n\nexport type BasicTagParams = {\n message: string;\n ignoreNewestVersion?: boolean;\n skipTests?: boolean;\n skipAutoTag?: boolean;\n build?: boolean;\n soft?: boolean;\n persist: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n preReleaseId?: string;\n editor?: string;\n unmodified?: boolean;\n};\n\nfunction updateDependenciesVersions(\n componentsToTag: ConsumerComponent[],\n dependencyResolver: DependencyResolverMain\n): void {\n const getNewDependencyVersion = (id: BitId): BitId | null => {\n const foundDependency = componentsToTag.find((component) => component.id.isEqualWithoutVersion(id));\n return foundDependency ? id.changeVersion(foundDependency.version) : null;\n };\n const changeExtensionsVersion = (component: ConsumerComponent): void => {\n component.extensions.forEach((ext) => {\n if (ext.extensionId) {\n const newDepId = getNewDependencyVersion(ext.extensionId);\n if (newDepId) ext.extensionId = newDepId;\n }\n });\n };\n\n componentsToTag.forEach((oneComponentToTag) => {\n oneComponentToTag.getAllDependencies().forEach((dependency) => {\n const newDepId = getNewDependencyVersion(dependency.id);\n if (newDepId) dependency.id = newDepId;\n });\n changeExtensionsVersion(oneComponentToTag);\n // @ts-ignore\n oneComponentToTag = dependencyResolver.updateDepsOnLegacyTag(oneComponentToTag, getNewDependencyVersion.bind(this));\n });\n}\n\nfunction setHashes(componentsToTag: ConsumerComponent[]): void {\n componentsToTag.forEach((componentToTag) => {\n componentToTag.setNewVersion(sha1(v4()));\n });\n}\n\nasync function setFutureVersions(\n componentsToTag: ConsumerComponent[],\n scope: Scope,\n releaseType: ReleaseType | undefined,\n exactVersion: string | null | undefined,\n persist: boolean,\n autoTagIds: BitIds,\n ids: BitIds,\n incrementBy?: number,\n preReleaseId?: string,\n soft?: boolean,\n tagDataPerComp?: TagDataPerComp[]\n): Promise<void> {\n const isPreReleaseLike = releaseType\n ? ['prerelease', 'premajor', 'preminor', 'prepatch'].includes(releaseType)\n : false;\n await Promise.all(\n componentsToTag.map(async (componentToTag) => {\n const isAutoTag = autoTagIds.hasWithoutVersion(componentToTag.id);\n const modelComponent = await scope.sources.findOrAddComponent(componentToTag);\n const nextVersion = componentToTag.componentMap?.nextVersion?.version;\n const getNewVersion = (): string => {\n if (tagDataPerComp) {\n const tagData = tagDataPerComp.find((t) => t.componentId._legacy.isEqualWithoutVersion(componentToTag.id));\n if (!tagData) throw new Error(`tag-data is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n if (!tagData.versionToTag)\n throw new Error(`tag-data.TagResults is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(tagData.versionToTag);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n tagData.prereleaseId\n );\n }\n if (nextVersion && persist) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(nextVersion);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n componentToTag.componentMap?.nextVersion?.preRelease\n );\n }\n if (isAutoTag) {\n // auto-tag always bumped as patch unless it's pre-release\n if (isPreReleaseLike) {\n return soft\n ? (releaseType as string)\n : modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n }\n return soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preReleaseId);\n }\n const versionByEnteredId = getVersionByEnteredId(ids, componentToTag, modelComponent);\n return soft\n ? versionByEnteredId || exactVersion || (releaseType as string)\n : versionByEnteredId || modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n };\n const newVersion = getNewVersion();\n componentToTag.setNewVersion(newVersion);\n })\n );\n}\n\nfunction getVersionByEnteredId(\n enteredIds: BitIds,\n component: ConsumerComponent,\n modelComponent: ModelComponent\n): string | undefined {\n const enteredId = enteredIds.searchWithoutVersion(component.id);\n if (enteredId && enteredId.hasVersion()) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(enteredId.version as string);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion\n );\n }\n return undefined;\n}\n\nexport async function tagModelComponent({\n workspace,\n scope,\n snapping,\n builder,\n consumerComponents,\n ids,\n tagDataPerComp,\n skipBuildPipeline = false,\n message,\n editor,\n exactVersion,\n releaseType,\n preReleaseId,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag,\n soft,\n build,\n persist,\n isSnap = false,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir,\n dependencyResolver,\n copyLogFromPreviousSnap = false,\n exitOnFirstFailedTask = false,\n}: {\n workspace?: Workspace;\n scope: ScopeMain;\n snapping: SnappingMain;\n builder: BuilderMain;\n consumerComponents: ConsumerComponent[];\n ids: BitIds;\n tagDataPerComp?: TagDataPerComp[];\n skipBuildPipeline?: boolean;\n copyLogFromPreviousSnap?: boolean;\n exactVersion?: string | null | undefined;\n releaseType?: ReleaseType;\n incrementBy?: number;\n isSnap?: boolean;\n packageManagerConfigRootDir?: string;\n dependencyResolver: DependencyResolverMain;\n exitOnFirstFailedTask?: boolean;\n} & BasicTagParams): Promise<{\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n publishedPackages: string[];\n stagedConfig?: StagedConfig;\n removedComponents?: BitIds;\n}> {\n const consumer = workspace?.consumer;\n const legacyScope = scope.legacyScope;\n const consumerComponentsIdsMap = {};\n // Concat and unique all the dependencies from all the components so we will not import\n // the same dependency more then once, it's mainly for performance purpose\n consumerComponents.forEach((consumerComponent) => {\n const componentIdString = consumerComponent.id.toString();\n // Store it in a map so we can take it easily from the sorted array which contain only the id\n consumerComponentsIdsMap[componentIdString] = consumerComponent;\n });\n const componentsToTag: ConsumerComponent[] = R.values(consumerComponentsIdsMap); // consumerComponents unique\n const idsToTag = BitIds.fromArray(componentsToTag.map((c) => c.id));\n // ids without versions are new. it's impossible that tagged (and not-modified) components has\n // them as dependencies.\n const idsToTriggerAutoTag = idsToTag.filter((id) => id.hasVersion());\n const autoTagData =\n skipAutoTag || !consumer ? [] : await getAutoTagInfo(consumer, BitIds.fromArray(idsToTriggerAutoTag));\n const autoTagComponents = autoTagData.map((autoTagItem) => autoTagItem.component);\n const autoTagComponentsFiltered = autoTagComponents.filter((c) => !idsToTag.has(c.id));\n const autoTagIds = BitIds.fromArray(autoTagComponentsFiltered.map((autoTag) => autoTag.id));\n const allComponentsToTag = [...componentsToTag, ...autoTagComponentsFiltered];\n\n const messagesFromEditorFetcher = new MessagePerComponentFetcher(idsToTag, autoTagIds);\n const getMessagePerId = async () => {\n if (editor) return messagesFromEditorFetcher.getMessagesFromEditor(legacyScope.tmp, editor);\n if (tagDataPerComp) return tagDataPerComp.map((t) => ({ id: t.componentId._legacy, msg: t.message || message }));\n return [];\n };\n const messagePerId = await getMessagePerId();\n\n // check for each one of the components whether it is using an old version\n if (!ignoreNewestVersion && !isSnap) {\n const newestVersionsP = allComponentsToTag.map(async (component) => {\n if (component.componentFromModel) {\n // otherwise it's a new component, so this check is irrelevant\n const modelComponent = await legacyScope.getModelComponentIfExist(component.id);\n if (!modelComponent) throw new ShowDoctorError(`component ${component.id} was not found in the model`);\n if (!modelComponent.listVersions().length) return null; // no versions yet, no issues.\n const latest = modelComponent.getHeadRegardlessOfLaneAsTagOrHash();\n if (latest !== component.version) {\n return {\n componentId: component.id.toStringWithoutVersion(),\n currentVersion: component.version,\n latestVersion: latest,\n };\n }\n }\n return null;\n });\n const newestVersions = await Promise.all(newestVersionsP);\n const newestVersionsWithoutEmpty = newestVersions.filter((newest) => newest);\n if (!isEmpty(newestVersionsWithoutEmpty)) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n throw new NewerVersionFound(newestVersionsWithoutEmpty);\n }\n }\n\n logger.debugAndAddBreadCrumb('tag-model-components', 'sequentially persist all components');\n // go through all components and find the future versions for them\n isSnap\n ? setHashes(allComponentsToTag)\n : await setFutureVersions(\n allComponentsToTag,\n legacyScope,\n releaseType,\n exactVersion,\n persist,\n autoTagIds,\n ids,\n incrementBy,\n preReleaseId,\n soft,\n tagDataPerComp\n );\n setCurrentSchema(allComponentsToTag);\n // go through all dependencies and update their versions\n updateDependenciesVersions(allComponentsToTag, dependencyResolver);\n\n await addLogToComponents(componentsToTag, autoTagComponents, persist, message, messagePerId, copyLogFromPreviousSnap);\n // don't move it down. otherwise, it'll be empty and we don't know which components were during merge.\n const unmergedComps = workspace ? await workspace.listComponentsDuringMerge() : [];\n let stagedConfig;\n if (soft) {\n if (!consumer) throw new Error(`unable to soft-tag without consumer`);\n consumer.updateNextVersionOnBitmap(allComponentsToTag, preReleaseId);\n } else {\n await snapping._addFlattenedDependenciesToComponents(allComponentsToTag);\n emptyBuilderData(allComponentsToTag);\n addBuildStatus(allComponentsToTag, BuildStatus.Pending);\n await addComponentsToScope(legacyScope, snapping, allComponentsToTag, Boolean(build), consumer);\n\n if (workspace) {\n const modelComponents = await Promise.all(\n allComponentsToTag.map((c) => {\n return c.modelComponent || legacyScope.getModelComponent(c.id);\n })\n );\n stagedConfig = await updateComponentsVersions(workspace, modelComponents);\n }\n }\n\n const publishedPackages: string[] = [];\n let harmonyComps: Component[] = [];\n if (build) {\n const onTagOpts: OnTagOpts = {\n disableTagAndSnapPipelines,\n throwOnError: true,\n forceDeploy,\n isSnap,\n skipBuildPipeline,\n combineBuildDataFromParent: skipBuildPipeline,\n };\n const seedersOnly = !workspace; // if tag from scope, build only the given components\n const isolateOptions = { packageManagerConfigRootDir, seedersOnly };\n const builderOptions = { exitOnFirstFailedTask, skipTests };\n\n await scope.reloadAspectsWithNewVersion(allComponentsToTag);\n harmonyComps = await (workspace || scope).getManyByLegacy(allComponentsToTag);\n const { builderDataMap } = await builder.tagListener(harmonyComps, onTagOpts, isolateOptions, builderOptions);\n const buildResult = scope.builderDataMapToLegacyOnTagResults(builderDataMap);\n\n snapping._updateComponentsByTagResult(allComponentsToTag, buildResult);\n publishedPackages.push(...snapping._getPublishedPackages(allComponentsToTag));\n addBuildStatus(allComponentsToTag, BuildStatus.Succeed);\n await mapSeries(allComponentsToTag, (consumerComponent) => snapping._enrichComp(consumerComponent));\n }\n\n let removedComponents: BitIds | undefined;\n if (!soft) {\n removedComponents = await removeDeletedComponentsFromBitmap(allComponentsToTag, workspace);\n await legacyScope.objects.persist();\n await removeMergeConfigFromComponents(unmergedComps, allComponentsToTag, workspace);\n if (workspace) {\n await linkToNodeModulesByComponents(\n harmonyComps.length ? harmonyComps : await workspace.scope.getManyByLegacy(allComponentsToTag),\n workspace\n );\n }\n }\n\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n publishedPackages,\n stagedConfig,\n removedComponents,\n };\n}\n\nasync function removeDeletedComponentsFromBitmap(\n comps: ConsumerComponent[],\n workspace?: Workspace\n): Promise<BitIds | undefined> {\n if (!workspace) {\n return undefined;\n }\n const removedComps = comps.filter((comp) => comp.isRemoved());\n if (!removedComps.length) return undefined;\n const compBitIdsToRemove = BitIds.fromArray(removedComps.map((c) => c.id));\n await deleteComponentsFiles(workspace.consumer, compBitIdsToRemove);\n await workspace.consumer.cleanFromBitMap(compBitIdsToRemove);\n\n return compBitIdsToRemove;\n}\n\nasync function removeMergeConfigFromComponents(\n unmergedComps: ComponentID[],\n components: ConsumerComponent[],\n workspace?: Workspace\n) {\n if (!workspace || !unmergedComps.length) {\n return;\n }\n const configMergeFile = workspace.getConflictMergeFile();\n\n unmergedComps.forEach((compId) => {\n const isNowSnapped = components.find((c) => c.id.isEqualWithoutVersion(compId._legacy));\n if (isNowSnapped) {\n configMergeFile.removeConflict(compId.toStringWithoutVersion());\n }\n });\n if (configMergeFile.hasConflict()) {\n await configMergeFile.write();\n } else {\n await configMergeFile.delete();\n }\n}\n\nasync function addComponentsToScope(\n scope: Scope,\n snapping: SnappingMain,\n components: ConsumerComponent[],\n shouldValidateVersion: boolean,\n consumer?: Consumer\n) {\n const lane = await scope.getCurrentLaneObject();\n if (consumer) {\n await mapSeries(components, async (component) => {\n await snapping._addCompToObjects({\n source: component,\n consumer,\n lane,\n shouldValidateVersion,\n });\n });\n } else {\n await mapSeries(components, async (component) => {\n await snapping._addCompFromScopeToObjects(component, lane);\n });\n }\n}\n\nfunction emptyBuilderData(components: ConsumerComponent[]) {\n components.forEach((component) => {\n const existingBuilder = component.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = {};\n });\n}\n\nasync function addLogToComponents(\n components: ConsumerComponent[],\n autoTagComps: ConsumerComponent[],\n persist: boolean,\n message: string,\n messagePerComponent: MessagePerComponent[],\n copyLogFromPreviousSnap = false\n) {\n // @ts-ignore this happens when running `bit tag -m \"\"`.\n if (message === true) {\n message = '';\n }\n const basicLog = await getBasicLog();\n const getLog = (component: ConsumerComponent): Log => {\n const nextVersion = persist ? component.componentMap?.nextVersion : null;\n const msgFromEditor = messagePerComponent.find((item) => item.id.isEqualWithoutVersion(component.id))?.msg;\n if (copyLogFromPreviousSnap) {\n const currentLog = component.log;\n if (!currentLog) {\n throw new Error(\n `addLogToComponents is set copyLogFromPreviousSnap: true, but it is unable to find log in the previous snap`\n );\n }\n currentLog.message = msgFromEditor || message || currentLog.message;\n currentLog.date = basicLog.date;\n return currentLog;\n }\n\n return {\n username: nextVersion?.username || basicLog.username,\n email: nextVersion?.email || basicLog.email,\n message: nextVersion?.message || msgFromEditor || message,\n date: basicLog.date,\n };\n };\n\n components.forEach((component) => {\n component.log = getLog(component);\n });\n autoTagComps.forEach((autoTagComp) => {\n autoTagComp.log = getLog(autoTagComp);\n const defaultMsg = 'bump dependencies versions';\n if (message) {\n autoTagComp.log.message += ` (${defaultMsg})`;\n } else if (!autoTagComp.log.message) {\n autoTagComp.log.message = defaultMsg;\n }\n });\n}\n\nexport async function getBasicLog(): Promise<Log> {\n const username = (await getBitCloudUsername()) || (await globalConfig.get(CFG_USER_NAME_KEY));\n const email = await globalConfig.get(CFG_USER_EMAIL_KEY);\n return {\n username,\n email,\n message: '',\n date: Date.now().toString(),\n };\n}\n\nexport async function getBitCloudUsername(): Promise<string | undefined> {\n const token = await globalConfig.get(CFG_USER_TOKEN_KEY);\n if (!token) return '';\n try {\n const res = await fetch(`https://api.${getCloudDomain()}/user`, {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n });\n const object = await res.json();\n const user = object.payload;\n const username = user.username;\n return username;\n } catch (error) {\n return undefined;\n }\n}\n\nexport type BitCloudUser = {\n username?: string;\n name?: string;\n displayName?: string;\n profileImage?: string;\n};\n\nexport async function getBitCloudUser(): Promise<BitCloudUser | undefined> {\n const token = await globalConfig.get(CFG_USER_TOKEN_KEY);\n if (!token) return undefined;\n\n try {\n const res = await fetch(`https://api.${getCloudDomain()}/user`, {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n });\n const object = await res.json();\n const user = object.payload;\n\n return {\n ...user,\n };\n } catch (error) {\n return undefined;\n }\n}\n\nfunction setCurrentSchema(components: ConsumerComponent[]) {\n components.forEach((component) => {\n component.schema = CURRENT_SCHEMA;\n });\n}\n\nfunction addBuildStatus(components: ConsumerComponent[], buildStatus: BuildStatus) {\n components.forEach((component) => {\n component.buildStatus = buildStatus;\n });\n}\n\nexport async function updateComponentsVersions(\n workspace: Workspace,\n components: Array<ModelComponent>,\n isTag = true\n): Promise<StagedConfig> {\n const consumer = workspace.consumer;\n const currentLane = consumer.getCurrentLaneId();\n const stagedConfig = await workspace.scope.getStagedConfig();\n const isAvailableOnMain = async (component: ModelComponent | ConsumerComponent, id: BitId): Promise<boolean> => {\n if (currentLane.isDefault()) {\n return true;\n }\n if (!id.hasVersion()) {\n // component was unsnapped on the current lane and is back to a new component\n return true;\n }\n const modelComponent =\n component instanceof ModelComponent ? component : await consumer.scope.getModelComponent(component.id);\n return modelComponent.hasHead();\n };\n\n const updateVersions = async (modelComponent: ModelComponent) => {\n const id: BitId = modelComponent.toBitIdWithLatestVersionAllowNull();\n consumer.bitMap.updateComponentId(id);\n const availableOnMain = await isAvailableOnMain(modelComponent, id);\n if (!availableOnMain) {\n consumer.bitMap.setComponentProp(id, 'onLanesOnly', true);\n }\n const componentMap = consumer.bitMap.getComponent(id);\n const compId = await workspace.resolveComponentId(id);\n // it can be either a tag/snap or reset.\n if (isTag) {\n const config = componentMap.config;\n stagedConfig.addComponentConfig(compId, config);\n consumer.bitMap.removeConfig(id);\n const hash = modelComponent.getRef(id.version as string);\n if (!hash) throw new Error(`updateComponentsVersions: unable to find a hash for ${id.toString()}`);\n workspace.scope.legacyScope.stagedSnaps.addSnap(hash?.toString());\n } else if (!componentMap.config) {\n componentMap.config = stagedConfig.getConfigPerId(compId);\n }\n componentMap.clearNextVersion();\n };\n // important! DO NOT use Promise.all here! otherwise, you're gonna enter into a whole world of pain.\n // imagine tagging comp1 with auto-tagged comp2, comp1 package.json is written while comp2 is\n // trying to get the dependencies of comp1 using its package.json.\n await mapSeries(components, updateVersions);\n await workspace.scope.legacyScope.stagedSnaps.write();\n\n return stagedConfig;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/snapping",
3
- "version": "0.0.397",
3
+ "version": "0.0.399",
4
4
  "homepage": "https://bit.cloud/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.397"
9
+ "version": "0.0.399"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -24,21 +24,21 @@
24
24
  "@teambit/component-id": "0.0.427",
25
25
  "@teambit/graph.cleargraph": "0.0.1",
26
26
  "@teambit/bit-error": "0.0.402",
27
- "@teambit/issues": "0.0.390",
28
- "@teambit/cli": "0.0.727",
27
+ "@teambit/issues": "0.0.392",
28
+ "@teambit/cli": "0.0.728",
29
29
  "@teambit/component-issues": "0.0.92",
30
- "@teambit/logger": "0.0.820",
31
- "@teambit/builder": "0.0.1082",
30
+ "@teambit/logger": "0.0.821",
31
+ "@teambit/builder": "0.0.1084",
32
32
  "@teambit/component-version": "0.0.408",
33
- "@teambit/component": "0.0.1082",
34
- "@teambit/dependency-resolver": "0.0.1082",
35
- "@teambit/export": "0.0.1082",
36
- "@teambit/importer": "0.0.511",
37
- "@teambit/insights": "0.0.1082",
38
- "@teambit/lane-id": "0.0.244",
39
- "@teambit/scope": "0.0.1082",
40
- "@teambit/workspace": "0.0.1082",
41
- "@teambit/workspace.modules.node-modules-linker": "0.0.71"
33
+ "@teambit/component": "0.0.1084",
34
+ "@teambit/dependency-resolver": "0.0.1084",
35
+ "@teambit/export": "0.0.1084",
36
+ "@teambit/importer": "0.0.513",
37
+ "@teambit/insights": "0.0.1084",
38
+ "@teambit/lane-id": "0.0.245",
39
+ "@teambit/scope": "0.0.1084",
40
+ "@teambit/workspace": "0.0.1084",
41
+ "@teambit/workspace.modules.node-modules-linker": "0.0.72"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/lodash": "4.14.165",
@@ -53,13 +53,13 @@
53
53
  "@types/react-dom": "^17.0.5",
54
54
  "@types/jest": "^26.0.0",
55
55
  "@types/testing-library__jest-dom": "5.9.5",
56
- "@teambit/compiler": "0.0.1082",
57
- "@teambit/component.testing.mock-components": "0.0.91",
58
- "@teambit/harmony.testing.load-aspect": "0.0.90",
56
+ "@teambit/compiler": "0.0.1084",
57
+ "@teambit/component.testing.mock-components": "0.0.92",
58
+ "@teambit/harmony.testing.load-aspect": "0.0.91",
59
59
  "@teambit/workspace.testing.mock-workspace": "0.0.14"
60
60
  },
61
61
  "peerDependencies": {
62
- "@teambit/legacy": "1.0.507",
62
+ "@teambit/legacy": "1.0.509",
63
63
  "react": "^16.8.0 || ^17.0.0",
64
64
  "react-dom": "^16.8.0 || ^17.0.0"
65
65
  },