@teambit/pnpm 1.0.1322 → 1.0.1324
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lockfile-deps-graph-converter.d.ts +21 -2
- package/dist/lockfile-deps-graph-converter.js +261 -18
- package/dist/lockfile-deps-graph-converter.js.map +1 -1
- package/dist/lockfile-deps-graph-converter.restore.spec.d.ts +1 -0
- package/dist/lockfile-deps-graph-converter.restore.spec.js +687 -0
- package/dist/lockfile-deps-graph-converter.restore.spec.js.map +1 -0
- package/dist/lockfile-deps-graph-converter.spec.js +33 -16
- package/dist/lockfile-deps-graph-converter.spec.js.map +1 -1
- package/dist/pnpm.package-manager.d.ts +7 -0
- package/dist/pnpm.package-manager.js +31 -6
- package/dist/pnpm.package-manager.js.map +1 -1
- package/dist/pnpm.package-manager.spec.js +197 -0
- package/dist/pnpm.package-manager.spec.js.map +1 -1
- package/dist/{preview-1793638233324.js → preview-1793647503939.js} +2 -2
- package/package.json +6 -6
|
@@ -43,6 +43,8 @@ export declare class PnpmPackageManager implements PackageManager {
|
|
|
43
43
|
registries?: Registries;
|
|
44
44
|
proxyConfig?: PackageManagerProxyConfig;
|
|
45
45
|
networkConfig?: PackageManagerNetworkConfig;
|
|
46
|
+
/** The install's `excludeLinksFromLockfile`, recorded in the restored lockfile's settings. */
|
|
47
|
+
excludeLinksFromLockfile?: boolean;
|
|
46
48
|
}): Promise<void>;
|
|
47
49
|
install({ rootDir, manifests }: InstallationContext, installOptions?: PackageManagerInstallOptions): Promise<InstallResult>;
|
|
48
50
|
getPeerDependencyIssues(rootDir: string, manifests: Record<string, ProjectManifest>, installOptions?: PackageManagerInstallOptions): Promise<PeerDependencyIssuesByProjects>;
|
|
@@ -79,3 +81,8 @@ export declare class PnpmPackageManager implements PackageManager {
|
|
|
79
81
|
calcDependenciesGraph(opts: CalcDepsGraphOptions): Promise<void>;
|
|
80
82
|
}
|
|
81
83
|
export declare function mergeGraphLockfileIntoExisting(existing: LockfileFile, graph: LockfileFile): LockfileFile;
|
|
84
|
+
/**
|
|
85
|
+
* Record the install's `excludeLinksFromLockfile` in a lockfile's settings,
|
|
86
|
+
* when it records settings at all. See `dependenciesGraphToLockfile`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function applyInstallLinkSetting(lockfile: LockfileFile, excludeLinksFromLockfile?: boolean): void;
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.PnpmPackageManager = void 0;
|
|
7
|
+
exports.applyInstallLinkSetting = applyInstallLinkSetting;
|
|
7
8
|
exports.mergeGraphLockfileIntoExisting = mergeGraphLockfileIntoExisting;
|
|
8
9
|
function _dependencyResolver() {
|
|
9
10
|
const data = require("@teambit/dependency-resolver");
|
|
@@ -136,7 +137,10 @@ class PnpmPackageManager {
|
|
|
136
137
|
registries
|
|
137
138
|
}));
|
|
138
139
|
const graphLockfile = await (0, _lockfileDepsGraphConverter().convertGraphToLockfile)(dependenciesGraph, _objectSpread(_objectSpread({}, opts), {}, {
|
|
139
|
-
resolve
|
|
140
|
+
resolve,
|
|
141
|
+
onComponentPkgDropped: (pkgId, reason) => {
|
|
142
|
+
this.logger.debug(`the lockfile restored from the dependencies graph leaves out ${pkgId}: ${reason}`);
|
|
143
|
+
}
|
|
140
144
|
}));
|
|
141
145
|
const nodeApi = loadNodeApi();
|
|
142
146
|
// Merge the graph-derived subset into any existing wanted lockfile rather than
|
|
@@ -147,6 +151,14 @@ class PnpmPackageManager {
|
|
|
147
151
|
const existingLockfile = await nodeApi.readLockfile({
|
|
148
152
|
dir: opts.rootDir
|
|
149
153
|
});
|
|
154
|
+
// Whether the lockfile lists `link:` dependencies is the install's choice,
|
|
155
|
+
// not the resolution's. The graph carries the setting of the workspace it
|
|
156
|
+
// was saved in, which excludes links, and an install that includes them
|
|
157
|
+
// (fusepm does) would reject the restored lockfile over that alone. Both
|
|
158
|
+
// sides take the install's value before the merge compares their settings,
|
|
159
|
+
// so a difference in it alone does not cost the settings block.
|
|
160
|
+
applyInstallLinkSetting(graphLockfile, opts.excludeLinksFromLockfile);
|
|
161
|
+
if (existingLockfile) applyInstallLinkSetting(existingLockfile, opts.excludeLinksFromLockfile);
|
|
150
162
|
const mergedLockfile = existingLockfile ? mergeGraphLockfileIntoExisting(existingLockfile, graphLockfile) : graphLockfile;
|
|
151
163
|
Object.assign(mergedLockfile, {
|
|
152
164
|
bit: _objectSpread(_objectSpread({}, mergedLockfile.bit), {}, {
|
|
@@ -200,7 +212,8 @@ class PnpmPackageManager {
|
|
|
200
212
|
registries,
|
|
201
213
|
proxyConfig,
|
|
202
214
|
networkConfig,
|
|
203
|
-
cacheDir: config.cacheDir
|
|
215
|
+
cacheDir: config.cacheDir,
|
|
216
|
+
excludeLinksFromLockfile: installOptions.excludeLinksFromLockfile ?? true
|
|
204
217
|
});
|
|
205
218
|
} catch (error) {
|
|
206
219
|
this.logger.error(error.message);
|
|
@@ -663,6 +676,8 @@ function mergeGraphLockfileIntoExisting(existing, graph) {
|
|
|
663
676
|
});
|
|
664
677
|
}
|
|
665
678
|
pruneUnreachableLockfileEntries(merged);
|
|
679
|
+
// The merged importers decide which entries only optional edges reach.
|
|
680
|
+
(0, _lockfileDepsGraphConverter().markOptionalOnlyEntries)(merged);
|
|
666
681
|
return merged;
|
|
667
682
|
}
|
|
668
683
|
function hasResolutions(lockfile) {
|
|
@@ -683,6 +698,16 @@ function mergeEntryRecords(existing, graph) {
|
|
|
683
698
|
}
|
|
684
699
|
return merged;
|
|
685
700
|
}
|
|
701
|
+
|
|
702
|
+
/**
|
|
703
|
+
* Record the install's `excludeLinksFromLockfile` in a lockfile's settings,
|
|
704
|
+
* when it records settings at all. See `dependenciesGraphToLockfile`.
|
|
705
|
+
*/
|
|
706
|
+
function applyInstallLinkSetting(lockfile, excludeLinksFromLockfile) {
|
|
707
|
+
if (lockfile.settings && excludeLinksFromLockfile != null) {
|
|
708
|
+
lockfile.settings.excludeLinksFromLockfile = excludeLinksFromLockfile;
|
|
709
|
+
}
|
|
710
|
+
}
|
|
686
711
|
function pruneUnreachableLockfileEntries(lockfile) {
|
|
687
712
|
const reachablePackages = new Set();
|
|
688
713
|
const reachableSnapshots = new Set();
|
|
@@ -700,8 +725,8 @@ function pruneUnreachableLockfileEntries(lockfile) {
|
|
|
700
725
|
if (!snapshot) continue;
|
|
701
726
|
for (const depType of ['dependencies', 'optionalDependencies']) {
|
|
702
727
|
for (const [name, ref] of Object.entries(snapshot[depType] ?? {})) {
|
|
703
|
-
|
|
704
|
-
stack.push(
|
|
728
|
+
const subDepPath = (0, _lockfileDepsGraphConverter().refToDepPath)(ref, name);
|
|
729
|
+
if (subDepPath != null) stack.push(subDepPath);
|
|
705
730
|
}
|
|
706
731
|
}
|
|
707
732
|
}
|
|
@@ -710,8 +735,8 @@ function pruneUnreachableLockfileEntries(lockfile) {
|
|
|
710
735
|
for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies']) {
|
|
711
736
|
for (const [name, dep] of Object.entries(importer[depType] ?? {})) {
|
|
712
737
|
const version = typeof dep === 'string' ? dep : dep.version;
|
|
713
|
-
|
|
714
|
-
visit(
|
|
738
|
+
const depPath = version ? (0, _lockfileDepsGraphConverter().refToDepPath)(version, name) : undefined;
|
|
739
|
+
if (depPath != null) visit(depPath);
|
|
715
740
|
}
|
|
716
741
|
}
|
|
717
742
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dependencyResolver","data","require","_pkgEntities","_lodash","_legacy","_legacy2","_path","_lockfileDepsGraphConverter","_readConfig","_pnpmPruneModules","_preserveLoadedVirtualStoreDirs","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","loadNodeApi","PnpmPackageManager","constructor","depResolver","logger","cloud","Map","dir","config","warnings","readConfig","fetchRetries","memoize","dependenciesGraphToLockfile","dependenciesGraph","opts","initLockfileDepsGraphConverter","registries","Registries","Registry","generateResolverAndFetcher","resolve","graphLockfile","convertGraphToLockfile","nodeApi","existingLockfile","readLockfile","rootDir","mergedLockfile","mergeGraphLockfileIntoExisting","assign","bit","restoredFromModel","writeLockfile","lockfile","lockfilePath","join","debug","process","env","DEPS_GRAPH_LOG","console","log","install","manifests","installOptions","proxyConfig","networkConfig","profileAsync","readRegistries","getRegistries","readProxyConfig","getProxyConfig","readNetworkConfig","getNetworkConfig","readConfigResult","packageManagerConfigRootDir","rootComponents","rootComponentsForCapsules","cacheDir","error","message","failOnDependenciesGraphError","hidePackageManagerOutput","off","useNesting","extendWithComponentsFromDir","nmSelfReferences","values","manifest","name","devDependencies","modulesManifestCache","delete","hoistPattern","resolveHoistPattern","hoistPatterns","loadedVirtualStoreDirs","snapshotLoadedVirtualStoreDirs","installResult","storeDir","autoInstallPeers","dedupePeers","enableModulesDir","engineStrict","excludeLinksFromLockfile","lockfileOnly","minimumReleaseAge","minimumReleaseAgeExclude","neverBuiltDependencies","allowScripts","dangerouslyAllowAllScripts","nodeLinker","nodeVersion","includeOptionalDeps","ignorePackageManifest","dedupeInjectedDeps","dryRun","overrides","publicHoistPattern","shamefullyHoist","hoistWorkspacePackages","hoistInjectedDependencies","packageImportMethod","enableGlobalVirtualStore","globalVirtualStoreDir","patchedDependencies","packageExtensions","preferOffline","sideEffectsCacheRead","sideEffectsCache","sideEffectsCacheWrite","pnpmHomeDir","updateAll","reportOptions","appendOnly","optimizeReportForNonTerminal","outputStream","BIT_CLI_SERVER_NO_TTY","ServerSendOutStream","undefined","throttleProgress","hideProgressPrefix","hideLifecycleOutput","peerDependencyRules","returnListOfDepsRequiringBuild","forcedHarmonyVersion","dependenciesChanged","rebuild","depsRequiringBuild","on","restoreRemovedLoadedVirtualStoreDirs","getPeerDependencyIssues","lynx","resolveRemoteVersion","packageName","options","fullMetadata","configuredUserAgent","userAgent","username","getCurrentUser","result","explicitSettings","Set","maxSockets","has","networkConcurrency","fetchTimeout","fetchRetryMaxtimeout","fetchRetryMintimeout","strictSsl","strictSSL","ca","cert","key","pnpmRegistry","defaultRegistry","default","uri","alwaysAuth","authHeaderValue","originalAuthType","originalAuthValue","pnpmScoped","omit","scopesRegistries","reduce","acc","scopedRegName","scopedReg","replace","BIT_CLOUD_REGISTRY","getInjectedDirs","componentDir","modulesState","_readModulesManifest","injectedDeps","lockfileDir","get","modulesManifest","readModulesManifest","set","getWorkspaceDepsOfBitRoots","fromEntries","map","getGlobalVirtualStoreDir","pruneModules","pnpmPruneModules","findUsages","depName","trees","getDependents","packages","excludeProjectPatterns","BIT_ROOTS_DIR","manifestFields","applyComponentIdNames","renderDependents","depth","long","calcDependenciesGraph","originalLockfile","importers","originalImporters","replaceFileVersion","createFileVersionReplacer","componentIdByPkgName","cache","createLockfileToGraphCache","componentRootDir","componentRelativeDir","pkgName","component","components","componentImporterId","compRootDir","includes","split","rootImporterVersion","dependencies","version","hasComponentRootImporter","Boolean","snapshots","filterByImporterIds","clonedImporters","importerId","structuredClone","importer","workspacePkgName","ref","optionalDependencies","startsWith","depType","partialLockfile","filterLockfileByImporters","graph","convertLockfileToGraph","state","_consumer","exports","hoistPatternsFromBitConfig","hoistPatternFromPnpmConfig","isDefaultHoistPattern","rename","node","componentId","scope","displayName","dependents","RESOLUTION_CONTEXT_KEYS","existing","graphImporter","entries","existingImporter","existingBit","graphBit","mergedDepsRequiringBuild","Array","from","sort","merged","lockfileVersion","mergeEntryRecords","hasResolutions","pnpmfileChecksum","sameRecords","settings","pruneUnreachableLockfileEntries","record1","record2","every","graphEntry","existingEntry","reachablePackages","reachableSnapshots","stack","visit","depPath","current","pop","add","removePeerSuffix","snapshot","dep","pkgId","bitAttrs","suffixStart","indexOf","slice"],"sources":["pnpm.package-manager.ts"],"sourcesContent":["import type { CloudMain } from '@teambit/cloud';\nimport { extendWithComponentsFromDir, BIT_CLOUD_REGISTRY } from '@teambit/dependency-resolver';\nimport type {\n DependencyResolverMain,\n InstallationContext,\n PackageManager,\n PackageManagerInstallOptions,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n CalcDepsGraphOptions,\n} from '@teambit/dependency-resolver';\nimport { Registries, Registry } from '@teambit/pkg.entities.registry';\nimport type { Logger } from '@teambit/logger';\nimport { type LockfileFile, type LockfileFileProjectSnapshot } from '@pnpm/lockfile.types';\nimport { memoize, omit } from 'lodash';\nimport type * as NodeApi from '@pnpm/napi';\nimport type { DependentNode, DependentsTree, PeerDependencyIssuesByProjects, ResolvedConfig } from '@pnpm/napi';\nimport { type ProjectId, type ProjectManifest, type DepPath } from '@pnpm/types';\nimport { BIT_ROOTS_DIR } from '@teambit/legacy.constants';\nimport { ServerSendOutStream } from '@teambit/legacy.logger';\nimport { join } from 'path';\nimport {\n convertLockfileToGraph,\n convertGraphToLockfile,\n createFileVersionReplacer,\n createLockfileToGraphCache,\n filterLockfileByImporters,\n init as initLockfileDepsGraphConverter,\n} from './lockfile-deps-graph-converter';\nimport { readConfig } from './read-config';\nimport { pnpmPruneModules } from './pnpm-prune-modules';\nimport {\n snapshotLoadedVirtualStoreDirs,\n restoreRemovedLoadedVirtualStoreDirs,\n} from './preserve-loaded-virtual-store-dirs';\nimport type { RebuildFn } from './lynx';\nimport type * as LynxModule from './lynx';\nimport { type DependenciesGraph } from '@teambit/objects';\n\nexport type { RebuildFn };\n\nexport interface InstallResult {\n dependenciesChanged: boolean;\n rebuild: RebuildFn;\n storeDir: string;\n depsRequiringBuild?: DepPath[];\n}\n\ntype ReadConfigResult = Promise<{ config: ResolvedConfig; warnings: string[] }>;\n\n/**\n * The `.modules.yaml` fields Bit reads. The engine returns the whole\n * manifest; only these are consumed here.\n */\ninterface ModulesManifest {\n injectedDeps?: Record<string, string[]>;\n}\n\n/** One importer entry of a lockfile, in the file's own shape. */\ntype LockfileFileImporter = LockfileFileProjectSnapshot;\n\n/**\n * Required lazily so the native engine binary is not mapped into every\n * `bit` process at startup (same convention as the `./lynx` require sites).\n */\nfunction loadNodeApi(): typeof NodeApi {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n return require('@pnpm/napi') as typeof NodeApi;\n}\n\nexport class PnpmPackageManager implements PackageManager {\n readonly name = 'pnpm';\n readonly supportsDependencyGraphRestoration = true;\n readonly modulesManifestCache: Map<string, ModulesManifest> = new Map();\n private username: string;\n\n private _readConfig = async (dir?: string): ReadConfigResult => {\n const { config, warnings } = await readConfig(dir);\n if (config?.fetchRetries && config?.fetchRetries < 5) {\n config.fetchRetries = 5;\n return { config, warnings };\n }\n\n return { config, warnings };\n };\n\n public readConfig: (dir?: string) => ReadConfigResult = memoize(this._readConfig);\n\n constructor(\n private depResolver: DependencyResolverMain,\n private logger: Logger,\n private cloud: CloudMain\n ) {}\n\n async dependenciesGraphToLockfile(\n dependenciesGraph: DependenciesGraph,\n opts: {\n cacheDir: string;\n manifests: Record<string, ProjectManifest>;\n rootDir: string;\n registries?: Registries;\n proxyConfig?: PackageManagerProxyConfig;\n networkConfig?: PackageManagerNetworkConfig;\n }\n ) {\n await initLockfileDepsGraphConverter();\n const registries = opts.registries ?? new Registries(new Registry('https://node-registry.bit.cloud', false), {});\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { generateResolverAndFetcher } = require('./lynx') as typeof LynxModule;\n const { resolve } = await generateResolverAndFetcher({\n ...opts,\n registries,\n });\n const graphLockfile: LockfileFile = await convertGraphToLockfile(dependenciesGraph, {\n ...opts,\n resolve,\n });\n const nodeApi = loadNodeApi();\n // Merge the graph-derived subset into any existing wanted lockfile rather than\n // overwriting. Only the importers, packages, and snapshots referenced by the\n // imported components' subgraph are re-stated here; every other workspace dep's\n // locked version must be preserved so pnpm doesn't re-resolve it to a newer\n // registry version.\n const existingLockfile = await nodeApi.readLockfile<LockfileFile>({ dir: opts.rootDir });\n const mergedLockfile = existingLockfile\n ? mergeGraphLockfileIntoExisting(existingLockfile, graphLockfile)\n : graphLockfile;\n Object.assign(mergedLockfile, {\n bit: {\n ...(mergedLockfile as LockfileFile & { bit?: Record<string, unknown> }).bit,\n restoredFromModel: true,\n },\n });\n await nodeApi.writeLockfile({ dir: opts.rootDir, lockfile: mergedLockfile });\n const lockfilePath = join(opts.rootDir, 'pnpm-lock.yaml');\n this.logger.debug(`generated a lockfile from dependencies graph at ${lockfilePath}`);\n if (process.env.DEPS_GRAPH_LOG) {\n // eslint-disable-next-line no-console\n console.log(`generated a lockfile from dependencies graph at ${lockfilePath}`);\n }\n }\n\n async install(\n { rootDir, manifests }: InstallationContext,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<InstallResult> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { install } = require('./lynx');\n\n const { registries, proxyConfig, networkConfig, config } = await this.logger.profileAsync(\n 'install.pnpm.readConfig',\n async () => {\n const readRegistries = await this.depResolver.getRegistries();\n const readProxyConfig = await this.depResolver.getProxyConfig();\n const readNetworkConfig = await this.depResolver.getNetworkConfig();\n const { config: readConfigResult } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n return {\n registries: readRegistries,\n proxyConfig: readProxyConfig,\n networkConfig: readNetworkConfig,\n config: readConfigResult,\n };\n }\n );\n if (\n installOptions.dependenciesGraph &&\n (installOptions.rootComponents || installOptions.rootComponentsForCapsules)\n ) {\n try {\n await this.dependenciesGraphToLockfile(installOptions.dependenciesGraph, {\n manifests,\n rootDir,\n registries,\n proxyConfig,\n networkConfig,\n cacheDir: config.cacheDir,\n });\n } catch (error) {\n this.logger.error((error as Error).message);\n if (installOptions.failOnDependenciesGraphError) throw error;\n }\n }\n\n this.logger.debug(`running installation in root dir ${rootDir}`);\n this.logger.debug('components manifests for installation', manifests);\n if (!installOptions.hidePackageManagerOutput) {\n // this.logger.setStatusLine('installing dependencies using pnpm');\n // turn off the logger because it interrupts the pnpm output\n // this.logger.console('-------------------------PNPM OUTPUT-------------------------');\n this.logger.off();\n }\n if (!installOptions.useNesting && installOptions.rootComponentsForCapsules) {\n manifests = await extendWithComponentsFromDir(rootDir, manifests);\n }\n if (installOptions.nmSelfReferences) {\n Object.values(manifests).forEach((manifest) => {\n if (manifest.name) {\n manifest.devDependencies = {\n [manifest.name]: 'link:.',\n ...manifest.devDependencies,\n };\n }\n });\n }\n this.modulesManifestCache.delete(rootDir);\n const hoistPattern = resolveHoistPattern(installOptions.hoistPatterns, config.hoistPattern);\n // packages this process already loaded modules from must stay requireable even if this install\n // re-keys them to a new peer hash - see preserve-loaded-virtual-store-dirs.ts\n const loadedVirtualStoreDirs = snapshotLoadedVirtualStoreDirs(rootDir);\n const installResult = await this.logger.profileAsync<{\n dependenciesChanged: boolean;\n rebuild: RebuildFn;\n storeDir: string;\n depsRequiringBuild?: DepPath[];\n }>('install.pnpm.core', () =>\n install(\n rootDir,\n manifests,\n config.storeDir,\n config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n {\n autoInstallPeers: installOptions.autoInstallPeers ?? true,\n dedupePeers: installOptions.dedupePeers ?? true,\n enableModulesDir: installOptions.enableModulesDir,\n engineStrict: installOptions.engineStrict ?? config.engineStrict,\n excludeLinksFromLockfile: installOptions.excludeLinksFromLockfile,\n lockfileOnly: installOptions.lockfileOnly,\n minimumReleaseAge: installOptions.minimumReleaseAge,\n minimumReleaseAgeExclude: installOptions.minimumReleaseAgeExclude,\n neverBuiltDependencies: installOptions.neverBuiltDependencies,\n allowScripts: installOptions.allowScripts,\n dangerouslyAllowAllScripts: installOptions.dangerouslyAllowAllScripts,\n nodeLinker: installOptions.nodeLinker,\n nodeVersion: installOptions.nodeVersion ?? config.nodeVersion,\n includeOptionalDeps: installOptions.includeOptionalDeps,\n ignorePackageManifest: installOptions.ignorePackageManifest,\n dedupeInjectedDeps: installOptions.dedupeInjectedDeps ?? false,\n dryRun: installOptions.dependenciesGraph == null && installOptions.dryRun,\n overrides: installOptions.overrides,\n hoistPattern,\n publicHoistPattern: config.shamefullyHoist\n ? ['*']\n : ['@eslint/plugin-*', '*eslint-plugin*', '@prettier/plugin-*', '*prettier-plugin-*'],\n hoistWorkspacePackages: installOptions.hoistWorkspacePackages ?? false,\n hoistInjectedDependencies: installOptions.hoistInjectedDependencies,\n packageImportMethod: installOptions.packageImportMethod ?? config.packageImportMethod,\n enableGlobalVirtualStore: installOptions.enableGlobalVirtualStore,\n globalVirtualStoreDir: installOptions.globalVirtualStoreDir,\n patchedDependencies: installOptions.patchedDependencies,\n packageExtensions: installOptions.packageExtensions,\n preferOffline: installOptions.preferOffline,\n rootComponents: installOptions.rootComponents,\n rootComponentsForCapsules: installOptions.rootComponentsForCapsules,\n sideEffectsCacheRead: installOptions.sideEffectsCache ?? true,\n sideEffectsCacheWrite: installOptions.sideEffectsCache ?? true,\n pnpmHomeDir: config.pnpmHomeDir,\n updateAll: installOptions.updateAll,\n hidePackageManagerOutput: installOptions.hidePackageManagerOutput,\n reportOptions: {\n appendOnly: installOptions.optimizeReportForNonTerminal,\n outputStream: process.env.BIT_CLI_SERVER_NO_TTY ? new ServerSendOutStream() : undefined,\n throttleProgress: installOptions.throttleProgress,\n hideProgressPrefix: installOptions.hideProgressPrefix,\n hideLifecycleOutput: installOptions.hideLifecycleOutput,\n peerDependencyRules: installOptions.peerDependencyRules,\n },\n returnListOfDepsRequiringBuild: installOptions.returnListOfDepsRequiringBuild,\n forcedHarmonyVersion: installOptions.forcedHarmonyVersion,\n },\n this.logger\n )\n );\n const { dependenciesChanged, rebuild, storeDir, depsRequiringBuild } = installResult;\n if (!installOptions.hidePackageManagerOutput) {\n this.logger.on();\n // Make a divider row to improve output\n // this.logger.console('-------------------------END PNPM OUTPUT-------------------------');\n // this.logger.consoleSuccess('installing dependencies using pnpm');\n }\n await restoreRemovedLoadedVirtualStoreDirs(loadedVirtualStoreDirs, this.logger);\n return { dependenciesChanged, rebuild, storeDir, depsRequiringBuild };\n }\n\n async getPeerDependencyIssues(\n rootDir: string,\n manifests: Record<string, ProjectManifest>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<PeerDependencyIssuesByProjects> {\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const registries = await this.depResolver.getRegistries();\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const lynx = require('./lynx');\n const { config } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n return lynx.getPeerDependencyIssues(manifests, {\n storeDir: config.storeDir,\n cacheDir: config.cacheDir,\n proxyConfig,\n registries,\n rootDir,\n networkConfig,\n overrides: installOptions.overrides,\n packageImportMethod: installOptions.packageImportMethod ?? config.packageImportMethod,\n });\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { resolveRemoteVersion } = require('./lynx');\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { config } = await this.readConfig(options.packageManagerConfigRootDir);\n return resolveRemoteVersion(packageName, {\n rootDir: options.rootDir,\n cacheDir: config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n fullMetadata: options.fullMetadata,\n });\n }\n\n async getProxyConfig?(): Promise<PackageManagerProxyConfig> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getProxyConfig } = require('./get-proxy-config');\n const { config } = await this.readConfig();\n return getProxyConfig(config);\n }\n\n async getNetworkConfig?(): Promise<PackageManagerNetworkConfig> {\n const { config } = await this.readConfig();\n const configuredUserAgent = config.userAgent;\n if (!configuredUserAgent && !this.username) {\n this.username = (await this.cloud.getCurrentUser())?.username ?? 'anonymous';\n }\n const result: PackageManagerNetworkConfig = {\n userAgent: configuredUserAgent ?? `bit user/${this.username}`,\n };\n // The resolved config carries the engine's defaults for the numeric\n // network settings, and anything returned here overrides Bit's global\n // network config in the dependency resolver's merge, so only settings the\n // user explicitly configured may pass through.\n const explicitSettings = new Set(config.explicitSettings);\n if (config.maxSockets != null && explicitSettings.has('maxSockets')) {\n result.maxSockets = config.maxSockets;\n }\n if (config.networkConcurrency != null && explicitSettings.has('networkConcurrency')) {\n result.networkConcurrency = config.networkConcurrency;\n }\n if (config.fetchRetries != null && explicitSettings.has('fetchRetries')) {\n result.fetchRetries = config.fetchRetries;\n }\n if (config.fetchTimeout != null && explicitSettings.has('fetchTimeout')) {\n result.fetchTimeout = config.fetchTimeout;\n }\n if (config.fetchRetryMaxtimeout != null && explicitSettings.has('fetchRetryMaxtimeout')) {\n result.fetchRetryMaxtimeout = config.fetchRetryMaxtimeout;\n }\n if (config.fetchRetryMintimeout != null && explicitSettings.has('fetchRetryMintimeout')) {\n result.fetchRetryMintimeout = config.fetchRetryMintimeout;\n }\n // Unlike the numeric settings above, strictSsl/ca/cert/key are optional\n // in the engine's projection and populated only when explicitly\n // configured (the engine applies its own defaults at client-build\n // time), so presence is already the explicit gate.\n if (config.strictSsl != null) {\n result.strictSSL = config.strictSsl;\n }\n if (config.ca != null) {\n result.ca = config.ca;\n }\n if (config.cert != null) {\n result.cert = config.cert;\n }\n if (config.key != null) {\n result.key = config.key;\n }\n return result;\n }\n\n async getRegistries(): Promise<Registries> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getRegistries } = require('./get-registries');\n const { config } = await this.readConfig();\n const pnpmRegistry = await getRegistries(config);\n const defaultRegistry = new Registry(\n pnpmRegistry.default.uri,\n pnpmRegistry.default.alwaysAuth,\n pnpmRegistry.default.authHeaderValue,\n pnpmRegistry.default.originalAuthType,\n pnpmRegistry.default.originalAuthValue\n );\n\n const pnpmScoped = omit(pnpmRegistry, ['default']);\n const scopesRegistries: Record<string, Registry> = Object.keys(pnpmScoped).reduce((acc, scopedRegName) => {\n const scopedReg = pnpmScoped[scopedRegName];\n const name = scopedRegName.replace('@', '');\n acc[name] = new Registry(\n scopedReg.uri,\n scopedReg.alwaysAuth,\n scopedReg.authHeaderValue,\n scopedReg.originalAuthType,\n scopedReg.originalAuthValue\n );\n return acc;\n }, {});\n\n // Add bit registry server if not exist\n if (!scopesRegistries.bit) {\n scopesRegistries.bit = new Registry(BIT_CLOUD_REGISTRY, true);\n }\n\n return new Registries(defaultRegistry, scopesRegistries);\n }\n\n async getInjectedDirs(rootDir: string, componentDir: string, packageName: string): Promise<string[]> {\n const modulesState = await this._readModulesManifest(rootDir);\n if (modulesState?.injectedDeps == null) return [];\n return modulesState.injectedDeps[`node_modules/${packageName}`] ?? modulesState.injectedDeps[componentDir] ?? [];\n }\n\n async _readModulesManifest(lockfileDir: string): Promise<ModulesManifest | undefined> {\n if (this.modulesManifestCache.has(lockfileDir)) {\n return this.modulesManifestCache.get(lockfileDir);\n }\n const nodeApi = loadNodeApi();\n const modulesManifest = (await nodeApi.readModulesManifest(\n join(lockfileDir, 'node_modules')\n )) as ModulesManifest | null;\n if (modulesManifest) {\n this.modulesManifestCache.set(lockfileDir, modulesManifest);\n }\n return modulesManifest ?? undefined;\n }\n\n getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string> {\n return Object.fromEntries(manifests.map((manifest) => [manifest.name, 'workspace:*']));\n }\n\n /**\n * pnpm's own shared `<storeDir>/links`.\n *\n * Bit used to carve out a private `<storeDir>/bit-links/<installationId>` root, because the core\n * aspects had to be mirrored at the root of the virtual store for the published envs to reach\n * them, and such a mirror cannot be shared with the pnpm CLI or another bit installation. They now\n * go to the project-local hoisted directory instead (see\n * `DependencyLinker.linkCoreAspectsToHoistedStore`), so nothing is written inside the store and\n * the shared directory can be used - slots are reused across bit versions and with every other\n * pnpm project, upgrades stay incremental, and `pnpm store prune` can account for them.\n */\n async getGlobalVirtualStoreDir({\n packageManagerConfigRootDir,\n }: {\n packageManagerConfigRootDir?: string;\n installationId: string;\n }): Promise<string> {\n const { config } = await this.readConfig(packageManagerConfigRootDir);\n return config.globalVirtualStoreDir ?? join(config.storeDir, 'links');\n }\n\n async pruneModules(rootDir: string): Promise<void> {\n return pnpmPruneModules(rootDir);\n }\n\n async findUsages(depName: string, opts: { lockfileDir: string; depth?: number }): Promise<string> {\n const nodeApi = loadNodeApi();\n const trees = await nodeApi.getDependents({\n dir: opts.lockfileDir,\n packages: [depName],\n // The generated importers under `.bit_roots` wire the workspace\n // together; they are not somewhere a user's dependency comes from.\n excludeProjectPatterns: [`*${BIT_ROOTS_DIR}/*`],\n // The engine walks the lockfile, which knows package names. Ask it\n // for the field that carries the component id so the tree can be\n // rendered in Bit's terms instead.\n manifestFields: ['componentId'],\n });\n applyComponentIdNames(trees);\n return nodeApi.renderDependents(trees, { depth: opts.depth, long: false });\n }\n\n /**\n * Calculating the dependencies graph of a given component using the lockfile.\n */\n async calcDependenciesGraph(opts: CalcDepsGraphOptions): Promise<void> {\n await initLockfileDepsGraphConverter();\n const nodeApi = loadNodeApi();\n const originalLockfile = await nodeApi.readLockfile<LockfileFile>({ dir: opts.rootDir });\n if (!originalLockfile?.importers) {\n return;\n }\n const originalImporters = originalLockfile.importers as Record<string, LockfileFileImporter>;\n const replaceFileVersion = createFileVersionReplacer(opts.componentIdByPkgName);\n const cache = createLockfileToGraphCache();\n for (const { componentRootDir, componentRelativeDir, pkgName, component } of opts.components) {\n const componentImporterId = (componentRelativeDir || '.') as ProjectId;\n let compRootDir: string | undefined;\n if (componentRootDir && !originalImporters[componentRootDir] && componentRootDir.includes('@')) {\n compRootDir = componentRootDir.split('@')[0];\n } else {\n compRootDir = componentRootDir;\n }\n if (!originalImporters[componentImporterId]) {\n continue;\n }\n const rootImporterVersion =\n compRootDir != null && pkgName != null\n ? originalImporters[compRootDir]?.dependencies?.[pkgName]?.version\n : undefined;\n const hasComponentRootImporter =\n rootImporterVersion != null && Boolean(originalLockfile.snapshots?.[`${pkgName}@${rootImporterVersion}`]);\n const filterByImporterIds = [componentImporterId];\n if (hasComponentRootImporter && compRootDir !== componentImporterId) {\n filterByImporterIds.push(compRootDir as ProjectId);\n }\n // Only clone the importers that will be mutated, reuse the rest of the lockfile as-is\n const clonedImporters: Record<string, LockfileFileImporter> = {};\n for (const importerId of filterByImporterIds) {\n if (originalImporters[importerId]) {\n clonedImporters[importerId] = structuredClone(originalImporters[importerId]);\n }\n }\n for (const importerId of filterByImporterIds) {\n const importer = clonedImporters[importerId];\n if (importer == null) continue;\n for (const workspacePkgName of opts.componentIdByPkgName.keys()) {\n if (workspacePkgName === pkgName) continue;\n // In the component's own importer, an injected sibling (a \"file:\"\n // ref) is a real direct dependency of this component — the graph\n // converter rewrites it to the component's semver id. Entries in\n // any other importer (e.g. the capsule/workspace root) merely\n // wire the workspace together and must not leak into this\n // component's graph.\n if (importerId === componentImporterId) {\n const ref =\n importer.dependencies?.[workspacePkgName] ??\n importer.devDependencies?.[workspacePkgName] ??\n importer.optionalDependencies?.[workspacePkgName];\n if (ref?.version?.startsWith('file:')) continue;\n }\n for (const depType of [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n 'dependenciesMeta',\n ] as const) {\n delete importer[depType]?.[workspacePkgName];\n }\n }\n }\n // Filters the lockfile so that it only includes packages related to the given component.\n const partialLockfile = filterLockfileByImporters(originalLockfile, filterByImporterIds, clonedImporters);\n const graph = convertLockfileToGraph(partialLockfile, {\n ...opts,\n componentRootDir: hasComponentRootImporter ? compRootDir : undefined,\n componentRelativeDir: componentImporterId,\n pkgName,\n replaceFileVersion,\n cache,\n });\n component.state._consumer.dependenciesGraph = graph;\n }\n }\n}\n\nfunction resolveHoistPattern(hoistPatternsFromBitConfig?: string[], hoistPatternFromPnpmConfig?: string[]): string[] {\n if (hoistPatternsFromBitConfig == null) return hoistPatternFromPnpmConfig ?? ['*'];\n if (\n isDefaultHoistPattern(hoistPatternsFromBitConfig) &&\n hoistPatternFromPnpmConfig &&\n !isDefaultHoistPattern(hoistPatternFromPnpmConfig)\n ) {\n return hoistPatternFromPnpmConfig;\n }\n return hoistPatternsFromBitConfig;\n}\n\nfunction isDefaultHoistPattern(hoistPattern: string[]): boolean {\n return hoistPattern.length === 1 && hoistPattern[0] === '*';\n}\n\n/**\n * Rename every node the engine resolved to a Bit component after its\n * component id, in place. The engine has no notion of one — it reports the\n * package name from the lockfile — so it is asked for the `componentId`\n * field of each node's manifest and Bit turns that into the display name,\n * which the renderer then prefers over the package name.\n */\nfunction applyComponentIdNames(trees: DependentsTree[]): void {\n const rename = (node: DependentsTree | DependentNode) => {\n const componentId = node.manifest?.componentId as { scope?: string; name?: string } | undefined;\n if (componentId?.scope && componentId.name) {\n node.displayName = `${componentId.scope}/${componentId.name}`;\n }\n node.dependents?.forEach(rename);\n };\n trees.forEach(rename);\n}\n\n/** The lockfile fields that say what its resolutions were resolved with. */\nconst RESOLUTION_CONTEXT_KEYS = ['pnpmfileChecksum', 'settings', 'overrides'] as const;\n\n// Merge a graph-derived lockfile into an existing wanted lockfile. The graph lockfile is\n// authoritative for keys it contains (a re-imported component can change the resolution\n// of its own deps), but must not erase packages, snapshots, or importer entries that are\n// only known to the existing lockfile. convertGraphToLockfile emits importer entries for\n// every workspace project, but only populates deps for manifests whose keys appear in the\n// graph's root edge — so per-importer overlay (instead of overwrite) is what keeps\n// unrelated workspace importers intact.\n//\n// Packages and snapshots are deep-merged per key so that pnpm-managed metadata the graph\n// doesn't round-trip (e.g. `optional`, `transitivePeerDependencies`, `dev`) survives on\n// entries the graph also knows about.\nexport function mergeGraphLockfileIntoExisting(existing: LockfileFile, graph: LockfileFile): LockfileFile {\n const importers: NonNullable<LockfileFile['importers']> = { ...existing.importers };\n for (const [importerId, graphImporter] of Object.entries(graph.importers ?? {})) {\n const existingImporter = importers[importerId];\n if (!existingImporter) {\n importers[importerId] = graphImporter;\n continue;\n }\n importers[importerId] = {\n ...existingImporter,\n dependencies: { ...existingImporter.dependencies, ...graphImporter.dependencies },\n devDependencies: { ...existingImporter.devDependencies, ...graphImporter.devDependencies },\n optionalDependencies: {\n ...existingImporter.optionalDependencies,\n ...graphImporter.optionalDependencies,\n },\n };\n }\n const existingBit = (existing as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n const graphBit = (graph as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n const mergedDepsRequiringBuild = Array.from(\n new Set([...(existingBit?.depsRequiringBuild ?? []), ...(graphBit?.depsRequiringBuild ?? [])])\n ).sort();\n const merged = {\n ...existing,\n // Keep the existing lockfile's schema version. convertGraphToLockfile hardcodes\n // lockfileVersion: '9.0', so preferring graph.lockfileVersion would silently\n // downgrade workspaces whose pnpm already writes a newer schema and trigger a\n // full rewrite on the next install.\n lockfileVersion: existing.lockfileVersion ?? graph.lockfileVersion,\n importers,\n packages: mergeEntryRecords(existing.packages, graph.packages),\n snapshots: mergeEntryRecords(existing.snapshots, graph.snapshots),\n };\n // The merged lockfile mixes resolutions from both sides, so it can only\n // claim the readPackage hooks checksum, the resolution settings and the\n // overrides both were resolved with. Otherwise drop them, and pnpm resolves\n // again instead of trusting the mix. A side that adds no resolutions (an\n // empty or link-only one) mixes nothing in, so the other side's values stand.\n if (!hasResolutions(existing)) {\n for (const key of RESOLUTION_CONTEXT_KEYS) {\n if (graph[key] == null) delete merged[key];\n else merged[key] = graph[key] as any;\n }\n } else if (hasResolutions(graph)) {\n if (existing.pnpmfileChecksum !== graph.pnpmfileChecksum) {\n delete merged.pnpmfileChecksum;\n }\n if (!sameRecords(existing.settings, graph.settings)) {\n delete merged.settings;\n }\n if (!sameRecords(existing.overrides, graph.overrides)) {\n delete merged.overrides;\n }\n }\n if (existingBit || graphBit) {\n (merged as LockfileFile & { bit?: Record<string, unknown> }).bit = {\n ...existingBit,\n ...graphBit,\n depsRequiringBuild: mergedDepsRequiringBuild,\n };\n }\n pruneUnreachableLockfileEntries(merged);\n return merged;\n}\n\nfunction hasResolutions(lockfile: LockfileFile): boolean {\n return Object.keys(lockfile.packages ?? {}).length > 0 || Object.keys(lockfile.snapshots ?? {}).length > 0;\n}\n\nfunction sameRecords(record1?: object, record2?: object): boolean {\n if (record1 == null || record2 == null) return record1 === record2;\n const keys = new Set([...Object.keys(record1), ...Object.keys(record2)]);\n return [...keys].every((key) => record1[key] === record2[key]);\n}\n\nfunction mergeEntryRecords<T extends object>(\n existing: Record<string, T> | undefined,\n graph: Record<string, T> | undefined\n): Record<string, T> | undefined {\n if (!existing) return graph;\n if (!graph) return existing;\n const merged: Record<string, T> = { ...existing };\n for (const [key, graphEntry] of Object.entries(graph)) {\n const existingEntry = merged[key];\n merged[key] = existingEntry ? ({ ...existingEntry, ...graphEntry } as T) : graphEntry;\n }\n return merged;\n}\n\nfunction pruneUnreachableLockfileEntries(lockfile: LockfileFile): void {\n const reachablePackages = new Set<string>();\n const reachableSnapshots = new Set<string>();\n // An explicit stack: deep dependency chains would overflow the call\n // stack with a recursive walk.\n const stack: string[] = [];\n const visit = (depPath: string) => {\n stack.push(depPath);\n while (stack.length > 0) {\n const current = stack.pop()!;\n if (reachableSnapshots.has(current)) continue;\n reachableSnapshots.add(current);\n reachablePackages.add(removePeerSuffix(current));\n const snapshot = lockfile.snapshots?.[current];\n if (!snapshot) continue;\n for (const depType of ['dependencies', 'optionalDependencies'] as const) {\n for (const [name, ref] of Object.entries(snapshot[depType] ?? {}) as Array<[string, string]>) {\n if (ref.startsWith('link:') || ref.startsWith('file:')) continue;\n stack.push(`${name}@${ref}`);\n }\n }\n }\n };\n for (const importer of Object.values(lockfile.importers ?? {})) {\n for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies'] as const) {\n for (const [name, dep] of Object.entries(importer[depType] ?? {}) as Array<\n [string, { version?: string } | string]\n >) {\n const version = typeof dep === 'string' ? dep : dep.version;\n if (!version || version.startsWith('link:') || version.startsWith('file:')) continue;\n visit(`${name}@${version}`);\n }\n }\n }\n for (const pkgId of Object.keys(lockfile.packages ?? {})) {\n if (!reachablePackages.has(pkgId)) {\n delete lockfile.packages![pkgId];\n }\n }\n for (const depPath of Object.keys(lockfile.snapshots ?? {})) {\n if (!reachableSnapshots.has(depPath)) {\n delete lockfile.snapshots![depPath];\n }\n }\n const bitAttrs = (lockfile as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n if (bitAttrs?.depsRequiringBuild) {\n bitAttrs.depsRequiringBuild = bitAttrs.depsRequiringBuild.filter((depPath) =>\n reachablePackages.has(removePeerSuffix(depPath))\n );\n }\n}\n\nfunction removePeerSuffix(depPath: string): string {\n const suffixStart = depPath.indexOf('(');\n return suffixStart === -1 ? depPath : depPath.slice(0, suffixStart);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_dependencyResolver","data","require","_pkgEntities","_lodash","_legacy","_legacy2","_path","_lockfileDepsGraphConverter","_readConfig","_pnpmPruneModules","_preserveLoadedVirtualStoreDirs","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","loadNodeApi","PnpmPackageManager","constructor","depResolver","logger","cloud","Map","dir","config","warnings","readConfig","fetchRetries","memoize","dependenciesGraphToLockfile","dependenciesGraph","opts","initLockfileDepsGraphConverter","registries","Registries","Registry","generateResolverAndFetcher","resolve","graphLockfile","convertGraphToLockfile","onComponentPkgDropped","pkgId","reason","debug","nodeApi","existingLockfile","readLockfile","rootDir","applyInstallLinkSetting","excludeLinksFromLockfile","mergedLockfile","mergeGraphLockfileIntoExisting","assign","bit","restoredFromModel","writeLockfile","lockfile","lockfilePath","join","process","env","DEPS_GRAPH_LOG","console","log","install","manifests","installOptions","proxyConfig","networkConfig","profileAsync","readRegistries","getRegistries","readProxyConfig","getProxyConfig","readNetworkConfig","getNetworkConfig","readConfigResult","packageManagerConfigRootDir","rootComponents","rootComponentsForCapsules","cacheDir","error","message","failOnDependenciesGraphError","hidePackageManagerOutput","off","useNesting","extendWithComponentsFromDir","nmSelfReferences","values","manifest","name","devDependencies","modulesManifestCache","delete","hoistPattern","resolveHoistPattern","hoistPatterns","loadedVirtualStoreDirs","snapshotLoadedVirtualStoreDirs","installResult","storeDir","autoInstallPeers","dedupePeers","enableModulesDir","engineStrict","lockfileOnly","minimumReleaseAge","minimumReleaseAgeExclude","neverBuiltDependencies","allowScripts","dangerouslyAllowAllScripts","nodeLinker","nodeVersion","includeOptionalDeps","ignorePackageManifest","dedupeInjectedDeps","dryRun","overrides","publicHoistPattern","shamefullyHoist","hoistWorkspacePackages","hoistInjectedDependencies","packageImportMethod","enableGlobalVirtualStore","globalVirtualStoreDir","patchedDependencies","packageExtensions","preferOffline","sideEffectsCacheRead","sideEffectsCache","sideEffectsCacheWrite","pnpmHomeDir","updateAll","reportOptions","appendOnly","optimizeReportForNonTerminal","outputStream","BIT_CLI_SERVER_NO_TTY","ServerSendOutStream","undefined","throttleProgress","hideProgressPrefix","hideLifecycleOutput","peerDependencyRules","returnListOfDepsRequiringBuild","forcedHarmonyVersion","dependenciesChanged","rebuild","depsRequiringBuild","on","restoreRemovedLoadedVirtualStoreDirs","getPeerDependencyIssues","lynx","resolveRemoteVersion","packageName","options","fullMetadata","configuredUserAgent","userAgent","username","getCurrentUser","result","explicitSettings","Set","maxSockets","has","networkConcurrency","fetchTimeout","fetchRetryMaxtimeout","fetchRetryMintimeout","strictSsl","strictSSL","ca","cert","key","pnpmRegistry","defaultRegistry","default","uri","alwaysAuth","authHeaderValue","originalAuthType","originalAuthValue","pnpmScoped","omit","scopesRegistries","reduce","acc","scopedRegName","scopedReg","replace","BIT_CLOUD_REGISTRY","getInjectedDirs","componentDir","modulesState","_readModulesManifest","injectedDeps","lockfileDir","get","modulesManifest","readModulesManifest","set","getWorkspaceDepsOfBitRoots","fromEntries","map","getGlobalVirtualStoreDir","pruneModules","pnpmPruneModules","findUsages","depName","trees","getDependents","packages","excludeProjectPatterns","BIT_ROOTS_DIR","manifestFields","applyComponentIdNames","renderDependents","depth","long","calcDependenciesGraph","originalLockfile","importers","originalImporters","replaceFileVersion","createFileVersionReplacer","componentIdByPkgName","cache","createLockfileToGraphCache","componentRootDir","componentRelativeDir","pkgName","component","components","componentImporterId","compRootDir","includes","split","rootImporterVersion","dependencies","version","hasComponentRootImporter","Boolean","snapshots","filterByImporterIds","clonedImporters","importerId","structuredClone","importer","workspacePkgName","ref","optionalDependencies","startsWith","depType","partialLockfile","filterLockfileByImporters","graph","convertLockfileToGraph","state","_consumer","exports","hoistPatternsFromBitConfig","hoistPatternFromPnpmConfig","isDefaultHoistPattern","rename","node","componentId","scope","displayName","dependents","RESOLUTION_CONTEXT_KEYS","existing","graphImporter","entries","existingImporter","existingBit","graphBit","mergedDepsRequiringBuild","Array","from","sort","merged","lockfileVersion","mergeEntryRecords","hasResolutions","pnpmfileChecksum","sameRecords","settings","pruneUnreachableLockfileEntries","markOptionalOnlyEntries","record1","record2","every","graphEntry","existingEntry","reachablePackages","reachableSnapshots","stack","visit","depPath","current","pop","add","removePeerSuffix","snapshot","subDepPath","refToDepPath","dep","bitAttrs","suffixStart","indexOf","slice"],"sources":["pnpm.package-manager.ts"],"sourcesContent":["import type { CloudMain } from '@teambit/cloud';\nimport { extendWithComponentsFromDir, BIT_CLOUD_REGISTRY } from '@teambit/dependency-resolver';\nimport type {\n DependencyResolverMain,\n InstallationContext,\n PackageManager,\n PackageManagerInstallOptions,\n PackageManagerResolveRemoteVersionOptions,\n ResolvedPackageVersion,\n PackageManagerProxyConfig,\n PackageManagerNetworkConfig,\n CalcDepsGraphOptions,\n} from '@teambit/dependency-resolver';\nimport { Registries, Registry } from '@teambit/pkg.entities.registry';\nimport type { Logger } from '@teambit/logger';\nimport { type LockfileFile, type LockfileFileProjectSnapshot } from '@pnpm/lockfile.types';\nimport { memoize, omit } from 'lodash';\nimport type * as NodeApi from '@pnpm/napi';\nimport type { DependentNode, DependentsTree, PeerDependencyIssuesByProjects, ResolvedConfig } from '@pnpm/napi';\nimport { type ProjectId, type ProjectManifest, type DepPath } from '@pnpm/types';\nimport { BIT_ROOTS_DIR } from '@teambit/legacy.constants';\nimport { ServerSendOutStream } from '@teambit/legacy.logger';\nimport { join } from 'path';\nimport {\n convertLockfileToGraph,\n markOptionalOnlyEntries,\n refToDepPath,\n convertGraphToLockfile,\n createFileVersionReplacer,\n createLockfileToGraphCache,\n filterLockfileByImporters,\n init as initLockfileDepsGraphConverter,\n} from './lockfile-deps-graph-converter';\nimport { readConfig } from './read-config';\nimport { pnpmPruneModules } from './pnpm-prune-modules';\nimport {\n snapshotLoadedVirtualStoreDirs,\n restoreRemovedLoadedVirtualStoreDirs,\n} from './preserve-loaded-virtual-store-dirs';\nimport type { RebuildFn } from './lynx';\nimport type * as LynxModule from './lynx';\nimport { type DependenciesGraph } from '@teambit/objects';\n\nexport type { RebuildFn };\n\nexport interface InstallResult {\n dependenciesChanged: boolean;\n rebuild: RebuildFn;\n storeDir: string;\n depsRequiringBuild?: DepPath[];\n}\n\ntype ReadConfigResult = Promise<{ config: ResolvedConfig; warnings: string[] }>;\n\n/**\n * The `.modules.yaml` fields Bit reads. The engine returns the whole\n * manifest; only these are consumed here.\n */\ninterface ModulesManifest {\n injectedDeps?: Record<string, string[]>;\n}\n\n/** One importer entry of a lockfile, in the file's own shape. */\ntype LockfileFileImporter = LockfileFileProjectSnapshot;\n\n/**\n * Required lazily so the native engine binary is not mapped into every\n * `bit` process at startup (same convention as the `./lynx` require sites).\n */\nfunction loadNodeApi(): typeof NodeApi {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n return require('@pnpm/napi') as typeof NodeApi;\n}\n\nexport class PnpmPackageManager implements PackageManager {\n readonly name = 'pnpm';\n readonly supportsDependencyGraphRestoration = true;\n readonly modulesManifestCache: Map<string, ModulesManifest> = new Map();\n private username: string;\n\n private _readConfig = async (dir?: string): ReadConfigResult => {\n const { config, warnings } = await readConfig(dir);\n if (config?.fetchRetries && config?.fetchRetries < 5) {\n config.fetchRetries = 5;\n return { config, warnings };\n }\n\n return { config, warnings };\n };\n\n public readConfig: (dir?: string) => ReadConfigResult = memoize(this._readConfig);\n\n constructor(\n private depResolver: DependencyResolverMain,\n private logger: Logger,\n private cloud: CloudMain\n ) {}\n\n async dependenciesGraphToLockfile(\n dependenciesGraph: DependenciesGraph,\n opts: {\n cacheDir: string;\n manifests: Record<string, ProjectManifest>;\n rootDir: string;\n registries?: Registries;\n proxyConfig?: PackageManagerProxyConfig;\n networkConfig?: PackageManagerNetworkConfig;\n /** The install's `excludeLinksFromLockfile`, recorded in the restored lockfile's settings. */\n excludeLinksFromLockfile?: boolean;\n }\n ) {\n await initLockfileDepsGraphConverter();\n const registries = opts.registries ?? new Registries(new Registry('https://node-registry.bit.cloud', false), {});\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { generateResolverAndFetcher } = require('./lynx') as typeof LynxModule;\n const { resolve } = await generateResolverAndFetcher({\n ...opts,\n registries,\n });\n const graphLockfile: LockfileFile = await convertGraphToLockfile(dependenciesGraph, {\n ...opts,\n resolve,\n onComponentPkgDropped: (pkgId, reason) => {\n this.logger.debug(`the lockfile restored from the dependencies graph leaves out ${pkgId}: ${reason}`);\n },\n });\n const nodeApi = loadNodeApi();\n // Merge the graph-derived subset into any existing wanted lockfile rather than\n // overwriting. Only the importers, packages, and snapshots referenced by the\n // imported components' subgraph are re-stated here; every other workspace dep's\n // locked version must be preserved so pnpm doesn't re-resolve it to a newer\n // registry version.\n const existingLockfile = await nodeApi.readLockfile<LockfileFile>({ dir: opts.rootDir });\n // Whether the lockfile lists `link:` dependencies is the install's choice,\n // not the resolution's. The graph carries the setting of the workspace it\n // was saved in, which excludes links, and an install that includes them\n // (fusepm does) would reject the restored lockfile over that alone. Both\n // sides take the install's value before the merge compares their settings,\n // so a difference in it alone does not cost the settings block.\n applyInstallLinkSetting(graphLockfile, opts.excludeLinksFromLockfile);\n if (existingLockfile) applyInstallLinkSetting(existingLockfile, opts.excludeLinksFromLockfile);\n const mergedLockfile = existingLockfile\n ? mergeGraphLockfileIntoExisting(existingLockfile, graphLockfile)\n : graphLockfile;\n Object.assign(mergedLockfile, {\n bit: {\n ...(mergedLockfile as LockfileFile & { bit?: Record<string, unknown> }).bit,\n restoredFromModel: true,\n },\n });\n await nodeApi.writeLockfile({ dir: opts.rootDir, lockfile: mergedLockfile });\n const lockfilePath = join(opts.rootDir, 'pnpm-lock.yaml');\n this.logger.debug(`generated a lockfile from dependencies graph at ${lockfilePath}`);\n if (process.env.DEPS_GRAPH_LOG) {\n // eslint-disable-next-line no-console\n console.log(`generated a lockfile from dependencies graph at ${lockfilePath}`);\n }\n }\n\n async install(\n { rootDir, manifests }: InstallationContext,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<InstallResult> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { install } = require('./lynx');\n\n const { registries, proxyConfig, networkConfig, config } = await this.logger.profileAsync(\n 'install.pnpm.readConfig',\n async () => {\n const readRegistries = await this.depResolver.getRegistries();\n const readProxyConfig = await this.depResolver.getProxyConfig();\n const readNetworkConfig = await this.depResolver.getNetworkConfig();\n const { config: readConfigResult } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n return {\n registries: readRegistries,\n proxyConfig: readProxyConfig,\n networkConfig: readNetworkConfig,\n config: readConfigResult,\n };\n }\n );\n if (\n installOptions.dependenciesGraph &&\n (installOptions.rootComponents || installOptions.rootComponentsForCapsules)\n ) {\n try {\n await this.dependenciesGraphToLockfile(installOptions.dependenciesGraph, {\n manifests,\n rootDir,\n registries,\n proxyConfig,\n networkConfig,\n cacheDir: config.cacheDir,\n excludeLinksFromLockfile: installOptions.excludeLinksFromLockfile ?? true,\n });\n } catch (error) {\n this.logger.error((error as Error).message);\n if (installOptions.failOnDependenciesGraphError) throw error;\n }\n }\n\n this.logger.debug(`running installation in root dir ${rootDir}`);\n this.logger.debug('components manifests for installation', manifests);\n if (!installOptions.hidePackageManagerOutput) {\n // this.logger.setStatusLine('installing dependencies using pnpm');\n // turn off the logger because it interrupts the pnpm output\n // this.logger.console('-------------------------PNPM OUTPUT-------------------------');\n this.logger.off();\n }\n if (!installOptions.useNesting && installOptions.rootComponentsForCapsules) {\n manifests = await extendWithComponentsFromDir(rootDir, manifests);\n }\n if (installOptions.nmSelfReferences) {\n Object.values(manifests).forEach((manifest) => {\n if (manifest.name) {\n manifest.devDependencies = {\n [manifest.name]: 'link:.',\n ...manifest.devDependencies,\n };\n }\n });\n }\n this.modulesManifestCache.delete(rootDir);\n const hoistPattern = resolveHoistPattern(installOptions.hoistPatterns, config.hoistPattern);\n // packages this process already loaded modules from must stay requireable even if this install\n // re-keys them to a new peer hash - see preserve-loaded-virtual-store-dirs.ts\n const loadedVirtualStoreDirs = snapshotLoadedVirtualStoreDirs(rootDir);\n const installResult = await this.logger.profileAsync<{\n dependenciesChanged: boolean;\n rebuild: RebuildFn;\n storeDir: string;\n depsRequiringBuild?: DepPath[];\n }>('install.pnpm.core', () =>\n install(\n rootDir,\n manifests,\n config.storeDir,\n config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n {\n autoInstallPeers: installOptions.autoInstallPeers ?? true,\n dedupePeers: installOptions.dedupePeers ?? true,\n enableModulesDir: installOptions.enableModulesDir,\n engineStrict: installOptions.engineStrict ?? config.engineStrict,\n excludeLinksFromLockfile: installOptions.excludeLinksFromLockfile,\n lockfileOnly: installOptions.lockfileOnly,\n minimumReleaseAge: installOptions.minimumReleaseAge,\n minimumReleaseAgeExclude: installOptions.minimumReleaseAgeExclude,\n neverBuiltDependencies: installOptions.neverBuiltDependencies,\n allowScripts: installOptions.allowScripts,\n dangerouslyAllowAllScripts: installOptions.dangerouslyAllowAllScripts,\n nodeLinker: installOptions.nodeLinker,\n nodeVersion: installOptions.nodeVersion ?? config.nodeVersion,\n includeOptionalDeps: installOptions.includeOptionalDeps,\n ignorePackageManifest: installOptions.ignorePackageManifest,\n dedupeInjectedDeps: installOptions.dedupeInjectedDeps ?? false,\n dryRun: installOptions.dependenciesGraph == null && installOptions.dryRun,\n overrides: installOptions.overrides,\n hoistPattern,\n publicHoistPattern: config.shamefullyHoist\n ? ['*']\n : ['@eslint/plugin-*', '*eslint-plugin*', '@prettier/plugin-*', '*prettier-plugin-*'],\n hoistWorkspacePackages: installOptions.hoistWorkspacePackages ?? false,\n hoistInjectedDependencies: installOptions.hoistInjectedDependencies,\n packageImportMethod: installOptions.packageImportMethod ?? config.packageImportMethod,\n enableGlobalVirtualStore: installOptions.enableGlobalVirtualStore,\n globalVirtualStoreDir: installOptions.globalVirtualStoreDir,\n patchedDependencies: installOptions.patchedDependencies,\n packageExtensions: installOptions.packageExtensions,\n preferOffline: installOptions.preferOffline,\n rootComponents: installOptions.rootComponents,\n rootComponentsForCapsules: installOptions.rootComponentsForCapsules,\n sideEffectsCacheRead: installOptions.sideEffectsCache ?? true,\n sideEffectsCacheWrite: installOptions.sideEffectsCache ?? true,\n pnpmHomeDir: config.pnpmHomeDir,\n updateAll: installOptions.updateAll,\n hidePackageManagerOutput: installOptions.hidePackageManagerOutput,\n reportOptions: {\n appendOnly: installOptions.optimizeReportForNonTerminal,\n outputStream: process.env.BIT_CLI_SERVER_NO_TTY ? new ServerSendOutStream() : undefined,\n throttleProgress: installOptions.throttleProgress,\n hideProgressPrefix: installOptions.hideProgressPrefix,\n hideLifecycleOutput: installOptions.hideLifecycleOutput,\n peerDependencyRules: installOptions.peerDependencyRules,\n },\n returnListOfDepsRequiringBuild: installOptions.returnListOfDepsRequiringBuild,\n forcedHarmonyVersion: installOptions.forcedHarmonyVersion,\n },\n this.logger\n )\n );\n const { dependenciesChanged, rebuild, storeDir, depsRequiringBuild } = installResult;\n if (!installOptions.hidePackageManagerOutput) {\n this.logger.on();\n // Make a divider row to improve output\n // this.logger.console('-------------------------END PNPM OUTPUT-------------------------');\n // this.logger.consoleSuccess('installing dependencies using pnpm');\n }\n await restoreRemovedLoadedVirtualStoreDirs(loadedVirtualStoreDirs, this.logger);\n return { dependenciesChanged, rebuild, storeDir, depsRequiringBuild };\n }\n\n async getPeerDependencyIssues(\n rootDir: string,\n manifests: Record<string, ProjectManifest>,\n installOptions: PackageManagerInstallOptions = {}\n ): Promise<PeerDependencyIssuesByProjects> {\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const registries = await this.depResolver.getRegistries();\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const lynx = require('./lynx');\n const { config } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n return lynx.getPeerDependencyIssues(manifests, {\n storeDir: config.storeDir,\n cacheDir: config.cacheDir,\n proxyConfig,\n registries,\n rootDir,\n networkConfig,\n overrides: installOptions.overrides,\n packageImportMethod: installOptions.packageImportMethod ?? config.packageImportMethod,\n });\n }\n\n async resolveRemoteVersion(\n packageName: string,\n options: PackageManagerResolveRemoteVersionOptions\n ): Promise<ResolvedPackageVersion> {\n // require it dynamically for performance purpose. the pnpm package require many files - do not move to static import\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { resolveRemoteVersion } = require('./lynx');\n const registries = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { config } = await this.readConfig(options.packageManagerConfigRootDir);\n return resolveRemoteVersion(packageName, {\n rootDir: options.rootDir,\n cacheDir: config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n fullMetadata: options.fullMetadata,\n });\n }\n\n async getProxyConfig?(): Promise<PackageManagerProxyConfig> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getProxyConfig } = require('./get-proxy-config');\n const { config } = await this.readConfig();\n return getProxyConfig(config);\n }\n\n async getNetworkConfig?(): Promise<PackageManagerNetworkConfig> {\n const { config } = await this.readConfig();\n const configuredUserAgent = config.userAgent;\n if (!configuredUserAgent && !this.username) {\n this.username = (await this.cloud.getCurrentUser())?.username ?? 'anonymous';\n }\n const result: PackageManagerNetworkConfig = {\n userAgent: configuredUserAgent ?? `bit user/${this.username}`,\n };\n // The resolved config carries the engine's defaults for the numeric\n // network settings, and anything returned here overrides Bit's global\n // network config in the dependency resolver's merge, so only settings the\n // user explicitly configured may pass through.\n const explicitSettings = new Set(config.explicitSettings);\n if (config.maxSockets != null && explicitSettings.has('maxSockets')) {\n result.maxSockets = config.maxSockets;\n }\n if (config.networkConcurrency != null && explicitSettings.has('networkConcurrency')) {\n result.networkConcurrency = config.networkConcurrency;\n }\n if (config.fetchRetries != null && explicitSettings.has('fetchRetries')) {\n result.fetchRetries = config.fetchRetries;\n }\n if (config.fetchTimeout != null && explicitSettings.has('fetchTimeout')) {\n result.fetchTimeout = config.fetchTimeout;\n }\n if (config.fetchRetryMaxtimeout != null && explicitSettings.has('fetchRetryMaxtimeout')) {\n result.fetchRetryMaxtimeout = config.fetchRetryMaxtimeout;\n }\n if (config.fetchRetryMintimeout != null && explicitSettings.has('fetchRetryMintimeout')) {\n result.fetchRetryMintimeout = config.fetchRetryMintimeout;\n }\n // Unlike the numeric settings above, strictSsl/ca/cert/key are optional\n // in the engine's projection and populated only when explicitly\n // configured (the engine applies its own defaults at client-build\n // time), so presence is already the explicit gate.\n if (config.strictSsl != null) {\n result.strictSSL = config.strictSsl;\n }\n if (config.ca != null) {\n result.ca = config.ca;\n }\n if (config.cert != null) {\n result.cert = config.cert;\n }\n if (config.key != null) {\n result.key = config.key;\n }\n return result;\n }\n\n async getRegistries(): Promise<Registries> {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const { getRegistries } = require('./get-registries');\n const { config } = await this.readConfig();\n const pnpmRegistry = await getRegistries(config);\n const defaultRegistry = new Registry(\n pnpmRegistry.default.uri,\n pnpmRegistry.default.alwaysAuth,\n pnpmRegistry.default.authHeaderValue,\n pnpmRegistry.default.originalAuthType,\n pnpmRegistry.default.originalAuthValue\n );\n\n const pnpmScoped = omit(pnpmRegistry, ['default']);\n const scopesRegistries: Record<string, Registry> = Object.keys(pnpmScoped).reduce((acc, scopedRegName) => {\n const scopedReg = pnpmScoped[scopedRegName];\n const name = scopedRegName.replace('@', '');\n acc[name] = new Registry(\n scopedReg.uri,\n scopedReg.alwaysAuth,\n scopedReg.authHeaderValue,\n scopedReg.originalAuthType,\n scopedReg.originalAuthValue\n );\n return acc;\n }, {});\n\n // Add bit registry server if not exist\n if (!scopesRegistries.bit) {\n scopesRegistries.bit = new Registry(BIT_CLOUD_REGISTRY, true);\n }\n\n return new Registries(defaultRegistry, scopesRegistries);\n }\n\n async getInjectedDirs(rootDir: string, componentDir: string, packageName: string): Promise<string[]> {\n const modulesState = await this._readModulesManifest(rootDir);\n if (modulesState?.injectedDeps == null) return [];\n return modulesState.injectedDeps[`node_modules/${packageName}`] ?? modulesState.injectedDeps[componentDir] ?? [];\n }\n\n async _readModulesManifest(lockfileDir: string): Promise<ModulesManifest | undefined> {\n if (this.modulesManifestCache.has(lockfileDir)) {\n return this.modulesManifestCache.get(lockfileDir);\n }\n const nodeApi = loadNodeApi();\n const modulesManifest = (await nodeApi.readModulesManifest(\n join(lockfileDir, 'node_modules')\n )) as ModulesManifest | null;\n if (modulesManifest) {\n this.modulesManifestCache.set(lockfileDir, modulesManifest);\n }\n return modulesManifest ?? undefined;\n }\n\n getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string> {\n return Object.fromEntries(manifests.map((manifest) => [manifest.name, 'workspace:*']));\n }\n\n /**\n * pnpm's own shared `<storeDir>/links`.\n *\n * Bit used to carve out a private `<storeDir>/bit-links/<installationId>` root, because the core\n * aspects had to be mirrored at the root of the virtual store for the published envs to reach\n * them, and such a mirror cannot be shared with the pnpm CLI or another bit installation. They now\n * go to the project-local hoisted directory instead (see\n * `DependencyLinker.linkCoreAspectsToHoistedStore`), so nothing is written inside the store and\n * the shared directory can be used - slots are reused across bit versions and with every other\n * pnpm project, upgrades stay incremental, and `pnpm store prune` can account for them.\n */\n async getGlobalVirtualStoreDir({\n packageManagerConfigRootDir,\n }: {\n packageManagerConfigRootDir?: string;\n installationId: string;\n }): Promise<string> {\n const { config } = await this.readConfig(packageManagerConfigRootDir);\n return config.globalVirtualStoreDir ?? join(config.storeDir, 'links');\n }\n\n async pruneModules(rootDir: string): Promise<void> {\n return pnpmPruneModules(rootDir);\n }\n\n async findUsages(depName: string, opts: { lockfileDir: string; depth?: number }): Promise<string> {\n const nodeApi = loadNodeApi();\n const trees = await nodeApi.getDependents({\n dir: opts.lockfileDir,\n packages: [depName],\n // The generated importers under `.bit_roots` wire the workspace\n // together; they are not somewhere a user's dependency comes from.\n excludeProjectPatterns: [`*${BIT_ROOTS_DIR}/*`],\n // The engine walks the lockfile, which knows package names. Ask it\n // for the field that carries the component id so the tree can be\n // rendered in Bit's terms instead.\n manifestFields: ['componentId'],\n });\n applyComponentIdNames(trees);\n return nodeApi.renderDependents(trees, { depth: opts.depth, long: false });\n }\n\n /**\n * Calculating the dependencies graph of a given component using the lockfile.\n */\n async calcDependenciesGraph(opts: CalcDepsGraphOptions): Promise<void> {\n await initLockfileDepsGraphConverter();\n const nodeApi = loadNodeApi();\n const originalLockfile = await nodeApi.readLockfile<LockfileFile>({ dir: opts.rootDir });\n if (!originalLockfile?.importers) {\n return;\n }\n const originalImporters = originalLockfile.importers as Record<string, LockfileFileImporter>;\n const replaceFileVersion = createFileVersionReplacer(opts.componentIdByPkgName);\n const cache = createLockfileToGraphCache();\n for (const { componentRootDir, componentRelativeDir, pkgName, component } of opts.components) {\n const componentImporterId = (componentRelativeDir || '.') as ProjectId;\n let compRootDir: string | undefined;\n if (componentRootDir && !originalImporters[componentRootDir] && componentRootDir.includes('@')) {\n compRootDir = componentRootDir.split('@')[0];\n } else {\n compRootDir = componentRootDir;\n }\n if (!originalImporters[componentImporterId]) {\n continue;\n }\n const rootImporterVersion =\n compRootDir != null && pkgName != null\n ? originalImporters[compRootDir]?.dependencies?.[pkgName]?.version\n : undefined;\n const hasComponentRootImporter =\n rootImporterVersion != null && Boolean(originalLockfile.snapshots?.[`${pkgName}@${rootImporterVersion}`]);\n const filterByImporterIds = [componentImporterId];\n if (hasComponentRootImporter && compRootDir !== componentImporterId) {\n filterByImporterIds.push(compRootDir as ProjectId);\n }\n // Only clone the importers that will be mutated, reuse the rest of the lockfile as-is\n const clonedImporters: Record<string, LockfileFileImporter> = {};\n for (const importerId of filterByImporterIds) {\n if (originalImporters[importerId]) {\n clonedImporters[importerId] = structuredClone(originalImporters[importerId]);\n }\n }\n for (const importerId of filterByImporterIds) {\n const importer = clonedImporters[importerId];\n if (importer == null) continue;\n for (const workspacePkgName of opts.componentIdByPkgName.keys()) {\n if (workspacePkgName === pkgName) continue;\n // In the component's own importer, an injected sibling (a \"file:\"\n // ref) is a real direct dependency of this component — the graph\n // converter rewrites it to the component's semver id. Entries in\n // any other importer (e.g. the capsule/workspace root) merely\n // wire the workspace together and must not leak into this\n // component's graph.\n if (importerId === componentImporterId) {\n const ref =\n importer.dependencies?.[workspacePkgName] ??\n importer.devDependencies?.[workspacePkgName] ??\n importer.optionalDependencies?.[workspacePkgName];\n if (ref?.version?.startsWith('file:')) continue;\n }\n for (const depType of [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n 'dependenciesMeta',\n ] as const) {\n delete importer[depType]?.[workspacePkgName];\n }\n }\n }\n // Filters the lockfile so that it only includes packages related to the given component.\n const partialLockfile = filterLockfileByImporters(originalLockfile, filterByImporterIds, clonedImporters);\n const graph = convertLockfileToGraph(partialLockfile, {\n ...opts,\n componentRootDir: hasComponentRootImporter ? compRootDir : undefined,\n componentRelativeDir: componentImporterId,\n pkgName,\n replaceFileVersion,\n cache,\n });\n component.state._consumer.dependenciesGraph = graph;\n }\n }\n}\n\nfunction resolveHoistPattern(hoistPatternsFromBitConfig?: string[], hoistPatternFromPnpmConfig?: string[]): string[] {\n if (hoistPatternsFromBitConfig == null) return hoistPatternFromPnpmConfig ?? ['*'];\n if (\n isDefaultHoistPattern(hoistPatternsFromBitConfig) &&\n hoistPatternFromPnpmConfig &&\n !isDefaultHoistPattern(hoistPatternFromPnpmConfig)\n ) {\n return hoistPatternFromPnpmConfig;\n }\n return hoistPatternsFromBitConfig;\n}\n\nfunction isDefaultHoistPattern(hoistPattern: string[]): boolean {\n return hoistPattern.length === 1 && hoistPattern[0] === '*';\n}\n\n/**\n * Rename every node the engine resolved to a Bit component after its\n * component id, in place. The engine has no notion of one — it reports the\n * package name from the lockfile — so it is asked for the `componentId`\n * field of each node's manifest and Bit turns that into the display name,\n * which the renderer then prefers over the package name.\n */\nfunction applyComponentIdNames(trees: DependentsTree[]): void {\n const rename = (node: DependentsTree | DependentNode) => {\n const componentId = node.manifest?.componentId as { scope?: string; name?: string } | undefined;\n if (componentId?.scope && componentId.name) {\n node.displayName = `${componentId.scope}/${componentId.name}`;\n }\n node.dependents?.forEach(rename);\n };\n trees.forEach(rename);\n}\n\n/** The lockfile fields that say what its resolutions were resolved with. */\nconst RESOLUTION_CONTEXT_KEYS = ['pnpmfileChecksum', 'settings', 'overrides'] as const;\n\n// Merge a graph-derived lockfile into an existing wanted lockfile. The graph lockfile is\n// authoritative for keys it contains (a re-imported component can change the resolution\n// of its own deps), but must not erase packages, snapshots, or importer entries that are\n// only known to the existing lockfile. convertGraphToLockfile emits importer entries for\n// every workspace project, but only populates deps for manifests whose keys appear in the\n// graph's root edge — so per-importer overlay (instead of overwrite) is what keeps\n// unrelated workspace importers intact.\n//\n// Packages and snapshots are deep-merged per key so that pnpm-managed metadata the graph\n// doesn't round-trip (e.g. `optional`, `transitivePeerDependencies`, `dev`) survives on\n// entries the graph also knows about.\nexport function mergeGraphLockfileIntoExisting(existing: LockfileFile, graph: LockfileFile): LockfileFile {\n const importers: NonNullable<LockfileFile['importers']> = { ...existing.importers };\n for (const [importerId, graphImporter] of Object.entries(graph.importers ?? {})) {\n const existingImporter = importers[importerId];\n if (!existingImporter) {\n importers[importerId] = graphImporter;\n continue;\n }\n importers[importerId] = {\n ...existingImporter,\n dependencies: { ...existingImporter.dependencies, ...graphImporter.dependencies },\n devDependencies: { ...existingImporter.devDependencies, ...graphImporter.devDependencies },\n optionalDependencies: {\n ...existingImporter.optionalDependencies,\n ...graphImporter.optionalDependencies,\n },\n };\n }\n const existingBit = (existing as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n const graphBit = (graph as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n const mergedDepsRequiringBuild = Array.from(\n new Set([...(existingBit?.depsRequiringBuild ?? []), ...(graphBit?.depsRequiringBuild ?? [])])\n ).sort();\n const merged = {\n ...existing,\n // Keep the existing lockfile's schema version. convertGraphToLockfile hardcodes\n // lockfileVersion: '9.0', so preferring graph.lockfileVersion would silently\n // downgrade workspaces whose pnpm already writes a newer schema and trigger a\n // full rewrite on the next install.\n lockfileVersion: existing.lockfileVersion ?? graph.lockfileVersion,\n importers,\n packages: mergeEntryRecords(existing.packages, graph.packages),\n snapshots: mergeEntryRecords(existing.snapshots, graph.snapshots),\n };\n // The merged lockfile mixes resolutions from both sides, so it can only\n // claim the readPackage hooks checksum, the resolution settings and the\n // overrides both were resolved with. Otherwise drop them, and pnpm resolves\n // again instead of trusting the mix. A side that adds no resolutions (an\n // empty or link-only one) mixes nothing in, so the other side's values stand.\n if (!hasResolutions(existing)) {\n for (const key of RESOLUTION_CONTEXT_KEYS) {\n if (graph[key] == null) delete merged[key];\n else merged[key] = graph[key] as any;\n }\n } else if (hasResolutions(graph)) {\n if (existing.pnpmfileChecksum !== graph.pnpmfileChecksum) {\n delete merged.pnpmfileChecksum;\n }\n if (!sameRecords(existing.settings, graph.settings)) {\n delete merged.settings;\n }\n if (!sameRecords(existing.overrides, graph.overrides)) {\n delete merged.overrides;\n }\n }\n if (existingBit || graphBit) {\n (merged as LockfileFile & { bit?: Record<string, unknown> }).bit = {\n ...existingBit,\n ...graphBit,\n depsRequiringBuild: mergedDepsRequiringBuild,\n };\n }\n pruneUnreachableLockfileEntries(merged);\n // The merged importers decide which entries only optional edges reach.\n markOptionalOnlyEntries(merged);\n return merged;\n}\n\nfunction hasResolutions(lockfile: LockfileFile): boolean {\n return Object.keys(lockfile.packages ?? {}).length > 0 || Object.keys(lockfile.snapshots ?? {}).length > 0;\n}\n\nfunction sameRecords(record1?: object, record2?: object): boolean {\n if (record1 == null || record2 == null) return record1 === record2;\n const keys = new Set([...Object.keys(record1), ...Object.keys(record2)]);\n return [...keys].every((key) => record1[key] === record2[key]);\n}\n\nfunction mergeEntryRecords<T extends object>(\n existing: Record<string, T> | undefined,\n graph: Record<string, T> | undefined\n): Record<string, T> | undefined {\n if (!existing) return graph;\n if (!graph) return existing;\n const merged: Record<string, T> = { ...existing };\n for (const [key, graphEntry] of Object.entries(graph)) {\n const existingEntry = merged[key];\n merged[key] = existingEntry ? ({ ...existingEntry, ...graphEntry } as T) : graphEntry;\n }\n return merged;\n}\n\n/**\n * Record the install's `excludeLinksFromLockfile` in a lockfile's settings,\n * when it records settings at all. See `dependenciesGraphToLockfile`.\n */\nexport function applyInstallLinkSetting(lockfile: LockfileFile, excludeLinksFromLockfile?: boolean): void {\n if (lockfile.settings && excludeLinksFromLockfile != null) {\n lockfile.settings.excludeLinksFromLockfile = excludeLinksFromLockfile;\n }\n}\n\nfunction pruneUnreachableLockfileEntries(lockfile: LockfileFile): void {\n const reachablePackages = new Set<string>();\n const reachableSnapshots = new Set<string>();\n // An explicit stack: deep dependency chains would overflow the call\n // stack with a recursive walk.\n const stack: string[] = [];\n const visit = (depPath: string) => {\n stack.push(depPath);\n while (stack.length > 0) {\n const current = stack.pop()!;\n if (reachableSnapshots.has(current)) continue;\n reachableSnapshots.add(current);\n reachablePackages.add(removePeerSuffix(current));\n const snapshot = lockfile.snapshots?.[current];\n if (!snapshot) continue;\n for (const depType of ['dependencies', 'optionalDependencies'] as const) {\n for (const [name, ref] of Object.entries(snapshot[depType] ?? {}) as Array<[string, string]>) {\n const subDepPath = refToDepPath(ref, name);\n if (subDepPath != null) stack.push(subDepPath);\n }\n }\n }\n };\n for (const importer of Object.values(lockfile.importers ?? {})) {\n for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies'] as const) {\n for (const [name, dep] of Object.entries(importer[depType] ?? {}) as Array<\n [string, { version?: string } | string]\n >) {\n const version = typeof dep === 'string' ? dep : dep.version;\n const depPath = version ? refToDepPath(version, name) : undefined;\n if (depPath != null) visit(depPath);\n }\n }\n }\n for (const pkgId of Object.keys(lockfile.packages ?? {})) {\n if (!reachablePackages.has(pkgId)) {\n delete lockfile.packages![pkgId];\n }\n }\n for (const depPath of Object.keys(lockfile.snapshots ?? {})) {\n if (!reachableSnapshots.has(depPath)) {\n delete lockfile.snapshots![depPath];\n }\n }\n const bitAttrs = (lockfile as LockfileFile & { bit?: { depsRequiringBuild?: string[] } }).bit;\n if (bitAttrs?.depsRequiringBuild) {\n bitAttrs.depsRequiringBuild = bitAttrs.depsRequiringBuild.filter((depPath) =>\n reachablePackages.has(removePeerSuffix(depPath))\n );\n }\n}\n\nfunction removePeerSuffix(depPath: string): string {\n const suffixStart = depPath.indexOf('(');\n return suffixStart === -1 ? depPath : depPath.slice(0, suffixStart);\n}\n"],"mappings":"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","ignoreList":[]}
|