@teambit/dependencies 1.0.1277 → 1.0.1279

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.
@@ -36,7 +36,10 @@ async function resolvePeerVersion({
36
36
  const workspace: any = {
37
37
  getAutoDetectConfigMerge: () => undefined,
38
38
  getCurrentLaneObject: async () => undefined,
39
- consumer: { bitmapIdsFromCurrentLane: ComponentIdList.fromArray(inBitmap ? [linkId.changeVersion('2.0.5')] : []) },
39
+ consumer: {
40
+ bitmapIdsFromCurrentLane: ComponentIdList.fromArray(inBitmap ? [linkId.changeVersion('2.0.5')] : []),
41
+ bitMap: { getRemoved: () => new ComponentIdList() },
42
+ },
40
43
  };
41
44
  const depsResolver = {
42
45
  calcComponentRangePrefixByConsumerComponent: () => (workspacePolicy ? '^' : undefined),
@@ -86,3 +89,74 @@ describe('updateDependenciesVersions, a component peer with a range from a polic
86
89
  expect(await resolvePeerVersion({ range: '<2.0.0' })).to.equal('2.0.1');
87
90
  });
88
91
  });
92
+
93
+ const envId = ComponentID.fromString('my-scope/my-env');
94
+ const envPkg = '@my-scope/my-env';
95
+ const laneVersion = 'abc1234567890abcdef1234567890abcdef12345';
96
+
97
+ /**
98
+ * a component on a lane. its last snap depends on the env (as a dependency and as an extension) in the given version.
99
+ * when "removed", the env was deleted from the lane ("bit delete --lane"), so it's in .bitmap as removed.
100
+ * when "installed", the env is installed in version 2.0.7 (and the component config sets the env with this version).
101
+ */
102
+ async function resolveEnvVersion({
103
+ modelVersion,
104
+ removed,
105
+ installed,
106
+ }: {
107
+ modelVersion: string;
108
+ removed: boolean;
109
+ installed: boolean;
110
+ }) {
111
+ const installedId = installed ? envId.changeVersion('2.0.7') : envId;
112
+ const dependency = new Dependency(installedId, [], envPkg);
113
+ const extension: any = { extensionId: installedId };
114
+ const component: any = {
115
+ id: ComponentID.fromString('my-scope/card@0.0.1'),
116
+ dependencies: new Dependencies([dependency]),
117
+ devDependencies: new Dependencies(),
118
+ peerDependencies: new Dependencies(),
119
+ extensions: [extension],
120
+ overrides: { getComponentDependenciesWithVersion: () => ({}) },
121
+ componentFromModel: {
122
+ getAllDependenciesIds: () => ComponentIdList.fromArray([envId.changeVersion(modelVersion)]),
123
+ },
124
+ };
125
+ const workspace: any = {
126
+ getAutoDetectConfigMerge: () => undefined,
127
+ getCurrentLaneObject: async () => undefined,
128
+ consumer: {
129
+ bitmapIdsFromCurrentLane: new ComponentIdList(),
130
+ bitMap: { getRemoved: () => ComponentIdList.fromArray(removed ? [envId.changeVersion(laneVersion)] : []) },
131
+ },
132
+ };
133
+ const depsResolver = {
134
+ calcComponentRangePrefixByConsumerComponent: () => undefined,
135
+ getWorkspacePolicyManifest: () => ({ dependencies: {} }),
136
+ } as unknown as DependencyResolverMain;
137
+ const overridesDependencies: any = { envOwnPkgNames: new Set(), getDependenciesToAddManually: () => undefined };
138
+ await updateDependenciesVersions(depsResolver, workspace, component, overridesDependencies);
139
+ return {
140
+ dependencyVersion: component.dependencies.get()[0].id.version,
141
+ extensionVersion: extension.extensionId.version,
142
+ };
143
+ }
144
+
145
+ describe('updateDependenciesVersions, a dependency that was deleted from the workspace', () => {
146
+ it('should prefer the installed or configured version over the version of the last snap', async () => {
147
+ const result = await resolveEnvVersion({ modelVersion: laneVersion, removed: true, installed: true });
148
+ expect(result).to.deep.equal({ dependencyVersion: '2.0.7', extensionVersion: '2.0.7' });
149
+ });
150
+ it('should do the same when the deleted component was snapped again, so its version is different', async () => {
151
+ const result = await resolveEnvVersion({ modelVersion: '2.0.5', removed: true, installed: true });
152
+ expect(result).to.deep.equal({ dependencyVersion: '2.0.7', extensionVersion: '2.0.7' });
153
+ });
154
+ it('should fall back to the version of the last snap when there is no other version', async () => {
155
+ const result = await resolveEnvVersion({ modelVersion: laneVersion, removed: true, installed: false });
156
+ expect(result).to.deep.equal({ dependencyVersion: laneVersion, extensionVersion: laneVersion });
157
+ });
158
+ it('should keep the version of the last snap when the dependency was not deleted', async () => {
159
+ const result = await resolveEnvVersion({ modelVersion: '2.0.5', removed: false, installed: true });
160
+ expect(result).to.deep.equal({ dependencyVersion: '2.0.5', extensionVersion: '2.0.5' });
161
+ });
162
+ });
@@ -1,4 +1,5 @@
1
1
  import { ComponentID } from '@teambit/component-id';
2
+ import type { ComponentIdList } from '@teambit/component-id';
2
3
  import semver from 'semver';
3
4
  import { isSnap } from '@teambit/component-version';
4
5
  import type { Consumer } from '@teambit/legacy.consumer';
