@teambit/dependencies 1.0.1234 → 1.0.1236

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.
@@ -41,3 +41,45 @@ describe('ApplyOverrides', () => {
41
41
  });
42
42
  });
43
43
  });
44
+
45
+ function createApplyOverridesWithPolicy({
46
+ installed,
47
+ inWorkspacePolicy,
48
+ }: {
49
+ installed?: string;
50
+ inWorkspacePolicy?: string;
51
+ }) {
52
+ const applyOverrides = Object.create(ApplyOverrides.prototype);
53
+ applyOverrides.depsResolver = {
54
+ getWorkspacePolicyManifest: () => ({ dependencies: inWorkspacePolicy ? { 'my-pkg': inWorkspacePolicy } : {} }),
55
+ };
56
+ applyOverrides._resolvePackageData = () => (installed ? { concreteVersion: installed } : undefined);
57
+ return applyOverrides;
58
+ }
59
+
60
+ describe('ApplyOverrides.resolveEnvPeerDepVersion()', () => {
61
+ it('should prefer the installed version by default', () => {
62
+ const applyOverrides = createApplyOverridesWithPolicy({ installed: '2.0.0', inWorkspacePolicy: '3.0.1' });
63
+ expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg')).to.equal('2.0.0');
64
+ });
65
+ it('should prefer the workspace policy when asked to, as the installed version could be outdated', () => {
66
+ const applyOverrides = createApplyOverridesWithPolicy({ installed: '2.0.0', inWorkspacePolicy: '3.0.1' });
67
+ expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('3.0.1');
68
+ });
69
+ it('should prefer the installed version when it satisfies the workspace policy range', () => {
70
+ const applyOverrides = createApplyOverridesWithPolicy({ installed: '18.2.0', inWorkspacePolicy: '^18.0.0' });
71
+ expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('18.2.0');
72
+ });
73
+ it('should take the minimum version of the workspace policy range when the installed one is outdated', () => {
74
+ const applyOverrides = createApplyOverridesWithPolicy({ installed: '17.0.0', inWorkspacePolicy: '^18.1.0' });
75
+ expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('18.1.0');
76
+ });
77
+ it('should keep an unconstrained workspace policy range as is', () => {
78
+ const applyOverrides = createApplyOverridesWithPolicy({ inWorkspacePolicy: '*' });
79
+ expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('*');
80
+ });
81
+ it('should fall back to the installed version when the workspace policy does not have the package', () => {
82
+ const applyOverrides = createApplyOverridesWithPolicy({ installed: '2.0.0' });
83
+ expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('2.0.0');
84
+ });
85
+ });
@@ -1,4 +1,5 @@
1
1
  import path from 'path';
2
+ import semver from 'semver';
2
3
  import type { ComponentID } from '@teambit/component-id';
3
4
  import { ComponentIdList } from '@teambit/component-id';
4
5
  import { cloneDeep, difference, forEach, isEmpty, pick, pickBy, uniq } from 'lodash';
@@ -14,6 +15,7 @@ import type { ResolvedPackageData } from '../resolve-pkg-data';
14
15
  import { resolvePackageData } from '../resolve-pkg-data';
15
16
  import type { Workspace } from '@teambit/workspace';
16
17
  import type { DependencyResolverMain } from '@teambit/dependency-resolver';
18
+ import { isPlusVersion, resolvePlusVersion } from '@teambit/dependency-resolver';
17
19
  import type { Consumer } from '@teambit/legacy.consumer';
18
20
  import type { ComponentMap } from '@teambit/legacy.bit-map';
19
21
  import type { Logger } from '@teambit/logger';
@@ -733,7 +735,11 @@ export class ApplyOverrides {
733
735
  comp.versionRange = pkgVal;
734
736
  this.allDependencies.peerDependencies.push(comp);
735
737
  } else {
736
- this.allPackagesDependencies[key][pkgName] = pkgVal;
738
+ // a package has no separate version and range, so a "+" placeholder is resolved here.
739
+ // a component dep keeps it in the versionRange, and it's resolved when generating the package.json
740
+ this.allPackagesDependencies[key][pkgName] = isPlusVersion(pkgVal)
741
+ ? resolvePlusVersion(pkgVal, this.resolveEnvPeerDepVersion(pkgName, true))
742
+ : pkgVal;
737
743
  }
738
744
 
739
745
  if (existsInCompsPeerDeps) {
@@ -767,11 +773,11 @@ export class ApplyOverrides {
767
773
  });
