@teambit/dependency-resolver 1.0.481 → 1.0.482
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.
- package/artifacts/__bit_junit.xml +32 -32
- package/artifacts/preview/teambit_dependencies_dependency_resolver-preview.js +1 -1
- package/artifacts/schema.json +3466 -2220
- package/dist/dependency-installer.d.ts +2 -0
- package/dist/dependency-installer.js +2 -1
- package/dist/dependency-installer.js.map +1 -1
- package/dist/dependency-resolver.main.runtime.d.ts +10 -0
- package/dist/dependency-resolver.main.runtime.js +39 -2
- package/dist/dependency-resolver.main.runtime.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/package-manager.d.ts +12 -1
- package/dist/package-manager.js.map +1 -1
- package/dist/{preview-1733023182747.js → preview-1733069682179.js} +2 -2
- package/package.json +22 -21
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AspectLoaderMain } from '@teambit/aspect-loader';
|
|
2
2
|
import { ComponentMap } from '@teambit/component';
|
|
3
|
+
import { type DependenciesGraph } from '@teambit/legacy/dist/scope/models/dependencies-graph';
|
|
3
4
|
import { Logger } from '@teambit/logger';
|
|
4
5
|
import { PathAbsolute } from '@teambit/toolbox.path.path';
|
|
5
6
|
import { PeerDependencyRules, ProjectManifest } from '@pnpm/types';
|
|
@@ -24,6 +25,7 @@ export type InstallOptions = {
|
|
|
24
25
|
forceTeambitHarmonyLink?: boolean;
|
|
25
26
|
excludeExtensionsDependencies?: boolean;
|
|
26
27
|
dedupeInjectedDeps?: boolean;
|
|
28
|
+
dependenciesGraph?: DependenciesGraph;
|
|
27
29
|
};
|
|
28
30
|
export type GetComponentManifestsOptions = {
|
|
29
31
|
componentDirectoryMap: ComponentMap<string>;
|
|
@@ -144,7 +144,8 @@ class DependencyInstaller {
|
|
|
144
144
|
hidePackageManagerOutput,
|
|
145
145
|
neverBuiltDependencies: ['core-js', ...(this.neverBuiltDependencies ?? [])],
|
|
146
146
|
preferOffline: this.preferOffline,
|
|
147
|
-
dedupeInjectedDeps: options.dedupeInjectedDeps
|
|
147
|
+
dedupeInjectedDeps: options.dedupeInjectedDeps,
|
|
148
|
+
dependenciesGraph: options.dependenciesGraph
|
|
148
149
|
}, packageManagerOptions);
|
|
149
150
|
if (options.installTeambitBit) {
|
|
150
151
|
if (!mainAspect.version || !mainAspect.packageName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_path","_fsExtra","_exceptions","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","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","args","runPrePostSubscribers","mainAspect","linkedDependencies","JSON","parse","stringify","directDeps","Set","values","manifest","depName","dependencies","devDependencies","add","name","has","forceTeambitHarmonyLink","entries","dir","linkedDeps","isJsonCmd","process","argv","includes","hidePackageManagerOutput","Boolean","inCapsule","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","dedupeInjectedDeps","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","err","debug","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","installResult","consoleSuccess","pruneModules","dependencyFilterFn","hasRootComponents","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","undefined","components","toArray","reduce","acc","component","getPackageName","componentsManifestsMap","get","toJson","copyPeerToRuntime","promises","map","nmDir","path","join","fs","remove","Promise","all","subscribers","type","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 { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/toolbox.path.path';\nimport { PeerDependencyRules, ProjectManifest } from '@pnpm/types';\nimport { MainAspectNotInstallable, RootDirNotDefined } from './exceptions';\nimport { PackageManager, PackageManagerInstallOptions, PackageImportMethod } from './package-manager';\nimport { WorkspacePolicy } from './policy';\nimport { CreateFromComponentsOptions } from './manifest';\nimport { DependencyResolverMain } from './dependency-resolver.main.runtime';\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 dedupeInjectedDeps?: 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 isJsonCmd = process.argv.includes('--json') || process.argv.includes('-j');\n const hidePackageManagerOutput =\n Boolean(this.installingContext.inCapsule && process.env.VERBOSE_PM_OUTPUT !== 'true') || isJsonCmd;\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 dedupeInjectedDeps: options.dedupeInjectedDeps,\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 try {\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 } catch (err) {\n this.logger.debug('failed to remove node_modules directories from components', err);\n // A failure to remove the node_modules directory should not cause the process to fail\n }\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_path","_fsExtra","_exceptions","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","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","args","runPrePostSubscribers","mainAspect","linkedDependencies","JSON","parse","stringify","directDeps","Set","values","manifest","depName","dependencies","devDependencies","add","name","has","forceTeambitHarmonyLink","entries","dir","linkedDeps","isJsonCmd","process","argv","includes","hidePackageManagerOutput","Boolean","inCapsule","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","dedupeInjectedDeps","dependenciesGraph","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","err","debug","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","installResult","consoleSuccess","pruneModules","dependencyFilterFn","hasRootComponents","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","undefined","components","toArray","reduce","acc","component","getPackageName","componentsManifestsMap","get","toJson","copyPeerToRuntime","promises","map","nmDir","path","join","fs","remove","Promise","all","subscribers","type","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 { type DependenciesGraph } from '@teambit/legacy/dist/scope/models/dependencies-graph';\nimport { Logger } from '@teambit/logger';\nimport { PathAbsolute } from '@teambit/toolbox.path.path';\nimport { PeerDependencyRules, ProjectManifest } from '@pnpm/types';\nimport { MainAspectNotInstallable, RootDirNotDefined } from './exceptions';\nimport { PackageManager, PackageManagerInstallOptions, PackageImportMethod } from './package-manager';\nimport { WorkspacePolicy } from './policy';\nimport { CreateFromComponentsOptions } from './manifest';\nimport { DependencyResolverMain } from './dependency-resolver.main.runtime';\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 dedupeInjectedDeps?: boolean;\n dependenciesGraph?: DependenciesGraph;\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 isJsonCmd = process.argv.includes('--json') || process.argv.includes('-j');\n const hidePackageManagerOutput =\n Boolean(this.installingContext.inCapsule && process.env.VERBOSE_PM_OUTPUT !== 'true') || isJsonCmd;\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 dedupeInjectedDeps: options.dedupeInjectedDeps,\n dependenciesGraph: options.dependenciesGraph,\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 try {\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 } catch (err) {\n this.logger.debug('failed to remove node_modules directories from components', err);\n // A failure to remove the node_modules directory should not cause the process to fail\n }\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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","ignoreList":[]}
|
|
@@ -219,6 +219,7 @@ export declare class DependencyResolverMain {
|
|
|
219
219
|
* get the package name of a component.
|
|
220
220
|
*/
|
|
221
221
|
getPackageName(component: Component): string;
|
|
222
|
+
createComponentIdByPkgNameMap(components: Component[]): Map<string, ComponentID>;
|
|
222
223
|
getDepResolverData(component: Component): DependencyResolverComponentData | undefined;
|
|
223
224
|
calcPackageName(component: Component): string;
|
|
224
225
|
getRuntimeModulePath(component: Component, options: {
|
|
@@ -226,11 +227,20 @@ export declare class DependencyResolverMain {
|
|
|
226
227
|
rootComponentsPath: string;
|
|
227
228
|
isInWorkspace?: boolean;
|
|
228
229
|
}): string;
|
|
230
|
+
getComponentDirInBitRoots(component: Component, options: {
|
|
231
|
+
workspacePath: string;
|
|
232
|
+
rootComponentsPath: string;
|
|
233
|
+
}): string;
|
|
229
234
|
/**
|
|
230
235
|
* returns the package path in the /node_modules/ folder
|
|
231
236
|
* In case you call this in order to run the code from the path, please refer to the `getRuntimeModulePath` API
|
|
232
237
|
*/
|
|
233
238
|
getModulePath(component: Component): string;
|
|
239
|
+
addDependenciesGraph(component: Component, componentRelativeDir: string, options: {
|
|
240
|
+
rootDir: string;
|
|
241
|
+
rootComponentsPath?: string;
|
|
242
|
+
componentIdByPkgName: Map<string, ComponentID>;
|
|
243
|
+
}): Promise<void>;
|
|
234
244
|
/**
|
|
235
245
|
* get a component dependency installer.
|
|
236
246
|
*/
|
|
@@ -30,6 +30,13 @@ function _pMapSeries() {
|
|
|
30
30
|
};
|
|
31
31
|
return data;
|
|
32
32
|
}
|
|
33
|
+
function _harmonyModules() {
|
|
34
|
+
const data = require("@teambit/harmony.modules.feature-toggle");
|
|
35
|
+
_harmonyModules = function () {
|
|
36
|
+
return data;
|
|
37
|
+
};
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
33
40
|
function _cli() {
|
|
34
41
|
const data = require("@teambit/cli");
|
|
35
42
|
_cli = function () {
|
|
@@ -625,6 +632,13 @@ class DependencyResolverMain {
|
|
|
625
632
|
getPackageName(component) {
|
|
626
633
|
return this.getDepResolverData(component)?.packageName ?? this.calcPackageName(component);
|
|
627
634
|
}
|
|
635
|
+
createComponentIdByPkgNameMap(components) {
|
|
636
|
+
const componentIdByPkgName = new Map();
|
|
637
|
+
for (const component of components) {
|
|
638
|
+
componentIdByPkgName.set(this.getPackageName(component), component.id);
|
|
639
|
+
}
|
|
640
|
+
return componentIdByPkgName;
|
|
641
|
+
}
|
|
628
642
|
getDepResolverData(component) {
|
|
629
643
|
return component.state.aspects.get(_dependencyResolver().DependencyResolverAspect.id)?.data;
|
|
630
644
|
}
|
|
@@ -653,11 +667,15 @@ class DependencyResolverMain {
|
|
|
653
667
|
// in that case we return the dir from the root node_modules
|
|
654
668
|
return this.getModulePath(component);
|
|
655
669
|
}
|
|
656
|
-
const
|
|
657
|
-
const dirInEnvRoot = (0, _path().join)(getRelativeRootComponentDir(envId), 'node_modules', pkgName);
|
|
670
|
+
const dirInEnvRoot = (0, _path().join)(this.getComponentDirInBitRoots(component, options), 'node_modules', pkgName);
|
|
658
671
|
if (_fsExtra().default.pathExistsSync(dirInEnvRoot)) return dirInEnvRoot;
|
|
659
672
|
return this.getModulePath(component);
|
|
660
673
|
}
|
|
674
|
+
getComponentDirInBitRoots(component, options) {
|
|
675
|
+
const envId = this.envs.getEnvId(component);
|
|
676
|
+
const rootComponentsRelativePath = (0, _path().relative)(options.workspacePath, options.rootComponentsPath);
|
|
677
|
+
return (0, _workspace().getRootComponentDir)(rootComponentsRelativePath ?? '', envId);
|
|
678
|
+
}
|
|
661
679
|
|
|
662
680
|
/**
|
|
663
681
|
* returns the package path in the /node_modules/ folder
|
|
@@ -668,6 +686,25 @@ class DependencyResolverMain {
|
|
|
668
686
|
const relativePath = (0, _path().join)('node_modules', pkgName);
|
|
669
687
|
return relativePath;
|
|
670
688
|
}
|
|
689
|
+
async addDependenciesGraph(component, componentRelativeDir, options) {
|
|
690
|
+
try {
|
|
691
|
+
component.state._consumer.dependenciesGraph = await this.getPackageManager()?.calcDependenciesGraph?.({
|
|
692
|
+
rootDir: options.rootDir,
|
|
693
|
+
componentRootDir: options.rootComponentsPath ? this.getComponentDirInBitRoots(component, {
|
|
694
|
+
workspacePath: options.rootDir,
|
|
695
|
+
rootComponentsPath: options.rootComponentsPath
|
|
696
|
+
}) : undefined,
|
|
697
|
+
pkgName: this.getPackageName(component),
|
|
698
|
+
componentRelativeDir,
|
|
699
|
+
componentIdByPkgName: options.componentIdByPkgName
|
|
700
|
+
});
|
|
701
|
+
} catch (err) {
|
|
702
|
+
// If the dependencies graph feature is disabled, we ignore the error
|
|
703
|
+
if ((0, _harmonyModules().isFeatureEnabled)(_harmonyModules().DEPS_GRAPH)) {
|
|
704
|
+
throw err;
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
671
708
|
|
|
672
709
|
/**
|
|
673
710
|
* get a component dependency installer.
|