@teambit/snapping 0.0.257 → 0.0.259

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.
@@ -7,6 +7,16 @@ export declare type SnapDataPerCompRaw = {
7
7
  aspects?: Record<string, any>;
8
8
  message?: string;
9
9
  };
10
+ declare type SnapFromScopeOptions = {
11
+ push?: boolean;
12
+ message?: string;
13
+ lane?: string;
14
+ ignoreIssues?: string;
15
+ build?: boolean;
16
+ skipTests?: boolean;
17
+ disableSnapPipeline?: boolean;
18
+ forceDeploy?: boolean;
19
+ };
10
20
  export declare class SnapFromScopeCmd implements Command {
11
21
  private snapping;
12
22
  private logger;
@@ -19,14 +29,8 @@ export declare class SnapFromScopeCmd implements Command {
19
29
  private: boolean;
20
30
  migration: boolean;
21
31
  constructor(snapping: SnappingMain, logger: Logger);
22
- report([data]: [string], { push, message, ignoreIssues, build, skipTests, disableSnapPipeline, forceDeploy, }: {
23
- push?: boolean;
24
- message?: string;
25
- ignoreIssues?: string;
26
- build?: boolean;
27
- skipTests?: boolean;
28
- disableSnapPipeline?: boolean;
29
- forceDeploy?: boolean;
30
- }): Promise<string>;
32
+ report([data]: [string], options: SnapFromScopeOptions): Promise<string>;
33
+ json([data]: [string], { push, message, lane, ignoreIssues, build, skipTests, disableSnapPipeline, forceDeploy, }: SnapFromScopeOptions): Promise<import("./snapping.main.runtime").SnapFromScopeResults>;
31
34
  private parseData;
32
35
  }
36
+ export {};
@@ -28,13 +28,6 @@ function _componentIssues() {
28
28
  };
29
29
  return data;
30
30
  }
