@teambit/snapping 0.0.177 → 0.0.178
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/snapping.main.runtime.d.ts +22 -11
- package/dist/snapping.main.runtime.js +105 -13
- package/dist/snapping.main.runtime.js.map +1 -1
- package/dist/tag-cmd.d.ts +1 -1
- package/dist/tag-cmd.js.map +1 -1
- package/dist/tag-from-scope.cmd.d.ts +33 -0
- package/dist/tag-from-scope.cmd.js +237 -0
- package/dist/tag-from-scope.cmd.js.map +1 -0
- package/dist/tag-model-component.d.ts +20 -3
- package/dist/tag-model-component.js +47 -23
- package/dist/tag-model-component.js.map +1 -1
- package/package-tar/teambit-snapping-0.0.178.tgz +0 -0
- package/package.json +14 -11
- /package/{preview-1663904275528.js → preview-1663990632780.js} +0 -0
- package/package-tar/teambit-snapping-0.0.177.tgz +0 -0
|
@@ -5,21 +5,28 @@ import { CommunityMain } from '@teambit/community';
|
|
|
5
5
|
import { Workspace } from '@teambit/workspace';
|
|
6
6
|
import { ReleaseType } from 'semver';
|
|
7
7
|
import { BitIds } from '@teambit/legacy/dist/bit-id';
|
|
8
|
-
import { TagResults
|
|
8
|
+
import { TagResults } from '@teambit/legacy/dist/api/consumer/lib/tag';
|
|
9
9
|
import { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';
|
|
10
10
|
import { Logger, LoggerMain } from '@teambit/logger';
|
|
11
11
|
import ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';
|
|
12
12
|
import { InsightsMain } from '@teambit/insights';
|
|
13
13
|
import { untagResult } from '@teambit/legacy/dist/scope/component-ops/untag-component';
|
|
14
|
+
import { ScopeMain } from '@teambit/scope';
|
|
14
15
|
import { IssuesMain } from '@teambit/issues';
|
|
15
16
|
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
17
|
+
import { BuilderMain } from '@teambit/builder';
|
|
18
|
+
import { ExportMain } from '@teambit/export';
|
|
19
|
+
import { BasicTagParams } from './tag-model-component';
|
|
16
20
|
export declare class SnappingMain {
|
|
17
21
|
private workspace;
|
|
18
22
|
private logger;
|
|
19
23
|
private issues;
|
|
20
24
|
private insights;
|
|
21
25
|
private dependencyResolver;
|
|
22
|
-
|
|
26
|
+
private scope;
|
|
27
|
+
private exporter;
|
|
28
|
+
private builder;
|
|
29
|
+
constructor(workspace: Workspace, logger: Logger, issues: IssuesMain, insights: InsightsMain, dependencyResolver: DependencyResolverMain, scope: ScopeMain, exporter: ExportMain, builder: BuilderMain);
|
|
23
30
|
/**
|
|
24
31
|
* tag the given component ids or all modified/new components if "all" param is set.
|
|
25
32
|
* tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias
|
|
@@ -37,6 +44,14 @@ export declare class SnappingMain {
|
|
|
37
44
|
scope?: string | boolean;
|
|
38
45
|
incrementBy?: number;
|
|
39
46
|
} & Partial<BasicTagParams>): Promise<TagResults | null>;
|
|
47
|
+
tagFromScope(params: {
|
|
48
|
+
ids: string[];
|
|
49
|
+
push?: boolean;
|
|
50
|
+
version?: string;
|
|
51
|
+
releaseType?: ReleaseType;
|
|
52
|
+
ignoreIssues?: string;
|
|
53
|
+
incrementBy?: number;
|
|
54
|
+
} & Partial<BasicTagParams>): Promise<TagResults | null>;
|
|
40
55
|
/**
|
|
41
56
|
* save the local changes of a component(s) into the scope. snap can be done on main or on a lane.
|
|
42
57
|
* once a component is snapped on a lane, it becomes part of it.
|
|
@@ -64,13 +79,6 @@ export declare class SnappingMain {
|
|
|
64
79
|
isSoftUntag: boolean;
|
|
65
80
|
}>;
|
|
66
81
|
_addFlattenedDependenciesToComponents(scope: LegacyScope, components: ConsumerComponent[]): Promise<void>;
|
|
67
|
-
/**
|
|
68
|
-
* @todo: currently, there is only one function registered to the OnTag, which is the builder.
|
|
69
|
-
* we set the extensions data and artifacts we got from the builder to the consumer-components.
|
|
70
|
-
* however, if there is more than one function registered to the OnTag, the data will be overridden
|
|
71
|
-
* by the last called function. when/if this happen, some kind of merge need to be done between the
|
|
72
|
-
* results.
|
|
73
|
-
*/
|
|
74
82
|
_updateComponentsByTagResult(components: ConsumerComponent[], tagResult: LegacyOnTagResult[]): void;
|
|
75
83
|
_getPublishedPackages(components: ConsumerComponent[]): string[];
|
|
76
84
|
private loadComponentsForTag;
|
|
@@ -81,14 +89,17 @@ export declare class SnappingMain {
|
|
|
81
89
|
static slots: never[];
|
|
82
90
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
83
91
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
84
|
-
static provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver]: [
|
|
92
|
+
static provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver, scope, exporter, builder,]: [
|
|
85
93
|
Workspace,
|
|
86
94
|
CLIMain,
|
|
87
95
|
CommunityMain,
|
|
88
96
|
LoggerMain,
|
|
89
97
|
IssuesMain,
|
|
90
98
|
InsightsMain,
|
|
91
|
-
DependencyResolverMain
|
|
99
|
+
DependencyResolverMain,
|
|
100
|
+
ScopeMain,
|
|
101
|
+
ExportMain,
|
|
102
|
+
BuilderMain
|
|
92
103
|
]): Promise<SnappingMain>;
|
|
93
104
|
}
|
|
94
105
|
export default SnappingMain;
|
|
@@ -289,6 +289,16 @@ function _untagComponent() {
|
|
|
289
289
|
return data;
|
|
290
290
|
}
|
|
291
291
|
|
|
292
|
+
function _scope() {
|
|
293
|
+
const data = require("@teambit/scope");
|
|
294
|
+
|
|
295
|
+
_scope = function () {
|
|
296
|
+
return data;
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
return data;
|
|
300
|
+
}
|
|
301
|
+
|
|
292
302
|
function _issues() {
|
|
293
303
|
const data = _interopRequireDefault(require("@teambit/issues"));
|
|
294
304
|
|
|
@@ -309,6 +319,26 @@ function _dependencyResolver() {
|
|
|
309
319
|
return data;
|
|
310
320
|
}
|
|
311
321
|
|
|
322
|
+
function _builder() {
|
|
323
|
+
const data = require("@teambit/builder");
|
|
324
|
+
|
|
325
|
+
_builder = function () {
|
|
326
|
+
return data;
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
return data;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
function _export() {
|
|
333
|
+
const data = require("@teambit/export");
|
|
334
|
+
|
|
335
|
+
_export = function () {
|
|
336
|
+
return data;
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
return data;
|
|
340
|
+
}
|
|
341
|
+
|
|
312
342
|
function _snapCmd() {
|
|
313
343
|
const data = require("./snap-cmd");
|
|
314
344
|
|
|
@@ -369,15 +399,32 @@ function _tagModelComponent() {
|
|
|
369
399
|
return data;
|
|
370
400
|
}
|
|
371
401
|
|
|
402
|
+
function _tagFromScope() {
|
|
403
|
+
const data = require("./tag-from-scope.cmd");
|
|
404
|
+
|
|
405
|
+
_tagFromScope = function () {
|
|
406
|
+
return data;
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
return data;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
413
|
+
|
|
414
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
415
|
+
|
|
372
416
|
const HooksManagerInstance = _hooks().default.getInstance();
|
|
373
417
|
|
|
374
418
|
class SnappingMain {
|
|
375
|
-
constructor(workspace, logger, issues, insights, dependencyResolver) {
|
|
419
|
+
constructor(workspace, logger, issues, insights, dependencyResolver, scope, exporter, builder) {
|
|
376
420
|
this.workspace = workspace;
|
|
377
421
|
this.logger = logger;
|
|
378
422
|
this.issues = issues;
|
|
379
423
|
this.insights = insights;
|
|
380
424
|
this.dependencyResolver = dependencyResolver;
|
|
425
|
+
this.scope = scope;
|
|
426
|
+
this.exporter = exporter;
|
|
427
|
+
this.builder = builder;
|
|
381
428
|
}
|
|
382
429
|
/**
|
|
383
430
|
* tag the given component ids or all modified/new components if "all" param is set.
|
|
@@ -461,7 +508,9 @@ class SnappingMain {
|
|
|
461
508
|
publishedPackages
|
|
462
509
|
} = await (0, _tagModelComponent().tagModelComponent)({
|
|
463
510
|
workspace: this.workspace,
|
|
511
|
+
scope: this.scope,
|
|
464
512
|
snapping: this,
|
|
513
|
+
builder: this.builder,
|
|
465
514
|
consumerComponents: components,
|
|
466
515
|
ids: legacyBitIds,
|
|
467
516
|
message,
|
|
@@ -501,6 +550,54 @@ class SnappingMain {
|
|
|
501
550
|
|
|
502
551
|
return tagResults;
|
|
503
552
|
}
|
|
553
|
+
|
|
554
|
+
async tagFromScope(params) {
|
|
555
|
+
if (this.workspace) {
|
|
556
|
+
throw new (_bitError().BitError)(`unable to run this command from a workspace, please create a new bare-scope and run it from there`);
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
const componentIds = await this.scope.resolveMultipleComponentIds(params.ids);
|
|
560
|
+
const componentIdsLatest = componentIds.map(id => id.changeVersion(_constants().LATEST));
|
|
561
|
+
const components = await this.scope.import(componentIdsLatest);
|
|
562
|
+
const consumerComponents = components.map(c => c.state._consumer);
|
|
563
|
+
|
|
564
|
+
const legacyIds = _bitId().BitIds.fromArray(componentIds.map(id => id._legacy));
|
|
565
|
+
|
|
566
|
+
const results = await (0, _tagModelComponent().tagModelComponent)(_objectSpread(_objectSpread({}, params), {}, {
|
|
567
|
+
scope: this.scope,
|
|
568
|
+
consumerComponents,
|
|
569
|
+
snapping: this,
|
|
570
|
+
builder: this.builder,
|
|
571
|
+
dependencyResolver: this.dependencyResolver,
|
|
572
|
+
skipAutoTag: false,
|
|
573
|
+
persist: true,
|
|
574
|
+
ids: legacyIds,
|
|
575
|
+
message: params.message
|
|
576
|
+
}));
|
|
577
|
+
const {
|
|
578
|
+
taggedComponents,
|
|
579
|
+
autoTaggedResults,
|
|
580
|
+
publishedPackages
|
|
581
|
+
} = results;
|
|
582
|
+
|
|
583
|
+
if (params.push) {
|
|
584
|
+
await this.exporter.exportMany({
|
|
585
|
+
scope: this.scope.legacyScope,
|
|
586
|
+
ids: legacyIds,
|
|
587
|
+
idsWithFutureScope: legacyIds,
|
|
588
|
+
allVersions: false
|
|
589
|
+
});
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
return {
|
|
593
|
+
taggedComponents,
|
|
594
|
+
autoTaggedResults,
|
|
595
|
+
isSoftTag: false,
|
|
596
|
+
publishedPackages,
|
|
597
|
+
warnings: [],
|
|
598
|
+
newComponents: new (_bitId().BitIds)()
|
|
599
|
+
};
|
|
600
|
+
}
|
|
504
601
|
/**
|
|
505
602
|
* save the local changes of a component(s) into the scope. snap can be done on main or on a lane.
|
|
506
603
|
* once a component is snapped on a lane, it becomes part of it.
|
|
@@ -539,7 +636,9 @@ class SnappingMain {
|
|
|
539
636
|
autoTaggedResults
|
|
540
637
|
} = await (0, _tagModelComponent().tagModelComponent)({
|
|
541
638
|
workspace: this.workspace,
|
|
639
|
+
scope: this.scope,
|
|
542
640
|
snapping: this,
|
|
641
|
+
builder: this.builder,
|
|
543
642
|
consumerComponents: components,
|
|
544
643
|
ids,
|
|
545
644
|
ignoreNewestVersion: false,
|
|
@@ -682,14 +781,6 @@ there are matching among unmodified components thought. consider using --unmodif
|
|
|
682
781
|
|
|
683
782
|
_loader().default.stop();
|
|
684
783
|
}
|
|
685
|
-
/**
|
|
686
|
-
* @todo: currently, there is only one function registered to the OnTag, which is the builder.
|
|
687
|
-
* we set the extensions data and artifacts we got from the builder to the consumer-components.
|
|
688
|
-
* however, if there is more than one function registered to the OnTag, the data will be overridden
|
|
689
|
-
* by the last called function. when/if this happen, some kind of merge need to be done between the
|
|
690
|
-
* results.
|
|
691
|
-
*/
|
|
692
|
-
|
|
693
784
|
|
|
694
785
|
_updateComponentsByTagResult(components, tagResult) {
|
|
695
786
|
tagResult.forEach(result => {
|
|
@@ -857,13 +948,14 @@ there are matching among unmodified components thought. consider using --unmodif
|
|
|
857
948
|
};
|
|
858
949
|
}
|
|
859
950
|
|
|
860
|
-
static async provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver]) {
|
|
951
|
+
static async provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver, scope, exporter, builder]) {
|
|
861
952
|
const logger = loggerMain.createLogger(_snapping().SnappingAspect.id);
|
|
862
|
-
const snapping = new SnappingMain(workspace, logger, issues, insights, dependencyResolver);
|
|
953
|
+
const snapping = new SnappingMain(workspace, logger, issues, insights, dependencyResolver, scope, exporter, builder);
|
|
863
954
|
const snapCmd = new (_snapCmd().SnapCmd)(community.getBaseDomain(), snapping, logger);
|
|
864
955
|
const tagCmd = new (_tagCmd().TagCmd)(snapping, logger);
|
|
956
|
+
const tagFromScopeCmd = new (_tagFromScope().TagFromScopeCmd)(snapping, logger);
|
|
865
957
|
const resetCmd = new (_resetCmd().default)(snapping);
|
|
866
|
-
cli.register(tagCmd, snapCmd, resetCmd);
|
|
958
|
+
cli.register(tagCmd, snapCmd, resetCmd, tagFromScopeCmd);
|
|
867
959
|
return snapping;
|
|
868
960
|
}
|
|
869
961
|
|
|
@@ -871,7 +963,7 @@ there are matching among unmodified components thought. consider using --unmodif
|
|
|
871
963
|
|
|
872
964
|
exports.SnappingMain = SnappingMain;
|
|
873
965
|
(0, _defineProperty2().default)(SnappingMain, "slots", []);
|
|
874
|
-
(0, _defineProperty2().default)(SnappingMain, "dependencies", [_workspace().default, _cli().CLIAspect, _community().default, _logger().LoggerAspect, _issues().default, _insights().InsightsAspect, _dependencyResolver().DependencyResolverAspect]);
|
|
966
|
+
(0, _defineProperty2().default)(SnappingMain, "dependencies", [_workspace().default, _cli().CLIAspect, _community().default, _logger().LoggerAspect, _issues().default, _insights().InsightsAspect, _dependencyResolver().DependencyResolverAspect, _scope().ScopeAspect, _export().ExportAspect, _builder().BuilderAspect]);
|
|
875
967
|
(0, _defineProperty2().default)(SnappingMain, "runtime", _cli().MainRuntime);
|
|
876
968
|
|
|
877
969
|
_snapping().SnappingAspect.addRuntime(SnappingMain);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","dependencyResolver","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","snap","pattern","skipAutoSnap","Error","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","listDuringMergeStateComponents","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","tagPendingComponentsIds","resolveMultipleComponentIds","shouldThrowForNoMatching","getCompIds","includes","compId","resolveComponentId","scope","filterIdsFromPoolIdsByPattern","componentIds","allTagPending","map","c","_legacy","reset","componentPattern","head","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","idsMatchingPatternBitIds","id","componentsToUntag","filter","modelComponent","hasWithoutVersion","toBitId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponents","listSoftTaggedComponents","softTaggedComponentsIds","idsToRemoveSoftTags","compact","componentId","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","results","isRealUntag","objects","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","_addFlattenedDependenciesToComponents","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","stop","_updateComponentsByTagResult","tagResult","forEach","matchingComponent","find","isEqual","existingBuilder","extensions","findCoreExtension","Extensions","builder","data","builderData","push","_getPublishedPackages","comp","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","removedComponents","loadComponents","toVersionLatest","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","IssuesClasses","CircularDependencies","addInsightsAsComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","areComponentsMissingFromScope","removed","some","componentFromModel","hasScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","legacyScope","Promise","all","depId","hasVersion","modelComp","getModelComponentIfExist","loadVersion","isLegacy","pMap","concurrency","concurrentComponentsLimit","includeUnmodified","tagPendingBitIds","listSnappedComponentsOnMain","snappedComponentsIds","pMapSeries","idWithoutVer","idHasWildcard","allIds","changeVersion","componentStatus","getComponentStatusById","modified","flat","bitId","tagPendingBitIdsIncludeSnapped","tagPendingComponentsLatest","latestVersions","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","DependencyResolverAspect","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 { IssuesClasses } from '@teambit/component-issues';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK, Extensions } 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, BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { 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 { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\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 } from './tag-model-component';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport class SnappingMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain,\n private dependencyResolver: DependencyResolverMain\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 snapping: this,\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 /**\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 snapping: this,\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 /**\n * @todo: currently, there is only one function registered to the OnTag, which is the builder.\n * we set the extensions data and artifacts we got from the builder to the consumer-components.\n * however, if there is more than one function registered to the OnTag, the data will be overridden\n * by the last called function. when/if this happen, some kind of merge need to be done between the\n * results.\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 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 if (!issuesToIgnore.includes(IssuesClasses.CircularDependencies.name)) {\n await this.insights.addInsightsAsComponentIssues(components);\n }\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 ];\n static runtime = MainRuntime;\n static async provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain,\n DependencyResolverMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(workspace, logger, issues, insights, dependencyResolver);\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd);\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;;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;;AAOA;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;;EA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"}
|
|
1
|
+
{"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","dependencyResolver","scope","exporter","builder","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","legacyScope","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","objects","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","removedComponents","loadComponents","toVersionLatest","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","IssuesClasses","CircularDependencies","addInsightsAsComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","areComponentsMissingFromScope","removed","some","componentFromModel","hasScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","Promise","all","depId","hasVersion","modelComp","getModelComponentIfExist","loadVersion","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 { IssuesClasses } from '@teambit/component-issues';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK, 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 { 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 { 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 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\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 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 if (!issuesToIgnore.includes(IssuesClasses.CircularDependencies.name)) {\n await this.insights.addInsightsAsComponentIssues(components);\n }\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;;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;;EA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"}
|
package/dist/tag-cmd.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Command, CommandOptions } from '@teambit/cli';
|
|
2
|
-
import { BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';
|
|
3
2
|
import { ReleaseType } from 'semver';
|
|
4
3
|
import { Logger } from '@teambit/logger';
|
|
5
4
|
import { SnappingMain } from './snapping.main.runtime';
|
|
5
|
+
import { BasicTagParams } from './tag-model-component';
|
|
6
6
|
export declare class TagCmd implements Command {
|
|
7
7
|
private snapping;
|
|
8
8
|
private logger;
|