@teambit/dependencies 1.0.486 → 1.0.488

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.
Files changed (43) hide show
  1. package/artifacts/__bit_junit.xml +37 -37
  2. package/artifacts/schema.json +334 -334
  3. package/dependencies-loader/apply-overrides.ts +3 -4
  4. package/dependencies-loader/auto-detect-deps.ts +9 -6
  5. package/dependencies-loader/dependencies-data.ts +1 -2
  6. package/dependencies-loader/dependencies-loader.ts +2 -3
  7. package/dependencies-loader/dependencies-versions-resolver.ts +4 -6
  8. package/dependencies-loader/overrides-dependencies.ts +3 -7
  9. package/dist/dependencies-cmd.js +8 -8
  10. package/dist/dependencies-cmd.js.map +1 -1
  11. package/dist/dependencies-loader/apply-overrides.d.ts +2 -3
  12. package/dist/dependencies-loader/apply-overrides.js +18 -18
  13. package/dist/dependencies-loader/apply-overrides.js.map +1 -1
  14. package/dist/dependencies-loader/auto-detect-deps.d.ts +2 -2
  15. package/dist/dependencies-loader/auto-detect-deps.js +22 -22
  16. package/dist/dependencies-loader/auto-detect-deps.js.map +1 -1
  17. package/dist/dependencies-loader/dependencies-data.d.ts +1 -1
  18. package/dist/dependencies-loader/dependencies-data.js +6 -6
  19. package/dist/dependencies-loader/dependencies-data.js.map +1 -1
  20. package/dist/dependencies-loader/dependencies-loader.d.ts +1 -2
  21. package/dist/dependencies-loader/dependencies-loader.js +4 -4
  22. package/dist/dependencies-loader/dependencies-loader.js.map +1 -1
  23. package/dist/dependencies-loader/dependencies-versions-resolver.d.ts +1 -1
  24. package/dist/dependencies-loader/dependencies-versions-resolver.js +9 -10
  25. package/dist/dependencies-loader/dependencies-versions-resolver.js.map +1 -1
  26. package/dist/dependencies-loader/overrides-dependencies.d.ts +1 -1
  27. package/dist/dependencies-loader/overrides-dependencies.js +11 -12
  28. package/dist/dependencies-loader/overrides-dependencies.js.map +1 -1
  29. package/dist/dependencies.main.runtime.d.ts +1 -2
  30. package/dist/dependencies.main.runtime.js +4 -4
  31. package/dist/dependencies.main.runtime.js.map +1 -1
  32. package/dist/dependents.js +10 -18
  33. package/dist/dependents.js.map +1 -1
  34. package/dist/files-dependency-builder/path-map.d.ts +1 -1
  35. package/dist/files-dependency-builder/path-map.js.map +1 -1
  36. package/dist/files-dependency-builder/types/dependency-tree-type.d.ts +1 -1
  37. package/dist/files-dependency-builder/types/dependency-tree-type.js.map +1 -1
  38. package/dist/resolve-pkg-data.js +8 -8
  39. package/dist/resolve-pkg-data.js.map +1 -1
  40. package/files-dependency-builder/path-map.ts +1 -1
  41. package/files-dependency-builder/types/dependency-tree-type.ts +1 -1
  42. package/package.json +24 -20
  43. /package/dist/{preview-1733541556857.js → preview-1733830651067.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","_interopRequireDefault","require","_componentId","_lodash","_componentIssues","_constants","_component","_legacy","_resolvePkgData","_dependencies","_overridesDependencies","_dependenciesData","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","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","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","filter","isTestFile","missingIssue","getIssueByName","missingData","forEach","m","missingPackages","pkg","isDevFile","length","delete","IssuesClasses","MissingPackagesDependenciesOnFs","getAutoDetectOverrides","extensions","id","files","originAllPackagesDependencies","cloneDeep","pkgVersion","pkgName","shouldIgnorePackageByType","shouldBeIncludedDev","pickBy","_resolvePackageData","undefined","componentMap","rootDir","consumerPath","getPath","basePath","path","join","modulePath","resolvePackagePath","packageObject","resolvePackageData","_getComponentIdToAdd","dependency","versionRange","packageData","name","getDependenciesToAddManually","packageJson","existingDependencies","overrides","packages","DEPENDENCIES_FIELDS","depField","keys","dependencyValue","componentData","isEqualWithoutVersion","warn","toString","dependencyExist","find","d","_addManuallyAddedDep","push","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","_getPackageJson","depData","Dependency","isEmpty","_pkgFieldMapping","peerName","componentPeers","Set","map","has","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","version","isNaN","originallyExists","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","existsInCompsPeerDeps","key","MANUALLY_REMOVE_DEPENDENCY","comp","envPolicy","getEnvPolicyFromEnvId","envPolicyManifest","selfPolicy","toVersionManifest","deps","peerVersionFromEnvPolicy","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import path from 'path';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, difference, forEach, isEmpty, pick, pickBy, uniq } from 'lodash';\nimport { IssuesList, IssuesClasses, MissingPackagesData } from '@teambit/component-issues';\nimport { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy/dist/constants';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport { PathLinux, resolvePackagePath } from '@teambit/legacy.utils';\nimport { ResolvedPackageData, resolvePackageData } from '../resolve-pkg-data';\nimport { Workspace } from '@teambit/workspace';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport { ComponentMap } from '@teambit/legacy.bit-map';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DependenciesData } from './dependencies-data';\nimport { DebugDependencies, FileType } from './auto-detect-deps';\nimport { Logger } from '@teambit/logger';\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 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 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.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 this.autoDetectOverrides = await this.workspace?.getAutoDetectOverrides(\n this.component.extensions,\n this.component.id,\n this.component.files\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 ): { componentId?: ComponentID; packageName?: string; versionRange: string } {\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name, versionRange };\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 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);\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 }\n });\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 if (components[depField] && components[depField].length) {\n components[depField].forEach((depData) => {\n this.allDependencies[depField].push(\n new Dependency(depData.componentId, [], depData.packageName, depData.versionRange)\n );\n });\n }\n if (packages[depField] && !isEmpty(packages[depField])) {\n Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);\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 // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\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 let missingPackages: string[] = [];\n // We want to also add missing packages to the peer list as we know to resolve the version from the env anyway\n const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data as\n | MissingPackagesData[]\n | undefined;\n if (missingData) {\n missingPackages = uniq(missingData.map((d) => d.missingPackages).flat());\n }\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {\n forEach(autoDetectOverrides[field], (pkgVal, pkgName) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;\n // Validate it was auto detected, we only affect stuff that were detected\n const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n if (\n // We are checking originAllPackagesDependencies instead of allPackagesDependencies\n // as it might be already removed from allPackagesDependencies at this point if it was set with\n // \"-\" in runtime/dev\n // in such case we still want to apply it here\n !this.originAllPackagesDependencies.packageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.devPackageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] &&\n !existsInCompsDeps &&\n !existsInCompsDevDeps &&\n !existsInCompsPeerDeps &&\n // Check if it was orignally exists in the component\n // as we might have a policy which looks like this:\n // \"components\": {\n // \"dependencies\": {\n // \"my-dep\": \"-\"\n // },\n // \"devDependencies\": {\n // \"my-dep\": \"1.0.0\"\n // },\n // }\n // in that case we might remove it before getting to the devDeps then we will think that it wasn't required in the component\n // which is incorrect\n !originallyExists.includes(pkgName) &&\n !missingPackages.includes(pkgName)\n ) {\n return;\n }\n originallyExists.push(pkgName);\n const key = DepsKeysToAllPackagesDepsKeys[field];\n\n delete this.allPackagesDependencies[key][pkgName];\n // When changing peer dependency we want it to be stronger than the other types\n if (field === 'peerDependencies') {\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.packageDependencies[pkgName];\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 // delete this.allPackagesDependencies.packageDependencies[pkgName];\n // delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n // delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n\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 if (\n pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&\n ((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies')\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 if (existsInCompsPeerDeps) {\n existsInCompsPeerDeps.versionRange = pkgVal;\n }\n }\n });\n });\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvId(this.component.id, this.component.files);\n if (!envPolicy) return;\n const envPolicyManifest = envPolicy.selfPolicy.toVersionManifest();\n\n if (!envPolicyManifest || !Object.keys(envPolicyManifest).length) {\n return;\n }\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 Object.assign(deps, envPolicyManifest);\n // TODO: handle component deps once we support peers between components\n this.allPackagesDependencies.packageDependencies = deps;\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","_componentId","_lodash","_componentIssues","_legacy","_legacy2","_component","_legacy3","_resolvePkgData","_overridesDependencies","_dependenciesData","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","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","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","filter","isTestFile","missingIssue","getIssueByName","missingData","forEach","m","missingPackages","pkg","isDevFile","length","delete","IssuesClasses","MissingPackagesDependenciesOnFs","getAutoDetectOverrides","extensions","id","files","originAllPackagesDependencies","cloneDeep","pkgVersion","pkgName","shouldIgnorePackageByType","shouldBeIncludedDev","pickBy","_resolvePackageData","undefined","componentMap","rootDir","consumerPath","getPath","basePath","path","join","modulePath","resolvePackagePath","packageObject","resolvePackageData","_getComponentIdToAdd","dependency","versionRange","packageData","name","getDependenciesToAddManually","packageJson","existingDependencies","overrides","packages","DEPENDENCIES_FIELDS","depField","keys","dependencyValue","componentData","isEqualWithoutVersion","warn","toString","dependencyExist","find","d","_addManuallyAddedDep","push","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","_getPackageJson","depData","Dependency","isEmpty","_pkgFieldMapping","peerName","componentPeers","Set","map","has","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","version","isNaN","originallyExists","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","existsInCompsPeerDeps","key","MANUALLY_REMOVE_DEPENDENCY","comp","envPolicy","getEnvPolicyFromEnvId","envPolicyManifest","selfPolicy","toVersionManifest","deps","peerVersionFromEnvPolicy","packageJsonObject","PackageJsonFile","createFromComponent","isLegacy","getOrCreate","LegacyInsideHarmony","Error","exports"],"sources":["apply-overrides.ts"],"sourcesContent":["import path from 'path';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { cloneDeep, difference, forEach, isEmpty, pick, pickBy, uniq } from 'lodash';\nimport { IssuesList, IssuesClasses, MissingPackagesData } from '@teambit/component-issues';\nimport { DEPENDENCIES_FIELDS, MANUALLY_REMOVE_DEPENDENCY } from '@teambit/legacy.constants';\nimport { ConsumerComponent as Component, Dependency } from '@teambit/legacy.consumer-component';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport { PathLinux, resolvePackagePath } from '@teambit/legacy.utils';\nimport { ResolvedPackageData, resolvePackageData } from '../resolve-pkg-data';\nimport { Workspace } from '@teambit/workspace';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Consumer } from '@teambit/legacy.consumer';\nimport { ComponentMap } from '@teambit/legacy.bit-map';\nimport OverridesDependencies from './overrides-dependencies';\nimport { DependenciesData } from './dependencies-data';\nimport { DebugDependencies, FileType } from './auto-detect-deps';\nimport { Logger } from '@teambit/logger';\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 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 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.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 this.autoDetectOverrides = await this.workspace?.getAutoDetectOverrides(\n this.component.extensions,\n this.component.id,\n this.component.files\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 ): { componentId?: ComponentID; packageName?: string; versionRange: string } {\n const packageData = this._resolvePackageData(dependency);\n return { componentId: packageData?.componentId, packageName: packageData?.name, versionRange };\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 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);\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 }\n });\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 if (components[depField] && components[depField].length) {\n components[depField].forEach((depData) => {\n this.allDependencies[depField].push(\n new Dependency(depData.componentId, [], depData.packageName, depData.versionRange)\n );\n });\n }\n if (packages[depField] && !isEmpty(packages[depField])) {\n Object.assign(this.allPackagesDependencies[this._pkgFieldMapping(depField)], packages[depField]);\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 // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\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 let missingPackages: string[] = [];\n // We want to also add missing packages to the peer list as we know to resolve the version from the env anyway\n const missingData = this.issues.getIssueByName('MissingPackagesDependenciesOnFs')?.data as\n | MissingPackagesData[]\n | undefined;\n if (missingData) {\n missingPackages = uniq(missingData.map((d) => d.missingPackages).flat());\n }\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((field) => {\n forEach(autoDetectOverrides[field], (pkgVal, pkgName) => {\n if (this.overridesDependencies.shouldIgnorePeerPackage(pkgName)) return;\n // Validate it was auto detected, we only affect stuff that were detected\n const existsInCompsDeps = this.allDependencies.dependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n const existsInCompsDevDeps = this.allDependencies.devDependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n const existsInCompsPeerDeps = this.allDependencies.peerDependencies.find((dep) => {\n return dep.packageName === pkgName;\n });\n\n if (\n // We are checking originAllPackagesDependencies instead of allPackagesDependencies\n // as it might be already removed from allPackagesDependencies at this point if it was set with\n // \"-\" in runtime/dev\n // in such case we still want to apply it here\n !this.originAllPackagesDependencies.packageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.devPackageDependencies[pkgName] &&\n !this.originAllPackagesDependencies.peerPackageDependencies[pkgName] &&\n !existsInCompsDeps &&\n !existsInCompsDevDeps &&\n !existsInCompsPeerDeps &&\n // Check if it was orignally exists in the component\n // as we might have a policy which looks like this:\n // \"components\": {\n // \"dependencies\": {\n // \"my-dep\": \"-\"\n // },\n // \"devDependencies\": {\n // \"my-dep\": \"1.0.0\"\n // },\n // }\n // in that case we might remove it before getting to the devDeps then we will think that it wasn't required in the component\n // which is incorrect\n !originallyExists.includes(pkgName) &&\n !missingPackages.includes(pkgName)\n ) {\n return;\n }\n originallyExists.push(pkgName);\n const key = DepsKeysToAllPackagesDepsKeys[field];\n\n delete this.allPackagesDependencies[key][pkgName];\n // When changing peer dependency we want it to be stronger than the other types\n if (field === 'peerDependencies') {\n delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n delete this.allPackagesDependencies.packageDependencies[pkgName];\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 // delete this.allPackagesDependencies.packageDependencies[pkgName];\n // delete this.allPackagesDependencies.devPackageDependencies[pkgName];\n // delete this.allPackagesDependencies.peerPackageDependencies[pkgName];\n\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 if (\n pkgVal !== MANUALLY_REMOVE_DEPENDENCY &&\n ((!existsInCompsDeps && !existsInCompsDevDeps) || field === 'peerDependencies')\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 if (existsInCompsPeerDeps) {\n existsInCompsPeerDeps.versionRange = pkgVal;\n }\n }\n });\n });\n }\n\n private async applyAutoDetectedPeersFromEnvOnEnvItSelf(): Promise<void> {\n const envPolicy = await this.depsResolver.getEnvPolicyFromEnvId(this.component.id, this.component.files);\n if (!envPolicy) return;\n const envPolicyManifest = envPolicy.selfPolicy.toVersionManifest();\n\n if (!envPolicyManifest || !Object.keys(envPolicyManifest).length) {\n return;\n }\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 Object.assign(deps, envPolicyManifest);\n // TODO: handle component deps once we support peers between components\n this.allPackagesDependencies.packageDependencies = deps;\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,9 +1,9 @@
1
1
  import { ComponentID } from '@teambit/component-id';
2
2
  import { IssuesList } from '@teambit/component-issues';
3
- import Consumer from '@teambit/legacy/dist/consumer/consumer';
3
+ import { ConsumerComponent as Component } from '@teambit/legacy.consumer-component';
4
+ import { Consumer } from '@teambit/legacy.consumer';
4
5
  import { PathOsBased } from '@teambit/legacy.utils';
5
6
  import { ComponentMap } from '@teambit/legacy.bit-map';
6
- import Component from '@teambit/legacy/dist/consumer/component/consumer-component';
7
7
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
8
8
  import { DependenciesTree } from '../files-dependency-builder/types/dependency-tree-type';
9
9
  import { DevFilesMain } from '@teambit/dev-files';
@@ -47,23 +47,23 @@ function _componentIssues() {
47
47
  };
48
48
  return data;
49
49
  }
