@teambit/install 1.0.468 → 1.0.470

Sign up to get free protection for your applications and to get access to all the features.
@@ -570,6 +570,7 @@ class InstallMain {
570
570
  * @returns
571
571
  */
572
572
  async reloadMovedEnvs() {
573
+ this.logger.debug('reloadMovedEnvs');
573
574
  const allEnvs = this.envs.getAllRegisteredEnvs();
574
575
  const movedEnvs = await (0, _pFilter().default)(allEnvs, async env => {
575
576
  if (!env.__path) return false;
@@ -1234,14 +1235,14 @@ class InstallMain {
1234
1235
  }
1235
1236
  static async provider([dependencyResolver, workspace, loggerExt, variants, cli, compiler, issues, envs, app, ipcEvents, generator, wsConfigFiles, aspectLoader], _, [preLinkSlot, preInstallSlot, postInstallSlot], harmony) {
1236
1237
  const logger = loggerExt.createLogger(_install().InstallAspect.id);
1238
+ const installExt = new InstallMain(dependencyResolver, logger, workspace, variants, compiler, envs, wsConfigFiles, aspectLoader, app, generator, preLinkSlot, preInstallSlot, postInstallSlot, ipcEvents, harmony);
1237
1239
  ipcEvents.registerGotEventSlot(async eventName => {
1238
1240
  if (eventName !== 'onPostInstall') return;
1239
1241
  logger.debug('got onPostInstall event, clear workspace and all components cache');
1240
1242
  await workspace.clearCache();
1241
- workspace.clearAllComponentsCache();
1242
1243
  await (0, _pMapSeries().default)(postInstallSlot.values(), fn => fn());
1244
+ await installExt.reloadMovedEnvs();
1243
1245
  });
1244
- const installExt = new InstallMain(dependencyResolver, logger, workspace, variants, compiler, envs, wsConfigFiles, aspectLoader, app, generator, preLinkSlot, preInstallSlot, postInstallSlot, ipcEvents, harmony);
1245
1246
  if (issues) {
1246
1247
  issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));
1247
1248
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_pFilter","data","_interopRequireDefault","require","_fsExtra","_interopRequireWildcard","_path","_workspace","_compiler","_cli","_chalk","_workspace2","_lodash","_generator","_pkgModules","_application","_variants","_component","_dependenciesFs","_pMapSeries","_harmony","_workspaceModules","_envs","_ipcEvents","_componentIssues","_dependencyResolver","_workspaceConfigFiles","_logger","_issues","_componentPackageVersion","_aspectLoader","_objectHash","_exceptions","_install","_pickOutdatedPkgs","_link","_install2","_uninstall","_update","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","InstallMain","constructor","dependencyResolver","logger","workspace","variants","compiler","envs","wsConfigFiles","aspectLoader","app","generator","preLinkSlot","preInstallSlot","postInstallSlot","ipcEvents","harmony","Set","install","packages","options","inInstallContext","_addPackages","addMissingPeers","compDirMap","getComponentsDirectory","mergedRootPolicy","getWorkspacePolicy","depsFilterFn","generateFilterFnForDepsFromLocalRemote","pmInstallOptions","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","dependencyFilterFn","overrides","config","hoistPatterns","packageImportMethod","missingPeers","getMissingPeerDependencies","path","missingPeerPackages","entries","map","peerName","range","console","pMapSeries","values","fn","res","_installModules","publishIpcEvent","registerPreLink","register","registerPreInstall","registerPostInstall","onComponentCreate","generateResults","installOptions","runInstall","installMissing","ids","generateResult","dependencies","concat","installMissingDependencies","isApp","isEnv","id","nonLoadedEnvs","clearComponentCache","component","envId","calculateEnvId","toString","isLoaded","isEnvRegistered","addMissingDeps","skipIfExisting","writeConfigFiles","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","resolvedPackages","Promise","all","newWorkspacePolicyEntries","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","overridePrefix","savePrefix","wantedRange","dependencyId","addToRootPolicy","updateExisting","persistConfig","pm","getPackageManager","name","chalk","cyan","getPackageManagerName","hasRootComponents","installer","getInstaller","calcManifestsOpts","nodeLinker","linkOpts","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","isLegacy","linkedRootDeps","calculateLinks","componentsAndManifests","current","_getComponentsManifestsAndRootPolicy","autoInstallPeers","includeOptionalDeps","neverBuiltDependencies","hoistInjectedDependencies","rootComponents","updateAll","optimizeReportForNonTerminal","lockfileOnly","prevManifests","linkedDependencies","installCycle","hasMissingLocalComponents","forceTeambitHarmonyLink","hasHarmonyInRootPolicy","hasComponentsFromWorkspaceInMissingDeps","dependenciesChanged","installComponents","manifests","componentDirectoryMap","installTeambitBit","cacheCleared","linkCodemods","oldNonLoadedEnvs","setOldNonLoadedEnvs","reloadMovedEnvs","reloadNonLoadedEnvs","shouldClearCacheOnInstall","compile","compileStartTime","process","hrtime","compileOutputMessage","setStatusLine","clearCache","compileOnWorkspace","initiator","CompilationInitiator","Install","consoleSuccess","tryWriteConfigFiles","recurringInstall","add","manifestsHash","skipClearFailedToLoadEnvs","_getComponentsManifests","skipPrune","pruneModules","getFailedToLoadEnvs","allEnvs","getAllRegisteredEnvs","movedEnvs","pFilter","env","__path","regularPathExists","pathExists","resolvedPathExists","__resolvedPath","idsToLoad","componentIdsToLoad","ComponentID","fromString","reloadEnvs","aspects","resolveAspects","undefined","requestedOnly","excludeCore","throwOnError","aspectDef","reloadAspects","groups","groupAspectsToLoad","group","reloadOneAspectsGroup","envOfAspect","loadedPlugins","compact","localPath","aspectPath","plugins","getPlugins","load","MainRuntime","plugin","runtime","getRuntime","provider","groupBy","hasId","workspaceSubGroups","regroupEnvsIdsFromTheList","comps","noComp","scope","otherAspects","envsOfAspects","idWithoutVersion","toStringWithoutVersion","addConfiguredAspectsToWorkspacePolicy","addConfiguredGeneratorEnvsToWorkspacePolicy","rootDeps","devDependencies","omit","manifest","addedNewPkgs","_addMissingPackagesToRootPolicy","mergedRootPolicyWithMissingDeps","shouldWrite","isWorkspaceConfigWriteEnabled","err","clean","silent","throw","consoleFailure","message","rootPolicy","aspectsPackages","getConfiguredUserAspectsPackages","externalsOnly","aspectsPackage","configuredEnvs","getConfiguredEnvs","resolvedEnvs","envIdStr","isCoreEnv","parsedId","resolveComponentId","inWs","importAndGetMany","idWithVersion","resolveEnvIdWithPotentialVersionForConfig","split","getPackageName","_getMissingPackagesWithoutRootDeps","_getAllMissingPackages","pkg","list","uniq","comp","state","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","d","missingPackages","flat","dependencyInstaller","getComponentManifests","referenceLocalPackages","rootManifests","_getRootManifests","_updateRootDirs","envsWithoutManifest","Array","from","intersection","getOldNonLoadedEnvs","rootDirs","existingDirs","fs","readdir","rootComponentsPath","dirName","dirPath","includes","remove","code","mkdir","recursive","nonRootManifests","workspaceDeps","getWorkspaceDepsOfBitRoots","workspaceDepsMeta","reduce","acc","depName","injected","envManifests","_getEnvManifests","appManifests","_getAppManifests","_getAllUsedEnvIds","fromEntries","getRootComponentDirByRootId","_getEnvDependencies","_getEnvPackage","dependenciesMeta","installConfig","hoistingLimits","policy","getEnvPolicyFromEnvId","selfPolicy","force","envComponent","getEnvComponentByEnvId","finalVersion","snapToSemver","listAppsComponents","appPkgName","appManifest","find","Map","components","updateDependencies","componentPolicies","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","outdatedPkgs","getOutdatedPkgsFromPolicies","patterns","forceVersionBump","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","_updateComponentsConfig","_reloadConsumer","addDuplicateComponentAndPackageIssue","workspacePolicy","_consumer","removed","pkgName","componentIdToPackageName","found","getOrCreate","DuplicateComponentAndPackage","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","DependencyResolverAspect","variantPattern","extensions","addSpecificComponentConfig","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","updateVariantPolicies","setExtension","overrideExisting","uninstallDependencies","removeFromRootPolicy","linker","getLinker","linkingOptions","linkResults","calculateLinkedDeps","workspaceRes","legacyResults","legacyLinkResults","linksResults","legacyLinkCodemodResults","codemodResults","linkToBitRoots","_linkAllComponentsToBitRoots","bitIds","toArray","linkToNodeModulesWithCodemod","rewire","link","createLinks","linkToDir","avoidHardLink","skipIfSymlinkValid","apps","dir","mkdirp","linkPkgsToRootComponents","workspacePath","rootComponentId","getRootComponentDir","remotes","_legacyRemotes","reg","getRegistries","packageScopes","scopes","dependencyList","filtered","dep","ComponentDependency","isHub","some","startsWith","getMany","loadSeedersAsAspects","ComponentMap","as","componentDir","onRootAspectAddedSubscriber","_aspectId","onAspectsResolveSubscriber","aspectComponents","needLink","needInstall","promises","aspectComponent","aspectIdStr","visitedAspects","packagePath","getComponentPackagePath","exists","onComponentChange","loggerExt","cli","_","createLogger","InstallAspect","registerGotEventSlot","eventName","clearAllComponentsCache","installExt","registerAddComponentsIssues","bind","registerOnComponentCreate","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","registerOnRootAspectAdded","registerOnComponentChange","exports","Slot","withType","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CompilerAspect","IssuesAspect","EnvsAspect","ApplicationAspect","IpcEventsAspect","GeneratorAspect","WorkspaceConfigFilesAspect","AspectLoaderAspect","missingDeps","issue","addRuntime","_default","depsByProjectPaths","mapValues","hash"],"sources":["install.main.runtime.ts"],"sourcesContent":["import pFilter from 'p-filter';\nimport fs, { pathExists } from 'fs-extra';\nimport path from 'path';\nimport { getRootComponentDir, linkPkgsToRootComponents } from '@teambit/workspace.root-components';\nimport { CompilerMain, CompilerAspect, CompilationInitiator } from '@teambit/compiler';\nimport { CLIMain, CommandList, CLIAspect, MainRuntime } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceAspect, Workspace, ComponentConfigFile } from '@teambit/workspace';\nimport { compact, mapValues, omit, uniq, intersection, groupBy } from 'lodash';\nimport { ProjectManifest } from '@pnpm/types';\nimport { GenerateResult, GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { ApplicationMain, ApplicationAspect } from '@teambit/application';\nimport { VariantsMain, Patterns, VariantsAspect } from '@teambit/variants';\nimport { Component, ComponentID, ComponentMap } from '@teambit/component';\nimport { createLinks } from '@teambit/dependencies.fs.linked-dependencies';\nimport pMapSeries from 'p-map-series';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport {\n CodemodResult,\n linkToNodeModulesWithCodemod,\n NodeModulesLinksResult,\n} from '@teambit/workspace.modules.node-modules-linker';\nimport { EnvsMain, EnvsAspect } from '@teambit/envs';\nimport { IpcEventsAspect, IpcEventsMain } from '@teambit/ipc-events';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport {\n GetComponentManifestsOptions,\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyInstaller,\n DependencyResolverAspect,\n PackageManagerInstallOptions,\n ComponentDependency,\n VariantPolicyConfigObject,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n MergedOutdatedPkg,\n WorkspacePolicy,\n UpdatedComponent,\n} from '@teambit/dependency-resolver';\nimport { WorkspaceConfigFilesAspect, WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { AspectDefinition, AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport hash from 'object-hash';\nimport { DependencyTypeNotSupportedInPolicy } from './exceptions';\nimport { InstallAspect } from './install.aspect';\nimport { pickOutdatedPkgs } from './pick-outdated-pkgs';\nimport { LinkCommand } from './link';\nimport InstallCmd from './install.cmd';\nimport UninstallCmd from './uninstall.cmd';\nimport UpdateCmd from './update.cmd';\n\nexport type WorkspaceLinkOptions = LinkingOptions & {\n rootPolicy?: WorkspacePolicy;\n linkToBitRoots?: boolean;\n includePeers?: boolean;\n};\n\nexport type WorkspaceLinkResults = {\n legacyLinkResults?: NodeModulesLinksResult[];\n legacyLinkCodemodResults?: CodemodResult[];\n} & LinkResults;\n\nexport type WorkspaceInstallOptions = {\n addMissingDeps?: boolean;\n addMissingPeers?: boolean;\n lifecycleType?: WorkspaceDependencyLifecycleType;\n dedupe?: boolean;\n import?: boolean;\n copyPeerToRuntimeOnRoot?: boolean;\n copyPeerToRuntimeOnComponents?: boolean;\n updateExisting?: boolean;\n skipIfExisting?: boolean;\n savePrefix?: string;\n compile?: boolean;\n includeOptionalDeps?: boolean;\n updateAll?: boolean;\n recurringInstall?: boolean;\n optimizeReportForNonTerminal?: boolean;\n lockfileOnly?: boolean;\n writeConfigFiles?: boolean;\n skipPrune?: boolean;\n};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\n\ntype PreLink = (linkOpts?: WorkspaceLinkOptions) => Promise<void>;\ntype PreInstall = (installOpts?: WorkspaceInstallOptions) => Promise<void>;\ntype PostInstall = () => Promise<void>;\n\ntype PreLinkSlot = SlotRegistry<PreLink>;\ntype PreInstallSlot = SlotRegistry<PreInstall>;\ntype PostInstallSlot = SlotRegistry<PostInstall>;\n\ntype GetComponentsAndManifestsOptions = Omit<\n GetComponentManifestsOptions,\n 'componentDirectoryMap' | 'rootPolicy' | 'rootDir'\n> &\n Pick<PackageManagerInstallOptions, 'nodeLinker'>;\n\ntype ReloadAspectGroup = { comps: boolean; workspace: boolean; envOfAspect?: boolean; aspects: AspectDefinition[] };\nexport class InstallMain {\n private visitedAspects: Set<string> = new Set();\n\n private oldNonLoadedEnvs: string[] = [];\n\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private logger: Logger,\n\n private workspace: Workspace,\n\n private variants: VariantsMain,\n\n private compiler: CompilerMain,\n\n private envs: EnvsMain,\n\n private wsConfigFiles: WorkspaceConfigFilesMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private app: ApplicationMain,\n\n private generator: GeneratorMain,\n\n private preLinkSlot: PreLinkSlot,\n\n private preInstallSlot: PreInstallSlot,\n\n private postInstallSlot: PostInstallSlot,\n\n private ipcEvents: IpcEventsMain,\n\n private harmony: Harmony\n ) {}\n /**\n * Install dependencies for all components in the workspace\n *\n * @returns\n * @memberof Workspace\n */\n async install(packages?: string[], options?: WorkspaceInstallOptions): Promise<ComponentMap<string>> {\n // set workspace in install context\n this.workspace.inInstallContext = true;\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n if (options?.addMissingPeers) {\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n hoistPatterns: this.dependencyResolver.config.hoistPatterns,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n };\n const missingPeers = await this.dependencyResolver.getMissingPeerDependencies(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n pmInstallOptions\n );\n if (missingPeers) {\n const missingPeerPackages = Object.entries(missingPeers).map(([peerName, range]) => `${peerName}@${range}`);\n await this._addPackages(missingPeerPackages, options);\n } else {\n this.logger.console('No missing peer dependencies found.');\n }\n }\n await pMapSeries(this.preInstallSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const res = await this._installModules(options);\n this.workspace.inInstallContext = false;\n\n await this.ipcEvents.publishIpcEvent('onPostInstall');\n\n return res;\n }\n\n registerPreLink(fn: PreLink) {\n this.preLinkSlot.register(fn);\n }\n\n registerPreInstall(fn: PreInstall) {\n this.preInstallSlot.register(fn);\n }\n\n registerPostInstall(fn: PostInstall) {\n this.postInstallSlot.register(fn);\n }\n\n async onComponentCreate(generateResults: GenerateResult[], installOptions?: Partial<WorkspaceInstallOptions>) {\n this.workspace.inInstallContext = true;\n let runInstall = false;\n let packages: string[] = [];\n let installMissing = false;\n\n const ids = generateResults.map((generateResult) => {\n if (generateResult.dependencies && generateResult.dependencies.length) {\n packages = packages.concat(generateResult.dependencies);\n runInstall = true;\n }\n if (generateResult.installMissingDependencies) {\n installMissing = true;\n runInstall = true;\n }\n if (generateResult.isApp || generateResult.isEnv) {\n runInstall = true;\n }\n return generateResult.id;\n });\n const nonLoadedEnvs: string[] = [];\n\n ids.map((id) => this.workspace.clearComponentCache(id));\n await pMapSeries(ids, async (id) => {\n const component = await this.workspace.get(id);\n // const envId = await this.envs.getEnvId(component);\n const envId = (await this.envs.calculateEnvId(component)).toString();\n const isLoaded = this.envs.isEnvRegistered(envId);\n if (!isLoaded) {\n nonLoadedEnvs.push(envId);\n }\n return component;\n });\n if (nonLoadedEnvs.length) {\n runInstall = true;\n }\n if (!runInstall) {\n this.workspace.inInstallContext = false;\n return;\n }\n // this.logger.console(\n // `the following environments are not installed yet: ${nonLoadedEnvs.join(', ')}. installing them now...`\n // );\n await this.install(packages, {\n ...installOptions,\n addMissingDeps: installMissing,\n skipIfExisting: true,\n writeConfigFiles: false,\n // skipPrune: true,\n });\n }\n\n private async _addPackages(packages: string[], options?: WorkspaceInstallOptions) {\n if ((options?.lifecycleType as string) === 'dev') {\n throw new DependencyTypeNotSupportedInPolicy(options?.lifecycleType as string);\n }\n this.logger.debug(`installing the following packages: ${packages.join()}`);\n const resolver = await this.dependencyResolver.getVersionResolver();\n const resolvedPackagesP = packages.map((packageName) =>\n resolver.resolveRemoteVersion(packageName, {\n rootDir: this.workspace.path,\n })\n );\n const resolvedPackages = await Promise.all(resolvedPackagesP);\n const newWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n resolvedPackages.forEach((resolvedPackage) => {\n if (resolvedPackage.version) {\n const versionWithPrefix = this.dependencyResolver.getVersionWithSavePrefix({\n version: resolvedPackage.version,\n overridePrefix: options?.savePrefix,\n wantedRange: resolvedPackage.wantedRange,\n });\n newWorkspacePolicyEntries.push({\n dependencyId: resolvedPackage.packageName,\n value: {\n version: versionWithPrefix,\n },\n lifecycleType: options?.lifecycleType || 'runtime',\n });\n }\n });\n this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: options?.updateExisting ?? false,\n skipIfExisting: options?.skipIfExisting ?? false,\n });\n await this.dependencyResolver.persistConfig('install');\n }\n\n private async _installModules(options?: ModulesInstallOptions): Promise<ComponentMap<string>> {\n const pm = this.dependencyResolver.getPackageManager();\n this.logger.console(\n `installing dependencies in workspace using ${pm?.name} (${chalk.cyan(\n this.dependencyResolver.getPackageManagerName()\n )})`\n );\n this.logger.debug(`installing dependencies in workspace with options`, options);\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n const calcManifestsOpts: GetComponentsAndManifestsOptions = {\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n dedupe: !hasRootComponents && options?.dedupe,\n dependencyFilterFn: depsFilterFn,\n nodeLinker: this.dependencyResolver.nodeLinker(),\n };\n const linkOpts = {\n linkTeambitBit: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n };\n const { linkedRootDeps } = await this.calculateLinks(linkOpts);\n // eslint-disable-next-line prefer-const\n let { mergedRootPolicy, componentsAndManifests: current } = await this._getComponentsManifestsAndRootPolicy(\n installer,\n {\n ...calcManifestsOpts,\n addMissingDeps: options?.addMissingDeps,\n linkedRootDeps,\n }\n );\n\n const pmInstallOptions: PackageManagerInstallOptions = {\n ...calcManifestsOpts,\n autoInstallPeers: this.dependencyResolver.config.autoInstallPeers,\n includeOptionalDeps: options?.includeOptionalDeps,\n neverBuiltDependencies: this.dependencyResolver.config.neverBuiltDependencies,\n overrides: this.dependencyResolver.config.overrides,\n hoistPatterns: this.dependencyResolver.config.hoistPatterns,\n hoistInjectedDependencies: this.dependencyResolver.config.hoistInjectedDependencies,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n updateAll: options?.updateAll,\n optimizeReportForNonTerminal: options?.optimizeReportForNonTerminal,\n lockfileOnly: options?.lockfileOnly,\n };\n const prevManifests = new Set<string>();\n // TODO: this make duplicate\n // this.logger.consoleSuccess();\n const linkedDependencies = {\n [this.workspace.path]: linkedRootDeps,\n };\n const compDirMap = await this.getComponentsDirectory([]);\n let installCycle = 0;\n let hasMissingLocalComponents = true;\n const forceTeambitHarmonyLink = !this.dependencyResolver.hasHarmonyInRootPolicy();\n /* eslint-disable no-await-in-loop */\n do {\n // In case there are missing local components,\n // we'll need to make another round of installation as on the first round the missing local components\n // are not added to the manifests.\n // This is an issue when installation is done using root components.\n hasMissingLocalComponents = hasRootComponents && hasComponentsFromWorkspaceInMissingDeps(current);\n const { dependenciesChanged } = await installer.installComponents(\n this.workspace.path,\n current.manifests,\n mergedRootPolicy,\n current.componentDirectoryMap,\n {\n linkedDependencies,\n installTeambitBit: false,\n forceTeambitHarmonyLink,\n },\n pmInstallOptions\n );\n let cacheCleared = false;\n await this.linkCodemods(compDirMap);\n const oldNonLoadedEnvs = this.setOldNonLoadedEnvs();\n await this.reloadMovedEnvs();\n await this.reloadNonLoadedEnvs();\n\n const shouldClearCacheOnInstall = this.shouldClearCacheOnInstall();\n if (options?.compile ?? true) {\n const compileStartTime = process.hrtime();\n const compileOutputMessage = `compiling components`;\n this.logger.setStatusLine(compileOutputMessage);\n if (shouldClearCacheOnInstall) {\n // We need to clear cache before compiling the components or it might compile them with the default env\n // incorrectly in case the env was not loaded correctly before the installation.\n // We don't want to clear the failed to load envs because we want to show the warning at the end\n // await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n await this.workspace.clearCache();\n cacheCleared = true;\n }\n await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install });\n\n // Right now we don't need to load extensions/execute load slot at this point\n // await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install }, undefined, {\n // executeLoadSlot: true,\n // loadExtensions: true,\n // });\n this.logger.consoleSuccess(compileOutputMessage, compileStartTime);\n }\n if (options?.writeConfigFiles ?? true) {\n await this.tryWriteConfigFiles(!cacheCleared && shouldClearCacheOnInstall);\n }\n if (!dependenciesChanged) break;\n if (!options?.recurringInstall) break;\n\n if (!oldNonLoadedEnvs.length) break;\n prevManifests.add(manifestsHash(current.manifests));\n // If we run compile we do the clear cache before the compilation so no need to clean it again (it's an expensive\n // operation)\n if (!cacheCleared && shouldClearCacheOnInstall) {\n // We need to clear cache before creating the new component manifests.\n // this.workspace.consumer.componentLoader.clearComponentsCache();\n // We don't want to clear the failed to load envs because we want to show the warning at the end\n await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n }\n current = await this._getComponentsManifests(installer, mergedRootPolicy, calcManifestsOpts);\n installCycle += 1;\n } while ((!prevManifests.has(manifestsHash(current.manifests)) || hasMissingLocalComponents) && installCycle < 5);\n if (!options?.lockfileOnly && !options?.skipPrune) {\n // We clean node_modules only after the last install.\n // Otherwise, we might load an env from a location that we later remove.\n await installer.pruneModules(this.workspace.path);\n }\n // this is now commented out because we assume we don't need it anymore.\n // even when the env was not loaded before and it is loaded now, it should be fine because the dependencies-data\n // is only about the auto-detect-deps. there are two more steps: version-resolution and apply-overrides that\n // disregard the dependencies-cache.\n // await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n /* eslint-enable no-await-in-loop */\n return current.componentDirectoryMap;\n }\n\n private shouldClearCacheOnInstall(): boolean {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n return nonLoadedEnvs.length > 0;\n }\n\n /**\n * This function is very important to fix some issues that might happen during the installation process.\n * The case is the following:\n * during/before the installation process we load some envs from their bit.env files\n * this contains code like:\n * protected tsconfigPath = require.resolve('./config/tsconfig.json');\n * protected eslintConfigPath = require.resolve('./config/eslintrc.cjs');\n * When we load that file, we calculated the resolved path, and it's stored in the env\n * object instance.\n * then later on during the install we move the env to another location (like bit roots)\n * which points to a .pnpm folder with some peers, that changed during the install\n * then when we take this env object and call write ws config for example\n * or compile\n * we use that resolved path to calculate the final tsconfig\n * however that file is no longer exists which result in an error\n * This function will check if an env folder doesn't exist anymore, and will re-load it\n * from its new location.\n * This usually happen when we have install running in the middle of the process followed\n * by other bit ops.\n * examples:\n * bit new - which might run few installs then other ops.\n * bit switch - which might run few installs then other ops, and potentially change the\n * peer deps during the install.\n * bit server (vscode plugin) - which keep the process always live, so any install ops\n * that change the location, will cause the vscode plugin/bit server to crash later.\n * @returns\n */\n private async reloadMovedEnvs() {\n const allEnvs = this.envs.getAllRegisteredEnvs();\n const movedEnvs = await pFilter(allEnvs, async (env) => {\n if (!env.__path) return false;\n const regularPathExists = await pathExists(env.__path);\n const resolvedPathExists = await pathExists(env.__resolvedPath);\n return !regularPathExists || !resolvedPathExists;\n });\n const idsToLoad = movedEnvs.map((env) => env.id);\n const componentIdsToLoad = idsToLoad.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadNonLoadedEnvs() {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n const componentIdsToLoad = nonLoadedEnvs.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadEnvs(componentIdsToLoad: ComponentID[]) {\n if (componentIdsToLoad.length && this.workspace) {\n const aspects = await this.workspace.resolveAspects(undefined, componentIdsToLoad, {\n requestedOnly: true,\n excludeCore: true,\n throwOnError: false,\n // Theoretically we should use skipDeps here, but according to implementation at the moment\n // it will lead to plugins not load, and we need them to be loaded.\n // This is a bug in the flow and should be fixed.\n // skipDeps: true,\n });\n\n await Promise.all(\n aspects.map(async (aspectDef) => {\n const id = aspectDef.component?.id;\n if (!id) return;\n await this.workspace.clearComponentCache(id);\n })\n );\n await this.reloadAspects(aspects || []);\n\n // Keeping this here for now, it was removed as part of #9138 as now that we load envs of envs\n // correctly first it seems to be not needed anymore.\n // But there might be cases where it will be needed. So keeping it here for now.\n\n // This is a very special case which we need to compile our envs before loading them correctly.\n // const grouped = groupBy(aspects, (aspectDef) => {\n // return aspectDef.component?.id.toStringWithoutVersion() === 'bitdev.general/envs/bit-env';\n // });\n // await this.reloadAspects(grouped.true || []);\n // const otherEnvs = grouped.false || [];\n // await Promise.all(\n // otherEnvs.map(async (aspectDef) => {\n // const id = aspectDef.component?.id;\n // if (!id) return;\n // await this.workspace.clearComponentCache(id);\n // })\n // );\n // await this.reloadAspects(grouped.false || []);\n }\n }\n\n private async reloadAspects(aspects: AspectDefinition[]) {\n const groups = await this.groupAspectsToLoad(aspects);\n // We need to make sure we load group by group and not in parallel\n await pMapSeries(groups, async (group) => {\n await this.reloadOneAspectsGroup(group);\n });\n }\n\n private async reloadOneAspectsGroup(group: ReloadAspectGroup) {\n const aspects = group.aspects || [];\n if (group.workspace && !group.envOfAspect) {\n aspects.forEach((aspectDef) => {\n if (aspectDef.component?.id) {\n this.workspace.clearComponentCache(aspectDef.component.id);\n }\n });\n }\n const loadedPlugins = compact(\n await Promise.all(\n aspects.map((aspectDef) => {\n const localPath = aspectDef.aspectPath;\n const component = aspectDef.component;\n if (!component) return undefined;\n const plugins = this.aspectLoader.getPlugins(component, localPath);\n if (plugins.has()) {\n return plugins.load(MainRuntime.name);\n }\n })\n )\n );\n await Promise.all(\n loadedPlugins.map((plugin) => {\n const runtime = plugin.getRuntime(MainRuntime);\n return runtime?.provider(undefined, undefined, undefined, this.harmony);\n })\n );\n }\n\n /**\n * This function groups the components to aspects to load into groups.\n * The order of the groups is important, the first group should be loaded first.\n * The order inside the group is not important.\n * The groups are:\n * 1. aspects definitions without components (this should be an empty group, if it's not, we should check why).\n * 2. aspects which are not in the workspace but in the scope / node modules.\n * 3. envs of aspects (which are also aspects)\n * 4. other aspects (the rest)\n * @param aspects\n * @returns\n */\n private async groupAspectsToLoad(aspects: AspectDefinition[]): Promise<Array<ReloadAspectGroup>> {\n const groups = groupBy(aspects, (aspectDef) => {\n if (!aspectDef.component) return 'no-comp';\n if (!this.workspace.hasId(aspectDef.component.id)) return 'scope';\n return 'workspace';\n });\n const workspaceSubGroups = await this.regroupEnvsIdsFromTheList(groups.workspace || []);\n return [\n { comps: false, workspace: false, aspects: groups.noComp || [] },\n { comps: true, workspace: false, aspects: groups.scope || [] },\n { comps: true, workspace: true, envOfAspect: true, aspects: workspaceSubGroups.envOfAspect },\n { comps: true, workspace: true, aspects: workspaceSubGroups.otherAspects },\n ];\n }\n\n private async regroupEnvsIdsFromTheList(aspects: AspectDefinition[]): Promise<Record<string, AspectDefinition[]>> {\n const envsOfAspects = new Set<string>();\n await Promise.all(\n aspects.map(async (aspectDef) => {\n if (!aspectDef.component) return;\n const envId = aspectDef.component ? await this.envs.calculateEnvId(aspectDef.component) : undefined;\n if (envId) {\n envsOfAspects.add(envId.toString());\n }\n })\n );\n const groups = groupBy(aspects, (aspectDef) => {\n const id = aspectDef.component?.id.toString();\n const idWithoutVersion = aspectDef.component?.id.toStringWithoutVersion();\n if ((id && envsOfAspects.has(id)) || (idWithoutVersion && envsOfAspects.has(idWithoutVersion))) {\n return 'envOfAspect';\n }\n return 'otherAspects';\n });\n\n return groups;\n }\n\n private async _getComponentsManifestsAndRootPolicy(\n installer: DependencyInstaller,\n options: GetComponentsAndManifestsOptions & {\n addMissingDeps?: boolean;\n linkedRootDeps: Record<string, string>;\n }\n ): Promise<{ componentsAndManifests: ComponentsAndManifests; mergedRootPolicy: WorkspacePolicy }> {\n const mergedRootPolicy = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicy);\n const componentsAndManifests = await this._getComponentsManifests(installer, mergedRootPolicy, options);\n if (!options?.addMissingDeps) {\n return { componentsAndManifests, mergedRootPolicy };\n }\n const rootDeps = new Set(\n Object.keys({\n ...componentsAndManifests.manifests[this.workspace.path].devDependencies,\n ...componentsAndManifests.manifests[this.workspace.path].dependencies,\n ...options.linkedRootDeps,\n })\n );\n Object.values(omit(componentsAndManifests.manifests, [this.workspace.path])).forEach((manifest) => {\n if ((manifest as ProjectManifest).name) {\n rootDeps.add((manifest as ProjectManifest).name!); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n });\n const addedNewPkgs = await this._addMissingPackagesToRootPolicy(rootDeps);\n if (!addedNewPkgs) {\n return { componentsAndManifests, mergedRootPolicy };\n }\n const mergedRootPolicyWithMissingDeps = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicyWithMissingDeps);\n return {\n mergedRootPolicy: mergedRootPolicyWithMissingDeps,\n componentsAndManifests: await this._getComponentsManifests(installer, mergedRootPolicyWithMissingDeps, options),\n };\n }\n\n /**\n * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error\n * message.\n * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles`\n * function is successfully executed, nothing is being returned. If an error occurs during the execution of\n * `writeConfigFiles`, an error message is being returned.\n */\n private async tryWriteConfigFiles(clearCache: boolean) {\n const shouldWrite = this.wsConfigFiles.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return;\n if (clearCache) {\n await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n }\n const { err } = await this.wsConfigFiles.writeConfigFiles({\n clean: true,\n silent: true,\n dedupe: true,\n throw: false,\n });\n\n if (err) {\n this.logger.consoleFailure(\n `failed generating workspace config files, please run \"bit ws-config write\" manually. error: ${err.message}`\n );\n }\n }\n\n private async addConfiguredAspectsToWorkspacePolicy(): Promise<WorkspacePolicy> {\n const rootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const aspectsPackages = await this.workspace.getConfiguredUserAspectsPackages({ externalsOnly: true });\n aspectsPackages.forEach((aspectsPackage) => {\n rootPolicy.add(\n {\n dependencyId: aspectsPackage.packageName,\n value: {\n version: aspectsPackage.version,\n },\n lifecycleType: 'runtime',\n },\n // If it's already exist from the root, take the version from the root policy\n { skipIfExisting: true }\n );\n });\n return rootPolicy;\n }\n\n private async addConfiguredGeneratorEnvsToWorkspacePolicy(rootPolicy: WorkspacePolicy): Promise<void> {\n const configuredEnvs = this.generator.getConfiguredEnvs();\n const resolvedEnvs = compact(\n await Promise.all(\n configuredEnvs.map(async (envIdStr) => {\n if (this.envs.isCoreEnv(envIdStr)) {\n return undefined;\n }\n const parsedId = await this.workspace.resolveComponentId(envIdStr);\n // If we have the env in the workspace, we don't want to install it\n const inWs = await this.workspace.hasId(parsedId);\n if (inWs) {\n return undefined;\n }\n const comps = await this.workspace.importAndGetMany(\n [parsedId],\n `to get the env ${parsedId.toString()} for installation`\n );\n const idWithVersion = await this.workspace.resolveEnvIdWithPotentialVersionForConfig(parsedId);\n const version = idWithVersion.split('@')[1] || '*';\n const packageName = this.dependencyResolver.getPackageName(comps[0]);\n return {\n packageName,\n version,\n };\n })\n )\n );\n\n resolvedEnvs.forEach((env) => {\n rootPolicy.add(\n {\n dependencyId: env.packageName,\n value: {\n version: env.version,\n },\n lifecycleType: 'runtime',\n },\n // If it's already exist from the root, take the version from the root policy\n { skipIfExisting: true }\n );\n });\n }\n\n private async _addMissingPackagesToRootPolicy(\n rootDeps: Set<string>,\n options?: WorkspaceInstallOptions\n ): Promise<boolean> {\n const packages = await this._getMissingPackagesWithoutRootDeps(rootDeps);\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n return packages.length > 0;\n }\n\n private async _getMissingPackagesWithoutRootDeps(rootDeps: Set<string>) {\n const packages = await this._getAllMissingPackages();\n return packages.filter((pkg) => !rootDeps.has(pkg));\n }\n\n private async _getAllMissingPackages(): Promise<string[]> {\n const comps = await this.workspace.list();\n return uniq(\n comps\n .map((comp) => {\n const data = comp.state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs)?.data || [];\n return data.map((d) => d.missingPackages).flat();\n })\n .flat()\n );\n }\n\n private async _getComponentsManifests(\n dependencyInstaller: DependencyInstaller,\n rootPolicy: WorkspacePolicy,\n installOptions: GetComponentsAndManifestsOptions\n ): Promise<ComponentsAndManifests> {\n const componentDirectoryMap = await this.getComponentsDirectory([]);\n let manifests = await dependencyInstaller.getComponentManifests({\n ...installOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: this.workspace.path,\n referenceLocalPackages: this.dependencyResolver.hasRootComponents() && installOptions.nodeLinker === 'isolated',\n });\n\n if (this.dependencyResolver.hasRootComponents()) {\n const rootManifests = await this._getRootManifests(manifests);\n await this._updateRootDirs(Object.keys(rootManifests));\n manifests = {\n ...manifests,\n ...rootManifests,\n };\n }\n return {\n componentDirectoryMap,\n manifests,\n };\n }\n\n public setOldNonLoadedEnvs() {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n const envsWithoutManifest = Array.from(this.dependencyResolver.envsWithoutManifest);\n const oldNonLoadedEnvs = intersection(nonLoadedEnvs, envsWithoutManifest);\n this.oldNonLoadedEnvs = oldNonLoadedEnvs;\n return oldNonLoadedEnvs;\n }\n\n /**\n * This function returns a list of old non-loaded environments names.\n * @returns an array of strings called `oldNonLoadedEnvs`. This array contains the names of environment variables that\n * failed to load as extensions and are also don't have an env.jsonc file.\n * If this list is not empty, then the user might need to run another install to make sure all dependencies resolved\n * correctly\n */\n public getOldNonLoadedEnvs() {\n return this.oldNonLoadedEnvs;\n }\n\n private async _updateRootDirs(rootDirs: string[]) {\n try {\n const existingDirs = await fs.readdir(this.workspace.rootComponentsPath);\n await Promise.all(\n existingDirs.map(async (dirName) => {\n const dirPath = path.join(this.workspace.rootComponentsPath, dirName);\n if (!rootDirs.includes(dirPath)) {\n await fs.remove(dirPath);\n }\n })\n );\n } catch (err: any) {\n if (err.code !== 'ENOENT') throw err;\n }\n await Promise.all(rootDirs.map((dirPath) => fs.mkdir(dirPath, { recursive: true })));\n }\n\n private async _getRootManifests(\n manifests: Record<string, ProjectManifest>\n ): Promise<Record<string, ProjectManifest>> {\n const nonRootManifests = Object.values(manifests).filter(({ name }) => name !== 'workspace');\n const workspaceDeps = this.dependencyResolver.getWorkspaceDepsOfBitRoots(nonRootManifests);\n const workspaceDepsMeta = Object.keys(workspaceDeps).reduce((acc, depName) => {\n acc[depName] = { injected: true };\n return acc;\n }, {});\n const envManifests = await this._getEnvManifests(workspaceDeps, workspaceDepsMeta);\n const appManifests = await this._getAppManifests(manifests, workspaceDeps, workspaceDepsMeta);\n return {\n ...envManifests,\n ...appManifests,\n };\n }\n\n private async _getEnvManifests(\n workspaceDeps: Record<string, string>,\n workspaceDepsMeta: Record<string, { injected: true }>\n ): Promise<Record<string, ProjectManifest>> {\n const envs = await this._getAllUsedEnvIds();\n return Object.fromEntries(\n await Promise.all(\n envs.map(async (envId) => {\n return [\n await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, envId),\n {\n dependencies: {\n ...(await this._getEnvDependencies(envId)),\n ...workspaceDeps,\n ...(await this._getEnvPackage(envId)),\n },\n dependenciesMeta: workspaceDepsMeta,\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n );\n }\n\n private async _getEnvDependencies(envId: ComponentID): Promise<Record<string, string>> {\n const policy = await this.dependencyResolver.getEnvPolicyFromEnvId(envId);\n if (!policy) return {};\n return Object.fromEntries(\n policy.selfPolicy.entries\n .filter(({ force, value }) => force && value.version !== '-')\n .map(({ dependencyId, value }) => [dependencyId, value.version])\n );\n }\n\n /**\n * Return the package name of the env with its version.\n * (only if the env is not a core env and is not in the workspace)\n * @param envId\n * @returns\n */\n private async _getEnvPackage(envId: ComponentID): Promise<Record<string, string> | undefined> {\n if (this.envs.isCoreEnv(envId.toStringWithoutVersion())) return undefined;\n const inWs = await this.workspace.hasId(envId);\n if (inWs) return undefined;\n const envComponent = await this.envs.getEnvComponentByEnvId(envId.toString(), envId.toString());\n if (!envComponent) return undefined;\n const packageName = this.dependencyResolver.getPackageName(envComponent);\n const version = envId.version;\n const finalVersion = snapToSemver(version as string);\n return { [packageName]: finalVersion };\n }\n\n private async _getAppManifests(\n manifests: Record<string, ProjectManifest>,\n workspaceDeps: Record<string, string>,\n workspaceDepsMeta: Record<string, { injected: true }>\n ): Promise<Record<string, ProjectManifest>> {\n return Object.fromEntries(\n compact(\n await Promise.all(\n (await this.app.listAppsComponents()).map(async (app) => {\n const appPkgName = this.dependencyResolver.getPackageName(app);\n const appManifest = Object.values(manifests).find(({ name }) => name === appPkgName);\n if (!appManifest) return null;\n const envId = await this.envs.calculateEnvId(app);\n return [\n await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, app.id),\n {\n ...omit(appManifest, ['name', 'version']),\n dependencies: {\n ...(await this._getEnvDependencies(envId)),\n ...appManifest.dependencies,\n ...workspaceDeps,\n },\n dependenciesMeta: {\n ...appManifest.dependenciesMeta,\n ...workspaceDepsMeta,\n },\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n )\n );\n }\n\n private async _getAllUsedEnvIds(): Promise<ComponentID[]> {\n const envs = new Map<string, ComponentID>();\n const components = await this.workspace.list();\n await pMapSeries(components, async (component) => {\n const envId = await this.envs.calculateEnvId(component);\n envs.set(envId.toString(), envId);\n });\n return Array.from(envs.values());\n }\n\n /**\n * Updates out-of-date dependencies in the workspace.\n *\n * @param options.all {Boolean} updates all outdated dependencies without showing a prompt.\n */\n async updateDependencies(options: {\n forceVersionBump?: 'major' | 'minor' | 'patch' | 'compatible';\n patterns?: string[];\n all: boolean;\n }): Promise<ComponentMap<string> | null> {\n const componentPolicies = await this._getComponentsWithDependencyPolicies();\n const variantPatterns = this.variants.raw();\n const variantPoliciesByPatterns = this._variantPatternsToDepPolicesDict(variantPatterns);\n const components = await this.workspace.list();\n const outdatedPkgs = await this.dependencyResolver.getOutdatedPkgsFromPolicies({\n rootDir: this.workspace.path,\n variantPoliciesByPatterns,\n componentPolicies,\n components,\n patterns: options.patterns,\n forceVersionBump: options.forceVersionBump,\n });\n if (outdatedPkgs == null) {\n this.logger.consoleFailure('No dependencies found that match the patterns');\n return null;\n }\n let outdatedPkgsToUpdate!: MergedOutdatedPkg[];\n if (options.all) {\n outdatedPkgsToUpdate = outdatedPkgs;\n } else {\n this.logger.off();\n outdatedPkgsToUpdate = await pickOutdatedPkgs(outdatedPkgs);\n this.logger.on();\n }\n if (outdatedPkgsToUpdate.length === 0) {\n this.logger.consoleSuccess('No outdated dependencies found');\n if (options.forceVersionBump === 'compatible') {\n this.logger.console(\n \"If you want to find new versions that don't match the current version ranges, retry with the --latest flag\"\n );\n }\n return null;\n }\n const { updatedVariants, updatedComponents } = this.dependencyResolver.applyUpdates(outdatedPkgsToUpdate, {\n variantPoliciesByPatterns,\n });\n await this._updateVariantsPolicies(variantPatterns, updatedVariants);\n await this._updateComponentsConfig(updatedComponents);\n await this.workspace._reloadConsumer();\n return this._installModules({ dedupe: true });\n }\n\n async addDuplicateComponentAndPackageIssue(components: Component[]) {\n const workspacePolicy = this.dependencyResolver.getWorkspacePolicy();\n components.forEach((component) => {\n if (component.state._consumer.removed) return;\n const pkgName = componentIdToPackageName(component.state._consumer);\n const found = workspacePolicy.find(pkgName);\n if (found) {\n component.state.issues.getOrCreate(IssuesClasses.DuplicateComponentAndPackage).data = found.dependencyId;\n }\n });\n }\n\n private async _getComponentsWithDependencyPolicies() {\n const allComponentIds = this.workspace.listIds();\n const componentPolicies = [] as Array<{ componentId: ComponentID; policy: any }>;\n (\n await Promise.all<ComponentConfigFile | undefined>(\n allComponentIds.map((componentId) => this.workspace.componentConfigFile(componentId))\n )\n ).forEach((componentConfigFile, index) => {\n if (!componentConfigFile) return;\n const depResolverConfig = componentConfigFile.aspects.get(DependencyResolverAspect.id);\n if (!depResolverConfig) return;\n const componentId = allComponentIds[index];\n componentPolicies.push({ componentId, policy: depResolverConfig.config.policy });\n });\n return componentPolicies;\n }\n\n private _variantPatternsToDepPolicesDict(variantPatterns: Patterns): Record<string, VariantPolicyConfigObject> {\n const variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject> = {};\n for (const [variantPattern, extensions] of Object.entries(variantPatterns)) {\n if (extensions[DependencyResolverAspect.id]?.policy) {\n variantPoliciesByPatterns[variantPattern] = extensions[DependencyResolverAspect.id]?.policy;\n }\n }\n return variantPoliciesByPatterns;\n }\n\n private async _updateComponentsConfig(updatedComponents: UpdatedComponent[]) {\n if (updatedComponents.length === 0) return;\n await Promise.all(\n updatedComponents.map(({ componentId, config }) => {\n return this.workspace.addSpecificComponentConfig(componentId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n await this.workspace.bitMap.write('update (dependencies)');\n }\n\n private async _updateVariantsPolicies(variantPatterns: Record<string, any>, updateVariantPolicies: string[]) {\n for (const variantPattern of updateVariantPolicies) {\n this.variants.setExtension(\n variantPattern,\n DependencyResolverAspect.id,\n variantPatterns[variantPattern][DependencyResolverAspect.id],\n { overrideExisting: true }\n );\n }\n await this.dependencyResolver.persistConfig('update dependencies');\n }\n\n /**\n * Uninstall the specified packages from dependencies.\n *\n * @param {string[]} the list of packages that should be removed from dependencies.\n */\n async uninstallDependencies(packages: string[]) {\n this.dependencyResolver.removeFromRootPolicy(packages);\n await this.dependencyResolver.persistConfig('uninstall dependencies');\n return this._installModules({ dedupe: true });\n }\n\n /**\n * This function returns all the locations of the external links that should be created inside node_modules.\n * This information may then be passed to the package manager, which will create the links on its own.\n */\n async calculateLinks(\n options: WorkspaceLinkOptions = {}\n ): Promise<{ linkResults: WorkspaceLinkResults; linkedRootDeps: Record<string, string> }> {\n await pMapSeries(this.preLinkSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const compDirMap = await this.getComponentsDirectory([]);\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const { linkResults: res, linkedRootDeps } = await linker.calculateLinkedDeps(\n this.workspace.path,\n compDirMap,\n options\n );\n const workspaceRes = res as WorkspaceLinkResults;\n\n const legacyResults = await this.linkCodemods(compDirMap, options);\n workspaceRes.legacyLinkResults = legacyResults.linksResults;\n workspaceRes.legacyLinkCodemodResults = legacyResults.codemodResults;\n\n if (this.dependencyResolver.hasRootComponents() && options.linkToBitRoots) {\n await this._linkAllComponentsToBitRoots(compDirMap);\n }\n return { linkResults: res, linkedRootDeps };\n }\n\n async linkCodemods(compDirMap: ComponentMap<string>, options?: { rewire?: boolean }) {\n const bitIds = compDirMap.toArray().map(([component]) => component.id);\n return linkToNodeModulesWithCodemod(this.workspace, bitIds, options?.rewire ?? false);\n }\n\n async link(options: WorkspaceLinkOptions = {}): Promise<WorkspaceLinkResults> {\n const { linkResults, linkedRootDeps } = await this.calculateLinks(options);\n await createLinks(options.linkToDir ?? this.workspace.path, linkedRootDeps, {\n avoidHardLink: true,\n skipIfSymlinkValid: true,\n });\n return linkResults;\n }\n\n private async _linkAllComponentsToBitRoots(compDirMap: ComponentMap<string>) {\n const envs = await this._getAllUsedEnvIds();\n const apps = (await this.app.listAppsComponents()).map((component) => component.id);\n await Promise.all(\n [...envs, ...apps].map(async (id) => {\n const dir = await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, id);\n await fs.mkdirp(dir);\n })\n );\n await linkPkgsToRootComponents(\n {\n rootComponentsPath: this.workspace.rootComponentsPath,\n workspacePath: this.workspace.path,\n },\n compDirMap.components.map((component) => this.dependencyResolver.getPackageName(component))\n );\n }\n\n private async getRootComponentDirByRootId(rootComponentsPath: string, rootComponentId: ComponentID): Promise<string> {\n // Root directories for local envs and apps are created without their version number.\n // This is done in order to avoid changes to the lockfile after such components are tagged.\n const id = this.workspace.hasId(rootComponentId)\n ? rootComponentId.toStringWithoutVersion()\n : rootComponentId.toString();\n return getRootComponentDir(rootComponentsPath, id);\n }\n\n /**\n * Generate a filter to pass to the installer\n * This will filter deps which are come from remotes which defined in scope.json\n * those components comes from local remotes, usually doesn't have a package in a registry\n * so no reason to try to install them (it will fail)\n */\n private async generateFilterFnForDepsFromLocalRemote() {\n // TODO: once scope create a new API for this, replace it with the new one\n const remotes = await this.workspace.scope._legacyRemotes();\n const reg = await this.dependencyResolver.getRegistries();\n const packageScopes = Object.keys(reg.scopes);\n return (dependencyList: DependencyList): DependencyList => {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n return true;\n }\n if (remotes.isHub(dep.componentId.scope)) {\n return true;\n }\n if (packageScopes.some((scope) => dep.packageName.startsWith(`@${scope}/`))) {\n return true;\n }\n return false;\n });\n return filtered;\n };\n }\n\n private async getComponentsDirectory(ids: ComponentID[]): Promise<ComponentMap<string>> {\n const components = ids.length\n ? await this.workspace.getMany(ids)\n : await this.workspace.list(undefined, { loadSeedersAsAspects: false });\n return ComponentMap.as<string>(components, (component) => this.workspace.componentDir(component.id));\n }\n\n private async onRootAspectAddedSubscriber(_aspectId: ComponentID, inWs: boolean): Promise<void> {\n if (!inWs) {\n await this.install();\n }\n }\n private async onAspectsResolveSubscriber(aspectComponents: Component[]): Promise<void> {\n let needLink = false;\n let needInstall = false;\n const promises = aspectComponents.map(async (aspectComponent) => {\n const aspectIdStr = aspectComponent.id.toString();\n if (this.visitedAspects.has(aspectIdStr)) return;\n\n this.visitedAspects.add(aspectIdStr);\n const packagePath = await this.workspace.getComponentPackagePath(aspectComponent);\n const exists = await pathExists(packagePath);\n if (!exists) {\n const inWs = await this.workspace.hasId(aspectComponent.id);\n if (inWs) {\n needLink = true;\n } else {\n needInstall = true;\n }\n }\n });\n await Promise.all(promises);\n if (needInstall) {\n await this.install();\n return;\n }\n if (needLink) {\n await this.link();\n }\n }\n\n async onComponentChange(component: Component) {\n const isEnv = this.envs.isEnv(component);\n if (isEnv) {\n await this.reloadEnvs([component.id]);\n }\n }\n\n static slots = [Slot.withType<PreLinkSlot>(), Slot.withType<PreInstallSlot>(), Slot.withType<PostInstallSlot>()];\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CompilerAspect,\n IssuesAspect,\n EnvsAspect,\n ApplicationAspect,\n IpcEventsAspect,\n GeneratorAspect,\n WorkspaceConfigFilesAspect,\n AspectLoaderAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [\n dependencyResolver,\n workspace,\n loggerExt,\n variants,\n cli,\n compiler,\n issues,\n envs,\n app,\n ipcEvents,\n generator,\n wsConfigFiles,\n aspectLoader,\n ]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CompilerMain,\n IssuesMain,\n EnvsMain,\n ApplicationMain,\n IpcEventsMain,\n GeneratorMain,\n WorkspaceConfigFilesMain,\n AspectLoaderMain,\n ],\n _,\n [preLinkSlot, preInstallSlot, postInstallSlot]: [PreLinkSlot, PreInstallSlot, PostInstallSlot],\n harmony: Harmony\n ) {\n const logger = loggerExt.createLogger(InstallAspect.id);\n ipcEvents.registerGotEventSlot(async (eventName) => {\n if (eventName !== 'onPostInstall') return;\n logger.debug('got onPostInstall event, clear workspace and all components cache');\n await workspace.clearCache();\n workspace.clearAllComponentsCache();\n await pMapSeries(postInstallSlot.values(), (fn) => fn());\n });\n const installExt = new InstallMain(\n dependencyResolver,\n logger,\n workspace,\n variants,\n compiler,\n envs,\n wsConfigFiles,\n aspectLoader,\n app,\n generator,\n preLinkSlot,\n preInstallSlot,\n postInstallSlot,\n ipcEvents,\n harmony\n );\n if (issues) {\n issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));\n }\n generator.registerOnComponentCreate(installExt.onComponentCreate.bind(installExt));\n const commands: CommandList = [\n new InstallCmd(installExt, workspace, logger),\n new UninstallCmd(installExt),\n new UpdateCmd(installExt),\n new LinkCommand(installExt, workspace, logger),\n ];\n // For now do not automate installation during aspect resolving\n // workspace.registerOnAspectsResolve(installExt.onAspectsResolveSubscriber.bind(installExt));\n if (workspace) {\n workspace.registerOnRootAspectAdded(installExt.onRootAspectAddedSubscriber.bind(installExt));\n workspace.registerOnComponentChange(installExt.onComponentChange.bind(installExt));\n }\n cli.register(...commands);\n return installExt;\n }\n}\n\ntype ComponentsAndManifests = {\n componentDirectoryMap: ComponentMap<string>;\n manifests: Record<string, ProjectManifest>;\n};\n\nfunction hasComponentsFromWorkspaceInMissingDeps({\n componentDirectoryMap,\n manifests,\n}: ComponentsAndManifests): boolean {\n const missingDeps = new Set<string>(\n componentDirectoryMap\n .toArray()\n .map(([{ state }]) => {\n const issue = state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs);\n if (!issue) return [];\n return issue.data.map((d) => d.missingPackages).flat();\n })\n .flat()\n );\n return Object.values(manifests).some(({ name }) => name && missingDeps.has(name));\n}\n\nInstallAspect.addRuntime(InstallMain);\n\nexport default InstallMain;\n\nfunction manifestsHash(manifests: Record<string, ProjectManifest>): string {\n // We don't care if the type of the dependency changes as it doesn't change the node_modules structure\n const depsByProjectPaths = mapValues(manifests, (manifest) => ({\n ...manifest.devDependencies,\n ...manifest.dependencies,\n }));\n return hash(depsByProjectPaths);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pFilter","data","_interopRequireDefault","require","_fsExtra","_interopRequireWildcard","_path","_workspace","_compiler","_cli","_chalk","_workspace2","_lodash","_generator","_pkgModules","_application","_variants","_component","_dependenciesFs","_pMapSeries","_harmony","_workspaceModules","_envs","_ipcEvents","_componentIssues","_dependencyResolver","_workspaceConfigFiles","_logger","_issues","_componentPackageVersion","_aspectLoader","_objectHash","_exceptions","_install","_pickOutdatedPkgs","_link","_install2","_uninstall","_update","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","InstallMain","constructor","dependencyResolver","logger","workspace","variants","compiler","envs","wsConfigFiles","aspectLoader","app","generator","preLinkSlot","preInstallSlot","postInstallSlot","ipcEvents","harmony","Set","install","packages","options","inInstallContext","_addPackages","addMissingPeers","compDirMap","getComponentsDirectory","mergedRootPolicy","getWorkspacePolicy","depsFilterFn","generateFilterFnForDepsFromLocalRemote","pmInstallOptions","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","dependencyFilterFn","overrides","config","hoistPatterns","packageImportMethod","missingPeers","getMissingPeerDependencies","path","missingPeerPackages","entries","map","peerName","range","console","pMapSeries","values","fn","res","_installModules","publishIpcEvent","registerPreLink","register","registerPreInstall","registerPostInstall","onComponentCreate","generateResults","installOptions","runInstall","installMissing","ids","generateResult","dependencies","concat","installMissingDependencies","isApp","isEnv","id","nonLoadedEnvs","clearComponentCache","component","envId","calculateEnvId","toString","isLoaded","isEnvRegistered","addMissingDeps","skipIfExisting","writeConfigFiles","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","resolvedPackages","Promise","all","newWorkspacePolicyEntries","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","overridePrefix","savePrefix","wantedRange","dependencyId","addToRootPolicy","updateExisting","persistConfig","pm","getPackageManager","name","chalk","cyan","getPackageManagerName","hasRootComponents","installer","getInstaller","calcManifestsOpts","nodeLinker","linkOpts","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","isLegacy","linkedRootDeps","calculateLinks","componentsAndManifests","current","_getComponentsManifestsAndRootPolicy","autoInstallPeers","includeOptionalDeps","neverBuiltDependencies","hoistInjectedDependencies","rootComponents","updateAll","optimizeReportForNonTerminal","lockfileOnly","prevManifests","linkedDependencies","installCycle","hasMissingLocalComponents","forceTeambitHarmonyLink","hasHarmonyInRootPolicy","hasComponentsFromWorkspaceInMissingDeps","dependenciesChanged","installComponents","manifests","componentDirectoryMap","installTeambitBit","cacheCleared","linkCodemods","oldNonLoadedEnvs","setOldNonLoadedEnvs","reloadMovedEnvs","reloadNonLoadedEnvs","shouldClearCacheOnInstall","compile","compileStartTime","process","hrtime","compileOutputMessage","setStatusLine","clearCache","compileOnWorkspace","initiator","CompilationInitiator","Install","consoleSuccess","tryWriteConfigFiles","recurringInstall","add","manifestsHash","skipClearFailedToLoadEnvs","_getComponentsManifests","skipPrune","pruneModules","getFailedToLoadEnvs","allEnvs","getAllRegisteredEnvs","movedEnvs","pFilter","env","__path","regularPathExists","pathExists","resolvedPathExists","__resolvedPath","idsToLoad","componentIdsToLoad","ComponentID","fromString","reloadEnvs","aspects","resolveAspects","undefined","requestedOnly","excludeCore","throwOnError","aspectDef","reloadAspects","groups","groupAspectsToLoad","group","reloadOneAspectsGroup","envOfAspect","loadedPlugins","compact","localPath","aspectPath","plugins","getPlugins","load","MainRuntime","plugin","runtime","getRuntime","provider","groupBy","hasId","workspaceSubGroups","regroupEnvsIdsFromTheList","comps","noComp","scope","otherAspects","envsOfAspects","idWithoutVersion","toStringWithoutVersion","addConfiguredAspectsToWorkspacePolicy","addConfiguredGeneratorEnvsToWorkspacePolicy","rootDeps","devDependencies","omit","manifest","addedNewPkgs","_addMissingPackagesToRootPolicy","mergedRootPolicyWithMissingDeps","shouldWrite","isWorkspaceConfigWriteEnabled","err","clean","silent","throw","consoleFailure","message","rootPolicy","aspectsPackages","getConfiguredUserAspectsPackages","externalsOnly","aspectsPackage","configuredEnvs","getConfiguredEnvs","resolvedEnvs","envIdStr","isCoreEnv","parsedId","resolveComponentId","inWs","importAndGetMany","idWithVersion","resolveEnvIdWithPotentialVersionForConfig","split","getPackageName","_getMissingPackagesWithoutRootDeps","_getAllMissingPackages","pkg","list","uniq","comp","state","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","d","missingPackages","flat","dependencyInstaller","getComponentManifests","referenceLocalPackages","rootManifests","_getRootManifests","_updateRootDirs","envsWithoutManifest","Array","from","intersection","getOldNonLoadedEnvs","rootDirs","existingDirs","fs","readdir","rootComponentsPath","dirName","dirPath","includes","remove","code","mkdir","recursive","nonRootManifests","workspaceDeps","getWorkspaceDepsOfBitRoots","workspaceDepsMeta","reduce","acc","depName","injected","envManifests","_getEnvManifests","appManifests","_getAppManifests","_getAllUsedEnvIds","fromEntries","getRootComponentDirByRootId","_getEnvDependencies","_getEnvPackage","dependenciesMeta","installConfig","hoistingLimits","policy","getEnvPolicyFromEnvId","selfPolicy","force","envComponent","getEnvComponentByEnvId","finalVersion","snapToSemver","listAppsComponents","appPkgName","appManifest","find","Map","components","updateDependencies","componentPolicies","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","outdatedPkgs","getOutdatedPkgsFromPolicies","patterns","forceVersionBump","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","_updateComponentsConfig","_reloadConsumer","addDuplicateComponentAndPackageIssue","workspacePolicy","_consumer","removed","pkgName","componentIdToPackageName","found","getOrCreate","DuplicateComponentAndPackage","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","DependencyResolverAspect","variantPattern","extensions","addSpecificComponentConfig","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","updateVariantPolicies","setExtension","overrideExisting","uninstallDependencies","removeFromRootPolicy","linker","getLinker","linkingOptions","linkResults","calculateLinkedDeps","workspaceRes","legacyResults","legacyLinkResults","linksResults","legacyLinkCodemodResults","codemodResults","linkToBitRoots","_linkAllComponentsToBitRoots","bitIds","toArray","linkToNodeModulesWithCodemod","rewire","link","createLinks","linkToDir","avoidHardLink","skipIfSymlinkValid","apps","dir","mkdirp","linkPkgsToRootComponents","workspacePath","rootComponentId","getRootComponentDir","remotes","_legacyRemotes","reg","getRegistries","packageScopes","scopes","dependencyList","filtered","dep","ComponentDependency","isHub","some","startsWith","getMany","loadSeedersAsAspects","ComponentMap","as","componentDir","onRootAspectAddedSubscriber","_aspectId","onAspectsResolveSubscriber","aspectComponents","needLink","needInstall","promises","aspectComponent","aspectIdStr","visitedAspects","packagePath","getComponentPackagePath","exists","onComponentChange","loggerExt","cli","_","createLogger","InstallAspect","installExt","registerGotEventSlot","eventName","registerAddComponentsIssues","bind","registerOnComponentCreate","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","registerOnRootAspectAdded","registerOnComponentChange","exports","Slot","withType","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CompilerAspect","IssuesAspect","EnvsAspect","ApplicationAspect","IpcEventsAspect","GeneratorAspect","WorkspaceConfigFilesAspect","AspectLoaderAspect","missingDeps","issue","addRuntime","_default","depsByProjectPaths","mapValues","hash"],"sources":["install.main.runtime.ts"],"sourcesContent":["import pFilter from 'p-filter';\nimport fs, { pathExists } from 'fs-extra';\nimport path from 'path';\nimport { getRootComponentDir, linkPkgsToRootComponents } from '@teambit/workspace.root-components';\nimport { CompilerMain, CompilerAspect, CompilationInitiator } from '@teambit/compiler';\nimport { CLIMain, CommandList, CLIAspect, MainRuntime } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceAspect, Workspace, ComponentConfigFile } from '@teambit/workspace';\nimport { compact, mapValues, omit, uniq, intersection, groupBy } from 'lodash';\nimport { ProjectManifest } from '@pnpm/types';\nimport { GenerateResult, GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { ApplicationMain, ApplicationAspect } from '@teambit/application';\nimport { VariantsMain, Patterns, VariantsAspect } from '@teambit/variants';\nimport { Component, ComponentID, ComponentMap } from '@teambit/component';\nimport { createLinks } from '@teambit/dependencies.fs.linked-dependencies';\nimport pMapSeries from 'p-map-series';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport {\n CodemodResult,\n linkToNodeModulesWithCodemod,\n NodeModulesLinksResult,\n} from '@teambit/workspace.modules.node-modules-linker';\nimport { EnvsMain, EnvsAspect } from '@teambit/envs';\nimport { IpcEventsAspect, IpcEventsMain } from '@teambit/ipc-events';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport {\n GetComponentManifestsOptions,\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyInstaller,\n DependencyResolverAspect,\n PackageManagerInstallOptions,\n ComponentDependency,\n VariantPolicyConfigObject,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n MergedOutdatedPkg,\n WorkspacePolicy,\n UpdatedComponent,\n} from '@teambit/dependency-resolver';\nimport { WorkspaceConfigFilesAspect, WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { AspectDefinition, AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport hash from 'object-hash';\nimport { DependencyTypeNotSupportedInPolicy } from './exceptions';\nimport { InstallAspect } from './install.aspect';\nimport { pickOutdatedPkgs } from './pick-outdated-pkgs';\nimport { LinkCommand } from './link';\nimport InstallCmd from './install.cmd';\nimport UninstallCmd from './uninstall.cmd';\nimport UpdateCmd from './update.cmd';\n\nexport type WorkspaceLinkOptions = LinkingOptions & {\n rootPolicy?: WorkspacePolicy;\n linkToBitRoots?: boolean;\n includePeers?: boolean;\n};\n\nexport type WorkspaceLinkResults = {\n legacyLinkResults?: NodeModulesLinksResult[];\n legacyLinkCodemodResults?: CodemodResult[];\n} & LinkResults;\n\nexport type WorkspaceInstallOptions = {\n addMissingDeps?: boolean;\n addMissingPeers?: boolean;\n lifecycleType?: WorkspaceDependencyLifecycleType;\n dedupe?: boolean;\n import?: boolean;\n copyPeerToRuntimeOnRoot?: boolean;\n copyPeerToRuntimeOnComponents?: boolean;\n updateExisting?: boolean;\n skipIfExisting?: boolean;\n savePrefix?: string;\n compile?: boolean;\n includeOptionalDeps?: boolean;\n updateAll?: boolean;\n recurringInstall?: boolean;\n optimizeReportForNonTerminal?: boolean;\n lockfileOnly?: boolean;\n writeConfigFiles?: boolean;\n skipPrune?: boolean;\n};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\n\ntype PreLink = (linkOpts?: WorkspaceLinkOptions) => Promise<void>;\ntype PreInstall = (installOpts?: WorkspaceInstallOptions) => Promise<void>;\ntype PostInstall = () => Promise<void>;\n\ntype PreLinkSlot = SlotRegistry<PreLink>;\ntype PreInstallSlot = SlotRegistry<PreInstall>;\ntype PostInstallSlot = SlotRegistry<PostInstall>;\n\ntype GetComponentsAndManifestsOptions = Omit<\n GetComponentManifestsOptions,\n 'componentDirectoryMap' | 'rootPolicy' | 'rootDir'\n> &\n Pick<PackageManagerInstallOptions, 'nodeLinker'>;\n\ntype ReloadAspectGroup = { comps: boolean; workspace: boolean; envOfAspect?: boolean; aspects: AspectDefinition[] };\nexport class InstallMain {\n private visitedAspects: Set<string> = new Set();\n\n private oldNonLoadedEnvs: string[] = [];\n\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private logger: Logger,\n\n private workspace: Workspace,\n\n private variants: VariantsMain,\n\n private compiler: CompilerMain,\n\n private envs: EnvsMain,\n\n private wsConfigFiles: WorkspaceConfigFilesMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private app: ApplicationMain,\n\n private generator: GeneratorMain,\n\n private preLinkSlot: PreLinkSlot,\n\n private preInstallSlot: PreInstallSlot,\n\n private postInstallSlot: PostInstallSlot,\n\n private ipcEvents: IpcEventsMain,\n\n private harmony: Harmony\n ) {}\n /**\n * Install dependencies for all components in the workspace\n *\n * @returns\n * @memberof Workspace\n */\n async install(packages?: string[], options?: WorkspaceInstallOptions): Promise<ComponentMap<string>> {\n // set workspace in install context\n this.workspace.inInstallContext = true;\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n if (options?.addMissingPeers) {\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n hoistPatterns: this.dependencyResolver.config.hoistPatterns,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n };\n const missingPeers = await this.dependencyResolver.getMissingPeerDependencies(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n pmInstallOptions\n );\n if (missingPeers) {\n const missingPeerPackages = Object.entries(missingPeers).map(([peerName, range]) => `${peerName}@${range}`);\n await this._addPackages(missingPeerPackages, options);\n } else {\n this.logger.console('No missing peer dependencies found.');\n }\n }\n await pMapSeries(this.preInstallSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const res = await this._installModules(options);\n this.workspace.inInstallContext = false;\n\n await this.ipcEvents.publishIpcEvent('onPostInstall');\n\n return res;\n }\n\n registerPreLink(fn: PreLink) {\n this.preLinkSlot.register(fn);\n }\n\n registerPreInstall(fn: PreInstall) {\n this.preInstallSlot.register(fn);\n }\n\n registerPostInstall(fn: PostInstall) {\n this.postInstallSlot.register(fn);\n }\n\n async onComponentCreate(generateResults: GenerateResult[], installOptions?: Partial<WorkspaceInstallOptions>) {\n this.workspace.inInstallContext = true;\n let runInstall = false;\n let packages: string[] = [];\n let installMissing = false;\n\n const ids = generateResults.map((generateResult) => {\n if (generateResult.dependencies && generateResult.dependencies.length) {\n packages = packages.concat(generateResult.dependencies);\n runInstall = true;\n }\n if (generateResult.installMissingDependencies) {\n installMissing = true;\n runInstall = true;\n }\n if (generateResult.isApp || generateResult.isEnv) {\n runInstall = true;\n }\n return generateResult.id;\n });\n const nonLoadedEnvs: string[] = [];\n\n ids.map((id) => this.workspace.clearComponentCache(id));\n await pMapSeries(ids, async (id) => {\n const component = await this.workspace.get(id);\n // const envId = await this.envs.getEnvId(component);\n const envId = (await this.envs.calculateEnvId(component)).toString();\n const isLoaded = this.envs.isEnvRegistered(envId);\n if (!isLoaded) {\n nonLoadedEnvs.push(envId);\n }\n return component;\n });\n if (nonLoadedEnvs.length) {\n runInstall = true;\n }\n if (!runInstall) {\n this.workspace.inInstallContext = false;\n return;\n }\n // this.logger.console(\n // `the following environments are not installed yet: ${nonLoadedEnvs.join(', ')}. installing them now...`\n // );\n await this.install(packages, {\n ...installOptions,\n addMissingDeps: installMissing,\n skipIfExisting: true,\n writeConfigFiles: false,\n // skipPrune: true,\n });\n }\n\n private async _addPackages(packages: string[], options?: WorkspaceInstallOptions) {\n if ((options?.lifecycleType as string) === 'dev') {\n throw new DependencyTypeNotSupportedInPolicy(options?.lifecycleType as string);\n }\n this.logger.debug(`installing the following packages: ${packages.join()}`);\n const resolver = await this.dependencyResolver.getVersionResolver();\n const resolvedPackagesP = packages.map((packageName) =>\n resolver.resolveRemoteVersion(packageName, {\n rootDir: this.workspace.path,\n })\n );\n const resolvedPackages = await Promise.all(resolvedPackagesP);\n const newWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n resolvedPackages.forEach((resolvedPackage) => {\n if (resolvedPackage.version) {\n const versionWithPrefix = this.dependencyResolver.getVersionWithSavePrefix({\n version: resolvedPackage.version,\n overridePrefix: options?.savePrefix,\n wantedRange: resolvedPackage.wantedRange,\n });\n newWorkspacePolicyEntries.push({\n dependencyId: resolvedPackage.packageName,\n value: {\n version: versionWithPrefix,\n },\n lifecycleType: options?.lifecycleType || 'runtime',\n });\n }\n });\n this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: options?.updateExisting ?? false,\n skipIfExisting: options?.skipIfExisting ?? false,\n });\n await this.dependencyResolver.persistConfig('install');\n }\n\n private async _installModules(options?: ModulesInstallOptions): Promise<ComponentMap<string>> {\n const pm = this.dependencyResolver.getPackageManager();\n this.logger.console(\n `installing dependencies in workspace using ${pm?.name} (${chalk.cyan(\n this.dependencyResolver.getPackageManagerName()\n )})`\n );\n this.logger.debug(`installing dependencies in workspace with options`, options);\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n const calcManifestsOpts: GetComponentsAndManifestsOptions = {\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n dedupe: !hasRootComponents && options?.dedupe,\n dependencyFilterFn: depsFilterFn,\n nodeLinker: this.dependencyResolver.nodeLinker(),\n };\n const linkOpts = {\n linkTeambitBit: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n };\n const { linkedRootDeps } = await this.calculateLinks(linkOpts);\n // eslint-disable-next-line prefer-const\n let { mergedRootPolicy, componentsAndManifests: current } = await this._getComponentsManifestsAndRootPolicy(\n installer,\n {\n ...calcManifestsOpts,\n addMissingDeps: options?.addMissingDeps,\n linkedRootDeps,\n }\n );\n\n const pmInstallOptions: PackageManagerInstallOptions = {\n ...calcManifestsOpts,\n autoInstallPeers: this.dependencyResolver.config.autoInstallPeers,\n includeOptionalDeps: options?.includeOptionalDeps,\n neverBuiltDependencies: this.dependencyResolver.config.neverBuiltDependencies,\n overrides: this.dependencyResolver.config.overrides,\n hoistPatterns: this.dependencyResolver.config.hoistPatterns,\n hoistInjectedDependencies: this.dependencyResolver.config.hoistInjectedDependencies,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n updateAll: options?.updateAll,\n optimizeReportForNonTerminal: options?.optimizeReportForNonTerminal,\n lockfileOnly: options?.lockfileOnly,\n };\n const prevManifests = new Set<string>();\n // TODO: this make duplicate\n // this.logger.consoleSuccess();\n const linkedDependencies = {\n [this.workspace.path]: linkedRootDeps,\n };\n const compDirMap = await this.getComponentsDirectory([]);\n let installCycle = 0;\n let hasMissingLocalComponents = true;\n const forceTeambitHarmonyLink = !this.dependencyResolver.hasHarmonyInRootPolicy();\n /* eslint-disable no-await-in-loop */\n do {\n // In case there are missing local components,\n // we'll need to make another round of installation as on the first round the missing local components\n // are not added to the manifests.\n // This is an issue when installation is done using root components.\n hasMissingLocalComponents = hasRootComponents && hasComponentsFromWorkspaceInMissingDeps(current);\n const { dependenciesChanged } = await installer.installComponents(\n this.workspace.path,\n current.manifests,\n mergedRootPolicy,\n current.componentDirectoryMap,\n {\n linkedDependencies,\n installTeambitBit: false,\n forceTeambitHarmonyLink,\n },\n pmInstallOptions\n );\n let cacheCleared = false;\n await this.linkCodemods(compDirMap);\n const oldNonLoadedEnvs = this.setOldNonLoadedEnvs();\n await this.reloadMovedEnvs();\n await this.reloadNonLoadedEnvs();\n\n const shouldClearCacheOnInstall = this.shouldClearCacheOnInstall();\n if (options?.compile ?? true) {\n const compileStartTime = process.hrtime();\n const compileOutputMessage = `compiling components`;\n this.logger.setStatusLine(compileOutputMessage);\n if (shouldClearCacheOnInstall) {\n // We need to clear cache before compiling the components or it might compile them with the default env\n // incorrectly in case the env was not loaded correctly before the installation.\n // We don't want to clear the failed to load envs because we want to show the warning at the end\n // await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n await this.workspace.clearCache();\n cacheCleared = true;\n }\n await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install });\n\n // Right now we don't need to load extensions/execute load slot at this point\n // await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install }, undefined, {\n // executeLoadSlot: true,\n // loadExtensions: true,\n // });\n this.logger.consoleSuccess(compileOutputMessage, compileStartTime);\n }\n if (options?.writeConfigFiles ?? true) {\n await this.tryWriteConfigFiles(!cacheCleared && shouldClearCacheOnInstall);\n }\n if (!dependenciesChanged) break;\n if (!options?.recurringInstall) break;\n\n if (!oldNonLoadedEnvs.length) break;\n prevManifests.add(manifestsHash(current.manifests));\n // If we run compile we do the clear cache before the compilation so no need to clean it again (it's an expensive\n // operation)\n if (!cacheCleared && shouldClearCacheOnInstall) {\n // We need to clear cache before creating the new component manifests.\n // this.workspace.consumer.componentLoader.clearComponentsCache();\n // We don't want to clear the failed to load envs because we want to show the warning at the end\n await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n }\n current = await this._getComponentsManifests(installer, mergedRootPolicy, calcManifestsOpts);\n installCycle += 1;\n } while ((!prevManifests.has(manifestsHash(current.manifests)) || hasMissingLocalComponents) && installCycle < 5);\n if (!options?.lockfileOnly && !options?.skipPrune) {\n // We clean node_modules only after the last install.\n // Otherwise, we might load an env from a location that we later remove.\n await installer.pruneModules(this.workspace.path);\n }\n // this is now commented out because we assume we don't need it anymore.\n // even when the env was not loaded before and it is loaded now, it should be fine because the dependencies-data\n // is only about the auto-detect-deps. there are two more steps: version-resolution and apply-overrides that\n // disregard the dependencies-cache.\n // await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n /* eslint-enable no-await-in-loop */\n return current.componentDirectoryMap;\n }\n\n private shouldClearCacheOnInstall(): boolean {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n return nonLoadedEnvs.length > 0;\n }\n\n /**\n * This function is very important to fix some issues that might happen during the installation process.\n * The case is the following:\n * during/before the installation process we load some envs from their bit.env files\n * this contains code like:\n * protected tsconfigPath = require.resolve('./config/tsconfig.json');\n * protected eslintConfigPath = require.resolve('./config/eslintrc.cjs');\n * When we load that file, we calculated the resolved path, and it's stored in the env\n * object instance.\n * then later on during the install we move the env to another location (like bit roots)\n * which points to a .pnpm folder with some peers, that changed during the install\n * then when we take this env object and call write ws config for example\n * or compile\n * we use that resolved path to calculate the final tsconfig\n * however that file is no longer exists which result in an error\n * This function will check if an env folder doesn't exist anymore, and will re-load it\n * from its new location.\n * This usually happen when we have install running in the middle of the process followed\n * by other bit ops.\n * examples:\n * bit new - which might run few installs then other ops.\n * bit switch - which might run few installs then other ops, and potentially change the\n * peer deps during the install.\n * bit server (vscode plugin) - which keep the process always live, so any install ops\n * that change the location, will cause the vscode plugin/bit server to crash later.\n * @returns\n */\n private async reloadMovedEnvs() {\n this.logger.debug('reloadMovedEnvs');\n const allEnvs = this.envs.getAllRegisteredEnvs();\n const movedEnvs = await pFilter(allEnvs, async (env) => {\n if (!env.__path) return false;\n const regularPathExists = await pathExists(env.__path);\n const resolvedPathExists = await pathExists(env.__resolvedPath);\n return !regularPathExists || !resolvedPathExists;\n });\n const idsToLoad = movedEnvs.map((env) => env.id);\n const componentIdsToLoad = idsToLoad.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadNonLoadedEnvs() {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n const componentIdsToLoad = nonLoadedEnvs.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadEnvs(componentIdsToLoad: ComponentID[]) {\n if (componentIdsToLoad.length && this.workspace) {\n const aspects = await this.workspace.resolveAspects(undefined, componentIdsToLoad, {\n requestedOnly: true,\n excludeCore: true,\n throwOnError: false,\n // Theoretically we should use skipDeps here, but according to implementation at the moment\n // it will lead to plugins not load, and we need them to be loaded.\n // This is a bug in the flow and should be fixed.\n // skipDeps: true,\n });\n\n await Promise.all(\n aspects.map(async (aspectDef) => {\n const id = aspectDef.component?.id;\n if (!id) return;\n await this.workspace.clearComponentCache(id);\n })\n );\n await this.reloadAspects(aspects || []);\n\n // Keeping this here for now, it was removed as part of #9138 as now that we load envs of envs\n // correctly first it seems to be not needed anymore.\n // But there might be cases where it will be needed. So keeping it here for now.\n\n // This is a very special case which we need to compile our envs before loading them correctly.\n // const grouped = groupBy(aspects, (aspectDef) => {\n // return aspectDef.component?.id.toStringWithoutVersion() === 'bitdev.general/envs/bit-env';\n // });\n // await this.reloadAspects(grouped.true || []);\n // const otherEnvs = grouped.false || [];\n // await Promise.all(\n // otherEnvs.map(async (aspectDef) => {\n // const id = aspectDef.component?.id;\n // if (!id) return;\n // await this.workspace.clearComponentCache(id);\n // })\n // );\n // await this.reloadAspects(grouped.false || []);\n }\n }\n\n private async reloadAspects(aspects: AspectDefinition[]) {\n const groups = await this.groupAspectsToLoad(aspects);\n // We need to make sure we load group by group and not in parallel\n await pMapSeries(groups, async (group) => {\n await this.reloadOneAspectsGroup(group);\n });\n }\n\n private async reloadOneAspectsGroup(group: ReloadAspectGroup) {\n const aspects = group.aspects || [];\n if (group.workspace && !group.envOfAspect) {\n aspects.forEach((aspectDef) => {\n if (aspectDef.component?.id) {\n this.workspace.clearComponentCache(aspectDef.component.id);\n }\n });\n }\n const loadedPlugins = compact(\n await Promise.all(\n aspects.map((aspectDef) => {\n const localPath = aspectDef.aspectPath;\n const component = aspectDef.component;\n if (!component) return undefined;\n const plugins = this.aspectLoader.getPlugins(component, localPath);\n if (plugins.has()) {\n return plugins.load(MainRuntime.name);\n }\n })\n )\n );\n await Promise.all(\n loadedPlugins.map((plugin) => {\n const runtime = plugin.getRuntime(MainRuntime);\n return runtime?.provider(undefined, undefined, undefined, this.harmony);\n })\n );\n }\n\n /**\n * This function groups the components to aspects to load into groups.\n * The order of the groups is important, the first group should be loaded first.\n * The order inside the group is not important.\n * The groups are:\n * 1. aspects definitions without components (this should be an empty group, if it's not, we should check why).\n * 2. aspects which are not in the workspace but in the scope / node modules.\n * 3. envs of aspects (which are also aspects)\n * 4. other aspects (the rest)\n * @param aspects\n * @returns\n */\n private async groupAspectsToLoad(aspects: AspectDefinition[]): Promise<Array<ReloadAspectGroup>> {\n const groups = groupBy(aspects, (aspectDef) => {\n if (!aspectDef.component) return 'no-comp';\n if (!this.workspace.hasId(aspectDef.component.id)) return 'scope';\n return 'workspace';\n });\n const workspaceSubGroups = await this.regroupEnvsIdsFromTheList(groups.workspace || []);\n return [\n { comps: false, workspace: false, aspects: groups.noComp || [] },\n { comps: true, workspace: false, aspects: groups.scope || [] },\n { comps: true, workspace: true, envOfAspect: true, aspects: workspaceSubGroups.envOfAspect },\n { comps: true, workspace: true, aspects: workspaceSubGroups.otherAspects },\n ];\n }\n\n private async regroupEnvsIdsFromTheList(aspects: AspectDefinition[]): Promise<Record<string, AspectDefinition[]>> {\n const envsOfAspects = new Set<string>();\n await Promise.all(\n aspects.map(async (aspectDef) => {\n if (!aspectDef.component) return;\n const envId = aspectDef.component ? await this.envs.calculateEnvId(aspectDef.component) : undefined;\n if (envId) {\n envsOfAspects.add(envId.toString());\n }\n })\n );\n const groups = groupBy(aspects, (aspectDef) => {\n const id = aspectDef.component?.id.toString();\n const idWithoutVersion = aspectDef.component?.id.toStringWithoutVersion();\n if ((id && envsOfAspects.has(id)) || (idWithoutVersion && envsOfAspects.has(idWithoutVersion))) {\n return 'envOfAspect';\n }\n return 'otherAspects';\n });\n\n return groups;\n }\n\n private async _getComponentsManifestsAndRootPolicy(\n installer: DependencyInstaller,\n options: GetComponentsAndManifestsOptions & {\n addMissingDeps?: boolean;\n linkedRootDeps: Record<string, string>;\n }\n ): Promise<{ componentsAndManifests: ComponentsAndManifests; mergedRootPolicy: WorkspacePolicy }> {\n const mergedRootPolicy = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicy);\n const componentsAndManifests = await this._getComponentsManifests(installer, mergedRootPolicy, options);\n if (!options?.addMissingDeps) {\n return { componentsAndManifests, mergedRootPolicy };\n }\n const rootDeps = new Set(\n Object.keys({\n ...componentsAndManifests.manifests[this.workspace.path].devDependencies,\n ...componentsAndManifests.manifests[this.workspace.path].dependencies,\n ...options.linkedRootDeps,\n })\n );\n Object.values(omit(componentsAndManifests.manifests, [this.workspace.path])).forEach((manifest) => {\n if ((manifest as ProjectManifest).name) {\n rootDeps.add((manifest as ProjectManifest).name!); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n });\n const addedNewPkgs = await this._addMissingPackagesToRootPolicy(rootDeps);\n if (!addedNewPkgs) {\n return { componentsAndManifests, mergedRootPolicy };\n }\n const mergedRootPolicyWithMissingDeps = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicyWithMissingDeps);\n return {\n mergedRootPolicy: mergedRootPolicyWithMissingDeps,\n componentsAndManifests: await this._getComponentsManifests(installer, mergedRootPolicyWithMissingDeps, options),\n };\n }\n\n /**\n * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error\n * message.\n * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles`\n * function is successfully executed, nothing is being returned. If an error occurs during the execution of\n * `writeConfigFiles`, an error message is being returned.\n */\n private async tryWriteConfigFiles(clearCache: boolean) {\n const shouldWrite = this.wsConfigFiles.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return;\n if (clearCache) {\n await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n }\n const { err } = await this.wsConfigFiles.writeConfigFiles({\n clean: true,\n silent: true,\n dedupe: true,\n throw: false,\n });\n\n if (err) {\n this.logger.consoleFailure(\n `failed generating workspace config files, please run \"bit ws-config write\" manually. error: ${err.message}`\n );\n }\n }\n\n private async addConfiguredAspectsToWorkspacePolicy(): Promise<WorkspacePolicy> {\n const rootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const aspectsPackages = await this.workspace.getConfiguredUserAspectsPackages({ externalsOnly: true });\n aspectsPackages.forEach((aspectsPackage) => {\n rootPolicy.add(\n {\n dependencyId: aspectsPackage.packageName,\n value: {\n version: aspectsPackage.version,\n },\n lifecycleType: 'runtime',\n },\n // If it's already exist from the root, take the version from the root policy\n { skipIfExisting: true }\n );\n });\n return rootPolicy;\n }\n\n private async addConfiguredGeneratorEnvsToWorkspacePolicy(rootPolicy: WorkspacePolicy): Promise<void> {\n const configuredEnvs = this.generator.getConfiguredEnvs();\n const resolvedEnvs = compact(\n await Promise.all(\n configuredEnvs.map(async (envIdStr) => {\n if (this.envs.isCoreEnv(envIdStr)) {\n return undefined;\n }\n const parsedId = await this.workspace.resolveComponentId(envIdStr);\n // If we have the env in the workspace, we don't want to install it\n const inWs = await this.workspace.hasId(parsedId);\n if (inWs) {\n return undefined;\n }\n const comps = await this.workspace.importAndGetMany(\n [parsedId],\n `to get the env ${parsedId.toString()} for installation`\n );\n const idWithVersion = await this.workspace.resolveEnvIdWithPotentialVersionForConfig(parsedId);\n const version = idWithVersion.split('@')[1] || '*';\n const packageName = this.dependencyResolver.getPackageName(comps[0]);\n return {\n packageName,\n version,\n };\n })\n )\n );\n\n resolvedEnvs.forEach((env) => {\n rootPolicy.add(\n {\n dependencyId: env.packageName,\n value: {\n version: env.version,\n },\n lifecycleType: 'runtime',\n },\n // If it's already exist from the root, take the version from the root policy\n { skipIfExisting: true }\n );\n });\n }\n\n private async _addMissingPackagesToRootPolicy(\n rootDeps: Set<string>,\n options?: WorkspaceInstallOptions\n ): Promise<boolean> {\n const packages = await this._getMissingPackagesWithoutRootDeps(rootDeps);\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n return packages.length > 0;\n }\n\n private async _getMissingPackagesWithoutRootDeps(rootDeps: Set<string>) {\n const packages = await this._getAllMissingPackages();\n return packages.filter((pkg) => !rootDeps.has(pkg));\n }\n\n private async _getAllMissingPackages(): Promise<string[]> {\n const comps = await this.workspace.list();\n return uniq(\n comps\n .map((comp) => {\n const data = comp.state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs)?.data || [];\n return data.map((d) => d.missingPackages).flat();\n })\n .flat()\n );\n }\n\n private async _getComponentsManifests(\n dependencyInstaller: DependencyInstaller,\n rootPolicy: WorkspacePolicy,\n installOptions: GetComponentsAndManifestsOptions\n ): Promise<ComponentsAndManifests> {\n const componentDirectoryMap = await this.getComponentsDirectory([]);\n let manifests = await dependencyInstaller.getComponentManifests({\n ...installOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: this.workspace.path,\n referenceLocalPackages: this.dependencyResolver.hasRootComponents() && installOptions.nodeLinker === 'isolated',\n });\n\n if (this.dependencyResolver.hasRootComponents()) {\n const rootManifests = await this._getRootManifests(manifests);\n await this._updateRootDirs(Object.keys(rootManifests));\n manifests = {\n ...manifests,\n ...rootManifests,\n };\n }\n return {\n componentDirectoryMap,\n manifests,\n };\n }\n\n public setOldNonLoadedEnvs() {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n const envsWithoutManifest = Array.from(this.dependencyResolver.envsWithoutManifest);\n const oldNonLoadedEnvs = intersection(nonLoadedEnvs, envsWithoutManifest);\n this.oldNonLoadedEnvs = oldNonLoadedEnvs;\n return oldNonLoadedEnvs;\n }\n\n /**\n * This function returns a list of old non-loaded environments names.\n * @returns an array of strings called `oldNonLoadedEnvs`. This array contains the names of environment variables that\n * failed to load as extensions and are also don't have an env.jsonc file.\n * If this list is not empty, then the user might need to run another install to make sure all dependencies resolved\n * correctly\n */\n public getOldNonLoadedEnvs() {\n return this.oldNonLoadedEnvs;\n }\n\n private async _updateRootDirs(rootDirs: string[]) {\n try {\n const existingDirs = await fs.readdir(this.workspace.rootComponentsPath);\n await Promise.all(\n existingDirs.map(async (dirName) => {\n const dirPath = path.join(this.workspace.rootComponentsPath, dirName);\n if (!rootDirs.includes(dirPath)) {\n await fs.remove(dirPath);\n }\n })\n );\n } catch (err: any) {\n if (err.code !== 'ENOENT') throw err;\n }\n await Promise.all(rootDirs.map((dirPath) => fs.mkdir(dirPath, { recursive: true })));\n }\n\n private async _getRootManifests(\n manifests: Record<string, ProjectManifest>\n ): Promise<Record<string, ProjectManifest>> {\n const nonRootManifests = Object.values(manifests).filter(({ name }) => name !== 'workspace');\n const workspaceDeps = this.dependencyResolver.getWorkspaceDepsOfBitRoots(nonRootManifests);\n const workspaceDepsMeta = Object.keys(workspaceDeps).reduce((acc, depName) => {\n acc[depName] = { injected: true };\n return acc;\n }, {});\n const envManifests = await this._getEnvManifests(workspaceDeps, workspaceDepsMeta);\n const appManifests = await this._getAppManifests(manifests, workspaceDeps, workspaceDepsMeta);\n return {\n ...envManifests,\n ...appManifests,\n };\n }\n\n private async _getEnvManifests(\n workspaceDeps: Record<string, string>,\n workspaceDepsMeta: Record<string, { injected: true }>\n ): Promise<Record<string, ProjectManifest>> {\n const envs = await this._getAllUsedEnvIds();\n return Object.fromEntries(\n await Promise.all(\n envs.map(async (envId) => {\n return [\n await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, envId),\n {\n dependencies: {\n ...(await this._getEnvDependencies(envId)),\n ...workspaceDeps,\n ...(await this._getEnvPackage(envId)),\n },\n dependenciesMeta: workspaceDepsMeta,\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n );\n }\n\n private async _getEnvDependencies(envId: ComponentID): Promise<Record<string, string>> {\n const policy = await this.dependencyResolver.getEnvPolicyFromEnvId(envId);\n if (!policy) return {};\n return Object.fromEntries(\n policy.selfPolicy.entries\n .filter(({ force, value }) => force && value.version !== '-')\n .map(({ dependencyId, value }) => [dependencyId, value.version])\n );\n }\n\n /**\n * Return the package name of the env with its version.\n * (only if the env is not a core env and is not in the workspace)\n * @param envId\n * @returns\n */\n private async _getEnvPackage(envId: ComponentID): Promise<Record<string, string> | undefined> {\n if (this.envs.isCoreEnv(envId.toStringWithoutVersion())) return undefined;\n const inWs = await this.workspace.hasId(envId);\n if (inWs) return undefined;\n const envComponent = await this.envs.getEnvComponentByEnvId(envId.toString(), envId.toString());\n if (!envComponent) return undefined;\n const packageName = this.dependencyResolver.getPackageName(envComponent);\n const version = envId.version;\n const finalVersion = snapToSemver(version as string);\n return { [packageName]: finalVersion };\n }\n\n private async _getAppManifests(\n manifests: Record<string, ProjectManifest>,\n workspaceDeps: Record<string, string>,\n workspaceDepsMeta: Record<string, { injected: true }>\n ): Promise<Record<string, ProjectManifest>> {\n return Object.fromEntries(\n compact(\n await Promise.all(\n (await this.app.listAppsComponents()).map(async (app) => {\n const appPkgName = this.dependencyResolver.getPackageName(app);\n const appManifest = Object.values(manifests).find(({ name }) => name === appPkgName);\n if (!appManifest) return null;\n const envId = await this.envs.calculateEnvId(app);\n return [\n await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, app.id),\n {\n ...omit(appManifest, ['name', 'version']),\n dependencies: {\n ...(await this._getEnvDependencies(envId)),\n ...appManifest.dependencies,\n ...workspaceDeps,\n },\n dependenciesMeta: {\n ...appManifest.dependenciesMeta,\n ...workspaceDepsMeta,\n },\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n )\n );\n }\n\n private async _getAllUsedEnvIds(): Promise<ComponentID[]> {\n const envs = new Map<string, ComponentID>();\n const components = await this.workspace.list();\n await pMapSeries(components, async (component) => {\n const envId = await this.envs.calculateEnvId(component);\n envs.set(envId.toString(), envId);\n });\n return Array.from(envs.values());\n }\n\n /**\n * Updates out-of-date dependencies in the workspace.\n *\n * @param options.all {Boolean} updates all outdated dependencies without showing a prompt.\n */\n async updateDependencies(options: {\n forceVersionBump?: 'major' | 'minor' | 'patch' | 'compatible';\n patterns?: string[];\n all: boolean;\n }): Promise<ComponentMap<string> | null> {\n const componentPolicies = await this._getComponentsWithDependencyPolicies();\n const variantPatterns = this.variants.raw();\n const variantPoliciesByPatterns = this._variantPatternsToDepPolicesDict(variantPatterns);\n const components = await this.workspace.list();\n const outdatedPkgs = await this.dependencyResolver.getOutdatedPkgsFromPolicies({\n rootDir: this.workspace.path,\n variantPoliciesByPatterns,\n componentPolicies,\n components,\n patterns: options.patterns,\n forceVersionBump: options.forceVersionBump,\n });\n if (outdatedPkgs == null) {\n this.logger.consoleFailure('No dependencies found that match the patterns');\n return null;\n }\n let outdatedPkgsToUpdate!: MergedOutdatedPkg[];\n if (options.all) {\n outdatedPkgsToUpdate = outdatedPkgs;\n } else {\n this.logger.off();\n outdatedPkgsToUpdate = await pickOutdatedPkgs(outdatedPkgs);\n this.logger.on();\n }\n if (outdatedPkgsToUpdate.length === 0) {\n this.logger.consoleSuccess('No outdated dependencies found');\n if (options.forceVersionBump === 'compatible') {\n this.logger.console(\n \"If you want to find new versions that don't match the current version ranges, retry with the --latest flag\"\n );\n }\n return null;\n }\n const { updatedVariants, updatedComponents } = this.dependencyResolver.applyUpdates(outdatedPkgsToUpdate, {\n variantPoliciesByPatterns,\n });\n await this._updateVariantsPolicies(variantPatterns, updatedVariants);\n await this._updateComponentsConfig(updatedComponents);\n await this.workspace._reloadConsumer();\n return this._installModules({ dedupe: true });\n }\n\n async addDuplicateComponentAndPackageIssue(components: Component[]) {\n const workspacePolicy = this.dependencyResolver.getWorkspacePolicy();\n components.forEach((component) => {\n if (component.state._consumer.removed) return;\n const pkgName = componentIdToPackageName(component.state._consumer);\n const found = workspacePolicy.find(pkgName);\n if (found) {\n component.state.issues.getOrCreate(IssuesClasses.DuplicateComponentAndPackage).data = found.dependencyId;\n }\n });\n }\n\n private async _getComponentsWithDependencyPolicies() {\n const allComponentIds = this.workspace.listIds();\n const componentPolicies = [] as Array<{ componentId: ComponentID; policy: any }>;\n (\n await Promise.all<ComponentConfigFile | undefined>(\n allComponentIds.map((componentId) => this.workspace.componentConfigFile(componentId))\n )\n ).forEach((componentConfigFile, index) => {\n if (!componentConfigFile) return;\n const depResolverConfig = componentConfigFile.aspects.get(DependencyResolverAspect.id);\n if (!depResolverConfig) return;\n const componentId = allComponentIds[index];\n componentPolicies.push({ componentId, policy: depResolverConfig.config.policy });\n });\n return componentPolicies;\n }\n\n private _variantPatternsToDepPolicesDict(variantPatterns: Patterns): Record<string, VariantPolicyConfigObject> {\n const variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject> = {};\n for (const [variantPattern, extensions] of Object.entries(variantPatterns)) {\n if (extensions[DependencyResolverAspect.id]?.policy) {\n variantPoliciesByPatterns[variantPattern] = extensions[DependencyResolverAspect.id]?.policy;\n }\n }\n return variantPoliciesByPatterns;\n }\n\n private async _updateComponentsConfig(updatedComponents: UpdatedComponent[]) {\n if (updatedComponents.length === 0) return;\n await Promise.all(\n updatedComponents.map(({ componentId, config }) => {\n return this.workspace.addSpecificComponentConfig(componentId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n await this.workspace.bitMap.write('update (dependencies)');\n }\n\n private async _updateVariantsPolicies(variantPatterns: Record<string, any>, updateVariantPolicies: string[]) {\n for (const variantPattern of updateVariantPolicies) {\n this.variants.setExtension(\n variantPattern,\n DependencyResolverAspect.id,\n variantPatterns[variantPattern][DependencyResolverAspect.id],\n { overrideExisting: true }\n );\n }\n await this.dependencyResolver.persistConfig('update dependencies');\n }\n\n /**\n * Uninstall the specified packages from dependencies.\n *\n * @param {string[]} the list of packages that should be removed from dependencies.\n */\n async uninstallDependencies(packages: string[]) {\n this.dependencyResolver.removeFromRootPolicy(packages);\n await this.dependencyResolver.persistConfig('uninstall dependencies');\n return this._installModules({ dedupe: true });\n }\n\n /**\n * This function returns all the locations of the external links that should be created inside node_modules.\n * This information may then be passed to the package manager, which will create the links on its own.\n */\n async calculateLinks(\n options: WorkspaceLinkOptions = {}\n ): Promise<{ linkResults: WorkspaceLinkResults; linkedRootDeps: Record<string, string> }> {\n await pMapSeries(this.preLinkSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const compDirMap = await this.getComponentsDirectory([]);\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const { linkResults: res, linkedRootDeps } = await linker.calculateLinkedDeps(\n this.workspace.path,\n compDirMap,\n options\n );\n const workspaceRes = res as WorkspaceLinkResults;\n\n const legacyResults = await this.linkCodemods(compDirMap, options);\n workspaceRes.legacyLinkResults = legacyResults.linksResults;\n workspaceRes.legacyLinkCodemodResults = legacyResults.codemodResults;\n\n if (this.dependencyResolver.hasRootComponents() && options.linkToBitRoots) {\n await this._linkAllComponentsToBitRoots(compDirMap);\n }\n return { linkResults: res, linkedRootDeps };\n }\n\n async linkCodemods(compDirMap: ComponentMap<string>, options?: { rewire?: boolean }) {\n const bitIds = compDirMap.toArray().map(([component]) => component.id);\n return linkToNodeModulesWithCodemod(this.workspace, bitIds, options?.rewire ?? false);\n }\n\n async link(options: WorkspaceLinkOptions = {}): Promise<WorkspaceLinkResults> {\n const { linkResults, linkedRootDeps } = await this.calculateLinks(options);\n await createLinks(options.linkToDir ?? this.workspace.path, linkedRootDeps, {\n avoidHardLink: true,\n skipIfSymlinkValid: true,\n });\n return linkResults;\n }\n\n private async _linkAllComponentsToBitRoots(compDirMap: ComponentMap<string>) {\n const envs = await this._getAllUsedEnvIds();\n const apps = (await this.app.listAppsComponents()).map((component) => component.id);\n await Promise.all(\n [...envs, ...apps].map(async (id) => {\n const dir = await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, id);\n await fs.mkdirp(dir);\n })\n );\n await linkPkgsToRootComponents(\n {\n rootComponentsPath: this.workspace.rootComponentsPath,\n workspacePath: this.workspace.path,\n },\n compDirMap.components.map((component) => this.dependencyResolver.getPackageName(component))\n );\n }\n\n private async getRootComponentDirByRootId(rootComponentsPath: string, rootComponentId: ComponentID): Promise<string> {\n // Root directories for local envs and apps are created without their version number.\n // This is done in order to avoid changes to the lockfile after such components are tagged.\n const id = this.workspace.hasId(rootComponentId)\n ? rootComponentId.toStringWithoutVersion()\n : rootComponentId.toString();\n return getRootComponentDir(rootComponentsPath, id);\n }\n\n /**\n * Generate a filter to pass to the installer\n * This will filter deps which are come from remotes which defined in scope.json\n * those components comes from local remotes, usually doesn't have a package in a registry\n * so no reason to try to install them (it will fail)\n */\n private async generateFilterFnForDepsFromLocalRemote() {\n // TODO: once scope create a new API for this, replace it with the new one\n const remotes = await this.workspace.scope._legacyRemotes();\n const reg = await this.dependencyResolver.getRegistries();\n const packageScopes = Object.keys(reg.scopes);\n return (dependencyList: DependencyList): DependencyList => {\n const filtered = dependencyList.filter((dep) => {\n if (!(dep instanceof ComponentDependency)) {\n return true;\n }\n if (remotes.isHub(dep.componentId.scope)) {\n return true;\n }\n if (packageScopes.some((scope) => dep.packageName.startsWith(`@${scope}/`))) {\n return true;\n }\n return false;\n });\n return filtered;\n };\n }\n\n private async getComponentsDirectory(ids: ComponentID[]): Promise<ComponentMap<string>> {\n const components = ids.length\n ? await this.workspace.getMany(ids)\n : await this.workspace.list(undefined, { loadSeedersAsAspects: false });\n return ComponentMap.as<string>(components, (component) => this.workspace.componentDir(component.id));\n }\n\n private async onRootAspectAddedSubscriber(_aspectId: ComponentID, inWs: boolean): Promise<void> {\n if (!inWs) {\n await this.install();\n }\n }\n private async onAspectsResolveSubscriber(aspectComponents: Component[]): Promise<void> {\n let needLink = false;\n let needInstall = false;\n const promises = aspectComponents.map(async (aspectComponent) => {\n const aspectIdStr = aspectComponent.id.toString();\n if (this.visitedAspects.has(aspectIdStr)) return;\n\n this.visitedAspects.add(aspectIdStr);\n const packagePath = await this.workspace.getComponentPackagePath(aspectComponent);\n const exists = await pathExists(packagePath);\n if (!exists) {\n const inWs = await this.workspace.hasId(aspectComponent.id);\n if (inWs) {\n needLink = true;\n } else {\n needInstall = true;\n }\n }\n });\n await Promise.all(promises);\n if (needInstall) {\n await this.install();\n return;\n }\n if (needLink) {\n await this.link();\n }\n }\n\n async onComponentChange(component: Component) {\n const isEnv = this.envs.isEnv(component);\n if (isEnv) {\n await this.reloadEnvs([component.id]);\n }\n }\n\n static slots = [Slot.withType<PreLinkSlot>(), Slot.withType<PreInstallSlot>(), Slot.withType<PostInstallSlot>()];\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CompilerAspect,\n IssuesAspect,\n EnvsAspect,\n ApplicationAspect,\n IpcEventsAspect,\n GeneratorAspect,\n WorkspaceConfigFilesAspect,\n AspectLoaderAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [\n dependencyResolver,\n workspace,\n loggerExt,\n variants,\n cli,\n compiler,\n issues,\n envs,\n app,\n ipcEvents,\n generator,\n wsConfigFiles,\n aspectLoader,\n ]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CompilerMain,\n IssuesMain,\n EnvsMain,\n ApplicationMain,\n IpcEventsMain,\n GeneratorMain,\n WorkspaceConfigFilesMain,\n AspectLoaderMain,\n ],\n _,\n [preLinkSlot, preInstallSlot, postInstallSlot]: [PreLinkSlot, PreInstallSlot, PostInstallSlot],\n harmony: Harmony\n ) {\n const logger = loggerExt.createLogger(InstallAspect.id);\n const installExt = new InstallMain(\n dependencyResolver,\n logger,\n workspace,\n variants,\n compiler,\n envs,\n wsConfigFiles,\n aspectLoader,\n app,\n generator,\n preLinkSlot,\n preInstallSlot,\n postInstallSlot,\n ipcEvents,\n harmony\n );\n ipcEvents.registerGotEventSlot(async (eventName) => {\n if (eventName !== 'onPostInstall') return;\n logger.debug('got onPostInstall event, clear workspace and all components cache');\n await workspace.clearCache();\n await pMapSeries(postInstallSlot.values(), (fn) => fn());\n await installExt.reloadMovedEnvs();\n });\n if (issues) {\n issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));\n }\n generator.registerOnComponentCreate(installExt.onComponentCreate.bind(installExt));\n const commands: CommandList = [\n new InstallCmd(installExt, workspace, logger),\n new UninstallCmd(installExt),\n new UpdateCmd(installExt),\n new LinkCommand(installExt, workspace, logger),\n ];\n // For now do not automate installation during aspect resolving\n // workspace.registerOnAspectsResolve(installExt.onAspectsResolveSubscriber.bind(installExt));\n if (workspace) {\n workspace.registerOnRootAspectAdded(installExt.onRootAspectAddedSubscriber.bind(installExt));\n workspace.registerOnComponentChange(installExt.onComponentChange.bind(installExt));\n }\n cli.register(...commands);\n return installExt;\n }\n}\n\ntype ComponentsAndManifests = {\n componentDirectoryMap: ComponentMap<string>;\n manifests: Record<string, ProjectManifest>;\n};\n\nfunction hasComponentsFromWorkspaceInMissingDeps({\n componentDirectoryMap,\n manifests,\n}: ComponentsAndManifests): boolean {\n const missingDeps = new Set<string>(\n componentDirectoryMap\n .toArray()\n .map(([{ state }]) => {\n const issue = state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs);\n if (!issue) return [];\n return issue.data.map((d) => d.missingPackages).flat();\n })\n .flat()\n );\n return Object.values(manifests).some(({ name }) => name && missingDeps.has(name));\n}\n\nInstallAspect.addRuntime(InstallMain);\n\nexport default InstallMain;\n\nfunction manifestsHash(manifests: Record<string, ProjectManifest>): string {\n // We don't care if the type of the dependency changes as it doesn't change the node_modules structure\n const depsByProjectPaths = mapValues(manifests, (manifest) => ({\n ...manifest.devDependencies,\n ...manifest.dependencies,\n }));\n return hash(depsByProjectPaths);\n}\n"],"mappings":"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","ignoreList":[]}