@teambit/snapping 0.0.140 → 0.0.141
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -1
- package/dist/snapping.main.runtime.d.ts +6 -3
- package/dist/snapping.main.runtime.js +34 -23
- package/dist/snapping.main.runtime.js.map +1 -1
- package/dist/tag-model-component.d.ts +37 -0
- package/dist/tag-model-component.js +582 -0
- package/dist/tag-model-component.js.map +1 -0
- package/package-tar/teambit-snapping-0.0.141.tgz +0 -0
- package/package.json +15 -10
- /package/{preview-1661284518387.js → preview-1661398415639.js} +0 -0
- package/package-tar/teambit-snapping-0.0.140.tgz +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -2,3 +2,4 @@ import { SnappingAspect } from './snapping.aspect';
|
|
|
2
2
|
export type { SnappingMain } from './snapping.main.runtime';
|
|
3
3
|
export default SnappingAspect;
|
|
4
4
|
export { SnappingAspect };
|
|
5
|
+
export { getPublishedPackages, updateComponentsByTagResult, addFlattenedDependenciesToComponents, onTagIdTransformer, } from './tag-model-component';
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,31 @@ Object.defineProperty(exports, "SnappingAspect", {
|
|
|
9
9
|
return _snapping().SnappingAspect;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "addFlattenedDependenciesToComponents", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _tagModelComponent().addFlattenedDependenciesToComponents;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
exports.default = void 0;
|
|
19
|
+
Object.defineProperty(exports, "getPublishedPackages", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return _tagModelComponent().getPublishedPackages;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "onTagIdTransformer", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _tagModelComponent().onTagIdTransformer;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "updateComponentsByTagResult", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () {
|
|
34
|
+
return _tagModelComponent().updateComponentsByTagResult;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
13
37
|
|
|
14
38
|
function _snapping() {
|
|
15
39
|
const data = require("./snapping.aspect");
|
|
@@ -21,6 +45,16 @@ function _snapping() {
|
|
|
21
45
|
return data;
|
|
22
46
|
}
|
|
23
47
|
|
|
48
|
+
function _tagModelComponent() {
|
|
49
|
+
const data = require("./tag-model-component");
|
|
50
|
+
|
|
51
|
+
_tagModelComponent = function () {
|
|
52
|
+
return data;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
57
|
+
|
|
24
58
|
var _default = _snapping().SnappingAspect;
|
|
25
59
|
|
|
26
60
|
exports.default = _default;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SnappingAspect"],"sources":["index.ts"],"sourcesContent":["import { SnappingAspect } from './snapping.aspect';\n\nexport type { SnappingMain } from './snapping.main.runtime';\nexport default SnappingAspect;\nexport { SnappingAspect };\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["SnappingAspect"],"sources":["index.ts"],"sourcesContent":["import { SnappingAspect } from './snapping.aspect';\n\nexport type { SnappingMain } from './snapping.main.runtime';\nexport default SnappingAspect;\nexport { SnappingAspect };\nexport {\n getPublishedPackages,\n updateComponentsByTagResult,\n addFlattenedDependenciesToComponents,\n onTagIdTransformer,\n} from './tag-model-component';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;eAFeA,0B"}
|
|
@@ -9,12 +9,14 @@ import { Logger, LoggerMain } from '@teambit/logger';
|
|
|
9
9
|
import { InsightsMain } from '@teambit/insights';
|
|
10
10
|
import { untagResult } from '@teambit/legacy/dist/scope/component-ops/untag-component';
|
|
11
11
|
import { IssuesMain } from '@teambit/issues';
|
|
12
|
+
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
12
13
|
export declare class SnappingMain {
|
|
13
14
|
private workspace;
|
|
14
15
|
private logger;
|
|
15
16
|
private issues;
|
|
16
17
|
private insights;
|
|
17
|
-
|
|
18
|
+
private dependencyResolver;
|
|
19
|
+
constructor(workspace: Workspace, logger: Logger, issues: IssuesMain, insights: InsightsMain, dependencyResolver: DependencyResolverMain);
|
|
18
20
|
/**
|
|
19
21
|
* tag the given component ids or all modified/new components if "all" param is set.
|
|
20
22
|
* tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias
|
|
@@ -65,13 +67,14 @@ export declare class SnappingMain {
|
|
|
65
67
|
static slots: never[];
|
|
66
68
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
67
69
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
68
|
-
static provider([workspace, cli, community, loggerMain, issues, insights]: [
|
|
70
|
+
static provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver]: [
|
|
69
71
|
Workspace,
|
|
70
72
|
CLIMain,
|
|
71
73
|
CommunityMain,
|
|
72
74
|
LoggerMain,
|
|
73
75
|
IssuesMain,
|
|
74
|
-
InsightsMain
|
|
76
|
+
InsightsMain,
|
|
77
|
+
DependencyResolverMain
|
|
75
78
|
]): Promise<SnappingMain>;
|
|
76
79
|
}
|
|
77
80
|
export default SnappingMain;
|
|
@@ -209,16 +209,6 @@ function _loader() {
|
|
|
209
209
|
return data;
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
-
function _tagModelComponent() {
|
|
213
|
-
const data = _interopRequireDefault(require("@teambit/legacy/dist/scope/component-ops/tag-model-component"));
|
|
214
|
-
|
|
215
|
-
_tagModelComponent = function () {
|
|
216
|
-
return data;
|
|
217
|
-
};
|
|
218
|
-
|
|
219
|
-
return data;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
212
|
function _componentsPendingImport() {
|
|
223
213
|
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import"));
|
|
224
214
|
|
|
@@ -299,6 +289,16 @@ function _issues() {
|
|
|
299
289
|
return data;
|
|
300
290
|
}
|
|
301
291
|
|
|
292
|
+
function _dependencyResolver() {
|
|
293
|
+
const data = require("@teambit/dependency-resolver");
|
|
294
|
+
|
|
295
|
+
_dependencyResolver = function () {
|
|
296
|
+
return data;
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
return data;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
302
|
function _snapCmd() {
|
|
303
303
|
const data = require("./snap-cmd");
|
|
304
304
|
|
|
@@ -349,14 +349,25 @@ function _resetCmd() {
|
|
|
349
349
|
return data;
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
+
function _tagModelComponent() {
|
|
353
|
+
const data = require("./tag-model-component");
|
|
354
|
+
|
|
355
|
+
_tagModelComponent = function () {
|
|
356
|
+
return data;
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
return data;
|
|
360
|
+
}
|
|
361
|
+
|
|
352
362
|
const HooksManagerInstance = _hooks().default.getInstance();
|
|
353
363
|
|
|
354
364
|
class SnappingMain {
|
|
355
|
-
constructor(workspace, logger, issues, insights) {
|
|
365
|
+
constructor(workspace, logger, issues, insights, dependencyResolver) {
|
|
356
366
|
this.workspace = workspace;
|
|
357
367
|
this.logger = logger;
|
|
358
368
|
this.issues = issues;
|
|
359
369
|
this.insights = insights;
|
|
370
|
+
this.dependencyResolver = dependencyResolver;
|
|
360
371
|
}
|
|
361
372
|
/**
|
|
362
373
|
* tag the given component ids or all modified/new components if "all" param is set.
|
|
@@ -443,16 +454,15 @@ class SnappingMain {
|
|
|
443
454
|
taggedComponents,
|
|
444
455
|
autoTaggedResults,
|
|
445
456
|
publishedPackages
|
|
446
|
-
} = await (0, _tagModelComponent().
|
|
457
|
+
} = await (0, _tagModelComponent().tagModelComponent)({
|
|
458
|
+
workspace: this.workspace,
|
|
447
459
|
consumerComponents: components,
|
|
448
460
|
ids: legacyBitIds,
|
|
449
|
-
scope: this.workspace.scope.legacyScope,
|
|
450
461
|
message,
|
|
451
462
|
editor,
|
|
452
463
|
exactVersion: validExactVersion,
|
|
453
464
|
releaseType,
|
|
454
465
|
preReleaseId,
|
|
455
|
-
consumer: this.workspace.consumer,
|
|
456
466
|
ignoreNewestVersion,
|
|
457
467
|
skipTests,
|
|
458
468
|
skipAutoTag,
|
|
@@ -462,7 +472,8 @@ class SnappingMain {
|
|
|
462
472
|
disableTagAndSnapPipelines,
|
|
463
473
|
forceDeploy,
|
|
464
474
|
incrementBy,
|
|
465
|
-
packageManagerConfigRootDir: this.workspace.path
|
|
475
|
+
packageManagerConfigRootDir: this.workspace.path,
|
|
476
|
+
dependencyResolver: this.dependencyResolver
|
|
466
477
|
});
|
|
467
478
|
const tagResults = {
|
|
468
479
|
taggedComponents,
|
|
@@ -525,13 +536,12 @@ class SnappingMain {
|
|
|
525
536
|
const {
|
|
526
537
|
taggedComponents,
|
|
527
538
|
autoTaggedResults
|
|
528
|
-
} = await (0, _tagModelComponent().
|
|
539
|
+
} = await (0, _tagModelComponent().tagModelComponent)({
|
|
540
|
+
workspace: this.workspace,
|
|
529
541
|
consumerComponents: components,
|
|
530
542
|
ids,
|
|
531
543
|
ignoreNewestVersion: false,
|
|
532
|
-
scope: this.workspace.scope.legacyScope,
|
|
533
544
|
message,
|
|
534
|
-
consumer: this.workspace.consumer,
|
|
535
545
|
skipTests,
|
|
536
546
|
skipAutoTag: skipAutoSnap,
|
|
537
547
|
persist: true,
|
|
@@ -540,7 +550,8 @@ class SnappingMain {
|
|
|
540
550
|
isSnap: true,
|
|
541
551
|
disableTagAndSnapPipelines,
|
|
542
552
|
forceDeploy,
|
|
543
|
-
packageManagerConfigRootDir: this.workspace.path
|
|
553
|
+
packageManagerConfigRootDir: this.workspace.path,
|
|
554
|
+
dependencyResolver: this.dependencyResolver
|
|
544
555
|
}); // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
545
556
|
|
|
546
557
|
const snapResults = {
|
|
@@ -648,7 +659,7 @@ there are matching among unmodified components thought. consider using --unmodif
|
|
|
648
659
|
results = await untag();
|
|
649
660
|
await consumer.scope.objects.persist();
|
|
650
661
|
const components = results.map(result => result.component);
|
|
651
|
-
await
|
|
662
|
+
await (0, _tagModelComponent().updateComponentsVersions)(this.workspace, components, false);
|
|
652
663
|
} else {
|
|
653
664
|
results = await softUntag();
|
|
654
665
|
consumer.bitMap.markAsChanged();
|
|
@@ -796,9 +807,9 @@ there are matching among unmodified components thought. consider using --unmodif
|
|
|
796
807
|
};
|
|
797
808
|
}
|
|
798
809
|
|
|
799
|
-
static async provider([workspace, cli, community, loggerMain, issues, insights]) {
|
|
810
|
+
static async provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver]) {
|
|
800
811
|
const logger = loggerMain.createLogger(_snapping().SnappingAspect.id);
|
|
801
|
-
const snapping = new SnappingMain(workspace, logger, issues, insights);
|
|
812
|
+
const snapping = new SnappingMain(workspace, logger, issues, insights, dependencyResolver);
|
|
802
813
|
const snapCmd = new (_snapCmd().SnapCmd)(community.getBaseDomain(), snapping, logger);
|
|
803
814
|
const tagCmd = new (_tagCmd().TagCmd)(snapping, logger);
|
|
804
815
|
const resetCmd = new (_resetCmd().default)(snapping);
|
|
@@ -810,7 +821,7 @@ there are matching among unmodified components thought. consider using --unmodif
|
|
|
810
821
|
|
|
811
822
|
exports.SnappingMain = SnappingMain;
|
|
812
823
|
(0, _defineProperty2().default)(SnappingMain, "slots", []);
|
|
813
|
-
(0, _defineProperty2().default)(SnappingMain, "dependencies", [_workspace().default, _cli().CLIAspect, _community().default, _logger().LoggerAspect, _issues().default, _insights().InsightsAspect]);
|
|
824
|
+
(0, _defineProperty2().default)(SnappingMain, "dependencies", [_workspace().default, _cli().CLIAspect, _community().default, _logger().LoggerAspect, _issues().default, _insights().InsightsAspect, _dependencyResolver().DependencyResolverAspect]);
|
|
814
825
|
(0, _defineProperty2().default)(SnappingMain, "runtime", _cli().MainRuntime);
|
|
815
826
|
|
|
816
827
|
_snapping().SnappingAspect.addRuntime(SnappingMain);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","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","areComponentsMissingFromScope","some","c","componentFromModel","id","hasScope","ComponentsPendingImport","taggedComponents","autoTaggedResults","publishedPackages","tagModelComponent","consumerComponents","scope","legacyScope","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","filterIdsFromPoolIdsByPattern","componentIds","allTagPending","map","_legacy","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","results","isRealUntag","objects","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","loadComponents","toVersionLatest","forEach","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","IssuesClasses","CircularDependencies","addInsightsAsComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","throwForComponent","dependenciesIds","getAllDependenciesIds","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","push","tagPendingComponentsLatest","latestVersions","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapping","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","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 { 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 } 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 tagModelComponent from '@teambit/legacy/dist/scope/component-ops/tag-model-component';\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 { 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';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport class SnappingMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain\n ) {}\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n 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 const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n consumerComponents: components,\n ids: legacyBitIds,\n scope: this.workspace.scope.legacyScope,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n consumer: this.workspace.consumer,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\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 const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n scope: this.workspace.scope.legacyScope,\n message,\n consumer: this.workspace.consumer,\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 });\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 consumer.updateComponentsVersions(components as ModelComponent[]);\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy();\n return { results, isSoftUntag: !isRealUntag };\n }\n\n private async loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components } = 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;\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 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 tagPendingBitIds.push(...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: tagPendingBitIds.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, CLIAspect, CommunityAspect, LoggerAspect, IssuesAspect, InsightsAspect];\n static runtime = MainRuntime;\n static async provider([workspace, cli, community, loggerMain, issues, insights]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(workspace, logger, issues, insights);\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, 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;;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;;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;;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","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","areComponentsMissingFromScope","some","c","componentFromModel","id","hasScope","ComponentsPendingImport","taggedComponents","autoTaggedResults","publishedPackages","tagModelComponent","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","_legacy","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","results","isRealUntag","objects","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","loadComponents","toVersionLatest","forEach","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","IssuesClasses","CircularDependencies","addInsightsAsComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","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","push","tagPendingComponentsLatest","latestVersions","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapping","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 { 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 } 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 const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n workspace: this.workspace,\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 const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n workspace: this.workspace,\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 private async loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components } = 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;\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 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 tagPendingBitIds.push(...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: tagPendingBitIds.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;;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;;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;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EA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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ReleaseType } from 'semver';
|
|
2
|
+
import { Scope } from '@teambit/legacy/dist/scope';
|
|
3
|
+
import { BitId, BitIds } from '@teambit/legacy/dist/bit-id';
|
|
4
|
+
import Component from '@teambit/legacy/dist/consumer/component/consumer-component';
|
|
5
|
+
import { AutoTagResult } from '@teambit/legacy/dist/scope/component-ops/auto-tag';
|
|
6
|
+
import { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';
|
|
7
|
+
import { BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';
|
|
8
|
+
import { ModelComponent } from '@teambit/legacy/dist/scope/models';
|
|
9
|
+
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
10
|
+
import { Workspace } from '@teambit/workspace';
|
|
11
|
+
export declare type onTagIdTransformer = (id: BitId) => BitId | null;
|
|
12
|
+
export declare function tagModelComponent({ workspace, consumerComponents, ids, message, editor, exactVersion, releaseType, preReleaseId, ignoreNewestVersion, skipTests, skipAutoTag, soft, build, persist, isSnap, disableTagAndSnapPipelines, forceDeploy, incrementBy, packageManagerConfigRootDir, dependencyResolver, }: {
|
|
13
|
+
workspace: Workspace;
|
|
14
|
+
consumerComponents: Component[];
|
|
15
|
+
ids: BitIds;
|
|
16
|
+
exactVersion?: string | null | undefined;
|
|
17
|
+
releaseType?: ReleaseType;
|
|
18
|
+
incrementBy?: number;
|
|
19
|
+
isSnap?: boolean;
|
|
20
|
+
packageManagerConfigRootDir?: string;
|
|
21
|
+
dependencyResolver: DependencyResolverMain;
|
|
22
|
+
} & BasicTagParams): Promise<{
|
|
23
|
+
taggedComponents: Component[];
|
|
24
|
+
autoTaggedResults: AutoTagResult[];
|
|
25
|
+
publishedPackages: string[];
|
|
26
|
+
}>;
|
|
27
|
+
export declare function addFlattenedDependenciesToComponents(scope: Scope, components: Component[]): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* @todo: currently, there is only one function registered to the OnTag, which is the builder.
|
|
30
|
+
* we set the extensions data and artifacts we got from the builder to the consumer-components.
|
|
31
|
+
* however, if there is more than one function registered to the OnTag, the data will be overridden
|
|
32
|
+
* by the last called function. when/if this happen, some kind of merge need to be done between the
|
|
33
|
+
* results.
|
|
34
|
+
*/
|
|
35
|
+
export declare function updateComponentsByTagResult(components: Component[], tagResult: LegacyOnTagResult[]): void;
|
|
36
|
+
export declare function getPublishedPackages(components: Component[]): string[];
|
|
37
|
+
export declare function updateComponentsVersions(workspace: Workspace, components: Array<ModelComponent | Component>, isTag?: boolean): Promise<any>;
|
|
@@ -0,0 +1,582 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.array.iterator.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.promise.js");
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: true
|
|
11
|
+
});
|
|
12
|
+
exports.addFlattenedDependenciesToComponents = addFlattenedDependenciesToComponents;
|
|
13
|
+
exports.getPublishedPackages = getPublishedPackages;
|
|
14
|
+
exports.tagModelComponent = tagModelComponent;
|
|
15
|
+
exports.updateComponentsByTagResult = updateComponentsByTagResult;
|
|
16
|
+
exports.updateComponentsVersions = updateComponentsVersions;
|
|
17
|
+
|
|
18
|
+
function _pMapSeries() {
|
|
19
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
20
|
+
|
|
21
|
+
_pMapSeries = function () {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _nodeFetch() {
|
|
29
|
+
const data = _interopRequireDefault(require("node-fetch"));
|
|
30
|
+
|
|
31
|
+
_nodeFetch = function () {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function _ramda() {
|
|
39
|
+
const data = _interopRequireDefault(require("ramda"));
|
|
40
|
+
|
|
41
|
+
_ramda = function () {
|
|
42
|
+
return data;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function _lodash() {
|
|
49
|
+
const data = require("lodash");
|
|
50
|
+
|
|
51
|
+
_lodash = function () {
|
|
52
|
+
return data;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function _uuid() {
|
|
59
|
+
const data = require("uuid");
|
|
60
|
+
|
|
61
|
+
_uuid = function () {
|
|
62
|
+
return data;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
return data;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function globalConfig() {
|
|
69
|
+
const data = _interopRequireWildcard(require("@teambit/legacy/dist/api/consumer/lib/global-config"));
|
|
70
|
+
|
|
71
|
+
globalConfig = function () {
|
|
72
|
+
return data;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return data;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function _bitId() {
|
|
79
|
+
const data = require("@teambit/legacy/dist/bit-id");
|
|
80
|
+
|
|
81
|
+
_bitId = function () {
|
|
82
|
+
return data;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return data;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function _loader() {
|
|
89
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/cli/loader"));
|
|
90
|
+
|
|
91
|
+
_loader = function () {
|
|
92
|
+
return data;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
return data;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function _constants() {
|
|
99
|
+
const data = require("@teambit/legacy/dist/constants");
|
|
100
|
+
|
|
101
|
+
_constants = function () {
|
|
102
|
+
return data;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
return data;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function _componentSchema() {
|
|
109
|
+
const data = require("@teambit/legacy/dist/consumer/component/component-schema");
|
|
110
|
+
|
|
111
|
+
_componentSchema = function () {
|
|
112
|
+
return data;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
return data;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function _exceptions() {
|
|
119
|
+
const data = require("@teambit/legacy/dist/consumer/exceptions");
|
|
120
|
+
|
|
121
|
+
_exceptions = function () {
|
|
122
|
+
return data;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
return data;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function _showDoctorError() {
|
|
129
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/error/show-doctor-error"));
|
|
130
|
+
|
|
131
|
+
_showDoctorError = function () {
|
|
132
|
+
return data;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
return data;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function _logger() {
|
|
139
|
+
const data = _interopRequireDefault(require("@teambit/legacy/dist/logger/logger"));
|
|
140
|
+
|
|
141
|
+
_logger = function () {
|
|
142
|
+
return data;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
return data;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function _utils() {
|
|
149
|
+
const data = require("@teambit/legacy/dist/utils");
|
|
150
|
+
|
|
151
|
+
_utils = function () {
|
|
152
|
+
return data;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
return data;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function _autoTag() {
|
|
159
|
+
const data = require("@teambit/legacy/dist/scope/component-ops/auto-tag");
|
|
160
|
+
|
|
161
|
+
_autoTag = function () {
|
|
162
|
+
return data;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
return data;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function _getFlattenedDependencies() {
|
|
169
|
+
const data = require("@teambit/legacy/dist/scope/component-ops/get-flattened-dependencies");
|
|
170
|
+
|
|
171
|
+
_getFlattenedDependencies = function () {
|
|
172
|
+
return data;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
return data;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function _semverHelper() {
|
|
179
|
+
const data = require("@teambit/legacy/dist/utils/semver-helper");
|
|
180
|
+
|
|
181
|
+
_semverHelper = function () {
|
|
182
|
+
return data;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
return data;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
function _messagePerComponent() {
|
|
189
|
+
const data = require("@teambit/legacy/dist/scope/component-ops/message-per-component");
|
|
190
|
+
|
|
191
|
+
_messagePerComponent = function () {
|
|
192
|
+
return data;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
return data;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
function _models() {
|
|
199
|
+
const data = require("@teambit/legacy/dist/scope/models");
|
|
200
|
+
|
|
201
|
+
_models = function () {
|
|
202
|
+
return data;
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
return data;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
209
|
+
|
|
210
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
211
|
+
|
|
212
|
+
function updateDependenciesVersions(componentsToTag, dependencyResolver) {
|
|
213
|
+
const getNewDependencyVersion = id => {
|
|
214
|
+
const foundDependency = componentsToTag.find(component => component.id.isEqualWithoutVersion(id));
|
|
215
|
+
return foundDependency ? id.changeVersion(foundDependency.version) : null;
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
const changeExtensionsVersion = component => {
|
|
219
|
+
component.extensions.forEach(ext => {
|
|
220
|
+
if (ext.extensionId) {
|
|
221
|
+
const newDepId = getNewDependencyVersion(ext.extensionId);
|
|
222
|
+
if (newDepId) ext.extensionId = newDepId;
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
componentsToTag.forEach(oneComponentToTag => {
|
|
228
|
+
oneComponentToTag.getAllDependencies().forEach(dependency => {
|
|
229
|
+
const newDepId = getNewDependencyVersion(dependency.id);
|
|
230
|
+
if (newDepId) dependency.id = newDepId;
|
|
231
|
+
});
|
|
232
|
+
changeExtensionsVersion(oneComponentToTag); // @ts-ignore
|
|
233
|
+
|
|
234
|
+
oneComponentToTag = dependencyResolver.updateDepsOnLegacyTag(oneComponentToTag, getNewDependencyVersion.bind(this));
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
function setHashes(componentsToTag) {
|
|
239
|
+
componentsToTag.forEach(componentToTag => {
|
|
240
|
+
componentToTag.version = (0, _utils().sha1)((0, _uuid().v4)());
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
async function setFutureVersions(componentsToTag, scope, releaseType, exactVersion, persist, autoTagIds, ids, incrementBy, preRelease, soft) {
|
|
245
|
+
await Promise.all(componentsToTag.map(async componentToTag => {
|
|
246
|
+
var _componentToTag$compo, _componentToTag$compo2;
|
|
247
|
+
|
|
248
|
+
const isAutoTag = autoTagIds.hasWithoutVersion(componentToTag.id);
|
|
249
|
+
const modelComponent = await scope.sources.findOrAddComponent(componentToTag);
|
|
250
|
+
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;
|
|
251
|
+
componentToTag.previouslyUsedVersion = componentToTag.version;
|
|
252
|
+
|
|
253
|
+
if (nextVersion && persist) {
|
|
254
|
+
var _componentToTag$compo3, _componentToTag$compo4;
|
|
255
|
+
|
|
256
|
+
const exactVersionOrReleaseType = (0, _semverHelper().getValidVersionOrReleaseType)(nextVersion);
|
|
257
|
+
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);
|
|
258
|
+
} else if (isAutoTag) {
|
|
259
|
+
// auto-tag always bumped as patch
|
|
260
|
+
componentToTag.version = soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preRelease);
|
|
261
|
+
} else {
|
|
262
|
+
const versionByEnteredId = getVersionByEnteredId(ids, componentToTag, modelComponent);
|
|
263
|
+
componentToTag.version = soft ? versionByEnteredId || exactVersion || releaseType : versionByEnteredId || modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preRelease);
|
|
264
|
+
}
|
|
265
|
+
}));
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
function getVersionByEnteredId(enteredIds, component, modelComponent) {
|
|
269
|
+
const enteredId = enteredIds.searchWithoutVersion(component.id);
|
|
270
|
+
|
|
271
|
+
if (enteredId && enteredId.hasVersion()) {
|
|
272
|
+
const exactVersionOrReleaseType = (0, _semverHelper().getValidVersionOrReleaseType)(enteredId.version);
|
|
273
|
+
return modelComponent.getVersionToAdd(exactVersionOrReleaseType.releaseType, exactVersionOrReleaseType.exactVersion);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
return undefined;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
async function tagModelComponent({
|
|
280
|
+
workspace,
|
|
281
|
+
consumerComponents,
|
|
282
|
+
ids,
|
|
283
|
+
message,
|
|
284
|
+
editor,
|
|
285
|
+
exactVersion,
|
|
286
|
+
releaseType,
|
|
287
|
+
preReleaseId,
|
|
288
|
+
ignoreNewestVersion = false,
|
|
289
|
+
skipTests = false,
|
|
290
|
+
skipAutoTag,
|
|
291
|
+
soft,
|
|
292
|
+
build,
|
|
293
|
+
persist,
|
|
294
|
+
isSnap = false,
|
|
295
|
+
disableTagAndSnapPipelines,
|
|
296
|
+
forceDeploy,
|
|
297
|
+
incrementBy,
|
|
298
|
+
packageManagerConfigRootDir,
|
|
299
|
+
dependencyResolver
|
|
300
|
+
}) {
|
|
301
|
+
const consumer = workspace.consumer;
|
|
302
|
+
const scope = workspace.scope.legacyScope;
|
|
303
|
+
const consumerComponentsIdsMap = {}; // Concat and unique all the dependencies from all the components so we will not import
|
|
304
|
+
// the same dependency more then once, it's mainly for performance purpose
|
|
305
|
+
|
|
306
|
+
consumerComponents.forEach(consumerComponent => {
|
|
307
|
+
const componentIdString = consumerComponent.id.toString(); // Store it in a map so we can take it easily from the sorted array which contain only the id
|
|
308
|
+
|
|
309
|
+
consumerComponentsIdsMap[componentIdString] = consumerComponent;
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
const componentsToTag = _ramda().default.values(consumerComponentsIdsMap); // consumerComponents unique
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
const idsToTag = _bitId().BitIds.fromArray(componentsToTag.map(c => c.id)); // ids without versions are new. it's impossible that tagged (and not-modified) components has
|
|
316
|
+
// them as dependencies.
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
const idsToTriggerAutoTag = idsToTag.filter(id => id.hasVersion());
|
|
320
|
+
const autoTagData = skipAutoTag ? [] : await (0, _autoTag().getAutoTagInfo)(consumer, _bitId().BitIds.fromArray(idsToTriggerAutoTag));
|
|
321
|
+
const autoTagComponents = autoTagData.map(autoTagItem => autoTagItem.component);
|
|
322
|
+
const autoTagComponentsFiltered = autoTagComponents.filter(c => !idsToTag.has(c.id));
|
|
323
|
+
|
|
324
|
+
const autoTagIds = _bitId().BitIds.fromArray(autoTagComponentsFiltered.map(autoTag => autoTag.id));
|
|
325
|
+
|
|
326
|
+
const allComponentsToTag = [...componentsToTag, ...autoTagComponentsFiltered];
|
|
327
|
+
const messagesFromEditorFetcher = new (_messagePerComponent().MessagePerComponentFetcher)(idsToTag, autoTagIds);
|
|
328
|
+
const messagePerId = editor ? await messagesFromEditorFetcher.getMessagesFromEditor(scope.tmp, editor) : []; // check for each one of the components whether it is using an old version
|
|
329
|
+
|
|
330
|
+
if (!ignoreNewestVersion && !isSnap) {
|
|
331
|
+
const newestVersionsP = allComponentsToTag.map(async component => {
|
|
332
|
+
if (component.componentFromModel) {
|
|
333
|
+
// otherwise it's a new component, so this check is irrelevant
|
|
334
|
+
const modelComponent = await scope.getModelComponentIfExist(component.id);
|
|
335
|
+
if (!modelComponent) throw new (_showDoctorError().default)(`component ${component.id} was not found in the model`);
|
|
336
|
+
if (!modelComponent.listVersions().length) return null; // no versions yet, no issues.
|
|
337
|
+
|
|
338
|
+
const latest = modelComponent.latest();
|
|
339
|
+
|
|
340
|
+
if (latest !== component.version) {
|
|
341
|
+
return {
|
|
342
|
+
componentId: component.id.toStringWithoutVersion(),
|
|
343
|
+
currentVersion: component.version,
|
|
344
|
+
latestVersion: latest
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
return null;
|
|
350
|
+
});
|
|
351
|
+
const newestVersions = await Promise.all(newestVersionsP);
|
|
352
|
+
const newestVersionsWithoutEmpty = newestVersions.filter(newest => newest);
|
|
353
|
+
|
|
354
|
+
if (!(0, _lodash().isEmpty)(newestVersionsWithoutEmpty)) {
|
|
355
|
+
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
356
|
+
throw new (_exceptions().NewerVersionFound)(newestVersionsWithoutEmpty);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
_logger().default.debugAndAddBreadCrumb('tag-model-components', 'sequentially persist all components'); // go through all components and find the future versions for them
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
isSnap ? setHashes(allComponentsToTag) : await setFutureVersions(allComponentsToTag, scope, releaseType, exactVersion, persist, autoTagIds, ids, incrementBy, preReleaseId, soft);
|
|
364
|
+
setCurrentSchema(allComponentsToTag); // go through all dependencies and update their versions
|
|
365
|
+
|
|
366
|
+
updateDependenciesVersions(allComponentsToTag, dependencyResolver);
|
|
367
|
+
await addLogToComponents(componentsToTag, autoTagComponents, persist, message, messagePerId);
|
|
368
|
+
|
|
369
|
+
if (soft) {
|
|
370
|
+
consumer.updateNextVersionOnBitmap(allComponentsToTag, preReleaseId);
|
|
371
|
+
} else {
|
|
372
|
+
await addFlattenedDependenciesToComponents(consumer.scope, allComponentsToTag);
|
|
373
|
+
emptyBuilderData(allComponentsToTag);
|
|
374
|
+
addBuildStatus(allComponentsToTag, _constants().BuildStatus.Pending);
|
|
375
|
+
await addComponentsToScope(consumer, allComponentsToTag, build);
|
|
376
|
+
await updateComponentsVersions(workspace, allComponentsToTag);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
const publishedPackages = [];
|
|
380
|
+
|
|
381
|
+
if (build) {
|
|
382
|
+
const onTagOpts = {
|
|
383
|
+
disableTagAndSnapPipelines,
|
|
384
|
+
throwOnError: true,
|
|
385
|
+
forceDeploy,
|
|
386
|
+
skipTests,
|
|
387
|
+
isSnap
|
|
388
|
+
};
|
|
389
|
+
const isolateOptions = {
|
|
390
|
+
packageManagerConfigRootDir
|
|
391
|
+
};
|
|
392
|
+
const results = await (0, _pMapSeries().default)(scope.onTag, func => func(allComponentsToTag, onTagOpts, isolateOptions));
|
|
393
|
+
results.forEach(tagResult => updateComponentsByTagResult(allComponentsToTag, tagResult));
|
|
394
|
+
publishedPackages.push(...getPublishedPackages(allComponentsToTag));
|
|
395
|
+
addBuildStatus(allComponentsToTag, _constants().BuildStatus.Succeed);
|
|
396
|
+
await (0, _pMapSeries().default)(allComponentsToTag, consumerComponent => scope.sources.enrichSource(consumerComponent));
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
if (!soft) {
|
|
400
|
+
await scope.objects.persist();
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
return {
|
|
404
|
+
taggedComponents: componentsToTag,
|
|
405
|
+
autoTaggedResults: autoTagData,
|
|
406
|
+
publishedPackages
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
async function addComponentsToScope(consumer, components, shouldValidateVersion) {
|
|
411
|
+
const lane = await consumer.getCurrentLaneObject();
|
|
412
|
+
await (0, _pMapSeries().default)(components, async component => {
|
|
413
|
+
await consumer.scope.sources.addSource({
|
|
414
|
+
source: component,
|
|
415
|
+
consumer,
|
|
416
|
+
lane,
|
|
417
|
+
shouldValidateVersion
|
|
418
|
+
});
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
function emptyBuilderData(components) {
|
|
423
|
+
components.forEach(component => {
|
|
424
|
+
const existingBuilder = component.extensions.findCoreExtension(_constants().Extensions.builder);
|
|
425
|
+
if (existingBuilder) existingBuilder.data = {};
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
async function addFlattenedDependenciesToComponents(scope, components) {
|
|
430
|
+
_loader().default.start('importing missing dependencies...');
|
|
431
|
+
|
|
432
|
+
const flattenedDependenciesGetter = new (_getFlattenedDependencies().FlattenedDependenciesGetter)(scope, components);
|
|
433
|
+
await flattenedDependenciesGetter.populateFlattenedDependencies();
|
|
434
|
+
|
|
435
|
+
_loader().default.stop();
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
async function addLogToComponents(components, autoTagComps, persist, message, messagePerComponent) {
|
|
439
|
+
const username = await globalConfig().get(_constants().CFG_USER_NAME_KEY);
|
|
440
|
+
const bitCloudUsername = await getBitCloudUsername();
|
|
441
|
+
const email = await globalConfig().get(_constants().CFG_USER_EMAIL_KEY);
|
|
442
|
+
|
|
443
|
+
const getLog = component => {
|
|
444
|
+
var _component$componentM, _messagePerComponent$;
|
|
445
|
+
|
|
446
|
+
const nextVersion = persist ? (_component$componentM = component.componentMap) === null || _component$componentM === void 0 ? void 0 : _component$componentM.nextVersion : null;
|
|
447
|
+
const msgFromEditor = (_messagePerComponent$ = messagePerComponent.find(item => item.id.isEqualWithoutVersion(component.id))) === null || _messagePerComponent$ === void 0 ? void 0 : _messagePerComponent$.msg;
|
|
448
|
+
return {
|
|
449
|
+
username: bitCloudUsername || (nextVersion === null || nextVersion === void 0 ? void 0 : nextVersion.username) || username,
|
|
450
|
+
email: (nextVersion === null || nextVersion === void 0 ? void 0 : nextVersion.email) || email,
|
|
451
|
+
message: (nextVersion === null || nextVersion === void 0 ? void 0 : nextVersion.message) || msgFromEditor || message,
|
|
452
|
+
date: Date.now().toString()
|
|
453
|
+
};
|
|
454
|
+
};
|
|
455
|
+
|
|
456
|
+
components.forEach(component => {
|
|
457
|
+
component.log = getLog(component);
|
|
458
|
+
});
|
|
459
|
+
autoTagComps.forEach(autoTagComp => {
|
|
460
|
+
autoTagComp.log = getLog(autoTagComp);
|
|
461
|
+
const defaultMsg = 'bump dependencies versions';
|
|
462
|
+
|
|
463
|
+
if (message) {
|
|
464
|
+
autoTagComp.log.message += ` (${defaultMsg})`;
|
|
465
|
+
} else if (!autoTagComp.log.message) {
|
|
466
|
+
autoTagComp.log.message = defaultMsg;
|
|
467
|
+
}
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
async function getBitCloudUsername() {
|
|
472
|
+
const token = await globalConfig().get(_constants().CFG_USER_TOKEN_KEY);
|
|
473
|
+
if (!token) return '';
|
|
474
|
+
|
|
475
|
+
try {
|
|
476
|
+
const res = await (0, _nodeFetch().default)(`https://api.${_constants().BASE_CLOUD_DOMAIN}/user`, {
|
|
477
|
+
headers: {
|
|
478
|
+
Authorization: `Bearer ${token}`,
|
|
479
|
+
'Content-Type': 'application/json'
|
|
480
|
+
}
|
|
481
|
+
});
|
|
482
|
+
const object = await res.json();
|
|
483
|
+
const user = object.payload;
|
|
484
|
+
const username = user.username;
|
|
485
|
+
return username;
|
|
486
|
+
} catch (error) {
|
|
487
|
+
return undefined;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
function setCurrentSchema(components) {
|
|
492
|
+
components.forEach(component => {
|
|
493
|
+
component.schema = _componentSchema().CURRENT_SCHEMA;
|
|
494
|
+
});
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* @todo: currently, there is only one function registered to the OnTag, which is the builder.
|
|
498
|
+
* we set the extensions data and artifacts we got from the builder to the consumer-components.
|
|
499
|
+
* however, if there is more than one function registered to the OnTag, the data will be overridden
|
|
500
|
+
* by the last called function. when/if this happen, some kind of merge need to be done between the
|
|
501
|
+
* results.
|
|
502
|
+
*/
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
function updateComponentsByTagResult(components, tagResult) {
|
|
506
|
+
tagResult.forEach(result => {
|
|
507
|
+
const matchingComponent = components.find(c => c.id.isEqual(result.id));
|
|
508
|
+
|
|
509
|
+
if (matchingComponent) {
|
|
510
|
+
const existingBuilder = matchingComponent.extensions.findCoreExtension(_constants().Extensions.builder);
|
|
511
|
+
if (existingBuilder) existingBuilder.data = result.builderData.data;else matchingComponent.extensions.push(result.builderData);
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
function getPublishedPackages(components) {
|
|
517
|
+
const publishedPackages = components.map(comp => {
|
|
518
|
+
var _builderExt$data, _builderExt$data$aspe, _pkgData$data;
|
|
519
|
+
|
|
520
|
+
const builderExt = comp.extensions.findCoreExtension(_constants().Extensions.builder);
|
|
521
|
+
const pkgData = builderExt === null || builderExt === void 0 ? void 0 : (_builderExt$data = builderExt.data) === null || _builderExt$data === void 0 ? void 0 : (_builderExt$data$aspe = _builderExt$data.aspectsData) === null || _builderExt$data$aspe === void 0 ? void 0 : _builderExt$data$aspe.find(a => a.aspectId === _constants().Extensions.pkg);
|
|
522
|
+
return pkgData === null || pkgData === void 0 ? void 0 : (_pkgData$data = pkgData.data) === null || _pkgData$data === void 0 ? void 0 : _pkgData$data.publishedPackage;
|
|
523
|
+
});
|
|
524
|
+
return (0, _lodash().compact)(publishedPackages);
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
function addBuildStatus(components, buildStatus) {
|
|
528
|
+
components.forEach(component => {
|
|
529
|
+
component.buildStatus = buildStatus;
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
async function updateComponentsVersions(workspace, components, isTag = true) {
|
|
534
|
+
const consumer = workspace.consumer;
|
|
535
|
+
const currentLane = consumer.getCurrentLaneId();
|
|
536
|
+
const stagedConfig = await workspace.scope.getStagedConfig();
|
|
537
|
+
|
|
538
|
+
const isAvailableOnMain = async (component, id) => {
|
|
539
|
+
if (currentLane.isDefault()) {
|
|
540
|
+
return true;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
if (!id.hasVersion()) {
|
|
544
|
+
// component was unsnapped on the current lane and is back to a new component
|
|
545
|
+
return true;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
const modelComponent = component instanceof _models().ModelComponent ? component : await consumer.scope.getModelComponent(component.id);
|
|
549
|
+
return modelComponent.hasHead();
|
|
550
|
+
};
|
|
551
|
+
|
|
552
|
+
const updateVersions = async unknownComponent => {
|
|
553
|
+
const id = unknownComponent instanceof _models().ModelComponent ? unknownComponent.toBitIdWithLatestVersionAllowNull() : unknownComponent.id;
|
|
554
|
+
consumer.bitMap.updateComponentId(id);
|
|
555
|
+
const availableOnMain = await isAvailableOnMain(unknownComponent, id);
|
|
556
|
+
|
|
557
|
+
if (!availableOnMain) {
|
|
558
|
+
consumer.bitMap.setComponentProp(id, 'onLanesOnly', true);
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
const componentMap = consumer.bitMap.getComponent(id);
|
|
562
|
+
const compId = await workspace.resolveComponentId(id); // it can be either a tag/snap or reset.
|
|
563
|
+
|
|
564
|
+
if (isTag) {
|
|
565
|
+
const config = componentMap.config;
|
|
566
|
+
stagedConfig.addComponentConfig(compId, config);
|
|
567
|
+
consumer.bitMap.removeConfig(id);
|
|
568
|
+
} else if (!componentMap.config) {
|
|
569
|
+
componentMap.config = stagedConfig.getConfigPerId(compId);
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
componentMap.clearNextVersion();
|
|
573
|
+
}; // important! DO NOT use Promise.all here! otherwise, you're gonna enter into a whole world of pain.
|
|
574
|
+
// imagine tagging comp1 with auto-tagged comp2, comp1 package.json is written while comp2 is
|
|
575
|
+
// trying to get the dependencies of comp1 using its package.json.
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
await (0, _pMapSeries().default)(components, updateVersions);
|
|
579
|
+
await stagedConfig.write();
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
//# sourceMappingURL=tag-model-component.js.map
|
|
@@ -0,0 +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","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","updateNextVersionOnBitmap","addFlattenedDependenciesToComponents","emptyBuilderData","addBuildStatus","BuildStatus","Pending","addComponentsToScope","updateComponentsVersions","publishedPackages","onTagOpts","throwOnError","isolateOptions","results","mapSeries","onTag","func","tagResult","updateComponentsByTagResult","push","getPublishedPackages","Succeed","enrichSource","objects","taggedComponents","autoTaggedResults","components","shouldValidateVersion","lane","getCurrentLaneObject","addSource","source","existingBuilder","findCoreExtension","Extensions","builder","data","loader","start","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","stop","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","result","matchingComponent","isEqual","builderData","comp","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","compact","buildStatus","isTag","currentLane","getCurrentLaneId","stagedConfig","getStagedConfig","isAvailableOnMain","isDefault","ModelComponent","getModelComponent","hasHead","updateVersions","unknownComponent","toBitIdWithLatestVersionAllowNull","bitMap","updateComponentId","availableOnMain","setComponentProp","getComponent","compId","resolveComponentId","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, compact } 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 loader from '@teambit/legacy/dist/cli/loader';\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 { FlattenedDependenciesGetter } from '@teambit/legacy/dist/scope/component-ops/get-flattened-dependencies';\nimport { getValidVersionOrReleaseType } from '@teambit/legacy/dist/utils/semver-helper';\nimport { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { Log } from '@teambit/legacy/dist/scope/models/version';\nimport { BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';\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 { Workspace } from '@teambit/workspace';\n\nexport type onTagIdTransformer = (id: BitId) => BitId | null;\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 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 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 scope = workspace.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\n const autoTagData = skipAutoTag ? [] : 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(scope.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 scope.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 scope,\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 consumer.updateNextVersionOnBitmap(allComponentsToTag, preReleaseId);\n } else {\n await addFlattenedDependenciesToComponents(consumer.scope, allComponentsToTag);\n emptyBuilderData(allComponentsToTag);\n addBuildStatus(allComponentsToTag, BuildStatus.Pending);\n await addComponentsToScope(consumer, allComponentsToTag, build);\n await updateComponentsVersions(workspace, allComponentsToTag);\n }\n\n const publishedPackages: string[] = [];\n if (build) {\n const onTagOpts = { disableTagAndSnapPipelines, throwOnError: true, forceDeploy, skipTests, isSnap };\n const isolateOptions = { packageManagerConfigRootDir };\n const results: Array<LegacyOnTagResult[]> = await mapSeries(scope.onTag, (func) =>\n func(allComponentsToTag, onTagOpts, isolateOptions)\n );\n results.forEach((tagResult) => updateComponentsByTagResult(allComponentsToTag, tagResult));\n publishedPackages.push(...getPublishedPackages(allComponentsToTag));\n addBuildStatus(allComponentsToTag, BuildStatus.Succeed);\n await mapSeries(allComponentsToTag, (consumerComponent) => scope.sources.enrichSource(consumerComponent));\n }\n\n if (!soft) {\n await scope.objects.persist();\n }\n\n return { taggedComponents: componentsToTag, autoTaggedResults: autoTagData, publishedPackages };\n}\n\nasync function addComponentsToScope(consumer: Consumer, components: Component[], shouldValidateVersion: boolean) {\n const lane = await consumer.getCurrentLaneObject();\n await mapSeries(components, async (component) => {\n await consumer.scope.sources.addSource({\n source: component,\n consumer,\n lane,\n shouldValidateVersion,\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\nexport async function addFlattenedDependenciesToComponents(scope: Scope, components: Component[]) {\n loader.start('importing missing dependencies...');\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(scope, components);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n loader.stop();\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: bitCloudUsername || nextVersion?.username || 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\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 */\nexport function updateComponentsByTagResult(components: Component[], 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\nexport function getPublishedPackages(components: Component[]): 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\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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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/snapping",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.141",
|
|
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.
|
|
9
|
+
"version": "0.0.141"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -15,36 +15,41 @@
|
|
|
15
15
|
"p-map": "4.0.0",
|
|
16
16
|
"ramda": "0.27.1",
|
|
17
17
|
"semver": "7.3.4",
|
|
18
|
+
"node-fetch": "2.6.7",
|
|
19
|
+
"uuid": "8.3.2",
|
|
18
20
|
"@babel/runtime": "7.12.18",
|
|
19
21
|
"core-js": "^3.0.0",
|
|
20
22
|
"@teambit/harmony": "0.3.3",
|
|
21
23
|
"@teambit/bit-error": "0.0.394",
|
|
22
|
-
"@teambit/issues": "0.0.
|
|
23
|
-
"@teambit/cli": "0.0.
|
|
24
|
+
"@teambit/issues": "0.0.134",
|
|
25
|
+
"@teambit/cli": "0.0.554",
|
|
24
26
|
"@teambit/component-issues": "0.0.60",
|
|
25
|
-
"@teambit/logger": "0.0.
|
|
26
|
-
"@teambit/community": "0.0.
|
|
27
|
-
"@teambit/
|
|
28
|
-
"@teambit/
|
|
27
|
+
"@teambit/logger": "0.0.647",
|
|
28
|
+
"@teambit/community": "0.0.102",
|
|
29
|
+
"@teambit/dependency-resolver": "0.0.826",
|
|
30
|
+
"@teambit/insights": "0.0.826",
|
|
31
|
+
"@teambit/workspace": "0.0.826"
|
|
29
32
|
},
|
|
30
33
|
"devDependencies": {
|
|
31
34
|
"@types/lodash": "4.14.165",
|
|
32
35
|
"@types/semver": "7.3.4",
|
|
33
36
|
"fs-extra": "10.0.0",
|
|
34
37
|
"@types/fs-extra": "9.0.7",
|
|
38
|
+
"@types/node-fetch": "2.5.12",
|
|
39
|
+
"@types/uuid": "8.3.4",
|
|
35
40
|
"@types/mocha": "9.1.0",
|
|
36
41
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
37
42
|
"@types/jest": "^26.0.0",
|
|
38
43
|
"@types/react-dom": "^17.0.5",
|
|
39
44
|
"@types/react": "^17.0.8",
|
|
40
45
|
"@types/node": "12.20.4",
|
|
41
|
-
"@teambit/compiler": "0.0.
|
|
46
|
+
"@teambit/compiler": "0.0.826",
|
|
42
47
|
"@teambit/component.testing.mock-components": "0.0.8",
|
|
43
48
|
"@teambit/harmony.testing.load-aspect": "0.0.8",
|
|
44
49
|
"@teambit/workspace.testing.mock-workspace": "0.0.6"
|
|
45
50
|
},
|
|
46
51
|
"peerDependencies": {
|
|
47
|
-
"@teambit/legacy": "1.0.
|
|
52
|
+
"@teambit/legacy": "1.0.337",
|
|
48
53
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
49
54
|
"react": "^16.8.0 || ^17.0.0"
|
|
50
55
|
},
|
|
File without changes
|
|
Binary file
|