@teambit/install 0.0.3 → 0.0.4
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 +6 -3
- package/dist/install.main.runtime.js +6 -6
- package/dist/install.main.runtime.js.map +1 -1
- package/package-tar/teambit-install-0.0.4.tgz +0 -0
- package/package.json +2 -2
- package/{preview-1662780958471.js → preview-1663126549096.js} +2 -0
- package/package-tar/teambit-install-0.0.3.tgz +0 -0
@@ -4,6 +4,7 @@ import { Workspace } from '@teambit/workspace';
|
|
4
4
|
import { VariantsMain } from '@teambit/variants';
|
5
5
|
import { ComponentMap } from '@teambit/component';
|
6
6
|
import { WorkspaceDependencyLifecycleType, DependencyResolverMain, LinkingOptions, LinkResults } from '@teambit/dependency-resolver';
|
7
|
+
import { ImporterMain } from '@teambit/importer';
|
7
8
|
import { Logger, LoggerMain } from '@teambit/logger';
|
8
9
|
export declare type WorkspaceLinkOptions = LinkingOptions;
|
9
10
|
export declare type WorkspaceInstallOptions = {
|
@@ -23,7 +24,8 @@ export declare class InstallMain {
|
|
23
24
|
private logger;
|
24
25
|
private workspace;
|
25
26
|
private variants;
|
26
|
-
|
27
|
+
private importer;
|
28
|
+
constructor(dependencyResolver: DependencyResolverMain, logger: Logger, workspace: Workspace, variants: VariantsMain, importer: ImporterMain);
|
27
29
|
/**
|
28
30
|
* Install dependencies for all components in the workspace
|
29
31
|
*
|
@@ -64,13 +66,14 @@ export declare class InstallMain {
|
|
64
66
|
static slots: never[];
|
65
67
|
static dependencies: import("@teambit/harmony").Aspect[];
|
66
68
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
67
|
-
static provider([dependencyResolver, workspace, loggerExt, variants, cli, community]: [
|
69
|
+
static provider([dependencyResolver, workspace, loggerExt, variants, cli, community, importer]: [
|
68
70
|
DependencyResolverMain,
|
69
71
|
Workspace,
|
70
72
|
LoggerMain,
|
71
73
|
VariantsMain,
|
72
74
|
CLIMain,
|
73
|
-
CommunityMain
|
75
|
+
CommunityMain,
|
76
|
+
ImporterMain
|
74
77
|
]): Promise<InstallMain>;
|
75
78
|
}
|
76
79
|
export default InstallMain;
|
@@ -212,11 +212,12 @@ function _update() {
|
|
212
212
|
}
|
213
213
|
|
214
214
|
class InstallMain {
|
215
|
-
constructor(dependencyResolver, logger, workspace, variants) {
|
215
|
+
constructor(dependencyResolver, logger, workspace, variants, importer) {
|
216
216
|
this.dependencyResolver = dependencyResolver;
|
217
217
|
this.logger = logger;
|
218
218
|
this.workspace = workspace;
|
219
219
|
this.variants = variants;
|
220
|
+
this.importer = importer;
|
220
221
|
}
|
221
222
|
/**
|
222
223
|
* Install dependencies for all components in the workspace
|
@@ -491,10 +492,9 @@ class InstallMain {
|
|
491
492
|
importDependenciesDirectly: false,
|
492
493
|
importDependents: false
|
493
494
|
};
|
494
|
-
const importer = new (_importer().Importer)(this.workspace, this.dependencyResolver);
|
495
495
|
|
496
496
|
try {
|
497
|
-
const res = await importer.import(importOptions, []);
|
497
|
+
const res = await this.importer.import(importOptions, []);
|
498
498
|
return res;
|
499
499
|
} catch (err) {
|
500
500
|
// TODO: this is a hack since the legacy throw an error, we should provide a way to not throw this error from the legacy
|
@@ -544,9 +544,9 @@ class InstallMain {
|
|
544
544
|
return _component().ComponentMap.as(components, component => this.workspace.componentDir(component.id));
|
545
545
|
}
|
546
546
|
|
547
|
-
static async provider([dependencyResolver, workspace, loggerExt, variants, cli, community]) {
|
547
|
+
static async provider([dependencyResolver, workspace, loggerExt, variants, cli, community, importer]) {
|
548
548
|
const logger = loggerExt.createLogger('teambit.bit/install');
|
549
|
-
const installExt = new InstallMain(dependencyResolver, logger, workspace, variants);
|
549
|
+
const installExt = new InstallMain(dependencyResolver, logger, workspace, variants, importer);
|
550
550
|
|
551
551
|
_manyComponentsWriter().default.registerExternalInstaller({
|
552
552
|
install: async () => {
|
@@ -569,7 +569,7 @@ class InstallMain {
|
|
569
569
|
|
570
570
|
exports.InstallMain = InstallMain;
|
571
571
|
(0, _defineProperty2().default)(InstallMain, "slots", []);
|
572
|
-
(0, _defineProperty2().default)(InstallMain, "dependencies", [_dependencyResolver().DependencyResolverAspect, _workspace().WorkspaceAspect, _logger().LoggerAspect, _variants().VariantsAspect, _cli().CLIAspect, _community().CommunityAspect]);
|
572
|
+
(0, _defineProperty2().default)(InstallMain, "dependencies", [_dependencyResolver().DependencyResolverAspect, _workspace().WorkspaceAspect, _logger().LoggerAspect, _variants().VariantsAspect, _cli().CLIAspect, _community().CommunityAspect, _importer().ImporterAspect]);
|
573
573
|
(0, _defineProperty2().default)(InstallMain, "runtime", _cli().MainRuntime);
|
574
574
|
|
575
575
|
_install().InstallAspect.addRuntime(InstallMain);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["InstallMain","constructor","dependencyResolver","logger","workspace","variants","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","import","setStatusLine","importObjects","consoleSuccess","_installModules","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","link","linkTeambitBit","legacyLink","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","consumer","componentLoader","clearComponentsCache","clearCache","installer","getInstaller","rootComponents","installTeambitBit","isLegacy","componentFsCache","deleteAllDependenciesDataCache","updateDependencies","componentConfigFiles","componentPoliciesById","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","components","list","outdatedPkgs","getOutdatedPkgsFromPolicies","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","updatedComponentConfigFiles","values","pick","_saveManyComponentConfigFiles","_reloadConsumer","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","aspects","get","DependencyResolverAspect","id","toString","policy","variantPattern","extensions","updateVariantPolicies","setExtension","overrideExisting","Array","from","write","override","uninstallDependencies","removeFromRootPolicy","fetchObject","linker","getLinker","linkingOptions","res","importOptions","ids","verbose","merge","objectsOnly","writeDists","writeConfig","installNpmPackages","importDependenciesDirectly","importDependents","importer","Importer","err","NothingToImport","undefined","remotes","scope","_legacyRemotes","reg","getRegistries","packageScopes","keys","scopes","dependencyList","filtered","filter","dep","ComponentDependency","isHub","some","startsWith","getMany","ComponentMap","as","component","componentDir","provider","loggerExt","cli","community","createLogger","installExt","ManyComponentsWriter","registerExternalInstaller","installOpts","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","getDocsDomain","register","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CommunityAspect","MainRuntime","InstallAspect","addRuntime"],"sources":["install.main.runtime.ts"],"sourcesContent":["import { CommunityMain, CommunityAspect } from '@teambit/community';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport { CLIMain, CommandList, CLIAspect, MainRuntime } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceAspect, Workspace, ComponentConfigFile } from '@teambit/workspace';\nimport { pick } from 'lodash';\nimport { NothingToImport } from '@teambit/legacy/dist/consumer/exceptions';\nimport { VariantsMain, Patterns, VariantsAspect } from '@teambit/variants';\nimport { ComponentID, ComponentMap } from '@teambit/component';\nimport {\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyResolverAspect,\n PackageManagerInstallOptions,\n ComponentDependency,\n VariantPolicyConfigObject,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n OutdatedPkg,\n} from '@teambit/dependency-resolver';\nimport { Importer } from '@teambit/importer';\nimport { ImportOptions } from '@teambit/legacy/dist/consumer/component-ops/import-components';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\n\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\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};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\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 /**\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 if (options?.import) {\n this.logger.setStatusLine('importing missing objects');\n await this.importObjects();\n this.logger.consoleSuccess();\n }\n return this._installModules(options);\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 hasRootComponents = this.dependencyResolver.hasRootComponents();\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: false,\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: false,\n });\n this.workspace.consumer.componentLoader.clearComponentsCache();\n this.workspace.clearCache();\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n\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 await installer.install(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n { installTeambitBit: false },\n pmInstallOptions\n );\n await this.link({\n linkTeambitBit: false,\n legacyLink: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n });\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n return compDirMap;\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 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 link(options: WorkspaceLinkOptions = {}): Promise<LinkResults> {\n if (options.fetchObject) {\n await this.importObjects();\n }\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 // TODO: replace with a proper import API on the workspace\n private async importObjects() {\n const importOptions: ImportOptions = {\n ids: [],\n verbose: false,\n merge: false,\n objectsOnly: true,\n override: false,\n writeDists: false,\n writeConfig: false,\n installNpmPackages: false,\n importDependenciesDirectly: false,\n importDependents: false,\n };\n const importer = new Importer(this.workspace, this.dependencyResolver);\n try {\n const res = await importer.import(importOptions, []);\n return res;\n } catch (err: any) {\n // TODO: this is a hack since the legacy throw an error, we should provide a way to not throw this error from the legacy\n if (err instanceof NothingToImport) {\n // Do not write nothing to import warning\n return undefined;\n }\n throw err;\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 static slots = [];\n // define your aspect dependencies here.\n // in case you need to use another aspect API.\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CommunityAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([dependencyResolver, workspace, loggerExt, variants, cli, community]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CommunityMain\n ]) {\n const logger = loggerExt.createLogger('teambit.bit/install');\n const installExt = new InstallMain(dependencyResolver, logger, workspace, variants);\n ManyComponentsWriter.registerExternalInstaller({\n install: async () => {\n // TODO: think how we should pass this options\n const installOpts: WorkspaceInstallOptions = {\n dedupe: true,\n updateExisting: false,\n import: false,\n };\n return installExt.install(undefined, installOpts);\n },\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 return installExt;\n }\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","importer","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","import","setStatusLine","importObjects","consoleSuccess","_installModules","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","link","linkTeambitBit","legacyLink","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","consumer","componentLoader","clearComponentsCache","clearCache","installer","getInstaller","rootComponents","installTeambitBit","isLegacy","componentFsCache","deleteAllDependenciesDataCache","updateDependencies","componentConfigFiles","componentPoliciesById","_getComponentsWithDependencyPolicies","variantPatterns","raw","variantPoliciesByPatterns","_variantPatternsToDepPolicesDict","components","list","outdatedPkgs","getOutdatedPkgsFromPolicies","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","updatedComponentConfigFiles","values","pick","_saveManyComponentConfigFiles","_reloadConsumer","allComponentIds","listIds","componentId","componentConfigFile","index","depResolverConfig","aspects","get","DependencyResolverAspect","id","toString","policy","variantPattern","extensions","updateVariantPolicies","setExtension","overrideExisting","Array","from","write","override","uninstallDependencies","removeFromRootPolicy","fetchObject","linker","getLinker","linkingOptions","res","importOptions","ids","verbose","merge","objectsOnly","writeDists","writeConfig","installNpmPackages","importDependenciesDirectly","importDependents","err","NothingToImport","undefined","remotes","scope","_legacyRemotes","reg","getRegistries","packageScopes","keys","scopes","dependencyList","filtered","filter","dep","ComponentDependency","isHub","some","startsWith","getMany","ComponentMap","as","component","componentDir","provider","loggerExt","cli","community","createLogger","installExt","ManyComponentsWriter","registerExternalInstaller","installOpts","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","getDocsDomain","register","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CommunityAspect","ImporterAspect","MainRuntime","InstallAspect","addRuntime"],"sources":["install.main.runtime.ts"],"sourcesContent":["import { CommunityMain, CommunityAspect } from '@teambit/community';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport { CLIMain, CommandList, CLIAspect, MainRuntime } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceAspect, Workspace, ComponentConfigFile } from '@teambit/workspace';\nimport { pick } from 'lodash';\nimport { NothingToImport } from '@teambit/legacy/dist/consumer/exceptions';\nimport { VariantsMain, Patterns, VariantsAspect } from '@teambit/variants';\nimport { ComponentID, ComponentMap } from '@teambit/component';\nimport {\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyResolverAspect,\n PackageManagerInstallOptions,\n ComponentDependency,\n VariantPolicyConfigObject,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n OutdatedPkg,\n} from '@teambit/dependency-resolver';\nimport { ImporterAspect, ImporterMain } from '@teambit/importer';\nimport { ImportOptions } from '@teambit/legacy/dist/consumer/component-ops/import-components';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\n\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\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};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\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 importer: ImporterMain\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 if (options?.import) {\n this.logger.setStatusLine('importing missing objects');\n await this.importObjects();\n this.logger.consoleSuccess();\n }\n return this._installModules(options);\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 hasRootComponents = this.dependencyResolver.hasRootComponents();\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: false,\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: false,\n });\n this.workspace.consumer.componentLoader.clearComponentsCache();\n this.workspace.clearCache();\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n\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 await installer.install(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n { installTeambitBit: false },\n pmInstallOptions\n );\n await this.link({\n linkTeambitBit: false,\n legacyLink: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n });\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n return compDirMap;\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 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 link(options: WorkspaceLinkOptions = {}): Promise<LinkResults> {\n if (options.fetchObject) {\n await this.importObjects();\n }\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 // TODO: replace with a proper import API on the workspace\n private async importObjects() {\n const importOptions: ImportOptions = {\n ids: [],\n verbose: false,\n merge: false,\n objectsOnly: true,\n override: false,\n writeDists: false,\n writeConfig: false,\n installNpmPackages: false,\n importDependenciesDirectly: false,\n importDependents: false,\n };\n try {\n const res = await this.importer.import(importOptions, []);\n return res;\n } catch (err: any) {\n // TODO: this is a hack since the legacy throw an error, we should provide a way to not throw this error from the legacy\n if (err instanceof NothingToImport) {\n // Do not write nothing to import warning\n return undefined;\n }\n throw err;\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 static slots = [];\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CommunityAspect,\n ImporterAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider([dependencyResolver, workspace, loggerExt, variants, cli, community, importer]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CommunityMain,\n ImporterMain\n ]) {\n const logger = loggerExt.createLogger('teambit.bit/install');\n const installExt = new InstallMain(dependencyResolver, logger, workspace, variants, importer);\n ManyComponentsWriter.registerExternalInstaller({\n install: async () => {\n // TODO: think how we should pass this options\n const installOpts: WorkspaceInstallOptions = {\n dedupe: true,\n updateExisting: false,\n import: false,\n };\n return installExt.install(undefined, installOpts);\n },\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 return installExt;\n }\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;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAaA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;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;;AAkBO,MAAMA,WAAN,CAAkB;EACvBC,WAAW,CACDC,kBADC,EAGDC,MAHC,EAKDC,SALC,EAODC,QAPC,EASDC,QATC,EAUT;IAAA,KATQJ,kBASR,GATQA,kBASR;IAAA,KAPQC,MAOR,GAPQA,MAOR;IAAA,KALQC,SAKR,GALQA,SAKR;IAAA,KAHQC,QAGR,GAHQA,QAGR;IAAA,KADQC,QACR,GADQA,QACR;EAAE;EACJ;AACF;AACA;AACA;AACA;AACA;;;EACe,MAAPC,OAAO,CAACC,QAAD,EAAsBC,OAAtB,EAAwF;IACnG,IAAID,QAAQ,IAAIA,QAAQ,CAACE,MAAzB,EAAiC;MAC/B,MAAM,KAAKC,YAAL,CAAkBH,QAAlB,EAA4BC,OAA5B,CAAN;IACD;;IACD,IAAIA,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEG,eAAb,EAA8B;MAAA;;MAC5B,MAAMC,UAAU,GAAG,MAAM,KAAKC,sBAAL,CAA4B,EAA5B,CAAzB;MACA,MAAMC,gBAAgB,GAAG,KAAKb,kBAAL,CAAwBc,kBAAxB,EAAzB;MACA,MAAMC,YAAY,GAAG,MAAM,KAAKC,sCAAL,EAA3B;MACA,MAAMC,gBAA8C,GAAG;QACrDC,MAAM,EAAEX,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEW,MADoC;QAErDC,uBAAuB,2BAAEZ,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEY,uBAAX,yEAAsC,IAFR;QAGrDC,6BAA6B,4BAAEb,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEa,6BAAX,2EAA4C,KAHpB;QAIrDC,kBAAkB,EAAEN,YAJiC;QAKrDO,SAAS,EAAE,KAAKtB,kBAAL,CAAwBuB,MAAxB,CAA+BD,SALW;QAMrDE,mBAAmB,EAAE,KAAKxB,kBAAL,CAAwBuB,MAAxB,CAA+BC;MANC,CAAvD;MAQA,MAAMC,YAAY,GAAG,MAAM,KAAKzB,kBAAL,CAAwB0B,0BAAxB,CACzB,KAAKxB,SAAL,CAAeyB,IADU,EAEzBd,gBAFyB,EAGzBF,UAHyB,EAIzBM,gBAJyB,CAA3B;;MAMA,IAAIQ,YAAJ,EAAkB;QAChB,MAAMG,mBAAmB,GAAGC,MAAM,CAACC,OAAP,CAAeL,YAAf,EAA6BM,GAA7B,CAAiC,CAAC,CAACC,QAAD,EAAWC,KAAX,CAAD,KAAwB,GAAED,QAAS,IAAGC,KAAM,EAA7E,CAA5B;QACA,MAAM,KAAKxB,YAAL,CAAkBmB,mBAAlB,EAAuCrB,OAAvC,CAAN;MACD,CAHD,MAGO;QACL,KAAKN,MAAL,CAAYiC,OAAZ,CAAoB,qCAApB;MACD;IACF;;IACD,IAAI3B,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAE4B,MAAb,EAAqB;MACnB,KAAKlC,MAAL,CAAYmC,aAAZ,CAA0B,2BAA1B;MACA,MAAM,KAAKC,aAAL,EAAN;MACA,KAAKpC,MAAL,CAAYqC,cAAZ;IACD;;IACD,OAAO,KAAKC,eAAL,CAAqBhC,OAArB,CAAP;EACD;;EAEyB,MAAZE,YAAY,CAACH,QAAD,EAAqBC,OAArB,EAAwD;IAChF,IAAI,EAACA,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEJ,QAAV,KAAsB,CAACI,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEiC,aAAV,MAAuC,KAAjE,EAAwE;MACtE,MAAM,KAAIC,iDAAJ,EAAuClC,OAAvC,aAAuCA,OAAvC,uBAAuCA,OAAO,CAAEiC,aAAhD,CAAN;IACD;;IACD,KAAKvC,MAAL,CAAYyC,KAAZ,CAAmB,sCAAqCpC,QAAQ,CAACqC,IAAT,EAAgB,EAAxE;IACA,MAAMC,QAAQ,GAAG,MAAM,KAAK5C,kBAAL,CAAwB6C,kBAAxB,EAAvB;IACA,MAAMC,iBAAiB,GAAGxC,QAAQ,CAACyB,GAAT,CAAcgB,WAAD,IACrCH,QAAQ,CAACI,oBAAT,CAA8BD,WAA9B,EAA2C;MACzCE,OAAO,EAAE,KAAK/C,SAAL,CAAeyB;IADiB,CAA3C,CADwB,CAA1B;IAKA,MAAMuB,gBAAgB,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYN,iBAAZ,CAA/B;IACA,MAAMO,yBAAiD,GAAG,EAA1D;IACAH,gBAAgB,CAACI,OAAjB,CAA0BC,eAAD,IAAqB;MAC5C,IAAIA,eAAe,CAACC,OAApB,EAA6B;QAC3B,MAAMC,iBAAiB,GAAG,KAAKzD,kBAAL,CAAwB0D,wBAAxB,CACxBH,eAAe,CAACC,OADQ,EAExBjD,OAFwB,aAExBA,OAFwB,uBAExBA,OAAO,CAAEoD,UAFe,CAA1B;QAIAN,yBAAyB,CAACO,IAA1B,CAA+B;UAC7BC,YAAY,EAAEN,eAAe,CAACR,WADD;UAE7Be,KAAK,EAAE;YACLN,OAAO,EAAEC;UADJ,CAFsB;UAK7BjB,aAAa,EAAE,CAAAjC,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEiC,aAAT,KAA0B;QALZ,CAA/B;MAOD;IACF,CAdD;;IAeA,IAAI,EAACjC,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEJ,QAAV,CAAJ,EAAwB;MAAA;;MACtB,KAAKH,kBAAL,CAAwB+D,eAAxB,CAAwCV,yBAAxC,EAAmE;QACjEW,cAAc,2BAAEzD,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEyD,cAAX,yEAA6B;MADsB,CAAnE;IAGD,CAJD,MAIO,CACL;IACD;;IACD,MAAM,KAAKhE,kBAAL,CAAwBiE,aAAxB,CAAsC,KAAK/D,SAAL,CAAeyB,IAArD,CAAN;EACD;;EAE4B,MAAfY,eAAe,CAAChC,OAAD,EAAiE;IAAA;;IAC5F,KAAKN,MAAL,CAAYiC,OAAZ,CACG,8CAA6CgC,gBAAA,CAAMC,IAAN,CAAW,KAAKnE,kBAAL,CAAwBoE,qBAAxB,EAAX,CAA4D,EAD5G;IAGA,KAAKnE,MAAL,CAAYyC,KAAZ,CAAmB,mDAAnB,EAAuEnC,OAAvE;IACA,MAAM8D,iBAAiB,GAAG,KAAKrE,kBAAL,CAAwBqE,iBAAxB,EAA1B,CAL4F,CAM5F;IACA;IACA;;IACA,MAAM,KAAKC,IAAL,CAAU;MACdC,cAAc,EAAE,IADF;MAEdC,UAAU,EAAE,IAFE;MAGdC,eAAe,EAAE,KAHH;MAIdC,uBAAuB,EAAE,CAACL,iBAJZ;MAKdM,kBAAkB,EAAE;IALN,CAAV,CAAN;IAOA,KAAKzE,SAAL,CAAe0E,QAAf,CAAwBC,eAAxB,CAAwCC,oBAAxC;IACA,KAAK5E,SAAL,CAAe6E,UAAf,GAjB4F,CAkB5F;;IACA,MAAMC,SAAS,GAAG,KAAKhF,kBAAL,CAAwBiF,YAAxB,CAAqC,EAArC,CAAlB;IACA,MAAMtE,UAAU,GAAG,MAAM,KAAKC,sBAAL,CAA4B,EAA5B,CAAzB;IACA,MAAMC,gBAAgB,GAAG,KAAKb,kBAAL,CAAwBc,kBAAxB,EAAzB;IAEA,MAAMC,YAAY,GAAG,MAAM,KAAKC,sCAAL,EAA3B;IAEA,MAAMC,gBAA8C,GAAG;MACrDC,MAAM,EAAE,CAACmD,iBAAD,KAAsB9D,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAEW,MAA/B,CAD6C;MAErDC,uBAAuB,4BAAEZ,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEY,uBAAX,2EAAsC,IAFR;MAGrDC,6BAA6B,4BAAEb,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEa,6BAAX,2EAA4C,KAHpB;MAIrDC,kBAAkB,EAAEN,YAJiC;MAKrDO,SAAS,EAAE,KAAKtB,kBAAL,CAAwBuB,MAAxB,CAA+BD,SALW;MAMrDE,mBAAmB,EAAE,KAAKxB,kBAAL,CAAwBuB,MAAxB,CAA+BC,mBANC;MAOrD0D,cAAc,EAAEb;IAPqC,CAAvD;IASA,MAAMW,SAAS,CAAC3E,OAAV,CACJ,KAAKH,SAAL,CAAeyB,IADX,EAEJd,gBAFI,EAGJF,UAHI,EAIJ;MAAEwE,iBAAiB,EAAE;IAArB,CAJI,EAKJlE,gBALI,CAAN;IAOA,MAAM,KAAKqD,IAAL,CAAU;MACdC,cAAc,EAAE,KADF;MAEdC,UAAU,EAAE,IAFE;MAGdC,eAAe,EAAE,KAAKzE,kBAAL,CAAwByE,eAAxB,EAHH;MAIdC,uBAAuB,EAAE,CAACL,iBAJZ;MAKdM,kBAAkB,EAAE,CAAC,KAAKzE,SAAL,CAAekF,QAAhB,IAA4B,CAACf;IALnC,CAAV,CAAN;IAOA,MAAM,KAAKnE,SAAL,CAAe0E,QAAf,CAAwBS,gBAAxB,CAAyCC,8BAAzC,EAAN;IACA,OAAO3E,UAAP;EACD;EAED;AACF;AACA;AACA;AACA;;;EAC0B,MAAlB4E,kBAAkB,CAAChF,OAAD,EAA4B;IAClD,MAAM;MAAEiF,oBAAF;MAAwBC;IAAxB,IAAkD,MAAM,KAAKC,oCAAL,EAA9D;IACA,MAAMC,eAAe,GAAG,KAAKxF,QAAL,CAAcyF,GAAd,EAAxB;;IACA,MAAMC,yBAAyB,GAAG,KAAKC,gCAAL,CAAsCH,eAAtC,CAAlC;;IACA,MAAMI,UAAU,GAAG,MAAM,KAAK7F,SAAL,CAAe8F,IAAf,EAAzB;IACA,MAAMC,YAAY,GAAG,MAAM,KAAKjG,kBAAL,CAAwBkG,2BAAxB,CAAoD;MAC7EjD,OAAO,EAAE,KAAK/C,SAAL,CAAeyB,IADqD;MAE7EkE,yBAF6E;MAG7EJ,qBAH6E;MAI7EM;IAJ6E,CAApD,CAA3B;IAMA,IAAII,oBAAJ;;IACA,IAAI5F,OAAO,CAAC6C,GAAZ,EAAiB;MACf+C,oBAAoB,GAAGF,YAAvB;IACD,CAFD,MAEO;MACL,KAAKhG,MAAL,CAAYmG,GAAZ;MACAD,oBAAoB,GAAG,MAAM,IAAAE,oCAAA,EAAiBJ,YAAjB,CAA7B;MACA,KAAKhG,MAAL,CAAYqG,EAAZ;IACD;;IACD,MAAM;MAAEC,eAAF;MAAmBC;IAAnB,IAAyC,KAAKxG,kBAAL,CAAwByG,YAAxB,CAAqCN,oBAArC,EAA2D;MACxGN,yBADwG;MAExGJ;IAFwG,CAA3D,CAA/C;IAIA,MAAM,KAAKiB,uBAAL,CAA6Bf,eAA7B,EAA8CY,eAA9C,CAAN;IACA,MAAMI,2BAA2B,GAAG9E,MAAM,CAAC+E,MAAP,CAAc,IAAAC,cAAA,EAAKrB,oBAAL,EAA2BgB,iBAA3B,CAAd,CAApC;IACA,MAAM,KAAKM,6BAAL,CAAmCH,2BAAnC,CAAN;IACA,MAAM,KAAKzG,SAAL,CAAe6G,eAAf,EAAN;IACA,OAAO,KAAKxE,eAAL,CAAqB;MAAErB,MAAM,EAAE;IAAV,CAArB,CAAP;EACD;;EAEiD,MAApCwE,oCAAoC,GAAG;IACnD,MAAMsB,eAAe,GAAG,MAAM,KAAK9G,SAAL,CAAe+G,OAAf,EAA9B;IACA,MAAMzB,oBAAyD,GAAG,EAAlE;IACA,MAAMC,qBAA0C,GAAG,EAAnD;IACA,CACE,MAAMtC,OAAO,CAACC,GAAR,CACJ4D,eAAe,CAACjF,GAAhB,CAAqBmF,WAAD,IAAiB,KAAKhH,SAAL,CAAeiH,mBAAf,CAAmCD,WAAnC,CAArC,CADI,CADR,EAIE5D,OAJF,CAIU,CAAC6D,mBAAD,EAAsBC,KAAtB,KAAgC;MACxC,IAAI,CAACD,mBAAL,EAA0B;MAC1B,MAAME,iBAAiB,GAAGF,mBAAmB,CAACG,OAApB,CAA4BC,GAA5B,CAAgCC,8CAAA,CAAyBC,EAAzD,CAA1B;MACA,IAAI,CAACJ,iBAAL,EAAwB;MACxB,MAAMH,WAAW,GAAGF,eAAe,CAACI,KAAD,CAAf,CAAuBM,QAAvB,EAApB;MACAlC,oBAAoB,CAAC0B,WAAD,CAApB,GAAoCC,mBAApC;MACA1B,qBAAqB,CAACyB,WAAD,CAArB,GAAqCG,iBAAiB,CAAC9F,MAAlB,CAAyBoG,MAA9D;IACD,CAXD;IAYA,OAAO;MACLnC,oBADK;MAELC;IAFK,CAAP;EAID;;EAEOK,gCAAgC,CAACH,eAAD,EAAuE;IAC7G,MAAME,yBAAoE,GAAG,EAA7E;;IACA,KAAK,MAAM,CAAC+B,cAAD,EAAiBC,UAAjB,CAAX,IAA2ChG,MAAM,CAACC,OAAP,CAAe6D,eAAf,CAA3C,EAA4E;MAAA;;MAC1E,6BAAIkC,UAAU,CAACL,8CAAA,CAAyBC,EAA1B,CAAd,kDAAI,sBAAyCE,MAA7C,EAAqD;QAAA;;QACnD9B,yBAAyB,CAAC+B,cAAD,CAAzB,6BAA4CC,UAAU,CAACL,8CAAA,CAAyBC,EAA1B,CAAtD,2DAA4C,uBAAyCE,MAArF;MACD;IACF;;IACD,OAAO9B,yBAAP;EACD;;EAEOa,uBAAuB,CAACf,eAAD,EAAuCmC,qBAAvC,EAAwE;IACrG,KAAK,MAAMF,cAAX,IAA6BE,qBAA7B,EAAoD;MAClD,KAAK3H,QAAL,CAAc4H,YAAd,CACEH,cADF,EAEEJ,8CAAA,CAAyBC,EAF3B,EAGE9B,eAAe,CAACiC,cAAD,CAAf,CAAgCJ,8CAAA,CAAyBC,EAAzD,CAHF,EAIE;QAAEO,gBAAgB,EAAE;MAApB,CAJF;IAMD;;IACD,OAAO,KAAKhI,kBAAL,CAAwBiE,aAAxB,CAAsC,KAAK/D,SAAL,CAAeyB,IAArD,CAAP;EACD;;EAE0C,MAA7BmF,6BAA6B,CAACtB,oBAAD,EAA8C;IACvF,MAAMrC,OAAO,CAACC,GAAR,CACJ6E,KAAK,CAACC,IAAN,CAAW1C,oBAAX,EAAiCzD,GAAjC,CAAqC,MAAOoF,mBAAP,IAA+B;MAClE,MAAMA,mBAAmB,CAACgB,KAApB,CAA0B;QAAEC,QAAQ,EAAE;MAAZ,CAA1B,CAAN;IACD,CAFD,CADI,CAAN;EAKD;EAED;AACF;AACA;AACA;AACA;;;EAC6B,MAArBC,qBAAqB,CAAC/H,QAAD,EAAqB;IAC9C,KAAKN,kBAAL,CAAwBsI,oBAAxB,CAA6ChI,QAA7C;IACA,MAAM,KAAKN,kBAAL,CAAwBiE,aAAxB,CAAsC,KAAK/D,SAAL,CAAeyB,IAArD,CAAN;IACA,OAAO,KAAKY,eAAL,CAAqB;MAAErB,MAAM,EAAE;IAAV,CAArB,CAAP;EACD;;EAES,MAAJoD,IAAI,CAAC/D,OAA6B,GAAG,EAAjC,EAA2D;IACnE,IAAIA,OAAO,CAACgI,WAAZ,EAAyB;MACvB,MAAM,KAAKlG,aAAL,EAAN;IACD;;IACD9B,OAAO,CAACqE,QAAR,GAAmB,KAAK1E,SAAL,CAAe0E,QAAlC;IACA,MAAMjE,UAAU,GAAG,MAAM,KAAKC,sBAAL,CAA4B,EAA5B,CAAzB;IACA,MAAMC,gBAAgB,GAAG,KAAKb,kBAAL,CAAwBc,kBAAxB,EAAzB;IACA,MAAM0H,MAAM,GAAG,KAAKxI,kBAAL,CAAwByI,SAAxB,CAAkC;MAC/CxF,OAAO,EAAE,KAAK/C,SAAL,CAAeyB,IADuB;MAE/C+G,cAAc,EAAEnI;IAF+B,CAAlC,CAAf;IAIA,MAAMoI,GAAG,GAAG,MAAMH,MAAM,CAAClE,IAAP,CAAY,KAAKpE,SAAL,CAAeyB,IAA3B,EAAiCd,gBAAjC,EAAmDF,UAAnD,EAA+DJ,OAA/D,CAAlB;IACA,OAAOoI,GAAP;EACD,CAhQsB,CAkQvB;;;EAC2B,MAAbtG,aAAa,GAAG;IAC5B,MAAMuG,aAA4B,GAAG;MACnCC,GAAG,EAAE,EAD8B;MAEnCC,OAAO,EAAE,KAF0B;MAGnCC,KAAK,EAAE,KAH4B;MAInCC,WAAW,EAAE,IAJsB;MAKnCZ,QAAQ,EAAE,KALyB;MAMnCa,UAAU,EAAE,KANuB;MAOnCC,WAAW,EAAE,KAPsB;MAQnCC,kBAAkB,EAAE,KARe;MASnCC,0BAA0B,EAAE,KATO;MAUnCC,gBAAgB,EAAE;IAViB,CAArC;;IAYA,IAAI;MACF,MAAMV,GAAG,GAAG,MAAM,KAAKvI,QAAL,CAAc+B,MAAd,CAAqByG,aAArB,EAAoC,EAApC,CAAlB;MACA,OAAOD,GAAP;IACD,CAHD,CAGE,OAAOW,GAAP,EAAiB;MACjB;MACA,IAAIA,GAAG,YAAYC,6BAAnB,EAAoC;QAClC;QACA,OAAOC,SAAP;MACD;;MACD,MAAMF,GAAN;IACD;EACF;EAED;AACF;AACA;AACA;AACA;AACA;;;EACsD,MAAtCtI,sCAAsC,GAAG;IACrD;IACA,MAAMyI,OAAO,GAAG,MAAM,KAAKvJ,SAAL,CAAewJ,KAAf,CAAqBC,cAArB,EAAtB;IACA,MAAMC,GAAG,GAAG,MAAM,KAAK5J,kBAAL,CAAwB6J,aAAxB,EAAlB;IACA,MAAMC,aAAa,GAAGjI,MAAM,CAACkI,IAAP,CAAYH,GAAG,CAACI,MAAhB,CAAtB;IACA,OAAQC,cAAD,IAAoD;MACzD,MAAMC,QAAQ,GAAGD,cAAc,CAACE,MAAf,CAAuBC,GAAD,IAAS;QAC9C,IAAI,EAAEA,GAAG,YAAYC,yCAAjB,CAAJ,EAA2C;UACzC,OAAO,IAAP;QACD;;QACD,IAAIZ,OAAO,CAACa,KAAR,CAAcF,GAAG,CAAClD,WAAJ,CAAgBwC,KAA9B,CAAJ,EAA0C;UACxC,OAAO,IAAP;QACD;;QACD,IAAII,aAAa,CAACS,IAAd,CAAoBb,KAAD,IAAWU,GAAG,CAACrH,WAAJ,CAAgByH,UAAhB,CAA4B,IAAGd,KAAM,GAArC,CAA9B,CAAJ,EAA6E;UAC3E,OAAO,IAAP;QACD;;QACD,OAAO,KAAP;MACD,CAXgB,CAAjB;MAYA,OAAOQ,QAAP;IACD,CAdD;EAeD;;EAEmC,MAAtBtJ,sBAAsB,CAACiI,GAAD,EAAoD;IACtF,MAAM9C,UAAU,GAAG8C,GAAG,CAACrI,MAAJ,GAAa,MAAM,KAAKN,SAAL,CAAeuK,OAAf,CAAuB5B,GAAvB,CAAnB,GAAiD,MAAM,KAAK3I,SAAL,CAAe8F,IAAf,EAA1E;IACA,OAAO0E,yBAAA,CAAaC,EAAb,CAAwB5E,UAAxB,EAAqC6E,SAAD,IAAe,KAAK1K,SAAL,CAAe2K,YAAf,CAA4BD,SAAS,CAACnD,EAAtC,CAAnD,CAAP;EACD;;EAeoB,aAARqD,QAAQ,CAAC,CAAC9K,kBAAD,EAAqBE,SAArB,EAAgC6K,SAAhC,EAA2C5K,QAA3C,EAAqD6K,GAArD,EAA0DC,SAA1D,EAAqE7K,QAArE,CAAD,EAQlB;IACD,MAAMH,MAAM,GAAG8K,SAAS,CAACG,YAAV,CAAuB,qBAAvB,CAAf;IACA,MAAMC,UAAU,GAAG,IAAIrL,WAAJ,CAAgBE,kBAAhB,EAAoCC,MAApC,EAA4CC,SAA5C,EAAuDC,QAAvD,EAAiEC,QAAjE,CAAnB;;IACAgL,+BAAA,CAAqBC,yBAArB,CAA+C;MAC7ChL,OAAO,EAAE,YAAY;QACnB;QACA,MAAMiL,WAAoC,GAAG;UAC3CpK,MAAM,EAAE,IADmC;UAE3C8C,cAAc,EAAE,KAF2B;UAG3C7B,MAAM,EAAE;QAHmC,CAA7C;QAKA,OAAOgJ,UAAU,CAAC9K,OAAX,CAAmBmJ,SAAnB,EAA8B8B,WAA9B,CAAP;MACD;IAT4C,CAA/C;;IAWA,MAAMC,QAAqB,GAAG,CAC5B,KAAIC,mBAAJ,EAAeL,UAAf,EAA2BjL,SAA3B,EAAsCD,MAAtC,CAD4B,EAE5B,KAAIwL,oBAAJ,EAAiBN,UAAjB,CAF4B,EAG5B,KAAIO,iBAAJ,EAAcP,UAAd,CAH4B,EAI5B,KAAIQ,mBAAJ,EAAgBR,UAAhB,EAA4BjL,SAA5B,EAAuCD,MAAvC,EAA+CgL,SAAS,CAACW,aAAV,EAA/C,CAJ4B,CAA9B;IAMAZ,GAAG,CAACa,QAAJ,CAAa,GAAGN,QAAhB;IACA,OAAOJ,UAAP;EACD;;AAzWsB;;;gCAAZrL,W,WA8TI,E;gCA9TJA,W,kBA+TW,CACpB0H,8CADoB,EAEpBsE,4BAFoB,EAGpBC,sBAHoB,EAIpBC,0BAJoB,EAKpBC,gBALoB,EAMpBC,4BANoB,EAOpBC,0BAPoB,C;gCA/TXrM,W,aAyUMsM,kB;;AAmCnBC,wBAAA,CAAcC,UAAd,CAAyBxM,WAAzB;;eAEeA,W"}
|
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.4",
|
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.
|
9
|
+
"version": "0.0.4"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "2.4.2",
|
Binary file
|