@teambit/snapping 0.0.200 → 0.0.202

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.
@@ -4,7 +4,7 @@ import { Scope as LegacyScope } from '@teambit/legacy/dist/scope';
4
4
  import { CommunityMain } from '@teambit/community';
5
5
  import { Workspace } from '@teambit/workspace';
6
6
  import { ReleaseType } from 'semver';
7
- import { BitIds } from '@teambit/legacy/dist/bit-id';
7
+ import { BitId, BitIds } from '@teambit/legacy/dist/bit-id';
8
8
  import { Consumer } from '@teambit/legacy/dist/consumer';
9
9
  import { TagResults } from '@teambit/legacy/dist/api/consumer/lib/tag';
10
10
  import { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';
@@ -15,11 +15,21 @@ import { untagResult } from '@teambit/legacy/dist/scope/component-ops/untag-comp
15
15
  import { ScopeMain } from '@teambit/scope';
16
16
  import { Lane, ModelComponent } from '@teambit/legacy/dist/scope/models';
17
17
  import { IssuesMain } from '@teambit/issues';
18
+ import { Component } from '@teambit/component';
18
19
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
19
20
  import { BuilderMain } from '@teambit/builder';
20
21
  import { ExportMain } from '@teambit/export';
22
+ import { ComponentID } from '@teambit/component-id';
21
23
  import { BitObject } from '@teambit/legacy/dist/scope/objects';
22
24
  import { BasicTagParams } from './tag-model-component';
25
+ import { TagDataPerCompRaw } from './tag-from-scope.cmd';
26
+ export declare type TagDataPerComp = {
27
+ componentId: ComponentID;
28
+ dependencies: ComponentID[];
29
+ versionToTag: string;
30
+ prereleaseId?: string;
31
+ message?: string;
32
+ };
23
33
  export declare class SnappingMain {
24
34
  private workspace;
25
35
  private logger;
@@ -48,8 +58,7 @@ export declare class SnappingMain {
48
58
  scope?: string | boolean;
49
59
  incrementBy?: number;
50
60
  } & Partial<BasicTagParams>): Promise<TagResults | null>;
51
- tagFromScope(params: {
52
- ids: string[];
61
+ tagFromScope(tagDataPerCompRaw: TagDataPerCompRaw[], params: {
53
62
  push?: boolean;
54
63
  version?: string;
55
64
  releaseType?: ReleaseType;
@@ -99,6 +108,7 @@ export declare class SnappingMain {
99
108
  private throwForComponentIssues;
100
109
  private throwForPendingImport;
101
110
  private throwForLegacyDependenciesInsideHarmony;
111
+ updateDependenciesVersionsOfComponent(component: Component, dependencies: ComponentID[], currentBitIds: BitId[]): Promise<void>;
102
112
  private getComponentsToTag;
103
113
  static slots: never[];
104
114
  static dependencies: import("@teambit/harmony").Aspect[];
@@ -214,6 +214,13 @@ function _dependencyResolver() {
214
214
  };
215
215
  return data;
216
216
  }
217
+ function _config() {
218
+ const data = require("@teambit/legacy/dist/consumer/config");
219
+ _config = function () {
220
+ return data;
221
+ };
222
+ return data;
223
+ }
217
224
  function _builder() {
218
225
  const data = require("@teambit/builder");
219
226
  _builder = function () {
@@ -420,29 +427,48 @@ class SnappingMain {
420
427
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
421
428
  return tagResults;
422
429
  }
423
- async tagFromScope(params) {
430
+ async tagFromScope(tagDataPerCompRaw, params) {
424
431
  if (this.workspace) {
425
432
  throw new (_bitError().BitError)(`unable to run this command from a workspace, please create a new bare-scope and run it from there`);
426
433
  }
427
- const componentIds = await this.scope.resolveMultipleComponentIds(params.ids);
434
+ const tagDataPerComp = await Promise.all(tagDataPerCompRaw.map(async tagData => {
435
+ return {
436
+ componentId: await this.scope.resolveComponentId(tagData.componentId),
437
+ dependencies: tagData.dependencies ? await this.scope.resolveMultipleComponentIds(tagData.dependencies) : [],
438
+ versionToTag: tagData.versionToTag || 'patch',
439
+ prereleaseId: tagData.prereleaseId,
440
+ message: tagData.message
441
+ };
442
+ }));
443
+ const componentIds = tagDataPerComp.map(t => t.componentId);
444
+ const bitIds = componentIds.map(c => c._legacy);
428
445
  const componentIdsLatest = componentIds.map(id => id.changeVersion(_constants().LATEST));
429
446
  const components = await this.scope.import(componentIdsLatest);
447
+ await Promise.all(components.map(async comp => {
448
+ const tagData = tagDataPerComp.find(t => t.componentId.isEqual(comp.id, {
449
+ ignoreVersion: true
450
+ }));
451
+ if (!tagData) throw new Error(`unable to find ${comp.id.toString()} in tagDAtaPerComp`);
452
+ if (!tagData.dependencies.length) return;
453
+ await this.updateDependenciesVersionsOfComponent(comp, tagData.dependencies, bitIds);
454
+ }));
430
455
  const consumerComponents = components.map(c => c.state._consumer);
431
456
  const legacyIds = _bitId().BitIds.fromArray(componentIds.map(id => id._legacy));
432
457
  const results = await (0, _tagModelComponent().tagModelComponent)(_objectSpread(_objectSpread({}, params), {}, {
433
458
  scope: this.scope,
434
459
  consumerComponents,
460
+ tagDataPerComp,
461
+ skipBuildPipeline: true,
435
462
  snapping: this,
436
463
  builder: this.builder,
437
464
  dependencyResolver: this.dependencyResolver,
438
- skipAutoTag: false,
465
+ skipAutoTag: true,
439
466
  persist: true,
440
467
  ids: legacyIds,
441
468
  message: params.message
442
469
  }));
443
470
  const {
444
471
  taggedComponents,
445
- autoTaggedResults,
446
472
  publishedPackages
447
473
  } = results;
448
474
  if (params.push) {
@@ -455,7 +481,7 @@ class SnappingMain {
455
481
  }
456
482
  return {
457
483
  taggedComponents,
458
- autoTaggedResults,
484
+ autoTaggedResults: [],
459
485
  isSoftTag: false,
460
486
  publishedPackages,
461
487
  warnings: [],
@@ -776,6 +802,49 @@ there are matching among unmodified components thought. consider using --unmodif
776
802
  concurrency: (0, _concurrency().concurrentComponentsLimit)()
777
803
  });
778
804
  }
805
+ async updateDependenciesVersionsOfComponent(component, dependencies, currentBitIds) {
806
+ const depsBitIds = dependencies.map(d => d._legacy);
807
+ const updatedIds = _bitId().BitIds.fromArray([...currentBitIds, ...depsBitIds]);
808
+ const componentIdStr = component.id.toString();
809
+ const legacyComponent = component.state._consumer;
810
+ const deps = [...legacyComponent.dependencies.get(), ...legacyComponent.devDependencies.get()];
811
+ const dependenciesList = await this.dependencyResolver.getDependencies(component);
812
+ deps.forEach(dep => {
813
+ const updatedBitId = updatedIds.searchWithoutVersion(dep.id);
814
+ if (updatedBitId) {
815
+ var _dependenciesList$fin, _dependenciesList$fin2;
816
+ const depIdStr = dep.id.toString();
817
+ const packageName = (_dependenciesList$fin = dependenciesList.findDependency(depIdStr)) === null || _dependenciesList$fin === void 0 ? void 0 : (_dependenciesList$fin2 = _dependenciesList$fin.getPackageName) === null || _dependenciesList$fin2 === void 0 ? void 0 : _dependenciesList$fin2.call(_dependenciesList$fin);
818
+ if (!packageName) {
819
+ throw new Error(`unable to find the package-name of "${depIdStr}" dependency inside the dependency-resolver data of "${componentIdStr}"`);
820
+ }
821
+ this.logger.debug(`updating "${componentIdStr}", dependency ${depIdStr} to version ${updatedBitId.version}}`);
822
+ dep.id = updatedBitId;
823
+ dep.packageName = packageName;
824
+ }
825
+ });
826
+ legacyComponent.extensions.forEach(ext => {
827
+ if (!ext.extensionId) return;
828
+ const updatedBitId = updatedIds.searchWithoutVersion(ext.extensionId);
829
+ if (updatedBitId) {
830
+ this.logger.debug(`updating "${componentIdStr}", extension ${ext.extensionId.toString()} to version ${updatedBitId.version}}`);
831
+ ext.extensionId = updatedBitId;
832
+ }
833
+ });
834
+ const dependenciesListSerialized = (await this.dependencyResolver.extractDepsFromLegacy(component)).serialize();
835
+ const extId = _dependencyResolver().DependencyResolverAspect.id;
836
+ const data = {
837
+ dependencies: dependenciesListSerialized
838
+ };
839
+ const existingExtension = component.state._consumer.extensions.findExtension(extId);
840
+ if (existingExtension) {
841
+ // Only merge top level of extension data
842
+ Object.assign(existingExtension.data, data);
843
+ return;
844
+ }
845
+ const extension = new (_config().ExtensionDataEntry)(undefined, undefined, extId, undefined, data);
846
+ component.state._consumer.extensions.push(extension);
847
+ }
779
848
  async getComponentsToTag(includeUnmodified, exactVersion, persist, ids, snapped, unmerged) {
780
849
  const warnings = [];
781
850
  const componentsList = new (_componentsList().default)(this.workspace.consumer);
@@ -1 +1 @@
1
- {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","dependencyResolver","scope","exporter","builder","objectsRepo","legacyScope","objects","tag","ids","message","version","editor","snapped","unmerged","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","build","unmodified","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","isFeatureEnabled","BUILD_ON_CI","Boolean","BitError","exactVersion","ConsumerNotFound","idsHasWildcard","hasWildcard","isAll","length","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","debug","toString","Analytics","addBreadCrumb","hashData","componentFsCache","deleteAllDependenciesDataCache","components","loadComponentsForTag","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","throwForPendingImport","taggedComponents","autoTaggedResults","publishedPackages","tagModelComponent","snapping","consumerComponents","packageManagerConfigRootDir","path","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","tagFromScope","params","componentIds","resolveMultipleComponentIds","componentIdsLatest","map","id","changeVersion","LATEST","import","c","state","_consumer","legacyIds","_legacy","results","push","exportMany","idsWithFutureScope","allVersions","snap","pattern","skipAutoSnap","Error","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","listDuringMergeStateComponents","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","tagPendingComponentsIds","shouldThrowForNoMatching","getCompIds","includes","compId","resolveComponentId","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","compact","componentId","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","isRealUntag","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","_addFlattenedDependenciesToComponents","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","stop","_updateComponentsByTagResult","tagResult","forEach","matchingComponent","find","isEqual","existingBuilder","extensions","findCoreExtension","Extensions","data","builderData","_getPublishedPackages","comp","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","_addCompToObjects","source","lane","shouldValidateVersion","sources","findOrAddComponent","artifactFiles","getArtifactsFiles","artifacts","transformArtifactsFromVinylToSource","files","consumerComponentToVersion","add","addVersion","unmergedComponent","unmergedComponents","getEntry","unrelated","hash","laneId","addParent","log","UnmergedComponents","buildSnapMessage","removeComponent","file","validate","_addCompFromScopeToObjects","objectRepo","_enrichComp","consumerComponent","_getObjectsToEnrichComp","obj","loadVersion","buildStatus","artifactObjects","artifactsFiles","artifactsSource","ArtifactFiles","fromVinylsToSources","vinyls","populateRefsFromSources","removedComponents","loadComponents","toVersionLatest","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","areComponentsMissingFromScope","removed","some","componentFromModel","hasScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","Promise","all","depId","hasVersion","modelComp","getModelComponentIfExist","isLegacy","pMap","concurrency","concurrentComponentsLimit","includeUnmodified","tagPendingBitIds","listSnappedComponentsOnMain","snappedComponentsIds","pMapSeries","idWithoutVer","idHasWildcard","allIds","componentStatus","getComponentStatusById","modified","flat","bitId","tagPendingBitIdsIncludeSnapped","tagPendingComponentsLatest","latestVersions","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","tagFromScopeCmd","TagFromScopeCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","DependencyResolverAspect","ScopeAspect","ExportAspect","BuilderAspect","MainRuntime","addRuntime"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { FlattenedDependenciesGetter } from '@teambit/legacy/dist/scope/component-ops/get-flattened-dependencies';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK, Extensions, LATEST } 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 { TagResults } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport {\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 { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { ExportAspect, ExportMain } from '@teambit/export';\nimport UnmergedComponents from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport { BitObject, 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 { 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 { TagFromScopeCmd } from './tag-from-scope.cmd';\n\nconst HooksManagerInstance = HooksManager.getInstance();\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 ) {\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 }: {\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 } & Partial<BasicTagParams>): Promise<TagResults | null> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\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 ConsumerNotFound();\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 Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(components);\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents: components,\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 });\n\n const tagResults = { taggedComponents, autoTaggedResults, isSoftTag: soft, publishedPackages };\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.warnings = warnings;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.newComponents = newComponents;\n const postHook = isAll ? POST_TAG_ALL_HOOK : POST_TAG_HOOK;\n HooksManagerInstance?.triggerHook(postHook, tagResults);\n Analytics.setExtraData(\n 'num_components',\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n R.concat(tagResults.taggedComponents, tagResults.autoTaggedResults, tagResults.newComponents).length\n );\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n async tagFromScope(\n params: {\n ids: string[];\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 componentIds = await this.scope.resolveMultipleComponentIds(params.ids);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n const components = await this.scope.import(componentIdsLatest);\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 snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: false,\n persist: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents, autoTaggedResults, 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 /**\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 message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n pattern?: string;\n legacyBitIds?: BitIds;\n unmerged?: boolean;\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 }): Promise<SnapResults | null> {\n if (!this.workspace) throw new ConsumerNotFound();\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 await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(components);\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents: components,\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 });\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const snapResults: SnapResults = { snappedComponents: taggedComponents, autoSnappedResults: autoTaggedResults };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.name;\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(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 ConsumerNotFound();\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(scope: LegacyScope, components: ConsumerComponent[]) {\n loader.start('importing missing dependencies...');\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(scope, components);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n loader.stop();\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 // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const component: ModelComponent = await this.scope.legacyScope.sources.findOrAddComponent(source);\n\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n this.objectsRepo.add(version);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, this.objectsRepo);\n\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 version.unrelated = { head: unmergedComponent.head, laneId: unmergedComponent.laneId };\n } else {\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 this.objectsRepo.add(component);\n\n files.forEach((file) => this.objectsRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => this.objectsRepo.add(file.source));\n if (shouldValidateVersion) version.validate();\n return component;\n }\n\n async _addCompFromScopeToObjects(source: ConsumerComponent, lane: Lane | null): Promise<ModelComponent> {\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 } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n objectRepo.add(version);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, objectRepo);\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;\n }\n\n async _enrichComp(consumerComponent: ConsumerComponent) {\n const objects = await this._getObjectsToEnrichComp(consumerComponent);\n objects.forEach((obj) => this.objectsRepo.add(obj));\n return consumerComponent;\n }\n\n async _getObjectsToEnrichComp(consumerComponent: ConsumerComponent): 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 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 loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components, removedComponents } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new Error(`unable to tag ${component.id.toString()}, the \"rootDir\" is missing in the .bitmap file`);\n }\n });\n return [...components, ...removedComponents];\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], 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 const components = await this.workspace.getManyByLegacy(legacyComponents);\n await this.issues.triggerAddComponentIssues(components, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(components);\n\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private throwForPendingImport(components: ConsumerComponent[]) {\n const areComponentsMissingFromScope = components\n .filter((c) => !c.removed)\n .some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\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 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 CommunityAspect,\n LoggerAspect,\n IssuesAspect,\n InsightsAspect,\n DependencyResolverAspect,\n ScopeAspect,\n ExportAspect,\n BuilderAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n workspace,\n cli,\n community,\n loggerMain,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n ]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain,\n DependencyResolverMain,\n ScopeMain,\n ExportMain,\n BuilderMain\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 );\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(snapping, logger);\n const tagFromScopeCmd = new TagFromScopeCmd(snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd, tagFromScopeCmd);\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;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;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;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;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;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;AAKA;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","objectsRepo","legacyScope","objects","tag","ids","message","version","editor","snapped","unmerged","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","build","unmodified","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","isFeatureEnabled","BUILD_ON_CI","Boolean","BitError","exactVersion","ConsumerNotFound","idsHasWildcard","hasWildcard","isAll","length","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","debug","toString","Analytics","addBreadCrumb","hashData","componentFsCache","deleteAllDependenciesDataCache","components","loadComponentsForTag","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","throwForPendingImport","taggedComponents","autoTaggedResults","publishedPackages","tagModelComponent","snapping","consumerComponents","packageManagerConfigRootDir","path","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","tagFromScope","tagDataPerCompRaw","params","tagDataPerComp","Promise","all","map","tagData","componentId","resolveComponentId","dependencies","resolveMultipleComponentIds","versionToTag","prereleaseId","componentIds","t","c","_legacy","componentIdsLatest","id","changeVersion","LATEST","import","comp","find","isEqual","ignoreVersion","Error","updateDependenciesVersionsOfComponent","state","_consumer","legacyIds","results","skipBuildPipeline","push","exportMany","idsWithFutureScope","allVersions","snap","pattern","skipAutoSnap","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","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","compact","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","isRealUntag","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","_addFlattenedDependenciesToComponents","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","stop","_updateComponentsByTagResult","tagResult","forEach","matchingComponent","existingBuilder","extensions","findCoreExtension","Extensions","data","builderData","_getPublishedPackages","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","_addCompToObjects","source","lane","shouldValidateVersion","sources","findOrAddComponent","artifactFiles","getArtifactsFiles","artifacts","transformArtifactsFromVinylToSource","files","consumerComponentToVersion","add","addVersion","unmergedComponent","unmergedComponents","getEntry","unrelated","hash","laneId","addParent","log","UnmergedComponents","buildSnapMessage","removeComponent","file","validate","_addCompFromScopeToObjects","objectRepo","_enrichComp","consumerComponent","_getObjectsToEnrichComp","obj","loadVersion","buildStatus","artifactObjects","artifactsFiles","artifactsSource","ArtifactFiles","fromVinylsToSources","vinyls","populateRefsFromSources","removedComponents","loadComponents","toVersionLatest","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","areComponentsMissingFromScope","removed","some","componentFromModel","hasScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","depId","hasVersion","modelComp","getModelComponentIfExist","isLegacy","pMap","concurrency","concurrentComponentsLimit","currentBitIds","depsBitIds","d","updatedIds","componentIdStr","legacyComponent","deps","get","devDependencies","dependenciesList","getDependencies","dep","updatedBitId","searchWithoutVersion","depIdStr","packageName","findDependency","getPackageName","ext","extensionId","dependenciesListSerialized","extractDepsFromLegacy","serialize","extId","DependencyResolverAspect","existingExtension","findExtension","Object","assign","extension","ExtensionDataEntry","undefined","includeUnmodified","tagPendingBitIds","listSnappedComponentsOnMain","snappedComponentsIds","pMapSeries","idWithoutVer","idHasWildcard","allIds","componentStatus","getComponentStatusById","modified","flat","bitId","tagPendingBitIdsIncludeSnapped","tagPendingComponentsLatest","latestVersions","semver","valid","gt","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","tagFromScopeCmd","TagFromScopeCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","ScopeAspect","ExportAspect","BuilderAspect","MainRuntime","addRuntime"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { FlattenedDependenciesGetter } from '@teambit/legacy/dist/scope/component-ops/get-flattened-dependencies';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK, Extensions, LATEST } 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 { TagResults } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport {\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 { ExportAspect, ExportMain } from '@teambit/export';\nimport UnmergedComponents from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitObject, 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 { 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';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport type TagDataPerComp = {\n componentId: ComponentID;\n dependencies: ComponentID[];\n versionToTag: string;\n prereleaseId?: string;\n message?: 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 ) {\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 }: {\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 } & Partial<BasicTagParams>): Promise<TagResults | null> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\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 ConsumerNotFound();\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 Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(components);\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents: components,\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 });\n\n const tagResults = { taggedComponents, autoTaggedResults, isSoftTag: soft, publishedPackages };\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.warnings = warnings;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.newComponents = newComponents;\n const postHook = isAll ? POST_TAG_ALL_HOOK : POST_TAG_HOOK;\n HooksManagerInstance?.triggerHook(postHook, tagResults);\n Analytics.setExtraData(\n 'num_components',\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n R.concat(tagResults.taggedComponents, tagResults.autoTaggedResults, tagResults.newComponents).length\n );\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n 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 components = await this.scope.import(componentIdsLatest);\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);\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: 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 /**\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 message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n pattern?: string;\n legacyBitIds?: BitIds;\n unmerged?: boolean;\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 }): Promise<SnapResults | null> {\n if (!this.workspace) throw new ConsumerNotFound();\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 await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(components);\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents: components,\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 });\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const snapResults: SnapResults = { snappedComponents: taggedComponents, autoSnappedResults: autoTaggedResults };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.name;\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(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 ConsumerNotFound();\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(scope: LegacyScope, components: ConsumerComponent[]) {\n loader.start('importing missing dependencies...');\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(scope, components);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n loader.stop();\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 // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const component: ModelComponent = await this.scope.legacyScope.sources.findOrAddComponent(source);\n\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n this.objectsRepo.add(version);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, this.objectsRepo);\n\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 version.unrelated = { head: unmergedComponent.head, laneId: unmergedComponent.laneId };\n } else {\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 this.objectsRepo.add(component);\n\n files.forEach((file) => this.objectsRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => this.objectsRepo.add(file.source));\n if (shouldValidateVersion) version.validate();\n return component;\n }\n\n async _addCompFromScopeToObjects(source: ConsumerComponent, lane: Lane | null): Promise<ModelComponent> {\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 } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n objectRepo.add(version);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, objectRepo);\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;\n }\n\n async _enrichComp(consumerComponent: ConsumerComponent) {\n const objects = await this._getObjectsToEnrichComp(consumerComponent);\n objects.forEach((obj) => this.objectsRepo.add(obj));\n return consumerComponent;\n }\n\n async _getObjectsToEnrichComp(consumerComponent: ConsumerComponent): 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 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 loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components, removedComponents } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new Error(`unable to tag ${component.id.toString()}, the \"rootDir\" is missing in the .bitmap file`);\n }\n });\n return [...components, ...removedComponents];\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], 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 const components = await this.workspace.getManyByLegacy(legacyComponents);\n await this.issues.triggerAddComponentIssues(components, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(components);\n\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private throwForPendingImport(components: ConsumerComponent[]) {\n const areComponentsMissingFromScope = components\n .filter((c) => !c.removed)\n .some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\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 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 CommunityAspect,\n LoggerAspect,\n IssuesAspect,\n InsightsAspect,\n DependencyResolverAspect,\n ScopeAspect,\n ExportAspect,\n BuilderAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n workspace,\n cli,\n community,\n loggerMain,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n ]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain,\n DependencyResolverMain,\n ScopeMain,\n ExportMain,\n BuilderMain\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 );\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(snapping, logger);\n const tagFromScopeCmd = new TagFromScopeCmd(snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd, tagFromScopeCmd);\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;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;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;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;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;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKA;EAAA;EAAA;IAAA;EAAA;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"}
@@ -3,6 +3,13 @@ import { ReleaseType } from 'semver';
3
3
  import { Logger } from '@teambit/logger';
4
4
  import { SnappingMain } from './snapping.main.runtime';
5
5
  import { BasicTagParams } from './tag-model-component';
6
+ export declare type TagDataPerCompRaw = {
7
+ componentId: string;
8
+ dependencies?: string[];
9
+ versionToTag?: string;
10
+ prereleaseId?: string;
11
+ message?: string;
12
+ };
6
13
  export declare class TagFromScopeCmd implements Command {
7
14
  private snapping;
8
15
  private logger;
@@ -11,13 +18,12 @@ export declare class TagFromScopeCmd implements Command {
11
18
  private: boolean;
12
19
  description: string;
13
20
  extendedDescription: string;
14
- helpUrl: string;
15
21
  alias: string;
16
22
  loader: boolean;
17
23
  options: CommandOptions;
18
24
  remoteOp: boolean;
19
25
  constructor(snapping: SnappingMain, logger: Logger);
20
- report([patterns]: [string[]], { push, message, ver, patch, minor, major, preRelease, increment, prereleaseId, ignoreIssues, ignoreNewestVersion, skipTests, build, disableTagPipeline, forceDeploy, incrementBy, }: {
26
+ report([data]: [string], { push, message, ver, patch, minor, major, preRelease, increment, prereleaseId, ignoreIssues, ignoreNewestVersion, skipTests, disableTagPipeline, forceDeploy, incrementBy, }: {
21
27
  push?: boolean;
22
28
  ver?: string;
23
29
  patch?: boolean;
@@ -30,4 +36,5 @@ export declare class TagFromScopeCmd implements Command {
30
36
  incrementBy?: number;
31
37
  disableTagPipeline?: boolean;
32
38
  } & Partial<BasicTagParams>): Promise<string>;
39
+ private parseData;
33
40
  }
@@ -56,22 +56,31 @@ class TagFromScopeCmd {
56
56
  constructor(snapping, logger) {
57
57
  this.snapping = snapping;
58
58
  this.logger = logger;
59
- (0, _defineProperty2().default)(this, "name", '_tag <component-id...>');
59
+ (0, _defineProperty2().default)(this, "name", '_tag <data>');
60
60
  (0, _defineProperty2().default)(this, "group", 'development');
61
61
  (0, _defineProperty2().default)(this, "private", true);
62
62
  (0, _defineProperty2().default)(this, "description", 'create an immutable and exportable component snapshot, tagged with a release version.');
63
- (0, _defineProperty2().default)(this, "extendedDescription", `you can specify a version per id using "@" sign, e.g. bit tag foo@1.0.0 bar@minor baz@major`);
64
- (0, _defineProperty2().default)(this, "helpUrl", 'components/tags');
63
+ (0, _defineProperty2().default)(this, "extendedDescription", `this command should be running from a new bare scope, it first imports the components it needs and then processes the tag.
64
+ the input data is a stringified JSON of an array of the following object.
65
+ {
66
+ componentId: string; // ids always have scope, so it's safe to parse them from string
67
+ dependencies: string[]; // e.g. [teambit/compiler@1.0.0, teambit/tester@1.0.0]
68
+ versionToTag?: string; // specific version (e.g. '1.0.0') or semver (e.g. 'minor', 'patch')
69
+ prereleaseId?: string; // applicable when versionToTag is a pre-release. (e.g. "dev", for 1.0.0-dev.1)
70
+ message?: string; // tag-message.
71
+ }
72
+ an example of the final data: '[{"componentId":"ci.remote2/comp-b","dependencies":["ci.remote/comp1@0.0.2"]}]'
73
+ `);
65
74
  (0, _defineProperty2().default)(this, "alias", '');
66
75
  (0, _defineProperty2().default)(this, "loader", true);
67
76
  (0, _defineProperty2().default)(this, "options", [['', 'push', 'export the updated objects to the original scopes once done'], ['m', 'message <message>', 'a log message describing latest changes'], ['v', 'ver <version>', 'tag with the given version'], ['l', 'increment <level>', `options are: [${RELEASE_TYPES.join(', ')}], default to patch`], ['', 'prerelease-id <id>', 'prerelease identifier (e.g. "dev" to get "1.0.0-dev.1")'], ['p', 'patch', 'syntactic sugar for "--increment patch"'], ['', 'minor', 'syntactic sugar for "--increment minor"'], ['', 'major', 'syntactic sugar for "--increment major"'], ['', 'pre-release [identifier]', 'syntactic sugar for "--increment prerelease" and `--prerelease-id <identifier>`'], ['', 'skip-tests', 'skip running component tests during tag process'], ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'], ['', 'force-deploy', 'run the tag pipeline although the build failed'], ['', 'increment-by <number>', '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.'], ['i', 'ignore-issues [issues]', `ignore component issues (shown in "bit status" as "issues found"), issues to ignore:
68
77
  [${Object.keys(_componentIssues().IssuesClasses).join(', ')}]
69
- to ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify "*".`], ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'], ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag']]);
78
+ to ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify "*".`], ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)']]);
70
79
  (0, _defineProperty2().default)(this, "remoteOp", true);
71
80
  }
72
81
 
73
82
  // eslint-disable-next-line complexity
74
- async report([patterns = []], {
83
+ async report([data], {
75
84
  push,
76
85
  message = '',
77
86
  ver,
@@ -84,7 +93,6 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
84
93
  ignoreIssues,
85
94
  ignoreNewestVersion = false,
86
95
  skipTests = false,
87
- build,
88
96
  disableTagPipeline = false,
89
97
  forceDeploy = false,
90
98
  incrementBy = 1
@@ -92,9 +100,6 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
92
100
  if (ignoreIssues && typeof ignoreIssues === 'boolean') {
93
101
  throw new (_bitError().BitError)(`--ignore-issues expects issues to be ignored, please run "bit tag -h" for the issues list`);
94
102
  }
95
- if (!message) {
96
- throw new Error('message is mandatory');
97
- }
98
103
  if (prereleaseId && (!increment || increment === 'major' || increment === 'minor' || increment === 'patch')) {
99
104
  throw new (_bitError().BitError)(`--prerelease-id should be entered along with --increment flag, while --increment must be one of the following: [prepatch, prerelease, preminor, premajor]`);
100
105
  }
@@ -126,7 +131,6 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
126
131
  return undefined;
127
132
  };
128
133
  const params = {
129
- ids: patterns,
130
134
  push,
131
135
  message,
132
136
  releaseType: getReleaseType(),
@@ -134,13 +138,14 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
134
138
  ignoreIssues,
135
139
  ignoreNewestVersion,
136
140
  skipTests,
137
- build,
141
+ build: true,
138
142
  disableTagAndSnapPipelines: disableTagPipeline,
139
143
  forceDeploy,
140
144
  incrementBy,
141
145
  version: ver
142
146
  };
143
- const results = await this.snapping.tagFromScope(params);
147
+ const tagDataPerCompRaw = this.parseData(data);
148
+ const results = await this.snapping.tagFromScope(tagDataPerCompRaw, params);
144
149
  if (!results) return _chalk().default.yellow(_tag().NOTHING_TO_TAG_MSG);
145
150
  const {
146
151
  taggedComponents,
@@ -189,6 +194,21 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
189
194
  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') : '';
190
195
  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;
191
196
  }
197
+ parseData(data) {
198
+ let dataParsed;
199
+ try {
200
+ dataParsed = JSON.parse(data);
201
+ } catch (err) {
202
+ throw new Error(`failed parsing the data entered as JSON. err ${err.message}`);
203
+ }
204
+ if (!Array.isArray(dataParsed)) {
205
+ throw new Error('expect data to be an array');
206
+ }
207
+ dataParsed.forEach(dataItem => {
208
+ if (!dataItem.componentId) throw new Error('expect data item to have "componentId" prop');
209
+ });
210
+ return dataParsed;
211
+ }
192
212
  }
193
213
  exports.TagFromScopeCmd = TagFromScopeCmd;
194
214
 
@@ -1 +1 @@
1
- {"version":3,"names":["RELEASE_TYPES","TagFromScopeCmd","constructor","snapping","logger","join","Object","keys","IssuesClasses","report","patterns","push","message","ver","patch","minor","major","preRelease","increment","prereleaseId","ignoreIssues","ignoreNewestVersion","skipTests","build","disableTagPipeline","forceDeploy","incrementBy","BitError","Error","releaseFlags","filter","x","length","getReleaseType","includes","DEFAULT_BIT_RELEASE_TYPE","getPreReleaseId","undefined","params","ids","releaseType","preReleaseId","disableTagAndSnapPipelines","version","results","tagFromScope","chalk","yellow","NOTHING_TO_TAG_MSG","taggedComponents","autoTaggedResults","warnings","newComponents","changedComponents","component","searchWithoutVersion","id","addedComponents","autoTaggedCount","warningsOutput","tagExplanationPersist","tagExplanationSoft","tagExplanation","isSoftTag","outputComponents","comps","map","componentOutput","toString","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_TAGGED_MSG","publishOutput","publishedPackages","successTitle","green","successCompsStr","successOutput","softTagPrefix","outputIfExists","label","explanation","components","underline","newDesc","changedDesc","softTagClarification","bold"],"sources":["tag-from-scope.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { TagResults, NOTHING_TO_TAG_MSG, AUTO_TAGGED_MSG } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport { DEFAULT_BIT_RELEASE_TYPE } from '@teambit/legacy/dist/constants';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ReleaseType } from 'semver';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { 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 TagFromScopeCmd implements Command {\n name = '_tag <component-id...>';\n group = 'development';\n private = true;\n description = 'create an immutable and exportable component snapshot, tagged with a release version.';\n extendedDescription = `you can specify a version per id using \"@\" sign, e.g. bit tag foo@1.0.0 bar@minor baz@major`;\n helpUrl = 'components/tags';\n alias = '';\n loader = true;\n options = [\n ['', 'push', 'export the updated objects to the original scopes once done'],\n ['m', 'message <message>', 'a log message describing latest changes'],\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 ['', 'skip-tests', 'skip running component tests during tag process'],\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 ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'],\n ] as CommandOptions;\n remoteOp = true; // In case a compiler / tester is not installed\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n // eslint-disable-next-line complexity\n async report(\n [patterns = []]: [string[]],\n {\n push,\n message = '',\n ver,\n patch,\n minor,\n major,\n preRelease,\n increment,\n prereleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n build,\n disableTagPipeline = false,\n forceDeploy = false,\n incrementBy = 1,\n }: {\n push?: boolean;\n ver?: string;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n increment?: ReleaseType;\n preRelease?: string;\n prereleaseId?: string;\n ignoreIssues?: string;\n incrementBy?: number;\n disableTagPipeline?: boolean;\n } & Partial<BasicTagParams>\n ): Promise<string> {\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 (!message) {\n throw new Error('message is mandatory');\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 params = {\n ids: patterns,\n push,\n message,\n releaseType: getReleaseType(),\n preReleaseId: getPreReleaseId(),\n ignoreIssues,\n ignoreNewestVersion,\n skipTests,\n build,\n disableTagAndSnapPipelines: disableTagPipeline,\n forceDeploy,\n incrementBy,\n version: ver,\n };\n\n const results = await this.snapping.tagFromScope(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 outputComponents = (comps) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${component.id.toString()}`;\n const autoTag = autoTaggedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => a.component.id.toString());\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) => {\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","TagFromScopeCmd","constructor","snapping","logger","join","Object","keys","IssuesClasses","report","data","push","message","ver","patch","minor","major","preRelease","increment","prereleaseId","ignoreIssues","ignoreNewestVersion","skipTests","disableTagPipeline","forceDeploy","incrementBy","BitError","releaseFlags","filter","x","length","getReleaseType","includes","DEFAULT_BIT_RELEASE_TYPE","getPreReleaseId","undefined","params","releaseType","preReleaseId","build","disableTagAndSnapPipelines","version","tagDataPerCompRaw","parseData","results","tagFromScope","chalk","yellow","NOTHING_TO_TAG_MSG","taggedComponents","autoTaggedResults","warnings","newComponents","changedComponents","component","searchWithoutVersion","id","addedComponents","autoTaggedCount","warningsOutput","tagExplanationPersist","tagExplanationSoft","tagExplanation","isSoftTag","outputComponents","comps","map","componentOutput","toString","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_TAGGED_MSG","publishOutput","publishedPackages","successTitle","green","successCompsStr","successOutput","softTagPrefix","outputIfExists","label","explanation","components","underline","newDesc","changedDesc","softTagClarification","bold","dataParsed","JSON","parse","err","Error","Array","isArray","forEach","dataItem","componentId"],"sources":["tag-from-scope.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { TagResults, NOTHING_TO_TAG_MSG, AUTO_TAGGED_MSG } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport { DEFAULT_BIT_RELEASE_TYPE } from '@teambit/legacy/dist/constants';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { ReleaseType } from 'semver';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { SnappingMain } from './snapping.main.runtime';\nimport { BasicTagParams } from './tag-model-component';\n\nconst RELEASE_TYPES = ['major', 'premajor', 'minor', 'preminor', 'patch', 'prepatch', 'prerelease'];\n\nexport type TagDataPerCompRaw = {\n componentId: string;\n dependencies?: string[];\n versionToTag?: string;\n prereleaseId?: string;\n message?: string;\n};\n\nexport class TagFromScopeCmd implements Command {\n name = '_tag <data>';\n group = 'development';\n private = true;\n description = 'create an immutable and exportable component snapshot, tagged with a release version.';\n extendedDescription = `this command should be running from a new bare scope, it first imports the components it needs and then processes the tag.\nthe input data is a stringified JSON of an array of the following object.\n{\n componentId: string; // ids always have scope, so it's safe to parse them from string\n dependencies: string[]; // e.g. [teambit/compiler@1.0.0, teambit/tester@1.0.0]\n versionToTag?: string; // specific version (e.g. '1.0.0') or semver (e.g. 'minor', 'patch')\n prereleaseId?: string; // applicable when versionToTag is a pre-release. (e.g. \"dev\", for 1.0.0-dev.1)\n message?: string; // tag-message.\n}\nan example of the final data: '[{\"componentId\":\"ci.remote2/comp-b\",\"dependencies\":[\"ci.remote/comp1@0.0.2\"]}]'\n`;\n alias = '';\n loader = true;\n options = [\n ['', 'push', 'export the updated objects to the original scopes once done'],\n ['m', 'message <message>', 'a log message describing latest changes'],\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 ['', 'skip-tests', 'skip running component tests during tag process'],\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 ] as CommandOptions;\n remoteOp = true; // In case a compiler / tester is not installed\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n // eslint-disable-next-line complexity\n async report(\n [data]: [string],\n {\n push,\n message = '',\n ver,\n patch,\n minor,\n major,\n preRelease,\n increment,\n prereleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n disableTagPipeline = false,\n forceDeploy = false,\n incrementBy = 1,\n }: {\n push?: boolean;\n ver?: string;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n increment?: ReleaseType;\n preRelease?: string;\n prereleaseId?: string;\n ignoreIssues?: string;\n incrementBy?: number;\n disableTagPipeline?: boolean;\n } & Partial<BasicTagParams>\n ): Promise<string> {\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 (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 params = {\n push,\n message,\n releaseType: getReleaseType(),\n preReleaseId: getPreReleaseId(),\n ignoreIssues,\n ignoreNewestVersion,\n skipTests,\n build: true,\n disableTagAndSnapPipelines: disableTagPipeline,\n forceDeploy,\n incrementBy,\n version: ver,\n };\n\n const tagDataPerCompRaw = this.parseData(data);\n\n const results = await this.snapping.tagFromScope(tagDataPerCompRaw, 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 outputComponents = (comps) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${component.id.toString()}`;\n const autoTag = autoTaggedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => a.component.id.toString());\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) => {\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 private parseData(data: string): TagDataPerCompRaw[] {\n let dataParsed: unknown;\n try {\n dataParsed = JSON.parse(data);\n } catch (err: any) {\n throw new Error(`failed parsing the data entered as JSON. err ${err.message}`);\n }\n if (!Array.isArray(dataParsed)) {\n throw new Error('expect data to be an array');\n }\n dataParsed.forEach((dataItem) => {\n if (!dataItem.componentId) throw new Error('expect data item to have \"componentId\" prop');\n });\n return dataParsed;\n }\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { ModelComponent } from '@teambit/legacy/dist/scope/models';
7
7
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
8
8
  import { ScopeMain } from '@teambit/scope';
9
9
  import { Workspace } from '@teambit/workspace';
10
- import { SnappingMain } from './snapping.main.runtime';
10
+ import { SnappingMain, TagDataPerComp } from './snapping.main.runtime';
11
11
  export declare type onTagIdTransformer = (id: BitId) => BitId | null;
12
12
  export declare type BasicTagParams = {
13
13
  message: string;
@@ -23,13 +23,15 @@ export declare type BasicTagParams = {
23
23
  editor?: string;
24
24
  unmodified?: boolean;
25
25
  };
26
- export declare function tagModelComponent({ workspace, scope, snapping, builder, consumerComponents, ids, message, editor, exactVersion, releaseType, preReleaseId, ignoreNewestVersion, skipTests, skipAutoTag, soft, build, persist, isSnap, disableTagAndSnapPipelines, forceDeploy, incrementBy, packageManagerConfigRootDir, dependencyResolver, }: {
26
+ export declare function tagModelComponent({ workspace, scope, snapping, builder, consumerComponents, ids, tagDataPerComp, skipBuildPipeline, message, editor, exactVersion, releaseType, preReleaseId, ignoreNewestVersion, skipTests, skipAutoTag, soft, build, persist, isSnap, disableTagAndSnapPipelines, forceDeploy, incrementBy, packageManagerConfigRootDir, dependencyResolver, }: {
27
27
  workspace?: Workspace;
28
28
  scope: ScopeMain;
29
29
  snapping: SnappingMain;
30
30
  builder: BuilderMain;
31
31
  consumerComponents: Component[];
32
32
  ids: BitIds;
33
+ tagDataPerComp?: TagDataPerComp[];
34
+ skipBuildPipeline?: boolean;
33
35
  exactVersion?: string | null | undefined;
34
36
  releaseType?: ReleaseType;
35
37
  incrementBy?: number;
@@ -157,14 +157,19 @@ function setHashes(componentsToTag) {
157
157
  componentToTag.version = (0, _utils().sha1)((0, _uuid().v4)());
158
158
  });
159
159
  }
160
- async function setFutureVersions(componentsToTag, scope, releaseType, exactVersion, persist, autoTagIds, ids, incrementBy, preRelease, soft) {
160
+ async function setFutureVersions(componentsToTag, scope, releaseType, exactVersion, persist, autoTagIds, ids, incrementBy, preRelease, soft, tagDataPerComp) {
161
161
  await Promise.all(componentsToTag.map(async componentToTag => {
162
162
  var _componentToTag$compo, _componentToTag$compo2;
163
163
  const isAutoTag = autoTagIds.hasWithoutVersion(componentToTag.id);
164
164
  const modelComponent = await scope.sources.findOrAddComponent(componentToTag);
165
165
  const nextVersion = (_componentToTag$compo = componentToTag.componentMap) === null || _componentToTag$compo === void 0 ? void 0 : (_componentToTag$compo2 = _componentToTag$compo.nextVersion) === null || _componentToTag$compo2 === void 0 ? void 0 : _componentToTag$compo2.version;
166
166
  componentToTag.previouslyUsedVersion = componentToTag.version;
167
- if (nextVersion && persist) {
167
+ if (tagDataPerComp) {
168
+ const tagData = tagDataPerComp.find(t => t.componentId._legacy.isEqualWithoutVersion(componentToTag.id));
169
+ if (!tagData) throw new Error(`tag-data is missing for ${componentToTag.id.toStringWithoutVersion()}`);
170
+ const exactVersionOrReleaseType = (0, _semverHelper().getValidVersionOrReleaseType)(tagData.versionToTag);
171
+ componentToTag.version = modelComponent.getVersionToAdd(exactVersionOrReleaseType.releaseType, exactVersionOrReleaseType.exactVersion, undefined, tagData.prereleaseId);
172
+ } else if (nextVersion && persist) {
168
173
  var _componentToTag$compo3, _componentToTag$compo4;
169
174
  const exactVersionOrReleaseType = (0, _semverHelper().getValidVersionOrReleaseType)(nextVersion);
170
175
  componentToTag.version = modelComponent.getVersionToAdd(exactVersionOrReleaseType.releaseType, exactVersionOrReleaseType.exactVersion, undefined, (_componentToTag$compo3 = componentToTag.componentMap) === null || _componentToTag$compo3 === void 0 ? void 0 : (_componentToTag$compo4 = _componentToTag$compo3.nextVersion) === null || _componentToTag$compo4 === void 0 ? void 0 : _componentToTag$compo4.preRelease);
@@ -192,6 +197,8 @@ async function tagModelComponent({
192
197
  builder,
193
198
  consumerComponents,
194
199
  ids,
200
+ tagDataPerComp,
201
+ skipBuildPipeline = false,
195
202
  message,
196
203
  editor,
197
204
  exactVersion,
@@ -231,7 +238,15 @@ async function tagModelComponent({
231
238
  const autoTagIds = _bitId().BitIds.fromArray(autoTagComponentsFiltered.map(autoTag => autoTag.id));
232
239
  const allComponentsToTag = [...componentsToTag, ...autoTagComponentsFiltered];
233
240
  const messagesFromEditorFetcher = new (_messagePerComponent().MessagePerComponentFetcher)(idsToTag, autoTagIds);
234
- const messagePerId = editor ? await messagesFromEditorFetcher.getMessagesFromEditor(legacyScope.tmp, editor) : [];
241
+ const getMessagePerId = async () => {
242
+ if (editor) return messagesFromEditorFetcher.getMessagesFromEditor(legacyScope.tmp, editor);
243
+ if (tagDataPerComp) return tagDataPerComp.map(t => ({
244
+ id: t.componentId._legacy,
245
+ msg: t.message || message
246
+ }));
247
+ return [];
248
+ };
249
+ const messagePerId = await getMessagePerId();
235
250
 
236
251
  // check for each one of the components whether it is using an old version
237
252
  if (!ignoreNewestVersion && !isSnap) {
@@ -261,7 +276,7 @@ async function tagModelComponent({
261
276
  }
262
277
  _logger().default.debugAndAddBreadCrumb('tag-model-components', 'sequentially persist all components');
263
278
  // go through all components and find the future versions for them
264
- isSnap ? setHashes(allComponentsToTag) : await setFutureVersions(allComponentsToTag, legacyScope, releaseType, exactVersion, persist, autoTagIds, ids, incrementBy, preReleaseId, soft);
279
+ isSnap ? setHashes(allComponentsToTag) : await setFutureVersions(allComponentsToTag, legacyScope, releaseType, exactVersion, persist, autoTagIds, ids, incrementBy, preReleaseId, soft, tagDataPerComp);
265
280
  setCurrentSchema(allComponentsToTag);
266
281
  // go through all dependencies and update their versions
267
282
  updateDependenciesVersions(allComponentsToTag, dependencyResolver);
@@ -283,7 +298,9 @@ async function tagModelComponent({
283
298
  throwOnError: true,
284
299
  forceDeploy,
285
300
  skipTests,
286
- isSnap
301
+ isSnap,
302
+ skipBuildPipeline,
303
+ combineBuildDataFromParent: skipBuildPipeline
287
304
  };
288
305
  const seedersOnly = !workspace; // if tag from scope, build only the given components
289
306
  const isolateOptions = {
@@ -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","sha1","v4","setFutureVersions","scope","releaseType","exactVersion","persist","autoTagIds","ids","incrementBy","preRelease","soft","Promise","all","map","isAutoTag","hasWithoutVersion","modelComponent","sources","findOrAddComponent","nextVersion","componentMap","previouslyUsedVersion","exactVersionOrReleaseType","getValidVersionOrReleaseType","getVersionToAdd","undefined","versionByEnteredId","getVersionByEnteredId","enteredIds","enteredId","searchWithoutVersion","hasVersion","tagModelComponent","workspace","snapping","builder","consumerComponents","message","editor","preReleaseId","ignoreNewestVersion","skipTests","skipAutoTag","build","isSnap","disableTagAndSnapPipelines","forceDeploy","packageManagerConfigRootDir","consumer","legacyScope","consumerComponentsIdsMap","consumerComponent","componentIdString","toString","R","values","idsToTag","BitIds","fromArray","c","idsToTriggerAutoTag","filter","autoTagData","getAutoTagInfo","autoTagComponents","autoTagItem","autoTagComponentsFiltered","has","autoTag","allComponentsToTag","messagesFromEditorFetcher","MessagePerComponentFetcher","messagePerId","getMessagesFromEditor","tmp","newestVersionsP","componentFromModel","getModelComponentIfExist","ShowDoctorError","listVersions","length","latest","componentId","toStringWithoutVersion","currentVersion","latestVersion","newestVersions","newestVersionsWithoutEmpty","newest","isEmpty","NewerVersionFound","logger","debugAndAddBreadCrumb","setCurrentSchema","addLogToComponents","Error","updateNextVersionOnBitmap","_addFlattenedDependenciesToComponents","emptyBuilderData","addBuildStatus","BuildStatus","Pending","addComponentsToScope","Boolean","updateComponentsVersions","publishedPackages","onTagOpts","throwOnError","seedersOnly","isolateOptions","reloadAspectsWithNewVersion","harmonyComps","getManyByLegacy","builderDataMap","tagListener","buildResult","builderDataMapToLegacyOnTagResults","_updateComponentsByTagResult","push","_getPublishedPackages","Succeed","mapSeries","_enrichComp","removeDeletedComponentsFromBitmap","objects","taggedComponents","autoTaggedResults","comps","comp","removed","compId","resolveComponentId","bitMap","removeComponent","components","shouldValidateVersion","lane","getCurrentLaneObject","_addCompToObjects","source","_addCompFromScopeToObjects","existingBuilder","findCoreExtension","Extensions","data","autoTagComps","messagePerComponent","username","globalConfig","get","CFG_USER_NAME_KEY","bitCloudUsername","getBitCloudUsername","email","CFG_USER_EMAIL_KEY","getLog","msgFromEditor","item","msg","date","Date","now","log","autoTagComp","defaultMsg","token","CFG_USER_TOKEN_KEY","res","fetch","BASE_CLOUD_DOMAIN","headers","Authorization","object","json","user","payload","error","schema","CURRENT_SCHEMA","buildStatus","isTag","currentLane","getCurrentLaneId","stagedConfig","getStagedConfig","isAvailableOnMain","isDefault","ModelComponent","getModelComponent","hasHead","updateVersions","unknownComponent","toBitIdWithLatestVersionAllowNull","updateComponentId","availableOnMain","setComponentProp","getComponent","config","addComponentConfig","removeConfig","getConfigPerId","clearNextVersion","write"],"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 BASE_CLOUD_DOMAIN,\n Extensions,\n} from '@teambit/legacy/dist/constants';\nimport { CURRENT_SCHEMA } from '@teambit/legacy/dist/consumer/component/component-schema';\nimport Component 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 logger from '@teambit/legacy/dist/logger/logger';\nimport { sha1 } from '@teambit/legacy/dist/utils';\nimport { AutoTagResult, getAutoTagInfo } from '@teambit/legacy/dist/scope/component-ops/auto-tag';\nimport { getValidVersionOrReleaseType } from '@teambit/legacy/dist/utils/semver-helper';\nimport { BuilderMain } 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 } from '@teambit/scope';\nimport { Workspace } from '@teambit/workspace';\nimport { SnappingMain } 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(componentsToTag: Component[], dependencyResolver: DependencyResolverMain): 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: Component): 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: Component[]): void {\n componentsToTag.forEach((componentToTag) => {\n componentToTag.version = sha1(v4());\n });\n}\n\nasync function setFutureVersions(\n componentsToTag: Component[],\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 preRelease?: string,\n soft?: boolean\n): Promise<void> {\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 componentToTag.previouslyUsedVersion = componentToTag.version;\n if (nextVersion && persist) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(nextVersion);\n componentToTag.version = modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n componentToTag.componentMap?.nextVersion?.preRelease\n );\n } else if (isAutoTag) {\n // auto-tag always bumped as patch\n componentToTag.version = soft\n ? 'patch'\n : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preRelease);\n } else {\n const versionByEnteredId = getVersionByEnteredId(ids, componentToTag, modelComponent);\n componentToTag.version = soft\n ? versionByEnteredId || exactVersion || releaseType\n : versionByEnteredId || modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preRelease);\n }\n })\n );\n}\n\nfunction getVersionByEnteredId(\n enteredIds: BitIds,\n component: Component,\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 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}: {\n workspace?: Workspace;\n scope: ScopeMain;\n snapping: SnappingMain;\n builder: BuilderMain;\n consumerComponents: Component[];\n ids: BitIds;\n exactVersion?: string | null | undefined;\n releaseType?: ReleaseType;\n incrementBy?: number;\n isSnap?: boolean;\n packageManagerConfigRootDir?: string;\n dependencyResolver: DependencyResolverMain;\n} & BasicTagParams): Promise<{\n taggedComponents: Component[];\n autoTaggedResults: AutoTagResult[];\n publishedPackages: string[];\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: Component[] = 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 messagePerId = editor ? await messagesFromEditorFetcher.getMessagesFromEditor(legacyScope.tmp, editor) : [];\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.latest();\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 );\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);\n\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(legacyScope, allComponentsToTag);\n emptyBuilderData(allComponentsToTag);\n addBuildStatus(allComponentsToTag, BuildStatus.Pending);\n await addComponentsToScope(legacyScope, snapping, allComponentsToTag, Boolean(build), consumer);\n if (workspace) await updateComponentsVersions(workspace, allComponentsToTag);\n }\n\n const publishedPackages: string[] = [];\n if (build) {\n const onTagOpts = { disableTagAndSnapPipelines, throwOnError: true, forceDeploy, skipTests, isSnap };\n const seedersOnly = !workspace; // if tag from scope, build only the given components\n const isolateOptions = { packageManagerConfigRootDir, seedersOnly };\n\n await scope.reloadAspectsWithNewVersion(allComponentsToTag);\n const harmonyComps = await (workspace || scope).getManyByLegacy(allComponentsToTag);\n const { builderDataMap } = await builder.tagListener(harmonyComps, onTagOpts, isolateOptions);\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 }\n\n return { taggedComponents: componentsToTag, autoTaggedResults: autoTagData, publishedPackages };\n}\n\nasync function removeDeletedComponentsFromBitmap(comps: Component[], 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 addComponentsToScope(\n scope: Scope,\n snapping: SnappingMain,\n components: Component[],\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: Component[]) {\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: Component[],\n autoTagComps: Component[],\n persist: boolean,\n message: string,\n messagePerComponent: MessagePerComponent[]\n) {\n const username = await globalConfig.get(CFG_USER_NAME_KEY);\n const bitCloudUsername = await getBitCloudUsername();\n const email = await globalConfig.get(CFG_USER_EMAIL_KEY);\n const getLog = (component: Component): Log => {\n const nextVersion = persist ? component.componentMap?.nextVersion : null;\n const msgFromEditor = messagePerComponent.find((item) => item.id.isEqualWithoutVersion(component.id))?.msg;\n return {\n username: nextVersion?.username || bitCloudUsername || username,\n email: nextVersion?.email || email,\n message: nextVersion?.message || msgFromEditor || message,\n date: Date.now().toString(),\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\nasync 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.${BASE_CLOUD_DOMAIN}/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\nfunction setCurrentSchema(components: Component[]) {\n components.forEach((component) => {\n component.schema = CURRENT_SCHEMA;\n });\n}\n\nfunction addBuildStatus(components: Component[], buildStatus: BuildStatus) {\n components.forEach((component) => {\n component.buildStatus = buildStatus;\n });\n}\n\nexport async function updateComponentsVersions(\n workspace: Workspace,\n components: Array<ModelComponent | Component>,\n isTag = true\n): Promise<any> {\n const consumer = workspace.consumer;\n const currentLane = consumer.getCurrentLaneId();\n const stagedConfig = await workspace.scope.getStagedConfig();\n const isAvailableOnMain = async (component: ModelComponent | Component, 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 (unknownComponent: ModelComponent | Component) => {\n const id: BitId =\n unknownComponent instanceof ModelComponent\n ? unknownComponent.toBitIdWithLatestVersionAllowNull()\n : unknownComponent.id;\n consumer.bitMap.updateComponentId(id);\n const availableOnMain = await isAvailableOnMain(unknownComponent, 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 } 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 stagedConfig.write();\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","sha1","v4","setFutureVersions","scope","releaseType","exactVersion","persist","autoTagIds","ids","incrementBy","preRelease","soft","tagDataPerComp","Promise","all","map","isAutoTag","hasWithoutVersion","modelComponent","sources","findOrAddComponent","nextVersion","componentMap","previouslyUsedVersion","tagData","t","componentId","_legacy","Error","toStringWithoutVersion","exactVersionOrReleaseType","getValidVersionOrReleaseType","versionToTag","getVersionToAdd","undefined","prereleaseId","versionByEnteredId","getVersionByEnteredId","enteredIds","enteredId","searchWithoutVersion","hasVersion","tagModelComponent","workspace","snapping","builder","consumerComponents","skipBuildPipeline","message","editor","preReleaseId","ignoreNewestVersion","skipTests","skipAutoTag","build","isSnap","disableTagAndSnapPipelines","forceDeploy","packageManagerConfigRootDir","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","currentVersion","latestVersion","newestVersions","newestVersionsWithoutEmpty","newest","isEmpty","NewerVersionFound","logger","debugAndAddBreadCrumb","setCurrentSchema","addLogToComponents","updateNextVersionOnBitmap","_addFlattenedDependenciesToComponents","emptyBuilderData","addBuildStatus","BuildStatus","Pending","addComponentsToScope","Boolean","updateComponentsVersions","publishedPackages","onTagOpts","throwOnError","combineBuildDataFromParent","seedersOnly","isolateOptions","reloadAspectsWithNewVersion","harmonyComps","getManyByLegacy","builderDataMap","tagListener","buildResult","builderDataMapToLegacyOnTagResults","_updateComponentsByTagResult","push","_getPublishedPackages","Succeed","mapSeries","_enrichComp","removeDeletedComponentsFromBitmap","objects","taggedComponents","autoTaggedResults","comps","comp","removed","compId","resolveComponentId","bitMap","removeComponent","components","shouldValidateVersion","lane","getCurrentLaneObject","_addCompToObjects","source","_addCompFromScopeToObjects","existingBuilder","findCoreExtension","Extensions","data","autoTagComps","messagePerComponent","username","globalConfig","get","CFG_USER_NAME_KEY","bitCloudUsername","getBitCloudUsername","email","CFG_USER_EMAIL_KEY","getLog","msgFromEditor","item","date","Date","now","log","autoTagComp","defaultMsg","token","CFG_USER_TOKEN_KEY","res","fetch","BASE_CLOUD_DOMAIN","headers","Authorization","object","json","user","payload","error","schema","CURRENT_SCHEMA","buildStatus","isTag","currentLane","getCurrentLaneId","stagedConfig","getStagedConfig","isAvailableOnMain","isDefault","ModelComponent","getModelComponent","hasHead","updateVersions","unknownComponent","toBitIdWithLatestVersionAllowNull","updateComponentId","availableOnMain","setComponentProp","getComponent","config","addComponentConfig","removeConfig","getConfigPerId","clearNextVersion","write"],"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 BASE_CLOUD_DOMAIN,\n Extensions,\n} from '@teambit/legacy/dist/constants';\nimport { CURRENT_SCHEMA } from '@teambit/legacy/dist/consumer/component/component-schema';\nimport Component 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 logger from '@teambit/legacy/dist/logger/logger';\nimport { sha1 } from '@teambit/legacy/dist/utils';\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 } 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(componentsToTag: Component[], dependencyResolver: DependencyResolverMain): 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: Component): 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: Component[]): void {\n componentsToTag.forEach((componentToTag) => {\n componentToTag.version = sha1(v4());\n });\n}\n\nasync function setFutureVersions(\n componentsToTag: Component[],\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 preRelease?: string,\n soft?: boolean,\n tagDataPerComp?: TagDataPerComp[]\n): Promise<void> {\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 componentToTag.previouslyUsedVersion = componentToTag.version;\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 const exactVersionOrReleaseType = getValidVersionOrReleaseType(tagData.versionToTag);\n componentToTag.version = modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n tagData.prereleaseId\n );\n } else if (nextVersion && persist) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(nextVersion);\n componentToTag.version = modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n componentToTag.componentMap?.nextVersion?.preRelease\n );\n } else if (isAutoTag) {\n // auto-tag always bumped as patch\n componentToTag.version = soft\n ? 'patch'\n : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preRelease);\n } else {\n const versionByEnteredId = getVersionByEnteredId(ids, componentToTag, modelComponent);\n componentToTag.version = soft\n ? versionByEnteredId || exactVersion || releaseType\n : versionByEnteredId || modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preRelease);\n }\n })\n );\n}\n\nfunction getVersionByEnteredId(\n enteredIds: BitIds,\n component: Component,\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}: {\n workspace?: Workspace;\n scope: ScopeMain;\n snapping: SnappingMain;\n builder: BuilderMain;\n consumerComponents: Component[];\n ids: BitIds;\n tagDataPerComp?: TagDataPerComp[];\n skipBuildPipeline?: boolean;\n exactVersion?: string | null | undefined;\n releaseType?: ReleaseType;\n incrementBy?: number;\n isSnap?: boolean;\n packageManagerConfigRootDir?: string;\n dependencyResolver: DependencyResolverMain;\n} & BasicTagParams): Promise<{\n taggedComponents: Component[];\n autoTaggedResults: AutoTagResult[];\n publishedPackages: string[];\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: Component[] = 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.latest();\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);\n\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(legacyScope, allComponentsToTag);\n emptyBuilderData(allComponentsToTag);\n addBuildStatus(allComponentsToTag, BuildStatus.Pending);\n await addComponentsToScope(legacyScope, snapping, allComponentsToTag, Boolean(build), consumer);\n if (workspace) await updateComponentsVersions(workspace, allComponentsToTag);\n }\n\n const publishedPackages: string[] = [];\n if (build) {\n const onTagOpts: OnTagOpts = {\n disableTagAndSnapPipelines,\n throwOnError: true,\n forceDeploy,\n skipTests,\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\n await scope.reloadAspectsWithNewVersion(allComponentsToTag);\n const harmonyComps = await (workspace || scope).getManyByLegacy(allComponentsToTag);\n const { builderDataMap } = await builder.tagListener(harmonyComps, onTagOpts, isolateOptions);\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 }\n\n return { taggedComponents: componentsToTag, autoTaggedResults: autoTagData, publishedPackages };\n}\n\nasync function removeDeletedComponentsFromBitmap(comps: Component[], 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 addComponentsToScope(\n scope: Scope,\n snapping: SnappingMain,\n components: Component[],\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: Component[]) {\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: Component[],\n autoTagComps: Component[],\n persist: boolean,\n message: string,\n messagePerComponent: MessagePerComponent[]\n) {\n const username = await globalConfig.get(CFG_USER_NAME_KEY);\n const bitCloudUsername = await getBitCloudUsername();\n const email = await globalConfig.get(CFG_USER_EMAIL_KEY);\n const getLog = (component: Component): Log => {\n const nextVersion = persist ? component.componentMap?.nextVersion : null;\n const msgFromEditor = messagePerComponent.find((item) => item.id.isEqualWithoutVersion(component.id))?.msg;\n return {\n username: nextVersion?.username || bitCloudUsername || username,\n email: nextVersion?.email || email,\n message: nextVersion?.message || msgFromEditor || message,\n date: Date.now().toString(),\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\nasync 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.${BASE_CLOUD_DOMAIN}/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\nfunction setCurrentSchema(components: Component[]) {\n components.forEach((component) => {\n component.schema = CURRENT_SCHEMA;\n });\n}\n\nfunction addBuildStatus(components: Component[], buildStatus: BuildStatus) {\n components.forEach((component) => {\n component.buildStatus = buildStatus;\n });\n}\n\nexport async function updateComponentsVersions(\n workspace: Workspace,\n components: Array<ModelComponent | Component>,\n isTag = true\n): Promise<any> {\n const consumer = workspace.consumer;\n const currentLane = consumer.getCurrentLaneId();\n const stagedConfig = await workspace.scope.getStagedConfig();\n const isAvailableOnMain = async (component: ModelComponent | Component, 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 (unknownComponent: ModelComponent | Component) => {\n const id: BitId =\n unknownComponent instanceof ModelComponent\n ? unknownComponent.toBitIdWithLatestVersionAllowNull()\n : unknownComponent.id;\n consumer.bitMap.updateComponentId(id);\n const availableOnMain = await isAvailableOnMain(unknownComponent, 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 } 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 stagedConfig.write();\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.200",
3
+ "version": "0.0.202",
4
4
  "homepage": "https://bit.dev/teambit/component/snapping",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "snapping",
9
- "version": "0.0.200"
9
+ "version": "0.0.202"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -17,21 +17,23 @@
17
17
  "semver": "7.3.4",
18
18
  "node-fetch": "2.6.7",
19
19
  "uuid": "8.3.2",
20
- "@babel/runtime": "7.12.18",
20
+ "@babel/runtime": "7.20.0",
21
21
  "core-js": "^3.0.0",
22
22
  "@teambit/harmony": "0.3.3",
23
- "@teambit/bit-error": "0.0.400",
24
- "@teambit/issues": "0.0.193",
25
- "@teambit/cli": "0.0.593",
26
- "@teambit/component-issues": "0.0.73",
27
- "@teambit/logger": "0.0.686",
28
- "@teambit/builder": "0.0.885",
29
- "@teambit/community": "0.0.141",
30
- "@teambit/dependency-resolver": "0.0.885",
31
- "@teambit/export": "0.0.885",
32
- "@teambit/insights": "0.0.885",
33
- "@teambit/scope": "0.0.885",
34
- "@teambit/workspace": "0.0.885"
23
+ "@teambit/bit-error": "0.0.401",
24
+ "@teambit/issues": "0.0.195",
25
+ "@teambit/cli": "0.0.595",
26
+ "@teambit/component-issues": "0.0.74",
27
+ "@teambit/logger": "0.0.688",
28
+ "@teambit/builder": "0.0.887",
29
+ "@teambit/community": "0.0.143",
30
+ "@teambit/component-id": "0.0.419",
31
+ "@teambit/component": "0.0.887",
32
+ "@teambit/dependency-resolver": "0.0.887",
33
+ "@teambit/export": "0.0.887",
34
+ "@teambit/insights": "0.0.887",
35
+ "@teambit/scope": "0.0.887",
36
+ "@teambit/workspace": "0.0.887"
35
37
  },
36
38
  "devDependencies": {
37
39
  "@types/lodash": "4.14.165",
@@ -46,13 +48,13 @@
46
48
  "@types/react-dom": "^17.0.5",
47
49
  "@types/react": "^17.0.8",
48
50
  "@types/node": "12.20.4",
49
- "@teambit/compiler": "0.0.885",
50
- "@teambit/component.testing.mock-components": "0.0.15",
51
- "@teambit/harmony.testing.load-aspect": "0.0.14",
52
- "@teambit/workspace.testing.mock-workspace": "0.0.13"
51
+ "@teambit/compiler": "0.0.887",
52
+ "@teambit/component.testing.mock-components": "0.0.16",
53
+ "@teambit/harmony.testing.load-aspect": "0.0.15",
54
+ "@teambit/workspace.testing.mock-workspace": "0.0.14"
53
55
  },
54
56
  "peerDependencies": {
55
- "@teambit/legacy": "1.0.376",
57
+ "@teambit/legacy": "1.0.379",
56
58
  "react-dom": "^16.8.0 || ^17.0.0",
57
59
  "react": "^16.8.0 || ^17.0.0"
58
60
  },