@teambit/snapping 0.0.89 → 0.0.92

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.
@@ -0,0 +1,23 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import { SnappingMain } from './snapping.main.runtime';
3
+ export default class ResetCmd implements Command {
4
+ private snapping;
5
+ name: string;
6
+ description: string;
7
+ arguments: {
8
+ name: string;
9
+ description: string;
10
+ }[];
11
+ group: string;
12
+ extendedDescription: string;
13
+ alias: string;
14
+ options: CommandOptions;
15
+ loader: boolean;
16
+ migration: boolean;
17
+ constructor(snapping: SnappingMain);
18
+ report([pattern, version]: [string, string], { all, force, soft }: {
19
+ all?: boolean;
20
+ force?: boolean;
21
+ soft?: boolean;
22
+ }): Promise<string>;
23
+ }
@@ -0,0 +1,105 @@
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.default = void 0;
13
+
14
+ function _defineProperty2() {
15
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+
17
+ _defineProperty2 = function () {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
24
+ function _bitError() {
25
+ const data = require("@teambit/bit-error");
26
+
27
+ _bitError = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ function _chalk() {
35
+ const data = _interopRequireDefault(require("chalk"));
36
+
37
+ _chalk = function () {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
43
+
44
+ function _constants() {
45
+ const data = require("@teambit/legacy/dist/constants");
46
+
47
+ _constants = function () {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ class ResetCmd {
55
+ constructor(snapping) {
56
+ this.snapping = snapping;
57
+ (0, _defineProperty2().default)(this, "name", 'reset [component-pattern] [component-version]');
58
+ (0, _defineProperty2().default)(this, "description", 'revert tagged or snapped versions for component(s)');
59
+ (0, _defineProperty2().default)(this, "arguments", [{
60
+ name: 'component-pattern',
61
+ description: _constants().COMPONENT_PATTERN_HELP
62
+ }, {
63
+ name: 'component-version',
64
+ description: 'the version to untag (semver for tags. hash for snaps)'
65
+ }]);
66
+ (0, _defineProperty2().default)(this, "group", 'development');
67
+ (0, _defineProperty2().default)(this, "extendedDescription", `https://${_constants().BASE_DOCS_DOMAIN}/components/tags#undoing-a-tag`);
68
+ (0, _defineProperty2().default)(this, "alias", '');
69
+ (0, _defineProperty2().default)(this, "options", [['a', 'all', 'revert tag/snap for all tagged/snapped components'], ['', 'soft', 'revert only soft-tags (components tagged with --soft flag)'], ['f', 'force', 'revert the tag even if used as a dependency. WARNING: components that depend on this tag will corrupt']]);
70
+ (0, _defineProperty2().default)(this, "loader", true);
71
+ (0, _defineProperty2().default)(this, "migration", true);
72
+ }
73
+
74
+ async report([pattern, version], {
75
+ all = false,
76
+ force = false,
77
+ soft = false
78
+ }) {
79
+ if (!pattern && !all) {
80
+ throw new (_bitError().BitError)('please specify a component-pattern or use --all flag');
81
+ }
82
+
83
+ if (pattern && all) {
84
+ throw new (_bitError().BitError)('please specify either a component-pattern or --all flag, not both');
85
+ }
86
+
87
+ const {
88
+ results,
89
+ isSoftUntag
90
+ } = await this.snapping.reset(pattern, version, force, soft);
91
+ const titleSuffix = isSoftUntag ? 'soft-untagged (are not candidate for tagging anymore)' : 'untagged';
92
+
93
+ const title = _chalk().default.green(`${results.length} component(s) were ${titleSuffix}:\n`);
94
+
95
+ const components = results.map(result => {
96
+ return `${_chalk().default.cyan(result.id.toStringWithoutVersion())}. version(s): ${result.versions.join(', ')}`;
97
+ });
98
+ return title + components.join('\n');
99
+ }
100
+
101
+ }
102
+
103
+ exports.default = ResetCmd;
104
+
105
+ //# sourceMappingURL=reset-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ResetCmd","constructor","snapping","name","description","COMPONENT_PATTERN_HELP","BASE_DOCS_DOMAIN","report","pattern","version","all","force","soft","BitError","results","isSoftUntag","reset","titleSuffix","title","chalk","green","length","components","map","result","cyan","id","toStringWithoutVersion","versions","join"],"sources":["reset-cmd.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { BASE_DOCS_DOMAIN, COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { SnappingMain } from './snapping.main.runtime';\n\nexport default class ResetCmd implements Command {\n name = 'reset [component-pattern] [component-version]';\n description = 'revert tagged or snapped versions for component(s)';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n {\n name: 'component-version',\n description: 'the version to untag (semver for tags. hash for snaps)',\n },\n ];\n group = 'development';\n extendedDescription = `https://${BASE_DOCS_DOMAIN}/components/tags#undoing-a-tag`;\n alias = '';\n options = [\n ['a', 'all', 'revert tag/snap for all tagged/snapped components'],\n ['', 'soft', 'revert only soft-tags (components tagged with --soft flag)'],\n [\n 'f',\n 'force',\n 'revert the tag even if used as a dependency. WARNING: components that depend on this tag will corrupt',\n ],\n ] as CommandOptions;\n loader = true;\n migration = true;\n\n constructor(private snapping: SnappingMain) {}\n\n async report(\n [pattern, version]: [string, string],\n { all = false, force = false, soft = false }: { all?: boolean; force?: boolean; soft?: boolean }\n ) {\n if (!pattern && !all) {\n throw new BitError('please specify a component-pattern or use --all flag');\n }\n if (pattern && all) {\n throw new BitError('please specify either a component-pattern or --all flag, not both');\n }\n const { results, isSoftUntag } = await this.snapping.reset(pattern, version, force, soft);\n const titleSuffix = isSoftUntag ? 'soft-untagged (are not candidate for tagging anymore)' : 'untagged';\n const title = chalk.green(`${results.length} component(s) were ${titleSuffix}:\\n`);\n const components = results.map((result) => {\n return `${chalk.cyan(result.id.toStringWithoutVersion())}. version(s): ${result.versions.join(', ')}`;\n });\n return title + components.join('\\n');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGe,MAAMA,QAAN,CAAkC;EA4B/CC,WAAW,CAASC,QAAT,EAAiC;IAAA,KAAxBA,QAAwB,GAAxBA,QAAwB;IAAA,8CA3BrC,+CA2BqC;IAAA,qDA1B9B,oDA0B8B;IAAA,mDAzBhC,CACV;MACEC,IAAI,EAAE,mBADR;MAEEC,WAAW,EAAEC;IAFf,CADU,EAKV;MACEF,IAAI,EAAE,mBADR;MAEEC,WAAW,EAAE;IAFf,CALU,CAyBgC;IAAA,+CAfpC,aAeoC;IAAA,6DAdrB,WAAUE,6BAAiB,gCAcN;IAAA,+CAbpC,EAaoC;IAAA,iDAZlC,CACR,CAAC,GAAD,EAAM,KAAN,EAAa,mDAAb,CADQ,EAER,CAAC,EAAD,EAAK,MAAL,EAAa,4DAAb,CAFQ,EAGR,CACE,GADF,EAEE,OAFF,EAGE,uGAHF,CAHQ,CAYkC;IAAA,gDAHnC,IAGmC;IAAA,mDAFhC,IAEgC;EAAE;;EAElC,MAANC,MAAM,CACV,CAACC,OAAD,EAAUC,OAAV,CADU,EAEV;IAAEC,GAAG,GAAG,KAAR;IAAeC,KAAK,GAAG,KAAvB;IAA8BC,IAAI,GAAG;EAArC,CAFU,EAGV;IACA,IAAI,CAACJ,OAAD,IAAY,CAACE,GAAjB,EAAsB;MACpB,MAAM,KAAIG,oBAAJ,EAAa,sDAAb,CAAN;IACD;;IACD,IAAIL,OAAO,IAAIE,GAAf,EAAoB;MAClB,MAAM,KAAIG,oBAAJ,EAAa,mEAAb,CAAN;IACD;;IACD,MAAM;MAAEC,OAAF;MAAWC;IAAX,IAA2B,MAAM,KAAKb,QAAL,CAAcc,KAAd,CAAoBR,OAApB,EAA6BC,OAA7B,EAAsCE,KAAtC,EAA6CC,IAA7C,CAAvC;IACA,MAAMK,WAAW,GAAGF,WAAW,GAAG,uDAAH,GAA6D,UAA5F;;IACA,MAAMG,KAAK,GAAGC,gBAAA,CAAMC,KAAN,CAAa,GAAEN,OAAO,CAACO,MAAO,sBAAqBJ,WAAY,KAA/D,CAAd;;IACA,MAAMK,UAAU,GAAGR,OAAO,CAACS,GAAR,CAAaC,MAAD,IAAY;MACzC,OAAQ,GAAEL,gBAAA,CAAMM,IAAN,CAAWD,MAAM,CAACE,EAAP,CAAUC,sBAAV,EAAX,CAA+C,iBAAgBH,MAAM,CAACI,QAAP,CAAgBC,IAAhB,CAAqB,IAArB,CAA2B,EAApG;IACD,CAFkB,CAAnB;IAGA,OAAOX,KAAK,GAAGI,UAAU,CAACO,IAAX,CAAgB,IAAhB,CAAf;EACD;;AA/C8C"}
@@ -7,6 +7,7 @@ import { TagResults, BasicTagParams } from '@teambit/legacy/dist/api/consumer/li
7
7
  import { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';
8
8
  import { Logger, LoggerMain } from '@teambit/logger';
9
9
  import { InsightsMain } from '@teambit/insights';
10
+ import { untagResult } from '@teambit/legacy/dist/scope/component-ops/untag-component';
10
11
  import { IssuesMain } from '@teambit/issues';
11
12
  export declare class SnappingMain {
12
13
  private workspace;
@@ -49,6 +50,14 @@ export declare class SnappingMain {
49
50
  forceDeploy?: boolean;
50
51
  unmodified?: boolean;
51
52
  }): Promise<SnapResults | null>;
53
+ /**
54
+ * remove tags/snaps that exist locally, which were not exported yet.
55
+ * once a tag/snap is exported, it's impossible to delete it as other components may depend on it
56
+ */
57
+ reset(componentPattern?: string, version?: string, force?: boolean, soft?: boolean): Promise<{
58
+ results: untagResult[];
59
+ isSoftUntag: boolean;
60
+ }>;
52
61
  private loadComponentsForTag;
53
62
  private throwForComponentIssues;
54
63
  private throwForLegacyDependenciesInsideHarmony;
@@ -301,6 +301,16 @@ function _failedLoadForTag() {
301
301
  return data;
302
302
  }
303
303
 
304
+ function _untagComponent() {
305
+ const data = require("@teambit/legacy/dist/scope/component-ops/untag-component");
306
+
307
+ _untagComponent = function () {
308
+ return data;
309
+ };
310
+
311
+ return data;
312
+ }
313
+
304
314
  function _issues() {
305
315
  const data = _interopRequireDefault(require("@teambit/issues"));
306
316
 
@@ -351,6 +361,16 @@ function _componentsHaveIssues() {
351
361
  return data;
352
362
  }
353
363
 
364
+ function _resetCmd() {
365
+ const data = _interopRequireDefault(require("./reset-cmd"));
366
+
367
+ _resetCmd = function () {
368
+ return data;
369
+ };
370
+
371
+ return data;
372
+ }
373
+
354
374
  const HooksManagerInstance = _hooks().default.getInstance();
355
375
 
356
376
  class SnappingMain {
@@ -584,6 +604,71 @@ class SnappingMain {
584
604
  return _bitId().BitIds.fromArray(bitIds);
585
605
  }
586
606
  }
607
+ /**
608
+ * remove tags/snaps that exist locally, which were not exported yet.
609
+ * once a tag/snap is exported, it's impossible to delete it as other components may depend on it
610
+ */
611
+
612
+
613
+ async reset(componentPattern, version, force = false, soft = false) {
614
+ if (!this.workspace) throw new (_exceptions().ConsumerNotFound)();
615
+ const consumer = this.workspace.consumer;
616
+ const currentLane = await consumer.getCurrentLaneObject();
617
+
618
+ const untag = async () => {
619
+ if (!componentPattern) {
620
+ return (0, _untagComponent().removeLocalVersionsForAllComponents)(consumer, currentLane, version, force);
621
+ }
622
+
623
+ const candidateComponents = await (0, _untagComponent().getComponentsWithOptionToUntag)(consumer, version);
624
+ const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern);
625
+
626
+ const idsMatchingPatternBitIds = _bitId().BitIds.fromArray(idsMatchingPattern.map(id => id._legacy));
627
+
628
+ const componentsToUntag = candidateComponents.filter(modelComponent => idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toBitId()));
629
+ return (0, _untagComponent().removeLocalVersionsForMultipleComponents)(componentsToUntag, currentLane, version, force, consumer.scope);
630
+ };
631
+
632
+ const softUntag = async () => {
633
+ const componentsList = new (_componentsList().default)(consumer);
634
+ const softTaggedComponents = componentsList.listSoftTaggedComponents();
635
+ const softTaggedComponentsIds = await this.workspace.resolveMultipleComponentIds(softTaggedComponents);
636
+ const idsToRemoveSoftTags = componentPattern ? this.workspace.scope.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds) : softTaggedComponentsIds;
637
+ return (0, _lodash().compact)(idsToRemoveSoftTags.map(componentId => {
638
+ var _componentMap$nextVer;
639
+
640
+ const componentMap = consumer.bitMap.getComponent(componentId._legacy, {
641
+ ignoreScopeAndVersion: true
642
+ });
643
+ const removedVersion = (_componentMap$nextVer = componentMap.nextVersion) === null || _componentMap$nextVer === void 0 ? void 0 : _componentMap$nextVer.version;
644
+ if (!removedVersion) return null;
645
+ componentMap.clearNextVersion();
646
+ return {
647
+ id: componentId._legacy,
648
+ versions: [removedVersion]
649
+ };
650
+ }));
651
+ };
652
+
653
+ let results;
654
+ const isRealUntag = !soft;
655
+
656
+ if (isRealUntag) {
657
+ results = await untag();
658
+ await consumer.scope.objects.persist();
659
+ const components = results.map(result => result.component);
660
+ await consumer.updateComponentsVersions(components);
661
+ } else {
662
+ results = await softUntag();
663
+ consumer.bitMap.markAsChanged();
664
+ }
665
+
666
+ await consumer.onDestroy();
667
+ return {
668
+ results,
669
+ isSoftUntag: !isRealUntag
670
+ };
671
+ }
587
672
 
588
673
  async loadComponentsForTag(ids) {
589
674
  const {
@@ -840,7 +925,8 @@ class SnappingMain {
840
925
  const snapping = new SnappingMain(workspace, logger, issues, insights);
841
926
  const snapCmd = new (_snapCmd().SnapCmd)(community.getBaseDomain(), snapping, logger);
842
927
  const tagCmd = new (_tagCmd().TagCmd)(community.getBaseDomain(), snapping, logger);
843
- cli.register(tagCmd, snapCmd);
928
+ const resetCmd = new (_resetCmd().default)(snapping);
929
+ cli.register(tagCmd, snapCmd, resetCmd);
844
930
  return snapping;
845
931
  }
846
932
 
@@ -1 +1 @@
1
- {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","tag","ids","message","version","editor","snapped","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","isLegacy","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","resolveUnmerged","packageManagerConfigRootDir","path","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","snap","skipAutoSnap","Error","LanesIsDisabled","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","idHasWildcard","bitId","getParsedId","componentStatus","getComponentStatusById","modified","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","filterComponentsByWildcard","loadComponents","toVersionLatest","shouldReloadComponents","componentsWithRelativePaths","componentsWithFilesNotDir","componentsWithCustomModuleResolution","forEach","component","componentMap","rootDir","hasRelativePaths","getIssue","IssuesClasses","RelativeComponentsAuthored","hasCustomModuleResolutions","MissingCustomModuleResolutionLinks","trackDir","changeRootDirAndUpdateFilesAccordingly","push","toStringWithoutVersion","FailedLoadForTag","sort","clearCache","reloadedComponents","legacyComponents","delete","issuesToIgnoreFromFlag","split","map","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","includes","CircularDependencies","addInsightsAsComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","filter","shouldBlockTagging","ComponentsHaveIssues","throwForComponent","dependenciesIds","getAllDependenciesIds","Promise","all","depId","hasVersion","modelComp","getModelComponentIfExist","loadVersion","objects","pMap","concurrency","concurrentComponentsLimit","includeUnmodified","getComponentsToTagLegacy","softTaggedComponents","listSoftTaggedComponents","tagPendingBitIds","tagPendingComponentsIds","resolveMultipleComponentIds","listSnappedComponentsOnMain","snappedComponentsIds","toBitId","componentIds","pMapSeries","idWithoutVer","allIds","filterIdsFromPoolIdsByPattern","componentId","changeVersion","resolveComponentId","_legacy","compact","flat","tagPendingComponentsLatest","latestVersions","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapping","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","MainRuntime","addRuntime"],"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 { LanesIsDisabled } from '@teambit/legacy/dist/consumer/lanes/exceptions/lanes-is-disabled';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport { FailedLoadForTag } from '@teambit/legacy/dist/consumer/component/exceptions/failed-load-for-tag';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport class SnappingMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain\n ) {}\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n version,\n editor = '',\n snapped = 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 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(unmodified, exactVersion, persist, ids, snapped);\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n if (this.workspace.isLegacy) {\n persist = true;\n }\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n consumerComponents: components,\n ids: legacyBitIds,\n scope: this.workspace.scope.legacyScope,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n consumer: this.workspace.consumer,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n resolveUnmerged: false,\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 id, // @todo: rename to \"patterns\"\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n resolveUnmerged = false,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n id?: string;\n legacyBitIds?: BitIds;\n resolveUnmerged?: 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 (id && legacyBitIds) throw new Error(`please pass either id or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n if (consumer.isLegacy) throw new LanesIsDisabled();\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap());\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n scope: this.workspace.scope.legacyScope,\n message,\n consumer: this.workspace.consumer,\n skipTests,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n resolveUnmerged,\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(): Promise<BitIds | null> {\n const idHasWildcard = id && hasWildcard(id);\n if (id && !idHasWildcard) {\n const bitId = consumer.getParsedId(id);\n if (!unmodified) {\n const componentStatus = await consumer.getComponentStatusById(bitId);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (componentStatus.modified === false) return null;\n }\n return new BitIds(bitId);\n }\n const tagPendingComponents = unmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n if (R.isEmpty(tagPendingComponents)) return null;\n const bitIds = idHasWildcard\n ? ComponentsList.filterComponentsByWildcard(tagPendingComponents, id)\n : tagPendingComponents;\n return BitIds.fromArray(bitIds);\n }\n }\n\n private async loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n if (this.workspace.isLegacy) {\n return components;\n }\n let shouldReloadComponents = false;\n const componentsWithRelativePaths: string[] = [];\n const componentsWithFilesNotDir: string[] = [];\n const componentsWithCustomModuleResolution: string[] = [];\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (componentMap.rootDir) return;\n const hasRelativePaths = component.issues?.getIssue(IssuesClasses.RelativeComponentsAuthored);\n const hasCustomModuleResolutions = component.issues?.getIssue(IssuesClasses.MissingCustomModuleResolutionLinks);\n // leaving this because it can be helpful for users upgrade from legacy\n if (componentMap.trackDir && !hasRelativePaths) {\n componentMap.changeRootDirAndUpdateFilesAccordingly(componentMap.trackDir);\n shouldReloadComponents = true;\n return;\n }\n if (hasRelativePaths) {\n componentsWithRelativePaths.push(component.id.toStringWithoutVersion());\n }\n if (!componentMap.trackDir) {\n componentsWithFilesNotDir.push(component.id.toStringWithoutVersion());\n }\n if (hasCustomModuleResolutions) {\n componentsWithCustomModuleResolution.push(component.id.toStringWithoutVersion());\n }\n });\n if (componentsWithRelativePaths.length || componentsWithFilesNotDir.length) {\n throw new FailedLoadForTag(\n componentsWithRelativePaths.sort(),\n componentsWithFilesNotDir.sort(),\n componentsWithCustomModuleResolution.sort()\n );\n }\n if (!shouldReloadComponents) return components;\n this.workspace.clearCache();\n const { components: reloadedComponents } = await this.workspace.consumer.loadComponents(ids);\n return reloadedComponents;\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], ignoreIssues?: string) {\n legacyComponents.forEach((component) => {\n if (this.workspace.isLegacy && component.issues) {\n component.issues.delete(IssuesClasses.RelativeComponentsAuthored);\n }\n });\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n if (!this.workspace.isLegacy) {\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\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n if (this.workspace.isLegacy) {\n return;\n }\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean\n ): Promise<{ bitIds: BitId[]; warnings: string[] }> {\n if (this.workspace.isLegacy) {\n return this.getComponentsToTagLegacy(includeUnmodified, exactVersion, persist, ids, snapped);\n }\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 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 private async getComponentsToTagLegacy(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean\n ): Promise<{ bitIds: BitId[]; warnings: string[] }> {\n const warnings: string[] = [];\n const componentsList = new ComponentsList(this.workspace.consumer);\n if (persist) {\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n return { bitIds: softTaggedComponents, warnings: [] };\n }\n\n const tagPendingComponents = includeUnmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n\n const snappedComponents = await componentsList.listSnappedComponentsOnMain();\n const snappedComponentsIds = snappedComponents.map((c) => c.toBitId());\n\n if (ids.length) {\n const bitIds = await Promise.all(\n ids.map(async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idHasWildcard = hasWildcard(id);\n if (idHasWildcard) {\n const allIds = ComponentsList.filterComponentsByWildcard(tagPendingComponents, idWithoutVer);\n return allIds.map((bitId) => bitId.changeVersion(version));\n }\n const bitId = this.workspace.consumer.getParsedId(idWithoutVer);\n if (!includeUnmodified) {\n const componentStatus = await this.workspace.consumer.getComponentStatusById(bitId);\n if (componentStatus.modified === false) return null;\n }\n return bitId.changeVersion(version);\n })\n );\n\n return { bitIds: compact(bitIds.flat()), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n tagPendingComponents.push(...snappedComponentsIds);\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(\n tagPendingComponents,\n false\n );\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingComponents.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, CLIAspect, CommunityAspect, LoggerAspect, IssuesAspect, InsightsAspect];\n static runtime = MainRuntime;\n static async provider([workspace, cli, community, loggerMain, issues, insights]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(workspace, logger, issues, insights);\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(community.getBaseDomain(), snapping, logger);\n cli.register(tagCmd, snapCmd);\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;;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;;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;;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"}
1
+ {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","tag","ids","message","version","editor","snapped","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","isLegacy","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","resolveUnmerged","packageManagerConfigRootDir","path","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","snap","skipAutoSnap","Error","LanesIsDisabled","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","idHasWildcard","bitId","getParsedId","componentStatus","getComponentStatusById","modified","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","filterComponentsByWildcard","reset","componentPattern","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","idsMatchingPatternBitIds","map","_legacy","componentsToUntag","filter","modelComponent","hasWithoutVersion","toBitId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponents","listSoftTaggedComponents","softTaggedComponentsIds","resolveMultipleComponentIds","idsToRemoveSoftTags","filterIdsFromPoolIdsByPattern","compact","componentId","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","results","isRealUntag","objects","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","loadComponents","toVersionLatest","shouldReloadComponents","componentsWithRelativePaths","componentsWithFilesNotDir","componentsWithCustomModuleResolution","forEach","rootDir","hasRelativePaths","getIssue","IssuesClasses","RelativeComponentsAuthored","hasCustomModuleResolutions","MissingCustomModuleResolutionLinks","trackDir","changeRootDirAndUpdateFilesAccordingly","push","toStringWithoutVersion","FailedLoadForTag","sort","clearCache","reloadedComponents","legacyComponents","delete","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","includes","CircularDependencies","addInsightsAsComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","throwForComponent","dependenciesIds","getAllDependenciesIds","Promise","all","depId","hasVersion","modelComp","getModelComponentIfExist","loadVersion","pMap","concurrency","concurrentComponentsLimit","includeUnmodified","getComponentsToTagLegacy","tagPendingBitIds","tagPendingComponentsIds","listSnappedComponentsOnMain","snappedComponentsIds","componentIds","pMapSeries","idWithoutVer","allIds","changeVersion","resolveComponentId","flat","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 { LanesIsDisabled } from '@teambit/legacy/dist/consumer/lanes/exceptions/lanes-is-disabled';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport { FailedLoadForTag } from '@teambit/legacy/dist/consumer/component/exceptions/failed-load-for-tag';\nimport {\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 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 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(unmodified, exactVersion, persist, ids, snapped);\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n if (this.workspace.isLegacy) {\n persist = true;\n }\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n consumerComponents: components,\n ids: legacyBitIds,\n scope: this.workspace.scope.legacyScope,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n consumer: this.workspace.consumer,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n resolveUnmerged: false,\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 id, // @todo: rename to \"patterns\"\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n resolveUnmerged = false,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n id?: string;\n legacyBitIds?: BitIds;\n resolveUnmerged?: 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 (id && legacyBitIds) throw new Error(`please pass either id or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n if (consumer.isLegacy) throw new LanesIsDisabled();\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap());\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n scope: this.workspace.scope.legacyScope,\n message,\n consumer: this.workspace.consumer,\n skipTests,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n resolveUnmerged,\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(): Promise<BitIds | null> {\n const idHasWildcard = id && hasWildcard(id);\n if (id && !idHasWildcard) {\n const bitId = consumer.getParsedId(id);\n if (!unmodified) {\n const componentStatus = await consumer.getComponentStatusById(bitId);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (componentStatus.modified === false) return null;\n }\n return new BitIds(bitId);\n }\n const tagPendingComponents = unmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n if (R.isEmpty(tagPendingComponents)) return null;\n const bitIds = idHasWildcard\n ? ComponentsList.filterComponentsByWildcard(tagPendingComponents, id)\n : tagPendingComponents;\n return BitIds.fromArray(bitIds);\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 version?: string,\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, version, force);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(consumer, version);\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, version, 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 if (this.workspace.isLegacy) {\n return components;\n }\n let shouldReloadComponents = false;\n const componentsWithRelativePaths: string[] = [];\n const componentsWithFilesNotDir: string[] = [];\n const componentsWithCustomModuleResolution: string[] = [];\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (componentMap.rootDir) return;\n const hasRelativePaths = component.issues?.getIssue(IssuesClasses.RelativeComponentsAuthored);\n const hasCustomModuleResolutions = component.issues?.getIssue(IssuesClasses.MissingCustomModuleResolutionLinks);\n // leaving this because it can be helpful for users upgrade from legacy\n if (componentMap.trackDir && !hasRelativePaths) {\n componentMap.changeRootDirAndUpdateFilesAccordingly(componentMap.trackDir);\n shouldReloadComponents = true;\n return;\n }\n if (hasRelativePaths) {\n componentsWithRelativePaths.push(component.id.toStringWithoutVersion());\n }\n if (!componentMap.trackDir) {\n componentsWithFilesNotDir.push(component.id.toStringWithoutVersion());\n }\n if (hasCustomModuleResolutions) {\n componentsWithCustomModuleResolution.push(component.id.toStringWithoutVersion());\n }\n });\n if (componentsWithRelativePaths.length || componentsWithFilesNotDir.length) {\n throw new FailedLoadForTag(\n componentsWithRelativePaths.sort(),\n componentsWithFilesNotDir.sort(),\n componentsWithCustomModuleResolution.sort()\n );\n }\n if (!shouldReloadComponents) return components;\n this.workspace.clearCache();\n const { components: reloadedComponents } = await this.workspace.consumer.loadComponents(ids);\n return reloadedComponents;\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], ignoreIssues?: string) {\n legacyComponents.forEach((component) => {\n if (this.workspace.isLegacy && component.issues) {\n component.issues.delete(IssuesClasses.RelativeComponentsAuthored);\n }\n });\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n if (!this.workspace.isLegacy) {\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\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n if (this.workspace.isLegacy) {\n return;\n }\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean\n ): Promise<{ bitIds: BitId[]; warnings: string[] }> {\n if (this.workspace.isLegacy) {\n return this.getComponentsToTagLegacy(includeUnmodified, exactVersion, persist, ids, snapped);\n }\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 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 private async getComponentsToTagLegacy(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean\n ): Promise<{ bitIds: BitId[]; warnings: string[] }> {\n const warnings: string[] = [];\n const componentsList = new ComponentsList(this.workspace.consumer);\n if (persist) {\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n return { bitIds: softTaggedComponents, warnings: [] };\n }\n\n const tagPendingComponents = includeUnmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n\n const snappedComponents = await componentsList.listSnappedComponentsOnMain();\n const snappedComponentsIds = snappedComponents.map((c) => c.toBitId());\n\n if (ids.length) {\n const bitIds = await Promise.all(\n ids.map(async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idHasWildcard = hasWildcard(id);\n if (idHasWildcard) {\n const allIds = ComponentsList.filterComponentsByWildcard(tagPendingComponents, idWithoutVer);\n return allIds.map((bitId) => bitId.changeVersion(version));\n }\n const bitId = this.workspace.consumer.getParsedId(idWithoutVer);\n if (!includeUnmodified) {\n const componentStatus = await this.workspace.consumer.getComponentStatusById(bitId);\n if (componentStatus.modified === false) return null;\n }\n return bitId.changeVersion(version);\n })\n );\n\n return { bitIds: compact(bitIds.flat()), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n tagPendingComponents.push(...snappedComponentsIds);\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(\n tagPendingComponents,\n false\n );\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingComponents.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, CLIAspect, CommunityAspect, LoggerAspect, IssuesAspect, InsightsAspect];\n static runtime = MainRuntime;\n static async provider([workspace, cli, community, loggerMain, issues, insights]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(workspace, logger, issues, insights);\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(community.getBaseDomain(), 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;;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;;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;;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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/snapping",
3
- "version": "0.0.89",
3
+ "version": "0.0.92",
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.89"
9
+ "version": "0.0.92"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -19,13 +19,13 @@
19
19
  "core-js": "^3.0.0",
20
20
  "@teambit/harmony": "0.3.3",
21
21
  "@teambit/bit-error": "0.0.394",
22
- "@teambit/issues": "0.0.82",
23
- "@teambit/cli": "0.0.512",
24
- "@teambit/component-issues": "0.0.55",
25
- "@teambit/logger": "0.0.605",
26
- "@teambit/community": "0.0.60",
27
- "@teambit/insights": "0.0.774",
28
- "@teambit/workspace": "0.0.774"
22
+ "@teambit/issues": "0.0.85",
23
+ "@teambit/cli": "0.0.515",
24
+ "@teambit/component-issues": "0.0.56",
25
+ "@teambit/logger": "0.0.608",
26
+ "@teambit/community": "0.0.63",
27
+ "@teambit/insights": "0.0.777",
28
+ "@teambit/workspace": "0.0.777"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/lodash": "4.14.165",
@@ -38,13 +38,13 @@
38
38
  "@types/react-dom": "^17.0.5",
39
39
  "@types/react": "^17.0.8",
40
40
  "@types/node": "12.20.4",
41
- "@teambit/compiler": "0.0.774",
41
+ "@teambit/compiler": "0.0.777",
42
42
  "@teambit/component.testing.mock-components": "0.0.6",
43
43
  "@teambit/harmony.testing.load-aspect": "0.0.6",
44
44
  "@teambit/workspace.testing.mock-workspace": "0.0.5"
45
45
  },
46
46
  "peerDependencies": {
47
- "@teambit/legacy": "1.0.293",
47
+ "@teambit/legacy": "1.0.296",
48
48
  "react-dom": "^16.8.0 || ^17.0.0",
49
49
  "react": "^16.8.0 || ^17.0.0"
50
50
  },
@@ -72,7 +72,7 @@
72
72
  "react": "-"
73
73
  },
74
74
  "peerDependencies": {
75
- "@teambit/legacy": "1.0.293",
75
+ "@teambit/legacy": "1.0.296",
76
76
  "react-dom": "^16.8.0 || ^17.0.0",
77
77
  "react": "^16.8.0 || ^17.0.0"
78
78
  }