@teambit/dependencies 1.0.886 → 1.0.888

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.
@@ -175,6 +175,17 @@ class DependenciesMain {
175
175
  shouldMergeWithPrevious: true
176
176
  });
177
177
  await this.workspace.bitMap.write(`set-peer (${componentId})`);
178
+ // Peer status is determined by reading the `bit.peer` field from the component's node_modules
179
+ // package.json, which the linker writes AFTER dep resolution runs during `bit install`. This
180
+ // means dep resolution during install re-populates the cache with stale data (no bit.peer yet),
181
+ // and the linker's subsequent package.json update doesn't clear the cache on its own unless the
182
+ // content actually changed (see node-modules-linker). Clearing here ensures the cache is empty
183
+ // going into install so that after the linker writes the correct package.json, any subsequent
184
+ // `bit show` will compute deps fresh.
185
+ // Other dep mutations (setDependency, removeDependency, etc.) don't need this because they only
186
+ // change the component's own .bitmap policy, which dep resolution reads directly; the normal
187
+ // invalidateDependenciesCacheIfNeeded mechanism (checking .bitmap mtime) is sufficient there.
188
+ await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();
178
189
  }
179
190
  async unsetPeer(componentId) {
180
191
  const compId = await this.workspace.resolveComponentId(componentId);
@@ -190,6 +201,9 @@ class DependenciesMain {
190
201
  }
191
202
  this.workspace.bitMap.addComponentConfig(compId, _dependencyResolver().DependencyResolverAspect.id, config);
192
203
  await this.workspace.bitMap.write(`unset-peer (${componentId})`);
204
+ // Same reasoning as in setPeer: clears the stale cache before the next install rewrites the
205
+ // component's node_modules package.json without the bit.peer field.
206
+ await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();
193
207
  }