@@ -32,6 +33,8 @@ export async function updateDependenciesVersions(
32
33
  const supportComponentRange = componentRangePrefix && componentRangePrefix !== '-';
33
34
  const dependenciesWithVersionFromConfig: string[] = [];
34
35
  component.dependenciesWithVersionFromConfig = dependenciesWithVersionFromConfig;
36
+ // components deleted from the workspace (e.g. "bit delete"). calculated lazily, only when needed.
37
+ let removedIds: ComponentIdList | undefined;
35
38
  updateDependencies(component.dependencies, 'dependencies');
36
39
  updateDependencies(component.devDependencies, 'devDependencies');
37
40
  updateDependencies(component.peerDependencies, 'peerDependencies');
@@ -79,7 +82,12 @@ export async function updateDependenciesVersions(
79
82
  // If there is a version in the node_modules/package folder, but it's not in the ws policy,
80
83
  // prefer the version from the model over the version from the node_modules
81
84
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
82
- const getFromModel = () => getIdFromModelDeps(component.componentFromModel!, id);
85
+ const getFromModelAlways = () => getIdFromModelDeps(component.componentFromModel!, id);
86
+ // when the dependency was deleted from the workspace (e.g. "bit delete --lane"), the version of the last snap is
87
+ // probably not available anymore (e.g. a lane snap). prefer the installed or the configured version in this case.
88
+ const getFromModel = () => (isRemovedFromWorkspace(id) ? null : getFromModelAlways());
89
+ // still better than no version at all.
90
+ const getFromModelOfRemoved = () => (isRemovedFromWorkspace(id) ? getFromModelAlways() : null);
83
91
 
84
92
  const strategies = [
85
93
  getFromComponentConfig,
@@ -91,6 +99,7 @@ export async function updateDependenciesVersions(
91
99
  getFromDepPackageJsonDueToAutoDetectOverrides,
92
100
  getFromModel,
93
101
  getFromDepPackageJson,
102
+ getFromModelOfRemoved,
94
103
  ];
95
104
 
96
105
  for (const strategy of strategies) {
@@ -182,6 +191,11 @@ export async function updateDependenciesVersions(
182
191
  return dependency;
183
192
  }
184
193
 
194
+ function isRemovedFromWorkspace(componentId: ComponentID): boolean {
195
+ if (!removedIds) removedIds = consumer.bitMap.getRemoved();
196
+ return removedIds.hasWithoutVersion(componentId);
197
+ }
198
+
185
199
  function getIdFromBitMap(componentId: ComponentID): ComponentID | null | undefined {
186
200
  const existingIds = consumer.bitmapIdsFromCurrentLane.filterWithoutVersion(componentId);
187
201
  return existingIds.length === 1 ? existingIds[0] : undefined;
@@ -69,6 +69,8 @@ async function updateDependenciesVersions(depsResolver, workspace, component, ov
69
69
  const supportComponentRange = componentRangePrefix && componentRangePrefix !== '-';
70
70
  const dependenciesWithVersionFromConfig = [];
71
71
  component.dependenciesWithVersionFromConfig = dependenciesWithVersionFromConfig;
72
+ // components deleted from the workspace (e.g. "bit delete"). calculated lazily, only when needed.
73
+ let removedIds;
72
74
  updateDependencies(component.dependencies, 'dependencies');
73
75
  updateDependencies(component.devDependencies, 'devDependencies');
74
76
  updateDependencies(component.peerDependencies, 'peerDependencies');
@@ -112,8 +114,13 @@ async function updateDependenciesVersions(depsResolver, workspace, component, ov
112
114
  // If there is a version in the node_modules/package folder, but it's not in the ws policy,
113
115
  // prefer the version from the model over the version from the node_modules
114
116
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
115
- const getFromModel = () => getIdFromModelDeps(component.componentFromModel, id);
116
- const strategies = [getFromComponentConfig, getFromOverrides, getFromBitMap, getFromUpdateDependentsOnLane, getFromDepPackageJsonDueToWorkspacePolicy, getFromMergeConfig, getFromDepPackageJsonDueToAutoDetectOverrides, getFromModel, getFromDepPackageJson];
117
+ const getFromModelAlways = () => getIdFromModelDeps(component.componentFromModel, id);
118
+ // when the dependency was deleted from the workspace (e.g. "bit delete --lane"), the version of the last snap is
119
+ // probably not available anymore (e.g. a lane snap). prefer the installed or the configured version in this case.
120
+ const getFromModel = () => isRemovedFromWorkspace(id) ? null : getFromModelAlways();
121
+ // still better than no version at all.
122
+ const getFromModelOfRemoved = () => isRemovedFromWorkspace(id) ? getFromModelAlways() : null;
123
+ const strategies = [getFromComponentConfig, getFromOverrides, getFromBitMap, getFromUpdateDependentsOnLane, getFromDepPackageJsonDueToWorkspacePolicy, getFromMergeConfig, getFromDepPackageJsonDueToAutoDetectOverrides, getFromModel, getFromDepPackageJson, getFromModelOfRemoved];
117
124
  for (const strategy of strategies) {
118
125
  const strategyId = strategy();
119
126
  if (!strategyId) continue;
@@ -198,6 +205,10 @@ async function updateDependenciesVersions(depsResolver, workspace, component, ov
198
205
  if (!dependency) return null;
199
206
  return dependency;
200
207
  }
208
+ function isRemovedFromWorkspace(componentId) {
209
+ if (!removedIds) removedIds = consumer.bitMap.getRemoved();
210
+ return removedIds.hasWithoutVersion(componentId);
211
+ }
201
212
  function getIdFromBitMap(componentId) {
202
213
  const existingIds = consumer.bitmapIdsFromCurrentLane.filterWithoutVersion(componentId);
203
214
  return existingIds.length === 1 ? existingIds[0] : undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["_componentId","data","require","_semver","_interopRequireDefault","_componentVersion","_legacy","_lodash","_dependencyResolver","_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","resolved","recordedRange","versionRange","resolvedVersion","peerVersionInRange","push","toStringWithoutVersion","changeVersion","isSnap","isPlusVersion","getVersionInRangeIfOutOfIt","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 { isPlusVersion } 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, getVersionInRangeIfOutOfIt } 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 resolved = resolveVersion(id, depType, packageName);\n const { range, fromConfig } = resolved;\n // the range that is recorded below. a range of a strategy (e.g. the workspace policy) replaces the one of the policy\n const recordedRange = (supportComponentRange && range) || dependency.versionRange;\n const resolvedVersion = fromConfig\n ? resolved.version\n : peerVersionInRange(dependency, depType, resolved.version, recordedRange);\n if (!resolvedVersion) {\n return;\n }\n if (resolvedVersion !== resolved.version) {\n const debugDep = debugDependencies?.find((dep) => dep.id.isEqualWithoutVersion(id));\n if (debugDep) {\n debugDep.versionResolvedFrom = `${debugDep.versionResolvedFrom} (out of the range ${recordedRange})`;\n debugDep.version = resolvedVersion;\n }\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' && !isPlusVersion(dependency.versionRange)) {\n dependency.versionRange = undefined;\n }\n }\n /**\n * a policy (e.g. an env) sets the range of a component peer, and the package.json gets this range. the version found\n * (e.g. the one of the last snap, or the installed one) can be out of this range, e.g. after the env raised it. then,\n * take the version of the range, otherwise it's installed and recorded although the range doesn't allow it.\n * a component of the workspace keeps its version.\n */\n function peerVersionInRange(\n dependency: Dependency,\n depType: DepType,\n version?: string,\n range?: string\n ): string | undefined {\n if (depType !== 'peerDependencies' || !version || !range || getIdFromBitMap(dependency.id)) return version;\n return getVersionInRangeIfOutOfIt(version, range) || version;\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":";;;;;;AAAA,SAAAA,aAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,YAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,kBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,iBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAO,oBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,mBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,SAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,QAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAS,gBAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,eAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0F,SAAAG,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAInF,eAAeG,0BAA0BA,CAC9CC,YAAoC,EACpCC,SAAoB,EACpBC,SAAoB,EACpBC,qBAA4C,EAC5CC,mBAAyC,EACzCC,iBAA+C,EAC/CC,wBAAwB,GAAG,IAAI,EAC/B;EACA,MAAMC,QAAkB,GAAGN,SAAS,CAACM,QAAQ;EAC7C,MAAMC,qBAAqB,GAAGP,SAAS,CAACQ,wBAAwB,CAACP,SAAS,CAACQ,EAAE,CAAC,IAAI,CAAC,CAAC;EACpF,MAAMC,WAAW,GAAG,MAAMV,SAAS,CAACW,oBAAoB,CAAC,CAAC;EAC1D,MAAMC,oBAAoB,GAAGb,YAAY,CAACc,2CAA2C,CAACZ,SAAS,CAAC;EAChG,MAAMa,qBAAqB,GAAGF,oBAAoB,IAAIA,oBAAoB,KAAK,GAAG;EAClF,MAAMG,iCAA2C,GAAG,EAAE;EACtDd,SAAS,CAACc,iCAAiC,GAAGA,iCAAiC;EAC/EC,kBAAkB,CAACf,SAAS,CAACgB,YAAY,EAAE,cAAc,CAAC;EAC1DD,kBAAkB,CAACf,SAAS,CAACiB,eAAe,EAAE,iBAAiB,CAAC;EAChEF,kBAAkB,CAACf,SAAS,CAACkB,gBAAgB,EAAE,kBAAkB,CAAC;EAClE,IAAId,wBAAwB,EAAE;IAC5Be,gBAAgB,CAACnB,SAAS,CAACoB,UAAU,CAAC;EACxC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,SAASC,cAAcA,CACrBb,EAAe,EACfc,OAAgB,EAChBC,GAAY,EACgD;IAC5D,MAAMC,YAAY,GAAGC,eAAe,CAACjB,EAAE,CAAC;IACxC,MAAMkB,qBAAqB,GAAGC,wBAAwB,CAACnB,EAAE,CAAC;IAC1D,MAAMoB,sBAAsB,GAAGA,CAAA,KAAMF,qBAAqB;IAC1D,MAAMG,aAAa,GAAGA,CAAA,KAAML,YAAY,IAAI,IAAI;IAChD,MAAMM,6BAA6B,GAAGA,CAAA,KAAMC,+BAA+B,CAACvB,EAAE,CAAC;IAC/E;IACA,MAAMwB,gBAAgB,GAAGA,CAAA,KAAMC,oBAAoB,CAACzB,EAAE,EAAEc,OAAO,EAAEC,GAAG,CAAC;IACrE,MAAMW,QAAQ,GAAG/B,iBAAiB,EAAEgC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAAC5B,EAAE,CAAC6B,qBAAqB,CAAC7B,EAAE,CAAC,CAAC;IACnF;IACA,MAAM8B,qBAAqB,GAAGA,CAAA,KAAO9B,EAAE,CAAC+B,UAAU,CAAC,CAAC,GAAG/B,EAAE,GAAG,IAAK;IACjE;IACA;IACA,MAAMgC,yCAAyC,GAAGA,CAAA,KAAM;MACtD,IAAI,CAACjB,GAAG,IAAI,CAACf,EAAE,CAAC+B,UAAU,CAAC,CAAC,EAAE,OAAO,IAAI;MACzC,MAAME,UAAU,GAAGC,+BAA+B,CAACnB,GAAG,CAAC;MACvD,IAAI,CAACkB,UAAU,EAAE,OAAO,IAAI;MAC5B,OAAO;QACLE,MAAM,EAAEnC,EAAE;QACVoC,KAAK,EAAE/B,qBAAqB,IAAIgC,iBAAM,CAACC,UAAU,CAACL,UAAU,CAAC,GAAGA,UAAU,GAAGM;MAC/E,CAAC;IACH,CAAC;IACD;IACA;IACA;IACA,MAAMC,kBAAkB,GAAGA,CAAA,KAAOzB,GAAG,GAAG0B,sBAAsB,CAACzC,EAAE,EAAEe,GAAG,CAAC,GAAG,IAAK;IAC/E,MAAM2B,6CAA6C,GAAGA,CAAA,KAAO3B,GAAG,IAAI4B,0BAA0B,CAAC5B,GAAG,CAAC,GAAGf,EAAE,GAAG,IAAK;IAChH;IACA;IACA;IACA,MAAM4C,YAAY,GAAGA,CAAA,KAAMC,kBAAkB,CAACrD,SAAS,CAACsD,kBAAkB,EAAG9C,EAAE,CAAC;IAEhF,MAAM+C,UAAU,GAAG,CACjB3B,sBAAsB,EACtBI,gBAAgB,EAChBH,aAAa,EACbC,6BAA6B,EAC7BU,yCAAyC,EACzCQ,kBAAkB,EAClBE,6CAA6C,EAC7CE,YAAY,EACZd,qBAAqB,CACtB;IAED,KAAK,MAAMkB,QAAQ,IAAID,UAAU,EAAE;MACjC,MAAME,UAAU,GAAGD,QAAQ,CAAC,CAAC;MAC7B,IAAI,CAACC,UAAU,EAAE;MACjB,MAAMC,OAAO,GAAGD,UAAU,YAAYE,0BAAW,GAAGF,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACd,MAAM,EAAEe,OAAO;MACnG,IAAI,CAACA,OAAO,EAAE;MACdE,gBAAM,CAACC,KAAK,CAAC,4BAA4BH,OAAO,QAAQlD,EAAE,CAACsD,QAAQ,CAAC,CAAC,gBAAgBN,QAAQ,CAACO,IAAI,EAAE,CAAC;MACrG,IAAI7B,QAAQ,EAAE;QACZA,QAAQ,CAAC8B,mBAAmB,GAAGR,QAAQ,CAACO,IAAI,CAACE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACnE/B,QAAQ,CAACwB,OAAO,GAAGA,OAAO;MAC5B;MAEA,MAAMQ,UAAU,GAAGV,QAAQ,KAAK5B,sBAAsB,IAAI4B,QAAQ,KAAKxB,gBAAgB;MACvF,OAAO;QAAE0B,OAAO;QAAEd,KAAK,EAAEa,UAAU,YAAYE,0BAAW,GAAGZ,SAAS,GAAGU,UAAU,CAACb,KAAK;QAAEsB;MAAW,CAAC;IACzG;IACA,OAAO,CAAC,CAAC;EACX;EAEA,SAASC,gBAAgBA,CAACC,UAAsB,EAAE9C,OAAgB,EAAE;IAClE,MAAM;MAAEd,EAAE;MAAE6D;IAAY,CAAC,GAAGD,UAAU;IACtC,MAAME,QAAQ,GAAGjD,cAAc,CAACb,EAAE,EAAEc,OAAO,EAAE+C,WAAW,CAAC;IACzD,MAAM;MAAEzB,KAAK;MAAEsB;IAAW,CAAC,GAAGI,QAAQ;IACtC;IACA,MAAMC,aAAa,GAAI1D,qBAAqB,IAAI+B,KAAK,IAAKwB,UAAU,CAACI,YAAY;IACjF,MAAMC,eAAe,GAAGP,UAAU,GAC9BI,QAAQ,CAACZ,OAAO,GAChBgB,kBAAkB,CAACN,UAAU,EAAE9C,OAAO,EAAEgD,QAAQ,CAACZ,OAAO,EAAEa,aAAa,CAAC;IAC5E,IAAI,CAACE,eAAe,EAAE;MACpB;IACF;IACA,IAAIA,eAAe,KAAKH,QAAQ,CAACZ,OAAO,EAAE;MACxC,MAAMxB,QAAQ,GAAG/B,iBAAiB,EAAEgC,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAAC5B,EAAE,CAAC6B,qBAAqB,CAAC7B,EAAE,CAAC,CAAC;MACnF,IAAI0B,QAAQ,EAAE;QACZA,QAAQ,CAAC8B,mBAAmB,GAAG,GAAG9B,QAAQ,CAAC8B,mBAAmB,sBAAsBO,aAAa,GAAG;QACpGrC,QAAQ,CAACwB,OAAO,GAAGe,eAAe;MACpC;IACF;IACA,IAAIP,UAAU,EAAEpD,iCAAiC,CAAC6D,IAAI,CAACnE,EAAE,CAACoE,sBAAsB,CAAC,CAAC,CAAC;IACnFR,UAAU,CAAC5D,EAAE,GAAG4D,UAAU,CAAC5D,EAAE,CAACqE,aAAa,CAACJ,eAAe,CAAC;IAC5D,IAAI5D,qBAAqB,EAAE;MACzB,IAAI+B,KAAK,EAAEwB,UAAU,CAACI,YAAY,GAAG5B,KAAK,CAAC,KACtC,IACH6B,eAAe,KAAK,QAAQ,KAC3B9D,oBAAoB,KAAK,GAAG,IAAIA,oBAAoB,KAAK,GAAG,CAAC,IAC9D,CAAC,IAAAmE,0BAAM,EAACL,eAAe,CAAC,EACxB;QACAL,UAAU,CAACI,YAAY,GAAG,GAAG7D,oBAAoB,GAAG8D,eAAe,EAAE;MACvE;IACF,CAAC,MAAM,IAAIL,UAAU,CAACI,YAAY,IAAIlD,OAAO,KAAK,kBAAkB,IAAI,CAAC,IAAAyD,mCAAa,EAACX,UAAU,CAACI,YAAY,CAAC,EAAE;MAC/GJ,UAAU,CAACI,YAAY,GAAGzB,SAAS;IACrC;EACF;EACA;AACF;AACA;AACA;AACA;AACA;EACE,SAAS2B,kBAAkBA,CACzBN,UAAsB,EACtB9C,OAAgB,EAChBoC,OAAgB,EAChBd,KAAc,EACM;IACpB,IAAItB,OAAO,KAAK,kBAAkB,IAAI,CAACoC,OAAO,IAAI,CAACd,KAAK,IAAInB,eAAe,CAAC2C,UAAU,CAAC5D,EAAE,CAAC,EAAE,OAAOkD,OAAO;IAC1G,OAAO,IAAAsB,4CAA0B,EAACtB,OAAO,EAAEd,KAAK,CAAC,IAAIc,OAAO;EAC9D;EACA,SAAS3C,kBAAkBA,CAACC,YAA0B,EAAEM,OAAgB,EAAE;IACxEN,YAAY,CAACiE,GAAG,CAAC,CAAC,CAACC,OAAO,CAAE9C,GAAG,IAAK+B,gBAAgB,CAAC/B,GAAG,EAAEd,OAAO,CAAC,CAAC;EACrE;EAEA,SAAS6D,eAAeA,CAACC,SAA6B,EAAE;IACtD,IAAIA,SAAS,CAACC,WAAW,EAAE;MACzB,MAAM;QAAE3B,OAAO,EAAEe;MAAgB,CAAC,GAAGpD,cAAc,CAAC+D,SAAS,CAACC,WAAW,EAAE,iBAAiB,CAAC;MAC7F,IAAIZ,eAAe,EAAE;QACnBW,SAAS,CAACC,WAAW,GAAGD,SAAS,CAACC,WAAW,CAACR,aAAa,CAACJ,eAAe,CAAC;MAC9E;IACF;EACF;EACA,SAAStD,gBAAgBA,CAACC,UAA6B,EAAE;IACvDA,UAAU,CAAC8D,OAAO,CAACC,eAAe,CAAC;EACrC;EAEA,SAAS9B,kBAAkBA,CAACC,kBAA6B,EAAEgC,WAAwB,EAAsB;IACvG,IAAI,CAAChC,kBAAkB,EAAE,OAAO,IAAI;IACpC,MAAMc,UAAU,GAAGd,kBAAkB,CAACiC,qBAAqB,CAAC,CAAC,CAACC,oBAAoB,CAACF,WAAW,CAAC;IAC/F,IAAI,CAAClB,UAAU,EAAE,OAAO,IAAI;IAC5B,OAAOA,UAAU;EACnB;EAEA,SAAS3C,eAAeA,CAAC6D,WAAwB,EAAkC;IACjF,MAAMG,WAAW,GAAGpF,QAAQ,CAACqF,wBAAwB,CAACC,oBAAoB,CAACL,WAAW,CAAC;IACvF,OAAOG,WAAW,CAACG,MAAM,KAAK,CAAC,GAAGH,WAAW,CAAC,CAAC,CAAC,GAAG1C,SAAS;EAC9D;EAEA,SAAShB,+BAA+BA,CAACvB,EAAe,EAAE;IACxD,MAAMqF,gBAAgB,GAAGpF,WAAW,EAAEoF,gBAAgB;IACtD,IAAI,CAACA,gBAAgB,EAAE,OAAO9C,SAAS;IACvC,OAAO8C,gBAAgB,CAAC1D,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,qBAAqB,CAAC7B,EAAE,CAAC,CAAC;EACtE;EAEA,SAASmB,wBAAwBA,CAAC2D,WAAwB,EAA2B;IACnF,MAAMtE,YAAY,GAAGhB,SAAS,CAAC8F,SAAS,CAACC,mCAAmC,CAAC,CAAC;IAC9E,IAAI,IAAAC,iBAAO,EAAChF,YAAY,CAAC,EAAE,OAAO+B,SAAS;IAC3C,MAAMqB,UAAU,GAAG6B,MAAM,CAACC,IAAI,CAAClF,YAAY,CAAC,CAACmB,IAAI,CAAEgE,KAAK,IAAKb,WAAW,CAACV,sBAAsB,CAAC,CAAC,KAAKuB,KAAK,CAAC;IAC5G,IAAI,CAAC/B,UAAU,EAAE,OAAOrB,SAAS;IACjC,OAAOuC,WAAW,CAACT,aAAa,CAAC7D,YAAY,CAACoD,UAAU,CAAC,CAAC;EAC5D;;EAEA;AACF;AACA;EACE,SAASnC,oBAAoBA,CAC3BzB,EAAe,EACfc,OAAgB,EAChB8E,OAAgB,EACsC;IACtD,IAAI,CAACA,OAAO,EAAE,OAAOrD,SAAS;IAC9B;IACA;IACA;IACA;IACA,IAAI9C,qBAAqB,CAACoG,cAAc,CAACC,GAAG,CAACF,OAAO,CAAC,IAAI3E,eAAe,CAACjB,EAAE,CAAC,EAAE,OAAOuC,SAAS;IAC9F,MAAM/B,YAAY,GAAGf,qBAAqB,CAACsG,4BAA4B,CAAC,CAAC;IACzE,MAAMC,KAAK,GAAGxF,YAAY,GAAGM,OAAO,CAAC,GAAG8E,OAAO,CAAC;IAChD,IAAI,CAACI,KAAK,EAAE,OAAOzD,SAAS;IAC5B,MAAM;MAAEW,OAAO,EAAE+C,YAAY;MAAE7D;IAAM,CAAC,GAAG,IAAA8D,0CAAwB,EAACF,KAAK,CAAC;IACxE,MAAM7D,MAAM,GAAG8D,YAAY,GAAGjG,EAAE,CAACqE,aAAa,CAAC4B,YAAY,CAAC,GAAG1D,SAAS;IACxE,OAAO;MAAEJ,MAAM;MAAEC;IAAM,CAAC;EAC1B;EAEA,SAASO,0BAA0BA,CAACiD,OAAe,EAAW;IAC5D,OAAOO,8BAAmB,CAACC,IAAI,CAC5BC,QAAQ,IAAK3G,mBAAmB,GAAG2G,QAAQ,CAAC,IAAI3G,mBAAmB,CAAC2G,QAAQ,CAAC,CAACT,OAAO,CACxF,CAAC;EACH;EAEA,SAAS1D,+BAA+BA,CAAC0D,OAAe,EAAsB;IAC5E,OAAOtG,YAAY,CAACgH,0BAA0B,CAAC,CAAC,CAAC9F,YAAY,GAAGoF,OAAO,CAAC;EAC1E;EAEA,SAASnD,sBAAsBA,CAACzC,EAAe,EAAE4F,OAAe,EAA2B;IACzF,IAAIW,YAAuC;IAC3CJ,8BAAmB,CAACzB,OAAO,CAAE8B,KAAK,IAAK;MACrC,IAAI1G,qBAAqB,CAAC0G,KAAK,CAAC,GAAGZ,OAAO,CAAC,EAAE;QAC3CW,YAAY,GAAGzG,qBAAqB,CAAC0G,KAAK,CAAC,GAAGZ,OAAO,CAAC;MACxD;IACF,CAAC,CAAC;IACF,MAAMa,iBAAiB,GAAGF,YAAY,GAAG,IAAAL,0CAAwB,EAACK,YAAY,CAAC,GAAGhE,SAAS;IAC3F,OAAOkE,iBAAiB,EAAEvD,OAAO,GAAGlD,EAAE,CAACqE,aAAa,CAACoC,iBAAiB,CAACvD,OAAO,CAAC,GAAGX,SAAS;EAC7F;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_componentId","data","require","_semver","_interopRequireDefault","_componentVersion","_legacy","_lodash","_dependencyResolver","_legacy2","_autoDetectDeps","e","__esModule","default","updateDependenciesVersions","depsResolver","workspace","component","overridesDependencies","autoDetectOverrides","debugDependencies","updateExtensionsVersions","consumer","autoDetectConfigMerge","getAutoDetectConfigMerge","id","currentLane","getCurrentLaneObject","componentRangePrefix","calcComponentRangePrefixByConsumerComponent","supportComponentRange","dependenciesWithVersionFromConfig","removedIds","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","getFromModelAlways","getIdFromModelDeps","componentFromModel","getFromModel","isRemovedFromWorkspace","getFromModelOfRemoved","strategies","strategy","strategyId","version","ComponentID","logger","trace","toString","name","versionResolvedFrom","replace","fromConfig","updateDependency","dependency","packageName","resolved","recordedRange","versionRange","resolvedVersion","peerVersionInRange","push","toStringWithoutVersion","changeVersion","isSnap","isPlusVersion","getVersionInRangeIfOutOfIt","get","forEach","updateExtension","extension","extensionId","componentId","getAllDependenciesIds","searchWithoutVersion","bitMap","getRemoved","hasWithoutVersion","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 type { ComponentIdList } 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 { isPlusVersion } 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, getVersionInRangeIfOutOfIt } 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 // components deleted from the workspace (e.g. \"bit delete\"). calculated lazily, only when needed.\n let removedIds: ComponentIdList | undefined;\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 getFromModelAlways = () => getIdFromModelDeps(component.componentFromModel!, id);\n // when the dependency was deleted from the workspace (e.g. \"bit delete --lane\"), the version of the last snap is\n // probably not available anymore (e.g. a lane snap). prefer the installed or the configured version in this case.\n const getFromModel = () => (isRemovedFromWorkspace(id) ? null : getFromModelAlways());\n // still better than no version at all.\n const getFromModelOfRemoved = () => (isRemovedFromWorkspace(id) ? getFromModelAlways() : null);\n\n const strategies = [\n getFromComponentConfig,\n getFromOverrides,\n getFromBitMap,\n getFromUpdateDependentsOnLane,\n getFromDepPackageJsonDueToWorkspacePolicy,\n getFromMergeConfig,\n getFromDepPackageJsonDueToAutoDetectOverrides,\n getFromModel,\n getFromDepPackageJson,\n getFromModelOfRemoved,\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 resolved = resolveVersion(id, depType, packageName);\n const { range, fromConfig } = resolved;\n // the range that is recorded below. a range of a strategy (e.g. the workspace policy) replaces the one of the policy\n const recordedRange = (supportComponentRange && range) || dependency.versionRange;\n const resolvedVersion = fromConfig\n ? resolved.version\n : peerVersionInRange(dependency, depType, resolved.version, recordedRange);\n if (!resolvedVersion) {\n return;\n }\n if (resolvedVersion !== resolved.version) {\n const debugDep = debugDependencies?.find((dep) => dep.id.isEqualWithoutVersion(id));\n if (debugDep) {\n debugDep.versionResolvedFrom = `${debugDep.versionResolvedFrom} (out of the range ${recordedRange})`;\n debugDep.version = resolvedVersion;\n }\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' && !isPlusVersion(dependency.versionRange)) {\n dependency.versionRange = undefined;\n }\n }\n /**\n * a policy (e.g. an env) sets the range of a component peer, and the package.json gets this range. the version found\n * (e.g. the one of the last snap, or the installed one) can be out of this range, e.g. after the env raised it. then,\n * take the version of the range, otherwise it's installed and recorded although the range doesn't allow it.\n * a component of the workspace keeps its version.\n */\n function peerVersionInRange(\n dependency: Dependency,\n depType: DepType,\n version?: string,\n range?: string\n ): string | undefined {\n if (depType !== 'peerDependencies' || !version || !range || getIdFromBitMap(dependency.id)) return version;\n return getVersionInRangeIfOutOfIt(version, range) || version;\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 isRemovedFromWorkspace(componentId: ComponentID): boolean {\n if (!removedIds) removedIds = consumer.bitMap.getRemoved();\n return removedIds.hasWithoutVersion(componentId);\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":[]}
@@ -59,7 +59,10 @@ async function resolvePeerVersion({
59
59
  getAutoDetectConfigMerge: () => undefined,
60
60
  getCurrentLaneObject: async () => undefined,
61
61
  consumer: {
62
- bitmapIdsFromCurrentLane: _componentId().ComponentIdList.fromArray(inBitmap ? [linkId.changeVersion('2.0.5')] : [])
62
+ bitmapIdsFromCurrentLane: _componentId().ComponentIdList.fromArray(inBitmap ? [linkId.changeVersion('2.0.5')] : []),
63
+ bitMap: {
64
+ getRemoved: () => new (_componentId().ComponentIdList)()
65
+ }
63
66
  }
64
67
  };
65
68
  const depsResolver = {
@@ -129,5 +132,109 @@ describe('updateDependenciesVersions, a component peer with a range from a polic
129
132
  })).to.equal('2.0.1');
130
133
  });
131
134
  });
135
+ const envId = _componentId().ComponentID.fromString('my-scope/my-env');
136
+ const envPkg = '@my-scope/my-env';
137
+ const laneVersion = 'abc1234567890abcdef1234567890abcdef12345';
138
+
139
+ /**
140
+ * a component on a lane. its last snap depends on the env (as a dependency and as an extension) in the given version.
141
+ * when "removed", the env was deleted from the lane ("bit delete --lane"), so it's in .bitmap as removed.
142
+ * when "installed", the env is installed in version 2.0.7 (and the component config sets the env with this version).
143
+ */
144
+ async function resolveEnvVersion({
145
+ modelVersion,
146
+ removed,
147
+ installed
148
+ }) {
149
+ const installedId = installed ? envId.changeVersion('2.0.7') : envId;
150
+ const dependency = new (_legacy().Dependency)(installedId, [], envPkg);
151
+ const extension = {
152
+ extensionId: installedId
153
+ };
154
+ const component = {
155
+ id: _componentId().ComponentID.fromString('my-scope/card@0.0.1'),
156
+ dependencies: new (_legacy().Dependencies)([dependency]),
157
+ devDependencies: new (_legacy().Dependencies)(),
158
+ peerDependencies: new (_legacy().Dependencies)(),
159
+ extensions: [extension],
160
+ overrides: {
161
+ getComponentDependenciesWithVersion: () => ({})
162
+ },
163
+ componentFromModel: {
164
+ getAllDependenciesIds: () => _componentId().ComponentIdList.fromArray([envId.changeVersion(modelVersion)])
165
+ }
166
+ };
167
+ const workspace = {
168
+ getAutoDetectConfigMerge: () => undefined,
169
+ getCurrentLaneObject: async () => undefined,
170
+ consumer: {
171
+ bitmapIdsFromCurrentLane: new (_componentId().ComponentIdList)(),
172
+ bitMap: {
173
+ getRemoved: () => _componentId().ComponentIdList.fromArray(removed ? [envId.changeVersion(laneVersion)] : [])
174
+ }
175
+ }
176
+ };
177
+ const depsResolver = {
178
+ calcComponentRangePrefixByConsumerComponent: () => undefined,
179
+ getWorkspacePolicyManifest: () => ({
180
+ dependencies: {}
181
+ })
182
+ };
183
+ const overridesDependencies = {
184
+ envOwnPkgNames: new Set(),
185
+ getDependenciesToAddManually: () => undefined
186
+ };
187
+ await (0, _dependenciesVersionsResolver().updateDependenciesVersions)(depsResolver, workspace, component, overridesDependencies);
188
+ return {
189
+ dependencyVersion: component.dependencies.get()[0].id.version,
190
+ extensionVersion: extension.extensionId.version
191
+ };
192
+ }
193
+ describe('updateDependenciesVersions, a dependency that was deleted from the workspace', () => {
194
+ it('should prefer the installed or configured version over the version of the last snap', async () => {
195
+ const result = await resolveEnvVersion({
196
+ modelVersion: laneVersion,
197
+ removed: true,
198
+ installed: true
199
+ });
200
+ (0, _chai().expect)(result).to.deep.equal({
201
+ dependencyVersion: '2.0.7',
202
+ extensionVersion: '2.0.7'
203
+ });
204
+ });
205
+ it('should do the same when the deleted component was snapped again, so its version is different', async () => {
206
+ const result = await resolveEnvVersion({
207
+ modelVersion: '2.0.5',
208
+ removed: true,
209
+ installed: true
210
+ });
211
+ (0, _chai().expect)(result).to.deep.equal({
212
+ dependencyVersion: '2.0.7',
213
+ extensionVersion: '2.0.7'
214
+ });
215
+ });
216
+ it('should fall back to the version of the last snap when there is no other version', async () => {
217
+ const result = await resolveEnvVersion({
218
+ modelVersion: laneVersion,
219
+ removed: true,
220
+ installed: false
221
+ });
222
+ (0, _chai().expect)(result).to.deep.equal({
223
+ dependencyVersion: laneVersion,
224
+ extensionVersion: laneVersion
225
+ });
226
+ });
227
+ it('should keep the version of the last snap when the dependency was not deleted', async () => {
228
+ const result = await resolveEnvVersion({
229
+ modelVersion: '2.0.5',
230
+ removed: false,
231
+ installed: true
232
+ });
233
+ (0, _chai().expect)(result).to.deep.equal({
234
+ dependencyVersion: '2.0.5',
235
+ extensionVersion: '2.0.5'
236
+ });
237
+ });
238
+ });
132
239
 
133
240
  //# sourceMappingURL=dependencies-versions-resolver.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_chai","data","require","_componentId","_legacy","_dependenciesVersionsResolver","linkPkg","linkId","ComponentID","fromString","resolvePeerVersion","range","inBitmap","forced","workspacePolicy","debugDependencies","peer","Dependency","changeVersion","component","id","dependencies","Dependencies","devDependencies","peerDependencies","overrides","getComponentDependenciesWithVersion","componentFromModel","getAllDependenciesIds","ComponentIdList","fromArray","workspace","getAutoDetectConfigMerge","undefined","getCurrentLaneObject","consumer","bitmapIdsFromCurrentLane","depsResolver","calcComponentRangePrefixByConsumerComponent","getWorkspacePolicyManifest","overridesDependencies","envOwnPkgNames","Set","getDependenciesToAddManually","updateDependenciesVersions","get","version","describe","it","expect","to","equal","include","versionResolvedFrom"],"sources":["dependencies-versions-resolver.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { Dependencies, Dependency } from '@teambit/legacy.consumer-component';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { updateDependenciesVersions } from './dependencies-versions-resolver';\n\nconst linkPkg = '@my-scope/navigation.link';\nconst linkId = ComponentID.fromString('my-scope/navigation/link');\n\n/**\n * a component with a component peer that its env sets with a range (the range is set before, by ApplyOverrides).\n * the last snap of the component has the peer in version 2.0.1.\n */\nasync function resolvePeerVersion({\n range,\n inBitmap = false,\n forced,\n workspacePolicy,\n debugDependencies,\n}: {\n range: string;\n inBitmap?: boolean;\n forced?: string;\n workspacePolicy?: string;\n debugDependencies?: any[];\n}): Promise<string | undefined> {\n const peer = new Dependency(linkId.changeVersion('2.0.1'), [], linkPkg, range);\n const component: any = {\n id: ComponentID.fromString('my-scope/card@0.0.1'),\n dependencies: new Dependencies(),\n devDependencies: new Dependencies(),\n peerDependencies: new Dependencies([peer]),\n overrides: { getComponentDependenciesWithVersion: () => ({}) },\n componentFromModel: { getAllDependenciesIds: () => ComponentIdList.fromArray([linkId.changeVersion('2.0.1')]) },\n };\n const workspace: any = {\n getAutoDetectConfigMerge: () => undefined,\n getCurrentLaneObject: async () => undefined,\n consumer: { bitmapIdsFromCurrentLane: ComponentIdList.fromArray(inBitmap ? [linkId.changeVersion('2.0.5')] : []) },\n };\n const depsResolver = {\n calcComponentRangePrefixByConsumerComponent: () => (workspacePolicy ? '^' : undefined),\n getWorkspacePolicyManifest: () => ({ dependencies: workspacePolicy ? { [linkPkg]: workspacePolicy } : {} }),\n } as unknown as DependencyResolverMain;\n const overridesDependencies: any = {\n envOwnPkgNames: new Set(),\n getDependenciesToAddManually: () => (forced ? { peerDependencies: { [linkPkg]: forced } } : undefined),\n };\n await updateDependenciesVersions(\n depsResolver,\n workspace,\n component,\n overridesDependencies,\n undefined,\n debugDependencies,\n false\n );\n return component.peerDependencies.get()[0].id.version;\n}\n\ndescribe('updateDependenciesVersions, a component peer with a range from a policy', () => {\n it('should take the version of the range when the version found is out of the range', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.3' })).to.equal('2.0.3');\n });\n it('should show the version of the range in the dependencies debug', async () => {\n const debugDependencies = [{ id: linkId.changeVersion('2.0.1') }];\n await resolvePeerVersion({ range: '^2.0.3', debugDependencies });\n expect(debugDependencies[0]).to.include({\n version: '2.0.3',\n versionResolvedFrom: 'Model (out of the range ^2.0.3)',\n });\n });\n it('should keep the version found when it is in the range', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.0' })).to.equal('2.0.1');\n });\n it('should keep the version of a workspace component', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.3', inBitmap: true })).to.equal('2.0.5');\n });\n it('should keep a forced version', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.3', forced: '2.0.2' })).to.equal('2.0.2');\n });\n it('should check the version against the range of the workspace policy when it replaces the range', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.3', workspacePolicy: '^2.0.0' })).to.equal('2.0.1');\n });\n it('should keep the version found when the range has no version in it', async () => {\n expect(await resolvePeerVersion({ range: '<2.0.0' })).to.equal('2.0.1');\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chai","data","require","_componentId","_legacy","_dependenciesVersionsResolver","linkPkg","linkId","ComponentID","fromString","resolvePeerVersion","range","inBitmap","forced","workspacePolicy","debugDependencies","peer","Dependency","changeVersion","component","id","dependencies","Dependencies","devDependencies","peerDependencies","overrides","getComponentDependenciesWithVersion","componentFromModel","getAllDependenciesIds","ComponentIdList","fromArray","workspace","getAutoDetectConfigMerge","undefined","getCurrentLaneObject","consumer","bitmapIdsFromCurrentLane","bitMap","getRemoved","depsResolver","calcComponentRangePrefixByConsumerComponent","getWorkspacePolicyManifest","overridesDependencies","envOwnPkgNames","Set","getDependenciesToAddManually","updateDependenciesVersions","get","version","describe","it","expect","to","equal","include","versionResolvedFrom","envId","envPkg","laneVersion","resolveEnvVersion","modelVersion","removed","installed","installedId","dependency","extension","extensionId","extensions","dependencyVersion","extensionVersion","result","deep"],"sources":["dependencies-versions-resolver.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { Dependencies, Dependency } from '@teambit/legacy.consumer-component';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { updateDependenciesVersions } from './dependencies-versions-resolver';\n\nconst linkPkg = '@my-scope/navigation.link';\nconst linkId = ComponentID.fromString('my-scope/navigation/link');\n\n/**\n * a component with a component peer that its env sets with a range (the range is set before, by ApplyOverrides).\n * the last snap of the component has the peer in version 2.0.1.\n */\nasync function resolvePeerVersion({\n range,\n inBitmap = false,\n forced,\n workspacePolicy,\n debugDependencies,\n}: {\n range: string;\n inBitmap?: boolean;\n forced?: string;\n workspacePolicy?: string;\n debugDependencies?: any[];\n}): Promise<string | undefined> {\n const peer = new Dependency(linkId.changeVersion('2.0.1'), [], linkPkg, range);\n const component: any = {\n id: ComponentID.fromString('my-scope/card@0.0.1'),\n dependencies: new Dependencies(),\n devDependencies: new Dependencies(),\n peerDependencies: new Dependencies([peer]),\n overrides: { getComponentDependenciesWithVersion: () => ({}) },\n componentFromModel: { getAllDependenciesIds: () => ComponentIdList.fromArray([linkId.changeVersion('2.0.1')]) },\n };\n const workspace: any = {\n getAutoDetectConfigMerge: () => undefined,\n getCurrentLaneObject: async () => undefined,\n consumer: {\n bitmapIdsFromCurrentLane: ComponentIdList.fromArray(inBitmap ? [linkId.changeVersion('2.0.5')] : []),\n bitMap: { getRemoved: () => new ComponentIdList() },\n },\n };\n const depsResolver = {\n calcComponentRangePrefixByConsumerComponent: () => (workspacePolicy ? '^' : undefined),\n getWorkspacePolicyManifest: () => ({ dependencies: workspacePolicy ? { [linkPkg]: workspacePolicy } : {} }),\n } as unknown as DependencyResolverMain;\n const overridesDependencies: any = {\n envOwnPkgNames: new Set(),\n getDependenciesToAddManually: () => (forced ? { peerDependencies: { [linkPkg]: forced } } : undefined),\n };\n await updateDependenciesVersions(\n depsResolver,\n workspace,\n component,\n overridesDependencies,\n undefined,\n debugDependencies,\n false\n );\n return component.peerDependencies.get()[0].id.version;\n}\n\ndescribe('updateDependenciesVersions, a component peer with a range from a policy', () => {\n it('should take the version of the range when the version found is out of the range', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.3' })).to.equal('2.0.3');\n });\n it('should show the version of the range in the dependencies debug', async () => {\n const debugDependencies = [{ id: linkId.changeVersion('2.0.1') }];\n await resolvePeerVersion({ range: '^2.0.3', debugDependencies });\n expect(debugDependencies[0]).to.include({\n version: '2.0.3',\n versionResolvedFrom: 'Model (out of the range ^2.0.3)',\n });\n });\n it('should keep the version found when it is in the range', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.0' })).to.equal('2.0.1');\n });\n it('should keep the version of a workspace component', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.3', inBitmap: true })).to.equal('2.0.5');\n });\n it('should keep a forced version', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.3', forced: '2.0.2' })).to.equal('2.0.2');\n });\n it('should check the version against the range of the workspace policy when it replaces the range', async () => {\n expect(await resolvePeerVersion({ range: '^2.0.3', workspacePolicy: '^2.0.0' })).to.equal('2.0.1');\n });\n it('should keep the version found when the range has no version in it', async () => {\n expect(await resolvePeerVersion({ range: '<2.0.0' })).to.equal('2.0.1');\n });\n});\n\nconst envId = ComponentID.fromString('my-scope/my-env');\nconst envPkg = '@my-scope/my-env';\nconst laneVersion = 'abc1234567890abcdef1234567890abcdef12345';\n\n/**\n * a component on a lane. its last snap depends on the env (as a dependency and as an extension) in the given version.\n * when \"removed\", the env was deleted from the lane (\"bit delete --lane\"), so it's in .bitmap as removed.\n * when \"installed\", the env is installed in version 2.0.7 (and the component config sets the env with this version).\n */\nasync function resolveEnvVersion({\n modelVersion,\n removed,\n installed,\n}: {\n modelVersion: string;\n removed: boolean;\n installed: boolean;\n}) {\n const installedId = installed ? envId.changeVersion('2.0.7') : envId;\n const dependency = new Dependency(installedId, [], envPkg);\n const extension: any = { extensionId: installedId };\n const component: any = {\n id: ComponentID.fromString('my-scope/card@0.0.1'),\n dependencies: new Dependencies([dependency]),\n devDependencies: new Dependencies(),\n peerDependencies: new Dependencies(),\n extensions: [extension],\n overrides: { getComponentDependenciesWithVersion: () => ({}) },\n componentFromModel: {\n getAllDependenciesIds: () => ComponentIdList.fromArray([envId.changeVersion(modelVersion)]),\n },\n };\n const workspace: any = {\n getAutoDetectConfigMerge: () => undefined,\n getCurrentLaneObject: async () => undefined,\n consumer: {\n bitmapIdsFromCurrentLane: new ComponentIdList(),\n bitMap: { getRemoved: () => ComponentIdList.fromArray(removed ? [envId.changeVersion(laneVersion)] : []) },\n },\n };\n const depsResolver = {\n calcComponentRangePrefixByConsumerComponent: () => undefined,\n getWorkspacePolicyManifest: () => ({ dependencies: {} }),\n } as unknown as DependencyResolverMain;\n const overridesDependencies: any = { envOwnPkgNames: new Set(), getDependenciesToAddManually: () => undefined };\n await updateDependenciesVersions(depsResolver, workspace, component, overridesDependencies);\n return {\n dependencyVersion: component.dependencies.get()[0].id.version,\n extensionVersion: extension.extensionId.version,\n };\n}\n\ndescribe('updateDependenciesVersions, a dependency that was deleted from the workspace', () => {\n it('should prefer the installed or configured version over the version of the last snap', async () => {\n const result = await resolveEnvVersion({ modelVersion: laneVersion, removed: true, installed: true });\n expect(result).to.deep.equal({ dependencyVersion: '2.0.7', extensionVersion: '2.0.7' });\n });\n it('should do the same when the deleted component was snapped again, so its version is different', async () => {\n const result = await resolveEnvVersion({ modelVersion: '2.0.5', removed: true, installed: true });\n expect(result).to.deep.equal({ dependencyVersion: '2.0.7', extensionVersion: '2.0.7' });\n });\n it('should fall back to the version of the last snap when there is no other version', async () => {\n const result = await resolveEnvVersion({ modelVersion: laneVersion, removed: true, installed: false });\n expect(result).to.deep.equal({ dependencyVersion: laneVersion, extensionVersion: laneVersion });\n });\n it('should keep the version of the last snap when the dependency was not deleted', async () => {\n const result = await resolveEnvVersion({ modelVersion: '2.0.5', removed: false, installed: true });\n expect(result).to.deep.equal({ dependencyVersion: '2.0.5', extensionVersion: '2.0.5' });\n });\n});\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,26 +1,24 @@
1
1
  {
2
2
  "name": "@teambit/dependencies",
3
- "version": "1.0.1277",
3
+ "version": "1.0.1279",
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.1277"
9
+ "version": "1.0.1279"
10
10
  },
11
11
  "dependencies": {
12
12
  "archy": "1.0.0",
13
13
  "chalk": "4.1.2",
14
14
  "cli-table": "0.3.6",
15
- "fs-extra": "10.0.0",
16
15
  "lodash": "4.18.1",
16
+ "semver": "7.7.1",
17
+ "fs-extra": "10.0.0",
17
18
  "moment": "2.29.4",
18
19
  "p-map-series": "2.1.0",
19
- "semver": "7.7.1",
20
20
  "yaml": "1.10.2",
21
21
  "graphlib": "2.1.8",
22
- "read-pkg-up": "7.0.1",
23
- "table": "6.7.3",
24
22
  "debug": "4.3.4",
25
23
  "resolve-dependency-path": "2.0.0",
26
24
  "stylus-lookup": "3.0.2",
@@ -28,64 +26,66 @@
28
26
  "detective-stylus": "1.0.0",
29
27
  "module-definition": "3.3.1",
30
28
  "node-source-walk": "4.2.0",
31
- "@teambit/cli": "0.0.1434",
29
+ "read-pkg-up": "7.0.1",
30
+ "table": "6.7.3",
32
31
  "@teambit/component-issues": "0.0.192",
33
32
  "@teambit/legacy.constants": "0.0.51",
34
- "@teambit/harmony": "0.4.12",
35
33
  "@teambit/component-id": "1.2.5",
36
- "@teambit/component-package-version": "0.0.466",
37
- "@teambit/dependencies.pnpm.dep-path": "1.0.1",
38
- "@teambit/harmony.modules.runtimes": "0.0.4",
39
- "@teambit/legacy.consumer-component": "0.0.197",
40
- "@teambit/legacy.consumer-config": "0.0.195",
41
- "@teambit/legacy.consumer": "0.0.203",
42
- "@teambit/logger": "0.0.1503",
43
- "@teambit/bit-error": "0.0.404",
44
- "@teambit/legacy.component-list": "0.0.257",
45
- "@teambit/legacy.dependency-graph": "0.0.202",
46
- "@teambit/objects": "0.0.741",
47
34
  "@teambit/component.sources": "0.0.247",
35
+ "@teambit/legacy.consumer-config": "0.0.195",
48
36
  "@teambit/legacy.utils": "0.0.57",
49
- "@teambit/toolbox.path.path": "0.0.26",
50
- "@teambit/legacy.bit-map": "0.0.252",
37
+ "@teambit/logger": "0.0.1503",
38
+ "@teambit/component-package-version": "0.0.466",
51
39
  "@teambit/component-version": "1.0.4",
52
40
  "@teambit/legacy.logger": "0.0.72",
53
41
  "@teambit/toolbox.fs.extension-getter": "0.0.22",
54
42
  "@teambit/legacy.extension-data": "0.0.197",
55
43
  "@teambit/toolbox.fs.last-modified": "0.0.24",
44
+ "@teambit/harmony": "0.4.12",
45
+ "@teambit/dependencies.pnpm.dep-path": "1.0.1",
46
+ "@teambit/harmony.modules.runtimes": "0.0.4",
47
+ "@teambit/bit-error": "0.0.404",
56
48
  "@teambit/toolbox.crypto.sha1": "0.0.24",
57
- "@teambit/styling.deps-lookups.lookup-styling": "0.0.4",
58
- "@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
59
- "@teambit/mdx.deps-detectors.detective-mdx": "0.0.7",
60
- "@teambit/node.deps-detectors.detective-es6": "0.0.6",
61
49
  "@teambit/styling.deps-detectors.detective-css": "0.0.6",
50
+ "@teambit/node.deps-detectors.detective-es6": "0.0.6",
62
51
  "@teambit/styling.deps-detectors.detective-less": "0.0.6",
63
52
  "@teambit/styling.deps-detectors.detective-sass": "0.0.9",
64
53
  "@teambit/styling.deps-detectors.detective-scss": "0.0.9",
65
54
  "@teambit/typescript.deps-detectors.detective-typescript": "0.0.10",
66
- "@teambit/graph": "1.0.1266",
67
- "@teambit/workspace": "1.0.1274",
68
- "@teambit/aspect-loader": "1.0.1254",
69
- "@teambit/component": "1.0.1251",
70
- "@teambit/dependency-resolver": "1.0.1256",
71
- "@teambit/dev-files": "1.0.1274",
72
- "@teambit/issues": "1.0.1251",
73
- "@teambit/scope": "1.0.1273"
55
+ "@teambit/styling.deps-lookups.lookup-styling": "0.0.4",
56
+ "@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
57
+ "@teambit/toolbox.path.path": "0.0.26",
58
+ "@teambit/mdx.deps-detectors.detective-mdx": "0.0.7",
59
+ "@teambit/cli": "0.0.1435",
60
+ "@teambit/graph": "1.0.1267",
61
+ "@teambit/workspace": "1.0.1275",
62
+ "@teambit/dependency-resolver": "1.0.1257",
63
+ "@teambit/legacy.bit-map": "0.0.253",
64
+ "@teambit/legacy.consumer-component": "0.0.198",
65
+ "@teambit/legacy.consumer": "0.0.204",
66
+ "@teambit/aspect-loader": "1.0.1255",
67
+ "@teambit/dev-files": "1.0.1275",
68
+ "@teambit/component": "1.0.1252",
69
+ "@teambit/issues": "1.0.1252",
70
+ "@teambit/scope": "1.0.1274",
71
+ "@teambit/legacy.component-list": "0.0.258",
72
+ "@teambit/legacy.dependency-graph": "0.0.203",
73
+ "@teambit/objects": "0.0.742"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@types/cli-table": "^0.3.0",
77
- "@types/fs-extra": "9.0.7",
78
77
  "@types/lodash": "4.14.165",
79
78
  "@types/semver": "7.5.8",
79
+ "@types/fs-extra": "9.0.7",
80
80
  "@types/graphlib": "2.1.7",
81
81
  "rewire": "7.0.0",
82
82
  "sinon": "17.0.1",
83
83
  "@types/mocha": "9.1.0",
84
- "@teambit/component.testing.mock-components": "0.0.479",
85
- "@teambit/harmony.testing.load-aspect": "0.0.473",
86
- "@teambit/workspace.testing.mock-workspace": "0.0.289",
87
84
  "@teambit/defender.fs.global-bit-temp-dir": "0.0.1",
88
- "@teambit/harmony.envs.core-aspect-env": "2.1.2"
85
+ "@teambit/harmony.envs.core-aspect-env": "2.1.2",
86
+ "@teambit/component.testing.mock-components": "0.0.480",
87
+ "@teambit/harmony.testing.load-aspect": "0.0.474",
88
+ "@teambit/workspace.testing.mock-workspace": "0.0.290"
89
89
  },
90
90
  "peerDependencies": {
91
91
  "chai": "5.2.1"