@teambit/dependency-resolver 0.0.1065 → 0.0.1067
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/dist/dependency-installer.d.ts +1 -0
- package/dist/dependency-installer.js +3 -0
- package/dist/dependency-installer.js.map +1 -1
- package/dist/dependency-resolver.main.runtime.d.ts +7 -0
- package/dist/dependency-resolver.main.runtime.js +57 -27
- package/dist/dependency-resolver.main.runtime.js.map +1 -1
- package/dist/manifest/workspace-manifest-factory.js +52 -27
- package/dist/manifest/workspace-manifest-factory.js.map +1 -1
- package/dist/{preview-1685272045621.js → preview-1685418569798.js} +2 -2
- package/dist/types.d.ts +0 -1
- package/dist/types.js.map +1 -1
- package/manifest/workspace-manifest-factory.ts +55 -28
- package/package-tar/teambit-dependency-resolver-0.0.1067.tgz +0 -0
- package/package.json +16 -17
- package/package-tar/teambit-dependency-resolver-0.0.1065.tgz +0 -0
|
@@ -20,6 +20,7 @@ export declare type InstallOptions = {
|
|
|
20
20
|
packageManagerConfigRootDir?: string;
|
|
21
21
|
resolveVersionsFromDependenciesOnly?: boolean;
|
|
22
22
|
linkedDependencies?: Record<string, Record<string, string>>;
|
|
23
|
+
forceTeambitHarmonyLink?: boolean;
|
|
23
24
|
};
|
|
24
25
|
export declare type GetComponentManifestsOptions = {
|
|
25
26
|
componentDirectoryMap: ComponentMap<string>;
|
|
@@ -127,6 +127,9 @@ class DependencyInstaller {
|
|
|
127
127
|
delete linkedDependencies[finalRootDir][manifest.name];
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
+
if (options.forceTeambitHarmonyLink) {
|
|
131
|
+
delete manifests[finalRootDir].dependencies['@teambit/harmony'];
|
|
132
|
+
}
|
|
130
133
|
}
|
|
131
134
|
Object.entries(linkedDependencies).forEach(([dir, linkedDeps]) => {
|
|
132
135
|
if (!manifests[dir]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_PM_INSTALL_OPTIONS","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","installPeersFromEnvs","DEFAULT_INSTALL_OPTIONS","installTeambitBit","DependencyInstaller","constructor","packageManager","aspectLoader","logger","dependencyResolver","rootDir","cacheRootDir","preInstallSubscriberList","postInstallSubscriberList","nodeLinker","packageImportMethod","sideEffectsCache","nodeVersion","engineStrict","peerDependencyRules","neverBuiltDependencies","installingContext","install","rootPolicy","componentDirectoryMap","options","packageManagerOptions","finalRootDir","RootDirNotDefined","manifests","getComponentManifests","resolveVersionsFromDependenciesOnly","referenceLocalPackages","rootComponentsForCapsules","installComponents","args","runPrePostSubscribers","mainAspect","linkedDependencies","JSON","parse","stringify","directDeps","Set","Object","values","forEach","manifest","depName","keys","dependencies","devDependencies","add","name","has","entries","dir","linkedDeps","hidePackageManagerOutput","inCapsule","process","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","value","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","installResult","consoleSuccess","pruneModules","dependencyFilterFn","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","undefined","components","toArray","reduce","acc","component","getPackageName","componentsManifestsMap","get","toJson","copyPeerToRuntime","defaultPeerDependencies","fromPairs","envPolicy","selfPolicy","toNameVersionTuple","promises","map","nmDir","path","join","fs","remove","Promise","all","subscribers","type","mapSeries","subscriber"],"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};\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};\n\nexport type GetComponentManifestsOptions = {\n componentDirectoryMap: ComponentMap<string>;\n rootPolicy: WorkspacePolicy;\n rootDir: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: 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 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 });\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 }\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 ...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 }: GetComponentManifestsOptions) {\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe,\n dependencyFilterFn,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\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 acc[dir].defaultPeerDependencies = fromPairs(manifest.envPolicy.selfPolicy.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":["DEFAULT_PM_INSTALL_OPTIONS","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","installPeersFromEnvs","DEFAULT_INSTALL_OPTIONS","installTeambitBit","DependencyInstaller","constructor","packageManager","aspectLoader","logger","dependencyResolver","rootDir","cacheRootDir","preInstallSubscriberList","postInstallSubscriberList","nodeLinker","packageImportMethod","sideEffectsCache","nodeVersion","engineStrict","peerDependencyRules","neverBuiltDependencies","installingContext","install","rootPolicy","componentDirectoryMap","options","packageManagerOptions","finalRootDir","RootDirNotDefined","manifests","getComponentManifests","resolveVersionsFromDependenciesOnly","referenceLocalPackages","rootComponentsForCapsules","installComponents","args","runPrePostSubscribers","mainAspect","linkedDependencies","JSON","parse","stringify","directDeps","Set","Object","values","forEach","manifest","depName","keys","dependencies","devDependencies","add","name","has","forceTeambitHarmonyLink","entries","dir","linkedDeps","hidePackageManagerOutput","inCapsule","process","env","VERBOSE_PM_OUTPUT","calculatedPmOpts","packageManagerConfigRootDir","version","packageName","MainAspectNotInstallable","dependencyId","lifecycleType","value","rootComponents","keepExistingModulesDir","cleanCompsNodeModules","messagePrefix","messageSuffix","message","setStatusLine","startTime","hrtime","installResult","consoleSuccess","pruneModules","dependencyFilterFn","filterComponentsFromManifests","createManifestForComponentsWithoutDependencies","workspaceManifest","getWorkspaceManifest","undefined","components","toArray","reduce","acc","component","getPackageName","componentsManifestsMap","get","toJson","copyPeerToRuntime","defaultPeerDependencies","fromPairs","envPolicy","selfPolicy","toNameVersionTuple","promises","map","nmDir","path","join","fs","remove","Promise","all","subscribers","type","mapSeries","subscriber"],"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};\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};\n\nexport type GetComponentManifestsOptions = {\n componentDirectoryMap: ComponentMap<string>;\n rootPolicy: WorkspacePolicy;\n rootDir: string;\n resolveVersionsFromDependenciesOnly?: boolean;\n referenceLocalPackages?: 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 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 });\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) {\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 ...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 }: GetComponentManifestsOptions) {\n const options: CreateFromComponentsOptions = {\n filterComponentsFromManifests: true,\n createManifestForComponentsWithoutDependencies: true,\n dedupe,\n dependencyFilterFn,\n resolveVersionsFromDependenciesOnly,\n referenceLocalPackages,\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 acc[dir].defaultPeerDependencies = fromPairs(manifest.envPolicy.selfPolicy.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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"}
|
|
@@ -195,6 +195,11 @@ export declare class DependencyResolverMain {
|
|
|
195
195
|
* component aspect.
|
|
196
196
|
*/
|
|
197
197
|
componentAspect: ComponentMain, packageManagerSlot: PackageManagerSlot, dependencyFactorySlot: DependencyFactorySlot, preInstallSlot: PreInstallSlot, postInstallSlot: PostInstallSlot);
|
|
198
|
+
/**
|
|
199
|
+
* Save list of envs that doesn't contains env.jsonc file
|
|
200
|
+
* this is used to show warning / instuctions to the user
|
|
201
|
+
*/
|
|
202
|
+
envsWithoutManifest: Set<string>;
|
|
198
203
|
/**
|
|
199
204
|
* This function is a temporary workaround for installation in capsules with pnpm.
|
|
200
205
|
* Currently pnpm breaks the root node_modules inside the capsule because it removes deps from it.
|
|
@@ -207,6 +212,7 @@ export declare class DependencyResolverMain {
|
|
|
207
212
|
*/
|
|
208
213
|
supportsDedupingOnExistingRoot(): boolean;
|
|
209
214
|
hasRootComponents(): boolean;
|
|
215
|
+
hasHarmonyInRootPolicy(): boolean;
|
|
210
216
|
nodeLinker(): 'hoisted' | 'isolated';
|
|
211
217
|
linkCoreAspects(): boolean;
|
|
212
218
|
/**
|
|
@@ -354,6 +360,7 @@ export declare class DependencyResolverMain {
|
|
|
354
360
|
getEnvPolicyFromEnvId(id: ComponentID, legacyFiles?: SourceFile[]): Promise<EnvPolicy | undefined>;
|
|
355
361
|
getEnvPolicyFromEnvLegacyId(id: BitId, legacyFiles?: SourceFile[]): Promise<EnvPolicy | undefined>;
|
|
356
362
|
getComponentEnvPolicy(component: Component): Promise<EnvPolicy>;
|
|
363
|
+
getEnvManifest(envComponent?: Component, legacyFiles?: SourceFile[]): EnvPolicy | undefined;
|
|
357
364
|
private getEnvPolicyFromFile;
|
|
358
365
|
getComponentEnvPolicyFromEnv(env: DependenciesEnv): Promise<EnvPolicy>;
|
|
359
366
|
getComponentEnvPolicyFromEnvDefinition(envDef: EnvDefinition): Promise<EnvPolicy>;
|
|
@@ -37,13 +37,6 @@ function _pMapSeries() {
|
|
|
37
37
|
};
|
|
38
38
|
return data;
|
|
39
39
|
}
|
|
40
|
-
function _commentJson() {
|
|
41
|
-
const data = require("comment-json");
|
|
42
|
-
_commentJson = function () {
|
|
43
|
-
return data;
|
|
44
|
-
};
|
|
45
|
-
return data;
|
|
46
|
-
}
|
|
47
40
|
function _cli() {
|
|
48
41
|
const data = require("@teambit/cli");
|
|
49
42
|
_cli = function () {
|
|
@@ -373,8 +366,14 @@ class DependencyResolverMain {
|
|
|
373
366
|
this.dependencyFactorySlot = dependencyFactorySlot;
|
|
374
367
|
this.preInstallSlot = preInstallSlot;
|
|
375
368
|
this.postInstallSlot = postInstallSlot;
|
|
369
|
+
(0, _defineProperty2().default)(this, "envsWithoutManifest", new Set());
|
|
376
370
|
}
|
|
377
371
|
|
|
372
|
+
/**
|
|
373
|
+
* Save list of envs that doesn't contains env.jsonc file
|
|
374
|
+
* this is used to show warning / instuctions to the user
|
|
375
|
+
*/
|
|
376
|
+
|
|
378
377
|
/**
|
|
379
378
|
* This function is a temporary workaround for installation in capsules with pnpm.
|
|
380
379
|
* Currently pnpm breaks the root node_modules inside the capsule because it removes deps from it.
|
|
@@ -393,6 +392,12 @@ class DependencyResolverMain {
|
|
|
393
392
|
hasRootComponents() {
|
|
394
393
|
return Boolean(this.config.rootComponents);
|
|
395
394
|
}
|
|
395
|
+
hasHarmonyInRootPolicy() {
|
|
396
|
+
const rootPolicy = this.getWorkspacePolicyFromConfig();
|
|
397
|
+
return rootPolicy.entries.some(({
|
|
398
|
+
dependencyId
|
|
399
|
+
}) => dependencyId === '@teambit/harmony');
|
|
400
|
+
}
|
|
396
401
|
nodeLinker() {
|
|
397
402
|
if (this.config.nodeLinker) return this.config.nodeLinker;
|
|
398
403
|
if (this.config.packageManager === 'teambit.dependencies/pnpm') return 'isolated';
|
|
@@ -600,8 +605,19 @@ class DependencyResolverMain {
|
|
|
600
605
|
return modulePath;
|
|
601
606
|
}
|
|
602
607
|
const pkgName = this.getPackageName(component);
|
|
608
|
+
const selfRootDir = (0, _bitRoots().getRelativeRootComponentDir)(component.id.toString());
|
|
609
|
+
// In case the component is it's own root we want to load it from it's own root folder
|
|
610
|
+
if (_fsExtra().default.pathExistsSync(selfRootDir)) {
|
|
611
|
+
const innerDir = (0, _path().join)(selfRootDir, 'node_modules', pkgName);
|
|
612
|
+
if (_fsExtra().default.pathExistsSync(innerDir)) return innerDir;
|
|
613
|
+
// sometime for the env itself we don't have the env package in the env root dir, because it was hoisted
|
|
614
|
+
// in that case we return the dir from the root node_modules
|
|
615
|
+
return this.getModulePath(component);
|
|
616
|
+
}
|
|
603
617
|
const envId = this.envs.getEnvId(component);
|
|
604
|
-
|
|
618
|
+
const dirInEnvRoot = (0, _path().join)((0, _bitRoots().getRelativeRootComponentDir)(envId), 'node_modules', pkgName);
|
|
619
|
+
if (_fsExtra().default.pathExistsSync(dirInEnvRoot)) return dirInEnvRoot;
|
|
620
|
+
return this.getModulePath(component);
|
|
605
621
|
}
|
|
606
622
|
|
|
607
623
|
/**
|
|
@@ -929,10 +945,23 @@ class DependencyResolverMain {
|
|
|
929
945
|
registerRootPolicy(policy) {
|
|
930
946
|
return this.rootPolicyRegistry.register(policy);
|
|
931
947
|
}
|
|
948
|
+
|
|
949
|
+
// async getComponentEnvPolicyFromExtension(configuredExtensions: ExtensionDataList): Promise<EnvPolicy> {
|
|
950
|
+
// const env = this.envs.calculateEnvFromExtensions(configuredExtensions);
|
|
951
|
+
// const fromFile = await this.getEnvPolicyFromFile(env.id);
|
|
952
|
+
// if (fromFile) return fromFile;
|
|
953
|
+
// return this.getComponentEnvPolicyFromEnv(env.env);
|
|
954
|
+
// }
|
|
955
|
+
|
|
932
956
|
async getComponentEnvPolicyFromExtension(configuredExtensions) {
|
|
933
|
-
const
|
|
934
|
-
|
|
957
|
+
const envId = await this.envs.calculateEnvIdFromExtensions(configuredExtensions);
|
|
958
|
+
if (this.envs.isCoreEnv(envId)) {
|
|
959
|
+
const env = await this.envs.calculateEnvFromExtensions(configuredExtensions);
|
|
960
|
+
return this.getComponentEnvPolicyFromEnv(env.env);
|
|
961
|
+
}
|
|
962
|
+
const fromFile = await this.getEnvPolicyFromFile(envId);
|
|
935
963
|
if (fromFile) return fromFile;
|
|
964
|
+
const env = await this.envs.calculateEnvFromExtensions(configuredExtensions);
|
|
936
965
|
return this.getComponentEnvPolicyFromEnv(env.env);
|
|
937
966
|
}
|
|
938
967
|
async getEnvPolicyFromEnvId(id, legacyFiles) {
|
|
@@ -948,31 +977,32 @@ class DependencyResolverMain {
|
|
|
948
977
|
}
|
|
949
978
|
async getComponentEnvPolicy(component) {
|
|
950
979
|
// const envComponent = await this.envs.getEnvComponent(component);
|
|
951
|
-
const
|
|
980
|
+
const envId = await this.envs.calculateEnvId(component);
|
|
981
|
+
if (this.envs.isCoreEnv(envId.toStringWithoutVersion())) {
|
|
982
|
+
const env = this.envs.getEnv(component).env;
|
|
983
|
+
return this.getComponentEnvPolicyFromEnv(env);
|
|
984
|
+
}
|
|
985
|
+
const fromFile = await this.getEnvPolicyFromFile(envId.toString());
|
|
952
986
|
if (fromFile) return fromFile;
|
|
987
|
+
this.envsWithoutManifest.add(envId.toString());
|
|
953
988
|
const env = this.envs.getEnv(component).env;
|
|
954
989
|
return this.getComponentEnvPolicyFromEnv(env);
|
|
955
990
|
}
|
|
991
|
+
getEnvManifest(envComponent, legacyFiles) {
|
|
992
|
+
const object = this.envs.getEnvManifest(envComponent, legacyFiles);
|
|
993
|
+
const policy = object === null || object === void 0 ? void 0 : object.policy;
|
|
994
|
+
if (!policy) return undefined;
|
|
995
|
+
const allPoliciesFromEnv = _envPolicy().EnvPolicy.fromConfigObject(policy);
|
|
996
|
+
return allPoliciesFromEnv;
|
|
997
|
+
}
|
|
956
998
|
async getEnvPolicyFromFile(envId, legacyFiles) {
|
|
957
999
|
const isCoreEnv = this.envs.isCoreEnv(envId);
|
|
958
1000
|
if (isCoreEnv) return undefined;
|
|
959
|
-
let envJson;
|
|
960
1001
|
if (legacyFiles) {
|
|
961
|
-
|
|
962
|
-
return file.relative === 'env.jsonc' || file.relative === 'env.json';
|
|
963
|
-
});
|
|
964
|
-
} else {
|
|
965
|
-
const envComponent = await this.envs.getEnvComponentByEnvId(envId, envId);
|
|
966
|
-
envJson = envComponent.filesystem.files.find(file => {
|
|
967
|
-
return file.relative === 'env.jsonc' || file.relative === 'env.json';
|
|
968
|
-
});
|
|
1002
|
+
return this.getEnvManifest(undefined, legacyFiles);
|
|
969
1003
|
}
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
const policy = object === null || object === void 0 ? void 0 : object.policy;
|
|
973
|
-
if (!policy) return undefined;
|
|
974
|
-
const allPoliciesFromEnv = _envPolicy().EnvPolicy.fromConfigObject(policy);
|
|
975
|
-
return allPoliciesFromEnv;
|
|
1004
|
+
const envComponent = await this.envs.getEnvComponentByEnvId(envId, envId);
|
|
1005
|
+
return this.getEnvManifest(envComponent);
|
|
976
1006
|
}
|
|
977
1007
|
async getComponentEnvPolicyFromEnv(env) {
|
|
978
1008
|
if (env.getDependencies && typeof env.getDependencies === 'function') {
|
|
@@ -1102,7 +1132,7 @@ class DependencyResolverMain {
|
|
|
1102
1132
|
* Do not use this function for other purposes.
|
|
1103
1133
|
*/
|
|
1104
1134
|
async calcComponentEnvDepDetectors(extensions) {
|
|
1105
|
-
const envDef = this.envs.calculateEnvFromExtensions(extensions);
|
|
1135
|
+
const envDef = await this.envs.calculateEnvFromExtensions(extensions);
|
|
1106
1136
|
const depEnv = envDef.env;
|
|
1107
1137
|
if (typeof (depEnv === null || depEnv === void 0 ? void 0 : depEnv.getDepDetectors) === 'function') {
|
|
1108
1138
|
return depEnv.getDepDetectors();
|