194
208
  async setDependency(componentPattern, packages, options = {}) {
195
209
  const compIds = await this.workspace.idsByPattern(componentPattern);
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_fsExtra","_path","_semver","_lodash","_pMapSeries","_legacy","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","_logger","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","compareVersions","a","b","semver","valid","compare","localeCompare","DependenciesMain","constructor","workspace","scope","dependencyResolver","devFiles","aspectLoader","graph","logger","setPeer","componentId","range","compId","resolveComponentId","config","peer","defaultPeerRange","addSpecificComponentConfig","DependencyResolverAspect","id","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","unsetPeer","getAspectConfigForComponent","addComponentConfig","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","optional","policy","changedComps","toStringWithoutVersion","addedPackages","removeDependency","removeOnlyIfExists","getLifeCycle","results","pMapSeries","component","get","missingPackages","uniq","state","issues","getIssueByName","d","flat","depList","getDependencies","getCurrentConfig","currentConfigFromWorkspace","getSpecificComponentConfig","extFromScope","getExtensionsFromScopeAndSpecific","toConfigObject","currentDepResolverConfig","newDepResolverConfig","cloneDeep","depField","KEY_NAME_BY_LIFECYCLE_TYPE","removedPackagesWithNulls","splitPkgToNameAndVer","dependency","findByPkgNameOrCompId","includes","set","depName","getPackageName","existsInSpecificConfig","removedPackages","compact","reset","eject","factory","comp","compIdWithVer","getGraphIds","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","OutsideWorkspaceError","consumerComponent","_consumer","cacheResolvedDependencies","useDependenciesCache","missingPackageDependencies","manuallyAddedDependencies","manuallyRemovedDependencies","overridesDependencies","sources","dep","source","debugDependenciesData","coreAspects","blame","compName","log","getLogs","blameResults","lastVersion","logItem","changeVersion","tag","hash","snap","author","username","date","moment","Date","parseInt","format","message","usageDeep","isComponentId","getPackageManager","findUsages","lockfileDir","path","depth","undefined","usage","allComps","list","toString","diagnose","componentCount","pnpmDir","join","pnpmDirExists","fs","pathExists","Error","pnpmEntries","readdir","pnpmPackageCopies","Map","pnpmStoreEntries","entry","startsWith","pkgName","parsePnpmDirPackageName","uniquePackages","size","duplicatedPackages","Array","from","values","c","packageVersionMap","versions","Set","lifecycles","add","lifecycle","versionSpread","entries","versionCount","sort","installedCopies","impact","packageName","slice","peerPermutations","has","dirName","plusIdx","indexOf","substring","rest","atIdx","diagnoseDrillDown","pnpmPrefix","replace","pnpmDirs","afterName","underscoreIdx","peerSuffix","rawPeerSuffix","peerSegments","split","Boolean","seg","resolveLatest","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","versionResolved","snapToSemver","packageSplit","provider","cli","depsResolver","loggerMain","createLogger","DependenciesAspect","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesRemoveCmd","DependenciesUnsetCmd","DependenciesDebugCmd","DependenciesSetCmd","DependenciesResetCmd","DependenciesEjectCmd","DependenciesBlameCmd","DependenciesUsageCmd","DependenciesDiagnoseCmd","DependenciesWriteCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport moment from 'moment';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, KEY_NAME_BY_LIFECYCLE_TYPE } from '@teambit/dependency-resolver';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport semver from 'semver';\nimport { cloneDeep, compact, set, uniq } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport type { ConsumerComponent, DependencyLoaderOpts } from '@teambit/legacy.consumer-component';\nimport { ComponentLoader } from '@teambit/legacy.consumer-component';\nimport type { DevFilesMain } from '@teambit/dev-files';\nimport { DevFilesAspect } from '@teambit/dev-files';\nimport type { ComponentIdGraph, GraphMain } from '@teambit/graph';\nimport { GraphAspect } from '@teambit/graph';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport { DependenciesLoader } from './dependencies-loader/dependencies-loader';\nimport type { DependenciesData, OverridesDependenciesData } from './dependencies-loader/dependencies-data';\nimport type { RemoveDependenciesFlags, SetDependenciesFlags } from './dependencies-cmd';\nimport {\n DependenciesBlameCmd,\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesDiagnoseCmd,\n DependenciesEjectCmd,\n DependenciesGetCmd,\n DependenciesRemoveCmd,\n DependenciesResetCmd,\n DependenciesSetCmd,\n DependenciesUnsetCmd,\n DependenciesUsageCmd,\n DependenciesWriteCmd,\n SetPeerCmd,\n UnsetPeerCmd,\n WhyCmd,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\nimport type { DebugDependencies } from './dependencies-loader/auto-detect-deps';\nimport { DependentsCmd } from './dependents-cmd';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport type RemoveDependencyResult = { id: ComponentID; removedPackages: string[] };\nexport type SetDependenciesResult = { changedComps: string[]; addedPackages: Record<string, string> };\nexport type DependenciesResultsDebug = DebugDependencies &\n OverridesDependenciesData & { coreAspects: string[]; sources: { id: string; source: string }[] };\n\nexport type DependenciesResults = {\n graph: ComponentIdGraph;\n id: ComponentID;\n};\n\nexport type BlameResult = {\n snap: string;\n tag?: string;\n author: string;\n date: string;\n message: string;\n version: string;\n};\n\nexport interface DiagnosisReport {\n componentCount: number;\n /** total directories in node_modules/.pnpm — the actual installed copies on disk */\n pnpmStoreEntries: number;\n /** unique package names (regardless of version/peer combo) */\n uniquePackages: number;\n /** packages that appear in more than one .pnpm directory (version spread + peer permutations) */\n duplicatedPackages: number;\n versionSpread: Array<{\n packageName: string;\n /** how many distinct versions exist across components */\n versionCount: number;\n versions: string[];\n /** how many actual .pnpm directories this package has (includes peer permutations) */\n installedCopies: number;\n impact: 'HIGH' | 'MEDIUM' | 'LOW';\n }>;\n peerPermutations: Array<{\n packageName: string;\n versions: string[];\n }>;\n}\n\n/** Compare two version strings: semver-aware when both are valid, lexicographic otherwise. */\nfunction compareVersions(a: string, b: string): number {\n return semver.valid(a) && semver.valid(b) ? semver.compare(a, b) : a.localeCompare(b);\n}\n\nexport class DependenciesMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private dependencyResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain,\n private graph: GraphMain,\n private logger: Logger\n ) {}\n\n async setPeer(componentId: string, range?: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n const config = { peer: true, defaultPeerRange: range };\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n\n await this.workspace.bitMap.write(`set-peer (${componentId})`);\n }\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 }\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags = {}\n ): Promise<SetDependenciesResult> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n if (options.optional) {\n packagesObj[name] = { optional: true, version };\n } else {\n packagesObj[name] = version;\n }\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n\n await this.workspace.bitMap.write(`deps-set (${componentPattern})`);\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n async removeDependency(\n componentPattern: string,\n packages: string[],\n options: RemoveDependenciesFlags = {},\n removeOnlyIfExists = false // unset\n ): Promise<RemoveDependencyResult[]> {\n const getLifeCycle = () => {\n if (options.dev) return 'dev';\n if (options.peer) return 'peer';\n return 'runtime';\n };\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const results = await pMapSeries(compIds, async (compId) => {\n const component = await this.workspace.get(compId);\n const missingPackages = uniq(\n component.state.issues\n .getIssueByName('MissingPackagesDependenciesOnFs')\n ?.data.map((d) => d.missingPackages)\n .flat() || []\n );\n const depList = this.dependencyResolver.getDependencies(component);\n const getCurrentConfig = async () => {\n const currentConfigFromWorkspace = await this.workspace.getSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id\n );\n if (currentConfigFromWorkspace) return currentConfigFromWorkspace;\n const extFromScope = await this.workspace.getExtensionsFromScopeAndSpecific(compId);\n return extFromScope?.toConfigObject()[DependencyResolverAspect.id];\n };\n const currentDepResolverConfig = await getCurrentConfig();\n const newDepResolverConfig = cloneDeep(currentDepResolverConfig || {});\n const depField = KEY_NAME_BY_LIFECYCLE_TYPE[getLifeCycle()];\n const removedPackagesWithNulls = await pMapSeries(packages, async (pkg) => {\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const dependency = depList.findByPkgNameOrCompId(name, version, getLifeCycle());\n if (!dependency) {\n if (!missingPackages.includes(name)) return null;\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, name], '-');\n return `${name}@${version || 'latest'}`;\n }\n const depName = dependency.getPackageName?.() || dependency.id;\n\n const existsInSpecificConfig = newDepResolverConfig.policy?.[depField]?.[depName];\n if (existsInSpecificConfig) {\n if (existsInSpecificConfig === '-') return null;\n delete newDepResolverConfig.policy[depField][depName];\n } else {\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, depName], '-');\n }\n return `${depName}@${dependency.version}`;\n });\n const removedPackages = compact(removedPackagesWithNulls);\n if (!removedPackages.length) return null;\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, newDepResolverConfig);\n return { id: compId, removedPackages };\n });\n await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);\n\n return compact(results);\n }\n\n async reset(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, { policy: {} });\n });\n await this.workspace.bitMap.write(`deps-reset (${componentPattern})`);\n\n return compIds;\n }\n\n async eject(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id,\n {},\n {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n }\n );\n });\n await this.workspace.bitMap.write(`deps-eject (${componentPattern})`);\n\n return compIds;\n }\n\n async getDependencies(id: string, scope?: boolean): Promise<DependenciesResults> {\n const factory = this.workspace && !scope ? this.workspace : this.scope;\n const compId = await (this.workspace || this.scope).resolveComponentId(id);\n const comp = await (this.workspace || this.scope).get(compId);\n const compIdWithVer = comp.id;\n const graph = await this.graph.getGraphIds([compIdWithVer], { host: factory as any });\n\n return { graph, id: compIdWithVer };\n }\n\n async loadDependencies(component: ConsumerComponent, opts: DependencyLoaderOpts) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.load(this.workspace, opts);\n }\n\n /**\n * load dependencies without the need for the workspace.\n * the \"auto-detect\" are passed here as \"dependenciesData\". the \"overrides\", such as dependencies from the env,\n * are calculated here.\n * eventually all these dependencies are added to the ConsumerComponent object.\n */\n async loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.loadFromScope(dependenciesData);\n }\n\n async debugDependencies(id: string): Promise<DependenciesResultsDebug> {\n // @todo: supports this on bare-scope.\n if (!this.workspace) throw new OutsideWorkspaceError();\n const compId = await this.workspace.resolveComponentId(id);\n const component = await this.workspace.get(compId);\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = await this.loadDependencies(consumerComponent, {\n cacheResolvedDependencies: {},\n useDependenciesCache: false,\n });\n\n const { missingPackageDependencies, manuallyAddedDependencies, manuallyRemovedDependencies } =\n dependenciesData.overridesDependencies;\n\n const results = this.dependencyResolver.getDependencies(component);\n const sources = results.map((dep) => ({ id: dep.id, source: dep.source }));\n\n return {\n ...dependenciesData.debugDependenciesData,\n manuallyRemovedDependencies,\n manuallyAddedDependencies,\n missingPackageDependencies,\n coreAspects: dependenciesData.dependenciesData.coreAspects,\n sources,\n };\n }\n\n /**\n * helps determine what snap/tag changed a specific dependency.\n * the results are sorted from the oldest to newest.\n */\n async blame(compName: string, depName: string) {\n const id = await this.workspace.resolveComponentId(compName);\n const log = await this.workspace.scope.getLogs(id);\n const blameResults: BlameResult[] = [];\n let lastVersion = '';\n await pMapSeries(log, async (logItem) => {\n const component = await this.workspace.get(id.changeVersion(logItem.tag || logItem.hash));\n const depList = this.dependencyResolver.getDependencies(component);\n const dependency = depList.findByPkgNameOrCompId(depName);\n if (dependency && dependency.version === lastVersion) {\n return;\n }\n let version: string;\n if (!dependency) {\n if (!lastVersion) return;\n version = '<REMOVED>';\n } else {\n version = dependency.version;\n }\n if (!dependency || dependency.version === lastVersion) return;\n lastVersion = dependency.version;\n blameResults.push({\n snap: logItem.hash,\n tag: logItem.tag,\n author: logItem.username || '<N/A>',\n date: logItem.date ? moment(new Date(parseInt(logItem.date))).format('YYYY-MM-DD HH:mm:ss') : '<N/A>',\n message: logItem.message,\n version,\n });\n });\n return blameResults;\n }\n\n async usageDeep(depName: string, opts?: { depth?: number }): Promise<string | undefined> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (!isComponentId(depName)) {\n return this.dependencyResolver.getPackageManager()?.findUsages?.(depName, {\n lockfileDir: this.workspace.path,\n depth: opts?.depth,\n });\n }\n return undefined;\n }\n\n /**\n * @param depName either component-id-string or package-name (of the component or not component)\n * @returns a map of component-id-string to the version of the dependency\n */\n async usage(depName: string): Promise<{ [compIdStr: string]: string }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const [name, version] = this.splitPkgToNameAndVer(depName);\n const allComps = await this.workspace.list();\n const results = {};\n await Promise.all(\n allComps.map(async (comp) => {\n const depList = this.dependencyResolver.getDependencies(comp);\n const dependency = depList.findByPkgNameOrCompId(name, version);\n if (dependency) {\n results[comp.id.toString()] = dependency.version;\n }\n })\n );\n return results;\n }\n\n /**\n * Analyze the workspace's installed dependencies to detect bloat and duplication.\n * Scans node_modules/.pnpm for ground truth on actual installed copies.\n * Only works with pnpm-managed workspaces.\n */\n async diagnose(): Promise<DiagnosisReport> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const allComps = await this.workspace.list();\n const componentCount = allComps.length;\n\n // 1. Scan node_modules/.pnpm for ground truth — each directory is an actual installed copy\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const pnpmEntries = await fs.readdir(pnpmDir);\n\n const pnpmPackageCopies = new Map<string, number>();\n let pnpmStoreEntries = 0;\n for (const entry of pnpmEntries) {\n if (entry.startsWith('.') || entry === 'node_modules') continue;\n pnpmStoreEntries++;\n const pkgName = this.parsePnpmDirPackageName(entry);\n if (pkgName) {\n pnpmPackageCopies.set(pkgName, (pnpmPackageCopies.get(pkgName) || 0) + 1);\n }\n }\n\n const uniquePackages = pnpmPackageCopies.size;\n const duplicatedPackages = Array.from(pnpmPackageCopies.values()).filter((c) => c > 1).length;\n\n // 2. Collect component-level dep info (for version spread + peer lifecycle detection)\n const packageVersionMap = new Map<string, { versions: Set<string>; lifecycles: Set<string> }>();\n for (const comp of allComps) {\n const depList = this.dependencyResolver.getDependencies(comp);\n depList.forEach((dep) => {\n const pkgName = dep.getPackageName?.() || dep.id;\n let entry = packageVersionMap.get(pkgName);\n if (!entry) {\n entry = { versions: new Set(), lifecycles: new Set() };\n packageVersionMap.set(pkgName, entry);\n }\n entry.versions.add(dep.version);\n entry.lifecycles.add(dep.lifecycle);\n });\n }\n\n // 3. Version spread — packages with the most distinct versions, enriched with .pnpm copy count\n const versionSpread = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.versions.size > 1)\n .map(([pkgName, data]) => {\n const versionCount = data.versions.size;\n const versions = Array.from(data.versions).sort(compareVersions);\n const installedCopies = pnpmPackageCopies.get(pkgName) || versionCount;\n const impact: 'HIGH' | 'MEDIUM' | 'LOW' =\n installedCopies >= 10 ? 'HIGH' : installedCopies >= 5 ? 'MEDIUM' : 'LOW';\n return { packageName: pkgName, versionCount, versions, installedCopies, impact };\n })\n .sort((a, b) => b.installedCopies - a.installedCopies)\n .slice(0, 30);\n\n // 4. Peer deps with multiple versions\n const peerPermutations = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1)\n .map(([pkgName, data]) => ({\n packageName: pkgName,\n versions: Array.from(data.versions).sort(compareVersions),\n }))\n .sort((a, b) => b.versions.length - a.versions.length);\n\n return {\n componentCount,\n pnpmStoreEntries,\n uniquePackages,\n duplicatedPackages,\n versionSpread,\n peerPermutations,\n };\n }\n\n /**\n * Parse a .pnpm directory name to extract the package name.\n * Format: @scope+name@version_peers... or name@version_peers...\n */\n private parsePnpmDirPackageName(dirName: string): string | null {\n if (dirName.startsWith('@')) {\n // Scoped package: @scope+name@version...\n const plusIdx = dirName.indexOf('+');\n if (plusIdx === -1) return null;\n const scope = dirName.substring(0, plusIdx);\n const rest = dirName.substring(plusIdx + 1);\n const atIdx = rest.indexOf('@');\n if (atIdx === -1) return null;\n const name = rest.substring(0, atIdx);\n return `${scope}/${name}`;\n }\n // Regular package: name@version...\n const atIdx = dirName.indexOf('@');\n if (atIdx === -1) return null;\n return dirName.substring(0, atIdx);\n }\n\n /** Inspect all .pnpm entries for a specific package, showing each installed copy and its peer combo. */\n async diagnoseDrillDown(\n packageName: string\n ): Promise<{ packageName: string; pnpmDirs: Array<{ version: string; peerSuffix: string | null }> }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose --package\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const entries = await fs.readdir(pnpmDir);\n\n // Convert package name to .pnpm format: @scope/name → @scope+name\n const pnpmPrefix = packageName.replace('/', '+');\n\n const pnpmDirs: Array<{ version: string; peerSuffix: string | null }> = [];\n for (const entry of entries) {\n if (!entry.startsWith(pnpmPrefix + '@')) continue;\n // Extract version and peer suffix from: @scope+name@version_peer1@ver_peer2@ver\n const afterName = entry.substring(pnpmPrefix.length + 1); // skip \"name@\"\n const underscoreIdx = afterName.indexOf('_');\n if (underscoreIdx === -1) {\n pnpmDirs.push({ version: afterName, peerSuffix: null });\n } else {\n const version = afterName.substring(0, underscoreIdx);\n const rawPeerSuffix = afterName.substring(underscoreIdx + 1);\n const peerSegments = rawPeerSuffix.split('_').filter(Boolean);\n const peerSuffix = peerSegments.map((seg) => seg.replace(/\\+/g, '/')).join(' + ') || null;\n pnpmDirs.push({ version, peerSuffix });\n }\n }\n\n pnpmDirs.sort(\n (a, b) => compareVersions(a.version, b.version) || (a.peerSuffix || '').localeCompare(b.peerSuffix || '')\n );\n\n return { packageName, pnpmDirs };\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, snapToSemver(versionResolved)];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n DevFilesAspect,\n AspectLoaderAspect,\n ScopeAspect,\n GraphAspect,\n LoggerAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain,\n LoggerMain,\n ]) {\n const logger = loggerMain.createLogger(DependenciesAspect.id);\n const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph, logger);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [\n new DependenciesGetCmd(depsMain),\n new DependenciesRemoveCmd(depsMain),\n new DependenciesUnsetCmd(depsMain),\n new DependenciesDebugCmd(depsMain),\n new DependenciesSetCmd(depsMain),\n new DependenciesResetCmd(depsMain),\n new DependenciesEjectCmd(depsMain),\n new DependenciesBlameCmd(depsMain),\n new DependenciesUsageCmd(depsMain),\n new DependenciesDiagnoseCmd(depsMain),\n new DependenciesWriteCmd(workspace),\n ];\n cli.register(\n depsCmd,\n new WhyCmd(depsMain),\n new SetPeerCmd(depsMain),\n new UnsetPeerCmd(depsMain),\n new DependentsCmd(workspace)\n );\n\n ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);\n\n return depsMain;\n }\n}\n\nfunction isComponentId(depName: string) {\n return depName.includes('/') && depName[0] !== '@';\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_fsExtra","_path","_semver","_lodash","_pMapSeries","_legacy","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","_logger","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","compareVersions","a","b","semver","valid","compare","localeCompare","DependenciesMain","constructor","workspace","scope","dependencyResolver","devFiles","aspectLoader","graph","logger","setPeer","componentId","range","compId","resolveComponentId","config","peer","defaultPeerRange","addSpecificComponentConfig","DependencyResolverAspect","id","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","consumer","componentFsCache","deleteAllDependenciesDataCache","unsetPeer","getAspectConfigForComponent","addComponentConfig","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","optional","policy","changedComps","toStringWithoutVersion","addedPackages","removeDependency","removeOnlyIfExists","getLifeCycle","results","pMapSeries","component","get","missingPackages","uniq","state","issues","getIssueByName","d","flat","depList","getDependencies","getCurrentConfig","currentConfigFromWorkspace","getSpecificComponentConfig","extFromScope","getExtensionsFromScopeAndSpecific","toConfigObject","currentDepResolverConfig","newDepResolverConfig","cloneDeep","depField","KEY_NAME_BY_LIFECYCLE_TYPE","removedPackagesWithNulls","splitPkgToNameAndVer","dependency","findByPkgNameOrCompId","includes","set","depName","getPackageName","existsInSpecificConfig","removedPackages","compact","reset","eject","factory","comp","compIdWithVer","getGraphIds","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","OutsideWorkspaceError","consumerComponent","_consumer","cacheResolvedDependencies","useDependenciesCache","missingPackageDependencies","manuallyAddedDependencies","manuallyRemovedDependencies","overridesDependencies","sources","dep","source","debugDependenciesData","coreAspects","blame","compName","log","getLogs","blameResults","lastVersion","logItem","changeVersion","tag","hash","snap","author","username","date","moment","Date","parseInt","format","message","usageDeep","isComponentId","getPackageManager","findUsages","lockfileDir","path","depth","undefined","usage","allComps","list","toString","diagnose","componentCount","pnpmDir","join","pnpmDirExists","fs","pathExists","Error","pnpmEntries","readdir","pnpmPackageCopies","Map","pnpmStoreEntries","entry","startsWith","pkgName","parsePnpmDirPackageName","uniquePackages","size","duplicatedPackages","Array","from","values","c","packageVersionMap","versions","Set","lifecycles","add","lifecycle","versionSpread","entries","versionCount","sort","installedCopies","impact","packageName","slice","peerPermutations","has","dirName","plusIdx","indexOf","substring","rest","atIdx","diagnoseDrillDown","pnpmPrefix","replace","pnpmDirs","afterName","underscoreIdx","peerSuffix","rawPeerSuffix","peerSegments","split","Boolean","seg","resolveLatest","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","versionResolved","snapToSemver","packageSplit","provider","cli","depsResolver","loggerMain","createLogger","DependenciesAspect","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesRemoveCmd","DependenciesUnsetCmd","DependenciesDebugCmd","DependenciesSetCmd","DependenciesResetCmd","DependenciesEjectCmd","DependenciesBlameCmd","DependenciesUsageCmd","DependenciesDiagnoseCmd","DependenciesWriteCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport moment from 'moment';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, KEY_NAME_BY_LIFECYCLE_TYPE } from '@teambit/dependency-resolver';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport semver from 'semver';\nimport { cloneDeep, compact, set, uniq } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport type { ConsumerComponent, DependencyLoaderOpts } from '@teambit/legacy.consumer-component';\nimport { ComponentLoader } from '@teambit/legacy.consumer-component';\nimport type { DevFilesMain } from '@teambit/dev-files';\nimport { DevFilesAspect } from '@teambit/dev-files';\nimport type { ComponentIdGraph, GraphMain } from '@teambit/graph';\nimport { GraphAspect } from '@teambit/graph';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport { DependenciesLoader } from './dependencies-loader/dependencies-loader';\nimport type { DependenciesData, OverridesDependenciesData } from './dependencies-loader/dependencies-data';\nimport type { RemoveDependenciesFlags, SetDependenciesFlags } from './dependencies-cmd';\nimport {\n DependenciesBlameCmd,\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesDiagnoseCmd,\n DependenciesEjectCmd,\n DependenciesGetCmd,\n DependenciesRemoveCmd,\n DependenciesResetCmd,\n DependenciesSetCmd,\n DependenciesUnsetCmd,\n DependenciesUsageCmd,\n DependenciesWriteCmd,\n SetPeerCmd,\n UnsetPeerCmd,\n WhyCmd,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\nimport type { DebugDependencies } from './dependencies-loader/auto-detect-deps';\nimport { DependentsCmd } from './dependents-cmd';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\n\nexport type RemoveDependencyResult = { id: ComponentID; removedPackages: string[] };\nexport type SetDependenciesResult = { changedComps: string[]; addedPackages: Record<string, string> };\nexport type DependenciesResultsDebug = DebugDependencies &\n OverridesDependenciesData & { coreAspects: string[]; sources: { id: string; source: string }[] };\n\nexport type DependenciesResults = {\n graph: ComponentIdGraph;\n id: ComponentID;\n};\n\nexport type BlameResult = {\n snap: string;\n tag?: string;\n author: string;\n date: string;\n message: string;\n version: string;\n};\n\nexport interface DiagnosisReport {\n componentCount: number;\n /** total directories in node_modules/.pnpm — the actual installed copies on disk */\n pnpmStoreEntries: number;\n /** unique package names (regardless of version/peer combo) */\n uniquePackages: number;\n /** packages that appear in more than one .pnpm directory (version spread + peer permutations) */\n duplicatedPackages: number;\n versionSpread: Array<{\n packageName: string;\n /** how many distinct versions exist across components */\n versionCount: number;\n versions: string[];\n /** how many actual .pnpm directories this package has (includes peer permutations) */\n installedCopies: number;\n impact: 'HIGH' | 'MEDIUM' | 'LOW';\n }>;\n peerPermutations: Array<{\n packageName: string;\n versions: string[];\n }>;\n}\n\n/** Compare two version strings: semver-aware when both are valid, lexicographic otherwise. */\nfunction compareVersions(a: string, b: string): number {\n return semver.valid(a) && semver.valid(b) ? semver.compare(a, b) : a.localeCompare(b);\n}\n\nexport class DependenciesMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n private dependencyResolver: DependencyResolverMain,\n private devFiles: DevFilesMain,\n private aspectLoader: AspectLoaderMain,\n private graph: GraphMain,\n private logger: Logger\n ) {}\n\n async setPeer(componentId: string, range?: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n const config = { peer: true, defaultPeerRange: range };\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n\n await this.workspace.bitMap.write(`set-peer (${componentId})`);\n // Peer status is determined by reading the `bit.peer` field from the component's node_modules\n // package.json, which the linker writes AFTER dep resolution runs during `bit install`. This\n // means dep resolution during install re-populates the cache with stale data (no bit.peer yet),\n // and the linker's subsequent package.json update doesn't clear the cache on its own unless the\n // content actually changed (see node-modules-linker). Clearing here ensures the cache is empty\n // going into install so that after the linker writes the correct package.json, any subsequent\n // `bit show` will compute deps fresh.\n // Other dep mutations (setDependency, removeDependency, etc.) don't need this because they only\n // change the component's own .bitmap policy, which dep resolution reads directly; the normal\n // invalidateDependenciesCacheIfNeeded mechanism (checking .bitmap mtime) is sufficient there.\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n\n async unsetPeer(componentId: string): Promise<void> {\n const compId = await this.workspace.resolveComponentId(componentId);\n // const config = { peer: true, defaultPeerRange: range };\n const config = await this.workspace.getAspectConfigForComponent(compId, DependencyResolverAspect.id);\n if (config) {\n if ('peer' in config) {\n delete config.peer;\n }\n if ('defaultPeerRange' in config) {\n delete config.defaultPeerRange;\n }\n }\n this.workspace.bitMap.addComponentConfig(compId, DependencyResolverAspect.id, config);\n\n await this.workspace.bitMap.write(`unset-peer (${componentId})`);\n // Same reasoning as in setPeer: clears the stale cache before the next install rewrites the\n // component's node_modules package.json without the bit.peer field.\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n }\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags = {}\n ): Promise<SetDependenciesResult> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n if (options.optional) {\n packagesObj[name] = { optional: true, version };\n } else {\n packagesObj[name] = version;\n }\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n\n await this.workspace.bitMap.write(`deps-set (${componentPattern})`);\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n async removeDependency(\n componentPattern: string,\n packages: string[],\n options: RemoveDependenciesFlags = {},\n removeOnlyIfExists = false // unset\n ): Promise<RemoveDependencyResult[]> {\n const getLifeCycle = () => {\n if (options.dev) return 'dev';\n if (options.peer) return 'peer';\n return 'runtime';\n };\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const results = await pMapSeries(compIds, async (compId) => {\n const component = await this.workspace.get(compId);\n const missingPackages = uniq(\n component.state.issues\n .getIssueByName('MissingPackagesDependenciesOnFs')\n ?.data.map((d) => d.missingPackages)\n .flat() || []\n );\n const depList = this.dependencyResolver.getDependencies(component);\n const getCurrentConfig = async () => {\n const currentConfigFromWorkspace = await this.workspace.getSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id\n );\n if (currentConfigFromWorkspace) return currentConfigFromWorkspace;\n const extFromScope = await this.workspace.getExtensionsFromScopeAndSpecific(compId);\n return extFromScope?.toConfigObject()[DependencyResolverAspect.id];\n };\n const currentDepResolverConfig = await getCurrentConfig();\n const newDepResolverConfig = cloneDeep(currentDepResolverConfig || {});\n const depField = KEY_NAME_BY_LIFECYCLE_TYPE[getLifeCycle()];\n const removedPackagesWithNulls = await pMapSeries(packages, async (pkg) => {\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const dependency = depList.findByPkgNameOrCompId(name, version, getLifeCycle());\n if (!dependency) {\n if (!missingPackages.includes(name)) return null;\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, name], '-');\n return `${name}@${version || 'latest'}`;\n }\n const depName = dependency.getPackageName?.() || dependency.id;\n\n const existsInSpecificConfig = newDepResolverConfig.policy?.[depField]?.[depName];\n if (existsInSpecificConfig) {\n if (existsInSpecificConfig === '-') return null;\n delete newDepResolverConfig.policy[depField][depName];\n } else {\n if (removeOnlyIfExists) return null;\n set(newDepResolverConfig, ['policy', depField, depName], '-');\n }\n return `${depName}@${dependency.version}`;\n });\n const removedPackages = compact(removedPackagesWithNulls);\n if (!removedPackages.length) return null;\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, newDepResolverConfig);\n return { id: compId, removedPackages };\n });\n await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);\n\n return compact(results);\n }\n\n async reset(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, { policy: {} });\n });\n await this.workspace.bitMap.write(`deps-reset (${componentPattern})`);\n\n return compIds;\n }\n\n async eject(componentPattern: string): Promise<ComponentID[]> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n await pMapSeries(compIds, async (compId) => {\n await this.workspace.addSpecificComponentConfig(\n compId,\n DependencyResolverAspect.id,\n {},\n {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n }\n );\n });\n await this.workspace.bitMap.write(`deps-eject (${componentPattern})`);\n\n return compIds;\n }\n\n async getDependencies(id: string, scope?: boolean): Promise<DependenciesResults> {\n const factory = this.workspace && !scope ? this.workspace : this.scope;\n const compId = await (this.workspace || this.scope).resolveComponentId(id);\n const comp = await (this.workspace || this.scope).get(compId);\n const compIdWithVer = comp.id;\n const graph = await this.graph.getGraphIds([compIdWithVer], { host: factory as any });\n\n return { graph, id: compIdWithVer };\n }\n\n async loadDependencies(component: ConsumerComponent, opts: DependencyLoaderOpts) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.load(this.workspace, opts);\n }\n\n /**\n * load dependencies without the need for the workspace.\n * the \"auto-detect\" are passed here as \"dependenciesData\". the \"overrides\", such as dependencies from the env,\n * are calculated here.\n * eventually all these dependencies are added to the ConsumerComponent object.\n */\n async loadDependenciesFromScope(component: ConsumerComponent, dependenciesData: Partial<DependenciesData>) {\n const dependenciesLoader = new DependenciesLoader(\n component,\n this.dependencyResolver,\n this.devFiles,\n this.aspectLoader,\n this.logger\n );\n return dependenciesLoader.loadFromScope(dependenciesData);\n }\n\n async debugDependencies(id: string): Promise<DependenciesResultsDebug> {\n // @todo: supports this on bare-scope.\n if (!this.workspace) throw new OutsideWorkspaceError();\n const compId = await this.workspace.resolveComponentId(id);\n const component = await this.workspace.get(compId);\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = await this.loadDependencies(consumerComponent, {\n cacheResolvedDependencies: {},\n useDependenciesCache: false,\n });\n\n const { missingPackageDependencies, manuallyAddedDependencies, manuallyRemovedDependencies } =\n dependenciesData.overridesDependencies;\n\n const results = this.dependencyResolver.getDependencies(component);\n const sources = results.map((dep) => ({ id: dep.id, source: dep.source }));\n\n return {\n ...dependenciesData.debugDependenciesData,\n manuallyRemovedDependencies,\n manuallyAddedDependencies,\n missingPackageDependencies,\n coreAspects: dependenciesData.dependenciesData.coreAspects,\n sources,\n };\n }\n\n /**\n * helps determine what snap/tag changed a specific dependency.\n * the results are sorted from the oldest to newest.\n */\n async blame(compName: string, depName: string) {\n const id = await this.workspace.resolveComponentId(compName);\n const log = await this.workspace.scope.getLogs(id);\n const blameResults: BlameResult[] = [];\n let lastVersion = '';\n await pMapSeries(log, async (logItem) => {\n const component = await this.workspace.get(id.changeVersion(logItem.tag || logItem.hash));\n const depList = this.dependencyResolver.getDependencies(component);\n const dependency = depList.findByPkgNameOrCompId(depName);\n if (dependency && dependency.version === lastVersion) {\n return;\n }\n let version: string;\n if (!dependency) {\n if (!lastVersion) return;\n version = '<REMOVED>';\n } else {\n version = dependency.version;\n }\n if (!dependency || dependency.version === lastVersion) return;\n lastVersion = dependency.version;\n blameResults.push({\n snap: logItem.hash,\n tag: logItem.tag,\n author: logItem.username || '<N/A>',\n date: logItem.date ? moment(new Date(parseInt(logItem.date))).format('YYYY-MM-DD HH:mm:ss') : '<N/A>',\n message: logItem.message,\n version,\n });\n });\n return blameResults;\n }\n\n async usageDeep(depName: string, opts?: { depth?: number }): Promise<string | undefined> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (!isComponentId(depName)) {\n return this.dependencyResolver.getPackageManager()?.findUsages?.(depName, {\n lockfileDir: this.workspace.path,\n depth: opts?.depth,\n });\n }\n return undefined;\n }\n\n /**\n * @param depName either component-id-string or package-name (of the component or not component)\n * @returns a map of component-id-string to the version of the dependency\n */\n async usage(depName: string): Promise<{ [compIdStr: string]: string }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const [name, version] = this.splitPkgToNameAndVer(depName);\n const allComps = await this.workspace.list();\n const results = {};\n await Promise.all(\n allComps.map(async (comp) => {\n const depList = this.dependencyResolver.getDependencies(comp);\n const dependency = depList.findByPkgNameOrCompId(name, version);\n if (dependency) {\n results[comp.id.toString()] = dependency.version;\n }\n })\n );\n return results;\n }\n\n /**\n * Analyze the workspace's installed dependencies to detect bloat and duplication.\n * Scans node_modules/.pnpm for ground truth on actual installed copies.\n * Only works with pnpm-managed workspaces.\n */\n async diagnose(): Promise<DiagnosisReport> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const allComps = await this.workspace.list();\n const componentCount = allComps.length;\n\n // 1. Scan node_modules/.pnpm for ground truth — each directory is an actual installed copy\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const pnpmEntries = await fs.readdir(pnpmDir);\n\n const pnpmPackageCopies = new Map<string, number>();\n let pnpmStoreEntries = 0;\n for (const entry of pnpmEntries) {\n if (entry.startsWith('.') || entry === 'node_modules') continue;\n pnpmStoreEntries++;\n const pkgName = this.parsePnpmDirPackageName(entry);\n if (pkgName) {\n pnpmPackageCopies.set(pkgName, (pnpmPackageCopies.get(pkgName) || 0) + 1);\n }\n }\n\n const uniquePackages = pnpmPackageCopies.size;\n const duplicatedPackages = Array.from(pnpmPackageCopies.values()).filter((c) => c > 1).length;\n\n // 2. Collect component-level dep info (for version spread + peer lifecycle detection)\n const packageVersionMap = new Map<string, { versions: Set<string>; lifecycles: Set<string> }>();\n for (const comp of allComps) {\n const depList = this.dependencyResolver.getDependencies(comp);\n depList.forEach((dep) => {\n const pkgName = dep.getPackageName?.() || dep.id;\n let entry = packageVersionMap.get(pkgName);\n if (!entry) {\n entry = { versions: new Set(), lifecycles: new Set() };\n packageVersionMap.set(pkgName, entry);\n }\n entry.versions.add(dep.version);\n entry.lifecycles.add(dep.lifecycle);\n });\n }\n\n // 3. Version spread — packages with the most distinct versions, enriched with .pnpm copy count\n const versionSpread = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.versions.size > 1)\n .map(([pkgName, data]) => {\n const versionCount = data.versions.size;\n const versions = Array.from(data.versions).sort(compareVersions);\n const installedCopies = pnpmPackageCopies.get(pkgName) || versionCount;\n const impact: 'HIGH' | 'MEDIUM' | 'LOW' =\n installedCopies >= 10 ? 'HIGH' : installedCopies >= 5 ? 'MEDIUM' : 'LOW';\n return { packageName: pkgName, versionCount, versions, installedCopies, impact };\n })\n .sort((a, b) => b.installedCopies - a.installedCopies)\n .slice(0, 30);\n\n // 4. Peer deps with multiple versions\n const peerPermutations = Array.from(packageVersionMap.entries())\n .filter(([, data]) => data.lifecycles.has('peer') && data.versions.size > 1)\n .map(([pkgName, data]) => ({\n packageName: pkgName,\n versions: Array.from(data.versions).sort(compareVersions),\n }))\n .sort((a, b) => b.versions.length - a.versions.length);\n\n return {\n componentCount,\n pnpmStoreEntries,\n uniquePackages,\n duplicatedPackages,\n versionSpread,\n peerPermutations,\n };\n }\n\n /**\n * Parse a .pnpm directory name to extract the package name.\n * Format: @scope+name@version_peers... or name@version_peers...\n */\n private parsePnpmDirPackageName(dirName: string): string | null {\n if (dirName.startsWith('@')) {\n // Scoped package: @scope+name@version...\n const plusIdx = dirName.indexOf('+');\n if (plusIdx === -1) return null;\n const scope = dirName.substring(0, plusIdx);\n const rest = dirName.substring(plusIdx + 1);\n const atIdx = rest.indexOf('@');\n if (atIdx === -1) return null;\n const name = rest.substring(0, atIdx);\n return `${scope}/${name}`;\n }\n // Regular package: name@version...\n const atIdx = dirName.indexOf('@');\n if (atIdx === -1) return null;\n return dirName.substring(0, atIdx);\n }\n\n /** Inspect all .pnpm entries for a specific package, showing each installed copy and its peer combo. */\n async diagnoseDrillDown(\n packageName: string\n ): Promise<{ packageName: string; pnpmDirs: Array<{ version: string; peerSuffix: string | null }> }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const pnpmDir = path.join(this.workspace.path, 'node_modules', '.pnpm');\n const pnpmDirExists = await fs.pathExists(pnpmDir);\n if (!pnpmDirExists) {\n throw new Error(\n `\"bit deps diagnose --package\" requires a pnpm-managed workspace. ` +\n `Expected \"${pnpmDir}\" to exist. Run \"bit install\" first.`\n );\n }\n const entries = await fs.readdir(pnpmDir);\n\n // Convert package name to .pnpm format: @scope/name → @scope+name\n const pnpmPrefix = packageName.replace('/', '+');\n\n const pnpmDirs: Array<{ version: string; peerSuffix: string | null }> = [];\n for (const entry of entries) {\n if (!entry.startsWith(pnpmPrefix + '@')) continue;\n // Extract version and peer suffix from: @scope+name@version_peer1@ver_peer2@ver\n const afterName = entry.substring(pnpmPrefix.length + 1); // skip \"name@\"\n const underscoreIdx = afterName.indexOf('_');\n if (underscoreIdx === -1) {\n pnpmDirs.push({ version: afterName, peerSuffix: null });\n } else {\n const version = afterName.substring(0, underscoreIdx);\n const rawPeerSuffix = afterName.substring(underscoreIdx + 1);\n const peerSegments = rawPeerSuffix.split('_').filter(Boolean);\n const peerSuffix = peerSegments.map((seg) => seg.replace(/\\+/g, '/')).join(' + ') || null;\n pnpmDirs.push({ version, peerSuffix });\n }\n }\n\n pnpmDirs.sort(\n (a, b) => compareVersions(a.version, b.version) || (a.peerSuffix || '').localeCompare(b.peerSuffix || '')\n );\n\n return { packageName, pnpmDirs };\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, snapToSemver(versionResolved)];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n DevFilesAspect,\n AspectLoaderAspect,\n ScopeAspect,\n GraphAspect,\n LoggerAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain,\n LoggerMain,\n ]) {\n const logger = loggerMain.createLogger(DependenciesAspect.id);\n const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph, logger);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [\n new DependenciesGetCmd(depsMain),\n new DependenciesRemoveCmd(depsMain),\n new DependenciesUnsetCmd(depsMain),\n new DependenciesDebugCmd(depsMain),\n new DependenciesSetCmd(depsMain),\n new DependenciesResetCmd(depsMain),\n new DependenciesEjectCmd(depsMain),\n new DependenciesBlameCmd(depsMain),\n new DependenciesUsageCmd(depsMain),\n new DependenciesDiagnoseCmd(depsMain),\n new DependenciesWriteCmd(workspace),\n ];\n cli.register(\n depsCmd,\n new WhyCmd(depsMain),\n new SetPeerCmd(depsMain),\n new UnsetPeerCmd(depsMain),\n new DependentsCmd(workspace)\n );\n\n ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);\n\n return depsMain;\n }\n}\n\nfunction isComponentId(depName: string) {\n return depName.includes('/') && depName[0] !== '@';\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/dependencies",
3
- "version": "1.0.886",
3
+ "version": "1.0.888",
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.886"
9
+ "version": "1.0.888"
10
10
  },