31
- function _constants() {
32
- const data = require("@teambit/legacy/dist/constants");
33
- _constants = function () {
34
- return data;
35
- };
36
- return data;
37
- }
38
31
  function _bitError() {
39
32
  const data = require("@teambit/bit-error");
40
33
  _bitError = function () {
@@ -59,16 +52,27 @@ the input data is a stringified JSON of an array of the following object.
59
52
  an example of the final data: '[{"componentId":"ci.remote2/comp-b","message": "first snap"}]'
60
53
  `);
61
54
  (0, _defineProperty2().default)(this, "alias", '');
62
- (0, _defineProperty2().default)(this, "options", [['', 'push', 'export the updated objects to the original scopes once done'], ['m', 'message <message>', 'log message describing the latest changes'], ['', 'build', 'run the build pipeline'], ['', 'skip-tests', 'skip running component tests during snap process'], ['', 'disable-snap-pipeline', 'skip the snap pipeline'], ['', 'force-deploy', 'run the deploy pipeline although the build failed'], ['i', 'ignore-issues [issues]', `ignore component issues (shown in "bit status" as "issues found"), issues to ignore:
55
+ (0, _defineProperty2().default)(this, "options", [['', 'push', 'export the updated objects to the original scopes once done'], ['m', 'message <message>', 'log message describing the latest changes'], ['', 'lane <lane-id>', 'fetch the components from the given lane'], ['', 'build', 'run the build pipeline'], ['', 'skip-tests', 'skip running component tests during snap process'], ['', 'disable-snap-pipeline', 'skip the snap pipeline'], ['', 'force-deploy', 'run the deploy pipeline although the build failed'], ['i', 'ignore-issues [issues]', `ignore component issues (shown in "bit status" as "issues found"), issues to ignore:
63
56
  [${Object.keys(_componentIssues().IssuesClasses).join(', ')}]
64
- to ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify "*".`]]);
57
+ to ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify "*".`], ['j', 'json', 'output as json format']]);
65
58
  (0, _defineProperty2().default)(this, "loader", true);
66
59
  (0, _defineProperty2().default)(this, "private", true);
67
60
  (0, _defineProperty2().default)(this, "migration", true);
68
61
  }
69
- async report([data], {
62
+ async report([data], options) {
63
+ const results = await this.json([data], options);
64
+ const {
65
+ snappedIds,
66
+ exportedIds
67
+ } = results;
68
+ const snappedOutput = `${_chalk().default.bold('snapped components')}\n${snappedIds.join('\n')}`;
69
+ const exportedOutput = exportedIds && exportedIds.length ? `\n\n${_chalk().default.bold('exported components')}\n${exportedIds.join('\n')}` : '';
70
+ return `${snappedOutput}${exportedOutput}`;
71
+ }
72
+ async json([data], {
70
73
  push = false,
71
74
  message = '',
75
+ lane,
72
76
  ignoreIssues,
73
77
  build = false,
74
78
  skipTests = false,
@@ -83,44 +87,14 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
83
87
  const results = await this.snapping.snapFromScope(snapDataPerCompRaw, {
84
88
  push,
85
89
  message,
90
+ lane,
86
91
  ignoreIssues,
87
92
  build,
88
93
  skipTests,
89
94
  disableTagAndSnapPipelines,
90
95
  forceDeploy
91
96
  });
92
- if (!results) return _chalk().default.yellow(_constants().NOTHING_TO_SNAP_MSG);
93
- const {
94
- snappedComponents,
95
- autoSnappedResults,
96
- warnings,
97
- newComponents,
98
- laneName
99
- } = results;
100
- const changedComponents = snappedComponents.filter(component => !newComponents.searchWithoutVersion(component.id));
101
- const addedComponents = snappedComponents.filter(component => newComponents.searchWithoutVersion(component.id));
102
- const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;
103
- const warningsOutput = warnings && warnings.length ? `${_chalk().default.yellow(warnings.join('\n'))}\n\n` : '';
104
- const tagExplanation = `\n(use "bit export" to push these components to a remote")
105
- (use "bit reset" to unstage versions)\n`;
106
- const outputComponents = comps => {
107
- return comps.map(component => {
108
- let componentOutput = ` > ${component.id.toString()}`;
109
- const autoTag = autoSnappedResults.filter(result => result.triggeredBy.searchWithoutScopeAndVersion(component.id));
110
- if (autoTag.length) {
111
- const autoTagComp = autoTag.map(a => a.component.id.toString());
112
- componentOutput += `\n ${_constants().AUTO_SNAPPED_MSG} (${autoTagComp.length} total):
113
- ${autoTagComp.join('\n ')}`;
114
- }
115
- return componentOutput;
116
- }).join('\n');
117
- };
118
- const outputIfExists = (label, explanation, components) => {
119
- if (!components.length) return '';
120
- return `\n${_chalk().default.underline(label)}\n(${explanation})\n${outputComponents(components)}\n`;
121
- };
122
- const laneStr = laneName ? ` on "${laneName}" lane` : '';
123
- return warningsOutput + _chalk().default.green(`${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`) + tagExplanation + outputIfExists('new components', 'first version for components', addedComponents) + outputIfExists('changed components', 'components that got a version bump', changedComponents);
97
+ return results;
124
98
  }
125
99
  parseData(data) {
126
100
  let dataParsed;
@@ -1 +1 @@
1
- {"version":3,"names":["SnapFromScopeCmd","constructor","snapping","logger","Object","keys","IssuesClasses","join","report","data","push","message","ignoreIssues","build","skipTests","disableSnapPipeline","forceDeploy","disableTagAndSnapPipelines","BitError","snapDataPerCompRaw","parseData","results","snapFromScope","chalk","yellow","NOTHING_TO_SNAP_MSG","snappedComponents","autoSnappedResults","warnings","newComponents","laneName","changedComponents","filter","component","searchWithoutVersion","id","addedComponents","autoTaggedCount","length","warningsOutput","tagExplanation","outputComponents","comps","map","componentOutput","toString","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_SNAPPED_MSG","outputIfExists","label","explanation","components","underline","laneStr","green","dataParsed","JSON","parse","err","Error","Array","isArray","forEach","dataItem","componentId"],"sources":["snap-from-scope.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { NOTHING_TO_SNAP_MSG, AUTO_SNAPPED_MSG } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { SnappingMain, SnapResults } from './snapping.main.runtime';\n\nexport type SnapDataPerCompRaw = {\n componentId: string;\n dependencies?: string[];\n aspects?: Record<string, any>;\n message?: string;\n};\n\nexport class SnapFromScopeCmd implements Command {\n name = '_snap <data>';\n description = 'snap components from a bare-scope';\n extendedDescription = `this command should be running from a new bare scope, it first imports the components it needs and then processes the snap.\nthe input data is a stringified JSON of an array of the following object.\n{\n componentId: string; // ids always have scope, so it's safe to parse them from string\n dependencies?: string[]; // e.g. [teambit/compiler@1.0.0, teambit/tester@1.0.0]\n aspects?: Record<string,any> // e.g. { \"teambit.react/react\": {}, \"teambit.envs/envs\": { \"env\": \"teambit.react/react\" } }\n message?: string; // tag-message.\n}\nan example of the final data: '[{\"componentId\":\"ci.remote2/comp-b\",\"message\": \"first snap\"}]'\n`;\n alias = '';\n options = [\n ['', 'push', 'export the updated objects to the original scopes once done'],\n ['m', 'message <message>', 'log message describing the latest changes'],\n ['', 'build', 'run the build pipeline'],\n ['', 'skip-tests', 'skip running component tests during snap process'],\n ['', 'disable-snap-pipeline', 'skip the snap pipeline'],\n ['', 'force-deploy', 'run the deploy pipeline although the build failed'],\n [\n 'i',\n 'ignore-issues [issues]',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n async report(\n [data]: [string],\n {\n push = false,\n message = '',\n ignoreIssues,\n build = false,\n skipTests = false,\n disableSnapPipeline = false,\n forceDeploy = false,\n }: {\n push?: boolean;\n message?: string;\n ignoreIssues?: string;\n build?: boolean;\n skipTests?: boolean;\n disableSnapPipeline?: boolean;\n forceDeploy?: boolean;\n }\n ) {\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-snap-pipeline, but not both');\n }\n\n const snapDataPerCompRaw = this.parseData(data);\n\n const results = await this.snapping.snapFromScope(snapDataPerCompRaw, {\n push,\n message,\n ignoreIssues,\n build,\n skipTests,\n disableTagAndSnapPipelines,\n forceDeploy,\n });\n\n if (!results) return chalk.yellow(NOTHING_TO_SNAP_MSG);\n const { snappedComponents, autoSnappedResults, warnings, newComponents, laneName }: SnapResults = results;\n const changedComponents = snappedComponents.filter(\n (component) => !newComponents.searchWithoutVersion(component.id)\n );\n const addedComponents = snappedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const tagExplanation = `\\n(use \"bit export\" to push these components to a remote\")\n(use \"bit reset\" to unstage versions)\\n`;\n\n const outputComponents = (comps) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${component.id.toString()}`;\n const autoTag = autoSnappedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => a.component.id.toString());\n componentOutput += `\\n ${AUTO_SNAPPED_MSG} (${autoTagComp.length} total):\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n const laneStr = laneName ? ` on \"${laneName}\" lane` : '';\n\n return (\n warningsOutput +\n chalk.green(`${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`) +\n tagExplanation +\n outputIfExists('new components', 'first version for components', addedComponents) +\n outputIfExists('changed components', 'components that got a version bump', changedComponents)\n );\n }\n private parseData(data: string): SnapDataPerCompRaw[] {\n let dataParsed: unknown;\n try {\n dataParsed = JSON.parse(data);\n } catch (err: any) {\n throw new Error(`failed parsing the data entered as JSON. err ${err.message}`);\n }\n if (!Array.isArray(dataParsed)) {\n throw new Error('expect data to be an array');\n }\n dataParsed.forEach((dataItem) => {\n if (!dataItem.componentId) throw new Error('expect data item to have \"componentId\" prop');\n });\n return dataParsed;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["SnapFromScopeCmd","constructor","snapping","logger","Object","keys","IssuesClasses","join","report","data","options","results","json","snappedIds","exportedIds","snappedOutput","chalk","bold","exportedOutput","length","push","message","lane","ignoreIssues","build","skipTests","disableSnapPipeline","forceDeploy","disableTagAndSnapPipelines","BitError","snapDataPerCompRaw","parseData","snapFromScope","dataParsed","JSON","parse","err","Error","Array","isArray","forEach","dataItem","componentId"],"sources":["snap-from-scope.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { SnappingMain } from './snapping.main.runtime';\n\nexport type SnapDataPerCompRaw = {\n componentId: string;\n dependencies?: string[];\n aspects?: Record<string, any>;\n message?: string;\n};\n\ntype SnapFromScopeOptions = {\n push?: boolean;\n message?: string;\n lane?: string;\n ignoreIssues?: string;\n build?: boolean;\n skipTests?: boolean;\n disableSnapPipeline?: boolean;\n forceDeploy?: boolean;\n};\n\nexport class SnapFromScopeCmd implements Command {\n name = '_snap <data>';\n description = 'snap components from a bare-scope';\n extendedDescription = `this command should be running from a new bare scope, it first imports the components it needs and then processes the snap.\nthe input data is a stringified JSON of an array of the following object.\n{\n componentId: string; // ids always have scope, so it's safe to parse them from string\n dependencies?: string[]; // e.g. [teambit/compiler@1.0.0, teambit/tester@1.0.0]\n aspects?: Record<string,any> // e.g. { \"teambit.react/react\": {}, \"teambit.envs/envs\": { \"env\": \"teambit.react/react\" } }\n message?: string; // tag-message.\n}\nan example of the final data: '[{\"componentId\":\"ci.remote2/comp-b\",\"message\": \"first snap\"}]'\n`;\n alias = '';\n options = [\n ['', 'push', 'export the updated objects to the original scopes once done'],\n ['m', 'message <message>', 'log message describing the latest changes'],\n ['', 'lane <lane-id>', 'fetch the components from the given lane'],\n ['', 'build', 'run the build pipeline'],\n ['', 'skip-tests', 'skip running component tests during snap process'],\n ['', 'disable-snap-pipeline', 'skip the snap pipeline'],\n ['', 'force-deploy', 'run the deploy pipeline although the build failed'],\n [\n 'i',\n 'ignore-issues [issues]',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ['j', 'json', 'output as json format'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n async report([data]: [string], options: SnapFromScopeOptions) {\n const results = await this.json([data], options);\n\n const { snappedIds, exportedIds } = results;\n\n const snappedOutput = `${chalk.bold('snapped components')}\\n${snappedIds.join('\\n')}`;\n const exportedOutput =\n exportedIds && exportedIds.length ? `\\n\\n${chalk.bold('exported components')}\\n${exportedIds.join('\\n')}` : '';\n\n return `${snappedOutput}${exportedOutput}`;\n }\n async json(\n [data]: [string],\n {\n push = false,\n message = '',\n lane,\n ignoreIssues,\n build = false,\n skipTests = false,\n disableSnapPipeline = false,\n forceDeploy = false,\n }: SnapFromScopeOptions\n ) {\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-snap-pipeline, but not both');\n }\n\n const snapDataPerCompRaw = this.parseData(data);\n\n const results = await this.snapping.snapFromScope(snapDataPerCompRaw, {\n push,\n message,\n lane,\n ignoreIssues,\n build,\n skipTests,\n disableTagAndSnapPipelines,\n forceDeploy,\n });\n\n return results;\n }\n private parseData(data: string): SnapDataPerCompRaw[] {\n let dataParsed: unknown;\n try {\n dataParsed = JSON.parse(data);\n } catch (err: any) {\n throw new Error(`failed parsing the data entered as JSON. err ${err.message}`);\n }\n if (!Array.isArray(dataParsed)) {\n throw new Error('expect data to be an array');\n }\n dataParsed.forEach((dataItem) => {\n if (!dataItem.componentId) throw new Error('expect data item to have \"componentId\" prop');\n });\n return dataParsed;\n }\n}\n"],"mappings":"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"}
@@ -16,6 +16,7 @@ import { IssuesMain } from '@teambit/issues';
16
16
  import { Component } from '@teambit/component';
17
17
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
18
18
  import { BuilderMain } from '@teambit/builder';
19
+ import { ImporterMain } from '@teambit/importer';
19
20
  import { ExportMain } from '@teambit/export';
20
21
  import { ComponentID } from '@teambit/component-id';
21
22
  import { BitObject } from '@teambit/legacy/dist/scope/objects';
@@ -37,6 +38,10 @@ export declare type SnapResults = {
37
38
  newComponents: BitIds;
38
39
  laneName: string | null;
39
40
  };
41
+ export declare type SnapFromScopeResults = {
42
+ snappedIds: string[];
43
+ exportedIds?: string[];
44
+ };
40
45
  export declare type TagResults = {
41
46
  taggedComponents: ConsumerComponent[];
42
47
  autoTaggedResults: AutoTagResult[];
@@ -54,8 +59,9 @@ export declare class SnappingMain {
54
59
  private scope;
55
60
  private exporter;
56
61
  private builder;
62
+ private importer;
57
63
  private objectsRepo;
58
- constructor(workspace: Workspace, logger: Logger, issues: IssuesMain, insights: InsightsMain, dependencyResolver: DependencyResolverMain, scope: ScopeMain, exporter: ExportMain, builder: BuilderMain);
64
+ constructor(workspace: Workspace, logger: Logger, issues: IssuesMain, insights: InsightsMain, dependencyResolver: DependencyResolverMain, scope: ScopeMain, exporter: ExportMain, builder: BuilderMain, importer: ImporterMain);
59
65
  /**
60
66
  * tag the given component ids or all modified/new components if "all" param is set.
61
67
  * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias
@@ -83,7 +89,8 @@ export declare class SnappingMain {
83
89
  snapFromScope(snapDataPerCompRaw: SnapDataPerCompRaw[], params: {
84
90
  push?: boolean;
85
91
  ignoreIssues?: string;
86
- } & Partial<BasicTagParams>): Promise<SnapResults | null>;
92
+ lane?: string;
93
+ } & Partial<BasicTagParams>): Promise<SnapFromScopeResults>;
87
94
  /**
88
95
  * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.
89
96
  * once a component is snapped on a lane, it becomes part of it.
@@ -133,7 +140,7 @@ export declare class SnappingMain {
133
140
  static slots: never[];
134
141
  static dependencies: import("@teambit/harmony").Aspect[];
135
142
  static runtime: import("@teambit/harmony").RuntimeDefinition;
136
- static provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver, scope, exporter, builder,]: [
143
+ static provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver, scope, exporter, builder, importer,]: [
137
144
  Workspace,
138
145
  CLIMain,
139
146
  CommunityMain,
@@ -143,7 +150,8 @@ export declare class SnappingMain {
143
150
  DependencyResolverMain,
144
151
  ScopeMain,
145
152
  ExportMain,
146
- BuilderMain
153
+ BuilderMain,
154
+ ImporterMain
147
155
  ]): Promise<SnappingMain>;
148
156
  }
149
157
  export default SnappingMain;
@@ -221,6 +221,20 @@ function _builder() {
221
221
  };
222
222
  return data;
223
223
  }
224
+ function _laneId() {
225
+ const data = require("@teambit/lane-id");
226
+ _laneId = function () {
227
+ return data;
228
+ };
229
+ return data;
230
+ }
231
+ function _importer() {
232
+ const data = _interopRequireDefault(require("@teambit/importer"));
233
+ _importer = function () {
234
+ return data;
235
+ };
236
+ return data;
237
+ }
224
238
  function _export() {
225
239
  const data = require("@teambit/export");
226
240
  _export = function () {
@@ -304,7 +318,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
304
318
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
305
319
  const HooksManagerInstance = _hooks().default.getInstance();
306
320
  class SnappingMain {
307
- constructor(workspace, logger, issues, insights, dependencyResolver, scope, exporter, builder) {
321
+ constructor(workspace, logger, issues, insights, dependencyResolver, scope, exporter, builder, importer) {
308
322
  var _this$scope, _this$scope$legacySco;
309
323
  this.workspace = workspace;
310
324
  this.logger = logger;
@@ -314,6 +328,7 @@ class SnappingMain {
314
328
  this.scope = scope;
315
329
  this.exporter = exporter;
316
330
  this.builder = builder;
331
+ this.importer = importer;
317
332
  (0, _defineProperty2().default)(this, "objectsRepo", void 0);
318
333
  this.objectsRepo = (_this$scope = this.scope) === null || _this$scope === void 0 ? void 0 : (_this$scope$legacySco = _this$scope.legacyScope) === null || _this$scope$legacySco === void 0 ? void 0 : _this$scope$legacySco.objects;
319
334
  }
@@ -504,7 +519,19 @@ class SnappingMain {
504
519
  const componentIds = snapDataPerComp.map(t => t.componentId);
505
520
  const bitIds = componentIds.map(c => c._legacy);
506
521
  const componentIdsLatest = componentIds.map(id => id.changeVersion(_constants().LATEST));
507
- const components = await this.scope.import(componentIdsLatest);
522
+ let lane;
523
+ const laneIdStr = params.lane;
524
+ if (laneIdStr) {
525
+ const laneId = _laneId().LaneId.parse(laneIdStr);
526
+ lane = await this.importer.importLaneObject(laneId);
527
+ // this is critical. otherwise, later on, when loading aspects and isolating capsules, we'll try to fetch dists
528
+ // from the original scope instead of the lane-scope.
529
+ this.scope.legacyScope.setCurrentLaneId(laneId);
530
+ this.scope.legacyScope.scopeImporter.shouldOnlyFetchFromCurrentLane = true;
531
+ }
532
+ const components = await this.scope.import(componentIdsLatest, {
533
+ lane
534
+ });
508
535
  await Promise.all(components.map(async comp => {
509
536
  const snapData = snapDataPerComp.find(t => {
510
537
  return t.componentId.isEqual(comp.id, {
@@ -535,20 +562,23 @@ class SnappingMain {
535
562
  const {
536
563
  taggedComponents
537
564
  } = results;
565
+ let exportedIds;
538
566
  if (params.push) {
539
- await this.exporter.exportMany({
567
+ const updatedLane = lane ? await this.scope.legacyScope.loadLane(lane.toLaneId()) : undefined;
568
+ const {
569
+ exported
570
+ } = await this.exporter.exportMany({
540
571
  scope: this.scope.legacyScope,
541
572
  ids: legacyIds,
542
573
  idsWithFutureScope: legacyIds,
543
- allVersions: false
574
+ allVersions: false,
575
+ laneObject: updatedLane || undefined
544
576
  });
577
+ exportedIds = exported.map(e => e.toString());
545
578
  }
546
579
  return {
547
- snappedComponents: taggedComponents,
548
- autoSnappedResults: [],
549
- warnings: [],
550
- newComponents: new (_bitId().BitIds)(),
551
- laneName: null
580
+ snappedIds: taggedComponents.map(comp => comp.id.toString()),
581
+ exportedIds
552
582
  };
553
583
  }
554
584
 
@@ -1011,9 +1041,9 @@ there are matching among unmodified components thought. consider using --unmodif
1011
1041
  warnings
1012
1042
  };
1013
1043
  }
1014
- static async provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver, scope, exporter, builder]) {
1044
+ static async provider([workspace, cli, community, loggerMain, issues, insights, dependencyResolver, scope, exporter, builder, importer]) {
1015
1045
  const logger = loggerMain.createLogger(_snapping().SnappingAspect.id);
1016
- const snapping = new SnappingMain(workspace, logger, issues, insights, dependencyResolver, scope, exporter, builder);
1046
+ const snapping = new SnappingMain(workspace, logger, issues, insights, dependencyResolver, scope, exporter, builder, importer);
1017
1047
  const snapCmd = new (_snapCmd().SnapCmd)(community.getBaseDomain(), snapping, logger);
1018
1048
  const tagCmd = new (_tagCmd().TagCmd)(snapping, logger);
1019
1049
  const tagFromScopeCmd = new (_tagFromScope().TagFromScopeCmd)(snapping, logger);
@@ -1025,7 +1055,7 @@ there are matching among unmodified components thought. consider using --unmodif
1025
1055
  }
1026
1056
  exports.SnappingMain = SnappingMain;
1027
1057
  (0, _defineProperty2().default)(SnappingMain, "slots", []);
1028
- (0, _defineProperty2().default)(SnappingMain, "dependencies", [_workspace().default, _cli().CLIAspect, _community().default, _logger().LoggerAspect, _issues().default, _insights().InsightsAspect, _dependencyResolver().DependencyResolverAspect, _scope().ScopeAspect, _export().ExportAspect, _builder().BuilderAspect]);
1058
+ (0, _defineProperty2().default)(SnappingMain, "dependencies", [_workspace().default, _cli().CLIAspect, _community().default, _logger().LoggerAspect, _issues().default, _insights().InsightsAspect, _dependencyResolver().DependencyResolverAspect, _scope().ScopeAspect, _export().ExportAspect, _builder().BuilderAspect, _importer().default]);
1029
1059
  (0, _defineProperty2().default)(SnappingMain, "runtime", _cli().MainRuntime);
1030
1060
  _snapping().SnappingAspect.addRuntime(SnappingMain);
1031
1061
  var _default = SnappingMain;
@@ -1 +1 @@
1
- {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","dependencyResolver","scope","exporter","builder","objectsRepo","legacyScope","objects","tag","ids","message","version","editor","snapped","unmerged","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","build","unmodified","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","BitError","exactVersion","OutsideWorkspaceError","idsHasWildcard","hasWildcard","isAll","Boolean","length","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","debug","toString","Analytics","addBreadCrumb","hashData","componentFsCache","deleteAllDependenciesDataCache","components","loadComponentsForTag","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","throwForPendingImport","taggedComponents","autoTaggedResults","publishedPackages","tagModelComponent","snapping","consumerComponents","packageManagerConfigRootDir","path","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","tagFromScope","tagDataPerCompRaw","params","tagDataPerComp","Promise","all","map","tagData","componentId","resolveComponentId","dependencies","resolveMultipleComponentIds","versionToTag","prereleaseId","componentIds","t","c","_legacy","componentIdsLatest","id","changeVersion","LATEST","import","comp","find","isEqual","ignoreVersion","Error","updateDependenciesVersionsOfComponent","state","_consumer","legacyIds","results","skipBuildPipeline","push","exportMany","idsWithFutureScope","allVersions","snapFromScope","snapDataPerCompRaw","snapDataPerComp","snapData","aspects","addAspectsFromConfigObject","isSnap","snappedComponents","autoSnappedResults","laneName","snap","pattern","skipAutoSnap","getIdsToSnap","snapResults","currentLane","getCurrentLaneId","isDefault","name","listDuringMergeStateComponents","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","tagPendingComponentsIds","shouldThrowForNoMatching","getCompIds","includes","compId","filterIdsFromPoolIdsByPattern","allTagPending","reset","componentPattern","head","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","idsMatchingPatternBitIds","componentsToUntag","filter","modelComponent","hasWithoutVersion","toBitId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponents","listSoftTaggedComponents","softTaggedComponentsIds","idsToRemoveSoftTags","compact","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","isRealUntag","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","_addFlattenedDependenciesToComponents","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","stop","_addFlattenedDepsGraphToComponents","graph","Graph","addEdges","label","get","forEach","dep","setNode","Node","setEdge","Edge","devDependencies","extensionDependencies","allFlattened","flattenedDependencies","allFlattenedUniq","uniqFromArray","flat","allFlattenedWithoutCurrent","componentsAndVersions","getComponentsAndVersions","versionStr","edges","outEdges","flattenedEdges","allEdges","edgesWithBitIds","edge","source","node","attr","target","type","_updateComponentsByTagResult","tagResult","matchingComponent","existingBuilder","extensions","findCoreExtension","Extensions","data","builderData","_getPublishedPackages","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","_addCompToObjects","lane","shouldValidateVersion","sources","findOrAddComponent","artifactFiles","getArtifactsFiles","artifacts","transformArtifactsFromVinylToSource","files","consumerComponentToVersion","add","addVersion","unmergedComponent","unmergedComponents","getEntry","unrelated","hash","laneId","addParent","log","UnmergedComponents","buildSnapMessage","removeComponent","file","validate","_addCompFromScopeToObjects","objectRepo","_enrichComp","consumerComponent","_getObjectsToEnrichComp","obj","loadVersion","buildStatus","artifactObjects","artifactsFiles","artifactsSource","ArtifactFiles","fromVinylsToSources","vinyls","populateRefsFromSources","removedComponents","loadComponents","toVersionLatest","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","areComponentsMissingFromScope","removed","some","componentFromModel","hasScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","depId","hasVersion","modelComp","getModelComponentIfExist","isLegacy","pMap","concurrency","concurrentComponentsLimit","currentBitIds","depsBitIds","d","updatedIds","componentIdStr","legacyComponent","deps","dependenciesList","getDependencies","updatedBitId","searchWithoutVersion","depIdStr","packageName","findDependency","getPackageName","ext","extensionId","dependenciesListSerialized","extractDepsFromLegacy","serialize","extId","DependencyResolverAspect","existingExtension","findExtension","Object","assign","extension","ExtensionDataEntry","undefined","includeUnmodified","tagPendingBitIds","listSnappedComponentsOnMain","snappedComponentsIds","pMapSeries","idWithoutVer","idHasWildcard","allIds","componentStatus","getComponentStatusById","modified","bitId","tagPendingBitIdsIncludeSnapped","tagPendingComponentsLatest","latestVersions","semver","valid","gt","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","tagFromScopeCmd","TagFromScopeCmd","snapFromScopeCmd","SnapFromScopeCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","ScopeAspect","ExportAspect","BuilderAspect","MainRuntime","addRuntime"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { FlattenedDependenciesGetter } from '@teambit/legacy/dist/scope/component-ops/get-flattened-dependencies';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK, Extensions, LATEST } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport HooksManager from '@teambit/legacy/dist/hooks';\nimport pMapSeries from 'p-map-series';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport {\n removeLocalVersionsForAllComponents,\n untagResult,\n getComponentsWithOptionToUntag,\n removeLocalVersionsForMultipleComponents,\n} from '@teambit/legacy/dist/scope/component-ops/untag-component';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Lane, ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { Component } from '@teambit/component';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { ExportAspect, ExportMain } from '@teambit/export';\nimport UnmergedComponents from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitObject, Repository } from '@teambit/legacy/dist/scope/objects';\nimport {\n ArtifactFiles,\n ArtifactSource,\n getArtifactsFiles,\n} from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { AutoTagResult } from '@teambit/legacy/dist/scope/component-ops/auto-tag';\nimport { DepEdge, DepEdgeType } from '@teambit/legacy/dist/scope/models/version';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\nimport ResetCmd from './reset-cmd';\nimport { tagModelComponent, updateComponentsVersions, BasicTagParams } from './tag-model-component';\nimport { TagDataPerCompRaw, TagFromScopeCmd } from './tag-from-scope.cmd';\nimport { SnapDataPerCompRaw, SnapFromScopeCmd } from './snap-from-scope.cmd';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport type TagDataPerComp = {\n componentId: ComponentID;\n dependencies: ComponentID[];\n versionToTag?: string; // must be set for tag. undefined for snap.\n prereleaseId?: string;\n message?: string;\n};\n\nexport type SnapResults = {\n snappedComponents: ConsumerComponent[];\n autoSnappedResults: AutoTagResult[];\n warnings: string[];\n newComponents: BitIds;\n laneName: string | null; // null if default\n};\n\nexport type TagResults = {\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n warnings: string[];\n newComponents: BitIds;\n isSoftTag: boolean;\n publishedPackages: string[];\n};\n\nexport class SnappingMain {\n private objectsRepo: Repository;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain,\n private dependencyResolver: DependencyResolverMain,\n private scope: ScopeMain,\n private exporter: ExportMain,\n private builder: BuilderMain\n ) {\n this.objectsRepo = this.scope?.legacyScope?.objects;\n }\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n version,\n editor = '',\n snapped = false,\n unmerged = false,\n releaseType,\n preReleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n build,\n unmodified = false,\n soft = false,\n persist = false,\n forceDeploy = false,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean;\n unmerged?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n if (soft) build = false;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (editor && persist) {\n throw new BitError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new BitError('you can use either --editor or --message, but not both');\n }\n\n const exactVersion = version;\n if (!this.workspace) throw new OutsideWorkspaceError();\n const idsHasWildcard = hasWildcard(ids);\n const isAll = Boolean(!ids.length || idsHasWildcard);\n const validExactVersion = validateVersion(exactVersion);\n const consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n loader.start('determine components to tag...');\n const newComponents = await componentsList.listNewComponents();\n const { bitIds, warnings } = await this.getComponentsToTag(\n unmodified,\n exactVersion,\n persist,\n ids,\n snapped,\n unmerged\n );\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(components);\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents: components,\n ids: legacyBitIds,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\n dependencyResolver: this.dependencyResolver,\n });\n\n const tagResults = { taggedComponents, autoTaggedResults, isSoftTag: soft, publishedPackages };\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.warnings = warnings;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.newComponents = newComponents;\n const postHook = isAll ? POST_TAG_ALL_HOOK : POST_TAG_HOOK;\n HooksManagerInstance?.triggerHook(postHook, tagResults);\n Analytics.setExtraData(\n 'num_components',\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n R.concat(tagResults.taggedComponents, tagResults.autoTaggedResults, tagResults.newComponents).length\n );\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n async tagFromScope(\n tagDataPerCompRaw: TagDataPerCompRaw[],\n params: {\n push?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n incrementBy?: number;\n } & Partial<BasicTagParams>\n ): Promise<TagResults | null> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n const tagDataPerComp = await Promise.all(\n tagDataPerCompRaw.map(async (tagData) => {\n return {\n componentId: await this.scope.resolveComponentId(tagData.componentId),\n dependencies: tagData.dependencies ? await this.scope.resolveMultipleComponentIds(tagData.dependencies) : [],\n versionToTag: tagData.versionToTag || 'patch',\n prereleaseId: tagData.prereleaseId,\n message: tagData.message,\n };\n })\n );\n const componentIds = tagDataPerComp.map((t) => t.componentId);\n const bitIds = componentIds.map((c) => c._legacy);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n const components = await this.scope.import(componentIdsLatest);\n await Promise.all(\n components.map(async (comp) => {\n const tagData = tagDataPerComp.find((t) => t.componentId.isEqual(comp.id, { ignoreVersion: true }));\n if (!tagData) throw new Error(`unable to find ${comp.id.toString()} in tagDAtaPerComp`);\n if (!tagData.dependencies.length) return;\n await this.updateDependenciesVersionsOfComponent(comp, tagData.dependencies, bitIds);\n })\n );\n const consumerComponents = components.map((c) => c.state._consumer);\n const legacyIds = BitIds.fromArray(componentIds.map((id) => id._legacy));\n const results = await tagModelComponent({\n ...params,\n scope: this.scope,\n consumerComponents,\n tagDataPerComp,\n skipBuildPipeline: true,\n snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: true,\n persist: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents, publishedPackages } = results;\n\n if (params.push) {\n await this.exporter.exportMany({\n scope: this.scope.legacyScope,\n ids: legacyIds,\n idsWithFutureScope: legacyIds,\n allVersions: false,\n });\n }\n\n return {\n taggedComponents,\n autoTaggedResults: [],\n isSoftTag: false,\n publishedPackages,\n warnings: [],\n newComponents: new BitIds(),\n };\n }\n\n async snapFromScope(\n snapDataPerCompRaw: SnapDataPerCompRaw[],\n params: {\n push?: boolean;\n ignoreIssues?: string;\n } & Partial<BasicTagParams>\n ): Promise<SnapResults | null> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n const snapDataPerComp = await Promise.all(\n snapDataPerCompRaw.map(async (snapData) => {\n return {\n componentId: await this.scope.resolveComponentId(snapData.componentId),\n dependencies: snapData.dependencies\n ? await this.scope.resolveMultipleComponentIds(snapData.dependencies)\n : [],\n aspects: snapData.aspects,\n message: snapData.message,\n };\n })\n );\n const componentIds = snapDataPerComp.map((t) => t.componentId);\n const bitIds = componentIds.map((c) => c._legacy);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n const components = await this.scope.import(componentIdsLatest);\n await Promise.all(\n components.map(async (comp) => {\n const snapData = snapDataPerComp.find((t) => {\n return t.componentId.isEqual(comp.id, { ignoreVersion: true });\n });\n if (!snapData) throw new Error(`unable to find ${comp.id.toString()} in snapDataPerComp`);\n if (snapData.aspects) await this.scope.addAspectsFromConfigObject(comp, snapData.aspects);\n if (snapData.dependencies.length) {\n await this.updateDependenciesVersionsOfComponent(comp, snapData.dependencies, bitIds);\n }\n })\n );\n const consumerComponents = components.map((c) => c.state._consumer);\n const legacyIds = BitIds.fromArray(componentIds.map((id) => id._legacy));\n const results = await tagModelComponent({\n ...params,\n scope: this.scope,\n consumerComponents,\n tagDataPerComp: snapDataPerComp,\n snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: true,\n persist: true,\n isSnap: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents } = results;\n\n if (params.push) {\n await this.exporter.exportMany({\n scope: this.scope.legacyScope,\n ids: legacyIds,\n idsWithFutureScope: legacyIds,\n allVersions: false,\n });\n }\n\n return {\n snappedComponents: taggedComponents,\n autoSnappedResults: [],\n warnings: [],\n newComponents: new BitIds(),\n laneName: null,\n };\n }\n\n /**\n * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.\n * once a component is snapped on a lane, it becomes part of it.\n */\n async snap({\n pattern,\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n unmerged,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n pattern?: string;\n legacyBitIds?: BitIds;\n unmerged?: boolean;\n message?: string;\n ignoreIssues?: string;\n build: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (pattern && legacyBitIds) throw new Error(`please pass either pattern or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap(this.workspace));\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(components);\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n message,\n skipTests,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n isSnap: true,\n disableTagAndSnapPipelines,\n forceDeploy,\n packageManagerConfigRootDir: this.workspace.path,\n dependencyResolver: this.dependencyResolver,\n });\n\n const snapResults: Partial<SnapResults> = {\n snappedComponents: taggedComponents,\n autoSnappedResults: autoTaggedResults,\n };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.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 OutsideWorkspaceError();\n const consumer = this.workspace.consumer;\n const currentLane = await consumer.getCurrentLaneObject();\n const untag = async (): Promise<untagResult[]> => {\n if (!componentPattern) {\n return removeLocalVersionsForAllComponents(consumer, currentLane, head);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(consumer);\n const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern);\n const idsMatchingPatternBitIds = BitIds.fromArray(idsMatchingPattern.map((id) => id._legacy));\n const componentsToUntag = candidateComponents.filter((modelComponent) =>\n idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toBitId())\n );\n return removeLocalVersionsForMultipleComponents(componentsToUntag, currentLane, head, force, consumer.scope);\n };\n const softUntag = async () => {\n const componentsList = new ComponentsList(consumer);\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n const softTaggedComponentsIds = await this.workspace.resolveMultipleComponentIds(softTaggedComponents);\n const idsToRemoveSoftTags = componentPattern\n ? this.workspace.scope.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds)\n : softTaggedComponentsIds;\n return compact(\n idsToRemoveSoftTags.map((componentId) => {\n const componentMap = consumer.bitMap.getComponent(componentId._legacy, { ignoreScopeAndVersion: true });\n const removedVersion = componentMap.nextVersion?.version;\n if (!removedVersion) return null;\n componentMap.clearNextVersion();\n return { id: componentId._legacy, versions: [removedVersion] };\n })\n );\n };\n let results: untagResult[];\n const isRealUntag = !soft;\n if (isRealUntag) {\n results = await untag();\n await consumer.scope.objects.persist();\n const components = results.map((result) => result.component);\n await updateComponentsVersions(this.workspace, components as ModelComponent[], false);\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy();\n return { results, isSoftUntag: !isRealUntag };\n }\n\n async _addFlattenedDependenciesToComponents(scope: LegacyScope, components: ConsumerComponent[]) {\n loader.start('importing missing dependencies...');\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(scope, components);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n loader.stop();\n await this._addFlattenedDepsGraphToComponents(components);\n }\n\n async _addFlattenedDepsGraphToComponents(components: ConsumerComponent[]) {\n const graph = new Graph<BitId, string>();\n const addEdges = (compId: BitId, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n graph.setNode(new Node(dep.id.toString(), dep.id));\n graph.setEdge(new Edge(compId.toString(), dep.id.toString(), label));\n });\n };\n components.forEach((comp) => {\n graph.setNode(new Node(comp.id.toString(), comp.id));\n addEdges(comp.id, comp.dependencies, 'prod');\n addEdges(comp.id, comp.devDependencies, 'dev');\n addEdges(comp.id, comp.extensionDependencies, 'ext');\n });\n const allFlattened = components.map((comp) => comp.flattenedDependencies);\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened.flat());\n const allFlattenedWithoutCurrent = allFlattenedUniq.filter((id) => !components.find((c) => c.id.isEqual(id)));\n const componentsAndVersions = await this.scope.legacyScope.getComponentsAndVersions(\n BitIds.fromArray(allFlattenedWithoutCurrent)\n );\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compId = component.toBitId().changeVersion(versionStr);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n components.forEach((component) => {\n const edges = graph.outEdges(component.id.toString());\n const flattenedEdges = component.flattenedDependencies.map((dep) => graph.outEdges(dep.toString())).flat();\n const allEdges = [...edges, ...flattenedEdges];\n const edgesWithBitIds: DepEdge[] = allEdges.map((edge) => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n source: graph.node(edge.source)!.attr,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n target: graph.node(edge.target)!.attr,\n type: edge.attr as DepEdgeType,\n }));\n component.flattenedEdges = edgesWithBitIds;\n });\n }\n\n _updateComponentsByTagResult(components: ConsumerComponent[], tagResult: LegacyOnTagResult[]) {\n tagResult.forEach((result) => {\n const matchingComponent = components.find((c) => c.id.isEqual(result.id));\n if (matchingComponent) {\n const existingBuilder = matchingComponent.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = result.builderData.data;\n else matchingComponent.extensions.push(result.builderData);\n }\n });\n }\n\n _getPublishedPackages(components: ConsumerComponent[]): string[] {\n const publishedPackages = components.map((comp) => {\n const builderExt = comp.extensions.findCoreExtension(Extensions.builder);\n const pkgData = builderExt?.data?.aspectsData?.find((a) => a.aspectId === Extensions.pkg);\n return pkgData?.data?.publishedPackage;\n });\n return compact(publishedPackages);\n }\n\n async _addCompToObjects({\n source,\n consumer,\n lane,\n shouldValidateVersion = false,\n }: {\n source: ConsumerComponent;\n consumer: Consumer;\n lane: Lane | null;\n shouldValidateVersion?: boolean;\n }): Promise<ModelComponent> {\n // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const component: ModelComponent = await this.scope.legacyScope.sources.findOrAddComponent(source);\n\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n this.objectsRepo.add(version);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, this.objectsRepo);\n\n const unmergedComponent = consumer.scope.objects.unmergedComponents.getEntry(component.name);\n if (unmergedComponent) {\n if (unmergedComponent.unrelated) {\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding an unrelated entry ${unmergedComponent.head.hash}`\n );\n version.unrelated = { head: unmergedComponent.head, laneId: unmergedComponent.laneId };\n } else {\n version.addParent(unmergedComponent.head);\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding a parent ${unmergedComponent.head.hash}`\n );\n version.log.message = version.log.message || UnmergedComponents.buildSnapMessage(unmergedComponent);\n }\n consumer.scope.objects.unmergedComponents.removeComponent(component.name);\n }\n this.objectsRepo.add(component);\n\n files.forEach((file) => this.objectsRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => this.objectsRepo.add(file.source));\n if (shouldValidateVersion) version.validate();\n return component;\n }\n\n async _addCompFromScopeToObjects(source: ConsumerComponent, lane: Lane | null): Promise<ModelComponent> {\n const objectRepo = this.objectsRepo;\n // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n const component = await this.scope.legacyScope.sources.findOrAddComponent(source);\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n objectRepo.add(version);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, objectRepo);\n objectRepo.add(component);\n files.forEach((file) => objectRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => objectRepo.add(file.source));\n return component;\n }\n\n async _enrichComp(consumerComponent: ConsumerComponent) {\n const objects = await this._getObjectsToEnrichComp(consumerComponent);\n objects.forEach((obj) => this.objectsRepo.add(obj));\n return consumerComponent;\n }\n\n async _getObjectsToEnrichComp(consumerComponent: ConsumerComponent): Promise<BitObject[]> {\n const component =\n consumerComponent.modelComponent || (await this.scope.legacyScope.sources.findOrAddComponent(consumerComponent));\n const version = await component.loadVersion(consumerComponent.id.version as string, this.objectsRepo, true, true);\n const artifactFiles = getArtifactsFiles(consumerComponent.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n version.extensions = consumerComponent.extensions;\n version.buildStatus = consumerComponent.buildStatus;\n const artifactObjects = artifacts.map((file) => file.source);\n return [version, ...artifactObjects];\n }\n\n private transformArtifactsFromVinylToSource(artifactsFiles: ArtifactFiles[]): ArtifactSource[] {\n const artifacts: ArtifactSource[] = [];\n artifactsFiles.forEach((artifactFiles) => {\n const artifactsSource = ArtifactFiles.fromVinylsToSources(artifactFiles.vinyls);\n if (artifactsSource.length) artifactFiles.populateRefsFromSources(artifactsSource);\n artifacts.push(...artifactsSource);\n });\n return artifacts;\n }\n\n private async loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components, removedComponents } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new Error(`unable to tag ${component.id.toString()}, the \"rootDir\" is missing in the .bitmap file`);\n }\n });\n return [...components, ...removedComponents];\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], ignoreIssues?: string) {\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n const components = await this.workspace.getManyByLegacy(legacyComponents);\n await this.issues.triggerAddComponentIssues(components, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(components, issuesToIgnore);\n\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private throwForPendingImport(components: ConsumerComponent[]) {\n const areComponentsMissingFromScope = components\n .filter((c) => !c.removed)\n .some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n async updateDependenciesVersionsOfComponent(\n component: Component,\n dependencies: ComponentID[],\n currentBitIds: BitId[]\n ) {\n const depsBitIds = dependencies.map((d) => d._legacy);\n const updatedIds = BitIds.fromArray([...currentBitIds, ...depsBitIds]);\n const componentIdStr = component.id.toString();\n const legacyComponent: ConsumerComponent = component.state._consumer;\n const deps = [...legacyComponent.dependencies.get(), ...legacyComponent.devDependencies.get()];\n const dependenciesList = await this.dependencyResolver.getDependencies(component);\n deps.forEach((dep) => {\n const updatedBitId = updatedIds.searchWithoutVersion(dep.id);\n if (updatedBitId) {\n const depIdStr = dep.id.toString();\n const packageName = dependenciesList.findDependency(depIdStr)?.getPackageName?.();\n if (!packageName) {\n throw new Error(\n `unable to find the package-name of \"${depIdStr}\" dependency inside the dependency-resolver data of \"${componentIdStr}\"`\n );\n }\n this.logger.debug(`updating \"${componentIdStr}\", dependency ${depIdStr} to version ${updatedBitId.version}}`);\n dep.id = updatedBitId;\n dep.packageName = packageName;\n }\n });\n legacyComponent.extensions.forEach((ext) => {\n if (!ext.extensionId) return;\n const updatedBitId = updatedIds.searchWithoutVersion(ext.extensionId);\n if (updatedBitId) {\n this.logger.debug(\n `updating \"${componentIdStr}\", extension ${ext.extensionId.toString()} to version ${updatedBitId.version}}`\n );\n ext.extensionId = updatedBitId;\n }\n });\n\n const dependenciesListSerialized = (await this.dependencyResolver.extractDepsFromLegacy(component)).serialize();\n const extId = DependencyResolverAspect.id;\n const data = { dependencies: dependenciesListSerialized };\n const existingExtension = component.state._consumer.extensions.findExtension(extId);\n if (existingExtension) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n const extension = new ExtensionDataEntry(undefined, undefined, extId, undefined, data);\n component.state._consumer.extensions.push(extension);\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean,\n unmerged: boolean\n ): Promise<{ bitIds: BitId[]; warnings: string[] }> {\n const warnings: string[] = [];\n const componentsList = new ComponentsList(this.workspace.consumer);\n if (persist) {\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n return { bitIds: softTaggedComponents, warnings: [] };\n }\n\n const tagPendingBitIds = includeUnmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n\n const tagPendingComponentsIds = await this.workspace.resolveMultipleComponentIds(tagPendingBitIds);\n\n const snappedComponents = await componentsList.listSnappedComponentsOnMain();\n const snappedComponentsIds = snappedComponents.map((c) => c.toBitId());\n\n if (ids.length) {\n const componentIds = await pMapSeries(ids, async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idHasWildcard = hasWildcard(id);\n if (idHasWildcard) {\n const allIds = this.workspace.scope.filterIdsFromPoolIdsByPattern(idWithoutVer, tagPendingComponentsIds);\n return allIds.map((componentId) => componentId.changeVersion(version));\n }\n const componentId = await this.workspace.resolveComponentId(idWithoutVer);\n if (!includeUnmodified) {\n const componentStatus = await this.workspace.consumer.getComponentStatusById(componentId._legacy);\n if (componentStatus.modified === false) return null;\n }\n return componentId.changeVersion(version);\n });\n\n return { bitIds: compact(componentIds.flat()).map((bitId) => bitId._legacy), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n if (unmerged) {\n return { bitIds: componentsList.listDuringMergeStateComponents(), warnings };\n }\n\n const tagPendingBitIdsIncludeSnapped = [...tagPendingBitIds, ...snappedComponentsIds];\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(tagPendingBitIds, false);\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingBitIdsIncludeSnapped.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n CommunityAspect,\n LoggerAspect,\n IssuesAspect,\n InsightsAspect,\n DependencyResolverAspect,\n ScopeAspect,\n ExportAspect,\n BuilderAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n workspace,\n cli,\n community,\n loggerMain,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n ]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain,\n DependencyResolverMain,\n ScopeMain,\n ExportMain,\n BuilderMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(\n workspace,\n logger,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder\n );\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(snapping, logger);\n const tagFromScopeCmd = new TagFromScopeCmd(snapping, logger);\n const snapFromScopeCmd = new SnapFromScopeCmd(snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd, tagFromScopeCmd, snapFromScopeCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAOA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;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"}
1
+ {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","dependencyResolver","scope","exporter","builder","importer","objectsRepo","legacyScope","objects","tag","ids","message","version","editor","snapped","unmerged","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","build","unmodified","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","BitError","exactVersion","OutsideWorkspaceError","idsHasWildcard","hasWildcard","isAll","Boolean","length","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","debug","toString","Analytics","addBreadCrumb","hashData","componentFsCache","deleteAllDependenciesDataCache","components","loadComponentsForTag","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","throwForPendingImport","taggedComponents","autoTaggedResults","publishedPackages","tagModelComponent","snapping","consumerComponents","packageManagerConfigRootDir","path","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","tagFromScope","tagDataPerCompRaw","params","tagDataPerComp","Promise","all","map","tagData","componentId","resolveComponentId","dependencies","resolveMultipleComponentIds","versionToTag","prereleaseId","componentIds","t","c","_legacy","componentIdsLatest","id","changeVersion","LATEST","import","comp","find","isEqual","ignoreVersion","Error","updateDependenciesVersionsOfComponent","state","_consumer","legacyIds","results","skipBuildPipeline","push","exportMany","idsWithFutureScope","allVersions","snapFromScope","snapDataPerCompRaw","snapDataPerComp","snapData","aspects","lane","laneIdStr","laneId","LaneId","parse","importLaneObject","setCurrentLaneId","scopeImporter","shouldOnlyFetchFromCurrentLane","addAspectsFromConfigObject","isSnap","exportedIds","updatedLane","loadLane","toLaneId","undefined","exported","laneObject","e","snappedIds","snap","pattern","skipAutoSnap","getIdsToSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","listDuringMergeStateComponents","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","tagPendingComponentsIds","shouldThrowForNoMatching","getCompIds","includes","compId","filterIdsFromPoolIdsByPattern","allTagPending","reset","componentPattern","head","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","idsMatchingPatternBitIds","componentsToUntag","filter","modelComponent","hasWithoutVersion","toBitId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponents","listSoftTaggedComponents","softTaggedComponentsIds","idsToRemoveSoftTags","compact","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","isRealUntag","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","_addFlattenedDependenciesToComponents","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","stop","_addFlattenedDepsGraphToComponents","graph","Graph","addEdges","label","get","forEach","dep","setNode","Node","setEdge","Edge","devDependencies","extensionDependencies","allFlattened","flattenedDependencies","allFlattenedUniq","uniqFromArray","flat","allFlattenedWithoutCurrent","componentsAndVersions","getComponentsAndVersions","versionStr","edges","outEdges","flattenedEdges","allEdges","edgesWithBitIds","edge","source","node","attr","target","type","_updateComponentsByTagResult","tagResult","matchingComponent","existingBuilder","extensions","findCoreExtension","Extensions","data","builderData","_getPublishedPackages","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","_addCompToObjects","shouldValidateVersion","sources","findOrAddComponent","artifactFiles","getArtifactsFiles","artifacts","transformArtifactsFromVinylToSource","files","consumerComponentToVersion","add","addVersion","unmergedComponent","unmergedComponents","getEntry","unrelated","hash","addParent","log","UnmergedComponents","buildSnapMessage","removeComponent","file","validate","_addCompFromScopeToObjects","objectRepo","_enrichComp","consumerComponent","_getObjectsToEnrichComp","obj","loadVersion","buildStatus","artifactObjects","artifactsFiles","artifactsSource","ArtifactFiles","fromVinylsToSources","vinyls","populateRefsFromSources","removedComponents","loadComponents","toVersionLatest","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","areComponentsMissingFromScope","removed","some","componentFromModel","hasScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","depId","hasVersion","modelComp","getModelComponentIfExist","isLegacy","pMap","concurrency","concurrentComponentsLimit","currentBitIds","depsBitIds","d","updatedIds","componentIdStr","legacyComponent","deps","dependenciesList","getDependencies","updatedBitId","searchWithoutVersion","depIdStr","packageName","findDependency","getPackageName","ext","extensionId","dependenciesListSerialized","extractDepsFromLegacy","serialize","extId","DependencyResolverAspect","existingExtension","findExtension","Object","assign","extension","ExtensionDataEntry","includeUnmodified","tagPendingBitIds","listSnappedComponentsOnMain","snappedComponentsIds","pMapSeries","idWithoutVer","idHasWildcard","allIds","componentStatus","getComponentStatusById","modified","bitId","tagPendingBitIdsIncludeSnapped","tagPendingComponentsLatest","latestVersions","semver","valid","gt","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","tagFromScopeCmd","TagFromScopeCmd","snapFromScopeCmd","SnapFromScopeCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","ScopeAspect","ExportAspect","BuilderAspect","ImporterAspect","MainRuntime","addRuntime"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { FlattenedDependenciesGetter } from '@teambit/legacy/dist/scope/component-ops/get-flattened-dependencies';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK, Extensions, LATEST } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport HooksManager from '@teambit/legacy/dist/hooks';\nimport pMapSeries from 'p-map-series';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport {\n removeLocalVersionsForAllComponents,\n untagResult,\n getComponentsWithOptionToUntag,\n removeLocalVersionsForMultipleComponents,\n} from '@teambit/legacy/dist/scope/component-ops/untag-component';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Lane, ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { Component } from '@teambit/component';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { LaneId } from '@teambit/lane-id';\nimport ImporterAspect, { ImporterMain } from '@teambit/importer';\nimport { ExportAspect, ExportMain } from '@teambit/export';\nimport UnmergedComponents from '@teambit/legacy/dist/scope/lanes/unmerged-components';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitObject, Repository } from '@teambit/legacy/dist/scope/objects';\nimport {\n ArtifactFiles,\n ArtifactSource,\n getArtifactsFiles,\n} from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { AutoTagResult } from '@teambit/legacy/dist/scope/component-ops/auto-tag';\nimport { DepEdge, DepEdgeType } from '@teambit/legacy/dist/scope/models/version';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\nimport ResetCmd from './reset-cmd';\nimport { tagModelComponent, updateComponentsVersions, BasicTagParams } from './tag-model-component';\nimport { TagDataPerCompRaw, TagFromScopeCmd } from './tag-from-scope.cmd';\nimport { SnapDataPerCompRaw, SnapFromScopeCmd } from './snap-from-scope.cmd';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport type TagDataPerComp = {\n componentId: ComponentID;\n dependencies: ComponentID[];\n versionToTag?: string; // must be set for tag. undefined for snap.\n prereleaseId?: string;\n message?: string;\n};\n\nexport type SnapResults = {\n snappedComponents: ConsumerComponent[];\n autoSnappedResults: AutoTagResult[];\n warnings: string[];\n newComponents: BitIds;\n laneName: string | null; // null if default\n};\n\nexport type SnapFromScopeResults = {\n snappedIds: string[];\n exportedIds?: string[];\n};\n\nexport type TagResults = {\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n warnings: string[];\n newComponents: BitIds;\n isSoftTag: boolean;\n publishedPackages: string[];\n};\n\nexport class SnappingMain {\n private objectsRepo: Repository;\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain,\n private dependencyResolver: DependencyResolverMain,\n private scope: ScopeMain,\n private exporter: ExportMain,\n private builder: BuilderMain,\n private importer: ImporterMain\n ) {\n this.objectsRepo = this.scope?.legacyScope?.objects;\n }\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n version,\n editor = '',\n snapped = false,\n unmerged = false,\n releaseType,\n preReleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n build,\n unmodified = false,\n soft = false,\n persist = false,\n forceDeploy = false,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n }: {\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 if (soft) build = false;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (editor && persist) {\n throw new BitError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new BitError('you can use either --editor or --message, but not both');\n }\n\n const exactVersion = version;\n if (!this.workspace) throw new OutsideWorkspaceError();\n const idsHasWildcard = hasWildcard(ids);\n const isAll = Boolean(!ids.length || idsHasWildcard);\n const validExactVersion = validateVersion(exactVersion);\n const consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n loader.start('determine components to tag...');\n const newComponents = await componentsList.listNewComponents();\n const { bitIds, warnings } = await this.getComponentsToTag(\n unmodified,\n exactVersion,\n persist,\n ids,\n snapped,\n unmerged\n );\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(components);\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents: components,\n ids: legacyBitIds,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\n dependencyResolver: this.dependencyResolver,\n });\n\n const tagResults = { taggedComponents, autoTaggedResults, isSoftTag: soft, publishedPackages };\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.warnings = warnings;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.newComponents = newComponents;\n const postHook = isAll ? POST_TAG_ALL_HOOK : POST_TAG_HOOK;\n HooksManagerInstance?.triggerHook(postHook, tagResults);\n Analytics.setExtraData(\n 'num_components',\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n R.concat(tagResults.taggedComponents, tagResults.autoTaggedResults, tagResults.newComponents).length\n );\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n async tagFromScope(\n tagDataPerCompRaw: TagDataPerCompRaw[],\n params: {\n push?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n incrementBy?: number;\n } & Partial<BasicTagParams>\n ): Promise<TagResults | null> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n const tagDataPerComp = await Promise.all(\n tagDataPerCompRaw.map(async (tagData) => {\n return {\n componentId: await this.scope.resolveComponentId(tagData.componentId),\n dependencies: tagData.dependencies ? await this.scope.resolveMultipleComponentIds(tagData.dependencies) : [],\n versionToTag: tagData.versionToTag || 'patch',\n prereleaseId: tagData.prereleaseId,\n message: tagData.message,\n };\n })\n );\n const componentIds = tagDataPerComp.map((t) => t.componentId);\n const bitIds = componentIds.map((c) => c._legacy);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n const components = await this.scope.import(componentIdsLatest);\n await Promise.all(\n components.map(async (comp) => {\n const tagData = tagDataPerComp.find((t) => t.componentId.isEqual(comp.id, { ignoreVersion: true }));\n if (!tagData) throw new Error(`unable to find ${comp.id.toString()} in tagDAtaPerComp`);\n if (!tagData.dependencies.length) return;\n await this.updateDependenciesVersionsOfComponent(comp, tagData.dependencies, bitIds);\n })\n );\n const consumerComponents = components.map((c) => c.state._consumer);\n const legacyIds = BitIds.fromArray(componentIds.map((id) => id._legacy));\n const results = await tagModelComponent({\n ...params,\n scope: this.scope,\n consumerComponents,\n tagDataPerComp,\n skipBuildPipeline: true,\n snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: true,\n persist: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents, publishedPackages } = results;\n\n if (params.push) {\n await this.exporter.exportMany({\n scope: this.scope.legacyScope,\n ids: legacyIds,\n idsWithFutureScope: legacyIds,\n allVersions: false,\n });\n }\n\n return {\n taggedComponents,\n autoTaggedResults: [],\n isSoftTag: false,\n publishedPackages,\n warnings: [],\n newComponents: new BitIds(),\n };\n }\n\n async snapFromScope(\n snapDataPerCompRaw: SnapDataPerCompRaw[],\n params: {\n push?: boolean;\n ignoreIssues?: string;\n lane?: string;\n } & Partial<BasicTagParams>\n ): Promise<SnapFromScopeResults> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n const snapDataPerComp = await Promise.all(\n snapDataPerCompRaw.map(async (snapData) => {\n return {\n componentId: await this.scope.resolveComponentId(snapData.componentId),\n dependencies: snapData.dependencies\n ? await this.scope.resolveMultipleComponentIds(snapData.dependencies)\n : [],\n aspects: snapData.aspects,\n message: snapData.message,\n };\n })\n );\n const componentIds = snapDataPerComp.map((t) => t.componentId);\n const bitIds = componentIds.map((c) => c._legacy);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n\n let lane: Lane | undefined;\n const laneIdStr = params.lane;\n if (laneIdStr) {\n const laneId = LaneId.parse(laneIdStr);\n lane = await this.importer.importLaneObject(laneId);\n // this is critical. otherwise, later on, when loading aspects and isolating capsules, we'll try to fetch dists\n // from the original scope instead of the lane-scope.\n this.scope.legacyScope.setCurrentLaneId(laneId);\n this.scope.legacyScope.scopeImporter.shouldOnlyFetchFromCurrentLane = true;\n }\n\n const components = await this.scope.import(componentIdsLatest, { lane });\n await Promise.all(\n components.map(async (comp) => {\n const snapData = snapDataPerComp.find((t) => {\n return t.componentId.isEqual(comp.id, { ignoreVersion: true });\n });\n if (!snapData) throw new Error(`unable to find ${comp.id.toString()} in snapDataPerComp`);\n if (snapData.aspects) await this.scope.addAspectsFromConfigObject(comp, snapData.aspects);\n if (snapData.dependencies.length) {\n await this.updateDependenciesVersionsOfComponent(comp, snapData.dependencies, bitIds);\n }\n })\n );\n const consumerComponents = components.map((c) => c.state._consumer);\n const legacyIds = BitIds.fromArray(componentIds.map((id) => id._legacy));\n const results = await tagModelComponent({\n ...params,\n scope: this.scope,\n consumerComponents,\n tagDataPerComp: snapDataPerComp,\n snapping: this,\n builder: this.builder,\n dependencyResolver: this.dependencyResolver,\n skipAutoTag: true,\n persist: true,\n isSnap: true,\n ids: legacyIds,\n message: params.message as string,\n });\n\n const { taggedComponents } = results;\n let exportedIds: string[] | undefined;\n if (params.push) {\n const updatedLane = lane ? await this.scope.legacyScope.loadLane(lane.toLaneId()) : undefined;\n const { exported } = await this.exporter.exportMany({\n scope: this.scope.legacyScope,\n ids: legacyIds,\n idsWithFutureScope: legacyIds,\n allVersions: false,\n laneObject: updatedLane || undefined,\n });\n exportedIds = exported.map((e) => e.toString());\n }\n\n return {\n snappedIds: taggedComponents.map((comp) => comp.id.toString()),\n exportedIds,\n };\n }\n\n /**\n * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.\n * once a component is snapped on a lane, it becomes part of it.\n */\n async snap({\n pattern,\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n unmerged,\n 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 OutsideWorkspaceError();\n if (pattern && legacyBitIds) throw new Error(`please pass either pattern or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap(this.workspace));\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n this.throwForPendingImport(components);\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n workspace: this.workspace,\n scope: this.scope,\n snapping: this,\n builder: this.builder,\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n message,\n skipTests,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n isSnap: true,\n disableTagAndSnapPipelines,\n forceDeploy,\n packageManagerConfigRootDir: this.workspace.path,\n dependencyResolver: this.dependencyResolver,\n });\n\n const snapResults: Partial<SnapResults> = {\n snappedComponents: taggedComponents,\n autoSnappedResults: autoTaggedResults,\n };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.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 OutsideWorkspaceError();\n const consumer = this.workspace.consumer;\n const currentLane = await consumer.getCurrentLaneObject();\n const untag = async (): Promise<untagResult[]> => {\n if (!componentPattern) {\n return removeLocalVersionsForAllComponents(consumer, currentLane, head);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(consumer);\n const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern);\n const idsMatchingPatternBitIds = BitIds.fromArray(idsMatchingPattern.map((id) => id._legacy));\n const componentsToUntag = candidateComponents.filter((modelComponent) =>\n idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toBitId())\n );\n return removeLocalVersionsForMultipleComponents(componentsToUntag, currentLane, head, force, consumer.scope);\n };\n const softUntag = async () => {\n const componentsList = new ComponentsList(consumer);\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n const softTaggedComponentsIds = await this.workspace.resolveMultipleComponentIds(softTaggedComponents);\n const idsToRemoveSoftTags = componentPattern\n ? this.workspace.scope.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds)\n : softTaggedComponentsIds;\n return compact(\n idsToRemoveSoftTags.map((componentId) => {\n const componentMap = consumer.bitMap.getComponent(componentId._legacy, { ignoreScopeAndVersion: true });\n const removedVersion = componentMap.nextVersion?.version;\n if (!removedVersion) return null;\n componentMap.clearNextVersion();\n return { id: componentId._legacy, versions: [removedVersion] };\n })\n );\n };\n let results: untagResult[];\n const isRealUntag = !soft;\n if (isRealUntag) {\n results = await untag();\n await consumer.scope.objects.persist();\n const components = results.map((result) => result.component);\n await updateComponentsVersions(this.workspace, components as ModelComponent[], false);\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy();\n return { results, isSoftUntag: !isRealUntag };\n }\n\n async _addFlattenedDependenciesToComponents(scope: LegacyScope, components: ConsumerComponent[]) {\n loader.start('importing missing dependencies...');\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(scope, components);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n loader.stop();\n await this._addFlattenedDepsGraphToComponents(components);\n }\n\n async _addFlattenedDepsGraphToComponents(components: ConsumerComponent[]) {\n const graph = new Graph<BitId, string>();\n const addEdges = (compId: BitId, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n graph.setNode(new Node(dep.id.toString(), dep.id));\n graph.setEdge(new Edge(compId.toString(), dep.id.toString(), label));\n });\n };\n components.forEach((comp) => {\n graph.setNode(new Node(comp.id.toString(), comp.id));\n addEdges(comp.id, comp.dependencies, 'prod');\n addEdges(comp.id, comp.devDependencies, 'dev');\n addEdges(comp.id, comp.extensionDependencies, 'ext');\n });\n const allFlattened = components.map((comp) => comp.flattenedDependencies);\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened.flat());\n const allFlattenedWithoutCurrent = allFlattenedUniq.filter((id) => !components.find((c) => c.id.isEqual(id)));\n const componentsAndVersions = await this.scope.legacyScope.getComponentsAndVersions(\n BitIds.fromArray(allFlattenedWithoutCurrent)\n );\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compId = component.toBitId().changeVersion(versionStr);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n components.forEach((component) => {\n const edges = graph.outEdges(component.id.toString());\n const flattenedEdges = component.flattenedDependencies.map((dep) => graph.outEdges(dep.toString())).flat();\n const allEdges = [...edges, ...flattenedEdges];\n const edgesWithBitIds: DepEdge[] = allEdges.map((edge) => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n source: graph.node(edge.source)!.attr,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n target: graph.node(edge.target)!.attr,\n type: edge.attr as DepEdgeType,\n }));\n component.flattenedEdges = edgesWithBitIds;\n });\n }\n\n _updateComponentsByTagResult(components: ConsumerComponent[], tagResult: LegacyOnTagResult[]) {\n tagResult.forEach((result) => {\n const matchingComponent = components.find((c) => c.id.isEqual(result.id));\n if (matchingComponent) {\n const existingBuilder = matchingComponent.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = result.builderData.data;\n else matchingComponent.extensions.push(result.builderData);\n }\n });\n }\n\n _getPublishedPackages(components: ConsumerComponent[]): string[] {\n const publishedPackages = components.map((comp) => {\n const builderExt = comp.extensions.findCoreExtension(Extensions.builder);\n const pkgData = builderExt?.data?.aspectsData?.find((a) => a.aspectId === Extensions.pkg);\n return pkgData?.data?.publishedPackage;\n });\n return compact(publishedPackages);\n }\n\n async _addCompToObjects({\n source,\n consumer,\n lane,\n shouldValidateVersion = false,\n }: {\n source: ConsumerComponent;\n consumer: Consumer;\n lane: Lane | null;\n shouldValidateVersion?: boolean;\n }): Promise<ModelComponent> {\n // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const component: ModelComponent = await this.scope.legacyScope.sources.findOrAddComponent(source);\n\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n this.objectsRepo.add(version);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, this.objectsRepo);\n\n const unmergedComponent = consumer.scope.objects.unmergedComponents.getEntry(component.name);\n if (unmergedComponent) {\n if (unmergedComponent.unrelated) {\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding an unrelated entry ${unmergedComponent.head.hash}`\n );\n version.unrelated = { head: unmergedComponent.head, laneId: unmergedComponent.laneId };\n } else {\n version.addParent(unmergedComponent.head);\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding a parent ${unmergedComponent.head.hash}`\n );\n version.log.message = version.log.message || UnmergedComponents.buildSnapMessage(unmergedComponent);\n }\n consumer.scope.objects.unmergedComponents.removeComponent(component.name);\n }\n this.objectsRepo.add(component);\n\n files.forEach((file) => this.objectsRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => this.objectsRepo.add(file.source));\n if (shouldValidateVersion) version.validate();\n return component;\n }\n\n async _addCompFromScopeToObjects(source: ConsumerComponent, lane: Lane | null): Promise<ModelComponent> {\n const objectRepo = this.objectsRepo;\n // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n const component = await this.scope.legacyScope.sources.findOrAddComponent(source);\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files } = await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n objectRepo.add(version);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n component.addVersion(version, source.version, lane, objectRepo);\n objectRepo.add(component);\n files.forEach((file) => objectRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => objectRepo.add(file.source));\n return component;\n }\n\n async _enrichComp(consumerComponent: ConsumerComponent) {\n const objects = await this._getObjectsToEnrichComp(consumerComponent);\n objects.forEach((obj) => this.objectsRepo.add(obj));\n return consumerComponent;\n }\n\n async _getObjectsToEnrichComp(consumerComponent: ConsumerComponent): Promise<BitObject[]> {\n const component =\n consumerComponent.modelComponent || (await this.scope.legacyScope.sources.findOrAddComponent(consumerComponent));\n const version = await component.loadVersion(consumerComponent.id.version as string, this.objectsRepo, true, true);\n const artifactFiles = getArtifactsFiles(consumerComponent.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n version.extensions = consumerComponent.extensions;\n version.buildStatus = consumerComponent.buildStatus;\n const artifactObjects = artifacts.map((file) => file.source);\n return [version, ...artifactObjects];\n }\n\n private transformArtifactsFromVinylToSource(artifactsFiles: ArtifactFiles[]): ArtifactSource[] {\n const artifacts: ArtifactSource[] = [];\n artifactsFiles.forEach((artifactFiles) => {\n const artifactsSource = ArtifactFiles.fromVinylsToSources(artifactFiles.vinyls);\n if (artifactsSource.length) artifactFiles.populateRefsFromSources(artifactsSource);\n artifacts.push(...artifactsSource);\n });\n return artifacts;\n }\n\n private async loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components, removedComponents } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new Error(`unable to tag ${component.id.toString()}, the \"rootDir\" is missing in the .bitmap file`);\n }\n });\n return [...components, ...removedComponents];\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], ignoreIssues?: string) {\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n const components = await this.workspace.getManyByLegacy(legacyComponents);\n await this.issues.triggerAddComponentIssues(components, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(components, issuesToIgnore);\n\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private throwForPendingImport(components: ConsumerComponent[]) {\n const areComponentsMissingFromScope = components\n .filter((c) => !c.removed)\n .some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n async updateDependenciesVersionsOfComponent(\n component: Component,\n dependencies: ComponentID[],\n currentBitIds: BitId[]\n ) {\n const depsBitIds = dependencies.map((d) => d._legacy);\n const updatedIds = BitIds.fromArray([...currentBitIds, ...depsBitIds]);\n const componentIdStr = component.id.toString();\n const legacyComponent: ConsumerComponent = component.state._consumer;\n const deps = [...legacyComponent.dependencies.get(), ...legacyComponent.devDependencies.get()];\n const dependenciesList = await this.dependencyResolver.getDependencies(component);\n deps.forEach((dep) => {\n const updatedBitId = updatedIds.searchWithoutVersion(dep.id);\n if (updatedBitId) {\n const depIdStr = dep.id.toString();\n const packageName = dependenciesList.findDependency(depIdStr)?.getPackageName?.();\n if (!packageName) {\n throw new Error(\n `unable to find the package-name of \"${depIdStr}\" dependency inside the dependency-resolver data of \"${componentIdStr}\"`\n );\n }\n this.logger.debug(`updating \"${componentIdStr}\", dependency ${depIdStr} to version ${updatedBitId.version}}`);\n dep.id = updatedBitId;\n dep.packageName = packageName;\n }\n });\n legacyComponent.extensions.forEach((ext) => {\n if (!ext.extensionId) return;\n const updatedBitId = updatedIds.searchWithoutVersion(ext.extensionId);\n if (updatedBitId) {\n this.logger.debug(\n `updating \"${componentIdStr}\", extension ${ext.extensionId.toString()} to version ${updatedBitId.version}}`\n );\n ext.extensionId = updatedBitId;\n }\n });\n\n const dependenciesListSerialized = (await this.dependencyResolver.extractDepsFromLegacy(component)).serialize();\n const extId = DependencyResolverAspect.id;\n const data = { dependencies: dependenciesListSerialized };\n const existingExtension = component.state._consumer.extensions.findExtension(extId);\n if (existingExtension) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n const extension = new ExtensionDataEntry(undefined, undefined, extId, undefined, data);\n component.state._consumer.extensions.push(extension);\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean,\n unmerged: boolean\n ): Promise<{ bitIds: BitId[]; warnings: string[] }> {\n const warnings: string[] = [];\n const componentsList = new ComponentsList(this.workspace.consumer);\n if (persist) {\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n return { bitIds: softTaggedComponents, warnings: [] };\n }\n\n const tagPendingBitIds = includeUnmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n\n const tagPendingComponentsIds = await this.workspace.resolveMultipleComponentIds(tagPendingBitIds);\n\n const snappedComponents = await componentsList.listSnappedComponentsOnMain();\n const snappedComponentsIds = snappedComponents.map((c) => c.toBitId());\n\n if (ids.length) {\n const componentIds = await pMapSeries(ids, async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idHasWildcard = hasWildcard(id);\n if (idHasWildcard) {\n const allIds = this.workspace.scope.filterIdsFromPoolIdsByPattern(idWithoutVer, tagPendingComponentsIds);\n return allIds.map((componentId) => componentId.changeVersion(version));\n }\n const componentId = await this.workspace.resolveComponentId(idWithoutVer);\n if (!includeUnmodified) {\n const componentStatus = await this.workspace.consumer.getComponentStatusById(componentId._legacy);\n if (componentStatus.modified === false) return null;\n }\n return componentId.changeVersion(version);\n });\n\n return { bitIds: compact(componentIds.flat()).map((bitId) => bitId._legacy), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n if (unmerged) {\n return { bitIds: componentsList.listDuringMergeStateComponents(), warnings };\n }\n\n const tagPendingBitIdsIncludeSnapped = [...tagPendingBitIds, ...snappedComponentsIds];\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(tagPendingBitIds, false);\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingBitIdsIncludeSnapped.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n CommunityAspect,\n LoggerAspect,\n IssuesAspect,\n InsightsAspect,\n DependencyResolverAspect,\n ScopeAspect,\n ExportAspect,\n BuilderAspect,\n ImporterAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n workspace,\n cli,\n community,\n loggerMain,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer,\n ]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain,\n DependencyResolverMain,\n ScopeMain,\n ExportMain,\n BuilderMain,\n ImporterMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(\n workspace,\n logger,\n issues,\n insights,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer\n );\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(snapping, logger);\n const tagFromScopeCmd = new TagFromScopeCmd(snapping, logger);\n const snapFromScopeCmd = new SnapFromScopeCmd(snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd, tagFromScopeCmd, snapFromScopeCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;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.257",
3
+ "version": "0.0.259",
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.257"
9
+ "version": "0.0.259"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -23,19 +23,21 @@
23
23
  "@teambit/harmony": "0.4.6",
24
24
  "@teambit/graph.cleargraph": "0.0.1",
25
25
  "@teambit/bit-error": "0.0.402",
26
- "@teambit/issues": "0.0.250",
27
- "@teambit/cli": "0.0.631",
26
+ "@teambit/issues": "0.0.252",
27
+ "@teambit/cli": "0.0.633",
28
28
  "@teambit/component-issues": "0.0.84",
29
- "@teambit/logger": "0.0.724",
30
- "@teambit/builder": "0.0.942",
31
- "@teambit/community": "0.0.179",
29
+ "@teambit/logger": "0.0.726",
30
+ "@teambit/builder": "0.0.944",
31
+ "@teambit/community": "0.0.181",
32
32
  "@teambit/component-id": "0.0.425",
33
- "@teambit/component": "0.0.942",
34
- "@teambit/dependency-resolver": "0.0.942",
35
- "@teambit/export": "0.0.942",
36
- "@teambit/insights": "0.0.942",
37
- "@teambit/scope": "0.0.942",
38
- "@teambit/workspace": "0.0.942"
33
+ "@teambit/component": "0.0.944",
34
+ "@teambit/dependency-resolver": "0.0.944",
35
+ "@teambit/export": "0.0.944",
36
+ "@teambit/importer": "0.0.373",
37
+ "@teambit/insights": "0.0.944",
38
+ "@teambit/lane-id": "0.0.151",
39
+ "@teambit/scope": "0.0.944",
40
+ "@teambit/workspace": "0.0.944"
39
41
  },
40
42
  "devDependencies": {
41
43
  "@types/lodash": "4.14.165",
@@ -49,13 +51,13 @@
49
51
  "@types/react-dom": "^17.0.5",
50
52
  "@types/jest": "^26.0.0",
51
53
  "@types/testing-library__jest-dom": "5.9.5",
52
- "@teambit/compiler": "0.0.942",
54
+ "@teambit/compiler": "0.0.944",
53
55
  "@teambit/component.testing.mock-components": "0.0.18",
54
56
  "@teambit/harmony.testing.load-aspect": "0.0.17",
55
57
  "@teambit/workspace.testing.mock-workspace": "0.0.14"
56
58
  },
57
59
  "peerDependencies": {
58
- "@teambit/legacy": "1.0.412",
60
+ "@teambit/legacy": "1.0.414",
59
61
  "react": "^16.8.0 || ^17.0.0",
60
62
  "react-dom": "^16.8.0 || ^17.0.0"
61
63
  },