@teambit/dependencies 1.0.905 → 1.0.907

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.
@@ -157,6 +157,7 @@ export declare class DependenciesDiagnoseCmd implements Command {
157
157
  constructor(deps: DependenciesMain);
158
158
  report(_args: [], options: {
159
159
  package?: string;
160
+ origins?: boolean;
160
161
  }): Promise<string>;
161
162
  private reportPackageDrillDown;
162
163
  json(_args: [], options: {
@@ -350,7 +350,7 @@ class DependenciesDiagnoseCmd {
350
350
  _defineProperty(this, "description", 'analyze workspace dependencies for version spread, peer permutations, and bloat');
351
351
  _defineProperty(this, "extendedDescription", `scans node_modules/.pnpm to report actual installed copies, identifies packages with multiple versions, and highlights peer dependencies causing permutation explosion. Use --package to drill down into a specific package.`);
352
352
  _defineProperty(this, "alias", '');
353
- _defineProperty(this, "options", [['', 'package <string>', 'drill down into a specific package to see all .pnpm copies and peer combos']]);
353
+ _defineProperty(this, "options", [['', 'package <string>', 'drill down into a specific package to see all .pnpm copies and peer combos'], ['', 'origins', 'show peer version origins — which envs and components contribute each peer version']]);
354
354
  }
355
355
  async report(_args, options) {
356
356
  if (options.package) {
@@ -380,6 +380,30 @@ class DependenciesDiagnoseCmd {
380
380
  peerTable.push([entry.packageName, `${entry.versions.length} (${entry.versions.join(', ')})`]);
381
381
  });
382
382
  sections.push('', _chalk().default.bold('Peer dependencies causing permutations:'), peerTable.toString());
383
+ if (options.origins) {
384
+ // Show peer version origins grouped by version
385
+ const originLines = [];
386
+ for (const entry of report.peerPermutations) {
387
+ if (!entry.versionOrigins.length) continue;
388
+ originLines.push(` ${_chalk().default.bold(entry.packageName)}`);
389
+ for (const vo of entry.versionOrigins) {
390
+ if (!vo.envs.length && !vo.components.length) continue;
391
+ originLines.push(` ${_chalk().default.cyan(vo.version)}`);
392
+ if (vo.envs.length) {
393
+ originLines.push(` envs: ${vo.envs.join(', ')}`);
394
+ }
395
+ if (vo.components.length) {
396
+ const compStrs = vo.components.map(o => o.componentId);
397
+ originLines.push(` components: ${compStrs.join(', ')}`);
398
+ }
399
+ }
400
+ }
401
+ if (originLines.length) {
402
+ sections.push('', _chalk().default.bold(' Peer version origins:'), ...originLines);
403
+ }
404
+ } else {
405
+ sections.push('', _chalk().default.dim(' Tip: use --origins to see which envs and components contribute each peer version'));
406
+ }
383
407
  }
384
408
  return sections.join('\n');
385
409
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_cliTable","data","_interopRequireDefault","require","_chalk","_archy","_legacy","_template","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","borderlessTable","opts","noChar","top","bottom","left","mid","right","middle","Table","chars","style","paddingLeft","paddingRight","head","IMPACT_COLOR","HIGH","chalk","red","MEDIUM","yellow","LOW","green","DependenciesGetCmd","constructor","deps","name","description","report","id","tree","scope","results","getDependencies","idWithVersion","getGraphAsTree","graph","graphAsTree","getDependenciesAsObjectTree","toString","archy","err","graphTree","depsInfo","getDependenciesInfo","toStringWithoutVersion","depsTable","generateDependenciesInfoTable","exports","DependenciesDebugCmd","debugDependencies","JSON","stringify","undefined","DependenciesSetCmd","COMPONENT_PATTERN_HELP","pattern","packages","setDepsFlags","changedComps","addedPackages","setDependency","bold","join","DependenciesRemoveCmd","removeDepsFlags","removeDependency","output","map","removedPackages","underline","DependenciesUnsetCmd","DependenciesResetCmd","reset","comps","DependenciesEjectCmd","eject","DependenciesBlameCmd","compName","depName","blame","table","snap","tag","author","date","message","version","DependenciesUsageCmd","options","deepUsageResult","usageDeep","usage","compIdStr","WhyCmd","args","DependenciesDiagnoseCmd","_args","package","reportPackageDrillDown","diagnose","bloatFactor","uniquePackages","pnpmStoreEntries","toFixed","sections","componentCount","toLocaleString","duplicatedPackages","versionSpread","spreadTable","entry","packageName","versionCount","installedCopies","impact","peerPermutations","peerTable","versions","pnpmDirs","diagnoseDrillDown","header","dim","byVersion","Map","dir","suffixes","get","peerSuffix","set","versionLines","Array","from","s","flat","json","DependenciesCmd","unrecognizedSubcommand","SetPeerCmd","componentId","range","setPeer","UnsetPeerCmd","unsetPeer","DependenciesWriteCmd","workspace","_","writeDependencies","target"],"sources":["dependencies-cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport Table from 'cli-table';\nimport chalk from 'chalk';\nimport archy from 'archy';\nimport type { ComponentIdGraph } from '@teambit/graph';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport { generateDependenciesInfoTable } from './template';\nimport type { DependenciesMain } from './dependencies.main.runtime';\nimport type { Workspace } from '@teambit/workspace';\n\n/** Create a borderless CLI table (columns aligned with whitespace only). */\nfunction borderlessTable(\n opts: { head?: string[]; paddingLeft?: number; paddingRight?: number } = {}\n): InstanceType<typeof Table> {\n const noChar = {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n };\n return new Table({\n chars: noChar,\n style: { 'padding-left': opts.paddingLeft ?? 0, 'padding-right': opts.paddingRight ?? 0 },\n ...(opts.head ? { head: opts.head } : {}),\n });\n}\n\nconst IMPACT_COLOR: Record<string, (s: string) => string> = {\n HIGH: chalk.red,\n MEDIUM: chalk.yellow,\n LOW: chalk.green,\n};\n\ntype GetDependenciesFlags = {\n tree: boolean;\n scope?: boolean;\n};\n\nexport type SetDependenciesFlags = {\n dev?: boolean;\n optional?: boolean;\n peer?: boolean;\n};\n\nexport type RemoveDependenciesFlags = SetDependenciesFlags;\n\nexport class DependenciesGetCmd implements Command {\n name = 'get <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info-analysis';\n description = 'show direct and indirect dependencies of the given component';\n alias = '';\n options = [\n ['', 'scope', 'get the data from the scope instead of the workspace'],\n ['t', 'tree', 'render dependencies as a tree, similar to \"npm ls\"'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string], { tree = false, scope = false }: GetDependenciesFlags) {\n const results = await this.deps.getDependencies(id, scope);\n\n if (tree) {\n const idWithVersion = results.id;\n const getGraphAsTree = (graph: ComponentIdGraph) => {\n try {\n const graphAsTree = graph.getDependenciesAsObjectTree(idWithVersion.toString());\n return archy(graphAsTree);\n } catch (err: any) {\n if (err.constructor.name === 'RangeError') {\n return `${chalk.red(\n 'unable to generate a tree representation, the graph is too big or has cyclic dependencies'\n )}`;\n }\n throw err;\n }\n };\n const graphTree = getGraphAsTree(results.graph);\n return graphTree;\n }\n const depsInfo = results.graph.getDependenciesInfo(results.id);\n if (!depsInfo.length) {\n return `no dependencies found for ${results.id.toString()}.\ntry running \"bit cat-component ${results.id.toStringWithoutVersion()}\" to see whether the component/version exists locally`;\n }\n\n const depsTable = generateDependenciesInfoTable(depsInfo, results.id);\n return `${depsTable || '<none>'}`;\n }\n}\n\nexport class DependenciesDebugCmd implements Command {\n name = 'debug <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info-analysis';\n description = 'show the immediate dependencies and how their versions were determined';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string]) {\n const results = await this.deps.debugDependencies(id);\n return JSON.stringify(results, undefined, 4);\n }\n}\n\nexport class DependenciesSetCmd implements Command {\n name = 'set <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will be resolved to the latest',\n },\n ];\n group = 'dependencies';\n description = 'set a dependency to component(s)';\n alias = '';\n options = [\n ['d', 'dev', 'add to the devDependencies'],\n ['o', 'optional', 'add to the optionalDependencies'],\n ['p', 'peer', 'add to the peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], setDepsFlags: SetDependenciesFlags) {\n const { changedComps, addedPackages } = await this.deps.setDependency(pattern, packages, setDepsFlags);\n\n return `${chalk.green('successfully updated dependencies')}\n${chalk.bold('changed components')}\n${changedComps.join('\\n')}\n\n${chalk.bold('added packages')}\n${JSON.stringify(addedPackages, undefined, 4)}`;\n }\n}\n\nexport class DependenciesRemoveCmd implements Command {\n name = 'remove <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'dependencies';\n description = 'remove a dependency from one or more components';\n extendedDescription = `this command removes the dependency whether it was set by 'bit deps set'/variants or by auto-detection.\nif the dependency was auto-detected, it will be marked with a minus sign in the .bitmap file.\notherwise, the config is written to .bitmap without the dependency.\nsee also 'bit deps unset'`;\n alias = '';\n options = [\n ['d', 'dev', 'remove from devDependencies'],\n ['p', 'peer', 'remove from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to remove');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully removed dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesUnsetCmd implements Command {\n name = 'unset <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'dependencies';\n description = 'unset a dependency to component(s) that was set via config (e.g. \"bit deps set\" or variants)';\n extendedDescription = `this command removes the dependency only when it was set by config not if it was auto detected.\nin the .bitmap file, the config is written without the dependency.\nsee also \"bit deps remove\"`;\n alias = '';\n options = [\n ['d', 'dev', 'unset from devDependencies'],\n ['p', 'peer', 'unset from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags, true);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to unset');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully unset dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesResetCmd implements Command {\n name = 'reset <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'dependencies';\n description = 'reset dependencies to the default values (revert any previously \"bit deps set\")';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.reset(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully reset dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesEjectCmd implements Command {\n name = 'eject <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'dependencies';\n description = 'write dependencies that were previously set via \"bit deps set\" into .bitmap';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.eject(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully ejected dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesBlameCmd implements Command {\n name = 'blame <component-name> <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description: 'package-name. for components, you can use either component-id or package-name',\n },\n ];\n group = 'info-analysis';\n description = 'find out which snap/tag changed a dependency version';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([compName, depName]: [string, string]) {\n const results = await this.deps.blame(compName, depName);\n if (!results.length) {\n return chalk.yellow(`the specified component ${compName} does not use the entered dependency ${depName}`);\n }\n const table = borderlessTable();\n results.map(({ snap, tag, author, date, message, version }) =>\n table.push([snap, tag || '', author, date, message, version])\n );\n\n return table.toString();\n }\n}\n\ntype DependenciesUsageCmdOptions = {\n depth?: number;\n};\n\nexport class DependenciesUsageCmd implements Command {\n name = 'usage <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description:\n 'package-name. for components, you can use either component-id or package-name. if version is specified, it will search for the exact version',\n },\n ];\n group = 'dependencies';\n description = 'find components that use the specified dependency';\n extendedDescription = `searches workspace components to find which ones depend on the specified package or component.\nuseful for understanding dependency usage before removing packages or when refactoring components.\nsupports both exact version matching and package name patterns.`;\n alias = '';\n options = [['', 'depth <number>', 'max display depth of the dependency graph']] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([depName]: [string], options: DependenciesUsageCmdOptions) {\n const deepUsageResult = await this.deps.usageDeep(depName, options);\n if (deepUsageResult != null) return deepUsageResult;\n const results = await this.deps.usage(depName);\n if (!Object.keys(results).length) {\n return chalk.yellow(`the specified dependency ${depName} is not used by any component`);\n }\n return Object.keys(results)\n .map((compIdStr) => `${chalk.bold(compIdStr)} (using dep in version ${results[compIdStr]})`)\n .join('\\n');\n }\n}\n\nexport class WhyCmd extends DependenciesUsageCmd {\n name = 'why <dependency-name>';\n}\n\nexport class DependenciesDiagnoseCmd implements Command {\n name = 'diagnose';\n group = 'info-analysis';\n description = 'analyze workspace dependencies for version spread, peer permutations, and bloat';\n extendedDescription = `scans node_modules/.pnpm to report actual installed copies, identifies packages with multiple versions, and highlights peer dependencies causing permutation explosion. Use --package to drill down into a specific package.`;\n alias = '';\n options = [\n ['', 'package <string>', 'drill down into a specific package to see all .pnpm copies and peer combos'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report(_args: [], options: { package?: string }) {\n if (options.package) {\n return this.reportPackageDrillDown(options.package);\n }\n\n const report = await this.deps.diagnose();\n const bloatFactor =\n report.uniquePackages > 0\n ? `${(report.pnpmStoreEntries / report.uniquePackages).toFixed(1)}x bloat factor`\n : 'N/A';\n const sections: string[] = [\n chalk.bold('Dependency Diagnosis for workspace'),\n '',\n chalk.bold('Summary:'),\n ` Components in workspace: ${report.componentCount}`,\n ` Unique packages: ${report.uniquePackages.toLocaleString()}`,\n ` Installed copies (.pnpm entries): ${report.pnpmStoreEntries.toLocaleString()} (${bloatFactor})`,\n ` Packages with duplicates: ${report.duplicatedPackages}`,\n ];\n\n if (report.versionSpread.length) {\n const spreadTable = borderlessTable({\n head: ['Package', 'Versions', 'Copies', 'Impact'],\n paddingLeft: 2,\n paddingRight: 1,\n });\n report.versionSpread.forEach((entry) => {\n spreadTable.push([\n entry.packageName,\n String(entry.versionCount),\n String(entry.installedCopies),\n (IMPACT_COLOR[entry.impact] || chalk.green)(entry.impact),\n ]);\n });\n sections.push('', chalk.bold('Top version-spread packages:'), spreadTable.toString());\n }\n\n if (report.peerPermutations.length) {\n const peerTable = borderlessTable({ head: ['Package', 'Versions'], paddingLeft: 2, paddingRight: 1 });\n report.peerPermutations.forEach((entry) => {\n peerTable.push([entry.packageName, `${entry.versions.length} (${entry.versions.join(', ')})`]);\n });\n sections.push('', chalk.bold('Peer dependencies causing permutations:'), peerTable.toString());\n }\n\n return sections.join('\\n');\n }\n\n private async reportPackageDrillDown(packageName: string): Promise<string> {\n const { pnpmDirs } = await this.deps.diagnoseDrillDown(packageName);\n const header = [chalk.bold(`Package drill-down: ${packageName}`), '', ` Installed copies: ${pnpmDirs.length}`, ''];\n\n if (!pnpmDirs.length) {\n return [\n ...header,\n chalk.yellow(' No .pnpm entries found for this package.'),\n chalk.dim(' The package may not exist in this workspace, or it may be installed only once.'),\n ].join('\\n');\n }\n\n // Group by version\n const byVersion = new Map<string, string[]>();\n for (const dir of pnpmDirs) {\n const suffixes = byVersion.get(dir.version) || [];\n suffixes.push(dir.peerSuffix || '(no peers)');\n byVersion.set(dir.version, suffixes);\n }\n\n const versionLines = Array.from(byVersion, ([version, suffixes]) => [\n chalk.bold(` ${packageName}@${version}`) + chalk.dim(` — ${suffixes.length} copies`),\n ...suffixes.map((s) => ` ${chalk.dim(s)}`),\n ]).flat();\n\n return [...header, ...versionLines].join('\\n');\n }\n\n async json(_args: [], options: { package?: string }) {\n if (options.package) {\n return this.deps.diagnoseDrillDown(options.package);\n }\n return this.deps.diagnose();\n }\n}\n\nexport class DependenciesCmd implements Command {\n name = 'deps <sub-command>';\n alias = 'dependencies';\n description = 'manage component dependencies';\n extendedDescription = `configure and analyze component dependencies with sub-commands for setting, removing, and inspecting dependency relationships.`;\n options = [];\n group = 'dependencies';\n commands: Command[] = [];\n helpUrl = 'reference/dependencies/configuring-dependencies';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"dependencies\", please run \"bit dependencies --help\" to list the subcommands`\n );\n }\n}\n\nexport class SetPeerCmd implements Command {\n name = 'set-peer <component-id> <range>';\n arguments = [\n { name: 'component-id', description: 'the component to set as always peer' },\n {\n name: 'range',\n description: 'the default range to use for the component, when added to peerDependencies',\n },\n ];\n group = 'dependencies';\n description = 'configure component to always be installed as peer dependency';\n extendedDescription = `marks a component to always be treated as a peer dependency when used by other components.\nuseful for shared libraries that should be provided by the consuming application.\nthe specified version range will be used when adding this component as a peer dependency.`;\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId, range]: [string, string]) {\n await this.deps.setPeer(componentId, range != null ? range.toString() : range);\n return `${chalk.green('successfully marked the component as a peer component')}`;\n }\n}\n\nexport class UnsetPeerCmd implements Command {\n name = 'unset-peer <component-id>';\n arguments = [{ name: 'component-id', description: 'the component to unset as always peer' }];\n group = 'dependencies';\n description = 'remove always-peer configuration from component';\n extendedDescription = `removes the always-peer marking from a component, allowing it to be installed as a regular dependency.\nreverses the effect of 'bit set-peer' command. the component will be treated normally in dependency resolution.`;\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId]: [string]) {\n await this.deps.unsetPeer(componentId);\n return `${chalk.green('successfully marked the component as not a peer component')}`;\n }\n}\n\ntype DependenciesWriteCmdOptions = {\n target?: 'workspace.jsonc' | 'package.json';\n};\n\nexport class DependenciesWriteCmd implements Command {\n name = 'write';\n arguments = [];\n group = 'dependencies';\n description =\n 'write all workspace component dependencies to package.json or workspace.jsonc, resolving conflicts by picking the ranges that match the highest versions';\n alias = '';\n options = [\n [\n '',\n 'target <workspace.jsonc|package.json>',\n 'specify where the dependencies should be written. By default they are saved to workspace.jsonc',\n ],\n ] as CommandOptions;\n\n constructor(private workspace: Workspace) {}\n\n async report(_, options: DependenciesWriteCmdOptions) {\n await this.workspace.writeDependencies(options.target);\n return '';\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cliTable","data","_interopRequireDefault","require","_chalk","_archy","_legacy","_template","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","borderlessTable","opts","noChar","top","bottom","left","mid","right","middle","Table","chars","style","paddingLeft","paddingRight","head","IMPACT_COLOR","HIGH","chalk","red","MEDIUM","yellow","LOW","green","DependenciesGetCmd","constructor","deps","name","description","report","id","tree","scope","results","getDependencies","idWithVersion","getGraphAsTree","graph","graphAsTree","getDependenciesAsObjectTree","toString","archy","err","graphTree","depsInfo","getDependenciesInfo","toStringWithoutVersion","depsTable","generateDependenciesInfoTable","exports","DependenciesDebugCmd","debugDependencies","JSON","stringify","undefined","DependenciesSetCmd","COMPONENT_PATTERN_HELP","pattern","packages","setDepsFlags","changedComps","addedPackages","setDependency","bold","join","DependenciesRemoveCmd","removeDepsFlags","removeDependency","output","map","removedPackages","underline","DependenciesUnsetCmd","DependenciesResetCmd","reset","comps","DependenciesEjectCmd","eject","DependenciesBlameCmd","compName","depName","blame","table","snap","tag","author","date","message","version","DependenciesUsageCmd","options","deepUsageResult","usageDeep","usage","compIdStr","WhyCmd","args","DependenciesDiagnoseCmd","_args","package","reportPackageDrillDown","diagnose","bloatFactor","uniquePackages","pnpmStoreEntries","toFixed","sections","componentCount","toLocaleString","duplicatedPackages","versionSpread","spreadTable","entry","packageName","versionCount","installedCopies","impact","peerPermutations","peerTable","versions","origins","originLines","versionOrigins","vo","envs","components","cyan","compStrs","componentId","dim","pnpmDirs","diagnoseDrillDown","header","byVersion","Map","dir","suffixes","get","peerSuffix","set","versionLines","Array","from","s","flat","json","DependenciesCmd","unrecognizedSubcommand","SetPeerCmd","range","setPeer","UnsetPeerCmd","unsetPeer","DependenciesWriteCmd","workspace","_","writeDependencies","target"],"sources":["dependencies-cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport Table from 'cli-table';\nimport chalk from 'chalk';\nimport archy from 'archy';\nimport type { ComponentIdGraph } from '@teambit/graph';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport { generateDependenciesInfoTable } from './template';\nimport type { DependenciesMain } from './dependencies.main.runtime';\nimport type { Workspace } from '@teambit/workspace';\n\n/** Create a borderless CLI table (columns aligned with whitespace only). */\nfunction borderlessTable(\n opts: { head?: string[]; paddingLeft?: number; paddingRight?: number } = {}\n): InstanceType<typeof Table> {\n const noChar = {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n };\n return new Table({\n chars: noChar,\n style: { 'padding-left': opts.paddingLeft ?? 0, 'padding-right': opts.paddingRight ?? 0 },\n ...(opts.head ? { head: opts.head } : {}),\n });\n}\n\nconst IMPACT_COLOR: Record<string, (s: string) => string> = {\n HIGH: chalk.red,\n MEDIUM: chalk.yellow,\n LOW: chalk.green,\n};\n\ntype GetDependenciesFlags = {\n tree: boolean;\n scope?: boolean;\n};\n\nexport type SetDependenciesFlags = {\n dev?: boolean;\n optional?: boolean;\n peer?: boolean;\n};\n\nexport type RemoveDependenciesFlags = SetDependenciesFlags;\n\nexport class DependenciesGetCmd implements Command {\n name = 'get <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info-analysis';\n description = 'show direct and indirect dependencies of the given component';\n alias = '';\n options = [\n ['', 'scope', 'get the data from the scope instead of the workspace'],\n ['t', 'tree', 'render dependencies as a tree, similar to \"npm ls\"'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string], { tree = false, scope = false }: GetDependenciesFlags) {\n const results = await this.deps.getDependencies(id, scope);\n\n if (tree) {\n const idWithVersion = results.id;\n const getGraphAsTree = (graph: ComponentIdGraph) => {\n try {\n const graphAsTree = graph.getDependenciesAsObjectTree(idWithVersion.toString());\n return archy(graphAsTree);\n } catch (err: any) {\n if (err.constructor.name === 'RangeError') {\n return `${chalk.red(\n 'unable to generate a tree representation, the graph is too big or has cyclic dependencies'\n )}`;\n }\n throw err;\n }\n };\n const graphTree = getGraphAsTree(results.graph);\n return graphTree;\n }\n const depsInfo = results.graph.getDependenciesInfo(results.id);\n if (!depsInfo.length) {\n return `no dependencies found for ${results.id.toString()}.\ntry running \"bit cat-component ${results.id.toStringWithoutVersion()}\" to see whether the component/version exists locally`;\n }\n\n const depsTable = generateDependenciesInfoTable(depsInfo, results.id);\n return `${depsTable || '<none>'}`;\n }\n}\n\nexport class DependenciesDebugCmd implements Command {\n name = 'debug <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info-analysis';\n description = 'show the immediate dependencies and how their versions were determined';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([id]: [string]) {\n const results = await this.deps.debugDependencies(id);\n return JSON.stringify(results, undefined, 4);\n }\n}\n\nexport class DependenciesSetCmd implements Command {\n name = 'set <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will be resolved to the latest',\n },\n ];\n group = 'dependencies';\n description = 'set a dependency to component(s)';\n alias = '';\n options = [\n ['d', 'dev', 'add to the devDependencies'],\n ['o', 'optional', 'add to the optionalDependencies'],\n ['p', 'peer', 'add to the peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], setDepsFlags: SetDependenciesFlags) {\n const { changedComps, addedPackages } = await this.deps.setDependency(pattern, packages, setDepsFlags);\n\n return `${chalk.green('successfully updated dependencies')}\n${chalk.bold('changed components')}\n${changedComps.join('\\n')}\n\n${chalk.bold('added packages')}\n${JSON.stringify(addedPackages, undefined, 4)}`;\n }\n}\n\nexport class DependenciesRemoveCmd implements Command {\n name = 'remove <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'dependencies';\n description = 'remove a dependency from one or more components';\n extendedDescription = `this command removes the dependency whether it was set by 'bit deps set'/variants or by auto-detection.\nif the dependency was auto-detected, it will be marked with a minus sign in the .bitmap file.\notherwise, the config is written to .bitmap without the dependency.\nsee also 'bit deps unset'`;\n alias = '';\n options = [\n ['d', 'dev', 'remove from devDependencies'],\n ['p', 'peer', 'remove from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to remove');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully removed dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesUnsetCmd implements Command {\n name = 'unset <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n {\n name: 'package...',\n description:\n 'package name with or without a version, e.g. \"lodash@1.0.0\" or just \"lodash\" which will remove all lodash instances of any version',\n },\n ];\n group = 'dependencies';\n description = 'unset a dependency to component(s) that was set via config (e.g. \"bit deps set\" or variants)';\n extendedDescription = `this command removes the dependency only when it was set by config not if it was auto detected.\nin the .bitmap file, the config is written without the dependency.\nsee also \"bit deps remove\"`;\n alias = '';\n options = [\n ['d', 'dev', 'unset from devDependencies'],\n ['p', 'peer', 'unset from peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], removeDepsFlags: RemoveDependenciesFlags) {\n const results = await this.deps.removeDependency(pattern, packages, removeDepsFlags, true);\n if (!results.length) {\n return chalk.yellow('the specified component-pattern do not use the entered packages. nothing to unset');\n }\n\n const output = results\n .map(({ id, removedPackages }) => `${chalk.underline(id.toString())}\\n${removedPackages.join('\\n')}`)\n .join('\\n\\n');\n\n return `${chalk.green('successfully unset dependencies')}\\n${output}`;\n }\n}\n\nexport class DependenciesResetCmd implements Command {\n name = 'reset <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'dependencies';\n description = 'reset dependencies to the default values (revert any previously \"bit deps set\")';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.reset(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully reset dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesEjectCmd implements Command {\n name = 'eject <component-pattern>';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n group = 'dependencies';\n description = 'write dependencies that were previously set via \"bit deps set\" into .bitmap';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern]: [string]) {\n const results = await this.deps.eject(pattern);\n const comps = results.map((id) => id.toString());\n\n return `${chalk.green('successfully ejected dependencies for the following component(s)')}\\n${comps}`;\n }\n}\n\nexport class DependenciesBlameCmd implements Command {\n name = 'blame <component-name> <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description: 'package-name. for components, you can use either component-id or package-name',\n },\n ];\n group = 'info-analysis';\n description = 'find out which snap/tag changed a dependency version';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([compName, depName]: [string, string]) {\n const results = await this.deps.blame(compName, depName);\n if (!results.length) {\n return chalk.yellow(`the specified component ${compName} does not use the entered dependency ${depName}`);\n }\n const table = borderlessTable();\n results.map(({ snap, tag, author, date, message, version }) =>\n table.push([snap, tag || '', author, date, message, version])\n );\n\n return table.toString();\n }\n}\n\ntype DependenciesUsageCmdOptions = {\n depth?: number;\n};\n\nexport class DependenciesUsageCmd implements Command {\n name = 'usage <dependency-name>';\n arguments = [\n {\n name: 'dependency-name',\n description:\n 'package-name. for components, you can use either component-id or package-name. if version is specified, it will search for the exact version',\n },\n ];\n group = 'dependencies';\n description = 'find components that use the specified dependency';\n extendedDescription = `searches workspace components to find which ones depend on the specified package or component.\nuseful for understanding dependency usage before removing packages or when refactoring components.\nsupports both exact version matching and package name patterns.`;\n alias = '';\n options = [['', 'depth <number>', 'max display depth of the dependency graph']] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([depName]: [string], options: DependenciesUsageCmdOptions) {\n const deepUsageResult = await this.deps.usageDeep(depName, options);\n if (deepUsageResult != null) return deepUsageResult;\n const results = await this.deps.usage(depName);\n if (!Object.keys(results).length) {\n return chalk.yellow(`the specified dependency ${depName} is not used by any component`);\n }\n return Object.keys(results)\n .map((compIdStr) => `${chalk.bold(compIdStr)} (using dep in version ${results[compIdStr]})`)\n .join('\\n');\n }\n}\n\nexport class WhyCmd extends DependenciesUsageCmd {\n name = 'why <dependency-name>';\n}\n\nexport class DependenciesDiagnoseCmd implements Command {\n name = 'diagnose';\n group = 'info-analysis';\n description = 'analyze workspace dependencies for version spread, peer permutations, and bloat';\n extendedDescription = `scans node_modules/.pnpm to report actual installed copies, identifies packages with multiple versions, and highlights peer dependencies causing permutation explosion. Use --package to drill down into a specific package.`;\n alias = '';\n options = [\n ['', 'package <string>', 'drill down into a specific package to see all .pnpm copies and peer combos'],\n ['', 'origins', 'show peer version origins — which envs and components contribute each peer version'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report(_args: [], options: { package?: string; origins?: boolean }) {\n if (options.package) {\n return this.reportPackageDrillDown(options.package);\n }\n\n const report = await this.deps.diagnose();\n const bloatFactor =\n report.uniquePackages > 0\n ? `${(report.pnpmStoreEntries / report.uniquePackages).toFixed(1)}x bloat factor`\n : 'N/A';\n const sections: string[] = [\n chalk.bold('Dependency Diagnosis for workspace'),\n '',\n chalk.bold('Summary:'),\n ` Components in workspace: ${report.componentCount}`,\n ` Unique packages: ${report.uniquePackages.toLocaleString()}`,\n ` Installed copies (.pnpm entries): ${report.pnpmStoreEntries.toLocaleString()} (${bloatFactor})`,\n ` Packages with duplicates: ${report.duplicatedPackages}`,\n ];\n\n if (report.versionSpread.length) {\n const spreadTable = borderlessTable({\n head: ['Package', 'Versions', 'Copies', 'Impact'],\n paddingLeft: 2,\n paddingRight: 1,\n });\n report.versionSpread.forEach((entry) => {\n spreadTable.push([\n entry.packageName,\n String(entry.versionCount),\n String(entry.installedCopies),\n (IMPACT_COLOR[entry.impact] || chalk.green)(entry.impact),\n ]);\n });\n sections.push('', chalk.bold('Top version-spread packages:'), spreadTable.toString());\n }\n\n if (report.peerPermutations.length) {\n const peerTable = borderlessTable({ head: ['Package', 'Versions'], paddingLeft: 2, paddingRight: 1 });\n report.peerPermutations.forEach((entry) => {\n peerTable.push([entry.packageName, `${entry.versions.length} (${entry.versions.join(', ')})`]);\n });\n sections.push('', chalk.bold('Peer dependencies causing permutations:'), peerTable.toString());\n\n if (options.origins) {\n // Show peer version origins grouped by version\n const originLines: string[] = [];\n for (const entry of report.peerPermutations) {\n if (!entry.versionOrigins.length) continue;\n originLines.push(` ${chalk.bold(entry.packageName)}`);\n for (const vo of entry.versionOrigins) {\n if (!vo.envs.length && !vo.components.length) continue;\n originLines.push(` ${chalk.cyan(vo.version)}`);\n if (vo.envs.length) {\n originLines.push(` envs: ${vo.envs.join(', ')}`);\n }\n if (vo.components.length) {\n const compStrs = vo.components.map((o) => o.componentId);\n originLines.push(` components: ${compStrs.join(', ')}`);\n }\n }\n }\n if (originLines.length) {\n sections.push('', chalk.bold(' Peer version origins:'), ...originLines);\n }\n } else {\n sections.push(\n '',\n chalk.dim(' Tip: use --origins to see which envs and components contribute each peer version')\n );\n }\n }\n\n return sections.join('\\n');\n }\n\n private async reportPackageDrillDown(packageName: string): Promise<string> {\n const { pnpmDirs } = await this.deps.diagnoseDrillDown(packageName);\n const header = [chalk.bold(`Package drill-down: ${packageName}`), '', ` Installed copies: ${pnpmDirs.length}`, ''];\n\n if (!pnpmDirs.length) {\n return [\n ...header,\n chalk.yellow(' No .pnpm entries found for this package.'),\n chalk.dim(' The package may not exist in this workspace, or it may be installed only once.'),\n ].join('\\n');\n }\n\n // Group by version\n const byVersion = new Map<string, string[]>();\n for (const dir of pnpmDirs) {\n const suffixes = byVersion.get(dir.version) || [];\n suffixes.push(dir.peerSuffix || '(no peers)');\n byVersion.set(dir.version, suffixes);\n }\n\n const versionLines = Array.from(byVersion, ([version, suffixes]) => [\n chalk.bold(` ${packageName}@${version}`) + chalk.dim(` — ${suffixes.length} copies`),\n ...suffixes.map((s) => ` ${chalk.dim(s)}`),\n ]).flat();\n\n return [...header, ...versionLines].join('\\n');\n }\n\n async json(_args: [], options: { package?: string }) {\n if (options.package) {\n return this.deps.diagnoseDrillDown(options.package);\n }\n return this.deps.diagnose();\n }\n}\n\nexport class DependenciesCmd implements Command {\n name = 'deps <sub-command>';\n alias = 'dependencies';\n description = 'manage component dependencies';\n extendedDescription = `configure and analyze component dependencies with sub-commands for setting, removing, and inspecting dependency relationships.`;\n options = [];\n group = 'dependencies';\n commands: Command[] = [];\n helpUrl = 'reference/dependencies/configuring-dependencies';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"dependencies\", please run \"bit dependencies --help\" to list the subcommands`\n );\n }\n}\n\nexport class SetPeerCmd implements Command {\n name = 'set-peer <component-id> <range>';\n arguments = [\n { name: 'component-id', description: 'the component to set as always peer' },\n {\n name: 'range',\n description: 'the default range to use for the component, when added to peerDependencies',\n },\n ];\n group = 'dependencies';\n description = 'configure component to always be installed as peer dependency';\n extendedDescription = `marks a component to always be treated as a peer dependency when used by other components.\nuseful for shared libraries that should be provided by the consuming application.\nthe specified version range will be used when adding this component as a peer dependency.`;\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId, range]: [string, string]) {\n await this.deps.setPeer(componentId, range != null ? range.toString() : range);\n return `${chalk.green('successfully marked the component as a peer component')}`;\n }\n}\n\nexport class UnsetPeerCmd implements Command {\n name = 'unset-peer <component-id>';\n arguments = [{ name: 'component-id', description: 'the component to unset as always peer' }];\n group = 'dependencies';\n description = 'remove always-peer configuration from component';\n extendedDescription = `removes the always-peer marking from a component, allowing it to be installed as a regular dependency.\nreverses the effect of 'bit set-peer' command. the component will be treated normally in dependency resolution.`;\n alias = '';\n options = [];\n\n constructor(private deps: DependenciesMain) {}\n\n async report([componentId]: [string]) {\n await this.deps.unsetPeer(componentId);\n return `${chalk.green('successfully marked the component as not a peer component')}`;\n }\n}\n\ntype DependenciesWriteCmdOptions = {\n target?: 'workspace.jsonc' | 'package.json';\n};\n\nexport class DependenciesWriteCmd implements Command {\n name = 'write';\n arguments = [];\n group = 'dependencies';\n description =\n 'write all workspace component dependencies to package.json or workspace.jsonc, resolving conflicts by picking the ranges that match the highest versions';\n alias = '';\n options = [\n [\n '',\n 'target <workspace.jsonc|package.json>',\n 'specify where the dependencies should be written. By default they are saved to workspace.jsonc',\n ],\n ] as CommandOptions;\n\n constructor(private workspace: Workspace) {}\n\n async report(_, options: DependenciesWriteCmdOptions) {\n await this.workspace.writeDependencies(options.target);\n return '';\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -38,6 +38,14 @@ export type BlameResult = {
38
38
  message: string;
39
39
  version: string;
40
40
  };
41
+ export type VersionOrigin = {
42
+ version: string;
43
+ envs: string[];
44
+ components: Array<{
45
+ componentId: string;
46
+ envId: string;
47
+ }>;
48
+ };
41
49
  export interface DiagnosisReport {
42
50
  componentCount: number;
43
51
  /** total directories in node_modules/.pnpm — the actual installed copies on disk */
@@ -58,6 +66,7 @@ export interface DiagnosisReport {
58
66
  peerPermutations: Array<{
59
67
  packageName: string;
60
68
  versions: string[];
69
+ versionOrigins: VersionOrigin[];
61
70
  }>;
62
71
  }
63
72
  export declare class DependenciesMain {
@@ -150,6 +150,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
150
150
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
151
151
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
152
152
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
153
+ /** Max component entries per version origin — keeps output and memory bounded. */
154
+ const MAX_ORIGIN_COMPONENTS = 5;
153
155
  /** Compare two version strings: semver-aware when both are valid, lexicographic otherwise. */
154
156
  function compareVersions(a, b) {
155
157
  return _semver().default.valid(a) && _semver().default.valid(b) ? _semver().default.compare(a, b) : a.localeCompare(b);
@@ -469,7 +471,17 @@ class DependenciesMain {
469
471
 
470
472
  // 2. Collect component-level dep info (for version spread + peer lifecycle detection)
471
473
  const packageVersionMap = new Map();
474
+ // Track peer version origins: pkgName -> version -> { envs, components }
475
+ // We track ALL lifecycles so non-peer versions of peer packages also appear in origins.
476
+ const peerOrigins = new Map();
472
477
  for (const comp of allComps) {
478
+ let envId;
479
+ try {
480
+ envId = this.workspace.envs.getEnvId(comp);
481
+ } catch (err) {
482
+ this.logger.debug(`diagnose: failed to get envId for ${comp.id.toString()}: ${err.message}`);
483
+ envId = 'unknown';
484
+ }
473
485
  const depList = this.dependencyResolver.getDependencies(comp);
474
486
  depList.forEach(dep => {
475
487
  const pkgName = dep.getPackageName?.() || dep.id;
@@ -483,6 +495,27 @@ class DependenciesMain {
483
495
  }
484
496
  entry.versions.add(dep.version);
485
497
  entry.lifecycles.add(dep.lifecycle);
498
+ let versionMap = peerOrigins.get(pkgName);
499
+ if (!versionMap) {
500
+ versionMap = new Map();
501
+ peerOrigins.set(pkgName, versionMap);
502
+ }
503
+ let origin = versionMap.get(dep.version);
504
+ if (!origin) {
505
+ origin = {
506
+ envs: new Set(),
507
+ components: []
508
+ };
509
+ versionMap.set(dep.version, origin);
510
+ }
511
+ if (dep.source === 'env') {
512
+ origin.envs.add(envId);
513
+ } else if (origin.components.length < MAX_ORIGIN_COMPONENTS) {
514
+ origin.components.push({
515
+ componentId: comp.id.toStringWithoutVersion(),
516
+ envId
517
+ });
518
+ }
486
519
  });
487
520
  }
488
521
 
@@ -502,10 +535,28 @@ class DependenciesMain {
502
535
  }).sort((a, b) => b.installedCopies - a.installedCopies).slice(0, 30);
503
536
 
504
537
  // 4. Peer deps with multiple versions
505
- const peerPermutations = Array.from(packageVersionMap.entries()).filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1).map(([pkgName, data]) => ({
506
- packageName: pkgName,
507
- versions: Array.from(data.versions).sort(compareVersions)
508
- })).sort((a, b) => b.versions.length - a.versions.length);
538
+ const peerPermutations = Array.from(packageVersionMap.entries()).filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1).map(([pkgName, data]) => {
539
+ const versionMap = peerOrigins.get(pkgName);
540
+ const versionOrigins = [];
541
+ if (versionMap) {
542
+ for (const [ver, origin] of versionMap) {
543
+ const envs = Array.from(origin.envs).sort();
544
+ // Exclude components already listed as envs for this version
545
+ const components = origin.components.filter(o => !origin.envs.has(o.componentId)).sort((a, b) => a.componentId.localeCompare(b.componentId));
546
+ versionOrigins.push({
547
+ version: ver,
548
+ envs,
549
+ components
550
+ });
551
+ }
552
+ versionOrigins.sort((a, b) => compareVersions(a.version, b.version));
553
+ }
554
+ return {
555
+ packageName: pkgName,
556
+ versions: Array.from(data.versions).sort(compareVersions),
557
+ versionOrigins
558
+ };
559
+ }).sort((a, b) => b.versions.length - a.versions.length);
509
560
  return {
510
561
  componentCount,
511
562
  pnpmStoreEntries,
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_fsExtra","_path","_semver","_lodash","_pMapSeries","_legacy","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","_logger","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","compareVersions","a","b","semver","valid","compare","localeCompare","DependenciesMain","constructor","workspace","scope","dependencyResolver","devFiles","aspectLoader","graph","logger","setPeer","componentId","range","compId","resolveComponentId","config","peer","defaultPeerRange","addSpecificComponentConfig","DependencyResolverAspect","id","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","consumer","componentFsCache","deleteAllDependenciesDataCache","unsetPeer","getAspectConfigForComponent","addComponentConfig","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","optional","policy","changedComps","toStringWithoutVersion","addedPackages","removeDependency","removeOnlyIfExists","getLifeCycle","results","pMapSeries","component","get","missingPackages","uniq","state","issues","getIssueByName","d","flat","depList","getDependencies","getCurrentConfig","currentConfigFromWorkspace","getSpecificComponentConfig","extFromScope","getExtensionsFromScopeAndSpecific","toConfigObject","currentDepResolverConfig","newDepResolverConfig","cloneDeep","depField","KEY_NAME_BY_LIFECYCLE_TYPE","removedPackagesWithNulls","splitPkgToNameAndVer","dependency","findByPkgNameOrCompId","includes","set","depName","getPackageName","existsInSpecificConfig","removedPackages","compact","reset","eject","factory","comp","compIdWithVer","getGraphIds","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","OutsideWorkspaceError","consumerComponent","_consumer","cacheResolvedDependencies","useDependenciesCache","missingPackageDependencies","manuallyAddedDependencies","manuallyRemovedDependencies","overridesDependencies","sources","dep","source","debugDependenciesData","coreAspects","blame","compName","log","getLogs","blameResults","lastVersion","logItem","changeVersion","tag","hash","snap","author","username","date","moment","Date","parseInt","format","message","usageDeep","isComponentId","getPackageManager","findUsages","lockfileDir","path","depth","undefined","usage","allComps","list","toString","diagnose","componentCount","pnpmDir","join","pnpmDirExists","fs","pathExists","Error","pnpmEntries","readdir","pnpmPackageCopies","Map","pnpmStoreEntries","entry","startsWith","pkgName","parsePnpmDirPackageName","uniquePackages","size","duplicatedPackages","Array","from","values","c","packageVersionMap","versions","Set","lifecycles","add","lifecycle","versionSpread","entries","versionCount","sort","installedCopies","impact","packageName","slice","peerPermutations","has","dirName","plusIdx","indexOf","substring","rest","atIdx","diagnoseDrillDown","pnpmPrefix","replace","pnpmDirs","afterName","underscoreIdx","peerSuffix","rawPeerSuffix","peerSegments","split","Boolean","seg","resolveLatest","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","versionResolved","snapToSemver","packageSplit","provider","cli","depsResolver","loggerMain","createLogger","DependenciesAspect","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesRemoveCmd","DependenciesUnsetCmd","DependenciesDebugCmd","DependenciesSetCmd","DependenciesResetCmd","DependenciesEjectCmd","DependenciesBlameCmd","DependenciesUsageCmd","DependenciesDiagnoseCmd","DependenciesWriteCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport moment from 'moment';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, KEY_NAME_BY_LIFECYCLE_TYPE } from '@teambit/dependency-resolver';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport semver from 'semver';\nimport { cloneDeep, compact, set, uniq } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport type { ConsumerComponent, DependencyLoaderOpts } from '@teambit/legacy.consumer-component';\nimport { ComponentLoader } from '@teambit/legacy.consumer-component';\nimport type { DevFilesMain } from '@teambit/dev-files';\nimport { DevFilesAspect } from '@teambit/dev-files';\nimport type { ComponentIdGraph, GraphMain } from '@teambit/graph';\nimport { GraphAspect } from '@teambit/graph';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport { DependenciesLoader } from './dependencies-loader/dependencies-loader';\nimport type { DependenciesData, OverridesDependenciesData } from './dependencies-loader/dependencies-data';\nimport type { RemoveDependenciesFlags, SetDependenciesFlags } from './dependencies-cmd';\nimport {\n DependenciesBlameCmd,\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesDiagnoseCmd,\n DependenciesEjectCmd,\n DependenciesGetCmd,\n DependenciesRemoveCmd,\n DependenciesResetCmd,\n DependenciesSetCmd,\n DependenciesUnsetCmd,\n DependenciesUsageCmd,\n DependenciesWriteCmd,\n SetPeerCmd,\n UnsetPeerCmd,\n WhyCmd,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\nimport type { DebugDependencies } from './dependencies-loader/auto-detect-deps';\nimport { DependentsCmd } from './dependents-cmd';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport type RemoveDependencyResult = { id: ComponentID; removedPackages: string[] };\nexport type SetDependenciesResult = { changedComps: string[]; addedPackages: Record<string, string> };\nexport type DependenciesResultsDebug = DebugDependencies &\n OverridesDependenciesData & { coreAspects: string[]; sources: { id: string; source: string }[] };\n\nexport type DependenciesResults = {\n graph: ComponentIdGraph;\n id: ComponentID;\n};\n\nexport type BlameResult = {\n snap: string;\n tag?: string;\n author: string;\n date: string;\n message: string;\n version: string;\n};\n\nexport interface DiagnosisReport {\n componentCount: number;\n /** total directories in node_modules/.pnpm — the actual installed copies on disk */\n pnpmStoreEntries: number;\n /** unique package names (regardless of version/peer combo) */\n uniquePackages: number;\n /** packages that appear in more than one .pnpm directory (version spread + peer permutations) */\n duplicatedPackages: number;\n versionSpread: Array<{\n packageName: string;\n /** how many distinct versions exist across components */\n versionCount: number;\n versions: string[];\n /** how many actual .pnpm directories this package has (includes peer permutations) */\n installedCopies: number;\n impact: 'HIGH' | 'MEDIUM' | 'LOW';\n }>;\n peerPermutations: Array<{\n packageName: string;\n versions: string[];\n }>;\n}\n\n/** Compare two version strings: semver-aware when both are valid, lexicographic otherwise. */\nfunction compareVersions(a: string, b: string): number {\n return semver.valid(a) && semver.valid(b) ? semver.compare(a, b) : a.localeCompare(b);\n}\n\nexport class DependenciesMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private dependencyResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain,\n private graph: GraphMain,\n private logger: Logger\n ) {}\n\n async setPeer(componentId: string, range?: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n const config = { peer: true, defaultPeerRange: range };\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n\n await this.workspace.bitMap.write(`set-peer (${componentId})`);\n // Peer status is determined by reading the `bit.peer` field from the component's node_modules\n // package.json, which the linker writes AFTER dep resolution runs during `bit install`. This\n // means dep resolution during install re-populates the cache with stale data (no bit.peer yet),\n // and the linker's subsequent package.json update doesn't clear the cache on its own unless the\n // content actually changed (see node-modules-linker). Clearing here ensures the cache is empty\n // going into install so that after the linker writes the correct package.json, any subsequent\n // `bit show` will compute deps fresh.\n // Other dep mutations (setDependency, removeDependency, etc.) don't need this because they only\n // change the component's own .bitmap policy, which dep resolution reads directly; the normal\n // invalidateDependenciesCacheIfNeeded mechanism (checking .bitmap mtime) is sufficient there.\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n\n async unsetPeer(componentId: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n // const config = { peer: true, defaultPeerRange: range };\n const config = await this.workspace.getAspectConfigForComponent(compId, DependencyResolverAspect.id);\n if (config) {\n if ('peer' in config) {\n delete config.peer;\n }\n if ('defaultPeerRange' in config) {\n delete config.defaultPeerRange;\n }\n }\n this.workspace.bitMap.addComponentConfig(compId, DependencyResolverAspect.id, config);\n\n await this.workspace.bitMap.write(`unset-peer (${componentId})`);\n // Same reasoning as in setPeer: clears the stale cache before the next install rewrites the\n // component's node_modules package.json without the bit.peer field.\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags = {}\n ): Promise<SetDependenciesResult> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n if (options.optional) {\n packagesObj[name] = { optional: true, version };\n } else {\n packagesObj[name] = version;\n }\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n\n await this.workspace.bitMap.write(`deps-set (${componentPattern})`);\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n async removeDependency(\n componentPattern: string,\n packages: string[],\n options: RemoveDependenciesFlags = {},\n removeOnlyIfExists = false // unset\n ): Promise<RemoveDependencyResult[]> {\n const getLifeCycle = () => {\n if (options.dev) return 'dev';\n if (options.peer) return 'peer';\n return 'runtime';\n };\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const results = await pMapSeries(compIds, async (compId) => {\n const component = await this.workspace.get(compId);\n const missingPackages = uniq(\n component.state.issues\n .getIssueByName('MissingPackagesDependenciesOnFs')\n ?.data.map((d) => d.missingPackages)\n .flat() || []\n );\n const depList = this.dependencyResolver.getDependencies(component);\n const getCurrentConfig = async () => {\n const currentConfigFromWorkspace = await this.workspace.getSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id\n );\n if (currentConfigFromWorkspace) return currentConfigFromWorkspace;\n const extFromScope = await this.workspace.getExtensionsFromScopeAndSpecific(compId);\n return extFromScope?.toConfigObject()[DependencyResolverAspect.id];\n };\n const currentDepResolverConfig = await getCurrentConfig();\n const newDepResolverConfig = cloneDeep(currentDepResolverConfig || {});\n const depField = KEY_NAME_BY_LIFECYCLE_TYPE[getLifeCycle()];\n const removedPackagesWithNulls = await pMapSeries(packages, async (pkg) => {\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const dependency = depList.findByPkgNameOrCompId(name, version, getLifeCycle());\n if (!dependency) {\n if (!missingPackages.includes(name)) return null;\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, name], '-');\n return `${name}@${version || 'latest'}`;\n }\n const depName = dependency.getPackageName?.() || dependency.id;\n\n const existsInSpecificConfig = newDepResolverConfig.policy?.[depField]?.[depName];\n if (existsInSpecificConfig) {\n if (existsInSpecificConfig === '-') return null;\n delete newDepResolverConfig.policy[depField][depName];\n } else {\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, depName], '-');\n }\n return `${depName}@${dependency.version}`;\n });\n const removedPackages = compact(removedPackagesWithNulls);\n if (!removedPackages.length) return null;\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, newDepResolverConfig);\n return { id: compId, removedPackages };\n });\n await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);\n\n return compact(results);\n }\n\n async reset(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, { policy: {} });\n });\n await this.workspace.bitMap.write(`deps-reset (${componentPattern})`);\n\n return compIds;\n }\n\n async eject(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id,\n {},\n {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n }\n );\n });\n await this.workspace.bitMap.write(`deps-eject (${componentPattern})`);\n\n return compIds;\n }\n\n async getDependencies(id: string, scope?: boolean): Promise<DependenciesResults> {\n const factory = this.workspace && !scope ? this.workspace : this.scope;\n const compId = await (this.workspace || this.scope).resolveComponentId(id);\n const comp = await (this.workspace || this.scope).get(compId);\n const compIdWithVer = comp.id;\n const graph = await this.graph.getGraphIds([compIdWithVer], { host: factory as any });\n\n return { graph, id: compIdWithVer };\n }\n\n async loadDependencies(component: ConsumerComponent, opts: DependencyLoaderOpts) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.load(this.workspace, opts);\n }\n\n /**\n * load dependencies without the need for the workspace.\n * the \"auto-detect\" are passed here as \"dependenciesData\". the \"overrides\", such as dependencies from the env,\n * are calculated here.\n * eventually all these dependencies are added to the ConsumerComponent object.\n */\n async loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.loadFromScope(dependenciesData);\n }\n\n async debugDependencies(id: string): Promise<DependenciesResultsDebug> {\n // @todo: supports this on bare-scope.\n if (!this.workspace) throw new OutsideWorkspaceError();\n const compId = await this.workspace.resolveComponentId(id);\n const component = await this.workspace.get(compId);\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = await this.loadDependencies(consumerComponent, {\n cacheResolvedDependencies: {},\n useDependenciesCache: false,\n });\n\n const { missingPackageDependencies, manuallyAddedDependencies, manuallyRemovedDependencies } =\n dependenciesData.overridesDependencies;\n\n const results = this.dependencyResolver.getDependencies(component);\n const sources = results.map((dep) => ({ id: dep.id, source: dep.source }));\n\n return {\n ...dependenciesData.debugDependenciesData,\n manuallyRemovedDependencies,\n manuallyAddedDependencies,\n missingPackageDependencies,\n coreAspects: dependenciesData.dependenciesData.coreAspects,\n sources,\n };\n }\n\n /**\n * helps determine what snap/tag changed a specific dependency.\n * the results are sorted from the oldest to newest.\n */\n async blame(compName: string, depName: string) {\n const id = await this.workspace.resolveComponentId(compName);\n const log = await this.workspace.scope.getLogs(id);\n const blameResults: BlameResult[] = [];\n let lastVersion = '';\n await pMapSeries(log, async (logItem) => {\n const component = await this.workspace.get(id.changeVersion(logItem.tag || logItem.hash));\n const depList = this.dependencyResolver.getDependencies(component);\n const dependency = depList.findByPkgNameOrCompId(depName);\n if (dependency && dependency.version === lastVersion) {\n return;\n }\n let version: string;\n if (!dependency) {\n if (!lastVersion) return;\n version = '<REMOVED>';\n } else {\n version = dependency.version;\n }\n if (!dependency || dependency.version === lastVersion) return;\n lastVersion = dependency.version;\n blameResults.push({\n snap: logItem.hash,\n tag: logItem.tag,\n author: logItem.username || '<N/A>',\n date: logItem.date ? moment(new Date(parseInt(logItem.date))).format('YYYY-MM-DD HH:mm:ss') : '<N/A>',\n message: logItem.message,\n version,\n });\n });\n return blameResults;\n }\n\n async usageDeep(depName: string, opts?: { depth?: number }): Promise<string | undefined> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (!isComponentId(depName)) {\n return this.dependencyResolver.getPackageManager()?.findUsages?.(depName, {\n lockfileDir: this.workspace.path,\n depth: opts?.depth,\n });\n }\n return undefined;\n }\n\n /**\n * @param depName either component-id-string or package-name (of the component or not component)\n * @returns a map of component-id-string to the version of the dependency\n */\n async usage(depName: string): Promise<{ [compIdStr: string]: string }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const [name, version] = this.splitPkgToNameAndVer(depName);\n const allComps = await this.workspace.list();\n const results = {};\n await Promise.all(\n allComps.map(async (comp) => {\n const depList = this.dependencyResolver.getDependencies(comp);\n const dependency = depList.findByPkgNameOrCompId(name, version);\n if (dependency) {\n results[comp.id.toString()] = dependency.version;\n }\n })\n );\n return results;\n }\n\n /**\n * Analyze the workspace's installed dependencies to detect bloat and duplication.\n * Scans node_modules/.pnpm for ground truth on actual installed copies.\n * Only works with pnpm-managed workspaces.\n */\n async diagnose(): Promise<DiagnosisReport> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const allComps = await this.workspace.list();\n const componentCount = allComps.length;\n\n // 1. Scan node_modules/.pnpm for ground truth — each directory is an actual installed copy\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const pnpmEntries = await fs.readdir(pnpmDir);\n\n const pnpmPackageCopies = new Map<string, number>();\n let pnpmStoreEntries = 0;\n for (const entry of pnpmEntries) {\n if (entry.startsWith('.') || entry === 'node_modules') continue;\n pnpmStoreEntries++;\n const pkgName = this.parsePnpmDirPackageName(entry);\n if (pkgName) {\n pnpmPackageCopies.set(pkgName, (pnpmPackageCopies.get(pkgName) || 0) + 1);\n }\n }\n\n const uniquePackages = pnpmPackageCopies.size;\n const duplicatedPackages = Array.from(pnpmPackageCopies.values()).filter((c) => c > 1).length;\n\n // 2. Collect component-level dep info (for version spread + peer lifecycle detection)\n const packageVersionMap = new Map<string, { versions: Set<string>; lifecycles: Set<string> }>();\n for (const comp of allComps) {\n const depList = this.dependencyResolver.getDependencies(comp);\n depList.forEach((dep) => {\n const pkgName = dep.getPackageName?.() || dep.id;\n let entry = packageVersionMap.get(pkgName);\n if (!entry) {\n entry = { versions: new Set(), lifecycles: new Set() };\n packageVersionMap.set(pkgName, entry);\n }\n entry.versions.add(dep.version);\n entry.lifecycles.add(dep.lifecycle);\n });\n }\n\n // 3. Version spread — packages with the most distinct versions, enriched with .pnpm copy count\n const versionSpread = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.versions.size > 1)\n .map(([pkgName, data]) => {\n const versionCount = data.versions.size;\n const versions = Array.from(data.versions).sort(compareVersions);\n const installedCopies = pnpmPackageCopies.get(pkgName) || versionCount;\n const impact: 'HIGH' | 'MEDIUM' | 'LOW' =\n installedCopies >= 10 ? 'HIGH' : installedCopies >= 5 ? 'MEDIUM' : 'LOW';\n return { packageName: pkgName, versionCount, versions, installedCopies, impact };\n })\n .sort((a, b) => b.installedCopies - a.installedCopies)\n .slice(0, 30);\n\n // 4. Peer deps with multiple versions\n const peerPermutations = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1)\n .map(([pkgName, data]) => ({\n packageName: pkgName,\n versions: Array.from(data.versions).sort(compareVersions),\n }))\n .sort((a, b) => b.versions.length - a.versions.length);\n\n return {\n componentCount,\n pnpmStoreEntries,\n uniquePackages,\n duplicatedPackages,\n versionSpread,\n peerPermutations,\n };\n }\n\n /**\n * Parse a .pnpm directory name to extract the package name.\n * Format: @scope+name@version_peers... or name@version_peers...\n */\n private parsePnpmDirPackageName(dirName: string): string | null {\n if (dirName.startsWith('@')) {\n // Scoped package: @scope+name@version...\n const plusIdx = dirName.indexOf('+');\n if (plusIdx === -1) return null;\n const scope = dirName.substring(0, plusIdx);\n const rest = dirName.substring(plusIdx + 1);\n const atIdx = rest.indexOf('@');\n if (atIdx === -1) return null;\n const name = rest.substring(0, atIdx);\n return `${scope}/${name}`;\n }\n // Regular package: name@version...\n const atIdx = dirName.indexOf('@');\n if (atIdx === -1) return null;\n return dirName.substring(0, atIdx);\n }\n\n /** Inspect all .pnpm entries for a specific package, showing each installed copy and its peer combo. */\n async diagnoseDrillDown(\n packageName: string\n ): Promise<{ packageName: string; pnpmDirs: Array<{ version: string; peerSuffix: string | null }> }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose --package\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const entries = await fs.readdir(pnpmDir);\n\n // Convert package name to .pnpm format: @scope/name → @scope+name\n const pnpmPrefix = packageName.replace('/', '+');\n\n const pnpmDirs: Array<{ version: string; peerSuffix: string | null }> = [];\n for (const entry of entries) {\n if (!entry.startsWith(pnpmPrefix + '@')) continue;\n // Extract version and peer suffix from: @scope+name@version_peer1@ver_peer2@ver\n const afterName = entry.substring(pnpmPrefix.length + 1); // skip \"name@\"\n const underscoreIdx = afterName.indexOf('_');\n if (underscoreIdx === -1) {\n pnpmDirs.push({ version: afterName, peerSuffix: null });\n } else {\n const version = afterName.substring(0, underscoreIdx);\n const rawPeerSuffix = afterName.substring(underscoreIdx + 1);\n const peerSegments = rawPeerSuffix.split('_').filter(Boolean);\n const peerSuffix = peerSegments.map((seg) => seg.replace(/\\+/g, '/')).join(' + ') || null;\n pnpmDirs.push({ version, peerSuffix });\n }\n }\n\n pnpmDirs.sort(\n (a, b) => compareVersions(a.version, b.version) || (a.peerSuffix || '').localeCompare(b.peerSuffix || '')\n );\n\n return { packageName, pnpmDirs };\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, snapToSemver(versionResolved)];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n DevFilesAspect,\n AspectLoaderAspect,\n ScopeAspect,\n GraphAspect,\n LoggerAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain,\n LoggerMain,\n ]) {\n const logger = loggerMain.createLogger(DependenciesAspect.id);\n const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph, logger);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [\n new DependenciesGetCmd(depsMain),\n new DependenciesRemoveCmd(depsMain),\n new DependenciesUnsetCmd(depsMain),\n new DependenciesDebugCmd(depsMain),\n new DependenciesSetCmd(depsMain),\n new DependenciesResetCmd(depsMain),\n new DependenciesEjectCmd(depsMain),\n new DependenciesBlameCmd(depsMain),\n new DependenciesUsageCmd(depsMain),\n new DependenciesDiagnoseCmd(depsMain),\n new DependenciesWriteCmd(workspace),\n ];\n cli.register(\n depsCmd,\n new WhyCmd(depsMain),\n new SetPeerCmd(depsMain),\n new UnsetPeerCmd(depsMain),\n new DependentsCmd(workspace)\n );\n\n ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);\n\n return depsMain;\n }\n}\n\nfunction isComponentId(depName: string) {\n return depName.includes('/') && depName[0] !== '@';\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_fsExtra","_path","_semver","_lodash","_pMapSeries","_legacy","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","_logger","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","MAX_ORIGIN_COMPONENTS","compareVersions","a","b","semver","valid","compare","localeCompare","DependenciesMain","constructor","workspace","scope","dependencyResolver","devFiles","aspectLoader","graph","logger","setPeer","componentId","range","compId","resolveComponentId","config","peer","defaultPeerRange","addSpecificComponentConfig","DependencyResolverAspect","id","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","consumer","componentFsCache","deleteAllDependenciesDataCache","unsetPeer","getAspectConfigForComponent","addComponentConfig","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","optional","policy","changedComps","toStringWithoutVersion","addedPackages","removeDependency","removeOnlyIfExists","getLifeCycle","results","pMapSeries","component","get","missingPackages","uniq","state","issues","getIssueByName","d","flat","depList","getDependencies","getCurrentConfig","currentConfigFromWorkspace","getSpecificComponentConfig","extFromScope","getExtensionsFromScopeAndSpecific","toConfigObject","currentDepResolverConfig","newDepResolverConfig","cloneDeep","depField","KEY_NAME_BY_LIFECYCLE_TYPE","removedPackagesWithNulls","splitPkgToNameAndVer","dependency","findByPkgNameOrCompId","includes","set","depName","getPackageName","existsInSpecificConfig","removedPackages","compact","reset","eject","factory","comp","compIdWithVer","getGraphIds","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","OutsideWorkspaceError","consumerComponent","_consumer","cacheResolvedDependencies","useDependenciesCache","missingPackageDependencies","manuallyAddedDependencies","manuallyRemovedDependencies","overridesDependencies","sources","dep","source","debugDependenciesData","coreAspects","blame","compName","log","getLogs","blameResults","lastVersion","logItem","changeVersion","tag","hash","snap","author","username","date","moment","Date","parseInt","format","message","usageDeep","isComponentId","getPackageManager","findUsages","lockfileDir","path","depth","undefined","usage","allComps","list","toString","diagnose","componentCount","pnpmDir","join","pnpmDirExists","fs","pathExists","Error","pnpmEntries","readdir","pnpmPackageCopies","Map","pnpmStoreEntries","entry","startsWith","pkgName","parsePnpmDirPackageName","uniquePackages","size","duplicatedPackages","Array","from","values","c","packageVersionMap","peerOrigins","envId","envs","getEnvId","err","debug","versions","Set","lifecycles","add","lifecycle","versionMap","origin","components","versionSpread","entries","versionCount","sort","installedCopies","impact","packageName","slice","peerPermutations","has","versionOrigins","ver","dirName","plusIdx","indexOf","substring","rest","atIdx","diagnoseDrillDown","pnpmPrefix","replace","pnpmDirs","afterName","underscoreIdx","peerSuffix","rawPeerSuffix","peerSegments","split","Boolean","seg","resolveLatest","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","versionResolved","snapToSemver","packageSplit","provider","cli","depsResolver","loggerMain","createLogger","DependenciesAspect","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesRemoveCmd","DependenciesUnsetCmd","DependenciesDebugCmd","DependenciesSetCmd","DependenciesResetCmd","DependenciesEjectCmd","DependenciesBlameCmd","DependenciesUsageCmd","DependenciesDiagnoseCmd","DependenciesWriteCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport moment from 'moment';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, KEY_NAME_BY_LIFECYCLE_TYPE } from '@teambit/dependency-resolver';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport semver from 'semver';\nimport { cloneDeep, compact, set, uniq } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport type { ConsumerComponent, DependencyLoaderOpts } from '@teambit/legacy.consumer-component';\nimport { ComponentLoader } from '@teambit/legacy.consumer-component';\nimport type { DevFilesMain } from '@teambit/dev-files';\nimport { DevFilesAspect } from '@teambit/dev-files';\nimport type { ComponentIdGraph, GraphMain } from '@teambit/graph';\nimport { GraphAspect } from '@teambit/graph';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport { DependenciesLoader } from './dependencies-loader/dependencies-loader';\nimport type { DependenciesData, OverridesDependenciesData } from './dependencies-loader/dependencies-data';\nimport type { RemoveDependenciesFlags, SetDependenciesFlags } from './dependencies-cmd';\nimport {\n DependenciesBlameCmd,\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesDiagnoseCmd,\n DependenciesEjectCmd,\n DependenciesGetCmd,\n DependenciesRemoveCmd,\n DependenciesResetCmd,\n DependenciesSetCmd,\n DependenciesUnsetCmd,\n DependenciesUsageCmd,\n DependenciesWriteCmd,\n SetPeerCmd,\n UnsetPeerCmd,\n WhyCmd,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\nimport type { DebugDependencies } from './dependencies-loader/auto-detect-deps';\nimport { DependentsCmd } from './dependents-cmd';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport type RemoveDependencyResult = { id: ComponentID; removedPackages: string[] };\nexport type SetDependenciesResult = { changedComps: string[]; addedPackages: Record<string, string> };\nexport type DependenciesResultsDebug = DebugDependencies &\n OverridesDependenciesData & { coreAspects: string[]; sources: { id: string; source: string }[] };\n\nexport type DependenciesResults = {\n graph: ComponentIdGraph;\n id: ComponentID;\n};\n\nexport type BlameResult = {\n snap: string;\n tag?: string;\n author: string;\n date: string;\n message: string;\n version: string;\n};\n\n/** Max component entries per version origin — keeps output and memory bounded. */\nconst MAX_ORIGIN_COMPONENTS = 5;\n\nexport type VersionOrigin = {\n version: string;\n envs: string[];\n components: Array<{ componentId: string; envId: string }>;\n};\n\nexport interface DiagnosisReport {\n componentCount: number;\n /** total directories in node_modules/.pnpm — the actual installed copies on disk */\n pnpmStoreEntries: number;\n /** unique package names (regardless of version/peer combo) */\n uniquePackages: number;\n /** packages that appear in more than one .pnpm directory (version spread + peer permutations) */\n duplicatedPackages: number;\n versionSpread: Array<{\n packageName: string;\n /** how many distinct versions exist across components */\n versionCount: number;\n versions: string[];\n /** how many actual .pnpm directories this package has (includes peer permutations) */\n installedCopies: number;\n impact: 'HIGH' | 'MEDIUM' | 'LOW';\n }>;\n peerPermutations: Array<{\n packageName: string;\n versions: string[];\n versionOrigins: VersionOrigin[];\n }>;\n}\n\n/** Compare two version strings: semver-aware when both are valid, lexicographic otherwise. */\nfunction compareVersions(a: string, b: string): number {\n return semver.valid(a) && semver.valid(b) ? semver.compare(a, b) : a.localeCompare(b);\n}\n\nexport class DependenciesMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private dependencyResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain,\n private graph: GraphMain,\n private logger: Logger\n ) {}\n\n async setPeer(componentId: string, range?: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n const config = { peer: true, defaultPeerRange: range };\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n\n await this.workspace.bitMap.write(`set-peer (${componentId})`);\n // Peer status is determined by reading the `bit.peer` field from the component's node_modules\n // package.json, which the linker writes AFTER dep resolution runs during `bit install`. This\n // means dep resolution during install re-populates the cache with stale data (no bit.peer yet),\n // and the linker's subsequent package.json update doesn't clear the cache on its own unless the\n // content actually changed (see node-modules-linker). Clearing here ensures the cache is empty\n // going into install so that after the linker writes the correct package.json, any subsequent\n // `bit show` will compute deps fresh.\n // Other dep mutations (setDependency, removeDependency, etc.) don't need this because they only\n // change the component's own .bitmap policy, which dep resolution reads directly; the normal\n // invalidateDependenciesCacheIfNeeded mechanism (checking .bitmap mtime) is sufficient there.\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n\n async unsetPeer(componentId: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n // const config = { peer: true, defaultPeerRange: range };\n const config = await this.workspace.getAspectConfigForComponent(compId, DependencyResolverAspect.id);\n if (config) {\n if ('peer' in config) {\n delete config.peer;\n }\n if ('defaultPeerRange' in config) {\n delete config.defaultPeerRange;\n }\n }\n this.workspace.bitMap.addComponentConfig(compId, DependencyResolverAspect.id, config);\n\n await this.workspace.bitMap.write(`unset-peer (${componentId})`);\n // Same reasoning as in setPeer: clears the stale cache before the next install rewrites the\n // component's node_modules package.json without the bit.peer field.\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags = {}\n ): Promise<SetDependenciesResult> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n if (options.optional) {\n packagesObj[name] = { optional: true, version };\n } else {\n packagesObj[name] = version;\n }\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n\n await this.workspace.bitMap.write(`deps-set (${componentPattern})`);\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n async removeDependency(\n componentPattern: string,\n packages: string[],\n options: RemoveDependenciesFlags = {},\n removeOnlyIfExists = false // unset\n ): Promise<RemoveDependencyResult[]> {\n const getLifeCycle = () => {\n if (options.dev) return 'dev';\n if (options.peer) return 'peer';\n return 'runtime';\n };\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const results = await pMapSeries(compIds, async (compId) => {\n const component = await this.workspace.get(compId);\n const missingPackages = uniq(\n component.state.issues\n .getIssueByName('MissingPackagesDependenciesOnFs')\n ?.data.map((d) => d.missingPackages)\n .flat() || []\n );\n const depList = this.dependencyResolver.getDependencies(component);\n const getCurrentConfig = async () => {\n const currentConfigFromWorkspace = await this.workspace.getSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id\n );\n if (currentConfigFromWorkspace) return currentConfigFromWorkspace;\n const extFromScope = await this.workspace.getExtensionsFromScopeAndSpecific(compId);\n return extFromScope?.toConfigObject()[DependencyResolverAspect.id];\n };\n const currentDepResolverConfig = await getCurrentConfig();\n const newDepResolverConfig = cloneDeep(currentDepResolverConfig || {});\n const depField = KEY_NAME_BY_LIFECYCLE_TYPE[getLifeCycle()];\n const removedPackagesWithNulls = await pMapSeries(packages, async (pkg) => {\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const dependency = depList.findByPkgNameOrCompId(name, version, getLifeCycle());\n if (!dependency) {\n if (!missingPackages.includes(name)) return null;\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, name], '-');\n return `${name}@${version || 'latest'}`;\n }\n const depName = dependency.getPackageName?.() || dependency.id;\n\n const existsInSpecificConfig = newDepResolverConfig.policy?.[depField]?.[depName];\n if (existsInSpecificConfig) {\n if (existsInSpecificConfig === '-') return null;\n delete newDepResolverConfig.policy[depField][depName];\n } else {\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, depName], '-');\n }\n return `${depName}@${dependency.version}`;\n });\n const removedPackages = compact(removedPackagesWithNulls);\n if (!removedPackages.length) return null;\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, newDepResolverConfig);\n return { id: compId, removedPackages };\n });\n await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);\n\n return compact(results);\n }\n\n async reset(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, { policy: {} });\n });\n await this.workspace.bitMap.write(`deps-reset (${componentPattern})`);\n\n return compIds;\n }\n\n async eject(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id,\n {},\n {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n }\n );\n });\n await this.workspace.bitMap.write(`deps-eject (${componentPattern})`);\n\n return compIds;\n }\n\n async getDependencies(id: string, scope?: boolean): Promise<DependenciesResults> {\n const factory = this.workspace && !scope ? this.workspace : this.scope;\n const compId = await (this.workspace || this.scope).resolveComponentId(id);\n const comp = await (this.workspace || this.scope).get(compId);\n const compIdWithVer = comp.id;\n const graph = await this.graph.getGraphIds([compIdWithVer], { host: factory as any });\n\n return { graph, id: compIdWithVer };\n }\n\n async loadDependencies(component: ConsumerComponent, opts: DependencyLoaderOpts) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.load(this.workspace, opts);\n }\n\n /**\n * load dependencies without the need for the workspace.\n * the \"auto-detect\" are passed here as \"dependenciesData\". the \"overrides\", such as dependencies from the env,\n * are calculated here.\n * eventually all these dependencies are added to the ConsumerComponent object.\n */\n async loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.loadFromScope(dependenciesData);\n }\n\n async debugDependencies(id: string): Promise<DependenciesResultsDebug> {\n // @todo: supports this on bare-scope.\n if (!this.workspace) throw new OutsideWorkspaceError();\n const compId = await this.workspace.resolveComponentId(id);\n const component = await this.workspace.get(compId);\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = await this.loadDependencies(consumerComponent, {\n cacheResolvedDependencies: {},\n useDependenciesCache: false,\n });\n\n const { missingPackageDependencies, manuallyAddedDependencies, manuallyRemovedDependencies } =\n dependenciesData.overridesDependencies;\n\n const results = this.dependencyResolver.getDependencies(component);\n const sources = results.map((dep) => ({ id: dep.id, source: dep.source }));\n\n return {\n ...dependenciesData.debugDependenciesData,\n manuallyRemovedDependencies,\n manuallyAddedDependencies,\n missingPackageDependencies,\n coreAspects: dependenciesData.dependenciesData.coreAspects,\n sources,\n };\n }\n\n /**\n * helps determine what snap/tag changed a specific dependency.\n * the results are sorted from the oldest to newest.\n */\n async blame(compName: string, depName: string) {\n const id = await this.workspace.resolveComponentId(compName);\n const log = await this.workspace.scope.getLogs(id);\n const blameResults: BlameResult[] = [];\n let lastVersion = '';\n await pMapSeries(log, async (logItem) => {\n const component = await this.workspace.get(id.changeVersion(logItem.tag || logItem.hash));\n const depList = this.dependencyResolver.getDependencies(component);\n const dependency = depList.findByPkgNameOrCompId(depName);\n if (dependency && dependency.version === lastVersion) {\n return;\n }\n let version: string;\n if (!dependency) {\n if (!lastVersion) return;\n version = '<REMOVED>';\n } else {\n version = dependency.version;\n }\n if (!dependency || dependency.version === lastVersion) return;\n lastVersion = dependency.version;\n blameResults.push({\n snap: logItem.hash,\n tag: logItem.tag,\n author: logItem.username || '<N/A>',\n date: logItem.date ? moment(new Date(parseInt(logItem.date))).format('YYYY-MM-DD HH:mm:ss') : '<N/A>',\n message: logItem.message,\n version,\n });\n });\n return blameResults;\n }\n\n async usageDeep(depName: string, opts?: { depth?: number }): Promise<string | undefined> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (!isComponentId(depName)) {\n return this.dependencyResolver.getPackageManager()?.findUsages?.(depName, {\n lockfileDir: this.workspace.path,\n depth: opts?.depth,\n });\n }\n return undefined;\n }\n\n /**\n * @param depName either component-id-string or package-name (of the component or not component)\n * @returns a map of component-id-string to the version of the dependency\n */\n async usage(depName: string): Promise<{ [compIdStr: string]: string }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const [name, version] = this.splitPkgToNameAndVer(depName);\n const allComps = await this.workspace.list();\n const results = {};\n await Promise.all(\n allComps.map(async (comp) => {\n const depList = this.dependencyResolver.getDependencies(comp);\n const dependency = depList.findByPkgNameOrCompId(name, version);\n if (dependency) {\n results[comp.id.toString()] = dependency.version;\n }\n })\n );\n return results;\n }\n\n /**\n * Analyze the workspace's installed dependencies to detect bloat and duplication.\n * Scans node_modules/.pnpm for ground truth on actual installed copies.\n * Only works with pnpm-managed workspaces.\n */\n async diagnose(): Promise<DiagnosisReport> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const allComps = await this.workspace.list();\n const componentCount = allComps.length;\n\n // 1. Scan node_modules/.pnpm for ground truth — each directory is an actual installed copy\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const pnpmEntries = await fs.readdir(pnpmDir);\n\n const pnpmPackageCopies = new Map<string, number>();\n let pnpmStoreEntries = 0;\n for (const entry of pnpmEntries) {\n if (entry.startsWith('.') || entry === 'node_modules') continue;\n pnpmStoreEntries++;\n const pkgName = this.parsePnpmDirPackageName(entry);\n if (pkgName) {\n pnpmPackageCopies.set(pkgName, (pnpmPackageCopies.get(pkgName) || 0) + 1);\n }\n }\n\n const uniquePackages = pnpmPackageCopies.size;\n const duplicatedPackages = Array.from(pnpmPackageCopies.values()).filter((c) => c > 1).length;\n\n // 2. Collect component-level dep info (for version spread + peer lifecycle detection)\n const packageVersionMap = new Map<string, { versions: Set<string>; lifecycles: Set<string> }>();\n // Track peer version origins: pkgName -> version -> { envs, components }\n // We track ALL lifecycles so non-peer versions of peer packages also appear in origins.\n const peerOrigins = new Map<\n string,\n Map<string, { envs: Set<string>; components: Array<{ componentId: string; envId: string }> }>\n >();\n for (const comp of allComps) {\n let envId: string;\n try {\n envId = this.workspace.envs.getEnvId(comp);\n } catch (err: any) {\n this.logger.debug(`diagnose: failed to get envId for ${comp.id.toString()}: ${err.message}`);\n envId = 'unknown';\n }\n const depList = this.dependencyResolver.getDependencies(comp);\n depList.forEach((dep) => {\n const pkgName = dep.getPackageName?.() || dep.id;\n let entry = packageVersionMap.get(pkgName);\n if (!entry) {\n entry = { versions: new Set(), lifecycles: new Set() };\n packageVersionMap.set(pkgName, entry);\n }\n entry.versions.add(dep.version);\n entry.lifecycles.add(dep.lifecycle);\n let versionMap = peerOrigins.get(pkgName);\n if (!versionMap) {\n versionMap = new Map();\n peerOrigins.set(pkgName, versionMap);\n }\n let origin = versionMap.get(dep.version);\n if (!origin) {\n origin = { envs: new Set(), components: [] };\n versionMap.set(dep.version, origin);\n }\n if (dep.source === 'env') {\n origin.envs.add(envId);\n } else if (origin.components.length < MAX_ORIGIN_COMPONENTS) {\n origin.components.push({ componentId: comp.id.toStringWithoutVersion(), envId });\n }\n });\n }\n\n // 3. Version spread — packages with the most distinct versions, enriched with .pnpm copy count\n const versionSpread = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.versions.size > 1)\n .map(([pkgName, data]) => {\n const versionCount = data.versions.size;\n const versions = Array.from(data.versions).sort(compareVersions);\n const installedCopies = pnpmPackageCopies.get(pkgName) || versionCount;\n const impact: 'HIGH' | 'MEDIUM' | 'LOW' =\n installedCopies >= 10 ? 'HIGH' : installedCopies >= 5 ? 'MEDIUM' : 'LOW';\n return { packageName: pkgName, versionCount, versions, installedCopies, impact };\n })\n .sort((a, b) => b.installedCopies - a.installedCopies)\n .slice(0, 30);\n\n // 4. Peer deps with multiple versions\n const peerPermutations = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1)\n .map(([pkgName, data]) => {\n const versionMap = peerOrigins.get(pkgName);\n const versionOrigins: VersionOrigin[] = [];\n if (versionMap) {\n for (const [ver, origin] of versionMap) {\n const envs = Array.from(origin.envs).sort();\n // Exclude components already listed as envs for this version\n const components = origin.components\n .filter((o) => !origin.envs.has(o.componentId))\n .sort((a, b) => a.componentId.localeCompare(b.componentId));\n versionOrigins.push({ version: ver, envs, components });\n }\n versionOrigins.sort((a, b) => compareVersions(a.version, b.version));\n }\n return {\n packageName: pkgName,\n versions: Array.from(data.versions).sort(compareVersions),\n versionOrigins,\n };\n })\n .sort((a, b) => b.versions.length - a.versions.length);\n\n return {\n componentCount,\n pnpmStoreEntries,\n uniquePackages,\n duplicatedPackages,\n versionSpread,\n peerPermutations,\n };\n }\n\n /**\n * Parse a .pnpm directory name to extract the package name.\n * Format: @scope+name@version_peers... or name@version_peers...\n */\n private parsePnpmDirPackageName(dirName: string): string | null {\n if (dirName.startsWith('@')) {\n // Scoped package: @scope+name@version...\n const plusIdx = dirName.indexOf('+');\n if (plusIdx === -1) return null;\n const scope = dirName.substring(0, plusIdx);\n const rest = dirName.substring(plusIdx + 1);\n const atIdx = rest.indexOf('@');\n if (atIdx === -1) return null;\n const name = rest.substring(0, atIdx);\n return `${scope}/${name}`;\n }\n // Regular package: name@version...\n const atIdx = dirName.indexOf('@');\n if (atIdx === -1) return null;\n return dirName.substring(0, atIdx);\n }\n\n /** Inspect all .pnpm entries for a specific package, showing each installed copy and its peer combo. */\n async diagnoseDrillDown(\n packageName: string\n ): Promise<{ packageName: string; pnpmDirs: Array<{ version: string; peerSuffix: string | null }> }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose --package\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const entries = await fs.readdir(pnpmDir);\n\n // Convert package name to .pnpm format: @scope/name → @scope+name\n const pnpmPrefix = packageName.replace('/', '+');\n\n const pnpmDirs: Array<{ version: string; peerSuffix: string | null }> = [];\n for (const entry of entries) {\n if (!entry.startsWith(pnpmPrefix + '@')) continue;\n // Extract version and peer suffix from: @scope+name@version_peer1@ver_peer2@ver\n const afterName = entry.substring(pnpmPrefix.length + 1); // skip \"name@\"\n const underscoreIdx = afterName.indexOf('_');\n if (underscoreIdx === -1) {\n pnpmDirs.push({ version: afterName, peerSuffix: null });\n } else {\n const version = afterName.substring(0, underscoreIdx);\n const rawPeerSuffix = afterName.substring(underscoreIdx + 1);\n const peerSegments = rawPeerSuffix.split('_').filter(Boolean);\n const peerSuffix = peerSegments.map((seg) => seg.replace(/\\+/g, '/')).join(' + ') || null;\n pnpmDirs.push({ version, peerSuffix });\n }\n }\n\n pnpmDirs.sort(\n (a, b) => compareVersions(a.version, b.version) || (a.peerSuffix || '').localeCompare(b.peerSuffix || '')\n );\n\n return { packageName, pnpmDirs };\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, snapToSemver(versionResolved)];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n DevFilesAspect,\n AspectLoaderAspect,\n ScopeAspect,\n GraphAspect,\n LoggerAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain,\n LoggerMain,\n ]) {\n const logger = loggerMain.createLogger(DependenciesAspect.id);\n const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph, logger);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [\n new DependenciesGetCmd(depsMain),\n new DependenciesRemoveCmd(depsMain),\n new DependenciesUnsetCmd(depsMain),\n new DependenciesDebugCmd(depsMain),\n new DependenciesSetCmd(depsMain),\n new DependenciesResetCmd(depsMain),\n new DependenciesEjectCmd(depsMain),\n new DependenciesBlameCmd(depsMain),\n new DependenciesUsageCmd(depsMain),\n new DependenciesDiagnoseCmd(depsMain),\n new DependenciesWriteCmd(workspace),\n ];\n cli.register(\n depsCmd,\n new WhyCmd(depsMain),\n new SetPeerCmd(depsMain),\n new UnsetPeerCmd(depsMain),\n new DependentsCmd(workspace)\n );\n\n ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);\n\n return depsMain;\n }\n}\n\nfunction isComponentId(depName: string) {\n return depName.includes('/') && depName[0] !== '@';\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/dependencies",
3
- "version": "1.0.905",
3
+ "version": "1.0.907",
4
4
  "homepage": "https://bit.cloud/teambit/dependencies/dependencies",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.dependencies",
8
8
  "name": "dependencies",
9
- "version": "1.0.905"
9
+ "version": "1.0.907"
10
10
  },
11
11
  "dependencies": {
12
12
  "archy": "1.0.0",
@@ -55,12 +55,12 @@
55
55
  "@teambit/styling.deps-detectors.detective-sass": "0.0.9",
56
56
  "@teambit/styling.deps-detectors.detective-scss": "0.0.9",
57
57
  "@teambit/typescript.deps-detectors.detective-typescript": "0.0.10",
58
- "@teambit/graph": "1.0.905",
59
- "@teambit/workspace": "1.0.905",
60
- "@teambit/aspect-loader": "1.0.905",
61
- "@teambit/dependency-resolver": "1.0.905",
62
- "@teambit/dev-files": "1.0.905",
63
- "@teambit/scope": "1.0.905"
58
+ "@teambit/graph": "1.0.907",
59
+ "@teambit/workspace": "1.0.907",
60
+ "@teambit/aspect-loader": "1.0.907",
61
+ "@teambit/dependency-resolver": "1.0.907",
62
+ "@teambit/dev-files": "1.0.907",
63
+ "@teambit/scope": "1.0.907"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/cli-table": "^0.3.0",