50
- function _dependencies() {
51
- const data = require("@teambit/legacy/dist/consumer/component/dependencies");
52
- _dependencies = function () {
50
+ function _legacy() {
51
+ const data = require("@teambit/legacy.consumer-component");
52
+ _legacy = function () {
53
53
  return data;
54
54
  };
55
55
  return data;
56
56
  }
57
- function _constants() {
58
- const data = require("@teambit/legacy/dist/constants");
59
- _constants = function () {
57
+ function _legacy2() {
58
+ const data = require("@teambit/legacy.constants");
59
+ _legacy2 = function () {
60
60
  return data;
61
61
  };
62
62
  return data;
63
63
  }
64
- function _logger() {
65
- const data = _interopRequireDefault(require("@teambit/legacy/dist/logger/logger"));
66
- _logger = function () {
64
+ function _legacy3() {
65
+ const data = require("@teambit/legacy.logger");
66
+ _legacy3 = function () {
67
67
  return data;
68
68
  };
69
69
  return data;
@@ -75,9 +75,9 @@ function _toolboxFs() {
75
75
  };
76
76
  return data;
77
77
  }
78
- function _legacy() {
78
+ function _legacy4() {
79
79
  const data = require("@teambit/legacy.utils");
80
- _legacy = function () {
80
+ _legacy4 = function () {
81
81
  return data;
82
82
  };
83
83
  return data;
@@ -275,7 +275,7 @@ class AutoDetectDeps {
275
275
  // bit commands not from root, because resolve take by default the process.cwd
276
276
  const rootDirFullPath = path().join(this.consumerPath, rootDir);
277
277
  const fullDepFile = path().resolve(rootDirFullPath, depFile);
278
- depFileRelative = (0, _legacy().pathNormalizeToLinux)(path().relative(this.consumerPath, fullDepFile));
278
+ depFileRelative = (0, _legacy4().pathNormalizeToLinux)(path().relative(this.consumerPath, fullDepFile));
279
279
  const componentId = this.consumer.bitMap.getComponentIdByPath(depFileRelative);
280
280
  return {
281
281
  componentId,
@@ -335,7 +335,7 @@ class AutoDetectDeps {
335
335
  const depComponentMap = this.consumer.bitMap.getComponentIfExist(componentId);
336
336
  // found a dependency component. Add it to this.allDependencies.dependencies
337
337
  const depRootDir = depComponentMap ? depComponentMap.rootDir : undefined;
338
- const destinationRelativePath = destination || (depRootDir && depFileRelative.startsWith(depRootDir) ? (0, _legacy().pathRelativeLinux)(depRootDir, depFileRelative) : depFileRelative);
338
+ const destinationRelativePath = destination || (depRootDir && depFileRelative.startsWith(depRootDir) ? (0, _legacy4().pathRelativeLinux)(depRootDir, depFileRelative) : depFileRelative);
339
339
 
340
340
  // when there is no rootDir for the current dependency (it happens when it's AUTHORED), keep the original path
341
341
  const sourceRelativePath = depRootDir ? depFileRelative : depFile;
@@ -349,7 +349,7 @@ class AutoDetectDeps {
349
349
  });
350
350
  depsPaths.importSpecifiers = importSpecifiers;
351
351
  }
352
- const currentComponentsDeps = new (_dependencies().Dependency)(componentId, [depsPaths]);
352
+ const currentComponentsDeps = new (_legacy().Dependency)(componentId, [depsPaths]);
353
353
  this._pushToRelativeComponentsAuthoredIssues(originFile, componentId, importSource, depsPaths);
354
354
  const allDependencies = [...this.allDependencies.dependencies, ...this.allDependencies.devDependencies];
355
355
  const existingDependency = this.getExistingDependency(allDependencies, componentId);
@@ -449,7 +449,7 @@ class AutoDetectDeps {
449
449
  peerVersionRange = defaultPeerRange;
450
450
  }
451
451
  }
452
- const currentComponentsDeps = new (_dependencies().Dependency)(existingId, [], compDep.name, peerVersionRange);
452
+ const currentComponentsDeps = new (_legacy().Dependency)(existingId, [], compDep.name, peerVersionRange);
453
453
  this._pushToDependenciesIfNotExist(currentComponentsDeps, {
454
454
  fileType,
455
455
  depDebug,
@@ -465,7 +465,7 @@ class AutoDetectDeps {
465
465
  if (!depMain) {
466
466
  return;
467
467
  }
468
- const depFullPath = (0, _legacy().pathNormalizeToLinux)(dependencyPkgData.fullPath);
468
+ const depFullPath = (0, _legacy4().pathNormalizeToLinux)(dependencyPkgData.fullPath);
469
469
  if (depFullPath.endsWith(depMain)) {
470
470
  // it requires the main-file. all is good.
471
471
  return;
@@ -476,7 +476,7 @@ class AutoDetectDeps {
476
476
  return;
477
477
  }
478
478
  const pkgRootDir = dependencyPkgData.packageJsonPath && path().dirname(dependencyPkgData.packageJsonPath);
479
- if (pkgRootDir && !_fsExtra().default.existsSync(path().join(pkgRootDir, _constants().DEFAULT_DIST_DIRNAME))) {
479
+ if (pkgRootDir && !_fsExtra().default.existsSync(path().join(pkgRootDir, _legacy2().DEFAULT_DIST_DIRNAME))) {
480
480
  // the dependency wasn't compiled yet. the issue is probably because depMain points to the dist
481
481
  // and depFullPath is in the source.
482
482
  return;
@@ -523,8 +523,8 @@ class AutoDetectDeps {
523
523
  const rootDirAbs = this.consumer.toAbsolutePath(this.componentMap.rootDir);
524
524
  const filePathAbs = path().resolve(rootDirAbs, file);
525
525
  const relativeToCompDir = path().relative(rootDirAbs, filePathAbs);
526
- const relativeToCompDirWithoutExt = (0, _legacy().removeFileExtension)(relativeToCompDir);
527
- const compFilesWithoutExt = this.componentMap.getAllFilesPaths().map(f => (0, _legacy().removeFileExtension)(f));
526
+ const relativeToCompDirWithoutExt = (0, _legacy4().removeFileExtension)(relativeToCompDir);
527
+ const compFilesWithoutExt = this.componentMap.getAllFilesPaths().map(f => (0, _legacy4().removeFileExtension)(f));
528
528
  const existWithDifferentExt = compFilesWithoutExt.some(f => f === relativeToCompDirWithoutExt);
529
529
  return !existWithDifferentExt;
530
530
  });
@@ -544,8 +544,8 @@ class AutoDetectDeps {
544
544
  processErrors(originFile) {
545
545
  const error = this.tree[originFile].error;
546
546
  if (!error) return;
547
- _logger().default.errorAndAddBreadCrumb('dependency-resolver.processErrors', `got an error from the driver while resolving dependencies from "${originFile}"`);
548
- _logger().default.error('dependency-resolver.processErrors', error);
547
+ _legacy3().logger.errorAndAddBreadCrumb('dependency-resolver.processErrors', `got an error from the driver while resolving dependencies from "${originFile}"`);
548
+ _legacy3().logger.error('dependency-resolver.processErrors', error);
549
549
  if (error.code === 'PARSING_ERROR') {
550
550
  const location = error.lineNumber && error.column ? ` (line: ${error.lineNumber}, column: ${error.column})` : '';
551
551
  this.issues.getOrCreate(_componentIssues().IssuesClasses.ParseErrors).data[originFile] = error.message + location;
@@ -669,7 +669,7 @@ class AutoDetectDeps {
669
669
  const depsHost = this.depsResolver.getWorkspacePolicyManifest();
670
670
  const addFromConfig = packageName => {
671
671
  if (!depsHost) return false;
672
- return _constants().DEPENDENCIES_FIELDS.some(depField => {
672
+ return _legacy2().DEPENDENCIES_FIELDS.some(depField => {
673
673
  if (!depsHost[depField]) return false;
674
674
  const typesPackage = (0, _packageToDefinetlyTyped().packageToDefinetlyTyped)(packageName);
675
675
  if (!depsHost[depField][typesPackage]) return false;