@teambit/install 0.0.156 → 0.0.158
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/install.main.runtime.d.ts +1 -3
- package/dist/install.main.runtime.js +7 -11
- package/dist/install.main.runtime.js.map +1 -1
- package/dist/link/link.cmd.d.ts +1 -2
- package/dist/link/link.cmd.js +1 -3
- package/dist/link/link.cmd.js.map +1 -1
- package/link/link.cmd.ts +2 -6
- package/package-tar/teambit-install-0.0.158.tgz +0 -0
- package/package.json +5 -5
- package/package-tar/teambit-install-0.0.156.tgz +0 -0
- /package/dist/{preview-1682999172371.js → preview-1683212408337.js} +0 -0
@@ -1,4 +1,3 @@
|
|
1
|
-
import { CommunityMain } from '@teambit/community';
|
2
1
|
import { CompilerMain } from '@teambit/compiler';
|
3
2
|
import { CLIMain } from '@teambit/cli';
|
4
3
|
import { Workspace } from '@teambit/workspace';
|
@@ -105,13 +104,12 @@ export declare class InstallMain {
|
|
105
104
|
static slots: (((registerFn: () => string) => SlotRegistry<PreLinkSlot>) | ((registerFn: () => string) => SlotRegistry<PreInstallSlot>))[];
|
106
105
|
static dependencies: import("@teambit/harmony").Aspect[];
|
107
106
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
108
|
-
static provider([dependencyResolver, workspace, loggerExt, variants, cli,
|
107
|
+
static provider([dependencyResolver, workspace, loggerExt, variants, cli, compiler, issues, envs, app]: [
|
109
108
|
DependencyResolverMain,
|
110
109
|
Workspace,
|
111
110
|
LoggerMain,
|
112
111
|
VariantsMain,
|
113
112
|
CLIMain,
|
114
|
-
CommunityMain,
|
115
113
|
CompilerMain,
|
116
114
|
IssuesMain,
|
117
115
|
EnvsMain,
|
@@ -38,13 +38,6 @@ function _bitRoots() {
|
|
38
38
|
};
|
39
39
|
return data;
|
40
40
|
}
|
41
|
-
function _community() {
|
42
|
-
const data = require("@teambit/community");
|
43
|
-
_community = function () {
|
44
|
-
return data;
|
45
|
-
};
|
46
|
-
return data;
|
47
|
-
}
|
48
41
|
function _compiler() {
|
49
42
|
const data = require("@teambit/compiler");
|
50
43
|
_compiler = function () {
|
@@ -374,7 +367,9 @@ class InstallMain {
|
|
374
367
|
// are not added to the manifests.
|
375
368
|
// This is an issue when installation is done using root components.
|
376
369
|
hasMissingLocalComponents = hasRootComponents && hasComponentsFromWorkspaceInMissingDeps(current);
|
377
|
-
|
370
|
+
const {
|
371
|
+
dependenciesChanged
|
372
|
+
} = await installer.installComponents(this.workspace.path, current.manifests, mergedRootPolicy, current.componentDirectoryMap, {
|
378
373
|
installTeambitBit: false,
|
379
374
|
// We clean node_modules only on the first install.
|
380
375
|
// Otherwise, we might load an env from a location that we later remove.
|
@@ -397,6 +392,7 @@ class InstallMain {
|
|
397
392
|
this.logger.consoleSuccess(compileOutputMessage, compileStartTime);
|
398
393
|
}
|
399
394
|
await this.link(linkOpts);
|
395
|
+
if (!dependenciesChanged) break;
|
400
396
|
prevManifests.add(manifestsHash(current.manifests));
|
401
397
|
// We need to clear cache before creating the new component manifests.
|
402
398
|
this.workspace.consumer.componentLoader.clearComponentsCache();
|
@@ -732,13 +728,13 @@ class InstallMain {
|
|
732
728
|
await this.link();
|
733
729
|
}
|
734
730
|
}
|
735
|
-
static async provider([dependencyResolver, workspace, loggerExt, variants, cli,
|
731
|
+
static async provider([dependencyResolver, workspace, loggerExt, variants, cli, compiler, issues, envs, app], _, [preLinkSlot, preInstallSlot]) {
|
736
732
|
const logger = loggerExt.createLogger('teambit.bit/install');
|
737
733
|
const installExt = new InstallMain(dependencyResolver, logger, workspace, variants, compiler, envs, app, preLinkSlot, preInstallSlot);
|
738
734
|
if (issues) {
|
739
735
|
issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));
|
740
736
|
}
|
741
|
-
const commands = [new (_install2().default)(installExt, workspace, logger), new (_uninstall().default)(installExt), new (_update().default)(installExt), new (_link().LinkCommand)(installExt, workspace, logger
|
737
|
+
const commands = [new (_install2().default)(installExt, workspace, logger), new (_uninstall().default)(installExt), new (_update().default)(installExt), new (_link().LinkCommand)(installExt, workspace, logger)];
|
742
738
|
// For now do not automate installation during aspect resolving
|
743
739
|
// workspace.registerOnAspectsResolve(installExt.onAspectsResolveSubscriber.bind(installExt));
|
744
740
|
if (workspace) {
|
@@ -750,7 +746,7 @@ class InstallMain {
|
|
750
746
|
}
|
751
747
|
exports.InstallMain = InstallMain;
|
752
748
|
(0, _defineProperty2().default)(InstallMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType()]);
|
753
|
-
(0, _defineProperty2().default)(InstallMain, "dependencies", [_dependencyResolver().DependencyResolverAspect, _workspace().WorkspaceAspect, _logger().LoggerAspect, _variants().VariantsAspect, _cli().CLIAspect,
|
749
|
+
(0, _defineProperty2().default)(InstallMain, "dependencies", [_dependencyResolver().DependencyResolverAspect, _workspace().WorkspaceAspect, _logger().LoggerAspect, _variants().VariantsAspect, _cli().CLIAspect, _compiler().CompilerAspect, _issues().IssuesAspect, _envs().EnvsAspect, _application().ApplicationAspect]);
|
754
750
|
(0, _defineProperty2().default)(InstallMain, "runtime", _cli().MainRuntime);
|
755
751
|
function hasComponentsFromWorkspaceInMissingDeps({
|
756
752
|
componentDirectoryMap,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["InstallMain","constructor","dependencyResolver","logger","workspace","variants","compiler","envs","app","preLinkSlot","preInstallSlot","Set","install","packages","options","inInstallContext","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","res","_installModules","registerPreLink","register","registerPreInstall","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","resolvedPackages","Promise","all","newWorkspacePolicyEntries","forEach","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","overridePrefix","savePrefix","wantedRange","push","dependencyId","value","addToRootPolicy","updateExisting","persistConfig","pm","getPackageManager","name","chalk","cyan","getPackageManagerName","workspacePolicy","addConfiguredAspectsToWorkspacePolicy","hasRootComponents","includeOptionalDeps","rootComponents","nodeLinker","updateAll","installer","getInstaller","current","_getComponentsManifests","prevManifests","link","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","linkOpts","isLegacy","installCycle","hasMissingLocalComponents","hasComponentsFromWorkspaceInMissingDeps","installComponents","manifests","componentDirectoryMap","installTeambitBit","pruneNodeModules","linkCoreAspectsAndLegacy","rootPolicy","compile","compileStartTime","process","hrtime","compileOutputMessage","setStatusLine","compileOnWorkspace","initiator","CompilationInitiator","Install","consoleSuccess","add","manifestsHash","consumer","componentLoader","clearComponentsCache","clearCache","has","componentFsCache","deleteAllDependenciesDataCache","aspectsPackages","getConfiguredUserAspectsPackages","externalsOnly","aspectsPackage","dependencyInstaller","installOptions","getComponentManifests","referenceLocalPackages","rootManifests","_getRootManifests","_updateRootDirs","keys","rootDirs","bitRootCompsDir","getBitRootsDir","existingDirs","fs","readdir","dirName","dirPath","includes","remove","err","code","mkdir","recursive","nonRootManifests","filter","workspaceDeps","getWorkspaceDepsOfBitRoots","workspaceDepsMeta","reduce","acc","depName","injected","envManifests","_getEnvManifests","appManifests","_getAppManifests","_getAllUsedEnvIds","fromEntries","envId","getRootComponentDir","dependencies","_getEnvDependencies","dependenciesMeta","installConfig","hoistingLimits","env","getEnvDefinitionByStringId","BitError","policy","getComponentEnvPolicyFromEnvDefinition","selfPolicy","force","compact","listAppsFromComponents","appPkgName","getPackageName","appManifest","find","getEnvId","id","toString","omit","list","component","Array","from","updateDependencies","componentConfigFiles","componentPoliciesById","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","components","outdatedPkgs","getOutdatedPkgsFromPolicies","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","updatedComponentConfigFiles","pick","_saveManyComponentConfigFiles","_reloadConsumer","addDuplicateComponentAndPackageIssue","state","_consumer","removed","pkgName","componentIdToPackageName","found","issues","getOrCreate","IssuesClasses","DuplicateComponentAndPackage","data","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","aspects","get","DependencyResolverAspect","variantPattern","extensions","updateVariantPolicies","setExtension","overrideExisting","write","override","uninstallDependencies","removeFromRootPolicy","linker","getLinker","linkingOptions","compIds","workspaceRes","bitIds","toArray","_legacy","legacyResults","linkToNodeModulesWithCodemod","rewire","legacyLinkResults","linksResults","legacyLinkCodemodResults","codemodResults","linkToBitRoots","_linkAllComponentsToBitRoots","apps","mkdirp","linkPkgsToBitRoots","remotes","scope","_legacyRemotes","reg","getRegistries","packageScopes","scopes","dependencyList","filtered","dep","ComponentDependency","isHub","some","startsWith","ids","getMany","ComponentMap","as","componentDir","onRootAspectAddedSubscriber","_aspectId","inWs","onAspectsResolveSubscriber","aspectComponents","needLink","needInstall","promises","aspectComponent","aspectIdStr","visitedAspects","packagePath","getComponentPackagePath","exists","pathExists","hasId","provider","loggerExt","cli","community","_","createLogger","installExt","registerAddComponentsIssues","bind","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","getDocsDomain","registerOnRootAspectAdded","Slot","withType","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CommunityAspect","CompilerAspect","IssuesAspect","EnvsAspect","ApplicationAspect","MainRuntime","missingDeps","issue","getIssue","MissingPackagesDependenciesOnFs","flat","InstallAspect","addRuntime","depsByProjectPaths","mapValues","manifest","devDependencies","hash"],"sources":["install.main.runtime.ts"],"sourcesContent":["import fs, { pathExists } from 'fs-extra';\nimport path from 'path';\nimport { getRootComponentDir, getBitRootsDir, linkPkgsToBitRoots } from '@teambit/bit-roots';\nimport { 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 { compact, mapValues, omit, pick } from 'lodash';\nimport { ProjectManifest } from '@pnpm/types';\nimport { BitError } from '@teambit/bit-error';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { ApplicationMain, ApplicationAspect } from '@teambit/application';\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 { linkToNodeModulesWithCodemod, NodeModulesLinksResult } from '@teambit/workspace.modules.node-modules-linker';\nimport { EnvsMain, EnvsAspect } from '@teambit/envs';\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 { CodemodResult } from '@teambit/legacy/dist/consumer/component-ops/codemod-components';\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};\n\nexport type WorkspaceLinkResults = {\n legacyLinkResults?: NodeModulesLinksResult[];\n legacyLinkCodemodResults?: CodemodResult[];\n} & LinkResults;\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 includeOptionalDeps?: boolean;\n updateAll?: 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 private visitedAspects: Set<string> = new Set();\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 app: ApplicationMain,\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 // 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 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 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 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 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 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 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 workspacePolicy = this.dependencyResolver.getWorkspacePolicy();\n const mergedRootPolicy = await this.addConfiguredAspectsToWorkspacePolicy(workspacePolicy);\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 includeOptionalDeps: options?.includeOptionalDeps,\n overrides: this.dependencyResolver.config.overrides,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n nodeLinker: this.dependencyResolver.nodeLinker(),\n updateAll: options?.updateAll,\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 await installer.installComponents(\n this.workspace.path,\n current.manifests,\n mergedRootPolicy,\n current.componentDirectoryMap,\n {\n installTeambitBit: false,\n // We clean node_modules only on the first install.\n // Otherwise, we might load an env from a location that we later remove.\n pruneNodeModules: installCycle === 0,\n },\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 const compileStartTime = process.hrtime();\n const compileOutputMessage = `compiling components`;\n this.logger.setStatusLine(compileOutputMessage);\n await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install });\n this.logger.consoleSuccess(compileOutputMessage, compileStartTime);\n }\n await this.link(linkOpts);\n prevManifests.add(manifestsHash(current.manifests));\n // We need to clear cache before creating the new component manifests.\n this.workspace.consumer.componentLoader.clearComponentsCache();\n this.workspace.clearCache();\n current = await this._getComponentsManifests(installer, mergedRootPolicy, pmInstallOptions);\n installCycle += 1;\n } while ((!prevManifests.has(manifestsHash(current.manifests)) || hasMissingLocalComponents) && installCycle < 5);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n /* eslint-enable no-await-in-loop */\n return current.componentDirectoryMap;\n }\n\n private async addConfiguredAspectsToWorkspacePolicy(rootPolicy: WorkspacePolicy): Promise<WorkspacePolicy> {\n const aspectsPackages = await this.workspace.getConfiguredUserAspectsPackages({ externalsOnly: true });\n aspectsPackages.forEach((aspectsPackage) => {\n rootPolicy.add({\n dependencyId: aspectsPackage.packageName,\n value: {\n version: aspectsPackage.version,\n },\n lifecycleType: 'runtime',\n });\n });\n return rootPolicy;\n }\n\n private async _getComponentsManifests(\n dependencyInstaller: DependencyInstaller,\n rootPolicy: WorkspacePolicy,\n installOptions: Pick<\n PackageManagerInstallOptions,\n 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents' | 'nodeLinker'\n >\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 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 private async _updateRootDirs(rootDirs: string[]) {\n try {\n const bitRootCompsDir = getBitRootsDir(this.workspace.path);\n const existingDirs = await fs.readdir(bitRootCompsDir);\n await Promise.all(\n existingDirs.map(async (dirName) => {\n const dirPath = path.join(bitRootCompsDir, 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 getRootComponentDir(this.workspace.path, envId),\n {\n dependencies: {\n ...(await this._getEnvDependencies(envId)),\n ...workspaceDeps,\n },\n dependenciesMeta: workspaceDepsMeta,\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n );\n }\n\n private async _getEnvDependencies(envId: string): Promise<Record<string, string>> {\n const env = this.envs.getEnvDefinitionByStringId(envId);\n if (!env) throw new BitError(`Cannot find environment with id: ${envId}`);\n const policy = await this.dependencyResolver.getComponentEnvPolicyFromEnvDefinition(env);\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 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 (\n await this.app.listAppsFromComponents()\n ).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 = this.envs.getEnvId(app);\n return [\n getRootComponentDir(this.workspace.path, app.id.toString()),\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<string[]> {\n const envs = new Set<string>();\n (await this.workspace.list()).forEach((component) => {\n envs.add(this.envs.getEnvId(component));\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: { 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<WorkspaceLinkResults> {\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 const workspaceRes = res as WorkspaceLinkResults;\n\n const bitIds = compDirMap.toArray().map(([component]) => component.id._legacy);\n const legacyResults = await linkToNodeModulesWithCodemod(this.workspace, bitIds, options.rewire ?? false);\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 res;\n }\n\n private async _linkAllComponentsToBitRoots(compDirMap: ComponentMap<string>) {\n const envs = await this._getAllUsedEnvIds();\n const apps = (await this.app.listAppsFromComponents()).map((component) => component.id.toString());\n await Promise.all(\n [...envs, ...apps].map(async (id) => {\n await fs.mkdirp(getRootComponentDir(this.workspace.path, id));\n })\n );\n await linkPkgsToBitRoots(\n this.workspace.path,\n compDirMap.components.map((component) => this.dependencyResolver.getPackageName(component))\n );\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 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 = 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 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 EnvsAspect,\n ApplicationAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [dependencyResolver, workspace, loggerExt, variants, cli, community, compiler, issues, envs, app]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CommunityMain,\n CompilerMain,\n IssuesMain,\n EnvsMain,\n ApplicationMain\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 envs,\n app,\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 // 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 }\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 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\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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"}
|
1
|
+
{"version":3,"names":["InstallMain","constructor","dependencyResolver","logger","workspace","variants","compiler","envs","app","preLinkSlot","preInstallSlot","Set","install","packages","options","inInstallContext","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","res","_installModules","registerPreLink","register","registerPreInstall","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","resolvedPackages","Promise","all","newWorkspacePolicyEntries","forEach","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","overridePrefix","savePrefix","wantedRange","push","dependencyId","value","addToRootPolicy","updateExisting","persistConfig","pm","getPackageManager","name","chalk","cyan","getPackageManagerName","workspacePolicy","addConfiguredAspectsToWorkspacePolicy","hasRootComponents","includeOptionalDeps","rootComponents","nodeLinker","updateAll","installer","getInstaller","current","_getComponentsManifests","prevManifests","link","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","linkOpts","isLegacy","installCycle","hasMissingLocalComponents","hasComponentsFromWorkspaceInMissingDeps","dependenciesChanged","installComponents","manifests","componentDirectoryMap","installTeambitBit","pruneNodeModules","linkCoreAspectsAndLegacy","rootPolicy","compile","compileStartTime","process","hrtime","compileOutputMessage","setStatusLine","compileOnWorkspace","initiator","CompilationInitiator","Install","consoleSuccess","add","manifestsHash","consumer","componentLoader","clearComponentsCache","clearCache","has","componentFsCache","deleteAllDependenciesDataCache","aspectsPackages","getConfiguredUserAspectsPackages","externalsOnly","aspectsPackage","dependencyInstaller","installOptions","getComponentManifests","referenceLocalPackages","rootManifests","_getRootManifests","_updateRootDirs","keys","rootDirs","bitRootCompsDir","getBitRootsDir","existingDirs","fs","readdir","dirName","dirPath","includes","remove","err","code","mkdir","recursive","nonRootManifests","filter","workspaceDeps","getWorkspaceDepsOfBitRoots","workspaceDepsMeta","reduce","acc","depName","injected","envManifests","_getEnvManifests","appManifests","_getAppManifests","_getAllUsedEnvIds","fromEntries","envId","getRootComponentDir","dependencies","_getEnvDependencies","dependenciesMeta","installConfig","hoistingLimits","env","getEnvDefinitionByStringId","BitError","policy","getComponentEnvPolicyFromEnvDefinition","selfPolicy","force","compact","listAppsFromComponents","appPkgName","getPackageName","appManifest","find","getEnvId","id","toString","omit","list","component","Array","from","updateDependencies","componentConfigFiles","componentPoliciesById","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","components","outdatedPkgs","getOutdatedPkgsFromPolicies","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","updatedComponentConfigFiles","pick","_saveManyComponentConfigFiles","_reloadConsumer","addDuplicateComponentAndPackageIssue","state","_consumer","removed","pkgName","componentIdToPackageName","found","issues","getOrCreate","IssuesClasses","DuplicateComponentAndPackage","data","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","aspects","get","DependencyResolverAspect","variantPattern","extensions","updateVariantPolicies","setExtension","overrideExisting","write","override","uninstallDependencies","removeFromRootPolicy","linker","getLinker","linkingOptions","compIds","workspaceRes","bitIds","toArray","_legacy","legacyResults","linkToNodeModulesWithCodemod","rewire","legacyLinkResults","linksResults","legacyLinkCodemodResults","codemodResults","linkToBitRoots","_linkAllComponentsToBitRoots","apps","mkdirp","linkPkgsToBitRoots","remotes","scope","_legacyRemotes","reg","getRegistries","packageScopes","scopes","dependencyList","filtered","dep","ComponentDependency","isHub","some","startsWith","ids","getMany","ComponentMap","as","componentDir","onRootAspectAddedSubscriber","_aspectId","inWs","onAspectsResolveSubscriber","aspectComponents","needLink","needInstall","promises","aspectComponent","aspectIdStr","visitedAspects","packagePath","getComponentPackagePath","exists","pathExists","hasId","provider","loggerExt","cli","_","createLogger","installExt","registerAddComponentsIssues","bind","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","registerOnRootAspectAdded","Slot","withType","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CompilerAspect","IssuesAspect","EnvsAspect","ApplicationAspect","MainRuntime","missingDeps","issue","getIssue","MissingPackagesDependenciesOnFs","flat","InstallAspect","addRuntime","depsByProjectPaths","mapValues","manifest","devDependencies","hash"],"sources":["install.main.runtime.ts"],"sourcesContent":["import fs, { pathExists } from 'fs-extra';\nimport path from 'path';\nimport { getRootComponentDir, getBitRootsDir, linkPkgsToBitRoots } from '@teambit/bit-roots';\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, pick } from 'lodash';\nimport { ProjectManifest } from '@pnpm/types';\nimport { BitError } from '@teambit/bit-error';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { ApplicationMain, ApplicationAspect } from '@teambit/application';\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 { linkToNodeModulesWithCodemod, NodeModulesLinksResult } from '@teambit/workspace.modules.node-modules-linker';\nimport { EnvsMain, EnvsAspect } from '@teambit/envs';\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 { CodemodResult } from '@teambit/legacy/dist/consumer/component-ops/codemod-components';\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};\n\nexport type WorkspaceLinkResults = {\n legacyLinkResults?: NodeModulesLinksResult[];\n legacyLinkCodemodResults?: CodemodResult[];\n} & LinkResults;\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 includeOptionalDeps?: boolean;\n updateAll?: 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 private visitedAspects: Set<string> = new Set();\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 app: ApplicationMain,\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 // 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 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 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 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 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 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 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 workspacePolicy = this.dependencyResolver.getWorkspacePolicy();\n const mergedRootPolicy = await this.addConfiguredAspectsToWorkspacePolicy(workspacePolicy);\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 includeOptionalDeps: options?.includeOptionalDeps,\n overrides: this.dependencyResolver.config.overrides,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n nodeLinker: this.dependencyResolver.nodeLinker(),\n updateAll: options?.updateAll,\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 const { dependenciesChanged } = await installer.installComponents(\n this.workspace.path,\n current.manifests,\n mergedRootPolicy,\n current.componentDirectoryMap,\n {\n installTeambitBit: false,\n // We clean node_modules only on the first install.\n // Otherwise, we might load an env from a location that we later remove.\n pruneNodeModules: installCycle === 0,\n },\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 const compileStartTime = process.hrtime();\n const compileOutputMessage = `compiling components`;\n this.logger.setStatusLine(compileOutputMessage);\n await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install });\n this.logger.consoleSuccess(compileOutputMessage, compileStartTime);\n }\n await this.link(linkOpts);\n if (!dependenciesChanged) break;\n prevManifests.add(manifestsHash(current.manifests));\n // We need to clear cache before creating the new component manifests.\n this.workspace.consumer.componentLoader.clearComponentsCache();\n this.workspace.clearCache();\n current = await this._getComponentsManifests(installer, mergedRootPolicy, pmInstallOptions);\n installCycle += 1;\n } while ((!prevManifests.has(manifestsHash(current.manifests)) || hasMissingLocalComponents) && installCycle < 5);\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n /* eslint-enable no-await-in-loop */\n return current.componentDirectoryMap;\n }\n\n private async addConfiguredAspectsToWorkspacePolicy(rootPolicy: WorkspacePolicy): Promise<WorkspacePolicy> {\n const aspectsPackages = await this.workspace.getConfiguredUserAspectsPackages({ externalsOnly: true });\n aspectsPackages.forEach((aspectsPackage) => {\n rootPolicy.add({\n dependencyId: aspectsPackage.packageName,\n value: {\n version: aspectsPackage.version,\n },\n lifecycleType: 'runtime',\n });\n });\n return rootPolicy;\n }\n\n private async _getComponentsManifests(\n dependencyInstaller: DependencyInstaller,\n rootPolicy: WorkspacePolicy,\n installOptions: Pick<\n PackageManagerInstallOptions,\n 'dedupe' | 'dependencyFilterFn' | 'copyPeerToRuntimeOnComponents' | 'nodeLinker'\n >\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 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 private async _updateRootDirs(rootDirs: string[]) {\n try {\n const bitRootCompsDir = getBitRootsDir(this.workspace.path);\n const existingDirs = await fs.readdir(bitRootCompsDir);\n await Promise.all(\n existingDirs.map(async (dirName) => {\n const dirPath = path.join(bitRootCompsDir, 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 getRootComponentDir(this.workspace.path, envId),\n {\n dependencies: {\n ...(await this._getEnvDependencies(envId)),\n ...workspaceDeps,\n },\n dependenciesMeta: workspaceDepsMeta,\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n );\n }\n\n private async _getEnvDependencies(envId: string): Promise<Record<string, string>> {\n const env = this.envs.getEnvDefinitionByStringId(envId);\n if (!env) throw new BitError(`Cannot find environment with id: ${envId}`);\n const policy = await this.dependencyResolver.getComponentEnvPolicyFromEnvDefinition(env);\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 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 (\n await this.app.listAppsFromComponents()\n ).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 = this.envs.getEnvId(app);\n return [\n getRootComponentDir(this.workspace.path, app.id.toString()),\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<string[]> {\n const envs = new Set<string>();\n (await this.workspace.list()).forEach((component) => {\n envs.add(this.envs.getEnvId(component));\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: { 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<WorkspaceLinkResults> {\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 const workspaceRes = res as WorkspaceLinkResults;\n\n const bitIds = compDirMap.toArray().map(([component]) => component.id._legacy);\n const legacyResults = await linkToNodeModulesWithCodemod(this.workspace, bitIds, options.rewire ?? false);\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 res;\n }\n\n private async _linkAllComponentsToBitRoots(compDirMap: ComponentMap<string>) {\n const envs = await this._getAllUsedEnvIds();\n const apps = (await this.app.listAppsFromComponents()).map((component) => component.id.toString());\n await Promise.all(\n [...envs, ...apps].map(async (id) => {\n await fs.mkdirp(getRootComponentDir(this.workspace.path, id));\n })\n );\n await linkPkgsToBitRoots(\n this.workspace.path,\n compDirMap.components.map((component) => this.dependencyResolver.getPackageName(component))\n );\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 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 = 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 static slots = [Slot.withType<PreLinkSlot>(), Slot.withType<PreInstallSlot>()];\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CompilerAspect,\n IssuesAspect,\n EnvsAspect,\n ApplicationAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [dependencyResolver, workspace, loggerExt, variants, cli, compiler, issues, envs, app]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CompilerMain,\n IssuesMain,\n EnvsMain,\n ApplicationMain\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 envs,\n app,\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),\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 }\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 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\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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"}
|
package/dist/link/link.cmd.d.ts
CHANGED
@@ -18,7 +18,6 @@ export declare class LinkCommand implements Command {
|
|
18
18
|
* logger extension.
|
19
19
|
*/
|
20
20
|
private logger;
|
21
|
-
private docsDomain;
|
22
21
|
name: string;
|
23
22
|
alias: string;
|
24
23
|
description: string;
|
@@ -39,7 +38,7 @@ export declare class LinkCommand implements Command {
|
|
39
38
|
/**
|
40
39
|
* logger extension.
|
41
40
|
*/
|
42
|
-
logger: Logger
|
41
|
+
logger: Logger);
|
43
42
|
report([ids]: [string[]], opts: LinkCommandOpts): Promise<string>;
|
44
43
|
json([ids]: [string[]], opts: LinkCommandOpts): Promise<WorkspaceLinkResults>;
|
45
44
|
}
|
package/dist/link/link.cmd.js
CHANGED
@@ -72,11 +72,10 @@ class LinkCommand {
|
|
72
72
|
/**
|
73
73
|
* logger extension.
|
74
74
|
*/
|
75
|
-
logger
|
75
|
+
logger) {
|
76
76
|
this.install = install;
|
77
77
|
this.workspace = workspace;
|
78
78
|
this.logger = logger;
|
79
|
-
this.docsDomain = docsDomain;
|
80
79
|
(0, _defineProperty2().default)(this, "name", 'link [component-names...]');
|
81
80
|
(0, _defineProperty2().default)(this, "alias", '');
|
82
81
|
(0, _defineProperty2().default)(this, "description", 'create links in the node_modules directory, to core aspects and to components in the workspace');
|
@@ -89,7 +88,6 @@ class LinkCommand {
|
|
89
88
|
description: 'names or IDs of the components to link'
|
90
89
|
}]);
|
91
90
|
(0, _defineProperty2().default)(this, "options", [['j', 'json', 'return the output as JSON'], ['', 'verbose', 'verbose output'], ['r', 'rewire', 'Replace relative paths with module paths in code (e.g. "../foo" => "@bit/foo")'], ['', 'target <dir>', 'EXPERIMENTAL. link to an external directory (similar to npm-link) so other projects could use these components'], ['', 'skip-fetching-objects', 'skip fetch missing objects from remotes before linking']]);
|
92
|
-
this.extendedDescription = `https://${this.docsDomain}/workspace/component-links`;
|
93
91
|
}
|
94
92
|
async report([ids], opts) {
|
95
93
|
var _linkResults$legacyLi;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["LinkCommand","constructor","install","workspace","logger","
|
1
|
+
{"version":3,"names":["LinkCommand","constructor","install","workspace","logger","name","description","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","linkToBitRoots","rewire","linkCoreAspects","linkTeambitBit","target","fetchObject","skipFetchingObjects","link"],"sources":["link.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\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, WorkspaceLinkResults } 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\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<WorkspaceLinkResults> {\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 linkToBitRoots: 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":";;;;;;;;;;;;;;;;AAEA;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,EACtB;IAAA,KAVQF,OAAoB,GAApBA,OAAoB;IAAA,KAIpBC,SAAoB,GAApBA,SAAoB;IAAA,KAKpBC,MAAc,GAAdA,MAAc;IAAA,8CA9BjB,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;EAaE;EAEH,MAAMC,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,CAACtB,SAAS,CAACE,IAAK,EAAC;IAC/I,MAAMsB,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,EAAiC;IAClF,IAAI,CAACL,MAAM,CAACwC,OAAO,CAChB,wEAAuEC,gBAAK,CAACC,IAAI,CAAC,IAAI,CAAC3C,SAAS,CAACE,IAAI,CAAE,GAAE,CAC3G;IAED,MAAM0C,QAA8B,GAAG;MACrCC,cAAc,EAAE,IAAI;MACpBC,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,CAACX,OAAO,CAACqD,IAAI,CAACR,QAAQ,CAAC;IACrD,OAAOlC,WAAW;EACpB;AACF;AAAC"}
|
package/link/link.cmd.ts
CHANGED
@@ -47,12 +47,8 @@ export class LinkCommand implements Command {
|
|
47
47
|
/**
|
48
48
|
* logger extension.
|
49
49
|
*/
|
50
|
-
private logger: Logger
|
51
|
-
|
52
|
-
private docsDomain: string
|
53
|
-
) {
|
54
|
-
this.extendedDescription = `https://${this.docsDomain}/workspace/component-links`;
|
55
|
-
}
|
50
|
+
private logger: Logger
|
51
|
+
) {}
|
56
52
|
|
57
53
|
async report([ids]: [string[]], opts: LinkCommandOpts) {
|
58
54
|
const startTime = Date.now();
|
Binary file
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/install",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.158",
|
4
4
|
"homepage": "https://bit.cloud/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.
|
9
|
+
"version": "0.0.158"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "2.4.2",
|
@@ -24,9 +24,9 @@
|
|
24
24
|
"@babel/runtime": "7.20.0",
|
25
25
|
"@teambit/harmony": "0.4.6",
|
26
26
|
"@teambit/bit-error": "0.0.402",
|
27
|
-
"@teambit/bit-roots": "0.0.
|
27
|
+
"@teambit/bit-roots": "0.0.42",
|
28
28
|
"@teambit/component-issues": "0.0.89",
|
29
|
-
"@teambit/workspace.modules.node-modules-linker": "0.0.
|
29
|
+
"@teambit/workspace.modules.node-modules-linker": "0.0.49",
|
30
30
|
"@teambit/toolbox.time.time-format": "0.0.490"
|
31
31
|
},
|
32
32
|
"devDependencies": {
|
@@ -42,7 +42,7 @@
|
|
42
42
|
"@types/testing-library__jest-dom": "5.9.5"
|
43
43
|
},
|
44
44
|
"peerDependencies": {
|
45
|
-
"@teambit/legacy": "1.0.
|
45
|
+
"@teambit/legacy": "1.0.484",
|
46
46
|
"react": "^16.8.0 || ^17.0.0",
|
47
47
|
"react-dom": "^16.8.0 || ^17.0.0"
|
48
48
|
},
|
Binary file
|
File without changes
|