@teambit/dependencies 1.0.700 → 1.0.702

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.
@@ -434,7 +434,6 @@ export class ApplyOverrides {
434
434
  getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies)
435
435
  );
436
436
  // remove dev dependencies that are also regular dependencies
437
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
438
437
  const componentDepsIds = new ComponentIdList(...this.allDependencies.dependencies.map((c) => c.id));
439
438
  this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(
440
439
  (d) => !componentDepsIds.has(d.id)
@@ -11,7 +11,6 @@ export default class OverridesDependencies {
11
11
  missingPackageDependencies: string[];
12
12
  constructor(component: Component) {
13
13
  this.component = component;
14
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
15
14
  this.componentFromModel = this.component.componentFromModel;
16
15
  this.manuallyRemovedDependencies = {};
17
16
  this.manuallyAddedDependencies = {};
@@ -438,7 +438,6 @@ class ApplyOverrides {
438
438
  const getNotRegularPackages = packages => (0, _lodash().difference)(Object.keys(packages), Object.keys(this.allPackagesDependencies.packageDependencies));
439
439
  this.allPackagesDependencies.devPackageDependencies = (0, _lodash().pick)(this.allPackagesDependencies.devPackageDependencies, getNotRegularPackages(this.allPackagesDependencies.devPackageDependencies));
440
440
  // remove dev dependencies that are also regular dependencies
441
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
442
441
  const componentDepsIds = new (_componentId().ComponentIdList)(...this.allDependencies.dependencies.map(c => c.id));
443
442
  this.allDependencies.devDependencies = this.allDependencies.devDependencies.filter(d => !componentDepsIds.has(d.id));
444
443
  }
@@ -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","packageData","name","getDependenciesToAddManually","packageJson","existingDependencies","packages","DEPENDENCIES_FIELDS","depField","dependencyValue","componentData","isEqualWithoutVersion","warn","toString","dependencyExist","d","_addManuallyAddedDep","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","_getPackageJson","otherFields","f","depsSet","Set","depData","add","Dependency","otherField","has","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","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","existsInCompsPeerDeps","isAutoDetected","key","MANUALLY_REMOVE_DEPENDENCY","comp","envPolicy","getEnvPolicyFromEnvId","envPolicyManifest","selfPolicy","toVersionManifest","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 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 ): { 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 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 // @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)) {\n return;\n }\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 // Validate it was auto detected, we only affect stuff that were detected\n const isAutoDetected =\n existsInCompsDeps ||\n existsInCompsDevDeps ||\n existsInCompsPeerDeps ||\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 // Check if it was originally 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 if (!isAutoDetected) {\n return;\n }\n originallyExists.push(pkgName);\n const key = DepsKeysToAllPackagesDepsKeys[field];\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\n // This was restored to fix an issue with a case where\n // You have a package dep in env.jsonc under peers (like @testing-library/react)\n // Then you change the env.jsonc and move it from peer to devDependencies\n // the deps resolver data will be correct, but in the legacy data\n // it will still be in the peerPackageDependencies, so we need to remove it from there\n // to avoid having it in package.json as a peer dependency\n // which then will affect the installation of the component\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(\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 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","_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","packageData","name","getDependenciesToAddManually","packageJson","existingDependencies","packages","DEPENDENCIES_FIELDS","depField","dependencyValue","componentData","isEqualWithoutVersion","warn","toString","dependencyExist","d","_addManuallyAddedDep","addedPkg","_manuallyAddPackage","assign","missingPackageDependencies","_getPackageJson","otherFields","f","depsSet","Set","depData","add","Dependency","otherField","has","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","flat","pkgVal","existsInCompsDeps","existsInCompsDevDeps","existsInCompsPeerDeps","isAutoDetected","key","MANUALLY_REMOVE_DEPENDENCY","comp","envPolicy","getEnvPolicyFromEnvId","envPolicyManifest","selfPolicy","toVersionManifest","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 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 ): { 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 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 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)) {\n return;\n }\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 // Validate it was auto detected, we only affect stuff that were detected\n const isAutoDetected =\n existsInCompsDeps ||\n existsInCompsDevDeps ||\n existsInCompsPeerDeps ||\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 // Check if it was originally 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 if (!isAutoDetected) {\n return;\n }\n originallyExists.push(pkgName);\n const key = DepsKeysToAllPackagesDepsKeys[field];\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\n // This was restored to fix an issue with a case where\n // You have a package dep in env.jsonc under peers (like @testing-library/react)\n // Then you change the env.jsonc and move it from peer to devDependencies\n // the deps resolver data will be correct, but in the legacy data\n // it will still be in the peerPackageDependencies, so we need to remove it from there\n // to avoid having it in package.json as a peer dependency\n // which then will affect the installation of the component\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(\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 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":[]}
@@ -29,7 +29,6 @@ class OverridesDependencies {
29
29
  _defineProperty(this, "manuallyAddedDependencies", void 0);
30
30
  _defineProperty(this, "missingPackageDependencies", void 0);
31
31
  this.component = component;
32
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
33
32
  this.componentFromModel = this.component.componentFromModel;
34
33
  this.manuallyRemovedDependencies = {};
35
34
  this.manuallyAddedDependencies = {};
@@ -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","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 constructor(component: Component) {\n this.component = component;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\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","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","OverridesDependencies","constructor","component","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 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":[]}
@@ -50,7 +50,6 @@ function Config(options) {
50
50
  throw new Error('directory not given');
51
51
  }
52
52
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
53
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
54
53
  if (this.filter && typeof this.filter !== 'function') {
55
54
  throw new Error('filter must be a function');
56
55
  }
@@ -58,7 +57,6 @@ function Config(options) {
58
57
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
59
58
  debug(`given filename: ${this.filename}`);
60
59
 
61
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
62
60
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
63
61
  this.filename = path.resolve(process.cwd(), this.filename);
64
62
 
@@ -1 +1 @@
1
- {"version":3,"names":["path","require","debug","Config","options","filename","directory","root","visited","errors","nonExistent","isListForm","requireConfig","config","webpackConfig","detectiveConfig","detective","pathMap","resolveConfig","cacheProjectAst","envDetectors","filter","Error","resolve","process","cwd","prototype","clone"],"sources":["Config.ts"],"sourcesContent":["/**\n * this file had been forked from https://github.com/dependents/node-dependency-tree\n */\n\nconst path = require('path');\nconst debug = require('debug')('tree');\n\nexport default function Config(options) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.filename = options.filename;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.directory = options.directory || options.root;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.visited = options.visited || {};\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.errors = options.errors || {};\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.nonExistent = options.nonExistent || [];\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.isListForm = options.isListForm;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.requireConfig = options.config || options.requireConfig;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.webpackConfig = options.webpackConfig;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.detectiveConfig = options.detective || options.detectiveConfig || {};\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.pathMap = options.pathMap || [];\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.resolveConfig = options.resolveConfig;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.cacheProjectAst = options.cacheProjectAst;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.envDetectors = options.envDetectors;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.filter = options.filter;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (!this.filename) {\n throw new Error('filename not given');\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (!this.directory) {\n throw new Error('directory not given');\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (this.filter && typeof this.filter !== 'function') {\n throw new Error('filter must be a function');\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n debug(`given filename: ${this.filename}`);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.filename = path.resolve(process.cwd(), this.filename);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n debug(`resolved filename: ${this.filename}`);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n debug('visited: ', this.visited);\n}\n\nConfig.prototype.clone = function () {\n return new Config(this);\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEA,MAAMA,IAAI,GAAGC,OAAO,CAAC,MAAM,CAAC;AAC5B,MAAMC,KAAK,GAAGD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAEvB,SAASE,MAAMA,CAACC,OAAO,EAAE;EACtC;EACA,IAAI,CAACC,QAAQ,GAAGD,OAAO,CAACC,QAAQ;EAChC;EACA,IAAI,CAACC,SAAS,GAAGF,OAAO,CAACE,SAAS,IAAIF,OAAO,CAACG,IAAI;EAClD;EACA,IAAI,CAACC,OAAO,GAAGJ,OAAO,CAACI,OAAO,IAAI,CAAC,CAAC;EACpC;EACA,IAAI,CAACC,MAAM,GAAGL,OAAO,CAACK,MAAM,IAAI,CAAC,CAAC;EAClC;EACA,IAAI,CAACC,WAAW,GAAGN,OAAO,CAACM,WAAW,IAAI,EAAE;EAC5C;EACA,IAAI,CAACC,UAAU,GAAGP,OAAO,CAACO,UAAU;EACpC;EACA,IAAI,CAACC,aAAa,GAAGR,OAAO,CAACS,MAAM,IAAIT,OAAO,CAACQ,aAAa;EAC5D;EACA,IAAI,CAACE,aAAa,GAAGV,OAAO,CAACU,aAAa;EAC1C;EACA,IAAI,CAACC,eAAe,GAAGX,OAAO,CAACY,SAAS,IAAIZ,OAAO,CAACW,eAAe,IAAI,CAAC,CAAC;EACzE;EACA,IAAI,CAACE,OAAO,GAAGb,OAAO,CAACa,OAAO,IAAI,EAAE;EACpC;EACA,IAAI,CAACC,aAAa,GAAGd,OAAO,CAACc,aAAa;EAC1C;EACA,IAAI,CAACC,eAAe,GAAGf,OAAO,CAACe,eAAe;EAC9C;EACA,IAAI,CAACC,YAAY,GAAGhB,OAAO,CAACgB,YAAY;;EAExC;EACA,IAAI,CAACC,MAAM,GAAGjB,OAAO,CAACiB,MAAM;;EAE5B;EACA,IAAI,CAAC,IAAI,CAAChB,QAAQ,EAAE;IAClB,MAAM,IAAIiB,KAAK,CAAC,oBAAoB,CAAC;EACvC;EACA;EACA,IAAI,CAAC,IAAI,CAAChB,SAAS,EAAE;IACnB,MAAM,IAAIgB,KAAK,CAAC,qBAAqB,CAAC;EACxC;EACA;EACA;EACA,IAAI,IAAI,CAACD,MAAM,IAAI,OAAO,IAAI,CAACA,MAAM,KAAK,UAAU,EAAE;IACpD,MAAM,IAAIC,KAAK,CAAC,2BAA2B,CAAC;EAC9C;;EAEA;EACApB,KAAK,CAAC,mBAAmB,IAAI,CAACG,QAAQ,EAAE,CAAC;;EAEzC;EACA;EACA,IAAI,CAACA,QAAQ,GAAGL,IAAI,CAACuB,OAAO,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAACpB,QAAQ,CAAC;;EAE1D;EACAH,KAAK,CAAC,sBAAsB,IAAI,CAACG,QAAQ,EAAE,CAAC;EAC5C;EACAH,KAAK,CAAC,WAAW,EAAE,IAAI,CAACM,OAAO,CAAC;AAClC;AAEAL,MAAM,CAACuB,SAAS,CAACC,KAAK,GAAG,YAAY;EACnC,OAAO,IAAIxB,MAAM,CAAC,IAAI,CAAC;AACzB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["path","require","debug","Config","options","filename","directory","root","visited","errors","nonExistent","isListForm","requireConfig","config","webpackConfig","detectiveConfig","detective","pathMap","resolveConfig","cacheProjectAst","envDetectors","filter","Error","resolve","process","cwd","prototype","clone"],"sources":["Config.ts"],"sourcesContent":["/**\n * this file had been forked from https://github.com/dependents/node-dependency-tree\n */\n\nconst path = require('path');\nconst debug = require('debug')('tree');\n\nexport default function Config(options) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.filename = options.filename;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.directory = options.directory || options.root;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.visited = options.visited || {};\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.errors = options.errors || {};\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.nonExistent = options.nonExistent || [];\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.isListForm = options.isListForm;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.requireConfig = options.config || options.requireConfig;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.webpackConfig = options.webpackConfig;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.detectiveConfig = options.detective || options.detectiveConfig || {};\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.pathMap = options.pathMap || [];\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.resolveConfig = options.resolveConfig;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.cacheProjectAst = options.cacheProjectAst;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.envDetectors = options.envDetectors;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.filter = options.filter;\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (!this.filename) {\n throw new Error('filename not given');\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (!this.directory) {\n throw new Error('directory not given');\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (this.filter && typeof this.filter !== 'function') {\n throw new Error('filter must be a function');\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n debug(`given filename: ${this.filename}`);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.filename = path.resolve(process.cwd(), this.filename);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n debug(`resolved filename: ${this.filename}`);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n debug('visited: ', this.visited);\n}\n\nConfig.prototype.clone = function () {\n return new Config(this);\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEA,MAAMA,IAAI,GAAGC,OAAO,CAAC,MAAM,CAAC;AAC5B,MAAMC,KAAK,GAAGD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAEvB,SAASE,MAAMA,CAACC,OAAO,EAAE;EACtC;EACA,IAAI,CAACC,QAAQ,GAAGD,OAAO,CAACC,QAAQ;EAChC;EACA,IAAI,CAACC,SAAS,GAAGF,OAAO,CAACE,SAAS,IAAIF,OAAO,CAACG,IAAI;EAClD;EACA,IAAI,CAACC,OAAO,GAAGJ,OAAO,CAACI,OAAO,IAAI,CAAC,CAAC;EACpC;EACA,IAAI,CAACC,MAAM,GAAGL,OAAO,CAACK,MAAM,IAAI,CAAC,CAAC;EAClC;EACA,IAAI,CAACC,WAAW,GAAGN,OAAO,CAACM,WAAW,IAAI,EAAE;EAC5C;EACA,IAAI,CAACC,UAAU,GAAGP,OAAO,CAACO,UAAU;EACpC;EACA,IAAI,CAACC,aAAa,GAAGR,OAAO,CAACS,MAAM,IAAIT,OAAO,CAACQ,aAAa;EAC5D;EACA,IAAI,CAACE,aAAa,GAAGV,OAAO,CAACU,aAAa;EAC1C;EACA,IAAI,CAACC,eAAe,GAAGX,OAAO,CAACY,SAAS,IAAIZ,OAAO,CAACW,eAAe,IAAI,CAAC,CAAC;EACzE;EACA,IAAI,CAACE,OAAO,GAAGb,OAAO,CAACa,OAAO,IAAI,EAAE;EACpC;EACA,IAAI,CAACC,aAAa,GAAGd,OAAO,CAACc,aAAa;EAC1C;EACA,IAAI,CAACC,eAAe,GAAGf,OAAO,CAACe,eAAe;EAC9C;EACA,IAAI,CAACC,YAAY,GAAGhB,OAAO,CAACgB,YAAY;;EAExC;EACA,IAAI,CAACC,MAAM,GAAGjB,OAAO,CAACiB,MAAM;;EAE5B;EACA,IAAI,CAAC,IAAI,CAAChB,QAAQ,EAAE;IAClB,MAAM,IAAIiB,KAAK,CAAC,oBAAoB,CAAC;EACvC;EACA;EACA,IAAI,CAAC,IAAI,CAAChB,SAAS,EAAE;IACnB,MAAM,IAAIgB,KAAK,CAAC,qBAAqB,CAAC;EACxC;EACA;EACA,IAAI,IAAI,CAACD,MAAM,IAAI,OAAO,IAAI,CAACA,MAAM,KAAK,UAAU,EAAE;IACpD,MAAM,IAAIC,KAAK,CAAC,2BAA2B,CAAC;EAC9C;;EAEA;EACApB,KAAK,CAAC,mBAAmB,IAAI,CAACG,QAAQ,EAAE,CAAC;;EAEzC;EACA,IAAI,CAACA,QAAQ,GAAGL,IAAI,CAACuB,OAAO,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAACpB,QAAQ,CAAC;;EAE1D;EACAH,KAAK,CAAC,sBAAsB,IAAI,CAACG,QAAQ,EAAE,CAAC;EAC5C;EACAH,KAAK,CAAC,WAAW,EAAE,IAAI,CAACM,OAAO,CAAC;AAClC;AAEAL,MAAM,CAACuB,SAAS,CAACC,KAAK,GAAG,YAAY;EACnC,OAAO,IAAIxB,MAAM,CAAC,IAAI,CAAC;AACzB,CAAC","ignoreList":[]}
@@ -78,7 +78,6 @@ function cleanUnitDir() {
78
78
  _fsExtra().default.removeSync(UNIT_TEST_DIR);
79
79
  }
80
80
  describe('dependencyTree', function () {
81
- // @ts-ignore
82
81
  this.timeout(8000);
83
82
  function testTreesForFormat(format, ext = '.js') {
84
83
  it('returns an object form of the dependency tree for a file', () => {
@@ -587,7 +586,6 @@ describe('dependencyTree', function () {
587
586
  };
588
587
  });
589
588
  it('resolves unaliased modules', () => {
590
- // @ts-ignore
591
589
  this.timeout(5000);
592
590
  // @ts-ignore
593
591
  this._testResolution('unaliased');
@@ -1 +1 @@
1
- {"version":3,"names":["_defenderFs","data","require","_assert","_interopRequireDefault","_path","_rewire","_sinon","_fsExtra","_precinct","_Config","e","__esModule","default","UNIT_TEST_DIR","path","join","BIT_TEMP_ROOT","expect","dependencyTreeRewired","rewire","dependencyTree","fixtures","resolve","__dirname","mockfs","obj","Object","entries","forEach","key","value","fs","mkdirSync","recursive","file","content","filePath","writeFileSync","cleanUnitDir","removeSync","describe","timeout","testTreesForFormat","format","ext","it","root","filename","normalize","tree","assert","aSubTree","ok","filesInSubTree","keys","equal","length","mockStylus","mockSass","mockLess","mockcommonjs","mockes6","mockTS","afterEach","imaginary","directory","subTree","bTree","cTree","some","dep","indexOf","spy","sinon","callCount","_getDependencies","restore","node","nodes","process","cwd","precinct","detectiveConfig","amd","skipLazyLoaded","detective","calledWith","nonExistent","beforeEach","_directory","_revert","__set__","throws","undefined","filter","doesNotThrow","_spy","cache","pathMap","dependencies","visited","includes","skip","_root","_webpackConfig","_testResolution","name","results","toList","webpackConfig","moduleFile","has3rdPartyDep","es6","mixedImports","node_modules","nodeModulesConfig","entry","config","Config","clone","deepEqual","fooFile","barFile","bazFile","to","deep","baseFile","indexFile","be","missing"],"sources":["index.spec.ts"],"sourcesContent":["import { BIT_TEMP_ROOT } from '@teambit/defender.fs.global-bit-temp-dir';\nimport assert from 'assert';\nimport path from 'path';\nimport rewire from 'rewire';\nimport sinon from 'sinon';\nimport fs from 'fs-extra';\n\nimport precinct from '../precinct';\nimport Config from './Config';\n\nconst UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');\nconst expect = require('chai').expect;\n\nconst dependencyTreeRewired = rewire('./');\nconst dependencyTree = dependencyTreeRewired.default;\nconst fixtures = path.resolve(`${__dirname}/../fixtures/dependency-tree`);\n\nfunction mockfs(obj: any) {\n Object.entries(obj).forEach(([key, value]) => {\n fs.mkdirSync(key, { recursive: true });\n // @ts-ignore\n Object.entries(value).forEach(([file, content]) => {\n const filePath = path.join(key, file);\n fs.writeFileSync(filePath, content as string);\n });\n });\n}\n\nfunction cleanUnitDir() {\n fs.removeSync(UNIT_TEST_DIR);\n}\n\ndescribe('dependencyTree', function () {\n // @ts-ignore\n this.timeout(8000);\n function testTreesForFormat(format, ext = '.js') {\n it('returns an object form of the dependency tree for a file', () => {\n const root = `${UNIT_TEST_DIR}/${format}`;\n const filename = path.normalize(`${root}/a${ext}`);\n\n const tree = dependencyTree({ filename, root });\n\n assert(tree instanceof Object);\n\n const aSubTree = tree[filename];\n\n assert.ok(aSubTree instanceof Object);\n const filesInSubTree = Object.keys(aSubTree);\n\n assert.equal(filesInSubTree.length, 2);\n });\n }\n\n function mockStylus() {\n mockfs({\n [`${UNIT_TEST_DIR}/stylus`]: {\n 'a.styl': `\n @import \"b\"\n @require \"c.styl\"\n `,\n 'b.styl': '@import \"c\"',\n 'c.styl': '',\n },\n });\n }\n\n function mockSass() {\n mockfs({\n [`${UNIT_TEST_DIR}/sass`]: {\n 'a.scss': `\n @import \"_b\";\n @import \"_c.scss\";\n `,\n '_b.scss': 'body { color: blue; }',\n '_c.scss': 'body { color: pink; }',\n },\n });\n }\n\n function mockLess() {\n mockfs({\n [`${UNIT_TEST_DIR}/less`]: {\n 'a.less': `\n @import \"b.css\";\n @import \"c.less\";\n `,\n 'b.css': 'body { color: blue; }',\n 'c.less': 'body { color: pink; }',\n },\n });\n }\n\n function mockcommonjs() {\n mockfs({\n [`${UNIT_TEST_DIR}/commonjs`]: {\n 'a.js': `\n var b = require('./b');\n var c = require('./c');\n `,\n 'b.js': `\n var path = require('path');\n module.exports = {};\n `,\n 'c.js': `\n var fs = require('fs');\n module.exports = {};\n `,\n },\n });\n }\n\n function mockes6() {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'a.js': `\n import b from './b';\n import c from './c';\n `,\n 'b.js': 'export default () => {};',\n 'c.js': 'export default () => {};',\n 'jsx.js': \"import c from './c';\\n export default <jsx />;\",\n 'foo.jsx': \"import React from 'react';\\n import b from './b';\\n export default <jsx />;\",\n 'es7.js': \"import c from './c';\\n export default async function foo() {};\",\n },\n });\n }\n\n function mockTS() {\n mockfs({\n [`${UNIT_TEST_DIR}/ts`]: {\n 'a.ts': `\n import b from './b';\n import c from './c';\n `,\n 'b.ts': 'export default () => {};',\n 'c.ts': 'export default () => {};',\n },\n });\n }\n\n afterEach(() => {\n // mockfs.restore();\n cleanUnitDir();\n });\n\n it('returns an empty object for a non-existent filename', () => {\n mockfs({\n imaginary: {},\n });\n\n const root = `${UNIT_TEST_DIR}/imaginary`;\n const filename = `${root}/notafile.js`;\n const tree = dependencyTree({ filename, root });\n\n assert(tree instanceof Object);\n assert(!Object.keys(tree).length);\n });\n\n it('handles nested tree structures', () => {\n const directory = `${UNIT_TEST_DIR}/extended`;\n\n mockfs({\n [directory]: {\n 'a.js': `\n var b = require('./b');\n var c = require('./c');`,\n 'b.js': `\n var d = require('./d');\n var e = require('./e');`,\n 'c.js': `\n var f = require('./f');\n var g = require('./g');`,\n 'd.js': '',\n 'e.js': '',\n 'f.js': '',\n 'g.js': '',\n },\n });\n\n const filename = path.normalize(`${directory}/a.js`);\n const tree = dependencyTree({ filename, directory });\n assert(tree[filename] instanceof Object);\n\n // b and c\n const subTree = tree[filename];\n assert.equal(subTree.length, 2);\n\n const bTree = tree[path.normalize(`${directory}/b.js`)];\n const cTree = tree[path.normalize(`${directory}/c.js`)];\n // d and e\n assert.equal(bTree.length, 2);\n // f ang g\n assert.equal(cTree.length, 2);\n });\n\n it('does not include files that are not real (#13)', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var notReal = require(\"./notReal\");',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = path.normalize(`${directory}/a.js`);\n\n const tree = dependencyTree({ filename, directory });\n const subTree = tree[filename];\n\n assert.ok(!Object.keys(subTree).some((dep) => dep.indexOf('notReal') !== -1));\n });\n\n it('does not choke on cyclic dependencies', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cyclic`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'var a = require(\"./a\");',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/cyclic`;\n const filename = path.normalize(`${directory}/a.js`);\n\n const spy = sinon.spy(dependencyTreeRewired, '_getDependencies');\n\n const tree = dependencyTreeRewired.default({ filename, directory });\n\n assert(spy.callCount === 2);\n assert(Object.keys(tree[filename]).length);\n\n dependencyTreeRewired._getDependencies.restore();\n });\n\n it('excludes Nodejs core modules by default', () => {\n const directory = `${fixtures}/commonjs`;\n const filename = path.normalize(`${directory}/b.js`);\n\n const tree = dependencyTree({ filename, directory });\n assert(Object.keys(tree[filename]).length === 0);\n assert(Object.keys(tree)[0].indexOf('b.js') !== -1);\n });\n\n it('returns a list of absolutely pathed files', () => {\n const directory = `${UNIT_TEST_DIR}/commonjs`;\n const filename = `${directory}/b.js`;\n\n const tree = dependencyTree({ filename, directory });\n // eslint-disable-next-line\n for (const node in tree.nodes) {\n assert(node.indexOf(process.cwd()) !== -1);\n }\n });\n\n describe('when given a detective configuration', () => {\n it('passes it through to precinct', () => {\n const spy = sinon.spy(precinct, 'paperwork');\n const directory = path.normalize(`${fixtures}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const detectiveConfig = {\n amd: {\n skipLazyLoaded: true,\n },\n };\n\n dependencyTree({\n filename,\n directory,\n detective: detectiveConfig,\n });\n\n assert.ok(spy.calledWith(filename, detectiveConfig));\n spy.restore();\n });\n });\n\n describe('when given a list to store non existent partials', () => {\n describe('and the file contains no valid partials', () => {\n it('stores the invalid partials', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var notReal = require(\"./notReal\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 1);\n assert.equal(nonExistent[filename][0], './notReal');\n });\n });\n\n describe('and the file contains all valid partials', () => {\n it('does not store anything', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'export default 1;',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(nonExistent.length, 0);\n });\n });\n\n describe('and the file contains a mix of invalid and valid partials', () => {\n it('stores the invalid ones', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'var c = require(\"./c\"); export default 1;',\n 'c.js': 'var crap = require(\"./notRealMan\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 1);\n assert.equal(nonExistent[path.normalize(`${directory}/c.js`)][0], './notRealMan');\n });\n });\n\n describe('and there is more than one reference to the invalid partial', () => {\n it('should include the non-existent partial per file', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");\\nvar crap = require(\"./notRealMan\");',\n 'b.js': 'var c = require(\"./c\"); export default 1;',\n 'c.js': 'var crap = require(\"./notRealMan\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 2);\n assert.equal(nonExistent[filename][0], './notRealMan');\n assert.equal(nonExistent[path.normalize(`${directory}/c.js`)][0], './notRealMan');\n });\n });\n });\n\n describe('throws', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = `${UNIT_TEST_DIR}/commonjs`;\n // @ts-ignore\n this._revert = dependencyTreeRewired.__set__('traverse', () => []);\n });\n\n afterEach(() => {\n // @ts-ignore\n this._revert();\n });\n\n it('throws if the filename is missing', () => {\n assert.throws(() => {\n dependencyTree({\n filename: undefined,\n // @ts-ignore\n directory: this._directory,\n });\n });\n });\n\n it('throws if the root is missing', () => {\n assert.throws(() => {\n dependencyTree({ filename: undefined });\n });\n });\n\n it('throws if a supplied filter is not a function', () => {\n assert.throws(() => {\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n\n dependencyTree({\n filename,\n directory,\n filter: 'foobar',\n });\n });\n });\n\n it('does not throw on the legacy `root` option', () => {\n assert.doesNotThrow(() => {\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n\n dependencyTree({\n filename,\n root: directory,\n });\n });\n });\n });\n\n describe('on file error', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = `${UNIT_TEST_DIR}/commonjs`;\n });\n\n it('does not throw', () => {\n assert.doesNotThrow(() => {\n dependencyTree({\n filename: 'foo',\n // @ts-ignore\n directory: this._directory,\n });\n });\n });\n\n it('returns no dependencies', () => {\n // @ts-ignore\n const tree = dependencyTree({ filename: 'foo', directory: this._directory });\n assert(!tree.length);\n });\n });\n\n describe('memoization (#2)', () => {\n beforeEach(() => {\n // @ts-ignore\n this._spy = sinon.spy(dependencyTreeRewired, '_getDependencies');\n });\n\n afterEach(() => {\n dependencyTreeRewired._getDependencies.restore();\n });\n\n it('returns the precomputed list of a cached entry point', () => {\n const filename = `${UNIT_TEST_DIR}/amd/a.js`;\n const directory = `${UNIT_TEST_DIR}/amd`;\n\n const cache = {\n // Shouldn't process the first file's tree\n [filename]: { pathMap: { dependencies: [] } },\n };\n\n const tree = dependencyTree({\n filename,\n directory,\n visited: cache,\n });\n\n assert(!tree.length);\n });\n });\n\n describe('module formats', () => {\n describe('commonjs', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n mockcommonjs();\n });\n\n testTreesForFormat('commonjs');\n });\n\n describe('es6', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n mockes6();\n });\n\n testTreesForFormat('es6');\n\n it('resolves files that have jsx', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/jsx.js`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/c.js`)));\n });\n\n it('resolves files with a jsx extension', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/foo.jsx`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/b.js`)));\n });\n\n it('resolves files that have es7', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/es7.js`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/c.js`)));\n });\n });\n\n describe('sass', () => {\n beforeEach(() => {\n mockSass();\n });\n\n testTreesForFormat('sass', '.scss');\n });\n\n describe('stylus', () => {\n beforeEach(() => {\n mockStylus();\n });\n\n testTreesForFormat('stylus', '.styl');\n });\n\n describe('less', () => {\n beforeEach(() => {\n mockLess();\n });\n\n testTreesForFormat('less', '.less');\n });\n\n describe('typescript', () => {\n beforeEach(() => {\n mockTS();\n });\n\n testTreesForFormat('ts', '.ts');\n });\n });\n\n // skipping the webpack unit tests for now as it's not easy to wire up all the files together.\n // originally, in dependency-tree, the webpack.config.js is in the same directory of the index.js.\n // doing the same here will be confusing. instead, we have already e2e-tests in bit legacy of custom\n // module resolution, which takes advantage of the webpack config.\n describe.skip('webpack', () => {\n beforeEach(() => {\n // Note: not mocking because webpack's resolver needs a real project with dependencies;\n // otherwise, we'd have to mock a ton of files.\n // @ts-ignore\n this._root = path.join(UNIT_TEST_DIR, '../');\n // @ts-ignore\n this._webpackConfig = `${this._root}/webpack.config.js`;\n // @ts-ignore\n this._testResolution = (name) => {\n const results = dependencyTree.toList({\n filename: `${UNIT_TEST_DIR}/webpack/${name}.js`,\n // @ts-ignore\n directory: this._root,\n // @ts-ignore\n webpackConfig: this._webpackConfig,\n filter: (filename) => filename.indexOf('filing-cabinet') !== -1,\n });\n assert.ok(results.some((filename) => filename.indexOf('node_modules/filing-cabinet') !== -1));\n };\n });\n\n it('resolves unaliased modules', () => {\n // @ts-ignore\n this.timeout(5000);\n // @ts-ignore\n this._testResolution('unaliased');\n });\n });\n\n describe('when a filter function is supplied', () => {\n it('uses the filter to determine if a file should be included in the results', () => {\n const directory = path.normalize(`${fixtures}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n // Skip all 3rd party deps\n filter: (filePath, moduleFile) => {\n assert.ok(require.resolve('debug'));\n assert.ok(moduleFile.includes(path.normalize('onlyRealDeps/a.js')));\n return filePath.indexOf('node_modules') === -1;\n },\n });\n\n const subTree = tree[filename];\n assert.ok(Object.keys(tree).length);\n\n const has3rdPartyDep = Object.keys(subTree).some((dep) => dep === require.resolve('debug'));\n assert.ok(!has3rdPartyDep);\n });\n });\n\n describe('when given a CJS file with lazy requires', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/cjs`]: {\n 'foo.js': 'module.exports = function(bar = require(\"./bar\")) {};',\n 'bar.js': 'module.exports = 1;',\n },\n });\n });\n\n it('includes the lazy dependency', () => {\n const directory = `${UNIT_TEST_DIR}/cjs`;\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({ filename, directory });\n assert.ok(tree[filename].includes(path.normalize(`${directory}/bar.js`)));\n });\n });\n\n describe('when given an es6 file using CJS lazy requires', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'foo.js': 'export default function(bar = require(\"./bar\")) {};',\n 'bar.js': 'export default 1;',\n },\n });\n });\n\n describe('and mixedImport mode is turned on', () => {\n it('includes the lazy dependency', () => {\n const directory = `${UNIT_TEST_DIR}/es6`;\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n detective: {\n es6: {\n mixedImports: true,\n },\n },\n });\n\n assert.ok(tree[filename].includes(path.normalize(`${directory}/bar.js`)));\n });\n });\n });\n\n describe('when given an es6 file using dynamic imports', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'foo.js': 'import(\"./bar\");',\n 'bar.js': 'export default 1;',\n },\n });\n });\n\n it('includes the dynamic import', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n });\n\n const subTree = tree[filename];\n\n assert.ok(!(`${directory}/bar.js` in subTree));\n });\n });\n\n describe('when a dependency of the main file is not supported', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'foo.js': 'require(\"./bar.json\");',\n 'bar.json': '{ \"main\": \"I\\'m a simple JSON object\" }',\n },\n });\n });\n\n it('should include it as a dependency and not throw an error', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n });\n\n assert.ok(`${directory}/bar.json` in tree);\n });\n });\n\n // nodeModulesConfig is a feature added to dependency-tree and filing-cabinet to support\n // \"module\" attribute of package.json, see here what this attribute is good for:\n // https://github.com/rollup/rollup/wiki/pkg.module\n // the commit of supporting it in filing-cabinet is here: https://github.com/dependents/node-filing-cabinet/commit/abef861a5a725b29c2342d01de94c6e2dd881aa0\n describe.skip('when given a CJS file with module property in package.json', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'module.entry.js': 'import * as module from \"module.entry\"',\n node_modules: {\n 'module.entry': {\n 'index.main.js': 'module.exports = () => {};',\n 'index.module.js': 'module.exports = () => {};',\n 'package.json': '{ \"main\": \"index.main.js\", \"module\": \"index.module.js\" }',\n },\n },\n },\n });\n });\n\n it('it includes the module entry as dependency', () => {\n const directory = `${UNIT_TEST_DIR}/es6`;\n const filename = `${directory}/module.entry.js`;\n\n const tree = dependencyTree({\n filename,\n directory,\n nodeModulesConfig: {\n entry: 'module',\n },\n });\n const subTree = tree[filename];\n\n assert.ok(`${directory}/node_modules/module.entry/index.module.js` in subTree);\n });\n });\n\n describe('Config', () => {\n describe('when cloning', () => {\n describe('and a detective config was set', () => {\n it('retains the detective config in the clone', () => {\n const detectiveConfig = {\n es6: {\n mixedImports: true,\n },\n };\n\n const config = new Config({\n detectiveConfig,\n filename: 'foo',\n directory: 'bar',\n });\n\n const clone = config.clone();\n\n assert.deepEqual(clone.detectiveConfig, detectiveConfig);\n });\n });\n });\n });\n\n describe('when a dependency has missing packages and is retrieved from the cache (visited)', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'foo.js': 'require(\"non-exist-foo-pkg\");',\n 'bar.js': 'require(\"./foo\"); require(\"non-exist-bar-pkg\")',\n 'baz.js': 'require(\"./foo\"); require(\"./bar\"); require(\"non-exist-baz-pkg\")',\n },\n });\n });\n\n it('should not override the cache with wrong packages', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const fooFile = path.normalize(`${directory}/foo.js`);\n const barFile = path.normalize(`${directory}/bar.js`);\n const bazFile = path.normalize(`${directory}/baz.js`);\n const nonExistent = {};\n const config = {\n directory,\n nonExistent,\n visited: {},\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = fooFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = barFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n expect(nonExistent[barFile]).to.deep.equal(['non-exist-bar-pkg']);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = bazFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n expect(nonExistent[barFile]).to.deep.equal(['non-exist-bar-pkg']);\n expect(nonExistent[bazFile]).to.deep.equal(['non-exist-baz-pkg']);\n });\n });\n describe('passing css files and then javascript files', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'base.scss': 'li {} a {}', // don't change the content. it crash only with this for some reason\n 'index.jsx': \"require('some-module');\",\n },\n });\n });\n it('should not crash with \"RangeError: Maximum call stack size exceeded\" error', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const baseFile = path.normalize(`${directory}/base.scss`);\n const indexFile = path.normalize(`${directory}/index.jsx`);\n const config = {\n directory,\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = baseFile;\n dependencyTree(config);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = indexFile;\n const dependencies = dependencyTree(config);\n expect(dependencies).to.be.ok;\n });\n });\n describe('files with dynamic import', () => {\n it('should not show missing dependencies', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/dynamic`]: {\n 'foo.js': 'const a = \"./b\"; import(a); require(a);',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/dynamic`);\n const filename = path.normalize(`${directory}/foo.js`);\n const visited = {};\n\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n });\n describe('files with import from cdn (http, https)', () => {\n it('should not show missing dependencies when importing from https', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cdn`]: {\n 'foo.js': 'import { a } from \"https://unpkg.com\";',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/cdn`);\n const filename = path.normalize(`${directory}/foo.js`);\n const visited = {};\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n it('should not show missing dependencies when importing from http', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cdn`]: {\n 'bar.js': 'const b = require(\"http://pkg.com\");',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/cdn`);\n const filename = path.normalize(`${directory}/bar.js`);\n const visited = {};\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_defenderFs","data","require","_assert","_interopRequireDefault","_path","_rewire","_sinon","_fsExtra","_precinct","_Config","e","__esModule","default","UNIT_TEST_DIR","path","join","BIT_TEMP_ROOT","expect","dependencyTreeRewired","rewire","dependencyTree","fixtures","resolve","__dirname","mockfs","obj","Object","entries","forEach","key","value","fs","mkdirSync","recursive","file","content","filePath","writeFileSync","cleanUnitDir","removeSync","describe","timeout","testTreesForFormat","format","ext","it","root","filename","normalize","tree","assert","aSubTree","ok","filesInSubTree","keys","equal","length","mockStylus","mockSass","mockLess","mockcommonjs","mockes6","mockTS","afterEach","imaginary","directory","subTree","bTree","cTree","some","dep","indexOf","spy","sinon","callCount","_getDependencies","restore","node","nodes","process","cwd","precinct","detectiveConfig","amd","skipLazyLoaded","detective","calledWith","nonExistent","beforeEach","_directory","_revert","__set__","throws","undefined","filter","doesNotThrow","_spy","cache","pathMap","dependencies","visited","includes","skip","_root","_webpackConfig","_testResolution","name","results","toList","webpackConfig","moduleFile","has3rdPartyDep","es6","mixedImports","node_modules","nodeModulesConfig","entry","config","Config","clone","deepEqual","fooFile","barFile","bazFile","to","deep","baseFile","indexFile","be","missing"],"sources":["index.spec.ts"],"sourcesContent":["import { BIT_TEMP_ROOT } from '@teambit/defender.fs.global-bit-temp-dir';\nimport assert from 'assert';\nimport path from 'path';\nimport rewire from 'rewire';\nimport sinon from 'sinon';\nimport fs from 'fs-extra';\n\nimport precinct from '../precinct';\nimport Config from './Config';\n\nconst UNIT_TEST_DIR = path.join(BIT_TEMP_ROOT, 'unit-test');\nconst expect = require('chai').expect;\n\nconst dependencyTreeRewired = rewire('./');\nconst dependencyTree = dependencyTreeRewired.default;\nconst fixtures = path.resolve(`${__dirname}/../fixtures/dependency-tree`);\n\nfunction mockfs(obj: any) {\n Object.entries(obj).forEach(([key, value]) => {\n fs.mkdirSync(key, { recursive: true });\n // @ts-ignore\n Object.entries(value).forEach(([file, content]) => {\n const filePath = path.join(key, file);\n fs.writeFileSync(filePath, content as string);\n });\n });\n}\n\nfunction cleanUnitDir() {\n fs.removeSync(UNIT_TEST_DIR);\n}\n\ndescribe('dependencyTree', function () {\n this.timeout(8000);\n function testTreesForFormat(format, ext = '.js') {\n it('returns an object form of the dependency tree for a file', () => {\n const root = `${UNIT_TEST_DIR}/${format}`;\n const filename = path.normalize(`${root}/a${ext}`);\n\n const tree = dependencyTree({ filename, root });\n\n assert(tree instanceof Object);\n\n const aSubTree = tree[filename];\n\n assert.ok(aSubTree instanceof Object);\n const filesInSubTree = Object.keys(aSubTree);\n\n assert.equal(filesInSubTree.length, 2);\n });\n }\n\n function mockStylus() {\n mockfs({\n [`${UNIT_TEST_DIR}/stylus`]: {\n 'a.styl': `\n @import \"b\"\n @require \"c.styl\"\n `,\n 'b.styl': '@import \"c\"',\n 'c.styl': '',\n },\n });\n }\n\n function mockSass() {\n mockfs({\n [`${UNIT_TEST_DIR}/sass`]: {\n 'a.scss': `\n @import \"_b\";\n @import \"_c.scss\";\n `,\n '_b.scss': 'body { color: blue; }',\n '_c.scss': 'body { color: pink; }',\n },\n });\n }\n\n function mockLess() {\n mockfs({\n [`${UNIT_TEST_DIR}/less`]: {\n 'a.less': `\n @import \"b.css\";\n @import \"c.less\";\n `,\n 'b.css': 'body { color: blue; }',\n 'c.less': 'body { color: pink; }',\n },\n });\n }\n\n function mockcommonjs() {\n mockfs({\n [`${UNIT_TEST_DIR}/commonjs`]: {\n 'a.js': `\n var b = require('./b');\n var c = require('./c');\n `,\n 'b.js': `\n var path = require('path');\n module.exports = {};\n `,\n 'c.js': `\n var fs = require('fs');\n module.exports = {};\n `,\n },\n });\n }\n\n function mockes6() {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'a.js': `\n import b from './b';\n import c from './c';\n `,\n 'b.js': 'export default () => {};',\n 'c.js': 'export default () => {};',\n 'jsx.js': \"import c from './c';\\n export default <jsx />;\",\n 'foo.jsx': \"import React from 'react';\\n import b from './b';\\n export default <jsx />;\",\n 'es7.js': \"import c from './c';\\n export default async function foo() {};\",\n },\n });\n }\n\n function mockTS() {\n mockfs({\n [`${UNIT_TEST_DIR}/ts`]: {\n 'a.ts': `\n import b from './b';\n import c from './c';\n `,\n 'b.ts': 'export default () => {};',\n 'c.ts': 'export default () => {};',\n },\n });\n }\n\n afterEach(() => {\n // mockfs.restore();\n cleanUnitDir();\n });\n\n it('returns an empty object for a non-existent filename', () => {\n mockfs({\n imaginary: {},\n });\n\n const root = `${UNIT_TEST_DIR}/imaginary`;\n const filename = `${root}/notafile.js`;\n const tree = dependencyTree({ filename, root });\n\n assert(tree instanceof Object);\n assert(!Object.keys(tree).length);\n });\n\n it('handles nested tree structures', () => {\n const directory = `${UNIT_TEST_DIR}/extended`;\n\n mockfs({\n [directory]: {\n 'a.js': `\n var b = require('./b');\n var c = require('./c');`,\n 'b.js': `\n var d = require('./d');\n var e = require('./e');`,\n 'c.js': `\n var f = require('./f');\n var g = require('./g');`,\n 'd.js': '',\n 'e.js': '',\n 'f.js': '',\n 'g.js': '',\n },\n });\n\n const filename = path.normalize(`${directory}/a.js`);\n const tree = dependencyTree({ filename, directory });\n assert(tree[filename] instanceof Object);\n\n // b and c\n const subTree = tree[filename];\n assert.equal(subTree.length, 2);\n\n const bTree = tree[path.normalize(`${directory}/b.js`)];\n const cTree = tree[path.normalize(`${directory}/c.js`)];\n // d and e\n assert.equal(bTree.length, 2);\n // f ang g\n assert.equal(cTree.length, 2);\n });\n\n it('does not include files that are not real (#13)', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var notReal = require(\"./notReal\");',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = path.normalize(`${directory}/a.js`);\n\n const tree = dependencyTree({ filename, directory });\n const subTree = tree[filename];\n\n assert.ok(!Object.keys(subTree).some((dep) => dep.indexOf('notReal') !== -1));\n });\n\n it('does not choke on cyclic dependencies', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cyclic`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'var a = require(\"./a\");',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/cyclic`;\n const filename = path.normalize(`${directory}/a.js`);\n\n const spy = sinon.spy(dependencyTreeRewired, '_getDependencies');\n\n const tree = dependencyTreeRewired.default({ filename, directory });\n\n assert(spy.callCount === 2);\n assert(Object.keys(tree[filename]).length);\n\n dependencyTreeRewired._getDependencies.restore();\n });\n\n it('excludes Nodejs core modules by default', () => {\n const directory = `${fixtures}/commonjs`;\n const filename = path.normalize(`${directory}/b.js`);\n\n const tree = dependencyTree({ filename, directory });\n assert(Object.keys(tree[filename]).length === 0);\n assert(Object.keys(tree)[0].indexOf('b.js') !== -1);\n });\n\n it('returns a list of absolutely pathed files', () => {\n const directory = `${UNIT_TEST_DIR}/commonjs`;\n const filename = `${directory}/b.js`;\n\n const tree = dependencyTree({ filename, directory });\n // eslint-disable-next-line\n for (const node in tree.nodes) {\n assert(node.indexOf(process.cwd()) !== -1);\n }\n });\n\n describe('when given a detective configuration', () => {\n it('passes it through to precinct', () => {\n const spy = sinon.spy(precinct, 'paperwork');\n const directory = path.normalize(`${fixtures}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const detectiveConfig = {\n amd: {\n skipLazyLoaded: true,\n },\n };\n\n dependencyTree({\n filename,\n directory,\n detective: detectiveConfig,\n });\n\n assert.ok(spy.calledWith(filename, detectiveConfig));\n spy.restore();\n });\n });\n\n describe('when given a list to store non existent partials', () => {\n describe('and the file contains no valid partials', () => {\n it('stores the invalid partials', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var notReal = require(\"./notReal\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 1);\n assert.equal(nonExistent[filename][0], './notReal');\n });\n });\n\n describe('and the file contains all valid partials', () => {\n it('does not store anything', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'export default 1;',\n },\n });\n\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(nonExistent.length, 0);\n });\n });\n\n describe('and the file contains a mix of invalid and valid partials', () => {\n it('stores the invalid ones', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");',\n 'b.js': 'var c = require(\"./c\"); export default 1;',\n 'c.js': 'var crap = require(\"./notRealMan\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 1);\n assert.equal(nonExistent[path.normalize(`${directory}/c.js`)][0], './notRealMan');\n });\n });\n\n describe('and there is more than one reference to the invalid partial', () => {\n it('should include the non-existent partial per file', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/onlyRealDeps`]: {\n 'a.js': 'var b = require(\"./b\");\\nvar crap = require(\"./notRealMan\");',\n 'b.js': 'var c = require(\"./c\"); export default 1;',\n 'c.js': 'var crap = require(\"./notRealMan\");',\n },\n });\n\n const directory = path.normalize(`${UNIT_TEST_DIR}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n const nonExistent = [];\n\n dependencyTree({ filename, directory, nonExistent });\n\n assert.equal(Object.keys(nonExistent).length, 2);\n assert.equal(nonExistent[filename][0], './notRealMan');\n assert.equal(nonExistent[path.normalize(`${directory}/c.js`)][0], './notRealMan');\n });\n });\n });\n\n describe('throws', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = `${UNIT_TEST_DIR}/commonjs`;\n // @ts-ignore\n this._revert = dependencyTreeRewired.__set__('traverse', () => []);\n });\n\n afterEach(() => {\n // @ts-ignore\n this._revert();\n });\n\n it('throws if the filename is missing', () => {\n assert.throws(() => {\n dependencyTree({\n filename: undefined,\n // @ts-ignore\n directory: this._directory,\n });\n });\n });\n\n it('throws if the root is missing', () => {\n assert.throws(() => {\n dependencyTree({ filename: undefined });\n });\n });\n\n it('throws if a supplied filter is not a function', () => {\n assert.throws(() => {\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n\n dependencyTree({\n filename,\n directory,\n filter: 'foobar',\n });\n });\n });\n\n it('does not throw on the legacy `root` option', () => {\n assert.doesNotThrow(() => {\n const directory = `${UNIT_TEST_DIR}/onlyRealDeps`;\n const filename = `${directory}/a.js`;\n\n dependencyTree({\n filename,\n root: directory,\n });\n });\n });\n });\n\n describe('on file error', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = `${UNIT_TEST_DIR}/commonjs`;\n });\n\n it('does not throw', () => {\n assert.doesNotThrow(() => {\n dependencyTree({\n filename: 'foo',\n // @ts-ignore\n directory: this._directory,\n });\n });\n });\n\n it('returns no dependencies', () => {\n // @ts-ignore\n const tree = dependencyTree({ filename: 'foo', directory: this._directory });\n assert(!tree.length);\n });\n });\n\n describe('memoization (#2)', () => {\n beforeEach(() => {\n // @ts-ignore\n this._spy = sinon.spy(dependencyTreeRewired, '_getDependencies');\n });\n\n afterEach(() => {\n dependencyTreeRewired._getDependencies.restore();\n });\n\n it('returns the precomputed list of a cached entry point', () => {\n const filename = `${UNIT_TEST_DIR}/amd/a.js`;\n const directory = `${UNIT_TEST_DIR}/amd`;\n\n const cache = {\n // Shouldn't process the first file's tree\n [filename]: { pathMap: { dependencies: [] } },\n };\n\n const tree = dependencyTree({\n filename,\n directory,\n visited: cache,\n });\n\n assert(!tree.length);\n });\n });\n\n describe('module formats', () => {\n describe('commonjs', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n mockcommonjs();\n });\n\n testTreesForFormat('commonjs');\n });\n\n describe('es6', () => {\n beforeEach(() => {\n // @ts-ignore\n this._directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n mockes6();\n });\n\n testTreesForFormat('es6');\n\n it('resolves files that have jsx', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/jsx.js`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/c.js`)));\n });\n\n it('resolves files with a jsx extension', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/foo.jsx`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/b.js`)));\n });\n\n it('resolves files that have es7', () => {\n // @ts-ignore\n const filename = path.normalize(`${this._directory}/es7.js`);\n const tree = dependencyTree({\n filename,\n // @ts-ignore\n directory: this._directory,\n });\n // @ts-ignore\n assert.ok(tree[filename].includes(path.normalize(`${this._directory}/c.js`)));\n });\n });\n\n describe('sass', () => {\n beforeEach(() => {\n mockSass();\n });\n\n testTreesForFormat('sass', '.scss');\n });\n\n describe('stylus', () => {\n beforeEach(() => {\n mockStylus();\n });\n\n testTreesForFormat('stylus', '.styl');\n });\n\n describe('less', () => {\n beforeEach(() => {\n mockLess();\n });\n\n testTreesForFormat('less', '.less');\n });\n\n describe('typescript', () => {\n beforeEach(() => {\n mockTS();\n });\n\n testTreesForFormat('ts', '.ts');\n });\n });\n\n // skipping the webpack unit tests for now as it's not easy to wire up all the files together.\n // originally, in dependency-tree, the webpack.config.js is in the same directory of the index.js.\n // doing the same here will be confusing. instead, we have already e2e-tests in bit legacy of custom\n // module resolution, which takes advantage of the webpack config.\n describe.skip('webpack', () => {\n beforeEach(() => {\n // Note: not mocking because webpack's resolver needs a real project with dependencies;\n // otherwise, we'd have to mock a ton of files.\n // @ts-ignore\n this._root = path.join(UNIT_TEST_DIR, '../');\n // @ts-ignore\n this._webpackConfig = `${this._root}/webpack.config.js`;\n // @ts-ignore\n this._testResolution = (name) => {\n const results = dependencyTree.toList({\n filename: `${UNIT_TEST_DIR}/webpack/${name}.js`,\n // @ts-ignore\n directory: this._root,\n // @ts-ignore\n webpackConfig: this._webpackConfig,\n filter: (filename) => filename.indexOf('filing-cabinet') !== -1,\n });\n assert.ok(results.some((filename) => filename.indexOf('node_modules/filing-cabinet') !== -1));\n };\n });\n\n it('resolves unaliased modules', () => {\n this.timeout(5000);\n // @ts-ignore\n this._testResolution('unaliased');\n });\n });\n\n describe('when a filter function is supplied', () => {\n it('uses the filter to determine if a file should be included in the results', () => {\n const directory = path.normalize(`${fixtures}/onlyRealDeps`);\n const filename = path.normalize(`${directory}/a.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n // Skip all 3rd party deps\n filter: (filePath, moduleFile) => {\n assert.ok(require.resolve('debug'));\n assert.ok(moduleFile.includes(path.normalize('onlyRealDeps/a.js')));\n return filePath.indexOf('node_modules') === -1;\n },\n });\n\n const subTree = tree[filename];\n assert.ok(Object.keys(tree).length);\n\n const has3rdPartyDep = Object.keys(subTree).some((dep) => dep === require.resolve('debug'));\n assert.ok(!has3rdPartyDep);\n });\n });\n\n describe('when given a CJS file with lazy requires', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/cjs`]: {\n 'foo.js': 'module.exports = function(bar = require(\"./bar\")) {};',\n 'bar.js': 'module.exports = 1;',\n },\n });\n });\n\n it('includes the lazy dependency', () => {\n const directory = `${UNIT_TEST_DIR}/cjs`;\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({ filename, directory });\n assert.ok(tree[filename].includes(path.normalize(`${directory}/bar.js`)));\n });\n });\n\n describe('when given an es6 file using CJS lazy requires', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'foo.js': 'export default function(bar = require(\"./bar\")) {};',\n 'bar.js': 'export default 1;',\n },\n });\n });\n\n describe('and mixedImport mode is turned on', () => {\n it('includes the lazy dependency', () => {\n const directory = `${UNIT_TEST_DIR}/es6`;\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n detective: {\n es6: {\n mixedImports: true,\n },\n },\n });\n\n assert.ok(tree[filename].includes(path.normalize(`${directory}/bar.js`)));\n });\n });\n });\n\n describe('when given an es6 file using dynamic imports', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'foo.js': 'import(\"./bar\");',\n 'bar.js': 'export default 1;',\n },\n });\n });\n\n it('includes the dynamic import', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/es6`);\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n });\n\n const subTree = tree[filename];\n\n assert.ok(!(`${directory}/bar.js` in subTree));\n });\n });\n\n describe('when a dependency of the main file is not supported', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'foo.js': 'require(\"./bar.json\");',\n 'bar.json': '{ \"main\": \"I\\'m a simple JSON object\" }',\n },\n });\n });\n\n it('should include it as a dependency and not throw an error', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const filename = path.normalize(`${directory}/foo.js`);\n\n const tree = dependencyTree({\n filename,\n directory,\n });\n\n assert.ok(`${directory}/bar.json` in tree);\n });\n });\n\n // nodeModulesConfig is a feature added to dependency-tree and filing-cabinet to support\n // \"module\" attribute of package.json, see here what this attribute is good for:\n // https://github.com/rollup/rollup/wiki/pkg.module\n // the commit of supporting it in filing-cabinet is here: https://github.com/dependents/node-filing-cabinet/commit/abef861a5a725b29c2342d01de94c6e2dd881aa0\n describe.skip('when given a CJS file with module property in package.json', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/es6`]: {\n 'module.entry.js': 'import * as module from \"module.entry\"',\n node_modules: {\n 'module.entry': {\n 'index.main.js': 'module.exports = () => {};',\n 'index.module.js': 'module.exports = () => {};',\n 'package.json': '{ \"main\": \"index.main.js\", \"module\": \"index.module.js\" }',\n },\n },\n },\n });\n });\n\n it('it includes the module entry as dependency', () => {\n const directory = `${UNIT_TEST_DIR}/es6`;\n const filename = `${directory}/module.entry.js`;\n\n const tree = dependencyTree({\n filename,\n directory,\n nodeModulesConfig: {\n entry: 'module',\n },\n });\n const subTree = tree[filename];\n\n assert.ok(`${directory}/node_modules/module.entry/index.module.js` in subTree);\n });\n });\n\n describe('Config', () => {\n describe('when cloning', () => {\n describe('and a detective config was set', () => {\n it('retains the detective config in the clone', () => {\n const detectiveConfig = {\n es6: {\n mixedImports: true,\n },\n };\n\n const config = new Config({\n detectiveConfig,\n filename: 'foo',\n directory: 'bar',\n });\n\n const clone = config.clone();\n\n assert.deepEqual(clone.detectiveConfig, detectiveConfig);\n });\n });\n });\n });\n\n describe('when a dependency has missing packages and is retrieved from the cache (visited)', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'foo.js': 'require(\"non-exist-foo-pkg\");',\n 'bar.js': 'require(\"./foo\"); require(\"non-exist-bar-pkg\")',\n 'baz.js': 'require(\"./foo\"); require(\"./bar\"); require(\"non-exist-baz-pkg\")',\n },\n });\n });\n\n it('should not override the cache with wrong packages', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const fooFile = path.normalize(`${directory}/foo.js`);\n const barFile = path.normalize(`${directory}/bar.js`);\n const bazFile = path.normalize(`${directory}/baz.js`);\n const nonExistent = {};\n const config = {\n directory,\n nonExistent,\n visited: {},\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = fooFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = barFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n expect(nonExistent[barFile]).to.deep.equal(['non-exist-bar-pkg']);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = bazFile;\n dependencyTree(config);\n expect(nonExistent[fooFile]).to.deep.equal(['non-exist-foo-pkg']);\n expect(nonExistent[barFile]).to.deep.equal(['non-exist-bar-pkg']);\n expect(nonExistent[bazFile]).to.deep.equal(['non-exist-baz-pkg']);\n });\n });\n describe('passing css files and then javascript files', () => {\n beforeEach(() => {\n mockfs({\n [`${UNIT_TEST_DIR}/baz`]: {\n 'base.scss': 'li {} a {}', // don't change the content. it crash only with this for some reason\n 'index.jsx': \"require('some-module');\",\n },\n });\n });\n it('should not crash with \"RangeError: Maximum call stack size exceeded\" error', () => {\n const directory = path.normalize(`${UNIT_TEST_DIR}/baz`);\n const baseFile = path.normalize(`${directory}/base.scss`);\n const indexFile = path.normalize(`${directory}/index.jsx`);\n const config = {\n directory,\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = baseFile;\n dependencyTree(config);\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n config.filename = indexFile;\n const dependencies = dependencyTree(config);\n expect(dependencies).to.be.ok;\n });\n });\n describe('files with dynamic import', () => {\n it('should not show missing dependencies', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/dynamic`]: {\n 'foo.js': 'const a = \"./b\"; import(a); require(a);',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/dynamic`);\n const filename = path.normalize(`${directory}/foo.js`);\n const visited = {};\n\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n });\n describe('files with import from cdn (http, https)', () => {\n it('should not show missing dependencies when importing from https', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cdn`]: {\n 'foo.js': 'import { a } from \"https://unpkg.com\";',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/cdn`);\n const filename = path.normalize(`${directory}/foo.js`);\n const visited = {};\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n it('should not show missing dependencies when importing from http', () => {\n mockfs({\n [`${UNIT_TEST_DIR}/cdn`]: {\n 'bar.js': 'const b = require(\"http://pkg.com\");',\n },\n });\n const directory = path.normalize(`${UNIT_TEST_DIR}/cdn`);\n const filename = path.normalize(`${directory}/bar.js`);\n const visited = {};\n dependencyTree({\n filename,\n directory,\n visited,\n });\n expect(visited[filename].missing).to.be.undefined;\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_buildTree","data","require","_precinct","_interopRequireDefault","e","__esModule","default"],"sources":["index.ts"],"sourcesContent":["import { getDependencyTree } from './build-tree';\n// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\nimport getDependenciesFromSource from './precinct';\n\nexport { getDependencyTree, getDependenciesFromSource };\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,UAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,SAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmD,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
1
+ {"version":3,"names":["_buildTree","data","require","_precinct","_interopRequireDefault","e","__esModule","default"],"sources":["index.ts"],"sourcesContent":["import { getDependencyTree } from './build-tree';\nimport getDependenciesFromSource from './precinct';\n\nexport { getDependencyTree, getDependenciesFromSource };\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,UAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,SAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmD,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_module","_moduleDefinition","_nodeSourceWalk","_detectiveAmd","_detectiveStylus","_nodeDepsDetectors","_stylingDepsDetectors","_stylingDepsDetectors2","_stylingDepsDetectors3","_stylingDepsDetectors4","_typescriptDepsDetectors","_dependencyResolver","e","__esModule","default","jsExt","extToType","typeToDetective","css","detectiveCss","sass","detectiveSass","less","detectiveLess","scss","detectiveScss","stylus","detectiveStylus","ts","detectiveTypeScript","commonjs","detectiveEs6","es6","amd","detectiveAmd","debug","detectorHook","DetectorHook","assign","o1","o2","key","hasOwnProperty","getFileInfo","filename","ext","path","extname","content","fs","readFileSync","type","ast","getDetector","fileInfo","options","normalizedOptions","envDetectors","detector","isSupported","detect","detective","jsx","undefined","getJsDetector","includes","walker","Walker","parse","message","useContent","getModuleType","fromSource","normalizeDeps","deps","includeCore","normalizedDeps","Array","isArray","Object","keys","filter","d","isBuiltin","getDepsFromFile","startsWith","precinct","paperwork","_default","exports"],"sources":["index.ts"],"sourcesContent":["/**\n * this file had been forked from https://github.com/dependents/node-precinct\n */\nimport fs from 'fs-extra';\nimport path from 'path';\n\n// @ts-ignore we currently have @types/node as v12, and this is available > 16. once updated, remove the ts-ignore\nimport { isBuiltin } from 'module';\n\nimport getModuleType from 'module-definition';\nimport Walker from 'node-source-walk';\n\nimport detectiveAmd from 'detective-amd';\nimport detectiveStylus from 'detective-stylus';\n\nimport detectiveEs6 from '@teambit/node.deps-detectors.detective-es6';\nimport detectiveCss from '@teambit/styling.deps-detectors.detective-css';\nimport detectiveLess from '@teambit/styling.deps-detectors.detective-less';\nimport detectiveSass from '@teambit/styling.deps-detectors.detective-sass';\nimport detectiveScss from '@teambit/styling.deps-detectors.detective-scss';\nimport detectiveTypeScript from '@teambit/typescript.deps-detectors.detective-typescript';\n\nimport type { DependencyDetector } from '@teambit/dependency-resolver';\nimport { DetectorHook } from '@teambit/dependency-resolver';\n\n/**\n * The file info object.\n * - `ext` is the file extension.\n * - `content` is the input file content.\n * - `type` is the parsed file type from ext or content.\n * - `ast` is the eventually consumed content by the corresponding detective.\n */\ntype FileInfo = {\n ext: string;\n content: string | object;\n type: string;\n ast: any;\n filename: string;\n};\n\ntype Options = {\n envDetectors?: DependencyDetector[];\n useContent?: boolean;\n includeCore?: boolean;\n type?: string;\n [lang: string]: any;\n};\n\ntype BuiltinDeps = string[] | Record<string, any>;\ntype Detective = (fileContent: string, options?: any) => BuiltinDeps;\n\nconst jsExt = ['.js', '.jsx', '.cjs', '.mjs'];\n\nconst extToType = {\n '.css': 'css',\n '.sass': 'sass',\n '.less': 'less',\n '.scss': 'scss',\n '.styl': 'stylus',\n '.mts': 'ts',\n '.cts': 'ts',\n '.ts': 'ts',\n '.tsx': 'ts',\n};\n\nconst typeToDetective: Record<string, Detective> = {\n css: detectiveCss,\n sass: detectiveSass,\n less: detectiveLess,\n scss: detectiveScss,\n stylus: detectiveStylus,\n ts: detectiveTypeScript,\n commonjs: detectiveEs6,\n es6: detectiveEs6,\n amd: detectiveAmd,\n};\n\nconst debug = require('debug')('precinct');\n\nconst detectorHook = new DetectorHook();\n\nconst assign = (o1, o2) => {\n // eslint-disable-next-line\n for (const key in o2) {\n // eslint-disable-next-line\n if (o2.hasOwnProperty(key)) {\n o1[key] = o2[key];\n }\n }\n\n return o1;\n};\n\n/**\n * Get file info from the given file path.\n */\nconst getFileInfo = (filename: string): FileInfo => {\n const ext = path.extname(filename);\n const content = fs.readFileSync(filename, 'utf8');\n return {\n ext,\n content,\n // determined later\n type: '',\n // initialized with the content\n ast: content,\n filename,\n };\n};\n\n/**\n * Get the non-JS detective for the given file info.\n * The type of the file would be determined as well.\n * Return undefined if no proper detective found, perhaps it's plain\n * JavaScript or unknown content. We can deal with it later.\n */\nconst getDetector = (fileInfo: FileInfo, options?: Options): Detective | undefined => {\n const { ext, filename } = fileInfo;\n const normalizedOptions: Options = options || {};\n\n // from env detectors\n if (options?.envDetectors) {\n for (const detector of options.envDetectors) {\n if (detector.isSupported({ ext, filename })) {\n fileInfo.type = detector.type || '';\n return detector.detect as Detective;\n }\n }\n }\n\n // from builtin detectors\n // - check `fileInfo.type` first to support `precinct(content, { type })`\n const type = fileInfo.type || extToType[ext];\n if (typeToDetective[type]) {\n const detective = typeToDetective[type];\n fileInfo.type = type;\n // special logic for tsx files\n if (ext === '.tsx') {\n if (!normalizedOptions.ts) normalizedOptions.ts = {};\n normalizedOptions.ts.jsx = true;\n }\n return detective;\n }\n\n // from global detector hook (legacy)\n if (detectorHook.isSupported(ext, filename)) {\n const detector = detectorHook.getDetector(ext, filename);\n if (detector) {\n fileInfo.type = ext;\n typeToDetective[ext] = detector.detect as Detective;\n return detector.detect as Detective;\n }\n }\n\n return undefined;\n};\n\n/**\n * Get the JS detective (amd/es6/cjs) for the given file info.\n * The type and ast of the file would be determined as well.\n */\nconst getJsDetector = (fileInfo: FileInfo, options?: Options): Detective | undefined => {\n if (!jsExt.includes(fileInfo.ext)) {\n return undefined;\n }\n\n if (typeof fileInfo.content !== 'object') {\n const walker = new Walker();\n try {\n fileInfo.ast = walker.parse(fileInfo.content);\n } catch (e: any) {\n debug('could not parse content: %s', e.message);\n throw e;\n }\n }\n\n const useContent = options?.useContent;\n const type = useContent ? getModuleType.fromSource(fileInfo.content) : getModuleType.fromSource(fileInfo.ast);\n const detector = typeToDetective[type];\n fileInfo.type = type;\n\n return detector;\n};\n\n/**\n * Normalize the deps into an array.\n */\nconst normalizeDeps = (deps: BuiltinDeps, includeCore?: boolean): string[] => {\n const normalizedDeps = Array.isArray(deps) ? deps : Object.keys(deps);\n return includeCore ? normalizedDeps : normalizedDeps.filter((d) => !isBuiltin(d));\n};\n\nconst getDepsFromFile = (filename: string, options?: Options): string[] => {\n const normalizedOptions: Options = assign({ includeCore: true }, options || {});\n const fileInfo = getFileInfo(filename);\n if (\n typeof fileInfo.content === 'string' &&\n (fileInfo.content.startsWith('// @bit-no-check') || fileInfo.content.startsWith('/* @bit-no-check'))\n ) {\n debug(`skipping file ${filename}, it has a @bit-no-check comment`);\n return [];\n }\n\n const detective = getDetector(fileInfo, normalizedOptions) || getJsDetector(fileInfo, normalizedOptions);\n if (!detective) {\n debug(`skipping unsupported file ${filename}`);\n return [];\n }\n debug('module type: ', fileInfo.type);\n\n const deps = detective(fileInfo.ast, normalizedOptions[fileInfo.type]);\n\n return normalizeDeps(deps, normalizedOptions?.includeCore);\n};\n\nconst precinct = {\n paperwork: getDepsFromFile,\n};\n\nexport default precinct;\n"],"mappings":";;;;;;AAGA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAI,QAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,kBAAA;EAAA,MAAAL,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAG,iBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,gBAAA;EAAA,MAAAN,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAI,eAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAO,cAAA;EAAA,MAAAP,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAK,aAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,iBAAA;EAAA,MAAAR,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAM,gBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,mBAAA;EAAA,MAAAT,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAO,kBAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,sBAAA;EAAA,MAAAV,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAQ,qBAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,uBAAA;EAAA,MAAAX,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAS,sBAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,uBAAA;EAAA,MAAAZ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAU,sBAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,uBAAA;EAAA,MAAAb,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAW,sBAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,yBAAA;EAAA,MAAAd,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAY,wBAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAe,oBAAA;EAAA,MAAAf,IAAA,GAAAE,OAAA;EAAAa,mBAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4D,SAAAC,uBAAAe,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAvB5D;AACA;AACA;;AAIA;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoBA,MAAMG,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAE7C,MAAMC,SAAS,GAAG;EAChB,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,MAAM;EACf,OAAO,EAAE,MAAM;EACf,OAAO,EAAE,MAAM;EACf,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,eAA0C,GAAG;EACjDC,GAAG,EAAEC,+BAAY;EACjBC,IAAI,EAAEC,gCAAa;EACnBC,IAAI,EAAEC,gCAAa;EACnBC,IAAI,EAAEC,gCAAa;EACnBC,MAAM,EAAEC,0BAAe;EACvBC,EAAE,EAAEC,kCAAmB;EACvBC,QAAQ,EAAEC,4BAAY;EACtBC,GAAG,EAAED,4BAAY;EACjBE,GAAG,EAAEC;AACP,CAAC;AAED,MAAMC,KAAK,GAAGrC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;AAE1C,MAAMsC,YAAY,GAAG,KAAIC,kCAAY,EAAC,CAAC;AAEvC,MAAMC,MAAM,GAAGA,CAACC,EAAE,EAAEC,EAAE,KAAK;EACzB;EACA,KAAK,MAAMC,GAAG,IAAID,EAAE,EAAE;IACpB;IACA,IAAIA,EAAE,CAACE,cAAc,CAACD,GAAG,CAAC,EAAE;MAC1BF,EAAE,CAACE,GAAG,CAAC,GAAGD,EAAE,CAACC,GAAG,CAAC;IACnB;EACF;EAEA,OAAOF,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA,MAAMI,WAAW,GAAIC,QAAgB,IAAe;EAClD,MAAMC,GAAG,GAAGC,eAAI,CAACC,OAAO,CAACH,QAAQ,CAAC;EAClC,MAAMI,OAAO,GAAGC,kBAAE,CAACC,YAAY,CAACN,QAAQ,EAAE,MAAM,CAAC;EACjD,OAAO;IACLC,GAAG;IACHG,OAAO;IACP;IACAG,IAAI,EAAE,EAAE;IACR;IACAC,GAAG,EAAEJ,OAAO;IACZJ;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMS,WAAW,GAAGA,CAACC,QAAkB,EAAEC,OAAiB,KAA4B;EACpF,MAAM;IAAEV,GAAG;IAAED;EAAS,CAAC,GAAGU,QAAQ;EAClC,MAAME,iBAA0B,GAAGD,OAAO,IAAI,CAAC,CAAC;;EAEhD;EACA,IAAIA,OAAO,EAAEE,YAAY,EAAE;IACzB,KAAK,MAAMC,QAAQ,IAAIH,OAAO,CAACE,YAAY,EAAE;MAC3C,IAAIC,QAAQ,CAACC,WAAW,CAAC;QAAEd,GAAG;QAAED;MAAS,CAAC,CAAC,EAAE;QAC3CU,QAAQ,CAACH,IAAI,GAAGO,QAAQ,CAACP,IAAI,IAAI,EAAE;QACnC,OAAOO,QAAQ,CAACE,MAAM;MACxB;IACF;EACF;;EAEA;EACA;EACA,MAAMT,IAAI,GAAGG,QAAQ,CAACH,IAAI,IAAInC,SAAS,CAAC6B,GAAG,CAAC;EAC5C,IAAI5B,eAAe,CAACkC,IAAI,CAAC,EAAE;IACzB,MAAMU,SAAS,GAAG5C,eAAe,CAACkC,IAAI,CAAC;IACvCG,QAAQ,CAACH,IAAI,GAAGA,IAAI;IACpB;IACA,IAAIN,GAAG,KAAK,MAAM,EAAE;MAClB,IAAI,CAACW,iBAAiB,CAAC5B,EAAE,EAAE4B,iBAAiB,CAAC5B,EAAE,GAAG,CAAC,CAAC;MACpD4B,iBAAiB,CAAC5B,EAAE,CAACkC,GAAG,GAAG,IAAI;IACjC;IACA,OAAOD,SAAS;EAClB;;EAEA;EACA,IAAIzB,YAAY,CAACuB,WAAW,CAACd,GAAG,EAAED,QAAQ,CAAC,EAAE;IAC3C,MAAMc,QAAQ,GAAGtB,YAAY,CAACiB,WAAW,CAACR,GAAG,EAAED,QAAQ,CAAC;IACxD,IAAIc,QAAQ,EAAE;MACZJ,QAAQ,CAACH,IAAI,GAAGN,GAAG;MACnB5B,eAAe,CAAC4B,GAAG,CAAC,GAAGa,QAAQ,CAACE,MAAmB;MACnD,OAAOF,QAAQ,CAACE,MAAM;IACxB;EACF;EAEA,OAAOG,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAGA,CAACV,QAAkB,EAAEC,OAAiB,KAA4B;EACtF,IAAI,CAACxC,KAAK,CAACkD,QAAQ,CAACX,QAAQ,CAACT,GAAG,CAAC,EAAE;IACjC,OAAOkB,SAAS;EAClB;EAEA,IAAI,OAAOT,QAAQ,CAACN,OAAO,KAAK,QAAQ,EAAE;IACxC,MAAMkB,MAAM,GAAG,KAAIC,yBAAM,EAAC,CAAC;IAC3B,IAAI;MACFb,QAAQ,CAACF,GAAG,GAAGc,MAAM,CAACE,KAAK,CAACd,QAAQ,CAACN,OAAO,CAAC;IAC/C,CAAC,CAAC,OAAOpC,CAAM,EAAE;MACfuB,KAAK,CAAC,6BAA6B,EAAEvB,CAAC,CAACyD,OAAO,CAAC;MAC/C,MAAMzD,CAAC;IACT;EACF;EAEA,MAAM0D,UAAU,GAAGf,OAAO,EAAEe,UAAU;EACtC,MAAMnB,IAAI,GAAGmB,UAAU,GAAGC,2BAAa,CAACC,UAAU,CAAClB,QAAQ,CAACN,OAAO,CAAC,GAAGuB,2BAAa,CAACC,UAAU,CAAClB,QAAQ,CAACF,GAAG,CAAC;EAC7G,MAAMM,QAAQ,GAAGzC,eAAe,CAACkC,IAAI,CAAC;EACtCG,QAAQ,CAACH,IAAI,GAAGA,IAAI;EAEpB,OAAOO,QAAQ;AACjB,CAAC;;AAED;AACA;AACA;AACA,MAAMe,aAAa,GAAGA,CAACC,IAAiB,EAAEC,WAAqB,KAAe;EAC5E,MAAMC,cAAc,GAAGC,KAAK,CAACC,OAAO,CAACJ,IAAI,CAAC,GAAGA,IAAI,GAAGK,MAAM,CAACC,IAAI,CAACN,IAAI,CAAC;EACrE,OAAOC,WAAW,GAAGC,cAAc,GAAGA,cAAc,CAACK,MAAM,CAAEC,CAAC,IAAK,CAAC,IAAAC,mBAAS,EAACD,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAME,eAAe,GAAGA,CAACxC,QAAgB,EAAEW,OAAiB,KAAe;EACzE,MAAMC,iBAA0B,GAAGlB,MAAM,CAAC;IAAEqC,WAAW,EAAE;EAAK,CAAC,EAAEpB,OAAO,IAAI,CAAC,CAAC,CAAC;EAC/E,MAAMD,QAAQ,GAAGX,WAAW,CAACC,QAAQ,CAAC;EACtC,IACE,OAAOU,QAAQ,CAACN,OAAO,KAAK,QAAQ,KACnCM,QAAQ,CAACN,OAAO,CAACqC,UAAU,CAAC,kBAAkB,CAAC,IAAI/B,QAAQ,CAACN,OAAO,CAACqC,UAAU,CAAC,kBAAkB,CAAC,CAAC,EACpG;IACAlD,KAAK,CAAC,iBAAiBS,QAAQ,kCAAkC,CAAC;IAClE,OAAO,EAAE;EACX;EAEA,MAAMiB,SAAS,GAAGR,WAAW,CAACC,QAAQ,EAAEE,iBAAiB,CAAC,IAAIQ,aAAa,CAACV,QAAQ,EAAEE,iBAAiB,CAAC;EACxG,IAAI,CAACK,SAAS,EAAE;IACd1B,KAAK,CAAC,6BAA6BS,QAAQ,EAAE,CAAC;IAC9C,OAAO,EAAE;EACX;EACAT,KAAK,CAAC,eAAe,EAAEmB,QAAQ,CAACH,IAAI,CAAC;EAErC,MAAMuB,IAAI,GAAGb,SAAS,CAACP,QAAQ,CAACF,GAAG,EAAEI,iBAAiB,CAACF,QAAQ,CAACH,IAAI,CAAC,CAAC;EAEtE,OAAOsB,aAAa,CAACC,IAAI,EAAElB,iBAAiB,EAAEmB,WAAW,CAAC;AAC5D,CAAC;AAED,MAAMW,QAAQ,GAAG;EACfC,SAAS,EAAEH;AACb,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAA3E,OAAA,GAEawE,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_module","_moduleDefinition","_nodeSourceWalk","_detectiveAmd","_detectiveStylus","_nodeDepsDetectors","_stylingDepsDetectors","_stylingDepsDetectors2","_stylingDepsDetectors3","_stylingDepsDetectors4","_typescriptDepsDetectors","_dependencyResolver","e","__esModule","default","jsExt","extToType","typeToDetective","css","detectiveCss","sass","detectiveSass","less","detectiveLess","scss","detectiveScss","stylus","detectiveStylus","ts","detectiveTypeScript","commonjs","detectiveEs6","es6","amd","detectiveAmd","debug","detectorHook","DetectorHook","assign","o1","o2","key","hasOwnProperty","getFileInfo","filename","ext","path","extname","content","fs","readFileSync","type","ast","getDetector","fileInfo","options","normalizedOptions","envDetectors","detector","isSupported","detect","detective","jsx","undefined","getJsDetector","includes","walker","Walker","parse","message","useContent","getModuleType","fromSource","normalizeDeps","deps","includeCore","normalizedDeps","Array","isArray","Object","keys","filter","d","isBuiltin","getDepsFromFile","startsWith","precinct","paperwork","_default","exports"],"sources":["index.ts"],"sourcesContent":["/**\n * this file had been forked from https://github.com/dependents/node-precinct\n */\nimport fs from 'fs-extra';\nimport path from 'path';\n// @ts-ignore we currently have @types/node as v12, and this is available > 16. once updated, remove the ts-ignore\nimport { isBuiltin } from 'module';\n\nimport getModuleType from 'module-definition';\nimport Walker from 'node-source-walk';\n\nimport detectiveAmd from 'detective-amd';\nimport detectiveStylus from 'detective-stylus';\n\nimport detectiveEs6 from '@teambit/node.deps-detectors.detective-es6';\nimport detectiveCss from '@teambit/styling.deps-detectors.detective-css';\nimport detectiveLess from '@teambit/styling.deps-detectors.detective-less';\nimport detectiveSass from '@teambit/styling.deps-detectors.detective-sass';\nimport detectiveScss from '@teambit/styling.deps-detectors.detective-scss';\nimport detectiveTypeScript from '@teambit/typescript.deps-detectors.detective-typescript';\n\nimport type { DependencyDetector } from '@teambit/dependency-resolver';\nimport { DetectorHook } from '@teambit/dependency-resolver';\n\n/**\n * The file info object.\n * - `ext` is the file extension.\n * - `content` is the input file content.\n * - `type` is the parsed file type from ext or content.\n * - `ast` is the eventually consumed content by the corresponding detective.\n */\ntype FileInfo = {\n ext: string;\n content: string | object;\n type: string;\n ast: any;\n filename: string;\n};\n\ntype Options = {\n envDetectors?: DependencyDetector[];\n useContent?: boolean;\n includeCore?: boolean;\n type?: string;\n [lang: string]: any;\n};\n\ntype BuiltinDeps = string[] | Record<string, any>;\ntype Detective = (fileContent: string, options?: any) => BuiltinDeps;\n\nconst jsExt = ['.js', '.jsx', '.cjs', '.mjs'];\n\nconst extToType = {\n '.css': 'css',\n '.sass': 'sass',\n '.less': 'less',\n '.scss': 'scss',\n '.styl': 'stylus',\n '.mts': 'ts',\n '.cts': 'ts',\n '.ts': 'ts',\n '.tsx': 'ts',\n};\n\nconst typeToDetective: Record<string, Detective> = {\n css: detectiveCss,\n sass: detectiveSass,\n less: detectiveLess,\n scss: detectiveScss,\n stylus: detectiveStylus,\n ts: detectiveTypeScript,\n commonjs: detectiveEs6,\n es6: detectiveEs6,\n amd: detectiveAmd,\n};\n\nconst debug = require('debug')('precinct');\n\nconst detectorHook = new DetectorHook();\n\nconst assign = (o1, o2) => {\n // eslint-disable-next-line\n for (const key in o2) {\n // eslint-disable-next-line\n if (o2.hasOwnProperty(key)) {\n o1[key] = o2[key];\n }\n }\n\n return o1;\n};\n\n/**\n * Get file info from the given file path.\n */\nconst getFileInfo = (filename: string): FileInfo => {\n const ext = path.extname(filename);\n const content = fs.readFileSync(filename, 'utf8');\n return {\n ext,\n content,\n // determined later\n type: '',\n // initialized with the content\n ast: content,\n filename,\n };\n};\n\n/**\n * Get the non-JS detective for the given file info.\n * The type of the file would be determined as well.\n * Return undefined if no proper detective found, perhaps it's plain\n * JavaScript or unknown content. We can deal with it later.\n */\nconst getDetector = (fileInfo: FileInfo, options?: Options): Detective | undefined => {\n const { ext, filename } = fileInfo;\n const normalizedOptions: Options = options || {};\n\n // from env detectors\n if (options?.envDetectors) {\n for (const detector of options.envDetectors) {\n if (detector.isSupported({ ext, filename })) {\n fileInfo.type = detector.type || '';\n return detector.detect as Detective;\n }\n }\n }\n\n // from builtin detectors\n // - check `fileInfo.type` first to support `precinct(content, { type })`\n const type = fileInfo.type || extToType[ext];\n if (typeToDetective[type]) {\n const detective = typeToDetective[type];\n fileInfo.type = type;\n // special logic for tsx files\n if (ext === '.tsx') {\n if (!normalizedOptions.ts) normalizedOptions.ts = {};\n normalizedOptions.ts.jsx = true;\n }\n return detective;\n }\n\n // from global detector hook (legacy)\n if (detectorHook.isSupported(ext, filename)) {\n const detector = detectorHook.getDetector(ext, filename);\n if (detector) {\n fileInfo.type = ext;\n typeToDetective[ext] = detector.detect as Detective;\n return detector.detect as Detective;\n }\n }\n\n return undefined;\n};\n\n/**\n * Get the JS detective (amd/es6/cjs) for the given file info.\n * The type and ast of the file would be determined as well.\n */\nconst getJsDetector = (fileInfo: FileInfo, options?: Options): Detective | undefined => {\n if (!jsExt.includes(fileInfo.ext)) {\n return undefined;\n }\n\n if (typeof fileInfo.content !== 'object') {\n const walker = new Walker();\n try {\n fileInfo.ast = walker.parse(fileInfo.content);\n } catch (e: any) {\n debug('could not parse content: %s', e.message);\n throw e;\n }\n }\n\n const useContent = options?.useContent;\n const type = useContent ? getModuleType.fromSource(fileInfo.content) : getModuleType.fromSource(fileInfo.ast);\n const detector = typeToDetective[type];\n fileInfo.type = type;\n\n return detector;\n};\n\n/**\n * Normalize the deps into an array.\n */\nconst normalizeDeps = (deps: BuiltinDeps, includeCore?: boolean): string[] => {\n const normalizedDeps = Array.isArray(deps) ? deps : Object.keys(deps);\n return includeCore ? normalizedDeps : normalizedDeps.filter((d) => !isBuiltin(d));\n};\n\nconst getDepsFromFile = (filename: string, options?: Options): string[] => {\n const normalizedOptions: Options = assign({ includeCore: true }, options || {});\n const fileInfo = getFileInfo(filename);\n if (\n typeof fileInfo.content === 'string' &&\n (fileInfo.content.startsWith('// @bit-no-check') || fileInfo.content.startsWith('/* @bit-no-check'))\n ) {\n debug(`skipping file ${filename}, it has a @bit-no-check comment`);\n return [];\n }\n\n const detective = getDetector(fileInfo, normalizedOptions) || getJsDetector(fileInfo, normalizedOptions);\n if (!detective) {\n debug(`skipping unsupported file ${filename}`);\n return [];\n }\n debug('module type: ', fileInfo.type);\n\n const deps = detective(fileInfo.ast, normalizedOptions[fileInfo.type]);\n\n return normalizeDeps(deps, normalizedOptions?.includeCore);\n};\n\nconst precinct = {\n paperwork: getDepsFromFile,\n};\n\nexport default precinct;\n"],"mappings":"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","ignoreList":[]}
@@ -119,7 +119,6 @@ function enrichDataFromDependency(packageData) {
119
119
  if (packageInfo.componentId) {
120
120
  const scope = packageInfo.componentId.scope;
121
121
  if (packageInfo.exported === false) {
122
- // @ts-ignore
123
122
  delete packageInfo.componentId.scope;
124
123
  }
125
124
  const componentId = _componentId().ComponentID.fromObject(packageInfo.componentId, scope);
@@ -1 +1 @@
1
- {"version":3,"names":["_componentId","data","require","_path","_interopRequireDefault","_readPkgUp","_legacy","_component","_legacy2","e","__esModule","default","resolvePackageData","dependentDir","packageFullPath","packageData","fullPath","name","componentId","undefined","enrichDataFromDependent","enrichDataFromDependency","NODE_MODULES","packageJsonInfo","readPkgUp","sync","cwd","normalize","dependentPackageJson","packageJson","packageRelativePath","substring","lastIndexOf","length","packageName","resolvePackageNameByPath","packageVersion","dependencies","devDependencies","peerDependencies","dependentPackageJsonPath","path","versionUsedByDependent","packageDir","resolvePackageDirFromFilePath","packageJsonFile","PackageJsonFile","loadSync","packageInfo","packageJsonObject","packageJsonPath","join","PACKAGE_JSON","packageJsonContent","concreteVersion","version","scope","exported","ComponentID","fromObject","hasVersion","absolutePackageFilePath","indexOfLastNodeModules","pathInsideNodeModules","pathUntilNodeModules"],"sources":["resolve-pkg-data.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport path from 'path';\nimport readPkgUp from 'read-pkg-up';\nimport { PACKAGE_JSON } from '@teambit/legacy.constants';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport type { PathLinuxAbsolute, PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { resolvePackageNameByPath } from '@teambit/legacy.utils';\n\nexport interface ResolvedPackageData {\n fullPath: PathOsBasedAbsolute; // package path\n packageJsonPath?: PathOsBased;\n packageJsonContent?: Record<string, any>;\n dependentPackageJsonPath?: PathOsBased;\n name: string; // package name\n concreteVersion?: string; // version from the package.json of the package itself\n versionUsedByDependent?: string; // version from the dependent package.json\n componentId?: ComponentID; // component id in case it's a bit component\n}\n\n/**\n * find data such as name/version/component-id from the package.json of a component and its dependent.\n * the version from the dependent may have range (such as ~ or ^).\n * the version from the dependency is an exact version.\n * for a package that is not bit-component, we're interested in the range because that's how it was\n * set in the first place and changing it to an exact version result in the component modified.\n * for a bit-component, we're interested in the exact version because this is the version that gets\n * entered into \"dependency\" field, which not supports range. (when a component is installed via\n * npm, it can be saved into the package.json with range: ^, ~).\n */\nexport function resolvePackageData(\n dependentDir: string,\n packageFullPath: PathLinuxAbsolute\n): ResolvedPackageData | undefined {\n const packageData: ResolvedPackageData = {\n fullPath: packageFullPath,\n name: '',\n componentId: undefined,\n };\n enrichDataFromDependent(packageData, dependentDir);\n enrichDataFromDependency(packageData);\n if (!packageData.name) {\n // data was not found in dependent nor in dependency\n return undefined;\n }\n return packageData;\n}\n\nfunction enrichDataFromDependent(packageData: ResolvedPackageData, dependentDir: string) {\n const NODE_MODULES = 'node_modules';\n // @todo: currently, the \"normalize\" makes sure that the package.json is valid, however, due to a\n // bug, when importing snaps not from hub, it saves them in .dependencies and generate pkg.json\n // with version that has the hash, which is invalid. later, this .dependencies will be gone.\n const packageJsonInfo = readPkgUp.sync({ cwd: dependentDir, normalize: false });\n if (!packageJsonInfo) {\n return;\n }\n const dependentPackageJson = packageJsonInfo.packageJson;\n const packageFullPath = packageData.fullPath;\n // The +1 is for the / after the node_modules, we didn't enter it into the NODE_MODULES const because it makes problems on windows\n const packageRelativePath = packageFullPath.substring(\n packageFullPath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1,\n packageFullPath.length\n );\n\n const packageName = resolvePackageNameByPath(packageRelativePath);\n const packageVersion =\n dependentPackageJson.dependencies?.packageName ||\n dependentPackageJson.devDependencies?.packageName ||\n dependentPackageJson.peerDependencies?.packageName;\n if (packageVersion) {\n packageData.dependentPackageJsonPath = packageJsonInfo.path;\n packageData.name = packageName;\n packageData.versionUsedByDependent = packageVersion;\n }\n}\n\nfunction enrichDataFromDependency(packageData: ResolvedPackageData) {\n // Get the package relative path to the node_modules dir\n const packageDir = resolvePackageDirFromFilePath(packageData.fullPath);\n\n // don't propagate here since loading a package.json of another folder and taking the version from it will result wrong version\n // This for example happen in the following case:\n // if you have 2 authored component which one dependent on the other\n // we will look for the package.json on the dependency but won't find it\n // if we propagate we will take the version from the root's package json which has nothing with the component version\n const packageJsonFile = PackageJsonFile.loadSync(packageDir);\n const packageInfo = packageJsonFile.packageJsonObject;\n\n // the version can be empty when creating the package.json for author, or when using custom-module-resolution\n // that's fine, we still need the component-id in this case.\n if (!packageInfo || !packageInfo.name) {\n return;\n }\n packageData.packageJsonPath = path.join(packageDir, PACKAGE_JSON);\n packageData.packageJsonContent = packageInfo;\n packageData.name = packageInfo.name;\n packageData.concreteVersion = packageInfo.version;\n if (packageInfo.componentId) {\n const scope = packageInfo.componentId.scope as string;\n if (packageInfo.exported === false) {\n // @ts-ignore\n delete packageInfo.componentId.scope;\n }\n const componentId = ComponentID.fromObject(packageInfo.componentId, scope);\n packageData.componentId = componentId;\n if (packageData.componentId.hasVersion() && packageInfo.version) {\n // if packageInfo.version is not defined, it's coming from the workspace and the package.json is auto-generated\n // during bit-link. ignore the componentId.version in this case, it's not up do date.\n // otherwise, use it, because if it's a snap, the component-version is the snap. the pkg version is 0.0.0-snap.\n packageData.concreteVersion = packageData.componentId.version;\n }\n }\n}\n\n/**\n * given the full path of a package file, returns the root dir of the package, so then we could\n * find the package.json in that directory.\n *\n * example of a normal package:\n * absolutePackageFilePath: /user/workspace/node_modules/lodash.isboolean/index.js\n * returns: /user/workspace/node_modules/lodash.isboolean\n *\n * example of a scoped package:\n * absolutePackageFilePath: /user/workspace/node_modules/@babel/core/lib/index.js\n * returns: /user/workspace/node_modules/@babel/core\n */\nfunction resolvePackageDirFromFilePath(absolutePackageFilePath: string): string {\n const NODE_MODULES = 'node_modules';\n const indexOfLastNodeModules = absolutePackageFilePath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1;\n const pathInsideNodeModules = absolutePackageFilePath.substring(indexOfLastNodeModules);\n const packageName = resolvePackageNameByPath(pathInsideNodeModules);\n const pathUntilNodeModules = absolutePackageFilePath.substring(0, indexOfLastNodeModules);\n return pathUntilNodeModules + packageName;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_componentId","data","require","_path","_interopRequireDefault","_readPkgUp","_legacy","_component","_legacy2","e","__esModule","default","resolvePackageData","dependentDir","packageFullPath","packageData","fullPath","name","componentId","undefined","enrichDataFromDependent","enrichDataFromDependency","NODE_MODULES","packageJsonInfo","readPkgUp","sync","cwd","normalize","dependentPackageJson","packageJson","packageRelativePath","substring","lastIndexOf","length","packageName","resolvePackageNameByPath","packageVersion","dependencies","devDependencies","peerDependencies","dependentPackageJsonPath","path","versionUsedByDependent","packageDir","resolvePackageDirFromFilePath","packageJsonFile","PackageJsonFile","loadSync","packageInfo","packageJsonObject","packageJsonPath","join","PACKAGE_JSON","packageJsonContent","concreteVersion","version","scope","exported","ComponentID","fromObject","hasVersion","absolutePackageFilePath","indexOfLastNodeModules","pathInsideNodeModules","pathUntilNodeModules"],"sources":["resolve-pkg-data.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport path from 'path';\nimport readPkgUp from 'read-pkg-up';\nimport { PACKAGE_JSON } from '@teambit/legacy.constants';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport type { PathLinuxAbsolute, PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { resolvePackageNameByPath } from '@teambit/legacy.utils';\n\nexport interface ResolvedPackageData {\n fullPath: PathOsBasedAbsolute; // package path\n packageJsonPath?: PathOsBased;\n packageJsonContent?: Record<string, any>;\n dependentPackageJsonPath?: PathOsBased;\n name: string; // package name\n concreteVersion?: string; // version from the package.json of the package itself\n versionUsedByDependent?: string; // version from the dependent package.json\n componentId?: ComponentID; // component id in case it's a bit component\n}\n\n/**\n * find data such as name/version/component-id from the package.json of a component and its dependent.\n * the version from the dependent may have range (such as ~ or ^).\n * the version from the dependency is an exact version.\n * for a package that is not bit-component, we're interested in the range because that's how it was\n * set in the first place and changing it to an exact version result in the component modified.\n * for a bit-component, we're interested in the exact version because this is the version that gets\n * entered into \"dependency\" field, which not supports range. (when a component is installed via\n * npm, it can be saved into the package.json with range: ^, ~).\n */\nexport function resolvePackageData(\n dependentDir: string,\n packageFullPath: PathLinuxAbsolute\n): ResolvedPackageData | undefined {\n const packageData: ResolvedPackageData = {\n fullPath: packageFullPath,\n name: '',\n componentId: undefined,\n };\n enrichDataFromDependent(packageData, dependentDir);\n enrichDataFromDependency(packageData);\n if (!packageData.name) {\n // data was not found in dependent nor in dependency\n return undefined;\n }\n return packageData;\n}\n\nfunction enrichDataFromDependent(packageData: ResolvedPackageData, dependentDir: string) {\n const NODE_MODULES = 'node_modules';\n // @todo: currently, the \"normalize\" makes sure that the package.json is valid, however, due to a\n // bug, when importing snaps not from hub, it saves them in .dependencies and generate pkg.json\n // with version that has the hash, which is invalid. later, this .dependencies will be gone.\n const packageJsonInfo = readPkgUp.sync({ cwd: dependentDir, normalize: false });\n if (!packageJsonInfo) {\n return;\n }\n const dependentPackageJson = packageJsonInfo.packageJson;\n const packageFullPath = packageData.fullPath;\n // The +1 is for the / after the node_modules, we didn't enter it into the NODE_MODULES const because it makes problems on windows\n const packageRelativePath = packageFullPath.substring(\n packageFullPath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1,\n packageFullPath.length\n );\n\n const packageName = resolvePackageNameByPath(packageRelativePath);\n const packageVersion =\n dependentPackageJson.dependencies?.packageName ||\n dependentPackageJson.devDependencies?.packageName ||\n dependentPackageJson.peerDependencies?.packageName;\n if (packageVersion) {\n packageData.dependentPackageJsonPath = packageJsonInfo.path;\n packageData.name = packageName;\n packageData.versionUsedByDependent = packageVersion;\n }\n}\n\nfunction enrichDataFromDependency(packageData: ResolvedPackageData) {\n // Get the package relative path to the node_modules dir\n const packageDir = resolvePackageDirFromFilePath(packageData.fullPath);\n\n // don't propagate here since loading a package.json of another folder and taking the version from it will result wrong version\n // This for example happen in the following case:\n // if you have 2 authored component which one dependent on the other\n // we will look for the package.json on the dependency but won't find it\n // if we propagate we will take the version from the root's package json which has nothing with the component version\n const packageJsonFile = PackageJsonFile.loadSync(packageDir);\n const packageInfo = packageJsonFile.packageJsonObject;\n\n // the version can be empty when creating the package.json for author, or when using custom-module-resolution\n // that's fine, we still need the component-id in this case.\n if (!packageInfo || !packageInfo.name) {\n return;\n }\n packageData.packageJsonPath = path.join(packageDir, PACKAGE_JSON);\n packageData.packageJsonContent = packageInfo;\n packageData.name = packageInfo.name;\n packageData.concreteVersion = packageInfo.version;\n if (packageInfo.componentId) {\n const scope = packageInfo.componentId.scope as string;\n if (packageInfo.exported === false) {\n delete packageInfo.componentId.scope;\n }\n const componentId = ComponentID.fromObject(packageInfo.componentId, scope);\n packageData.componentId = componentId;\n if (packageData.componentId.hasVersion() && packageInfo.version) {\n // if packageInfo.version is not defined, it's coming from the workspace and the package.json is auto-generated\n // during bit-link. ignore the componentId.version in this case, it's not up do date.\n // otherwise, use it, because if it's a snap, the component-version is the snap. the pkg version is 0.0.0-snap.\n packageData.concreteVersion = packageData.componentId.version;\n }\n }\n}\n\n/**\n * given the full path of a package file, returns the root dir of the package, so then we could\n * find the package.json in that directory.\n *\n * example of a normal package:\n * absolutePackageFilePath: /user/workspace/node_modules/lodash.isboolean/index.js\n * returns: /user/workspace/node_modules/lodash.isboolean\n *\n * example of a scoped package:\n * absolutePackageFilePath: /user/workspace/node_modules/@babel/core/lib/index.js\n * returns: /user/workspace/node_modules/@babel/core\n */\nfunction resolvePackageDirFromFilePath(absolutePackageFilePath: string): string {\n const NODE_MODULES = 'node_modules';\n const indexOfLastNodeModules = absolutePackageFilePath.lastIndexOf(NODE_MODULES) + NODE_MODULES.length + 1;\n const pathInsideNodeModules = absolutePackageFilePath.substring(indexOfLastNodeModules);\n const packageName = resolvePackageNameByPath(pathInsideNodeModules);\n const pathUntilNodeModules = absolutePackageFilePath.substring(0, indexOfLastNodeModules);\n return pathUntilNodeModules + packageName;\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,MAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,WAAA;EAAA,MAAAJ,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAG,UAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,WAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,UAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAO,SAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,QAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiE,SAAAG,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAajE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,kBAAkBA,CAChCC,YAAoB,EACpBC,eAAkC,EACD;EACjC,MAAMC,WAAgC,GAAG;IACvCC,QAAQ,EAAEF,eAAe;IACzBG,IAAI,EAAE,EAAE;IACRC,WAAW,EAAEC;EACf,CAAC;EACDC,uBAAuB,CAACL,WAAW,EAAEF,YAAY,CAAC;EAClDQ,wBAAwB,CAACN,WAAW,CAAC;EACrC,IAAI,CAACA,WAAW,CAACE,IAAI,EAAE;IACrB;IACA,OAAOE,SAAS;EAClB;EACA,OAAOJ,WAAW;AACpB;AAEA,SAASK,uBAAuBA,CAACL,WAAgC,EAAEF,YAAoB,EAAE;EACvF,MAAMS,YAAY,GAAG,cAAc;EACnC;EACA;EACA;EACA,MAAMC,eAAe,GAAGC,oBAAS,CAACC,IAAI,CAAC;IAAEC,GAAG,EAAEb,YAAY;IAAEc,SAAS,EAAE;EAAM,CAAC,CAAC;EAC/E,IAAI,CAACJ,eAAe,EAAE;IACpB;EACF;EACA,MAAMK,oBAAoB,GAAGL,eAAe,CAACM,WAAW;EACxD,MAAMf,eAAe,GAAGC,WAAW,CAACC,QAAQ;EAC5C;EACA,MAAMc,mBAAmB,GAAGhB,eAAe,CAACiB,SAAS,CACnDjB,eAAe,CAACkB,WAAW,CAACV,YAAY,CAAC,GAAGA,YAAY,CAACW,MAAM,GAAG,CAAC,EACnEnB,eAAe,CAACmB,MAClB,CAAC;EAED,MAAMC,WAAW,GAAG,IAAAC,mCAAwB,EAACL,mBAAmB,CAAC;EACjE,MAAMM,cAAc,GAClBR,oBAAoB,CAACS,YAAY,EAAEH,WAAW,IAC9CN,oBAAoB,CAACU,eAAe,EAAEJ,WAAW,IACjDN,oBAAoB,CAACW,gBAAgB,EAAEL,WAAW;EACpD,IAAIE,cAAc,EAAE;IAClBrB,WAAW,CAACyB,wBAAwB,GAAGjB,eAAe,CAACkB,IAAI;IAC3D1B,WAAW,CAACE,IAAI,GAAGiB,WAAW;IAC9BnB,WAAW,CAAC2B,sBAAsB,GAAGN,cAAc;EACrD;AACF;AAEA,SAASf,wBAAwBA,CAACN,WAAgC,EAAE;EAClE;EACA,MAAM4B,UAAU,GAAGC,6BAA6B,CAAC7B,WAAW,CAACC,QAAQ,CAAC;;EAEtE;EACA;EACA;EACA;EACA;EACA,MAAM6B,eAAe,GAAGC,4BAAe,CAACC,QAAQ,CAACJ,UAAU,CAAC;EAC5D,MAAMK,WAAW,GAAGH,eAAe,CAACI,iBAAiB;;EAErD;EACA;EACA,IAAI,CAACD,WAAW,IAAI,CAACA,WAAW,CAAC/B,IAAI,EAAE;IACrC;EACF;EACAF,WAAW,CAACmC,eAAe,GAAGT,eAAI,CAACU,IAAI,CAACR,UAAU,EAAES,sBAAY,CAAC;EACjErC,WAAW,CAACsC,kBAAkB,GAAGL,WAAW;EAC5CjC,WAAW,CAACE,IAAI,GAAG+B,WAAW,CAAC/B,IAAI;EACnCF,WAAW,CAACuC,eAAe,GAAGN,WAAW,CAACO,OAAO;EACjD,IAAIP,WAAW,CAAC9B,WAAW,EAAE;IAC3B,MAAMsC,KAAK,GAAGR,WAAW,CAAC9B,WAAW,CAACsC,KAAe;IACrD,IAAIR,WAAW,CAACS,QAAQ,KAAK,KAAK,EAAE;MAClC,OAAOT,WAAW,CAAC9B,WAAW,CAACsC,KAAK;IACtC;IACA,MAAMtC,WAAW,GAAGwC,0BAAW,CAACC,UAAU,CAACX,WAAW,CAAC9B,WAAW,EAAEsC,KAAK,CAAC;IAC1EzC,WAAW,CAACG,WAAW,GAAGA,WAAW;IACrC,IAAIH,WAAW,CAACG,WAAW,CAAC0C,UAAU,CAAC,CAAC,IAAIZ,WAAW,CAACO,OAAO,EAAE;MAC/D;MACA;MACA;MACAxC,WAAW,CAACuC,eAAe,GAAGvC,WAAW,CAACG,WAAW,CAACqC,OAAO;IAC/D;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASX,6BAA6BA,CAACiB,uBAA+B,EAAU;EAC9E,MAAMvC,YAAY,GAAG,cAAc;EACnC,MAAMwC,sBAAsB,GAAGD,uBAAuB,CAAC7B,WAAW,CAACV,YAAY,CAAC,GAAGA,YAAY,CAACW,MAAM,GAAG,CAAC;EAC1G,MAAM8B,qBAAqB,GAAGF,uBAAuB,CAAC9B,SAAS,CAAC+B,sBAAsB,CAAC;EACvF,MAAM5B,WAAW,GAAG,IAAAC,mCAAwB,EAAC4B,qBAAqB,CAAC;EACnE,MAAMC,oBAAoB,GAAGH,uBAAuB,CAAC9B,SAAS,CAAC,CAAC,EAAE+B,sBAAsB,CAAC;EACzF,OAAOE,oBAAoB,GAAG9B,WAAW;AAC3C","ignoreList":[]}
@@ -45,7 +45,6 @@ export default function Config(options) {
45
45
  throw new Error('directory not given');
46
46
  }
47
47
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
48
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
49
48
  if (this.filter && typeof this.filter !== 'function') {
50
49
  throw new Error('filter must be a function');
51
50
  }
@@ -53,7 +52,6 @@ export default function Config(options) {
53
52
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
54
53
  debug(`given filename: ${this.filename}`);
55
54
 
56
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
57
55
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
58
56
  this.filename = path.resolve(process.cwd(), this.filename);
59
57
 
@@ -31,7 +31,6 @@ function cleanUnitDir() {
31
31
  }
32
32
 
33
33
  describe('dependencyTree', function () {
34
- // @ts-ignore
35
34
  this.timeout(8000);
36
35
  function testTreesForFormat(format, ext = '.js') {
37
36
  it('returns an object form of the dependency tree for a file', () => {
@@ -579,7 +578,6 @@ describe('dependencyTree', function () {
579
578
  });
580
579
 
581
580
  it('resolves unaliased modules', () => {
582
- // @ts-ignore
583
581
  this.timeout(5000);
584
582
  // @ts-ignore
585
583
  this._testResolution('unaliased');
@@ -1,5 +1,4 @@
1
1
  import { getDependencyTree } from './build-tree';
2
- // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
3
2
  import getDependenciesFromSource from './precinct';
4
3
 
5
4
  export { getDependencyTree, getDependenciesFromSource };
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import fs from 'fs-extra';
5
5
  import path from 'path';
6
-
7
6
  // @ts-ignore we currently have @types/node as v12, and this is available > 16. once updated, remove the ts-ignore
8
7
  import { isBuiltin } from 'module';
9
8
 
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/dependencies",
3
- "version": "1.0.700",
3
+ "version": "1.0.702",
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.700"
9
+ "version": "1.0.702"
10
10
  },
11
11
  "dependencies": {
12
12
  "archy": "1.0.0",
@@ -46,21 +46,21 @@
46
46
  "@teambit/styling.deps-detectors.detective-sass": "0.0.9",
47
47
  "@teambit/styling.deps-detectors.detective-scss": "0.0.9",
48
48
  "@teambit/typescript.deps-detectors.detective-typescript": "0.0.10",
49
- "@teambit/cli": "0.0.1259",
50
- "@teambit/graph": "1.0.700",
51
- "@teambit/workspace": "1.0.700",
52
- "@teambit/aspect-loader": "1.0.700",
53
- "@teambit/dependency-resolver": "1.0.700",
54
- "@teambit/dev-files": "1.0.700",
55
- "@teambit/legacy.consumer-component": "0.0.67",
56
- "@teambit/logger": "0.0.1352",
57
- "@teambit/scope": "1.0.700",
58
- "@teambit/legacy.dependency-graph": "0.0.69",
59
- "@teambit/component.sources": "0.0.118",
60
- "@teambit/legacy.bit-map": "0.0.123",
61
- "@teambit/legacy.consumer-config": "0.0.66",
62
- "@teambit/legacy.consumer": "0.0.66",
63
- "@teambit/legacy.extension-data": "0.0.68"
49
+ "@teambit/cli": "0.0.1261",
50
+ "@teambit/graph": "1.0.702",
51
+ "@teambit/workspace": "1.0.702",
52
+ "@teambit/aspect-loader": "1.0.702",
53
+ "@teambit/dependency-resolver": "1.0.702",
54
+ "@teambit/dev-files": "1.0.702",
55
+ "@teambit/legacy.consumer-component": "0.0.69",
56
+ "@teambit/logger": "0.0.1354",
57
+ "@teambit/scope": "1.0.702",
58
+ "@teambit/legacy.dependency-graph": "0.0.71",
59
+ "@teambit/component.sources": "0.0.120",
60
+ "@teambit/legacy.bit-map": "0.0.125",
61
+ "@teambit/legacy.consumer-config": "0.0.68",
62
+ "@teambit/legacy.consumer": "0.0.68",
63
+ "@teambit/legacy.extension-data": "0.0.70"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/cli-table": "^0.3.0",
@@ -72,9 +72,9 @@
72
72
  "@types/mocha": "9.1.0",
73
73
  "@teambit/defender.fs.global-bit-temp-dir": "0.0.1",
74
74
  "@teambit/harmony.envs.core-aspect-env": "0.0.75",
75
- "@teambit/component.testing.mock-components": "0.0.330",
76
- "@teambit/harmony.testing.load-aspect": "0.0.325",
77
- "@teambit/workspace.testing.mock-workspace": "0.0.112"
75
+ "@teambit/component.testing.mock-components": "0.0.332",
76
+ "@teambit/harmony.testing.load-aspect": "0.0.327",
77
+ "@teambit/workspace.testing.mock-workspace": "0.0.114"
78
78
  },
79
79
  "peerDependencies": {
80
80
  "chai": "5.2.1",