@teambit/dependency-resolver 1.0.38 → 1.0.40

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.
@@ -25,13 +25,6 @@ function _fsExtra() {
25
25
  };
26
26
  return data;
27
27
  }
28
- function _lodash() {
29
- const data = require("lodash");
30
- _lodash = function () {
31
- return data;
32
- };
33
- return data;
34
- }
35
28
  function _exceptions() {
36
29
  const data = require("./exceptions");
37
30
  _exceptions = function () {
@@ -230,7 +223,6 @@ class DependencyInstaller {
230
223
  excludeExtensionsDependencies
231
224
  };
232
225
  const workspaceManifest = await this.dependencyResolver.getWorkspaceManifest(undefined, undefined, rootPolicy, rootDir, componentDirectoryMap.components, options, this.installingContext);
233
- const packageNames = componentDirectoryMap.components.map(component => this.dependencyResolver.getPackageName(component));
234
226
  const manifests = componentDirectoryMap.toArray().reduce((acc, [component, dir]) => {
235
227
  const packageName = this.dependencyResolver.getPackageName(component);
236
228
  const manifest = workspaceManifest.componentsManifestsMap.get(packageName);
@@ -238,8 +230,6 @@ class DependencyInstaller {
238
230
  acc[dir] = manifest.toJson({
239
231
  copyPeerToRuntime: copyPeerToRuntimeOnComponents
240
232
  });
241
- const selfPolicyWithoutLocal = manifest.envPolicy.selfPolicy.filter(dep => !packageNames.includes(dep.dependencyId) && !acc[dir].dependencies[dep.dependencyId]);
242
- acc[dir].defaultPeerDependencies = (0, _lodash().fromPairs)(selfPolicyWithoutLocal.toNameVersionTuple());
243
233
  }
244
234
  return acc;
245
235
  }, {});
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_path","_fsExtra","_lodash","_exceptions","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_PM_INSTALL_OPTIONS","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","installPeersFromEnvs","DEFAULT_INSTALL_OPTIONS","installTeambitBit","excludeExtensionsDependencies","DependencyInstaller","constructor","packageManager","aspectLoader","logger","dependencyResolver","rootDir","cacheRootDir","preInstallSubscriberList","postInstallSubscriberList","nodeLinker","packageImportMethod","sideEffectsCache","nodeVersion","engineStrict","peerDependencyRules","neverBuiltDependencies","preferOffline","installingContext","install","rootPolicy","componentDirectoryMap","options","packageManagerOptions","finalRootDir","RootDirNotDefined","manifests","getComponentManifests","resolveVersionsFromDependenciesOnly","referenceLocalPackages","rootComponentsForCapsules","installComponents","_this$installingConte","args","runPrePostSubscribers","mainAspect","linkedDependencies","JSON","parse","stringify","_manifests$finalRootD","directDeps","Set","values","manifest","depName","dependencies","devDependencies","add","name","has","forceTeambitHarmonyLink","entries","dir","linkedDeps","hidePackageManagerOutput","inCapsule","process","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","installResult","consoleSuccess","pruneModules","dependencyFilterFn","hasRootComponents","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","components","packageNames","map","component","getPackageName","toArray","reduce","acc","componentsManifestsMap","get","toJson","copyPeerToRuntime","selfPolicyWithoutLocal","envPolicy","selfPolicy","dep","includes","defaultPeerDependencies","fromPairs","toNameVersionTuple","promises","nmDir","path","join","fs","remove","Promise","all","subscribers","type","_this$installingConte2","_this$installingConte3","_this$installingConte4","mapSeries","subscriber","exports"],"sources":["dependency-installer.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { MainAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { ComponentMap } from '@teambit/component';\nimport { CreateFromComponentsOptions, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { PeerDependencyRules, ProjectManifest } from '@pnpm/types';\nimport { fromPairs } from 'lodash';\nimport { MainAspectNotInstallable, RootDirNotDefined } from './exceptions';\nimport { PackageManager, PackageManagerInstallOptions, PackageImportMethod } from './package-manager';\nimport { WorkspacePolicy } from './policy';\n\nconst DEFAULT_PM_INSTALL_OPTIONS: PackageManagerInstallOptions = {\n dedupe: true,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n installPeersFromEnvs: false,\n};\n\nconst DEFAULT_INSTALL_OPTIONS: InstallOptions = {\n installTeambitBit: false,\n excludeExtensionsDependencies: false,\n};\n\nexport type DepInstallerContext = {\n inCapsule?: boolean;\n};\n\nexport type InstallArgs = {\n rootDir: string | undefined;\n rootPolicy: WorkspacePolicy;\n componentDirectoryMap: ComponentMap<string>;\n options: InstallOptions;\n packageManagerOptions: PackageManagerInstallOptions;\n};\n\nexport type InstallOptions = {\n installTeambitBit: boolean;\n packageManagerConfigRootDir?: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n linkedDependencies?: Record<string, Record<string, string>>;\n forceTeambitHarmonyLink?: boolean;\n excludeExtensionsDependencies?: boolean;\n};\n\nexport type GetComponentManifestsOptions = {\n componentDirectoryMap: ComponentMap<string>;\n rootPolicy: WorkspacePolicy;\n rootDir: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n hasRootComponents?: boolean;\n excludeExtensionsDependencies?: boolean;\n} & Pick<\n PackageManagerInstallOptions,\n 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents' | 'copyPeerToRuntimeOnRoot' | 'installPeersFromEnvs'\n>;\n\nexport type PreInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;\nexport type PreInstallSubscriberList = Array<PreInstallSubscriber>;\n\nexport type PostInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;\nexport type PostInstallSubscriberList = Array<PostInstallSubscriber>;\n\nexport class DependencyInstaller {\n constructor(\n /**\n * package manager instance.\n */\n private packageManager: PackageManager,\n\n private aspectLoader: AspectLoaderMain,\n\n private logger: Logger,\n\n private dependencyResolver: DependencyResolverMain,\n\n private rootDir?: string | PathAbsolute,\n\n private cacheRootDir?: string | PathAbsolute,\n\n private preInstallSubscriberList?: PreInstallSubscriberList,\n\n private postInstallSubscriberList?: PostInstallSubscriberList,\n\n private nodeLinker?: 'hoisted' | 'isolated',\n\n private packageImportMethod?: PackageImportMethod,\n\n private sideEffectsCache?: boolean,\n\n private nodeVersion?: string,\n\n private engineStrict?: boolean,\n\n private peerDependencyRules?: PeerDependencyRules,\n\n private neverBuiltDependencies?: string[],\n\n private preferOffline?: boolean,\n\n private installingContext: DepInstallerContext = {}\n ) {}\n\n async install(\n rootDir: string | undefined,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n options: InstallOptions = DEFAULT_INSTALL_OPTIONS,\n packageManagerOptions: PackageManagerInstallOptions = DEFAULT_PM_INSTALL_OPTIONS\n ) {\n const finalRootDir = rootDir ?? this.rootDir;\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n const manifests = await this.getComponentManifests({\n ...packageManagerOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: finalRootDir,\n resolveVersionsFromDependenciesOnly: options.resolveVersionsFromDependenciesOnly,\n referenceLocalPackages: packageManagerOptions.rootComponentsForCapsules,\n excludeExtensionsDependencies: options.excludeExtensionsDependencies,\n });\n return this.installComponents(\n finalRootDir,\n manifests,\n rootPolicy,\n componentDirectoryMap,\n options,\n packageManagerOptions\n );\n }\n\n async installComponents(\n rootDir: string | undefined,\n manifests: Record<string, ProjectManifest>,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n options: InstallOptions = DEFAULT_INSTALL_OPTIONS,\n packageManagerOptions: PackageManagerInstallOptions = DEFAULT_PM_INSTALL_OPTIONS\n ): Promise<{ dependenciesChanged: boolean }> {\n const args = {\n componentDirectoryMap,\n options,\n packageManagerOptions,\n rootDir,\n rootPolicy,\n };\n await this.runPrePostSubscribers(this.preInstallSubscriberList, 'pre', args);\n const mainAspect: MainAspect = this.aspectLoader.mainAspect;\n const finalRootDir = rootDir || this.rootDir;\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n if (options.linkedDependencies) {\n manifests = JSON.parse(JSON.stringify(manifests));\n const linkedDependencies = JSON.parse(\n JSON.stringify(options.linkedDependencies)\n ) as typeof options.linkedDependencies;\n if (linkedDependencies[finalRootDir]) {\n const directDeps = new Set<string>();\n Object.values(manifests).forEach((manifest) => {\n for (const depName of Object.keys({ ...manifest.dependencies, ...manifest.devDependencies })) {\n directDeps.add(depName);\n }\n });\n for (const manifest of Object.values(manifests)) {\n if (manifest.name && directDeps.has(manifest.name)) {\n delete linkedDependencies[finalRootDir][manifest.name];\n }\n }\n if (options.forceTeambitHarmonyLink && manifests[finalRootDir].dependencies?.['@teambit/harmony']) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delete manifests[finalRootDir].dependencies!['@teambit/harmony'];\n }\n }\n Object.entries(linkedDependencies).forEach(([dir, linkedDeps]) => {\n if (!manifests[dir]) {\n manifests[dir] = {};\n }\n manifests[dir].dependencies = {\n ...linkedDeps,\n ...manifests[dir].dependencies,\n };\n });\n }\n const hidePackageManagerOutput = !!(this.installingContext.inCapsule && process.env.VERBOSE_PM_OUTPUT !== 'true');\n\n // Make sure to take other default if passed options with only one option\n const calculatedPmOpts = {\n ...DEFAULT_PM_INSTALL_OPTIONS,\n cacheRootDir: this.cacheRootDir,\n nodeLinker: this.nodeLinker,\n packageImportMethod: this.packageImportMethod,\n sideEffectsCache: this.sideEffectsCache,\n nodeVersion: this.nodeVersion,\n engineStrict: this.engineStrict,\n packageManagerConfigRootDir: options.packageManagerConfigRootDir,\n peerDependencyRules: this.peerDependencyRules,\n hidePackageManagerOutput,\n neverBuiltDependencies: ['core-js', ...(this.neverBuiltDependencies ?? [])],\n preferOffline: this.preferOffline,\n ...packageManagerOptions,\n };\n if (options.installTeambitBit) {\n if (!mainAspect.version || !mainAspect.packageName) {\n throw new MainAspectNotInstallable();\n }\n const version = mainAspect.version;\n rootPolicy.add({\n dependencyId: mainAspect.packageName,\n lifecycleType: 'runtime',\n value: {\n version,\n },\n });\n }\n\n if (!packageManagerOptions.rootComponents && !packageManagerOptions.keepExistingModulesDir) {\n // Remove node modules dir for all components dirs, since it might contain left overs from previous install.\n //\n // This is not needed when \"rootComponents\" are used, as in that case the package manager handles the node_modules\n // and it never leaves node_modules in a broken state.\n // Removing node_modules in that case would delete useful state information that is used by Yarn or pnpm.\n await this.cleanCompsNodeModules(componentDirectoryMap);\n }\n\n const messagePrefix = 'running package installation';\n const messageSuffix = `using ${this.packageManager.name}`;\n const message = this.installingContext?.inCapsule\n ? `(capsule) ${messagePrefix} in root dir ${this.rootDir} ${messageSuffix}`\n : `${messagePrefix} ${messageSuffix}`;\n if (!hidePackageManagerOutput) {\n this.logger.setStatusLine(message);\n }\n const startTime = process.hrtime();\n\n // TODO: the cache should be probably passed to the package manager constructor not to the install function\n const installResult = await this.packageManager.install(\n {\n rootDir: finalRootDir,\n manifests,\n componentDirectoryMap,\n },\n calculatedPmOpts\n );\n if (!hidePackageManagerOutput) {\n this.logger.consoleSuccess(`done ${message}`, startTime);\n }\n await this.runPrePostSubscribers(this.postInstallSubscriberList, 'post', args);\n return installResult;\n }\n\n public async pruneModules(rootDir: string): Promise<void> {\n if (!this.packageManager.pruneModules) {\n return;\n }\n await this.packageManager.pruneModules(rootDir);\n }\n\n /**\n * Compute all the component manifests (a.k.a. package.json files) that should be passed to the package manager\n * in order to install the dependencies.\n */\n public async getComponentManifests({\n componentDirectoryMap,\n rootPolicy,\n rootDir,\n dedupe,\n dependencyFilterFn,\n copyPeerToRuntimeOnComponents,\n copyPeerToRuntimeOnRoot,\n installPeersFromEnvs,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n hasRootComponents,\n excludeExtensionsDependencies,\n }: GetComponentManifestsOptions) {\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe,\n dependencyFilterFn,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n hasRootComponents,\n excludeExtensionsDependencies,\n };\n const workspaceManifest = await this.dependencyResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n componentDirectoryMap.components,\n options,\n this.installingContext\n );\n const packageNames = componentDirectoryMap.components.map((component) =>\n this.dependencyResolver.getPackageName(component)\n );\n const manifests: Record<string, ProjectManifest> = componentDirectoryMap\n .toArray()\n .reduce((acc, [component, dir]) => {\n const packageName = this.dependencyResolver.getPackageName(component);\n const manifest = workspaceManifest.componentsManifestsMap.get(packageName);\n if (manifest) {\n acc[dir] = manifest.toJson({ copyPeerToRuntime: copyPeerToRuntimeOnComponents });\n const selfPolicyWithoutLocal = manifest.envPolicy.selfPolicy.filter(\n (dep) => !packageNames.includes(dep.dependencyId) && !acc[dir].dependencies[dep.dependencyId]\n );\n acc[dir].defaultPeerDependencies = fromPairs(selfPolicyWithoutLocal.toNameVersionTuple());\n }\n return acc;\n }, {});\n if (!manifests[rootDir]) {\n manifests[rootDir] = workspaceManifest.toJson({\n copyPeerToRuntime: copyPeerToRuntimeOnRoot,\n installPeersFromEnvs,\n });\n }\n return manifests;\n }\n\n private async cleanCompsNodeModules(componentDirectoryMap: ComponentMap<string>) {\n const promises = componentDirectoryMap.toArray().map(([, dir]) => {\n const nmDir = path.join(dir, 'node_modules');\n return fs.remove(nmDir);\n });\n return Promise.all(promises);\n }\n\n private async runPrePostSubscribers(\n subscribers: PreInstallSubscriberList | PostInstallSubscriberList = [],\n type: 'pre' | 'post',\n args: InstallArgs\n ): Promise<void> {\n const message = this.installingContext?.inCapsule\n ? `(capsule) running ${type} install subscribers in root dir ${this.rootDir}`\n : `running ${type} install subscribers`;\n if (!this.installingContext?.inCapsule) {\n this.logger.setStatusLine(message);\n }\n await mapSeries(subscribers, async (subscriber) => {\n return subscriber(this, args);\n });\n if (!this.installingContext?.inCapsule) {\n this.logger.consoleSuccess(message);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_path","_fsExtra","_exceptions","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_PM_INSTALL_OPTIONS","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","installPeersFromEnvs","DEFAULT_INSTALL_OPTIONS","installTeambitBit","excludeExtensionsDependencies","DependencyInstaller","constructor","packageManager","aspectLoader","logger","dependencyResolver","rootDir","cacheRootDir","preInstallSubscriberList","postInstallSubscriberList","nodeLinker","packageImportMethod","sideEffectsCache","nodeVersion","engineStrict","peerDependencyRules","neverBuiltDependencies","preferOffline","installingContext","install","rootPolicy","componentDirectoryMap","options","packageManagerOptions","finalRootDir","RootDirNotDefined","manifests","getComponentManifests","resolveVersionsFromDependenciesOnly","referenceLocalPackages","rootComponentsForCapsules","installComponents","_this$installingConte","args","runPrePostSubscribers","mainAspect","linkedDependencies","JSON","parse","stringify","_manifests$finalRootD","directDeps","Set","values","manifest","depName","dependencies","devDependencies","add","name","has","forceTeambitHarmonyLink","entries","dir","linkedDeps","hidePackageManagerOutput","inCapsule","process","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","installResult","consoleSuccess","pruneModules","dependencyFilterFn","hasRootComponents","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","components","toArray","reduce","acc","component","getPackageName","componentsManifestsMap","get","toJson","copyPeerToRuntime","promises","map","nmDir","path","join","fs","remove","Promise","all","subscribers","type","_this$installingConte2","_this$installingConte3","_this$installingConte4","mapSeries","subscriber","exports"],"sources":["dependency-installer.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { MainAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { ComponentMap } from '@teambit/component';\nimport { CreateFromComponentsOptions, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { PeerDependencyRules, ProjectManifest } from '@pnpm/types';\nimport { MainAspectNotInstallable, RootDirNotDefined } from './exceptions';\nimport { PackageManager, PackageManagerInstallOptions, PackageImportMethod } from './package-manager';\nimport { WorkspacePolicy } from './policy';\n\nconst DEFAULT_PM_INSTALL_OPTIONS: PackageManagerInstallOptions = {\n dedupe: true,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n installPeersFromEnvs: false,\n};\n\nconst DEFAULT_INSTALL_OPTIONS: InstallOptions = {\n installTeambitBit: false,\n excludeExtensionsDependencies: false,\n};\n\nexport type DepInstallerContext = {\n inCapsule?: boolean;\n};\n\nexport type InstallArgs = {\n rootDir: string | undefined;\n rootPolicy: WorkspacePolicy;\n componentDirectoryMap: ComponentMap<string>;\n options: InstallOptions;\n packageManagerOptions: PackageManagerInstallOptions;\n};\n\nexport type InstallOptions = {\n installTeambitBit: boolean;\n packageManagerConfigRootDir?: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n linkedDependencies?: Record<string, Record<string, string>>;\n forceTeambitHarmonyLink?: boolean;\n excludeExtensionsDependencies?: boolean;\n};\n\nexport type GetComponentManifestsOptions = {\n componentDirectoryMap: ComponentMap<string>;\n rootPolicy: WorkspacePolicy;\n rootDir: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n hasRootComponents?: boolean;\n excludeExtensionsDependencies?: boolean;\n} & Pick<\n PackageManagerInstallOptions,\n 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents' | 'copyPeerToRuntimeOnRoot' | 'installPeersFromEnvs'\n>;\n\nexport type PreInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;\nexport type PreInstallSubscriberList = Array<PreInstallSubscriber>;\n\nexport type PostInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise<void>;\nexport type PostInstallSubscriberList = Array<PostInstallSubscriber>;\n\nexport class DependencyInstaller {\n constructor(\n /**\n * package manager instance.\n */\n private packageManager: PackageManager,\n\n private aspectLoader: AspectLoaderMain,\n\n private logger: Logger,\n\n private dependencyResolver: DependencyResolverMain,\n\n private rootDir?: string | PathAbsolute,\n\n private cacheRootDir?: string | PathAbsolute,\n\n private preInstallSubscriberList?: PreInstallSubscriberList,\n\n private postInstallSubscriberList?: PostInstallSubscriberList,\n\n private nodeLinker?: 'hoisted' | 'isolated',\n\n private packageImportMethod?: PackageImportMethod,\n\n private sideEffectsCache?: boolean,\n\n private nodeVersion?: string,\n\n private engineStrict?: boolean,\n\n private peerDependencyRules?: PeerDependencyRules,\n\n private neverBuiltDependencies?: string[],\n\n private preferOffline?: boolean,\n\n private installingContext: DepInstallerContext = {}\n ) {}\n\n async install(\n rootDir: string | undefined,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n options: InstallOptions = DEFAULT_INSTALL_OPTIONS,\n packageManagerOptions: PackageManagerInstallOptions = DEFAULT_PM_INSTALL_OPTIONS\n ) {\n const finalRootDir = rootDir ?? this.rootDir;\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n const manifests = await this.getComponentManifests({\n ...packageManagerOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: finalRootDir,\n resolveVersionsFromDependenciesOnly: options.resolveVersionsFromDependenciesOnly,\n referenceLocalPackages: packageManagerOptions.rootComponentsForCapsules,\n excludeExtensionsDependencies: options.excludeExtensionsDependencies,\n });\n return this.installComponents(\n finalRootDir,\n manifests,\n rootPolicy,\n componentDirectoryMap,\n options,\n packageManagerOptions\n );\n }\n\n async installComponents(\n rootDir: string | undefined,\n manifests: Record<string, ProjectManifest>,\n rootPolicy: WorkspacePolicy,\n componentDirectoryMap: ComponentMap<string>,\n options: InstallOptions = DEFAULT_INSTALL_OPTIONS,\n packageManagerOptions: PackageManagerInstallOptions = DEFAULT_PM_INSTALL_OPTIONS\n ): Promise<{ dependenciesChanged: boolean }> {\n const args = {\n componentDirectoryMap,\n options,\n packageManagerOptions,\n rootDir,\n rootPolicy,\n };\n await this.runPrePostSubscribers(this.preInstallSubscriberList, 'pre', args);\n const mainAspect: MainAspect = this.aspectLoader.mainAspect;\n const finalRootDir = rootDir || this.rootDir;\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n if (options.linkedDependencies) {\n manifests = JSON.parse(JSON.stringify(manifests));\n const linkedDependencies = JSON.parse(\n JSON.stringify(options.linkedDependencies)\n ) as typeof options.linkedDependencies;\n if (linkedDependencies[finalRootDir]) {\n const directDeps = new Set<string>();\n Object.values(manifests).forEach((manifest) => {\n for (const depName of Object.keys({ ...manifest.dependencies, ...manifest.devDependencies })) {\n directDeps.add(depName);\n }\n });\n for (const manifest of Object.values(manifests)) {\n if (manifest.name && directDeps.has(manifest.name)) {\n delete linkedDependencies[finalRootDir][manifest.name];\n }\n }\n if (options.forceTeambitHarmonyLink && manifests[finalRootDir].dependencies?.['@teambit/harmony']) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delete manifests[finalRootDir].dependencies!['@teambit/harmony'];\n }\n }\n Object.entries(linkedDependencies).forEach(([dir, linkedDeps]) => {\n if (!manifests[dir]) {\n manifests[dir] = {};\n }\n manifests[dir].dependencies = {\n ...linkedDeps,\n ...manifests[dir].dependencies,\n };\n });\n }\n const hidePackageManagerOutput = !!(this.installingContext.inCapsule && process.env.VERBOSE_PM_OUTPUT !== 'true');\n\n // Make sure to take other default if passed options with only one option\n const calculatedPmOpts = {\n ...DEFAULT_PM_INSTALL_OPTIONS,\n cacheRootDir: this.cacheRootDir,\n nodeLinker: this.nodeLinker,\n packageImportMethod: this.packageImportMethod,\n sideEffectsCache: this.sideEffectsCache,\n nodeVersion: this.nodeVersion,\n engineStrict: this.engineStrict,\n packageManagerConfigRootDir: options.packageManagerConfigRootDir,\n peerDependencyRules: this.peerDependencyRules,\n hidePackageManagerOutput,\n neverBuiltDependencies: ['core-js', ...(this.neverBuiltDependencies ?? [])],\n preferOffline: this.preferOffline,\n ...packageManagerOptions,\n };\n if (options.installTeambitBit) {\n if (!mainAspect.version || !mainAspect.packageName) {\n throw new MainAspectNotInstallable();\n }\n const version = mainAspect.version;\n rootPolicy.add({\n dependencyId: mainAspect.packageName,\n lifecycleType: 'runtime',\n value: {\n version,\n },\n });\n }\n\n if (!packageManagerOptions.rootComponents && !packageManagerOptions.keepExistingModulesDir) {\n // Remove node modules dir for all components dirs, since it might contain left overs from previous install.\n //\n // This is not needed when \"rootComponents\" are used, as in that case the package manager handles the node_modules\n // and it never leaves node_modules in a broken state.\n // Removing node_modules in that case would delete useful state information that is used by Yarn or pnpm.\n await this.cleanCompsNodeModules(componentDirectoryMap);\n }\n\n const messagePrefix = 'running package installation';\n const messageSuffix = `using ${this.packageManager.name}`;\n const message = this.installingContext?.inCapsule\n ? `(capsule) ${messagePrefix} in root dir ${this.rootDir} ${messageSuffix}`\n : `${messagePrefix} ${messageSuffix}`;\n if (!hidePackageManagerOutput) {\n this.logger.setStatusLine(message);\n }\n const startTime = process.hrtime();\n\n // TODO: the cache should be probably passed to the package manager constructor not to the install function\n const installResult = await this.packageManager.install(\n {\n rootDir: finalRootDir,\n manifests,\n componentDirectoryMap,\n },\n calculatedPmOpts\n );\n if (!hidePackageManagerOutput) {\n this.logger.consoleSuccess(`done ${message}`, startTime);\n }\n await this.runPrePostSubscribers(this.postInstallSubscriberList, 'post', args);\n return installResult;\n }\n\n public async pruneModules(rootDir: string): Promise<void> {\n if (!this.packageManager.pruneModules) {\n return;\n }\n await this.packageManager.pruneModules(rootDir);\n }\n\n /**\n * Compute all the component manifests (a.k.a. package.json files) that should be passed to the package manager\n * in order to install the dependencies.\n */\n public async getComponentManifests({\n componentDirectoryMap,\n rootPolicy,\n rootDir,\n dedupe,\n dependencyFilterFn,\n copyPeerToRuntimeOnComponents,\n copyPeerToRuntimeOnRoot,\n installPeersFromEnvs,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n hasRootComponents,\n excludeExtensionsDependencies,\n }: GetComponentManifestsOptions) {\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe,\n dependencyFilterFn,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\n hasRootComponents,\n excludeExtensionsDependencies,\n };\n const workspaceManifest = await this.dependencyResolver.getWorkspaceManifest(\n undefined,\n undefined,\n rootPolicy,\n rootDir,\n componentDirectoryMap.components,\n options,\n this.installingContext\n );\n const manifests: Record<string, ProjectManifest> = componentDirectoryMap\n .toArray()\n .reduce((acc, [component, dir]) => {\n const packageName = this.dependencyResolver.getPackageName(component);\n const manifest = workspaceManifest.componentsManifestsMap.get(packageName);\n if (manifest) {\n acc[dir] = manifest.toJson({ copyPeerToRuntime: copyPeerToRuntimeOnComponents });\n }\n return acc;\n }, {});\n if (!manifests[rootDir]) {\n manifests[rootDir] = workspaceManifest.toJson({\n copyPeerToRuntime: copyPeerToRuntimeOnRoot,\n installPeersFromEnvs,\n });\n }\n return manifests;\n }\n\n private async cleanCompsNodeModules(componentDirectoryMap: ComponentMap<string>) {\n const promises = componentDirectoryMap.toArray().map(([, dir]) => {\n const nmDir = path.join(dir, 'node_modules');\n return fs.remove(nmDir);\n });\n return Promise.all(promises);\n }\n\n private async runPrePostSubscribers(\n subscribers: PreInstallSubscriberList | PostInstallSubscriberList = [],\n type: 'pre' | 'post',\n args: InstallArgs\n ): Promise<void> {\n const message = this.installingContext?.inCapsule\n ? `(capsule) running ${type} install subscribers in root dir ${this.rootDir}`\n : `running ${type} install subscribers`;\n if (!this.installingContext?.inCapsule) {\n this.logger.setStatusLine(message);\n }\n await mapSeries(subscribers, async (subscriber) => {\n return subscriber(this, args);\n });\n if (!this.installingContext?.inCapsule) {\n this.logger.consoleSuccess(message);\n }\n }\n}\n"],"mappings":"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"}
@@ -79,6 +79,7 @@ export declare class DependencyLinker {
79
79
  private rootDir?;
80
80
  private linkingOptions?;
81
81
  private linkingContext;
82
+ private _currentBitDir;
82
83
  constructor(dependencyResolver: DependencyResolverMain, aspectLoader: AspectLoaderMain, componentAspect: ComponentMain, envs: EnvsMain, logger: Logger, rootDir?: string | undefined, linkingOptions?: LinkingOptions | undefined, linkingContext?: DepLinkerContext);
83
84
  calculateLinkedDeps(rootDir: string | undefined, componentDirectoryMap: ComponentMap<string>, options?: LinkingOptions): Promise<{
84
85
  linkedRootDeps: Record<string, string>;
@@ -39,6 +39,13 @@ function _resolveFrom() {
39
39
  };
40
40
  return data;
41
41
  }
42
+ function _bvm() {
43
+ const data = require("@teambit/bvm.path");
44
+ _bvm = function () {
45
+ return data;
46
+ };
47
+ return data;
48
+ }
42
49
  function _bitError() {
43
50
  const data = require("@teambit/bit-error");
44
51
  _bitError = function () {
@@ -94,6 +101,8 @@ class DependencyLinker {
94
101
  this.rootDir = rootDir;
95
102
  this.linkingOptions = linkingOptions;
96
103
  this.linkingContext = linkingContext;
104
+ _defineProperty(this, "_currentBitDir", void 0);
105
+ this._currentBitDir = (0, _bvm().findCurrentBvmDir)();
97
106
  }
98
107
  async calculateLinkedDeps(rootDir, componentDirectoryMap, options = {}) {
99
108
  const linkResults = await this._calculateLinks(rootDir, componentDirectoryMap, options);
@@ -531,6 +540,13 @@ class DependencyLinker {
531
540
  const distDir = _path().default.join(mainAspectPath, 'dist', name);
532
541
  const packageName = `@teambit/${name}`;
533
542
  const target = _path().default.join(rootDir, 'node_modules', packageName);
543
+ if (this._currentBitDir) {
544
+ return {
545
+ packageName,
546
+ from: _path().default.join(this._currentBitDir, 'node_modules', packageName),
547
+ to: target
548
+ };
549
+ }
534
550
  const isDistDirExist = _fsExtra().default.pathExistsSync(distDir);
535
551
  if (!isDistDirExist) {
536
552
  const newDir = getDistDirForDevEnv(packageName);
@@ -1 +1 @@
1
- {"version":3,"names":["_isBuiltinModule","data","_interopRequireDefault","require","_path","_lodash","_fsExtra","_resolveFrom","_bitError","_componentIdToPackageName","_aspectLoader","_exceptions","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_LINKING_OPTIONS","rewire","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","DependencyLinker","constructor","dependencyResolver","aspectLoader","componentAspect","envs","logger","rootDir","linkingOptions","linkingContext","calculateLinkedDeps","componentDirectoryMap","options","linkResults","_calculateLinks","localLinks","teambitBitLink","linkDetailToLocalDepEntry","linkDetail","coreAspectsLinks","link","harmonyLink","teambitLegacyLink","resolvedFromEnvLinks","linksDetail","linkToDirResults","linkedRootDeps","fromEntries","map","packageName","from","_this$linkingContext","_this$linkingContext2","_this$linkingContext3","outputMessage","inCapsule","setStatusLine","debug","omit","startTime","process","hrtime","result","finalRootDir","linkingOpts","assign","RootDirNotDefined","linkToDir","components","toArray","component","includePeers","_getLinksToPeers","nestedDepsInNmLinks","addSymlinkFromComponentDirNMToWorkspaceDirNM","componentIds","_dir","comp","id","linkCoreAspectsAndLegacy","consoleSuccess","peers","Set","Promise","all","depList","getDependencies","peerList","byLifecycle","dependency","getPackageName","add","fromDir","path","join","toDir","Array","componentId","to","_result$teambitBitLin","componentIdsWithoutVersions","toString","ignoreVersion","isBitRepoWorkspace","bitLink","linkBitAspectIfNotExist","mainAspectPath","mainAspect","MainAspectNotLinkable","hasLocalInstallation","linkNonExistingCoreAspects","targetModulesDir","linkNonAspectCorePackages","targetDir","results","componentPackageName","componentIdToPackageName","state","_consumer","rootNodeModules","getPackagesFoldersToLink","dir","parent","folders","fs","readdirSync","withFileTypes","dirent","name","startsWith","isDirectory","isSymbolicLink","dirPath","moduleName","moduleNameToResolve","isBuiltinModule","resolvedModuleFrom","resolveModuleFromDir","origPath","resolveModuleDirFromFile","flatten","linksOfAllComponents","compDirNM","existsSync","innerNMofComponentInNM","isPathSymlink","packagesFoldersToLink","ensureDirSync","oneComponentLinks","folderEntry","linkTarget","linkSrc","info","filteredLinks","compact","componentsNeedLinks","componentsNeedLinksP","policy","getPolicy","resolvedFromEnv","getResolvedFromEnv","env","getEnv","componentNeedLink","envsStringIds","uniqEnvIds","uniq","host","getHost","resolvedEnvIds","resolveMultipleComponentIds","resolvedAspects","resolveAspects","resolvedAspectsIndex","reduce","acc","curr","getId","allLinksP","entry","oneComponentLinksP","entries","depEntry","dependencyId","envDir","aspectPath","resolvedModule","console","depsLinkedToEnvResult","mainAspectId","existing","find","linkBit","aspectId","target","shouldSymlink","removeSymlinkTarget","src","ensureDir","dirname","opts","coreAspectsIds","getCoreAspectIds","filtered","_this$aspectLoader$ma","getCoreAspectName","linkCoreAspect","_this$aspectLoader$ma2","getCoreAspectPackageName","aspectDir","isAspectDirExist","pathExistsSync","getAspectDir","module","resolve","err","CoreAspectLinkError","targetPath","targetStat","lstatSync","distDir","isDistDirExist","newDir","getDistDirForDevEnv","resolvedPath","NonAspectCorePackageLinkError","exports","moduleDirectory","includes","nmDir","__dirname","substring","indexOf","paths","BitError","moduleId","silent","resolveFrom","resolvedModulePath","NM","slice","lastIndexOf","start","end","split","basename","versionStr","head","folderPath","stat"],"sources":["dependency-linker.ts"],"sourcesContent":["import isBuiltinModule from 'is-builtin-module';\nimport path from 'path';\nimport { uniq, compact, flatten, head, omit } from 'lodash';\nimport { Stats } from 'fs';\nimport fs from 'fs-extra';\nimport resolveFrom from 'resolve-from';\nimport { ComponentMap, Component, ComponentID, ComponentMain } from '@teambit/component';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { BitError } from '@teambit/bit-error';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { EnvsMain } from '@teambit/envs';\nimport { AspectLoaderMain, getCoreAspectName, getCoreAspectPackageName, getAspectDir } from '@teambit/aspect-loader';\nimport {\n MainAspectNotLinkable,\n RootDirNotDefined,\n CoreAspectLinkError,\n NonAspectCorePackageLinkError,\n} from './exceptions';\nimport { DependencyResolverMain } from './dependency-resolver.main.runtime';\n\n/**\n * context of the linking process.\n */\nexport type DepLinkerContext = {\n inCapsule?: boolean;\n};\n\nexport type LinkingOptions = {\n rewire?: boolean;\n /**\n * Whether to create link to @teambit/bit in the root node modules\n */\n linkTeambitBit?: boolean;\n /**\n * Whether to create links in the root dir node modules to all core aspects\n */\n linkCoreAspects?: boolean;\n\n linkNestedDepsInNM?: boolean;\n\n /**\n * link to another project, so that project could use components from this workspace.\n * similar to npm/yarn link\n */\n linkToDir?: string;\n\n /**\n * Link peer dependencies of the components to the target project.\n * Peer dependencies should be singletons, so the project should use the same\n * version of the peer dependency as the linked in components.\n */\n includePeers?: boolean;\n\n /**\n * whether link should import objects before linking\n */\n fetchObject?: boolean;\n\n /**\n * Link deps which should be linked to the env\n */\n linkDepsResolvedFromEnv?: boolean;\n};\n\nconst DEFAULT_LINKING_OPTIONS: LinkingOptions = {\n rewire: false,\n linkTeambitBit: true,\n linkCoreAspects: true,\n linkDepsResolvedFromEnv: true,\n linkNestedDepsInNM: true,\n};\n\nexport type LinkDetail = { packageName: string; from: string; to: string };\n\nexport type CoreAspectLinkResult = {\n aspectId: string;\n linkDetail: LinkDetail;\n};\n\nexport type DepsLinkedToEnvResult = {\n componentId: string;\n linksDetail: LinkDetail[];\n};\n\nexport type NestedNMDepsLinksResult = {\n componentId: string;\n linksDetail: LinkDetail[];\n};\n\nexport type LinkToDirResult = {\n componentId: string;\n linksDetail: LinkDetail;\n};\n\nexport type LinkResults = {\n teambitBitLink?: CoreAspectLinkResult;\n coreAspectsLinks?: CoreAspectLinkResult[];\n harmonyLink?: LinkDetail;\n teambitLegacyLink?: LinkDetail;\n resolvedFromEnvLinks?: DepsLinkedToEnvResult[];\n nestedDepsInNmLinks?: NestedNMDepsLinksResult[];\n linkToDirResults?: LinkToDirResult[];\n};\n\ntype NestedModuleFolderEntry = {\n moduleName: string;\n path: string;\n origPath?: string;\n};\n\nexport class DependencyLinker {\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private componentAspect: ComponentMain,\n\n private envs: EnvsMain,\n\n private logger: Logger,\n\n private rootDir?: string | PathAbsolute,\n\n private linkingOptions?: LinkingOptions,\n\n private linkingContext: DepLinkerContext = {}\n ) {}\n\n async calculateLinkedDeps(\n rootDir: string | undefined,\n componentDirectoryMap: ComponentMap<string>,\n options: LinkingOptions = {}\n ): Promise<{ linkedRootDeps: Record<string, string>; linkResults: LinkResults }> {\n const linkResults = await this._calculateLinks(rootDir, componentDirectoryMap, options);\n const localLinks: Array<[string, string]> = [];\n if (linkResults.teambitBitLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.teambitBitLink.linkDetail));\n }\n if (linkResults.coreAspectsLinks) {\n linkResults.coreAspectsLinks.forEach((link) => {\n localLinks.push(this.linkDetailToLocalDepEntry(link.linkDetail));\n });\n }\n if (linkResults.harmonyLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.harmonyLink));\n }\n if (linkResults.teambitLegacyLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.teambitLegacyLink));\n }\n if (linkResults.resolvedFromEnvLinks) {\n linkResults.resolvedFromEnvLinks.forEach((link) => {\n link.linksDetail.forEach((linkDetail) => {\n localLinks.push(this.linkDetailToLocalDepEntry(linkDetail));\n });\n });\n }\n if (linkResults.linkToDirResults) {\n linkResults.linkToDirResults.forEach((link) => {\n localLinks.push(this.linkDetailToLocalDepEntry(link.linksDetail));\n });\n }\n return {\n linkedRootDeps: Object.fromEntries(localLinks.map(([key, value]) => [key, `link:${value}`])),\n linkResults,\n };\n }\n\n private linkDetailToLocalDepEntry(linkDetail: LinkDetail): [string, string] {\n return [linkDetail.packageName, linkDetail.from];\n }\n\n private async _calculateLinks(\n rootDir: string | undefined,\n componentDirectoryMap: ComponentMap<string>,\n options: LinkingOptions = {}\n ): Promise<LinkResults> {\n const outputMessage = this.linkingContext?.inCapsule\n ? `(capsule) linking components in root dir: ${rootDir || this.rootDir}`\n : 'linking components';\n if (!this.linkingContext?.inCapsule) {\n this.logger.setStatusLine(outputMessage);\n }\n this.logger.debug('linking components with options', omit(options, ['consumer']));\n const startTime = process.hrtime();\n\n let result: LinkResults = {};\n const finalRootDir = rootDir || this.rootDir;\n const linkingOpts = Object.assign({}, DEFAULT_LINKING_OPTIONS, this.linkingOptions || {}, options || {});\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n if (options.linkToDir) {\n const components = componentDirectoryMap.toArray().map(([component]) => component);\n const linkToDirResults = await this.linkToDir(finalRootDir, options.linkToDir, components);\n result.linkToDirResults = linkToDirResults;\n if (options.includePeers) {\n result.linkToDirResults.push(\n ...(await this._getLinksToPeers(componentDirectoryMap, { finalRootDir, linkToDir: options.linkToDir }))\n );\n }\n return result;\n }\n\n // Link deps which should be linked to the env\n if (linkingOpts.linkDepsResolvedFromEnv) {\n result.resolvedFromEnvLinks = await this.linkDepsResolvedFromEnv(componentDirectoryMap);\n }\n if (linkingOpts.linkNestedDepsInNM) {\n result.nestedDepsInNmLinks = this.addSymlinkFromComponentDirNMToWorkspaceDirNM(\n finalRootDir,\n componentDirectoryMap\n );\n }\n\n // We remove the version since it used in order to check if it's core aspects, and the core aspects arrived from aspect loader without versions\n const componentIds: ComponentID[] = [];\n componentDirectoryMap.map((_dir, comp) => {\n componentIds.push(comp.id);\n return undefined;\n });\n result = {\n ...result,\n ...(await this.linkCoreAspectsAndLegacy(finalRootDir, componentIds, linkingOpts)),\n };\n if (!this.linkingContext?.inCapsule) {\n this.logger.consoleSuccess(outputMessage, startTime);\n }\n return result;\n }\n\n async _getLinksToPeers(\n componentDirectoryMap: ComponentMap<string>,\n options: {\n finalRootDir: string;\n linkToDir: string;\n }\n ): Promise<LinkToDirResult[]> {\n const peers = new Set<string>();\n await Promise.all(\n componentDirectoryMap.toArray().map(async ([component]) => {\n const depList = await this.dependencyResolver.getDependencies(component);\n const peerList = depList.byLifecycle('peer');\n peerList.forEach((dependency) => {\n if (dependency.getPackageName) {\n peers.add(dependency.getPackageName());\n }\n });\n })\n );\n const fromDir = path.join(options.finalRootDir, 'node_modules');\n const toDir = path.join(options.linkToDir, 'node_modules');\n return Array.from(peers).map((packageName) => ({\n componentId: packageName,\n linksDetail: {\n packageName,\n from: path.join(fromDir, packageName),\n to: path.join(toDir, packageName),\n },\n }));\n }\n\n async linkCoreAspectsAndLegacy(\n rootDir: string,\n componentIds: ComponentID[] = [],\n options: Pick<LinkingOptions, 'linkTeambitBit' | 'linkCoreAspects'> = {}\n ) {\n const result: LinkResults = {};\n const componentIdsWithoutVersions: string[] = [];\n componentIds.map((id) => {\n componentIdsWithoutVersions.push(id.toString({ ignoreVersion: true }));\n return undefined;\n });\n const linkingOpts = Object.assign({}, DEFAULT_LINKING_OPTIONS, this.linkingOptions || {}, options || {});\n if (linkingOpts.linkTeambitBit && !this.isBitRepoWorkspace(rootDir)) {\n const bitLink = await this.linkBitAspectIfNotExist(\n path.join(rootDir, 'node_modules'),\n componentIdsWithoutVersions\n );\n result.teambitBitLink = bitLink;\n }\n\n let mainAspectPath = result.teambitBitLink?.linkDetail.from;\n if (!mainAspectPath && this.aspectLoader.mainAspect) {\n if (!this.aspectLoader.mainAspect.packageName) {\n throw new MainAspectNotLinkable();\n }\n mainAspectPath = path.join(rootDir, 'node_modules', this.aspectLoader.mainAspect.packageName);\n }\n if (linkingOpts.linkCoreAspects && !this.isBitRepoWorkspace(rootDir)) {\n const hasLocalInstallation = !linkingOpts.linkTeambitBit;\n if (mainAspectPath) {\n result.coreAspectsLinks = await this.linkNonExistingCoreAspects(componentIdsWithoutVersions, {\n targetModulesDir: path.join(rootDir, 'node_modules'),\n mainAspectPath,\n hasLocalInstallation,\n });\n } else {\n result.coreAspectsLinks = [];\n }\n }\n\n if (mainAspectPath) {\n result.teambitLegacyLink = this.linkNonAspectCorePackages(rootDir, 'legacy', mainAspectPath);\n result.harmonyLink = this.linkNonAspectCorePackages(rootDir, 'harmony', mainAspectPath);\n }\n return result;\n }\n\n private async linkToDir(rootDir: string, targetDir: string, components: Component[]): Promise<LinkToDirResult[]> {\n const results: LinkToDirResult[] = components.map((component) => {\n const componentPackageName = componentIdToPackageName(component.state._consumer);\n return {\n componentId: component.id.toString(),\n linksDetail: {\n packageName: componentPackageName,\n from: path.join(rootDir, 'node_modules', componentPackageName),\n to: path.join(targetDir, 'node_modules', componentPackageName),\n },\n };\n });\n return results;\n }\n\n /**\n * Add symlinks from the node_modules in the component's root-dir to the workspace node_modules\n * of the component. e.g.\n * <ws-root>/node_modules/comp1/node_modules/<dep> -> <ws-root>/components/comp1/node_modules/<dep>\n * This is needed because the component is compiled into the dist folder at <ws-root>/node_modules/comp1/dist,\n * so the files in the dist folder need to find the right dependencies of comp1.\n */\n private addSymlinkFromComponentDirNMToWorkspaceDirNM(\n rootDir: string,\n componentDirectoryMap: ComponentMap<string>\n ): NestedNMDepsLinksResult[] {\n const rootNodeModules = path.join(rootDir, 'node_modules');\n const getPackagesFoldersToLink = (dir: string, parent?: string): NestedModuleFolderEntry[] => {\n const folders = fs\n .readdirSync(dir, { withFileTypes: true })\n .filter((dirent) => {\n if (dirent.name.startsWith('.')) {\n return false;\n }\n return dirent.isDirectory() || dirent.isSymbolicLink();\n })\n .map((dirent) => {\n const dirPath = path.join(dir, dirent.name);\n const moduleName = parent ? `${parent}/${dirent.name}` : dirent.name;\n // If we have a folder with a name of built in module (like events)\n // the resolve from will resolve it from the core, so it will return something like 'events'\n // instead of the path.\n // adding a '/' at the end solve this\n const moduleNameToResolve = isBuiltinModule(moduleName) ? `${moduleName}/` : moduleName;\n // This is a scoped package, need to go inside\n if (dirent.name.startsWith('@')) {\n return getPackagesFoldersToLink(dirPath, dirent.name);\n }\n\n if (dirent.isSymbolicLink()) {\n const resolvedModuleFrom = resolveModuleFromDir(dir, moduleNameToResolve);\n if (!resolvedModuleFrom) {\n return {\n moduleName,\n path: dirPath,\n };\n }\n return {\n origPath: dirPath,\n moduleName,\n path: resolveModuleDirFromFile(resolvedModuleFrom, moduleName),\n };\n }\n return {\n moduleName,\n path: dirPath,\n };\n });\n return flatten(folders);\n };\n const linksOfAllComponents = componentDirectoryMap.toArray().map(([component, dir]) => {\n const compDirNM = path.join(dir, 'node_modules');\n if (!fs.existsSync(compDirNM)) return undefined;\n // TODO: support modules with scoped packages (start with @) - we need to make this logic 2 levels\n\n const componentPackageName = componentIdToPackageName(component.state._consumer);\n const innerNMofComponentInNM = path.join(rootNodeModules, componentPackageName);\n // If the folder itself is a symlink, do not try to symlink inside it\n if (isPathSymlink(innerNMofComponentInNM)) {\n return undefined;\n }\n const packagesFoldersToLink: NestedModuleFolderEntry[] = getPackagesFoldersToLink(compDirNM);\n fs.ensureDirSync(innerNMofComponentInNM);\n\n const oneComponentLinks: LinkDetail[] = packagesFoldersToLink.map((folderEntry: NestedModuleFolderEntry) => {\n const linkTarget = path.join(innerNMofComponentInNM, 'node_modules', folderEntry?.moduleName);\n const linkSrc = folderEntry.path;\n // This works as well, consider using it instead\n // const linkSrc = folderEntry.origPath || folderEntry.path;\n const origPath = folderEntry.origPath ? `(${folderEntry.origPath})` : '';\n const linkDetail: LinkDetail = {\n packageName: folderEntry.moduleName,\n from: `${linkSrc} ${origPath}`,\n to: linkTarget,\n };\n this.logger.info(\n `linking nested dependency ${folderEntry.moduleName} for component ${component}. link src: ${linkSrc} link target: ${linkTarget}`\n );\n return linkDetail;\n });\n\n const filteredLinks = compact(oneComponentLinks);\n return {\n componentId: component.id.toString(),\n linksDetail: filteredLinks,\n };\n });\n const filteredLinks = compact(linksOfAllComponents);\n return filteredLinks;\n }\n\n private async linkDepsResolvedFromEnv(\n componentDirectoryMap: ComponentMap<string>\n ): Promise<Array<DepsLinkedToEnvResult>> {\n const componentsNeedLinks: {\n component: Component;\n dir: string;\n env;\n resolvedFromEnv;\n envId?: string;\n envDir?: string;\n }[] = [];\n\n const componentsNeedLinksP = componentDirectoryMap.toArray().map(async ([component, dir]) => {\n const policy = await this.dependencyResolver.getPolicy(component);\n const resolvedFromEnv = policy.getResolvedFromEnv();\n // Nothing should be resolved from env, do nothing\n if (!resolvedFromEnv.length) {\n return;\n }\n const env = this.envs.getEnv(component);\n const componentNeedLink = {\n component,\n dir,\n env,\n resolvedFromEnv,\n };\n componentsNeedLinks.push(componentNeedLink);\n });\n\n await Promise.all(componentsNeedLinksP);\n // Stop if there are not components needs to be linked\n if (!componentsNeedLinks || !componentsNeedLinks.length) return [];\n const envsStringIds = componentsNeedLinks.map((obj) => obj.env.id);\n const uniqEnvIds = uniq(envsStringIds);\n const host = this.componentAspect.getHost();\n const resolvedEnvIds = await host.resolveMultipleComponentIds(uniqEnvIds);\n const resolvedAspects = await host.resolveAspects(undefined, resolvedEnvIds);\n const resolvedAspectsIndex = resolvedAspects.reduce((acc, curr) => {\n if (curr.getId) {\n acc[curr.getId] = curr;\n }\n return acc;\n }, {});\n const allLinksP = componentsNeedLinks.map(async (entry) => {\n const oneComponentLinksP: Array<LinkDetail | undefined> = entry.resolvedFromEnv.entries.map(async (depEntry) => {\n const linkTarget = path.join(entry.dir, 'node_modules', depEntry.dependencyId);\n const envDir = resolvedAspectsIndex[entry.env.id].aspectPath;\n const resolvedModule = resolveModuleFromDir(envDir, depEntry.dependencyId);\n if (!resolvedModule) {\n this.logger.console(`could not resolve ${depEntry.dependencyId} from env directory ${envDir}`);\n return undefined;\n }\n const linkSrc = resolveModuleDirFromFile(resolvedModule, depEntry.dependencyId);\n const linkDetail: LinkDetail = {\n packageName: depEntry.dependencyId,\n from: linkSrc,\n to: linkTarget,\n };\n this.logger.info(\n `linking dependency ${depEntry.dependencyId} from env directory ${envDir}. link src: ${linkSrc} link target: ${linkTarget}`\n );\n\n return linkDetail;\n });\n const oneComponentLinks = await Promise.all(oneComponentLinksP);\n const filteredLinks = compact(oneComponentLinks);\n const depsLinkedToEnvResult: DepsLinkedToEnvResult = {\n componentId: entry.component.id.toString(),\n linksDetail: filteredLinks,\n };\n return depsLinkedToEnvResult;\n });\n return Promise.all(allLinksP);\n }\n\n private async linkBitAspectIfNotExist(\n dir: string,\n componentIds: string[]\n ): Promise<CoreAspectLinkResult | undefined> {\n if (!this.aspectLoader.mainAspect) return undefined;\n const mainAspectId = this.aspectLoader.mainAspect.id;\n const existing = componentIds.find((id) => {\n return id === mainAspectId;\n });\n\n if (existing) {\n return undefined;\n }\n const linkDetail = await this.linkBit(dir);\n if (!linkDetail) return undefined;\n return {\n aspectId: mainAspectId,\n linkDetail,\n };\n }\n\n async linkBit(dir: string): Promise<LinkDetail | undefined> {\n if (!this.aspectLoader.mainAspect.packageName) {\n throw new MainAspectNotLinkable();\n }\n const target = path.join(dir, this.aspectLoader.mainAspect.packageName);\n const shouldSymlink = this.removeSymlinkTarget(target);\n if (!shouldSymlink) return undefined;\n const src = this.aspectLoader.mainAspect.path;\n await fs.ensureDir(path.dirname(target));\n return { packageName: this.aspectLoader.mainAspect.packageName, from: src, to: target };\n }\n\n private async linkNonExistingCoreAspects(\n componentIds: string[],\n opts: {\n targetModulesDir: string;\n mainAspectPath: string;\n hasLocalInstallation?: boolean;\n }\n ): Promise<CoreAspectLinkResult[]> {\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const filtered = coreAspectsIds.filter((aspectId) => {\n // Remove bit aspect\n if (aspectId === this.aspectLoader.mainAspect?.id) {\n return false;\n }\n // TODO: use the aspect id once default scope is resolved and the component dir map has the id with scope\n const name = getCoreAspectName(aspectId);\n const existing = componentIds.find((componentId) => {\n return componentId === name || componentId === aspectId;\n });\n if (existing) {\n return false;\n }\n return true;\n });\n\n this.logger.debug(`linkNonExistingCoreAspects: linking the following core aspects ${filtered.join()}`);\n\n const results = filtered.map((id) => this.linkCoreAspect(id, opts));\n return compact(results);\n }\n\n private isBitRepoWorkspace(dir: string) {\n // A special condition to not link core aspects in bit workspace itself\n if (this.aspectLoader.mainAspect?.path.startsWith(dir)) {\n return true;\n }\n return false;\n }\n\n private linkCoreAspect(\n id: string,\n {\n targetModulesDir,\n mainAspectPath,\n hasLocalInstallation,\n }: {\n targetModulesDir: string;\n mainAspectPath: string;\n hasLocalInstallation?: boolean;\n }\n ): CoreAspectLinkResult | undefined {\n const name = getCoreAspectName(id);\n const packageName = getCoreAspectPackageName(id);\n let aspectDir = path.join(mainAspectPath, 'dist', name);\n const target = path.join(targetModulesDir, packageName);\n const shouldSymlink = this.removeSymlinkTarget(target, hasLocalInstallation);\n if (!shouldSymlink) return undefined;\n const isAspectDirExist = fs.pathExistsSync(aspectDir);\n if (!isAspectDirExist) {\n this.logger.debug(`linkCoreAspect: aspectDir ${aspectDir} does not exist, linking it to ${target}`);\n aspectDir = getAspectDir(id);\n return { aspectId: id, linkDetail: { packageName, from: aspectDir, to: target } };\n }\n\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(aspectDir);\n const aspectPath = path.resolve(path.join(module.path, '..', '..'));\n this.logger.debug(`linkCoreAspect: linking aspectPath ${aspectPath} to ${target}`);\n return { aspectId: id, linkDetail: { packageName, from: aspectPath, to: target } };\n } catch (err: any) {\n throw new CoreAspectLinkError(id, err);\n }\n }\n\n /**\n * returns true if it's safe to symlink it later.\n */\n private removeSymlinkTarget(targetPath: string, hasLocalInstallation = false): boolean {\n // TODO: change to fs.lstatSync(dest, {throwIfNoEntry: false});\n // TODO: this requires to upgrade node to v15.3.0 to have the throwIfNoEntry property (maybe upgrade fs-extra will work as well)\n // TODO: we don't use fs.pathExistsSync since it will return false in case the dest is a symlink which will result error on write\n let targetStat: Stats | undefined;\n try {\n targetStat = fs.lstatSync(targetPath);\n // eslint-disable-next-line no-empty\n } catch (e: any) {}\n if (targetStat && !hasLocalInstallation) {\n // Do not override links created by other means\n if (!targetStat.isSymbolicLink()) {\n this.logger.debug(`removing link target, target ${targetPath} already exist. skipping it`);\n return false;\n }\n return true;\n }\n return true;\n }\n\n private linkNonAspectCorePackages(rootDir: string, name: string, mainAspectPath: string): LinkDetail | undefined {\n const distDir = path.join(mainAspectPath, 'dist', name);\n\n const packageName = `@teambit/${name}`;\n const target = path.join(rootDir, 'node_modules', packageName);\n const isDistDirExist = fs.pathExistsSync(distDir);\n if (!isDistDirExist) {\n const newDir = getDistDirForDevEnv(packageName);\n return { packageName, from: newDir, to: target };\n }\n\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(distDir);\n const resolvedPath = path.resolve(path.join(module.path, '..', '..'));\n return { packageName, from: resolvedPath, to: target };\n } catch (err: any) {\n throw new NonAspectCorePackageLinkError(err, packageName);\n }\n }\n}\n\n/**\n * When running dev env (bd) we need to get the harmony/legacy folder from the node_modules of the clone\n */\nfunction getDistDirForDevEnv(packageName: string): string {\n let moduleDirectory = require.resolve(packageName);\n let dirPath;\n if (moduleDirectory.includes(packageName)) {\n dirPath = path.join(moduleDirectory, '../..'); // to remove the \"index.js\" at the end\n } else {\n // This is usually required for the @teambit/legacy, as we re inside the nm so we can't find it in the other way\n const nmDir = __dirname.substring(0, __dirname.indexOf('@teambit'));\n dirPath = path.join(nmDir, packageName);\n moduleDirectory = require.resolve(packageName, { paths: [nmDir] });\n }\n if (!fs.existsSync(dirPath)) {\n throw new BitError(`unable to find ${packageName} in ${dirPath}`);\n }\n\n return dirPath;\n}\n\n// TODO: extract to new component\nfunction resolveModuleFromDir(fromDir: string, moduleId: string, silent = true): string | undefined {\n if (silent) {\n return resolveFrom.silent(fromDir, moduleId);\n }\n return resolveFrom(fromDir, moduleId);\n}\n\n// TODO: extract to new component\nfunction resolveModuleDirFromFile(resolvedModulePath: string, moduleId: string): string {\n const NM = 'node_modules';\n if (resolvedModulePath.includes(NM)) {\n return path.join(resolvedModulePath.slice(0, resolvedModulePath.lastIndexOf(NM) + NM.length), moduleId);\n }\n\n const [start, end] = resolvedModulePath.split('@');\n if (!end) return path.basename(resolvedModulePath);\n const versionStr = head(end.split('/'));\n return `${start}@${versionStr}`;\n}\n\nfunction isPathSymlink(folderPath: string): boolean | undefined {\n // TODO: change to fs.lstatSync(dest, {throwIfNoEntry: false}); once upgrade fs-extra\n try {\n const stat = fs.lstatSync(folderPath);\n return stat.isSymbolicLink();\n } catch (e: any) {\n return undefined;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_isBuiltinModule","data","_interopRequireDefault","require","_path","_lodash","_fsExtra","_resolveFrom","_bvm","_bitError","_componentIdToPackageName","_aspectLoader","_exceptions","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_LINKING_OPTIONS","rewire","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","DependencyLinker","constructor","dependencyResolver","aspectLoader","componentAspect","envs","logger","rootDir","linkingOptions","linkingContext","_currentBitDir","findCurrentBvmDir","calculateLinkedDeps","componentDirectoryMap","options","linkResults","_calculateLinks","localLinks","teambitBitLink","linkDetailToLocalDepEntry","linkDetail","coreAspectsLinks","link","harmonyLink","teambitLegacyLink","resolvedFromEnvLinks","linksDetail","linkToDirResults","linkedRootDeps","fromEntries","map","packageName","from","_this$linkingContext","_this$linkingContext2","_this$linkingContext3","outputMessage","inCapsule","setStatusLine","debug","omit","startTime","process","hrtime","result","finalRootDir","linkingOpts","assign","RootDirNotDefined","linkToDir","components","toArray","component","includePeers","_getLinksToPeers","nestedDepsInNmLinks","addSymlinkFromComponentDirNMToWorkspaceDirNM","componentIds","_dir","comp","id","linkCoreAspectsAndLegacy","consoleSuccess","peers","Set","Promise","all","depList","getDependencies","peerList","byLifecycle","dependency","getPackageName","add","fromDir","path","join","toDir","Array","componentId","to","_result$teambitBitLin","componentIdsWithoutVersions","toString","ignoreVersion","isBitRepoWorkspace","bitLink","linkBitAspectIfNotExist","mainAspectPath","mainAspect","MainAspectNotLinkable","hasLocalInstallation","linkNonExistingCoreAspects","targetModulesDir","linkNonAspectCorePackages","targetDir","results","componentPackageName","componentIdToPackageName","state","_consumer","rootNodeModules","getPackagesFoldersToLink","dir","parent","folders","fs","readdirSync","withFileTypes","dirent","name","startsWith","isDirectory","isSymbolicLink","dirPath","moduleName","moduleNameToResolve","isBuiltinModule","resolvedModuleFrom","resolveModuleFromDir","origPath","resolveModuleDirFromFile","flatten","linksOfAllComponents","compDirNM","existsSync","innerNMofComponentInNM","isPathSymlink","packagesFoldersToLink","ensureDirSync","oneComponentLinks","folderEntry","linkTarget","linkSrc","info","filteredLinks","compact","componentsNeedLinks","componentsNeedLinksP","policy","getPolicy","resolvedFromEnv","getResolvedFromEnv","env","getEnv","componentNeedLink","envsStringIds","uniqEnvIds","uniq","host","getHost","resolvedEnvIds","resolveMultipleComponentIds","resolvedAspects","resolveAspects","resolvedAspectsIndex","reduce","acc","curr","getId","allLinksP","entry","oneComponentLinksP","entries","depEntry","dependencyId","envDir","aspectPath","resolvedModule","console","depsLinkedToEnvResult","mainAspectId","existing","find","linkBit","aspectId","target","shouldSymlink","removeSymlinkTarget","src","ensureDir","dirname","opts","coreAspectsIds","getCoreAspectIds","filtered","_this$aspectLoader$ma","getCoreAspectName","linkCoreAspect","_this$aspectLoader$ma2","getCoreAspectPackageName","aspectDir","isAspectDirExist","pathExistsSync","getAspectDir","module","resolve","err","CoreAspectLinkError","targetPath","targetStat","lstatSync","distDir","isDistDirExist","newDir","getDistDirForDevEnv","resolvedPath","NonAspectCorePackageLinkError","exports","moduleDirectory","includes","nmDir","__dirname","substring","indexOf","paths","BitError","moduleId","silent","resolveFrom","resolvedModulePath","NM","slice","lastIndexOf","start","end","split","basename","versionStr","head","folderPath","stat"],"sources":["dependency-linker.ts"],"sourcesContent":["import isBuiltinModule from 'is-builtin-module';\nimport path from 'path';\nimport { uniq, compact, flatten, head, omit } from 'lodash';\nimport { Stats } from 'fs';\nimport fs from 'fs-extra';\nimport resolveFrom from 'resolve-from';\nimport { findCurrentBvmDir } from '@teambit/bvm.path';\nimport { ComponentMap, Component, ComponentID, ComponentMain } from '@teambit/component';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { BitError } from '@teambit/bit-error';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { EnvsMain } from '@teambit/envs';\nimport { AspectLoaderMain, getCoreAspectName, getCoreAspectPackageName, getAspectDir } from '@teambit/aspect-loader';\nimport {\n MainAspectNotLinkable,\n RootDirNotDefined,\n CoreAspectLinkError,\n NonAspectCorePackageLinkError,\n} from './exceptions';\nimport { DependencyResolverMain } from './dependency-resolver.main.runtime';\n\n/**\n * context of the linking process.\n */\nexport type DepLinkerContext = {\n inCapsule?: boolean;\n};\n\nexport type LinkingOptions = {\n rewire?: boolean;\n /**\n * Whether to create link to @teambit/bit in the root node modules\n */\n linkTeambitBit?: boolean;\n /**\n * Whether to create links in the root dir node modules to all core aspects\n */\n linkCoreAspects?: boolean;\n\n linkNestedDepsInNM?: boolean;\n\n /**\n * link to another project, so that project could use components from this workspace.\n * similar to npm/yarn link\n */\n linkToDir?: string;\n\n /**\n * Link peer dependencies of the components to the target project.\n * Peer dependencies should be singletons, so the project should use the same\n * version of the peer dependency as the linked in components.\n */\n includePeers?: boolean;\n\n /**\n * whether link should import objects before linking\n */\n fetchObject?: boolean;\n\n /**\n * Link deps which should be linked to the env\n */\n linkDepsResolvedFromEnv?: boolean;\n};\n\nconst DEFAULT_LINKING_OPTIONS: LinkingOptions = {\n rewire: false,\n linkTeambitBit: true,\n linkCoreAspects: true,\n linkDepsResolvedFromEnv: true,\n linkNestedDepsInNM: true,\n};\n\nexport type LinkDetail = { packageName: string; from: string; to: string };\n\nexport type CoreAspectLinkResult = {\n aspectId: string;\n linkDetail: LinkDetail;\n};\n\nexport type DepsLinkedToEnvResult = {\n componentId: string;\n linksDetail: LinkDetail[];\n};\n\nexport type NestedNMDepsLinksResult = {\n componentId: string;\n linksDetail: LinkDetail[];\n};\n\nexport type LinkToDirResult = {\n componentId: string;\n linksDetail: LinkDetail;\n};\n\nexport type LinkResults = {\n teambitBitLink?: CoreAspectLinkResult;\n coreAspectsLinks?: CoreAspectLinkResult[];\n harmonyLink?: LinkDetail;\n teambitLegacyLink?: LinkDetail;\n resolvedFromEnvLinks?: DepsLinkedToEnvResult[];\n nestedDepsInNmLinks?: NestedNMDepsLinksResult[];\n linkToDirResults?: LinkToDirResult[];\n};\n\ntype NestedModuleFolderEntry = {\n moduleName: string;\n path: string;\n origPath?: string;\n};\n\nexport class DependencyLinker {\n private _currentBitDir: string | null;\n\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private componentAspect: ComponentMain,\n\n private envs: EnvsMain,\n\n private logger: Logger,\n\n private rootDir?: string | PathAbsolute,\n\n private linkingOptions?: LinkingOptions,\n\n private linkingContext: DepLinkerContext = {}\n ) {\n this._currentBitDir = findCurrentBvmDir();\n }\n\n async calculateLinkedDeps(\n rootDir: string | undefined,\n componentDirectoryMap: ComponentMap<string>,\n options: LinkingOptions = {}\n ): Promise<{ linkedRootDeps: Record<string, string>; linkResults: LinkResults }> {\n const linkResults = await this._calculateLinks(rootDir, componentDirectoryMap, options);\n const localLinks: Array<[string, string]> = [];\n if (linkResults.teambitBitLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.teambitBitLink.linkDetail));\n }\n if (linkResults.coreAspectsLinks) {\n linkResults.coreAspectsLinks.forEach((link) => {\n localLinks.push(this.linkDetailToLocalDepEntry(link.linkDetail));\n });\n }\n if (linkResults.harmonyLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.harmonyLink));\n }\n if (linkResults.teambitLegacyLink) {\n localLinks.push(this.linkDetailToLocalDepEntry(linkResults.teambitLegacyLink));\n }\n if (linkResults.resolvedFromEnvLinks) {\n linkResults.resolvedFromEnvLinks.forEach((link) => {\n link.linksDetail.forEach((linkDetail) => {\n localLinks.push(this.linkDetailToLocalDepEntry(linkDetail));\n });\n });\n }\n if (linkResults.linkToDirResults) {\n linkResults.linkToDirResults.forEach((link) => {\n localLinks.push(this.linkDetailToLocalDepEntry(link.linksDetail));\n });\n }\n return {\n linkedRootDeps: Object.fromEntries(localLinks.map(([key, value]) => [key, `link:${value}`])),\n linkResults,\n };\n }\n\n private linkDetailToLocalDepEntry(linkDetail: LinkDetail): [string, string] {\n return [linkDetail.packageName, linkDetail.from];\n }\n\n private async _calculateLinks(\n rootDir: string | undefined,\n componentDirectoryMap: ComponentMap<string>,\n options: LinkingOptions = {}\n ): Promise<LinkResults> {\n const outputMessage = this.linkingContext?.inCapsule\n ? `(capsule) linking components in root dir: ${rootDir || this.rootDir}`\n : 'linking components';\n if (!this.linkingContext?.inCapsule) {\n this.logger.setStatusLine(outputMessage);\n }\n this.logger.debug('linking components with options', omit(options, ['consumer']));\n const startTime = process.hrtime();\n\n let result: LinkResults = {};\n const finalRootDir = rootDir || this.rootDir;\n const linkingOpts = Object.assign({}, DEFAULT_LINKING_OPTIONS, this.linkingOptions || {}, options || {});\n if (!finalRootDir) {\n throw new RootDirNotDefined();\n }\n if (options.linkToDir) {\n const components = componentDirectoryMap.toArray().map(([component]) => component);\n const linkToDirResults = await this.linkToDir(finalRootDir, options.linkToDir, components);\n result.linkToDirResults = linkToDirResults;\n if (options.includePeers) {\n result.linkToDirResults.push(\n ...(await this._getLinksToPeers(componentDirectoryMap, { finalRootDir, linkToDir: options.linkToDir }))\n );\n }\n return result;\n }\n\n // Link deps which should be linked to the env\n if (linkingOpts.linkDepsResolvedFromEnv) {\n result.resolvedFromEnvLinks = await this.linkDepsResolvedFromEnv(componentDirectoryMap);\n }\n if (linkingOpts.linkNestedDepsInNM) {\n result.nestedDepsInNmLinks = this.addSymlinkFromComponentDirNMToWorkspaceDirNM(\n finalRootDir,\n componentDirectoryMap\n );\n }\n\n // We remove the version since it used in order to check if it's core aspects, and the core aspects arrived from aspect loader without versions\n const componentIds: ComponentID[] = [];\n componentDirectoryMap.map((_dir, comp) => {\n componentIds.push(comp.id);\n return undefined;\n });\n result = {\n ...result,\n ...(await this.linkCoreAspectsAndLegacy(finalRootDir, componentIds, linkingOpts)),\n };\n if (!this.linkingContext?.inCapsule) {\n this.logger.consoleSuccess(outputMessage, startTime);\n }\n return result;\n }\n\n async _getLinksToPeers(\n componentDirectoryMap: ComponentMap<string>,\n options: {\n finalRootDir: string;\n linkToDir: string;\n }\n ): Promise<LinkToDirResult[]> {\n const peers = new Set<string>();\n await Promise.all(\n componentDirectoryMap.toArray().map(async ([component]) => {\n const depList = await this.dependencyResolver.getDependencies(component);\n const peerList = depList.byLifecycle('peer');\n peerList.forEach((dependency) => {\n if (dependency.getPackageName) {\n peers.add(dependency.getPackageName());\n }\n });\n })\n );\n const fromDir = path.join(options.finalRootDir, 'node_modules');\n const toDir = path.join(options.linkToDir, 'node_modules');\n return Array.from(peers).map((packageName) => ({\n componentId: packageName,\n linksDetail: {\n packageName,\n from: path.join(fromDir, packageName),\n to: path.join(toDir, packageName),\n },\n }));\n }\n\n async linkCoreAspectsAndLegacy(\n rootDir: string,\n componentIds: ComponentID[] = [],\n options: Pick<LinkingOptions, 'linkTeambitBit' | 'linkCoreAspects'> = {}\n ) {\n const result: LinkResults = {};\n const componentIdsWithoutVersions: string[] = [];\n componentIds.map((id) => {\n componentIdsWithoutVersions.push(id.toString({ ignoreVersion: true }));\n return undefined;\n });\n const linkingOpts = Object.assign({}, DEFAULT_LINKING_OPTIONS, this.linkingOptions || {}, options || {});\n if (linkingOpts.linkTeambitBit && !this.isBitRepoWorkspace(rootDir)) {\n const bitLink = await this.linkBitAspectIfNotExist(\n path.join(rootDir, 'node_modules'),\n componentIdsWithoutVersions\n );\n result.teambitBitLink = bitLink;\n }\n\n let mainAspectPath = result.teambitBitLink?.linkDetail.from;\n if (!mainAspectPath && this.aspectLoader.mainAspect) {\n if (!this.aspectLoader.mainAspect.packageName) {\n throw new MainAspectNotLinkable();\n }\n mainAspectPath = path.join(rootDir, 'node_modules', this.aspectLoader.mainAspect.packageName);\n }\n if (linkingOpts.linkCoreAspects && !this.isBitRepoWorkspace(rootDir)) {\n const hasLocalInstallation = !linkingOpts.linkTeambitBit;\n if (mainAspectPath) {\n result.coreAspectsLinks = await this.linkNonExistingCoreAspects(componentIdsWithoutVersions, {\n targetModulesDir: path.join(rootDir, 'node_modules'),\n mainAspectPath,\n hasLocalInstallation,\n });\n } else {\n result.coreAspectsLinks = [];\n }\n }\n\n if (mainAspectPath) {\n result.teambitLegacyLink = this.linkNonAspectCorePackages(rootDir, 'legacy', mainAspectPath);\n result.harmonyLink = this.linkNonAspectCorePackages(rootDir, 'harmony', mainAspectPath);\n }\n return result;\n }\n\n private async linkToDir(rootDir: string, targetDir: string, components: Component[]): Promise<LinkToDirResult[]> {\n const results: LinkToDirResult[] = components.map((component) => {\n const componentPackageName = componentIdToPackageName(component.state._consumer);\n return {\n componentId: component.id.toString(),\n linksDetail: {\n packageName: componentPackageName,\n from: path.join(rootDir, 'node_modules', componentPackageName),\n to: path.join(targetDir, 'node_modules', componentPackageName),\n },\n };\n });\n return results;\n }\n\n /**\n * Add symlinks from the node_modules in the component's root-dir to the workspace node_modules\n * of the component. e.g.\n * <ws-root>/node_modules/comp1/node_modules/<dep> -> <ws-root>/components/comp1/node_modules/<dep>\n * This is needed because the component is compiled into the dist folder at <ws-root>/node_modules/comp1/dist,\n * so the files in the dist folder need to find the right dependencies of comp1.\n */\n private addSymlinkFromComponentDirNMToWorkspaceDirNM(\n rootDir: string,\n componentDirectoryMap: ComponentMap<string>\n ): NestedNMDepsLinksResult[] {\n const rootNodeModules = path.join(rootDir, 'node_modules');\n const getPackagesFoldersToLink = (dir: string, parent?: string): NestedModuleFolderEntry[] => {\n const folders = fs\n .readdirSync(dir, { withFileTypes: true })\n .filter((dirent) => {\n if (dirent.name.startsWith('.')) {\n return false;\n }\n return dirent.isDirectory() || dirent.isSymbolicLink();\n })\n .map((dirent) => {\n const dirPath = path.join(dir, dirent.name);\n const moduleName = parent ? `${parent}/${dirent.name}` : dirent.name;\n // If we have a folder with a name of built in module (like events)\n // the resolve from will resolve it from the core, so it will return something like 'events'\n // instead of the path.\n // adding a '/' at the end solve this\n const moduleNameToResolve = isBuiltinModule(moduleName) ? `${moduleName}/` : moduleName;\n // This is a scoped package, need to go inside\n if (dirent.name.startsWith('@')) {\n return getPackagesFoldersToLink(dirPath, dirent.name);\n }\n\n if (dirent.isSymbolicLink()) {\n const resolvedModuleFrom = resolveModuleFromDir(dir, moduleNameToResolve);\n if (!resolvedModuleFrom) {\n return {\n moduleName,\n path: dirPath,\n };\n }\n return {\n origPath: dirPath,\n moduleName,\n path: resolveModuleDirFromFile(resolvedModuleFrom, moduleName),\n };\n }\n return {\n moduleName,\n path: dirPath,\n };\n });\n return flatten(folders);\n };\n const linksOfAllComponents = componentDirectoryMap.toArray().map(([component, dir]) => {\n const compDirNM = path.join(dir, 'node_modules');\n if (!fs.existsSync(compDirNM)) return undefined;\n // TODO: support modules with scoped packages (start with @) - we need to make this logic 2 levels\n\n const componentPackageName = componentIdToPackageName(component.state._consumer);\n const innerNMofComponentInNM = path.join(rootNodeModules, componentPackageName);\n // If the folder itself is a symlink, do not try to symlink inside it\n if (isPathSymlink(innerNMofComponentInNM)) {\n return undefined;\n }\n const packagesFoldersToLink: NestedModuleFolderEntry[] = getPackagesFoldersToLink(compDirNM);\n fs.ensureDirSync(innerNMofComponentInNM);\n\n const oneComponentLinks: LinkDetail[] = packagesFoldersToLink.map((folderEntry: NestedModuleFolderEntry) => {\n const linkTarget = path.join(innerNMofComponentInNM, 'node_modules', folderEntry?.moduleName);\n const linkSrc = folderEntry.path;\n // This works as well, consider using it instead\n // const linkSrc = folderEntry.origPath || folderEntry.path;\n const origPath = folderEntry.origPath ? `(${folderEntry.origPath})` : '';\n const linkDetail: LinkDetail = {\n packageName: folderEntry.moduleName,\n from: `${linkSrc} ${origPath}`,\n to: linkTarget,\n };\n this.logger.info(\n `linking nested dependency ${folderEntry.moduleName} for component ${component}. link src: ${linkSrc} link target: ${linkTarget}`\n );\n return linkDetail;\n });\n\n const filteredLinks = compact(oneComponentLinks);\n return {\n componentId: component.id.toString(),\n linksDetail: filteredLinks,\n };\n });\n const filteredLinks = compact(linksOfAllComponents);\n return filteredLinks;\n }\n\n private async linkDepsResolvedFromEnv(\n componentDirectoryMap: ComponentMap<string>\n ): Promise<Array<DepsLinkedToEnvResult>> {\n const componentsNeedLinks: {\n component: Component;\n dir: string;\n env;\n resolvedFromEnv;\n envId?: string;\n envDir?: string;\n }[] = [];\n\n const componentsNeedLinksP = componentDirectoryMap.toArray().map(async ([component, dir]) => {\n const policy = await this.dependencyResolver.getPolicy(component);\n const resolvedFromEnv = policy.getResolvedFromEnv();\n // Nothing should be resolved from env, do nothing\n if (!resolvedFromEnv.length) {\n return;\n }\n const env = this.envs.getEnv(component);\n const componentNeedLink = {\n component,\n dir,\n env,\n resolvedFromEnv,\n };\n componentsNeedLinks.push(componentNeedLink);\n });\n\n await Promise.all(componentsNeedLinksP);\n // Stop if there are not components needs to be linked\n if (!componentsNeedLinks || !componentsNeedLinks.length) return [];\n const envsStringIds = componentsNeedLinks.map((obj) => obj.env.id);\n const uniqEnvIds = uniq(envsStringIds);\n const host = this.componentAspect.getHost();\n const resolvedEnvIds = await host.resolveMultipleComponentIds(uniqEnvIds);\n const resolvedAspects = await host.resolveAspects(undefined, resolvedEnvIds);\n const resolvedAspectsIndex = resolvedAspects.reduce((acc, curr) => {\n if (curr.getId) {\n acc[curr.getId] = curr;\n }\n return acc;\n }, {});\n const allLinksP = componentsNeedLinks.map(async (entry) => {\n const oneComponentLinksP: Array<LinkDetail | undefined> = entry.resolvedFromEnv.entries.map(async (depEntry) => {\n const linkTarget = path.join(entry.dir, 'node_modules', depEntry.dependencyId);\n const envDir = resolvedAspectsIndex[entry.env.id].aspectPath;\n const resolvedModule = resolveModuleFromDir(envDir, depEntry.dependencyId);\n if (!resolvedModule) {\n this.logger.console(`could not resolve ${depEntry.dependencyId} from env directory ${envDir}`);\n return undefined;\n }\n const linkSrc = resolveModuleDirFromFile(resolvedModule, depEntry.dependencyId);\n const linkDetail: LinkDetail = {\n packageName: depEntry.dependencyId,\n from: linkSrc,\n to: linkTarget,\n };\n this.logger.info(\n `linking dependency ${depEntry.dependencyId} from env directory ${envDir}. link src: ${linkSrc} link target: ${linkTarget}`\n );\n\n return linkDetail;\n });\n const oneComponentLinks = await Promise.all(oneComponentLinksP);\n const filteredLinks = compact(oneComponentLinks);\n const depsLinkedToEnvResult: DepsLinkedToEnvResult = {\n componentId: entry.component.id.toString(),\n linksDetail: filteredLinks,\n };\n return depsLinkedToEnvResult;\n });\n return Promise.all(allLinksP);\n }\n\n private async linkBitAspectIfNotExist(\n dir: string,\n componentIds: string[]\n ): Promise<CoreAspectLinkResult | undefined> {\n if (!this.aspectLoader.mainAspect) return undefined;\n const mainAspectId = this.aspectLoader.mainAspect.id;\n const existing = componentIds.find((id) => {\n return id === mainAspectId;\n });\n\n if (existing) {\n return undefined;\n }\n const linkDetail = await this.linkBit(dir);\n if (!linkDetail) return undefined;\n return {\n aspectId: mainAspectId,\n linkDetail,\n };\n }\n\n async linkBit(dir: string): Promise<LinkDetail | undefined> {\n if (!this.aspectLoader.mainAspect.packageName) {\n throw new MainAspectNotLinkable();\n }\n const target = path.join(dir, this.aspectLoader.mainAspect.packageName);\n const shouldSymlink = this.removeSymlinkTarget(target);\n if (!shouldSymlink) return undefined;\n const src = this.aspectLoader.mainAspect.path;\n await fs.ensureDir(path.dirname(target));\n return { packageName: this.aspectLoader.mainAspect.packageName, from: src, to: target };\n }\n\n private async linkNonExistingCoreAspects(\n componentIds: string[],\n opts: {\n targetModulesDir: string;\n mainAspectPath: string;\n hasLocalInstallation?: boolean;\n }\n ): Promise<CoreAspectLinkResult[]> {\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n const filtered = coreAspectsIds.filter((aspectId) => {\n // Remove bit aspect\n if (aspectId === this.aspectLoader.mainAspect?.id) {\n return false;\n }\n // TODO: use the aspect id once default scope is resolved and the component dir map has the id with scope\n const name = getCoreAspectName(aspectId);\n const existing = componentIds.find((componentId) => {\n return componentId === name || componentId === aspectId;\n });\n if (existing) {\n return false;\n }\n return true;\n });\n\n this.logger.debug(`linkNonExistingCoreAspects: linking the following core aspects ${filtered.join()}`);\n\n const results = filtered.map((id) => this.linkCoreAspect(id, opts));\n return compact(results);\n }\n\n private isBitRepoWorkspace(dir: string) {\n // A special condition to not link core aspects in bit workspace itself\n if (this.aspectLoader.mainAspect?.path.startsWith(dir)) {\n return true;\n }\n return false;\n }\n\n private linkCoreAspect(\n id: string,\n {\n targetModulesDir,\n mainAspectPath,\n hasLocalInstallation,\n }: {\n targetModulesDir: string;\n mainAspectPath: string;\n hasLocalInstallation?: boolean;\n }\n ): CoreAspectLinkResult | undefined {\n const name = getCoreAspectName(id);\n const packageName = getCoreAspectPackageName(id);\n let aspectDir = path.join(mainAspectPath, 'dist', name);\n const target = path.join(targetModulesDir, packageName);\n const shouldSymlink = this.removeSymlinkTarget(target, hasLocalInstallation);\n if (!shouldSymlink) return undefined;\n const isAspectDirExist = fs.pathExistsSync(aspectDir);\n if (!isAspectDirExist) {\n this.logger.debug(`linkCoreAspect: aspectDir ${aspectDir} does not exist, linking it to ${target}`);\n aspectDir = getAspectDir(id);\n return { aspectId: id, linkDetail: { packageName, from: aspectDir, to: target } };\n }\n\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(aspectDir);\n const aspectPath = path.resolve(path.join(module.path, '..', '..'));\n this.logger.debug(`linkCoreAspect: linking aspectPath ${aspectPath} to ${target}`);\n return { aspectId: id, linkDetail: { packageName, from: aspectPath, to: target } };\n } catch (err: any) {\n throw new CoreAspectLinkError(id, err);\n }\n }\n\n /**\n * returns true if it's safe to symlink it later.\n */\n private removeSymlinkTarget(targetPath: string, hasLocalInstallation = false): boolean {\n // TODO: change to fs.lstatSync(dest, {throwIfNoEntry: false});\n // TODO: this requires to upgrade node to v15.3.0 to have the throwIfNoEntry property (maybe upgrade fs-extra will work as well)\n // TODO: we don't use fs.pathExistsSync since it will return false in case the dest is a symlink which will result error on write\n let targetStat: Stats | undefined;\n try {\n targetStat = fs.lstatSync(targetPath);\n // eslint-disable-next-line no-empty\n } catch (e: any) {}\n if (targetStat && !hasLocalInstallation) {\n // Do not override links created by other means\n if (!targetStat.isSymbolicLink()) {\n this.logger.debug(`removing link target, target ${targetPath} already exist. skipping it`);\n return false;\n }\n return true;\n }\n return true;\n }\n\n private linkNonAspectCorePackages(rootDir: string, name: string, mainAspectPath: string): LinkDetail | undefined {\n const distDir = path.join(mainAspectPath, 'dist', name);\n\n const packageName = `@teambit/${name}`;\n const target = path.join(rootDir, 'node_modules', packageName);\n if (this._currentBitDir) {\n return { packageName, from: path.join(this._currentBitDir, 'node_modules', packageName), to: target };\n }\n const isDistDirExist = fs.pathExistsSync(distDir);\n if (!isDistDirExist) {\n const newDir = getDistDirForDevEnv(packageName);\n return { packageName, from: newDir, to: target };\n }\n\n try {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const module = require(distDir);\n const resolvedPath = path.resolve(path.join(module.path, '..', '..'));\n return { packageName, from: resolvedPath, to: target };\n } catch (err: any) {\n throw new NonAspectCorePackageLinkError(err, packageName);\n }\n }\n}\n\n/**\n * When running dev env (bd) we need to get the harmony/legacy folder from the node_modules of the clone\n */\nfunction getDistDirForDevEnv(packageName: string): string {\n let moduleDirectory = require.resolve(packageName);\n let dirPath;\n if (moduleDirectory.includes(packageName)) {\n dirPath = path.join(moduleDirectory, '../..'); // to remove the \"index.js\" at the end\n } else {\n // This is usually required for the @teambit/legacy, as we re inside the nm so we can't find it in the other way\n const nmDir = __dirname.substring(0, __dirname.indexOf('@teambit'));\n dirPath = path.join(nmDir, packageName);\n moduleDirectory = require.resolve(packageName, { paths: [nmDir] });\n }\n if (!fs.existsSync(dirPath)) {\n throw new BitError(`unable to find ${packageName} in ${dirPath}`);\n }\n\n return dirPath;\n}\n\n// TODO: extract to new component\nfunction resolveModuleFromDir(fromDir: string, moduleId: string, silent = true): string | undefined {\n if (silent) {\n return resolveFrom.silent(fromDir, moduleId);\n }\n return resolveFrom(fromDir, moduleId);\n}\n\n// TODO: extract to new component\nfunction resolveModuleDirFromFile(resolvedModulePath: string, moduleId: string): string {\n const NM = 'node_modules';\n if (resolvedModulePath.includes(NM)) {\n return path.join(resolvedModulePath.slice(0, resolvedModulePath.lastIndexOf(NM) + NM.length), moduleId);\n }\n\n const [start, end] = resolvedModulePath.split('@');\n if (!end) return path.basename(resolvedModulePath);\n const versionStr = head(end.split('/'));\n return `${start}@${versionStr}`;\n}\n\nfunction isPathSymlink(folderPath: string): boolean | undefined {\n // TODO: change to fs.lstatSync(dest, {throwIfNoEntry: false}); once upgrade fs-extra\n try {\n const stat = fs.lstatSync(folderPath);\n return stat.isSymbolicLink();\n } catch (e: any) {\n return undefined;\n }\n}\n"],"mappings":"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"}
@@ -37,6 +37,7 @@ export declare class WorkspaceManifestFactory {
37
37
  * @returns
38
38
  */
39
39
  private buildComponentDependenciesMap;
40
+ private _getDefaultPeerDependencies;
40
41
  private updateDependenciesVersions;
41
42
  /**
42
43
  * Get the components manifests based on the calculated dedupedDependencies
@@ -176,6 +176,7 @@ class WorkspaceManifestFactory {
176
176
  rootDependencies,
177
177
  rootPolicy
178
178
  }) {
179
+ const packageNames = components.map(component => this.dependencyResolver.getPackageName(component));
179
180
  const buildResultsP = components.map(async component => {
180
181
  const packageName = (0, _componentIdToPackageName().default)(component.state._consumer);
181
182
  let depList = await this.dependencyResolver.getDependencies(component, {
@@ -225,7 +226,8 @@ class WorkspaceManifestFactory {
225
226
  const unresolvedDevMissingRootDeps = (0, _lodash().pickBy)(rootDependencies, (_version, rootPackageName) => {
226
227
  return devMissings.includes(rootPackageName) && !depManifestBeforeFiltering.dependencies[rootPackageName] && !depManifestBeforeFiltering.devDependencies[rootPackageName] && !depManifestBeforeFiltering.peerDependencies[rootPackageName];
227
228
  });
228
- depManifest.dependencies = _objectSpread(_objectSpread(_objectSpread({}, unresolvedRuntimeMissingRootDeps), additionalDeps), depManifest.dependencies);
229
+ const defaultPeerDependencies = await this._getDefaultPeerDependencies(component, packageNames);
230
+ depManifest.dependencies = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultPeerDependencies), unresolvedRuntimeMissingRootDeps), additionalDeps), depManifest.dependencies);
229
231
  depManifest.devDependencies = _objectSpread(_objectSpread({}, unresolvedDevMissingRootDeps), depManifest.devDependencies);
230
232
  return {
231
233
  packageName,
@@ -241,6 +243,11 @@ class WorkspaceManifestFactory {
241
243
  }
242
244
  return result;
243
245
  }
246
+ async _getDefaultPeerDependencies(component, packageNamesFromWorkspace) {
247
+ const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);
248
+ const selfPolicyWithoutLocal = envPolicy.selfPolicy.filter(dep => !packageNamesFromWorkspace.includes(dep.dependencyId));
249
+ return (0, _lodash().fromPairs)(selfPolicyWithoutLocal.toNameVersionTuple());
250
+ }
244
251
  async updateDependenciesVersions(component, rootPolicy, dependencyList) {
245
252
  // If root policy is not passed, it means that installation happens in a capsule
246
253
  // and we only resolve versions from the dependencies, not any policies.
@@ -1 +1 @@
1
- {"version":3,"names":["_componentIssues","data","require","_componentIdToPackageName","_interopRequireDefault","_dependencyResolver","_lodash","_semver","_pMapSeries","_componentPackageVersion","_dependencies","_policy","_componentManifest","_deduping","_updateDependencyVersion","_workspaceManifest","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_CREATE_OPTIONS","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","resolveVersionsFromDependenciesOnly","excludeExtensionsDependencies","WorkspaceManifestFactory","constructor","dependencyResolver","aspectLoader","createFromComponents","name","version","rootPolicy","rootDir","components","options","optsWithDefaults","assign","hasRootComponents","componentDependenciesMap","buildComponentDependenciesMap","dependencyFilterFn","referenceLocalPackages","rootDependencies","toManifest","dependencies","dedupedDependencies","getEmptyDedupedDependencies","dep","dependencyId","dedupeDependencies","dedupePeerDependencies","mapValues","deps","excludeWorkspaceDependencies","componentsManifestsMap","getComponentsManifests","envSelfPeers","getEnvsSelfPeersPolicy","workspaceManifest","WorkspaceManifest","foundEnvs","component","values","envPolicy","peersPolicies","map","policy","selfPolicy","mergedPolicies","VariantPolicy","mergePolices","buildResultsP","packageName","componentIdToPackageName","state","_consumer","depList","getDependencies","includeHidden","additionalDeps","coreAspectIds","getCoreAspectIds","comp","toTypeArray","compIdWithoutVersion","id","split","isExtension","includes","some","c","isEqual","componentId","pkgName","getPackageName","depManifestBeforeFiltering","toDependenciesManifest","filterComponents","filterExtensions","updateDependenciesVersions","depManifest","devMissings","runtimeMissings","getMissingPackages","unresolvedRuntimeMissingRootDeps","pickBy","_version","rootPackageName","devDependencies","peerDependencies","unresolvedDevMissingRootDeps","result","Map","results","Promise","all","currResult","set","dependencyList","getPolicy","updateDependencyVersion","componentsManifests","pMapSeries","has","blankDependencies","get","getVersion","hasVersion","snapToSemver","getComponentEnvPolicy","manifest","ComponentManifest","SemVer","exports","filtered","ComponentDependency","componentsToFilterOut","_dep$getPackageName","depPkgName","existingComponent","find","toString","ignoreVersion","isEqualWithoutVersion","versionSpec","startsWith","_component$state$issu","missingPackagesData","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","devFiles","DependencyResolver","getDevFiles","entries","fileName","packages","uniq","difference"],"sources":["workspace-manifest-factory.ts"],"sourcesContent":["import { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { DependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';\nimport { pickBy, mapValues, uniq, difference } from 'lodash';\nimport { SemVer } from 'semver';\nimport pMapSeries from 'p-map-series';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { ComponentDependency, DependencyList, PackageName } from '../dependencies';\nimport { VariantPolicy, WorkspacePolicy, EnvPolicy } from '../policy';\nimport { DependencyResolverMain } from '../dependency-resolver.main.runtime';\nimport { ComponentsManifestsMap } from '../types';\nimport { ComponentManifest } from './component-manifest';\nimport { dedupeDependencies, DedupedDependencies, getEmptyDedupedDependencies } from './deduping';\nimport { ManifestToJsonOptions, ManifestDependenciesObject, DepObjectValue } from './manifest';\nimport { updateDependencyVersion } from './update-dependency-version';\nimport { WorkspaceManifest } from './workspace-manifest';\n\nexport type DepsFilterFn = (dependencies: DependencyList) => DependencyList;\n\nexport type ComponentDependenciesMap = Map<PackageName, ManifestDependenciesObject>;\nexport interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {\n includeDir?: boolean;\n}\n\nexport type CreateFromComponentsOptions = {\n filterComponentsFromManifests: boolean;\n createManifestForComponentsWithoutDependencies: boolean;\n dedupe?: boolean;\n dependencyFilterFn?: DepsFilterFn;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n hasRootComponents?: boolean;\n excludeExtensionsDependencies?: boolean;\n};\n\nconst DEFAULT_CREATE_OPTIONS: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n resolveVersionsFromDependenciesOnly: false,\n excludeExtensionsDependencies: false,\n};\nexport class WorkspaceManifestFactory {\n constructor(private dependencyResolver: DependencyResolverMain, private aspectLoader: AspectLoaderMain) {}\n\n async createFromComponents(\n name: string,\n version: SemVer,\n rootPolicy: WorkspacePolicy,\n rootDir: string,\n components: Component[],\n options: CreateFromComponentsOptions = DEFAULT_CREATE_OPTIONS\n ): Promise<WorkspaceManifest> {\n // Make sure to take other default if passed options with only one option\n const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);\n const hasRootComponents = options.hasRootComponents ?? this.dependencyResolver.hasRootComponents();\n const componentDependenciesMap: ComponentDependenciesMap = await this.buildComponentDependenciesMap(components, {\n filterComponentsFromManifests: optsWithDefaults.filterComponentsFromManifests,\n rootPolicy: optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,\n dependencyFilterFn: optsWithDefaults.dependencyFilterFn,\n excludeExtensionsDependencies: optsWithDefaults.excludeExtensionsDependencies,\n referenceLocalPackages: optsWithDefaults.referenceLocalPackages && hasRootComponents,\n rootDependencies: hasRootComponents ? rootPolicy.toManifest().dependencies : undefined,\n });\n let dedupedDependencies = getEmptyDedupedDependencies();\n rootPolicy = rootPolicy.filter((dep) => dep.dependencyId !== '@teambit/legacy');\n if (hasRootComponents) {\n const { rootDependencies } = dedupeDependencies(rootPolicy, componentDependenciesMap, {\n dedupePeerDependencies: hasRootComponents,\n });\n // We hoist dependencies in order for the IDE to work.\n // For runtime, the peer dependencies are installed inside:\n // <ws root>/node_module/<comp name>/node_module/<comp name>/node_modules\n dedupedDependencies.rootDependencies = mapValues(\n rootDependencies,\n (deps) => deps && excludeWorkspaceDependencies(deps)\n );\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n } else if (options.dedupe) {\n dedupedDependencies = dedupeDependencies(rootPolicy, componentDependenciesMap);\n } else {\n dedupedDependencies.rootDependencies = rootPolicy.toManifest();\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n }\n const componentsManifestsMap = await this.getComponentsManifests(\n dedupedDependencies,\n components,\n optsWithDefaults.createManifestForComponentsWithoutDependencies\n );\n const envSelfPeers = this.getEnvsSelfPeersPolicy(componentsManifestsMap);\n const workspaceManifest = new WorkspaceManifest(\n name,\n version,\n dedupedDependencies.rootDependencies,\n envSelfPeers,\n rootDir,\n componentsManifestsMap\n );\n return workspaceManifest;\n }\n\n private getEnvsSelfPeersPolicy(componentsManifestsMap: ComponentsManifestsMap) {\n const foundEnvs: EnvPolicy[] = [];\n for (const component of componentsManifestsMap.values()) {\n foundEnvs.push(component.envPolicy);\n }\n const peersPolicies = foundEnvs.map((policy) => policy.selfPolicy);\n // TODO: At the moment we are just merge everything, so in case of conflicts one will be taken\n // TODO: once we have root for each env, we should know to handle it differently\n const mergedPolicies = VariantPolicy.mergePolices(peersPolicies);\n return mergedPolicies;\n }\n\n /**\n * Get the components and build a map with the package name (from the component) as key and the dependencies as values\n *\n * @param {Component[]} components\n * @param {boolean} [filterComponentsFromManifests=true] - filter existing components from the dep graphs\n * @returns\n */\n private async buildComponentDependenciesMap(\n components: Component[],\n {\n dependencyFilterFn,\n filterComponentsFromManifests,\n excludeExtensionsDependencies,\n referenceLocalPackages,\n rootDependencies,\n rootPolicy,\n }: {\n dependencyFilterFn?: DepsFilterFn;\n filterComponentsFromManifests?: boolean;\n excludeExtensionsDependencies?: boolean;\n referenceLocalPackages?: boolean;\n rootDependencies?: Record<string, string>;\n rootPolicy?: WorkspacePolicy;\n }\n ): Promise<ComponentDependenciesMap> {\n const buildResultsP = components.map(async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n let depList = await this.dependencyResolver.getDependencies(component, { includeHidden: true });\n const additionalDeps = {};\n if (referenceLocalPackages) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n for (const comp of depList.toTypeArray('component') as ComponentDependency[]) {\n const [compIdWithoutVersion] = comp.id.split('@');\n if (\n !comp.isExtension &&\n !coreAspectIds.includes(compIdWithoutVersion) &&\n components.some((c) => c.id.isEqual(comp.componentId))\n ) {\n const pkgName = comp.getPackageName();\n if (pkgName !== '@teambit/harmony') {\n additionalDeps[pkgName] = `workspace:*`;\n }\n }\n }\n }\n const depManifestBeforeFiltering = depList.toDependenciesManifest();\n\n if (filterComponentsFromManifests ?? true) {\n depList = filterComponents(depList, components);\n }\n if (excludeExtensionsDependencies) {\n depList = filterExtensions(depList);\n }\n // Remove bit bin from dep list\n depList = depList.filter((dep) => dep.id !== '@teambit/legacy');\n if (dependencyFilterFn) {\n depList = dependencyFilterFn(depList);\n }\n await this.updateDependenciesVersions(component, rootPolicy, depList);\n const depManifest = depList.toDependenciesManifest();\n const { devMissings, runtimeMissings } = await getMissingPackages(component);\n // Only add missing root deps that are not already in the component manifest\n // We are using depManifestBeforeFiltering to support (rare) cases when a dependency is both:\n // a component in the workspace (bitmap) and a dependency in the workspace.jsonc / package.json\n // this happens for the bit repo itself for the @teambit/component-version component\n // in this case we don't want to add that to the manifest when it's missing, because it will be linked from the\n // workspace\n const unresolvedRuntimeMissingRootDeps = pickBy(rootDependencies, (_version, rootPackageName) => {\n return (\n runtimeMissings.includes(rootPackageName) &&\n !depManifestBeforeFiltering.dependencies[rootPackageName] &&\n !depManifestBeforeFiltering.devDependencies[rootPackageName] &&\n !depManifestBeforeFiltering.peerDependencies[rootPackageName]\n );\n });\n // Only add missing root deps that are not already in the component manifest\n const unresolvedDevMissingRootDeps = pickBy(rootDependencies, (_version, rootPackageName) => {\n return (\n devMissings.includes(rootPackageName) &&\n !depManifestBeforeFiltering.dependencies[rootPackageName] &&\n !depManifestBeforeFiltering.devDependencies[rootPackageName] &&\n !depManifestBeforeFiltering.peerDependencies[rootPackageName]\n );\n });\n depManifest.dependencies = {\n ...unresolvedRuntimeMissingRootDeps,\n ...additionalDeps,\n ...depManifest.dependencies,\n };\n\n depManifest.devDependencies = {\n ...unresolvedDevMissingRootDeps,\n ...depManifest.devDependencies,\n };\n\n return { packageName, depManifest };\n });\n const result: ComponentDependenciesMap = new Map();\n\n if (buildResultsP.length) {\n const results = await Promise.all(buildResultsP);\n results.forEach((currResult) => {\n result.set(currResult.packageName, currResult.depManifest);\n });\n }\n\n return result;\n }\n\n private async updateDependenciesVersions(\n component: Component,\n rootPolicy: WorkspacePolicy | undefined,\n dependencyList: DependencyList\n ): Promise<void> {\n // If root policy is not passed, it means that installation happens in a capsule\n // and we only resolve versions from the dependencies, not any policies.\n const mergedPolicies = rootPolicy && (await this.dependencyResolver.getPolicy(component));\n dependencyList.forEach((dep) => {\n updateDependencyVersion(dep, rootPolicy, mergedPolicies);\n });\n }\n\n /**\n * Get the components manifests based on the calculated dedupedDependencies\n *\n * @param {DedupedDependencies} dedupedDependencies\n * @param {Component[]} components\n * @returns {ComponentsManifestsMap}\n */\n async getComponentsManifests(\n dedupedDependencies: DedupedDependencies,\n components: Component[],\n createManifestForComponentsWithoutDependencies = true\n ): Promise<ComponentsManifestsMap> {\n const componentsManifests: ComponentsManifestsMap = new Map();\n // don't use Promise.all, along the road this code might import an env from a remote, which can't be done in parallel.\n // otherwise, it may import the same component multiple times, and if fails, the ref (remote-lane) files may be corrupted.\n await pMapSeries(components, async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n if (\n dedupedDependencies.componentDependenciesMap.has(packageName) ||\n createManifestForComponentsWithoutDependencies\n ) {\n const blankDependencies: ManifestDependenciesObject = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n let dependencies = blankDependencies;\n if (dedupedDependencies.componentDependenciesMap.has(packageName)) {\n dependencies = dedupedDependencies.componentDependenciesMap.get(packageName) as ManifestDependenciesObject;\n }\n\n const getVersion = (): string => {\n if (!component.id.hasVersion()) return '0.0.1-new';\n return snapToSemver(component.id.version as string);\n };\n\n const version = getVersion();\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const manifest = new ComponentManifest(packageName, new SemVer(version), dependencies, component, envPolicy);\n componentsManifests.set(packageName, manifest);\n }\n });\n return componentsManifests;\n }\n}\n\nfunction filterExtensions(dependencyList: DependencyList): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n return true;\n }\n return !dep.isExtension;\n });\n return filtered;\n}\n\nfunction filterComponents(dependencyList: DependencyList, componentsToFilterOut: Component[]): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n const depPkgName = dep.getPackageName?.();\n if (!depPkgName) return true;\n // If the package is already in the workspace as a local component,\n // then we don't want to install that package as a dependency to node_modules.\n // Otherwise, it would rewrite the local component inside the root node_modules that is created by bit link.\n return !componentsToFilterOut.some(\n (component) => depPkgName === componentIdToPackageName(component.state._consumer)\n );\n }\n // Remove dependencies which has no version (they are new in the workspace)\n if (!dep.componentId.hasVersion()) return false;\n const existingComponent = componentsToFilterOut.find((component) => {\n // For new components, the component has no version but the dependency id has version 0.0.1\n if (!component.id.hasVersion()) {\n return component.id.toString() === dep.componentId.toString({ ignoreVersion: true });\n }\n // We are checking against both component.id and component.state._consumer.id\n // Because during tag operation, the component.id has the current version (before the tag)\n // while the component.state._consumer.id has the upcoming version (the version that will be after the tag)\n // The dependency in some cases is already updated to the upcoming version\n return (\n component.id.isEqualWithoutVersion(dep.componentId) ||\n component.state._consumer.id.isEqualWithoutVersion(dep.componentId)\n );\n });\n if (existingComponent) return false;\n return true;\n });\n return filtered;\n}\n\nfunction excludeWorkspaceDependencies(deps: DepObjectValue): DepObjectValue {\n return pickBy(deps, (versionSpec) => !versionSpec.startsWith('file:') && !versionSpec.startsWith('workspace:'));\n}\n\nasync function getMissingPackages(component: Component): Promise<{ devMissings: string[]; runtimeMissings: string[] }> {\n const missingPackagesData = component.state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs)?.data;\n if (!missingPackagesData) return { devMissings: [], runtimeMissings: [] };\n // TODO: this is a hack to get it from the legacy, we should take it from the dev files aspect\n // TODO: the reason we don't is that it will make circular dependency between the dep resolver and the dev files aspect\n const devFiles = await DependencyResolver.getDevFiles(component.state._consumer);\n let devMissings: string[] = [];\n let runtimeMissings: string[] = [];\n Object.entries(missingPackagesData).forEach(([fileName, packages]) => {\n if (devFiles.includes(fileName)) {\n devMissings = uniq([...devMissings, ...packages]);\n } else {\n runtimeMissings = uniq([...runtimeMissings, ...packages]);\n }\n });\n // Remove dev missing which are also runtime missing\n devMissings = difference(devMissings, runtimeMissings);\n return {\n devMissings,\n runtimeMissings,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_componentIssues","data","require","_componentIdToPackageName","_interopRequireDefault","_dependencyResolver","_lodash","_semver","_pMapSeries","_componentPackageVersion","_dependencies","_policy","_componentManifest","_deduping","_updateDependencyVersion","_workspaceManifest","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","DEFAULT_CREATE_OPTIONS","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","dedupe","resolveVersionsFromDependenciesOnly","excludeExtensionsDependencies","WorkspaceManifestFactory","constructor","dependencyResolver","aspectLoader","createFromComponents","name","version","rootPolicy","rootDir","components","options","optsWithDefaults","assign","hasRootComponents","componentDependenciesMap","buildComponentDependenciesMap","dependencyFilterFn","referenceLocalPackages","rootDependencies","toManifest","dependencies","dedupedDependencies","getEmptyDedupedDependencies","dep","dependencyId","dedupeDependencies","dedupePeerDependencies","mapValues","deps","excludeWorkspaceDependencies","componentsManifestsMap","getComponentsManifests","envSelfPeers","getEnvsSelfPeersPolicy","workspaceManifest","WorkspaceManifest","foundEnvs","component","values","envPolicy","peersPolicies","map","policy","selfPolicy","mergedPolicies","VariantPolicy","mergePolices","packageNames","getPackageName","buildResultsP","packageName","componentIdToPackageName","state","_consumer","depList","getDependencies","includeHidden","additionalDeps","coreAspectIds","getCoreAspectIds","comp","toTypeArray","compIdWithoutVersion","id","split","isExtension","includes","some","c","isEqual","componentId","pkgName","depManifestBeforeFiltering","toDependenciesManifest","filterComponents","filterExtensions","updateDependenciesVersions","depManifest","devMissings","runtimeMissings","getMissingPackages","unresolvedRuntimeMissingRootDeps","pickBy","_version","rootPackageName","devDependencies","peerDependencies","unresolvedDevMissingRootDeps","defaultPeerDependencies","_getDefaultPeerDependencies","result","Map","results","Promise","all","currResult","set","packageNamesFromWorkspace","getComponentEnvPolicy","selfPolicyWithoutLocal","fromPairs","toNameVersionTuple","dependencyList","getPolicy","updateDependencyVersion","componentsManifests","pMapSeries","has","blankDependencies","get","getVersion","hasVersion","snapToSemver","manifest","ComponentManifest","SemVer","exports","filtered","ComponentDependency","componentsToFilterOut","_dep$getPackageName","depPkgName","existingComponent","find","toString","ignoreVersion","isEqualWithoutVersion","versionSpec","startsWith","_component$state$issu","missingPackagesData","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","devFiles","DependencyResolver","getDevFiles","entries","fileName","packages","uniq","difference"],"sources":["workspace-manifest-factory.ts"],"sourcesContent":["import { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { DependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';\nimport { fromPairs, pickBy, mapValues, uniq, difference } from 'lodash';\nimport { SemVer } from 'semver';\nimport pMapSeries from 'p-map-series';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { ComponentDependency, DependencyList, PackageName } from '../dependencies';\nimport { VariantPolicy, WorkspacePolicy, EnvPolicy } from '../policy';\nimport { DependencyResolverMain } from '../dependency-resolver.main.runtime';\nimport { ComponentsManifestsMap } from '../types';\nimport { ComponentManifest } from './component-manifest';\nimport { dedupeDependencies, DedupedDependencies, getEmptyDedupedDependencies } from './deduping';\nimport { ManifestToJsonOptions, ManifestDependenciesObject, DepObjectValue } from './manifest';\nimport { updateDependencyVersion } from './update-dependency-version';\nimport { WorkspaceManifest } from './workspace-manifest';\n\nexport type DepsFilterFn = (dependencies: DependencyList) => DependencyList;\n\nexport type ComponentDependenciesMap = Map<PackageName, ManifestDependenciesObject>;\nexport interface WorkspaceManifestToJsonOptions extends ManifestToJsonOptions {\n includeDir?: boolean;\n}\n\nexport type CreateFromComponentsOptions = {\n filterComponentsFromManifests: boolean;\n createManifestForComponentsWithoutDependencies: boolean;\n dedupe?: boolean;\n dependencyFilterFn?: DepsFilterFn;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: boolean;\n hasRootComponents?: boolean;\n excludeExtensionsDependencies?: boolean;\n};\n\nconst DEFAULT_CREATE_OPTIONS: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe: true,\n resolveVersionsFromDependenciesOnly: false,\n excludeExtensionsDependencies: false,\n};\nexport class WorkspaceManifestFactory {\n constructor(private dependencyResolver: DependencyResolverMain, private aspectLoader: AspectLoaderMain) {}\n\n async createFromComponents(\n name: string,\n version: SemVer,\n rootPolicy: WorkspacePolicy,\n rootDir: string,\n components: Component[],\n options: CreateFromComponentsOptions = DEFAULT_CREATE_OPTIONS\n ): Promise<WorkspaceManifest> {\n // Make sure to take other default if passed options with only one option\n const optsWithDefaults = Object.assign({}, DEFAULT_CREATE_OPTIONS, options);\n const hasRootComponents = options.hasRootComponents ?? this.dependencyResolver.hasRootComponents();\n const componentDependenciesMap: ComponentDependenciesMap = await this.buildComponentDependenciesMap(components, {\n filterComponentsFromManifests: optsWithDefaults.filterComponentsFromManifests,\n rootPolicy: optsWithDefaults.resolveVersionsFromDependenciesOnly ? undefined : rootPolicy,\n dependencyFilterFn: optsWithDefaults.dependencyFilterFn,\n excludeExtensionsDependencies: optsWithDefaults.excludeExtensionsDependencies,\n referenceLocalPackages: optsWithDefaults.referenceLocalPackages && hasRootComponents,\n rootDependencies: hasRootComponents ? rootPolicy.toManifest().dependencies : undefined,\n });\n let dedupedDependencies = getEmptyDedupedDependencies();\n rootPolicy = rootPolicy.filter((dep) => dep.dependencyId !== '@teambit/legacy');\n if (hasRootComponents) {\n const { rootDependencies } = dedupeDependencies(rootPolicy, componentDependenciesMap, {\n dedupePeerDependencies: hasRootComponents,\n });\n // We hoist dependencies in order for the IDE to work.\n // For runtime, the peer dependencies are installed inside:\n // <ws root>/node_module/<comp name>/node_module/<comp name>/node_modules\n dedupedDependencies.rootDependencies = mapValues(\n rootDependencies,\n (deps) => deps && excludeWorkspaceDependencies(deps)\n );\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n } else if (options.dedupe) {\n dedupedDependencies = dedupeDependencies(rootPolicy, componentDependenciesMap);\n } else {\n dedupedDependencies.rootDependencies = rootPolicy.toManifest();\n dedupedDependencies.componentDependenciesMap = componentDependenciesMap;\n }\n const componentsManifestsMap = await this.getComponentsManifests(\n dedupedDependencies,\n components,\n optsWithDefaults.createManifestForComponentsWithoutDependencies\n );\n const envSelfPeers = this.getEnvsSelfPeersPolicy(componentsManifestsMap);\n const workspaceManifest = new WorkspaceManifest(\n name,\n version,\n dedupedDependencies.rootDependencies,\n envSelfPeers,\n rootDir,\n componentsManifestsMap\n );\n return workspaceManifest;\n }\n\n private getEnvsSelfPeersPolicy(componentsManifestsMap: ComponentsManifestsMap) {\n const foundEnvs: EnvPolicy[] = [];\n for (const component of componentsManifestsMap.values()) {\n foundEnvs.push(component.envPolicy);\n }\n const peersPolicies = foundEnvs.map((policy) => policy.selfPolicy);\n // TODO: At the moment we are just merge everything, so in case of conflicts one will be taken\n // TODO: once we have root for each env, we should know to handle it differently\n const mergedPolicies = VariantPolicy.mergePolices(peersPolicies);\n return mergedPolicies;\n }\n\n /**\n * Get the components and build a map with the package name (from the component) as key and the dependencies as values\n *\n * @param {Component[]} components\n * @param {boolean} [filterComponentsFromManifests=true] - filter existing components from the dep graphs\n * @returns\n */\n private async buildComponentDependenciesMap(\n components: Component[],\n {\n dependencyFilterFn,\n filterComponentsFromManifests,\n excludeExtensionsDependencies,\n referenceLocalPackages,\n rootDependencies,\n rootPolicy,\n }: {\n dependencyFilterFn?: DepsFilterFn;\n filterComponentsFromManifests?: boolean;\n excludeExtensionsDependencies?: boolean;\n referenceLocalPackages?: boolean;\n rootDependencies?: Record<string, string>;\n rootPolicy?: WorkspacePolicy;\n }\n ): Promise<ComponentDependenciesMap> {\n const packageNames = components.map((component) => this.dependencyResolver.getPackageName(component));\n const buildResultsP = components.map(async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n let depList = await this.dependencyResolver.getDependencies(component, { includeHidden: true });\n const additionalDeps = {};\n if (referenceLocalPackages) {\n const coreAspectIds = this.aspectLoader.getCoreAspectIds();\n for (const comp of depList.toTypeArray('component') as ComponentDependency[]) {\n const [compIdWithoutVersion] = comp.id.split('@');\n if (\n !comp.isExtension &&\n !coreAspectIds.includes(compIdWithoutVersion) &&\n components.some((c) => c.id.isEqual(comp.componentId))\n ) {\n const pkgName = comp.getPackageName();\n if (pkgName !== '@teambit/harmony') {\n additionalDeps[pkgName] = `workspace:*`;\n }\n }\n }\n }\n const depManifestBeforeFiltering = depList.toDependenciesManifest();\n\n if (filterComponentsFromManifests ?? true) {\n depList = filterComponents(depList, components);\n }\n if (excludeExtensionsDependencies) {\n depList = filterExtensions(depList);\n }\n // Remove bit bin from dep list\n depList = depList.filter((dep) => dep.id !== '@teambit/legacy');\n if (dependencyFilterFn) {\n depList = dependencyFilterFn(depList);\n }\n await this.updateDependenciesVersions(component, rootPolicy, depList);\n const depManifest = depList.toDependenciesManifest();\n const { devMissings, runtimeMissings } = await getMissingPackages(component);\n // Only add missing root deps that are not already in the component manifest\n // We are using depManifestBeforeFiltering to support (rare) cases when a dependency is both:\n // a component in the workspace (bitmap) and a dependency in the workspace.jsonc / package.json\n // this happens for the bit repo itself for the @teambit/component-version component\n // in this case we don't want to add that to the manifest when it's missing, because it will be linked from the\n // workspace\n const unresolvedRuntimeMissingRootDeps = pickBy(rootDependencies, (_version, rootPackageName) => {\n return (\n runtimeMissings.includes(rootPackageName) &&\n !depManifestBeforeFiltering.dependencies[rootPackageName] &&\n !depManifestBeforeFiltering.devDependencies[rootPackageName] &&\n !depManifestBeforeFiltering.peerDependencies[rootPackageName]\n );\n });\n // Only add missing root deps that are not already in the component manifest\n const unresolvedDevMissingRootDeps = pickBy(rootDependencies, (_version, rootPackageName) => {\n return (\n devMissings.includes(rootPackageName) &&\n !depManifestBeforeFiltering.dependencies[rootPackageName] &&\n !depManifestBeforeFiltering.devDependencies[rootPackageName] &&\n !depManifestBeforeFiltering.peerDependencies[rootPackageName]\n );\n });\n\n const defaultPeerDependencies = await this._getDefaultPeerDependencies(component, packageNames);\n\n depManifest.dependencies = {\n ...defaultPeerDependencies,\n ...unresolvedRuntimeMissingRootDeps,\n ...additionalDeps,\n ...depManifest.dependencies,\n };\n\n depManifest.devDependencies = {\n ...unresolvedDevMissingRootDeps,\n ...depManifest.devDependencies,\n };\n\n return { packageName, depManifest };\n });\n const result: ComponentDependenciesMap = new Map();\n\n if (buildResultsP.length) {\n const results = await Promise.all(buildResultsP);\n results.forEach((currResult) => {\n result.set(currResult.packageName, currResult.depManifest);\n });\n }\n\n return result;\n }\n\n private async _getDefaultPeerDependencies(\n component: Component,\n packageNamesFromWorkspace: string[]\n ): Promise<Record<string, string>> {\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const selfPolicyWithoutLocal = envPolicy.selfPolicy.filter(\n (dep) => !packageNamesFromWorkspace.includes(dep.dependencyId)\n );\n return fromPairs(selfPolicyWithoutLocal.toNameVersionTuple());\n }\n\n private async updateDependenciesVersions(\n component: Component,\n rootPolicy: WorkspacePolicy | undefined,\n dependencyList: DependencyList\n ): Promise<void> {\n // If root policy is not passed, it means that installation happens in a capsule\n // and we only resolve versions from the dependencies, not any policies.\n const mergedPolicies = rootPolicy && (await this.dependencyResolver.getPolicy(component));\n dependencyList.forEach((dep) => {\n updateDependencyVersion(dep, rootPolicy, mergedPolicies);\n });\n }\n\n /**\n * Get the components manifests based on the calculated dedupedDependencies\n *\n * @param {DedupedDependencies} dedupedDependencies\n * @param {Component[]} components\n * @returns {ComponentsManifestsMap}\n */\n async getComponentsManifests(\n dedupedDependencies: DedupedDependencies,\n components: Component[],\n createManifestForComponentsWithoutDependencies = true\n ): Promise<ComponentsManifestsMap> {\n const componentsManifests: ComponentsManifestsMap = new Map();\n // don't use Promise.all, along the road this code might import an env from a remote, which can't be done in parallel.\n // otherwise, it may import the same component multiple times, and if fails, the ref (remote-lane) files may be corrupted.\n await pMapSeries(components, async (component) => {\n const packageName = componentIdToPackageName(component.state._consumer);\n if (\n dedupedDependencies.componentDependenciesMap.has(packageName) ||\n createManifestForComponentsWithoutDependencies\n ) {\n const blankDependencies: ManifestDependenciesObject = {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n };\n let dependencies = blankDependencies;\n if (dedupedDependencies.componentDependenciesMap.has(packageName)) {\n dependencies = dedupedDependencies.componentDependenciesMap.get(packageName) as ManifestDependenciesObject;\n }\n\n const getVersion = (): string => {\n if (!component.id.hasVersion()) return '0.0.1-new';\n return snapToSemver(component.id.version as string);\n };\n\n const version = getVersion();\n const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);\n const manifest = new ComponentManifest(packageName, new SemVer(version), dependencies, component, envPolicy);\n componentsManifests.set(packageName, manifest);\n }\n });\n return componentsManifests;\n }\n}\n\nfunction filterExtensions(dependencyList: DependencyList): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n return true;\n }\n return !dep.isExtension;\n });\n return filtered;\n}\n\nfunction filterComponents(dependencyList: DependencyList, componentsToFilterOut: Component[]): DependencyList {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n const depPkgName = dep.getPackageName?.();\n if (!depPkgName) return true;\n // If the package is already in the workspace as a local component,\n // then we don't want to install that package as a dependency to node_modules.\n // Otherwise, it would rewrite the local component inside the root node_modules that is created by bit link.\n return !componentsToFilterOut.some(\n (component) => depPkgName === componentIdToPackageName(component.state._consumer)\n );\n }\n // Remove dependencies which has no version (they are new in the workspace)\n if (!dep.componentId.hasVersion()) return false;\n const existingComponent = componentsToFilterOut.find((component) => {\n // For new components, the component has no version but the dependency id has version 0.0.1\n if (!component.id.hasVersion()) {\n return component.id.toString() === dep.componentId.toString({ ignoreVersion: true });\n }\n // We are checking against both component.id and component.state._consumer.id\n // Because during tag operation, the component.id has the current version (before the tag)\n // while the component.state._consumer.id has the upcoming version (the version that will be after the tag)\n // The dependency in some cases is already updated to the upcoming version\n return (\n component.id.isEqualWithoutVersion(dep.componentId) ||\n component.state._consumer.id.isEqualWithoutVersion(dep.componentId)\n );\n });\n if (existingComponent) return false;\n return true;\n });\n return filtered;\n}\n\nfunction excludeWorkspaceDependencies(deps: DepObjectValue): DepObjectValue {\n return pickBy(deps, (versionSpec) => !versionSpec.startsWith('file:') && !versionSpec.startsWith('workspace:'));\n}\n\nasync function getMissingPackages(component: Component): Promise<{ devMissings: string[]; runtimeMissings: string[] }> {\n const missingPackagesData = component.state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs)?.data;\n if (!missingPackagesData) return { devMissings: [], runtimeMissings: [] };\n // TODO: this is a hack to get it from the legacy, we should take it from the dev files aspect\n // TODO: the reason we don't is that it will make circular dependency between the dep resolver and the dev files aspect\n const devFiles = await DependencyResolver.getDevFiles(component.state._consumer);\n let devMissings: string[] = [];\n let runtimeMissings: string[] = [];\n Object.entries(missingPackagesData).forEach(([fileName, packages]) => {\n if (devFiles.includes(fileName)) {\n devMissings = uniq([...devMissings, ...packages]);\n } else {\n runtimeMissings = uniq([...runtimeMissings, ...packages]);\n }\n });\n // Remove dev missing which are also runtime missing\n devMissings = difference(devMissings, runtimeMissings);\n return {\n devMissings,\n runtimeMissings,\n };\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.38/dist/dependency-resolver.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.38/dist/dependency-resolver.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.40/dist/dependency-resolver.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.dependencies_dependency-resolver@1.0.40/dist/dependency-resolver.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -3,7 +3,7 @@ import { IssuesClasses } from '@teambit/component-issues';
3
3
  import { Component } from '@teambit/component';
4
4
  import componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';
5
5
  import { DependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';
6
- import { pickBy, mapValues, uniq, difference } from 'lodash';
6
+ import { fromPairs, pickBy, mapValues, uniq, difference } from 'lodash';
7
7
  import { SemVer } from 'semver';
8
8
  import pMapSeries from 'p-map-series';
9
9
  import { snapToSemver } from '@teambit/component-package-version';
@@ -138,6 +138,7 @@ export class WorkspaceManifestFactory {
138
138
  rootPolicy?: WorkspacePolicy;
139
139
  }
140
140
  ): Promise<ComponentDependenciesMap> {
141
+ const packageNames = components.map((component) => this.dependencyResolver.getPackageName(component));
141
142
  const buildResultsP = components.map(async (component) => {
142
143
  const packageName = componentIdToPackageName(component.state._consumer);
143
144
  let depList = await this.dependencyResolver.getDependencies(component, { includeHidden: true });
@@ -197,7 +198,11 @@ export class WorkspaceManifestFactory {
197
198
  !depManifestBeforeFiltering.peerDependencies[rootPackageName]
198
199
  );
199
200
  });
201
+
202
+ const defaultPeerDependencies = await this._getDefaultPeerDependencies(component, packageNames);
203
+
200
204
  depManifest.dependencies = {
205
+ ...defaultPeerDependencies,
201
206
  ...unresolvedRuntimeMissingRootDeps,
202
207
  ...additionalDeps,
203
208
  ...depManifest.dependencies,
@@ -222,6 +227,17 @@ export class WorkspaceManifestFactory {
222
227
  return result;
223
228
  }
224
229
 
230
+ private async _getDefaultPeerDependencies(
231
+ component: Component,
232
+ packageNamesFromWorkspace: string[]
233
+ ): Promise<Record<string, string>> {
234
+ const envPolicy = await this.dependencyResolver.getComponentEnvPolicy(component);
235
+ const selfPolicyWithoutLocal = envPolicy.selfPolicy.filter(
236
+ (dep) => !packageNamesFromWorkspace.includes(dep.dependencyId)
237
+ );
238
+ return fromPairs(selfPolicyWithoutLocal.toNameVersionTuple());
239
+ }
240
+
225
241
  private async updateDependenciesVersions(
226
242
  component: Component,
227
243
  rootPolicy: WorkspacePolicy | undefined,
package/package.json CHANGED
@@ -1,54 +1,55 @@
1
1
  {
2
2
  "name": "@teambit/dependency-resolver",
3
- "version": "1.0.38",
3
+ "version": "1.0.40",
4
4
  "homepage": "https://bit.cloud/teambit/dependencies/dependency-resolver",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.dependencies",
8
8
  "name": "dependency-resolver",
9
- "version": "1.0.38"
9
+ "version": "1.0.40"
10
10
  },
11
11
  "dependencies": {
12
12
  "cli-highlight": "2.1.9",
13
13
  "ink": "3.2.0",
14
- "@pnpm/types": "9.3.0",
14
+ "@pnpm/types": "9.4.0",
15
15
  "fs-extra": "10.0.0",
16
- "lodash": "4.17.21",
17
16
  "p-map-series": "2.1.0",
18
17
  "is-builtin-module": "3.1.0",
18
+ "lodash": "4.17.21",
19
19
  "resolve-from": "5.0.0",
20
20
  "graphql-tag": "2.12.1",
21
21
  "multimatch": "5.0.0",
22
22
  "semver": "7.5.2",
23
23
  "p-limit": "3.1.0",
24
24
  "execa": "2.1.0",
25
- "@pnpm/core": "13.0.2",
25
+ "@pnpm/core": "13.1.5",
26
26
  "ramda": "0.27.1",
27
27
  "semver-intersect": "1.4.0",
28
28
  "semver-range-intersect": "0.3.1",
29
29
  "core-js": "^3.0.0",
30
30
  "@babel/runtime": "7.20.0",
31
31
  "@teambit/bit-error": "0.0.404",
32
+ "@teambit/bvm.path": "0.1.2",
32
33
  "@teambit/harmony": "0.4.6",
33
34
  "@pnpm/network.ca-file": "1.0.2",
34
35
  "@teambit/bit-roots": "0.0.133",
35
36
  "@teambit/component-id": "1.1.1",
36
- "@teambit/component-issues": "0.0.101",
37
37
  "@teambit/legacy-bit-id": "1.0.4",
38
38
  "@teambit/component-version": "1.0.3",
39
- "@teambit/component": "1.0.38",
40
- "@teambit/envs": "1.0.38",
41
- "@teambit/aspect-loader": "1.0.38",
42
- "@teambit/logger": "0.0.898",
43
- "@teambit/graphql": "1.0.38",
44
- "@teambit/bit": "1.3.7",
45
- "@teambit/cli": "0.0.805",
46
- "@teambit/config": "0.0.821",
47
- "@teambit/global-config": "0.0.807",
48
- "@teambit/harmony.modules.requireable-component": "0.0.493",
49
- "@teambit/snapping": "1.0.38",
50
- "@teambit/isolator": "1.0.38",
51
- "@teambit/component-package-version": "0.0.428"
39
+ "@teambit/component": "1.0.40",
40
+ "@teambit/envs": "1.0.40",
41
+ "@teambit/aspect-loader": "1.0.40",
42
+ "@teambit/logger": "0.0.899",
43
+ "@teambit/graphql": "1.0.40",
44
+ "@teambit/bit": "1.3.9",
45
+ "@teambit/cli": "0.0.806",
46
+ "@teambit/config": "0.0.822",
47
+ "@teambit/global-config": "0.0.808",
48
+ "@teambit/harmony.modules.requireable-component": "0.0.494",
49
+ "@teambit/snapping": "1.0.40",
50
+ "@teambit/isolator": "1.0.40",
51
+ "@teambit/component-package-version": "0.0.429",
52
+ "@teambit/component-issues": "0.0.102"
52
53
  },
53
54
  "devDependencies": {
54
55
  "@types/react": "^17.0.8",
@@ -65,7 +66,7 @@
65
66
  "@teambit/dependencies.aspect-docs.dependency-resolver": "0.0.171"
66
67
  },
67
68
  "peerDependencies": {
68
- "@teambit/legacy": "1.0.586",
69
+ "@teambit/legacy": "1.0.587",
69
70
  "react": "^16.8.0 || ^17.0.0",
70
71
  "react-dom": "^16.8.0 || ^17.0.0"
71
72
  },