@teambit/snapping 0.0.103 → 0.0.106

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.
@@ -17,7 +17,7 @@ export declare class SnapCmd implements Command {
17
17
  private: boolean;
18
18
  migration: boolean;
19
19
  constructor(docsDomain: string, snapping: SnappingMain, logger: Logger);
20
- report([id]: string[], { message, all, force, ignoreIssues, build, skipTests, skipAutoSnap, disableSnapPipeline, forceDeploy, unmodified, }: {
20
+ report([pattern]: string[], { message, all, force, ignoreIssues, build, skipTests, skipAutoSnap, disableSnapPipeline, forceDeploy, unmodified, }: {
21
21
  message?: string;
22
22
  all?: boolean;
23
23
  force?: boolean;
package/dist/snap-cmd.js CHANGED
@@ -75,12 +75,12 @@ class SnapCmd {
75
75
  constructor(docsDomain, snapping, logger) {
76
76
  this.snapping = snapping;
77
77
  this.logger = logger;
78
- (0, _defineProperty2().default)(this, "name", 'snap [component-name]');
78
+ (0, _defineProperty2().default)(this, "name", 'snap [component-pattern]');
79
79
  (0, _defineProperty2().default)(this, "description", 'EXPERIMENTAL. create an immutable and exportable component snapshot (no release version)');
80
80
  (0, _defineProperty2().default)(this, "extendedDescription", void 0);
81
81
  (0, _defineProperty2().default)(this, "arguments", [{
82
- name: 'component_name',
83
- description: 'component names or component ID (defaults to all components)'
82
+ name: 'component-pattern',
83
+ description: `${_constants().COMPONENT_PATTERN_HELP}. By default, all new and modified components are snapped.`
84
84
  }]);
85
85
  (0, _defineProperty2().default)(this, "alias", '');
86
86
  (0, _defineProperty2().default)(this, "options", [['m', 'message <message>', 'log message describing the latest changes'], ['', 'unmodified', 'include unmodified components (by default, only new and modified components are snapped)'], ['', 'build', 'Harmony only. run the pipeline build and complete the tag'], ['', 'skip-tests', 'skip running component tests during snap process'], ['', 'skip-auto-snap', 'skip auto snapping dependents'], ['', 'disable-snap-pipeline', 'skip the snap pipeline'], ['', 'force-deploy', 'Harmony only. 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:
@@ -93,7 +93,7 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
93
93
  ${(0, _constants().WILDCARD_HELP)('snap')}`;
94
94
  }
95
95
 
96
- async report([id], {
96
+ async report([pattern], {
97
97
  message = '',
98
98
  all = false,
99
99
  force = false,
@@ -118,7 +118,7 @@ ${(0, _constants().WILDCARD_HELP)('snap')}`;
118
118
 
119
119
  if (force) {
120
120
  this.logger.consoleWarning(`--force is deprecated, use either --skip-tests or --unmodified depending on the use case`);
121
- if (id) unmodified = true;
121
+ if (pattern) unmodified = true;
122
122
  }
123
123
 
124
124
  if (!message) {
@@ -126,7 +126,7 @@ ${(0, _constants().WILDCARD_HELP)('snap')}`;
126
126
  }
127
127
 
128
128
  const results = await this.snapping.snap({
129
- id,
129
+ pattern,
130
130
  message,
131
131
  ignoreIssues,
132
132
  build,
@@ -1 +1 @@
1
- {"version":3,"names":["SnapCmd","constructor","docsDomain","snapping","logger","name","description","Object","keys","IssuesClasses","join","extendedDescription","WILDCARD_HELP","report","id","message","all","force","ignoreIssues","build","skipTests","skipAutoSnap","disableSnapPipeline","forceDeploy","unmodified","isFeatureEnabled","BUILD_ON_CI","Boolean","disableTagAndSnapPipelines","BitError","consoleWarning","results","snap","chalk","yellow","NOTHING_TO_SNAP_MSG","snappedComponents","autoSnappedResults","warnings","newComponents","laneName","changedComponents","filter","component","searchWithoutVersion","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"],"sources":["snap-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { WILDCARD_HELP, NOTHING_TO_SNAP_MSG, AUTO_SNAPPED_MSG } from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport { SnappingMain } from './snapping.main.runtime';\n\nexport class SnapCmd implements Command {\n name = 'snap [component-name]';\n description = 'EXPERIMENTAL. create an immutable and exportable component snapshot (no release version)';\n extendedDescription: string;\n arguments = [\n {\n name: 'component_name',\n description: 'component names or component ID (defaults to all components)',\n },\n ];\n alias = '';\n options = [\n ['m', 'message <message>', 'log message describing the latest changes'],\n ['', 'unmodified', 'include unmodified components (by default, only new and modified components are snapped)'],\n ['', 'build', 'Harmony only. run the pipeline build and complete the tag'],\n ['', 'skip-tests', 'skip running component tests during snap process'],\n ['', 'skip-auto-snap', 'skip auto snapping dependents'],\n ['', 'disable-snap-pipeline', 'skip the snap pipeline'],\n ['', 'force-deploy', 'Harmony only. 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 ['a', 'all', 'DEPRECATED (not needed anymore, it is the default now). snap all new and modified components'],\n [\n 'f',\n 'force',\n 'DEPRECATED (use \"--skip-tests\" or \"--unmodified\" instead). force-snap even if tests are failing and even when component has not changed',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(docsDomain: string, private snapping: SnappingMain, private logger: Logger) {\n this.extendedDescription = `https://${docsDomain}/components/snaps\n${WILDCARD_HELP('snap')}`;\n }\n\n async report(\n [id]: string[],\n {\n message = '',\n all = false,\n force = false,\n ignoreIssues,\n build,\n skipTests = false,\n skipAutoSnap = false,\n disableSnapPipeline = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n message?: string;\n all?: boolean;\n force?: boolean;\n ignoreIssues?: string;\n build?: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableSnapPipeline?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n }\n ) {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\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 if (all) {\n this.logger.consoleWarning(\n `--all is deprecated, please omit it. \"bit snap\" by default will snap all new and modified components`\n );\n }\n if (force) {\n this.logger.consoleWarning(\n `--force is deprecated, use either --skip-tests or --unmodified depending on the use case`\n );\n if (id) unmodified = true;\n }\n if (!message) {\n this.logger.consoleWarning(\n `--message will be mandatory in the next few releases. make sure to add a message with your snap`\n );\n }\n\n const results = await this.snapping.snap({\n id,\n message,\n ignoreIssues,\n build,\n skipTests,\n skipAutoSnap,\n disableTagAndSnapPipelines,\n forceDeploy,\n unmodified,\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 untag\" 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.join(', ')}`;\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}\n"],"mappings":"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"}
1
+ {"version":3,"names":["SnapCmd","constructor","docsDomain","snapping","logger","name","description","COMPONENT_PATTERN_HELP","Object","keys","IssuesClasses","join","extendedDescription","WILDCARD_HELP","report","pattern","message","all","force","ignoreIssues","build","skipTests","skipAutoSnap","disableSnapPipeline","forceDeploy","unmodified","isFeatureEnabled","BUILD_ON_CI","Boolean","disableTagAndSnapPipelines","BitError","consoleWarning","results","snap","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"],"sources":["snap-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport {\n WILDCARD_HELP,\n NOTHING_TO_SNAP_MSG,\n AUTO_SNAPPED_MSG,\n COMPONENT_PATTERN_HELP,\n} from '@teambit/legacy/dist/constants';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger } from '@teambit/logger';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport { SnappingMain } from './snapping.main.runtime';\n\nexport class SnapCmd implements Command {\n name = 'snap [component-pattern]';\n description = 'EXPERIMENTAL. create an immutable and exportable component snapshot (no release version)';\n extendedDescription: string;\n arguments = [\n {\n name: 'component-pattern',\n description: `${COMPONENT_PATTERN_HELP}. By default, all new and modified components are snapped.`,\n },\n ];\n alias = '';\n options = [\n ['m', 'message <message>', 'log message describing the latest changes'],\n ['', 'unmodified', 'include unmodified components (by default, only new and modified components are snapped)'],\n ['', 'build', 'Harmony only. run the pipeline build and complete the tag'],\n ['', 'skip-tests', 'skip running component tests during snap process'],\n ['', 'skip-auto-snap', 'skip auto snapping dependents'],\n ['', 'disable-snap-pipeline', 'skip the snap pipeline'],\n ['', 'force-deploy', 'Harmony only. 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 ['a', 'all', 'DEPRECATED (not needed anymore, it is the default now). snap all new and modified components'],\n [\n 'f',\n 'force',\n 'DEPRECATED (use \"--skip-tests\" or \"--unmodified\" instead). force-snap even if tests are failing and even when component has not changed',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(docsDomain: string, private snapping: SnappingMain, private logger: Logger) {\n this.extendedDescription = `https://${docsDomain}/components/snaps\n${WILDCARD_HELP('snap')}`;\n }\n\n async report(\n [pattern]: string[],\n {\n message = '',\n all = false,\n force = false,\n ignoreIssues,\n build,\n skipTests = false,\n skipAutoSnap = false,\n disableSnapPipeline = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n message?: string;\n all?: boolean;\n force?: boolean;\n ignoreIssues?: string;\n build?: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableSnapPipeline?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n }\n ) {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\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 if (all) {\n this.logger.consoleWarning(\n `--all is deprecated, please omit it. \"bit snap\" by default will snap all new and modified components`\n );\n }\n if (force) {\n this.logger.consoleWarning(\n `--force is deprecated, use either --skip-tests or --unmodified depending on the use case`\n );\n if (pattern) unmodified = true;\n }\n if (!message) {\n this.logger.consoleWarning(\n `--message will be mandatory in the next few releases. make sure to add a message with your snap`\n );\n }\n\n const results = await this.snapping.snap({\n pattern,\n message,\n ignoreIssues,\n build,\n skipTests,\n skipAutoSnap,\n disableTagAndSnapPipelines,\n forceDeploy,\n unmodified,\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 untag\" 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.join(', ')}`;\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}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;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;;AAMA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKO,MAAMA,OAAN,CAAiC;EAqCtCC,WAAW,CAACC,UAAD,EAA6BC,QAA7B,EAA6DC,MAA7D,EAA6E;IAAA,KAAhDD,QAAgD,GAAhDA,QAAgD;IAAA,KAAhBC,MAAgB,GAAhBA,MAAgB;IAAA,8CApCjF,0BAoCiF;IAAA,qDAnC1E,0FAmC0E;IAAA;IAAA,mDAjC5E,CACV;MACEC,IAAI,EAAE,mBADR;MAEEC,WAAW,EAAG,GAAEC,mCAAuB;IAFzC,CADU,CAiC4E;IAAA,+CA3BhF,EA2BgF;IAAA,iDA1B9E,CACR,CAAC,GAAD,EAAM,mBAAN,EAA2B,2CAA3B,CADQ,EAER,CAAC,EAAD,EAAK,YAAL,EAAmB,0FAAnB,CAFQ,EAGR,CAAC,EAAD,EAAK,OAAL,EAAc,2DAAd,CAHQ,EAIR,CAAC,EAAD,EAAK,YAAL,EAAmB,kDAAnB,CAJQ,EAKR,CAAC,EAAD,EAAK,gBAAL,EAAuB,+BAAvB,CALQ,EAMR,CAAC,EAAD,EAAK,uBAAL,EAA8B,wBAA9B,CANQ,EAOR,CAAC,EAAD,EAAK,cAAL,EAAqB,iEAArB,CAPQ,EAQR,CACE,GADF,EAEE,wBAFF,EAGG;AACP,GAAGC,MAAM,CAACC,IAAP,CAAYC,gCAAZ,EAA2BC,IAA3B,CAAgC,IAAhC,CAAsC;AACzC,6GALI,CARQ,EAeR,CAAC,GAAD,EAAM,KAAN,EAAa,8FAAb,CAfQ,EAgBR,CACE,GADF,EAEE,OAFF,EAGE,yIAHF,CAhBQ,CA0B8E;IAAA,gDAJ/E,IAI+E;IAAA,iDAH9E,IAG8E;IAAA,mDAF5E,IAE4E;IACtF,KAAKC,mBAAL,GAA4B,WAAUV,UAAW;AACrD,EAAE,IAAAW,0BAAA,EAAc,MAAd,CAAsB,EADpB;EAED;;EAEW,MAANC,MAAM,CACV,CAACC,OAAD,CADU,EAEV;IACEC,OAAO,GAAG,EADZ;IAEEC,GAAG,GAAG,KAFR;IAGEC,KAAK,GAAG,KAHV;IAIEC,YAJF;IAKEC,KALF;IAMEC,SAAS,GAAG,KANd;IAOEC,YAAY,GAAG,KAPjB;IAQEC,mBAAmB,GAAG,KARxB;IASEC,WAAW,GAAG,KAThB;IAUEC,UAAU,GAAG;EAVf,CAFU,EAyBV;IACAL,KAAK,GAAG,IAAAM,iCAAA,EAAiBC,4BAAjB,IAAgCC,OAAO,CAACR,KAAD,CAAvC,GAAiD,IAAzD;IACA,MAAMS,0BAA0B,GAAGN,mBAAnC;;IACA,IAAIM,0BAA0B,IAAIL,WAAlC,EAA+C;MAC7C,MAAM,KAAIM,oBAAJ,EAAa,wEAAb,CAAN;IACD;;IAED,IAAIb,GAAJ,EAAS;MACP,KAAKb,MAAL,CAAY2B,cAAZ,CACG,sGADH;IAGD;;IACD,IAAIb,KAAJ,EAAW;MACT,KAAKd,MAAL,CAAY2B,cAAZ,CACG,0FADH;MAGA,IAAIhB,OAAJ,EAAaU,UAAU,GAAG,IAAb;IACd;;IACD,IAAI,CAACT,OAAL,EAAc;MACZ,KAAKZ,MAAL,CAAY2B,cAAZ,CACG,iGADH;IAGD;;IAED,MAAMC,OAAO,GAAG,MAAM,KAAK7B,QAAL,CAAc8B,IAAd,CAAmB;MACvClB,OADuC;MAEvCC,OAFuC;MAGvCG,YAHuC;MAIvCC,KAJuC;MAKvCC,SALuC;MAMvCC,YANuC;MAOvCO,0BAPuC;MAQvCL,WARuC;MASvCC;IATuC,CAAnB,CAAtB;IAYA,IAAI,CAACO,OAAL,EAAc,OAAOE,gBAAA,CAAMC,MAAN,CAAaC,gCAAb,CAAP;IACd,MAAM;MAAEC,iBAAF;MAAqBC,kBAArB;MAAyCC,QAAzC;MAAmDC,aAAnD;MAAkEC;IAAlE,IAA4FT,OAAlG;IACA,MAAMU,iBAAiB,GAAGL,iBAAiB,CAACM,MAAlB,CACvBC,SAAD,IAAe,CAACJ,aAAa,CAACK,oBAAd,CAAmCD,SAAS,CAACE,EAA7C,CADQ,CAA1B;IAGA,MAAMC,eAAe,GAAGV,iBAAiB,CAACM,MAAlB,CAA0BC,SAAD,IAAeJ,aAAa,CAACK,oBAAd,CAAmCD,SAAS,CAACE,EAA7C,CAAxC,CAAxB;IACA,MAAME,eAAe,GAAGV,kBAAkB,GAAGA,kBAAkB,CAACW,MAAtB,GAA+B,CAAzE;IAEA,MAAMC,cAAc,GAAGX,QAAQ,IAAIA,QAAQ,CAACU,MAArB,GAA+B,GAAEf,gBAAA,CAAMC,MAAN,CAAaI,QAAQ,CAAC5B,IAAT,CAAc,IAAd,CAAb,CAAkC,MAAnE,GAA2E,EAAlG;IACA,MAAMwC,cAAc,GAAI;AAC5B,wCADI;;IAGA,MAAMC,gBAAgB,GAAIC,KAAD,IAAW;MAClC,OAAOA,KAAK,CACTC,GADI,CACCV,SAAD,IAAe;QAClB,IAAIW,eAAe,GAAI,UAASX,SAAS,CAACE,EAAV,CAAaU,QAAb,EAAwB,EAAxD;QACA,MAAMC,OAAO,GAAGnB,kBAAkB,CAACK,MAAnB,CAA2Be,MAAD,IACxCA,MAAM,CAACC,WAAP,CAAmBC,4BAAnB,CAAgDhB,SAAS,CAACE,EAA1D,CADc,CAAhB;;QAGA,IAAIW,OAAO,CAACR,MAAZ,EAAoB;UAClB,MAAMY,WAAW,GAAGJ,OAAO,CAACH,GAAR,CAAaQ,CAAD,IAAOA,CAAC,CAAClB,SAAF,CAAYE,EAAZ,CAAeU,QAAf,EAAnB,CAApB;UACAD,eAAe,IAAK,YAAWQ,6BAAiB,KAAIF,WAAW,CAAClD,IAAZ,CAAiB,IAAjB,CAAuB,EAA3E;QACD;;QACD,OAAO4C,eAAP;MACD,CAXI,EAYJ5C,IAZI,CAYC,IAZD,CAAP;IAaD,CAdD;;IAgBA,MAAMqD,cAAc,GAAG,CAACC,KAAD,EAAQC,WAAR,EAAqBC,UAArB,KAAoC;MACzD,IAAI,CAACA,UAAU,CAAClB,MAAhB,EAAwB,OAAO,EAAP;MACxB,OAAQ,KAAIf,gBAAA,CAAMkC,SAAN,CAAgBH,KAAhB,CAAuB,MAAKC,WAAY,MAAKd,gBAAgB,CAACe,UAAD,CAAa,IAAtF;IACD,CAHD;;IAIA,MAAME,OAAO,GAAG5B,QAAQ,GAAI,QAAOA,QAAS,QAApB,GAA8B,EAAtD;IAEA,OACES,cAAc,GACdhB,gBAAA,CAAMoC,KAAN,CAAa,GAAEjC,iBAAiB,CAACY,MAAlB,GAA2BD,eAAgB,wBAAuBqB,OAAQ,EAAzF,CADA,GAEAlB,cAFA,GAGAa,cAAc,CAAC,gBAAD,EAAmB,8BAAnB,EAAmDjB,eAAnD,CAHd,GAIAiB,cAAc,CAAC,oBAAD,EAAuB,oCAAvB,EAA6DtB,iBAA7D,CALhB;EAOD;;AAhJqC"}
@@ -35,10 +35,9 @@ export declare class SnappingMain {
35
35
  * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.
36
36
  * once a component is snapped on a lane, it becomes part of it.
37
37
  */
38
- snap({ id, // @todo: rename to "patterns"
39
- legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.
38
+ snap({ pattern, legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.
40
39
  resolveUnmerged, message, ignoreIssues, skipTests, skipAutoSnap, build, disableTagAndSnapPipelines, forceDeploy, unmodified, }: {
41
- id?: string;
40
+ pattern?: string;
42
41
  legacyBitIds?: BitIds;
43
42
  resolveUnmerged?: boolean;
44
43
  message?: string;
@@ -491,8 +491,7 @@ class SnappingMain {
491
491
 
492
492
 
493
493
  async snap({
494
- id,
495
- // @todo: rename to "patterns"
494
+ pattern,
496
495
  legacyBitIds,
497
496
  // @todo: change to ComponentID[]. pass only if have the ids already parsed.
498
497
  resolveUnmerged = false,
@@ -506,11 +505,11 @@ class SnappingMain {
506
505
  unmodified = false
507
506
  }) {
508
507
  if (!this.workspace) throw new (_exceptions().ConsumerNotFound)();
509
- if (id && legacyBitIds) throw new Error(`please pass either id or legacyBitIds, not both`);
508
+ if (pattern && legacyBitIds) throw new Error(`please pass either pattern or legacyBitIds, not both`);
510
509
  const consumer = this.workspace.consumer;
511
510
  const componentsList = new (_componentsList().default)(consumer);
512
511
  const newComponents = await componentsList.listNewComponents();
513
- const ids = legacyBitIds || (await getIdsToSnap());
512
+ const ids = legacyBitIds || (await getIdsToSnap(this.workspace));
514
513
  if (!ids) return null;
515
514
  this.logger.debug(`snapping the following components: ${ids.toString()}`);
516
515
  await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();
@@ -556,25 +555,41 @@ class SnappingMain {
556
555
 
557
556
  return snapResults;
558
557
 
559
- async function getIdsToSnap() {
560
- const idHasWildcard = id && (0, _hasWildcard().default)(id);
558
+ async function getIdsToSnap(workspace) {
559
+ const tagPendingComponents = unmodified ? await componentsList.listPotentialTagAllWorkspace() : await componentsList.listTagPendingComponents();
560
+ if (_ramda().default.isEmpty(tagPendingComponents)) return null;
561
+ const tagPendingComponentsIds = await workspace.resolveMultipleComponentIds(tagPendingComponents); // when unmodified, we ask for all components, throw if no matching. if not unmodified and no matching, see error
562
+ // below, suggesting to use --unmodified flag.
561
563
 
562
- if (id && !idHasWildcard) {
563
- const bitId = consumer.getParsedId(id);
564
+ const shouldThrowForNoMatching = unmodified;
564
565
 
565
- if (!unmodified) {
566
- const componentStatus = await consumer.getComponentStatusById(bitId); // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
566
+ const getCompIds = async () => {
567
+ if (!pattern) return tagPendingComponentsIds;
567
568
 
568
- if (componentStatus.modified === false) return null;
569
+ if (!pattern.includes('*') && !pattern.includes(',')) {
570
+ const compId = await workspace.resolveComponentId(pattern);
571
+ return [compId];
572
+ }
573
+
574
+ return workspace.scope.filterIdsFromPoolIdsByPattern(pattern, tagPendingComponentsIds, shouldThrowForNoMatching);
575
+ };
576
+
577
+ const componentIds = await getCompIds();
578
+
579
+ if (!componentIds.length && pattern) {
580
+ const allTagPending = await componentsList.listPotentialTagAllWorkspace();
581
+
582
+ if (allTagPending.length) {
583
+ throw new (_bitError().BitError)(`unable to find matching for "${pattern}" pattern among modified/new components.
584
+ there are matching among unmodified components thought. consider using --unmodified flag if needed`);
569
585
  }
586
+ }
570
587
 
571
- return new (_bitId().BitIds)(bitId);
588
+ if (!componentIds.length) {
589
+ return null;
572
590
  }
573
591
 
574
- const tagPendingComponents = unmodified ? await componentsList.listPotentialTagAllWorkspace() : await componentsList.listTagPendingComponents();
575
- if (_ramda().default.isEmpty(tagPendingComponents)) return null;
576
- const bitIds = idHasWildcard ? _componentsList().default.filterComponentsByWildcard(tagPendingComponents, id) : tagPendingComponents;
577
- return _bitId().BitIds.fromArray(bitIds);
592
+ return _bitId().BitIds.fromArray(componentIds.map(c => c._legacy));
578
593
  }
579
594
  }
580
595
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","tag","ids","message","version","editor","snapped","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","build","unmodified","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","isFeatureEnabled","BUILD_ON_CI","Boolean","BitError","exactVersion","ConsumerNotFound","idsHasWildcard","hasWildcard","isAll","length","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","debug","toString","Analytics","addBreadCrumb","hashData","componentFsCache","deleteAllDependenciesDataCache","components","loadComponentsForTag","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","areComponentsMissingFromScope","some","c","componentFromModel","id","hasScope","ComponentsPendingImport","taggedComponents","autoTaggedResults","publishedPackages","tagModelComponent","consumerComponents","scope","legacyScope","resolveUnmerged","packageManagerConfigRootDir","path","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","snap","skipAutoSnap","Error","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","idHasWildcard","bitId","getParsedId","componentStatus","getComponentStatusById","modified","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","filterComponentsByWildcard","reset","componentPattern","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","idsMatchingPatternBitIds","map","_legacy","componentsToUntag","filter","modelComponent","hasWithoutVersion","toBitId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponents","listSoftTaggedComponents","softTaggedComponentsIds","resolveMultipleComponentIds","idsToRemoveSoftTags","filterIdsFromPoolIdsByPattern","compact","componentId","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","results","isRealUntag","objects","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","loadComponents","toVersionLatest","forEach","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","includes","IssuesClasses","CircularDependencies","addInsightsAsComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","throwForComponent","dependenciesIds","getAllDependenciesIds","Promise","all","depId","hasVersion","modelComp","getModelComponentIfExist","loadVersion","isLegacy","pMap","concurrency","concurrentComponentsLimit","includeUnmodified","tagPendingBitIds","tagPendingComponentsIds","listSnappedComponentsOnMain","snappedComponentsIds","componentIds","pMapSeries","idWithoutVer","allIds","changeVersion","resolveComponentId","flat","push","tagPendingComponentsLatest","latestVersions","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapping","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","MainRuntime","addRuntime"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport HooksManager from '@teambit/legacy/dist/hooks';\nimport pMapSeries from 'p-map-series';\nimport { TagResults, BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport tagModelComponent from '@teambit/legacy/dist/scope/component-ops/tag-model-component';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport {\n removeLocalVersionsForAllComponents,\n untagResult,\n getComponentsWithOptionToUntag,\n removeLocalVersionsForMultipleComponents,\n} from '@teambit/legacy/dist/scope/component-ops/untag-component';\nimport { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\nimport ResetCmd from './reset-cmd';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport class SnappingMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain\n ) {}\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n version,\n editor = '',\n snapped = false,\n releaseType,\n preReleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n build,\n unmodified = false,\n soft = false,\n persist = false,\n forceDeploy = false,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n if (soft) build = false;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (editor && persist) {\n throw new BitError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new BitError('you can use either --editor or --message, but not both');\n }\n\n const exactVersion = version;\n if (!this.workspace) throw new ConsumerNotFound();\n const idsHasWildcard = hasWildcard(ids);\n const isAll = Boolean(!ids.length || idsHasWildcard);\n const validExactVersion = validateVersion(exactVersion);\n const consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n loader.start('determine components to tag...');\n const newComponents = await componentsList.listNewComponents();\n const { bitIds, warnings } = await this.getComponentsToTag(unmodified, exactVersion, persist, ids, snapped);\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n consumerComponents: components,\n ids: legacyBitIds,\n scope: this.workspace.scope.legacyScope,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n consumer: this.workspace.consumer,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n resolveUnmerged: false,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\n });\n\n const tagResults = { taggedComponents, autoTaggedResults, isSoftTag: soft, publishedPackages };\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.warnings = warnings;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.newComponents = newComponents;\n const postHook = isAll ? POST_TAG_ALL_HOOK : POST_TAG_HOOK;\n HooksManagerInstance?.triggerHook(postHook, tagResults);\n Analytics.setExtraData(\n 'num_components',\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n R.concat(tagResults.taggedComponents, tagResults.autoTaggedResults, tagResults.newComponents).length\n );\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n /**\n * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.\n * once a component is snapped on a lane, it becomes part of it.\n */\n async snap({\n id, // @todo: rename to \"patterns\"\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n resolveUnmerged = false,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n id?: string;\n legacyBitIds?: BitIds;\n resolveUnmerged?: boolean;\n message?: string;\n ignoreIssues?: string;\n build: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new ConsumerNotFound();\n if (id && legacyBitIds) throw new Error(`please pass either id or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap());\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n scope: this.workspace.scope.legacyScope,\n message,\n consumer: this.workspace.consumer,\n skipTests,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n resolveUnmerged,\n isSnap: true,\n disableTagAndSnapPipelines,\n forceDeploy,\n packageManagerConfigRootDir: this.workspace.path,\n });\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const snapResults: SnapResults = { snappedComponents: taggedComponents, autoSnappedResults: autoTaggedResults };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.name;\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(): Promise<BitIds | null> {\n const idHasWildcard = id && hasWildcard(id);\n if (id && !idHasWildcard) {\n const bitId = consumer.getParsedId(id);\n if (!unmodified) {\n const componentStatus = await consumer.getComponentStatusById(bitId);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (componentStatus.modified === false) return null;\n }\n return new BitIds(bitId);\n }\n const tagPendingComponents = unmodified\n ? await componentsList.listPotentialTagAllWorkspace()\n : await componentsList.listTagPendingComponents();\n if (R.isEmpty(tagPendingComponents)) return null;\n const bitIds = idHasWildcard\n ? ComponentsList.filterComponentsByWildcard(tagPendingComponents, id)\n : tagPendingComponents;\n return BitIds.fromArray(bitIds);\n }\n }\n\n /**\n * remove tags/snaps that exist locally, which were not exported yet.\n * once a tag/snap is exported, it's impossible to delete it as other components may depend on it\n */\n async reset(\n componentPattern?: string,\n version?: string,\n force = false,\n soft = false\n ): Promise<{ results: untagResult[]; isSoftUntag: boolean }> {\n if (!this.workspace) throw new ConsumerNotFound();\n const consumer = this.workspace.consumer;\n const currentLane = await consumer.getCurrentLaneObject();\n const untag = async (): Promise<untagResult[]> => {\n if (!componentPattern) {\n return removeLocalVersionsForAllComponents(consumer, currentLane, version, force);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(consumer, version);\n const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern);\n const idsMatchingPatternBitIds = BitIds.fromArray(idsMatchingPattern.map((id) => id._legacy));\n const componentsToUntag = candidateComponents.filter((modelComponent) =>\n idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toBitId())\n );\n return removeLocalVersionsForMultipleComponents(componentsToUntag, currentLane, version, force, consumer.scope);\n };\n const softUntag = async () => {\n const componentsList = new ComponentsList(consumer);\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n const softTaggedComponentsIds = await this.workspace.resolveMultipleComponentIds(softTaggedComponents);\n const idsToRemoveSoftTags = componentPattern\n ? this.workspace.scope.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds)\n : softTaggedComponentsIds;\n return compact(\n idsToRemoveSoftTags.map((componentId) => {\n const componentMap = consumer.bitMap.getComponent(componentId._legacy, { ignoreScopeAndVersion: true });\n const removedVersion = componentMap.nextVersion?.version;\n if (!removedVersion) return null;\n componentMap.clearNextVersion();\n return { id: componentId._legacy, versions: [removedVersion] };\n })\n );\n };\n let results: untagResult[];\n const isRealUntag = !soft;\n if (isRealUntag) {\n results = await untag();\n await consumer.scope.objects.persist();\n const components = results.map((result) => result.component);\n await consumer.updateComponentsVersions(components as ModelComponent[]);\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy();\n return { results, isSoftUntag: !isRealUntag };\n }\n\n private async loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new Error(`unable to tag ${component.id.toString()}, the \"rootDir\" is missing in the .bitmap file`);\n }\n });\n return components;\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], ignoreIssues?: string) {\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n const components = await this.workspace.getManyByLegacy(legacyComponents);\n if (!issuesToIgnore.includes(IssuesClasses.CircularDependencies.name)) {\n await this.insights.addInsightsAsComponentIssues(components);\n }\n this.issues.removeIgnoredIssuesFromComponents(components);\n\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean\n ): 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 tagPendingBitIds.push(...snappedComponentsIds);\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(tagPendingBitIds, false);\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingBitIds.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, CLIAspect, CommunityAspect, LoggerAspect, IssuesAspect, InsightsAspect];\n static runtime = MainRuntime;\n static async provider([workspace, cli, community, loggerMain, issues, insights]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(workspace, logger, issues, insights);\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(community.getBaseDomain(), snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA,MAAMA,oBAAoB,GAAGC,gBAAA,CAAaC,WAAb,EAA7B;;AAEO,MAAMC,YAAN,CAAmB;EACxBC,WAAW,CACDC,SADC,EAEDC,MAFC,EAGDC,MAHC,EAIDC,QAJC,EAKT;IAAA,KAJQH,SAIR,GAJQA,SAIR;IAAA,KAHQC,MAGR,GAHQA,MAGR;IAAA,KAFQC,MAER,GAFQA,MAER;IAAA,KADQC,QACR,GADQA,QACR;EAAE;EAEJ;AACF;AACA;AACA;AACA;AACA;EACE;;;EACS,MAAHC,GAAG,CAAC;IACRC,GAAG,GAAG,EADE;IAERC,OAAO,GAAG,EAFF;IAGRC,OAHQ;IAIRC,MAAM,GAAG,EAJD;IAKRC,OAAO,GAAG,KALF;IAMRC,WANQ;IAORC,YAPQ;IAQRC,YARQ;IASRC,mBAAmB,GAAG,KATd;IAURC,SAAS,GAAG,KAVJ;IAWRC,WAAW,GAAG,KAXN;IAYRC,KAZQ;IAaRC,UAAU,GAAG,KAbL;IAcRC,IAAI,GAAG,KAdC;IAeRC,OAAO,GAAG,KAfF;IAgBRC,WAAW,GAAG,KAhBN;IAiBRC,WAAW,GAAG,CAjBN;IAkBRC,0BAA0B,GAAG;EAlBrB,CAAD,EA4BgD;IACvDN,KAAK,GAAG,IAAAO,iCAAA,EAAiBC,4BAAjB,IAAgCC,OAAO,CAACT,KAAD,CAAvC,GAAiD,IAAzD;IACA,IAAIE,IAAJ,EAAUF,KAAK,GAAG,KAAR;;IACV,IAAIM,0BAA0B,IAAIF,WAAlC,EAA+C;MAC7C,MAAM,KAAIM,oBAAJ,EAAa,uEAAb,CAAN;IACD;;IACD,IAAIlB,MAAM,IAAIW,OAAd,EAAuB;MACrB,MAAM,KAAIO,oBAAJ,EAAa,wDAAb,CAAN;IACD;;IACD,IAAIlB,MAAM,IAAIF,OAAd,EAAuB;MACrB,MAAM,KAAIoB,oBAAJ,EAAa,wDAAb,CAAN;IACD;;IAED,MAAMC,YAAY,GAAGpB,OAArB;IACA,IAAI,CAAC,KAAKP,SAAV,EAAqB,MAAM,KAAI4B,8BAAJ,GAAN;IACrB,MAAMC,cAAc,GAAG,IAAAC,sBAAA,EAAYzB,GAAZ,CAAvB;IACA,MAAM0B,KAAK,GAAGN,OAAO,CAAC,CAACpB,GAAG,CAAC2B,MAAL,IAAeH,cAAhB,CAArB;IACA,MAAMI,iBAAiB,GAAG,IAAAC,+BAAA,EAAgBP,YAAhB,CAA1B;IACA,MAAMQ,QAAQ,GAAG,KAAKnC,SAAL,CAAemC,QAAhC;IACA,MAAMC,cAAc,GAAG,KAAIC,yBAAJ,EAAmBF,QAAnB,CAAvB;;IACAG,iBAAA,CAAOC,KAAP,CAAa,gCAAb;;IACA,MAAMC,aAAa,GAAG,MAAMJ,cAAc,CAACK,iBAAf,EAA5B;IACA,MAAM;MAAEC,MAAF;MAAUC;IAAV,IAAuB,MAAM,KAAKC,kBAAL,CAAwB3B,UAAxB,EAAoCU,YAApC,EAAkDR,OAAlD,EAA2Dd,GAA3D,EAAgEI,OAAhE,CAAnC;IACA,IAAIoC,gBAAA,CAAEC,OAAF,CAAUJ,MAAV,CAAJ,EAAuB,OAAO,IAAP;;IAEvB,MAAMK,YAAY,GAAGC,eAAA,CAAOC,SAAP,CAAiBP,MAAjB,CAArB;;IAEA,KAAKzC,MAAL,CAAYiD,KAAZ,CAAmB,qCAAoCH,YAAY,CAACI,QAAb,EAAwB,EAA/E;;IACAC,sBAAA,CAAUC,aAAV,CAAwB,KAAxB,EAAgC,qCAAoCD,sBAAA,CAAUE,QAAV,CAAmBP,YAAnB,CAAiC,EAArG;;IACA,IAAI,CAAC7B,IAAL,EAAW;MACT,MAAM,KAAKlB,SAAL,CAAemC,QAAf,CAAwBoB,gBAAxB,CAAyCC,8BAAzC,EAAN;IACD;;IACD,MAAMC,UAAU,GAAG,MAAM,KAAKC,oBAAL,CAA0BX,YAA1B,CAAzB;IACA,MAAM,KAAKY,uCAAL,CAA6CF,UAA7C,CAAN;IACA,MAAM,KAAKG,uBAAL,CAA6BH,UAA7B,EAAyC7C,YAAzC,CAAN;IACA,MAAMiD,6BAA6B,GAAGJ,UAAU,CAACK,IAAX,CAAiBC,CAAD,IAAO,CAACA,CAAC,CAACC,kBAAH,IAAyBD,CAAC,CAACE,EAAF,CAAKC,QAAL,EAAhD,CAAtC;;IACA,IAAIL,6BAAJ,EAAmC;MACjC,MAAM,KAAIM,kCAAJ,GAAN;IACD;;IAED,MAAM;MAAEC,gBAAF;MAAoBC,iBAApB;MAAuCC;IAAvC,IAA6D,MAAM,IAAAC,4BAAA,EAAkB;MACzFC,kBAAkB,EAAEf,UADqE;MAEzFpD,GAAG,EAAE0C,YAFoF;MAGzF0B,KAAK,EAAE,KAAKzE,SAAL,CAAeyE,KAAf,CAAqBC,WAH6D;MAIzFpE,OAJyF;MAKzFE,MALyF;MAMzFmB,YAAY,EAAEM,iBAN2E;MAOzFvB,WAPyF;MAQzFC,YARyF;MASzFwB,QAAQ,EAAE,KAAKnC,SAAL,CAAemC,QATgE;MAUzFtB,mBAVyF;MAWzFC,SAXyF;MAYzFC,WAZyF;MAazFG,IAbyF;MAczFF,KAdyF;MAezFG,OAfyF;MAgBzFwD,eAAe,EAAE,KAhBwE;MAiBzFrD,0BAjByF;MAkBzFF,WAlByF;MAmBzFC,WAnByF;MAoBzFuD,2BAA2B,EAAE,KAAK5E,SAAL,CAAe6E;IApB6C,CAAlB,CAAzE;IAuBA,MAAMC,UAAU,GAAG;MAAEV,gBAAF;MAAoBC,iBAApB;MAAuCU,SAAS,EAAE7D,IAAlD;MAAwDoD;IAAxD,CAAnB,CA/DuD,CAgEvD;;IACAQ,UAAU,CAACnC,QAAX,GAAsBA,QAAtB,CAjEuD,CAmEvD;;IACAmC,UAAU,CAACtC,aAAX,GAA2BA,aAA3B;IACA,MAAMwC,QAAQ,GAAGjD,KAAK,GAAGkD,8BAAH,GAAuBC,0BAA7C;IACAvF,oBAAoB,SAApB,IAAAA,oBAAoB,WAApB,YAAAA,oBAAoB,CAAEwF,WAAtB,CAAkCH,QAAlC,EAA4CF,UAA5C;;IACA1B,sBAAA,CAAUgC,YAAV,CACE,gBADF,EAEE;IACAvC,gBAAA,CAAEwC,MAAF,CAASP,UAAU,CAACV,gBAApB,EAAsCU,UAAU,CAACT,iBAAjD,EAAoES,UAAU,CAACtC,aAA/E,EAA8FR,MAHhG;;IAKA,MAAMG,QAAQ,CAACmD,SAAT,EAAN,CA5EuD,CA6EvD;;IACA,OAAOR,UAAP;EACD;EAED;AACF;AACA;AACA;;;EACY,MAAJS,IAAI,CAAC;IACTtB,EADS;IACL;IACJlB,YAFS;IAEK;IACd4B,eAAe,GAAG,KAHT;IAITrE,OAAO,GAAG,EAJD;IAKTM,YALS;IAMTE,SAAS,GAAG,KANH;IAOT0E,YAAY,GAAG,KAPN;IAQTxE,KARS;IASTM,0BAA0B,GAAG,KATpB;IAUTF,WAAW,GAAG,KAVL;IAWTH,UAAU,GAAG;EAXJ,CAAD,EAwBsB;IAC9B,IAAI,CAAC,KAAKjB,SAAV,EAAqB,MAAM,KAAI4B,8BAAJ,GAAN;IACrB,IAAIqC,EAAE,IAAIlB,YAAV,EAAwB,MAAM,IAAI0C,KAAJ,CAAW,iDAAX,CAAN;IACxB,MAAMtD,QAAkB,GAAG,KAAKnC,SAAL,CAAemC,QAA1C;IACA,MAAMC,cAAc,GAAG,KAAIC,yBAAJ,EAAmBF,QAAnB,CAAvB;IACA,MAAMK,aAAa,GAAI,MAAMJ,cAAc,CAACK,iBAAf,EAA7B;IACA,MAAMpC,GAAG,GAAG0C,YAAY,KAAK,MAAM2C,YAAY,EAAvB,CAAxB;IACA,IAAI,CAACrF,GAAL,EAAU,OAAO,IAAP;IACV,KAAKJ,MAAL,CAAYiD,KAAZ,CAAmB,sCAAqC7C,GAAG,CAAC8C,QAAJ,EAAe,EAAvE;IACA,MAAM,KAAKnD,SAAL,CAAemC,QAAf,CAAwBoB,gBAAxB,CAAyCC,8BAAzC,EAAN;IACA,MAAMC,UAAU,GAAG,MAAM,KAAKC,oBAAL,CAA0BrD,GAA1B,CAAzB;IACA,MAAM,KAAKsD,uCAAL,CAA6CF,UAA7C,CAAN;IACA,MAAM,KAAKG,uBAAL,CAA6BH,UAA7B,EAAyC7C,YAAzC,CAAN;IACA,MAAMiD,6BAA6B,GAAGJ,UAAU,CAACK,IAAX,CAAiBC,CAAD,IAAO,CAACA,CAAC,CAACC,kBAAH,IAAyBD,CAAC,CAACE,EAAF,CAAKC,QAAL,EAAhD,CAAtC;;IACA,IAAIL,6BAAJ,EAAmC;MACjC,MAAM,KAAIM,kCAAJ,GAAN;IACD;;IAED,MAAM;MAAEC,gBAAF;MAAoBC;IAApB,IAA0C,MAAM,IAAAE,4BAAA,EAAkB;MACtEC,kBAAkB,EAAEf,UADkD;MAEtEpD,GAFsE;MAGtEQ,mBAAmB,EAAE,KAHiD;MAItE4D,KAAK,EAAE,KAAKzE,SAAL,CAAeyE,KAAf,CAAqBC,WAJ0C;MAKtEpE,OALsE;MAMtE6B,QAAQ,EAAE,KAAKnC,SAAL,CAAemC,QAN6C;MAOtErB,SAPsE;MAQtEC,WAAW,EAAEyE,YARyD;MAStErE,OAAO,EAAE,IAT6D;MAUtED,IAAI,EAAE,KAVgE;MAWtEF,KAXsE;MAYtE2D,eAZsE;MAatEgB,MAAM,EAAE,IAb8D;MActErE,0BAdsE;MAetEF,WAfsE;MAgBtEwD,2BAA2B,EAAE,KAAK5E,SAAL,CAAe6E;IAhB0B,CAAlB,CAAtD,CAlB8B,CAoC9B;;IACA,MAAMe,WAAwB,GAAG;MAAEC,iBAAiB,EAAEzB,gBAArB;MAAuC0B,kBAAkB,EAAEzB;IAA3D,CAAjC;IAEAuB,WAAW,CAACpD,aAAZ,GAA4BA,aAA5B;IACA,MAAMuD,WAAW,GAAG5D,QAAQ,CAAC6D,gBAAT,EAApB;IACAJ,WAAW,CAACK,QAAZ,GAAuBF,WAAW,CAACG,SAAZ,KAA0B,IAA1B,GAAiCH,WAAW,CAACI,IAApE;IACA,MAAMhE,QAAQ,CAACmD,SAAT,EAAN,CA1C8B,CA2C9B;;IACA,OAAOM,WAAP;;IAEA,eAAeF,YAAf,GAAsD;MACpD,MAAMU,aAAa,GAAGnC,EAAE,IAAI,IAAAnC,sBAAA,EAAYmC,EAAZ,CAA5B;;MACA,IAAIA,EAAE,IAAI,CAACmC,aAAX,EAA0B;QACxB,MAAMC,KAAK,GAAGlE,QAAQ,CAACmE,WAAT,CAAqBrC,EAArB,CAAd;;QACA,IAAI,CAAChD,UAAL,EAAiB;UACf,MAAMsF,eAAe,GAAG,MAAMpE,QAAQ,CAACqE,sBAAT,CAAgCH,KAAhC,CAA9B,CADe,CAEf;;UACA,IAAIE,eAAe,CAACE,QAAhB,KAA6B,KAAjC,EAAwC,OAAO,IAAP;QACzC;;QACD,OAAO,KAAIzD,eAAJ,EAAWqD,KAAX,CAAP;MACD;;MACD,MAAMK,oBAAoB,GAAGzF,UAAU,GACnC,MAAMmB,cAAc,CAACuE,4BAAf,EAD6B,GAEnC,MAAMvE,cAAc,CAACwE,wBAAf,EAFV;MAGA,IAAI/D,gBAAA,CAAEC,OAAF,CAAU4D,oBAAV,CAAJ,EAAqC,OAAO,IAAP;MACrC,MAAMhE,MAAM,GAAG0D,aAAa,GACxB/D,yBAAA,CAAewE,0BAAf,CAA0CH,oBAA1C,EAAgEzC,EAAhE,CADwB,GAExByC,oBAFJ;MAGA,OAAO1D,eAAA,CAAOC,SAAP,CAAiBP,MAAjB,CAAP;IACD;EACF;EAED;AACF;AACA;AACA;;;EACa,MAALoE,KAAK,CACTC,gBADS,EAETxG,OAFS,EAGTyG,KAAK,GAAG,KAHC,EAIT9F,IAAI,GAAG,KAJE,EAKkD;IAC3D,IAAI,CAAC,KAAKlB,SAAV,EAAqB,MAAM,KAAI4B,8BAAJ,GAAN;IACrB,MAAMO,QAAQ,GAAG,KAAKnC,SAAL,CAAemC,QAAhC;IACA,MAAM4D,WAAW,GAAG,MAAM5D,QAAQ,CAAC8E,oBAAT,EAA1B;;IACA,MAAMC,KAAK,GAAG,YAAoC;MAChD,IAAI,CAACH,gBAAL,EAAuB;QACrB,OAAO,IAAAI,qDAAA,EAAoChF,QAApC,EAA8C4D,WAA9C,EAA2DxF,OAA3D,EAAoEyG,KAApE,CAAP;MACD;;MACD,MAAMI,mBAAmB,GAAG,MAAM,IAAAC,gDAAA,EAA+BlF,QAA/B,EAAyC5B,OAAzC,CAAlC;MACA,MAAM+G,kBAAkB,GAAG,MAAM,KAAKtH,SAAL,CAAeuH,YAAf,CAA4BR,gBAA5B,CAAjC;;MACA,MAAMS,wBAAwB,GAAGxE,eAAA,CAAOC,SAAP,CAAiBqE,kBAAkB,CAACG,GAAnB,CAAwBxD,EAAD,IAAQA,EAAE,CAACyD,OAAlC,CAAjB,CAAjC;;MACA,MAAMC,iBAAiB,GAAGP,mBAAmB,CAACQ,MAApB,CAA4BC,cAAD,IACnDL,wBAAwB,CAACM,iBAAzB,CAA2CD,cAAc,CAACE,OAAf,EAA3C,CADwB,CAA1B;MAGA,OAAO,IAAAC,0DAAA,EAAyCL,iBAAzC,EAA4D5B,WAA5D,EAAyExF,OAAzE,EAAkFyG,KAAlF,EAAyF7E,QAAQ,CAACsC,KAAlG,CAAP;IACD,CAXD;;IAYA,MAAMwD,SAAS,GAAG,YAAY;MAC5B,MAAM7F,cAAc,GAAG,KAAIC,yBAAJ,EAAmBF,QAAnB,CAAvB;MACA,MAAM+F,oBAAoB,GAAG9F,cAAc,CAAC+F,wBAAf,EAA7B;MACA,MAAMC,uBAAuB,GAAG,MAAM,KAAKpI,SAAL,CAAeqI,2BAAf,CAA2CH,oBAA3C,CAAtC;MACA,MAAMI,mBAAmB,GAAGvB,gBAAgB,GACxC,KAAK/G,SAAL,CAAeyE,KAAf,CAAqB8D,6BAArB,CAAmDxB,gBAAnD,EAAqEqB,uBAArE,CADwC,GAExCA,uBAFJ;MAGA,OAAO,IAAAI,iBAAA,EACLF,mBAAmB,CAACb,GAApB,CAAyBgB,WAAD,IAAiB;QAAA;;QACvC,MAAMC,YAAY,GAAGvG,QAAQ,CAACwG,MAAT,CAAgBC,YAAhB,CAA6BH,WAAW,CAACf,OAAzC,EAAkD;UAAEmB,qBAAqB,EAAE;QAAzB,CAAlD,CAArB;QACA,MAAMC,cAAc,4BAAGJ,YAAY,CAACK,WAAhB,0DAAG,sBAA0BxI,OAAjD;QACA,IAAI,CAACuI,cAAL,EAAqB,OAAO,IAAP;QACrBJ,YAAY,CAACM,gBAAb;QACA,OAAO;UAAE/E,EAAE,EAAEwE,WAAW,CAACf,OAAlB;UAA2BuB,QAAQ,EAAE,CAACH,cAAD;QAArC,CAAP;MACD,CAND,CADK,CAAP;IASD,CAhBD;;IAiBA,IAAII,OAAJ;IACA,MAAMC,WAAW,GAAG,CAACjI,IAArB;;IACA,IAAIiI,WAAJ,EAAiB;MACfD,OAAO,GAAG,MAAMhC,KAAK,EAArB;MACA,MAAM/E,QAAQ,CAACsC,KAAT,CAAe2E,OAAf,CAAuBjI,OAAvB,EAAN;MACA,MAAMsC,UAAU,GAAGyF,OAAO,CAACzB,GAAR,CAAa4B,MAAD,IAAYA,MAAM,CAACC,SAA/B,CAAnB;MACA,MAAMnH,QAAQ,CAACoH,wBAAT,CAAkC9F,UAAlC,CAAN;IACD,CALD,MAKO;MACLyF,OAAO,GAAG,MAAMjB,SAAS,EAAzB;MACA9F,QAAQ,CAACwG,MAAT,CAAgBa,aAAhB;IACD;;IAED,MAAMrH,QAAQ,CAACmD,SAAT,EAAN;IACA,OAAO;MAAE4D,OAAF;MAAWO,WAAW,EAAE,CAACN;IAAzB,CAAP;EACD;;EAEiC,MAApBzF,oBAAoB,CAACrD,GAAD,EAA4C;IAC5E,MAAM;MAAEoD;IAAF,IAAiB,MAAM,KAAKzD,SAAL,CAAemC,QAAf,CAAwBuH,cAAxB,CAAuCrJ,GAAG,CAACsJ,eAAJ,EAAvC,CAA7B;IACAlG,UAAU,CAACmG,OAAX,CAAoBN,SAAD,IAAe;MAChC,MAAMZ,YAAY,GAAGY,SAAS,CAACZ,YAA/B;;MACA,IAAI,CAACA,YAAY,CAACmB,OAAlB,EAA2B;QACzB,MAAM,IAAIpE,KAAJ,CAAW,iBAAgB6D,SAAS,CAACrF,EAAV,CAAad,QAAb,EAAwB,gDAAnD,CAAN;MACD;IACF,CALD;IAMA,OAAOM,UAAP;EACD;;EAEoC,MAAvBG,uBAAuB,CAACkG,gBAAD,EAAwClJ,YAAxC,EAA+D;IAClG,IAAIA,YAAY,KAAK,GAArB,EAA0B;MACxB;MACA;IACD;;IACD,MAAMmJ,sBAAsB,GAAG,CAAAnJ,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEoJ,KAAd,CAAoB,GAApB,EAAyBvC,GAAzB,CAA8BwC,KAAD,IAAWA,KAAK,CAACC,IAAN,EAAxC,MAAyD,EAAxF;IACA,MAAMC,wBAAwB,GAAG,KAAKjK,MAAL,CAAYkK,yBAAZ,EAAjC;IACA,MAAMC,cAAc,GAAG,CAAC,GAAGN,sBAAJ,EAA4B,GAAGI,wBAA/B,CAAvB;IACA,MAAM1G,UAAU,GAAG,MAAM,KAAKzD,SAAL,CAAesK,eAAf,CAA+BR,gBAA/B,CAAzB;;IACA,IAAI,CAACO,cAAc,CAACE,QAAf,CAAwBC,gCAAA,CAAcC,oBAAd,CAAmCtE,IAA3D,CAAL,EAAuE;MACrE,MAAM,KAAKhG,QAAL,CAAcuK,4BAAd,CAA2CjH,UAA3C,CAAN;IACD;;IACD,KAAKvD,MAAL,CAAYyK,iCAAZ,CAA8ClH,UAA9C;IAEA,MAAMmH,4BAA4B,GAAGd,gBAAgB,CAAClC,MAAjB,CAAyB0B,SAAD;MAAA;;MAAA,4BAAeA,SAAS,CAACpJ,MAAzB,sDAAe,kBAAkB2K,kBAAlB,EAAf;IAAA,CAAxB,CAArC;;IACA,IAAI,CAAChI,gBAAA,CAAEC,OAAF,CAAU8H,4BAAV,CAAL,EAA8C;MAC5C,MAAM,KAAIE,4CAAJ,EAAyBF,4BAAzB,CAAN;IACD;EACF;;EAEoD,MAAvCjH,uCAAuC,CAACF,UAAD,EAAkC;IACrF,MAAMsH,iBAAiB,GAAG,MAAOzB,SAAP,IAAwC;MAChE,MAAM0B,eAAe,GAAG1B,SAAS,CAAC2B,qBAAV,EAAxB;MACA,MAAMvG,WAAW,GAAG,KAAK1E,SAAL,CAAeyE,KAAf,CAAqBC,WAAzC;MACA,MAAMwG,OAAO,CAACC,GAAR,CACJH,eAAe,CAACvD,GAAhB,CAAoB,MAAO2D,KAAP,IAAiB;QACnC,IAAI,CAACA,KAAK,CAACC,UAAN,EAAL,EAAyB;QACzB,MAAMC,SAAS,GAAG,MAAM5G,WAAW,CAAC6G,wBAAZ,CAAqCH,KAArC,CAAxB;QACA,IAAI,CAACE,SAAL,EAAgB;QAChB,MAAM/K,OAAO,GAAG,MAAM+K,SAAS,CAACE,WAAV,CAAsBJ,KAAK,CAAC7K,OAA5B,EAA+CmE,WAAW,CAAC0E,OAA3D,CAAtB;;QACA,IAAI7I,OAAO,CAACkL,QAAZ,EAAsB;UACpB,MAAM,IAAIhG,KAAJ,CACH,mBAAkB6D,SAAS,CAACrF,EAAV,CAAad,QAAb,EAAwB,sBAAqBiI,KAAK,CAACjI,QAAN,EAAiB,aAD7E,CAAN;QAGD;MACF,CAVD,CADI,CAAN;IAaD,CAhBD;;IAiBA,MAAM,IAAAuI,eAAA,EAAKjI,UAAL,EAAkB6F,SAAD,IAAeyB,iBAAiB,CAACzB,SAAD,CAAjD,EAA8D;MAAEqC,WAAW,EAAE,IAAAC,wCAAA;IAAf,CAA9D,CAAN;EACD;;EAE+B,MAAlBhJ,kBAAkB,CAC9BiJ,iBAD8B,EAE9BlK,YAF8B,EAG9BR,OAH8B,EAI9Bd,GAJ8B,EAK9BI,OAL8B,EAMoB;IAClD,MAAMkC,QAAkB,GAAG,EAA3B;IACA,MAAMP,cAAc,GAAG,KAAIC,yBAAJ,EAAmB,KAAKrC,SAAL,CAAemC,QAAlC,CAAvB;;IACA,IAAIhB,OAAJ,EAAa;MACX,MAAM+G,oBAAoB,GAAG9F,cAAc,CAAC+F,wBAAf,EAA7B;MACA,OAAO;QAAEzF,MAAM,EAAEwF,oBAAV;QAAgCvF,QAAQ,EAAE;MAA1C,CAAP;IACD;;IAED,MAAMmJ,gBAAgB,GAAGD,iBAAiB,GACtC,MAAMzJ,cAAc,CAACuE,4BAAf,EADgC,GAEtC,MAAMvE,cAAc,CAACwE,wBAAf,EAFV;IAIA,MAAMmF,uBAAuB,GAAG,MAAM,KAAK/L,SAAL,CAAeqI,2BAAf,CAA2CyD,gBAA3C,CAAtC;IAEA,MAAMjG,iBAAiB,GAAG,MAAMzD,cAAc,CAAC4J,2BAAf,EAAhC;IACA,MAAMC,oBAAoB,GAAGpG,iBAAiB,CAAC4B,GAAlB,CAAuB1D,CAAD,IAAOA,CAAC,CAACgE,OAAF,EAA7B,CAA7B;;IAEA,IAAI1H,GAAG,CAAC2B,MAAR,EAAgB;MACd,MAAMkK,YAAY,GAAG,MAAM,IAAAC,qBAAA,EAAW9L,GAAX,EAAgB,MAAO4D,EAAP,IAAc;QACvD,MAAM,CAACmI,YAAD,EAAe7L,OAAf,IAA0B0D,EAAE,CAAC+F,KAAH,CAAS,GAAT,CAAhC;QACA,MAAM5D,aAAa,GAAG,IAAAtE,sBAAA,EAAYmC,EAAZ,CAAtB;;QACA,IAAImC,aAAJ,EAAmB;UACjB,MAAMiG,MAAM,GAAG,KAAKrM,SAAL,CAAeyE,KAAf,CAAqB8D,6BAArB,CAAmD6D,YAAnD,EAAiEL,uBAAjE,CAAf;UACA,OAAOM,MAAM,CAAC5E,GAAP,CAAYgB,WAAD,IAAiBA,WAAW,CAAC6D,aAAZ,CAA0B/L,OAA1B,CAA5B,CAAP;QACD;;QACD,MAAMkI,WAAW,GAAG,MAAM,KAAKzI,SAAL,CAAeuM,kBAAf,CAAkCH,YAAlC,CAA1B;;QACA,IAAI,CAACP,iBAAL,EAAwB;UACtB,MAAMtF,eAAe,GAAG,MAAM,KAAKvG,SAAL,CAAemC,QAAf,CAAwBqE,sBAAxB,CAA+CiC,WAAW,CAACf,OAA3D,CAA9B;UACA,IAAInB,eAAe,CAACE,QAAhB,KAA6B,KAAjC,EAAwC,OAAO,IAAP;QACzC;;QACD,OAAOgC,WAAW,CAAC6D,aAAZ,CAA0B/L,OAA1B,CAAP;MACD,CAb0B,CAA3B;MAeA,OAAO;QAAEmC,MAAM,EAAE,IAAA8F,iBAAA,EAAQ0D,YAAY,CAACM,IAAb,EAAR,EAA6B/E,GAA7B,CAAkCpB,KAAD,IAAWA,KAAK,CAACqB,OAAlD,CAAV;QAAsE/E;MAAtE,CAAP;IACD;;IAED,IAAIlC,OAAJ,EAAa;MACX,OAAO;QAAEiC,MAAM,EAAEuJ,oBAAV;QAAgCtJ;MAAhC,CAAP;IACD;;IAEDmJ,gBAAgB,CAACW,IAAjB,CAAsB,GAAGR,oBAAzB;;IAEA,IAAIJ,iBAAiB,IAAIlK,YAAzB,EAAuC;MACrC,MAAM+K,0BAA0B,GAAG,MAAM,KAAK1M,SAAL,CAAeyE,KAAf,CAAqBC,WAArB,CAAiCiI,cAAjC,CAAgDb,gBAAhD,EAAkE,KAAlE,CAAzC;MACAY,0BAA0B,CAAC9C,OAA3B,CAAoCnB,WAAD,IAAiB;QAClD,IAAIA,WAAW,CAAClI,OAAZ,IAAuBqM,iBAAA,CAAOC,KAAP,CAAapE,WAAW,CAAClI,OAAzB,CAAvB,IAA4DqM,iBAAA,CAAOE,EAAP,CAAUrE,WAAW,CAAClI,OAAtB,EAA+BoB,YAA/B,CAAhE,EAA8G;UAC5GgB,QAAQ,CAAC8J,IAAT,CAAe,YAAWhE,WAAW,CAACtF,QAAZ,EAAuB,+BAA8BxB,YAAa,EAA5F;QACD;MACF,CAJD;IAKD;;IAED,OAAO;MAAEe,MAAM,EAAEoJ,gBAAgB,CAACrE,GAAjB,CAAsBxD,EAAD,IAAQA,EAAE,CAACqI,aAAH,CAAiBS,SAAjB,CAA7B,CAAV;MAAqEpK;IAArE,CAAP;EACD;;EAKoB,aAARqK,QAAQ,CAAC,CAAChN,SAAD,EAAYiN,GAAZ,EAAiBC,SAAjB,EAA4BC,UAA5B,EAAwCjN,MAAxC,EAAgDC,QAAhD,CAAD,EAOlB;IACD,MAAMF,MAAM,GAAGkN,UAAU,CAACC,YAAX,CAAwBC,0BAAA,CAAepJ,EAAvC,CAAf;IACA,MAAMqJ,QAAQ,GAAG,IAAIxN,YAAJ,CAAiBE,SAAjB,EAA4BC,MAA5B,EAAoCC,MAApC,EAA4CC,QAA5C,CAAjB;IACA,MAAMoN,OAAO,GAAG,KAAIC,kBAAJ,EAAYN,SAAS,CAACO,aAAV,EAAZ,EAAuCH,QAAvC,EAAiDrN,MAAjD,CAAhB;IACA,MAAMyN,MAAM,GAAG,KAAIC,gBAAJ,EAAWT,SAAS,CAACO,aAAV,EAAX,EAAsCH,QAAtC,EAAgDrN,MAAhD,CAAf;IACA,MAAM2N,QAAQ,GAAG,KAAIC,mBAAJ,EAAaP,QAAb,CAAjB;IACAL,GAAG,CAACa,QAAJ,CAAaJ,MAAb,EAAqBH,OAArB,EAA8BK,QAA9B;IACA,OAAON,QAAP;EACD;;AAxZuB;;;gCAAbxN,Y,WAsYI,E;gCAtYJA,Y,kBAuYW,CAACiO,oBAAD,EAAkBC,gBAAlB,EAA6BC,oBAA7B,EAA8CC,sBAA9C,EAA4DC,iBAA5D,EAA0EC,0BAA1E,C;gCAvYXtO,Y,aAwYMuO,kB;;AAmBnBhB,0BAAA,CAAeiB,UAAf,CAA0BxO,YAA1B;;eAEeA,Y"}
1
+ {"version":3,"names":["HooksManagerInstance","HooksManager","getInstance","SnappingMain","constructor","workspace","logger","issues","insights","tag","ids","message","version","editor","snapped","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","build","unmodified","soft","persist","forceDeploy","incrementBy","disableTagAndSnapPipelines","isFeatureEnabled","BUILD_ON_CI","Boolean","BitError","exactVersion","ConsumerNotFound","idsHasWildcard","hasWildcard","isAll","length","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","loader","start","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","R","isEmpty","legacyBitIds","BitIds","fromArray","debug","toString","Analytics","addBreadCrumb","hashData","componentFsCache","deleteAllDependenciesDataCache","components","loadComponentsForTag","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","areComponentsMissingFromScope","some","c","componentFromModel","id","hasScope","ComponentsPendingImport","taggedComponents","autoTaggedResults","publishedPackages","tagModelComponent","consumerComponents","scope","legacyScope","resolveUnmerged","packageManagerConfigRootDir","path","tagResults","isSoftTag","postHook","POST_TAG_ALL_HOOK","POST_TAG_HOOK","triggerHook","setExtraData","concat","onDestroy","snap","pattern","skipAutoSnap","Error","getIdsToSnap","isSnap","snapResults","snappedComponents","autoSnappedResults","currentLane","getCurrentLaneId","laneName","isDefault","name","tagPendingComponents","listPotentialTagAllWorkspace","listTagPendingComponents","tagPendingComponentsIds","resolveMultipleComponentIds","shouldThrowForNoMatching","getCompIds","includes","compId","resolveComponentId","filterIdsFromPoolIdsByPattern","componentIds","allTagPending","map","_legacy","reset","componentPattern","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","idsMatchingPatternBitIds","componentsToUntag","filter","modelComponent","hasWithoutVersion","toBitId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponents","listSoftTaggedComponents","softTaggedComponentsIds","idsToRemoveSoftTags","compact","componentId","componentMap","bitMap","getComponent","ignoreScopeAndVersion","removedVersion","nextVersion","clearNextVersion","versions","results","isRealUntag","objects","result","component","updateComponentsVersions","markAsChanged","isSoftUntag","loadComponents","toVersionLatest","forEach","rootDir","legacyComponents","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","getManyByLegacy","IssuesClasses","CircularDependencies","addInsightsAsComponentIssues","removeIgnoredIssuesFromComponents","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","throwForComponent","dependenciesIds","getAllDependenciesIds","Promise","all","depId","hasVersion","modelComp","getModelComponentIfExist","loadVersion","isLegacy","pMap","concurrency","concurrentComponentsLimit","includeUnmodified","tagPendingBitIds","listSnappedComponentsOnMain","snappedComponentsIds","pMapSeries","idWithoutVer","idHasWildcard","allIds","changeVersion","componentStatus","getComponentStatusById","modified","flat","bitId","push","tagPendingComponentsLatest","latestVersions","semver","valid","gt","undefined","provider","cli","community","loggerMain","createLogger","SnappingAspect","snapping","snapCmd","SnapCmd","getBaseDomain","tagCmd","TagCmd","resetCmd","ResetCmd","register","WorkspaceAspect","CLIAspect","CommunityAspect","LoggerAspect","IssuesAspect","InsightsAspect","MainRuntime","addRuntime"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport CommunityAspect, { CommunityMain } from '@teambit/community';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport R from 'ramda';\nimport semver, { ReleaseType } from 'semver';\nimport { compact } from 'lodash';\nimport { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { BitId, BitIds } from '@teambit/legacy/dist/bit-id';\nimport { POST_TAG_ALL_HOOK, POST_TAG_HOOK } from '@teambit/legacy/dist/constants';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport ComponentsList from '@teambit/legacy/dist/consumer/component/components-list';\nimport HooksManager from '@teambit/legacy/dist/hooks';\nimport pMapSeries from 'p-map-series';\nimport { TagResults, BasicTagParams } from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport { validateVersion } from '@teambit/legacy/dist/utils/semver-helper';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport tagModelComponent from '@teambit/legacy/dist/scope/component-ops/tag-model-component';\nimport { SnapResults } from '@teambit/legacy/dist/api/consumer/lib/snap';\nimport ComponentsPendingImport from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-import';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport pMap from 'p-map';\nimport { InsightsAspect, InsightsMain } from '@teambit/insights';\nimport { concurrentComponentsLimit } from '@teambit/legacy/dist/utils/concurrency';\nimport {\n removeLocalVersionsForAllComponents,\n untagResult,\n getComponentsWithOptionToUntag,\n removeLocalVersionsForMultipleComponents,\n} from '@teambit/legacy/dist/scope/component-ops/untag-component';\nimport { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport { ComponentsHaveIssues } from './components-have-issues';\nimport ResetCmd from './reset-cmd';\n\nconst HooksManagerInstance = HooksManager.getInstance();\n\nexport class SnappingMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private issues: IssuesMain,\n private insights: InsightsMain\n ) {}\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n version,\n editor = '',\n snapped = false,\n releaseType,\n preReleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n build,\n unmodified = false,\n soft = false,\n persist = false,\n forceDeploy = false,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n if (soft) build = false;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new BitError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (editor && persist) {\n throw new BitError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new BitError('you can use either --editor or --message, but not both');\n }\n\n const exactVersion = version;\n if (!this.workspace) throw new ConsumerNotFound();\n const idsHasWildcard = hasWildcard(ids);\n const isAll = Boolean(!ids.length || idsHasWildcard);\n const validExactVersion = validateVersion(exactVersion);\n const consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n loader.start('determine components to tag...');\n const newComponents = await componentsList.listNewComponents();\n const { bitIds, warnings } = await this.getComponentsToTag(unmodified, exactVersion, persist, ids, snapped);\n if (R.isEmpty(bitIds)) return null;\n\n const legacyBitIds = BitIds.fromArray(bitIds);\n\n this.logger.debug(`tagging the following components: ${legacyBitIds.toString()}`);\n Analytics.addBreadCrumb('tag', `tagging the following components: ${Analytics.hashData(legacyBitIds)}`);\n if (!soft) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n const components = await this.loadComponentsForTag(legacyBitIds);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults, publishedPackages } = await tagModelComponent({\n consumerComponents: components,\n ids: legacyBitIds,\n scope: this.workspace.scope.legacyScope,\n message,\n editor,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n consumer: this.workspace.consumer,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n soft,\n build,\n persist,\n resolveUnmerged: false,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\n });\n\n const tagResults = { taggedComponents, autoTaggedResults, isSoftTag: soft, publishedPackages };\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.warnings = warnings;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n tagResults.newComponents = newComponents;\n const postHook = isAll ? POST_TAG_ALL_HOOK : POST_TAG_HOOK;\n HooksManagerInstance?.triggerHook(postHook, tagResults);\n Analytics.setExtraData(\n 'num_components',\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n R.concat(tagResults.taggedComponents, tagResults.autoTaggedResults, tagResults.newComponents).length\n );\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n /**\n * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.\n * once a component is snapped on a lane, it becomes part of it.\n */\n async snap({\n pattern,\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n resolveUnmerged = false,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n forceDeploy = false,\n unmodified = false,\n }: {\n pattern?: string;\n legacyBitIds?: BitIds;\n resolveUnmerged?: boolean;\n message?: string;\n ignoreIssues?: string;\n build: boolean;\n skipTests?: boolean;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n forceDeploy?: boolean;\n unmodified?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new ConsumerNotFound();\n if (pattern && legacyBitIds) throw new Error(`please pass either pattern or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(consumer);\n const newComponents = (await componentsList.listNewComponents()) as BitIds;\n const ids = legacyBitIds || (await getIdsToSnap(this.workspace));\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n const components = await this.loadComponentsForTag(ids);\n await this.throwForLegacyDependenciesInsideHarmony(components);\n await this.throwForComponentIssues(components, ignoreIssues);\n const areComponentsMissingFromScope = components.some((c) => !c.componentFromModel && c.id.hasScope());\n if (areComponentsMissingFromScope) {\n throw new ComponentsPendingImport();\n }\n\n const { taggedComponents, autoTaggedResults } = await tagModelComponent({\n consumerComponents: components,\n ids,\n ignoreNewestVersion: false,\n scope: this.workspace.scope.legacyScope,\n message,\n consumer: this.workspace.consumer,\n skipTests,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n resolveUnmerged,\n isSnap: true,\n disableTagAndSnapPipelines,\n forceDeploy,\n packageManagerConfigRootDir: this.workspace.path,\n });\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const snapResults: SnapResults = { snappedComponents: taggedComponents, autoSnappedResults: autoTaggedResults };\n\n snapResults.newComponents = newComponents;\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.name;\n await consumer.onDestroy();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(workspace: Workspace): Promise<BitIds | null> {\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 version?: string,\n force = false,\n soft = false\n ): Promise<{ results: untagResult[]; isSoftUntag: boolean }> {\n if (!this.workspace) throw new ConsumerNotFound();\n const consumer = this.workspace.consumer;\n const currentLane = await consumer.getCurrentLaneObject();\n const untag = async (): Promise<untagResult[]> => {\n if (!componentPattern) {\n return removeLocalVersionsForAllComponents(consumer, currentLane, version, force);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(consumer, version);\n const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern);\n const idsMatchingPatternBitIds = BitIds.fromArray(idsMatchingPattern.map((id) => id._legacy));\n const componentsToUntag = candidateComponents.filter((modelComponent) =>\n idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toBitId())\n );\n return removeLocalVersionsForMultipleComponents(componentsToUntag, currentLane, version, force, consumer.scope);\n };\n const softUntag = async () => {\n const componentsList = new ComponentsList(consumer);\n const softTaggedComponents = componentsList.listSoftTaggedComponents();\n const softTaggedComponentsIds = await this.workspace.resolveMultipleComponentIds(softTaggedComponents);\n const idsToRemoveSoftTags = componentPattern\n ? this.workspace.scope.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds)\n : softTaggedComponentsIds;\n return compact(\n idsToRemoveSoftTags.map((componentId) => {\n const componentMap = consumer.bitMap.getComponent(componentId._legacy, { ignoreScopeAndVersion: true });\n const removedVersion = componentMap.nextVersion?.version;\n if (!removedVersion) return null;\n componentMap.clearNextVersion();\n return { id: componentId._legacy, versions: [removedVersion] };\n })\n );\n };\n let results: untagResult[];\n const isRealUntag = !soft;\n if (isRealUntag) {\n results = await untag();\n await consumer.scope.objects.persist();\n const components = results.map((result) => result.component);\n await consumer.updateComponentsVersions(components as ModelComponent[]);\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy();\n return { results, isSoftUntag: !isRealUntag };\n }\n\n private async loadComponentsForTag(ids: BitIds): Promise<ConsumerComponent[]> {\n const { components } = await this.workspace.consumer.loadComponents(ids.toVersionLatest());\n components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new Error(`unable to tag ${component.id.toString()}, the \"rootDir\" is missing in the .bitmap file`);\n }\n });\n return components;\n }\n\n private async throwForComponentIssues(legacyComponents: ConsumerComponent[], ignoreIssues?: string) {\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n const components = await this.workspace.getManyByLegacy(legacyComponents);\n if (!issuesToIgnore.includes(IssuesClasses.CircularDependencies.name)) {\n await this.insights.addInsightsAsComponentIssues(components);\n }\n this.issues.removeIgnoredIssuesFromComponents(components);\n\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (!R.isEmpty(componentsWithBlockingIssues)) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean\n ): 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 tagPendingBitIds.push(...snappedComponentsIds);\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(tagPendingBitIds, false);\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingBitIds.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [];\n static dependencies = [WorkspaceAspect, CLIAspect, CommunityAspect, LoggerAspect, IssuesAspect, InsightsAspect];\n static runtime = MainRuntime;\n static async provider([workspace, cli, community, loggerMain, issues, insights]: [\n Workspace,\n CLIMain,\n CommunityMain,\n LoggerMain,\n IssuesMain,\n InsightsMain\n ]) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(workspace, logger, issues, insights);\n const snapCmd = new SnapCmd(community.getBaseDomain(), snapping, logger);\n const tagCmd = new TagCmd(community.getBaseDomain(), snapping, logger);\n const resetCmd = new ResetCmd(snapping);\n cli.register(tagCmd, snapCmd, resetCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EA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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/snapping",
3
- "version": "0.0.103",
3
+ "version": "0.0.106",
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.103"
9
+ "version": "0.0.106"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -19,13 +19,13 @@
19
19
  "core-js": "^3.0.0",
20
20
  "@teambit/harmony": "0.3.3",
21
21
  "@teambit/bit-error": "0.0.394",
22
- "@teambit/issues": "0.0.96",
23
- "@teambit/cli": "0.0.521",
22
+ "@teambit/issues": "0.0.99",
23
+ "@teambit/cli": "0.0.524",
24
24
  "@teambit/component-issues": "0.0.57",
25
- "@teambit/logger": "0.0.614",
26
- "@teambit/community": "0.0.69",
27
- "@teambit/insights": "0.0.788",
28
- "@teambit/workspace": "0.0.788"
25
+ "@teambit/logger": "0.0.617",
26
+ "@teambit/community": "0.0.72",
27
+ "@teambit/insights": "0.0.791",
28
+ "@teambit/workspace": "0.0.791"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/lodash": "4.14.165",
@@ -38,13 +38,13 @@
38
38
  "@types/react-dom": "^17.0.5",
39
39
  "@types/react": "^17.0.8",
40
40
  "@types/node": "12.20.4",
41
- "@teambit/compiler": "0.0.788",
41
+ "@teambit/compiler": "0.0.791",
42
42
  "@teambit/component.testing.mock-components": "0.0.7",
43
43
  "@teambit/harmony.testing.load-aspect": "0.0.7",
44
44
  "@teambit/workspace.testing.mock-workspace": "0.0.5"
45
45
  },
46
46
  "peerDependencies": {
47
- "@teambit/legacy": "1.0.303",
47
+ "@teambit/legacy": "1.0.306",
48
48
  "react-dom": "^16.8.0 || ^17.0.0",
49
49
  "react": "^16.8.0 || ^17.0.0"
50
50
  },