11
11
  "dependencies": {
12
12
  "archy": "1.0.0",
@@ -55,12 +55,12 @@
55
55
  "@teambit/styling.deps-detectors.detective-sass": "0.0.9",
56
56
  "@teambit/styling.deps-detectors.detective-scss": "0.0.9",
57
57
  "@teambit/typescript.deps-detectors.detective-typescript": "0.0.10",
58
- "@teambit/graph": "1.0.886",
59
- "@teambit/workspace": "1.0.886",
60
- "@teambit/aspect-loader": "1.0.886",
61
- "@teambit/dependency-resolver": "1.0.886",
62
- "@teambit/dev-files": "1.0.886",
63
- "@teambit/scope": "1.0.886"
58
+ "@teambit/graph": "1.0.888",
59
+ "@teambit/workspace": "1.0.888",
60
+ "@teambit/aspect-loader": "1.0.888",
61
+ "@teambit/dependency-resolver": "1.0.888",
62
+ "@teambit/dev-files": "1.0.888",
63
+ "@teambit/scope": "1.0.888"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/cli-table": "^0.3.0",
@@ -70,9 +70,9 @@
70
70
  "rewire": "7.0.0",
71
71
  "sinon": "17.0.1",
72
72
  "@types/mocha": "9.1.0",
73
- "@teambit/component.testing.mock-components": "0.0.364",
74
- "@teambit/harmony.testing.load-aspect": "0.0.359",
75
- "@teambit/workspace.testing.mock-workspace": "0.0.160",
73
+ "@teambit/component.testing.mock-components": "0.0.365",
74
+ "@teambit/harmony.testing.load-aspect": "0.0.360",
75
+ "@teambit/workspace.testing.mock-workspace": "0.0.161",
76
76
  "@teambit/defender.fs.global-bit-temp-dir": "0.0.1",
77
77
  "@teambit/harmony.envs.core-aspect-env": "0.1.4"
78
78
  },