@teambit/install 1.0.1146 → 1.0.1148

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.
@@ -1,3 +1,4 @@
1
1
  export { DependencyTypeNotSupportedInPolicy } from './dependency-type-not-supported-in-policy';
2
2
  export { UnpublishedComponentDependency } from './unpublished-component-dependency';
3
3
  export type { UnpublishedSnapDependency } from './unpublished-component-dependency';
4
+ export { RestoreNotSupportedByPackageManager } from './restore-not-supported-by-package-manager';
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "DependencyTypeNotSupportedInPolicy", {
9
9
  return _dependencyTypeNotSupportedInPolicy().DependencyTypeNotSupportedInPolicy;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "RestoreNotSupportedByPackageManager", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _restoreNotSupportedByPackageManager().RestoreNotSupportedByPackageManager;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "UnpublishedComponentDependency", {
13
19
  enumerable: true,
14
20
  get: function () {
@@ -29,5 +35,12 @@ function _unpublishedComponentDependency() {
29
35
  };
30
36
  return data;
31
37
  }
38
+ function _restoreNotSupportedByPackageManager() {
39
+ const data = require("./restore-not-supported-by-package-manager");
40
+ _restoreNotSupportedByPackageManager = function () {
41
+ return data;
42
+ };
43
+ return data;
44
+ }
32
45
 
33
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_dependencyTypeNotSupportedInPolicy","data","require","_unpublishedComponentDependency"],"sources":["index.ts"],"sourcesContent":["export { DependencyTypeNotSupportedInPolicy } from './dependency-type-not-supported-in-policy';\nexport { UnpublishedComponentDependency } from './unpublished-component-dependency';\nexport type { UnpublishedSnapDependency } from './unpublished-component-dependency';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAAA,oCAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,mCAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,gCAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,+BAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_dependencyTypeNotSupportedInPolicy","data","require","_unpublishedComponentDependency","_restoreNotSupportedByPackageManager"],"sources":["index.ts"],"sourcesContent":["export { DependencyTypeNotSupportedInPolicy } from './dependency-type-not-supported-in-policy';\nexport { UnpublishedComponentDependency } from './unpublished-component-dependency';\nexport type { UnpublishedSnapDependency } from './unpublished-component-dependency';\nexport { RestoreNotSupportedByPackageManager } from './restore-not-supported-by-package-manager';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,oCAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,mCAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,gCAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,+BAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,qCAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,oCAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { BitError } from '@teambit/bit-error';
2
+ export declare class RestoreNotSupportedByPackageManager extends BitError {
3
+ constructor(packageManagerName: string);
4
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RestoreNotSupportedByPackageManager = void 0;
7
+ function _bitError() {
8
+ const data = require("@teambit/bit-error");
9
+ _bitError = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ class RestoreNotSupportedByPackageManager extends _bitError().BitError {
15
+ constructor(packageManagerName) {
16
+ super(`the --restore option is not supported by package manager "${packageManagerName}"`);
17
+ }
18
+ }
19
+ exports.RestoreNotSupportedByPackageManager = RestoreNotSupportedByPackageManager;
20
+
21
+ //# sourceMappingURL=restore-not-supported-by-package-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_bitError","data","require","RestoreNotSupportedByPackageManager","BitError","constructor","packageManagerName","exports"],"sources":["restore-not-supported-by-package-manager.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class RestoreNotSupportedByPackageManager extends BitError {\n constructor(packageManagerName: string) {\n super(`the --restore option is not supported by package manager \"${packageManagerName}\"`);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,mCAAmC,SAASC,oBAAQ,CAAC;EAChEC,WAAWA,CAACC,kBAA0B,EAAE;IACtC,KAAK,CAAC,6DAA6DA,kBAAkB,GAAG,CAAC;EAC3F;AACF;AAACC,OAAA,CAAAJ,mCAAA,GAAAA,mCAAA","ignoreList":[]}
@@ -18,6 +18,7 @@ type InstallCmdOptions = {
18
18
  noOptional: boolean;
19
19
  recurringInstall: boolean;
20
20
  lockfileOnly: boolean;
21
+ restore: boolean;
21
22
  allowScripts?: string;
22
23
  disallowScripts?: string;
23
24
  };
@@ -56,7 +56,7 @@ automatically imports components, compiles components, links to node_modules, an
56
56
  }]);
57
57
  _defineProperty(this, "alias", 'in');
58
58
  _defineProperty(this, "group", 'dependencies');
59
- _defineProperty(this, "options", [['t', 'type [lifecycleType]', '"runtime" (default) or "peer" (dev is not a valid option)'], ['u', 'update', 'update all dependencies to latest version according to their semver range'], ['', 'update-existing', 'DEPRECATED (not needed anymore, it is the default now). update existing dependencies version and types'], ['', 'save-prefix [savePrefix]', 'set the prefix to use when adding dependency to workspace.jsonc'], ['', 'skip-dedupe', 'do not dedupe dependencies on installation'], ['', 'skip-import', 'do not import bit objects post installation'], ['', 'skip-compile', 'do not compile components'], ['', 'skip-write-config-files', 'do not write config files (such as eslint, tsconfig, prettier, etc...)'], ['a', 'add-missing-deps', 'install all missing dependencies'], ['', 'skip-unavailable', 'when adding missing dependencies, skip those that are not found in the registry'], ['', 'add-missing-peers', 'install all missing peer dependencies'], ['', recurringInstallFlagName, 'automatically run install again if there are non loaded old envs in your workspace'], ['', 'no-optional [noOptional]', 'do not install optional dependencies (works with pnpm only)'], ['', 'lockfile-only', 'dependencies are not written to node_modules. Only the lockfile is updated'], ['', 'allow-scripts [pkgNames]', 'a comma separated list of package names that are allowed to run installation scripts'], ['', 'disallow-scripts [pkgNames]', 'a comma separated list of package names that are NOT allowed to run installation scripts']]);
59
+ _defineProperty(this, "options", [['t', 'type [lifecycleType]', '"runtime" (default) or "peer" (dev is not a valid option)'], ['u', 'update', 'update all dependencies to latest version according to their semver range'], ['', 'update-existing', 'DEPRECATED (not needed anymore, it is the default now). update existing dependencies version and types'], ['', 'save-prefix [savePrefix]', 'set the prefix to use when adding dependency to workspace.jsonc'], ['', 'skip-dedupe', 'do not dedupe dependencies on installation'], ['', 'skip-import', 'do not import bit objects post installation'], ['', 'skip-compile', 'do not compile components'], ['', 'skip-write-config-files', 'do not write config files (such as eslint, tsconfig, prettier, etc...)'], ['a', 'add-missing-deps', 'install all missing dependencies'], ['', 'skip-unavailable', 'when adding missing dependencies, skip those that are not found in the registry'], ['', 'add-missing-peers', 'install all missing peer dependencies'], ['', recurringInstallFlagName, 'automatically run install again if there are non loaded old envs in your workspace'], ['', 'no-optional [noOptional]', 'do not install optional dependencies (works with pnpm only)'], ['', 'lockfile-only', 'dependencies are not written to node_modules. Only the lockfile is updated'], ['', 'restore', "reconstruct the lockfile from each workspace component's stored dependency graph before installing"], ['', 'allow-scripts [pkgNames]', 'a comma separated list of package names that are allowed to run installation scripts'], ['', 'disallow-scripts [pkgNames]', 'a comma separated list of package names that are NOT allowed to run installation scripts']]);
60
60
  }
