@teambit/dependencies 1.0.911 → 1.0.912
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dependencies-cmd.js +3 -2
- package/dist/dependencies-cmd.js.map +1 -1
- package/dist/dependencies.main.runtime.d.ts +3 -0
- package/dist/dependencies.main.runtime.js +3 -2
- package/dist/dependencies.main.runtime.js.map +1 -1
- package/package.json +12 -12
- /package/dist/{preview-1773867904845.js → preview-1773927560597.js} +0 -0
package/dist/dependencies-cmd.js
CHANGED
|
@@ -372,12 +372,13 @@ class DependenciesDiagnoseCmd {
|
|
|
372
372
|
}
|
|
373
373
|
if (report.peerPermutations.length) {
|
|
374
374
|
const peerTable = borderlessTable({
|
|
375
|
-
head: ['Package', '
|
|
375
|
+
head: ['Package', 'Declared versions', 'Installed copies'],
|
|
376
376
|
paddingLeft: 2,
|
|
377
377
|
paddingRight: 1
|
|
378
378
|
});
|
|
379
379
|
report.peerPermutations.forEach(entry => {
|
|
380
|
-
|
|
380
|
+
const copies = entry.installedCopies > 0 ? String(entry.installedCopies) : _chalk().default.dim('0 (not installed)');
|
|
381
|
+
peerTable.push([entry.packageName, `${entry.versions.length} (${entry.versions.join(', ')})`, copies]);
|
|
381
382
|
});
|
|
382
383
|
sections.push('', _chalk().default.bold('Peer dependencies causing permutations:'), peerTable.toString());
|
|
383
384
|
if (options.origins) {
|
|
@@ -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","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":[]}
|
|
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","copies","dim","versions","origins","originLines","versionOrigins","vo","envs","components","cyan","compStrs","componentId","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({\n head: ['Package', 'Declared versions', 'Installed copies'],\n paddingLeft: 2,\n paddingRight: 1,\n });\n report.peerPermutations.forEach((entry) => {\n const copies = entry.installedCopies > 0 ? String(entry.installedCopies) : chalk.dim('0 (not installed)');\n peerTable.push([entry.packageName, `${entry.versions.length} (${entry.versions.join(', ')})`, copies]);\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":";;;;;;AAEA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,OAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,OAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,MAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,UAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,SAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2D,SAAAC,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA,KAP3D;AAWA;AACA,SAAS8B,eAAeA,CACtBC,IAAsE,GAAG,CAAC,CAAC,EAC/C;EAC5B,MAAMC,MAAM,GAAG;IACbC,GAAG,EAAE,EAAE;IACP,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACfC,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,EAAE;IAClBC,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,EAAE;IACdC,GAAG,EAAE,EAAE;IACP,SAAS,EAAE,EAAE;IACbC,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,EAAE;IACfC,MAAM,EAAE;EACV,CAAC;EACD,OAAO,KAAIC,mBAAK,EAAA7B,aAAA;IACd8B,KAAK,EAAER,MAAM;IACbS,KAAK,EAAE;MAAE,cAAc,EAAEV,IAAI,CAACW,WAAW,IAAI,CAAC;MAAE,eAAe,EAAEX,IAAI,CAACY,YAAY,IAAI;IAAE;EAAC,GACrFZ,IAAI,CAACa,IAAI,GAAG;IAAEA,IAAI,EAAEb,IAAI,CAACa;EAAK,CAAC,GAAG,CAAC,CAAC,CACzC,CAAC;AACJ;AAEA,MAAMC,YAAmD,GAAG;EAC1DC,IAAI,EAAEC,gBAAK,CAACC,GAAG;EACfC,MAAM,EAAEF,gBAAK,CAACG,MAAM;EACpBC,GAAG,EAAEJ,gBAAK,CAACK;AACb,CAAC;AAeM,MAAMC,kBAAkB,CAAoB;EAWjDC,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAVnC,sBAAsB;IAAAA,eAAA,oBACjB,CAAC;MAAE0C,IAAI,EAAE,gBAAgB;MAAEC,WAAW,EAAE;IAAiC,CAAC,CAAC;IAAA3C,eAAA,gBAC/E,eAAe;IAAAA,eAAA,sBACT,8DAA8D;IAAAA,eAAA,gBACpE,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,EAAE,EAAE,OAAO,EAAE,sDAAsD,CAAC,EACrE,CAAC,GAAG,EAAE,MAAM,EAAE,oDAAoD,CAAC,CACpE;EAE4C;EAE7C,MAAM4C,MAAMA,CAAC,CAACC,EAAE,CAAW,EAAE;IAAEC,IAAI,GAAG,KAAK;IAAEC,KAAK,GAAG;EAA4B,CAAC,EAAE;IAClF,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACQ,eAAe,CAACJ,EAAE,EAAEE,KAAK,CAAC;IAE1D,IAAID,IAAI,EAAE;MACR,MAAMI,aAAa,GAAGF,OAAO,CAACH,EAAE;MAChC,MAAMM,cAAc,GAAIC,KAAuB,IAAK;QAClD,IAAI;UACF,MAAMC,WAAW,GAAGD,KAAK,CAACE,2BAA2B,CAACJ,aAAa,CAACK,QAAQ,CAAC,CAAC,CAAC;UAC/E,OAAO,IAAAC,gBAAK,EAACH,WAAW,CAAC;QAC3B,CAAC,CAAC,OAAOI,GAAQ,EAAE;UACjB,IAAIA,GAAG,CAACjB,WAAW,CAACE,IAAI,KAAK,YAAY,EAAE;YACzC,OAAO,GAAGT,gBAAK,CAACC,GAAG,CACjB,2FACF,CAAC,EAAE;UACL;UACA,MAAMuB,GAAG;QACX;MACF,CAAC;MACD,MAAMC,SAAS,GAAGP,cAAc,CAACH,OAAO,CAACI,KAAK,CAAC;MAC/C,OAAOM,SAAS;IAClB;IACA,MAAMC,QAAQ,GAAGX,OAAO,CAACI,KAAK,CAACQ,mBAAmB,CAACZ,OAAO,CAACH,EAAE,CAAC;IAC9D,IAAI,CAACc,QAAQ,CAAC7D,MAAM,EAAE;MACpB,OAAO,6BAA6BkD,OAAO,CAACH,EAAE,CAACU,QAAQ,CAAC,CAAC;AAC/D,iCAAiCP,OAAO,CAACH,EAAE,CAACgB,sBAAsB,CAAC,CAAC,uDAAuD;IACvH;IAEA,MAAMC,SAAS,GAAG,IAAAC,yCAA6B,EAACJ,QAAQ,EAAEX,OAAO,CAACH,EAAE,CAAC;IACrE,OAAO,GAAGiB,SAAS,IAAI,QAAQ,EAAE;EACnC;AACF;AAACE,OAAA,CAAAzB,kBAAA,GAAAA,kBAAA;AAEM,MAAM0B,oBAAoB,CAAoB;EAQnDzB,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAPnC,wBAAwB;IAAAA,eAAA,oBACnB,CAAC;MAAE0C,IAAI,EAAE,gBAAgB;MAAEC,WAAW,EAAE;IAAiC,CAAC,CAAC;IAAA3C,eAAA,gBAC/E,eAAe;IAAAA,eAAA,sBACT,wEAAwE;IAAAA,eAAA,gBAC9E,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAM4C,MAAMA,CAAC,CAACC,EAAE,CAAW,EAAE;IAC3B,MAAMG,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACyB,iBAAiB,CAACrB,EAAE,CAAC;IACrD,OAAOsB,IAAI,CAACC,SAAS,CAACpB,OAAO,EAAEqB,SAAS,EAAE,CAAC,CAAC;EAC9C;AACF;AAACL,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AAEM,MAAMK,kBAAkB,CAAoB;EAmBjD9B,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAlBnC,sCAAsC;IAAAA,eAAA,oBACjC,CACV;MAAE0C,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE4B;IAAuB,CAAC,EAClE;MACE7B,IAAI,EAAE,YAAY;MAClBC,WAAW,EACT;IACJ,CAAC,CACF;IAAA3C,eAAA,gBACO,cAAc;IAAAA,eAAA,sBACR,kCAAkC;IAAAA,eAAA,gBACxC,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,GAAG,EAAE,KAAK,EAAE,4BAA4B,CAAC,EAC1C,CAAC,GAAG,EAAE,UAAU,EAAE,iCAAiC,CAAC,EACpD,CAAC,GAAG,EAAE,MAAM,EAAE,6BAA6B,CAAC,CAC7C;EAE4C;EAE7C,MAAM4C,MAAMA,CAAC,CAAC4B,OAAO,EAAEC,QAAQ,CAAqB,EAAEC,YAAkC,EAAE;IACxF,MAAM;MAAEC,YAAY;MAAEC;IAAc,CAAC,GAAG,MAAM,IAAI,CAACnC,IAAI,CAACoC,aAAa,CAACL,OAAO,EAAEC,QAAQ,EAAEC,YAAY,CAAC;IAEtG,OAAO,GAAGzC,gBAAK,CAACK,KAAK,CAAC,mCAAmC,CAAC;AAC9D,EAAEL,gBAAK,CAAC6C,IAAI,CAAC,oBAAoB,CAAC;AAClC,EAAEH,YAAY,CAACI,IAAI,CAAC,IAAI,CAAC;AACzB;AACA,EAAE9C,gBAAK,CAAC6C,IAAI,CAAC,gBAAgB,CAAC;AAC9B,EAAEX,IAAI,CAACC,SAAS,CAACQ,aAAa,EAAEP,SAAS,EAAE,CAAC,CAAC,EAAE;EAC7C;AACF;AAACL,OAAA,CAAAM,kBAAA,GAAAA,kBAAA;AAEM,MAAMU,qBAAqB,CAAoB;EAsBpDxC,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eArBnC,yCAAyC;IAAAA,eAAA,oBACpC,CACV;MAAE0C,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE4B;IAAuB,CAAC,EAClE;MACE7B,IAAI,EAAE,YAAY;MAClBC,WAAW,EACT;IACJ,CAAC,CACF;IAAA3C,eAAA,gBACO,cAAc;IAAAA,eAAA,sBACR,iDAAiD;IAAAA,eAAA,8BACzC;AACxB;AACA;AACA,0BAA0B;IAAAA,eAAA,gBAChB,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,GAAG,EAAE,KAAK,EAAE,6BAA6B,CAAC,EAC3C,CAAC,GAAG,EAAE,MAAM,EAAE,8BAA8B,CAAC,CAC9C;EAE4C;EAE7C,MAAM4C,MAAMA,CAAC,CAAC4B,OAAO,EAAEC,QAAQ,CAAqB,EAAEQ,eAAwC,EAAE;IAC9F,MAAMjC,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACyC,gBAAgB,CAACV,OAAO,EAAEC,QAAQ,EAAEQ,eAAe,CAAC;IACpF,IAAI,CAACjC,OAAO,CAAClD,MAAM,EAAE;MACnB,OAAOmC,gBAAK,CAACG,MAAM,CAAC,oFAAoF,CAAC;IAC3G;IAEA,MAAM+C,MAAM,GAAGnC,OAAO,CACnBoC,GAAG,CAAC,CAAC;MAAEvC,EAAE;MAAEwC;IAAgB,CAAC,KAAK,GAAGpD,gBAAK,CAACqD,SAAS,CAACzC,EAAE,CAACU,QAAQ,CAAC,CAAC,CAAC,KAAK8B,eAAe,CAACN,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACpGA,IAAI,CAAC,MAAM,CAAC;IAEf,OAAO,GAAG9C,gBAAK,CAACK,KAAK,CAAC,mCAAmC,CAAC,KAAK6C,MAAM,EAAE;EACzE;AACF;AAACnB,OAAA,CAAAgB,qBAAA,GAAAA,qBAAA;AAEM,MAAMO,oBAAoB,CAAoB;EAqBnD/C,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eApBnC,wCAAwC;IAAAA,eAAA,oBACnC,CACV;MAAE0C,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE4B;IAAuB,CAAC,EAClE;MACE7B,IAAI,EAAE,YAAY;MAClBC,WAAW,EACT;IACJ,CAAC,CACF;IAAA3C,eAAA,gBACO,cAAc;IAAAA,eAAA,sBACR,8FAA8F;IAAAA,eAAA,8BACtF;AACxB;AACA,2BAA2B;IAAAA,eAAA,gBACjB,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,GAAG,EAAE,KAAK,EAAE,4BAA4B,CAAC,EAC1C,CAAC,GAAG,EAAE,MAAM,EAAE,6BAA6B,CAAC,CAC7C;EAE4C;EAE7C,MAAM4C,MAAMA,CAAC,CAAC4B,OAAO,EAAEC,QAAQ,CAAqB,EAAEQ,eAAwC,EAAE;IAC9F,MAAMjC,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACyC,gBAAgB,CAACV,OAAO,EAAEC,QAAQ,EAAEQ,eAAe,EAAE,IAAI,CAAC;IAC1F,IAAI,CAACjC,OAAO,CAAClD,MAAM,EAAE;MACnB,OAAOmC,gBAAK,CAACG,MAAM,CAAC,mFAAmF,CAAC;IAC1G;IAEA,MAAM+C,MAAM,GAAGnC,OAAO,CACnBoC,GAAG,CAAC,CAAC;MAAEvC,EAAE;MAAEwC;IAAgB,CAAC,KAAK,GAAGpD,gBAAK,CAACqD,SAAS,CAACzC,EAAE,CAACU,QAAQ,CAAC,CAAC,CAAC,KAAK8B,eAAe,CAACN,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACpGA,IAAI,CAAC,MAAM,CAAC;IAEf,OAAO,GAAG9C,gBAAK,CAACK,KAAK,CAAC,iCAAiC,CAAC,KAAK6C,MAAM,EAAE;EACvE;AACF;AAACnB,OAAA,CAAAuB,oBAAA,GAAAA,oBAAA;AAEM,MAAMC,oBAAoB,CAAoB;EAQnDhD,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAPnC,2BAA2B;IAAAA,eAAA,oBACtB,CAAC;MAAE0C,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE4B;IAAuB,CAAC,CAAC;IAAAvE,eAAA,gBACxE,cAAc;IAAAA,eAAA,sBACR,iFAAiF;IAAAA,eAAA,gBACvF,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAM4C,MAAMA,CAAC,CAAC4B,OAAO,CAAW,EAAE;IAChC,MAAMxB,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACgD,KAAK,CAACjB,OAAO,CAAC;IAC9C,MAAMkB,KAAK,GAAG1C,OAAO,CAACoC,GAAG,CAAEvC,EAAE,IAAKA,EAAE,CAACU,QAAQ,CAAC,CAAC,CAAC;IAEhD,OAAO,GAAGtB,gBAAK,CAACK,KAAK,CAAC,gEAAgE,CAAC,KAAKoD,KAAK,EAAE;EACrG;AACF;AAAC1B,OAAA,CAAAwB,oBAAA,GAAAA,oBAAA;AAEM,MAAMG,oBAAoB,CAAoB;EAQnDnD,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAPnC,2BAA2B;IAAAA,eAAA,oBACtB,CAAC;MAAE0C,IAAI,EAAE,mBAAmB;MAAEC,WAAW,EAAE4B;IAAuB,CAAC,CAAC;IAAAvE,eAAA,gBACxE,cAAc;IAAAA,eAAA,sBACR,6EAA6E;IAAAA,eAAA,gBACnF,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAM4C,MAAMA,CAAC,CAAC4B,OAAO,CAAW,EAAE;IAChC,MAAMxB,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACmD,KAAK,CAACpB,OAAO,CAAC;IAC9C,MAAMkB,KAAK,GAAG1C,OAAO,CAACoC,GAAG,CAAEvC,EAAE,IAAKA,EAAE,CAACU,QAAQ,CAAC,CAAC,CAAC;IAEhD,OAAO,GAAGtB,gBAAK,CAACK,KAAK,CAAC,kEAAkE,CAAC,KAAKoD,KAAK,EAAE;EACvG;AACF;AAAC1B,OAAA,CAAA2B,oBAAA,GAAAA,oBAAA;AAEM,MAAME,oBAAoB,CAAoB;EAanDrD,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAZnC,0CAA0C;IAAAA,eAAA,oBACrC,CACV;MACE0C,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE;IACf,CAAC,CACF;IAAA3C,eAAA,gBACO,eAAe;IAAAA,eAAA,sBACT,sDAAsD;IAAAA,eAAA,gBAC5D,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAM4C,MAAMA,CAAC,CAACkD,QAAQ,EAAEC,OAAO,CAAmB,EAAE;IAClD,MAAM/C,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACuD,KAAK,CAACF,QAAQ,EAAEC,OAAO,CAAC;IACxD,IAAI,CAAC/C,OAAO,CAAClD,MAAM,EAAE;MACnB,OAAOmC,gBAAK,CAACG,MAAM,CAAC,2BAA2B0D,QAAQ,wCAAwCC,OAAO,EAAE,CAAC;IAC3G;IACA,MAAME,KAAK,GAAGjF,eAAe,CAAC,CAAC;IAC/BgC,OAAO,CAACoC,GAAG,CAAC,CAAC;MAAEc,IAAI;MAAEC,GAAG;MAAEC,MAAM;MAAEC,IAAI;MAAEC,OAAO;MAAEC;IAAQ,CAAC,KACxDN,KAAK,CAACvG,IAAI,CAAC,CAACwG,IAAI,EAAEC,GAAG,IAAI,EAAE,EAAEC,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC,CAC9D,CAAC;IAED,OAAON,KAAK,CAAC1C,QAAQ,CAAC,CAAC;EACzB;AACF;AAACS,OAAA,CAAA6B,oBAAA,GAAAA,oBAAA;AAMM,MAAMW,oBAAoB,CAAoB;EAiBnDhE,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAhBnC,yBAAyB;IAAAA,eAAA,oBACpB,CACV;MACE0C,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EACT;IACJ,CAAC,CACF;IAAA3C,eAAA,gBACO,cAAc;IAAAA,eAAA,sBACR,mDAAmD;IAAAA,eAAA,8BAC3C;AACxB;AACA,gEAAgE;IAAAA,eAAA,gBACtD,EAAE;IAAAA,eAAA,kBACA,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,2CAA2C,CAAC,CAAC;EAElC;EAE7C,MAAM4C,MAAMA,CAAC,CAACmD,OAAO,CAAW,EAAEU,OAAoC,EAAE;IACtE,MAAMC,eAAe,GAAG,MAAM,IAAI,CAACjE,IAAI,CAACkE,SAAS,CAACZ,OAAO,EAAEU,OAAO,CAAC;IACnE,IAAIC,eAAe,IAAI,IAAI,EAAE,OAAOA,eAAe;IACnD,MAAM1D,OAAO,GAAG,MAAM,IAAI,CAACP,IAAI,CAACmE,KAAK,CAACb,OAAO,CAAC;IAC9C,IAAI,CAAC5G,MAAM,CAACC,IAAI,CAAC4D,OAAO,CAAC,CAAClD,MAAM,EAAE;MAChC,OAAOmC,gBAAK,CAACG,MAAM,CAAC,4BAA4B2D,OAAO,+BAA+B,CAAC;IACzF;IACA,OAAO5G,MAAM,CAACC,IAAI,CAAC4D,OAAO,CAAC,CACxBoC,GAAG,CAAEyB,SAAS,IAAK,GAAG5E,gBAAK,CAAC6C,IAAI,CAAC+B,SAAS,CAAC,0BAA0B7D,OAAO,CAAC6D,SAAS,CAAC,GAAG,CAAC,CAC3F9B,IAAI,CAAC,IAAI,CAAC;EACf;AACF;AAACf,OAAA,CAAAwC,oBAAA,GAAAA,oBAAA;AAEM,MAAMM,MAAM,SAASN,oBAAoB,CAAC;EAAAhE,YAAA,GAAAuE,IAAA;IAAA,SAAAA,IAAA;IAAA/G,eAAA,eACxC,uBAAuB;EAAA;AAChC;AAACgE,OAAA,CAAA8C,MAAA,GAAAA,MAAA;AAEM,MAAME,uBAAuB,CAAoB;EAWtDxE,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAVnC,UAAU;IAAAA,eAAA,gBACT,eAAe;IAAAA,eAAA,sBACT,iFAAiF;IAAAA,eAAA,8BACzE,8NAA8N;IAAAA,eAAA,gBAC5O,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,EAAE,EAAE,kBAAkB,EAAE,4EAA4E,CAAC,EACtG,CAAC,EAAE,EAAE,SAAS,EAAE,oFAAoF,CAAC,CACtG;EAE4C;EAE7C,MAAM4C,MAAMA,CAACqE,KAAS,EAAER,OAAgD,EAAE;IACxE,IAAIA,OAAO,CAACS,OAAO,EAAE;MACnB,OAAO,IAAI,CAACC,sBAAsB,CAACV,OAAO,CAACS,OAAO,CAAC;IACrD;IAEA,MAAMtE,MAAM,GAAG,MAAM,IAAI,CAACH,IAAI,CAAC2E,QAAQ,CAAC,CAAC;IACzC,MAAMC,WAAW,GACfzE,MAAM,CAAC0E,cAAc,GAAG,CAAC,GACrB,GAAG,CAAC1E,MAAM,CAAC2E,gBAAgB,GAAG3E,MAAM,CAAC0E,cAAc,EAAEE,OAAO,CAAC,CAAC,CAAC,gBAAgB,GAC/E,KAAK;IACX,MAAMC,QAAkB,GAAG,CACzBxF,gBAAK,CAAC6C,IAAI,CAAC,oCAAoC,CAAC,EAChD,EAAE,EACF7C,gBAAK,CAAC6C,IAAI,CAAC,UAAU,CAAC,EACtB,8BAA8BlC,MAAM,CAAC8E,cAAc,EAAE,EACrD,sBAAsB9E,MAAM,CAAC0E,cAAc,CAACK,cAAc,CAAC,CAAC,EAAE,EAC9D,uCAAuC/E,MAAM,CAAC2E,gBAAgB,CAACI,cAAc,CAAC,CAAC,KAAKN,WAAW,GAAG,EAClG,+BAA+BzE,MAAM,CAACgF,kBAAkB,EAAE,CAC3D;IAED,IAAIhF,MAAM,CAACiF,aAAa,CAAC/H,MAAM,EAAE;MAC/B,MAAMgI,WAAW,GAAG9G,eAAe,CAAC;QAClCc,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACjDF,WAAW,EAAE,CAAC;QACdC,YAAY,EAAE;MAChB,CAAC,CAAC;MACFe,MAAM,CAACiF,aAAa,CAAC9H,OAAO,CAAEgI,KAAK,IAAK;QACtCD,WAAW,CAACpI,IAAI,CAAC,CACfqI,KAAK,CAACC,WAAW,EACjBlH,MAAM,CAACiH,KAAK,CAACE,YAAY,CAAC,EAC1BnH,MAAM,CAACiH,KAAK,CAACG,eAAe,CAAC,EAC7B,CAACnG,YAAY,CAACgG,KAAK,CAACI,MAAM,CAAC,IAAIlG,gBAAK,CAACK,KAAK,EAAEyF,KAAK,CAACI,MAAM,CAAC,CAC1D,CAAC;MACJ,CAAC,CAAC;MACFV,QAAQ,CAAC/H,IAAI,CAAC,EAAE,EAAEuC,gBAAK,CAAC6C,IAAI,CAAC,8BAA8B,CAAC,EAAEgD,WAAW,CAACvE,QAAQ,CAAC,CAAC,CAAC;IACvF;IAEA,IAAIX,MAAM,CAACwF,gBAAgB,CAACtI,MAAM,EAAE;MAClC,MAAMuI,SAAS,GAAGrH,eAAe,CAAC;QAChCc,IAAI,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;QAC1DF,WAAW,EAAE,CAAC;QACdC,YAAY,EAAE;MAChB,CAAC,CAAC;MACFe,MAAM,CAACwF,gBAAgB,CAACrI,OAAO,CAAEgI,KAAK,IAAK;QACzC,MAAMO,MAAM,GAAGP,KAAK,CAACG,eAAe,GAAG,CAAC,GAAGpH,MAAM,CAACiH,KAAK,CAACG,eAAe,CAAC,GAAGjG,gBAAK,CAACsG,GAAG,CAAC,mBAAmB,CAAC;QACzGF,SAAS,CAAC3I,IAAI,CAAC,CAACqI,KAAK,CAACC,WAAW,EAAE,GAAGD,KAAK,CAACS,QAAQ,CAAC1I,MAAM,KAAKiI,KAAK,CAACS,QAAQ,CAACzD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAEuD,MAAM,CAAC,CAAC;MACxG,CAAC,CAAC;MACFb,QAAQ,CAAC/H,IAAI,CAAC,EAAE,EAAEuC,gBAAK,CAAC6C,IAAI,CAAC,yCAAyC,CAAC,EAAEuD,SAAS,CAAC9E,QAAQ,CAAC,CAAC,CAAC;MAE9F,IAAIkD,OAAO,CAACgC,OAAO,EAAE;QACnB;QACA,MAAMC,WAAqB,GAAG,EAAE;QAChC,KAAK,MAAMX,KAAK,IAAInF,MAAM,CAACwF,gBAAgB,EAAE;UAC3C,IAAI,CAACL,KAAK,CAACY,cAAc,CAAC7I,MAAM,EAAE;UAClC4I,WAAW,CAAChJ,IAAI,CAAC,KAAKuC,gBAAK,CAAC6C,IAAI,CAACiD,KAAK,CAACC,WAAW,CAAC,EAAE,CAAC;UACtD,KAAK,MAAMY,EAAE,IAAIb,KAAK,CAACY,cAAc,EAAE;YACrC,IAAI,CAACC,EAAE,CAACC,IAAI,CAAC/I,MAAM,IAAI,CAAC8I,EAAE,CAACE,UAAU,CAAChJ,MAAM,EAAE;YAC9C4I,WAAW,CAAChJ,IAAI,CAAC,OAAOuC,gBAAK,CAAC8G,IAAI,CAACH,EAAE,CAACrC,OAAO,CAAC,EAAE,CAAC;YACjD,IAAIqC,EAAE,CAACC,IAAI,CAAC/I,MAAM,EAAE;cAClB4I,WAAW,CAAChJ,IAAI,CAAC,eAAekJ,EAAE,CAACC,IAAI,CAAC9D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD;YACA,IAAI6D,EAAE,CAACE,UAAU,CAAChJ,MAAM,EAAE;cACxB,MAAMkJ,QAAQ,GAAGJ,EAAE,CAACE,UAAU,CAAC1D,GAAG,CAAE9F,CAAC,IAAKA,CAAC,CAAC2J,WAAW,CAAC;cACxDP,WAAW,CAAChJ,IAAI,CAAC,qBAAqBsJ,QAAQ,CAACjE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D;UACF;QACF;QACA,IAAI2D,WAAW,CAAC5I,MAAM,EAAE;UACtB2H,QAAQ,CAAC/H,IAAI,CAAC,EAAE,EAAEuC,gBAAK,CAAC6C,IAAI,CAAC,yBAAyB,CAAC,EAAE,GAAG4D,WAAW,CAAC;QAC1E;MACF,CAAC,MAAM;QACLjB,QAAQ,CAAC/H,IAAI,CACX,EAAE,EACFuC,gBAAK,CAACsG,GAAG,CAAC,oFAAoF,CAChG,CAAC;MACH;IACF;IAEA,OAAOd,QAAQ,CAAC1C,IAAI,CAAC,IAAI,CAAC;EAC5B;EAEA,MAAcoC,sBAAsBA,CAACa,WAAmB,EAAmB;IACzE,MAAM;MAAEkB;IAAS,CAAC,GAAG,MAAM,IAAI,CAACzG,IAAI,CAAC0G,iBAAiB,CAACnB,WAAW,CAAC;IACnE,MAAMoB,MAAM,GAAG,CAACnH,gBAAK,CAAC6C,IAAI,CAAC,uBAAuBkD,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,uBAAuBkB,QAAQ,CAACpJ,MAAM,EAAE,EAAE,EAAE,CAAC;IAEnH,IAAI,CAACoJ,QAAQ,CAACpJ,MAAM,EAAE;MACpB,OAAO,CACL,GAAGsJ,MAAM,EACTnH,gBAAK,CAACG,MAAM,CAAC,4CAA4C,CAAC,EAC1DH,gBAAK,CAACsG,GAAG,CAAC,kFAAkF,CAAC,CAC9F,CAACxD,IAAI,CAAC,IAAI,CAAC;IACd;;IAEA;IACA,MAAMsE,SAAS,GAAG,IAAIC,GAAG,CAAmB,CAAC;IAC7C,KAAK,MAAMC,GAAG,IAAIL,QAAQ,EAAE;MAC1B,MAAMM,QAAQ,GAAGH,SAAS,CAACI,GAAG,CAACF,GAAG,CAAChD,OAAO,CAAC,IAAI,EAAE;MACjDiD,QAAQ,CAAC9J,IAAI,CAAC6J,GAAG,CAACG,UAAU,IAAI,YAAY,CAAC;MAC7CL,SAAS,CAACM,GAAG,CAACJ,GAAG,CAAChD,OAAO,EAAEiD,QAAQ,CAAC;IACtC;IAEA,MAAMI,YAAY,GAAGC,KAAK,CAACC,IAAI,CAACT,SAAS,EAAE,CAAC,CAAC9C,OAAO,EAAEiD,QAAQ,CAAC,KAAK,CAClEvH,gBAAK,CAAC6C,IAAI,CAAC,KAAKkD,WAAW,IAAIzB,OAAO,EAAE,CAAC,GAAGtE,gBAAK,CAACsG,GAAG,CAAC,MAAMiB,QAAQ,CAAC1J,MAAM,SAAS,CAAC,EACrF,GAAG0J,QAAQ,CAACpE,GAAG,CAAE2E,CAAC,IAAK,OAAO9H,gBAAK,CAACsG,GAAG,CAACwB,CAAC,CAAC,EAAE,CAAC,CAC9C,CAAC,CAACC,IAAI,CAAC,CAAC;IAET,OAAO,CAAC,GAAGZ,MAAM,EAAE,GAAGQ,YAAY,CAAC,CAAC7E,IAAI,CAAC,IAAI,CAAC;EAChD;EAEA,MAAMkF,IAAIA,CAAChD,KAAS,EAAER,OAA6B,EAAE;IACnD,IAAIA,OAAO,CAACS,OAAO,EAAE;MACnB,OAAO,IAAI,CAACzE,IAAI,CAAC0G,iBAAiB,CAAC1C,OAAO,CAACS,OAAO,CAAC;IACrD;IACA,OAAO,IAAI,CAACzE,IAAI,CAAC2E,QAAQ,CAAC,CAAC;EAC7B;AACF;AAACpD,OAAA,CAAAgD,uBAAA,GAAAA,uBAAA;AAEM,MAAMkD,eAAe,CAAoB;EAAA1H,YAAA;IAAAxC,eAAA,eACvC,oBAAoB;IAAAA,eAAA,gBACnB,cAAc;IAAAA,eAAA,sBACR,+BAA+B;IAAAA,eAAA,8BACvB,gIAAgI;IAAAA,eAAA,kBAC5I,EAAE;IAAAA,eAAA,gBACJ,cAAc;IAAAA,eAAA,mBACA,EAAE;IAAAA,eAAA,kBACd,iDAAiD;EAAA;EAE3D,MAAM4C,MAAMA,CAAC,CAACuH,sBAAsB,CAAW,EAAE;IAC/C,OAAOlI,gBAAK,CAACC,GAAG,CACd,IAAIiI,sBAAsB,uGAC5B,CAAC;EACH;AACF;AAACnG,OAAA,CAAAkG,eAAA,GAAAA,eAAA;AAEM,MAAME,UAAU,CAAoB;EAiBzC5H,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eAhBnC,iCAAiC;IAAAA,eAAA,oBAC5B,CACV;MAAE0C,IAAI,EAAE,cAAc;MAAEC,WAAW,EAAE;IAAsC,CAAC,EAC5E;MACED,IAAI,EAAE,OAAO;MACbC,WAAW,EAAE;IACf,CAAC,CACF;IAAA3C,eAAA,gBACO,cAAc;IAAAA,eAAA,sBACR,+DAA+D;IAAAA,eAAA,8BACvD;AACxB;AACA,0FAA0F;IAAAA,eAAA,gBAChF,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAM4C,MAAMA,CAAC,CAACqG,WAAW,EAAEoB,KAAK,CAAmB,EAAE;IACnD,MAAM,IAAI,CAAC5H,IAAI,CAAC6H,OAAO,CAACrB,WAAW,EAAEoB,KAAK,IAAI,IAAI,GAAGA,KAAK,CAAC9G,QAAQ,CAAC,CAAC,GAAG8G,KAAK,CAAC;IAC9E,OAAO,GAAGpI,gBAAK,CAACK,KAAK,CAAC,uDAAuD,CAAC,EAAE;EAClF;AACF;AAAC0B,OAAA,CAAAoG,UAAA,GAAAA,UAAA;AAEM,MAAMG,YAAY,CAAoB;EAU3C/H,WAAWA,CAASC,IAAsB,EAAE;IAAA,KAAxBA,IAAsB,GAAtBA,IAAsB;IAAAzC,eAAA,eATnC,2BAA2B;IAAAA,eAAA,oBACtB,CAAC;MAAE0C,IAAI,EAAE,cAAc;MAAEC,WAAW,EAAE;IAAwC,CAAC,CAAC;IAAA3C,eAAA,gBACpF,cAAc;IAAAA,eAAA,sBACR,iDAAiD;IAAAA,eAAA,8BACzC;AACxB,gHAAgH;IAAAA,eAAA,gBACtG,EAAE;IAAAA,eAAA,kBACA,EAAE;EAEiC;EAE7C,MAAM4C,MAAMA,CAAC,CAACqG,WAAW,CAAW,EAAE;IACpC,MAAM,IAAI,CAACxG,IAAI,CAAC+H,SAAS,CAACvB,WAAW,CAAC;IACtC,OAAO,GAAGhH,gBAAK,CAACK,KAAK,CAAC,2DAA2D,CAAC,EAAE;EACtF;AACF;AAAC0B,OAAA,CAAAuG,YAAA,GAAAA,YAAA;AAMM,MAAME,oBAAoB,CAAoB;EAenDjI,WAAWA,CAASkI,SAAoB,EAAE;IAAA,KAAtBA,SAAoB,GAApBA,SAAoB;IAAA1K,eAAA,eAdjC,OAAO;IAAAA,eAAA,oBACF,EAAE;IAAAA,eAAA,gBACN,cAAc;IAAAA,eAAA,sBAEpB,0JAA0J;IAAAA,eAAA,gBACpJ,EAAE;IAAAA,eAAA,kBACA,CACR,CACE,EAAE,EACF,uCAAuC,EACvC,gGAAgG,CACjG,CACF;EAE0C;EAE3C,MAAM4C,MAAMA,CAAC+H,CAAC,EAAElE,OAAoC,EAAE;IACpD,MAAM,IAAI,CAACiE,SAAS,CAACE,iBAAiB,CAACnE,OAAO,CAACoE,MAAM,CAAC;IACtD,OAAO,EAAE;EACX;AACF;AAAC7G,OAAA,CAAAyG,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -65,7 +65,10 @@ export interface DiagnosisReport {
|
|
|
65
65
|
}>;
|
|
66
66
|
peerPermutations: Array<{
|
|
67
67
|
packageName: string;
|
|
68
|
+
/** declared peer-dep version ranges across components */
|
|
68
69
|
versions: string[];
|
|
70
|
+
/** actual .pnpm directories for this package (0 means declared but not installed) */
|
|
71
|
+
installedCopies: number;
|
|
69
72
|
versionOrigins: VersionOrigin[];
|
|
70
73
|
}>;
|
|
71
74
|
}
|
|
@@ -534,7 +534,7 @@ class DependenciesMain {
|
|
|
534
534
|
};
|
|
535
535
|
}).sort((a, b) => b.installedCopies - a.installedCopies).slice(0, 30);
|
|
536
536
|
|
|
537
|
-
// 4. Peer deps with multiple versions
|
|
537
|
+
// 4. Peer deps with multiple versions, enriched with actual .pnpm copy count
|
|
538
538
|
const peerPermutations = Array.from(packageVersionMap.entries()).filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1).map(([pkgName, data]) => {
|
|
539
539
|
const versionMap = peerOrigins.get(pkgName);
|
|
540
540
|
const versionOrigins = [];
|
|
@@ -554,9 +554,10 @@ class DependenciesMain {
|
|
|
554
554
|
return {
|
|
555
555
|
packageName: pkgName,
|
|
556
556
|
versions: Array.from(data.versions).sort(compareVersions),
|
|
557
|
+
installedCopies: pnpmPackageCopies.get(pkgName) || 0,
|
|
557
558
|
versionOrigins
|
|
558
559
|
};
|
|
559
|
-
}).sort((a, b) => b.versions.length - a.versions.length);
|
|
560
|
+
}).sort((a, b) => b.installedCopies - a.installedCopies || b.versions.length - a.versions.length);
|
|
560
561
|
return {
|
|
561
562
|
componentCount,
|
|
562
563
|
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","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":[]}
|
|
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 /** declared peer-dep version ranges across components */\n versions: string[];\n /** actual .pnpm directories for this package (0 means declared but not installed) */\n installedCopies: number;\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, enriched with actual .pnpm copy count\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 installedCopies: pnpmPackageCopies.get(pkgName) || 0,\n versionOrigins,\n };\n })\n .sort((a, b) => b.installedCopies - a.installedCopies || 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.
|
|
3
|
+
"version": "1.0.912",
|
|
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.
|
|
9
|
+
"version": "1.0.912"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"archy": "1.0.0",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"read-pkg-up": "7.0.1",
|
|
21
21
|
"table": "6.7.3",
|
|
22
22
|
"debug": "4.3.4",
|
|
23
|
-
"resolve-dependency-path": "2.0.0",
|
|
24
|
-
"stylus-lookup": "3.0.2",
|
|
25
23
|
"detective-amd": "3.0.1",
|
|
26
24
|
"detective-stylus": "1.0.0",
|
|
27
25
|
"module-definition": "3.3.1",
|
|
28
26
|
"node-source-walk": "4.2.0",
|
|
27
|
+
"resolve-dependency-path": "2.0.0",
|
|
28
|
+
"stylus-lookup": "3.0.2",
|
|
29
29
|
"@teambit/cli": "0.0.1303",
|
|
30
30
|
"@teambit/legacy.constants": "0.0.24",
|
|
31
31
|
"@teambit/harmony": "0.4.7",
|
|
@@ -47,20 +47,20 @@
|
|
|
47
47
|
"@teambit/toolbox.fs.extension-getter": "0.0.13",
|
|
48
48
|
"@teambit/legacy.extension-data": "0.0.103",
|
|
49
49
|
"@teambit/toolbox.fs.last-modified": "0.0.14",
|
|
50
|
-
"@teambit/styling.deps-lookups.lookup-styling": "0.0.4",
|
|
51
|
-
"@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
|
|
52
50
|
"@teambit/node.deps-detectors.detective-es6": "0.0.6",
|
|
53
51
|
"@teambit/styling.deps-detectors.detective-css": "0.0.6",
|
|
54
52
|
"@teambit/styling.deps-detectors.detective-less": "0.0.6",
|
|
55
53
|
"@teambit/styling.deps-detectors.detective-sass": "0.0.9",
|
|
56
54
|
"@teambit/styling.deps-detectors.detective-scss": "0.0.9",
|
|
57
55
|
"@teambit/typescript.deps-detectors.detective-typescript": "0.0.10",
|
|
58
|
-
"@teambit/
|
|
59
|
-
"@teambit/
|
|
60
|
-
"@teambit/
|
|
61
|
-
"@teambit/
|
|
62
|
-
"@teambit/
|
|
63
|
-
"@teambit/
|
|
56
|
+
"@teambit/styling.deps-lookups.lookup-styling": "0.0.4",
|
|
57
|
+
"@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
|
|
58
|
+
"@teambit/graph": "1.0.912",
|
|
59
|
+
"@teambit/workspace": "1.0.912",
|
|
60
|
+
"@teambit/aspect-loader": "1.0.912",
|
|
61
|
+
"@teambit/dependency-resolver": "1.0.912",
|
|
62
|
+
"@teambit/dev-files": "1.0.912",
|
|
63
|
+
"@teambit/scope": "1.0.912"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/cli-table": "^0.3.0",
|
|
File without changes
|