768
774
  const resolvedEnvPolicyManifest = Object.keys(envPolicyManifest).reduce((acc, pkgName) => {
769
775
  const version = envPolicyManifest[pkgName];
770
- if (version !== '+') {
776
+ if (!isPlusVersion(version)) {
771
777
  acc[pkgName] = version;
772
778
  return acc;
773
779
  }
774
- acc[pkgName] = this.resolveEnvPeerDepVersion(pkgName);
780
+ acc[pkgName] = resolvePlusVersion(version, this.resolveEnvPeerDepVersion(pkgName));
775
781
  return acc;
776
782
  }, {});
777
783
  // TODO: handle component deps once we support peers between components
@@ -782,21 +788,34 @@ export class ApplyOverrides {
782
788
  }
783
789
 
784
790
  /**
785
- * in the env.jsonc file, a policy-peer package can have `+` sign in the version. it means that it should be resolved
791
+ * in the env.jsonc file, a policy-peer package can have `+` sign (or `+^`/`+~`) in the version. it means that it should be resolved
786
792
  * from the workspace. whatever version is installed/imported in the workspace, it should be used here.
787
793
  * in some cases, the package is not installed in the workspace, for example, the env is now imported without the
788
794
  * dep. so the dep is not in the node_modules.
789
795
  * strategy should be: .bitmap, workspace.jsonc, then model.
790
796
  * it's not in .bitmap, otherwise, it was linked and `_resolvePackageData` would have found it.
791
797
  * so either, it's in the workspace.jsonc or in the model.
798
+ * @param preferWorkspacePolicy check the workspace.jsonc before what's installed. needed for a package that the
799
+ * component gets with a plus version. what's installed for the component was installed according to the version it
800
+ * had before, so it doesn't follow an upgrade in the workspace.jsonc (e.g. by "bit update").
792
801
  */
793
- private resolveEnvPeerDepVersion(pkgName: string): string {
802
+ private resolveEnvPeerDepVersion(pkgName: string, preferWorkspacePolicy = false): string {
803
+ const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();
804
+ const wsVersion = wsPolicy?.dependencies?.[pkgName] || wsPolicy?.peerDependencies?.[pkgName];
794
805
  const resolved = this._resolvePackageData(pkgName);
806
+ if (preferWorkspacePolicy && wsVersion) {
807
+ // the workspace.jsonc has usually a range. the plus version needs a concrete version to add its own prefix to
808
+ if (resolved?.concreteVersion && semver.satisfies(resolved.concreteVersion, wsVersion)) {
809
+ return resolved.concreteVersion;
810
+ }
811
+ const validRange = semver.validRange(wsVersion);
812
+ // an unconstrained range (e.g. "*") has no meaningful minimum, keep it as is
813
+ if (!validRange || validRange === '*') return wsVersion;
814
+ return semver.minVersion(wsVersion)?.version || wsVersion;
815
+ }
795
816
  if (resolved && resolved.concreteVersion) {
796
817
  return resolved.concreteVersion;
797
818
  }
798
- const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();
799
- const wsVersion = wsPolicy?.dependencies?.[pkgName] || wsPolicy?.peerDependencies?.[pkgName];
800
819
  if (wsVersion) {
801
820
  return wsVersion;
802
821
  }
@@ -8,6 +8,7 @@ import { isEmpty } from 'lodash';
8
8
  import type { Dependency, Dependencies, ConsumerComponent as Component } from '@teambit/legacy.consumer-component';
9
9
  import type { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';
10
10
  import type { DependencyResolverMain } from '@teambit/dependency-resolver';
11
+ import { isPlusVersion } from '@teambit/dependency-resolver';
11
12
  import { DEPENDENCIES_FIELDS } from '@teambit/legacy.constants';
12
13
  import type OverridesDependencies from './overrides-dependencies';
13
14
  import type { DebugComponentsDependency } from './auto-detect-deps';
@@ -126,7 +127,7 @@ export async function updateDependenciesVersions(
126
127
  ) {
127
128
  dependency.versionRange = `${componentRangePrefix}${resolvedVersion}`;
128
129
  }
129
- } else if (dependency.versionRange && depType !== 'peerDependencies' && dependency.versionRange !== '+') {
130
+ } else if (dependency.versionRange && depType !== 'peerDependencies' && !isPlusVersion(dependency.versionRange)) {
130
131
  dependency.versionRange = undefined;
131
132
  }
132
133
  }
@@ -1,5 +1,6 @@
1
- import { DEPENDENCIES_FIELDS, MANUALLY_ADD_DEPENDENCY, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';
1
+ import { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';
2
2
  import { logger } from '@teambit/legacy.logger';
3
+ import { isPlusVersion, resolvePlusVersion } from '@teambit/dependency-resolver';
3
4
  import type { ConsumerComponent as Component, ManuallyChangedDependencies } from '@teambit/legacy.consumer-component';
4
5
  import type { FileType } from './auto-detect-deps';
5
6
 
@@ -75,14 +76,15 @@ export default class OverridesDependencies {
75
76
  packageJson: Record<string, any> | null | undefined
76
77
  ): Record<string, any> | null | undefined {
77
78
  const packageVersionToAdd = (): string | null | undefined => {
78
- if (dependencyValue !== MANUALLY_ADD_DEPENDENCY) {
79
+ // "+", "+^" and "+~" take the version from the package.json
80
+ if (!isPlusVersion(dependencyValue)) {
79
81
  return dependencyValue;
80
82
  }
81
83
  if (!packageJson) return null;
82
84
  for (const depField of DEPENDENCIES_FIELDS) {
83
85
  if (packageJson[depField]) {
84
86
  const found = Object.keys(packageJson[depField]).find((pkg) => pkg === dependency);
85
- if (found) return packageJson[depField][dependency];
87
+ if (found) return resolvePlusVersion(dependencyValue, packageJson[depField][dependency]);
86
88
  }
87
89
  }
88
90
  return null;
@@ -130,13 +130,16 @@ export declare class ApplyOverrides {
130
130
  private applyPackageVersion;
131
131
  private applyAutoDetectedPeersFromEnvOnEnvItSelf;
132
132
  /**
133
- * in the env.jsonc file, a policy-peer package can have `+` sign in the version. it means that it should be resolved
133
+ * in the env.jsonc file, a policy-peer package can have `+` sign (or `+^`/`+~`) in the version. it means that it should be resolved
134
134
  * from the workspace. whatever version is installed/imported in the workspace, it should be used here.
135
135
  * in some cases, the package is not installed in the workspace, for example, the env is now imported without the
136
136
  * dep. so the dep is not in the node_modules.
137
137
  * strategy should be: .bitmap, workspace.jsonc, then model.
138
138
  * it's not in .bitmap, otherwise, it was linked and `_resolvePackageData` would have found it.
139
139
  * so either, it's in the workspace.jsonc or in the model.
140
+ * @param preferWorkspacePolicy check the workspace.jsonc before what's installed. needed for a package that the
141
+ * component gets with a plus version. what's installed for the component was installed according to the version it
142
+ * had before, so it doesn't follow an upgrade in the workspace.jsonc (e.g. by "bit update").
140
143
  */
141
144
  private resolveEnvPeerDepVersion;
142
145
  /**
@@ -11,6 +11,13 @@ function _path() {
11
11
  };
12
12
  return data;
13
13
  }
14
+ function _semver() {
15
+ const data = _interopRequireDefault(require("semver"));
16
+ _semver = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
14
21
  function _componentId() {
15
22
  const data = require("@teambit/component-id");
16
23
  _componentId = function () {
@@ -67,6 +74,13 @@ function _resolvePkgData() {
67
74
  };
68
75
  return data;
69
76
  }
77
+ function _dependencyResolver() {
78
+ const data = require("@teambit/dependency-resolver");
79
+ _dependencyResolver = function () {
80
+ return data;
81
+ };
82
+ return data;
83
+ }
70
84
  function _legacy4() {
71
85
  const data = require("@teambit/legacy.consumer-config");
72
86
  _legacy4 = function () {
@@ -684,7 +698,9 @@ class ApplyOverrides {
684
698
  comp.versionRange = pkgVal;
685
699
  this.allDependencies.peerDependencies.push(comp);
686
700
  } else {
687
- this.allPackagesDependencies[key][pkgName] = pkgVal;
701
+ // a package has no separate version and range, so a "+" placeholder is resolved here.
702
+ // a component dep keeps it in the versionRange, and it's resolved when generating the package.json
703
+ this.allPackagesDependencies[key][pkgName] = (0, _dependencyResolver().isPlusVersion)(pkgVal) ? (0, _dependencyResolver().resolvePlusVersion)(pkgVal, this.resolveEnvPeerDepVersion(pkgName, true)) : pkgVal;
688
704
  }
689
705
  if (existsInCompsPeerDeps) {
690
706
  existsInCompsPeerDeps.versionRange = pkgVal;
@@ -711,11 +727,11 @@ class ApplyOverrides {
711
727
  });
712
728
  const resolvedEnvPolicyManifest = Object.keys(envPolicyManifest).reduce((acc, pkgName) => {
713
729
  const version = envPolicyManifest[pkgName];
714
- if (version !== '+') {
730
+ if (!(0, _dependencyResolver().isPlusVersion)(version)) {
715
731
  acc[pkgName] = version;
716
732
  return acc;
717
733
  }
718
- acc[pkgName] = this.resolveEnvPeerDepVersion(pkgName);
734
+ acc[pkgName] = (0, _dependencyResolver().resolvePlusVersion)(version, this.resolveEnvPeerDepVersion(pkgName));
719
735
  return acc;
720
736
  }, {});
721
737
  // TODO: handle component deps once we support peers between components
@@ -723,21 +739,34 @@ class ApplyOverrides {
723
739
  }
724
740
 
725
741
  /**
726
- * in the env.jsonc file, a policy-peer package can have `+` sign in the version. it means that it should be resolved
742
+ * in the env.jsonc file, a policy-peer package can have `+` sign (or `+^`/`+~`) in the version. it means that it should be resolved
727
743
  * from the workspace. whatever version is installed/imported in the workspace, it should be used here.
728
744
  * in some cases, the package is not installed in the workspace, for example, the env is now imported without the
729
745
  * dep. so the dep is not in the node_modules.
730
746
  * strategy should be: .bitmap, workspace.jsonc, then model.
731
747
  * it's not in .bitmap, otherwise, it was linked and `_resolvePackageData` would have found it.
732
748
  * so either, it's in the workspace.jsonc or in the model.
749
+ * @param preferWorkspacePolicy check the workspace.jsonc before what's installed. needed for a package that the
750
+ * component gets with a plus version. what's installed for the component was installed according to the version it
751
+ * had before, so it doesn't follow an upgrade in the workspace.jsonc (e.g. by "bit update").
733
752
  */
734
- resolveEnvPeerDepVersion(pkgName) {
753
+ resolveEnvPeerDepVersion(pkgName, preferWorkspacePolicy = false) {
754
+ const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();
755
+ const wsVersion = wsPolicy?.dependencies?.[pkgName] || wsPolicy?.peerDependencies?.[pkgName];
735
756
  const resolved = this._resolvePackageData(pkgName);
757
+ if (preferWorkspacePolicy && wsVersion) {
758
+ // the workspace.jsonc has usually a range. the plus version needs a concrete version to add its own prefix to
759
+ if (resolved?.concreteVersion && _semver().default.satisfies(resolved.concreteVersion, wsVersion)) {
760
+ return resolved.concreteVersion;
761
+ }
762
+ const validRange = _semver().default.validRange(wsVersion);
763
+ // an unconstrained range (e.g. "*") has no meaningful minimum, keep it as is
764
+ if (!validRange || validRange === '*') return wsVersion;
765
+ return _semver().default.minVersion(wsVersion)?.version || wsVersion;
766
+ }
736
767
  if (resolved && resolved.concreteVersion) {
737
768
  return resolved.concreteVersion;
738
769
  }
739
- const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();
740
- const wsVersion = wsPolicy?.dependencies?.[pkgName] || wsPolicy?.peerDependencies?.[pkgName];
741
770
  if (wsVersion) {
742
771
  return wsVersion;
743
772
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","_interopRequireDefault","require","_componentId","_lodash","_componentIssues","_legacy","_legacy2","_component","_legacy3","_resolvePkgData","_legacy4","_overridesDependencies","_dependenciesData","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","DepsKeysToAllPackagesDepsKeys","dependencies","devDependencies","peerDependencies","ApplyOverrides","constructor","component","depsResolver","logger","workspace","componentId","componentFromModel","allDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","processedFiles","issues","setLegacyInsideHarmonyIssue","overridesDependencies","OverridesDependencies","debugDependenciesData","components","setOverridesDependencies","overrides","getOverridesData","getEnvExtendsDeps","wsDeps","modelDeps","merged","Dependencies","merge","updateVersionOfMissingsInEnvJsonc","get","deps","missingIssue","getIssueByName","envJsoncMissing","find","item","filePath","missingPackages","mergedRootPolicy","getWorkspacePolicy","missingPackage","foundInRootPolicy","foundInDeps","getByPackageName","id","changeVersion","version","ComponentOverrides","loadFromConsumer","consumer","getDependenciesData","populateDependencies","dependenciesData","DependenciesData","coreAspects","autoDetectOverrides","loadAutoDetectOverrides","removeIgnoredComponentsByOverrides","cloneAllPackagesDependencies","removeIgnoredPackagesByOverrides","removeDevAndEnvDepsIfTheyAlsoRegulars","applyPeersFromComponentModel","applyPackageJson","applyWorkspacePolicy","makeLegacyAsPeer","applyAutoDetectOverridesOnComponent","applyAutoDetectedPeersFromEnvOnEnvItSelf","manuallyAddDependencies","removeCompDepsFromPackages","uniq","shouldBeIncluded","dep","fileType","shouldIgnorePackage","packageName","isTestFile","missingData","m","pkg","isDevFile","delete","IssuesClasses","MissingPackagesDependenciesOnFs","getAutoDetectOverrides","extensions","files","originAllPackagesDependencies","cloneDeep","pkgVersion","pkgName","shouldIgnorePackageByType","shouldBeIncludedDev","pickBy","_resolvePackageData","undefined","componentMap","rootDir","consumerPath","getPath","basePath","path","join","modulePath","resolvePackagePath","packageObject","resolvePackageData","_getComponentIdToAdd","dependency","versionRange","depField","compDep","findComponentDepByPackageName","range","packageData","name","isMatch","getDependenciesToAddManually","packageJson","existingDependencies","packages","missingPkgRemovals","Set","DEPENDENCIES_FIELDS","dependencyValue","componentData","isEqualWithoutVersion","warn","toString","dependencyExist","d","_addManuallyAddedDep","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","add","size","has","_getPackageJson","otherFields","f","depsSet","depData","Dependency","otherField","isEmpty","_pkgFieldMapping","peerName","componentPeers","map","currPackagesKeys","reduce","acc","field","includes","getNotRegularPackages","difference","pick","componentDepsIds","ComponentIdList","c","getPeerDependencies","_getPackageJsonFromComponentModel","projectPeerDependencies","peerPackages","shouldIgnorePeerPackage","pkgJsonPeer","pkgJsonRegularDeps","peerDeps","_pkgVal","peerVersionFromPkgJson","regularVersionFromPkgJson","wsPolicy","getWorkspacePolicyManifest","wsPeer","wsRegular","peerPackageDeps","peerVersionFromWsPolicy","regularVersionFromWsPolicy","isNaN","originallyExists","getMissingPackagesFromIssues","pkgVal","applyAutoDetectedOverrideForPackage","flat","isPackageAutoDetected","existsInAnyCompDeps","Boolean","existsInOriginalPkgDeps","existsInCompsDeps","existsInCompsDevDeps","existsInCompsPeerDeps","shouldSkip","handlePeerDependencyOverride","removePackageFromAllDependencyTypes","applyPackageVersion","startsWith","shouldAddPackage","MANUALLY_REMOVE_DEPENDENCY","key","comp","envPolicy","getEnvPolicyFromEnvId","envPolicyManifest","selfPolicy","toVersionManifest","envOwnPkgNames","peerVersionFromEnvPolicy","resolvedEnvPolicyManifest","resolveEnvPeerDepVersion","resolved","concreteVersion","wsVersion","fromModelDep","fromModelPkg","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import path from 'path';\nimport type { ComponentID } from '@teambit/component-id';\nimport { ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, difference, forEach, isEmpty, pick, pickBy, uniq } from 'lodash';\nimport type { IssuesList, MissingPackagesData } from '@teambit/component-issues';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';\nimport type { ConsumerComponent as Component } from '@teambit/legacy.consumer-component';\nimport { Dependency, Dependencies } from '@teambit/legacy.consumer-component';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport type { PathLinux } from '@teambit/legacy.utils';\nimport { resolvePackagePath } from '@teambit/legacy.utils';\nimport type { ResolvedPackageData } from '../resolve-pkg-data';\nimport { resolvePackageData } from '../resolve-pkg-data';\nimport type { Workspace } from '@teambit/workspace';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { ComponentMap } from '@teambit/legacy.bit-map';\nimport type { Logger } from '@teambit/logger';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DependenciesData } from './dependencies-data';\nimport type { DebugDependencies, FileType } from './auto-detect-deps';\n\nexport type AllDependencies = {\n dependencies: Dependency[];\n devDependencies: Dependency[];\n peerDependencies: Dependency[];\n};\n\nexport type AllPackagesDependencies = {\n packageDependencies: Record<string, string>;\n devPackageDependencies: Record<string, string>;\n peerPackageDependencies: Record<string, string>;\n};\n\nconst DepsKeysToAllPackagesDepsKeys = {\n dependencies: 'packageDependencies',\n devDependencies: 'devPackageDependencies',\n peerDependencies: 'peerPackageDependencies',\n};\n\nexport class ApplyOverrides {\n componentId: ComponentID;\n componentFromModel: Component;\n allDependencies: AllDependencies;\n allPackagesDependencies: AllPackagesDependencies;\n /**\n * This will store a copy of the package deps before removal\n * in order to apply auto detected rules that are running after the removal\n */\n originAllPackagesDependencies: AllPackagesDependencies;\n issues: IssuesList;\n coreAspects: string[] = [];\n processedFiles: string[];\n overridesDependencies: OverridesDependencies;\n debugDependenciesData: DebugDependencies;\n /**\n * see workspace.getAutoDetectOverrides docs.\n * these overrides are from env/variants/merge-config. not ones with \"force: true\".\n */\n public autoDetectOverrides: Record<string, any> | undefined;\n constructor(\n private component: Component,\n private depsResolver: DependencyResolverMain,\n private logger: Logger,\n private workspace?: Workspace\n ) {\n this.componentId = component.componentId;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.componentFromModel = this.component.componentFromModel;\n this.allDependencies = {\n dependencies: [],\n devDependencies: [],\n peerDependencies: [],\n };\n this.allPackagesDependencies = {\n packageDependencies: {},\n devPackageDependencies: {},\n peerPackageDependencies: {},\n };\n this.processedFiles = [];\n this.issues = component.issues;\n this.setLegacyInsideHarmonyIssue();\n this.overridesDependencies = new OverridesDependencies(component);\n this.debugDependenciesData = { components: [] };\n }\n\n private async setOverridesDependencies() {\n const overrides = await this.getOverridesData();\n this.component.overrides = overrides;\n }\n\n private getEnvExtendsDeps() {\n const wsDeps = this.allDependencies.dependencies || [];\n const modelDeps = this.component.componentFromModel?.dependencies.dependencies || [];\n const merged = Dependencies.merge([wsDeps, modelDeps]);\n this.updateVersionOfMissingsInEnvJsonc(merged);\n return merged.get();\n }\n\n /**\n * This function is aim to solve the following case:\n * I have env1 extends env2 in my workspace\n * env1 is tagged with env2@1.0.0 in the model\n * env2 is in the workspace policy with version 2.0.0\n * the node_modules is empty so env2@2.0.0 is missing\n * Without this change, we will get the env2@1.0.0 from the model\n * Then we will take the deps from its resolved env.jsonc\n * instead of takeing those of v2.0.0\n * This function fixing this issue\n * @param deps\n * @returns\n */\n private updateVersionOfMissingsInEnvJsonc(deps: Dependencies) {\n const missingIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs');\n if (!missingIssue) return;\n const envJsoncMissing = missingIssue.data.find((item) => item.filePath === 'env.jsonc');\n if (envJsoncMissing && envJsoncMissing.missingPackages.length) {\n const mergedRootPolicy = this.depsResolver.getWorkspacePolicy();\n envJsoncMissing.missingPackages.forEach((missingPackage) => {\n const foundInRootPolicy = mergedRootPolicy.find(missingPackage);\n const foundInDeps = deps.getByPackageName(missingPackage);\n if (foundInRootPolicy && foundInDeps) {\n foundInDeps.id = foundInDeps.id.changeVersion(foundInRootPolicy.value.version);\n }\n });\n }\n }\n\n private async getOverridesData() {\n if (this.component.overrides) return this.component.overrides;\n\n const overrides = await ComponentOverrides.loadFromConsumer(this.component, this.getEnvExtendsDeps());\n\n return overrides;\n }\n\n get consumer(): Consumer | undefined {\n return this.workspace?.consumer;\n }\n\n async getDependenciesData(): Promise<{\n dependenciesData: DependenciesData;\n overridesDependencies: OverridesDependencies;\n autoDetectOverrides?: Record<string, any>;\n }> {\n await this.setOverridesDependencies();\n await this.populateDependencies();\n const dependenciesData = new DependenciesData(\n this.allDependencies,\n this.allPackagesDependencies,\n this.issues,\n this.coreAspects\n );\n return {\n dependenciesData,\n overridesDependencies: this.overridesDependencies,\n autoDetectOverrides: this.autoDetectOverrides,\n };\n }\n\n /**\n * Given the tree of file dependencies from the driver, find the components of these files.\n * Each dependency file has a path, use bit.map to search for the component name by that path.\n * If the component is found, add it to \"this.allDependencies.dependencies\". Otherwise, add it to \"this.issues.untrackedDependencies\".\n *\n * For the found components, add their sourceRelativePath and destinationRelativePath, they are being used for\n * generating links upon import:\n * sourceRelativePath - location of the link file.\n * destinationRelativePath - destination written inside the link file.\n *\n * When a dependency is found in a regular (implementation) file, it goes to `dependencies`. If\n * it found on a test file, it goes to `devDependencies`.\n * Similarly, when a package is found in a regular file, it goes to `packageDependencies`. When\n * if found in a test file, it goes to `devPackageDependencies`.\n * An exception for the above is when a package is required in a regular or test file but is also\n * mentioned in the `package.json` file as a peerDependency, in that case, the package is added\n * to `peerPackageDependencies` and removed from other places. Unless this package is overridden\n * and marked as ignored in the consumer or component config file.\n */\n private async populateDependencies() {\n await this.loadAutoDetectOverrides();\n this.removeIgnoredComponentsByOverrides();\n this.cloneAllPackagesDependencies();\n this.removeIgnoredPackagesByOverrides();\n this.removeDevAndEnvDepsIfTheyAlsoRegulars();\n this.applyPeersFromComponentModel();\n this.applyPackageJson();\n this.applyWorkspacePolicy();\n this.makeLegacyAsPeer();\n await this.applyAutoDetectOverridesOnComponent();\n // This was moved here (it used to be after this.manuallyAddDependencies) to fix an issue with a case where\n // an env define the same dependency defined by its own env, in both places:\n // its env.jsonc, and via bit deps set, with different versions.\n // before this fix the env.jsonc version was taken, and the deps set version was ignored for - bit show and\n // package.json\n // but it was taken into account for the actual dependency installation.\n // now we take the version from the deps set in both cases.\n // It make more sense to have it here before manually add dependencies, but the reason it wasn't like this is\n // because (pasting the original comment here):\n // ------ORIGINAL COMMENT------\n // Doing this here (after manuallyAddDependencies) because usually the env of the env is adding dependencies as peer of the env\n // which will make this not work if it come before\n // example:\n // custom react has peers with react 16.4.0.\n // the custom react uses the \"teambit.envs/env\" env, which will add react ^17.0.0 to every component that uses it\n // we want to make sure that the custom react is using 16.4.0 not 17.\n // ------END OF ORIGINAL COMMENT------\n // Since we did a massive refactor to the way we handle dependencies, we can now move it here now, as the original\n // issue doesn't seems like an issue any more.\n await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();\n this.manuallyAddDependencies();\n // Ensuring component dependencies are not part of the package dependencies to prevent duplications\n this.removeCompDepsFromPackages();\n // Doing this here (after manuallyAddDependencies) because usually the env of the env is adding dependencies as peer of the env\n // which will make this not work if it come before\n // example:\n // custom react has peers with react 16.4.0.\n // the custom react uses the \"teambit.envs/env\" env, which will add react ^17.0.0 to every component that uses it\n // we want to make sure that the custom react is using 16.4.0 not 17.\n this.coreAspects = uniq(this.coreAspects);\n }\n\n private removeIgnoredComponentsByOverrides() {\n const shouldBeIncluded = (dep: Dependency, fileType: FileType) =>\n !this.overridesDependencies.shouldIgnorePackage(dep.packageName as string, fileType);\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: false })\n );\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: true })\n );\n\n const missingIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs');\n if (!missingIssue) return;\n const missingData = missingIssue.data as MissingPackagesData[];\n missingData.forEach((m) => {\n m.missingPackages = m.missingPackages.filter(\n (pkg) => !this.overridesDependencies.shouldIgnorePackage(pkg, { isTestFile: m.isDevFile })\n );\n });\n missingIssue.data = missingData.filter((m) => m.missingPackages.length);\n if (!missingIssue.data.length) this.issues.delete(IssuesClasses.MissingPackagesDependenciesOnFs);\n }\n\n private async loadAutoDetectOverrides() {\n // outside a workspace, they're calculated by the caller (if at all) and set before this runs\n if (!this.workspace) return;\n this.autoDetectOverrides = await this.workspace.getAutoDetectOverrides(\n this.component.extensions,\n this.component.id,\n this.component.files,\n this.getEnvExtendsDeps()\n );\n }\n\n private cloneAllPackagesDependencies() {\n this.originAllPackagesDependencies = cloneDeep(this.allPackagesDependencies);\n }\n\n private removeIgnoredPackagesByOverrides() {\n const shouldBeIncluded = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'dependencies');\n const shouldBeIncludedDev = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');\n\n this.allPackagesDependencies.packageDependencies = pickBy(\n this.allPackagesDependencies.packageDependencies,\n shouldBeIncluded\n );\n this.allPackagesDependencies.devPackageDependencies = pickBy(\n this.allPackagesDependencies.devPackageDependencies,\n shouldBeIncludedDev\n );\n }\n\n // TODO: maybe cache those results??\n private _resolvePackageData(packageName: string): ResolvedPackageData | undefined {\n const consumer = this.consumer;\n if (!consumer) return undefined;\n // if consumer is defined, then it has componentMap prop.\n const componentMap = this.component.componentMap as ComponentMap;\n const rootDir: PathLinux | null | undefined = componentMap.rootDir as string;\n const consumerPath = consumer.getPath();\n const basePath = rootDir ? path.join(consumerPath, rootDir) : consumerPath;\n const modulePath = resolvePackagePath(packageName, basePath, consumerPath);\n if (!modulePath) return undefined; // e.g. it's author and wasn't exported yet, so there's no node_modules of that component\n const packageObject = resolvePackageData(basePath, modulePath);\n return packageObject;\n }\n\n private _getComponentIdToAdd(\n dependency: string,\n versionRange: string,\n depField: string\n ): { componentId?: ComponentID; packageName?: string; versionRange?: string } {\n if (!this.consumer) {\n // a scope has no node_modules to resolve the package from. if it's a component dependency, use it. otherwise, a\n // forced component dependency (e.g. an env's own peer, which is a runtime dep of the env) is added as a package\n // and then dropped in favor of the component dependency, which may be in a different field.\n const compDep = this.findComponentDepByPackageName(dependency);\n if (compDep) {\n // same as the workspace (see updateDependenciesVersions), only a peer component dependency keeps its range\n const range = depField === 'peerDependencies' ? versionRange : undefined;\n return { componentId: compDep.id, packageName: dependency, versionRange: range };\n }\n }\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name, versionRange };\n }\n\n private findComponentDepByPackageName(packageName: string): Dependency | undefined {\n const { dependencies, devDependencies, peerDependencies } = this.allDependencies;\n const isMatch = (dep: Dependency) => dep.packageName === packageName;\n return dependencies.find(isMatch) || devDependencies.find(isMatch) || peerDependencies.find(isMatch);\n }\n\n getDependenciesToAddManually(\n packageJson: Record<string, any> | null | undefined,\n existingDependencies: AllDependencies\n ): { components: Record<string, any>; packages: Record<string, any> } | undefined {\n const overrides = this.overridesDependencies.getDependenciesToAddManually();\n if (!overrides) return undefined;\n const components = {};\n const packages = {};\n const missingPkgRemovals = new Set<string>();\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!overrides[depField]) return;\n Object.keys(overrides[depField]).forEach((dependency) => {\n const dependencyValue = overrides[depField][dependency];\n const componentData = this._getComponentIdToAdd(dependency, dependencyValue, depField);\n if (componentData?.componentId) {\n if (componentData.componentId.isEqualWithoutVersion(this.componentId)) {\n this.logger.warn(\n `component ${this.componentId.toString()} depends on itself ${componentData.componentId.toString()}. ignoring it.`\n );\n return;\n }\n const dependencyExist = existingDependencies[depField].find((d) =>\n d.id.isEqualWithoutVersion(componentData.componentId)\n );\n if (!dependencyExist) {\n this.overridesDependencies._addManuallyAddedDep(depField, componentData.componentId.toString());\n components[depField] ? components[depField].push(componentData) : (components[depField] = [componentData]);\n }\n return;\n }\n const addedPkg = this.overridesDependencies._manuallyAddPackage(\n depField,\n dependency,\n dependencyValue,\n packageJson\n );\n if (addedPkg) {\n packages[depField] = Object.assign(packages[depField] || {}, addedPkg);\n if (componentData && !componentData.packageName) {\n this.overridesDependencies.missingPackageDependencies.push(dependency);\n }\n } else if (\n // The \"+\" sentinel couldn't be resolved from workspace package.json\n // (e.g. fresh workspace after bit new/fork), but the package was\n // already resolved by applyAutoDetectedPeersFromEnvOnEnvItSelf().\n // Remove it from missingPackageDependencies to avoid a false positive.\n this.allPackagesDependencies.packageDependencies[dependency] ||\n this.allPackagesDependencies.devPackageDependencies[dependency] ||\n this.allPackagesDependencies.peerPackageDependencies[dependency]\n ) {\n missingPkgRemovals.add(dependency);\n }\n });\n });\n if (missingPkgRemovals.size > 0) {\n this.overridesDependencies.missingPackageDependencies =\n this.overridesDependencies.missingPackageDependencies.filter((pkg) => !missingPkgRemovals.has(pkg));\n }\n return { components, packages };\n }\n\n private manuallyAddDependencies() {\n const packageJson = this._getPackageJson();\n const dependencies = this.getDependenciesToAddManually(packageJson, this.allDependencies);\n if (!dependencies) return;\n const { components, packages } = dependencies;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n const otherFields = DEPENDENCIES_FIELDS.filter((f) => f !== depField);\n if (components[depField] && components[depField].length) {\n const depsSet = new Set();\n components[depField].forEach((depData) => {\n depsSet.add(depData.packageName);\n this.allDependencies[depField].push(\n new Dependency(depData.componentId, [], depData.packageName, depData.versionRange)\n );\n });\n otherFields.forEach((otherField) => {\n this.allDependencies[otherField] = this.allDependencies[otherField].filter(\n (dep) => !depsSet.has(dep.packageName)\n );\n });\n }\n if (packages[depField] && !isEmpty(packages[depField])) {\n Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);\n // remove the dependency from the other fields to prevent duplications\n otherFields.forEach((otherField) => {\n Object.keys(packages[depField]).forEach((pkgName) => {\n delete this.allPackagesDependencies[this._pkgFieldMapping(otherField)][pkgName];\n });\n });\n }\n });\n // The automatic dependency detector considers all found dependencies to be runtime dependencies.\n // But this breaks proper installation of injected subdependencies that are resolved from workspace components.\n if (this.allPackagesDependencies.packageDependencies && packages.peerDependencies) {\n for (const peerName of Object.keys(packages.peerDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n if (this.allPackagesDependencies.packageDependencies && packages.peerPackageDependencies) {\n for (const peerName of Object.keys(packages.peerPackageDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n if (components.peerDependencies) {\n const componentPeers = new Set(components.peerDependencies.map(({ packageName }) => packageName));\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => !dep.packageName || !componentPeers.has(dep.packageName)\n );\n }\n }\n\n /**\n * The function `removeCompDepsFromPackages` removes component dependencies from different package dependency fields\n * based on certain conditions.\n */\n private removeCompDepsFromPackages() {\n const currPackagesKeys = ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].reduce(\n (acc, field) => {\n acc[field] = Object.keys(this.allPackagesDependencies[field]);\n return acc;\n },\n {}\n );\n\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (this.allDependencies[depField].length) {\n this.allDependencies[depField].forEach((dep) => {\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n const keys = currPackagesKeys[field];\n if (keys.includes(dep.packageName)) {\n delete this.allPackagesDependencies[field][dep.packageName];\n }\n });\n });\n }\n });\n }\n\n /**\n * Remove the dependencies which appear both in dev and regular deps from the dev\n * Because if a dependency is both dev dependency and regular dependency it should be treated as regular one\n * Apply for both packages and components dependencies\n */\n private removeDevAndEnvDepsIfTheyAlsoRegulars() {\n // remove dev and env packages that are also regular packages\n const getNotRegularPackages = (packages) =>\n difference(Object.keys(packages), Object.keys(this.allPackagesDependencies.packageDependencies));\n this.allPackagesDependencies.devPackageDependencies = pick(\n this.allPackagesDependencies.devPackageDependencies,\n getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies)\n );\n // remove dev dependencies that are also regular dependencies\n const componentDepsIds = new ComponentIdList(...this.allDependencies.dependencies.map((c) => c.id));\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (d) => !componentDepsIds.has(d.id)\n );\n }\n\n private applyPeersFromComponentModel(): void {\n const getPeerDependencies = (): Record<string, any> => {\n const packageJson = this._getPackageJsonFromComponentModel();\n if (packageJson && packageJson.peerDependencies) return packageJson.peerDependencies;\n return {};\n };\n const projectPeerDependencies = getPeerDependencies();\n const peerPackages = {};\n if (isEmpty(projectPeerDependencies)) return;\n\n // check whether the peer-dependencies was actually require in the code. if so, remove it from\n // the packages/dev-packages and add it as a peer-package.\n // if it was not required in the code, don't add it to the peerPackages\n Object.keys(projectPeerDependencies).forEach((pkg) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkg)) return;\n ['packageDependencies', 'devPackageDependencies'].forEach((field) => {\n if (Object.keys(this.allPackagesDependencies[field]).includes(pkg)) {\n delete this.allPackagesDependencies[field][pkg];\n peerPackages[pkg] = projectPeerDependencies[pkg];\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackages;\n }\n\n private applyPackageJson(): void {\n const packageJson = this._getPackageJson();\n if (!packageJson) return;\n const pkgJsonPeer = packageJson.peerDependencies || {};\n const pkgJsonRegularDeps = packageJson.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromPkgJson = pkgJsonPeer[pkgName];\n const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];\n if (peerVersionFromPkgJson) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromPkgJson;\n } else if (regularVersionFromPkgJson) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n private applyWorkspacePolicy(): void {\n const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();\n if (!wsPolicy) return;\n const wsPeer = wsPolicy.peerDependencies || {};\n const wsRegular = wsPolicy.dependencies || {};\n const peerPackageDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n peerPackageDeps[pkgName] = peerVersionFromWsPolicy;\n } else if (regularVersionFromWsPolicy) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackageDeps;\n\n const peerDeps = this.allDependencies.peerDependencies ?? [];\n ['dependencies', 'devDependencies'].forEach((field) => {\n for (const dep of this.allDependencies[field]) {\n const pkgName = dep.packageName;\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n dep.versionRange = peerVersionFromWsPolicy;\n peerDeps.push(dep);\n } else if (regularVersionFromWsPolicy) {\n dep.versionRange = regularVersionFromWsPolicy;\n }\n }\n this.allDependencies[field] = this.allDependencies[field].filter(({ packageName }) => !wsPeer[packageName]);\n });\n this.allDependencies.peerDependencies = peerDeps;\n }\n\n /**\n * It removes the @teambit/legacy dependency from the dependencies/devDeps and adds it as a peer dependency with ^.\n */\n private makeLegacyAsPeer(): void {\n let version;\n if (this.allPackagesDependencies.packageDependencies['@teambit/legacy']) {\n version = this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n }\n if (this.allPackagesDependencies.devPackageDependencies['@teambit/legacy']) {\n if (!version) version = this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n }\n if (version) {\n if (!Number.isNaN(version[0])) version = `^${version}`;\n this.allPackagesDependencies.peerPackageDependencies['@teambit/legacy'] = version;\n }\n }\n\n private async applyAutoDetectOverridesOnComponent(): Promise<void> {\n const autoDetectOverrides = this.autoDetectOverrides;\n\n if (!autoDetectOverrides || !Object.keys(autoDetectOverrides).length) {\n return;\n }\n\n const originallyExists: string[] = [];\n const missingPackages = this.getMissingPackagesFromIssues();\n\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {\n forEach(autoDetectOverrides[field], (pkgVal, pkgName) => {\n this.applyAutoDetectedOverrideForPackage(field, pkgName, pkgVal, originallyExists, missingPackages);\n });\n });\n }\n\n private getMissingPackagesFromIssues(): string[] {\n const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data as\n | MissingPackagesData[]\n | undefined;\n if (!missingData) return [];\n return uniq(missingData.map((d) => d.missingPackages).flat());\n }\n\n private isPackageAutoDetected(pkgName: string, originallyExists: string[], missingPackages: string[]): boolean {\n // Check component dependencies\n const existsInAnyCompDeps = Boolean(this.findComponentDepByPackageName(pkgName));\n\n // Check originAllPackagesDependencies instead of allPackagesDependencies\n // as it might be already removed at this point if it was set with \"-\" in runtime/dev\n const existsInOriginalPkgDeps =\n this.originAllPackagesDependencies.packageDependencies[pkgName] ||\n this.originAllPackagesDependencies.devPackageDependencies[pkgName] ||\n this.originAllPackagesDependencies.peerPackageDependencies[pkgName];\n\n // Check if it was originally exists in the component\n // This handles policies like: dependencies: {\"my-dep\": \"-\"}, devDependencies: {\"my-dep\": \"1.0.0\"}\n // where we might remove it before getting to devDeps\n return (\n existsInAnyCompDeps ||\n !!existsInOriginalPkgDeps ||\n originallyExists.includes(pkgName) ||\n missingPackages.includes(pkgName)\n );\n }\n\n private applyAutoDetectedOverrideForPackage(\n field: string,\n pkgName: string,\n pkgVal: string,\n originallyExists: string[],\n missingPackages: string[]\n ): void {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) {\n return;\n }\n\n if (!this.isPackageAutoDetected(pkgName, originallyExists, missingPackages)) {\n return;\n }\n\n originallyExists.push(pkgName);\n\n const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => dep.packageName === pkgName);\n const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => dep.packageName === pkgName);\n const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find((dep) => dep.packageName === pkgName);\n\n // When changing peer dependency we want it to be stronger than the other types\n if (field === 'peerDependencies') {\n const shouldSkip = this.handlePeerDependencyOverride(pkgName, existsInCompsDeps, existsInCompsDevDeps);\n if (shouldSkip) return;\n }\n\n // Clear package from all dependency types to avoid duplicates\n // This fixes cases where a package moves between dep types in env.jsonc\n this.removePackageFromAllDependencyTypes(pkgName);\n\n this.applyPackageVersion(field, pkgName, pkgVal, existsInCompsDeps, existsInCompsDevDeps, existsInCompsPeerDeps);\n }\n\n /**\n * Handle peer dependency specific logic.\n * @returns true if the package should be skipped (not added to dependencies)\n */\n private handlePeerDependencyOverride(\n pkgName: string,\n existsInCompsDeps: Dependency | undefined,\n existsInCompsDevDeps: Dependency | undefined\n ): boolean {\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.packageDependencies[pkgName];\n\n // @types/* packages should not be added to components at all when in env peers.\n // When a component is installed in a workspace, its env is installed as well.\n // Packages listed as peers in env.jsonc become runtime dependencies of the env itself,\n // so they're always installed alongside the env. Since @types/* packages are only needed\n // for TypeScript compilation (which the env handles), there's no need for components\n // to have them in their own dependencies.\n if (pkgName.startsWith('@types/')) {\n delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n return true;\n }\n\n if (existsInCompsDeps) {\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n if (existsInCompsDevDeps) {\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n\n return false;\n }\n\n private removePackageFromAllDependencyTypes(pkgName: string): void {\n delete this.allPackagesDependencies.packageDependencies[pkgName];\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n }\n\n private applyPackageVersion(\n field: string,\n pkgName: string,\n pkgVal: string,\n existsInCompsDeps: Dependency | undefined,\n existsInCompsDevDeps: Dependency | undefined,\n existsInCompsPeerDeps: Dependency | undefined\n ): void {\n // If it exists in comps deps / comp dev deps, we don't want to add it to the allPackagesDependencies\n // as it will make the same dep both a dev and runtime dep\n // since we are here only for auto detected deps, it means we already resolved the version correctly\n // so we don't need to really modify the version\n // also the version here might have a range (^ or ~ for example) so we can't\n // just put it as is, as it is not valid for component deps to have range\n const shouldAddPackage =\n pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&\n ((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies');\n\n if (!shouldAddPackage) return;\n\n const key = DepsKeysToAllPackagesDepsKeys[field];\n\n if ((existsInCompsDeps || existsInCompsDevDeps) && field === 'peerDependencies') {\n const comp = (existsInCompsDeps ?? existsInCompsDevDeps) as Dependency;\n comp.versionRange = pkgVal;\n this.allDependencies.peerDependencies.push(comp);\n } else {\n this.allPackagesDependencies[key][pkgName] = pkgVal;\n }\n\n if (existsInCompsPeerDeps) {\n existsInCompsPeerDeps.versionRange = pkgVal;\n }\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvId(\n this.component.id,\n this.component.files,\n this.getEnvExtendsDeps()\n );\n if (!envPolicy) return;\n const envPolicyManifest = envPolicy.selfPolicy.toVersionManifest();\n\n if (!envPolicyManifest || !Object.keys(envPolicyManifest).length) {\n return;\n }\n this.overridesDependencies.envOwnPkgNames = new Set(Object.keys(envPolicyManifest));\n const deps = this.allPackagesDependencies.packageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];\n if (peerVersionFromEnvPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n }\n });\n });\n const resolvedEnvPolicyManifest = Object.keys(envPolicyManifest).reduce((acc, pkgName) => {\n const version = envPolicyManifest[pkgName];\n if (version !== '+') {\n acc[pkgName] = version;\n return acc;\n }\n acc[pkgName] = this.resolveEnvPeerDepVersion(pkgName);\n return acc;\n }, {});\n // TODO: handle component deps once we support peers between components\n this.allPackagesDependencies.packageDependencies = {\n ...deps,\n ...resolvedEnvPolicyManifest,\n };\n }\n\n /**\n * in the env.jsonc file, a policy-peer package can have `+` sign in the version. it means that it should be resolved\n * from the workspace. whatever version is installed/imported in the workspace, it should be used here.\n * in some cases, the package is not installed in the workspace, for example, the env is now imported without the\n * dep. so the dep is not in the node_modules.\n * strategy should be: .bitmap, workspace.jsonc, then model.\n * it's not in .bitmap, otherwise, it was linked and `_resolvePackageData` would have found it.\n * so either, it's in the workspace.jsonc or in the model.\n */\n private resolveEnvPeerDepVersion(pkgName: string): string {\n const resolved = this._resolvePackageData(pkgName);\n if (resolved && resolved.concreteVersion) {\n return resolved.concreteVersion;\n }\n const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();\n const wsVersion = wsPolicy?.dependencies?.[pkgName] || wsPolicy?.peerDependencies?.[pkgName];\n if (wsVersion) {\n return wsVersion;\n }\n const fromModelDep = this.componentFromModel?.dependencies.get().find((dep) => dep.packageName === pkgName);\n if (fromModelDep) {\n return fromModelDep.id.version;\n }\n const fromModelPkg = this.componentFromModel?.packageDependencies[pkgName];\n if (fromModelPkg) {\n return fromModelPkg;\n }\n // no where to be found. instead of throwing an error, return the \"latest\" version\n return '*';\n }\n\n /**\n * returns `package.json` of the component when it's imported, or `package.json` of the workspace\n * when it's authored.\n */\n private _getPackageJson(): Record<string, any> | undefined {\n return this.consumer?.packageJson.packageJsonObject;\n }\n\n private _getPackageJsonFromComponentModel(): Record<string, any> | undefined {\n if (this.componentFromModel && this.component.componentMap) {\n // a component is imported but the package.json file is missing or never written\n // read the values from the model\n const packageJson = PackageJsonFile.createFromComponent(\n this.component.componentMap.rootDir,\n this.componentFromModel\n );\n return packageJson.packageJsonObject;\n }\n return undefined;\n }\n\n private setLegacyInsideHarmonyIssue() {\n if (this.componentFromModel && this.componentFromModel.isLegacy) {\n this.issues.getOrCreate(IssuesClasses.LegacyInsideHarmony).data = true;\n }\n }\n\n private _pkgFieldMapping(field: string) {\n switch (field) {\n case 'dependencies':\n return 'packageDependencies';\n case 'devDependencies':\n return 'devPackageDependencies';\n case 'peerDependencies':\n return 'peerPackageDependencies';\n default:\n throw new Error(`${field} is not recognized`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","_interopRequireDefault","require","_semver","_componentId","_lodash","_componentIssues","_legacy","_legacy2","_component","_legacy3","_resolvePkgData","_dependencyResolver","_legacy4","_overridesDependencies","_dependenciesData","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","DepsKeysToAllPackagesDepsKeys","dependencies","devDependencies","peerDependencies","ApplyOverrides","constructor","component","depsResolver","logger","workspace","componentId","componentFromModel","allDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","processedFiles","issues","setLegacyInsideHarmonyIssue","overridesDependencies","OverridesDependencies","debugDependenciesData","components","setOverridesDependencies","overrides","getOverridesData","getEnvExtendsDeps","wsDeps","modelDeps","merged","Dependencies","merge","updateVersionOfMissingsInEnvJsonc","get","deps","missingIssue","getIssueByName","envJsoncMissing","find","item","filePath","missingPackages","mergedRootPolicy","getWorkspacePolicy","missingPackage","foundInRootPolicy","foundInDeps","getByPackageName","id","changeVersion","version","ComponentOverrides","loadFromConsumer","consumer","getDependenciesData","populateDependencies","dependenciesData","DependenciesData","coreAspects","autoDetectOverrides","loadAutoDetectOverrides","removeIgnoredComponentsByOverrides","cloneAllPackagesDependencies","removeIgnoredPackagesByOverrides","removeDevAndEnvDepsIfTheyAlsoRegulars","applyPeersFromComponentModel","applyPackageJson","applyWorkspacePolicy","makeLegacyAsPeer","applyAutoDetectOverridesOnComponent","applyAutoDetectedPeersFromEnvOnEnvItSelf","manuallyAddDependencies","removeCompDepsFromPackages","uniq","shouldBeIncluded","dep","fileType","shouldIgnorePackage","packageName","isTestFile","missingData","m","pkg","isDevFile","delete","IssuesClasses","MissingPackagesDependenciesOnFs","getAutoDetectOverrides","extensions","files","originAllPackagesDependencies","cloneDeep","pkgVersion","pkgName","shouldIgnorePackageByType","shouldBeIncludedDev","pickBy","_resolvePackageData","undefined","componentMap","rootDir","consumerPath","getPath","basePath","path","join","modulePath","resolvePackagePath","packageObject","resolvePackageData","_getComponentIdToAdd","dependency","versionRange","depField","compDep","findComponentDepByPackageName","range","packageData","name","isMatch","getDependenciesToAddManually","packageJson","existingDependencies","packages","missingPkgRemovals","Set","DEPENDENCIES_FIELDS","dependencyValue","componentData","isEqualWithoutVersion","warn","toString","dependencyExist","d","_addManuallyAddedDep","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","add","size","has","_getPackageJson","otherFields","f","depsSet","depData","Dependency","otherField","isEmpty","_pkgFieldMapping","peerName","componentPeers","map","currPackagesKeys","reduce","acc","field","includes","getNotRegularPackages","difference","pick","componentDepsIds","ComponentIdList","c","getPeerDependencies","_getPackageJsonFromComponentModel","projectPeerDependencies","peerPackages","shouldIgnorePeerPackage","pkgJsonPeer","pkgJsonRegularDeps","peerDeps","_pkgVal","peerVersionFromPkgJson","regularVersionFromPkgJson","wsPolicy","getWorkspacePolicyManifest","wsPeer","wsRegular","peerPackageDeps","peerVersionFromWsPolicy","regularVersionFromWsPolicy","isNaN","originallyExists","getMissingPackagesFromIssues","pkgVal","applyAutoDetectedOverrideForPackage","flat","isPackageAutoDetected","existsInAnyCompDeps","Boolean","existsInOriginalPkgDeps","existsInCompsDeps","existsInCompsDevDeps","existsInCompsPeerDeps","shouldSkip","handlePeerDependencyOverride","removePackageFromAllDependencyTypes","applyPackageVersion","startsWith","shouldAddPackage","MANUALLY_REMOVE_DEPENDENCY","key","comp","isPlusVersion","resolvePlusVersion","resolveEnvPeerDepVersion","envPolicy","getEnvPolicyFromEnvId","envPolicyManifest","selfPolicy","toVersionManifest","envOwnPkgNames","peerVersionFromEnvPolicy","resolvedEnvPolicyManifest","preferWorkspacePolicy","wsVersion","resolved","concreteVersion","semver","satisfies","validRange","minVersion","fromModelDep","fromModelPkg","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import path from 'path';\nimport semver from 'semver';\nimport type { ComponentID } from '@teambit/component-id';\nimport { ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, difference, forEach, isEmpty, pick, pickBy, uniq } from 'lodash';\nimport type { IssuesList, MissingPackagesData } from '@teambit/component-issues';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';\nimport type { ConsumerComponent as Component } from '@teambit/legacy.consumer-component';\nimport { Dependency, Dependencies } from '@teambit/legacy.consumer-component';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport type { PathLinux } from '@teambit/legacy.utils';\nimport { resolvePackagePath } from '@teambit/legacy.utils';\nimport type { ResolvedPackageData } from '../resolve-pkg-data';\nimport { resolvePackageData } from '../resolve-pkg-data';\nimport type { Workspace } from '@teambit/workspace';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { isPlusVersion, resolvePlusVersion } from '@teambit/dependency-resolver';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { ComponentMap } from '@teambit/legacy.bit-map';\nimport type { Logger } from '@teambit/logger';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DependenciesData } from './dependencies-data';\nimport type { DebugDependencies, FileType } from './auto-detect-deps';\n\nexport type AllDependencies = {\n dependencies: Dependency[];\n devDependencies: Dependency[];\n peerDependencies: Dependency[];\n};\n\nexport type AllPackagesDependencies = {\n packageDependencies: Record<string, string>;\n devPackageDependencies: Record<string, string>;\n peerPackageDependencies: Record<string, string>;\n};\n\nconst DepsKeysToAllPackagesDepsKeys = {\n dependencies: 'packageDependencies',\n devDependencies: 'devPackageDependencies',\n peerDependencies: 'peerPackageDependencies',\n};\n\nexport class ApplyOverrides {\n componentId: ComponentID;\n componentFromModel: Component;\n allDependencies: AllDependencies;\n allPackagesDependencies: AllPackagesDependencies;\n /**\n * This will store a copy of the package deps before removal\n * in order to apply auto detected rules that are running after the removal\n */\n originAllPackagesDependencies: AllPackagesDependencies;\n issues: IssuesList;\n coreAspects: string[] = [];\n processedFiles: string[];\n overridesDependencies: OverridesDependencies;\n debugDependenciesData: DebugDependencies;\n /**\n * see workspace.getAutoDetectOverrides docs.\n * these overrides are from env/variants/merge-config. not ones with \"force: true\".\n */\n public autoDetectOverrides: Record<string, any> | undefined;\n constructor(\n private component: Component,\n private depsResolver: DependencyResolverMain,\n private logger: Logger,\n private workspace?: Workspace\n ) {\n this.componentId = component.componentId;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.componentFromModel = this.component.componentFromModel;\n this.allDependencies = {\n dependencies: [],\n devDependencies: [],\n peerDependencies: [],\n };\n this.allPackagesDependencies = {\n packageDependencies: {},\n devPackageDependencies: {},\n peerPackageDependencies: {},\n };\n this.processedFiles = [];\n this.issues = component.issues;\n this.setLegacyInsideHarmonyIssue();\n this.overridesDependencies = new OverridesDependencies(component);\n this.debugDependenciesData = { components: [] };\n }\n\n private async setOverridesDependencies() {\n const overrides = await this.getOverridesData();\n this.component.overrides = overrides;\n }\n\n private getEnvExtendsDeps() {\n const wsDeps = this.allDependencies.dependencies || [];\n const modelDeps = this.component.componentFromModel?.dependencies.dependencies || [];\n const merged = Dependencies.merge([wsDeps, modelDeps]);\n this.updateVersionOfMissingsInEnvJsonc(merged);\n return merged.get();\n }\n\n /**\n * This function is aim to solve the following case:\n * I have env1 extends env2 in my workspace\n * env1 is tagged with env2@1.0.0 in the model\n * env2 is in the workspace policy with version 2.0.0\n * the node_modules is empty so env2@2.0.0 is missing\n * Without this change, we will get the env2@1.0.0 from the model\n * Then we will take the deps from its resolved env.jsonc\n * instead of takeing those of v2.0.0\n * This function fixing this issue\n * @param deps\n * @returns\n */\n private updateVersionOfMissingsInEnvJsonc(deps: Dependencies) {\n const missingIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs');\n if (!missingIssue) return;\n const envJsoncMissing = missingIssue.data.find((item) => item.filePath === 'env.jsonc');\n if (envJsoncMissing && envJsoncMissing.missingPackages.length) {\n const mergedRootPolicy = this.depsResolver.getWorkspacePolicy();\n envJsoncMissing.missingPackages.forEach((missingPackage) => {\n const foundInRootPolicy = mergedRootPolicy.find(missingPackage);\n const foundInDeps = deps.getByPackageName(missingPackage);\n if (foundInRootPolicy && foundInDeps) {\n foundInDeps.id = foundInDeps.id.changeVersion(foundInRootPolicy.value.version);\n }\n });\n }\n }\n\n private async getOverridesData() {\n if (this.component.overrides) return this.component.overrides;\n\n const overrides = await ComponentOverrides.loadFromConsumer(this.component, this.getEnvExtendsDeps());\n\n return overrides;\n }\n\n get consumer(): Consumer | undefined {\n return this.workspace?.consumer;\n }\n\n async getDependenciesData(): Promise<{\n dependenciesData: DependenciesData;\n overridesDependencies: OverridesDependencies;\n autoDetectOverrides?: Record<string, any>;\n }> {\n await this.setOverridesDependencies();\n await this.populateDependencies();\n const dependenciesData = new DependenciesData(\n this.allDependencies,\n this.allPackagesDependencies,\n this.issues,\n this.coreAspects\n );\n return {\n dependenciesData,\n overridesDependencies: this.overridesDependencies,\n autoDetectOverrides: this.autoDetectOverrides,\n };\n }\n\n /**\n * Given the tree of file dependencies from the driver, find the components of these files.\n * Each dependency file has a path, use bit.map to search for the component name by that path.\n * If the component is found, add it to \"this.allDependencies.dependencies\". Otherwise, add it to \"this.issues.untrackedDependencies\".\n *\n * For the found components, add their sourceRelativePath and destinationRelativePath, they are being used for\n * generating links upon import:\n * sourceRelativePath - location of the link file.\n * destinationRelativePath - destination written inside the link file.\n *\n * When a dependency is found in a regular (implementation) file, it goes to `dependencies`. If\n * it found on a test file, it goes to `devDependencies`.\n * Similarly, when a package is found in a regular file, it goes to `packageDependencies`. When\n * if found in a test file, it goes to `devPackageDependencies`.\n * An exception for the above is when a package is required in a regular or test file but is also\n * mentioned in the `package.json` file as a peerDependency, in that case, the package is added\n * to `peerPackageDependencies` and removed from other places. Unless this package is overridden\n * and marked as ignored in the consumer or component config file.\n */\n private async populateDependencies() {\n await this.loadAutoDetectOverrides();\n this.removeIgnoredComponentsByOverrides();\n this.cloneAllPackagesDependencies();\n this.removeIgnoredPackagesByOverrides();\n this.removeDevAndEnvDepsIfTheyAlsoRegulars();\n this.applyPeersFromComponentModel();\n this.applyPackageJson();\n this.applyWorkspacePolicy();\n this.makeLegacyAsPeer();\n await this.applyAutoDetectOverridesOnComponent();\n // This was moved here (it used to be after this.manuallyAddDependencies) to fix an issue with a case where\n // an env define the same dependency defined by its own env, in both places:\n // its env.jsonc, and via bit deps set, with different versions.\n // before this fix the env.jsonc version was taken, and the deps set version was ignored for - bit show and\n // package.json\n // but it was taken into account for the actual dependency installation.\n // now we take the version from the deps set in both cases.\n // It make more sense to have it here before manually add dependencies, but the reason it wasn't like this is\n // because (pasting the original comment here):\n // ------ORIGINAL COMMENT------\n // Doing this here (after manuallyAddDependencies) because usually the env of the env is adding dependencies as peer of the env\n // which will make this not work if it come before\n // example:\n // custom react has peers with react 16.4.0.\n // the custom react uses the \"teambit.envs/env\" env, which will add react ^17.0.0 to every component that uses it\n // we want to make sure that the custom react is using 16.4.0 not 17.\n // ------END OF ORIGINAL COMMENT------\n // Since we did a massive refactor to the way we handle dependencies, we can now move it here now, as the original\n // issue doesn't seems like an issue any more.\n await this.applyAutoDetectedPeersFromEnvOnEnvItSelf();\n this.manuallyAddDependencies();\n // Ensuring component dependencies are not part of the package dependencies to prevent duplications\n this.removeCompDepsFromPackages();\n // Doing this here (after manuallyAddDependencies) because usually the env of the env is adding dependencies as peer of the env\n // which will make this not work if it come before\n // example:\n // custom react has peers with react 16.4.0.\n // the custom react uses the \"teambit.envs/env\" env, which will add react ^17.0.0 to every component that uses it\n // we want to make sure that the custom react is using 16.4.0 not 17.\n this.coreAspects = uniq(this.coreAspects);\n }\n\n private removeIgnoredComponentsByOverrides() {\n const shouldBeIncluded = (dep: Dependency, fileType: FileType) =>\n !this.overridesDependencies.shouldIgnorePackage(dep.packageName as string, fileType);\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: false })\n );\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter((dep) =>\n shouldBeIncluded(dep, { isTestFile: true })\n );\n\n const missingIssue = this.issues.getIssueByName('MissingPackagesDependenciesOnFs');\n if (!missingIssue) return;\n const missingData = missingIssue.data as MissingPackagesData[];\n missingData.forEach((m) => {\n m.missingPackages = m.missingPackages.filter(\n (pkg) => !this.overridesDependencies.shouldIgnorePackage(pkg, { isTestFile: m.isDevFile })\n );\n });\n missingIssue.data = missingData.filter((m) => m.missingPackages.length);\n if (!missingIssue.data.length) this.issues.delete(IssuesClasses.MissingPackagesDependenciesOnFs);\n }\n\n private async loadAutoDetectOverrides() {\n // outside a workspace, they're calculated by the caller (if at all) and set before this runs\n if (!this.workspace) return;\n this.autoDetectOverrides = await this.workspace.getAutoDetectOverrides(\n this.component.extensions,\n this.component.id,\n this.component.files,\n this.getEnvExtendsDeps()\n );\n }\n\n private cloneAllPackagesDependencies() {\n this.originAllPackagesDependencies = cloneDeep(this.allPackagesDependencies);\n }\n\n private removeIgnoredPackagesByOverrides() {\n const shouldBeIncluded = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'dependencies');\n const shouldBeIncludedDev = (pkgVersion, pkgName) =>\n !this.overridesDependencies.shouldIgnorePackageByType(pkgName, 'devDependencies');\n\n this.allPackagesDependencies.packageDependencies = pickBy(\n this.allPackagesDependencies.packageDependencies,\n shouldBeIncluded\n );\n this.allPackagesDependencies.devPackageDependencies = pickBy(\n this.allPackagesDependencies.devPackageDependencies,\n shouldBeIncludedDev\n );\n }\n\n // TODO: maybe cache those results??\n private _resolvePackageData(packageName: string): ResolvedPackageData | undefined {\n const consumer = this.consumer;\n if (!consumer) return undefined;\n // if consumer is defined, then it has componentMap prop.\n const componentMap = this.component.componentMap as ComponentMap;\n const rootDir: PathLinux | null | undefined = componentMap.rootDir as string;\n const consumerPath = consumer.getPath();\n const basePath = rootDir ? path.join(consumerPath, rootDir) : consumerPath;\n const modulePath = resolvePackagePath(packageName, basePath, consumerPath);\n if (!modulePath) return undefined; // e.g. it's author and wasn't exported yet, so there's no node_modules of that component\n const packageObject = resolvePackageData(basePath, modulePath);\n return packageObject;\n }\n\n private _getComponentIdToAdd(\n dependency: string,\n versionRange: string,\n depField: string\n ): { componentId?: ComponentID; packageName?: string; versionRange?: string } {\n if (!this.consumer) {\n // a scope has no node_modules to resolve the package from. if it's a component dependency, use it. otherwise, a\n // forced component dependency (e.g. an env's own peer, which is a runtime dep of the env) is added as a package\n // and then dropped in favor of the component dependency, which may be in a different field.\n const compDep = this.findComponentDepByPackageName(dependency);\n if (compDep) {\n // same as the workspace (see updateDependenciesVersions), only a peer component dependency keeps its range\n const range = depField === 'peerDependencies' ? versionRange : undefined;\n return { componentId: compDep.id, packageName: dependency, versionRange: range };\n }\n }\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name, versionRange };\n }\n\n private findComponentDepByPackageName(packageName: string): Dependency | undefined {\n const { dependencies, devDependencies, peerDependencies } = this.allDependencies;\n const isMatch = (dep: Dependency) => dep.packageName === packageName;\n return dependencies.find(isMatch) || devDependencies.find(isMatch) || peerDependencies.find(isMatch);\n }\n\n getDependenciesToAddManually(\n packageJson: Record<string, any> | null | undefined,\n existingDependencies: AllDependencies\n ): { components: Record<string, any>; packages: Record<string, any> } | undefined {\n const overrides = this.overridesDependencies.getDependenciesToAddManually();\n if (!overrides) return undefined;\n const components = {};\n const packages = {};\n const missingPkgRemovals = new Set<string>();\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!overrides[depField]) return;\n Object.keys(overrides[depField]).forEach((dependency) => {\n const dependencyValue = overrides[depField][dependency];\n const componentData = this._getComponentIdToAdd(dependency, dependencyValue, depField);\n if (componentData?.componentId) {\n if (componentData.componentId.isEqualWithoutVersion(this.componentId)) {\n this.logger.warn(\n `component ${this.componentId.toString()} depends on itself ${componentData.componentId.toString()}. ignoring it.`\n );\n return;\n }\n const dependencyExist = existingDependencies[depField].find((d) =>\n d.id.isEqualWithoutVersion(componentData.componentId)\n );\n if (!dependencyExist) {\n this.overridesDependencies._addManuallyAddedDep(depField, componentData.componentId.toString());\n components[depField] ? components[depField].push(componentData) : (components[depField] = [componentData]);\n }\n return;\n }\n const addedPkg = this.overridesDependencies._manuallyAddPackage(\n depField,\n dependency,\n dependencyValue,\n packageJson\n );\n if (addedPkg) {\n packages[depField] = Object.assign(packages[depField] || {}, addedPkg);\n if (componentData && !componentData.packageName) {\n this.overridesDependencies.missingPackageDependencies.push(dependency);\n }\n } else if (\n // The \"+\" sentinel couldn't be resolved from workspace package.json\n // (e.g. fresh workspace after bit new/fork), but the package was\n // already resolved by applyAutoDetectedPeersFromEnvOnEnvItSelf().\n // Remove it from missingPackageDependencies to avoid a false positive.\n this.allPackagesDependencies.packageDependencies[dependency] ||\n this.allPackagesDependencies.devPackageDependencies[dependency] ||\n this.allPackagesDependencies.peerPackageDependencies[dependency]\n ) {\n missingPkgRemovals.add(dependency);\n }\n });\n });\n if (missingPkgRemovals.size > 0) {\n this.overridesDependencies.missingPackageDependencies =\n this.overridesDependencies.missingPackageDependencies.filter((pkg) => !missingPkgRemovals.has(pkg));\n }\n return { components, packages };\n }\n\n private manuallyAddDependencies() {\n const packageJson = this._getPackageJson();\n const dependencies = this.getDependenciesToAddManually(packageJson, this.allDependencies);\n if (!dependencies) return;\n const { components, packages } = dependencies;\n DEPENDENCIES_FIELDS.forEach((depField) => {\n const otherFields = DEPENDENCIES_FIELDS.filter((f) => f !== depField);\n if (components[depField] && components[depField].length) {\n const depsSet = new Set();\n components[depField].forEach((depData) => {\n depsSet.add(depData.packageName);\n this.allDependencies[depField].push(\n new Dependency(depData.componentId, [], depData.packageName, depData.versionRange)\n );\n });\n otherFields.forEach((otherField) => {\n this.allDependencies[otherField] = this.allDependencies[otherField].filter(\n (dep) => !depsSet.has(dep.packageName)\n );\n });\n }\n if (packages[depField] && !isEmpty(packages[depField])) {\n Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);\n // remove the dependency from the other fields to prevent duplications\n otherFields.forEach((otherField) => {\n Object.keys(packages[depField]).forEach((pkgName) => {\n delete this.allPackagesDependencies[this._pkgFieldMapping(otherField)][pkgName];\n });\n });\n }\n });\n // The automatic dependency detector considers all found dependencies to be runtime dependencies.\n // But this breaks proper installation of injected subdependencies that are resolved from workspace components.\n if (this.allPackagesDependencies.packageDependencies && packages.peerDependencies) {\n for (const peerName of Object.keys(packages.peerDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n if (this.allPackagesDependencies.packageDependencies && packages.peerPackageDependencies) {\n for (const peerName of Object.keys(packages.peerPackageDependencies)) {\n delete this.allPackagesDependencies.packageDependencies[peerName];\n }\n }\n if (components.peerDependencies) {\n const componentPeers = new Set(components.peerDependencies.map(({ packageName }) => packageName));\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => !dep.packageName || !componentPeers.has(dep.packageName)\n );\n }\n }\n\n /**\n * The function `removeCompDepsFromPackages` removes component dependencies from different package dependency fields\n * based on certain conditions.\n */\n private removeCompDepsFromPackages() {\n const currPackagesKeys = ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].reduce(\n (acc, field) => {\n acc[field] = Object.keys(this.allPackagesDependencies[field]);\n return acc;\n },\n {}\n );\n\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (this.allDependencies[depField].length) {\n this.allDependencies[depField].forEach((dep) => {\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n const keys = currPackagesKeys[field];\n if (keys.includes(dep.packageName)) {\n delete this.allPackagesDependencies[field][dep.packageName];\n }\n });\n });\n }\n });\n }\n\n /**\n * Remove the dependencies which appear both in dev and regular deps from the dev\n * Because if a dependency is both dev dependency and regular dependency it should be treated as regular one\n * Apply for both packages and components dependencies\n */\n private removeDevAndEnvDepsIfTheyAlsoRegulars() {\n // remove dev and env packages that are also regular packages\n const getNotRegularPackages = (packages) =>\n difference(Object.keys(packages), Object.keys(this.allPackagesDependencies.packageDependencies));\n this.allPackagesDependencies.devPackageDependencies = pick(\n this.allPackagesDependencies.devPackageDependencies,\n getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies)\n );\n // remove dev dependencies that are also regular dependencies\n const componentDepsIds = new ComponentIdList(...this.allDependencies.dependencies.map((c) => c.id));\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (d) => !componentDepsIds.has(d.id)\n );\n }\n\n private applyPeersFromComponentModel(): void {\n const getPeerDependencies = (): Record<string, any> => {\n const packageJson = this._getPackageJsonFromComponentModel();\n if (packageJson && packageJson.peerDependencies) return packageJson.peerDependencies;\n return {};\n };\n const projectPeerDependencies = getPeerDependencies();\n const peerPackages = {};\n if (isEmpty(projectPeerDependencies)) return;\n\n // check whether the peer-dependencies was actually require in the code. if so, remove it from\n // the packages/dev-packages and add it as a peer-package.\n // if it was not required in the code, don't add it to the peerPackages\n Object.keys(projectPeerDependencies).forEach((pkg) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkg)) return;\n ['packageDependencies', 'devPackageDependencies'].forEach((field) => {\n if (Object.keys(this.allPackagesDependencies[field]).includes(pkg)) {\n delete this.allPackagesDependencies[field][pkg];\n peerPackages[pkg] = projectPeerDependencies[pkg];\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackages;\n }\n\n private applyPackageJson(): void {\n const packageJson = this._getPackageJson();\n if (!packageJson) return;\n const pkgJsonPeer = packageJson.peerDependencies || {};\n const pkgJsonRegularDeps = packageJson.dependencies || {};\n const peerDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromPkgJson = pkgJsonPeer[pkgName];\n const regularVersionFromPkgJson = pkgJsonRegularDeps[pkgName];\n if (peerVersionFromPkgJson) {\n delete this.allPackagesDependencies[field][pkgName];\n peerDeps[pkgName] = peerVersionFromPkgJson;\n } else if (regularVersionFromPkgJson) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromPkgJson;\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerDeps;\n }\n\n private applyWorkspacePolicy(): void {\n const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();\n if (!wsPolicy) return;\n const wsPeer = wsPolicy.peerDependencies || {};\n const wsRegular = wsPolicy.dependencies || {};\n const peerPackageDeps = this.allPackagesDependencies.peerPackageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n peerPackageDeps[pkgName] = peerVersionFromWsPolicy;\n } else if (regularVersionFromWsPolicy) {\n delete this.allPackagesDependencies.peerPackageDependencies?.[pkgName];\n this.allPackagesDependencies[field][pkgName] = regularVersionFromWsPolicy;\n }\n });\n });\n this.allPackagesDependencies.peerPackageDependencies = peerPackageDeps;\n\n const peerDeps = this.allDependencies.peerDependencies ?? [];\n ['dependencies', 'devDependencies'].forEach((field) => {\n for (const dep of this.allDependencies[field]) {\n const pkgName = dep.packageName;\n const peerVersionFromWsPolicy = wsPeer[pkgName];\n const regularVersionFromWsPolicy = wsRegular[pkgName];\n if (peerVersionFromWsPolicy) {\n dep.versionRange = peerVersionFromWsPolicy;\n peerDeps.push(dep);\n } else if (regularVersionFromWsPolicy) {\n dep.versionRange = regularVersionFromWsPolicy;\n }\n }\n this.allDependencies[field] = this.allDependencies[field].filter(({ packageName }) => !wsPeer[packageName]);\n });\n this.allDependencies.peerDependencies = peerDeps;\n }\n\n /**\n * It removes the @teambit/legacy dependency from the dependencies/devDeps and adds it as a peer dependency with ^.\n */\n private makeLegacyAsPeer(): void {\n let version;\n if (this.allPackagesDependencies.packageDependencies['@teambit/legacy']) {\n version = this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.packageDependencies['@teambit/legacy'];\n }\n if (this.allPackagesDependencies.devPackageDependencies['@teambit/legacy']) {\n if (!version) version = this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n delete this.allPackagesDependencies.devPackageDependencies['@teambit/legacy'];\n }\n if (version) {\n if (!Number.isNaN(version[0])) version = `^${version}`;\n this.allPackagesDependencies.peerPackageDependencies['@teambit/legacy'] = version;\n }\n }\n\n private async applyAutoDetectOverridesOnComponent(): Promise<void> {\n const autoDetectOverrides = this.autoDetectOverrides;\n\n if (!autoDetectOverrides || !Object.keys(autoDetectOverrides).length) {\n return;\n }\n\n const originallyExists: string[] = [];\n const missingPackages = this.getMissingPackagesFromIssues();\n\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {\n forEach(autoDetectOverrides[field], (pkgVal, pkgName) => {\n this.applyAutoDetectedOverrideForPackage(field, pkgName, pkgVal, originallyExists, missingPackages);\n });\n });\n }\n\n private getMissingPackagesFromIssues(): string[] {\n const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data as\n | MissingPackagesData[]\n | undefined;\n if (!missingData) return [];\n return uniq(missingData.map((d) => d.missingPackages).flat());\n }\n\n private isPackageAutoDetected(pkgName: string, originallyExists: string[], missingPackages: string[]): boolean {\n // Check component dependencies\n const existsInAnyCompDeps = Boolean(this.findComponentDepByPackageName(pkgName));\n\n // Check originAllPackagesDependencies instead of allPackagesDependencies\n // as it might be already removed at this point if it was set with \"-\" in runtime/dev\n const existsInOriginalPkgDeps =\n this.originAllPackagesDependencies.packageDependencies[pkgName] ||\n this.originAllPackagesDependencies.devPackageDependencies[pkgName] ||\n this.originAllPackagesDependencies.peerPackageDependencies[pkgName];\n\n // Check if it was originally exists in the component\n // This handles policies like: dependencies: {\"my-dep\": \"-\"}, devDependencies: {\"my-dep\": \"1.0.0\"}\n // where we might remove it before getting to devDeps\n return (\n existsInAnyCompDeps ||\n !!existsInOriginalPkgDeps ||\n originallyExists.includes(pkgName) ||\n missingPackages.includes(pkgName)\n );\n }\n\n private applyAutoDetectedOverrideForPackage(\n field: string,\n pkgName: string,\n pkgVal: string,\n originallyExists: string[],\n missingPackages: string[]\n ): void {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) {\n return;\n }\n\n if (!this.isPackageAutoDetected(pkgName, originallyExists, missingPackages)) {\n return;\n }\n\n originallyExists.push(pkgName);\n\n const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => dep.packageName === pkgName);\n const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => dep.packageName === pkgName);\n const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find((dep) => dep.packageName === pkgName);\n\n // When changing peer dependency we want it to be stronger than the other types\n if (field === 'peerDependencies') {\n const shouldSkip = this.handlePeerDependencyOverride(pkgName, existsInCompsDeps, existsInCompsDevDeps);\n if (shouldSkip) return;\n }\n\n // Clear package from all dependency types to avoid duplicates\n // This fixes cases where a package moves between dep types in env.jsonc\n this.removePackageFromAllDependencyTypes(pkgName);\n\n this.applyPackageVersion(field, pkgName, pkgVal, existsInCompsDeps, existsInCompsDevDeps, existsInCompsPeerDeps);\n }\n\n /**\n * Handle peer dependency specific logic.\n * @returns true if the package should be skipped (not added to dependencies)\n */\n private handlePeerDependencyOverride(\n pkgName: string,\n existsInCompsDeps: Dependency | undefined,\n existsInCompsDevDeps: Dependency | undefined\n ): boolean {\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.packageDependencies[pkgName];\n\n // @types/* packages should not be added to components at all when in env peers.\n // When a component is installed in a workspace, its env is installed as well.\n // Packages listed as peers in env.jsonc become runtime dependencies of the env itself,\n // so they're always installed alongside the env. Since @types/* packages are only needed\n // for TypeScript compilation (which the env handles), there's no need for components\n // to have them in their own dependencies.\n if (pkgName.startsWith('@types/')) {\n delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n return true;\n }\n\n if (existsInCompsDeps) {\n this.allDependencies.dependencies = this.allDependencies.dependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n if (existsInCompsDevDeps) {\n this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(\n (dep) => dep.packageName !== pkgName\n );\n }\n\n return false;\n }\n\n private removePackageFromAllDependencyTypes(pkgName: string): void {\n delete this.allPackagesDependencies.packageDependencies[pkgName];\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n }\n\n private applyPackageVersion(\n field: string,\n pkgName: string,\n pkgVal: string,\n existsInCompsDeps: Dependency | undefined,\n existsInCompsDevDeps: Dependency | undefined,\n existsInCompsPeerDeps: Dependency | undefined\n ): void {\n // If it exists in comps deps / comp dev deps, we don't want to add it to the allPackagesDependencies\n // as it will make the same dep both a dev and runtime dep\n // since we are here only for auto detected deps, it means we already resolved the version correctly\n // so we don't need to really modify the version\n // also the version here might have a range (^ or ~ for example) so we can't\n // just put it as is, as it is not valid for component deps to have range\n const shouldAddPackage =\n pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&\n ((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies');\n\n if (!shouldAddPackage) return;\n\n const key = DepsKeysToAllPackagesDepsKeys[field];\n\n if ((existsInCompsDeps || existsInCompsDevDeps) && field === 'peerDependencies') {\n const comp = (existsInCompsDeps ?? existsInCompsDevDeps) as Dependency;\n comp.versionRange = pkgVal;\n this.allDependencies.peerDependencies.push(comp);\n } else {\n // a package has no separate version and range, so a \"+\" placeholder is resolved here.\n // a component dep keeps it in the versionRange, and it's resolved when generating the package.json\n this.allPackagesDependencies[key][pkgName] = isPlusVersion(pkgVal)\n ? resolvePlusVersion(pkgVal, this.resolveEnvPeerDepVersion(pkgName, true))\n : pkgVal;\n }\n\n if (existsInCompsPeerDeps) {\n existsInCompsPeerDeps.versionRange = pkgVal;\n }\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvId(\n this.component.id,\n this.component.files,\n this.getEnvExtendsDeps()\n );\n if (!envPolicy) return;\n const envPolicyManifest = envPolicy.selfPolicy.toVersionManifest();\n\n if (!envPolicyManifest || !Object.keys(envPolicyManifest).length) {\n return;\n }\n this.overridesDependencies.envOwnPkgNames = new Set(Object.keys(envPolicyManifest));\n const deps = this.allPackagesDependencies.packageDependencies || {};\n // we are not iterate component deps since they are resolved from what actually installed\n // the policy used for installation only in that case\n ['packageDependencies', 'devPackageDependencies', 'peerPackageDependencies'].forEach((field) => {\n forEach(this.allPackagesDependencies[field], (_pkgVal, pkgName) => {\n const peerVersionFromEnvPolicy = envPolicyManifest[pkgName];\n if (peerVersionFromEnvPolicy) {\n delete this.allPackagesDependencies[field][pkgName];\n }\n });\n });\n const resolvedEnvPolicyManifest = Object.keys(envPolicyManifest).reduce((acc, pkgName) => {\n const version = envPolicyManifest[pkgName];\n if (!isPlusVersion(version)) {\n acc[pkgName] = version;\n return acc;\n }\n acc[pkgName] = resolvePlusVersion(version, this.resolveEnvPeerDepVersion(pkgName));\n return acc;\n }, {});\n // TODO: handle component deps once we support peers between components\n this.allPackagesDependencies.packageDependencies = {\n ...deps,\n ...resolvedEnvPolicyManifest,\n };\n }\n\n /**\n * in the env.jsonc file, a policy-peer package can have `+` sign (or `+^`/`+~`) in the version. it means that it should be resolved\n * from the workspace. whatever version is installed/imported in the workspace, it should be used here.\n * in some cases, the package is not installed in the workspace, for example, the env is now imported without the\n * dep. so the dep is not in the node_modules.\n * strategy should be: .bitmap, workspace.jsonc, then model.\n * it's not in .bitmap, otherwise, it was linked and `_resolvePackageData` would have found it.\n * so either, it's in the workspace.jsonc or in the model.\n * @param preferWorkspacePolicy check the workspace.jsonc before what's installed. needed for a package that the\n * component gets with a plus version. what's installed for the component was installed according to the version it\n * had before, so it doesn't follow an upgrade in the workspace.jsonc (e.g. by \"bit update\").\n */\n private resolveEnvPeerDepVersion(pkgName: string, preferWorkspacePolicy = false): string {\n const wsPolicy = this.depsResolver.getWorkspacePolicyManifest();\n const wsVersion = wsPolicy?.dependencies?.[pkgName] || wsPolicy?.peerDependencies?.[pkgName];\n const resolved = this._resolvePackageData(pkgName);\n if (preferWorkspacePolicy && wsVersion) {\n // the workspace.jsonc has usually a range. the plus version needs a concrete version to add its own prefix to\n if (resolved?.concreteVersion && semver.satisfies(resolved.concreteVersion, wsVersion)) {\n return resolved.concreteVersion;\n }\n const validRange = semver.validRange(wsVersion);\n // an unconstrained range (e.g. \"*\") has no meaningful minimum, keep it as is\n if (!validRange || validRange === '*') return wsVersion;\n return semver.minVersion(wsVersion)?.version || wsVersion;\n }\n if (resolved && resolved.concreteVersion) {\n return resolved.concreteVersion;\n }\n if (wsVersion) {\n return wsVersion;\n }\n const fromModelDep = this.componentFromModel?.dependencies.get().find((dep) => dep.packageName === pkgName);\n if (fromModelDep) {\n return fromModelDep.id.version;\n }\n const fromModelPkg = this.componentFromModel?.packageDependencies[pkgName];\n if (fromModelPkg) {\n return fromModelPkg;\n }\n // no where to be found. instead of throwing an error, return the \"latest\" version\n return '*';\n }\n\n /**\n * returns `package.json` of the component when it's imported, or `package.json` of the workspace\n * when it's authored.\n */\n private _getPackageJson(): Record<string, any> | undefined {\n return this.consumer?.packageJson.packageJsonObject;\n }\n\n private _getPackageJsonFromComponentModel(): Record<string, any> | undefined {\n if (this.componentFromModel && this.component.componentMap) {\n // a component is imported but the package.json file is missing or never written\n // read the values from the model\n const packageJson = PackageJsonFile.createFromComponent(\n this.component.componentMap.rootDir,\n this.componentFromModel\n );\n return packageJson.packageJsonObject;\n }\n return undefined;\n }\n\n private setLegacyInsideHarmonyIssue() {\n if (this.componentFromModel && this.componentFromModel.isLegacy) {\n this.issues.getOrCreate(IssuesClasses.LegacyInsideHarmony).data = true;\n }\n }\n\n private _pkgFieldMapping(field: string) {\n switch (field) {\n case 'dependencies':\n return 'packageDependencies';\n case 'devDependencies':\n return 'devPackageDependencies';\n case 'peerDependencies':\n return 'peerPackageDependencies';\n default:\n throw new Error(`${field} is not recognized`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -80,5 +80,64 @@ describe('ApplyOverrides', () => {
80
80
  });
81
81
  });
82
82
  });
83
+ function createApplyOverridesWithPolicy({
84
+ installed,
85
+ inWorkspacePolicy
86
+ }) {
87
+ const applyOverrides = Object.create(_applyOverrides().ApplyOverrides.prototype);
88
+ applyOverrides.depsResolver = {
89
+ getWorkspacePolicyManifest: () => ({
90
+ dependencies: inWorkspacePolicy ? {
91
+ 'my-pkg': inWorkspacePolicy
92
+ } : {}
93
+ })
94
+ };
95
+ applyOverrides._resolvePackageData = () => installed ? {
96
+ concreteVersion: installed
97
+ } : undefined;
98
+ return applyOverrides;
99
+ }
100
+ describe('ApplyOverrides.resolveEnvPeerDepVersion()', () => {
101
+ it('should prefer the installed version by default', () => {
102
+ const applyOverrides = createApplyOverridesWithPolicy({
103
+ installed: '2.0.0',
104
+ inWorkspacePolicy: '3.0.1'
105
+ });
106
+ (0, _chai().expect)(applyOverrides.resolveEnvPeerDepVersion('my-pkg')).to.equal('2.0.0');
107
+ });
108
+ it('should prefer the workspace policy when asked to, as the installed version could be outdated', () => {
109
+ const applyOverrides = createApplyOverridesWithPolicy({
110
+ installed: '2.0.0',
111
+ inWorkspacePolicy: '3.0.1'
112
+ });
113
+ (0, _chai().expect)(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('3.0.1');
114
+ });
115
+ it('should prefer the installed version when it satisfies the workspace policy range', () => {
116
+ const applyOverrides = createApplyOverridesWithPolicy({
117
+ installed: '18.2.0',
118
+ inWorkspacePolicy: '^18.0.0'
119
+ });
120
+ (0, _chai().expect)(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('18.2.0');
121
+ });
122
+ it('should take the minimum version of the workspace policy range when the installed one is outdated', () => {
123
+ const applyOverrides = createApplyOverridesWithPolicy({
124
+ installed: '17.0.0',
125
+ inWorkspacePolicy: '^18.1.0'
126
+ });
127
+ (0, _chai().expect)(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('18.1.0');
128
+ });
129
+ it('should keep an unconstrained workspace policy range as is', () => {
130
+ const applyOverrides = createApplyOverridesWithPolicy({
131
+ inWorkspacePolicy: '*'
132
+ });
133
+ (0, _chai().expect)(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('*');
134
+ });
135
+ it('should fall back to the installed version when the workspace policy does not have the package', () => {
136
+ const applyOverrides = createApplyOverridesWithPolicy({
137
+ installed: '2.0.0'
138
+ });
139
+ (0, _chai().expect)(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('2.0.0');
140
+ });
141
+ });
83
142
 
84
143
  //# sourceMappingURL=apply-overrides.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_chai","data","require","_componentId","_legacy","_legacy2","_applyOverrides","noopLogger","debug","warn","trace","createApplyOverrides","forcedDeps","id","ComponentID","fromString","component","componentId","issues","undefined","overrides","ComponentOverrides","ApplyOverrides","describe","peerDep","Dependency","result","before","applyOverrides","dependencies","allDependencies","devDependencies","peerDependencies","getDependenciesToAddManually","it","expect","components","to","have","lengthOf","toString","equal","packages","deep","versionRange","be"],"sources":["apply-overrides.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { ComponentID } from '@teambit/component-id';\nimport { Dependency } from '@teambit/legacy.consumer-component';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport { ApplyOverrides } from './apply-overrides';\n\nconst noopLogger = { debug() {}, warn() {}, trace() {} } as unknown as Logger;\n\nfunction createApplyOverrides(forcedDeps: Record<string, Record<string, string>>) {\n const id = ComponentID.fromString('my-scope/my-env@0.0.1');\n const component = { id, componentId: id, issues: undefined, overrides: new ComponentOverrides(forcedDeps) };\n // no workspace, as in a bare scope\n return new ApplyOverrides(component as any, {} as DependencyResolverMain, noopLogger);\n}\n\ndescribe('ApplyOverrides', () => {\n describe('outside a workspace, a forced dependency that is a component dependency in another field', () => {\n // e.g. a peer that an env sets for itself (in env.jsonc) is a runtime dependency of the env. the env of the env\n // may set it as a peer, which moves the component dependency to the peers before the forced deps are added.\n const peerDep = new Dependency(\n ComponentID.fromString('my-scope/ui/button@1.0.0'),\n [],\n '@my-scope/ui.button',\n '^1.0.0'\n );\n let result: ReturnType<ApplyOverrides['getDependenciesToAddManually']>;\n before(() => {\n const applyOverrides = createApplyOverrides({ dependencies: { '@my-scope/ui.button': '1.0.0' } });\n applyOverrides.allDependencies = { dependencies: [], devDependencies: [], peerDependencies: [peerDep] };\n result = applyOverrides.getDependenciesToAddManually(undefined, applyOverrides.allDependencies);\n });\n it('should resolve the package to the component, as the node_modules of a workspace would', () => {\n expect(result?.components.dependencies).to.have.lengthOf(1);\n expect(result?.components.dependencies[0].componentId.toString()).to.equal('my-scope/ui/button@1.0.0');\n expect(result?.packages).to.deep.equal({});\n });\n it('should not set a version range on a runtime component dependency', () => {\n expect(result?.components.dependencies[0].versionRange).to.be.undefined;\n });\n });\n});\n"],"mappings":";;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,aAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,YAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,SAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,QAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAK,gBAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,eAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,MAAMM,UAAU,GAAG;EAAEC,KAAKA,CAAA,EAAG,CAAC,CAAC;EAAEC,IAAIA,CAAA,EAAG,CAAC,CAAC;EAAEC,KAAKA,CAAA,EAAG,CAAC;AAAE,CAAsB;AAE7E,SAASC,oBAAoBA,CAACC,UAAkD,EAAE;EAChF,MAAMC,EAAE,GAAGC,0BAAW,CAACC,UAAU,CAAC,uBAAuB,CAAC;EAC1D,MAAMC,SAAS,GAAG;IAAEH,EAAE;IAAEI,WAAW,EAAEJ,EAAE;IAAEK,MAAM,EAAEC,SAAS;IAAEC,SAAS,EAAE,KAAIC,6BAAkB,EAACT,UAAU;EAAE,CAAC;EAC3G;EACA,OAAO,KAAIU,gCAAc,EAACN,SAAS,EAAS,CAAC,CAAC,EAA4BT,UAAU,CAAC;AACvF;AAEAgB,QAAQ,CAAC,gBAAgB,EAAE,MAAM;EAC/BA,QAAQ,CAAC,0FAA0F,EAAE,MAAM;IACzG;IACA;IACA,MAAMC,OAAO,GAAG,KAAIC,oBAAU,EAC5BX,0BAAW,CAACC,UAAU,CAAC,0BAA0B,CAAC,EAClD,EAAE,EACF,qBAAqB,EACrB,QACF,CAAC;IACD,IAAIW,MAAkE;IACtEC,MAAM,CAAC,MAAM;MACX,MAAMC,cAAc,GAAGjB,oBAAoB,CAAC;QAAEkB,YAAY,EAAE;UAAE,qBAAqB,EAAE;QAAQ;MAAE,CAAC,CAAC;MACjGD,cAAc,CAACE,eAAe,GAAG;QAAED,YAAY,EAAE,EAAE;QAAEE,eAAe,EAAE,EAAE;QAAEC,gBAAgB,EAAE,CAACR,OAAO;MAAE,CAAC;MACvGE,MAAM,GAAGE,cAAc,CAACK,4BAA4B,CAACd,SAAS,EAAES,cAAc,CAACE,eAAe,CAAC;IACjG,CAAC,CAAC;IACFI,EAAE,CAAC,uFAAuF,EAAE,MAAM;MAChG,IAAAC,cAAM,EAACT,MAAM,EAAEU,UAAU,CAACP,YAAY,CAAC,CAACQ,EAAE,CAACC,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC;MAC3D,IAAAJ,cAAM,EAACT,MAAM,EAAEU,UAAU,CAACP,YAAY,CAAC,CAAC,CAAC,CAACZ,WAAW,CAACuB,QAAQ,CAAC,CAAC,CAAC,CAACH,EAAE,CAACI,KAAK,CAAC,0BAA0B,CAAC;MACtG,IAAAN,cAAM,EAACT,MAAM,EAAEgB,QAAQ,CAAC,CAACL,EAAE,CAACM,IAAI,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IACFP,EAAE,CAAC,kEAAkE,EAAE,MAAM;MAC3E,IAAAC,cAAM,EAACT,MAAM,EAAEU,UAAU,CAACP,YAAY,CAAC,CAAC,CAAC,CAACe,YAAY,CAAC,CAACP,EAAE,CAACQ,EAAE,CAAC1B,SAAS;IACzE,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_chai","data","require","_componentId","_legacy","_legacy2","_applyOverrides","noopLogger","debug","warn","trace","createApplyOverrides","forcedDeps","id","ComponentID","fromString","component","componentId","issues","undefined","overrides","ComponentOverrides","ApplyOverrides","describe","peerDep","Dependency","result","before","applyOverrides","dependencies","allDependencies","devDependencies","peerDependencies","getDependenciesToAddManually","it","expect","components","to","have","lengthOf","toString","equal","packages","deep","versionRange","be","createApplyOverridesWithPolicy","installed","inWorkspacePolicy","Object","create","prototype","depsResolver","getWorkspacePolicyManifest","_resolvePackageData","concreteVersion","resolveEnvPeerDepVersion"],"sources":["apply-overrides.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { ComponentID } from '@teambit/component-id';\nimport { Dependency } from '@teambit/legacy.consumer-component';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport type { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport { ApplyOverrides } from './apply-overrides';\n\nconst noopLogger = { debug() {}, warn() {}, trace() {} } as unknown as Logger;\n\nfunction createApplyOverrides(forcedDeps: Record<string, Record<string, string>>) {\n const id = ComponentID.fromString('my-scope/my-env@0.0.1');\n const component = { id, componentId: id, issues: undefined, overrides: new ComponentOverrides(forcedDeps) };\n // no workspace, as in a bare scope\n return new ApplyOverrides(component as any, {} as DependencyResolverMain, noopLogger);\n}\n\ndescribe('ApplyOverrides', () => {\n describe('outside a workspace, a forced dependency that is a component dependency in another field', () => {\n // e.g. a peer that an env sets for itself (in env.jsonc) is a runtime dependency of the env. the env of the env\n // may set it as a peer, which moves the component dependency to the peers before the forced deps are added.\n const peerDep = new Dependency(\n ComponentID.fromString('my-scope/ui/button@1.0.0'),\n [],\n '@my-scope/ui.button',\n '^1.0.0'\n );\n let result: ReturnType<ApplyOverrides['getDependenciesToAddManually']>;\n before(() => {\n const applyOverrides = createApplyOverrides({ dependencies: { '@my-scope/ui.button': '1.0.0' } });\n applyOverrides.allDependencies = { dependencies: [], devDependencies: [], peerDependencies: [peerDep] };\n result = applyOverrides.getDependenciesToAddManually(undefined, applyOverrides.allDependencies);\n });\n it('should resolve the package to the component, as the node_modules of a workspace would', () => {\n expect(result?.components.dependencies).to.have.lengthOf(1);\n expect(result?.components.dependencies[0].componentId.toString()).to.equal('my-scope/ui/button@1.0.0');\n expect(result?.packages).to.deep.equal({});\n });\n it('should not set a version range on a runtime component dependency', () => {\n expect(result?.components.dependencies[0].versionRange).to.be.undefined;\n });\n });\n});\n\nfunction createApplyOverridesWithPolicy({\n installed,\n inWorkspacePolicy,\n}: {\n installed?: string;\n inWorkspacePolicy?: string;\n}) {\n const applyOverrides = Object.create(ApplyOverrides.prototype);\n applyOverrides.depsResolver = {\n getWorkspacePolicyManifest: () => ({ dependencies: inWorkspacePolicy ? { 'my-pkg': inWorkspacePolicy } : {} }),\n };\n applyOverrides._resolvePackageData = () => (installed ? { concreteVersion: installed } : undefined);\n return applyOverrides;\n}\n\ndescribe('ApplyOverrides.resolveEnvPeerDepVersion()', () => {\n it('should prefer the installed version by default', () => {\n const applyOverrides = createApplyOverridesWithPolicy({ installed: '2.0.0', inWorkspacePolicy: '3.0.1' });\n expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg')).to.equal('2.0.0');\n });\n it('should prefer the workspace policy when asked to, as the installed version could be outdated', () => {\n const applyOverrides = createApplyOverridesWithPolicy({ installed: '2.0.0', inWorkspacePolicy: '3.0.1' });\n expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('3.0.1');\n });\n it('should prefer the installed version when it satisfies the workspace policy range', () => {\n const applyOverrides = createApplyOverridesWithPolicy({ installed: '18.2.0', inWorkspacePolicy: '^18.0.0' });\n expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('18.2.0');\n });\n it('should take the minimum version of the workspace policy range when the installed one is outdated', () => {\n const applyOverrides = createApplyOverridesWithPolicy({ installed: '17.0.0', inWorkspacePolicy: '^18.1.0' });\n expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('18.1.0');\n });\n it('should keep an unconstrained workspace policy range as is', () => {\n const applyOverrides = createApplyOverridesWithPolicy({ inWorkspacePolicy: '*' });\n expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('*');\n });\n it('should fall back to the installed version when the workspace policy does not have the package', () => {\n const applyOverrides = createApplyOverridesWithPolicy({ installed: '2.0.0' });\n expect(applyOverrides.resolveEnvPeerDepVersion('my-pkg', true)).to.equal('2.0.0');\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -39,6 +39,13 @@ function _lodash() {
39
39
  };
40
40
  return data;
41
41
  }
42
+ function _dependencyResolver() {
43
+ const data = require("@teambit/dependency-resolver");
44
+ _dependencyResolver = function () {
45
+ return data;
46
+ };
47
+ return data;
48
+ }
42
49
  function _legacy2() {
43
50
  const data = require("@teambit/legacy.constants");
44
51
  _legacy2 = function () {
@@ -145,7 +152,7 @@ async function updateDependenciesVersions(depsResolver, workspace, component, ov
145
152
  if (range) dependency.versionRange = range;else if (resolvedVersion !== 'latest' && (componentRangePrefix === '^' || componentRangePrefix === '~') && !(0, _componentVersion().isSnap)(resolvedVersion)) {
146
153
  dependency.versionRange = `${componentRangePrefix}${resolvedVersion}`;
147
154
  }
148
- } else if (dependency.versionRange && depType !== 'peerDependencies' && dependency.versionRange !== '+') {
155
+ } else if (dependency.versionRange && depType !== 'peerDependencies' && !(0, _dependencyResolver().isPlusVersion)(dependency.versionRange)) {
149
156
  dependency.versionRange = undefined;
150
157
  }
151
158
  }
@@ -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","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":";;;;;;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,SAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,QAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAQ,gBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,eAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8D,SAAAG,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIvD,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,MAAM;MAAEV,OAAO,EAAEY,eAAe;MAAE1B,KAAK;MAAEsB;IAAW,CAAC,GAAG7C,cAAc,CAACb,EAAE,EAAEc,OAAO,EAAE+C,WAAW,CAAC;IAChG,IAAI,CAACC,eAAe,EAAE;MACpB;IACF;IACA,IAAIJ,UAAU,EAAEpD,iCAAiC,CAACyD,IAAI,CAAC/D,EAAE,CAACgE,sBAAsB,CAAC,CAAC,CAAC;IACnFJ,UAAU,CAAC5D,EAAE,GAAG4D,UAAU,CAAC5D,EAAE,CAACiE,aAAa,CAACH,eAAe,CAAC;IAC5D,IAAIzD,qBAAqB,EAAE;MACzB,IAAI+B,KAAK,EAAEwB,UAAU,CAACM,YAAY,GAAG9B,KAAK,CAAC,KACtC,IACH0B,eAAe,KAAK,QAAQ,KAC3B3D,oBAAoB,KAAK,GAAG,IAAIA,oBAAoB,KAAK,GAAG,CAAC,IAC9D,CAAC,IAAAgE,0BAAM,EAACL,eAAe,CAAC,EACxB;QACAF,UAAU,CAACM,YAAY,GAAG,GAAG/D,oBAAoB,GAAG2D,eAAe,EAAE;MACvE;IACF,CAAC,MAAM,IAAIF,UAAU,CAACM,YAAY,IAAIpD,OAAO,KAAK,kBAAkB,IAAI8C,UAAU,CAACM,YAAY,KAAK,GAAG,EAAE;MACvGN,UAAU,CAACM,YAAY,GAAG3B,SAAS;IACrC;EACF;EACA,SAAShC,kBAAkBA,CAACC,YAA0B,EAAEM,OAAgB,EAAE;IACxEN,YAAY,CAAC4D,GAAG,CAAC,CAAC,CAACC,OAAO,CAAEzC,GAAG,IAAK+B,gBAAgB,CAAC/B,GAAG,EAAEd,OAAO,CAAC,CAAC;EACrE;EAEA,SAASwD,eAAeA,CAACC,SAA6B,EAAE;IACtD,IAAIA,SAAS,CAACC,WAAW,EAAE;MACzB,MAAM;QAAEtB,OAAO,EAAEY;MAAgB,CAAC,GAAGjD,cAAc,CAAC0D,SAAS,CAACC,WAAW,EAAE,iBAAiB,CAAC;MAC7F,IAAIV,eAAe,EAAE;QACnBS,SAAS,CAACC,WAAW,GAAGD,SAAS,CAACC,WAAW,CAACP,aAAa,CAACH,eAAe,CAAC;MAC9E;IACF;EACF;EACA,SAASnD,gBAAgBA,CAACC,UAA6B,EAAE;IACvDA,UAAU,CAACyD,OAAO,CAACC,eAAe,CAAC;EACrC;EAEA,SAASzB,kBAAkBA,CAACC,kBAA6B,EAAE2B,WAAwB,EAAsB;IACvG,IAAI,CAAC3B,kBAAkB,EAAE,OAAO,IAAI;IACpC,MAAMc,UAAU,GAAGd,kBAAkB,CAAC4B,qBAAqB,CAAC,CAAC,CAACC,oBAAoB,CAACF,WAAW,CAAC;IAC/F,IAAI,CAACb,UAAU,EAAE,OAAO,IAAI;IAC5B,OAAOA,UAAU;EACnB;EAEA,SAAS3C,eAAeA,CAACwD,WAAwB,EAAkC;IACjF,MAAMG,WAAW,GAAG/E,QAAQ,CAACgF,wBAAwB,CAACC,oBAAoB,CAACL,WAAW,CAAC;IACvF,OAAOG,WAAW,CAACG,MAAM,KAAK,CAAC,GAAGH,WAAW,CAAC,CAAC,CAAC,GAAGrC,SAAS;EAC9D;EAEA,SAAShB,+BAA+BA,CAACvB,EAAe,EAAE;IACxD,MAAMgF,gBAAgB,GAAG/E,WAAW,EAAE+E,gBAAgB;IACtD,IAAI,CAACA,gBAAgB,EAAE,OAAOzC,SAAS;IACvC,OAAOyC,gBAAgB,CAACrD,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,qBAAqB,CAAC7B,EAAE,CAAC,CAAC;EACtE;EAEA,SAASmB,wBAAwBA,CAACsD,WAAwB,EAA2B;IACnF,MAAMjE,YAAY,GAAGhB,SAAS,CAACyF,SAAS,CAACC,mCAAmC,CAAC,CAAC;IAC9E,IAAI,IAAAC,iBAAO,EAAC3E,YAAY,CAAC,EAAE,OAAO+B,SAAS;IAC3C,MAAMqB,UAAU,GAAGwB,MAAM,CAACC,IAAI,CAAC7E,YAAY,CAAC,CAACmB,IAAI,CAAE2D,KAAK,IAAKb,WAAW,CAACT,sBAAsB,CAAC,CAAC,KAAKsB,KAAK,CAAC;IAC5G,IAAI,CAAC1B,UAAU,EAAE,OAAOrB,SAAS;IACjC,OAAOkC,WAAW,CAACR,aAAa,CAACzD,YAAY,CAACoD,UAAU,CAAC,CAAC;EAC5D;;EAEA;AACF;AACA;EACE,SAASnC,oBAAoBA,CAC3BzB,EAAe,EACfc,OAAgB,EAChByE,OAAgB,EACsC;IACtD,IAAI,CAACA,OAAO,EAAE,OAAOhD,SAAS;IAC9B;IACA;IACA;IACA;IACA,IAAI9C,qBAAqB,CAAC+F,cAAc,CAACC,GAAG,CAACF,OAAO,CAAC,IAAItE,eAAe,CAACjB,EAAE,CAAC,EAAE,OAAOuC,SAAS;IAC9F,MAAM/B,YAAY,GAAGf,qBAAqB,CAACiG,4BAA4B,CAAC,CAAC;IACzE,MAAMC,KAAK,GAAGnF,YAAY,GAAGM,OAAO,CAAC,GAAGyE,OAAO,CAAC;IAChD,IAAI,CAACI,KAAK,EAAE,OAAOpD,SAAS;IAC5B,MAAM;MAAEW,OAAO,EAAE0C,YAAY;MAAExD;IAAM,CAAC,GAAG,IAAAyD,0CAAwB,EAACF,KAAK,CAAC;IACxE,MAAMxD,MAAM,GAAGyD,YAAY,GAAG5F,EAAE,CAACiE,aAAa,CAAC2B,YAAY,CAAC,GAAGrD,SAAS;IACxE,OAAO;MAAEJ,MAAM;MAAEC;IAAM,CAAC;EAC1B;EAEA,SAASO,0BAA0BA,CAAC4C,OAAe,EAAW;IAC5D,OAAOO,8BAAmB,CAACC,IAAI,CAC5BC,QAAQ,IAAKtG,mBAAmB,GAAGsG,QAAQ,CAAC,IAAItG,mBAAmB,CAACsG,QAAQ,CAAC,CAACT,OAAO,CACxF,CAAC;EACH;EAEA,SAASrD,+BAA+BA,CAACqD,OAAe,EAAsB;IAC5E,OAAOjG,YAAY,CAAC2G,0BAA0B,CAAC,CAAC,CAACzF,YAAY,GAAG+E,OAAO,CAAC;EAC1E;EAEA,SAAS9C,sBAAsBA,CAACzC,EAAe,EAAEuF,OAAe,EAA2B;IACzF,IAAIW,YAAuC;IAC3CJ,8BAAmB,CAACzB,OAAO,CAAE8B,KAAK,IAAK;MACrC,IAAIrG,qBAAqB,CAACqG,KAAK,CAAC,GAAGZ,OAAO,CAAC,EAAE;QAC3CW,YAAY,GAAGpG,qBAAqB,CAACqG,KAAK,CAAC,GAAGZ,OAAO,CAAC;MACxD;IACF,CAAC,CAAC;IACF,MAAMa,iBAAiB,GAAGF,YAAY,GAAG,IAAAL,0CAAwB,EAACK,YAAY,CAAC,GAAG3D,SAAS;IAC3F,OAAO6D,iBAAiB,EAAElD,OAAO,GAAGlD,EAAE,CAACiE,aAAa,CAACmC,iBAAiB,CAAClD,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","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","isPlusVersion","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 } 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' && !isPlusVersion(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":[]}
@@ -18,6 +18,13 @@ function _legacy2() {
18
18
  };
19
19
  return data;
20
20
  }
21
+ function _dependencyResolver() {
22
+ const data = require("@teambit/dependency-resolver");
23
+ _dependencyResolver = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
21
28
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
22
29
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
23
30
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -83,14 +90,15 @@ class OverridesDependencies {
83
90
  }
84
91
  _manuallyAddPackage(field, dependency, dependencyValue, packageJson) {
85
92
  const packageVersionToAdd = () => {
86
- if (dependencyValue !== _legacy().MANUALLY_ADD_DEPENDENCY) {
93
+ // "+", "+^" and "+~" take the version from the package.json
94
+ if (!(0, _dependencyResolver().isPlusVersion)(dependencyValue)) {
87
95
  return dependencyValue;
88
96
  }
89
97
  if (!packageJson) return null;
90
98
  for (const depField of _legacy().DEPENDENCIES_FIELDS) {
91
99
  if (packageJson[depField]) {
92
100
  const found = Object.keys(packageJson[depField]).find(pkg => pkg === dependency);
93
- if (found) return packageJson[depField][dependency];
101
+ if (found) return (0, _dependencyResolver().resolvePlusVersion)(dependencyValue, packageJson[depField][dependency]);
94
102
  }
95
103
  }
96
104
  return null;
@@ -1 +1 @@
1
- {"version":3,"names":["_legacy","data","require","_legacy2","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","OverridesDependencies","constructor","component","Set","componentFromModel","manuallyRemovedDependencies","manuallyAddedDependencies","missingPackageDependencies","shouldIgnorePackage","packageName","fileType","field","isTestFile","shouldIgnorePackageByType","packages","some","pkg","ignoreField","overrides","getIgnoredPackages","ignore","_addManuallyRemovedDep","shouldIgnorePeerPackage","ignorePeer","getDependenciesToAddManually","componentOverridesData","undefined","DEPENDENCIES_FIELDS","forEach","depField","keys","dependency","dependencyValue","MANUALLY_REMOVE_DEPENDENCY","_manuallyAddPackage","packageJson","packageVersionToAdd","MANUALLY_ADD_DEPENDENCY","found","find","versionToAdd","logger","debug","id","toString","push","packageStr","_addManuallyAddedDep","includes","exports","default"],"sources":["overrides-dependencies.ts"],"sourcesContent":["import { DEPENDENCIES_FIELDS, MANUALLY_ADD_DEPENDENCY, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';\nimport { logger } from '@teambit/legacy.logger';\nimport type { ConsumerComponent as Component, ManuallyChangedDependencies } from '@teambit/legacy.consumer-component';\nimport type { FileType } from './auto-detect-deps';\n\nexport default class OverridesDependencies {\n component: Component;\n componentFromModel: Component | null | undefined;\n manuallyRemovedDependencies: ManuallyChangedDependencies;\n manuallyAddedDependencies: ManuallyChangedDependencies;\n missingPackageDependencies: string[];\n /**\n * package names of env-own dependencies (from env.jsonc selfPolicy).\n * used by version resolution to skip these overrides for workspace components,\n * so their version is resolved from the bitmap instead of the static env.jsonc version.\n */\n envOwnPkgNames: Set<string> = new Set();\n constructor(component: Component) {\n this.component = component;\n this.componentFromModel = this.component.componentFromModel;\n this.manuallyRemovedDependencies = {};\n this.manuallyAddedDependencies = {};\n this.missingPackageDependencies = [];\n }\n\n shouldIgnorePackage(packageName: string, fileType: FileType): boolean {\n const field = fileType.isTestFile ? 'devDependencies' : 'dependencies';\n return this.shouldIgnorePackageByType(packageName, field);\n }\n\n shouldIgnorePackageByType(packageName: string, field: string): boolean {\n const shouldIgnorePackage = (packages: string[]) => {\n return packages.some((pkg) => pkg === packageName);\n };\n const ignoreField = this.component.overrides.getIgnoredPackages(field);\n const ignore = shouldIgnorePackage(ignoreField);\n if (ignore) {\n this._addManuallyRemovedDep(field, packageName);\n }\n return ignore;\n }\n\n shouldIgnorePeerPackage(packageName: string): boolean {\n const shouldIgnorePackage = (packages: string[]) => {\n return packages.some((pkg) => pkg === packageName);\n };\n const field = 'peerDependencies';\n const ignorePeer = this.component.overrides.getIgnoredPackages(field);\n const ignore = shouldIgnorePackage(ignorePeer);\n if (ignore) {\n this._addManuallyRemovedDep(field, packageName);\n }\n return ignore;\n }\n\n getDependenciesToAddManually(): Record<string, any> | undefined {\n const overrides = this.component.overrides.componentOverridesData;\n if (!overrides) return undefined;\n const packages = {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!overrides[depField]) return;\n Object.keys(overrides[depField]).forEach((dependency) => {\n const dependencyValue = overrides[depField][dependency];\n if (dependencyValue === MANUALLY_REMOVE_DEPENDENCY) return;\n (packages[depField] ||= {})[dependency] = dependencyValue;\n });\n });\n return packages;\n }\n\n _manuallyAddPackage(\n field: string,\n dependency: string,\n dependencyValue: string,\n packageJson: Record<string, any> | null | undefined\n ): Record<string, any> | null | undefined {\n const packageVersionToAdd = (): string | null | undefined => {\n if (dependencyValue !== MANUALLY_ADD_DEPENDENCY) {\n return dependencyValue;\n }\n if (!packageJson) return null;\n for (const depField of DEPENDENCIES_FIELDS) {\n if (packageJson[depField]) {\n const found = Object.keys(packageJson[depField]).find((pkg) => pkg === dependency);\n if (found) return packageJson[depField][dependency];\n }\n }\n return null;\n };\n const versionToAdd = packageVersionToAdd();\n if (!versionToAdd) {\n logger.debug(`unable to manually add the dependency \"${dependency}\" into \"${this.component.id.toString()}\".\nit's not an existing component, nor existing package (in a package.json)`);\n this.missingPackageDependencies.push(dependency);\n return undefined;\n }\n const packageStr = `${dependency}@${versionToAdd}`;\n this._addManuallyAddedDep(field, packageStr);\n\n return { [dependency]: versionToAdd };\n }\n\n _addManuallyRemovedDep(field: string, value: string) {\n this.manuallyRemovedDependencies[field]\n ? this.manuallyRemovedDependencies[field].push(value)\n : (this.manuallyRemovedDependencies[field] = [value]);\n }\n\n _addManuallyAddedDep(field: string, value: string) {\n if (this.manuallyAddedDependencies?.[field]?.includes(value)) return;\n\n this.manuallyAddedDependencies[field]\n ? this.manuallyAddedDependencies[field].push(value)\n : (this.manuallyAddedDependencies[field] = [value]);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_legacy","data","require","_legacy2","_dependencyResolver","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","OverridesDependencies","constructor","component","Set","componentFromModel","manuallyRemovedDependencies","manuallyAddedDependencies","missingPackageDependencies","shouldIgnorePackage","packageName","fileType","field","isTestFile","shouldIgnorePackageByType","packages","some","pkg","ignoreField","overrides","getIgnoredPackages","ignore","_addManuallyRemovedDep","shouldIgnorePeerPackage","ignorePeer","getDependenciesToAddManually","componentOverridesData","undefined","DEPENDENCIES_FIELDS","forEach","depField","keys","dependency","dependencyValue","MANUALLY_REMOVE_DEPENDENCY","_manuallyAddPackage","packageJson","packageVersionToAdd","isPlusVersion","found","find","resolvePlusVersion","versionToAdd","logger","debug","id","toString","push","packageStr","_addManuallyAddedDep","includes","exports","default"],"sources":["overrides-dependencies.ts"],"sourcesContent":["import { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';\nimport { logger } from '@teambit/legacy.logger';\nimport { isPlusVersion, resolvePlusVersion } from '@teambit/dependency-resolver';\nimport type { ConsumerComponent as Component, ManuallyChangedDependencies } from '@teambit/legacy.consumer-component';\nimport type { FileType } from './auto-detect-deps';\n\nexport default class OverridesDependencies {\n component: Component;\n componentFromModel: Component | null | undefined;\n manuallyRemovedDependencies: ManuallyChangedDependencies;\n manuallyAddedDependencies: ManuallyChangedDependencies;\n missingPackageDependencies: string[];\n /**\n * package names of env-own dependencies (from env.jsonc selfPolicy).\n * used by version resolution to skip these overrides for workspace components,\n * so their version is resolved from the bitmap instead of the static env.jsonc version.\n */\n envOwnPkgNames: Set<string> = new Set();\n constructor(component: Component) {\n this.component = component;\n this.componentFromModel = this.component.componentFromModel;\n this.manuallyRemovedDependencies = {};\n this.manuallyAddedDependencies = {};\n this.missingPackageDependencies = [];\n }\n\n shouldIgnorePackage(packageName: string, fileType: FileType): boolean {\n const field = fileType.isTestFile ? 'devDependencies' : 'dependencies';\n return this.shouldIgnorePackageByType(packageName, field);\n }\n\n shouldIgnorePackageByType(packageName: string, field: string): boolean {\n const shouldIgnorePackage = (packages: string[]) => {\n return packages.some((pkg) => pkg === packageName);\n };\n const ignoreField = this.component.overrides.getIgnoredPackages(field);\n const ignore = shouldIgnorePackage(ignoreField);\n if (ignore) {\n this._addManuallyRemovedDep(field, packageName);\n }\n return ignore;\n }\n\n shouldIgnorePeerPackage(packageName: string): boolean {\n const shouldIgnorePackage = (packages: string[]) => {\n return packages.some((pkg) => pkg === packageName);\n };\n const field = 'peerDependencies';\n const ignorePeer = this.component.overrides.getIgnoredPackages(field);\n const ignore = shouldIgnorePackage(ignorePeer);\n if (ignore) {\n this._addManuallyRemovedDep(field, packageName);\n }\n return ignore;\n }\n\n getDependenciesToAddManually(): Record<string, any> | undefined {\n const overrides = this.component.overrides.componentOverridesData;\n if (!overrides) return undefined;\n const packages = {};\n DEPENDENCIES_FIELDS.forEach((depField) => {\n if (!overrides[depField]) return;\n Object.keys(overrides[depField]).forEach((dependency) => {\n const dependencyValue = overrides[depField][dependency];\n if (dependencyValue === MANUALLY_REMOVE_DEPENDENCY) return;\n (packages[depField] ||= {})[dependency] = dependencyValue;\n });\n });\n return packages;\n }\n\n _manuallyAddPackage(\n field: string,\n dependency: string,\n dependencyValue: string,\n packageJson: Record<string, any> | null | undefined\n ): Record<string, any> | null | undefined {\n const packageVersionToAdd = (): string | null | undefined => {\n // \"+\", \"+^\" and \"+~\" take the version from the package.json\n if (!isPlusVersion(dependencyValue)) {\n return dependencyValue;\n }\n if (!packageJson) return null;\n for (const depField of DEPENDENCIES_FIELDS) {\n if (packageJson[depField]) {\n const found = Object.keys(packageJson[depField]).find((pkg) => pkg === dependency);\n if (found) return resolvePlusVersion(dependencyValue, packageJson[depField][dependency]);\n }\n }\n return null;\n };\n const versionToAdd = packageVersionToAdd();\n if (!versionToAdd) {\n logger.debug(`unable to manually add the dependency \"${dependency}\" into \"${this.component.id.toString()}\".\nit's not an existing component, nor existing package (in a package.json)`);\n this.missingPackageDependencies.push(dependency);\n return undefined;\n }\n const packageStr = `${dependency}@${versionToAdd}`;\n this._addManuallyAddedDep(field, packageStr);\n\n return { [dependency]: versionToAdd };\n }\n\n _addManuallyRemovedDep(field: string, value: string) {\n this.manuallyRemovedDependencies[field]\n ? this.manuallyRemovedDependencies[field].push(value)\n : (this.manuallyRemovedDependencies[field] = [value]);\n }\n\n _addManuallyAddedDep(field: string, value: string) {\n if (this.manuallyAddedDependencies?.[field]?.includes(value)) return;\n\n this.manuallyAddedDependencies[field]\n ? this.manuallyAddedDependencies[field].push(value)\n : (this.manuallyAddedDependencies[field] = [value]);\n }\n}\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.1234",
3
+ "version": "1.0.1236",
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.1234"
9
+ "version": "1.0.1236"
10
10
  },
11
11
  "dependencies": {
12
12
  "archy": "1.0.0",
@@ -27,20 +27,32 @@
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.1417",
30
31
  "@teambit/component-issues": "0.0.192",
31
- "@teambit/legacy.constants": "0.0.49",
32
+ "@teambit/legacy.constants": "0.0.50",
32
33
  "@teambit/harmony": "0.4.12",
34
+ "@teambit/aspect-loader": "1.0.1227",
33
35
  "@teambit/component-id": "1.2.5",
34
36
  "@teambit/component-package-version": "0.0.466",
37
+ "@teambit/component": "1.0.1227",
35
38
  "@teambit/dependencies.pnpm.dep-path": "1.0.1",
39
+ "@teambit/dependency-resolver": "1.0.1227",
36
40
  "@teambit/harmony.modules.runtimes": "0.0.4",
37
- "@teambit/logger": "0.0.1499",
41
+ "@teambit/issues": "1.0.1227",
42
+ "@teambit/legacy.consumer-component": "0.0.187",
43
+ "@teambit/legacy.consumer-config": "0.0.186",
44
+ "@teambit/logger": "0.0.1500",
38
45
  "@teambit/bit-error": "0.0.404",
46
+ "@teambit/legacy.dependency-graph": "0.0.189",
47
+ "@teambit/component.sources": "0.0.238",
39
48
  "@teambit/legacy.utils": "0.0.56",
40
49
  "@teambit/toolbox.path.path": "0.0.26",
50
+ "@teambit/legacy.bit-map": "0.0.243",
51
+ "@teambit/legacy.consumer": "0.0.186",
41
52
  "@teambit/component-version": "1.0.4",
42
- "@teambit/legacy.logger": "0.0.68",
53
+ "@teambit/legacy.logger": "0.0.69",
43
54
  "@teambit/toolbox.fs.extension-getter": "0.0.22",
55
+ "@teambit/legacy.extension-data": "0.0.188",
44
56
  "@teambit/toolbox.fs.last-modified": "0.0.24",
45
57
  "@teambit/styling.deps-lookups.lookup-styling": "0.0.4",
46
58
  "@teambit/typescript.deps-lookups.lookup-typescript": "0.0.2",
@@ -51,22 +63,10 @@
51
63
  "@teambit/styling.deps-detectors.detective-sass": "0.0.9",
52
64
  "@teambit/styling.deps-detectors.detective-scss": "0.0.9",
53
65
  "@teambit/typescript.deps-detectors.detective-typescript": "0.0.10",
54
- "@teambit/cli": "0.0.1416",
55
- "@teambit/graph": "1.0.1234",
56
- "@teambit/workspace": "1.0.1234",
57
- "@teambit/aspect-loader": "1.0.1226",
58
- "@teambit/component": "1.0.1226",
59
- "@teambit/dependency-resolver": "1.0.1226",
60
- "@teambit/dev-files": "1.0.1234",
61
- "@teambit/issues": "1.0.1226",
62
- "@teambit/legacy.consumer-component": "0.0.186",
63
- "@teambit/legacy.consumer-config": "0.0.185",
64
- "@teambit/scope": "1.0.1234",
65
- "@teambit/legacy.dependency-graph": "0.0.188",
66
- "@teambit/component.sources": "0.0.237",
67
- "@teambit/legacy.bit-map": "0.0.242",
68
- "@teambit/legacy.consumer": "0.0.185",
69
- "@teambit/legacy.extension-data": "0.0.187"
66
+ "@teambit/graph": "1.0.1236",
67
+ "@teambit/workspace": "1.0.1236",
68
+ "@teambit/dev-files": "1.0.1236",
69
+ "@teambit/scope": "1.0.1236"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@types/cli-table": "^0.3.0",
@@ -76,11 +76,11 @@
76
76
  "rewire": "7.0.0",
77
77
  "sinon": "17.0.1",
78
78
  "@types/mocha": "9.1.0",
79
+ "@teambit/component.testing.mock-components": "0.0.462",
80
+ "@teambit/harmony.testing.load-aspect": "0.0.456",
81
+ "@teambit/workspace.testing.mock-workspace": "0.0.270",
79
82
  "@teambit/defender.fs.global-bit-temp-dir": "0.0.1",
80
- "@teambit/harmony.envs.core-aspect-env": "2.1.2",
81
- "@teambit/component.testing.mock-components": "0.0.461",
82
- "@teambit/harmony.testing.load-aspect": "0.0.455",
83
- "@teambit/workspace.testing.mock-workspace": "0.0.269"
83
+ "@teambit/harmony.envs.core-aspect-env": "2.1.2"
84
84
  },
85
85
  "peerDependencies": {
86
86
  "chai": "5.2.1"