@teambit/install 0.0.96 → 0.0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,6 +23,13 @@ function _community() {
23
23
  };
24
24
  return data;
25
25
  }
26
+ function _link() {
27
+ const data = require("@teambit/legacy/dist/api/consumer/lib/link");
28
+ _link = function () {
29
+ return data;
30
+ };
31
+ return data;
32
+ }
26
33
  function _compiler() {
27
34
  const data = require("@teambit/compiler");
28
35
  _compiler = function () {
@@ -149,9 +156,9 @@ function _pickOutdatedPkgs() {
149
156
  };
150
157
  return data;
151
158
  }
152
- function _link() {
159
+ function _link2() {
153
160
  const data = require("./link");
154
- _link = function () {
161
+ _link2 = function () {
155
162
  return data;
156
163
  };
157
164
  return data;
@@ -287,14 +294,12 @@ class InstallMain {
287
294
  // TODO: add the links results to the output
288
295
  await this.link({
289
296
  linkTeambitBit: true,
290
- legacyLink: true,
291
297
  linkCoreAspects: this.dependencyResolver.linkCoreAspects(),
292
298
  linkDepsResolvedFromEnv: !hasRootComponents,
293
299
  linkNestedDepsInNM: false
294
300
  });
295
301
  const linkOpts = {
296
302
  linkTeambitBit: false,
297
- legacyLink: true,
298
303
  linkCoreAspects: false,
299
304
  linkDepsResolvedFromEnv: !hasRootComponents,
300
305
  linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents
@@ -465,8 +470,8 @@ class InstallMain {
465
470
  return res;
466
471
  }
467
472
  async link(options = {}) {
473
+ var _options$rewire;
468
474
  await (0, _pMapSeries().default)(this.preLinkSlot.values(), fn => fn(options)); // import objects if not disabled in options
469
- options.consumer = this.workspace.consumer;
470
475
  const compDirMap = await this.getComponentsDirectory([]);
471
476
  const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();
472
477
  const linker = this.dependencyResolver.getLinker({
@@ -474,6 +479,10 @@ class InstallMain {
474
479
  linkingOptions: options
475
480
  });
476
481
  const res = await linker.link(this.workspace.path, mergedRootPolicy, compDirMap, options);
482
+ const bitIds = compDirMap.toArray().map(([component]) => component.id._legacy);
483
+ const legacyResults = await (0, _link().link)(this.workspace.consumer, bitIds, (_options$rewire = options.rewire) !== null && _options$rewire !== void 0 ? _options$rewire : false);
484
+ res.legacyLinkResults = legacyResults.linksResults;
485
+ res.legacyLinkCodemodResults = legacyResults.codemodResults;
477
486
  return res;
478
487
  }
479
488
 
@@ -514,7 +523,7 @@ class InstallMain {
514
523
  if (issues) {
515
524
  issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));
516
525
  }
517
- const commands = [new (_install2().default)(installExt, workspace, logger), new (_uninstall().default)(installExt), new (_update().default)(installExt), new (_link().LinkCommand)(installExt, workspace, logger, community.getDocsDomain())];
526
+ const commands = [new (_install2().default)(installExt, workspace, logger), new (_uninstall().default)(installExt), new (_update().default)(installExt), new (_link2().LinkCommand)(installExt, workspace, logger, community.getDocsDomain())];
518
527
  cli.register(...commands);
519
528
  if (dependencyResolver.hasRootComponents()) {
520
529
  workspace.registerOnMultipleComponentsAdd(async () => {
@@ -1 +1 @@
1
- {"version":3,"names":["InstallMain","constructor","dependencyResolver","logger","workspace","variants","compiler","preLinkSlot","preInstallSlot","install","packages","options","length","_addPackages","addMissingPeers","compDirMap","getComponentsDirectory","mergedRootPolicy","getWorkspacePolicy","depsFilterFn","generateFilterFnForDepsFromLocalRemote","pmInstallOptions","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","dependencyFilterFn","overrides","config","packageImportMethod","missingPeers","getMissingPeerDependencies","path","missingPeerPackages","Object","entries","map","peerName","range","console","pMapSeries","values","fn","_installModules","registerPreLink","register","registerPreInstall","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","resolvedPackages","Promise","all","newWorkspacePolicyEntries","forEach","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","savePrefix","push","dependencyId","value","addToRootPolicy","updateExisting","persistConfig","chalk","cyan","getPackageManagerName","hasRootComponents","rootComponents","installer","getInstaller","current","_getComponentsManifests","prevManifests","Set","link","linkTeambitBit","legacyLink","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","linkOpts","isLegacy","installCycle","hasMissingLocalComponents","hasComponentsFromWorkspaceInMissingDeps","consumer","componentLoader","clearComponentsCache","clearCache","installComponents","manifests","componentDirectoryMap","installTeambitBit","linkCoreAspectsAndLegacy","rootPolicy","compile","compileOnWorkspace","initiator","CompilationInitiator","Install","add","hash","has","dependencyInstaller","installOptions","getComponentManifests","updateDependencies","componentConfigFiles","componentPoliciesById","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","components","list","outdatedPkgs","getOutdatedPkgsFromPolicies","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","updatedComponentConfigFiles","pick","_saveManyComponentConfigFiles","_reloadConsumer","addDuplicateComponentAndPackageIssue","workspacePolicy","component","state","_consumer","removed","pkgName","componentIdToPackageName","found","find","issues","getOrCreate","IssuesClasses","DuplicateComponentAndPackage","data","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","aspects","get","DependencyResolverAspect","id","toString","policy","variantPattern","extensions","updateVariantPolicies","setExtension","overrideExisting","Array","from","write","override","uninstallDependencies","removeFromRootPolicy","linker","getLinker","linkingOptions","compIds","res","remotes","scope","_legacyRemotes","reg","getRegistries","packageScopes","keys","scopes","dependencyList","filtered","filter","dep","ComponentDependency","isHub","some","startsWith","ids","getMany","ComponentMap","as","componentDir","provider","loggerExt","cli","community","_","createLogger","installExt","registerAddComponentsIssues","bind","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","getDocsDomain","registerOnMultipleComponentsAdd","undefined","import","Slot","withType","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CommunityAspect","CompilerAspect","IssuesAspect","MainRuntime","missingDeps","toArray","issue","getIssue","MissingPackagesDependenciesOnFs","flat","name","InstallAspect","addRuntime"],"sources":["install.main.runtime.ts"],"sourcesContent":["import { CommunityMain, CommunityAspect } from '@teambit/community';\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 { pick } from 'lodash';\nimport { ProjectManifest } from '@pnpm/types';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { VariantsMain, Patterns, VariantsAspect } from '@teambit/variants';\nimport { Component, ComponentID, ComponentMap } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport {\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyInstaller,\n DependencyResolverAspect,\n PackageManagerInstallOptions,\n ComponentDependency,\n VariantPolicyConfigObject,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n OutdatedPkg,\n WorkspacePolicy,\n} from '@teambit/dependency-resolver';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\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};\n\nexport type WorkspaceInstallOptions = {\n addMissingPeers?: boolean;\n variants?: string;\n lifecycleType?: WorkspaceDependencyLifecycleType;\n dedupe?: boolean;\n import?: boolean;\n copyPeerToRuntimeOnRoot?: boolean;\n copyPeerToRuntimeOnComponents?: boolean;\n updateExisting?: boolean;\n savePrefix?: string;\n compile?: boolean;\n};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\n\ntype PreLink = (linkOpts?: WorkspaceLinkOptions) => Promise<void>;\ntype PreInstall = (installOpts?: WorkspaceInstallOptions) => Promise<void>;\n\ntype PreLinkSlot = SlotRegistry<PreLink>;\ntype PreInstallSlot = SlotRegistry<PreInstall>;\n\nexport class InstallMain {\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 preLinkSlot: PreLinkSlot,\n\n private preInstallSlot: PreInstallSlot\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 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 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 return this._installModules(options);\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 private async _addPackages(packages: string[], options?: WorkspaceInstallOptions) {\n if (!options?.variants && (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 resolvedPackage.version,\n options?.savePrefix\n );\n newWorkspacePolicyEntries.push({\n dependencyId: resolvedPackage.packageName,\n value: {\n version: versionWithPrefix,\n },\n lifecycleType: options?.lifecycleType || 'runtime',\n });\n }\n });\n if (!options?.variants) {\n this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: options?.updateExisting ?? false,\n });\n } else {\n // TODO: implement\n }\n await this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async _installModules(options?: ModulesInstallOptions): Promise<ComponentMap<string>> {\n this.logger.console(\n `installing dependencies in workspace using ${chalk.cyan(this.dependencyResolver.getPackageManagerName())}`\n );\n this.logger.debug(`installing dependencies in workspace with options`, options);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: !hasRootComponents && options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n };\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n let current = await this._getComponentsManifests(installer, mergedRootPolicy, pmInstallOptions);\n const prevManifests = new Set<string>();\n // TODO: this make duplicate\n // this.logger.consoleSuccess();\n // TODO: add the links results to the output\n await this.link({\n linkTeambitBit: true,\n legacyLink: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: false,\n });\n const linkOpts = {\n linkTeambitBit: false,\n legacyLink: true,\n linkCoreAspects: false,\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n };\n let installCycle = 0;\n let hasMissingLocalComponents = true;\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 this.workspace.consumer.componentLoader.clearComponentsCache();\n this.workspace.clearCache();\n await installer.installComponents(\n this.workspace.path,\n current.manifests,\n mergedRootPolicy,\n current.componentDirectoryMap,\n { installTeambitBit: false },\n pmInstallOptions\n );\n // Core aspects should be relinked after installation because Yarn removes all symlinks created not by Yarn.\n // If we don't link the core aspects immediately, the components will fail during load.\n await this.linkCoreAspectsAndLegacy({\n linkTeambitBit: false,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n rootPolicy: mergedRootPolicy,\n });\n if (options?.compile) {\n await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install });\n }\n await this.link(linkOpts);\n prevManifests.add(hash(current.manifests));\n current = await this._getComponentsManifests(installer, mergedRootPolicy, pmInstallOptions);\n installCycle += 1;\n } while ((!prevManifests.has(hash(current.manifests)) || hasMissingLocalComponents) && installCycle < 5);\n /* eslint-enable no-await-in-loop */\n return current.componentDirectoryMap;\n }\n\n private async _getComponentsManifests(\n dependencyInstaller: DependencyInstaller,\n rootPolicy: WorkspacePolicy,\n installOptions: Pick<\n PackageManagerInstallOptions,\n 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents'\n >\n ): Promise<ComponentsAndManifests> {\n const componentDirectoryMap = await this.getComponentsDirectory([]);\n const manifests = await dependencyInstaller.getComponentManifests({\n ...installOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: this.workspace.path,\n });\n return {\n componentDirectoryMap,\n manifests,\n };\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: { all: boolean }) {\n const { componentConfigFiles, componentPoliciesById } = 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 componentPoliciesById,\n components,\n });\n let outdatedPkgsToUpdate!: OutdatedPkg[];\n if (options.all) {\n outdatedPkgsToUpdate = outdatedPkgs;\n } else {\n this.logger.off();\n outdatedPkgsToUpdate = await pickOutdatedPkgs(outdatedPkgs);\n this.logger.on();\n }\n const { updatedVariants, updatedComponents } = this.dependencyResolver.applyUpdates(outdatedPkgsToUpdate, {\n variantPoliciesByPatterns,\n componentPoliciesById,\n });\n await this._updateVariantsPolicies(variantPatterns, updatedVariants);\n const updatedComponentConfigFiles = Object.values(pick(componentConfigFiles, updatedComponents));\n await this._saveManyComponentConfigFiles(updatedComponentConfigFiles);\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 = await this.workspace.listIds();\n const componentConfigFiles: Record<string, ComponentConfigFile> = {};\n const componentPoliciesById: Record<string, 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].toString();\n componentConfigFiles[componentId] = componentConfigFile;\n componentPoliciesById[componentId] = depResolverConfig.config.policy;\n });\n return {\n componentConfigFiles,\n componentPoliciesById,\n };\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 _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 return this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async _saveManyComponentConfigFiles(componentConfigFiles: ComponentConfigFile[]) {\n await Promise.all(\n Array.from(componentConfigFiles).map(async (componentConfigFile) => {\n await componentConfigFile.write({ override: true });\n })\n );\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(this.workspace.path);\n return this._installModules({ dedupe: true });\n }\n\n async linkCoreAspectsAndLegacy(options: WorkspaceLinkOptions = {}) {\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const compIds = await this.workspace.listIds();\n const res = await linker.linkCoreAspectsAndLegacy(this.workspace.path, compIds, options.rootPolicy, options);\n return res;\n }\n\n async link(options: WorkspaceLinkOptions = {}): Promise<LinkResults> {\n await pMapSeries(this.preLinkSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n options.consumer = this.workspace.consumer;\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const res = await linker.link(this.workspace.path, mergedRootPolicy, compDirMap, options);\n return res;\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 ? await this.workspace.getMany(ids) : await this.workspace.list();\n return ComponentMap.as<string>(components, (component) => this.workspace.componentDir(component.id));\n }\n\n static slots = [Slot.withType<PreLinkSlot>(), Slot.withType<PreInstallSlot>()];\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CommunityAspect,\n CompilerAspect,\n IssuesAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [dependencyResolver, workspace, loggerExt, variants, cli, community, compiler, issues]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CommunityMain,\n CompilerMain,\n IssuesMain\n ],\n _,\n [preLinkSlot, preInstallSlot]: [PreLinkSlot, PreInstallSlot]\n ) {\n const logger = loggerExt.createLogger('teambit.bit/install');\n const installExt = new InstallMain(\n dependencyResolver,\n logger,\n workspace,\n variants,\n compiler,\n preLinkSlot,\n preInstallSlot\n );\n if (issues) {\n issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));\n }\n const commands: CommandList = [\n new InstallCmd(installExt, workspace, logger),\n new UninstallCmd(installExt),\n new UpdateCmd(installExt),\n new LinkCommand(installExt, workspace, logger, community.getDocsDomain()),\n ];\n cli.register(...commands);\n if (dependencyResolver.hasRootComponents()) {\n workspace.registerOnMultipleComponentsAdd(async () => {\n await installExt.install(undefined, { compile: true, import: false });\n });\n }\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 Object.values(issue.data).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"],"mappings":"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"}
1
+ {"version":3,"names":["InstallMain","constructor","dependencyResolver","logger","workspace","variants","compiler","preLinkSlot","preInstallSlot","install","packages","options","length","_addPackages","addMissingPeers","compDirMap","getComponentsDirectory","mergedRootPolicy","getWorkspacePolicy","depsFilterFn","generateFilterFnForDepsFromLocalRemote","pmInstallOptions","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","dependencyFilterFn","overrides","config","packageImportMethod","missingPeers","getMissingPeerDependencies","path","missingPeerPackages","Object","entries","map","peerName","range","console","pMapSeries","values","fn","_installModules","registerPreLink","register","registerPreInstall","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","resolvedPackages","Promise","all","newWorkspacePolicyEntries","forEach","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","savePrefix","push","dependencyId","value","addToRootPolicy","updateExisting","persistConfig","chalk","cyan","getPackageManagerName","hasRootComponents","rootComponents","installer","getInstaller","current","_getComponentsManifests","prevManifests","Set","link","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","linkOpts","isLegacy","installCycle","hasMissingLocalComponents","hasComponentsFromWorkspaceInMissingDeps","consumer","componentLoader","clearComponentsCache","clearCache","installComponents","manifests","componentDirectoryMap","installTeambitBit","linkCoreAspectsAndLegacy","rootPolicy","compile","compileOnWorkspace","initiator","CompilationInitiator","Install","add","hash","has","dependencyInstaller","installOptions","getComponentManifests","updateDependencies","componentConfigFiles","componentPoliciesById","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","components","list","outdatedPkgs","getOutdatedPkgsFromPolicies","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","updatedComponentConfigFiles","pick","_saveManyComponentConfigFiles","_reloadConsumer","addDuplicateComponentAndPackageIssue","workspacePolicy","component","state","_consumer","removed","pkgName","componentIdToPackageName","found","find","issues","getOrCreate","IssuesClasses","DuplicateComponentAndPackage","data","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","aspects","get","DependencyResolverAspect","id","toString","policy","variantPattern","extensions","updateVariantPolicies","setExtension","overrideExisting","Array","from","write","override","uninstallDependencies","removeFromRootPolicy","linker","getLinker","linkingOptions","compIds","res","bitIds","toArray","_legacy","legacyResults","legacyLink","rewire","legacyLinkResults","linksResults","legacyLinkCodemodResults","codemodResults","remotes","scope","_legacyRemotes","reg","getRegistries","packageScopes","keys","scopes","dependencyList","filtered","filter","dep","ComponentDependency","isHub","some","startsWith","ids","getMany","ComponentMap","as","componentDir","provider","loggerExt","cli","community","_","createLogger","installExt","registerAddComponentsIssues","bind","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","getDocsDomain","registerOnMultipleComponentsAdd","undefined","import","Slot","withType","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CommunityAspect","CompilerAspect","IssuesAspect","MainRuntime","missingDeps","issue","getIssue","MissingPackagesDependenciesOnFs","flat","name","InstallAspect","addRuntime"],"sources":["install.main.runtime.ts"],"sourcesContent":["import { CommunityMain, CommunityAspect } from '@teambit/community';\nimport { link as legacyLink } from '@teambit/legacy/dist/api/consumer/lib/link';\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 { pick } from 'lodash';\nimport { ProjectManifest } from '@pnpm/types';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { VariantsMain, Patterns, VariantsAspect } from '@teambit/variants';\nimport { Component, ComponentID, ComponentMap } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport {\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyInstaller,\n DependencyResolverAspect,\n PackageManagerInstallOptions,\n ComponentDependency,\n VariantPolicyConfigObject,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n OutdatedPkg,\n WorkspacePolicy,\n} from '@teambit/dependency-resolver';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\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};\n\nexport type WorkspaceInstallOptions = {\n addMissingPeers?: boolean;\n variants?: string;\n lifecycleType?: WorkspaceDependencyLifecycleType;\n dedupe?: boolean;\n import?: boolean;\n copyPeerToRuntimeOnRoot?: boolean;\n copyPeerToRuntimeOnComponents?: boolean;\n updateExisting?: boolean;\n savePrefix?: string;\n compile?: boolean;\n};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\n\ntype PreLink = (linkOpts?: WorkspaceLinkOptions) => Promise<void>;\ntype PreInstall = (installOpts?: WorkspaceInstallOptions) => Promise<void>;\n\ntype PreLinkSlot = SlotRegistry<PreLink>;\ntype PreInstallSlot = SlotRegistry<PreInstall>;\n\nexport class InstallMain {\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 preLinkSlot: PreLinkSlot,\n\n private preInstallSlot: PreInstallSlot\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 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 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 return this._installModules(options);\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 private async _addPackages(packages: string[], options?: WorkspaceInstallOptions) {\n if (!options?.variants && (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 resolvedPackage.version,\n options?.savePrefix\n );\n newWorkspacePolicyEntries.push({\n dependencyId: resolvedPackage.packageName,\n value: {\n version: versionWithPrefix,\n },\n lifecycleType: options?.lifecycleType || 'runtime',\n });\n }\n });\n if (!options?.variants) {\n this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: options?.updateExisting ?? false,\n });\n } else {\n // TODO: implement\n }\n await this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async _installModules(options?: ModulesInstallOptions): Promise<ComponentMap<string>> {\n this.logger.console(\n `installing dependencies in workspace using ${chalk.cyan(this.dependencyResolver.getPackageManagerName())}`\n );\n this.logger.debug(`installing dependencies in workspace with options`, options);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: !hasRootComponents && options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n };\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n let current = await this._getComponentsManifests(installer, mergedRootPolicy, pmInstallOptions);\n const prevManifests = new Set<string>();\n // TODO: this make duplicate\n // this.logger.consoleSuccess();\n // TODO: add the links results to the output\n await this.link({\n linkTeambitBit: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: false,\n });\n const linkOpts = {\n linkTeambitBit: false,\n linkCoreAspects: false,\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n };\n let installCycle = 0;\n let hasMissingLocalComponents = true;\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 this.workspace.consumer.componentLoader.clearComponentsCache();\n this.workspace.clearCache();\n await installer.installComponents(\n this.workspace.path,\n current.manifests,\n mergedRootPolicy,\n current.componentDirectoryMap,\n { installTeambitBit: false },\n pmInstallOptions\n );\n // Core aspects should be relinked after installation because Yarn removes all symlinks created not by Yarn.\n // If we don't link the core aspects immediately, the components will fail during load.\n await this.linkCoreAspectsAndLegacy({\n linkTeambitBit: false,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n rootPolicy: mergedRootPolicy,\n });\n if (options?.compile) {\n await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install });\n }\n await this.link(linkOpts);\n prevManifests.add(hash(current.manifests));\n current = await this._getComponentsManifests(installer, mergedRootPolicy, pmInstallOptions);\n installCycle += 1;\n } while ((!prevManifests.has(hash(current.manifests)) || hasMissingLocalComponents) && installCycle < 5);\n /* eslint-enable no-await-in-loop */\n return current.componentDirectoryMap;\n }\n\n private async _getComponentsManifests(\n dependencyInstaller: DependencyInstaller,\n rootPolicy: WorkspacePolicy,\n installOptions: Pick<\n PackageManagerInstallOptions,\n 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents'\n >\n ): Promise<ComponentsAndManifests> {\n const componentDirectoryMap = await this.getComponentsDirectory([]);\n const manifests = await dependencyInstaller.getComponentManifests({\n ...installOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: this.workspace.path,\n });\n return {\n componentDirectoryMap,\n manifests,\n };\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: { all: boolean }) {\n const { componentConfigFiles, componentPoliciesById } = 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 componentPoliciesById,\n components,\n });\n let outdatedPkgsToUpdate!: OutdatedPkg[];\n if (options.all) {\n outdatedPkgsToUpdate = outdatedPkgs;\n } else {\n this.logger.off();\n outdatedPkgsToUpdate = await pickOutdatedPkgs(outdatedPkgs);\n this.logger.on();\n }\n const { updatedVariants, updatedComponents } = this.dependencyResolver.applyUpdates(outdatedPkgsToUpdate, {\n variantPoliciesByPatterns,\n componentPoliciesById,\n });\n await this._updateVariantsPolicies(variantPatterns, updatedVariants);\n const updatedComponentConfigFiles = Object.values(pick(componentConfigFiles, updatedComponents));\n await this._saveManyComponentConfigFiles(updatedComponentConfigFiles);\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 = await this.workspace.listIds();\n const componentConfigFiles: Record<string, ComponentConfigFile> = {};\n const componentPoliciesById: Record<string, 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].toString();\n componentConfigFiles[componentId] = componentConfigFile;\n componentPoliciesById[componentId] = depResolverConfig.config.policy;\n });\n return {\n componentConfigFiles,\n componentPoliciesById,\n };\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 _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 return this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async _saveManyComponentConfigFiles(componentConfigFiles: ComponentConfigFile[]) {\n await Promise.all(\n Array.from(componentConfigFiles).map(async (componentConfigFile) => {\n await componentConfigFile.write({ override: true });\n })\n );\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(this.workspace.path);\n return this._installModules({ dedupe: true });\n }\n\n async linkCoreAspectsAndLegacy(options: WorkspaceLinkOptions = {}) {\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const compIds = await this.workspace.listIds();\n const res = await linker.linkCoreAspectsAndLegacy(this.workspace.path, compIds, options.rootPolicy, options);\n return res;\n }\n\n async link(options: WorkspaceLinkOptions = {}): Promise<LinkResults> {\n await pMapSeries(this.preLinkSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const res = await linker.link(this.workspace.path, mergedRootPolicy, compDirMap, options);\n\n const bitIds = compDirMap.toArray().map(([component]) => component.id._legacy);\n const legacyResults = await legacyLink(this.workspace.consumer, bitIds, options.rewire ?? false);\n res.legacyLinkResults = legacyResults.linksResults;\n res.legacyLinkCodemodResults = legacyResults.codemodResults;\n\n return res;\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 ? await this.workspace.getMany(ids) : await this.workspace.list();\n return ComponentMap.as<string>(components, (component) => this.workspace.componentDir(component.id));\n }\n\n static slots = [Slot.withType<PreLinkSlot>(), Slot.withType<PreInstallSlot>()];\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CommunityAspect,\n CompilerAspect,\n IssuesAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [dependencyResolver, workspace, loggerExt, variants, cli, community, compiler, issues]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CommunityMain,\n CompilerMain,\n IssuesMain\n ],\n _,\n [preLinkSlot, preInstallSlot]: [PreLinkSlot, PreInstallSlot]\n ) {\n const logger = loggerExt.createLogger('teambit.bit/install');\n const installExt = new InstallMain(\n dependencyResolver,\n logger,\n workspace,\n variants,\n compiler,\n preLinkSlot,\n preInstallSlot\n );\n if (issues) {\n issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));\n }\n const commands: CommandList = [\n new InstallCmd(installExt, workspace, logger),\n new UninstallCmd(installExt),\n new UpdateCmd(installExt),\n new LinkCommand(installExt, workspace, logger, community.getDocsDomain()),\n ];\n cli.register(...commands);\n if (dependencyResolver.hasRootComponents()) {\n workspace.registerOnMultipleComponentsAdd(async () => {\n await installExt.install(undefined, { compile: true, import: false });\n });\n }\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 Object.values(issue.data).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"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAeA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAqC;AAAA;AA2B9B,MAAMA,WAAW,CAAC;EACvBC,WAAW,CACDC,kBAA0C,EAE1CC,MAAc,EAEdC,SAAoB,EAEpBC,QAAsB,EAEtBC,QAAsB,EAEtBC,WAAwB,EAExBC,cAA8B,EACtC;IAAA,KAbQN,kBAA0C,GAA1CA,kBAA0C;IAAA,KAE1CC,MAAc,GAAdA,MAAc;IAAA,KAEdC,SAAoB,GAApBA,SAAoB;IAAA,KAEpBC,QAAsB,GAAtBA,QAAsB;IAAA,KAEtBC,QAAsB,GAAtBA,QAAsB;IAAA,KAEtBC,WAAwB,GAAxBA,WAAwB;IAAA,KAExBC,cAA8B,GAA9BA,cAA8B;EACrC;EACH;AACF;AACA;AACA;AACA;AACA;EACE,MAAMC,OAAO,CAACC,QAAmB,EAAEC,OAAiC,EAAiC;IACnG,IAAID,QAAQ,IAAIA,QAAQ,CAACE,MAAM,EAAE;MAC/B,MAAM,IAAI,CAACC,YAAY,CAACH,QAAQ,EAAEC,OAAO,CAAC;IAC5C;IACA,IAAIA,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,eAAe,EAAE;MAAA;MAC5B,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACC,sBAAsB,CAAC,EAAE,CAAC;MACxD,MAAMC,gBAAgB,GAAG,IAAI,CAACf,kBAAkB,CAACgB,kBAAkB,EAAE;MACrE,MAAMC,YAAY,GAAG,MAAM,IAAI,CAACC,sCAAsC,EAAE;MACxE,MAAMC,gBAA8C,GAAG;QACrDC,MAAM,EAAEX,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEW,MAAM;QACvBC,uBAAuB,2BAAEZ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEY,uBAAuB,yEAAI,IAAI;QACjEC,6BAA6B,4BAAEb,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEa,6BAA6B,2EAAI,KAAK;QAC9EC,kBAAkB,EAAEN,YAAY;QAChCO,SAAS,EAAE,IAAI,CAACxB,kBAAkB,CAACyB,MAAM,CAACD,SAAS;QACnDE,mBAAmB,EAAE,IAAI,CAAC1B,kBAAkB,CAACyB,MAAM,CAACC;MACtD,CAAC;MACD,MAAMC,YAAY,GAAG,MAAM,IAAI,CAAC3B,kBAAkB,CAAC4B,0BAA0B,CAC3E,IAAI,CAAC1B,SAAS,CAAC2B,IAAI,EACnBd,gBAAgB,EAChBF,UAAU,EACVM,gBAAgB,CACjB;MACD,IAAIQ,YAAY,EAAE;QAChB,MAAMG,mBAAmB,GAAGC,MAAM,CAACC,OAAO,CAACL,YAAY,CAAC,CAACM,GAAG,CAAC,CAAC,CAACC,QAAQ,EAAEC,KAAK,CAAC,KAAM,GAAED,QAAS,IAAGC,KAAM,EAAC,CAAC;QAC3G,MAAM,IAAI,CAACxB,YAAY,CAACmB,mBAAmB,EAAErB,OAAO,CAAC;MACvD,CAAC,MAAM;QACL,IAAI,CAACR,MAAM,CAACmC,OAAO,CAAC,qCAAqC,CAAC;MAC5D;IACF;IACA,MAAM,IAAAC,qBAAU,EAAC,IAAI,CAAC/B,cAAc,CAACgC,MAAM,EAAE,EAAGC,EAAE,IAAKA,EAAE,CAAC9B,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC+B,eAAe,CAAC/B,OAAO,CAAC;EACtC;EAEAgC,eAAe,CAACF,EAAW,EAAE;IAC3B,IAAI,CAAClC,WAAW,CAACqC,QAAQ,CAACH,EAAE,CAAC;EAC/B;EAEAI,kBAAkB,CAACJ,EAAc,EAAE;IACjC,IAAI,CAACjC,cAAc,CAACoC,QAAQ,CAACH,EAAE,CAAC;EAClC;EAEA,MAAc5B,YAAY,CAACH,QAAkB,EAAEC,OAAiC,EAAE;IAChF,IAAI,EAACA,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEN,QAAQ,KAAI,CAACM,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEmC,aAAa,MAAgB,KAAK,EAAE;MACtE,MAAM,KAAIC,gDAAkC,EAACpC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEmC,aAAa,CAAW;IAChF;IACA,IAAI,CAAC3C,MAAM,CAAC6C,KAAK,CAAE,sCAAqCtC,QAAQ,CAACuC,IAAI,EAAG,EAAC,CAAC;IAC1E,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAAChD,kBAAkB,CAACiD,kBAAkB,EAAE;IACnE,MAAMC,iBAAiB,GAAG1C,QAAQ,CAACyB,GAAG,CAAEkB,WAAW,IACjDH,QAAQ,CAACI,oBAAoB,CAACD,WAAW,EAAE;MACzCE,OAAO,EAAE,IAAI,CAACnD,SAAS,CAAC2B;IAC1B,CAAC,CAAC,CACH;IACD,MAAMyB,gBAAgB,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACN,iBAAiB,CAAC;IAC7D,MAAMO,yBAAiD,GAAG,EAAE;IAC5DH,gBAAgB,CAACI,OAAO,CAAEC,eAAe,IAAK;MAC5C,IAAIA,eAAe,CAACC,OAAO,EAAE;QAC3B,MAAMC,iBAAiB,GAAG,IAAI,CAAC7D,kBAAkB,CAAC8D,wBAAwB,CACxEH,eAAe,CAACC,OAAO,EACvBnD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEsD,UAAU,CACpB;QACDN,yBAAyB,CAACO,IAAI,CAAC;UAC7BC,YAAY,EAAEN,eAAe,CAACR,WAAW;UACzCe,KAAK,EAAE;YACLN,OAAO,EAAEC;UACX,CAAC;UACDjB,aAAa,EAAE,CAAAnC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEmC,aAAa,KAAI;QAC3C,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IACF,IAAI,EAACnC,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEN,QAAQ,GAAE;MAAA;MACtB,IAAI,CAACH,kBAAkB,CAACmE,eAAe,CAACV,yBAAyB,EAAE;QACjEW,cAAc,2BAAE3D,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE2D,cAAc,yEAAI;MAC7C,CAAC,CAAC;IACJ,CAAC,MAAM;MACL;IAAA;IAEF,MAAM,IAAI,CAACpE,kBAAkB,CAACqE,aAAa,CAAC,IAAI,CAACnE,SAAS,CAAC2B,IAAI,CAAC;EAClE;EAEA,MAAcW,eAAe,CAAC/B,OAA+B,EAAiC;IAAA;IAC5F,IAAI,CAACR,MAAM,CAACmC,OAAO,CAChB,8CAA6CkC,gBAAK,CAACC,IAAI,CAAC,IAAI,CAACvE,kBAAkB,CAACwE,qBAAqB,EAAE,CAAE,EAAC,CAC5G;IACD,IAAI,CAACvE,MAAM,CAAC6C,KAAK,CAAE,mDAAkD,EAAErC,OAAO,CAAC;IAC/E,MAAMM,gBAAgB,GAAG,IAAI,CAACf,kBAAkB,CAACgB,kBAAkB,EAAE;IACrE,MAAMC,YAAY,GAAG,MAAM,IAAI,CAACC,sCAAsC,EAAE;IACxE,MAAMuD,iBAAiB,GAAG,IAAI,CAACzE,kBAAkB,CAACyE,iBAAiB,EAAE;IACrE,MAAMtD,gBAA8C,GAAG;MACrDC,MAAM,EAAE,CAACqD,iBAAiB,KAAIhE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEW,MAAM;MAC7CC,uBAAuB,4BAAEZ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEY,uBAAuB,2EAAI,IAAI;MACjEC,6BAA6B,4BAAEb,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEa,6BAA6B,2EAAI,KAAK;MAC9EC,kBAAkB,EAAEN,YAAY;MAChCO,SAAS,EAAE,IAAI,CAACxB,kBAAkB,CAACyB,MAAM,CAACD,SAAS;MACnDE,mBAAmB,EAAE,IAAI,CAAC1B,kBAAkB,CAACyB,MAAM,CAACC,mBAAmB;MACvEgD,cAAc,EAAED;IAClB,CAAC;IACD;IACA,MAAME,SAAS,GAAG,IAAI,CAAC3E,kBAAkB,CAAC4E,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAIC,OAAO,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAACH,SAAS,EAAE5D,gBAAgB,EAAEI,gBAAgB,CAAC;IAC/F,MAAM4D,aAAa,GAAG,IAAIC,GAAG,EAAU;IACvC;IACA;IACA;IACA,MAAM,IAAI,CAACC,IAAI,CAAC;MACdC,cAAc,EAAE,IAAI;MACpBC,eAAe,EAAE,IAAI,CAACnF,kBAAkB,CAACmF,eAAe,EAAE;MAC1DC,uBAAuB,EAAE,CAACX,iBAAiB;MAC3CY,kBAAkB,EAAE;IACtB,CAAC,CAAC;IACF,MAAMC,QAAQ,GAAG;MACfJ,cAAc,EAAE,KAAK;MACrBC,eAAe,EAAE,KAAK;MACtBC,uBAAuB,EAAE,CAACX,iBAAiB;MAC3CY,kBAAkB,EAAE,CAAC,IAAI,CAACnF,SAAS,CAACqF,QAAQ,IAAI,CAACd;IACnD,CAAC;IACD,IAAIe,YAAY,GAAG,CAAC;IACpB,IAAIC,yBAAyB,GAAG,IAAI;IACpC;IACA,GAAG;MACD;MACA;MACA;MACA;MACAA,yBAAyB,GAAGhB,iBAAiB,IAAIiB,uCAAuC,CAACb,OAAO,CAAC;MACjG,IAAI,CAAC3E,SAAS,CAACyF,QAAQ,CAACC,eAAe,CAACC,oBAAoB,EAAE;MAC9D,IAAI,CAAC3F,SAAS,CAAC4F,UAAU,EAAE;MAC3B,MAAMnB,SAAS,CAACoB,iBAAiB,CAC/B,IAAI,CAAC7F,SAAS,CAAC2B,IAAI,EACnBgD,OAAO,CAACmB,SAAS,EACjBjF,gBAAgB,EAChB8D,OAAO,CAACoB,qBAAqB,EAC7B;QAAEC,iBAAiB,EAAE;MAAM,CAAC,EAC5B/E,gBAAgB,CACjB;MACD;MACA;MACA,MAAM,IAAI,CAACgF,wBAAwB,CAAC;QAClCjB,cAAc,EAAE,KAAK;QACrBC,eAAe,EAAE,IAAI,CAACnF,kBAAkB,CAACmF,eAAe,EAAE;QAC1DiB,UAAU,EAAErF;MACd,CAAC,CAAC;MACF,IAAIN,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE4F,OAAO,EAAE;QACpB,MAAM,IAAI,CAACjG,QAAQ,CAACkG,kBAAkB,CAAC,EAAE,EAAE;UAAEC,SAAS,EAAEC,gCAAoB,CAACC;QAAQ,CAAC,CAAC;MACzF;MACA,MAAM,IAAI,CAACxB,IAAI,CAACK,QAAQ,CAAC;MACzBP,aAAa,CAAC2B,GAAG,CAAC,IAAAC,qBAAI,EAAC9B,OAAO,CAACmB,SAAS,CAAC,CAAC;MAC1CnB,OAAO,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAACH,SAAS,EAAE5D,gBAAgB,EAAEI,gBAAgB,CAAC;MAC3FqE,YAAY,IAAI,CAAC;IACnB,CAAC,QAAQ,CAAC,CAACT,aAAa,CAAC6B,GAAG,CAAC,IAAAD,qBAAI,EAAC9B,OAAO,CAACmB,SAAS,CAAC,CAAC,IAAIP,yBAAyB,KAAKD,YAAY,GAAG,CAAC;IACvG;IACA,OAAOX,OAAO,CAACoB,qBAAqB;EACtC;EAEA,MAAcnB,uBAAuB,CACnC+B,mBAAwC,EACxCT,UAA2B,EAC3BU,cAGC,EACgC;IACjC,MAAMb,qBAAqB,GAAG,MAAM,IAAI,CAACnF,sBAAsB,CAAC,EAAE,CAAC;IACnE,MAAMkF,SAAS,GAAG,MAAMa,mBAAmB,CAACE,qBAAqB,iCAC5DD,cAAc;MACjBb,qBAAqB;MACrBG,UAAU;MACV/C,OAAO,EAAE,IAAI,CAACnD,SAAS,CAAC2B;IAAI,GAC5B;IACF,OAAO;MACLoE,qBAAqB;MACrBD;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMgB,kBAAkB,CAACvG,OAAyB,EAAE;IAClD,MAAM;MAAEwG,oBAAoB;MAAEC;IAAsB,CAAC,GAAG,MAAM,IAAI,CAACC,oCAAoC,EAAE;IACzG,MAAMC,eAAe,GAAG,IAAI,CAACjH,QAAQ,CAACkH,GAAG,EAAE;IAC3C,MAAMC,yBAAyB,GAAG,IAAI,CAACC,gCAAgC,CAACH,eAAe,CAAC;IACxF,MAAMI,UAAU,GAAG,MAAM,IAAI,CAACtH,SAAS,CAACuH,IAAI,EAAE;IAC9C,MAAMC,YAAY,GAAG,MAAM,IAAI,CAAC1H,kBAAkB,CAAC2H,2BAA2B,CAAC;MAC7EtE,OAAO,EAAE,IAAI,CAACnD,SAAS,CAAC2B,IAAI;MAC5ByF,yBAAyB;MACzBJ,qBAAqB;MACrBM;IACF,CAAC,CAAC;IACF,IAAII,oBAAoC;IACxC,IAAInH,OAAO,CAAC+C,GAAG,EAAE;MACfoE,oBAAoB,GAAGF,YAAY;IACrC,CAAC,MAAM;MACL,IAAI,CAACzH,MAAM,CAAC4H,GAAG,EAAE;MACjBD,oBAAoB,GAAG,MAAM,IAAAE,oCAAgB,EAACJ,YAAY,CAAC;MAC3D,IAAI,CAACzH,MAAM,CAAC8H,EAAE,EAAE;IAClB;IACA,MAAM;MAAEC,eAAe;MAAEC;IAAkB,CAAC,GAAG,IAAI,CAACjI,kBAAkB,CAACkI,YAAY,CAACN,oBAAoB,EAAE;MACxGN,yBAAyB;MACzBJ;IACF,CAAC,CAAC;IACF,MAAM,IAAI,CAACiB,uBAAuB,CAACf,eAAe,EAAEY,eAAe,CAAC;IACpE,MAAMI,2BAA2B,GAAGrG,MAAM,CAACO,MAAM,CAAC,IAAA+F,cAAI,EAACpB,oBAAoB,EAAEgB,iBAAiB,CAAC,CAAC;IAChG,MAAM,IAAI,CAACK,6BAA6B,CAACF,2BAA2B,CAAC;IACrE,MAAM,IAAI,CAAClI,SAAS,CAACqI,eAAe,EAAE;IACtC,OAAO,IAAI,CAAC/F,eAAe,CAAC;MAAEpB,MAAM,EAAE;IAAK,CAAC,CAAC;EAC/C;EAEA,MAAMoH,oCAAoC,CAAChB,UAAuB,EAAE;IAClE,MAAMiB,eAAe,GAAG,IAAI,CAACzI,kBAAkB,CAACgB,kBAAkB,EAAE;IACpEwG,UAAU,CAAC9D,OAAO,CAAEgF,SAAS,IAAK;MAChC,IAAIA,SAAS,CAACC,KAAK,CAACC,SAAS,CAACC,OAAO,EAAE;MACvC,MAAMC,OAAO,GAAG,IAAAC,mCAAwB,EAACL,SAAS,CAACC,KAAK,CAACC,SAAS,CAAC;MACnE,MAAMI,KAAK,GAAGP,eAAe,CAACQ,IAAI,CAACH,OAAO,CAAC;MAC3C,IAAIE,KAAK,EAAE;QACTN,SAAS,CAACC,KAAK,CAACO,MAAM,CAACC,WAAW,CAACC,gCAAa,CAACC,4BAA4B,CAAC,CAACC,IAAI,GAAGN,KAAK,CAAC/E,YAAY;MAC1G;IACF,CAAC,CAAC;EACJ;EAEA,MAAckD,oCAAoC,GAAG;IACnD,MAAMoC,eAAe,GAAG,MAAM,IAAI,CAACrJ,SAAS,CAACsJ,OAAO,EAAE;IACtD,MAAMvC,oBAAyD,GAAG,CAAC,CAAC;IACpE,MAAMC,qBAA0C,GAAG,CAAC,CAAC;IACrD,CACE,MAAM3D,OAAO,CAACC,GAAG,CACf+F,eAAe,CAACtH,GAAG,CAAEwH,WAAW,IAAK,IAAI,CAACvJ,SAAS,CAACwJ,mBAAmB,CAACD,WAAW,CAAC,CAAC,CACtF,EACD/F,OAAO,CAAC,CAACgG,mBAAmB,EAAEC,KAAK,KAAK;MACxC,IAAI,CAACD,mBAAmB,EAAE;MAC1B,MAAME,iBAAiB,GAAGF,mBAAmB,CAACG,OAAO,CAACC,GAAG,CAACC,8CAAwB,CAACC,EAAE,CAAC;MACtF,IAAI,CAACJ,iBAAiB,EAAE;MACxB,MAAMH,WAAW,GAAGF,eAAe,CAACI,KAAK,CAAC,CAACM,QAAQ,EAAE;MACrDhD,oBAAoB,CAACwC,WAAW,CAAC,GAAGC,mBAAmB;MACvDxC,qBAAqB,CAACuC,WAAW,CAAC,GAAGG,iBAAiB,CAACnI,MAAM,CAACyI,MAAM;IACtE,CAAC,CAAC;IACF,OAAO;MACLjD,oBAAoB;MACpBC;IACF,CAAC;EACH;EAEQK,gCAAgC,CAACH,eAAyB,EAA6C;IAC7G,MAAME,yBAAoE,GAAG,CAAC,CAAC;IAC/E,KAAK,MAAM,CAAC6C,cAAc,EAAEC,UAAU,CAAC,IAAIrI,MAAM,CAACC,OAAO,CAACoF,eAAe,CAAC,EAAE;MAAA;MAC1E,6BAAIgD,UAAU,CAACL,8CAAwB,CAACC,EAAE,CAAC,kDAAvC,sBAAyCE,MAAM,EAAE;QAAA;QACnD5C,yBAAyB,CAAC6C,cAAc,CAAC,6BAAGC,UAAU,CAACL,8CAAwB,CAACC,EAAE,CAAC,2DAAvC,uBAAyCE,MAAM;MAC7F;IACF;IACA,OAAO5C,yBAAyB;EAClC;EAEQa,uBAAuB,CAACf,eAAoC,EAAEiD,qBAA+B,EAAE;IACrG,KAAK,MAAMF,cAAc,IAAIE,qBAAqB,EAAE;MAClD,IAAI,CAAClK,QAAQ,CAACmK,YAAY,CACxBH,cAAc,EACdJ,8CAAwB,CAACC,EAAE,EAC3B5C,eAAe,CAAC+C,cAAc,CAAC,CAACJ,8CAAwB,CAACC,EAAE,CAAC,EAC5D;QAAEO,gBAAgB,EAAE;MAAK,CAAC,CAC3B;IACH;IACA,OAAO,IAAI,CAACvK,kBAAkB,CAACqE,aAAa,CAAC,IAAI,CAACnE,SAAS,CAAC2B,IAAI,CAAC;EACnE;EAEA,MAAcyG,6BAA6B,CAACrB,oBAA2C,EAAE;IACvF,MAAM1D,OAAO,CAACC,GAAG,CACfgH,KAAK,CAACC,IAAI,CAACxD,oBAAoB,CAAC,CAAChF,GAAG,CAAC,MAAOyH,mBAAmB,IAAK;MAClE,MAAMA,mBAAmB,CAACgB,KAAK,CAAC;QAAEC,QAAQ,EAAE;MAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CACH;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMC,qBAAqB,CAACpK,QAAkB,EAAE;IAC9C,IAAI,CAACR,kBAAkB,CAAC6K,oBAAoB,CAACrK,QAAQ,CAAC;IACtD,MAAM,IAAI,CAACR,kBAAkB,CAACqE,aAAa,CAAC,IAAI,CAACnE,SAAS,CAAC2B,IAAI,CAAC;IAChE,OAAO,IAAI,CAACW,eAAe,CAAC;MAAEpB,MAAM,EAAE;IAAK,CAAC,CAAC;EAC/C;EAEA,MAAM+E,wBAAwB,CAAC1F,OAA6B,GAAG,CAAC,CAAC,EAAE;IACjE,MAAMqK,MAAM,GAAG,IAAI,CAAC9K,kBAAkB,CAAC+K,SAAS,CAAC;MAC/C1H,OAAO,EAAE,IAAI,CAACnD,SAAS,CAAC2B,IAAI;MAC5BmJ,cAAc,EAAEvK;IAClB,CAAC,CAAC;IACF,MAAMwK,OAAO,GAAG,MAAM,IAAI,CAAC/K,SAAS,CAACsJ,OAAO,EAAE;IAC9C,MAAM0B,GAAG,GAAG,MAAMJ,MAAM,CAAC3E,wBAAwB,CAAC,IAAI,CAACjG,SAAS,CAAC2B,IAAI,EAAEoJ,OAAO,EAAExK,OAAO,CAAC2F,UAAU,EAAE3F,OAAO,CAAC;IAC5G,OAAOyK,GAAG;EACZ;EAEA,MAAMjG,IAAI,CAACxE,OAA6B,GAAG,CAAC,CAAC,EAAwB;IAAA;IACnE,MAAM,IAAA4B,qBAAU,EAAC,IAAI,CAAChC,WAAW,CAACiC,MAAM,EAAE,EAAGC,EAAE,IAAKA,EAAE,CAAC9B,OAAO,CAAC,CAAC,CAAC,CAAC;IAClE,MAAMI,UAAU,GAAG,MAAM,IAAI,CAACC,sBAAsB,CAAC,EAAE,CAAC;IACxD,MAAMC,gBAAgB,GAAG,IAAI,CAACf,kBAAkB,CAACgB,kBAAkB,EAAE;IACrE,MAAM8J,MAAM,GAAG,IAAI,CAAC9K,kBAAkB,CAAC+K,SAAS,CAAC;MAC/C1H,OAAO,EAAE,IAAI,CAACnD,SAAS,CAAC2B,IAAI;MAC5BmJ,cAAc,EAAEvK;IAClB,CAAC,CAAC;IACF,MAAMyK,GAAG,GAAG,MAAMJ,MAAM,CAAC7F,IAAI,CAAC,IAAI,CAAC/E,SAAS,CAAC2B,IAAI,EAAEd,gBAAgB,EAAEF,UAAU,EAAEJ,OAAO,CAAC;IAEzF,MAAM0K,MAAM,GAAGtK,UAAU,CAACuK,OAAO,EAAE,CAACnJ,GAAG,CAAC,CAAC,CAACyG,SAAS,CAAC,KAAKA,SAAS,CAACsB,EAAE,CAACqB,OAAO,CAAC;IAC9E,MAAMC,aAAa,GAAG,MAAM,IAAAC,YAAU,EAAC,IAAI,CAACrL,SAAS,CAACyF,QAAQ,EAAEwF,MAAM,qBAAE1K,OAAO,CAAC+K,MAAM,6DAAI,KAAK,CAAC;IAChGN,GAAG,CAACO,iBAAiB,GAAGH,aAAa,CAACI,YAAY;IAClDR,GAAG,CAACS,wBAAwB,GAAGL,aAAa,CAACM,cAAc;IAE3D,OAAOV,GAAG;EACZ;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAchK,sCAAsC,GAAG;IACrD;IACA,MAAM2K,OAAO,GAAG,MAAM,IAAI,CAAC3L,SAAS,CAAC4L,KAAK,CAACC,cAAc,EAAE;IAC3D,MAAMC,GAAG,GAAG,MAAM,IAAI,CAAChM,kBAAkB,CAACiM,aAAa,EAAE;IACzD,MAAMC,aAAa,GAAGnK,MAAM,CAACoK,IAAI,CAACH,GAAG,CAACI,MAAM,CAAC;IAC7C,OAAQC,cAA8B,IAAqB;MACzD,MAAMC,QAAQ,GAAGD,cAAc,CAACE,MAAM,CAAEC,GAAG,IAAK;QAC9C,IAAI,EAAEA,GAAG,YAAYC,yCAAmB,CAAC,EAAE;UACzC,OAAO,IAAI;QACb;QACA,IAAIZ,OAAO,CAACa,KAAK,CAACF,GAAG,CAAC/C,WAAW,CAACqC,KAAK,CAAC,EAAE;UACxC,OAAO,IAAI;QACb;QACA,IAAII,aAAa,CAACS,IAAI,CAAEb,KAAK,IAAKU,GAAG,CAACrJ,WAAW,CAACyJ,UAAU,CAAE,IAAGd,KAAM,GAAE,CAAC,CAAC,EAAE;UAC3E,OAAO,IAAI;QACb;QACA,OAAO,KAAK;MACd,CAAC,CAAC;MACF,OAAOQ,QAAQ;IACjB,CAAC;EACH;EAEA,MAAcxL,sBAAsB,CAAC+L,GAAkB,EAAiC;IACtF,MAAMrF,UAAU,GAAGqF,GAAG,CAACnM,MAAM,GAAG,MAAM,IAAI,CAACR,SAAS,CAAC4M,OAAO,CAACD,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC3M,SAAS,CAACuH,IAAI,EAAE;IAC/F,OAAOsF,yBAAY,CAACC,EAAE,CAASxF,UAAU,EAAGkB,SAAS,IAAK,IAAI,CAACxI,SAAS,CAAC+M,YAAY,CAACvE,SAAS,CAACsB,EAAE,CAAC,CAAC;EACtG;EAgBA,aAAakD,QAAQ,CACnB,CAAClN,kBAAkB,EAAEE,SAAS,EAAEiN,SAAS,EAAEhN,QAAQ,EAAEiN,GAAG,EAAEC,SAAS,EAAEjN,QAAQ,EAAE8I,MAAM,CASpF,EACDoE,CAAC,EACD,CAACjN,WAAW,EAAEC,cAAc,CAAgC,EAC5D;IACA,MAAML,MAAM,GAAGkN,SAAS,CAACI,YAAY,CAAC,qBAAqB,CAAC;IAC5D,MAAMC,UAAU,GAAG,IAAI1N,WAAW,CAChCE,kBAAkB,EAClBC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,WAAW,EACXC,cAAc,CACf;IACD,IAAI4I,MAAM,EAAE;MACVA,MAAM,CAACuE,2BAA2B,CAACD,UAAU,CAAChF,oCAAoC,CAACkF,IAAI,CAACF,UAAU,CAAC,CAAC;IACtG;IACA,MAAMG,QAAqB,GAAG,CAC5B,KAAIC,mBAAU,EAACJ,UAAU,EAAEtN,SAAS,EAAED,MAAM,CAAC,EAC7C,KAAI4N,oBAAY,EAACL,UAAU,CAAC,EAC5B,KAAIM,iBAAS,EAACN,UAAU,CAAC,EACzB,KAAIO,oBAAW,EAACP,UAAU,EAAEtN,SAAS,EAAED,MAAM,EAAEoN,SAAS,CAACW,aAAa,EAAE,CAAC,CAC1E;IACDZ,GAAG,CAAC1K,QAAQ,CAAC,GAAGiL,QAAQ,CAAC;IACzB,IAAI3N,kBAAkB,CAACyE,iBAAiB,EAAE,EAAE;MAC1CvE,SAAS,CAAC+N,+BAA+B,CAAC,YAAY;QACpD,MAAMT,UAAU,CAACjN,OAAO,CAAC2N,SAAS,EAAE;UAAE7H,OAAO,EAAE,IAAI;UAAE8H,MAAM,EAAE;QAAM,CAAC,CAAC;MACvE,CAAC,CAAC;IACJ;IACA,OAAOX,UAAU;EACnB;AACF;AAAC;AAAA,gCAtaY1N,WAAW,WA+WP,CAACsO,eAAI,CAACC,QAAQ,EAAe,EAAED,eAAI,CAACC,QAAQ,EAAkB,CAAC;AAAA,gCA/WnEvO,WAAW,kBAgXA,CACpBiK,8CAAwB,EACxBuE,4BAAe,EACfC,sBAAY,EACZC,0BAAc,EACdC,gBAAS,EACTC,4BAAe,EACfC,0BAAc,EACdC,sBAAY,CACb;AAAA,gCAzXU9O,WAAW,aA2XL+O,kBAAW;AAkD9B,SAASnJ,uCAAuC,CAAC;EAC/CO,qBAAqB;EACrBD;AACsB,CAAC,EAAW;EAClC,MAAM8I,WAAW,GAAG,IAAI9J,GAAG,CACzBiB,qBAAqB,CAClBmF,OAAO,EAAE,CACTnJ,GAAG,CAAC,CAAC,CAAC;IAAE0G;EAAM,CAAC,CAAC,KAAK;IACpB,MAAMoG,KAAK,GAAGpG,KAAK,CAACO,MAAM,CAAC8F,QAAQ,CAAC5F,gCAAa,CAAC6F,+BAA+B,CAAC;IAClF,IAAI,CAACF,KAAK,EAAE,OAAO,EAAE;IACrB,OAAOhN,MAAM,CAACO,MAAM,CAACyM,KAAK,CAACzF,IAAI,CAAC,CAAC4F,IAAI,EAAE;EACzC,CAAC,CAAC,CACDA,IAAI,EAAE,CACV;EACD,OAAOnN,MAAM,CAACO,MAAM,CAAC0D,SAAS,CAAC,CAAC2G,IAAI,CAAC,CAAC;IAAEwC;EAAK,CAAC,KAAKA,IAAI,IAAIL,WAAW,CAAClI,GAAG,CAACuI,IAAI,CAAC,CAAC;AACnF;AAEAC,wBAAa,CAACC,UAAU,CAACvP,WAAW,CAAC;AAAC,eAEvBA,WAAW;AAAA"}
@@ -128,7 +128,6 @@ class LinkCommand {
128
128
  async json([ids], opts) {
129
129
  this.logger.console(`Linking components and core aspects to node_modules for workspaces: '${_chalk().default.cyan(this.workspace.name)}'`);
130
130
  const linkOpts = {
131
- legacyLink: true,
132
131
  rewire: opts.rewire,
133
132
  linkCoreAspects: true,
134
133
  linkTeambitBit: true,
@@ -1 +1 @@
1
- {"version":3,"names":["LinkCommand","constructor","install","workspace","logger","docsDomain","name","description","extendedDescription","report","ids","opts","startTime","Date","now","linkResults","json","endTime","numOfComponents","legacyLinkResults","length","timeDiff","timeFormat","coreAspectsLinksWithMainAspect","coreAspectsLinks","teambitBitLink","unshift","numOfCoreAspects","title","coreLinks","CoreAspectsLinks","verbose","compsLinks","ComponentListLinks","componentListLinks","rewireRow","RewireRow","legacyCodemodResults","legacyLinkCodemodResults","nestedLinks","NestedComponentLinksLinks","nestedDepsInNmLinks","targetLinks","linkToDir","linkToDirResults","footer","console","chalk","cyan","linkOpts","legacyLink","rewire","linkCoreAspects","linkTeambitBit","target","fetchObject","skipFetchingObjects","link"],"sources":["link.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { LinkResults } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { timeFormat } from '@teambit/toolbox.time.time-format';\nimport chalk from 'chalk';\nimport { Workspace } from '@teambit/workspace';\nimport { InstallMain, WorkspaceLinkOptions } from '../install.main.runtime';\nimport { ComponentListLinks } from './component-list-links';\nimport { CoreAspectsLinks } from './core-aspects-links';\nimport { NestedComponentLinksLinks } from './nested-deps-in-nm-links';\nimport { RewireRow } from './rewire-row';\nimport { linkToDir } from './link-to-dir';\n\ntype LinkCommandOpts = {\n rewire: boolean;\n verbose: boolean;\n target: string;\n skipFetchingObjects?: boolean;\n};\nexport class LinkCommand implements Command {\n name = 'link [component-names...]';\n alias = '';\n description = 'create links in the node_modules directory, to core aspects and to components in the workspace';\n helpUrl = 'reference/workspace/component-links';\n extendedDescription: string;\n group = 'development';\n private = false;\n arguments = [{ name: 'component-names...', description: 'names or IDs of the components to link' }];\n options = [\n ['j', 'json', 'return the output as JSON'],\n ['', 'verbose', 'verbose output'],\n ['r', 'rewire', 'Replace relative paths with module paths in code (e.g. \"../foo\" => \"@bit/foo\")'],\n [\n '',\n 'target <dir>',\n 'EXPERIMENTAL. link to an external directory (similar to npm-link) so other projects could use these components',\n ],\n ['', 'skip-fetching-objects', 'skip fetch missing objects from remotes before linking'],\n ] as CommandOptions;\n\n constructor(\n private install: InstallMain,\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n private docsDomain: string\n ) {\n this.extendedDescription = `https://${this.docsDomain}/workspace/component-links`;\n }\n\n async report([ids]: [string[]], opts: LinkCommandOpts) {\n const startTime = Date.now();\n const linkResults = await this.json([ids], opts);\n const endTime = Date.now();\n const numOfComponents = linkResults.legacyLinkResults?.length;\n const timeDiff = timeFormat(endTime - startTime);\n const coreAspectsLinksWithMainAspect = linkResults.coreAspectsLinks || [];\n if (linkResults.teambitBitLink) {\n coreAspectsLinksWithMainAspect.unshift(linkResults.teambitBitLink);\n }\n const numOfCoreAspects = coreAspectsLinksWithMainAspect.length;\n\n const title = `Linked ${numOfComponents} components and ${numOfCoreAspects} core aspects to node_modules for workspace: ${this.workspace.name}`;\n const coreLinks = CoreAspectsLinks({\n coreAspectsLinks: coreAspectsLinksWithMainAspect,\n verbose: opts.verbose,\n });\n const compsLinks = ComponentListLinks({ componentListLinks: linkResults.legacyLinkResults, verbose: opts.verbose });\n const rewireRow = RewireRow({ legacyCodemodResults: linkResults.legacyLinkCodemodResults });\n const nestedLinks = NestedComponentLinksLinks({\n nestedDepsInNmLinks: linkResults.nestedDepsInNmLinks,\n verbose: opts.verbose,\n });\n const targetLinks = linkToDir(linkResults.linkToDirResults);\n const footer = `Finished. ${timeDiff}`;\n return `${title}\\n${coreLinks}\\n${compsLinks}\\n${rewireRow}${nestedLinks}${targetLinks}${footer}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async json([ids]: [string[]], opts: LinkCommandOpts): Promise<LinkResults> {\n this.logger.console(\n `Linking components and core aspects to node_modules for workspaces: '${chalk.cyan(this.workspace.name)}'`\n );\n\n const linkOpts: WorkspaceLinkOptions = {\n legacyLink: true,\n rewire: opts.rewire,\n linkCoreAspects: true,\n linkTeambitBit: true,\n linkToDir: opts.target,\n fetchObject: !opts.skipFetchingObjects,\n };\n const linkResults = await this.install.link(linkOpts);\n return linkResults;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAQO,MAAMA,WAAW,CAAoB;EAqB1CC,WAAW,CACDC,OAAoB;EAC5B;AACJ;AACA;EACYC,SAAoB;EAE5B;AACJ;AACA;EACYC,MAAc,EAEdC,UAAkB,EAC1B;IAAA,KAZQH,OAAoB,GAApBA,OAAoB;IAAA,KAIpBC,SAAoB,GAApBA,SAAoB;IAAA,KAKpBC,MAAc,GAAdA,MAAc;IAAA,KAEdC,UAAkB,GAAlBA,UAAkB;IAAA,8CAhCrB,2BAA2B;IAAA,+CAC1B,EAAE;IAAA,qDACI,gGAAgG;IAAA,iDACpG,qCAAqC;IAAA;IAAA,+CAEvC,aAAa;IAAA,iDACX,KAAK;IAAA,mDACH,CAAC;MAAEC,IAAI,EAAE,oBAAoB;MAAEC,WAAW,EAAE;IAAyC,CAAC,CAAC;IAAA,iDACzF,CACR,CAAC,GAAG,EAAE,MAAM,EAAE,2BAA2B,CAAC,EAC1C,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,EACjC,CAAC,GAAG,EAAE,QAAQ,EAAE,gFAAgF,CAAC,EACjG,CACE,EAAE,EACF,cAAc,EACd,gHAAgH,CACjH,EACD,CAAC,EAAE,EAAE,uBAAuB,EAAE,wDAAwD,CAAC,CACxF;IAgBC,IAAI,CAACC,mBAAmB,GAAI,WAAU,IAAI,CAACH,UAAW,4BAA2B;EACnF;EAEA,MAAMI,MAAM,CAAC,CAACC,GAAG,CAAa,EAAEC,IAAqB,EAAE;IAAA;IACrD,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,EAAE;IAC5B,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,CAACN,GAAG,CAAC,EAAEC,IAAI,CAAC;IAChD,MAAMM,OAAO,GAAGJ,IAAI,CAACC,GAAG,EAAE;IAC1B,MAAMI,eAAe,4BAAGH,WAAW,CAACI,iBAAiB,0DAA7B,sBAA+BC,MAAM;IAC7D,MAAMC,QAAQ,GAAG,IAAAC,yBAAU,EAACL,OAAO,GAAGL,SAAS,CAAC;IAChD,MAAMW,8BAA8B,GAAGR,WAAW,CAACS,gBAAgB,IAAI,EAAE;IACzE,IAAIT,WAAW,CAACU,cAAc,EAAE;MAC9BF,8BAA8B,CAACG,OAAO,CAACX,WAAW,CAACU,cAAc,CAAC;IACpE;IACA,MAAME,gBAAgB,GAAGJ,8BAA8B,CAACH,MAAM;IAE9D,MAAMQ,KAAK,GAAI,UAASV,eAAgB,mBAAkBS,gBAAiB,gDAA+C,IAAI,CAACxB,SAAS,CAACG,IAAK,EAAC;IAC/I,MAAMuB,SAAS,GAAG,IAAAC,oCAAgB,EAAC;MACjCN,gBAAgB,EAAED,8BAA8B;MAChDQ,OAAO,EAAEpB,IAAI,CAACoB;IAChB,CAAC,CAAC;IACF,MAAMC,UAAU,GAAG,IAAAC,wCAAkB,EAAC;MAAEC,kBAAkB,EAAEnB,WAAW,CAACI,iBAAiB;MAAEY,OAAO,EAAEpB,IAAI,CAACoB;IAAQ,CAAC,CAAC;IACnH,MAAMI,SAAS,GAAG,IAAAC,sBAAS,EAAC;MAAEC,oBAAoB,EAAEtB,WAAW,CAACuB;IAAyB,CAAC,CAAC;IAC3F,MAAMC,WAAW,GAAG,IAAAC,gDAAyB,EAAC;MAC5CC,mBAAmB,EAAE1B,WAAW,CAAC0B,mBAAmB;MACpDV,OAAO,EAAEpB,IAAI,CAACoB;IAChB,CAAC,CAAC;IACF,MAAMW,WAAW,GAAG,IAAAC,sBAAS,EAAC5B,WAAW,CAAC6B,gBAAgB,CAAC;IAC3D,MAAMC,MAAM,GAAI,aAAYxB,QAAS,EAAC;IACtC,OAAQ,GAAEO,KAAM,KAAIC,SAAU,KAAIG,UAAW,KAAIG,SAAU,GAAEI,WAAY,GAAEG,WAAY,GAAEG,MAAO,EAAC;EACnG;;EAEA;EACA,MAAM7B,IAAI,CAAC,CAACN,GAAG,CAAa,EAAEC,IAAqB,EAAwB;IACzE,IAAI,CAACP,MAAM,CAAC0C,OAAO,CAChB,wEAAuEC,gBAAK,CAACC,IAAI,CAAC,IAAI,CAAC7C,SAAS,CAACG,IAAI,CAAE,GAAE,CAC3G;IAED,MAAM2C,QAA8B,GAAG;MACrCC,UAAU,EAAE,IAAI;MAChBC,MAAM,EAAExC,IAAI,CAACwC,MAAM;MACnBC,eAAe,EAAE,IAAI;MACrBC,cAAc,EAAE,IAAI;MACpBV,SAAS,EAAEhC,IAAI,CAAC2C,MAAM;MACtBC,WAAW,EAAE,CAAC5C,IAAI,CAAC6C;IACrB,CAAC;IACD,MAAMzC,WAAW,GAAG,MAAM,IAAI,CAACb,OAAO,CAACuD,IAAI,CAACR,QAAQ,CAAC;IACrD,OAAOlC,WAAW;EACpB;AACF;AAAC"}
1
+ {"version":3,"names":["LinkCommand","constructor","install","workspace","logger","docsDomain","name","description","extendedDescription","report","ids","opts","startTime","Date","now","linkResults","json","endTime","numOfComponents","legacyLinkResults","length","timeDiff","timeFormat","coreAspectsLinksWithMainAspect","coreAspectsLinks","teambitBitLink","unshift","numOfCoreAspects","title","coreLinks","CoreAspectsLinks","verbose","compsLinks","ComponentListLinks","componentListLinks","rewireRow","RewireRow","legacyCodemodResults","legacyLinkCodemodResults","nestedLinks","NestedComponentLinksLinks","nestedDepsInNmLinks","targetLinks","linkToDir","linkToDirResults","footer","console","chalk","cyan","linkOpts","rewire","linkCoreAspects","linkTeambitBit","target","fetchObject","skipFetchingObjects","link"],"sources":["link.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { LinkResults } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport { timeFormat } from '@teambit/toolbox.time.time-format';\nimport chalk from 'chalk';\nimport { Workspace } from '@teambit/workspace';\nimport { InstallMain, WorkspaceLinkOptions } from '../install.main.runtime';\nimport { ComponentListLinks } from './component-list-links';\nimport { CoreAspectsLinks } from './core-aspects-links';\nimport { NestedComponentLinksLinks } from './nested-deps-in-nm-links';\nimport { RewireRow } from './rewire-row';\nimport { linkToDir } from './link-to-dir';\n\ntype LinkCommandOpts = {\n rewire: boolean;\n verbose: boolean;\n target: string;\n skipFetchingObjects?: boolean;\n};\nexport class LinkCommand implements Command {\n name = 'link [component-names...]';\n alias = '';\n description = 'create links in the node_modules directory, to core aspects and to components in the workspace';\n helpUrl = 'reference/workspace/component-links';\n extendedDescription: string;\n group = 'development';\n private = false;\n arguments = [{ name: 'component-names...', description: 'names or IDs of the components to link' }];\n options = [\n ['j', 'json', 'return the output as JSON'],\n ['', 'verbose', 'verbose output'],\n ['r', 'rewire', 'Replace relative paths with module paths in code (e.g. \"../foo\" => \"@bit/foo\")'],\n [\n '',\n 'target <dir>',\n 'EXPERIMENTAL. link to an external directory (similar to npm-link) so other projects could use these components',\n ],\n ['', 'skip-fetching-objects', 'skip fetch missing objects from remotes before linking'],\n ] as CommandOptions;\n\n constructor(\n private install: InstallMain,\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n private docsDomain: string\n ) {\n this.extendedDescription = `https://${this.docsDomain}/workspace/component-links`;\n }\n\n async report([ids]: [string[]], opts: LinkCommandOpts) {\n const startTime = Date.now();\n const linkResults = await this.json([ids], opts);\n const endTime = Date.now();\n const numOfComponents = linkResults.legacyLinkResults?.length;\n const timeDiff = timeFormat(endTime - startTime);\n const coreAspectsLinksWithMainAspect = linkResults.coreAspectsLinks || [];\n if (linkResults.teambitBitLink) {\n coreAspectsLinksWithMainAspect.unshift(linkResults.teambitBitLink);\n }\n const numOfCoreAspects = coreAspectsLinksWithMainAspect.length;\n\n const title = `Linked ${numOfComponents} components and ${numOfCoreAspects} core aspects to node_modules for workspace: ${this.workspace.name}`;\n const coreLinks = CoreAspectsLinks({\n coreAspectsLinks: coreAspectsLinksWithMainAspect,\n verbose: opts.verbose,\n });\n const compsLinks = ComponentListLinks({ componentListLinks: linkResults.legacyLinkResults, verbose: opts.verbose });\n const rewireRow = RewireRow({ legacyCodemodResults: linkResults.legacyLinkCodemodResults });\n const nestedLinks = NestedComponentLinksLinks({\n nestedDepsInNmLinks: linkResults.nestedDepsInNmLinks,\n verbose: opts.verbose,\n });\n const targetLinks = linkToDir(linkResults.linkToDirResults);\n const footer = `Finished. ${timeDiff}`;\n return `${title}\\n${coreLinks}\\n${compsLinks}\\n${rewireRow}${nestedLinks}${targetLinks}${footer}`;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async json([ids]: [string[]], opts: LinkCommandOpts): Promise<LinkResults> {\n this.logger.console(\n `Linking components and core aspects to node_modules for workspaces: '${chalk.cyan(this.workspace.name)}'`\n );\n\n const linkOpts: WorkspaceLinkOptions = {\n rewire: opts.rewire,\n linkCoreAspects: true,\n linkTeambitBit: true,\n linkToDir: opts.target,\n fetchObject: !opts.skipFetchingObjects,\n };\n const linkResults = await this.install.link(linkOpts);\n return linkResults;\n }\n}\n"],"mappings":"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"}
package/link/link.cmd.ts CHANGED
@@ -90,7 +90,6 @@ export class LinkCommand implements Command {
90
90
  );
91
91
 
92
92
  const linkOpts: WorkspaceLinkOptions = {
93
- legacyLink: true,
94
93
  rewire: opts.rewire,
95
94
  linkCoreAspects: true,
96
95
  linkTeambitBit: true,
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/install",
3
- "version": "0.0.96",
3
+ "version": "0.0.98",
4
4
  "homepage": "https://bit.dev/teambit/workspace/install",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "install",
9
- "version": "0.0.96"
9
+ "version": "0.0.98"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -38,7 +38,7 @@
38
38
  "@types/testing-library__jest-dom": "5.9.5"
39
39
  },
40
40
  "peerDependencies": {
41
- "@teambit/legacy": "1.0.430",
41
+ "@teambit/legacy": "1.0.433",
42
42
  "react": "^16.8.0 || ^17.0.0",
43
43
  "react-dom": "^16.8.0 || ^17.0.0"
44
44
  },