61
61
  async report([packages = []], options) {
62
62
  const startTime = Date.now();
@@ -101,6 +101,7 @@ automatically imports components, compiles components, links to node_modules, an
101
101
  updateAll: options.update,
102
102
  recurringInstall: options.recurringInstall,
103
103
  lockfileOnly: options.lockfileOnly,
104
+ restoreFromDependenciesGraph: options.restore,
104
105
  showExternalPackageManagerPrompt: true,
105
106
  allowScripts: this._parseAllowScriptsFlags(options.allowScripts, options.disallowScripts)
106
107
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_workspace","_packageNameUtils","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","recurringInstallFlagName","InstallCmd","constructor","install","workspace","logger","name","description","report","packages","options","startTime","Date","now","OutsideWorkspaceError","updateExisting","consoleWarning","validPackages","Promise","all","map","pkg","pkgName","extractPackageName","isValidPackageName","startsWith","componentId","resolveComponentId","component","get","componentPackageName","Error","console","chalk","cyan","installOpts","lifecycleType","addMissingPeers","type","dedupe","skipDedupe","import","skipImport","savePrefix","addMissingDeps","skipUnavailable","compile","skipCompile","includeOptionalDeps","noOptional","writeConfigFiles","skipWriteConfigFiles","updateAll","update","recurringInstall","lockfileOnly","showExternalPackageManagerPrompt","allowScripts","_parseAllowScriptsFlags","disallowScripts","components","endTime","oldNonLoadedEnvs","getOldNonLoadedEnvs","formatOutput","numOfComps","toArray","length","toString","allowScriptsFlag","disallowScriptsFlag","undefined","_parseCommaSeparatedPkgList","pkgList","split","trimmed","trim","exports","calculateTime","diff","executionTime","summary","green","anotherInstallRequiredOutput","getAnotherInstallRequiredOutput","oldNonLoadedEnvsStr","join","firstPart","flag","suggestRecurringInstall","envsStr","docsLink","msg","yellow"],"sources":["install.cmd.tsx"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { WorkspaceDependencyLifecycleType } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport type { Workspace } from '@teambit/workspace';\nimport { OutsideWorkspaceError } from '@teambit/workspace';\nimport type { InstallMain, WorkspaceInstallOptions } from './install.main.runtime';\nimport { extractPackageName, isValidPackageName } from './package-name-utils';\n\ntype InstallCmdOptions = {\n type: WorkspaceDependencyLifecycleType;\n skipDedupe: boolean;\n skipImport: boolean;\n skipCompile: boolean;\n skipWriteConfigFiles: boolean;\n update: boolean;\n updateExisting: boolean;\n savePrefix: string;\n addMissingDeps: boolean;\n skipUnavailable: boolean;\n addMissingPeers: boolean;\n noOptional: boolean;\n recurringInstall: boolean;\n lockfileOnly: boolean;\n allowScripts?: string;\n disallowScripts?: string;\n};\n\ntype FormatOutputArgs = {\n numOfComps: string;\n startTime: number;\n endTime: number;\n oldNonLoadedEnvs: string[];\n recurringInstall: boolean;\n};\n\nconst recurringInstallFlagName = 'recurring-install';\n\nexport default class InstallCmd implements Command {\n name = 'install [packages...]';\n description = 'install workspace dependencies';\n extendedDescription = `installs workspace dependencies and prepares the workspace for development.\nwhen packages are specified, adds them to workspace.jsonc policy and installs. when no packages specified, installs existing dependencies.\nautomatically imports components, compiles components, links to node_modules, and writes config files.`;\n helpUrl = 'reference/dependencies/dependency-installation';\n arguments = [{ name: 'packages...', description: 'a list of packages to install (separated by spaces)' }];\n alias = 'in';\n group = 'dependencies';\n options = [\n ['t', 'type [lifecycleType]', '\"runtime\" (default) or \"peer\" (dev is not a valid option)'],\n ['u', 'update', 'update all dependencies to latest version according to their semver range'],\n [\n '',\n 'update-existing',\n 'DEPRECATED (not needed anymore, it is the default now). update existing dependencies version and types',\n ],\n ['', 'save-prefix [savePrefix]', 'set the prefix to use when adding dependency to workspace.jsonc'],\n ['', 'skip-dedupe', 'do not dedupe dependencies on installation'],\n ['', 'skip-import', 'do not import bit objects post installation'],\n ['', 'skip-compile', 'do not compile components'],\n ['', 'skip-write-config-files', 'do not write config files (such as eslint, tsconfig, prettier, etc...)'],\n ['a', 'add-missing-deps', 'install all missing dependencies'],\n ['', 'skip-unavailable', 'when adding missing dependencies, skip those that are not found in the registry'],\n ['', 'add-missing-peers', 'install all missing peer dependencies'],\n [\n '',\n recurringInstallFlagName,\n 'automatically run install again if there are non loaded old envs in your workspace',\n ],\n ['', 'no-optional [noOptional]', 'do not install optional dependencies (works with pnpm only)'],\n ['', 'lockfile-only', 'dependencies are not written to node_modules. Only the lockfile is updated'],\n [\n '',\n 'allow-scripts [pkgNames]',\n 'a comma separated list of package names that are allowed to run installation scripts',\n ],\n [\n '',\n 'disallow-scripts [pkgNames]',\n 'a comma separated list of package names that are NOT allowed to run installation scripts',\n ],\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([packages = []]: [string[]], options: InstallCmdOptions) {\n const startTime = Date.now();\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (options.updateExisting) {\n this.logger.consoleWarning(\n `--update-existing is deprecated, please omit it. \"bit install\" will update existing dependencies by default`\n );\n }\n\n const validPackages = await Promise.all(\n packages.map(async (pkg) => {\n const pkgName = extractPackageName(pkg);\n if (isValidPackageName(pkgName)) {\n return pkg;\n }\n // if this is a component-id, find the package name and use it instead.\n try {\n // Check if it's not a package name (doesn't start with @)\n if (!pkgName.startsWith('@')) {\n // Try to resolve it as a component ID\n const componentId = await this.workspace.resolveComponentId(pkg);\n // Get the package name for this component\n const component = await this.workspace.get(componentId);\n const componentPackageName = this.workspace.componentPackageName(component);\n return componentPackageName;\n }\n } catch {\n // If component resolution fails, fall through to original error\n }\n throw new Error(`the package name \"${pkgName}\" is invalid. please provide a valid package name.`);\n })\n );\n this.logger.console(`Resolving component dependencies for workspace: '${chalk.cyan(this.workspace.name)}'`);\n const installOpts: WorkspaceInstallOptions = {\n lifecycleType: options.addMissingPeers ? 'peer' : options.type,\n dedupe: !options.skipDedupe,\n import: !options.skipImport,\n updateExisting: true,\n savePrefix: options.savePrefix,\n addMissingDeps: options.addMissingDeps,\n skipUnavailable: options.skipUnavailable,\n addMissingPeers: options.addMissingPeers,\n compile: !options.skipCompile,\n includeOptionalDeps: !options.noOptional,\n writeConfigFiles: !options.skipWriteConfigFiles,\n updateAll: options.update,\n recurringInstall: options.recurringInstall,\n lockfileOnly: options.lockfileOnly,\n showExternalPackageManagerPrompt: true,\n allowScripts: this._parseAllowScriptsFlags(options.allowScripts, options.disallowScripts),\n };\n const components = await this.install.install(validPackages, installOpts);\n const endTime = Date.now();\n const oldNonLoadedEnvs = this.install.getOldNonLoadedEnvs();\n return formatOutput({\n startTime,\n endTime,\n numOfComps: components.toArray().length.toString(),\n recurringInstall: options[recurringInstallFlagName],\n oldNonLoadedEnvs,\n });\n }\n\n private _parseAllowScriptsFlags(\n allowScriptsFlag?: string,\n disallowScriptsFlag?: string\n ): Record<string, boolean> | undefined {\n if (!allowScriptsFlag && !disallowScriptsFlag) return undefined;\n const allowScripts: Record<string, boolean> = {};\n if (allowScriptsFlag) {\n for (const pkgName of this._parseCommaSeparatedPkgList(allowScriptsFlag)) {\n allowScripts[pkgName] = true;\n }\n }\n if (disallowScriptsFlag) {\n for (const pkgName of this._parseCommaSeparatedPkgList(disallowScriptsFlag)) {\n allowScripts[pkgName] = false;\n }\n }\n return allowScripts;\n }\n\n private *_parseCommaSeparatedPkgList(pkgList: string): IterableIterator<string> {\n for (const pkgName of pkgList.split(',')) {\n const trimmed = pkgName.trim();\n if (trimmed) {\n yield trimmed;\n }\n }\n }\n}\n\nfunction calculateTime(startTime: number, endTime: number) {\n const diff = endTime - startTime;\n return diff / 1000;\n}\n\nfunction formatOutput({\n numOfComps,\n endTime,\n startTime,\n recurringInstall,\n oldNonLoadedEnvs,\n}: FormatOutputArgs): string {\n const executionTime = calculateTime(startTime, endTime);\n const summary = chalk.green(\n `Successfully installed dependencies and compiled ${chalk.cyan(numOfComps)} component(s) in ${chalk.cyan(\n executionTime.toString()\n )} seconds`\n );\n const anotherInstallRequiredOutput = getAnotherInstallRequiredOutput(recurringInstall, oldNonLoadedEnvs);\n return anotherInstallRequiredOutput ? `\\n${anotherInstallRequiredOutput}\\n\\n${summary}` : `\\n${summary}`;\n}\n\nexport function getAnotherInstallRequiredOutput(recurringInstall = false, oldNonLoadedEnvs: string[] = []): string {\n if (!oldNonLoadedEnvs.length) return '';\n const oldNonLoadedEnvsStr = oldNonLoadedEnvs.join(', ');\n const firstPart = `Bit was not able to install all dependencies. Please run \"${chalk.cyan('bit install')}\" again `;\n const flag = chalk.cyan(`--${recurringInstallFlagName}`);\n const suggestRecurringInstall = recurringInstall ? '' : `(or use the \"${flag}\" option next time).`;\n const envsStr = `The following environments need to add support for \"dependency policy\" to fix the warning: ${chalk.cyan(\n oldNonLoadedEnvsStr\n )}`;\n const docsLink = `Read more about how to fix this issue in: https://bit.dev/blog/using-a-static-dependency-policy-in-a-legacy-env-lihfbt9b`;\n\n const msg = `${firstPart}${suggestRecurringInstall}\\n${envsStr}\\n${docsLink}`;\n return chalk.yellow(msg);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_workspace","_packageNameUtils","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","recurringInstallFlagName","InstallCmd","constructor","install","workspace","logger","name","description","report","packages","options","startTime","Date","now","OutsideWorkspaceError","updateExisting","consoleWarning","validPackages","Promise","all","map","pkg","pkgName","extractPackageName","isValidPackageName","startsWith","componentId","resolveComponentId","component","get","componentPackageName","Error","console","chalk","cyan","installOpts","lifecycleType","addMissingPeers","type","dedupe","skipDedupe","import","skipImport","savePrefix","addMissingDeps","skipUnavailable","compile","skipCompile","includeOptionalDeps","noOptional","writeConfigFiles","skipWriteConfigFiles","updateAll","update","recurringInstall","lockfileOnly","restoreFromDependenciesGraph","restore","showExternalPackageManagerPrompt","allowScripts","_parseAllowScriptsFlags","disallowScripts","components","endTime","oldNonLoadedEnvs","getOldNonLoadedEnvs","formatOutput","numOfComps","toArray","length","toString","allowScriptsFlag","disallowScriptsFlag","undefined","_parseCommaSeparatedPkgList","pkgList","split","trimmed","trim","exports","calculateTime","diff","executionTime","summary","green","anotherInstallRequiredOutput","getAnotherInstallRequiredOutput","oldNonLoadedEnvsStr","join","firstPart","flag","suggestRecurringInstall","envsStr","docsLink","msg","yellow"],"sources":["install.cmd.tsx"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { WorkspaceDependencyLifecycleType } from '@teambit/dependency-resolver';\nimport type { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport type { Workspace } from '@teambit/workspace';\nimport { OutsideWorkspaceError } from '@teambit/workspace';\nimport type { InstallMain, WorkspaceInstallOptions } from './install.main.runtime';\nimport { extractPackageName, isValidPackageName } from './package-name-utils';\n\ntype InstallCmdOptions = {\n type: WorkspaceDependencyLifecycleType;\n skipDedupe: boolean;\n skipImport: boolean;\n skipCompile: boolean;\n skipWriteConfigFiles: boolean;\n update: boolean;\n updateExisting: boolean;\n savePrefix: string;\n addMissingDeps: boolean;\n skipUnavailable: boolean;\n addMissingPeers: boolean;\n noOptional: boolean;\n recurringInstall: boolean;\n lockfileOnly: boolean;\n restore: boolean;\n allowScripts?: string;\n disallowScripts?: string;\n};\n\ntype FormatOutputArgs = {\n numOfComps: string;\n startTime: number;\n endTime: number;\n oldNonLoadedEnvs: string[];\n recurringInstall: boolean;\n};\n\nconst recurringInstallFlagName = 'recurring-install';\n\nexport default class InstallCmd implements Command {\n name = 'install [packages...]';\n description = 'install workspace dependencies';\n extendedDescription = `installs workspace dependencies and prepares the workspace for development.\nwhen packages are specified, adds them to workspace.jsonc policy and installs. when no packages specified, installs existing dependencies.\nautomatically imports components, compiles components, links to node_modules, and writes config files.`;\n helpUrl = 'reference/dependencies/dependency-installation';\n arguments = [{ name: 'packages...', description: 'a list of packages to install (separated by spaces)' }];\n alias = 'in';\n group = 'dependencies';\n options = [\n ['t', 'type [lifecycleType]', '\"runtime\" (default) or \"peer\" (dev is not a valid option)'],\n ['u', 'update', 'update all dependencies to latest version according to their semver range'],\n [\n '',\n 'update-existing',\n 'DEPRECATED (not needed anymore, it is the default now). update existing dependencies version and types',\n ],\n ['', 'save-prefix [savePrefix]', 'set the prefix to use when adding dependency to workspace.jsonc'],\n ['', 'skip-dedupe', 'do not dedupe dependencies on installation'],\n ['', 'skip-import', 'do not import bit objects post installation'],\n ['', 'skip-compile', 'do not compile components'],\n ['', 'skip-write-config-files', 'do not write config files (such as eslint, tsconfig, prettier, etc...)'],\n ['a', 'add-missing-deps', 'install all missing dependencies'],\n ['', 'skip-unavailable', 'when adding missing dependencies, skip those that are not found in the registry'],\n ['', 'add-missing-peers', 'install all missing peer dependencies'],\n [\n '',\n recurringInstallFlagName,\n 'automatically run install again if there are non loaded old envs in your workspace',\n ],\n ['', 'no-optional [noOptional]', 'do not install optional dependencies (works with pnpm only)'],\n ['', 'lockfile-only', 'dependencies are not written to node_modules. Only the lockfile is updated'],\n [\n '',\n 'restore',\n \"reconstruct the lockfile from each workspace component's stored dependency graph before installing\",\n ],\n [\n '',\n 'allow-scripts [pkgNames]',\n 'a comma separated list of package names that are allowed to run installation scripts',\n ],\n [\n '',\n 'disallow-scripts [pkgNames]',\n 'a comma separated list of package names that are NOT allowed to run installation scripts',\n ],\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([packages = []]: [string[]], options: InstallCmdOptions) {\n const startTime = Date.now();\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (options.updateExisting) {\n this.logger.consoleWarning(\n `--update-existing is deprecated, please omit it. \"bit install\" will update existing dependencies by default`\n );\n }\n\n const validPackages = await Promise.all(\n packages.map(async (pkg) => {\n const pkgName = extractPackageName(pkg);\n if (isValidPackageName(pkgName)) {\n return pkg;\n }\n // if this is a component-id, find the package name and use it instead.\n try {\n // Check if it's not a package name (doesn't start with @)\n if (!pkgName.startsWith('@')) {\n // Try to resolve it as a component ID\n const componentId = await this.workspace.resolveComponentId(pkg);\n // Get the package name for this component\n const component = await this.workspace.get(componentId);\n const componentPackageName = this.workspace.componentPackageName(component);\n return componentPackageName;\n }\n } catch {\n // If component resolution fails, fall through to original error\n }\n throw new Error(`the package name \"${pkgName}\" is invalid. please provide a valid package name.`);\n })\n );\n this.logger.console(`Resolving component dependencies for workspace: '${chalk.cyan(this.workspace.name)}'`);\n const installOpts: WorkspaceInstallOptions = {\n lifecycleType: options.addMissingPeers ? 'peer' : options.type,\n dedupe: !options.skipDedupe,\n import: !options.skipImport,\n updateExisting: true,\n savePrefix: options.savePrefix,\n addMissingDeps: options.addMissingDeps,\n skipUnavailable: options.skipUnavailable,\n addMissingPeers: options.addMissingPeers,\n compile: !options.skipCompile,\n includeOptionalDeps: !options.noOptional,\n writeConfigFiles: !options.skipWriteConfigFiles,\n updateAll: options.update,\n recurringInstall: options.recurringInstall,\n lockfileOnly: options.lockfileOnly,\n restoreFromDependenciesGraph: options.restore,\n showExternalPackageManagerPrompt: true,\n allowScripts: this._parseAllowScriptsFlags(options.allowScripts, options.disallowScripts),\n };\n const components = await this.install.install(validPackages, installOpts);\n const endTime = Date.now();\n const oldNonLoadedEnvs = this.install.getOldNonLoadedEnvs();\n return formatOutput({\n startTime,\n endTime,\n numOfComps: components.toArray().length.toString(),\n recurringInstall: options[recurringInstallFlagName],\n oldNonLoadedEnvs,\n });\n }\n\n private _parseAllowScriptsFlags(\n allowScriptsFlag?: string,\n disallowScriptsFlag?: string\n ): Record<string, boolean> | undefined {\n if (!allowScriptsFlag && !disallowScriptsFlag) return undefined;\n const allowScripts: Record<string, boolean> = {};\n if (allowScriptsFlag) {\n for (const pkgName of this._parseCommaSeparatedPkgList(allowScriptsFlag)) {\n allowScripts[pkgName] = true;\n }\n }\n if (disallowScriptsFlag) {\n for (const pkgName of this._parseCommaSeparatedPkgList(disallowScriptsFlag)) {\n allowScripts[pkgName] = false;\n }\n }\n return allowScripts;\n }\n\n private *_parseCommaSeparatedPkgList(pkgList: string): IterableIterator<string> {\n for (const pkgName of pkgList.split(',')) {\n const trimmed = pkgName.trim();\n if (trimmed) {\n yield trimmed;\n }\n }\n }\n}\n\nfunction calculateTime(startTime: number, endTime: number) {\n const diff = endTime - startTime;\n return diff / 1000;\n}\n\nfunction formatOutput({\n numOfComps,\n endTime,\n startTime,\n recurringInstall,\n oldNonLoadedEnvs,\n}: FormatOutputArgs): string {\n const executionTime = calculateTime(startTime, endTime);\n const summary = chalk.green(\n `Successfully installed dependencies and compiled ${chalk.cyan(numOfComps)} component(s) in ${chalk.cyan(\n executionTime.toString()\n )} seconds`\n );\n const anotherInstallRequiredOutput = getAnotherInstallRequiredOutput(recurringInstall, oldNonLoadedEnvs);\n return anotherInstallRequiredOutput ? `\\n${anotherInstallRequiredOutput}\\n\\n${summary}` : `\\n${summary}`;\n}\n\nexport function getAnotherInstallRequiredOutput(recurringInstall = false, oldNonLoadedEnvs: string[] = []): string {\n if (!oldNonLoadedEnvs.length) return '';\n const oldNonLoadedEnvsStr = oldNonLoadedEnvs.join(', ');\n const firstPart = `Bit was not able to install all dependencies. Please run \"${chalk.cyan('bit install')}\" again `;\n const flag = chalk.cyan(`--${recurringInstallFlagName}`);\n const suggestRecurringInstall = recurringInstall ? '' : `(or use the \"${flag}\" option next time).`;\n const envsStr = `The following environments need to add support for \"dependency policy\" to fix the warning: ${chalk.cyan(\n oldNonLoadedEnvsStr\n )}`;\n const docsLink = `Read more about how to fix this issue in: https://bit.dev/blog/using-a-static-dependency-policy-in-a-legacy-env-lihfbt9b`;\n\n const msg = `${firstPart}${suggestRecurringInstall}\\n${envsStr}\\n${docsLink}`;\n return chalk.yellow(msg);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -49,6 +49,7 @@ export type WorkspaceInstallOptions = {
49
49
  writeConfigFiles?: boolean;
50
50
  skipPrune?: boolean;
51
51
  dependenciesGraph?: DependenciesGraph;
52
+ restoreFromDependenciesGraph?: boolean;
52
53
  allowScripts?: Record<string, boolean>;
53
54
  };
54
55
  export type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;
@@ -92,6 +93,8 @@ export declare class InstallMain {
92
93
  private _addPackages;
93
94
  private _installModules;
94
95
  private shouldClearCacheOnInstall;
96
+ private ensurePackageManagerSupportsRestore;
97
+ private resolveDependenciesGraph;
95
98
  /**
96
99
  * Called only when the package manager install failed. A "No matching version found" failure usually points
97
100
  * at a component dependency that resolves to a snap which was never published — its build failed or hasn't
@@ -505,6 +505,7 @@ class InstallMain {
505
505
  await this.dependencyResolver.persistConfig('update allowScripts configuration');
506
506
  }
507
507
  const pm = this.dependencyResolver.getPackageManager();
508
+ this.ensurePackageManagerSupportsRestore(options, pm);
508
509
  this.logger.console(`installing dependencies in workspace using ${pm?.name} (${_chalk().default.cyan(this.dependencyResolver.packageManagerName)})`);
509
510
  this.logger.debug(`installing dependencies in workspace with options`, options);
510
511
  const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();
@@ -538,10 +539,14 @@ class InstallMain {
538
539
  skipUnavailable: options?.skipUnavailable,
539
540
  linkedRootDeps
540
541
  }));
542
+ const dependenciesGraph = await this.resolveDependenciesGraph(options, {
543
+ hasRootComponents
544
+ });
541
545
  const pmInstallOptions = _objectSpread(_objectSpread({}, calcManifestsOpts), {}, {
542
546
  autoInstallPeers: this.dependencyResolver.config.autoInstallPeers,
543
547
  dedupePeers: this.dependencyResolver.config.dedupePeers,
544
- dependenciesGraph: options?.dependenciesGraph,
548
+ dependenciesGraph,
549
+ failOnDependenciesGraphError: options?.restoreFromDependenciesGraph,
545
550
  includeOptionalDeps: options?.includeOptionalDeps,
546
551
  neverBuiltDependencies: this.dependencyResolver.config.neverBuiltDependencies,
547
552
  allowScripts: this.dependencyResolver.getAllowedScripts(),
@@ -674,6 +679,26 @@ class InstallMain {
674
679
  const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();
675
680
  return nonLoadedEnvs.length > 0;
676
681
  }
682
+ ensurePackageManagerSupportsRestore(options, packageManager) {
683
+ if (options?.restoreFromDependenciesGraph && !packageManager?.supportsDependencyGraphRestoration) {
684
+ throw new (_exceptions().RestoreNotSupportedByPackageManager)(packageManager?.name ?? this.dependencyResolver.packageManagerName);
685
+ }
686
+ }
687
+ async resolveDependenciesGraph(options, context) {
688
+ if (options?.dependenciesGraph) return options.dependenciesGraph;
689
+ if (!options?.restoreFromDependenciesGraph) return undefined;
690
+ if (!context.hasRootComponents) {
691
+ this.logger.console((0, _cli().formatWarningSummary)('--restore requires "rootComponents: true" in the dependency-resolver config; falling back to a regular install.'));
692
+ return undefined;
693
+ }
694
+ const graph = await this.workspace.scope.getDependenciesGraphByComponentIds(this.workspace.listIds(), {
695
+ ignoreFeatureToggle: true
696
+ });
697
+ if (!graph) {
698
+ this.logger.console((0, _cli().formatWarningSummary)('--restore was requested but no workspace component has a stored dependency graph. Falling back to a regular install.'));
699
+ }
700
+ return graph;
701
+ }
677
702
 
678
703
  /**
679
704
  * Called only when the package manager install failed. A "No matching version found" failure usually points
@@ -1 +1 @@
1
- {"version":3,"names":["_pFilter","data","_interopRequireDefault","require","_fsExtra","_interopRequireWildcard","_path","_workspace","_compiler","_cli","_chalk","_yesno","_workspace2","_lodash","_semver","_generator","_pkgModules","_application","_variants","_component","_componentVersion","_component2","_toolboxJson","_dependenciesFs","_pMapSeries","_harmony","_workspaceModules","_envs","_ipcEvents","_componentIssues","_dependencyResolver","_workspaceConfigFiles","_logger","_issues","_componentPackageVersion","_aspectLoader","_objectHash","_bundler","_ui","_hostInitializer","_exceptions","_install","_pickOutdatedPkgs","_link","_install2","_uninstall","_update","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","InstallMain","constructor","dependencyResolver","logger","workspace","variants","compiler","envs","wsConfigFiles","aspectLoader","app","generator","preLinkSlot","preInstallSlot","postInstallSlot","ipcEvents","harmony","Set","install","packages","options","workspaceConfig","getWorkspaceConfig","depResolverExtConfig","extensions","findExtension","config","externalPackageManager","showExternalPackageManagerPrompt","handleExternalPackageManagerPrompt","writeDependenciesToPackageJson","console","chalk","yellow","ComponentMap","Map","inInstallContext","inInstallAfterPmContext","_addPackages","addMissingPeers","compDirMap","getComponentsDirectory","mergedRootPolicy","getWorkspacePolicy","depsFilterFn","generateFilterFnForDepsFromLocalRemote","pmInstallOptions","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","dependencyFilterFn","overrides","hoistPatterns","packageImportMethod","missingPeers","getMissingPeerDependencies","path","missingPeerPackages","entries","map","peerName","range","pMapSeries","values","fn","res","_installModules","publishIpcEvent","installer","getInstaller","addConfiguredAspectsToWorkspacePolicy","addConfiguredGeneratorEnvsToWorkspacePolicy","componentsAndManifests","_getComponentsManifests","includeAllEnvPeers","dependencies","devDependencies","manifests","registerPreLink","register","registerPreInstall","registerPostInstall","onComponentCreate","generateResults","installOptions","runInstall","installMissing","ids","generateResult","concat","installMissingDependencies","isApp","isEnv","id","nonLoadedEnvs","clearComponentCache","component","envId","calculateEnvId","toString","isLoaded","isEnvRegistered","addMissingDeps","skipIfExisting","writeConfigFiles","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","error","skipUnavailable","resolvedPackages","Promise","all","newWorkspacePolicyEntries","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","overridePrefix","savePrefix","wantedRange","dependencyId","addToRootPolicy","updateExisting","persistConfig","allowScripts","updateAllowedScripts","pm","getPackageManager","name","cyan","packageManagerName","hasRootComponents","resolveEnvPeersFromRoot","calcManifestsOpts","nodeLinker","linkOpts","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","isLegacy","linkedRootDeps","calculateLinks","current","_getComponentsManifestsAndRootPolicy","autoInstallPeers","dedupePeers","dependenciesGraph","includeOptionalDeps","neverBuiltDependencies","getAllowedScripts","dangerouslyAllowAllScripts","peerOverrides","hoistInjectedDependencies","rootComponents","updateAll","optimizeReportForNonTerminal","lockfileOnly","prevManifests","linkedDependencies","installCycle","hasMissingLocalComponents","forcedHarmonyVersion","harmonyVersionInRootPolicy","hasComponentsFromWorkspaceInMissingDeps","installResult","installComponents","componentDirectoryMap","installTeambitBit","err","enrichUnpublishedSnapDepError","components","dependenciesChanged","enableGlobalVirtualStore","ensureHoistedDependencyResolution","cacheCleared","linkCodemods","syncCoreAspectLinksForEnvs","oldNonLoadedEnvs","setOldNonLoadedEnvs","reloadMovedEnvs","reloadNonLoadedEnvs","shouldClearCacheOnInstall","compile","compileStartTime","process","hrtime","compileOutputMessage","setStatusLine","clearCache","compileOnWorkspace","initiator","CompilationInitiator","Install","consoleSuccess","tryWriteConfigFiles","recurringInstall","add","manifestsHash","skipClearFailedToLoadEnvs","skipPrune","pruneModules","getFailedToLoadEnvs","pnpmCode","cause","code","errMessage","message","isUnpublishedSnapCandidate","includes","workspaceIds","listIds","unpublished","dep","getComponentDependencies","depId","componentId","isSnap","hasWithoutVersion","key","toStringWithoutVersion","dependent","entry","dependents","size","UnpublishedComponentDependency","allEnvs","getAllRegisteredEnvs","movedEnvs","pFilter","env","__path","regularPathExists","pathExists","resolvedPathExists","__resolvedPath","idsToLoad","componentIdsToLoad","ComponentID","fromString","reloadEnvs","reloadRegisteredEnvs","compact","aspects","resolveAspects","undefined","requestedOnly","excludeCore","throwOnError","aspectDef","reloadAspects","groups","groupAspectsToLoad","group","reloadOneAspectsGroup","envOfAspect","loadedPlugins","localPath","aspectPath","plugins","getPlugins","load","MainRuntime","plugin","runtime","getRuntime","provider","groupBy","hasId","workspaceSubGroups","regroupEnvsIdsFromTheList","comps","noComp","scope","otherAspects","envsOfAspects","idWithoutVersion","rootDeps","omit","manifest","addedNewPkgs","_addMissingPackagesToRootPolicy","mergedRootPolicyWithMissingDeps","shouldWrite","isWorkspaceConfigWriteEnabled","clean","silent","throw","consoleFailure","rootPolicy","aspectsPackages","getConfiguredUserAspectsPackages","externalsOnly","aspectsPackage","configuredEnvs","getConfiguredEnvs","resolvedEnvs","envIdStr","isCoreEnv","parsedId","resolveComponentId","inWs","importAndGetMany","idWithVersion","resolveEnvIdWithPotentialVersionForConfig","split","getPackageName","_getMissingPackagesWithoutRootDeps","_getAllMissingPackages","pkg","list","uniq","comp","state","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","d","missingPackages","flat","dependencyInstaller","result","getComponentManifests","referenceLocalPackages","rootManifests","_getRootManifests","_updateRootDirs","envsWithoutManifest","Array","from","intersection","getOldNonLoadedEnvs","rootDirs","existingDirs","fs","readdir","rootComponentsPath","dirName","dirPath","remove","mkdir","recursive","nonRootManifests","workspaceDeps","getWorkspaceDepsOfBitRoots","envManifests","_getEnvManifests","appManifests","_getAppManifests","_getAllUsedEnvIds","fromEntries","getRootComponentDirByRootId","_getEnvDependencies","_getEnvPackage","installConfig","hoistingLimits","policy","getEnvPolicyFromEnvId","selfPolicy","force","envComponent","getEnvComponentByEnvId","finalVersion","snapToSemver","listAppsComponents","appPkgName","appManifest","find","appWorkspaceDeps","_getAppWorkspaceDeps","workspaceComponents","workspaceComponentsById","visited","addComponent","depComponent","updateEnvJsoncPolicies","outdatedPkgs","updatesByComponentId","existing","pkgs","envJsoncFile","filesystem","files","file","relative","envJsoncContent","contents","updatedContent","updateJsoncPreservingFormatting","envJsonc","field","targetField","deps","isArray","depEntry","latestRange","supportedRange","semver","intersects","absPath","componentDir","writeFile","updateDependencies","componentPolicies","getComponentsWithDependencyPolicies","variantPoliciesByPatterns","variantPatternsToDepPolicesDict","getOutdatedPkgsFromPolicies","patterns","forceVersionBump","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","envJsoncUpdates","policiesUpdates","outdatedPkg","source","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","_updateComponentsConfig","_reloadConsumer","addDuplicateComponentAndPackageIssue","workspacePolicy","_consumer","removed","pkgName","componentIdToPackageName","found","getOrCreate","DuplicateComponentAndPackage","addSpecificComponentConfig","DependencyResolverAspect","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","updateVariantPolicies","variantPatterns","raw","variantPattern","setExtension","overrideExisting","uninstallDependencies","removeFromRootPolicy","linker","getLinker","linkingOptions","linkResults","calculateLinkedDeps","workspaceRes","legacyResults","legacyLinkResults","linksResults","legacyLinkCodemodResults","codemodResults","linkToBitRoots","_linkAllComponentsToBitRoots","toArray","bitIds","linkToNodeModulesWithCodemod","rewire","link","createLinks","linkToDir","avoidHardLink","skipIfSymlinkValid","apps","dir","mkdirp","linkPkgsToRootComponents","workspacePath","rootComponentId","getRootComponentDir","remotes","getRemoteScopes","reg","getRegistries","packageScopes","scopes","dependencyList","filtered","ComponentDependency","isHub","some","startsWith","getMany","loadSeedersAsAspects","as","onRootAspectAddedSubscriber","_aspectId","onAspectsResolveSubscriber","aspectComponents","needLink","needInstall","promises","aspectComponent","aspectIdStr","visitedAspects","packagePath","getComponentPackagePath","exists","onComponentChange","loggerExt","cli","bundler","ui","_","createLogger","InstallAspect","installExt","registerGotEventSlot","eventName","registerAddComponentsIssues","bind","registerOnComponentCreate","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","registerOnRootAspectAdded","registerOnComponentChange","getUIServer","addNewDevServers","clearStatusLine","gray","question","bold","shouldSwitchToBitPM","yesno","Error","disableExternalPackageManagerMode","depResolverExt","rootComponent","workspaceConfigFilesExt","enableWorkspaceConfigWrite","removePostInstallScript","green","red","packageJsonFile","PackageJsonFile","fileExist","packageJsonObject","scripts","postinstall","EXTERNAL_PM_POSTINSTALL_SCRIPT","exports","Slot","withType","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CompilerAspect","IssuesAspect","EnvsAspect","ApplicationAspect","IpcEventsAspect","GeneratorAspect","WorkspaceConfigFilesAspect","AspectLoaderAspect","BundlerAspect","UIAspect","missingDeps","issue","addRuntime","_default","depsByProjectPaths","mapValues","hash"],"sources":["install.main.runtime.ts"],"sourcesContent":["import pFilter from 'p-filter';\nimport fs, { pathExists } from 'fs-extra';\nimport path from 'path';\nimport { getRootComponentDir, linkPkgsToRootComponents } from '@teambit/workspace.root-components';\nimport type { CompilerMain } from '@teambit/compiler';\nimport { CompilerAspect, CompilationInitiator } from '@teambit/compiler';\nimport type { CLIMain, CommandList } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport chalk from 'chalk';\nimport yesno from 'yesno';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport { compact, mapValues, omit, uniq, intersection, groupBy } from 'lodash';\nimport semver from 'semver';\nimport type { ProjectManifest } from '@pnpm/types';\nimport type { GenerateResult, GeneratorMain } from '@teambit/generator';\nimport { GeneratorAspect } from '@teambit/generator';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport type { ApplicationMain } from '@teambit/application';\nimport { ApplicationAspect } from '@teambit/application';\nimport type { VariantsMain } from '@teambit/variants';\nimport { VariantsAspect } from '@teambit/variants';\nimport type { Component } from '@teambit/component';\nimport { ComponentID, ComponentMap } from '@teambit/component';\nimport { isSnap } from '@teambit/component-version';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport { updateJsoncPreservingFormatting } from '@teambit/toolbox.json.jsonc-utils';\nimport { createLinks } from '@teambit/dependencies.fs.linked-dependencies';\nimport pMapSeries from 'p-map-series';\nimport type { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport { type DependenciesGraph } from '@teambit/objects';\nimport type { CodemodResult, NodeModulesLinksResult } from '@teambit/workspace.modules.node-modules-linker';\nimport { linkToNodeModulesWithCodemod } from '@teambit/workspace.modules.node-modules-linker';\nimport type { EnvJsonc, EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { IpcEventsMain } from '@teambit/ipc-events';\nimport { IpcEventsAspect } from '@teambit/ipc-events';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport type {\n EnvPolicyEnvJsoncConfigObject,\n GetComponentManifestsOptions,\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyInstaller,\n PackageManagerInstallOptions,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n MergedOutdatedPkg,\n WorkspacePolicy,\n UpdatedComponent,\n} from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, ComponentDependency, ensureHoistedDependencyResolution } from '@teambit/dependency-resolver';\nimport type { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\nimport { WorkspaceConfigFilesAspect } from '@teambit/workspace-config-files';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { IssuesMain } from '@teambit/issues';\nimport { IssuesAspect } from '@teambit/issues';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { AspectDefinition, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport hash from 'object-hash';\nimport type { BundlerMain } from '@teambit/bundler';\nimport { BundlerAspect } from '@teambit/bundler';\nimport type { UiMain } from '@teambit/ui';\nimport { UIAspect } from '@teambit/ui';\nimport { EXTERNAL_PM_POSTINSTALL_SCRIPT } from '@teambit/host-initializer';\nimport { DependencyTypeNotSupportedInPolicy, UnpublishedComponentDependency } from './exceptions';\nimport type { UnpublishedSnapDependency } from './exceptions';\nimport { InstallAspect } from './install.aspect';\nimport { pickOutdatedPkgs } from './pick-outdated-pkgs';\nimport { LinkCommand } from './link';\nimport InstallCmd from './install.cmd';\nimport UninstallCmd from './uninstall.cmd';\nimport UpdateCmd from './update.cmd';\n\nexport type WorkspaceLinkOptions = LinkingOptions & {\n rootPolicy?: WorkspacePolicy;\n linkToBitRoots?: boolean;\n includePeers?: boolean;\n};\n\nexport type WorkspaceLinkResults = {\n legacyLinkResults?: NodeModulesLinksResult[];\n legacyLinkCodemodResults?: CodemodResult[];\n} & LinkResults;\n\nexport type WorkspaceInstallOptions = {\n addMissingDeps?: boolean;\n skipUnavailable?: boolean;\n addMissingPeers?: boolean;\n lifecycleType?: WorkspaceDependencyLifecycleType;\n dedupe?: boolean;\n import?: boolean;\n showExternalPackageManagerPrompt?: boolean;\n copyPeerToRuntimeOnRoot?: boolean;\n copyPeerToRuntimeOnComponents?: boolean;\n updateExisting?: boolean;\n skipIfExisting?: boolean;\n savePrefix?: string;\n compile?: boolean;\n includeOptionalDeps?: boolean;\n updateAll?: boolean;\n recurringInstall?: boolean;\n optimizeReportForNonTerminal?: boolean;\n lockfileOnly?: boolean;\n writeConfigFiles?: boolean;\n skipPrune?: boolean;\n dependenciesGraph?: DependenciesGraph;\n allowScripts?: Record<string, boolean>;\n};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\n\ntype PreLink = (linkOpts?: WorkspaceLinkOptions) => Promise<void>;\ntype PreInstall = (installOpts?: WorkspaceInstallOptions) => Promise<void>;\ntype PostInstall = () => Promise<void>;\n\ntype PreLinkSlot = SlotRegistry<PreLink>;\ntype PreInstallSlot = SlotRegistry<PreInstall>;\ntype PostInstallSlot = SlotRegistry<PostInstall>;\n\ntype GetComponentsAndManifestsOptions = Omit<\n GetComponentManifestsOptions,\n 'componentDirectoryMap' | 'rootPolicy' | 'rootDir'\n> &\n Pick<PackageManagerInstallOptions, 'nodeLinker'>;\n\ntype ReloadAspectGroup = { comps: boolean; workspace: boolean; envOfAspect?: boolean; aspects: AspectDefinition[] };\nexport class InstallMain {\n private visitedAspects: Set<string> = new Set();\n\n private oldNonLoadedEnvs: string[] = [];\n\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private logger: Logger,\n\n private workspace: Workspace,\n\n private variants: VariantsMain,\n\n private compiler: CompilerMain,\n\n private envs: EnvsMain,\n\n private wsConfigFiles: WorkspaceConfigFilesMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private app: ApplicationMain,\n\n private generator: GeneratorMain,\n\n private preLinkSlot: PreLinkSlot,\n\n private preInstallSlot: PreInstallSlot,\n\n private postInstallSlot: PostInstallSlot,\n\n private ipcEvents: IpcEventsMain,\n\n private harmony: Harmony\n ) {}\n /**\n * Install dependencies for all components in the workspace\n *\n * @returns\n * @memberof Workspace\n */\n async install(packages?: string[], options?: WorkspaceInstallOptions): Promise<ComponentMap<string>> {\n // Check if external package manager mode is enabled\n const workspaceConfig = this.workspace.getWorkspaceConfig();\n const depResolverExtConfig = workspaceConfig.extensions.findExtension('teambit.dependencies/dependency-resolver');\n if (depResolverExtConfig?.config.externalPackageManager) {\n if (options?.showExternalPackageManagerPrompt) {\n // For explicit \"bit install\" commands, show the prompt\n await this.handleExternalPackageManagerPrompt();\n } else {\n await this.writeDependenciesToPackageJson();\n this.logger.console(\n chalk.yellow(\n 'Installation was skipped due to external package manager configuration. Please run your package manager to install dependencies.'\n )\n );\n return new ComponentMap(new Map());\n }\n }\n\n // set workspace in install context\n this.workspace.inInstallContext = true;\n this.workspace.inInstallAfterPmContext = false;\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n if (options?.addMissingPeers) {\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n hoistPatterns: this.dependencyResolver.config.hoistPatterns,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n };\n const missingPeers = await this.dependencyResolver.getMissingPeerDependencies(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n pmInstallOptions\n );\n if (missingPeers) {\n const missingPeerPackages = Object.entries(missingPeers).map(([peerName, range]) => `${peerName}@${range}`);\n await this._addPackages(missingPeerPackages, options);\n } else {\n this.logger.console('No missing peer dependencies found.');\n }\n }\n await pMapSeries(this.preInstallSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const res = await this._installModules(options);\n this.workspace.inInstallContext = false;\n\n await this.ipcEvents.publishIpcEvent('onPostInstall');\n\n return res;\n }\n\n async writeDependenciesToPackageJson(): Promise<void> {\n const installer = this.dependencyResolver.getInstaller({});\n const mergedRootPolicy = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicy);\n const componentsAndManifests = await this._getComponentsManifests(installer, mergedRootPolicy, {\n dedupe: true,\n includeAllEnvPeers: false,\n });\n const { dependencies, devDependencies } = componentsAndManifests.manifests[this.workspace.path];\n return this.workspace.writeDependenciesToPackageJson({ ...devDependencies, ...dependencies });\n }\n\n registerPreLink(fn: PreLink) {\n this.preLinkSlot.register(fn);\n }\n\n registerPreInstall(fn: PreInstall) {\n this.preInstallSlot.register(fn);\n }\n\n registerPostInstall(fn: PostInstall) {\n this.postInstallSlot.register(fn);\n }\n\n async onComponentCreate(generateResults: GenerateResult[], installOptions?: Partial<WorkspaceInstallOptions>) {\n this.workspace.inInstallContext = true;\n let runInstall = false;\n let packages: string[] = [];\n let installMissing = false;\n\n const ids = generateResults.map((generateResult) => {\n if (generateResult.dependencies && generateResult.dependencies.length) {\n packages = packages.concat(generateResult.dependencies);\n runInstall = true;\n }\n if (generateResult.installMissingDependencies) {\n installMissing = true;\n runInstall = true;\n }\n if (generateResult.isApp || generateResult.isEnv) {\n runInstall = true;\n }\n return generateResult.id;\n });\n const nonLoadedEnvs: string[] = [];\n\n ids.map((id) => this.workspace.clearComponentCache(id));\n await pMapSeries(ids, async (id) => {\n const component = await this.workspace.get(id);\n // const envId = await this.envs.getEnvId(component);\n const envId = (await this.envs.calculateEnvId(component)).toString();\n const isLoaded = this.envs.isEnvRegistered(envId);\n if (!isLoaded) {\n nonLoadedEnvs.push(envId);\n }\n return component;\n });\n if (nonLoadedEnvs.length) {\n runInstall = true;\n }\n if (!runInstall) {\n this.workspace.inInstallContext = false;\n return;\n }\n // this.logger.console(\n // `the following environments are not installed yet: ${nonLoadedEnvs.join(', ')}. installing them now...`\n // );\n await this.install(packages, {\n ...installOptions,\n addMissingDeps: installMissing,\n skipIfExisting: true,\n writeConfigFiles: false,\n // skipPrune: true,\n });\n }\n\n private async _addPackages(packages: string[], options?: WorkspaceInstallOptions) {\n if ((options?.lifecycleType as string) === 'dev') {\n throw new DependencyTypeNotSupportedInPolicy(options?.lifecycleType as string);\n }\n this.logger.debug(`installing the following packages: ${packages.join()}`);\n const resolver = await this.dependencyResolver.getVersionResolver();\n const resolvedPackagesP = packages.map(async (packageName) => {\n try {\n return await resolver.resolveRemoteVersion(packageName, {\n rootDir: this.workspace.path,\n });\n } catch (error: unknown) {\n if (options?.skipUnavailable) {\n return;\n }\n throw error;\n }\n });\n const resolvedPackages = await Promise.all(resolvedPackagesP);\n const newWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n resolvedPackages.forEach((resolvedPackage) => {\n if (resolvedPackage?.version) {\n const versionWithPrefix = this.dependencyResolver.getVersionWithSavePrefix({\n version: resolvedPackage.version,\n overridePrefix: options?.savePrefix,\n wantedRange: resolvedPackage.wantedRange,\n });\n newWorkspacePolicyEntries.push({\n dependencyId: resolvedPackage.packageName,\n value: {\n version: versionWithPrefix,\n },\n lifecycleType: options?.lifecycleType || 'runtime',\n });\n }\n });\n this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: options?.updateExisting ?? false,\n skipIfExisting: options?.skipIfExisting ?? false,\n });\n await this.dependencyResolver.persistConfig('install');\n }\n\n private async _installModules(options?: ModulesInstallOptions): Promise<ComponentMap<string>> {\n if (options?.allowScripts) {\n this.dependencyResolver.updateAllowedScripts(options.allowScripts);\n await this.dependencyResolver.persistConfig('update allowScripts configuration');\n }\n const pm = this.dependencyResolver.getPackageManager();\n this.logger.console(\n `installing dependencies in workspace using ${pm?.name} (${chalk.cyan(\n this.dependencyResolver.packageManagerName\n )})`\n );\n this.logger.debug(`installing dependencies in workspace with options`, options);\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n const resolveEnvPeersFromRoot = this.dependencyResolver.config.resolveEnvPeersFromRoot ?? true;\n const calcManifestsOpts: GetComponentsAndManifestsOptions = {\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n dedupe: !hasRootComponents && options?.dedupe,\n dependencyFilterFn: depsFilterFn,\n nodeLinker: this.dependencyResolver.nodeLinker(),\n resolveEnvPeersFromRoot,\n };\n const linkOpts = {\n linkTeambitBit: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n };\n const { linkedRootDeps } = await this.calculateLinks(linkOpts);\n // eslint-disable-next-line prefer-const\n let { mergedRootPolicy, componentsAndManifests: current } = await this._getComponentsManifestsAndRootPolicy(\n installer,\n {\n ...calcManifestsOpts,\n addMissingDeps: options?.addMissingDeps,\n skipUnavailable: options?.skipUnavailable,\n linkedRootDeps,\n }\n );\n\n const pmInstallOptions: PackageManagerInstallOptions = {\n ...calcManifestsOpts,\n autoInstallPeers: this.dependencyResolver.config.autoInstallPeers,\n dedupePeers: this.dependencyResolver.config.dedupePeers,\n dependenciesGraph: options?.dependenciesGraph,\n includeOptionalDeps: options?.includeOptionalDeps,\n neverBuiltDependencies: this.dependencyResolver.config.neverBuiltDependencies,\n allowScripts: this.dependencyResolver.getAllowedScripts(),\n dangerouslyAllowAllScripts: this.dependencyResolver.config.dangerouslyAllowAllScripts,\n overrides: {\n ...current.peerOverrides, // env peer overrides (from overrides: true in env.jsonc)\n ...this.dependencyResolver.config.overrides, // workspace.jsonc overrides win\n },\n hoistPatterns: this.dependencyResolver.config.hoistPatterns,\n hoistInjectedDependencies: this.dependencyResolver.config.hoistInjectedDependencies,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n updateAll: options?.updateAll,\n optimizeReportForNonTerminal: options?.optimizeReportForNonTerminal,\n lockfileOnly: options?.lockfileOnly,\n };\n const prevManifests = new Set<string>();\n // TODO: this make duplicate\n // this.logger.consoleSuccess();\n const linkedDependencies = {\n [this.workspace.path]: linkedRootDeps,\n };\n const compDirMap = await this.getComponentsDirectory([]);\n let installCycle = 0;\n let hasMissingLocalComponents = true;\n const forcedHarmonyVersion = this.dependencyResolver.harmonyVersionInRootPolicy();\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 let installResult: { dependenciesChanged: boolean };\n try {\n installResult = await installer.installComponents(\n this.workspace.path,\n current.manifests,\n mergedRootPolicy,\n current.componentDirectoryMap,\n {\n linkedDependencies,\n installTeambitBit: false,\n forcedHarmonyVersion,\n },\n pmInstallOptions\n );\n } catch (err: any) {\n // when the package manager can't find a version, the culprit is usually a component dependency that\n // resolves to a snap which was never published (e.g. a hidden lane update-dependent whose Ripple build\n // failed or hasn't completed). replace the cryptic \"No matching version found\" with an actionable\n // message. re-throws the original error otherwise.\n throw this.enrichUnpublishedSnapDepError(err, current.componentDirectoryMap.components);\n }\n const { dependenciesChanged } = installResult;\n this.workspace.inInstallAfterPmContext = true;\n // the install that switches a workspace onto the global virtual store runs with bootstrap's\n // pre-aspect bridge gate still reflecting the old layout, yet this same process goes on to\n // reload envs and compile from store slots. Re-apply the bridge (idempotent) now that the\n // target layout is known, before anything resolves from the new locations.\n if (this.dependencyResolver.enableGlobalVirtualStore()) {\n ensureHoistedDependencyResolution(this.workspace.path);\n }\n let cacheCleared = false;\n await this.linkCodemods(compDirMap);\n await this.syncCoreAspectLinksForEnvs(compDirMap);\n const oldNonLoadedEnvs = this.setOldNonLoadedEnvs();\n await this.reloadMovedEnvs();\n await this.reloadNonLoadedEnvs();\n\n const shouldClearCacheOnInstall = this.shouldClearCacheOnInstall();\n if (options?.compile ?? true) {\n const compileStartTime = process.hrtime();\n const compileOutputMessage = `compiling components`;\n this.logger.setStatusLine(compileOutputMessage);\n if (shouldClearCacheOnInstall) {\n // We need to clear cache before compiling the components or it might compile them with the default env\n // incorrectly in case the env was not loaded correctly before the installation.\n // We don't want to clear the failed to load envs because we want to show the warning at the end\n // await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n await this.workspace.clearCache();\n cacheCleared = true;\n }\n await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install });\n\n // Right now we don't need to load extensions/execute load slot at this point\n // await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install }, undefined, {\n // executeLoadSlot: true,\n // loadExtensions: true,\n // });\n this.logger.consoleSuccess(compileOutputMessage, compileStartTime);\n }\n if (options?.writeConfigFiles ?? true) {\n await this.tryWriteConfigFiles(!cacheCleared && shouldClearCacheOnInstall);\n }\n if (!dependenciesChanged) break;\n if (!options?.recurringInstall) break;\n\n if (!oldNonLoadedEnvs.length) break;\n prevManifests.add(manifestsHash(current.manifests));\n // If we run compile we do the clear cache before the compilation so no need to clean it again (it's an expensive\n // operation)\n if (!cacheCleared && shouldClearCacheOnInstall) {\n // We need to clear cache before creating the new component manifests.\n // this.workspace.consumer.componentLoader.clearComponentsCache();\n // We don't want to clear the failed to load envs because we want to show the warning at the end\n await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n }\n current = await this._getComponentsManifests(installer, mergedRootPolicy, calcManifestsOpts);\n installCycle += 1;\n } while ((!prevManifests.has(manifestsHash(current.manifests)) || hasMissingLocalComponents) && installCycle < 5);\n // the core aspects are compiled by now, so drop the links added above and let the envs resolve\n // them from the workspace again.\n await this.syncCoreAspectLinksForEnvs(compDirMap);\n if (!options?.lockfileOnly && !options?.skipPrune) {\n // We clean node_modules only after the last install.\n // Otherwise, we might load an env from a location that we later remove.\n try {\n await installer.pruneModules(this.workspace.path);\n // Ignoring the error here as it's not critical and we don't want to fail the install process\n } catch (err: any) {\n this.logger.error(`failed running pnpm prune with error`, err);\n }\n // After pruning we need reload moved envs, as during the pruning the old location might be deleted\n await this.reloadMovedEnvs();\n }\n // this is now commented out because we assume we don't need it anymore.\n // even when the env was not loaded before and it is loaded now, it should be fine because the dependencies-data\n // is only about the auto-detect-deps. there are two more steps: version-resolution and apply-overrides that\n // disregard the dependencies-cache.\n // await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n /* eslint-enable no-await-in-loop */\n return current.componentDirectoryMap;\n }\n\n private shouldClearCacheOnInstall(): boolean {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n return nonLoadedEnvs.length > 0;\n }\n\n /**\n * Called only when the package manager install failed. A \"No matching version found\" failure usually points\n * at a component dependency that resolves to a snap which was never published — its build failed or hasn't\n * completed yet (commonly a hidden lane \"update-dependent\" re-snapped by \"snap updates\" / Ripple CI, but not\n * necessarily). Such a dep isn't checked out, so it can't be linked from source and there's no package to\n * fetch. When the failing package matches one of those deps, return an actionable error (pointing at\n * `bit import`); otherwise return the original error unchanged.\n *\n * We resolve the culprit by matching the package manager error against the resolved component dependencies\n * rather than the lane's `updateDependents`, for two reasons: (1) the failing dep is not a workspace component,\n * so its component-id (needed for the `bit import` remediation) is only recoverable from the resolved deps of\n * the checked-out components — there's no package-name→id map for it; (2) `updateDependents` is unreliable —\n * forking a lane drops it and `reset` moves entries out of it, so a never-published snap can still be pinned\n * while no longer tracked there. The scan reads already-loaded in-memory dep data (no fetch).\n */\n private enrichUnpublishedSnapDepError(err: Error, components: Component[]): Error {\n // only act on package manager failures that can be produced by an unpublished snap package. other codes\n // (auth, network, FETCH_404, registry outages) can mention the same package but signal a real problem we must\n // not mask. pnpm errors are wrapped by pnpmErrorToBitError, which keeps the original error on `cause`.\n // `@pnpm/napi` can report the old TS engine's \"No matching version found\" path as\n // SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER (or its prefixed ERR_PNPM_* form) for snap-versioned Bit package specs.\n const pnpmCode = (err as any)?.cause?.code ?? (err as any)?.code;\n const errMessage = err.message || '';\n const isUnpublishedSnapCandidate =\n pnpmCode === 'ERR_PNPM_NO_MATCHING_VERSION' ||\n pnpmCode === 'SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER' ||\n pnpmCode === 'ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER' ||\n (!pnpmCode && errMessage.includes('No matching version found'));\n if (!isUnpublishedSnapCandidate) return err;\n\n // checked-out components are linked from source, so they're never fetched from the registry.\n const workspaceIds = this.workspace.listIds();\n\n const unpublished = new Map<string, UnpublishedSnapDependency>();\n for (const component of components) {\n for (const dep of this.dependencyResolver.getComponentDependencies(component)) {\n const depId = dep.componentId;\n if (!depId.version || !isSnap(depId.version)) continue;\n if (workspaceIds.hasWithoutVersion(depId)) continue;\n // pinpoint the exact dependency the package manager failed on: its snap hash (globally unique) appears\n // verbatim in the error (the manifest pins `0.0.0-<hash>`, so the raw hash is a substring).\n if (!errMessage.includes(depId.version)) continue;\n const key = depId.toStringWithoutVersion();\n const dependent = component.id.toStringWithoutVersion();\n const entry = unpublished.get(key);\n if (entry) entry.dependents.push(dependent);\n else unpublished.set(key, { id: key, version: depId.version, dependents: [dependent] });\n }\n }\n if (!unpublished.size) return err;\n return new UnpublishedComponentDependency([...unpublished.values()]);\n }\n\n /**\n * This function is very important to fix some issues that might happen during the installation process.\n * The case is the following:\n * during/before the installation process we load some envs from their bit.env files\n * this contains code like:\n * protected tsconfigPath = require.resolve('./config/tsconfig.json');\n * protected eslintConfigPath = require.resolve('./config/eslintrc.cjs');\n * When we load that file, we calculated the resolved path, and it's stored in the env\n * object instance.\n * then later on during the install we move the env to another location (like bit roots)\n * which points to a .pnpm folder with some peers, that changed during the install\n * then when we take this env object and call write ws config for example\n * or compile\n * we use that resolved path to calculate the final tsconfig\n * however that file is no longer exists which result in an error\n * This function will check if an env folder doesn't exist anymore, and will re-load it\n * from its new location.\n * This usually happen when we have install running in the middle of the process followed\n * by other bit ops.\n * examples:\n * bit new - which might run few installs then other ops.\n * bit switch - which might run few installs then other ops, and potentially change the\n * peer deps during the install.\n * bit server (vscode plugin) - which keep the process always live, so any install ops\n * that change the location, will cause the vscode plugin/bit server to crash later.\n * @returns\n */\n private async reloadMovedEnvs() {\n this.logger.debug('reloadMovedEnvs');\n const allEnvs = this.envs.getAllRegisteredEnvs();\n const movedEnvs = await pFilter(allEnvs, async (env) => {\n if (!env.__path) return false;\n const regularPathExists = await pathExists(env.__path);\n const resolvedPathExists = await pathExists(env.__resolvedPath);\n return !regularPathExists || !resolvedPathExists;\n });\n const idsToLoad = movedEnvs.map((env) => env.id);\n const componentIdsToLoad = idsToLoad.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadRegisteredEnvs() {\n const allEnvs = this.envs.getAllRegisteredEnvs();\n const idsToLoad = compact(allEnvs.map((env) => env.id));\n const componentIdsToLoad = idsToLoad.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadNonLoadedEnvs() {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n const componentIdsToLoad = nonLoadedEnvs.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadEnvs(componentIdsToLoad: ComponentID[]) {\n if (componentIdsToLoad.length && this.workspace) {\n const aspects = await this.workspace.resolveAspects(undefined, componentIdsToLoad, {\n requestedOnly: true,\n excludeCore: true,\n throwOnError: false,\n // Theoretically we should use skipDeps here, but according to implementation at the moment\n // it will lead to plugins not load, and we need them to be loaded.\n // This is a bug in the flow and should be fixed.\n // skipDeps: true,\n });\n\n await Promise.all(\n aspects.map(async (aspectDef) => {\n const id = aspectDef.component?.id;\n if (!id) return;\n await this.workspace.clearComponentCache(id);\n })\n );\n await this.reloadAspects(aspects || []);\n\n // Keeping this here for now, it was removed as part of #9138 as now that we load envs of envs\n // correctly first it seems to be not needed anymore.\n // But there might be cases where it will be needed. So keeping it here for now.\n\n // This is a very special case which we need to compile our envs before loading them correctly.\n // const grouped = groupBy(aspects, (aspectDef) => {\n // return aspectDef.component?.id.toStringWithoutVersion() === 'bitdev.general/envs/bit-env';\n // });\n // await this.reloadAspects(grouped.true || []);\n // const otherEnvs = grouped.false || [];\n // await Promise.all(\n // otherEnvs.map(async (aspectDef) => {\n // const id = aspectDef.component?.id;\n // if (!id) return;\n // await this.workspace.clearComponentCache(id);\n // })\n // );\n // await this.reloadAspects(grouped.false || []);\n }\n }\n\n private async reloadAspects(aspects: AspectDefinition[]) {\n const groups = await this.groupAspectsToLoad(aspects);\n // We need to make sure we load group by group and not in parallel\n await pMapSeries(groups, async (group) => {\n await this.reloadOneAspectsGroup(group);\n });\n }\n\n private async reloadOneAspectsGroup(group: ReloadAspectGroup) {\n const aspects = group.aspects || [];\n if (group.workspace && !group.envOfAspect) {\n aspects.forEach((aspectDef) => {\n if (aspectDef.component?.id) {\n this.workspace.clearComponentCache(aspectDef.component.id);\n }\n });\n }\n const loadedPlugins = compact(\n await Promise.all(\n aspects.map((aspectDef) => {\n const localPath = aspectDef.aspectPath;\n const component = aspectDef.component;\n if (!component) return undefined;\n const plugins = this.aspectLoader.getPlugins(component, localPath);\n if (plugins.has()) {\n return plugins.load(MainRuntime.name);\n }\n })\n )\n );\n await Promise.all(\n loadedPlugins.map((plugin) => {\n const runtime = plugin.getRuntime(MainRuntime);\n return runtime?.provider(undefined, undefined, undefined, this.harmony);\n })\n );\n }\n\n /**\n * This function groups the components to aspects to load into groups.\n * The order of the groups is important, the first group should be loaded first.\n * The order inside the group is not important.\n * The groups are:\n * 1. aspects definitions without components (this should be an empty group, if it's not, we should check why).\n * 2. aspects which are not in the workspace but in the scope / node modules.\n * 3. envs of aspects (which are also aspects)\n * 4. other aspects (the rest)\n * @param aspects\n * @returns\n */\n private async groupAspectsToLoad(aspects: AspectDefinition[]): Promise<Array<ReloadAspectGroup>> {\n const groups = groupBy(aspects, (aspectDef) => {\n if (!aspectDef.component) return 'no-comp';\n if (!this.workspace.hasId(aspectDef.component.id)) return 'scope';\n return 'workspace';\n });\n const workspaceSubGroups = await this.regroupEnvsIdsFromTheList(groups.workspace || []);\n return [\n { comps: false, workspace: false, aspects: groups.noComp || [] },\n { comps: true, workspace: false, aspects: groups.scope || [] },\n { comps: true, workspace: true, envOfAspect: true, aspects: workspaceSubGroups.envOfAspect },\n { comps: true, workspace: true, aspects: workspaceSubGroups.otherAspects },\n ];\n }\n\n private async regroupEnvsIdsFromTheList(aspects: AspectDefinition[]): Promise<Record<string, AspectDefinition[]>> {\n const envsOfAspects = new Set<string>();\n await Promise.all(\n aspects.map(async (aspectDef) => {\n if (!aspectDef.component) return;\n const envId = aspectDef.component ? await this.envs.calculateEnvId(aspectDef.component) : undefined;\n if (envId) {\n envsOfAspects.add(envId.toString());\n }\n })\n );\n const groups = groupBy(aspects, (aspectDef) => {\n const id = aspectDef.component?.id.toString();\n const idWithoutVersion = aspectDef.component?.id.toStringWithoutVersion();\n if ((id && envsOfAspects.has(id)) || (idWithoutVersion && envsOfAspects.has(idWithoutVersion))) {\n return 'envOfAspect';\n }\n return 'otherAspects';\n });\n\n return groups;\n }\n\n private async _getComponentsManifestsAndRootPolicy(\n installer: DependencyInstaller,\n options: GetComponentsAndManifestsOptions & {\n addMissingDeps?: boolean;\n skipUnavailable?: boolean;\n linkedRootDeps: Record<string, string>;\n }\n ): Promise<{ componentsAndManifests: ComponentsAndManifests; mergedRootPolicy: WorkspacePolicy }> {\n const mergedRootPolicy = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicy);\n const componentsAndManifests = await this._getComponentsManifests(installer, mergedRootPolicy, options);\n if (!options?.addMissingDeps) {\n return { componentsAndManifests, mergedRootPolicy };\n }\n const rootDeps = new Set(\n Object.keys({\n ...componentsAndManifests.manifests[this.workspace.path].devDependencies,\n ...componentsAndManifests.manifests[this.workspace.path].dependencies,\n ...options.linkedRootDeps,\n })\n );\n Object.values(omit(componentsAndManifests.manifests, [this.workspace.path])).forEach((manifest) => {\n if ((manifest as ProjectManifest).name) {\n rootDeps.add((manifest as ProjectManifest).name!); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n });\n const addedNewPkgs = await this._addMissingPackagesToRootPolicy(rootDeps, {\n skipUnavailable: options?.skipUnavailable,\n });\n if (!addedNewPkgs) {\n return { componentsAndManifests, mergedRootPolicy };\n }\n const mergedRootPolicyWithMissingDeps = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicyWithMissingDeps);\n return {\n mergedRootPolicy: mergedRootPolicyWithMissingDeps,\n componentsAndManifests: await this._getComponentsManifests(installer, mergedRootPolicyWithMissingDeps, options),\n };\n }\n\n /**\n * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error\n * message.\n * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles`\n * function is successfully executed, nothing is being returned. If an error occurs during the execution of\n * `writeConfigFiles`, an error message is being returned.\n */\n private async tryWriteConfigFiles(clearCache: boolean) {\n const shouldWrite = this.wsConfigFiles.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return;\n if (clearCache) {\n await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n }\n const { err } = await this.wsConfigFiles.writeConfigFiles({\n clean: true,\n silent: true,\n dedupe: true,\n throw: false,\n });\n\n if (err) {\n this.logger.consoleFailure(\n `failed generating workspace config files, please run \"bit ws-config write\" manually. error: ${err.message}`\n );\n }\n }\n\n private async addConfiguredAspectsToWorkspacePolicy(): Promise<WorkspacePolicy> {\n const rootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const aspectsPackages = await this.workspace.getConfiguredUserAspectsPackages({ externalsOnly: true });\n aspectsPackages.forEach((aspectsPackage) => {\n rootPolicy.add(\n {\n dependencyId: aspectsPackage.packageName,\n value: {\n version: aspectsPackage.version,\n },\n lifecycleType: 'runtime',\n },\n // If it's already exist from the root, take the version from the root policy\n { skipIfExisting: true }\n );\n });\n return rootPolicy;\n }\n\n private async addConfiguredGeneratorEnvsToWorkspacePolicy(rootPolicy: WorkspacePolicy): Promise<void> {\n const configuredEnvs = this.generator.getConfiguredEnvs();\n const resolvedEnvs = compact(\n await Promise.all(\n configuredEnvs.map(async (envIdStr) => {\n if (this.envs.isCoreEnv(envIdStr)) {\n return undefined;\n }\n const parsedId = await this.workspace.resolveComponentId(envIdStr);\n // If we have the env in the workspace, we don't want to install it\n const inWs = await this.workspace.hasId(parsedId);\n if (inWs) {\n return undefined;\n }\n const comps = await this.workspace.importAndGetMany(\n [parsedId],\n `to get the env ${parsedId.toString()} for installation`\n );\n const idWithVersion = await this.workspace.resolveEnvIdWithPotentialVersionForConfig(parsedId);\n const version = idWithVersion.split('@')[1] || '*';\n const packageName = this.dependencyResolver.getPackageName(comps[0]);\n return {\n packageName,\n version,\n };\n })\n )\n );\n\n resolvedEnvs.forEach((env) => {\n rootPolicy.add(\n {\n dependencyId: env.packageName,\n value: {\n version: env.version,\n },\n lifecycleType: 'runtime',\n },\n // If it's already exist from the root, take the version from the root policy\n { skipIfExisting: true }\n );\n });\n }\n\n private async _addMissingPackagesToRootPolicy(\n rootDeps: Set<string>,\n options?: WorkspaceInstallOptions\n ): Promise<boolean> {\n const packages = await this._getMissingPackagesWithoutRootDeps(rootDeps);\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n return packages.length > 0;\n }\n\n private async _getMissingPackagesWithoutRootDeps(rootDeps: Set<string>) {\n const packages = await this._getAllMissingPackages();\n return packages.filter((pkg) => !rootDeps.has(pkg));\n }\n\n private async _getAllMissingPackages(): Promise<string[]> {\n const comps = await this.workspace.list();\n return uniq(\n comps\n .map((comp) => {\n const data = comp.state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs)?.data || [];\n return data.map((d) => d.missingPackages).flat();\n })\n .flat()\n );\n }\n\n private async _getComponentsManifests(\n dependencyInstaller: DependencyInstaller,\n rootPolicy: WorkspacePolicy,\n installOptions: GetComponentsAndManifestsOptions\n ): Promise<ComponentsAndManifests> {\n const componentDirectoryMap = await this.getComponentsDirectory([]);\n const result = await dependencyInstaller.getComponentManifests({\n ...installOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: this.workspace.path,\n referenceLocalPackages: this.dependencyResolver.hasRootComponents() && installOptions.nodeLinker === 'isolated',\n });\n let { manifests } = result;\n const { peerOverrides } = result;\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 peerOverrides,\n };\n }\n\n public setOldNonLoadedEnvs() {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n const envsWithoutManifest = Array.from(this.dependencyResolver.envsWithoutManifest);\n const oldNonLoadedEnvs = intersection(nonLoadedEnvs, envsWithoutManifest);\n this.oldNonLoadedEnvs = oldNonLoadedEnvs;\n return oldNonLoadedEnvs;\n }\n\n /**\n * This function returns a list of old non-loaded environments names.\n * @returns an array of strings called `oldNonLoadedEnvs`. This array contains the names of environment variables that\n * failed to load as extensions and are also don't have an env.jsonc file.\n * If this list is not empty, then the user might need to run another install to make sure all dependencies resolved\n * correctly\n */\n public getOldNonLoadedEnvs() {\n return this.oldNonLoadedEnvs;\n }\n\n private async _updateRootDirs(rootDirs: string[]) {\n try {\n const existingDirs = await fs.readdir(this.workspace.rootComponentsPath);\n await Promise.all(\n existingDirs.map(async (dirName) => {\n const dirPath = path.join(this.workspace.rootComponentsPath, dirName);\n if (!rootDirs.includes(dirPath)) {\n await fs.remove(dirPath);\n }\n })\n );\n } catch (err: any) {\n if (err.code !== 'ENOENT') throw err;\n }\n await Promise.all(rootDirs.map((dirPath) => fs.mkdir(dirPath, { recursive: true })));\n }\n\n private async _getRootManifests(\n manifests: Record<string, ProjectManifest>\n ): Promise<Record<string, ProjectManifest>> {\n const nonRootManifests = Object.values(manifests).filter(({ name }) => name !== 'workspace');\n const workspaceDeps = this.dependencyResolver.getWorkspaceDepsOfBitRoots(nonRootManifests);\n const envManifests = await this._getEnvManifests(workspaceDeps);\n const appManifests = await this._getAppManifests(manifests, workspaceDeps);\n return {\n ...envManifests,\n ...appManifests,\n };\n }\n\n private async _getEnvManifests(workspaceDeps: Record<string, string>): Promise<Record<string, ProjectManifest>> {\n const envs = await this._getAllUsedEnvIds();\n return Object.fromEntries(\n await Promise.all(\n envs.map(async (envId) => {\n return [\n await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, envId),\n {\n dependencies: {\n ...(await this._getEnvDependencies(envId, workspaceDeps)),\n ...workspaceDeps,\n ...(await this._getEnvPackage(envId)),\n },\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n );\n }\n\n /**\n * Get the env's own peer dependencies from its policy (env.jsonc).\n * Resolves \"+\" version placeholders using workspaceDeps.\n */\n private async _getEnvDependencies(\n envId: ComponentID,\n workspaceDeps: Record<string, string>\n ): Promise<Record<string, string>> {\n const policy = await this.dependencyResolver.getEnvPolicyFromEnvId(envId);\n if (!policy) return {};\n\n return Object.fromEntries(\n policy.selfPolicy.entries\n .filter(({ force, value }) => force && value.version !== '-')\n .map(({ dependencyId, value }) => {\n let version = value.version;\n // Resolve \"+\" version placeholders using workspace dependencies\n // Similar to WorkspaceManifest._resolvePlusVersions\n if (version === '+') {\n version = workspaceDeps[dependencyId] || '*';\n }\n return [dependencyId, version];\n })\n );\n }\n\n /**\n * Return the package name of the env with its version.\n * (only if the env is not a core env and is not in the workspace)\n * @param envId\n * @returns\n */\n private async _getEnvPackage(envId: ComponentID): Promise<Record<string, string> | undefined> {\n if (this.envs.isCoreEnv(envId.toStringWithoutVersion())) return undefined;\n const inWs = await this.workspace.hasId(envId);\n if (inWs) return undefined;\n const envComponent = await this.envs.getEnvComponentByEnvId(envId.toString(), envId.toString());\n if (!envComponent) return undefined;\n const packageName = this.dependencyResolver.getPackageName(envComponent);\n const version = envId.version;\n const finalVersion = snapToSemver(version as string);\n return { [packageName]: finalVersion };\n }\n\n private async _getAppManifests(\n manifests: Record<string, ProjectManifest>,\n workspaceDeps: Record<string, string>\n ): Promise<Record<string, ProjectManifest>> {\n return Object.fromEntries(\n compact(\n await Promise.all(\n (await this.app.listAppsComponents()).map(async (app) => {\n const appPkgName = this.dependencyResolver.getPackageName(app);\n const appManifest = Object.values(manifests).find(({ name }) => name === appPkgName);\n if (!appManifest) return null;\n const envId = await this.envs.calculateEnvId(app);\n const appWorkspaceDeps = await this._getAppWorkspaceDeps(app, workspaceDeps);\n return [\n await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, app.id),\n {\n ...omit(appManifest, ['name', 'version']),\n dependencies: {\n ...(await this._getEnvDependencies(envId, workspaceDeps)),\n ...appManifest.dependencies,\n ...appWorkspaceDeps,\n },\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n )\n );\n }\n\n private async _getAppWorkspaceDeps(\n app: Component,\n workspaceDeps: Record<string, string>\n ): Promise<Record<string, string>> {\n const workspaceComponents = await this.workspace.list();\n const workspaceComponentsById = new Map(\n workspaceComponents.map((component) => [component.id.toStringWithoutVersion(), component])\n );\n const appWorkspaceDeps: Record<string, string> = {};\n const visited = new Set<string>();\n\n const addComponent = (component: Component) => {\n const componentId = component.id.toStringWithoutVersion();\n if (visited.has(componentId)) return;\n visited.add(componentId);\n\n const packageName = this.dependencyResolver.getPackageName(component);\n if (workspaceDeps[packageName]) {\n appWorkspaceDeps[packageName] = workspaceDeps[packageName];\n }\n\n for (const dep of this.dependencyResolver.getComponentDependencies(component)) {\n const depComponent = workspaceComponentsById.get(dep.componentId.toStringWithoutVersion());\n if (depComponent) {\n addComponent(depComponent);\n } else if (workspaceDeps[dep.packageName]) {\n appWorkspaceDeps[dep.packageName] = workspaceDeps[dep.packageName];\n }\n }\n };\n\n addComponent(app);\n return appWorkspaceDeps;\n }\n\n /**\n * Update env.jsonc policy files for environment components based on a list of outdated packages.\n * @param outdatedPkgs - List of outdated packages.\n */\n async updateEnvJsoncPolicies(outdatedPkgs: MergedOutdatedPkg[]): Promise<void> {\n // Group packages by componentId, skipping those without one\n const updatesByComponentId = new Map<string, MergedOutdatedPkg[]>();\n for (const pkg of outdatedPkgs) {\n if (!pkg.componentId) continue;\n const key = pkg.componentId.toString();\n const existing = updatesByComponentId.get(key);\n if (existing) {\n existing.push(pkg);\n } else {\n updatesByComponentId.set(key, [pkg]);\n }\n }\n\n await Promise.all(\n Array.from(updatesByComponentId.values()).map(async (pkgs) => {\n const componentId = pkgs[0].componentId!;\n const component = await this.workspace.get(componentId);\n const envJsoncFile = component.filesystem.files.find((file) => file.relative === 'env.jsonc');\n if (!envJsoncFile) return;\n\n const envJsoncContent = envJsoncFile.contents.toString();\n const updatedContent = updateJsoncPreservingFormatting(envJsoncContent, (envJsonc: EnvJsonc): EnvJsonc => {\n pkgs.forEach((pkg) => {\n let field: keyof EnvPolicyEnvJsoncConfigObject | undefined;\n if (pkg.targetField === 'devDependencies') field = 'dev';\n if (pkg.targetField === 'dependencies') field = 'runtime';\n if (pkg.targetField === 'peerDependencies') field = 'peers';\n\n if (!field) return;\n\n const deps = envJsonc.policy?.[field];\n if (!Array.isArray(deps)) return;\n\n const depEntry = deps.find(({ name }) => name === pkg.name);\n if (depEntry) {\n depEntry.version = pkg.latestRange;\n if (field === 'peers' && depEntry.supportedRange) {\n if (!semver.intersects(pkg.latestRange, depEntry.supportedRange)) {\n depEntry.supportedRange = `${depEntry.supportedRange} || ${pkg.latestRange}`;\n }\n }\n }\n });\n return envJsonc;\n });\n\n const absPath = path.join(this.workspace.componentDir(component.id), 'env.jsonc');\n await fs.writeFile(absPath, updatedContent);\n })\n );\n }\n\n private async _getAllUsedEnvIds(): Promise<ComponentID[]> {\n const envs = new Map<string, ComponentID>();\n const components = await this.workspace.list();\n await pMapSeries(components, async (component) => {\n const envId = await this.envs.calculateEnvId(component);\n envs.set(envId.toString(), envId);\n });\n return Array.from(envs.values());\n }\n\n /**\n * Updates out-of-date dependencies in the workspace.\n *\n * @param options.all {Boolean} updates all outdated dependencies without showing a prompt.\n */\n async updateDependencies(options: {\n forceVersionBump?: 'major' | 'minor' | 'patch' | 'compatible';\n patterns?: string[];\n all: boolean;\n }): Promise<ComponentMap<string> | null> {\n const componentPolicies = await this.workspace.getComponentsWithDependencyPolicies();\n const variantPoliciesByPatterns = this.workspace.variantPatternsToDepPolicesDict();\n const components = await this.workspace.list();\n const outdatedPkgs = await this.dependencyResolver.getOutdatedPkgsFromPolicies({\n rootDir: this.workspace.path,\n variantPoliciesByPatterns,\n componentPolicies,\n components,\n patterns: options.patterns,\n forceVersionBump: options.forceVersionBump,\n });\n if (!outdatedPkgs || !outdatedPkgs.length) {\n this.logger.consoleFailure('No dependencies found that match the patterns');\n return null;\n }\n let outdatedPkgsToUpdate: MergedOutdatedPkg[];\n if (options.all) {\n outdatedPkgsToUpdate = outdatedPkgs;\n } else {\n this.logger.off();\n outdatedPkgsToUpdate = await pickOutdatedPkgs(outdatedPkgs);\n this.logger.on();\n }\n if (outdatedPkgsToUpdate.length === 0) {\n this.logger.consoleSuccess('No outdated dependencies found');\n if (options.forceVersionBump === 'compatible') {\n this.logger.console(\n \"If you want to find new versions that don't match the current version ranges, retry with the --latest flag\"\n );\n }\n return null;\n }\n\n const envJsoncUpdates: MergedOutdatedPkg[] = [];\n const policiesUpdates: MergedOutdatedPkg[] = [];\n for (const outdatedPkg of outdatedPkgsToUpdate) {\n if (outdatedPkg.source === 'env-jsonc') {\n envJsoncUpdates.push(outdatedPkg);\n } else {\n policiesUpdates.push(outdatedPkg);\n }\n }\n\n const { updatedVariants, updatedComponents } = this.dependencyResolver.applyUpdates(policiesUpdates, {\n variantPoliciesByPatterns,\n });\n await Promise.all([\n this.updateEnvJsoncPolicies(envJsoncUpdates),\n this._updateVariantsPolicies(updatedVariants),\n this._updateComponentsConfig(updatedComponents),\n ]);\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 _updateComponentsConfig(updatedComponents: UpdatedComponent[]) {\n if (updatedComponents.length === 0) return;\n await Promise.all(\n updatedComponents.map(({ componentId, config }) => {\n return this.workspace.addSpecificComponentConfig(componentId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n await this.workspace.bitMap.write('update (dependencies)');\n }\n\n private async _updateVariantsPolicies(updateVariantPolicies: string[]) {\n const variantPatterns = this.variants.raw();\n for (const variantPattern of updateVariantPolicies) {\n this.variants.setExtension(\n variantPattern,\n DependencyResolverAspect.id,\n variantPatterns[variantPattern][DependencyResolverAspect.id],\n { overrideExisting: true }\n );\n }\n await this.dependencyResolver.persistConfig('update dependencies');\n }\n\n /**\n * Uninstall the specified packages from dependencies.\n *\n * @param {string[]} the list of packages that should be removed from dependencies.\n */\n async uninstallDependencies(packages: string[]) {\n this.dependencyResolver.removeFromRootPolicy(packages);\n await this.dependencyResolver.persistConfig('uninstall dependencies');\n return this._installModules({ dedupe: true });\n }\n\n /**\n * This function returns all the locations of the external links that should be created inside node_modules.\n * This information may then be passed to the package manager, which will create the links on its own.\n */\n async calculateLinks(\n options: WorkspaceLinkOptions = {}\n ): Promise<{ linkResults: WorkspaceLinkResults; linkedRootDeps: Record<string, string> }> {\n await pMapSeries(this.preLinkSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const compDirMap = await this.getComponentsDirectory([]);\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const { linkResults: res, linkedRootDeps } = await linker.calculateLinkedDeps(\n this.workspace.path,\n compDirMap,\n options\n );\n const workspaceRes = res as WorkspaceLinkResults;\n\n const legacyResults = await this.linkCodemods(compDirMap, options);\n workspaceRes.legacyLinkResults = legacyResults.linksResults;\n workspaceRes.legacyLinkCodemodResults = legacyResults.codemodResults;\n\n if (this.dependencyResolver.hasRootComponents() && options.linkToBitRoots) {\n await this._linkAllComponentsToBitRoots(compDirMap);\n }\n return { linkResults: res, linkedRootDeps };\n }\n\n /**\n * see DependencyLinker.syncCoreAspectLinksForEnvs.\n *\n * `linkCoreAspects` is only turned off by a workspace that authors the core aspects, since it must\n * use the ones it builds rather than the running bit's. That opt-out is also exactly what leaves\n * the envs' phantom require unsatisfied until those sources are compiled, so there is nothing to\n * bridge in any other workspace - where this returns on the config read alone.\n */\n private async syncCoreAspectLinksForEnvs(compDirMap: ComponentMap<string>) {\n if (this.dependencyResolver.linkCoreAspects()) return;\n const linker = this.dependencyResolver.getLinker({ rootDir: this.workspace.path });\n await linker.syncCoreAspectLinksForEnvs(\n this.workspace.path,\n compDirMap.toArray().map(([component]) => component.id)\n );\n }\n\n async linkCodemods(compDirMap: ComponentMap<string>, options?: { rewire?: boolean }) {\n const bitIds = compDirMap.toArray().map(([component]) => component.id);\n return linkToNodeModulesWithCodemod(this.workspace, bitIds, options?.rewire ?? false);\n }\n\n async link(options: WorkspaceLinkOptions = {}): Promise<WorkspaceLinkResults> {\n const { linkResults, linkedRootDeps } = await this.calculateLinks(options);\n await createLinks(options.linkToDir ?? this.workspace.path, linkedRootDeps, {\n avoidHardLink: true,\n skipIfSymlinkValid: true,\n });\n return linkResults;\n }\n\n private async _linkAllComponentsToBitRoots(compDirMap: ComponentMap<string>) {\n const envs = await this._getAllUsedEnvIds();\n const apps = (await this.app.listAppsComponents()).map((component) => component.id);\n await Promise.all(\n [...envs, ...apps].map(async (id) => {\n const dir = await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, id);\n await fs.mkdirp(dir);\n })\n );\n await linkPkgsToRootComponents(\n {\n rootComponentsPath: this.workspace.rootComponentsPath,\n workspacePath: this.workspace.path,\n },\n compDirMap.components.map((component) => this.dependencyResolver.getPackageName(component))\n );\n }\n\n private async getRootComponentDirByRootId(rootComponentsPath: string, rootComponentId: ComponentID): Promise<string> {\n // Root directories for local envs and apps are created without their version number.\n // This is done in order to avoid changes to the lockfile after such components are tagged.\n const id = this.workspace.hasId(rootComponentId)\n ? rootComponentId.toStringWithoutVersion()\n : rootComponentId.toString();\n return getRootComponentDir(rootComponentsPath, id);\n }\n\n /**\n * Generate a filter to pass to the installer\n * This will filter deps which are come from remotes which defined in scope.json\n * those components comes from local remotes, usually doesn't have a package in a registry\n * so no reason to try to install them (it will fail)\n */\n private async generateFilterFnForDepsFromLocalRemote() {\n const remotes = await this.workspace.scope.getRemoteScopes();\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 // We intentionally use loadSeedersAsAspects: false here to avoid loading env aspects during installation.\n // While this causes issues with --add-missing-deps for custom detectors (see PR #10044),\n // loading seeders during installation causes regressions where lane imports fail with errors like:\n // \"Cannot find module '/private/tmp/a27cc147/node_modules/@teambit/node.envs.node-babel-mocha/dist/node-babel-mocha.bit-env.js'\"\n // The env aspect files are not yet available during the initial installation phase.\n const components = ids.length\n ? await this.workspace.getMany(ids)\n : await this.workspace.list(undefined, { loadSeedersAsAspects: false });\n return ComponentMap.as<string>(components, (component) => this.workspace.componentDir(component.id));\n }\n\n private async onRootAspectAddedSubscriber(_aspectId: ComponentID, inWs: boolean): Promise<void> {\n if (!inWs) {\n await this.install();\n }\n }\n private async onAspectsResolveSubscriber(aspectComponents: Component[]): Promise<void> {\n let needLink = false;\n let needInstall = false;\n const promises = aspectComponents.map(async (aspectComponent) => {\n const aspectIdStr = aspectComponent.id.toString();\n if (this.visitedAspects.has(aspectIdStr)) return;\n\n this.visitedAspects.add(aspectIdStr);\n const packagePath = await this.workspace.getComponentPackagePath(aspectComponent);\n const exists = await pathExists(packagePath);\n if (!exists) {\n const inWs = await this.workspace.hasId(aspectComponent.id);\n if (inWs) {\n needLink = true;\n } else {\n needInstall = true;\n }\n }\n });\n await Promise.all(promises);\n if (needInstall) {\n await this.install();\n return;\n }\n if (needLink) {\n await this.link();\n }\n }\n\n async onComponentChange(component: Component) {\n const isEnv = this.envs.isEnv(component);\n if (isEnv) {\n await this.reloadEnvs([component.id]);\n }\n }\n\n static slots = [Slot.withType<PreLinkSlot>(), Slot.withType<PreInstallSlot>(), Slot.withType<PostInstallSlot>()];\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CompilerAspect,\n IssuesAspect,\n EnvsAspect,\n ApplicationAspect,\n IpcEventsAspect,\n GeneratorAspect,\n WorkspaceConfigFilesAspect,\n AspectLoaderAspect,\n BundlerAspect,\n UIAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [\n dependencyResolver,\n workspace,\n loggerExt,\n variants,\n cli,\n compiler,\n issues,\n envs,\n app,\n ipcEvents,\n generator,\n wsConfigFiles,\n aspectLoader,\n bundler,\n ui,\n ]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CompilerMain,\n IssuesMain,\n EnvsMain,\n ApplicationMain,\n IpcEventsMain,\n GeneratorMain,\n WorkspaceConfigFilesMain,\n AspectLoaderMain,\n BundlerMain,\n UiMain,\n ],\n _,\n [preLinkSlot, preInstallSlot, postInstallSlot]: [PreLinkSlot, PreInstallSlot, PostInstallSlot],\n harmony: Harmony\n ) {\n const logger = loggerExt.createLogger(InstallAspect.id);\n const installExt = new InstallMain(\n dependencyResolver,\n logger,\n workspace,\n variants,\n compiler,\n envs,\n wsConfigFiles,\n aspectLoader,\n app,\n generator,\n preLinkSlot,\n preInstallSlot,\n postInstallSlot,\n ipcEvents,\n harmony\n );\n ipcEvents.registerGotEventSlot(async (eventName) => {\n if (eventName !== 'onPostInstall') return;\n logger.debug('got onPostInstall event, clear workspace and all components cache');\n await workspace.clearCache();\n await installExt.reloadMovedEnvs();\n await pMapSeries(postInstallSlot.values(), (fn) => fn());\n });\n if (issues) {\n issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));\n }\n generator.registerOnComponentCreate(installExt.onComponentCreate.bind(installExt));\n const commands: CommandList = [\n new InstallCmd(installExt, workspace, logger),\n new UninstallCmd(installExt),\n new UpdateCmd(installExt),\n new LinkCommand(installExt, workspace, logger),\n ];\n // For now do not automate installation during aspect resolving\n // workspace.registerOnAspectsResolve(installExt.onAspectsResolveSubscriber.bind(installExt));\n if (workspace) {\n workspace.registerOnRootAspectAdded(installExt.onRootAspectAddedSubscriber.bind(installExt));\n workspace.registerOnComponentChange(installExt.onComponentChange.bind(installExt));\n }\n\n installExt.registerPostInstall(async () => {\n if (!ui.getUIServer()) {\n return;\n }\n const components = await workspace.list();\n await bundler.addNewDevServers(components);\n });\n cli.register(...commands);\n return installExt;\n }\n\n private async handleExternalPackageManagerPrompt(): Promise<void> {\n this.logger.clearStatusLine();\n\n // Display a colorful and informative message\n this.logger.console(chalk.cyan('\\n📦 External Package Manager Mode Detected'));\n this.logger.console(chalk.gray('Your workspace is configured to use external package managers (npm, yarn, pnpm).'));\n this.logger.console(chalk.gray('Running \"bit install\" is not available in this mode.\\n'));\n\n const question = chalk.bold(\n \"Would you like to switch to Bit's package manager for dependency management? [yes(y)/no(n)]\"\n );\n const shouldSwitchToBitPM = await yesno({ question });\n\n if (!shouldSwitchToBitPM) {\n throw new Error(\n 'External package manager mode is enabled. Please use your preferred package manager (npm, yarn, pnpm) to install dependencies instead of \"bit install\".'\n );\n }\n\n // User chose to switch to Bit's package manager\n await this.disableExternalPackageManagerMode();\n }\n\n private async disableExternalPackageManagerMode(): Promise<void> {\n try {\n // Get the workspace config\n const workspaceConfig = this.workspace.getWorkspaceConfig();\n\n // Remove externalPackageManager property and restore default settings\n const depResolverExt = workspaceConfig.extensions.findExtension('teambit.dependencies/dependency-resolver');\n if (depResolverExt?.config.externalPackageManager) {\n delete depResolverExt.config.externalPackageManager;\n }\n if (depResolverExt) {\n depResolverExt.config.rootComponent = true;\n }\n\n // Enable workspace config write\n const workspaceConfigFilesExt = workspaceConfig.extensions.findExtension(\n 'teambit.workspace/workspace-config-files'\n );\n if (workspaceConfigFilesExt) {\n workspaceConfigFilesExt.config.enableWorkspaceConfigWrite = true;\n }\n\n // Remove postInstall script from package.json (preserve user's existing scripts)\n await this.removePostInstallScript();\n\n // Write the updated config\n await workspaceConfig.write();\n\n this.logger.console(chalk.green('✓ Successfully switched to Bit package manager mode'));\n } catch (error) {\n this.logger.console(chalk.red('✗ Failed to switch to Bit package manager mode'));\n throw error;\n }\n }\n\n private async removePostInstallScript(): Promise<void> {\n try {\n const packageJsonFile = await PackageJsonFile.load(this.workspace.path);\n\n if (!packageJsonFile.fileExist) {\n return;\n }\n\n // Only remove our specific postInstall script, preserve user's custom scripts\n if (packageJsonFile.packageJsonObject.scripts?.postinstall === EXTERNAL_PM_POSTINSTALL_SCRIPT) {\n delete packageJsonFile.packageJsonObject.scripts.postinstall;\n\n // Clean up empty scripts object\n if (Object.keys(packageJsonFile.packageJsonObject.scripts).length === 0) {\n delete packageJsonFile.packageJsonObject.scripts;\n }\n\n await packageJsonFile.write();\n }\n } catch {\n this.logger.console(chalk.yellow('⚠ Warning: Could not remove postInstall script from package.json'));\n }\n }\n}\n\ntype ComponentsAndManifests = {\n componentDirectoryMap: ComponentMap<string>;\n manifests: Record<string, ProjectManifest>;\n peerOverrides: Record<string, string>;\n};\n\nfunction hasComponentsFromWorkspaceInMissingDeps({\n componentDirectoryMap,\n manifests,\n}: ComponentsAndManifests): boolean {\n const missingDeps = new Set<string>(\n componentDirectoryMap\n .toArray()\n .map(([{ state }]) => {\n const issue = state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs);\n if (!issue) return [];\n return issue.data.map((d) => d.missingPackages).flat();\n })\n .flat()\n );\n return Object.values(manifests).some(({ name }) => name && missingDeps.has(name));\n}\n\nInstallAspect.addRuntime(InstallMain);\n\nexport default InstallMain;\n\nfunction manifestsHash(manifests: Record<string, ProjectManifest>): string {\n // We don't care if the type of the dependency changes as it doesn't change the node_modules structure\n const depsByProjectPaths = mapValues(manifests, (manifest) => ({\n ...manifest.devDependencies,\n ...manifest.dependencies,\n }));\n return hash(depsByProjectPaths);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pFilter","data","_interopRequireDefault","require","_fsExtra","_interopRequireWildcard","_path","_workspace","_compiler","_cli","_chalk","_yesno","_workspace2","_lodash","_semver","_generator","_pkgModules","_application","_variants","_component","_componentVersion","_component2","_toolboxJson","_dependenciesFs","_pMapSeries","_harmony","_workspaceModules","_envs","_ipcEvents","_componentIssues","_dependencyResolver","_workspaceConfigFiles","_logger","_issues","_componentPackageVersion","_aspectLoader","_objectHash","_bundler","_ui","_hostInitializer","_exceptions","_install","_pickOutdatedPkgs","_link","_install2","_uninstall","_update","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","InstallMain","constructor","dependencyResolver","logger","workspace","variants","compiler","envs","wsConfigFiles","aspectLoader","app","generator","preLinkSlot","preInstallSlot","postInstallSlot","ipcEvents","harmony","Set","install","packages","options","workspaceConfig","getWorkspaceConfig","depResolverExtConfig","extensions","findExtension","config","externalPackageManager","showExternalPackageManagerPrompt","handleExternalPackageManagerPrompt","writeDependenciesToPackageJson","console","chalk","yellow","ComponentMap","Map","inInstallContext","inInstallAfterPmContext","_addPackages","addMissingPeers","compDirMap","getComponentsDirectory","mergedRootPolicy","getWorkspacePolicy","depsFilterFn","generateFilterFnForDepsFromLocalRemote","pmInstallOptions","dedupe","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","dependencyFilterFn","overrides","hoistPatterns","packageImportMethod","missingPeers","getMissingPeerDependencies","path","missingPeerPackages","entries","map","peerName","range","pMapSeries","values","fn","res","_installModules","publishIpcEvent","installer","getInstaller","addConfiguredAspectsToWorkspacePolicy","addConfiguredGeneratorEnvsToWorkspacePolicy","componentsAndManifests","_getComponentsManifests","includeAllEnvPeers","dependencies","devDependencies","manifests","registerPreLink","register","registerPreInstall","registerPostInstall","onComponentCreate","generateResults","installOptions","runInstall","installMissing","ids","generateResult","concat","installMissingDependencies","isApp","isEnv","id","nonLoadedEnvs","clearComponentCache","component","envId","calculateEnvId","toString","isLoaded","isEnvRegistered","addMissingDeps","skipIfExisting","writeConfigFiles","lifecycleType","DependencyTypeNotSupportedInPolicy","debug","join","resolver","getVersionResolver","resolvedPackagesP","packageName","resolveRemoteVersion","rootDir","error","skipUnavailable","resolvedPackages","Promise","all","newWorkspacePolicyEntries","resolvedPackage","version","versionWithPrefix","getVersionWithSavePrefix","overridePrefix","savePrefix","wantedRange","dependencyId","addToRootPolicy","updateExisting","persistConfig","allowScripts","updateAllowedScripts","pm","getPackageManager","ensurePackageManagerSupportsRestore","name","cyan","packageManagerName","hasRootComponents","resolveEnvPeersFromRoot","calcManifestsOpts","nodeLinker","linkOpts","linkTeambitBit","linkCoreAspects","linkDepsResolvedFromEnv","linkNestedDepsInNM","isLegacy","linkedRootDeps","calculateLinks","current","_getComponentsManifestsAndRootPolicy","dependenciesGraph","resolveDependenciesGraph","autoInstallPeers","dedupePeers","failOnDependenciesGraphError","restoreFromDependenciesGraph","includeOptionalDeps","neverBuiltDependencies","getAllowedScripts","dangerouslyAllowAllScripts","peerOverrides","hoistInjectedDependencies","rootComponents","updateAll","optimizeReportForNonTerminal","lockfileOnly","prevManifests","linkedDependencies","installCycle","hasMissingLocalComponents","forcedHarmonyVersion","harmonyVersionInRootPolicy","hasComponentsFromWorkspaceInMissingDeps","installResult","installComponents","componentDirectoryMap","installTeambitBit","err","enrichUnpublishedSnapDepError","components","dependenciesChanged","enableGlobalVirtualStore","ensureHoistedDependencyResolution","cacheCleared","linkCodemods","syncCoreAspectLinksForEnvs","oldNonLoadedEnvs","setOldNonLoadedEnvs","reloadMovedEnvs","reloadNonLoadedEnvs","shouldClearCacheOnInstall","compile","compileStartTime","process","hrtime","compileOutputMessage","setStatusLine","clearCache","compileOnWorkspace","initiator","CompilationInitiator","Install","consoleSuccess","tryWriteConfigFiles","recurringInstall","add","manifestsHash","skipClearFailedToLoadEnvs","skipPrune","pruneModules","getFailedToLoadEnvs","packageManager","supportsDependencyGraphRestoration","RestoreNotSupportedByPackageManager","context","undefined","formatWarningSummary","graph","scope","getDependenciesGraphByComponentIds","listIds","ignoreFeatureToggle","pnpmCode","cause","code","errMessage","message","isUnpublishedSnapCandidate","includes","workspaceIds","unpublished","dep","getComponentDependencies","depId","componentId","isSnap","hasWithoutVersion","key","toStringWithoutVersion","dependent","entry","dependents","size","UnpublishedComponentDependency","allEnvs","getAllRegisteredEnvs","movedEnvs","pFilter","env","__path","regularPathExists","pathExists","resolvedPathExists","__resolvedPath","idsToLoad","componentIdsToLoad","ComponentID","fromString","reloadEnvs","reloadRegisteredEnvs","compact","aspects","resolveAspects","requestedOnly","excludeCore","throwOnError","aspectDef","reloadAspects","groups","groupAspectsToLoad","group","reloadOneAspectsGroup","envOfAspect","loadedPlugins","localPath","aspectPath","plugins","getPlugins","load","MainRuntime","plugin","runtime","getRuntime","provider","groupBy","hasId","workspaceSubGroups","regroupEnvsIdsFromTheList","comps","noComp","otherAspects","envsOfAspects","idWithoutVersion","rootDeps","omit","manifest","addedNewPkgs","_addMissingPackagesToRootPolicy","mergedRootPolicyWithMissingDeps","shouldWrite","isWorkspaceConfigWriteEnabled","clean","silent","throw","consoleFailure","rootPolicy","aspectsPackages","getConfiguredUserAspectsPackages","externalsOnly","aspectsPackage","configuredEnvs","getConfiguredEnvs","resolvedEnvs","envIdStr","isCoreEnv","parsedId","resolveComponentId","inWs","importAndGetMany","idWithVersion","resolveEnvIdWithPotentialVersionForConfig","split","getPackageName","_getMissingPackagesWithoutRootDeps","_getAllMissingPackages","pkg","list","uniq","comp","state","issues","getIssue","IssuesClasses","MissingPackagesDependenciesOnFs","d","missingPackages","flat","dependencyInstaller","result","getComponentManifests","referenceLocalPackages","rootManifests","_getRootManifests","_updateRootDirs","envsWithoutManifest","Array","from","intersection","getOldNonLoadedEnvs","rootDirs","existingDirs","fs","readdir","rootComponentsPath","dirName","dirPath","remove","mkdir","recursive","nonRootManifests","workspaceDeps","getWorkspaceDepsOfBitRoots","envManifests","_getEnvManifests","appManifests","_getAppManifests","_getAllUsedEnvIds","fromEntries","getRootComponentDirByRootId","_getEnvDependencies","_getEnvPackage","installConfig","hoistingLimits","policy","getEnvPolicyFromEnvId","selfPolicy","force","envComponent","getEnvComponentByEnvId","finalVersion","snapToSemver","listAppsComponents","appPkgName","appManifest","find","appWorkspaceDeps","_getAppWorkspaceDeps","workspaceComponents","workspaceComponentsById","visited","addComponent","depComponent","updateEnvJsoncPolicies","outdatedPkgs","updatesByComponentId","existing","pkgs","envJsoncFile","filesystem","files","file","relative","envJsoncContent","contents","updatedContent","updateJsoncPreservingFormatting","envJsonc","field","targetField","deps","isArray","depEntry","latestRange","supportedRange","semver","intersects","absPath","componentDir","writeFile","updateDependencies","componentPolicies","getComponentsWithDependencyPolicies","variantPoliciesByPatterns","variantPatternsToDepPolicesDict","getOutdatedPkgsFromPolicies","patterns","forceVersionBump","outdatedPkgsToUpdate","off","pickOutdatedPkgs","on","envJsoncUpdates","policiesUpdates","outdatedPkg","source","updatedVariants","updatedComponents","applyUpdates","_updateVariantsPolicies","_updateComponentsConfig","_reloadConsumer","addDuplicateComponentAndPackageIssue","workspacePolicy","_consumer","removed","pkgName","componentIdToPackageName","found","getOrCreate","DuplicateComponentAndPackage","addSpecificComponentConfig","DependencyResolverAspect","shouldMergeWithExisting","shouldMergeWithPrevious","bitMap","write","updateVariantPolicies","variantPatterns","raw","variantPattern","setExtension","overrideExisting","uninstallDependencies","removeFromRootPolicy","linker","getLinker","linkingOptions","linkResults","calculateLinkedDeps","workspaceRes","legacyResults","legacyLinkResults","linksResults","legacyLinkCodemodResults","codemodResults","linkToBitRoots","_linkAllComponentsToBitRoots","toArray","bitIds","linkToNodeModulesWithCodemod","rewire","link","createLinks","linkToDir","avoidHardLink","skipIfSymlinkValid","apps","dir","mkdirp","linkPkgsToRootComponents","workspacePath","rootComponentId","getRootComponentDir","remotes","getRemoteScopes","reg","getRegistries","packageScopes","scopes","dependencyList","filtered","ComponentDependency","isHub","some","startsWith","getMany","loadSeedersAsAspects","as","onRootAspectAddedSubscriber","_aspectId","onAspectsResolveSubscriber","aspectComponents","needLink","needInstall","promises","aspectComponent","aspectIdStr","visitedAspects","packagePath","getComponentPackagePath","exists","onComponentChange","loggerExt","cli","bundler","ui","_","createLogger","InstallAspect","installExt","registerGotEventSlot","eventName","registerAddComponentsIssues","bind","registerOnComponentCreate","commands","InstallCmd","UninstallCmd","UpdateCmd","LinkCommand","registerOnRootAspectAdded","registerOnComponentChange","getUIServer","addNewDevServers","clearStatusLine","gray","question","bold","shouldSwitchToBitPM","yesno","Error","disableExternalPackageManagerMode","depResolverExt","rootComponent","workspaceConfigFilesExt","enableWorkspaceConfigWrite","removePostInstallScript","green","red","packageJsonFile","PackageJsonFile","fileExist","packageJsonObject","scripts","postinstall","EXTERNAL_PM_POSTINSTALL_SCRIPT","exports","Slot","withType","WorkspaceAspect","LoggerAspect","VariantsAspect","CLIAspect","CompilerAspect","IssuesAspect","EnvsAspect","ApplicationAspect","IpcEventsAspect","GeneratorAspect","WorkspaceConfigFilesAspect","AspectLoaderAspect","BundlerAspect","UIAspect","missingDeps","issue","addRuntime","_default","depsByProjectPaths","mapValues","hash"],"sources":["install.main.runtime.ts"],"sourcesContent":["import pFilter from 'p-filter';\nimport fs, { pathExists } from 'fs-extra';\nimport path from 'path';\nimport { getRootComponentDir, linkPkgsToRootComponents } from '@teambit/workspace.root-components';\nimport type { CompilerMain } from '@teambit/compiler';\nimport { CompilerAspect, CompilationInitiator } from '@teambit/compiler';\nimport type { CLIMain, CommandList } from '@teambit/cli';\nimport { CLIAspect, MainRuntime, formatWarningSummary } from '@teambit/cli';\nimport chalk from 'chalk';\nimport yesno from 'yesno';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport { compact, mapValues, omit, uniq, intersection, groupBy } from 'lodash';\nimport semver from 'semver';\nimport type { ProjectManifest } from '@pnpm/types';\nimport type { GenerateResult, GeneratorMain } from '@teambit/generator';\nimport { GeneratorAspect } from '@teambit/generator';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport type { ApplicationMain } from '@teambit/application';\nimport { ApplicationAspect } from '@teambit/application';\nimport type { VariantsMain } from '@teambit/variants';\nimport { VariantsAspect } from '@teambit/variants';\nimport type { Component } from '@teambit/component';\nimport { ComponentID, ComponentMap } from '@teambit/component';\nimport { isSnap } from '@teambit/component-version';\nimport { PackageJsonFile } from '@teambit/component.sources';\nimport { updateJsoncPreservingFormatting } from '@teambit/toolbox.json.jsonc-utils';\nimport { createLinks } from '@teambit/dependencies.fs.linked-dependencies';\nimport pMapSeries from 'p-map-series';\nimport type { Harmony, SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport { type DependenciesGraph } from '@teambit/objects';\nimport type { CodemodResult, NodeModulesLinksResult } from '@teambit/workspace.modules.node-modules-linker';\nimport { linkToNodeModulesWithCodemod } from '@teambit/workspace.modules.node-modules-linker';\nimport type { EnvJsonc, EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { IpcEventsMain } from '@teambit/ipc-events';\nimport { IpcEventsAspect } from '@teambit/ipc-events';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport type {\n EnvPolicyEnvJsoncConfigObject,\n GetComponentManifestsOptions,\n WorkspaceDependencyLifecycleType,\n DependencyResolverMain,\n DependencyInstaller,\n PackageManager,\n PackageManagerInstallOptions,\n WorkspacePolicyEntry,\n LinkingOptions,\n LinkResults,\n DependencyList,\n MergedOutdatedPkg,\n WorkspacePolicy,\n UpdatedComponent,\n} from '@teambit/dependency-resolver';\nimport {\n DependencyResolverAspect,\n ComponentDependency,\n ensureHoistedDependencyResolution,\n} from '@teambit/dependency-resolver';\nimport type { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\nimport { WorkspaceConfigFilesAspect } from '@teambit/workspace-config-files';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { IssuesMain } from '@teambit/issues';\nimport { IssuesAspect } from '@teambit/issues';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport type { AspectDefinition, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { AspectLoaderAspect } from '@teambit/aspect-loader';\nimport hash from 'object-hash';\nimport type { BundlerMain } from '@teambit/bundler';\nimport { BundlerAspect } from '@teambit/bundler';\nimport type { UiMain } from '@teambit/ui';\nimport { UIAspect } from '@teambit/ui';\nimport { EXTERNAL_PM_POSTINSTALL_SCRIPT } from '@teambit/host-initializer';\nimport {\n DependencyTypeNotSupportedInPolicy,\n RestoreNotSupportedByPackageManager,\n UnpublishedComponentDependency,\n} from './exceptions';\nimport type { UnpublishedSnapDependency } from './exceptions';\nimport { InstallAspect } from './install.aspect';\nimport { pickOutdatedPkgs } from './pick-outdated-pkgs';\nimport { LinkCommand } from './link';\nimport InstallCmd from './install.cmd';\nimport UninstallCmd from './uninstall.cmd';\nimport UpdateCmd from './update.cmd';\n\nexport type WorkspaceLinkOptions = LinkingOptions & {\n rootPolicy?: WorkspacePolicy;\n linkToBitRoots?: boolean;\n includePeers?: boolean;\n};\n\nexport type WorkspaceLinkResults = {\n legacyLinkResults?: NodeModulesLinksResult[];\n legacyLinkCodemodResults?: CodemodResult[];\n} & LinkResults;\n\nexport type WorkspaceInstallOptions = {\n addMissingDeps?: boolean;\n skipUnavailable?: boolean;\n addMissingPeers?: boolean;\n lifecycleType?: WorkspaceDependencyLifecycleType;\n dedupe?: boolean;\n import?: boolean;\n showExternalPackageManagerPrompt?: boolean;\n copyPeerToRuntimeOnRoot?: boolean;\n copyPeerToRuntimeOnComponents?: boolean;\n updateExisting?: boolean;\n skipIfExisting?: boolean;\n savePrefix?: string;\n compile?: boolean;\n includeOptionalDeps?: boolean;\n updateAll?: boolean;\n recurringInstall?: boolean;\n optimizeReportForNonTerminal?: boolean;\n lockfileOnly?: boolean;\n writeConfigFiles?: boolean;\n skipPrune?: boolean;\n dependenciesGraph?: DependenciesGraph;\n restoreFromDependenciesGraph?: boolean;\n allowScripts?: Record<string, boolean>;\n};\n\nexport type ModulesInstallOptions = Omit<WorkspaceInstallOptions, 'updateExisting' | 'lifecycleType' | 'import'>;\n\ntype PreLink = (linkOpts?: WorkspaceLinkOptions) => Promise<void>;\ntype PreInstall = (installOpts?: WorkspaceInstallOptions) => Promise<void>;\ntype PostInstall = () => Promise<void>;\n\ntype PreLinkSlot = SlotRegistry<PreLink>;\ntype PreInstallSlot = SlotRegistry<PreInstall>;\ntype PostInstallSlot = SlotRegistry<PostInstall>;\n\ntype GetComponentsAndManifestsOptions = Omit<\n GetComponentManifestsOptions,\n 'componentDirectoryMap' | 'rootPolicy' | 'rootDir'\n> &\n Pick<PackageManagerInstallOptions, 'nodeLinker'>;\n\ntype ReloadAspectGroup = { comps: boolean; workspace: boolean; envOfAspect?: boolean; aspects: AspectDefinition[] };\nexport class InstallMain {\n private visitedAspects: Set<string> = new Set();\n\n private oldNonLoadedEnvs: string[] = [];\n\n constructor(\n private dependencyResolver: DependencyResolverMain,\n\n private logger: Logger,\n\n private workspace: Workspace,\n\n private variants: VariantsMain,\n\n private compiler: CompilerMain,\n\n private envs: EnvsMain,\n\n private wsConfigFiles: WorkspaceConfigFilesMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private app: ApplicationMain,\n\n private generator: GeneratorMain,\n\n private preLinkSlot: PreLinkSlot,\n\n private preInstallSlot: PreInstallSlot,\n\n private postInstallSlot: PostInstallSlot,\n\n private ipcEvents: IpcEventsMain,\n\n private harmony: Harmony\n ) {}\n /**\n * Install dependencies for all components in the workspace\n *\n * @returns\n * @memberof Workspace\n */\n async install(packages?: string[], options?: WorkspaceInstallOptions): Promise<ComponentMap<string>> {\n // Check if external package manager mode is enabled\n const workspaceConfig = this.workspace.getWorkspaceConfig();\n const depResolverExtConfig = workspaceConfig.extensions.findExtension('teambit.dependencies/dependency-resolver');\n if (depResolverExtConfig?.config.externalPackageManager) {\n if (options?.showExternalPackageManagerPrompt) {\n // For explicit \"bit install\" commands, show the prompt\n await this.handleExternalPackageManagerPrompt();\n } else {\n await this.writeDependenciesToPackageJson();\n this.logger.console(\n chalk.yellow(\n 'Installation was skipped due to external package manager configuration. Please run your package manager to install dependencies.'\n )\n );\n return new ComponentMap(new Map());\n }\n }\n\n // set workspace in install context\n this.workspace.inInstallContext = true;\n this.workspace.inInstallAfterPmContext = false;\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n if (options?.addMissingPeers) {\n const compDirMap = await this.getComponentsDirectory([]);\n const mergedRootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const pmInstallOptions: PackageManagerInstallOptions = {\n dedupe: options?.dedupe,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n dependencyFilterFn: depsFilterFn,\n overrides: this.dependencyResolver.config.overrides,\n hoistPatterns: this.dependencyResolver.config.hoistPatterns,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n };\n const missingPeers = await this.dependencyResolver.getMissingPeerDependencies(\n this.workspace.path,\n mergedRootPolicy,\n compDirMap,\n pmInstallOptions\n );\n if (missingPeers) {\n const missingPeerPackages = Object.entries(missingPeers).map(([peerName, range]) => `${peerName}@${range}`);\n await this._addPackages(missingPeerPackages, options);\n } else {\n this.logger.console('No missing peer dependencies found.');\n }\n }\n await pMapSeries(this.preInstallSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const res = await this._installModules(options);\n this.workspace.inInstallContext = false;\n\n await this.ipcEvents.publishIpcEvent('onPostInstall');\n\n return res;\n }\n\n async writeDependenciesToPackageJson(): Promise<void> {\n const installer = this.dependencyResolver.getInstaller({});\n const mergedRootPolicy = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicy);\n const componentsAndManifests = await this._getComponentsManifests(installer, mergedRootPolicy, {\n dedupe: true,\n includeAllEnvPeers: false,\n });\n const { dependencies, devDependencies } = componentsAndManifests.manifests[this.workspace.path];\n return this.workspace.writeDependenciesToPackageJson({ ...devDependencies, ...dependencies });\n }\n\n registerPreLink(fn: PreLink) {\n this.preLinkSlot.register(fn);\n }\n\n registerPreInstall(fn: PreInstall) {\n this.preInstallSlot.register(fn);\n }\n\n registerPostInstall(fn: PostInstall) {\n this.postInstallSlot.register(fn);\n }\n\n async onComponentCreate(generateResults: GenerateResult[], installOptions?: Partial<WorkspaceInstallOptions>) {\n this.workspace.inInstallContext = true;\n let runInstall = false;\n let packages: string[] = [];\n let installMissing = false;\n\n const ids = generateResults.map((generateResult) => {\n if (generateResult.dependencies && generateResult.dependencies.length) {\n packages = packages.concat(generateResult.dependencies);\n runInstall = true;\n }\n if (generateResult.installMissingDependencies) {\n installMissing = true;\n runInstall = true;\n }\n if (generateResult.isApp || generateResult.isEnv) {\n runInstall = true;\n }\n return generateResult.id;\n });\n const nonLoadedEnvs: string[] = [];\n\n ids.map((id) => this.workspace.clearComponentCache(id));\n await pMapSeries(ids, async (id) => {\n const component = await this.workspace.get(id);\n // const envId = await this.envs.getEnvId(component);\n const envId = (await this.envs.calculateEnvId(component)).toString();\n const isLoaded = this.envs.isEnvRegistered(envId);\n if (!isLoaded) {\n nonLoadedEnvs.push(envId);\n }\n return component;\n });\n if (nonLoadedEnvs.length) {\n runInstall = true;\n }\n if (!runInstall) {\n this.workspace.inInstallContext = false;\n return;\n }\n // this.logger.console(\n // `the following environments are not installed yet: ${nonLoadedEnvs.join(', ')}. installing them now...`\n // );\n await this.install(packages, {\n ...installOptions,\n addMissingDeps: installMissing,\n skipIfExisting: true,\n writeConfigFiles: false,\n // skipPrune: true,\n });\n }\n\n private async _addPackages(packages: string[], options?: WorkspaceInstallOptions) {\n if ((options?.lifecycleType as string) === 'dev') {\n throw new DependencyTypeNotSupportedInPolicy(options?.lifecycleType as string);\n }\n this.logger.debug(`installing the following packages: ${packages.join()}`);\n const resolver = await this.dependencyResolver.getVersionResolver();\n const resolvedPackagesP = packages.map(async (packageName) => {\n try {\n return await resolver.resolveRemoteVersion(packageName, {\n rootDir: this.workspace.path,\n });\n } catch (error: unknown) {\n if (options?.skipUnavailable) {\n return;\n }\n throw error;\n }\n });\n const resolvedPackages = await Promise.all(resolvedPackagesP);\n const newWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n resolvedPackages.forEach((resolvedPackage) => {\n if (resolvedPackage?.version) {\n const versionWithPrefix = this.dependencyResolver.getVersionWithSavePrefix({\n version: resolvedPackage.version,\n overridePrefix: options?.savePrefix,\n wantedRange: resolvedPackage.wantedRange,\n });\n newWorkspacePolicyEntries.push({\n dependencyId: resolvedPackage.packageName,\n value: {\n version: versionWithPrefix,\n },\n lifecycleType: options?.lifecycleType || 'runtime',\n });\n }\n });\n this.dependencyResolver.addToRootPolicy(newWorkspacePolicyEntries, {\n updateExisting: options?.updateExisting ?? false,\n skipIfExisting: options?.skipIfExisting ?? false,\n });\n await this.dependencyResolver.persistConfig('install');\n }\n\n private async _installModules(options?: ModulesInstallOptions): Promise<ComponentMap<string>> {\n if (options?.allowScripts) {\n this.dependencyResolver.updateAllowedScripts(options.allowScripts);\n await this.dependencyResolver.persistConfig('update allowScripts configuration');\n }\n const pm = this.dependencyResolver.getPackageManager();\n this.ensurePackageManagerSupportsRestore(options, pm);\n this.logger.console(\n `installing dependencies in workspace using ${pm?.name} (${chalk.cyan(\n this.dependencyResolver.packageManagerName\n )})`\n );\n this.logger.debug(`installing dependencies in workspace with options`, options);\n const depsFilterFn = await this.generateFilterFnForDepsFromLocalRemote();\n const hasRootComponents = this.dependencyResolver.hasRootComponents();\n // TODO: pass get install options\n const installer = this.dependencyResolver.getInstaller({});\n const resolveEnvPeersFromRoot = this.dependencyResolver.config.resolveEnvPeersFromRoot ?? true;\n const calcManifestsOpts: GetComponentsAndManifestsOptions = {\n copyPeerToRuntimeOnComponents: options?.copyPeerToRuntimeOnComponents ?? false,\n copyPeerToRuntimeOnRoot: options?.copyPeerToRuntimeOnRoot ?? true,\n dedupe: !hasRootComponents && options?.dedupe,\n dependencyFilterFn: depsFilterFn,\n nodeLinker: this.dependencyResolver.nodeLinker(),\n resolveEnvPeersFromRoot,\n };\n const linkOpts = {\n linkTeambitBit: true,\n linkCoreAspects: this.dependencyResolver.linkCoreAspects(),\n linkDepsResolvedFromEnv: !hasRootComponents,\n linkNestedDepsInNM: !this.workspace.isLegacy && !hasRootComponents,\n };\n const { linkedRootDeps } = await this.calculateLinks(linkOpts);\n // eslint-disable-next-line prefer-const\n let { mergedRootPolicy, componentsAndManifests: current } = await this._getComponentsManifestsAndRootPolicy(\n installer,\n {\n ...calcManifestsOpts,\n addMissingDeps: options?.addMissingDeps,\n skipUnavailable: options?.skipUnavailable,\n linkedRootDeps,\n }\n );\n\n const dependenciesGraph = await this.resolveDependenciesGraph(options, { hasRootComponents });\n const pmInstallOptions: PackageManagerInstallOptions = {\n ...calcManifestsOpts,\n autoInstallPeers: this.dependencyResolver.config.autoInstallPeers,\n dedupePeers: this.dependencyResolver.config.dedupePeers,\n dependenciesGraph,\n failOnDependenciesGraphError: options?.restoreFromDependenciesGraph,\n includeOptionalDeps: options?.includeOptionalDeps,\n neverBuiltDependencies: this.dependencyResolver.config.neverBuiltDependencies,\n allowScripts: this.dependencyResolver.getAllowedScripts(),\n dangerouslyAllowAllScripts: this.dependencyResolver.config.dangerouslyAllowAllScripts,\n overrides: {\n ...current.peerOverrides, // env peer overrides (from overrides: true in env.jsonc)\n ...this.dependencyResolver.config.overrides, // workspace.jsonc overrides win\n },\n hoistPatterns: this.dependencyResolver.config.hoistPatterns,\n hoistInjectedDependencies: this.dependencyResolver.config.hoistInjectedDependencies,\n packageImportMethod: this.dependencyResolver.config.packageImportMethod,\n rootComponents: hasRootComponents,\n updateAll: options?.updateAll,\n optimizeReportForNonTerminal: options?.optimizeReportForNonTerminal,\n lockfileOnly: options?.lockfileOnly,\n };\n const prevManifests = new Set<string>();\n // TODO: this make duplicate\n // this.logger.consoleSuccess();\n const linkedDependencies = {\n [this.workspace.path]: linkedRootDeps,\n };\n const compDirMap = await this.getComponentsDirectory([]);\n let installCycle = 0;\n let hasMissingLocalComponents = true;\n const forcedHarmonyVersion = this.dependencyResolver.harmonyVersionInRootPolicy();\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 let installResult: { dependenciesChanged: boolean };\n try {\n installResult = await installer.installComponents(\n this.workspace.path,\n current.manifests,\n mergedRootPolicy,\n current.componentDirectoryMap,\n {\n linkedDependencies,\n installTeambitBit: false,\n forcedHarmonyVersion,\n },\n pmInstallOptions\n );\n } catch (err: any) {\n // when the package manager can't find a version, the culprit is usually a component dependency that\n // resolves to a snap which was never published (e.g. a hidden lane update-dependent whose Ripple build\n // failed or hasn't completed). replace the cryptic \"No matching version found\" with an actionable\n // message. re-throws the original error otherwise.\n throw this.enrichUnpublishedSnapDepError(err, current.componentDirectoryMap.components);\n }\n const { dependenciesChanged } = installResult;\n this.workspace.inInstallAfterPmContext = true;\n // the install that switches a workspace onto the global virtual store runs with bootstrap's\n // pre-aspect bridge gate still reflecting the old layout, yet this same process goes on to\n // reload envs and compile from store slots. Re-apply the bridge (idempotent) now that the\n // target layout is known, before anything resolves from the new locations.\n if (this.dependencyResolver.enableGlobalVirtualStore()) {\n ensureHoistedDependencyResolution(this.workspace.path);\n }\n let cacheCleared = false;\n await this.linkCodemods(compDirMap);\n await this.syncCoreAspectLinksForEnvs(compDirMap);\n const oldNonLoadedEnvs = this.setOldNonLoadedEnvs();\n await this.reloadMovedEnvs();\n await this.reloadNonLoadedEnvs();\n\n const shouldClearCacheOnInstall = this.shouldClearCacheOnInstall();\n if (options?.compile ?? true) {\n const compileStartTime = process.hrtime();\n const compileOutputMessage = `compiling components`;\n this.logger.setStatusLine(compileOutputMessage);\n if (shouldClearCacheOnInstall) {\n // We need to clear cache before compiling the components or it might compile them with the default env\n // incorrectly in case the env was not loaded correctly before the installation.\n // We don't want to clear the failed to load envs because we want to show the warning at the end\n // await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n await this.workspace.clearCache();\n cacheCleared = true;\n }\n await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install });\n\n // Right now we don't need to load extensions/execute load slot at this point\n // await this.compiler.compileOnWorkspace([], { initiator: CompilationInitiator.Install }, undefined, {\n // executeLoadSlot: true,\n // loadExtensions: true,\n // });\n this.logger.consoleSuccess(compileOutputMessage, compileStartTime);\n }\n if (options?.writeConfigFiles ?? true) {\n await this.tryWriteConfigFiles(!cacheCleared && shouldClearCacheOnInstall);\n }\n if (!dependenciesChanged) break;\n if (!options?.recurringInstall) break;\n\n if (!oldNonLoadedEnvs.length) break;\n prevManifests.add(manifestsHash(current.manifests));\n // If we run compile we do the clear cache before the compilation so no need to clean it again (it's an expensive\n // operation)\n if (!cacheCleared && shouldClearCacheOnInstall) {\n // We need to clear cache before creating the new component manifests.\n // this.workspace.consumer.componentLoader.clearComponentsCache();\n // We don't want to clear the failed to load envs because we want to show the warning at the end\n await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n }\n current = await this._getComponentsManifests(installer, mergedRootPolicy, calcManifestsOpts);\n installCycle += 1;\n } while ((!prevManifests.has(manifestsHash(current.manifests)) || hasMissingLocalComponents) && installCycle < 5);\n // the core aspects are compiled by now, so drop the links added above and let the envs resolve\n // them from the workspace again.\n await this.syncCoreAspectLinksForEnvs(compDirMap);\n if (!options?.lockfileOnly && !options?.skipPrune) {\n // We clean node_modules only after the last install.\n // Otherwise, we might load an env from a location that we later remove.\n try {\n await installer.pruneModules(this.workspace.path);\n // Ignoring the error here as it's not critical and we don't want to fail the install process\n } catch (err: any) {\n this.logger.error(`failed running pnpm prune with error`, err);\n }\n // After pruning we need reload moved envs, as during the pruning the old location might be deleted\n await this.reloadMovedEnvs();\n }\n // this is now commented out because we assume we don't need it anymore.\n // even when the env was not loaded before and it is loaded now, it should be fine because the dependencies-data\n // is only about the auto-detect-deps. there are two more steps: version-resolution and apply-overrides that\n // disregard the dependencies-cache.\n // await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n /* eslint-enable no-await-in-loop */\n return current.componentDirectoryMap;\n }\n\n private shouldClearCacheOnInstall(): boolean {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n return nonLoadedEnvs.length > 0;\n }\n\n private ensurePackageManagerSupportsRestore(\n options: ModulesInstallOptions | undefined,\n packageManager: PackageManager | undefined\n ) {\n if (options?.restoreFromDependenciesGraph && !packageManager?.supportsDependencyGraphRestoration) {\n throw new RestoreNotSupportedByPackageManager(packageManager?.name ?? this.dependencyResolver.packageManagerName);\n }\n }\n\n private async resolveDependenciesGraph(\n options: ModulesInstallOptions | undefined,\n context: { hasRootComponents: boolean }\n ): Promise<DependenciesGraph | undefined> {\n if (options?.dependenciesGraph) return options.dependenciesGraph;\n if (!options?.restoreFromDependenciesGraph) return undefined;\n if (!context.hasRootComponents) {\n this.logger.console(\n formatWarningSummary(\n '--restore requires \"rootComponents: true\" in the dependency-resolver config; falling back to a regular install.'\n )\n );\n return undefined;\n }\n const graph = await this.workspace.scope.getDependenciesGraphByComponentIds(this.workspace.listIds(), {\n ignoreFeatureToggle: true,\n });\n if (!graph) {\n this.logger.console(\n formatWarningSummary(\n '--restore was requested but no workspace component has a stored dependency graph. Falling back to a regular install.'\n )\n );\n }\n return graph;\n }\n\n /**\n * Called only when the package manager install failed. A \"No matching version found\" failure usually points\n * at a component dependency that resolves to a snap which was never published — its build failed or hasn't\n * completed yet (commonly a hidden lane \"update-dependent\" re-snapped by \"snap updates\" / Ripple CI, but not\n * necessarily). Such a dep isn't checked out, so it can't be linked from source and there's no package to\n * fetch. When the failing package matches one of those deps, return an actionable error (pointing at\n * `bit import`); otherwise return the original error unchanged.\n *\n * We resolve the culprit by matching the package manager error against the resolved component dependencies\n * rather than the lane's `updateDependents`, for two reasons: (1) the failing dep is not a workspace component,\n * so its component-id (needed for the `bit import` remediation) is only recoverable from the resolved deps of\n * the checked-out components — there's no package-name→id map for it; (2) `updateDependents` is unreliable —\n * forking a lane drops it and `reset` moves entries out of it, so a never-published snap can still be pinned\n * while no longer tracked there. The scan reads already-loaded in-memory dep data (no fetch).\n */\n private enrichUnpublishedSnapDepError(err: Error, components: Component[]): Error {\n // only act on package manager failures that can be produced by an unpublished snap package. other codes\n // (auth, network, FETCH_404, registry outages) can mention the same package but signal a real problem we must\n // not mask. pnpm errors are wrapped by pnpmErrorToBitError, which keeps the original error on `cause`.\n // `@pnpm/napi` can report the old TS engine's \"No matching version found\" path as\n // SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER (or its prefixed ERR_PNPM_* form) for snap-versioned Bit package specs.\n const pnpmCode = (err as any)?.cause?.code ?? (err as any)?.code;\n const errMessage = err.message || '';\n const isUnpublishedSnapCandidate =\n pnpmCode === 'ERR_PNPM_NO_MATCHING_VERSION' ||\n pnpmCode === 'SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER' ||\n pnpmCode === 'ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER' ||\n (!pnpmCode && errMessage.includes('No matching version found'));\n if (!isUnpublishedSnapCandidate) return err;\n\n // checked-out components are linked from source, so they're never fetched from the registry.\n const workspaceIds = this.workspace.listIds();\n\n const unpublished = new Map<string, UnpublishedSnapDependency>();\n for (const component of components) {\n for (const dep of this.dependencyResolver.getComponentDependencies(component)) {\n const depId = dep.componentId;\n if (!depId.version || !isSnap(depId.version)) continue;\n if (workspaceIds.hasWithoutVersion(depId)) continue;\n // pinpoint the exact dependency the package manager failed on: its snap hash (globally unique) appears\n // verbatim in the error (the manifest pins `0.0.0-<hash>`, so the raw hash is a substring).\n if (!errMessage.includes(depId.version)) continue;\n const key = depId.toStringWithoutVersion();\n const dependent = component.id.toStringWithoutVersion();\n const entry = unpublished.get(key);\n if (entry) entry.dependents.push(dependent);\n else unpublished.set(key, { id: key, version: depId.version, dependents: [dependent] });\n }\n }\n if (!unpublished.size) return err;\n return new UnpublishedComponentDependency([...unpublished.values()]);\n }\n\n /**\n * This function is very important to fix some issues that might happen during the installation process.\n * The case is the following:\n * during/before the installation process we load some envs from their bit.env files\n * this contains code like:\n * protected tsconfigPath = require.resolve('./config/tsconfig.json');\n * protected eslintConfigPath = require.resolve('./config/eslintrc.cjs');\n * When we load that file, we calculated the resolved path, and it's stored in the env\n * object instance.\n * then later on during the install we move the env to another location (like bit roots)\n * which points to a .pnpm folder with some peers, that changed during the install\n * then when we take this env object and call write ws config for example\n * or compile\n * we use that resolved path to calculate the final tsconfig\n * however that file is no longer exists which result in an error\n * This function will check if an env folder doesn't exist anymore, and will re-load it\n * from its new location.\n * This usually happen when we have install running in the middle of the process followed\n * by other bit ops.\n * examples:\n * bit new - which might run few installs then other ops.\n * bit switch - which might run few installs then other ops, and potentially change the\n * peer deps during the install.\n * bit server (vscode plugin) - which keep the process always live, so any install ops\n * that change the location, will cause the vscode plugin/bit server to crash later.\n * @returns\n */\n private async reloadMovedEnvs() {\n this.logger.debug('reloadMovedEnvs');\n const allEnvs = this.envs.getAllRegisteredEnvs();\n const movedEnvs = await pFilter(allEnvs, async (env) => {\n if (!env.__path) return false;\n const regularPathExists = await pathExists(env.__path);\n const resolvedPathExists = await pathExists(env.__resolvedPath);\n return !regularPathExists || !resolvedPathExists;\n });\n const idsToLoad = movedEnvs.map((env) => env.id);\n const componentIdsToLoad = idsToLoad.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadRegisteredEnvs() {\n const allEnvs = this.envs.getAllRegisteredEnvs();\n const idsToLoad = compact(allEnvs.map((env) => env.id));\n const componentIdsToLoad = idsToLoad.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadNonLoadedEnvs() {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n const componentIdsToLoad = nonLoadedEnvs.map((id) => ComponentID.fromString(id));\n await this.reloadEnvs(componentIdsToLoad);\n }\n\n private async reloadEnvs(componentIdsToLoad: ComponentID[]) {\n if (componentIdsToLoad.length && this.workspace) {\n const aspects = await this.workspace.resolveAspects(undefined, componentIdsToLoad, {\n requestedOnly: true,\n excludeCore: true,\n throwOnError: false,\n // Theoretically we should use skipDeps here, but according to implementation at the moment\n // it will lead to plugins not load, and we need them to be loaded.\n // This is a bug in the flow and should be fixed.\n // skipDeps: true,\n });\n\n await Promise.all(\n aspects.map(async (aspectDef) => {\n const id = aspectDef.component?.id;\n if (!id) return;\n await this.workspace.clearComponentCache(id);\n })\n );\n await this.reloadAspects(aspects || []);\n\n // Keeping this here for now, it was removed as part of #9138 as now that we load envs of envs\n // correctly first it seems to be not needed anymore.\n // But there might be cases where it will be needed. So keeping it here for now.\n\n // This is a very special case which we need to compile our envs before loading them correctly.\n // const grouped = groupBy(aspects, (aspectDef) => {\n // return aspectDef.component?.id.toStringWithoutVersion() === 'bitdev.general/envs/bit-env';\n // });\n // await this.reloadAspects(grouped.true || []);\n // const otherEnvs = grouped.false || [];\n // await Promise.all(\n // otherEnvs.map(async (aspectDef) => {\n // const id = aspectDef.component?.id;\n // if (!id) return;\n // await this.workspace.clearComponentCache(id);\n // })\n // );\n // await this.reloadAspects(grouped.false || []);\n }\n }\n\n private async reloadAspects(aspects: AspectDefinition[]) {\n const groups = await this.groupAspectsToLoad(aspects);\n // We need to make sure we load group by group and not in parallel\n await pMapSeries(groups, async (group) => {\n await this.reloadOneAspectsGroup(group);\n });\n }\n\n private async reloadOneAspectsGroup(group: ReloadAspectGroup) {\n const aspects = group.aspects || [];\n if (group.workspace && !group.envOfAspect) {\n aspects.forEach((aspectDef) => {\n if (aspectDef.component?.id) {\n this.workspace.clearComponentCache(aspectDef.component.id);\n }\n });\n }\n const loadedPlugins = compact(\n await Promise.all(\n aspects.map((aspectDef) => {\n const localPath = aspectDef.aspectPath;\n const component = aspectDef.component;\n if (!component) return undefined;\n const plugins = this.aspectLoader.getPlugins(component, localPath);\n if (plugins.has()) {\n return plugins.load(MainRuntime.name);\n }\n })\n )\n );\n await Promise.all(\n loadedPlugins.map((plugin) => {\n const runtime = plugin.getRuntime(MainRuntime);\n return runtime?.provider(undefined, undefined, undefined, this.harmony);\n })\n );\n }\n\n /**\n * This function groups the components to aspects to load into groups.\n * The order of the groups is important, the first group should be loaded first.\n * The order inside the group is not important.\n * The groups are:\n * 1. aspects definitions without components (this should be an empty group, if it's not, we should check why).\n * 2. aspects which are not in the workspace but in the scope / node modules.\n * 3. envs of aspects (which are also aspects)\n * 4. other aspects (the rest)\n * @param aspects\n * @returns\n */\n private async groupAspectsToLoad(aspects: AspectDefinition[]): Promise<Array<ReloadAspectGroup>> {\n const groups = groupBy(aspects, (aspectDef) => {\n if (!aspectDef.component) return 'no-comp';\n if (!this.workspace.hasId(aspectDef.component.id)) return 'scope';\n return 'workspace';\n });\n const workspaceSubGroups = await this.regroupEnvsIdsFromTheList(groups.workspace || []);\n return [\n { comps: false, workspace: false, aspects: groups.noComp || [] },\n { comps: true, workspace: false, aspects: groups.scope || [] },\n { comps: true, workspace: true, envOfAspect: true, aspects: workspaceSubGroups.envOfAspect },\n { comps: true, workspace: true, aspects: workspaceSubGroups.otherAspects },\n ];\n }\n\n private async regroupEnvsIdsFromTheList(aspects: AspectDefinition[]): Promise<Record<string, AspectDefinition[]>> {\n const envsOfAspects = new Set<string>();\n await Promise.all(\n aspects.map(async (aspectDef) => {\n if (!aspectDef.component) return;\n const envId = aspectDef.component ? await this.envs.calculateEnvId(aspectDef.component) : undefined;\n if (envId) {\n envsOfAspects.add(envId.toString());\n }\n })\n );\n const groups = groupBy(aspects, (aspectDef) => {\n const id = aspectDef.component?.id.toString();\n const idWithoutVersion = aspectDef.component?.id.toStringWithoutVersion();\n if ((id && envsOfAspects.has(id)) || (idWithoutVersion && envsOfAspects.has(idWithoutVersion))) {\n return 'envOfAspect';\n }\n return 'otherAspects';\n });\n\n return groups;\n }\n\n private async _getComponentsManifestsAndRootPolicy(\n installer: DependencyInstaller,\n options: GetComponentsAndManifestsOptions & {\n addMissingDeps?: boolean;\n skipUnavailable?: boolean;\n linkedRootDeps: Record<string, string>;\n }\n ): Promise<{ componentsAndManifests: ComponentsAndManifests; mergedRootPolicy: WorkspacePolicy }> {\n const mergedRootPolicy = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicy);\n const componentsAndManifests = await this._getComponentsManifests(installer, mergedRootPolicy, options);\n if (!options?.addMissingDeps) {\n return { componentsAndManifests, mergedRootPolicy };\n }\n const rootDeps = new Set(\n Object.keys({\n ...componentsAndManifests.manifests[this.workspace.path].devDependencies,\n ...componentsAndManifests.manifests[this.workspace.path].dependencies,\n ...options.linkedRootDeps,\n })\n );\n Object.values(omit(componentsAndManifests.manifests, [this.workspace.path])).forEach((manifest) => {\n if ((manifest as ProjectManifest).name) {\n rootDeps.add((manifest as ProjectManifest).name!); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n });\n const addedNewPkgs = await this._addMissingPackagesToRootPolicy(rootDeps, {\n skipUnavailable: options?.skipUnavailable,\n });\n if (!addedNewPkgs) {\n return { componentsAndManifests, mergedRootPolicy };\n }\n const mergedRootPolicyWithMissingDeps = await this.addConfiguredAspectsToWorkspacePolicy();\n await this.addConfiguredGeneratorEnvsToWorkspacePolicy(mergedRootPolicyWithMissingDeps);\n return {\n mergedRootPolicy: mergedRootPolicyWithMissingDeps,\n componentsAndManifests: await this._getComponentsManifests(installer, mergedRootPolicyWithMissingDeps, options),\n };\n }\n\n /**\n * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error\n * message.\n * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles`\n * function is successfully executed, nothing is being returned. If an error occurs during the execution of\n * `writeConfigFiles`, an error message is being returned.\n */\n private async tryWriteConfigFiles(clearCache: boolean) {\n const shouldWrite = this.wsConfigFiles.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return;\n if (clearCache) {\n await this.workspace.clearCache({ skipClearFailedToLoadEnvs: true });\n }\n const { err } = await this.wsConfigFiles.writeConfigFiles({\n clean: true,\n silent: true,\n dedupe: true,\n throw: false,\n });\n\n if (err) {\n this.logger.consoleFailure(\n `failed generating workspace config files, please run \"bit ws-config write\" manually. error: ${err.message}`\n );\n }\n }\n\n private async addConfiguredAspectsToWorkspacePolicy(): Promise<WorkspacePolicy> {\n const rootPolicy = this.dependencyResolver.getWorkspacePolicy();\n const aspectsPackages = await this.workspace.getConfiguredUserAspectsPackages({ externalsOnly: true });\n aspectsPackages.forEach((aspectsPackage) => {\n rootPolicy.add(\n {\n dependencyId: aspectsPackage.packageName,\n value: {\n version: aspectsPackage.version,\n },\n lifecycleType: 'runtime',\n },\n // If it's already exist from the root, take the version from the root policy\n { skipIfExisting: true }\n );\n });\n return rootPolicy;\n }\n\n private async addConfiguredGeneratorEnvsToWorkspacePolicy(rootPolicy: WorkspacePolicy): Promise<void> {\n const configuredEnvs = this.generator.getConfiguredEnvs();\n const resolvedEnvs = compact(\n await Promise.all(\n configuredEnvs.map(async (envIdStr) => {\n if (this.envs.isCoreEnv(envIdStr)) {\n return undefined;\n }\n const parsedId = await this.workspace.resolveComponentId(envIdStr);\n // If we have the env in the workspace, we don't want to install it\n const inWs = await this.workspace.hasId(parsedId);\n if (inWs) {\n return undefined;\n }\n const comps = await this.workspace.importAndGetMany(\n [parsedId],\n `to get the env ${parsedId.toString()} for installation`\n );\n const idWithVersion = await this.workspace.resolveEnvIdWithPotentialVersionForConfig(parsedId);\n const version = idWithVersion.split('@')[1] || '*';\n const packageName = this.dependencyResolver.getPackageName(comps[0]);\n return {\n packageName,\n version,\n };\n })\n )\n );\n\n resolvedEnvs.forEach((env) => {\n rootPolicy.add(\n {\n dependencyId: env.packageName,\n value: {\n version: env.version,\n },\n lifecycleType: 'runtime',\n },\n // If it's already exist from the root, take the version from the root policy\n { skipIfExisting: true }\n );\n });\n }\n\n private async _addMissingPackagesToRootPolicy(\n rootDeps: Set<string>,\n options?: WorkspaceInstallOptions\n ): Promise<boolean> {\n const packages = await this._getMissingPackagesWithoutRootDeps(rootDeps);\n if (packages && packages.length) {\n await this._addPackages(packages, options);\n }\n return packages.length > 0;\n }\n\n private async _getMissingPackagesWithoutRootDeps(rootDeps: Set<string>) {\n const packages = await this._getAllMissingPackages();\n return packages.filter((pkg) => !rootDeps.has(pkg));\n }\n\n private async _getAllMissingPackages(): Promise<string[]> {\n const comps = await this.workspace.list();\n return uniq(\n comps\n .map((comp) => {\n const data = comp.state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs)?.data || [];\n return data.map((d) => d.missingPackages).flat();\n })\n .flat()\n );\n }\n\n private async _getComponentsManifests(\n dependencyInstaller: DependencyInstaller,\n rootPolicy: WorkspacePolicy,\n installOptions: GetComponentsAndManifestsOptions\n ): Promise<ComponentsAndManifests> {\n const componentDirectoryMap = await this.getComponentsDirectory([]);\n const result = await dependencyInstaller.getComponentManifests({\n ...installOptions,\n componentDirectoryMap,\n rootPolicy,\n rootDir: this.workspace.path,\n referenceLocalPackages: this.dependencyResolver.hasRootComponents() && installOptions.nodeLinker === 'isolated',\n });\n let { manifests } = result;\n const { peerOverrides } = result;\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 peerOverrides,\n };\n }\n\n public setOldNonLoadedEnvs() {\n const nonLoadedEnvs = this.envs.getFailedToLoadEnvs();\n const envsWithoutManifest = Array.from(this.dependencyResolver.envsWithoutManifest);\n const oldNonLoadedEnvs = intersection(nonLoadedEnvs, envsWithoutManifest);\n this.oldNonLoadedEnvs = oldNonLoadedEnvs;\n return oldNonLoadedEnvs;\n }\n\n /**\n * This function returns a list of old non-loaded environments names.\n * @returns an array of strings called `oldNonLoadedEnvs`. This array contains the names of environment variables that\n * failed to load as extensions and are also don't have an env.jsonc file.\n * If this list is not empty, then the user might need to run another install to make sure all dependencies resolved\n * correctly\n */\n public getOldNonLoadedEnvs() {\n return this.oldNonLoadedEnvs;\n }\n\n private async _updateRootDirs(rootDirs: string[]) {\n try {\n const existingDirs = await fs.readdir(this.workspace.rootComponentsPath);\n await Promise.all(\n existingDirs.map(async (dirName) => {\n const dirPath = path.join(this.workspace.rootComponentsPath, dirName);\n if (!rootDirs.includes(dirPath)) {\n await fs.remove(dirPath);\n }\n })\n );\n } catch (err: any) {\n if (err.code !== 'ENOENT') throw err;\n }\n await Promise.all(rootDirs.map((dirPath) => fs.mkdir(dirPath, { recursive: true })));\n }\n\n private async _getRootManifests(\n manifests: Record<string, ProjectManifest>\n ): Promise<Record<string, ProjectManifest>> {\n const nonRootManifests = Object.values(manifests).filter(({ name }) => name !== 'workspace');\n const workspaceDeps = this.dependencyResolver.getWorkspaceDepsOfBitRoots(nonRootManifests);\n const envManifests = await this._getEnvManifests(workspaceDeps);\n const appManifests = await this._getAppManifests(manifests, workspaceDeps);\n return {\n ...envManifests,\n ...appManifests,\n };\n }\n\n private async _getEnvManifests(workspaceDeps: Record<string, string>): Promise<Record<string, ProjectManifest>> {\n const envs = await this._getAllUsedEnvIds();\n return Object.fromEntries(\n await Promise.all(\n envs.map(async (envId) => {\n return [\n await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, envId),\n {\n dependencies: {\n ...(await this._getEnvDependencies(envId, workspaceDeps)),\n ...workspaceDeps,\n ...(await this._getEnvPackage(envId)),\n },\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n );\n }\n\n /**\n * Get the env's own peer dependencies from its policy (env.jsonc).\n * Resolves \"+\" version placeholders using workspaceDeps.\n */\n private async _getEnvDependencies(\n envId: ComponentID,\n workspaceDeps: Record<string, string>\n ): Promise<Record<string, string>> {\n const policy = await this.dependencyResolver.getEnvPolicyFromEnvId(envId);\n if (!policy) return {};\n\n return Object.fromEntries(\n policy.selfPolicy.entries\n .filter(({ force, value }) => force && value.version !== '-')\n .map(({ dependencyId, value }) => {\n let version = value.version;\n // Resolve \"+\" version placeholders using workspace dependencies\n // Similar to WorkspaceManifest._resolvePlusVersions\n if (version === '+') {\n version = workspaceDeps[dependencyId] || '*';\n }\n return [dependencyId, version];\n })\n );\n }\n\n /**\n * Return the package name of the env with its version.\n * (only if the env is not a core env and is not in the workspace)\n * @param envId\n * @returns\n */\n private async _getEnvPackage(envId: ComponentID): Promise<Record<string, string> | undefined> {\n if (this.envs.isCoreEnv(envId.toStringWithoutVersion())) return undefined;\n const inWs = await this.workspace.hasId(envId);\n if (inWs) return undefined;\n const envComponent = await this.envs.getEnvComponentByEnvId(envId.toString(), envId.toString());\n if (!envComponent) return undefined;\n const packageName = this.dependencyResolver.getPackageName(envComponent);\n const version = envId.version;\n const finalVersion = snapToSemver(version as string);\n return { [packageName]: finalVersion };\n }\n\n private async _getAppManifests(\n manifests: Record<string, ProjectManifest>,\n workspaceDeps: Record<string, string>\n ): Promise<Record<string, ProjectManifest>> {\n return Object.fromEntries(\n compact(\n await Promise.all(\n (await this.app.listAppsComponents()).map(async (app) => {\n const appPkgName = this.dependencyResolver.getPackageName(app);\n const appManifest = Object.values(manifests).find(({ name }) => name === appPkgName);\n if (!appManifest) return null;\n const envId = await this.envs.calculateEnvId(app);\n const appWorkspaceDeps = await this._getAppWorkspaceDeps(app, workspaceDeps);\n return [\n await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, app.id),\n {\n ...omit(appManifest, ['name', 'version']),\n dependencies: {\n ...(await this._getEnvDependencies(envId, workspaceDeps)),\n ...appManifest.dependencies,\n ...appWorkspaceDeps,\n },\n installConfig: {\n hoistingLimits: 'workspaces',\n },\n },\n ];\n })\n )\n )\n );\n }\n\n private async _getAppWorkspaceDeps(\n app: Component,\n workspaceDeps: Record<string, string>\n ): Promise<Record<string, string>> {\n const workspaceComponents = await this.workspace.list();\n const workspaceComponentsById = new Map(\n workspaceComponents.map((component) => [component.id.toStringWithoutVersion(), component])\n );\n const appWorkspaceDeps: Record<string, string> = {};\n const visited = new Set<string>();\n\n const addComponent = (component: Component) => {\n const componentId = component.id.toStringWithoutVersion();\n if (visited.has(componentId)) return;\n visited.add(componentId);\n\n const packageName = this.dependencyResolver.getPackageName(component);\n if (workspaceDeps[packageName]) {\n appWorkspaceDeps[packageName] = workspaceDeps[packageName];\n }\n\n for (const dep of this.dependencyResolver.getComponentDependencies(component)) {\n const depComponent = workspaceComponentsById.get(dep.componentId.toStringWithoutVersion());\n if (depComponent) {\n addComponent(depComponent);\n } else if (workspaceDeps[dep.packageName]) {\n appWorkspaceDeps[dep.packageName] = workspaceDeps[dep.packageName];\n }\n }\n };\n\n addComponent(app);\n return appWorkspaceDeps;\n }\n\n /**\n * Update env.jsonc policy files for environment components based on a list of outdated packages.\n * @param outdatedPkgs - List of outdated packages.\n */\n async updateEnvJsoncPolicies(outdatedPkgs: MergedOutdatedPkg[]): Promise<void> {\n // Group packages by componentId, skipping those without one\n const updatesByComponentId = new Map<string, MergedOutdatedPkg[]>();\n for (const pkg of outdatedPkgs) {\n if (!pkg.componentId) continue;\n const key = pkg.componentId.toString();\n const existing = updatesByComponentId.get(key);\n if (existing) {\n existing.push(pkg);\n } else {\n updatesByComponentId.set(key, [pkg]);\n }\n }\n\n await Promise.all(\n Array.from(updatesByComponentId.values()).map(async (pkgs) => {\n const componentId = pkgs[0].componentId!;\n const component = await this.workspace.get(componentId);\n const envJsoncFile = component.filesystem.files.find((file) => file.relative === 'env.jsonc');\n if (!envJsoncFile) return;\n\n const envJsoncContent = envJsoncFile.contents.toString();\n const updatedContent = updateJsoncPreservingFormatting(envJsoncContent, (envJsonc: EnvJsonc): EnvJsonc => {\n pkgs.forEach((pkg) => {\n let field: keyof EnvPolicyEnvJsoncConfigObject | undefined;\n if (pkg.targetField === 'devDependencies') field = 'dev';\n if (pkg.targetField === 'dependencies') field = 'runtime';\n if (pkg.targetField === 'peerDependencies') field = 'peers';\n\n if (!field) return;\n\n const deps = envJsonc.policy?.[field];\n if (!Array.isArray(deps)) return;\n\n const depEntry = deps.find(({ name }) => name === pkg.name);\n if (depEntry) {\n depEntry.version = pkg.latestRange;\n if (field === 'peers' && depEntry.supportedRange) {\n if (!semver.intersects(pkg.latestRange, depEntry.supportedRange)) {\n depEntry.supportedRange = `${depEntry.supportedRange} || ${pkg.latestRange}`;\n }\n }\n }\n });\n return envJsonc;\n });\n\n const absPath = path.join(this.workspace.componentDir(component.id), 'env.jsonc');\n await fs.writeFile(absPath, updatedContent);\n })\n );\n }\n\n private async _getAllUsedEnvIds(): Promise<ComponentID[]> {\n const envs = new Map<string, ComponentID>();\n const components = await this.workspace.list();\n await pMapSeries(components, async (component) => {\n const envId = await this.envs.calculateEnvId(component);\n envs.set(envId.toString(), envId);\n });\n return Array.from(envs.values());\n }\n\n /**\n * Updates out-of-date dependencies in the workspace.\n *\n * @param options.all {Boolean} updates all outdated dependencies without showing a prompt.\n */\n async updateDependencies(options: {\n forceVersionBump?: 'major' | 'minor' | 'patch' | 'compatible';\n patterns?: string[];\n all: boolean;\n }): Promise<ComponentMap<string> | null> {\n const componentPolicies = await this.workspace.getComponentsWithDependencyPolicies();\n const variantPoliciesByPatterns = this.workspace.variantPatternsToDepPolicesDict();\n const components = await this.workspace.list();\n const outdatedPkgs = await this.dependencyResolver.getOutdatedPkgsFromPolicies({\n rootDir: this.workspace.path,\n variantPoliciesByPatterns,\n componentPolicies,\n components,\n patterns: options.patterns,\n forceVersionBump: options.forceVersionBump,\n });\n if (!outdatedPkgs || !outdatedPkgs.length) {\n this.logger.consoleFailure('No dependencies found that match the patterns');\n return null;\n }\n let outdatedPkgsToUpdate: MergedOutdatedPkg[];\n if (options.all) {\n outdatedPkgsToUpdate = outdatedPkgs;\n } else {\n this.logger.off();\n outdatedPkgsToUpdate = await pickOutdatedPkgs(outdatedPkgs);\n this.logger.on();\n }\n if (outdatedPkgsToUpdate.length === 0) {\n this.logger.consoleSuccess('No outdated dependencies found');\n if (options.forceVersionBump === 'compatible') {\n this.logger.console(\n \"If you want to find new versions that don't match the current version ranges, retry with the --latest flag\"\n );\n }\n return null;\n }\n\n const envJsoncUpdates: MergedOutdatedPkg[] = [];\n const policiesUpdates: MergedOutdatedPkg[] = [];\n for (const outdatedPkg of outdatedPkgsToUpdate) {\n if (outdatedPkg.source === 'env-jsonc') {\n envJsoncUpdates.push(outdatedPkg);\n } else {\n policiesUpdates.push(outdatedPkg);\n }\n }\n\n const { updatedVariants, updatedComponents } = this.dependencyResolver.applyUpdates(policiesUpdates, {\n variantPoliciesByPatterns,\n });\n await Promise.all([\n this.updateEnvJsoncPolicies(envJsoncUpdates),\n this._updateVariantsPolicies(updatedVariants),\n this._updateComponentsConfig(updatedComponents),\n ]);\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 _updateComponentsConfig(updatedComponents: UpdatedComponent[]) {\n if (updatedComponents.length === 0) return;\n await Promise.all(\n updatedComponents.map(({ componentId, config }) => {\n return this.workspace.addSpecificComponentConfig(componentId, DependencyResolverAspect.id, config, {\n shouldMergeWithExisting: true,\n shouldMergeWithPrevious: true,\n });\n })\n );\n await this.workspace.bitMap.write('update (dependencies)');\n }\n\n private async _updateVariantsPolicies(updateVariantPolicies: string[]) {\n const variantPatterns = this.variants.raw();\n for (const variantPattern of updateVariantPolicies) {\n this.variants.setExtension(\n variantPattern,\n DependencyResolverAspect.id,\n variantPatterns[variantPattern][DependencyResolverAspect.id],\n { overrideExisting: true }\n );\n }\n await this.dependencyResolver.persistConfig('update dependencies');\n }\n\n /**\n * Uninstall the specified packages from dependencies.\n *\n * @param {string[]} the list of packages that should be removed from dependencies.\n */\n async uninstallDependencies(packages: string[]) {\n this.dependencyResolver.removeFromRootPolicy(packages);\n await this.dependencyResolver.persistConfig('uninstall dependencies');\n return this._installModules({ dedupe: true });\n }\n\n /**\n * This function returns all the locations of the external links that should be created inside node_modules.\n * This information may then be passed to the package manager, which will create the links on its own.\n */\n async calculateLinks(\n options: WorkspaceLinkOptions = {}\n ): Promise<{ linkResults: WorkspaceLinkResults; linkedRootDeps: Record<string, string> }> {\n await pMapSeries(this.preLinkSlot.values(), (fn) => fn(options)); // import objects if not disabled in options\n const compDirMap = await this.getComponentsDirectory([]);\n const linker = this.dependencyResolver.getLinker({\n rootDir: this.workspace.path,\n linkingOptions: options,\n });\n const { linkResults: res, linkedRootDeps } = await linker.calculateLinkedDeps(\n this.workspace.path,\n compDirMap,\n options\n );\n const workspaceRes = res as WorkspaceLinkResults;\n\n const legacyResults = await this.linkCodemods(compDirMap, options);\n workspaceRes.legacyLinkResults = legacyResults.linksResults;\n workspaceRes.legacyLinkCodemodResults = legacyResults.codemodResults;\n\n if (this.dependencyResolver.hasRootComponents() && options.linkToBitRoots) {\n await this._linkAllComponentsToBitRoots(compDirMap);\n }\n return { linkResults: res, linkedRootDeps };\n }\n\n /**\n * see DependencyLinker.syncCoreAspectLinksForEnvs.\n *\n * `linkCoreAspects` is only turned off by a workspace that authors the core aspects, since it must\n * use the ones it builds rather than the running bit's. That opt-out is also exactly what leaves\n * the envs' phantom require unsatisfied until those sources are compiled, so there is nothing to\n * bridge in any other workspace - where this returns on the config read alone.\n */\n private async syncCoreAspectLinksForEnvs(compDirMap: ComponentMap<string>) {\n if (this.dependencyResolver.linkCoreAspects()) return;\n const linker = this.dependencyResolver.getLinker({ rootDir: this.workspace.path });\n await linker.syncCoreAspectLinksForEnvs(\n this.workspace.path,\n compDirMap.toArray().map(([component]) => component.id)\n );\n }\n\n async linkCodemods(compDirMap: ComponentMap<string>, options?: { rewire?: boolean }) {\n const bitIds = compDirMap.toArray().map(([component]) => component.id);\n return linkToNodeModulesWithCodemod(this.workspace, bitIds, options?.rewire ?? false);\n }\n\n async link(options: WorkspaceLinkOptions = {}): Promise<WorkspaceLinkResults> {\n const { linkResults, linkedRootDeps } = await this.calculateLinks(options);\n await createLinks(options.linkToDir ?? this.workspace.path, linkedRootDeps, {\n avoidHardLink: true,\n skipIfSymlinkValid: true,\n });\n return linkResults;\n }\n\n private async _linkAllComponentsToBitRoots(compDirMap: ComponentMap<string>) {\n const envs = await this._getAllUsedEnvIds();\n const apps = (await this.app.listAppsComponents()).map((component) => component.id);\n await Promise.all(\n [...envs, ...apps].map(async (id) => {\n const dir = await this.getRootComponentDirByRootId(this.workspace.rootComponentsPath, id);\n await fs.mkdirp(dir);\n })\n );\n await linkPkgsToRootComponents(\n {\n rootComponentsPath: this.workspace.rootComponentsPath,\n workspacePath: this.workspace.path,\n },\n compDirMap.components.map((component) => this.dependencyResolver.getPackageName(component))\n );\n }\n\n private async getRootComponentDirByRootId(rootComponentsPath: string, rootComponentId: ComponentID): Promise<string> {\n // Root directories for local envs and apps are created without their version number.\n // This is done in order to avoid changes to the lockfile after such components are tagged.\n const id = this.workspace.hasId(rootComponentId)\n ? rootComponentId.toStringWithoutVersion()\n : rootComponentId.toString();\n return getRootComponentDir(rootComponentsPath, id);\n }\n\n /**\n * Generate a filter to pass to the installer\n * This will filter deps which are come from remotes which defined in scope.json\n * those components comes from local remotes, usually doesn't have a package in a registry\n * so no reason to try to install them (it will fail)\n */\n private async generateFilterFnForDepsFromLocalRemote() {\n const remotes = await this.workspace.scope.getRemoteScopes();\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 // We intentionally use loadSeedersAsAspects: false here to avoid loading env aspects during installation.\n // While this causes issues with --add-missing-deps for custom detectors (see PR #10044),\n // loading seeders during installation causes regressions where lane imports fail with errors like:\n // \"Cannot find module '/private/tmp/a27cc147/node_modules/@teambit/node.envs.node-babel-mocha/dist/node-babel-mocha.bit-env.js'\"\n // The env aspect files are not yet available during the initial installation phase.\n const components = ids.length\n ? await this.workspace.getMany(ids)\n : await this.workspace.list(undefined, { loadSeedersAsAspects: false });\n return ComponentMap.as<string>(components, (component) => this.workspace.componentDir(component.id));\n }\n\n private async onRootAspectAddedSubscriber(_aspectId: ComponentID, inWs: boolean): Promise<void> {\n if (!inWs) {\n await this.install();\n }\n }\n private async onAspectsResolveSubscriber(aspectComponents: Component[]): Promise<void> {\n let needLink = false;\n let needInstall = false;\n const promises = aspectComponents.map(async (aspectComponent) => {\n const aspectIdStr = aspectComponent.id.toString();\n if (this.visitedAspects.has(aspectIdStr)) return;\n\n this.visitedAspects.add(aspectIdStr);\n const packagePath = await this.workspace.getComponentPackagePath(aspectComponent);\n const exists = await pathExists(packagePath);\n if (!exists) {\n const inWs = await this.workspace.hasId(aspectComponent.id);\n if (inWs) {\n needLink = true;\n } else {\n needInstall = true;\n }\n }\n });\n await Promise.all(promises);\n if (needInstall) {\n await this.install();\n return;\n }\n if (needLink) {\n await this.link();\n }\n }\n\n async onComponentChange(component: Component) {\n const isEnv = this.envs.isEnv(component);\n if (isEnv) {\n await this.reloadEnvs([component.id]);\n }\n }\n\n static slots = [Slot.withType<PreLinkSlot>(), Slot.withType<PreInstallSlot>(), Slot.withType<PostInstallSlot>()];\n static dependencies = [\n DependencyResolverAspect,\n WorkspaceAspect,\n LoggerAspect,\n VariantsAspect,\n CLIAspect,\n CompilerAspect,\n IssuesAspect,\n EnvsAspect,\n ApplicationAspect,\n IpcEventsAspect,\n GeneratorAspect,\n WorkspaceConfigFilesAspect,\n AspectLoaderAspect,\n BundlerAspect,\n UIAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [\n dependencyResolver,\n workspace,\n loggerExt,\n variants,\n cli,\n compiler,\n issues,\n envs,\n app,\n ipcEvents,\n generator,\n wsConfigFiles,\n aspectLoader,\n bundler,\n ui,\n ]: [\n DependencyResolverMain,\n Workspace,\n LoggerMain,\n VariantsMain,\n CLIMain,\n CompilerMain,\n IssuesMain,\n EnvsMain,\n ApplicationMain,\n IpcEventsMain,\n GeneratorMain,\n WorkspaceConfigFilesMain,\n AspectLoaderMain,\n BundlerMain,\n UiMain,\n ],\n _,\n [preLinkSlot, preInstallSlot, postInstallSlot]: [PreLinkSlot, PreInstallSlot, PostInstallSlot],\n harmony: Harmony\n ) {\n const logger = loggerExt.createLogger(InstallAspect.id);\n const installExt = new InstallMain(\n dependencyResolver,\n logger,\n workspace,\n variants,\n compiler,\n envs,\n wsConfigFiles,\n aspectLoader,\n app,\n generator,\n preLinkSlot,\n preInstallSlot,\n postInstallSlot,\n ipcEvents,\n harmony\n );\n ipcEvents.registerGotEventSlot(async (eventName) => {\n if (eventName !== 'onPostInstall') return;\n logger.debug('got onPostInstall event, clear workspace and all components cache');\n await workspace.clearCache();\n await installExt.reloadMovedEnvs();\n await pMapSeries(postInstallSlot.values(), (fn) => fn());\n });\n if (issues) {\n issues.registerAddComponentsIssues(installExt.addDuplicateComponentAndPackageIssue.bind(installExt));\n }\n generator.registerOnComponentCreate(installExt.onComponentCreate.bind(installExt));\n const commands: CommandList = [\n new InstallCmd(installExt, workspace, logger),\n new UninstallCmd(installExt),\n new UpdateCmd(installExt),\n new LinkCommand(installExt, workspace, logger),\n ];\n // For now do not automate installation during aspect resolving\n // workspace.registerOnAspectsResolve(installExt.onAspectsResolveSubscriber.bind(installExt));\n if (workspace) {\n workspace.registerOnRootAspectAdded(installExt.onRootAspectAddedSubscriber.bind(installExt));\n workspace.registerOnComponentChange(installExt.onComponentChange.bind(installExt));\n }\n\n installExt.registerPostInstall(async () => {\n if (!ui.getUIServer()) {\n return;\n }\n const components = await workspace.list();\n await bundler.addNewDevServers(components);\n });\n cli.register(...commands);\n return installExt;\n }\n\n private async handleExternalPackageManagerPrompt(): Promise<void> {\n this.logger.clearStatusLine();\n\n // Display a colorful and informative message\n this.logger.console(chalk.cyan('\\n📦 External Package Manager Mode Detected'));\n this.logger.console(chalk.gray('Your workspace is configured to use external package managers (npm, yarn, pnpm).'));\n this.logger.console(chalk.gray('Running \"bit install\" is not available in this mode.\\n'));\n\n const question = chalk.bold(\n \"Would you like to switch to Bit's package manager for dependency management? [yes(y)/no(n)]\"\n );\n const shouldSwitchToBitPM = await yesno({ question });\n\n if (!shouldSwitchToBitPM) {\n throw new Error(\n 'External package manager mode is enabled. Please use your preferred package manager (npm, yarn, pnpm) to install dependencies instead of \"bit install\".'\n );\n }\n\n // User chose to switch to Bit's package manager\n await this.disableExternalPackageManagerMode();\n }\n\n private async disableExternalPackageManagerMode(): Promise<void> {\n try {\n // Get the workspace config\n const workspaceConfig = this.workspace.getWorkspaceConfig();\n\n // Remove externalPackageManager property and restore default settings\n const depResolverExt = workspaceConfig.extensions.findExtension('teambit.dependencies/dependency-resolver');\n if (depResolverExt?.config.externalPackageManager) {\n delete depResolverExt.config.externalPackageManager;\n }\n if (depResolverExt) {\n depResolverExt.config.rootComponent = true;\n }\n\n // Enable workspace config write\n const workspaceConfigFilesExt = workspaceConfig.extensions.findExtension(\n 'teambit.workspace/workspace-config-files'\n );\n if (workspaceConfigFilesExt) {\n workspaceConfigFilesExt.config.enableWorkspaceConfigWrite = true;\n }\n\n // Remove postInstall script from package.json (preserve user's existing scripts)\n await this.removePostInstallScript();\n\n // Write the updated config\n await workspaceConfig.write();\n\n this.logger.console(chalk.green('✓ Successfully switched to Bit package manager mode'));\n } catch (error) {\n this.logger.console(chalk.red('✗ Failed to switch to Bit package manager mode'));\n throw error;\n }\n }\n\n private async removePostInstallScript(): Promise<void> {\n try {\n const packageJsonFile = await PackageJsonFile.load(this.workspace.path);\n\n if (!packageJsonFile.fileExist) {\n return;\n }\n\n // Only remove our specific postInstall script, preserve user's custom scripts\n if (packageJsonFile.packageJsonObject.scripts?.postinstall === EXTERNAL_PM_POSTINSTALL_SCRIPT) {\n delete packageJsonFile.packageJsonObject.scripts.postinstall;\n\n // Clean up empty scripts object\n if (Object.keys(packageJsonFile.packageJsonObject.scripts).length === 0) {\n delete packageJsonFile.packageJsonObject.scripts;\n }\n\n await packageJsonFile.write();\n }\n } catch {\n this.logger.console(chalk.yellow('⚠ Warning: Could not remove postInstall script from package.json'));\n }\n }\n}\n\ntype ComponentsAndManifests = {\n componentDirectoryMap: ComponentMap<string>;\n manifests: Record<string, ProjectManifest>;\n peerOverrides: Record<string, string>;\n};\n\nfunction hasComponentsFromWorkspaceInMissingDeps({\n componentDirectoryMap,\n manifests,\n}: ComponentsAndManifests): boolean {\n const missingDeps = new Set<string>(\n componentDirectoryMap\n .toArray()\n .map(([{ state }]) => {\n const issue = state.issues.getIssue(IssuesClasses.MissingPackagesDependenciesOnFs);\n if (!issue) return [];\n return issue.data.map((d) => d.missingPackages).flat();\n })\n .flat()\n );\n return Object.values(manifests).some(({ name }) => name && missingDeps.has(name));\n}\n\nInstallAspect.addRuntime(InstallMain);\n\nexport default InstallMain;\n\nfunction manifestsHash(manifests: Record<string, ProjectManifest>): string {\n // We don't care if the type of the dependency changes as it doesn't change the node_modules structure\n const depsByProjectPaths = mapValues(manifests, (manifest) => ({\n ...manifest.devDependencies,\n ...manifest.dependencies,\n }));\n return hash(depsByProjectPaths);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
1
  export { DependencyTypeNotSupportedInPolicy } from './dependency-type-not-supported-in-policy';
2
2
  export { UnpublishedComponentDependency } from './unpublished-component-dependency';
3
3
  export type { UnpublishedSnapDependency } from './unpublished-component-dependency';
4
+ export { RestoreNotSupportedByPackageManager } from './restore-not-supported-by-package-manager';
@@ -0,0 +1,7 @@
1
+ import { BitError } from '@teambit/bit-error';
2
+
3
+ export class RestoreNotSupportedByPackageManager extends BitError {
4
+ constructor(packageManagerName: string) {
5
+ super(`the --restore option is not supported by package manager "${packageManagerName}"`);
6
+ }
7
+ }
package/install.cmd.tsx CHANGED
@@ -22,6 +22,7 @@ type InstallCmdOptions = {
22
22
  noOptional: boolean;
23
23
  recurringInstall: boolean;
24
24
  lockfileOnly: boolean;
25
+ restore: boolean;
25
26
  allowScripts?: string;
26
27
  disallowScripts?: string;
27
28
  };
@@ -69,6 +70,11 @@ automatically imports components, compiles components, links to node_modules, an
69
70
  ],
70
71
  ['', 'no-optional [noOptional]', 'do not install optional dependencies (works with pnpm only)'],
71
72
  ['', 'lockfile-only', 'dependencies are not written to node_modules. Only the lockfile is updated'],
73
+ [
74
+ '',
75
+ 'restore',
76
+ "reconstruct the lockfile from each workspace component's stored dependency graph before installing",
77
+ ],
72
78
  [
73
79
  '',
74
80
  'allow-scripts [pkgNames]',
@@ -142,6 +148,7 @@ automatically imports components, compiles components, links to node_modules, an
142
148
  updateAll: options.update,
143
149
  recurringInstall: options.recurringInstall,
144
150
  lockfileOnly: options.lockfileOnly,
151
+ restoreFromDependenciesGraph: options.restore,
145
152
  showExternalPackageManagerPrompt: true,
146
153
  allowScripts: this._parseAllowScriptsFlags(options.allowScripts, options.disallowScripts),
147
154
  };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/install",
3
- "version": "1.0.1146",
3
+ "version": "1.0.1148",
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": "1.0.1146"
9
+ "version": "1.0.1148"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -24,35 +24,35 @@
24
24
  "enquirer": "2.4.1",
25
25
  "table": "6.7.3",
26
26
  "@teambit/harmony": "0.4.12",
27
- "@teambit/cli": "0.0.1379",
28
- "@teambit/logger": "0.0.1472",
29
27
  "@teambit/component-issues": "0.0.184",
30
28
  "@teambit/component-package-version": "0.0.461",
31
29
  "@teambit/component-version": "1.0.4",
32
- "@teambit/component.sources": "0.0.203",
33
30
  "@teambit/dependencies.fs.linked-dependencies": "0.0.72",
34
- "@teambit/pkg.modules.component-package-name": "0.0.158",
35
31
  "@teambit/toolbox.json.jsonc-utils": "0.0.13",
36
- "@teambit/variants": "0.0.1647",
37
- "@teambit/workspace.modules.node-modules-linker": "0.0.382",
38
32
  "@teambit/workspace.root-components": "1.0.1",
39
33
  "@teambit/bit-error": "0.0.404",
40
34
  "@teambit/toolbox.time.time-format": "0.0.502",
41
- "@teambit/dependency-resolver": "1.0.1146",
42
- "@teambit/workspace": "1.0.1146",
43
- "@teambit/application": "1.0.1146",
44
- "@teambit/aspect-loader": "1.0.1146",
45
- "@teambit/bundler": "1.0.1146",
46
- "@teambit/compiler": "1.0.1146",
47
- "@teambit/component": "1.0.1146",
48
- "@teambit/envs": "1.0.1146",
49
- "@teambit/generator": "1.0.1147",
50
- "@teambit/host-initializer": "0.0.859",
51
- "@teambit/ipc-events": "1.0.1146",
52
- "@teambit/issues": "1.0.1146",
53
- "@teambit/objects": "0.0.653",
54
- "@teambit/ui": "1.0.1146",
55
- "@teambit/workspace-config-files": "1.0.1146"
35
+ "@teambit/cli": "0.0.1382",
36
+ "@teambit/dependency-resolver": "1.0.1148",
37
+ "@teambit/logger": "0.0.1475",
38
+ "@teambit/workspace": "1.0.1148",
39
+ "@teambit/application": "1.0.1148",
40
+ "@teambit/aspect-loader": "1.0.1148",
41
+ "@teambit/bundler": "1.0.1148",
42
+ "@teambit/compiler": "1.0.1148",
43
+ "@teambit/component.sources": "0.0.206",
44
+ "@teambit/component": "1.0.1148",
45
+ "@teambit/envs": "1.0.1148",
46
+ "@teambit/generator": "1.0.1149",
47
+ "@teambit/host-initializer": "0.0.861",
48
+ "@teambit/ipc-events": "1.0.1148",
49
+ "@teambit/issues": "1.0.1148",
50
+ "@teambit/objects": "0.0.655",
51
+ "@teambit/pkg.modules.component-package-name": "0.0.161",
52
+ "@teambit/ui": "1.0.1148",
53
+ "@teambit/variants": "0.0.1650",
54
+ "@teambit/workspace-config-files": "1.0.1148",
55
+ "@teambit/workspace.modules.node-modules-linker": "0.0.385"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@types/fs-extra": "9.0.7",