@teambit/dependencies 1.0.1219 → 1.0.1221
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/dependencies-loader/dependencies-versions-resolver.ts +11 -3
- package/dist/dependencies-loader/dependencies-versions-resolver.js +8 -2
- package/dist/dependencies-loader/dependencies-versions-resolver.js.map +1 -1
- package/dist/dependencies.main.runtime.d.ts +11 -2
- package/dist/dependencies.main.runtime.js +34 -2
- package/dist/dependencies.main.runtime.js.map +1 -1
- package/package.json +23 -21
- /package/dist/{preview-1791883225352.js → preview-1791913706953.js} +0 -0
|
@@ -29,6 +29,8 @@ export async function updateDependenciesVersions(
|
|
|
29
29
|
const currentLane = await workspace.getCurrentLaneObject();
|
|
30
30
|
const componentRangePrefix = depsResolver.calcComponentRangePrefixByConsumerComponent(component);
|
|
31
31
|
const supportComponentRange = componentRangePrefix && componentRangePrefix !== '-';
|
|
32
|
+
const dependenciesWithVersionFromConfig: string[] = [];
|
|
33
|
+
component.dependenciesWithVersionFromConfig = dependenciesWithVersionFromConfig;
|
|
32
34
|
updateDependencies(component.dependencies, 'dependencies');
|
|
33
35
|
updateDependencies(component.devDependencies, 'devDependencies');
|
|
34
36
|
updateDependencies(component.peerDependencies, 'peerDependencies');
|
|
@@ -42,7 +44,11 @@ export async function updateDependenciesVersions(
|
|
|
42
44
|
* running bit link --rewire).
|
|
43
45
|
* 2: this gets called for extension-id.
|
|
44
46
|
*/
|
|
45
|
-
function resolveVersion(
|
|
47
|
+
function resolveVersion(
|
|
48
|
+
id: ComponentID,
|
|
49
|
+
depType: DepType,
|
|
50
|
+
pkg?: string
|
|
51
|
+
): { version?: string; range?: string; fromConfig?: boolean } {
|
|
46
52
|
const idFromBitMap = getIdFromBitMap(id);
|
|
47
53
|
const idFromComponentConfig = getIdFromComponentConfig(id);
|
|
48
54
|
const getFromComponentConfig = () => idFromComponentConfig;
|
|
@@ -97,17 +103,19 @@ export async function updateDependenciesVersions(
|
|
|
97
103
|
debugDep.version = version;
|
|
98
104
|
}
|
|
99
105
|
|
|
100
|
-
|
|
106
|
+
const fromConfig = strategy === getFromComponentConfig || strategy === getFromOverrides;
|
|
107
|
+
return { version, range: strategyId instanceof ComponentID ? undefined : strategyId.range, fromConfig };
|
|
101
108
|
}
|
|
102
109
|
return {};
|
|
103
110
|
}
|
|
104
111
|
|
|
105
112
|
function updateDependency(dependency: Dependency, depType: DepType) {
|
|
106
113
|
const { id, packageName } = dependency;
|
|
107
|
-
const { version: resolvedVersion, range } = resolveVersion(id, depType, packageName);
|
|
114
|
+
const { version: resolvedVersion, range, fromConfig } = resolveVersion(id, depType, packageName);
|
|
108
115
|
if (!resolvedVersion) {
|
|
109
116
|
return;
|
|
110
117
|
}
|
|
118
|
+
if (fromConfig) dependenciesWithVersionFromConfig.push(id.toStringWithoutVersion());
|
|
111
119
|
dependency.id = dependency.id.changeVersion(resolvedVersion);
|
|
112
120
|
if (supportComponentRange) {
|
|
113
121
|
if (range) dependency.versionRange = range;
|
|
@@ -60,6 +60,8 @@ async function updateDependenciesVersions(depsResolver, workspace, component, ov
|
|
|
60
60
|
const currentLane = await workspace.getCurrentLaneObject();
|
|
61
61
|
const componentRangePrefix = depsResolver.calcComponentRangePrefixByConsumerComponent(component);
|
|
62
62
|
const supportComponentRange = componentRangePrefix && componentRangePrefix !== '-';
|
|
63
|
+
const dependenciesWithVersionFromConfig = [];
|
|
64
|
+
component.dependenciesWithVersionFromConfig = dependenciesWithVersionFromConfig;
|
|
63
65
|
updateDependencies(component.dependencies, 'dependencies');
|
|
64
66
|
updateDependencies(component.devDependencies, 'devDependencies');
|
|
65
67
|
updateDependencies(component.peerDependencies, 'peerDependencies');
|
|
@@ -115,9 +117,11 @@ async function updateDependenciesVersions(depsResolver, workspace, component, ov
|
|
|
115
117
|
debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');
|
|
116
118
|
debugDep.version = version;
|
|
117
119
|
}
|
|
120
|
+
const fromConfig = strategy === getFromComponentConfig || strategy === getFromOverrides;
|
|
118
121
|
return {
|
|
119
122
|
version,
|
|
120
|
-
range: strategyId instanceof _componentId().ComponentID ? undefined : strategyId.range
|
|
123
|
+
range: strategyId instanceof _componentId().ComponentID ? undefined : strategyId.range,
|
|
124
|
+
fromConfig
|
|
121
125
|
};
|
|
122
126
|
}
|
|
123
127
|
return {};
|
|
@@ -129,11 +133,13 @@ async function updateDependenciesVersions(depsResolver, workspace, component, ov
|
|
|
129
133
|
} = dependency;
|
|
130
134
|
const {
|
|
131
135
|
version: resolvedVersion,
|
|
132
|
-
range
|
|
136
|
+
range,
|
|
137
|
+
fromConfig
|
|
133
138
|
} = resolveVersion(id, depType, packageName);
|
|
134
139
|
if (!resolvedVersion) {
|
|
135
140
|
return;
|
|
136
141
|
}
|
|
142
|
+
if (fromConfig) dependenciesWithVersionFromConfig.push(id.toStringWithoutVersion());
|
|
137
143
|
dependency.id = dependency.id.changeVersion(resolvedVersion);
|
|
138
144
|
if (supportComponentRange) {
|
|
139
145
|
if (range) dependency.versionRange = range;else if (resolvedVersion !== 'latest' && (componentRangePrefix === '^' || componentRangePrefix === '~') && !(0, _componentVersion().isSnap)(resolvedVersion)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_componentId","data","require","_semver","_interopRequireDefault","_componentVersion","_legacy","_lodash","_legacy2","_autoDetectDeps","e","__esModule","default","updateDependenciesVersions","depsResolver","workspace","component","overridesDependencies","autoDetectOverrides","debugDependencies","updateExtensionsVersions","consumer","autoDetectConfigMerge","getAutoDetectConfigMerge","id","currentLane","getCurrentLaneObject","componentRangePrefix","calcComponentRangePrefixByConsumerComponent","supportComponentRange","updateDependencies","dependencies","devDependencies","peerDependencies","updateExtensions","extensions","resolveVersion","depType","pkg","idFromBitMap","getIdFromBitMap","idFromComponentConfig","getIdFromComponentConfig","getFromComponentConfig","getFromBitMap","getFromUpdateDependentsOnLane","getIdFromUpdateDependentsOnLane","getFromOverrides","resolveFromOverrides","debugDep","find","dep","isEqualWithoutVersion","getFromDepPackageJson","hasVersion","getFromDepPackageJsonDueToWorkspacePolicy","fromPolicy","pkgVersionFromWorkspacePolicies","compId","range","semver","validRange","undefined","getFromMergeConfig","resolveFromMergeConfig","getFromDepPackageJsonDueToAutoDetectOverrides","isPkgInAutoDetectOverrides","getFromModel","getIdFromModelDeps","componentFromModel","strategies","strategy","strategyId","version","ComponentID","logger","trace","toString","name","versionResolvedFrom","replace","updateDependency","dependency","packageName","resolvedVersion","changeVersion","versionRange","isSnap","get","forEach","updateExtension","extension","extensionId","componentId","getAllDependenciesIds","searchWithoutVersion","existingIds","bitmapIdsFromCurrentLane","filterWithoutVersion","length","updateDependents","overrides","getComponentDependenciesWithVersion","isEmpty","Object","keys","idStr","toStringWithoutVersion","pkgName","envOwnPkgNames","has","getDependenciesToAddManually","found","validVersion","getValidComponentVersion","DEPENDENCIES_FIELDS","some","depField","getWorkspacePolicyManifest","foundVersion","field","foundValidVersion"],"sources":["dependencies-versions-resolver.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport semver from 'semver';\nimport { isSnap } from '@teambit/component-version';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { Workspace } from '@teambit/workspace';\nimport { logger } from '@teambit/legacy.logger';\nimport { isEmpty } from 'lodash';\nimport type { Dependency, Dependencies, ConsumerComponent as Component } from '@teambit/legacy.consumer-component';\nimport type { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy.constants';\nimport type OverridesDependencies from './overrides-dependencies';\nimport type { DebugComponentsDependency } from './auto-detect-deps';\nimport { getValidComponentVersion } from './auto-detect-deps';\n\ntype DepType = 'dependencies' | 'devDependencies' | 'peerDependencies';\n\nexport async function updateDependenciesVersions(\n depsResolver: DependencyResolverMain,\n workspace: Workspace,\n component: Component,\n overridesDependencies: OverridesDependencies,\n autoDetectOverrides?: Record<string, any>,\n debugDependencies?: DebugComponentsDependency[],\n updateExtensionsVersions = true\n) {\n const consumer: Consumer = workspace.consumer;\n const autoDetectConfigMerge = workspace.getAutoDetectConfigMerge(component.id) || {};\n const currentLane = await workspace.getCurrentLaneObject();\n const componentRangePrefix = depsResolver.calcComponentRangePrefixByConsumerComponent(component);\n const supportComponentRange = componentRangePrefix && componentRangePrefix !== '-';\n updateDependencies(component.dependencies, 'dependencies');\n updateDependencies(component.devDependencies, 'devDependencies');\n updateDependencies(component.peerDependencies, 'peerDependencies');\n if (updateExtensionsVersions) {\n updateExtensions(component.extensions);\n }\n\n /**\n * the `pkg` can be missing only in two scenarios:\n * 1: the dependency is using relative-paths, not the module path. (which bit-status shows an error and suggests\n * running bit link --rewire).\n * 2: this gets called for extension-id.\n */\n function resolveVersion(id: ComponentID, depType: DepType, pkg?: string): { version?: string; range?: string } {\n const idFromBitMap = getIdFromBitMap(id);\n const idFromComponentConfig = getIdFromComponentConfig(id);\n const getFromComponentConfig = () => idFromComponentConfig;\n const getFromBitMap = () => idFromBitMap || null;\n const getFromUpdateDependentsOnLane = () => getIdFromUpdateDependentsOnLane(id);\n // later, change this to return the version from the overrides.\n const getFromOverrides = () => resolveFromOverrides(id, depType, pkg);\n const debugDep = debugDependencies?.find((dep) => dep.id.isEqualWithoutVersion(id));\n // the id we get from the auto-detect is coming from the package.json of the dependency.\n const getFromDepPackageJson = () => (id.hasVersion() ? id : null);\n // In case it's resolved from the node_modules, and it's also in the ws policy or variants,\n // use the resolved version from the node_modules / package folder\n const getFromDepPackageJsonDueToWorkspacePolicy = () => {\n if (!pkg || !id.hasVersion()) return null;\n const fromPolicy = pkgVersionFromWorkspacePolicies(pkg);\n if (!fromPolicy) return null;\n return {\n compId: id,\n range: supportComponentRange && semver.validRange(fromPolicy) ? fromPolicy : undefined,\n };\n };\n // merge config here is only auto-detected ones. their priority is less then the ws policy\n // otherwise, imagine you merge a lane, you don't like the dependency you got from the other lane, you run\n // bit-install to change it, but it won't do anything.\n const getFromMergeConfig = () => (pkg ? resolveFromMergeConfig(id, pkg) : null);\n const getFromDepPackageJsonDueToAutoDetectOverrides = () => (pkg && isPkgInAutoDetectOverrides(pkg) ? id : null);\n // If there is a version in the node_modules/package folder, but it's not in the ws policy,\n // prefer the version from the model over the version from the node_modules\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const getFromModel = () => getIdFromModelDeps(component.componentFromModel!, id);\n\n const strategies = [\n getFromComponentConfig,\n getFromOverrides,\n getFromBitMap,\n getFromUpdateDependentsOnLane,\n getFromDepPackageJsonDueToWorkspacePolicy,\n getFromMergeConfig,\n getFromDepPackageJsonDueToAutoDetectOverrides,\n getFromModel,\n getFromDepPackageJson,\n ];\n\n for (const strategy of strategies) {\n const strategyId = strategy();\n if (!strategyId) continue;\n const version = strategyId instanceof ComponentID ? strategyId.version : strategyId.compId?.version;\n if (!version) continue;\n logger.trace(`found dependency version ${version} for ${id.toString()} in strategy ${strategy.name}`);\n if (debugDep) {\n debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');\n debugDep.version = version;\n }\n\n return { version, range: strategyId instanceof ComponentID ? undefined : strategyId.range };\n }\n return {};\n }\n\n function updateDependency(dependency: Dependency, depType: DepType) {\n const { id, packageName } = dependency;\n const { version: resolvedVersion, range } = resolveVersion(id, depType, packageName);\n if (!resolvedVersion) {\n return;\n }\n dependency.id = dependency.id.changeVersion(resolvedVersion);\n if (supportComponentRange) {\n if (range) dependency.versionRange = range;\n else if (\n resolvedVersion !== 'latest' &&\n (componentRangePrefix === '^' || componentRangePrefix === '~') &&\n !isSnap(resolvedVersion)\n ) {\n dependency.versionRange = `${componentRangePrefix}${resolvedVersion}`;\n }\n } else if (dependency.versionRange && depType !== 'peerDependencies' && dependency.versionRange !== '+') {\n dependency.versionRange = undefined;\n }\n }\n function updateDependencies(dependencies: Dependencies, depType: DepType) {\n dependencies.get().forEach((dep) => updateDependency(dep, depType));\n }\n\n function updateExtension(extension: ExtensionDataEntry) {\n if (extension.extensionId) {\n const { version: resolvedVersion } = resolveVersion(extension.extensionId, 'devDependencies');\n if (resolvedVersion) {\n extension.extensionId = extension.extensionId.changeVersion(resolvedVersion);\n }\n }\n }\n function updateExtensions(extensions: ExtensionDataList) {\n extensions.forEach(updateExtension);\n }\n\n function getIdFromModelDeps(componentFromModel: Component, componentId: ComponentID): ComponentID | null {\n if (!componentFromModel) return null;\n const dependency = componentFromModel.getAllDependenciesIds().searchWithoutVersion(componentId);\n if (!dependency) return null;\n return dependency;\n }\n\n function getIdFromBitMap(componentId: ComponentID): ComponentID | null | undefined {\n const existingIds = consumer.bitmapIdsFromCurrentLane.filterWithoutVersion(componentId);\n return existingIds.length === 1 ? existingIds[0] : undefined;\n }\n\n function getIdFromUpdateDependentsOnLane(id: ComponentID) {\n const updateDependents = currentLane?.updateDependents;\n if (!updateDependents) return undefined;\n return updateDependents.find((dep) => dep.isEqualWithoutVersion(id));\n }\n\n function getIdFromComponentConfig(componentId: ComponentID): ComponentID | undefined {\n const dependencies = component.overrides.getComponentDependenciesWithVersion();\n if (isEmpty(dependencies)) return undefined;\n const dependency = Object.keys(dependencies).find((idStr) => componentId.toStringWithoutVersion() === idStr);\n if (!dependency) return undefined;\n return componentId.changeVersion(dependencies[dependency]);\n }\n\n /**\n * config in .bitmap or component.json are resolved here.\n */\n function resolveFromOverrides(\n id: ComponentID,\n depType: DepType,\n pkgName?: string\n ): { compId?: ComponentID; range?: string } | undefined {\n if (!pkgName) return undefined;\n // For env-own dependencies (from env.jsonc selfPolicy), if the dep is a workspace component,\n // skip the override so the version is resolved from the bitmap instead.\n // This prevents the static env.jsonc version (e.g. a tag) from overriding the workspace\n // version (e.g. a snap hash on a lane).\n if (overridesDependencies.envOwnPkgNames.has(pkgName) && getIdFromBitMap(id)) return undefined;\n const dependencies = overridesDependencies.getDependenciesToAddManually();\n const found = dependencies?.[depType]?.[pkgName];\n if (!found) return undefined;\n const { version: validVersion, range } = getValidComponentVersion(found);\n const compId = validVersion ? id.changeVersion(validVersion) : undefined;\n return { compId, range };\n }\n\n function isPkgInAutoDetectOverrides(pkgName: string): boolean {\n return DEPENDENCIES_FIELDS.some(\n (depField) => autoDetectOverrides?.[depField] && autoDetectOverrides[depField][pkgName]\n );\n }\n\n function pkgVersionFromWorkspacePolicies(pkgName: string): string | undefined {\n return depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];\n }\n\n function resolveFromMergeConfig(id: ComponentID, pkgName: string): ComponentID | undefined {\n let foundVersion: string | undefined | null;\n DEPENDENCIES_FIELDS.forEach((field) => {\n if (autoDetectConfigMerge[field]?.[pkgName]) {\n foundVersion = autoDetectConfigMerge[field]?.[pkgName];\n }\n });\n const foundValidVersion = foundVersion ? getValidComponentVersion(foundVersion) : undefined;\n return foundValidVersion?.version ? id.changeVersion(foundValidVersion.version) : undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_componentId","data","require","_semver","_interopRequireDefault","_componentVersion","_legacy","_lodash","_legacy2","_autoDetectDeps","e","__esModule","default","updateDependenciesVersions","depsResolver","workspace","component","overridesDependencies","autoDetectOverrides","debugDependencies","updateExtensionsVersions","consumer","autoDetectConfigMerge","getAutoDetectConfigMerge","id","currentLane","getCurrentLaneObject","componentRangePrefix","calcComponentRangePrefixByConsumerComponent","supportComponentRange","dependenciesWithVersionFromConfig","updateDependencies","dependencies","devDependencies","peerDependencies","updateExtensions","extensions","resolveVersion","depType","pkg","idFromBitMap","getIdFromBitMap","idFromComponentConfig","getIdFromComponentConfig","getFromComponentConfig","getFromBitMap","getFromUpdateDependentsOnLane","getIdFromUpdateDependentsOnLane","getFromOverrides","resolveFromOverrides","debugDep","find","dep","isEqualWithoutVersion","getFromDepPackageJson","hasVersion","getFromDepPackageJsonDueToWorkspacePolicy","fromPolicy","pkgVersionFromWorkspacePolicies","compId","range","semver","validRange","undefined","getFromMergeConfig","resolveFromMergeConfig","getFromDepPackageJsonDueToAutoDetectOverrides","isPkgInAutoDetectOverrides","getFromModel","getIdFromModelDeps","componentFromModel","strategies","strategy","strategyId","version","ComponentID","logger","trace","toString","name","versionResolvedFrom","replace","fromConfig","updateDependency","dependency","packageName","resolvedVersion","push","toStringWithoutVersion","changeVersion","versionRange","isSnap","get","forEach","updateExtension","extension","extensionId","componentId","getAllDependenciesIds","searchWithoutVersion","existingIds","bitmapIdsFromCurrentLane","filterWithoutVersion","length","updateDependents","overrides","getComponentDependenciesWithVersion","isEmpty","Object","keys","idStr","pkgName","envOwnPkgNames","has","getDependenciesToAddManually","found","validVersion","getValidComponentVersion","DEPENDENCIES_FIELDS","some","depField","getWorkspacePolicyManifest","foundVersion","field","foundValidVersion"],"sources":["dependencies-versions-resolver.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport semver from 'semver';\nimport { isSnap } from '@teambit/component-version';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { Workspace } from '@teambit/workspace';\nimport { logger } from '@teambit/legacy.logger';\nimport { isEmpty } from 'lodash';\nimport type { Dependency, Dependencies, ConsumerComponent as Component } from '@teambit/legacy.consumer-component';\nimport type { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { DEPENDENCIES_FIELDS } from '@teambit/legacy.constants';\nimport type OverridesDependencies from './overrides-dependencies';\nimport type { DebugComponentsDependency } from './auto-detect-deps';\nimport { getValidComponentVersion } from './auto-detect-deps';\n\ntype DepType = 'dependencies' | 'devDependencies' | 'peerDependencies';\n\nexport async function updateDependenciesVersions(\n depsResolver: DependencyResolverMain,\n workspace: Workspace,\n component: Component,\n overridesDependencies: OverridesDependencies,\n autoDetectOverrides?: Record<string, any>,\n debugDependencies?: DebugComponentsDependency[],\n updateExtensionsVersions = true\n) {\n const consumer: Consumer = workspace.consumer;\n const autoDetectConfigMerge = workspace.getAutoDetectConfigMerge(component.id) || {};\n const currentLane = await workspace.getCurrentLaneObject();\n const componentRangePrefix = depsResolver.calcComponentRangePrefixByConsumerComponent(component);\n const supportComponentRange = componentRangePrefix && componentRangePrefix !== '-';\n const dependenciesWithVersionFromConfig: string[] = [];\n component.dependenciesWithVersionFromConfig = dependenciesWithVersionFromConfig;\n updateDependencies(component.dependencies, 'dependencies');\n updateDependencies(component.devDependencies, 'devDependencies');\n updateDependencies(component.peerDependencies, 'peerDependencies');\n if (updateExtensionsVersions) {\n updateExtensions(component.extensions);\n }\n\n /**\n * the `pkg` can be missing only in two scenarios:\n * 1: the dependency is using relative-paths, not the module path. (which bit-status shows an error and suggests\n * running bit link --rewire).\n * 2: this gets called for extension-id.\n */\n function resolveVersion(\n id: ComponentID,\n depType: DepType,\n pkg?: string\n ): { version?: string; range?: string; fromConfig?: boolean } {\n const idFromBitMap = getIdFromBitMap(id);\n const idFromComponentConfig = getIdFromComponentConfig(id);\n const getFromComponentConfig = () => idFromComponentConfig;\n const getFromBitMap = () => idFromBitMap || null;\n const getFromUpdateDependentsOnLane = () => getIdFromUpdateDependentsOnLane(id);\n // later, change this to return the version from the overrides.\n const getFromOverrides = () => resolveFromOverrides(id, depType, pkg);\n const debugDep = debugDependencies?.find((dep) => dep.id.isEqualWithoutVersion(id));\n // the id we get from the auto-detect is coming from the package.json of the dependency.\n const getFromDepPackageJson = () => (id.hasVersion() ? id : null);\n // In case it's resolved from the node_modules, and it's also in the ws policy or variants,\n // use the resolved version from the node_modules / package folder\n const getFromDepPackageJsonDueToWorkspacePolicy = () => {\n if (!pkg || !id.hasVersion()) return null;\n const fromPolicy = pkgVersionFromWorkspacePolicies(pkg);\n if (!fromPolicy) return null;\n return {\n compId: id,\n range: supportComponentRange && semver.validRange(fromPolicy) ? fromPolicy : undefined,\n };\n };\n // merge config here is only auto-detected ones. their priority is less then the ws policy\n // otherwise, imagine you merge a lane, you don't like the dependency you got from the other lane, you run\n // bit-install to change it, but it won't do anything.\n const getFromMergeConfig = () => (pkg ? resolveFromMergeConfig(id, pkg) : null);\n const getFromDepPackageJsonDueToAutoDetectOverrides = () => (pkg && isPkgInAutoDetectOverrides(pkg) ? id : null);\n // If there is a version in the node_modules/package folder, but it's not in the ws policy,\n // prefer the version from the model over the version from the node_modules\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const getFromModel = () => getIdFromModelDeps(component.componentFromModel!, id);\n\n const strategies = [\n getFromComponentConfig,\n getFromOverrides,\n getFromBitMap,\n getFromUpdateDependentsOnLane,\n getFromDepPackageJsonDueToWorkspacePolicy,\n getFromMergeConfig,\n getFromDepPackageJsonDueToAutoDetectOverrides,\n getFromModel,\n getFromDepPackageJson,\n ];\n\n for (const strategy of strategies) {\n const strategyId = strategy();\n if (!strategyId) continue;\n const version = strategyId instanceof ComponentID ? strategyId.version : strategyId.compId?.version;\n if (!version) continue;\n logger.trace(`found dependency version ${version} for ${id.toString()} in strategy ${strategy.name}`);\n if (debugDep) {\n debugDep.versionResolvedFrom = strategy.name.replace('getFrom', '');\n debugDep.version = version;\n }\n\n const fromConfig = strategy === getFromComponentConfig || strategy === getFromOverrides;\n return { version, range: strategyId instanceof ComponentID ? undefined : strategyId.range, fromConfig };\n }\n return {};\n }\n\n function updateDependency(dependency: Dependency, depType: DepType) {\n const { id, packageName } = dependency;\n const { version: resolvedVersion, range, fromConfig } = resolveVersion(id, depType, packageName);\n if (!resolvedVersion) {\n return;\n }\n if (fromConfig) dependenciesWithVersionFromConfig.push(id.toStringWithoutVersion());\n dependency.id = dependency.id.changeVersion(resolvedVersion);\n if (supportComponentRange) {\n if (range) dependency.versionRange = range;\n else if (\n resolvedVersion !== 'latest' &&\n (componentRangePrefix === '^' || componentRangePrefix === '~') &&\n !isSnap(resolvedVersion)\n ) {\n dependency.versionRange = `${componentRangePrefix}${resolvedVersion}`;\n }\n } else if (dependency.versionRange && depType !== 'peerDependencies' && dependency.versionRange !== '+') {\n dependency.versionRange = undefined;\n }\n }\n function updateDependencies(dependencies: Dependencies, depType: DepType) {\n dependencies.get().forEach((dep) => updateDependency(dep, depType));\n }\n\n function updateExtension(extension: ExtensionDataEntry) {\n if (extension.extensionId) {\n const { version: resolvedVersion } = resolveVersion(extension.extensionId, 'devDependencies');\n if (resolvedVersion) {\n extension.extensionId = extension.extensionId.changeVersion(resolvedVersion);\n }\n }\n }\n function updateExtensions(extensions: ExtensionDataList) {\n extensions.forEach(updateExtension);\n }\n\n function getIdFromModelDeps(componentFromModel: Component, componentId: ComponentID): ComponentID | null {\n if (!componentFromModel) return null;\n const dependency = componentFromModel.getAllDependenciesIds().searchWithoutVersion(componentId);\n if (!dependency) return null;\n return dependency;\n }\n\n function getIdFromBitMap(componentId: ComponentID): ComponentID | null | undefined {\n const existingIds = consumer.bitmapIdsFromCurrentLane.filterWithoutVersion(componentId);\n return existingIds.length === 1 ? existingIds[0] : undefined;\n }\n\n function getIdFromUpdateDependentsOnLane(id: ComponentID) {\n const updateDependents = currentLane?.updateDependents;\n if (!updateDependents) return undefined;\n return updateDependents.find((dep) => dep.isEqualWithoutVersion(id));\n }\n\n function getIdFromComponentConfig(componentId: ComponentID): ComponentID | undefined {\n const dependencies = component.overrides.getComponentDependenciesWithVersion();\n if (isEmpty(dependencies)) return undefined;\n const dependency = Object.keys(dependencies).find((idStr) => componentId.toStringWithoutVersion() === idStr);\n if (!dependency) return undefined;\n return componentId.changeVersion(dependencies[dependency]);\n }\n\n /**\n * config in .bitmap or component.json are resolved here.\n */\n function resolveFromOverrides(\n id: ComponentID,\n depType: DepType,\n pkgName?: string\n ): { compId?: ComponentID; range?: string } | undefined {\n if (!pkgName) return undefined;\n // For env-own dependencies (from env.jsonc selfPolicy), if the dep is a workspace component,\n // skip the override so the version is resolved from the bitmap instead.\n // This prevents the static env.jsonc version (e.g. a tag) from overriding the workspace\n // version (e.g. a snap hash on a lane).\n if (overridesDependencies.envOwnPkgNames.has(pkgName) && getIdFromBitMap(id)) return undefined;\n const dependencies = overridesDependencies.getDependenciesToAddManually();\n const found = dependencies?.[depType]?.[pkgName];\n if (!found) return undefined;\n const { version: validVersion, range } = getValidComponentVersion(found);\n const compId = validVersion ? id.changeVersion(validVersion) : undefined;\n return { compId, range };\n }\n\n function isPkgInAutoDetectOverrides(pkgName: string): boolean {\n return DEPENDENCIES_FIELDS.some(\n (depField) => autoDetectOverrides?.[depField] && autoDetectOverrides[depField][pkgName]\n );\n }\n\n function pkgVersionFromWorkspacePolicies(pkgName: string): string | undefined {\n return depsResolver.getWorkspacePolicyManifest().dependencies?.[pkgName];\n }\n\n function resolveFromMergeConfig(id: ComponentID, pkgName: string): ComponentID | undefined {\n let foundVersion: string | undefined | null;\n DEPENDENCIES_FIELDS.forEach((field) => {\n if (autoDetectConfigMerge[field]?.[pkgName]) {\n foundVersion = autoDetectConfigMerge[field]?.[pkgName];\n }\n });\n const foundValidVersion = foundVersion ? getValidComponentVersion(foundVersion) : undefined;\n return foundValidVersion?.version ? id.changeVersion(foundValidVersion.version) : undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,8 @@ import type { DependenciesData, OverridesDependenciesData } from './dependencies
|
|
|
11
11
|
import type { RemoveDependenciesFlags, SetDependenciesFlags } from './dependencies-cmd';
|
|
12
12
|
import type { DebugDependencies } from './dependencies-loader/auto-detect-deps';
|
|
13
13
|
import type { Logger, LoggerMain } from '@teambit/logger';
|
|
14
|
+
import type { Component } from '@teambit/component';
|
|
15
|
+
import type { IssuesMain } from '@teambit/issues';
|
|
14
16
|
export type RemoveDependencyResult = {
|
|
15
17
|
id: ComponentID;
|
|
16
18
|
removedPackages: string[];
|
|
@@ -85,6 +87,12 @@ export declare class DependenciesMain {
|
|
|
85
87
|
unsetPeer(componentId: string): Promise<void>;
|
|
86
88
|
setDependency(componentPattern: string, packages: string[], options?: SetDependenciesFlags): Promise<SetDependenciesResult>;
|
|
87
89
|
removeDependency(componentPattern: string, packages: string[], options?: RemoveDependenciesFlags, removeOnlyIfExists?: boolean): Promise<RemoveDependencyResult[]>;
|
|
90
|
+
/**
|
|
91
|
+
* add an issue for dependencies on workspace components whose version is set in the config (e.g. "bit deps set").
|
|
92
|
+
* such a dependency doesn't follow the workspace version of the component, e.g. it's not auto-tagged with it.
|
|
93
|
+
* it's not a tag blocker, it's there to make it visible, because often a version is set this way when not needed.
|
|
94
|
+
*/
|
|
95
|
+
addPinnedDependenciesIssues(components: Component[], issuesToIgnore: string[]): Promise<void>;
|
|
88
96
|
reset(componentPattern: string): Promise<ComponentID[]>;
|
|
89
97
|
eject(componentPattern: string): Promise<ComponentID[]>;
|
|
90
98
|
/**
|
|
@@ -156,7 +164,7 @@ export declare class DependenciesMain {
|
|
|
156
164
|
static slots: never[];
|
|
157
165
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
158
166
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
159
|
-
static provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain]: [
|
|
167
|
+
static provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain, issues]: [
|
|
160
168
|
CLIMain,
|
|
161
169
|
Workspace,
|
|
162
170
|
DependencyResolverMain,
|
|
@@ -164,7 +172,8 @@ export declare class DependenciesMain {
|
|
|
164
172
|
AspectLoaderMain,
|
|
165
173
|
ScopeMain,
|
|
166
174
|
GraphMain,
|
|
167
|
-
LoggerMain
|
|
175
|
+
LoggerMain,
|
|
176
|
+
IssuesMain
|
|
168
177
|
]): Promise<DependenciesMain>;
|
|
169
178
|
}
|
|
170
179
|
export default DependenciesMain;
|
|
@@ -165,6 +165,20 @@ function _logger() {
|
|
|
165
165
|
};
|
|
166
166
|
return data;
|
|
167
167
|
}
|
|
168
|
+
function _issues() {
|
|
169
|
+
const data = require("@teambit/issues");
|
|
170
|
+
_issues = function () {
|
|
171
|
+
return data;
|
|
172
|
+
};
|
|
173
|
+
return data;
|
|
174
|
+
}
|
|
175
|
+
function _componentIssues() {
|
|
176
|
+
const data = require("@teambit/component-issues");
|
|
177
|
+
_componentIssues = function () {
|
|
178
|
+
return data;
|
|
179
|
+
};
|
|
180
|
+
return data;
|
|
181
|
+
}
|
|
168
182
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
169
183
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
170
184
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -316,6 +330,23 @@ class DependenciesMain {
|
|
|
316
330
|
await this.workspace.bitMap.write(`deps-remove (${componentPattern})`);
|
|
317
331
|
return (0, _lodash().compact)(results);
|
|
318
332
|
}
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* add an issue for dependencies on workspace components whose version is set in the config (e.g. "bit deps set").
|
|
336
|
+
* such a dependency doesn't follow the workspace version of the component, e.g. it's not auto-tagged with it.
|
|
337
|
+
* it's not a tag blocker, it's there to make it visible, because often a version is set this way when not needed.
|
|
338
|
+
*/
|
|
339
|
+
async addPinnedDependenciesIssues(components, issuesToIgnore) {
|
|
340
|
+
if (issuesToIgnore.includes(_componentIssues().IssuesClasses.PinnedDependencies.name)) return;
|
|
341
|
+
components.forEach(component => {
|
|
342
|
+
const consumerComponent = component.state._consumer;
|
|
343
|
+
const pinned = consumerComponent.getDependenciesWithVersionFromConfig(id => this.workspace.hasId(id, {
|
|
344
|
+
ignoreVersion: true
|
|
345
|
+
}));
|
|
346
|
+
// the component can be reused from the cache, so remove an issue that was added when it had pinned dependencies
|
|
347
|
+
if (pinned.length) component.state.issues.getOrCreate(_componentIssues().IssuesClasses.PinnedDependencies).data = pinned;else component.state.issues.delete(_componentIssues().IssuesClasses.PinnedDependencies);
|
|
348
|
+
});
|
|
349
|
+
}
|
|
319
350
|
async reset(componentPattern) {
|
|
320
351
|
const compIds = await this.workspace.idsByPattern(componentPattern);
|
|
321
352
|
await (0, _pMapSeries().default)(compIds, async compId => {
|
|
@@ -712,19 +743,20 @@ class DependenciesMain {
|
|
|
712
743
|
if (packageSplit.length > 2) throw new Error(`invalid package "${pkg}" syntax, expected "package[@version]"`);
|
|
713
744
|
return [packageSplit[0], packageSplit[1]];
|
|
714
745
|
}
|
|
715
|
-
static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain]) {
|
|
746
|
+
static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain, issues]) {
|
|
716
747
|
const logger = loggerMain.createLogger(_dependencies().DependenciesAspect.id);
|
|
717
748
|
const depsMain = new DependenciesMain(workspace, scope, depsResolver, devFiles, aspectLoader, graph, logger);
|
|
718
749
|
const depsCmd = new (_dependenciesCmd().DependenciesCmd)();
|
|
719
750
|
depsCmd.commands = [new (_dependenciesCmd().DependenciesGetCmd)(depsMain), new (_dependenciesCmd().DependenciesRemoveCmd)(depsMain), new (_dependenciesCmd().DependenciesUnsetCmd)(depsMain), new (_dependenciesCmd().DependenciesDebugCmd)(depsMain), new (_dependenciesCmd().DependenciesSetCmd)(depsMain), new (_dependenciesCmd().DependenciesResetCmd)(depsMain), new (_dependenciesCmd().DependenciesEjectCmd)(depsMain), new (_dependenciesCmd().DependenciesBlameCmd)(depsMain), new (_dependenciesCmd().DependenciesUsageCmd)(depsMain), new (_dependenciesCmd().DependenciesDiagnoseCmd)(depsMain), new (_dependenciesCmd().DependenciesCircularCmd)(depsMain), new (_dependenciesCmd().DependenciesWriteCmd)(workspace)];
|
|
720
751
|
cli.register(depsCmd, new (_dependenciesCmd().WhyCmd)(depsMain), new (_dependenciesCmd().SetPeerCmd)(depsMain), new (_dependenciesCmd().UnsetPeerCmd)(depsMain), new (_dependentsCmd().DependentsCmd)(workspace));
|
|
721
752
|
_legacy().ComponentLoader.loadDeps = depsMain.loadDependencies.bind(depsMain);
|
|
753
|
+
if (workspace) issues.registerAddComponentsIssues(depsMain.addPinnedDependenciesIssues.bind(depsMain));
|
|
722
754
|
return depsMain;
|
|
723
755
|
}
|
|
724
756
|
}
|
|
725
757
|
exports.DependenciesMain = DependenciesMain;
|
|
726
758
|
_defineProperty(DependenciesMain, "slots", []);
|
|
727
|
-
_defineProperty(DependenciesMain, "dependencies", [_cli().CLIAspect, _workspace().WorkspaceAspect, _dependencyResolver().DependencyResolverAspect, _devFiles().DevFilesAspect, _aspectLoader().AspectLoaderAspect, _scope().ScopeAspect, _graph().GraphAspect, _logger().LoggerAspect]);
|
|
759
|
+
_defineProperty(DependenciesMain, "dependencies", [_cli().CLIAspect, _workspace().WorkspaceAspect, _dependencyResolver().DependencyResolverAspect, _devFiles().DevFilesAspect, _aspectLoader().AspectLoaderAspect, _scope().ScopeAspect, _graph().GraphAspect, _logger().LoggerAspect, _issues().IssuesAspect]);
|
|
728
760
|
_defineProperty(DependenciesMain, "runtime", _harmonyModules().MainRuntime);
|
|
729
761
|
function isComponentId(depName) {
|
|
730
762
|
return depName.includes('/') && depName[0] !== '@';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_harmonyModules","data","require","_cli","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_fsExtra","_path","_yaml","_dependenciesPnpm","_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","getCircularDependencies","includeDeps","OutsideWorkspaceError","getGraphIds","undefined","excludeOutdatedEdgesOfModified","cycles","findCycles","cycle","factory","comp","compIdWithVer","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","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","usage","allComps","list","toString","diagnose","componentCount","pnpmDir","join","pnpmDirExists","fs","pathExists","Error","pnpmEntries","readVirtualStoreEntries","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","virtualStoreDir","readdir","withFileTypes","isDirectory","currentLockfilePath","lockfile","parseYaml","readFile","depPath","depPathToDirName","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","DependenciesCircularCmd","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 { MainRuntime } from '@teambit/harmony.modules.runtimes';\nimport { CLIAspect } 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 { parse as parseYaml } from 'yaml';\nimport { depPathToDirName } from '@teambit/dependencies.pnpm.dep-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 DependenciesCircularCmd,\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 /**\n * Find circular dependencies in the workspace component graph.\n * Returns an array of cycles, where each cycle is an array of component-id strings\n * (with the first component repeated at the end to make the circular path visible).\n */\n async getCircularDependencies(includeDeps?: boolean): Promise<string[][]> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const graph = await this.graph.getGraphIds(undefined, { excludeOutdatedEdgesOfModified: true });\n const cycles = graph.findCycles(undefined, includeDeps);\n // append the first component to the end to make the circular visible in the output\n cycles.forEach((cycle) => cycle.push(cycle[0]));\n return cycles;\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 this.readVirtualStoreEntries(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 /**\n * The per-copy directory names of everything the last install materialized for this workspace.\n *\n * Normally these are the directories inside `node_modules/.pnpm`. With the global virtual store\n * enabled the copies live in the shared store instead - and that store holds every workspace's\n * packages, so it cannot be scanned for this workspace's ground truth. The current lockfile pnpm\n * writes into `node_modules/.pnpm` records exactly what was materialized here, and its dep paths\n * map one-to-one onto the directory names of the project-local layout.\n */\n private async readVirtualStoreEntries(virtualStoreDir: string): Promise<string[]> {\n // directories only: a stray file (or `lock.yaml` itself) is not a materialized copy, and\n // counting one would both garble the copy counts and suppress the lockfile fallback below\n const entries = (await fs.readdir(virtualStoreDir, { withFileTypes: true }))\n .filter((entry) => entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules')\n .map((entry) => entry.name);\n if (entries.length) return entries;\n const currentLockfilePath = path.join(virtualStoreDir, 'lock.yaml');\n if (!(await fs.pathExists(currentLockfilePath))) return entries;\n const lockfile = parseYaml(await fs.readFile(currentLockfilePath, 'utf8'));\n return Object.keys(lockfile?.packages ?? {}).map((depPath: string) => depPathToDirName(depPath));\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 this.readVirtualStoreEntries(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 DependenciesCircularCmd(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":["_harmonyModules","data","require","_cli","_moment","_interopRequireDefault","_dependencyResolver","_workspace","_fsExtra","_path","_yaml","_dependenciesPnpm","_semver","_lodash","_pMapSeries","_legacy","_devFiles","_graph","_aspectLoader","_componentPackageVersion","_scope","_dependenciesLoader","_dependenciesCmd","_dependencies","_dependentsCmd","_logger","_issues","_componentIssues","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","addPinnedDependenciesIssues","components","issuesToIgnore","IssuesClasses","PinnedDependencies","consumerComponent","_consumer","pinned","getDependenciesWithVersionFromConfig","hasId","ignoreVersion","getOrCreate","delete","reset","eject","getCircularDependencies","includeDeps","OutsideWorkspaceError","getGraphIds","undefined","excludeOutdatedEdgesOfModified","cycles","findCycles","cycle","factory","comp","compIdWithVer","host","loadDependencies","opts","dependenciesLoader","DependenciesLoader","load","loadDependenciesFromScope","dependenciesData","loadFromScope","debugDependencies","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","usage","allComps","list","toString","diagnose","componentCount","pnpmDir","join","pnpmDirExists","fs","pathExists","Error","pnpmEntries","readVirtualStoreEntries","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","versionSpread","entries","versionCount","sort","installedCopies","impact","packageName","slice","peerPermutations","has","versionOrigins","ver","dirName","plusIdx","indexOf","substring","rest","atIdx","virtualStoreDir","readdir","withFileTypes","isDirectory","currentLockfilePath","lockfile","parseYaml","readFile","depPath","depPathToDirName","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","DependenciesCircularCmd","DependenciesWriteCmd","register","WhyCmd","SetPeerCmd","UnsetPeerCmd","DependentsCmd","ComponentLoader","loadDeps","bind","registerAddComponentsIssues","exports","CLIAspect","WorkspaceAspect","DevFilesAspect","AspectLoaderAspect","ScopeAspect","GraphAspect","LoggerAspect","IssuesAspect","MainRuntime","addRuntime","_default"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { MainRuntime } from '@teambit/harmony.modules.runtimes';\nimport { CLIAspect } 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 { parse as parseYaml } from 'yaml';\nimport { depPathToDirName } from '@teambit/dependencies.pnpm.dep-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 DependenciesCircularCmd,\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';\nimport type { Component } from '@teambit/component';\nimport type { IssuesMain } from '@teambit/issues';\nimport { IssuesAspect } from '@teambit/issues';\nimport { IssuesClasses } from '@teambit/component-issues';\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 /**\n * add an issue for dependencies on workspace components whose version is set in the config (e.g. \"bit deps set\").\n * such a dependency doesn't follow the workspace version of the component, e.g. it's not auto-tagged with it.\n * it's not a tag blocker, it's there to make it visible, because often a version is set this way when not needed.\n */\n async addPinnedDependenciesIssues(components: Component[], issuesToIgnore: string[]) {\n if (issuesToIgnore.includes(IssuesClasses.PinnedDependencies.name)) return;\n components.forEach((component) => {\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const pinned = consumerComponent.getDependenciesWithVersionFromConfig((id) =>\n this.workspace.hasId(id, { ignoreVersion: true })\n );\n // the component can be reused from the cache, so remove an issue that was added when it had pinned dependencies\n if (pinned.length) component.state.issues.getOrCreate(IssuesClasses.PinnedDependencies).data = pinned;\n else component.state.issues.delete(IssuesClasses.PinnedDependencies);\n });\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 /**\n * Find circular dependencies in the workspace component graph.\n * Returns an array of cycles, where each cycle is an array of component-id strings\n * (with the first component repeated at the end to make the circular path visible).\n */\n async getCircularDependencies(includeDeps?: boolean): Promise<string[][]> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const graph = await this.graph.getGraphIds(undefined, { excludeOutdatedEdgesOfModified: true });\n const cycles = graph.findCycles(undefined, includeDeps);\n // append the first component to the end to make the circular visible in the output\n cycles.forEach((cycle) => cycle.push(cycle[0]));\n return cycles;\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 this.readVirtualStoreEntries(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 /**\n * The per-copy directory names of everything the last install materialized for this workspace.\n *\n * Normally these are the directories inside `node_modules/.pnpm`. With the global virtual store\n * enabled the copies live in the shared store instead - and that store holds every workspace's\n * packages, so it cannot be scanned for this workspace's ground truth. The current lockfile pnpm\n * writes into `node_modules/.pnpm` records exactly what was materialized here, and its dep paths\n * map one-to-one onto the directory names of the project-local layout.\n */\n private async readVirtualStoreEntries(virtualStoreDir: string): Promise<string[]> {\n // directories only: a stray file (or `lock.yaml` itself) is not a materialized copy, and\n // counting one would both garble the copy counts and suppress the lockfile fallback below\n const entries = (await fs.readdir(virtualStoreDir, { withFileTypes: true }))\n .filter((entry) => entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules')\n .map((entry) => entry.name);\n if (entries.length) return entries;\n const currentLockfilePath = path.join(virtualStoreDir, 'lock.yaml');\n if (!(await fs.pathExists(currentLockfilePath))) return entries;\n const lockfile = parseYaml(await fs.readFile(currentLockfilePath, 'utf8'));\n return Object.keys(lockfile?.packages ?? {}).map((depPath: string) => depPathToDirName(depPath));\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 this.readVirtualStoreEntries(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 IssuesAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver, devFiles, aspectLoader, scope, graph, loggerMain, issues]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n DevFilesMain,\n AspectLoaderMain,\n ScopeMain,\n GraphMain,\n LoggerMain,\n IssuesMain,\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 DependenciesCircularCmd(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 if (workspace) issues.registerAddComponentsIssues(depsMain.addPinnedDependenciesIssues.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.1221",
|
|
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.1221"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"archy": "1.0.0",
|
|
@@ -27,28 +27,19 @@
|
|
|
27
27
|
"detective-stylus": "1.0.0",
|
|
28
28
|
"module-definition": "3.3.1",
|
|
29
29
|
"node-source-walk": "4.2.0",
|
|
30
|
-
"@teambit/cli": "0.0.1412",
|
|
31
|
-
"@teambit/component-issues": "0.0.191",
|
|
32
30
|
"@teambit/legacy.constants": "0.0.49",
|
|
33
31
|
"@teambit/harmony": "0.4.12",
|
|
34
32
|
"@teambit/component-id": "1.2.5",
|
|
35
33
|
"@teambit/component-package-version": "0.0.466",
|
|
36
34
|
"@teambit/dependencies.pnpm.dep-path": "1.0.1",
|
|
37
35
|
"@teambit/harmony.modules.runtimes": "0.0.4",
|
|
38
|
-
"@teambit/legacy.consumer-component": "0.0.182",
|
|
39
36
|
"@teambit/logger": "0.0.1498",
|
|
40
37
|
"@teambit/bit-error": "0.0.404",
|
|
41
|
-
"@teambit/legacy.dependency-graph": "0.0.184",
|
|
42
|
-
"@teambit/component.sources": "0.0.233",
|
|
43
38
|
"@teambit/legacy.utils": "0.0.56",
|
|
44
39
|
"@teambit/toolbox.path.path": "0.0.26",
|
|
45
|
-
"@teambit/legacy.bit-map": "0.0.238",
|
|
46
|
-
"@teambit/legacy.consumer-config": "0.0.181",
|
|
47
|
-
"@teambit/legacy.consumer": "0.0.181",
|
|
48
40
|
"@teambit/component-version": "1.0.4",
|
|
49
41
|
"@teambit/legacy.logger": "0.0.67",
|
|
50
42
|
"@teambit/toolbox.fs.extension-getter": "0.0.22",
|
|
51
|
-
"@teambit/legacy.extension-data": "0.0.183",
|
|
52
43
|
"@teambit/toolbox.fs.last-modified": "0.0.24",
|
|
53
44
|
"@teambit/styling.deps-lookups.lookup-styling": "0.0.4",
|
|
54
45
|
"@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
|
|
@@ -59,12 +50,23 @@
|
|
|
59
50
|
"@teambit/styling.deps-detectors.detective-sass": "0.0.9",
|
|
60
51
|
"@teambit/styling.deps-detectors.detective-scss": "0.0.9",
|
|
61
52
|
"@teambit/typescript.deps-detectors.detective-typescript": "0.0.10",
|
|
62
|
-
"@teambit/
|
|
63
|
-
"@teambit/
|
|
64
|
-
"@teambit/
|
|
65
|
-
"@teambit/
|
|
66
|
-
"@teambit/
|
|
67
|
-
"@teambit/
|
|
53
|
+
"@teambit/cli": "0.0.1413",
|
|
54
|
+
"@teambit/component-issues": "0.0.192",
|
|
55
|
+
"@teambit/graph": "1.0.1221",
|
|
56
|
+
"@teambit/workspace": "1.0.1221",
|
|
57
|
+
"@teambit/aspect-loader": "1.0.1220",
|
|
58
|
+
"@teambit/component": "1.0.1220",
|
|
59
|
+
"@teambit/dependency-resolver": "1.0.1220",
|
|
60
|
+
"@teambit/dev-files": "1.0.1221",
|
|
61
|
+
"@teambit/issues": "1.0.1220",
|
|
62
|
+
"@teambit/legacy.consumer-component": "0.0.183",
|
|
63
|
+
"@teambit/scope": "1.0.1221",
|
|
64
|
+
"@teambit/legacy.dependency-graph": "0.0.185",
|
|
65
|
+
"@teambit/component.sources": "0.0.234",
|
|
66
|
+
"@teambit/legacy.bit-map": "0.0.239",
|
|
67
|
+
"@teambit/legacy.consumer-config": "0.0.182",
|
|
68
|
+
"@teambit/legacy.consumer": "0.0.182",
|
|
69
|
+
"@teambit/legacy.extension-data": "0.0.184"
|
|
68
70
|
},
|
|
69
71
|
"devDependencies": {
|
|
70
72
|
"@types/cli-table": "^0.3.0",
|
|
@@ -74,11 +76,11 @@
|
|
|
74
76
|
"rewire": "7.0.0",
|
|
75
77
|
"sinon": "17.0.1",
|
|
76
78
|
"@types/mocha": "9.1.0",
|
|
77
|
-
"@teambit/component.testing.mock-components": "0.0.457",
|
|
78
|
-
"@teambit/harmony.testing.load-aspect": "0.0.451",
|
|
79
|
-
"@teambit/workspace.testing.mock-workspace": "0.0.265",
|
|
80
79
|
"@teambit/defender.fs.global-bit-temp-dir": "0.0.1",
|
|
81
|
-
"@teambit/harmony.envs.core-aspect-env": "2.1.2"
|
|
80
|
+
"@teambit/harmony.envs.core-aspect-env": "2.1.2",
|
|
81
|
+
"@teambit/component.testing.mock-components": "0.0.458",
|
|
82
|
+
"@teambit/harmony.testing.load-aspect": "0.0.452",
|
|
83
|
+
"@teambit/workspace.testing.mock-workspace": "0.0.266"
|
|
82
84
|
},
|
|
83
85
|
"peerDependencies": {
|
|
84
86
|
"chai": "5.2.1"
|
|
File without changes
|