@teambit/pnpm 1.0.923 → 1.0.925
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.js +32 -16
- package/dist/lockfile-deps-graph-converter.js.map +1 -1
- package/dist/lockfile-deps-graph-converter.spec.js +171 -0
- package/dist/lockfile-deps-graph-converter.spec.js.map +1 -1
- package/dist/pnpm.package-manager.js +12 -5
- package/dist/pnpm.package-manager.js.map +1 -1
- package/dist/{preview-1773176871854.js → preview-1773772887585.js} +2 -2
- package/package.json +7 -7
|
@@ -160,15 +160,17 @@ function buildEdges(lockfile, {
|
|
|
160
160
|
directDependencies,
|
|
161
161
|
componentIdByPkgName
|
|
162
162
|
}) {
|
|
163
|
+
const replaceFileVersion = createFileVersionReplacer(componentIdByPkgName);
|
|
163
164
|
const edges = [];
|
|
164
165
|
for (const [depPath, snapshot] of Object.entries(lockfile.snapshots ?? {})) {
|
|
165
|
-
const neighbours = extractDependenciesFromSnapshot(snapshot);
|
|
166
|
+
const neighbours = extractDependenciesFromSnapshot(snapshot, replaceFileVersion);
|
|
167
|
+
const replacedDepPath = replaceFileVersion(depPath);
|
|
166
168
|
const edge = {
|
|
167
|
-
id:
|
|
169
|
+
id: replacedDepPath,
|
|
168
170
|
neighbours
|
|
169
171
|
};
|
|
170
|
-
const pkgId = dp().removeSuffix(
|
|
171
|
-
if (pkgId !==
|
|
172
|
+
const pkgId = dp().removeSuffix(replacedDepPath);
|
|
173
|
+
if (pkgId !== replacedDepPath) {
|
|
172
174
|
edge.attr = {
|
|
173
175
|
pkgId
|
|
174
176
|
};
|
|
@@ -182,13 +184,16 @@ function buildEdges(lockfile, {
|
|
|
182
184
|
edges.push(edge);
|
|
183
185
|
}
|
|
184
186
|
}
|
|
187
|
+
for (const dep of directDependencies) {
|
|
188
|
+
dep.id = replaceFileVersion(dep.id);
|
|
189
|
+
}
|
|
185
190
|
edges.push({
|
|
186
191
|
id: _objects().DependenciesGraph.ROOT_EDGE_ID,
|
|
187
|
-
neighbours:
|
|
192
|
+
neighbours: directDependencies
|
|
188
193
|
});
|
|
189
|
-
return
|
|
194
|
+
return edges;
|
|
190
195
|
}
|
|
191
|
-
function extractDependenciesFromSnapshot(snapshot) {
|
|
196
|
+
function extractDependenciesFromSnapshot(snapshot, replaceFileVersion) {
|
|
192
197
|
const dependencies = [];
|
|
193
198
|
for (const {
|
|
194
199
|
depTypeField,
|
|
@@ -204,7 +209,7 @@ function extractDependenciesFromSnapshot(snapshot) {
|
|
|
204
209
|
const subDepPath = dp().refToRelative(ref, name);
|
|
205
210
|
if (subDepPath != null) {
|
|
206
211
|
dependencies.push({
|
|
207
|
-
id: subDepPath,
|
|
212
|
+
id: replaceFileVersion(subDepPath),
|
|
208
213
|
optional
|
|
209
214
|
});
|
|
210
215
|
}
|
|
@@ -215,13 +220,17 @@ function extractDependenciesFromSnapshot(snapshot) {
|
|
|
215
220
|
function buildPackages(lockfile, {
|
|
216
221
|
componentIdByPkgName
|
|
217
222
|
}) {
|
|
223
|
+
const replaceFileVersion = createFileVersionReplacer(componentIdByPkgName);
|
|
224
|
+
const depsRequiringBuild = lockfile.bit?.depsRequiringBuild;
|
|
225
|
+
const depsRequiringBuildSet = depsRequiringBuild ? new Set(depsRequiringBuild) : undefined;
|
|
218
226
|
const packages = new Map();
|
|
219
227
|
for (const [pkgId, pkg] of Object.entries(lockfile.packages ?? {})) {
|
|
220
228
|
const graphPkg = (0, _lodash().pick)(pkg, ['bundledDependencies', 'cpu', 'deprecated', 'engines', 'hasBin', 'libc', 'name', 'os', 'peerDependencies', 'peerDependenciesMeta', 'resolution', 'version']);
|
|
221
229
|
if (graphPkg.resolution.type === 'directory') {
|
|
222
230
|
delete graphPkg.resolution;
|
|
223
231
|
}
|
|
224
|
-
const
|
|
232
|
+
const replacedPkgId = replaceFileVersion(pkgId);
|
|
233
|
+
const parsed = dp().parse(replacedPkgId);
|
|
225
234
|
if (parsed.name && componentIdByPkgName.has(parsed.name)) {
|
|
226
235
|
const compId = componentIdByPkgName.get(parsed.name);
|
|
227
236
|
graphPkg.component = {
|
|
@@ -229,19 +238,26 @@ function buildPackages(lockfile, {
|
|
|
229
238
|
scope: compId.scope
|
|
230
239
|
};
|
|
231
240
|
}
|
|
232
|
-
if (
|
|
241
|
+
if (depsRequiringBuildSet?.has(pkgId)) {
|
|
233
242
|
graphPkg.requiresBuild = true;
|
|
234
243
|
}
|
|
235
|
-
packages.set(
|
|
244
|
+
packages.set(replacedPkgId, graphPkg);
|
|
236
245
|
}
|
|
237
|
-
return
|
|
246
|
+
return packages;
|
|
238
247
|
}
|
|
239
|
-
function
|
|
240
|
-
|
|
248
|
+
function createFileVersionReplacer(componentIdByPkgName) {
|
|
249
|
+
if (componentIdByPkgName.size === 0) return s => s;
|
|
250
|
+
const replacements = new Map();
|
|
251
|
+
const escapedNames = [];
|
|
241
252
|
for (const [pkgName, componentId] of componentIdByPkgName.entries()) {
|
|
242
|
-
|
|
253
|
+
replacements.set(pkgName, `${pkgName}@${(0, _componentPackageVersion().snapToSemver)(componentId.version)}`);
|
|
254
|
+
escapedNames.push(pkgName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
243
255
|
}
|
|
244
|
-
|
|
256
|
+
const pattern = new RegExp(`(${escapedNames.join('|')})@file:[^'"(]+`, 'g');
|
|
257
|
+
return s => {
|
|
258
|
+
if (!s.includes('@file:')) return s;
|
|
259
|
+
return s.replace(pattern, (_, name) => replacements.get(name));
|
|
260
|
+
};
|
|
245
261
|
}
|
|
246
262
|
async function convertGraphToLockfile(_graph, {
|
|
247
263
|
manifests,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_path","data","_interopRequireDefault","require","dp","_interopRequireWildcard","_lodash","_bitError","_componentPackageVersion","_objects","_lockfile","_normalizePath","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","convertLockfileToGraphFromCapsule","lockfile","componentRelativeDir","componentIdByPkgName","componentImporter","importers","directDependencies","depType","lifecycle","optional","importerDepsToNeighbours","_convertLockfileToGraph","importerDependencies","neighbours","name","version","specifier","entries","id","refToRelative","convertLockfileToGraph","pkgName","componentRootDir","componentDevImporter","devDependencies","lockedPkgDepPath","dependencies","lockedPkg","snapshots","packages","removeSuffix","DependenciesGraph","edges","buildEdges","buildPackages","depPath","snapshot","extractDependenciesFromSnapshot","edge","pkgId","attr","transitivePeerDependencies","ROOT_EDGE_ID","replaceFileVersions","depTypeField","ref","subDepPath","Map","pkg","graphPkg","pick","resolution","type","parsed","parse","compId","component","fullName","scope","bit","depsRequiringBuild","includes","requiresBuild","Array","from","obj","s","JSON","stringify","componentId","replaceAll","RegExp","snapToSemver","convertGraphToLockfile","_graph","manifests","rootDir","resolve","graphString","serialize","graph","deserialize","allEdgeIds","Set","map","optionalDeps","prodDeps","partition","dep","convertToDeps","optionalDependencies","assign","convertGraphPackageToLockfilePackage","sort","lockfileVersion","rootEdge","findRootEdge","projectDir","manifest","projectId","getLockfileImporterId","startsWith","normalizePath","path","relative","substring","edgeId","find","directDep","depPathToRef","pkgsToResolve","getPkgsToResolve","Promise","all","pkgToResolve","alias","bareSpecifier","lockfileDir","preferredVersions","integrity","BitError","deps","pkgsInTheWorkspaces","values","patchHash","peerDepGraphHash","pkgAttr"],"sources":["lockfile-deps-graph-converter.ts"],"sourcesContent":["import path from 'path';\nimport { type ProjectManifest } from '@pnpm/types';\nimport { type LockfileFileProjectResolvedDependencies } from '@pnpm/lockfile.types';\nimport { type ResolveFunction } from '@pnpm/client';\nimport * as dp from '@pnpm/dependency-path';\nimport { pick, partition } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport {\n DependenciesGraph,\n type PackagesMap,\n type PackageAttributes,\n type DependencyEdge,\n type DependencyNeighbour,\n} from '@teambit/objects';\nimport {\n type CalcDepsGraphOptions,\n type CalcDepsGraphForComponentOptions,\n type ComponentIdByPkgName,\n} from '@teambit/dependency-resolver';\nimport { getLockfileImporterId } from '@pnpm/lockfile.fs';\nimport normalizePath from 'normalize-path';\nimport { type BitLockfileFile } from './lynx';\n\nfunction convertLockfileToGraphFromCapsule(\n lockfile: BitLockfileFile,\n {\n componentRelativeDir,\n componentIdByPkgName,\n }: Pick<CalcDepsGraphOptions & CalcDepsGraphForComponentOptions, 'componentRelativeDir' | 'componentIdByPkgName'>\n): DependenciesGraph {\n const componentImporter = lockfile.importers![componentRelativeDir];\n const directDependencies: DependencyNeighbour[] = [];\n for (const depType of ['dependencies' as const, 'optionalDependencies' as const, 'devDependencies' as const]) {\n if (componentImporter[depType] != null) {\n const lifecycle = depType === 'devDependencies' ? 'dev' : 'runtime';\n const optional = depType === 'optionalDependencies';\n directDependencies.push(...importerDepsToNeighbours(componentImporter[depType]!, lifecycle, optional));\n }\n }\n return _convertLockfileToGraph(lockfile, { componentIdByPkgName, directDependencies });\n}\n\nfunction importerDepsToNeighbours(\n importerDependencies: LockfileFileProjectResolvedDependencies,\n lifecycle: 'dev' | 'runtime',\n optional: boolean\n): DependencyNeighbour[] {\n const neighbours: DependencyNeighbour[] = [];\n for (const [name, { version, specifier }] of Object.entries(importerDependencies) as any) {\n const id = dp.refToRelative(version, name)!;\n neighbours.push({ name, specifier, id, lifecycle, optional });\n }\n return neighbours;\n}\n\nexport function convertLockfileToGraph(\n lockfile: BitLockfileFile,\n {\n pkgName,\n componentRootDir,\n componentRelativeDir,\n componentIdByPkgName,\n }: Omit<CalcDepsGraphOptions & CalcDepsGraphForComponentOptions, 'rootDir' | 'components' | 'component'>\n): DependenciesGraph {\n if (componentRootDir == null || pkgName == null) {\n return convertLockfileToGraphFromCapsule(lockfile, { componentRelativeDir, componentIdByPkgName });\n }\n const componentDevImporter = lockfile.importers![componentRelativeDir];\n const directDependencies: DependencyNeighbour[] = [];\n if (componentDevImporter.devDependencies != null) {\n directDependencies.push(...importerDepsToNeighbours(componentDevImporter.devDependencies, 'dev', false));\n }\n const lockedPkgDepPath = `${pkgName}@${lockfile.importers![componentRootDir].dependencies![pkgName].version}`;\n const lockedPkg = lockfile.snapshots![lockedPkgDepPath];\n for (const depType of ['dependencies' as const, 'optionalDependencies' as const]) {\n const optional = depType === 'optionalDependencies';\n for (const [name, version] of Object.entries(lockedPkg[depType] ?? {})) {\n const id = dp.refToRelative(version, name)!;\n directDependencies.push({\n name,\n specifier: componentDevImporter[depType]?.[name]?.specifier ?? '*',\n id,\n lifecycle: 'runtime',\n optional,\n });\n }\n }\n delete lockfile.snapshots![lockedPkgDepPath];\n delete lockfile.packages![dp.removeSuffix(lockedPkgDepPath)];\n return _convertLockfileToGraph(lockfile, { componentIdByPkgName, directDependencies });\n}\n\nfunction _convertLockfileToGraph(\n lockfile: BitLockfileFile,\n {\n componentIdByPkgName,\n directDependencies,\n }: {\n componentIdByPkgName: ComponentIdByPkgName;\n directDependencies: DependencyNeighbour[];\n }\n): DependenciesGraph {\n return new DependenciesGraph({\n edges: buildEdges(lockfile, { directDependencies, componentIdByPkgName }),\n packages: buildPackages(lockfile, { componentIdByPkgName }),\n });\n}\n\nfunction buildEdges(\n lockfile: BitLockfileFile,\n {\n directDependencies,\n componentIdByPkgName,\n }: {\n directDependencies: DependencyNeighbour[];\n componentIdByPkgName: ComponentIdByPkgName;\n }\n): DependencyEdge[] {\n const edges: DependencyEdge[] = [];\n for (const [depPath, snapshot] of Object.entries(lockfile.snapshots ?? {})) {\n const neighbours = extractDependenciesFromSnapshot(snapshot);\n const edge: DependencyEdge = {\n id: depPath,\n neighbours,\n };\n const pkgId = dp.removeSuffix(depPath);\n if (pkgId !== depPath) {\n edge.attr = { pkgId };\n }\n if (snapshot.transitivePeerDependencies) {\n edge.attr = {\n ...edge.attr,\n transitivePeerDependencies: snapshot.transitivePeerDependencies,\n };\n }\n if (edge.neighbours.length > 0 || edge.id !== pkgId) {\n edges.push(edge);\n }\n }\n edges.push({\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: replaceFileVersions(componentIdByPkgName, directDependencies),\n });\n return replaceFileVersions(componentIdByPkgName, edges);\n}\n\nfunction extractDependenciesFromSnapshot(snapshot: any): DependencyNeighbour[] {\n const dependencies: DependencyNeighbour[] = [];\n\n for (const { depTypeField, optional } of [\n { depTypeField: 'dependencies', optional: false },\n { depTypeField: 'optionalDependencies', optional: true },\n ]) {\n for (const [name, ref] of Object.entries((snapshot[depTypeField] ?? {}) as Record<string, string>)) {\n const subDepPath = dp.refToRelative(ref, name);\n if (subDepPath != null) {\n dependencies.push({ id: subDepPath, optional });\n }\n }\n }\n\n return dependencies;\n}\n\nfunction buildPackages(\n lockfile: BitLockfileFile,\n { componentIdByPkgName }: { componentIdByPkgName: ComponentIdByPkgName }\n): PackagesMap {\n const packages: PackagesMap = new Map();\n for (const [pkgId, pkg] of Object.entries(lockfile.packages ?? {})) {\n const graphPkg = pick(pkg, [\n 'bundledDependencies',\n 'cpu',\n 'deprecated',\n 'engines',\n 'hasBin',\n 'libc',\n 'name',\n 'os',\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'resolution',\n 'version',\n ]) as any;\n if (graphPkg.resolution.type === 'directory') {\n delete graphPkg.resolution;\n }\n const parsed = dp.parse(pkgId);\n if (parsed.name && componentIdByPkgName.has(parsed.name)) {\n const compId = componentIdByPkgName.get(parsed.name)!;\n graphPkg.component = {\n name: compId.fullName,\n scope: compId.scope,\n };\n }\n if (lockfile.bit?.depsRequiringBuild?.includes(pkgId)) {\n graphPkg.requiresBuild = true;\n }\n packages.set(pkgId, graphPkg);\n }\n return new Map(replaceFileVersions(componentIdByPkgName, Array.from(packages.entries())));\n}\n\nfunction replaceFileVersions<T>(componentIdByPkgName: ComponentIdByPkgName, obj: T): T {\n let s = JSON.stringify(obj);\n for (const [pkgName, componentId] of componentIdByPkgName.entries()) {\n s = s.replaceAll(new RegExp(`${pkgName}@file:[^'\"(]+`, 'g'), `${pkgName}@${snapToSemver(componentId.version)}`);\n }\n return JSON.parse(s);\n}\n\nexport async function convertGraphToLockfile(\n _graph: DependenciesGraph,\n {\n manifests,\n rootDir,\n resolve,\n }: {\n manifests: Record<string, ProjectManifest>;\n rootDir: string;\n resolve: ResolveFunction;\n }\n): Promise<BitLockfileFile> {\n const graphString = _graph.serialize();\n const graph = DependenciesGraph.deserialize(graphString)!;\n const packages = {};\n const snapshots = {};\n const allEdgeIds = new Set(graph.edges.map(({ id }) => id));\n\n for (const edge of graph.edges) {\n if (edge.id === DependenciesGraph.ROOT_EDGE_ID) continue;\n const pkgId = edge.attr?.pkgId ?? edge.id;\n snapshots[edge.id] = {};\n packages[pkgId] = {};\n const [optionalDeps, prodDeps] = partition(edge.neighbours, (dep) => dep.optional);\n if (prodDeps.length) {\n snapshots[edge.id].dependencies = convertToDeps(prodDeps);\n }\n if (optionalDeps.length) {\n snapshots[edge.id].optionalDependencies = convertToDeps(optionalDeps);\n }\n const graphPkg = graph.packages.get(pkgId);\n if (graphPkg != null) {\n Object.assign(packages[pkgId], convertGraphPackageToLockfilePackage(graphPkg));\n }\n }\n for (const [pkgId, graphPkg] of graph.packages.entries()) {\n if (packages[pkgId] == null) {\n packages[pkgId] = convertGraphPackageToLockfilePackage(graphPkg);\n snapshots[pkgId] = {};\n }\n }\n const depsRequiringBuild: string[] = [];\n for (const [pkgId, { requiresBuild }] of graph.packages.entries()) {\n if (requiresBuild) {\n depsRequiringBuild.push(pkgId);\n }\n }\n depsRequiringBuild.sort();\n const lockfile: BitLockfileFile & Required<Pick<BitLockfileFile, 'packages'>> = {\n lockfileVersion: '9.0',\n packages,\n snapshots,\n importers: {},\n bit: { depsRequiringBuild },\n };\n const rootEdge = graph.findRootEdge();\n if (rootEdge) {\n for (const [projectDir, manifest] of Object.entries(manifests)) {\n const projectId = getLockfileImporterId(rootDir, projectDir);\n lockfile.importers![projectId] = {\n dependencies: {},\n devDependencies: {},\n optionalDependencies: {},\n };\n for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies']) {\n for (const [name, specifier] of Object.entries(manifest[depType] ?? {}) as Array<[string, string]>) {\n if (specifier.startsWith('link:')) {\n const version = `link:${normalizePath(path.relative(projectDir, specifier.substring(5)))}`;\n lockfile.importers![projectId][depType][name] = { version, specifier };\n } else {\n const edgeId = rootEdge.neighbours.find(\n (directDep) =>\n directDep.name === name &&\n (directDep.specifier === specifier || dp.removeSuffix(directDep.id) === `${name}@${specifier}`)\n )?.id;\n if (edgeId) {\n const parsed = dp.parse(edgeId);\n const ref = depPathToRef(parsed);\n lockfile.importers![projectId][depType][name] = { version: ref, specifier };\n }\n }\n }\n }\n }\n }\n const pkgsToResolve = getPkgsToResolve(lockfile, manifests);\n await Promise.all(\n pkgsToResolve.map(async (pkgToResolve) => {\n if (lockfile.packages[pkgToResolve.pkgId].resolution == null) {\n const { resolution } = await resolve(\n {\n alias: pkgToResolve.name,\n bareSpecifier: pkgToResolve.version,\n },\n {\n lockfileDir: '',\n projectDir: '',\n preferredVersions: {},\n }\n );\n if ('integrity' in resolution && resolution.integrity) {\n lockfile.packages[pkgToResolve.pkgId].resolution = {\n integrity: resolution.integrity,\n };\n }\n }\n })\n );\n // Validate the generated lockfile\n for (const [depPath, pkg] of Object.entries(lockfile.packages)) {\n if (pkg.resolution == null || Object.keys(pkg.resolution).length === 0) {\n throw new BitError(\n `Failed to generate a valid lockfile. The \"packages['${depPath}'] entry doesn't have a \"resolution\" field.`\n );\n }\n }\n return lockfile;\n\n function convertToDeps(neighbours: DependencyNeighbour[]) {\n const deps = {};\n for (const { id } of neighbours) {\n const parsed = dp.parse(id);\n deps[parsed.name!] = depPathToRef(parsed);\n if (!allEdgeIds.has(id)) {\n snapshots[id] = {};\n packages[id] = convertGraphPackageToLockfilePackage(graph.packages.get(id)!);\n }\n }\n return deps;\n }\n}\n\ninterface PkgToResolve {\n name: string;\n version: string;\n pkgId: string;\n}\n\nfunction getPkgsToResolve(lockfile: BitLockfileFile, manifests: Record<string, ProjectManifest>): PkgToResolve[] {\n const pkgsToResolve: PkgToResolve[] = [];\n const pkgsInTheWorkspaces = new Map<string, string>();\n for (const { name, version } of Object.values(manifests)) {\n if (name && version) {\n pkgsInTheWorkspaces.set(name, version);\n }\n }\n for (const [pkgId, pkg] of Object.entries(lockfile.packages ?? {})) {\n if (pkg.resolution == null || ('type' in pkg.resolution && pkg.resolution.type === 'directory')) {\n const parsed = dp.parse(pkgId);\n if (\n parsed.name &&\n parsed.version &&\n (!pkgsInTheWorkspaces.has(parsed.name) || pkgsInTheWorkspaces.get(parsed.name) !== parsed.version)\n ) {\n pkgsToResolve.push({\n name: parsed.name,\n version: parsed.version,\n pkgId,\n });\n }\n }\n }\n return pkgsToResolve;\n}\n\nfunction depPathToRef(depPath: dp.DependencyPath): string {\n return `${depPath.version}${depPath.patchHash ?? ''}${depPath.peerDepGraphHash ?? ''}`;\n}\n\nfunction convertGraphPackageToLockfilePackage(pkgAttr: PackageAttributes) {\n return pick(pkgAttr, [\n 'bundledDependencies',\n 'cpu',\n 'deprecated',\n 'engines',\n 'hasBin',\n 'libc',\n 'name',\n 'os',\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'resolution',\n 'version',\n ]);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_path","data","_interopRequireDefault","require","dp","_interopRequireWildcard","_lodash","_bitError","_componentPackageVersion","_objects","_lockfile","_normalizePath","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","convertLockfileToGraphFromCapsule","lockfile","componentRelativeDir","componentIdByPkgName","componentImporter","importers","directDependencies","depType","lifecycle","optional","importerDepsToNeighbours","_convertLockfileToGraph","importerDependencies","neighbours","name","version","specifier","entries","id","refToRelative","convertLockfileToGraph","pkgName","componentRootDir","componentDevImporter","devDependencies","lockedPkgDepPath","dependencies","lockedPkg","snapshots","packages","removeSuffix","DependenciesGraph","edges","buildEdges","buildPackages","replaceFileVersion","createFileVersionReplacer","depPath","snapshot","extractDependenciesFromSnapshot","replacedDepPath","edge","pkgId","attr","transitivePeerDependencies","dep","ROOT_EDGE_ID","depTypeField","ref","subDepPath","depsRequiringBuild","bit","depsRequiringBuildSet","Set","undefined","Map","pkg","graphPkg","pick","resolution","type","replacedPkgId","parsed","parse","compId","component","fullName","scope","requiresBuild","size","s","replacements","escapedNames","componentId","snapToSemver","replace","pattern","RegExp","join","includes","_","convertGraphToLockfile","_graph","manifests","rootDir","resolve","graphString","serialize","graph","deserialize","allEdgeIds","map","optionalDeps","prodDeps","partition","convertToDeps","optionalDependencies","assign","convertGraphPackageToLockfilePackage","sort","lockfileVersion","rootEdge","findRootEdge","projectDir","manifest","projectId","getLockfileImporterId","startsWith","normalizePath","path","relative","substring","edgeId","find","directDep","depPathToRef","pkgsToResolve","getPkgsToResolve","Promise","all","pkgToResolve","alias","bareSpecifier","lockfileDir","preferredVersions","integrity","BitError","deps","pkgsInTheWorkspaces","values","patchHash","peerDepGraphHash","pkgAttr"],"sources":["lockfile-deps-graph-converter.ts"],"sourcesContent":["import path from 'path';\nimport { type ProjectManifest } from '@pnpm/types';\nimport { type LockfileFileProjectResolvedDependencies } from '@pnpm/lockfile.types';\nimport { type ResolveFunction } from '@pnpm/client';\nimport * as dp from '@pnpm/dependency-path';\nimport { pick, partition } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport {\n DependenciesGraph,\n type PackagesMap,\n type PackageAttributes,\n type DependencyEdge,\n type DependencyNeighbour,\n} from '@teambit/objects';\nimport {\n type CalcDepsGraphOptions,\n type CalcDepsGraphForComponentOptions,\n type ComponentIdByPkgName,\n} from '@teambit/dependency-resolver';\nimport { getLockfileImporterId } from '@pnpm/lockfile.fs';\nimport normalizePath from 'normalize-path';\nimport { type BitLockfileFile } from './lynx';\n\nfunction convertLockfileToGraphFromCapsule(\n lockfile: BitLockfileFile,\n {\n componentRelativeDir,\n componentIdByPkgName,\n }: Pick<CalcDepsGraphOptions & CalcDepsGraphForComponentOptions, 'componentRelativeDir' | 'componentIdByPkgName'>\n): DependenciesGraph {\n const componentImporter = lockfile.importers![componentRelativeDir];\n const directDependencies: DependencyNeighbour[] = [];\n for (const depType of ['dependencies' as const, 'optionalDependencies' as const, 'devDependencies' as const]) {\n if (componentImporter[depType] != null) {\n const lifecycle = depType === 'devDependencies' ? 'dev' : 'runtime';\n const optional = depType === 'optionalDependencies';\n directDependencies.push(...importerDepsToNeighbours(componentImporter[depType]!, lifecycle, optional));\n }\n }\n return _convertLockfileToGraph(lockfile, { componentIdByPkgName, directDependencies });\n}\n\nfunction importerDepsToNeighbours(\n importerDependencies: LockfileFileProjectResolvedDependencies,\n lifecycle: 'dev' | 'runtime',\n optional: boolean\n): DependencyNeighbour[] {\n const neighbours: DependencyNeighbour[] = [];\n for (const [name, { version, specifier }] of Object.entries(importerDependencies) as any) {\n const id = dp.refToRelative(version, name)!;\n neighbours.push({ name, specifier, id, lifecycle, optional });\n }\n return neighbours;\n}\n\nexport function convertLockfileToGraph(\n lockfile: BitLockfileFile,\n {\n pkgName,\n componentRootDir,\n componentRelativeDir,\n componentIdByPkgName,\n }: Omit<CalcDepsGraphOptions & CalcDepsGraphForComponentOptions, 'rootDir' | 'components' | 'component'>\n): DependenciesGraph {\n if (componentRootDir == null || pkgName == null) {\n return convertLockfileToGraphFromCapsule(lockfile, { componentRelativeDir, componentIdByPkgName });\n }\n const componentDevImporter = lockfile.importers![componentRelativeDir];\n const directDependencies: DependencyNeighbour[] = [];\n if (componentDevImporter.devDependencies != null) {\n directDependencies.push(...importerDepsToNeighbours(componentDevImporter.devDependencies, 'dev', false));\n }\n const lockedPkgDepPath = `${pkgName}@${lockfile.importers![componentRootDir].dependencies![pkgName].version}`;\n const lockedPkg = lockfile.snapshots![lockedPkgDepPath];\n for (const depType of ['dependencies' as const, 'optionalDependencies' as const]) {\n const optional = depType === 'optionalDependencies';\n for (const [name, version] of Object.entries(lockedPkg[depType] ?? {})) {\n const id = dp.refToRelative(version, name)!;\n directDependencies.push({\n name,\n specifier: componentDevImporter[depType]?.[name]?.specifier ?? '*',\n id,\n lifecycle: 'runtime',\n optional,\n });\n }\n }\n delete lockfile.snapshots![lockedPkgDepPath];\n delete lockfile.packages![dp.removeSuffix(lockedPkgDepPath)];\n return _convertLockfileToGraph(lockfile, { componentIdByPkgName, directDependencies });\n}\n\nfunction _convertLockfileToGraph(\n lockfile: BitLockfileFile,\n {\n componentIdByPkgName,\n directDependencies,\n }: {\n componentIdByPkgName: ComponentIdByPkgName;\n directDependencies: DependencyNeighbour[];\n }\n): DependenciesGraph {\n return new DependenciesGraph({\n edges: buildEdges(lockfile, { directDependencies, componentIdByPkgName }),\n packages: buildPackages(lockfile, { componentIdByPkgName }),\n });\n}\n\nfunction buildEdges(\n lockfile: BitLockfileFile,\n {\n directDependencies,\n componentIdByPkgName,\n }: {\n directDependencies: DependencyNeighbour[];\n componentIdByPkgName: ComponentIdByPkgName;\n }\n): DependencyEdge[] {\n const replaceFileVersion = createFileVersionReplacer(componentIdByPkgName);\n const edges: DependencyEdge[] = [];\n for (const [depPath, snapshot] of Object.entries(lockfile.snapshots ?? {})) {\n const neighbours = extractDependenciesFromSnapshot(snapshot, replaceFileVersion);\n const replacedDepPath = replaceFileVersion(depPath);\n const edge: DependencyEdge = {\n id: replacedDepPath,\n neighbours,\n };\n const pkgId = dp.removeSuffix(replacedDepPath);\n if (pkgId !== replacedDepPath) {\n edge.attr = { pkgId };\n }\n if (snapshot.transitivePeerDependencies) {\n edge.attr = {\n ...edge.attr,\n transitivePeerDependencies: snapshot.transitivePeerDependencies,\n };\n }\n if (edge.neighbours.length > 0 || edge.id !== pkgId) {\n edges.push(edge);\n }\n }\n for (const dep of directDependencies) {\n dep.id = replaceFileVersion(dep.id);\n }\n edges.push({\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: directDependencies,\n });\n return edges;\n}\n\nfunction extractDependenciesFromSnapshot(\n snapshot: any,\n replaceFileVersion: (s: string) => string\n): DependencyNeighbour[] {\n const dependencies: DependencyNeighbour[] = [];\n\n for (const { depTypeField, optional } of [\n { depTypeField: 'dependencies', optional: false },\n { depTypeField: 'optionalDependencies', optional: true },\n ]) {\n for (const [name, ref] of Object.entries((snapshot[depTypeField] ?? {}) as Record<string, string>)) {\n const subDepPath = dp.refToRelative(ref, name);\n if (subDepPath != null) {\n dependencies.push({ id: replaceFileVersion(subDepPath), optional });\n }\n }\n }\n\n return dependencies;\n}\n\nfunction buildPackages(\n lockfile: BitLockfileFile,\n { componentIdByPkgName }: { componentIdByPkgName: ComponentIdByPkgName }\n): PackagesMap {\n const replaceFileVersion = createFileVersionReplacer(componentIdByPkgName);\n const depsRequiringBuild = lockfile.bit?.depsRequiringBuild;\n const depsRequiringBuildSet = depsRequiringBuild ? new Set(depsRequiringBuild) : undefined;\n const packages: PackagesMap = new Map();\n for (const [pkgId, pkg] of Object.entries(lockfile.packages ?? {})) {\n const graphPkg = pick(pkg, [\n 'bundledDependencies',\n 'cpu',\n 'deprecated',\n 'engines',\n 'hasBin',\n 'libc',\n 'name',\n 'os',\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'resolution',\n 'version',\n ]) as any;\n if (graphPkg.resolution.type === 'directory') {\n delete graphPkg.resolution;\n }\n const replacedPkgId = replaceFileVersion(pkgId);\n const parsed = dp.parse(replacedPkgId);\n if (parsed.name && componentIdByPkgName.has(parsed.name)) {\n const compId = componentIdByPkgName.get(parsed.name)!;\n graphPkg.component = {\n name: compId.fullName,\n scope: compId.scope,\n };\n }\n if (depsRequiringBuildSet?.has(pkgId)) {\n graphPkg.requiresBuild = true;\n }\n packages.set(replacedPkgId, graphPkg);\n }\n return packages;\n}\n\nfunction createFileVersionReplacer(componentIdByPkgName: ComponentIdByPkgName): (s: string) => string {\n if (componentIdByPkgName.size === 0) return (s) => s;\n\n const replacements = new Map<string, string>();\n const escapedNames: string[] = [];\n for (const [pkgName, componentId] of componentIdByPkgName.entries()) {\n replacements.set(pkgName, `${pkgName}@${snapToSemver(componentId.version)}`);\n escapedNames.push(pkgName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'));\n }\n const pattern = new RegExp(`(${escapedNames.join('|')})@file:[^'\"(]+`, 'g');\n\n return (s: string) => {\n if (!s.includes('@file:')) return s;\n return s.replace(pattern, (_, name) => replacements.get(name)!);\n };\n}\n\nexport async function convertGraphToLockfile(\n _graph: DependenciesGraph,\n {\n manifests,\n rootDir,\n resolve,\n }: {\n manifests: Record<string, ProjectManifest>;\n rootDir: string;\n resolve: ResolveFunction;\n }\n): Promise<BitLockfileFile> {\n const graphString = _graph.serialize();\n const graph = DependenciesGraph.deserialize(graphString)!;\n const packages = {};\n const snapshots = {};\n const allEdgeIds = new Set(graph.edges.map(({ id }) => id));\n\n for (const edge of graph.edges) {\n if (edge.id === DependenciesGraph.ROOT_EDGE_ID) continue;\n const pkgId = edge.attr?.pkgId ?? edge.id;\n snapshots[edge.id] = {};\n packages[pkgId] = {};\n const [optionalDeps, prodDeps] = partition(edge.neighbours, (dep) => dep.optional);\n if (prodDeps.length) {\n snapshots[edge.id].dependencies = convertToDeps(prodDeps);\n }\n if (optionalDeps.length) {\n snapshots[edge.id].optionalDependencies = convertToDeps(optionalDeps);\n }\n const graphPkg = graph.packages.get(pkgId);\n if (graphPkg != null) {\n Object.assign(packages[pkgId], convertGraphPackageToLockfilePackage(graphPkg));\n }\n }\n for (const [pkgId, graphPkg] of graph.packages.entries()) {\n if (packages[pkgId] == null) {\n packages[pkgId] = convertGraphPackageToLockfilePackage(graphPkg);\n snapshots[pkgId] = {};\n }\n }\n const depsRequiringBuild: string[] = [];\n for (const [pkgId, { requiresBuild }] of graph.packages.entries()) {\n if (requiresBuild) {\n depsRequiringBuild.push(pkgId);\n }\n }\n depsRequiringBuild.sort();\n const lockfile: BitLockfileFile & Required<Pick<BitLockfileFile, 'packages'>> = {\n lockfileVersion: '9.0',\n packages,\n snapshots,\n importers: {},\n bit: { depsRequiringBuild },\n };\n const rootEdge = graph.findRootEdge();\n if (rootEdge) {\n for (const [projectDir, manifest] of Object.entries(manifests)) {\n const projectId = getLockfileImporterId(rootDir, projectDir);\n lockfile.importers![projectId] = {\n dependencies: {},\n devDependencies: {},\n optionalDependencies: {},\n };\n for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies']) {\n for (const [name, specifier] of Object.entries(manifest[depType] ?? {}) as Array<[string, string]>) {\n if (specifier.startsWith('link:')) {\n const version = `link:${normalizePath(path.relative(projectDir, specifier.substring(5)))}`;\n lockfile.importers![projectId][depType][name] = { version, specifier };\n } else {\n const edgeId = rootEdge.neighbours.find(\n (directDep) =>\n directDep.name === name &&\n (directDep.specifier === specifier || dp.removeSuffix(directDep.id) === `${name}@${specifier}`)\n )?.id;\n if (edgeId) {\n const parsed = dp.parse(edgeId);\n const ref = depPathToRef(parsed);\n lockfile.importers![projectId][depType][name] = { version: ref, specifier };\n }\n }\n }\n }\n }\n }\n const pkgsToResolve = getPkgsToResolve(lockfile, manifests);\n await Promise.all(\n pkgsToResolve.map(async (pkgToResolve) => {\n if (lockfile.packages[pkgToResolve.pkgId].resolution == null) {\n const { resolution } = await resolve(\n {\n alias: pkgToResolve.name,\n bareSpecifier: pkgToResolve.version,\n },\n {\n lockfileDir: '',\n projectDir: '',\n preferredVersions: {},\n }\n );\n if ('integrity' in resolution && resolution.integrity) {\n lockfile.packages[pkgToResolve.pkgId].resolution = {\n integrity: resolution.integrity,\n };\n }\n }\n })\n );\n // Validate the generated lockfile\n for (const [depPath, pkg] of Object.entries(lockfile.packages)) {\n if (pkg.resolution == null || Object.keys(pkg.resolution).length === 0) {\n throw new BitError(\n `Failed to generate a valid lockfile. The \"packages['${depPath}'] entry doesn't have a \"resolution\" field.`\n );\n }\n }\n return lockfile;\n\n function convertToDeps(neighbours: DependencyNeighbour[]) {\n const deps = {};\n for (const { id } of neighbours) {\n const parsed = dp.parse(id);\n deps[parsed.name!] = depPathToRef(parsed);\n if (!allEdgeIds.has(id)) {\n snapshots[id] = {};\n packages[id] = convertGraphPackageToLockfilePackage(graph.packages.get(id)!);\n }\n }\n return deps;\n }\n}\n\ninterface PkgToResolve {\n name: string;\n version: string;\n pkgId: string;\n}\n\nfunction getPkgsToResolve(lockfile: BitLockfileFile, manifests: Record<string, ProjectManifest>): PkgToResolve[] {\n const pkgsToResolve: PkgToResolve[] = [];\n const pkgsInTheWorkspaces = new Map<string, string>();\n for (const { name, version } of Object.values(manifests)) {\n if (name && version) {\n pkgsInTheWorkspaces.set(name, version);\n }\n }\n for (const [pkgId, pkg] of Object.entries(lockfile.packages ?? {})) {\n if (pkg.resolution == null || ('type' in pkg.resolution && pkg.resolution.type === 'directory')) {\n const parsed = dp.parse(pkgId);\n if (\n parsed.name &&\n parsed.version &&\n (!pkgsInTheWorkspaces.has(parsed.name) || pkgsInTheWorkspaces.get(parsed.name) !== parsed.version)\n ) {\n pkgsToResolve.push({\n name: parsed.name,\n version: parsed.version,\n pkgId,\n });\n }\n }\n }\n return pkgsToResolve;\n}\n\nfunction depPathToRef(depPath: dp.DependencyPath): string {\n return `${depPath.version}${depPath.patchHash ?? ''}${depPath.peerDepGraphHash ?? ''}`;\n}\n\nfunction convertGraphPackageToLockfilePackage(pkgAttr: PackageAttributes) {\n return pick(pkgAttr, [\n 'bundledDependencies',\n 'cpu',\n 'deprecated',\n 'engines',\n 'hasBin',\n 'libc',\n 'name',\n 'os',\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'resolution',\n 'version',\n ]);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -351,6 +351,177 @@ describe('convertLockfileToGraph simple case', () => {
|
|
|
351
351
|
});
|
|
352
352
|
});
|
|
353
353
|
});
|
|
354
|
+
describe('convertLockfileToGraph benchmark', () => {
|
|
355
|
+
function generateLargeLockfile(numPackages, numComponents) {
|
|
356
|
+
const snapshots = {};
|
|
357
|
+
const packages = {};
|
|
358
|
+
const importerDeps = {};
|
|
359
|
+
const componentIdByPkgName = new Map();
|
|
360
|
+
|
|
361
|
+
// Generate regular packages
|
|
362
|
+
for (let i = 0; i < numPackages; i++) {
|
|
363
|
+
const pkgId = `pkg-${i}@1.0.${i}`;
|
|
364
|
+
packages[pkgId] = {
|
|
365
|
+
resolution: {
|
|
366
|
+
integrity: `sha512-${i}`
|
|
367
|
+
}
|
|
368
|
+
};
|
|
369
|
+
// Each package depends on the next 2 packages (creating a graph)
|
|
370
|
+
const deps = {};
|
|
371
|
+
if (i + 1 < numPackages) deps[`pkg-${i + 1}`] = `1.0.${i + 1}`;
|
|
372
|
+
if (i + 2 < numPackages) deps[`pkg-${i + 2}`] = `1.0.${i + 2}`;
|
|
373
|
+
snapshots[pkgId] = Object.keys(deps).length > 0 ? {
|
|
374
|
+
dependencies: deps
|
|
375
|
+
} : {};
|
|
376
|
+
if (i < 50) {
|
|
377
|
+
importerDeps[`pkg-${i}`] = {
|
|
378
|
+
version: `1.0.${i}`,
|
|
379
|
+
specifier: `^1.0.${i}`
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
// Generate component packages (with file: protocol)
|
|
385
|
+
for (let i = 0; i < numComponents; i++) {
|
|
386
|
+
const compName = `@my-scope/comp-${i}`;
|
|
387
|
+
const compPath = `comps/comp-${i}`;
|
|
388
|
+
const fileDepPath = `${compName}@file:${compPath}`;
|
|
389
|
+
packages[fileDepPath] = {
|
|
390
|
+
resolution: {
|
|
391
|
+
directory: compPath,
|
|
392
|
+
type: 'directory'
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
snapshots[fileDepPath] = {
|
|
396
|
+
dependencies: {
|
|
397
|
+
[`pkg-${i % numPackages}`]: `1.0.${i % numPackages}`
|
|
398
|
+
}
|
|
399
|
+
};
|
|
400
|
+
componentIdByPkgName.set(compName, _component().ComponentID.fromString(`my-scope/comp-${i}@0.0.${i}`));
|
|
401
|
+
}
|
|
402
|
+
const lockfile = {
|
|
403
|
+
bit: {
|
|
404
|
+
depsRequiringBuild: []
|
|
405
|
+
},
|
|
406
|
+
importers: {
|
|
407
|
+
'.': {},
|
|
408
|
+
'node_modules/.bit_roots/env': {
|
|
409
|
+
dependencies: Object.fromEntries(Array.from({
|
|
410
|
+
length: numComponents
|
|
411
|
+
}, (_, i) => [`@my-scope/comp-${i}`, {
|
|
412
|
+
version: `file:comps/comp-${i}`,
|
|
413
|
+
specifier: '*'
|
|
414
|
+
}]))
|
|
415
|
+
},
|
|
416
|
+
'comps/comp-0': {
|
|
417
|
+
dependencies: importerDeps
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
lockfileVersion: '9.0',
|
|
421
|
+
snapshots,
|
|
422
|
+
packages
|
|
423
|
+
};
|
|
424
|
+
return {
|
|
425
|
+
lockfile,
|
|
426
|
+
componentIdByPkgName
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
it('should handle 1000 packages and 50 components within 500ms', () => {
|
|
430
|
+
const {
|
|
431
|
+
lockfile,
|
|
432
|
+
componentIdByPkgName
|
|
433
|
+
} = generateLargeLockfile(1000, 50);
|
|
434
|
+
const start = performance.now();
|
|
435
|
+
const graph = (0, _lockfileDepsGraphConverter().convertLockfileToGraph)(lockfile, {
|
|
436
|
+
pkgName: '@my-scope/comp-0',
|
|
437
|
+
componentRelativeDir: 'comps/comp-0',
|
|
438
|
+
componentRootDir: 'node_modules/.bit_roots/env',
|
|
439
|
+
componentIdByPkgName
|
|
440
|
+
});
|
|
441
|
+
const elapsed = performance.now() - start;
|
|
442
|
+
(0, _chai().expect)(graph.edges.length).to.be.greaterThan(0);
|
|
443
|
+
(0, _chai().expect)(graph.packages.size).to.be.greaterThan(0);
|
|
444
|
+
(0, _chai().expect)(elapsed).to.be.lessThan(500);
|
|
445
|
+
});
|
|
446
|
+
it('should handle 5000 packages and 200 components within 2000ms', () => {
|
|
447
|
+
const {
|
|
448
|
+
lockfile,
|
|
449
|
+
componentIdByPkgName
|
|
450
|
+
} = generateLargeLockfile(5000, 200);
|
|
451
|
+
const start = performance.now();
|
|
452
|
+
const graph = (0, _lockfileDepsGraphConverter().convertLockfileToGraph)(lockfile, {
|
|
453
|
+
pkgName: '@my-scope/comp-0',
|
|
454
|
+
componentRelativeDir: 'comps/comp-0',
|
|
455
|
+
componentRootDir: 'node_modules/.bit_roots/env',
|
|
456
|
+
componentIdByPkgName
|
|
457
|
+
});
|
|
458
|
+
const elapsed = performance.now() - start;
|
|
459
|
+
(0, _chai().expect)(graph.edges.length).to.be.greaterThan(0);
|
|
460
|
+
(0, _chai().expect)(graph.packages.size).to.be.greaterThan(0);
|
|
461
|
+
(0, _chai().expect)(elapsed).to.be.lessThan(2000);
|
|
462
|
+
});
|
|
463
|
+
it('should handle 10000 packages and 500 components within 5000ms', () => {
|
|
464
|
+
const {
|
|
465
|
+
lockfile,
|
|
466
|
+
componentIdByPkgName
|
|
467
|
+
} = generateLargeLockfile(10000, 500);
|
|
468
|
+
const start = performance.now();
|
|
469
|
+
const graph = (0, _lockfileDepsGraphConverter().convertLockfileToGraph)(lockfile, {
|
|
470
|
+
pkgName: '@my-scope/comp-0',
|
|
471
|
+
componentRelativeDir: 'comps/comp-0',
|
|
472
|
+
componentRootDir: 'node_modules/.bit_roots/env',
|
|
473
|
+
componentIdByPkgName
|
|
474
|
+
});
|
|
475
|
+
const elapsed = performance.now() - start;
|
|
476
|
+
(0, _chai().expect)(graph.edges.length).to.be.greaterThan(0);
|
|
477
|
+
(0, _chai().expect)(graph.packages.size).to.be.greaterThan(0);
|
|
478
|
+
(0, _chai().expect)(elapsed).to.be.lessThan(5000);
|
|
479
|
+
});
|
|
480
|
+
it('should handle converting 20 lockfiles (1000 pkgs, 100 comps each) within 3000ms', () => {
|
|
481
|
+
const lockfileCount = 20;
|
|
482
|
+
const lockfiles = Array.from({
|
|
483
|
+
length: lockfileCount
|
|
484
|
+
}, () => generateLargeLockfile(1000, 100));
|
|
485
|
+
const start = performance.now();
|
|
486
|
+
const graphs = lockfiles.map(({
|
|
487
|
+
lockfile,
|
|
488
|
+
componentIdByPkgName
|
|
489
|
+
}) => (0, _lockfileDepsGraphConverter().convertLockfileToGraph)(lockfile, {
|
|
490
|
+
pkgName: '@my-scope/comp-0',
|
|
491
|
+
componentRelativeDir: 'comps/comp-0',
|
|
492
|
+
componentRootDir: 'node_modules/.bit_roots/env',
|
|
493
|
+
componentIdByPkgName
|
|
494
|
+
}));
|
|
495
|
+
const elapsed = performance.now() - start;
|
|
496
|
+
for (const graph of graphs) {
|
|
497
|
+
(0, _chai().expect)(graph.edges.length).to.be.greaterThan(0);
|
|
498
|
+
(0, _chai().expect)(graph.packages.size).to.be.greaterThan(0);
|
|
499
|
+
}
|
|
500
|
+
(0, _chai().expect)(elapsed).to.be.lessThan(3000);
|
|
501
|
+
});
|
|
502
|
+
it('should handle converting 50 lockfiles (500 pkgs, 50 comps each) within 3000ms', () => {
|
|
503
|
+
const lockfileCount = 50;
|
|
504
|
+
const lockfiles = Array.from({
|
|
505
|
+
length: lockfileCount
|
|
506
|
+
}, () => generateLargeLockfile(500, 50));
|
|
507
|
+
const start = performance.now();
|
|
508
|
+
const graphs = lockfiles.map(({
|
|
509
|
+
lockfile,
|
|
510
|
+
componentIdByPkgName
|
|
511
|
+
}) => (0, _lockfileDepsGraphConverter().convertLockfileToGraph)(lockfile, {
|
|
512
|
+
pkgName: '@my-scope/comp-0',
|
|
513
|
+
componentRelativeDir: 'comps/comp-0',
|
|
514
|
+
componentRootDir: 'node_modules/.bit_roots/env',
|
|
515
|
+
componentIdByPkgName
|
|
516
|
+
}));
|
|
517
|
+
const elapsed = performance.now() - start;
|
|
518
|
+
for (const graph of graphs) {
|
|
519
|
+
(0, _chai().expect)(graph.edges.length).to.be.greaterThan(0);
|
|
520
|
+
(0, _chai().expect)(graph.packages.size).to.be.greaterThan(0);
|
|
521
|
+
}
|
|
522
|
+
(0, _chai().expect)(elapsed).to.be.lessThan(3000);
|
|
523
|
+
});
|
|
524
|
+
});
|
|
354
525
|
describe('convertGraphToLockfile on invalid graph', () => {
|
|
355
526
|
it('should throw an error if resolution is missing', async () => {
|
|
356
527
|
const packages = new Map([['foo@1.0.0', {}]]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_path","data","_interopRequireDefault","require","_component","_objects","_lockfileDepsGraphConverter","_chai","e","__esModule","default","ownKeys","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","describe","lockfile","bit","depsRequiringBuild","importers","dependencies","comp1","version","specifier","foo","qar","zoo","lockfileVersion","snapshots","bar","comp2","packages","resolution","directory","type","engines","node","npm","hasBin","os","cpu","integrity","peerDependencies","graph","convertLockfileToGraph","pkgName","componentRelativeDir","componentRootDir","componentIdByPkgName","Map","ComponentID","fromString","expected","schemaVersion","edges","id","neighbours","optional","attr","pkgId","name","lifecycle","requiresBuild","component","scope","it","expect","fromEntries","entries","to","eql","convertGraphToLockfile","DependenciesGraph","manifests","path","resolve","rootDir","process","cwd","devDependencies","optionalDependencies","ROOT_EDGE_ID","error","_error","message","eq"],"sources":["lockfile-deps-graph-converter.spec.ts"],"sourcesContent":["import path from 'path';\nimport { ComponentID } from '@teambit/component';\nimport { DependenciesGraph, type PackagesMap, type DependencyEdge } from '@teambit/objects';\nimport { convertLockfileToGraph, convertGraphToLockfile } from './lockfile-deps-graph-converter';\nimport { type BitLockfileFile } from './lynx';\nimport { expect } from 'chai';\n\ndescribe('convertLockfileToGraph simple case', () => {\n const lockfile: BitLockfileFile = {\n bit: {\n depsRequiringBuild: ['bar@1.0.0'],\n },\n importers: {\n '.': {},\n 'node_modules/.bit_roots/env': {\n dependencies: {\n comp1: {\n version: 'file:comps/comp1',\n specifier: '*',\n },\n },\n },\n 'comps/comp1': {\n dependencies: {\n foo: {\n version: '1.0.0(patch_hash=0000)',\n specifier: '^1.0.0',\n },\n qar: {\n version: '1.1.0',\n specifier: '^1.0.0',\n },\n zoo: {\n version: '1.1.0(qar@1.1.0)',\n specifier: '^1.1.0',\n },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'foo@1.0.0(patch_hash=0000)': {\n dependencies: {\n bar: '1.0.0',\n },\n },\n 'bar@1.0.0': {},\n 'qar@1.1.0': {},\n 'zoo@1.1.0(qar@1.1.0)': {\n dependencies: {\n qar: '1.1.0',\n },\n },\n 'comp1@file:comps/comp1': {\n dependencies: {\n foo: '1.0.0(patch_hash=0000)',\n qar: '1.1.0',\n zoo: '1.1.0(qar@1.1.0)',\n comp2: 'file:comps/comp2',\n },\n },\n 'comp2@file:comps/comp2': {\n dependencies: {},\n },\n },\n packages: {\n 'comp1@file:comps/comp1': {\n resolution: {\n directory: 'comps/comp1',\n type: 'directory',\n },\n },\n 'comp2@file:comps/comp2': {\n resolution: {\n directory: 'comps/comp2',\n type: 'directory',\n },\n },\n 'foo@1.0.0': {\n engines: {\n node: '>=8',\n npm: '>=6',\n },\n hasBin: true,\n os: ['darwin'],\n cpu: ['arm64'],\n resolution: {\n integrity: 'sha512-000',\n },\n },\n 'bar@1.0.0': {\n resolution: {\n integrity: 'sha512-111',\n },\n },\n 'qar@1.1.0': {\n resolution: {\n integrity: 'sha512-222',\n },\n },\n 'zoo@1.1.0': {\n peerDependencies: {\n qar: '*',\n },\n resolution: {\n integrity: 'sha512-333',\n },\n },\n },\n };\n const graph = convertLockfileToGraph(lockfile, {\n pkgName: 'comp1',\n componentRelativeDir: 'comps/comp1',\n componentRootDir: 'node_modules/.bit_roots/env',\n componentIdByPkgName: new Map([\n ['comp1', ComponentID.fromString('my-scope/comp1@1.0.0')],\n ['comp2', ComponentID.fromString('my-scope/comp2@1.0.0')],\n ]),\n });\n const expected = {\n schemaVersion: '2.0',\n edges: [\n {\n id: 'foo@1.0.0(patch_hash=0000)',\n neighbours: [{ id: 'bar@1.0.0', optional: false }],\n attr: {\n pkgId: 'foo@1.0.0',\n },\n },\n {\n id: 'zoo@1.1.0(qar@1.1.0)',\n neighbours: [{ id: 'qar@1.1.0', optional: false }],\n attr: {\n pkgId: 'zoo@1.1.0',\n },\n },\n {\n id: '.',\n neighbours: [\n {\n id: 'foo@1.0.0(patch_hash=0000)',\n name: 'foo',\n specifier: '^1.0.0',\n lifecycle: 'runtime',\n optional: false,\n },\n {\n id: 'qar@1.1.0',\n name: 'qar',\n specifier: '^1.0.0',\n lifecycle: 'runtime',\n optional: false,\n },\n {\n id: 'zoo@1.1.0(qar@1.1.0)',\n name: 'zoo',\n specifier: '^1.1.0',\n lifecycle: 'runtime',\n optional: false,\n },\n {\n id: 'comp2@1.0.0',\n lifecycle: 'runtime',\n name: 'comp2',\n optional: false,\n specifier: '*',\n },\n ],\n },\n ],\n packages: {\n 'foo@1.0.0': {\n engines: {\n node: '>=8',\n npm: '>=6',\n },\n hasBin: true,\n os: ['darwin'],\n cpu: ['arm64'],\n resolution: {\n integrity: 'sha512-000',\n },\n },\n 'bar@1.0.0': {\n requiresBuild: true,\n resolution: {\n integrity: 'sha512-111',\n },\n },\n 'qar@1.1.0': {\n resolution: {\n integrity: 'sha512-222',\n },\n },\n 'zoo@1.1.0': {\n peerDependencies: {\n qar: '*',\n },\n resolution: {\n integrity: 'sha512-333',\n },\n },\n 'comp2@1.0.0': {\n component: {\n name: 'comp2',\n scope: 'my-scope',\n },\n },\n },\n };\n it('should convert the lockfile object to the graph object', () => {\n expect({\n ...graph,\n packages: Object.fromEntries(graph.packages.entries()),\n }).to.eql(expected);\n });\n it('should convert the graph object to the lockfile object', async () => {\n expect(\n await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: {\n dependencies: {\n foo: '^1.0.0',\n bar: `link:${path.resolve('comps/bar')}`, // Links from the manifests are added to the lockfile\n qar: '1.1.0',\n zoo: '1.1.0',\n comp2: '1.0.0',\n },\n },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: { integrity: '0000' } }) as any,\n })\n ).to.eql({\n bit: {\n depsRequiringBuild: ['bar@1.0.0'],\n },\n importers: {\n 'comps/comp1': {\n dependencies: {\n comp2: {\n version: '1.0.0',\n specifier: '1.0.0',\n },\n foo: {\n version: '1.0.0(patch_hash=0000)',\n specifier: '^1.0.0',\n },\n bar: {\n version: 'link:../bar',\n specifier: `link:${path.resolve('comps/bar')}`,\n },\n qar: {\n version: '1.1.0',\n specifier: '1.1.0',\n },\n zoo: {\n version: '1.1.0(qar@1.1.0)',\n specifier: '1.1.0',\n },\n },\n devDependencies: {},\n optionalDependencies: {},\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'foo@1.0.0(patch_hash=0000)': {\n dependencies: {\n bar: '1.0.0',\n },\n },\n 'bar@1.0.0': {},\n 'qar@1.1.0': {},\n 'comp2@1.0.0': {},\n 'zoo@1.1.0(qar@1.1.0)': {\n dependencies: {\n qar: '1.1.0',\n },\n },\n },\n packages: {\n 'comp2@1.0.0': {\n resolution: {\n integrity: '0000',\n },\n },\n 'foo@1.0.0': {\n engines: {\n node: '>=8',\n npm: '>=6',\n },\n hasBin: true,\n os: ['darwin'],\n cpu: ['arm64'],\n resolution: {\n integrity: 'sha512-000',\n },\n },\n 'bar@1.0.0': {\n resolution: {\n integrity: 'sha512-111',\n },\n },\n 'qar@1.1.0': {\n resolution: {\n integrity: 'sha512-222',\n },\n },\n 'zoo@1.1.0': {\n peerDependencies: {\n qar: '*',\n },\n resolution: {\n integrity: 'sha512-333',\n },\n },\n },\n });\n });\n});\n\ndescribe('convertGraphToLockfile on invalid graph', () => {\n it('should throw an error if resolution is missing', async () => {\n const packages: PackagesMap = new Map([['foo@1.0.0', {} as any]]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n {\n id: 'foo@1.0.0',\n name: 'foo',\n specifier: '1.0.0',\n lifecycle: 'runtime',\n },\n ],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [],\n },\n ];\n const graph = new DependenciesGraph({\n packages,\n edges,\n });\n let error: Error | undefined;\n try {\n await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: {\n dependencies: {\n foo: '1.0.0',\n },\n },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: {} }) as any,\n });\n } catch (_error) {\n error = _error as Error;\n }\n expect(error?.message).eq(\n `Failed to generate a valid lockfile. The \"packages['foo@1.0.0'] entry doesn't have a \"resolution\" field.`\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_path","data","_interopRequireDefault","require","_component","_objects","_lockfileDepsGraphConverter","_chai","e","__esModule","default","ownKeys","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","describe","lockfile","bit","depsRequiringBuild","importers","dependencies","comp1","version","specifier","foo","qar","zoo","lockfileVersion","snapshots","bar","comp2","packages","resolution","directory","type","engines","node","npm","hasBin","os","cpu","integrity","peerDependencies","graph","convertLockfileToGraph","pkgName","componentRelativeDir","componentRootDir","componentIdByPkgName","Map","ComponentID","fromString","expected","schemaVersion","edges","id","neighbours","optional","attr","pkgId","name","lifecycle","requiresBuild","component","scope","it","expect","fromEntries","entries","to","eql","convertGraphToLockfile","DependenciesGraph","manifests","path","resolve","rootDir","process","cwd","devDependencies","optionalDependencies","generateLargeLockfile","numPackages","numComponents","importerDeps","deps","compName","compPath","fileDepPath","set","Array","from","_","start","performance","now","elapsed","be","greaterThan","size","lessThan","lockfileCount","lockfiles","graphs","map","ROOT_EDGE_ID","error","_error","message","eq"],"sources":["lockfile-deps-graph-converter.spec.ts"],"sourcesContent":["import path from 'path';\nimport { ComponentID } from '@teambit/component';\nimport { DependenciesGraph, type PackagesMap, type DependencyEdge } from '@teambit/objects';\nimport { convertLockfileToGraph, convertGraphToLockfile } from './lockfile-deps-graph-converter';\nimport { type BitLockfileFile } from './lynx';\nimport { expect } from 'chai';\n\ndescribe('convertLockfileToGraph simple case', () => {\n const lockfile: BitLockfileFile = {\n bit: {\n depsRequiringBuild: ['bar@1.0.0'],\n },\n importers: {\n '.': {},\n 'node_modules/.bit_roots/env': {\n dependencies: {\n comp1: {\n version: 'file:comps/comp1',\n specifier: '*',\n },\n },\n },\n 'comps/comp1': {\n dependencies: {\n foo: {\n version: '1.0.0(patch_hash=0000)',\n specifier: '^1.0.0',\n },\n qar: {\n version: '1.1.0',\n specifier: '^1.0.0',\n },\n zoo: {\n version: '1.1.0(qar@1.1.0)',\n specifier: '^1.1.0',\n },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'foo@1.0.0(patch_hash=0000)': {\n dependencies: {\n bar: '1.0.0',\n },\n },\n 'bar@1.0.0': {},\n 'qar@1.1.0': {},\n 'zoo@1.1.0(qar@1.1.0)': {\n dependencies: {\n qar: '1.1.0',\n },\n },\n 'comp1@file:comps/comp1': {\n dependencies: {\n foo: '1.0.0(patch_hash=0000)',\n qar: '1.1.0',\n zoo: '1.1.0(qar@1.1.0)',\n comp2: 'file:comps/comp2',\n },\n },\n 'comp2@file:comps/comp2': {\n dependencies: {},\n },\n },\n packages: {\n 'comp1@file:comps/comp1': {\n resolution: {\n directory: 'comps/comp1',\n type: 'directory',\n },\n },\n 'comp2@file:comps/comp2': {\n resolution: {\n directory: 'comps/comp2',\n type: 'directory',\n },\n },\n 'foo@1.0.0': {\n engines: {\n node: '>=8',\n npm: '>=6',\n },\n hasBin: true,\n os: ['darwin'],\n cpu: ['arm64'],\n resolution: {\n integrity: 'sha512-000',\n },\n },\n 'bar@1.0.0': {\n resolution: {\n integrity: 'sha512-111',\n },\n },\n 'qar@1.1.0': {\n resolution: {\n integrity: 'sha512-222',\n },\n },\n 'zoo@1.1.0': {\n peerDependencies: {\n qar: '*',\n },\n resolution: {\n integrity: 'sha512-333',\n },\n },\n },\n };\n const graph = convertLockfileToGraph(lockfile, {\n pkgName: 'comp1',\n componentRelativeDir: 'comps/comp1',\n componentRootDir: 'node_modules/.bit_roots/env',\n componentIdByPkgName: new Map([\n ['comp1', ComponentID.fromString('my-scope/comp1@1.0.0')],\n ['comp2', ComponentID.fromString('my-scope/comp2@1.0.0')],\n ]),\n });\n const expected = {\n schemaVersion: '2.0',\n edges: [\n {\n id: 'foo@1.0.0(patch_hash=0000)',\n neighbours: [{ id: 'bar@1.0.0', optional: false }],\n attr: {\n pkgId: 'foo@1.0.0',\n },\n },\n {\n id: 'zoo@1.1.0(qar@1.1.0)',\n neighbours: [{ id: 'qar@1.1.0', optional: false }],\n attr: {\n pkgId: 'zoo@1.1.0',\n },\n },\n {\n id: '.',\n neighbours: [\n {\n id: 'foo@1.0.0(patch_hash=0000)',\n name: 'foo',\n specifier: '^1.0.0',\n lifecycle: 'runtime',\n optional: false,\n },\n {\n id: 'qar@1.1.0',\n name: 'qar',\n specifier: '^1.0.0',\n lifecycle: 'runtime',\n optional: false,\n },\n {\n id: 'zoo@1.1.0(qar@1.1.0)',\n name: 'zoo',\n specifier: '^1.1.0',\n lifecycle: 'runtime',\n optional: false,\n },\n {\n id: 'comp2@1.0.0',\n lifecycle: 'runtime',\n name: 'comp2',\n optional: false,\n specifier: '*',\n },\n ],\n },\n ],\n packages: {\n 'foo@1.0.0': {\n engines: {\n node: '>=8',\n npm: '>=6',\n },\n hasBin: true,\n os: ['darwin'],\n cpu: ['arm64'],\n resolution: {\n integrity: 'sha512-000',\n },\n },\n 'bar@1.0.0': {\n requiresBuild: true,\n resolution: {\n integrity: 'sha512-111',\n },\n },\n 'qar@1.1.0': {\n resolution: {\n integrity: 'sha512-222',\n },\n },\n 'zoo@1.1.0': {\n peerDependencies: {\n qar: '*',\n },\n resolution: {\n integrity: 'sha512-333',\n },\n },\n 'comp2@1.0.0': {\n component: {\n name: 'comp2',\n scope: 'my-scope',\n },\n },\n },\n };\n it('should convert the lockfile object to the graph object', () => {\n expect({\n ...graph,\n packages: Object.fromEntries(graph.packages.entries()),\n }).to.eql(expected);\n });\n it('should convert the graph object to the lockfile object', async () => {\n expect(\n await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: {\n dependencies: {\n foo: '^1.0.0',\n bar: `link:${path.resolve('comps/bar')}`, // Links from the manifests are added to the lockfile\n qar: '1.1.0',\n zoo: '1.1.0',\n comp2: '1.0.0',\n },\n },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: { integrity: '0000' } }) as any,\n })\n ).to.eql({\n bit: {\n depsRequiringBuild: ['bar@1.0.0'],\n },\n importers: {\n 'comps/comp1': {\n dependencies: {\n comp2: {\n version: '1.0.0',\n specifier: '1.0.0',\n },\n foo: {\n version: '1.0.0(patch_hash=0000)',\n specifier: '^1.0.0',\n },\n bar: {\n version: 'link:../bar',\n specifier: `link:${path.resolve('comps/bar')}`,\n },\n qar: {\n version: '1.1.0',\n specifier: '1.1.0',\n },\n zoo: {\n version: '1.1.0(qar@1.1.0)',\n specifier: '1.1.0',\n },\n },\n devDependencies: {},\n optionalDependencies: {},\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'foo@1.0.0(patch_hash=0000)': {\n dependencies: {\n bar: '1.0.0',\n },\n },\n 'bar@1.0.0': {},\n 'qar@1.1.0': {},\n 'comp2@1.0.0': {},\n 'zoo@1.1.0(qar@1.1.0)': {\n dependencies: {\n qar: '1.1.0',\n },\n },\n },\n packages: {\n 'comp2@1.0.0': {\n resolution: {\n integrity: '0000',\n },\n },\n 'foo@1.0.0': {\n engines: {\n node: '>=8',\n npm: '>=6',\n },\n hasBin: true,\n os: ['darwin'],\n cpu: ['arm64'],\n resolution: {\n integrity: 'sha512-000',\n },\n },\n 'bar@1.0.0': {\n resolution: {\n integrity: 'sha512-111',\n },\n },\n 'qar@1.1.0': {\n resolution: {\n integrity: 'sha512-222',\n },\n },\n 'zoo@1.1.0': {\n peerDependencies: {\n qar: '*',\n },\n resolution: {\n integrity: 'sha512-333',\n },\n },\n },\n });\n });\n});\n\ndescribe('convertLockfileToGraph benchmark', () => {\n function generateLargeLockfile(\n numPackages: number,\n numComponents: number\n ): {\n lockfile: BitLockfileFile;\n componentIdByPkgName: Map<string, InstanceType<typeof ComponentID>>;\n } {\n const snapshots: Record<string, any> = {};\n const packages: Record<string, any> = {};\n const importerDeps: Record<string, any> = {};\n const componentIdByPkgName = new Map<string, InstanceType<typeof ComponentID>>();\n\n // Generate regular packages\n for (let i = 0; i < numPackages; i++) {\n const pkgId = `pkg-${i}@1.0.${i}`;\n packages[pkgId] = {\n resolution: { integrity: `sha512-${i}` },\n };\n // Each package depends on the next 2 packages (creating a graph)\n const deps: Record<string, string> = {};\n if (i + 1 < numPackages) deps[`pkg-${i + 1}`] = `1.0.${i + 1}`;\n if (i + 2 < numPackages) deps[`pkg-${i + 2}`] = `1.0.${i + 2}`;\n snapshots[pkgId] = Object.keys(deps).length > 0 ? { dependencies: deps } : {};\n if (i < 50) {\n importerDeps[`pkg-${i}`] = { version: `1.0.${i}`, specifier: `^1.0.${i}` };\n }\n }\n\n // Generate component packages (with file: protocol)\n for (let i = 0; i < numComponents; i++) {\n const compName = `@my-scope/comp-${i}`;\n const compPath = `comps/comp-${i}`;\n const fileDepPath = `${compName}@file:${compPath}`;\n\n packages[fileDepPath] = {\n resolution: { directory: compPath, type: 'directory' },\n };\n snapshots[fileDepPath] = {\n dependencies: {\n [`pkg-${i % numPackages}`]: `1.0.${i % numPackages}`,\n },\n };\n componentIdByPkgName.set(compName, ComponentID.fromString(`my-scope/comp-${i}@0.0.${i}`));\n }\n\n const lockfile: BitLockfileFile = {\n bit: { depsRequiringBuild: [] },\n importers: {\n '.': {},\n 'node_modules/.bit_roots/env': {\n dependencies: Object.fromEntries(\n Array.from({ length: numComponents }, (_, i) => [\n `@my-scope/comp-${i}`,\n { version: `file:comps/comp-${i}`, specifier: '*' },\n ])\n ),\n },\n 'comps/comp-0': {\n dependencies: importerDeps,\n },\n },\n lockfileVersion: '9.0',\n snapshots,\n packages,\n };\n\n return { lockfile, componentIdByPkgName };\n }\n\n it('should handle 1000 packages and 50 components within 500ms', () => {\n const { lockfile, componentIdByPkgName } = generateLargeLockfile(1000, 50);\n\n const start = performance.now();\n const graph = convertLockfileToGraph(lockfile, {\n pkgName: '@my-scope/comp-0',\n componentRelativeDir: 'comps/comp-0',\n componentRootDir: 'node_modules/.bit_roots/env',\n componentIdByPkgName,\n });\n const elapsed = performance.now() - start;\n\n expect(graph.edges.length).to.be.greaterThan(0);\n expect(graph.packages.size).to.be.greaterThan(0);\n expect(elapsed).to.be.lessThan(500);\n });\n\n it('should handle 5000 packages and 200 components within 2000ms', () => {\n const { lockfile, componentIdByPkgName } = generateLargeLockfile(5000, 200);\n\n const start = performance.now();\n const graph = convertLockfileToGraph(lockfile, {\n pkgName: '@my-scope/comp-0',\n componentRelativeDir: 'comps/comp-0',\n componentRootDir: 'node_modules/.bit_roots/env',\n componentIdByPkgName,\n });\n const elapsed = performance.now() - start;\n\n expect(graph.edges.length).to.be.greaterThan(0);\n expect(graph.packages.size).to.be.greaterThan(0);\n expect(elapsed).to.be.lessThan(2000);\n });\n\n it('should handle 10000 packages and 500 components within 5000ms', () => {\n const { lockfile, componentIdByPkgName } = generateLargeLockfile(10000, 500);\n\n const start = performance.now();\n const graph = convertLockfileToGraph(lockfile, {\n pkgName: '@my-scope/comp-0',\n componentRelativeDir: 'comps/comp-0',\n componentRootDir: 'node_modules/.bit_roots/env',\n componentIdByPkgName,\n });\n const elapsed = performance.now() - start;\n\n expect(graph.edges.length).to.be.greaterThan(0);\n expect(graph.packages.size).to.be.greaterThan(0);\n expect(elapsed).to.be.lessThan(5000);\n });\n\n it('should handle converting 20 lockfiles (1000 pkgs, 100 comps each) within 3000ms', () => {\n const lockfileCount = 20;\n const lockfiles = Array.from({ length: lockfileCount }, () => generateLargeLockfile(1000, 100));\n\n const start = performance.now();\n const graphs = lockfiles.map(({ lockfile, componentIdByPkgName }) =>\n convertLockfileToGraph(lockfile, {\n pkgName: '@my-scope/comp-0',\n componentRelativeDir: 'comps/comp-0',\n componentRootDir: 'node_modules/.bit_roots/env',\n componentIdByPkgName,\n })\n );\n const elapsed = performance.now() - start;\n\n for (const graph of graphs) {\n expect(graph.edges.length).to.be.greaterThan(0);\n expect(graph.packages.size).to.be.greaterThan(0);\n }\n expect(elapsed).to.be.lessThan(3000);\n });\n\n it('should handle converting 50 lockfiles (500 pkgs, 50 comps each) within 3000ms', () => {\n const lockfileCount = 50;\n const lockfiles = Array.from({ length: lockfileCount }, () => generateLargeLockfile(500, 50));\n\n const start = performance.now();\n const graphs = lockfiles.map(({ lockfile, componentIdByPkgName }) =>\n convertLockfileToGraph(lockfile, {\n pkgName: '@my-scope/comp-0',\n componentRelativeDir: 'comps/comp-0',\n componentRootDir: 'node_modules/.bit_roots/env',\n componentIdByPkgName,\n })\n );\n const elapsed = performance.now() - start;\n\n for (const graph of graphs) {\n expect(graph.edges.length).to.be.greaterThan(0);\n expect(graph.packages.size).to.be.greaterThan(0);\n }\n expect(elapsed).to.be.lessThan(3000);\n });\n});\n\ndescribe('convertGraphToLockfile on invalid graph', () => {\n it('should throw an error if resolution is missing', async () => {\n const packages: PackagesMap = new Map([['foo@1.0.0', {} as any]]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n {\n id: 'foo@1.0.0',\n name: 'foo',\n specifier: '1.0.0',\n lifecycle: 'runtime',\n },\n ],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [],\n },\n ];\n const graph = new DependenciesGraph({\n packages,\n edges,\n });\n let error: Error | undefined;\n try {\n await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: {\n dependencies: {\n foo: '1.0.0',\n },\n },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: {} }) as any,\n });\n } catch (_error) {\n error = _error as Error;\n }\n expect(error?.message).eq(\n `Failed to generate a valid lockfile. The \"packages['foo@1.0.0'] entry doesn't have a \"resolution\" field.`\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -495,22 +495,29 @@ class PnpmPackageManager {
|
|
|
495
495
|
pkgName,
|
|
496
496
|
component
|
|
497
497
|
} of opts.components) {
|
|
498
|
-
const lockfile = structuredClone(originalLockfile);
|
|
499
498
|
let compRootDir;
|
|
500
|
-
if (componentRootDir && !
|
|
499
|
+
if (componentRootDir && !originalLockfile.importers[componentRootDir] && componentRootDir.includes('@')) {
|
|
501
500
|
compRootDir = componentRootDir.split('@')[0];
|
|
502
501
|
} else {
|
|
503
502
|
compRootDir = componentRootDir;
|
|
504
503
|
}
|
|
505
|
-
if (!
|
|
506
|
-
// This will only happen if the env was not loaded correctly before install.
|
|
507
|
-
// But in this case we cannot calculate the dependency graph from the lockfile.
|
|
504
|
+
if (!originalLockfile.importers[compRootDir]) {
|
|
508
505
|
continue;
|
|
509
506
|
}
|
|
510
507
|
const filterByImporterIds = [componentRelativeDir];
|
|
511
508
|
if (compRootDir != null) {
|
|
512
509
|
filterByImporterIds.push(compRootDir);
|
|
513
510
|
}
|
|
511
|
+
// Only clone the importers that will be mutated, reuse the rest of the lockfile as-is
|
|
512
|
+
const clonedImporters = {};
|
|
513
|
+
for (const importerId of filterByImporterIds) {
|
|
514
|
+
if (originalLockfile.importers[importerId]) {
|
|
515
|
+
clonedImporters[importerId] = structuredClone(originalLockfile.importers[importerId]);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
const lockfile = _objectSpread(_objectSpread({}, originalLockfile), {}, {
|
|
519
|
+
importers: _objectSpread(_objectSpread({}, originalLockfile.importers), clonedImporters)
|
|
520
|
+
});
|
|
514
521
|
for (const importerId of filterByImporterIds) {
|
|
515
522
|
for (const depType of ['dependencies', 'devDependencies', 'optionalDependencies', 'specifiers', 'dependenciesMeta']) {
|
|
516
523
|
for (const workspacePkgName of opts.componentIdByPkgName.keys()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dependencyResolver","data","require","_pkgEntities","_harmonyModules","_fs","_interopRequireDefault","_lodash","_lockfile","_modulesYaml","_reviewing","_list","_lockfile2","_legacy","_legacy2","_path","_lockfileDepsGraphConverter","_readConfig","_pnpmPruneModules","_lynx","e","__esModule","default","ownKeys","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","PnpmPackageManager","constructor","depResolver","logger","cloud","Map","dir","config","warnings","readConfig","fetchRetries","memoize","dependenciesGraphToLockfile","dependenciesGraph","opts","registries","Registries","Registry","resolve","generateResolverAndFetcher","lockfile","convertGraphToLockfile","assign","bit","restoredFromModel","lockfilePath","join","rootDir","writeLockfileFile","debug","process","env","DEPS_GRAPH_LOG","console","log","install","manifests","installOptions","getRegistries","proxyConfig","getProxyConfig","networkConfig","getNetworkConfig","packageManagerConfigRootDir","isFeatureEnabled","DEPS_GRAPH","rootComponents","rootComponentsForCapsules","cacheDir","error","message","hidePackageManagerOutput","off","useNesting","extendWithComponentsFromDir","nmSelfReferences","values","manifest","name","devDependencies","modulesManifestCache","delete","dependenciesChanged","rebuild","storeDir","depsRequiringBuild","autoInstallPeers","enableModulesDir","engineStrict","excludeLinksFromLockfile","lockfileOnly","minimumReleaseAge","minimumReleaseAgeExclude","neverBuiltDependencies","allowScripts","dangerouslyAllowAllScripts","nodeLinker","nodeVersion","includeOptionalDeps","ignorePackageManifest","dedupeInjectedDeps","dryRun","overrides","hoistPattern","hoistPatterns","publicHoistPattern","shamefullyHoist","hoistWorkspacePackages","hoistInjectedDependencies","packageImportMethod","preferOffline","sideEffectsCacheRead","sideEffectsCache","sideEffectsCacheWrite","pnpmHomeDir","updateAll","reportOptions","appendOnly","optimizeReportForNonTerminal","BIT_CLI_SERVER_NO_TTY","stdout","ServerSendOutStream","undefined","throttleProgress","hideProgressPrefix","hideLifecycleOutput","peerDependencyRules","returnListOfDepsRequiringBuild","forcedHarmonyVersion","on","getPeerDependencyIssues","lynx","resolveRemoteVersion","packageName","options","fullMetadata","username","getCurrentUser","result","userAgent","rawConfig","maxSockets","networkConcurrency","fetchTimeout","fetchRetryMaxtimeout","fetchRetryMintimeout","strictSSL","ca","cert","key","pnpmRegistry","defaultRegistry","uri","alwaysAuth","authHeaderValue","originalAuthType","originalAuthValue","pnpmScoped","omit","scopesRegistries","reduce","acc","scopedRegName","scopedReg","replace","BIT_CLOUD_REGISTRY","getInjectedDirs","componentDir","modulesState","_readModulesManifest","injectedDeps","lockfileDir","has","get","modulesManifest","readModulesManifest","set","getWorkspaceDepsOfBitRoots","fromEntries","map","pruneModules","pnpmPruneModules","findUsages","depName","readWantedLockfile","ignoreIncompatible","importerIds","importers","id","includes","BIT_ROOTS_DIR","projectPaths","importerInfoMap","importerId","pkgJson","tryReadPackageJson","version","trees","buildDependentsTree","include","dependencies","optionalDependencies","nameFormatter","scope","componentId","renderDependentsTree","depth","Infinity","long","calcDependenciesGraph","originalLockfile","componentRootDir","componentRelativeDir","pkgName","component","components","structuredClone","compRootDir","split","filterByImporterIds","depType","workspacePkgName","componentIdByPkgName","partialLockfile","convertLockfileObjectToLockfileFile","filterLockfileByImporters","failOnMissingDependencies","skipped","Set","graph","convertLockfileToGraph","state","_consumer","exports","pkgDir","JSON","parse","fs","readFileSync"],"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 { DEPS_GRAPH, isFeatureEnabled } from '@teambit/harmony.modules.feature-toggle';\nimport type { Logger } from '@teambit/logger';\nimport { type LockfileFile } from '@pnpm/lockfile.types';\nimport fs from 'fs';\nimport { memoize, omit } from 'lodash';\nimport type { PeerDependencyIssuesByProjects } from '@pnpm/core';\nimport { filterLockfileByImporters } from '@pnpm/lockfile.filtering';\nimport type { Config } from '@pnpm/config';\nimport { type ProjectId, type ProjectManifest, type DepPath } from '@pnpm/types';\nimport type { Modules } from '@pnpm/modules-yaml';\nimport { readModulesManifest } from '@pnpm/modules-yaml';\nimport type { ImporterInfo } from '@pnpm/reviewing.dependencies-hierarchy';\nimport { buildDependentsTree } from '@pnpm/reviewing.dependencies-hierarchy';\nimport { renderDependentsTree } from '@pnpm/list';\nimport {\n readWantedLockfile,\n writeLockfileFile,\n convertToLockfileFile as convertLockfileObjectToLockfileFile,\n} from '@pnpm/lockfile.fs';\nimport { BIT_ROOTS_DIR } from '@teambit/legacy.constants';\nimport { ServerSendOutStream } from '@teambit/legacy.logger';\nimport { join } from 'path';\nimport { convertLockfileToGraph, convertGraphToLockfile } from './lockfile-deps-graph-converter';\nimport { readConfig } from './read-config';\nimport { pnpmPruneModules } from './pnpm-prune-modules';\nimport type { RebuildFn } from './lynx';\nimport { generateResolverAndFetcher } 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: Config; warnings: string[] }>;\n\nexport class PnpmPackageManager implements PackageManager {\n readonly name = 'pnpm';\n readonly modulesManifestCache: Map<string, Modules> = 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 const registries = opts.registries ?? new Registries(new Registry('https://node-registry.bit.cloud', false), {});\n const { resolve } = await generateResolverAndFetcher({\n ...opts,\n registries,\n });\n const lockfile: LockfileFile = await convertGraphToLockfile(dependenciesGraph, {\n ...opts,\n resolve,\n });\n Object.assign(lockfile, {\n bit: {\n restoredFromModel: true,\n },\n });\n const lockfilePath = join(opts.rootDir, 'pnpm-lock.yaml');\n await writeLockfileFile(lockfilePath, lockfile);\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 = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { config } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n if (\n installOptions.dependenciesGraph &&\n isFeatureEnabled(DEPS_GRAPH) &&\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 // If the lockfile could not be created for some reason, it will be created later during installation.\n this.logger.error((error as Error).message);\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 { dependenciesChanged, rebuild, storeDir, depsRequiringBuild } = await install(\n rootDir,\n manifests,\n config.storeDir,\n config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n {\n autoInstallPeers: installOptions.autoInstallPeers ?? 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: installOptions.hoistPatterns ?? config.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 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 process: process.env.BIT_CLI_SERVER_NO_TTY ? { ...process, stdout: 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 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 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 if (!this.username) {\n this.username = (await this.cloud.getCurrentUser())?.username ?? 'anonymous';\n }\n // We need to use config.rawConfig as it will only contain the settings defined by the user.\n // config contains default values of the settings when they are not defined by the user.\n const result: PackageManagerNetworkConfig = {\n userAgent: `bit user/${this.username}`,\n };\n if (config.rawConfig['max-sockets'] != null) {\n result.maxSockets = config.rawConfig['max-sockets'];\n }\n if (config.rawConfig['network-concurrency'] != null) {\n result.networkConcurrency = config.rawConfig['network-concurrency'];\n }\n if (config.rawConfig['fetch-retries'] != null) {\n result.fetchRetries = config.rawConfig['fetch-retries'];\n }\n if (config.rawConfig['fetch-timeout'] != null) {\n result.fetchTimeout = config.rawConfig['fetch-timeout'];\n }\n if (config.rawConfig['fetch-retry-maxtimeout'] != null) {\n result.fetchRetryMaxtimeout = config.rawConfig['fetch-retry-maxtimeout'];\n }\n if (config.rawConfig['fetch-retry-mintimeout'] != null) {\n result.fetchRetryMintimeout = config.rawConfig['fetch-retry-mintimeout'];\n }\n if (config.rawConfig['strict-ssl'] != null) {\n result.strictSSL = config.rawConfig['strict-ssl'];\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<Modules | undefined> {\n if (this.modulesManifestCache.has(lockfileDir)) {\n return this.modulesManifestCache.get(lockfileDir);\n }\n const modulesManifest = await readModulesManifest(join(lockfileDir, 'node_modules'));\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 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 lockfile = await readWantedLockfile(opts.lockfileDir, { ignoreIncompatible: false });\n if (!lockfile) return '';\n const importerIds = Object.keys(lockfile.importers ?? {})\n .filter((id) => !id.includes(`${BIT_ROOTS_DIR}/`));\n const projectPaths = importerIds.map((id) => join(opts.lockfileDir, id));\n const importerInfoMap = new Map<string, ImporterInfo>();\n for (const importerId of importerIds) {\n const pkgJson = tryReadPackageJson(join(opts.lockfileDir, importerId));\n importerInfoMap.set(importerId, {\n name: pkgJson?.name ?? importerId,\n version: pkgJson?.version ?? '',\n });\n }\n const trees = await buildDependentsTree([depName], projectPaths, {\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: true,\n },\n lockfileDir: opts.lockfileDir,\n registries: {\n default: 'https://registry.npmjs.org',\n },\n importerInfoMap,\n lockfile,\n nameFormatter ({ manifest }) {\n if ('componentId' in manifest) {\n const { scope, name } = manifest.componentId as { scope: string; name: string };\n return `${scope}/${name}`;\n }\n return manifest.name;\n },\n });\n return renderDependentsTree(trees, {\n depth: opts.depth ?? Infinity,\n long: false,\n });\n }\n\n /**\n * Calculating the dependencies graph of a given component using the lockfile.\n */\n async calcDependenciesGraph(opts: CalcDepsGraphOptions): Promise<void> {\n const originalLockfile = await readWantedLockfile(opts.rootDir, { ignoreIncompatible: false });\n if (!originalLockfile) {\n return;\n }\n for (const { componentRootDir, componentRelativeDir, pkgName, component } of opts.components) {\n const lockfile = structuredClone(originalLockfile);\n let compRootDir: string | undefined;\n if (componentRootDir && !lockfile.importers[componentRootDir] && componentRootDir.includes('@')) {\n compRootDir = componentRootDir.split('@')[0];\n } else {\n compRootDir = componentRootDir;\n }\n if (!lockfile.importers[compRootDir as ProjectId]) {\n // This will only happen if the env was not loaded correctly before install.\n // But in this case we cannot calculate the dependency graph from the lockfile.\n continue;\n }\n const filterByImporterIds = [componentRelativeDir as ProjectId];\n if (compRootDir != null) {\n filterByImporterIds.push(compRootDir as ProjectId);\n }\n for (const importerId of filterByImporterIds) {\n for (const depType of [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n 'specifiers',\n 'dependenciesMeta',\n ]) {\n for (const workspacePkgName of opts.componentIdByPkgName.keys()) {\n if (workspacePkgName !== pkgName) {\n delete lockfile.importers[importerId]?.[depType]?.[workspacePkgName];\n }\n }\n }\n }\n // Filters the lockfile so that it only includes packages related to the given component.\n const partialLockfile = convertLockfileObjectToLockfileFile(\n filterLockfileByImporters(lockfile, filterByImporterIds, {\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: true,\n },\n failOnMissingDependencies: false,\n skipped: new Set(),\n })\n );\n const graph = convertLockfileToGraph(partialLockfile, {\n ...opts,\n componentRootDir: compRootDir,\n componentRelativeDir,\n pkgName,\n });\n component.state._consumer.dependenciesGraph = graph;\n }\n }\n}\n\nfunction tryReadPackageJson(pkgDir: string) {\n try {\n return JSON.parse(fs.readFileSync(join(pkgDir, 'package.json'), 'utf8'));\n } catch {\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_dependencyResolver","data","require","_pkgEntities","_harmonyModules","_fs","_interopRequireDefault","_lodash","_lockfile","_modulesYaml","_reviewing","_list","_lockfile2","_legacy","_legacy2","_path","_lockfileDepsGraphConverter","_readConfig","_pnpmPruneModules","_lynx","e","__esModule","default","ownKeys","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","PnpmPackageManager","constructor","depResolver","logger","cloud","Map","dir","config","warnings","readConfig","fetchRetries","memoize","dependenciesGraphToLockfile","dependenciesGraph","opts","registries","Registries","Registry","resolve","generateResolverAndFetcher","lockfile","convertGraphToLockfile","assign","bit","restoredFromModel","lockfilePath","join","rootDir","writeLockfileFile","debug","process","env","DEPS_GRAPH_LOG","console","log","install","manifests","installOptions","getRegistries","proxyConfig","getProxyConfig","networkConfig","getNetworkConfig","packageManagerConfigRootDir","isFeatureEnabled","DEPS_GRAPH","rootComponents","rootComponentsForCapsules","cacheDir","error","message","hidePackageManagerOutput","off","useNesting","extendWithComponentsFromDir","nmSelfReferences","values","manifest","name","devDependencies","modulesManifestCache","delete","dependenciesChanged","rebuild","storeDir","depsRequiringBuild","autoInstallPeers","enableModulesDir","engineStrict","excludeLinksFromLockfile","lockfileOnly","minimumReleaseAge","minimumReleaseAgeExclude","neverBuiltDependencies","allowScripts","dangerouslyAllowAllScripts","nodeLinker","nodeVersion","includeOptionalDeps","ignorePackageManifest","dedupeInjectedDeps","dryRun","overrides","hoistPattern","hoistPatterns","publicHoistPattern","shamefullyHoist","hoistWorkspacePackages","hoistInjectedDependencies","packageImportMethod","preferOffline","sideEffectsCacheRead","sideEffectsCache","sideEffectsCacheWrite","pnpmHomeDir","updateAll","reportOptions","appendOnly","optimizeReportForNonTerminal","BIT_CLI_SERVER_NO_TTY","stdout","ServerSendOutStream","undefined","throttleProgress","hideProgressPrefix","hideLifecycleOutput","peerDependencyRules","returnListOfDepsRequiringBuild","forcedHarmonyVersion","on","getPeerDependencyIssues","lynx","resolveRemoteVersion","packageName","options","fullMetadata","username","getCurrentUser","result","userAgent","rawConfig","maxSockets","networkConcurrency","fetchTimeout","fetchRetryMaxtimeout","fetchRetryMintimeout","strictSSL","ca","cert","key","pnpmRegistry","defaultRegistry","uri","alwaysAuth","authHeaderValue","originalAuthType","originalAuthValue","pnpmScoped","omit","scopesRegistries","reduce","acc","scopedRegName","scopedReg","replace","BIT_CLOUD_REGISTRY","getInjectedDirs","componentDir","modulesState","_readModulesManifest","injectedDeps","lockfileDir","has","get","modulesManifest","readModulesManifest","set","getWorkspaceDepsOfBitRoots","fromEntries","map","pruneModules","pnpmPruneModules","findUsages","depName","readWantedLockfile","ignoreIncompatible","importerIds","importers","id","includes","BIT_ROOTS_DIR","projectPaths","importerInfoMap","importerId","pkgJson","tryReadPackageJson","version","trees","buildDependentsTree","include","dependencies","optionalDependencies","nameFormatter","scope","componentId","renderDependentsTree","depth","Infinity","long","calcDependenciesGraph","originalLockfile","componentRootDir","componentRelativeDir","pkgName","component","components","compRootDir","split","filterByImporterIds","clonedImporters","structuredClone","depType","workspacePkgName","componentIdByPkgName","partialLockfile","convertLockfileObjectToLockfileFile","filterLockfileByImporters","failOnMissingDependencies","skipped","Set","graph","convertLockfileToGraph","state","_consumer","exports","pkgDir","JSON","parse","fs","readFileSync"],"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 { DEPS_GRAPH, isFeatureEnabled } from '@teambit/harmony.modules.feature-toggle';\nimport type { Logger } from '@teambit/logger';\nimport { type LockfileFile } from '@pnpm/lockfile.types';\nimport fs from 'fs';\nimport { memoize, omit } from 'lodash';\nimport type { PeerDependencyIssuesByProjects } from '@pnpm/core';\nimport { filterLockfileByImporters } from '@pnpm/lockfile.filtering';\nimport type { Config } from '@pnpm/config';\nimport { type ProjectId, type ProjectManifest, type DepPath } from '@pnpm/types';\nimport type { Modules } from '@pnpm/modules-yaml';\nimport { readModulesManifest } from '@pnpm/modules-yaml';\nimport type { ImporterInfo } from '@pnpm/reviewing.dependencies-hierarchy';\nimport { buildDependentsTree } from '@pnpm/reviewing.dependencies-hierarchy';\nimport { renderDependentsTree } from '@pnpm/list';\nimport {\n readWantedLockfile,\n writeLockfileFile,\n convertToLockfileFile as convertLockfileObjectToLockfileFile,\n} from '@pnpm/lockfile.fs';\nimport { BIT_ROOTS_DIR } from '@teambit/legacy.constants';\nimport { ServerSendOutStream } from '@teambit/legacy.logger';\nimport { join } from 'path';\nimport { convertLockfileToGraph, convertGraphToLockfile } from './lockfile-deps-graph-converter';\nimport { readConfig } from './read-config';\nimport { pnpmPruneModules } from './pnpm-prune-modules';\nimport type { RebuildFn } from './lynx';\nimport { generateResolverAndFetcher } 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: Config; warnings: string[] }>;\n\nexport class PnpmPackageManager implements PackageManager {\n readonly name = 'pnpm';\n readonly modulesManifestCache: Map<string, Modules> = 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 const registries = opts.registries ?? new Registries(new Registry('https://node-registry.bit.cloud', false), {});\n const { resolve } = await generateResolverAndFetcher({\n ...opts,\n registries,\n });\n const lockfile: LockfileFile = await convertGraphToLockfile(dependenciesGraph, {\n ...opts,\n resolve,\n });\n Object.assign(lockfile, {\n bit: {\n restoredFromModel: true,\n },\n });\n const lockfilePath = join(opts.rootDir, 'pnpm-lock.yaml');\n await writeLockfileFile(lockfilePath, lockfile);\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 = await this.depResolver.getRegistries();\n const proxyConfig = await this.depResolver.getProxyConfig();\n const networkConfig = await this.depResolver.getNetworkConfig();\n const { config } = await this.readConfig(installOptions.packageManagerConfigRootDir);\n if (\n installOptions.dependenciesGraph &&\n isFeatureEnabled(DEPS_GRAPH) &&\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 // If the lockfile could not be created for some reason, it will be created later during installation.\n this.logger.error((error as Error).message);\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 { dependenciesChanged, rebuild, storeDir, depsRequiringBuild } = await install(\n rootDir,\n manifests,\n config.storeDir,\n config.cacheDir,\n registries,\n proxyConfig,\n networkConfig,\n {\n autoInstallPeers: installOptions.autoInstallPeers ?? 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: installOptions.hoistPatterns ?? config.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 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 process: process.env.BIT_CLI_SERVER_NO_TTY ? { ...process, stdout: 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 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 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 if (!this.username) {\n this.username = (await this.cloud.getCurrentUser())?.username ?? 'anonymous';\n }\n // We need to use config.rawConfig as it will only contain the settings defined by the user.\n // config contains default values of the settings when they are not defined by the user.\n const result: PackageManagerNetworkConfig = {\n userAgent: `bit user/${this.username}`,\n };\n if (config.rawConfig['max-sockets'] != null) {\n result.maxSockets = config.rawConfig['max-sockets'];\n }\n if (config.rawConfig['network-concurrency'] != null) {\n result.networkConcurrency = config.rawConfig['network-concurrency'];\n }\n if (config.rawConfig['fetch-retries'] != null) {\n result.fetchRetries = config.rawConfig['fetch-retries'];\n }\n if (config.rawConfig['fetch-timeout'] != null) {\n result.fetchTimeout = config.rawConfig['fetch-timeout'];\n }\n if (config.rawConfig['fetch-retry-maxtimeout'] != null) {\n result.fetchRetryMaxtimeout = config.rawConfig['fetch-retry-maxtimeout'];\n }\n if (config.rawConfig['fetch-retry-mintimeout'] != null) {\n result.fetchRetryMintimeout = config.rawConfig['fetch-retry-mintimeout'];\n }\n if (config.rawConfig['strict-ssl'] != null) {\n result.strictSSL = config.rawConfig['strict-ssl'];\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<Modules | undefined> {\n if (this.modulesManifestCache.has(lockfileDir)) {\n return this.modulesManifestCache.get(lockfileDir);\n }\n const modulesManifest = await readModulesManifest(join(lockfileDir, 'node_modules'));\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 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 lockfile = await readWantedLockfile(opts.lockfileDir, { ignoreIncompatible: false });\n if (!lockfile) return '';\n const importerIds = Object.keys(lockfile.importers ?? {}).filter((id) => !id.includes(`${BIT_ROOTS_DIR}/`));\n const projectPaths = importerIds.map((id) => join(opts.lockfileDir, id));\n const importerInfoMap = new Map<string, ImporterInfo>();\n for (const importerId of importerIds) {\n const pkgJson = tryReadPackageJson(join(opts.lockfileDir, importerId));\n importerInfoMap.set(importerId, {\n name: pkgJson?.name ?? importerId,\n version: pkgJson?.version ?? '',\n });\n }\n const trees = await buildDependentsTree([depName], projectPaths, {\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: true,\n },\n lockfileDir: opts.lockfileDir,\n registries: {\n default: 'https://registry.npmjs.org',\n },\n importerInfoMap,\n lockfile,\n nameFormatter({ manifest }) {\n if ('componentId' in manifest) {\n const { scope, name } = manifest.componentId as { scope: string; name: string };\n return `${scope}/${name}`;\n }\n return manifest.name;\n },\n });\n return renderDependentsTree(trees, {\n depth: opts.depth ?? Infinity,\n long: false,\n });\n }\n\n /**\n * Calculating the dependencies graph of a given component using the lockfile.\n */\n async calcDependenciesGraph(opts: CalcDepsGraphOptions): Promise<void> {\n const originalLockfile = await readWantedLockfile(opts.rootDir, { ignoreIncompatible: false });\n if (!originalLockfile) {\n return;\n }\n for (const { componentRootDir, componentRelativeDir, pkgName, component } of opts.components) {\n let compRootDir: string | undefined;\n if (componentRootDir && !originalLockfile.importers[componentRootDir] && componentRootDir.includes('@')) {\n compRootDir = componentRootDir.split('@')[0];\n } else {\n compRootDir = componentRootDir;\n }\n if (!originalLockfile.importers[compRootDir as ProjectId]) {\n continue;\n }\n const filterByImporterIds = [componentRelativeDir as ProjectId];\n if (compRootDir != null) {\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, any> = {};\n for (const importerId of filterByImporterIds) {\n if (originalLockfile.importers[importerId]) {\n clonedImporters[importerId] = structuredClone(originalLockfile.importers[importerId]);\n }\n }\n const lockfile = {\n ...originalLockfile,\n importers: { ...originalLockfile.importers, ...clonedImporters },\n };\n for (const importerId of filterByImporterIds) {\n for (const depType of [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n 'specifiers',\n 'dependenciesMeta',\n ]) {\n for (const workspacePkgName of opts.componentIdByPkgName.keys()) {\n if (workspacePkgName !== pkgName) {\n delete lockfile.importers[importerId]?.[depType]?.[workspacePkgName];\n }\n }\n }\n }\n // Filters the lockfile so that it only includes packages related to the given component.\n const partialLockfile = convertLockfileObjectToLockfileFile(\n filterLockfileByImporters(lockfile, filterByImporterIds, {\n include: {\n dependencies: true,\n devDependencies: true,\n optionalDependencies: true,\n },\n failOnMissingDependencies: false,\n skipped: new Set(),\n })\n );\n const graph = convertLockfileToGraph(partialLockfile, {\n ...opts,\n componentRootDir: compRootDir,\n componentRelativeDir,\n pkgName,\n });\n component.state._consumer.dependenciesGraph = graph;\n }\n }\n}\n\nfunction tryReadPackageJson(pkgDir: string) {\n try {\n return JSON.parse(fs.readFileSync(join(pkgDir, 'package.json'), 'utf8'));\n } catch {\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_pnpm@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_pnpm@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_pnpm@1.0.925/dist/pnpm.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.dependencies_pnpm@1.0.925/dist/pnpm.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/pnpm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.925",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/dependencies/pnpm",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.dependencies",
|
|
8
8
|
"name": "pnpm",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.925"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@pnpm/config": "1004.10.2",
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
"@teambit/harmony.modules.feature-toggle": "0.0.34",
|
|
51
51
|
"@teambit/legacy.logger": "0.0.35",
|
|
52
52
|
"@teambit/ui-foundation.ui.use-box.menu": "1.0.16",
|
|
53
|
-
"@teambit/dependency-resolver": "1.0.
|
|
54
|
-
"@teambit/objects": "0.0.
|
|
55
|
-
"@teambit/cloud": "0.0.
|
|
56
|
-
"@teambit/component": "1.0.
|
|
57
|
-
"@teambit/ui": "1.0.
|
|
53
|
+
"@teambit/dependency-resolver": "1.0.906",
|
|
54
|
+
"@teambit/objects": "0.0.413",
|
|
55
|
+
"@teambit/cloud": "0.0.1191",
|
|
56
|
+
"@teambit/component": "1.0.906",
|
|
57
|
+
"@teambit/ui": "1.0.906"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@types/lodash": "4.14.165",
|