@teambit/pnpm 1.0.1124 → 1.0.1125
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/.npmignore +18 -0
- package/dist/get-proxy-config.d.ts +2 -7
- package/dist/get-proxy-config.js +4 -7
- package/dist/get-proxy-config.js.map +1 -1
- package/dist/get-registries.d.ts +2 -2
- package/dist/get-registries.js +23 -93
- package/dist/get-registries.js.map +1 -1
- package/dist/load-pnpm-esm.cjs +19 -0
- package/dist/lockfile-deps-graph-converter.d.ts +17 -1
- package/dist/lockfile-deps-graph-converter.js +101 -32
- package/dist/lockfile-deps-graph-converter.js.map +1 -1
- package/dist/lockfile-deps-graph-converter.spec.js +200 -5
- package/dist/lockfile-deps-graph-converter.spec.js.map +1 -1
- package/dist/lynx.d.ts +53 -5
- package/dist/lynx.js +378 -322
- package/dist/lynx.js.map +1 -1
- package/dist/lynx.spec.d.ts +1 -0
- package/dist/lynx.spec.js +55 -0
- package/dist/lynx.spec.js.map +1 -0
- package/dist/pnpm-error-to-bit-error.d.ts +17 -2
- package/dist/pnpm-error-to-bit-error.js +7 -0
- package/dist/pnpm-error-to-bit-error.js.map +1 -1
- package/dist/pnpm-error-to-bit-error.spec.js +10 -11
- package/dist/pnpm-error-to-bit-error.spec.js.map +1 -1
- package/dist/pnpm-prune-modules.js +18 -8
- package/dist/pnpm-prune-modules.js.map +1 -1
- package/dist/pnpm.package-manager.d.ts +3 -4
- package/dist/pnpm.package-manager.js +168 -60
- package/dist/pnpm.package-manager.js.map +1 -1
- package/dist/pnpm.package-manager.spec.d.ts +1 -0
- package/dist/pnpm.package-manager.spec.js +48 -0
- package/dist/pnpm.package-manager.spec.js.map +1 -0
- package/dist/{preview-1785466791445.js → preview-1785493814568.js} +2 -2
- package/dist/read-config.d.ts +7 -1
- package/dist/read-config.js +22 -14
- package/dist/read-config.js.map +1 -1
- package/load-pnpm-esm.cjs +19 -0
- package/package.json +21 -33
|
@@ -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","referencingComp1","edge","some","n","has","equal","comp3","undefined","rootEdge","findRootEdge","map","find","includes","generateLargeLockfile","numPackages","numComponents","importerDeps","deps","compName","compPath","fileDepPath","set","Array","from","_","start","performance","now","elapsed","be","greaterThan","size","lessThan","lockfileCount","lockfiles","graphs","ROOT_EDGE_ID","resolverCalled","sort","err","Error","code","snapPkgId","caught","message","error","_error","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 with a circular workspace dependency back to the component being processed', () => {\n // Reproduces the \"No matching version found for <workspace-comp>@0.0.0-<hash>\"\n // failure: comp1 (the component being processed) is removed from snapshots\n // and packages, but a circular workspace dep (comp2 depends back on comp1)\n // leaves an edge whose neighbour references comp1@<version> with no\n // corresponding packages entry. When the graph is later converted back to a\n // lockfile, convertGraphToLockfile materialises that dangling neighbour as\n // an empty packages entry and getPkgsToResolve treats it as a missing\n // package, asking the registry for a snap-version that was never published.\n it('should drop edges that reference the component being processed', () => {\n const lockfile: BitLockfileFile = {\n bit: { depsRequiringBuild: [] },\n importers: {\n '.': {},\n 'node_modules/.bit_roots/env': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n 'comps/comp1': {\n dependencies: {\n comp2: { version: 'file:comps/comp2', specifier: '*' },\n },\n },\n 'comps/comp2': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'comp1@file:comps/comp1': {\n dependencies: {\n comp2: 'file:comps/comp2',\n },\n },\n 'comp2@file:comps/comp2': {\n dependencies: {\n comp1: 'file:comps/comp1',\n },\n },\n },\n packages: {\n 'comp1@file:comps/comp1': {\n resolution: { directory: 'comps/comp1', type: 'directory' },\n },\n 'comp2@file:comps/comp2': {\n resolution: { directory: 'comps/comp2', type: 'directory' },\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 // The graph must never reference comp1 — it is the component being\n // snapped, so it does not belong in its own deps graph.\n const referencingComp1 = graph.edges.filter((edge) => edge.neighbours.some((n) => n.id === 'comp1@1.0.0'));\n expect(referencingComp1).to.eql([]);\n expect(graph.packages.has('comp1@1.0.0')).to.equal(false);\n });\n\n // Same bug, but the cycle closes through an intermediate workspace\n // component (comp1 → comp2 → comp3 → comp1). The back-edge in the\n // lockfile lives on comp3's snapshot, not comp2's. Scrubbing only\n // direct dependents of comp1 would miss it; the fix iterates every\n // remaining snapshot so chain-length doesn't matter.\n it('should drop edges that reference the component via a multi-hop chain', () => {\n const lockfile: BitLockfileFile = {\n bit: { depsRequiringBuild: [] },\n importers: {\n '.': {},\n 'node_modules/.bit_roots/env': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n 'comps/comp1': {\n dependencies: {\n comp2: { version: 'file:comps/comp2', specifier: '*' },\n },\n },\n 'comps/comp2': {\n dependencies: {\n comp3: { version: 'file:comps/comp3', specifier: '*' },\n },\n },\n 'comps/comp3': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'comp1@file:comps/comp1': { dependencies: { comp2: 'file:comps/comp2' } },\n 'comp2@file:comps/comp2': { dependencies: { comp3: 'file:comps/comp3' } },\n 'comp3@file:comps/comp3': { dependencies: { comp1: 'file:comps/comp1' } },\n },\n packages: {\n 'comp1@file:comps/comp1': { resolution: { directory: 'comps/comp1', type: 'directory' } },\n 'comp2@file:comps/comp2': { resolution: { directory: 'comps/comp2', type: 'directory' } },\n 'comp3@file:comps/comp3': { resolution: { directory: 'comps/comp3', type: 'directory' } },\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 ['comp3', ComponentID.fromString('my-scope/comp3@1.0.0')],\n ]),\n });\n const referencingComp1 = graph.edges.filter((edge) => edge.neighbours.some((n) => n.id === 'comp1@1.0.0'));\n expect(referencingComp1).to.eql([]);\n expect(graph.packages.has('comp1@1.0.0')).to.equal(false);\n });\n});\n\ndescribe('convertLockfileToGraph with directory packages missing from componentIdByPkgName', () => {\n it('should not persist orphan @file: pkgIds in the produced graph', () => {\n // Reproduces how the broken graphs end up in the model: a directory-type\n // package in the lockfile whose name is absent from componentIdByPkgName.\n // buildPackages strips the directory resolution but leaves the \"@file:\"\n // pkgId untouched, which downstream cannot resolve. The graph creator\n // must drop these so the model never stores entries that future\n // installs can't generate a valid lockfile from.\n const lockfile: BitLockfileFile = {\n bit: { depsRequiringBuild: [] },\n importers: {\n '.': {},\n 'comps/comp1': {\n dependencies: {\n foo: { version: '1.0.0', specifier: '^1.0.0' },\n 'orphan-comp': { version: 'file:packages/orphan-comp', specifier: '*' },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'foo@1.0.0': {},\n 'orphan-comp@file:packages/orphan-comp': {\n dependencies: { foo: '1.0.0' },\n },\n },\n packages: {\n 'foo@1.0.0': { resolution: { integrity: 'sha512-aaa' } },\n 'orphan-comp@file:packages/orphan-comp': {\n resolution: { directory: 'packages/orphan-comp', type: 'directory' },\n },\n },\n };\n const graph = convertLockfileToGraph(lockfile, {\n pkgName: undefined,\n componentRelativeDir: 'comps/comp1',\n componentRootDir: undefined,\n // Intentionally empty: simulates the bug where the workspace map\n // didn't include the directory dep.\n componentIdByPkgName: new Map(),\n });\n expect([...graph.packages.keys()]).to.eql(['foo@1.0.0']);\n const rootEdge = graph.findRootEdge();\n expect(rootEdge?.neighbours.map((n) => n.id)).to.eql(['foo@1.0.0']);\n expect(graph.edges.find(({ id }) => id.includes('@file:'))).to.equal(undefined);\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 // Reproduces the CI failure where a saved deps graph leaks \"@file:\" entries\n // because buildPackages couldn't map them to a workspace component. The\n // directory resolution was deleted and getPkgsToResolve can't recover an\n // integrity for \"file:\" versions (dp.parse puts them in nonSemverVersion,\n // not version), so validation throws \"doesn't have a 'resolution' field\".\n // At install time the orphan can't be salvaged: if its name matches a\n // workspace project pnpm wires it through importers/link entries (so the\n // packages entry would be wrong), and otherwise we have no published\n // version to recover. Dropping it is the only safe outcome.\n it('should drop orphan @file: packages when generating a lockfile', async () => {\n const packages: PackagesMap = new Map([\n ['@teambit/dot-launch.apps.whats-new-app@file:dot-launch/apps/whats-new-app', {} as any],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n { id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' },\n {\n id: '@teambit/dot-launch.apps.whats-new-app@file:dot-launch/apps/whats-new-app',\n name: '@teambit/dot-launch.apps.whats-new-app',\n specifier: '*',\n lifecycle: 'runtime',\n },\n ],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [\n {\n id: '@teambit/dot-launch.apps.whats-new-app@file:dot-launch/apps/whats-new-app',\n optional: false,\n },\n ],\n },\n {\n id: '@teambit/dot-launch.apps.whats-new-app@file:dot-launch/apps/whats-new-app',\n neighbours: [],\n },\n ];\n const graph = new DependenciesGraph({ packages, edges });\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: {\n dependencies: { foo: '1.0.0' },\n },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: { integrity: '0000' } }) as any,\n });\n expect(Object.keys(lockfile.packages!)).to.eql(['foo@1.0.0']);\n expect(Object.keys(lockfile.snapshots!)).to.eql(['foo@1.0.0']);\n // The dangling snapshot neighbour pointing at the orphan must also be\n // filtered out so pnpm doesn't try to resolve a dep that no longer exists.\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n // Saved by bits older than #10361: when a workspace component with a\n // circular dep was snapped, the component's own snapshot/package was\n // deleted but back-references on other snapshots survived. The neighbour\n // now points at a snap-version pkgId that exists nowhere else in the\n // graph. Without the scrub, convertGraphToLockfile would materialise an\n // empty packages entry and getPkgsToResolve would ask the registry for\n // that unpublished snap version (surfacing as ERR_PNPM_NO_MATCHING_VERSION\n // on ripple at install time).\n it('should drop orphan neighbours that have no edge and no packages entry', async () => {\n const packages: PackagesMap = new Map([['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any]]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [\n {\n id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc0fcd7c894001404a162a48aca0219d43',\n optional: false,\n },\n ],\n },\n ];\n const graph = new DependenciesGraph({ packages, edges });\n let resolverCalled = false;\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: {\n dependencies: { foo: '1.0.0' },\n },\n },\n rootDir: process.cwd(),\n resolve: () => {\n resolverCalled = true;\n return { resolution: { integrity: '0000' } } as any;\n },\n });\n expect(resolverCalled).to.equal(false);\n expect(Object.keys(lockfile.packages!)).to.eql(['foo@1.0.0']);\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n it('should leave legitimate neighbours intact when scrubbing orphans', async () => {\n const packages: PackagesMap = new Map([\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ['bar@2.0.0', { resolution: { integrity: 'sha512-bbb' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [\n { id: 'bar@2.0.0', optional: false },\n { id: 'orphan-pkg@0.0.0-deadbeef', optional: false },\n ],\n },\n ];\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: { integrity: '0000' } }) as any,\n });\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({ dependencies: { bar: '2.0.0' } });\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['bar@2.0.0', 'foo@1.0.0']);\n });\n\n // Saved by bits older than #10361: even when the workspace-component's snap\n // entry survives in the graph (with no resolution, since the directory type\n // was stripped at snap time), the registry lookup at install time fails\n // because that snap-version was never published. Scrub the package, its\n // snapshots and every reference to it so pnpm can re-resolve the dep from\n // the installing manifest's specifier instead of aborting the install.\n it('should drop workspace-component pkgs that fail to resolve from the registry', async () => {\n const packages: PackagesMap = new Map([\n [\n '@bitdev/react.app-types.vite-react@0.0.0-df1917dc',\n { component: { scope: 'bitdev.react', name: 'app-types/vite-react' } } as any,\n ],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [{ id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc', optional: false }],\n },\n {\n id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc',\n neighbours: [],\n },\n ];\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => {\n const err = new Error('No matching version found');\n (err as Error & { code: string }).code = 'ERR_PNPM_NO_MATCHING_VERSION';\n throw err;\n },\n });\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['foo@1.0.0']);\n expect(Object.keys(lockfile.snapshots!).sort()).to.eql(['foo@1.0.0']);\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n // A workspace-component snap reaches lockfile validation with no resolution\n // even though resolve() never threw NO_MATCHING_VERSION, because\n // getPkgsToResolve skips any pkgId whose name+version matches a manifest in\n // the sign/capsule set. The snap is a seeder being signed, so it is in the\n // manifests, never sent to the resolver, and would surface as\n // `packages['...button-base@0.0.0-<snap>'] entry doesn't have a \"resolution\"\n // field`. It must be scrubbed so pnpm links it from the manifest instead.\n it('should drop workspace-component snaps skipped by the resolver (seeder in manifests)', async () => {\n const snapPkgId = '@my-org/my-scope.components.button-base@0.0.0-e1613079b55eabc19ad484478b769d929986c124';\n const packages: PackagesMap = new Map([\n [snapPkgId, { component: { scope: 'my-org.my-scope', name: 'components/button-base' } } as any],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [{ id: snapPkgId, optional: false }],\n },\n { id: snapPkgId, neighbours: [] },\n ];\n let resolverCalled = false;\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n // button-base is a seeder being signed, so it appears in the manifests\n // with its snap version — getPkgsToResolve skips it for that reason.\n [path.resolve('comps/button-base')]: {\n name: '@my-org/my-scope.components.button-base',\n version: '0.0.0-e1613079b55eabc19ad484478b769d929986c124',\n },\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => {\n resolverCalled = true;\n return { resolution: { integrity: '0000' } } as any;\n },\n });\n expect(resolverCalled).to.equal(false);\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['foo@1.0.0']);\n expect(Object.keys(lockfile.snapshots!).sort()).to.eql(['foo@1.0.0']);\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n // Sibling of the above: even when the resolver IS called for a\n // workspace-component snap, it may succeed yet return a resolution with no\n // integrity (e.g. a directory/git resolution). The pkg then stays\n // resolution-less and must be scrubbed rather than failing validation.\n it('should drop workspace-component pkgs whose resolution has no integrity', async () => {\n const snapPkgId = '@my-org/my-scope.components.button-base@0.0.0-e1613079';\n const packages: PackagesMap = new Map([\n [snapPkgId, { component: { scope: 'my-org.my-scope', name: 'components/button-base' } } as any],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n { id: 'foo@1.0.0', neighbours: [{ id: snapPkgId, optional: false }] },\n { id: snapPkgId, neighbours: [] },\n ];\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n // Resolver succeeds but returns no integrity for the unpublished snap.\n resolve: () => ({ resolution: {} }) as any,\n });\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['foo@1.0.0']);\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n // When the resolve failure is for a regular registry package (no component\n // attribute), we still want to surface the error rather than silently drop\n // it — that path means the graph itself is genuinely broken, not just\n // referencing an unpublished workspace snap.\n it('should re-throw resolver errors for non-component pkgs', 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: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n { id: 'foo@1.0.0', neighbours: [] },\n ];\n let caught: Error | undefined;\n try {\n await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => {\n throw new Error('boom');\n },\n });\n } catch (err) {\n caught = err as Error;\n }\n expect(caught?.message).to.equal('boom');\n });\n\n // Narrowing guardrail: even for a component-flagged pkg, only\n // ERR_PNPM_NO_MATCHING_VERSION should be swallowed. A network/auth/5xx\n // failure must propagate so a real outage isn't silently masked as a\n // graph-recovery success.\n it('should re-throw non-NoMatchingVersion errors even for component pkgs', async () => {\n const packages: PackagesMap = new Map([\n [\n '@bitdev/react.app-types.vite-react@0.0.0-df1917dc',\n { component: { scope: 'bitdev.react', name: 'app-types/vite-react' } } as any,\n ],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n { id: 'foo@1.0.0', neighbours: [{ id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc' }] },\n { id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc', neighbours: [] },\n ];\n let caught: Error | undefined;\n try {\n await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => {\n const err = new Error('Connect ETIMEDOUT');\n (err as Error & { code: string }).code = 'ERR_PNPM_META_FETCH_FAIL';\n throw err;\n },\n });\n } catch (err) {\n caught = err as Error;\n }\n expect(caught?.message).to.equal('Connect ETIMEDOUT');\n expect((caught as Error & { code: string }).code).to.equal('ERR_PNPM_META_FETCH_FAIL');\n });\n\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","before","initLockfileDepsGraphConverter","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","linked","rootNeighbourIds","find","edge","map","not","include","referencingComp1","some","n","has","equal","comp3","undefined","rootEdge","findRootEdge","includes","generateLargeLockfile","numPackages","numComponents","importerDeps","deps","compName","compPath","fileDepPath","set","Array","from","_","start","performance","now","elapsed","be","greaterThan","size","lessThan","lockfileCount","lockfiles","graphs","ROOT_EDGE_ID","resolverCalled","sort","merge","abc","err","Error","code","componentPkgId","snapPkgId","caught","message","error","_error","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 {\n convertLockfileToGraph,\n convertGraphToLockfile,\n init as initLockfileDepsGraphConverter,\n} from './lockfile-deps-graph-converter';\nimport { type BitLockfileFile } from './lynx';\nimport { expect } from 'chai';\n\nbefore(async () => {\n await initLockfileDepsGraphConverter();\n});\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 let graph: DependenciesGraph;\n before(() => {\n 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 });\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 with a link: importer dependency', () => {\n it('should skip importer deps whose ref has no registry form', () => {\n const lockfile: BitLockfileFile = {\n importers: {\n '.': {},\n 'node_modules/.bit_roots/env': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n 'comps/comp1': {\n devDependencies: {\n linked: { version: 'link:../linked', specifier: '*' },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'comp1@file:comps/comp1': {},\n },\n packages: {\n 'comp1@file:comps/comp1': {\n resolution: { directory: 'comps/comp1', type: 'directory' },\n },\n },\n } as BitLockfileFile;\n const graph = convertLockfileToGraph(lockfile, {\n pkgName: 'comp1',\n componentRelativeDir: 'comps/comp1',\n componentRootDir: 'node_modules/.bit_roots/env',\n componentIdByPkgName: new Map([['comp1', ComponentID.fromString('my-scope/comp1@1.0.0')]]),\n });\n const rootNeighbourIds = graph.edges.find((edge) => edge.id === '.')!.neighbours.map(({ id }) => id);\n expect(rootNeighbourIds).to.not.include(null);\n expect(rootNeighbourIds).to.not.include('null');\n });\n});\n\ndescribe('convertLockfileToGraph with a circular workspace dependency back to the component being processed', () => {\n // Reproduces the \"No matching version found for <workspace-comp>@0.0.0-<hash>\"\n // failure: comp1 (the component being processed) is removed from snapshots\n // and packages, but a circular workspace dep (comp2 depends back on comp1)\n // leaves an edge whose neighbour references comp1@<version> with no\n // corresponding packages entry. When the graph is later converted back to a\n // lockfile, convertGraphToLockfile materialises that dangling neighbour as\n // an empty packages entry and getPkgsToResolve treats it as a missing\n // package, asking the registry for a snap-version that was never published.\n it('should drop edges that reference the component being processed', () => {\n const lockfile: BitLockfileFile = {\n bit: { depsRequiringBuild: [] },\n importers: {\n '.': {},\n 'node_modules/.bit_roots/env': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n 'comps/comp1': {\n dependencies: {\n comp2: { version: 'file:comps/comp2', specifier: '*' },\n },\n },\n 'comps/comp2': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'comp1@file:comps/comp1': {\n dependencies: {\n comp2: 'file:comps/comp2',\n },\n },\n 'comp2@file:comps/comp2': {\n dependencies: {\n comp1: 'file:comps/comp1',\n },\n },\n },\n packages: {\n 'comp1@file:comps/comp1': {\n resolution: { directory: 'comps/comp1', type: 'directory' },\n },\n 'comp2@file:comps/comp2': {\n resolution: { directory: 'comps/comp2', type: 'directory' },\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 // The graph must never reference comp1 — it is the component being\n // snapped, so it does not belong in its own deps graph.\n const referencingComp1 = graph.edges.filter((edge) => edge.neighbours.some((n) => n.id === 'comp1@1.0.0'));\n expect(referencingComp1).to.eql([]);\n expect(graph.packages.has('comp1@1.0.0')).to.equal(false);\n });\n\n // Same bug, but the cycle closes through an intermediate workspace\n // component (comp1 → comp2 → comp3 → comp1). The back-edge in the\n // lockfile lives on comp3's snapshot, not comp2's. Scrubbing only\n // direct dependents of comp1 would miss it; the fix iterates every\n // remaining snapshot so chain-length doesn't matter.\n it('should drop edges that reference the component via a multi-hop chain', () => {\n const lockfile: BitLockfileFile = {\n bit: { depsRequiringBuild: [] },\n importers: {\n '.': {},\n 'node_modules/.bit_roots/env': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n 'comps/comp1': {\n dependencies: {\n comp2: { version: 'file:comps/comp2', specifier: '*' },\n },\n },\n 'comps/comp2': {\n dependencies: {\n comp3: { version: 'file:comps/comp3', specifier: '*' },\n },\n },\n 'comps/comp3': {\n dependencies: {\n comp1: { version: 'file:comps/comp1', specifier: '*' },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'comp1@file:comps/comp1': { dependencies: { comp2: 'file:comps/comp2' } },\n 'comp2@file:comps/comp2': { dependencies: { comp3: 'file:comps/comp3' } },\n 'comp3@file:comps/comp3': { dependencies: { comp1: 'file:comps/comp1' } },\n },\n packages: {\n 'comp1@file:comps/comp1': { resolution: { directory: 'comps/comp1', type: 'directory' } },\n 'comp2@file:comps/comp2': { resolution: { directory: 'comps/comp2', type: 'directory' } },\n 'comp3@file:comps/comp3': { resolution: { directory: 'comps/comp3', type: 'directory' } },\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 ['comp3', ComponentID.fromString('my-scope/comp3@1.0.0')],\n ]),\n });\n const referencingComp1 = graph.edges.filter((edge) => edge.neighbours.some((n) => n.id === 'comp1@1.0.0'));\n expect(referencingComp1).to.eql([]);\n expect(graph.packages.has('comp1@1.0.0')).to.equal(false);\n });\n});\n\ndescribe('convertLockfileToGraph with directory packages missing from componentIdByPkgName', () => {\n it('should not persist orphan @file: pkgIds in the produced graph', () => {\n // Reproduces how the broken graphs end up in the model: a directory-type\n // package in the lockfile whose name is absent from componentIdByPkgName.\n // buildPackages strips the directory resolution but leaves the \"@file:\"\n // pkgId untouched, which downstream cannot resolve. The graph creator\n // must drop these so the model never stores entries that future\n // installs can't generate a valid lockfile from.\n const lockfile: BitLockfileFile = {\n bit: { depsRequiringBuild: [] },\n importers: {\n '.': {},\n 'comps/comp1': {\n dependencies: {\n foo: { version: '1.0.0', specifier: '^1.0.0' },\n 'orphan-comp': { version: 'file:packages/orphan-comp', specifier: '*' },\n },\n },\n },\n lockfileVersion: '9.0',\n snapshots: {\n 'foo@1.0.0': {},\n 'orphan-comp@file:packages/orphan-comp': {\n dependencies: { foo: '1.0.0' },\n },\n },\n packages: {\n 'foo@1.0.0': { resolution: { integrity: 'sha512-aaa' } },\n 'orphan-comp@file:packages/orphan-comp': {\n resolution: { directory: 'packages/orphan-comp', type: 'directory' },\n },\n },\n };\n const graph = convertLockfileToGraph(lockfile, {\n pkgName: undefined,\n componentRelativeDir: 'comps/comp1',\n componentRootDir: undefined,\n // Intentionally empty: simulates the bug where the workspace map\n // didn't include the directory dep.\n componentIdByPkgName: new Map(),\n });\n expect([...graph.packages.keys()]).to.eql(['foo@1.0.0']);\n const rootEdge = graph.findRootEdge();\n expect(rootEdge?.neighbours.map((n) => n.id)).to.eql(['foo@1.0.0']);\n expect(graph.edges.find(({ id }) => id.includes('@file:'))).to.equal(undefined);\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 // Reproduces the CI failure where a saved deps graph leaks \"@file:\" entries\n // because buildPackages couldn't map them to a workspace component. The\n // directory resolution was deleted and getPkgsToResolve can't recover an\n // integrity for \"file:\" versions (dp.parse puts them in nonSemverVersion,\n // not version), so validation throws \"doesn't have a 'resolution' field\".\n // At install time the orphan can't be salvaged: if its name matches a\n // workspace project pnpm wires it through importers/link entries (so the\n // packages entry would be wrong), and otherwise we have no published\n // version to recover. Dropping it is the only safe outcome.\n it('should drop orphan @file: packages when generating a lockfile', async () => {\n const packages: PackagesMap = new Map([\n ['@teambit/dot-launch.apps.whats-new-app@file:dot-launch/apps/whats-new-app', {} as any],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n { id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' },\n {\n id: '@teambit/dot-launch.apps.whats-new-app@file:dot-launch/apps/whats-new-app',\n name: '@teambit/dot-launch.apps.whats-new-app',\n specifier: '*',\n lifecycle: 'runtime',\n },\n ],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [\n {\n id: '@teambit/dot-launch.apps.whats-new-app@file:dot-launch/apps/whats-new-app',\n optional: false,\n },\n ],\n },\n {\n id: '@teambit/dot-launch.apps.whats-new-app@file:dot-launch/apps/whats-new-app',\n neighbours: [],\n },\n ];\n const graph = new DependenciesGraph({ packages, edges });\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: {\n dependencies: { foo: '1.0.0' },\n },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: { integrity: '0000' } }) as any,\n });\n expect(Object.keys(lockfile.packages!)).to.eql(['foo@1.0.0']);\n expect(Object.keys(lockfile.snapshots!)).to.eql(['foo@1.0.0']);\n // The dangling snapshot neighbour pointing at the orphan must also be\n // filtered out so pnpm doesn't try to resolve a dep that no longer exists.\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n // Saved by bits older than #10361: when a workspace component with a\n // circular dep was snapped, the component's own snapshot/package was\n // deleted but back-references on other snapshots survived. The neighbour\n // now points at a snap-version pkgId that exists nowhere else in the\n // graph. Without the scrub, convertGraphToLockfile would materialise an\n // empty packages entry and getPkgsToResolve would ask the registry for\n // that unpublished snap version (surfacing as ERR_PNPM_NO_MATCHING_VERSION\n // on ripple at install time).\n it('should drop orphan neighbours that have no edge and no packages entry', async () => {\n const packages: PackagesMap = new Map([['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any]]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [\n {\n id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc0fcd7c894001404a162a48aca0219d43',\n optional: false,\n },\n ],\n },\n ];\n const graph = new DependenciesGraph({ packages, edges });\n let resolverCalled = false;\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: {\n dependencies: { foo: '1.0.0' },\n },\n },\n rootDir: process.cwd(),\n resolve: () => {\n resolverCalled = true;\n return { resolution: { integrity: '0000' } } as any;\n },\n });\n expect(resolverCalled).to.equal(false);\n expect(Object.keys(lockfile.packages!)).to.eql(['foo@1.0.0']);\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n it('should leave legitimate neighbours intact when scrubbing orphans', async () => {\n const packages: PackagesMap = new Map([\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ['bar@2.0.0', { resolution: { integrity: 'sha512-bbb' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [\n { id: 'bar@2.0.0', optional: false },\n { id: 'orphan-pkg@0.0.0-deadbeef', optional: false },\n ],\n },\n ];\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: { integrity: '0000' } }) as any,\n });\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({ dependencies: { bar: '2.0.0' } });\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['bar@2.0.0', 'foo@1.0.0']);\n });\n\n it('should merge peer providers to the highest compatible version', async () => {\n const peerDependencies = { 'peer-a': '^1.0.0' };\n const graph = new DependenciesGraph({\n packages: new Map([\n ['abc@1.0.0', { resolution: { integrity: 'sha512-abc1' }, peerDependencies } as any],\n ['peer-a@1.0.1', { resolution: { integrity: 'sha512-peer101' } } as any],\n ]),\n edges: [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n {\n id: 'abc@1.0.0(peer-a@1.0.1)',\n name: 'abc',\n specifier: '*',\n lifecycle: 'runtime',\n },\n ],\n },\n {\n id: 'abc@1.0.0(peer-a@1.0.1)',\n attr: { pkgId: 'abc@1.0.0' },\n neighbours: [{ id: 'peer-a@1.0.1', optional: false }],\n },\n ],\n });\n graph.merge(\n new DependenciesGraph({\n packages: new Map([\n ['abc@2.0.0', { resolution: { integrity: 'sha512-abc2' }, peerDependencies } as any],\n ['peer-a@1.0.0', { resolution: { integrity: 'sha512-peer100' } } as any],\n ]),\n edges: [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n {\n id: 'abc@2.0.0(peer-a@1.0.0)',\n name: 'abc',\n specifier: '*',\n lifecycle: 'runtime',\n },\n ],\n },\n {\n id: 'abc@2.0.0(peer-a@1.0.0)',\n attr: { pkgId: 'abc@2.0.0' },\n neighbours: [{ id: 'peer-a@1.0.0', optional: false }],\n },\n ],\n })\n );\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(graph), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { abc: '*' } },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: { integrity: '0000' } }) as any,\n });\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['abc@2.0.0', 'peer-a@1.0.1']);\n expect(lockfile.importers!['comps/comp1'].dependencies!.abc.version).to.eql('2.0.0(peer-a@1.0.1)');\n expect(lockfile.snapshots!['abc@2.0.0(peer-a@1.0.1)']).to.eql({ dependencies: { 'peer-a': '1.0.1' } });\n });\n\n // Saved by bits older than #10361: even when the workspace-component's snap\n // entry survives in the graph (with no resolution, since the directory type\n // was stripped at snap time), the registry lookup at install time fails\n // because that snap-version was never published. Scrub the package, its\n // snapshots and every reference to it so pnpm can re-resolve the dep from\n // the installing manifest's specifier instead of aborting the install.\n it('should drop workspace-component pkgs that fail to resolve from the registry', async () => {\n const packages: PackagesMap = new Map([\n [\n '@bitdev/react.app-types.vite-react@0.0.0-df1917dc',\n { component: { scope: 'bitdev.react', name: 'app-types/vite-react' } } as any,\n ],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [{ id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc', optional: false }],\n },\n {\n id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc',\n neighbours: [],\n },\n ];\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => {\n const err = new Error('No matching version found');\n (err as Error & { code: string }).code = 'ERR_PNPM_NO_MATCHING_VERSION';\n throw err;\n },\n });\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['foo@1.0.0']);\n expect(Object.keys(lockfile.snapshots!).sort()).to.eql(['foo@1.0.0']);\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n it('should keep workspace-component pkgs that already have a valid resolution', async () => {\n const componentPkgId = '@my-org/my-scope.comp2@1.0.0';\n const packages: PackagesMap = new Map([\n [\n componentPkgId,\n {\n component: { scope: 'my-org.my-scope', name: 'comp2' },\n resolution: { integrity: 'sha512-comp2' },\n } as any,\n ],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n {\n id: componentPkgId,\n name: '@my-org/my-scope.comp2',\n specifier: '1.0.0',\n lifecycle: 'runtime',\n },\n ],\n },\n {\n id: componentPkgId,\n neighbours: [],\n },\n ];\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { '@my-org/my-scope.comp2': '1.0.0' } },\n [path.resolve('comps/comp2')]: {\n name: '@my-org/my-scope.comp2',\n version: '1.0.0',\n },\n },\n rootDir: process.cwd(),\n resolve: () => {\n throw new Error('resolved workspace component should not be re-resolved');\n },\n });\n expect(lockfile.importers!['comps/comp1'].dependencies!['@my-org/my-scope.comp2']).to.eql({\n version: '1.0.0',\n specifier: '1.0.0',\n });\n expect(lockfile.packages![componentPkgId]).to.eql({ resolution: { integrity: 'sha512-comp2' } });\n expect(lockfile.snapshots![componentPkgId]).to.eql({});\n });\n\n // A workspace-component snap reaches lockfile validation with no resolution\n // even though resolve() never threw NO_MATCHING_VERSION, because\n // getPkgsToResolve skips any pkgId whose name+version matches a manifest in\n // the sign/capsule set. The snap is a seeder being signed, so it is in the\n // manifests, never sent to the resolver, and would surface as\n // `packages['...button-base@0.0.0-<snap>'] entry doesn't have a \"resolution\"\n // field`. It must be scrubbed so pnpm links it from the manifest instead.\n it('should drop workspace-component snaps skipped by the resolver (seeder in manifests)', async () => {\n const snapPkgId = '@my-org/my-scope.components.button-base@0.0.0-e1613079b55eabc19ad484478b769d929986c124';\n const packages: PackagesMap = new Map([\n [snapPkgId, { component: { scope: 'my-org.my-scope', name: 'components/button-base' } } as any],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n {\n id: 'foo@1.0.0',\n neighbours: [{ id: snapPkgId, optional: false }],\n },\n { id: snapPkgId, neighbours: [] },\n ];\n let resolverCalled = false;\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n // button-base is a seeder being signed, so it appears in the manifests\n // with its snap version — getPkgsToResolve skips it for that reason.\n [path.resolve('comps/button-base')]: {\n name: '@my-org/my-scope.components.button-base',\n version: '0.0.0-e1613079b55eabc19ad484478b769d929986c124',\n },\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => {\n resolverCalled = true;\n return { resolution: { integrity: '0000' } } as any;\n },\n });\n expect(resolverCalled).to.equal(false);\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['foo@1.0.0']);\n expect(Object.keys(lockfile.snapshots!).sort()).to.eql(['foo@1.0.0']);\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n // Sibling of the above: even when the resolver IS called for a\n // workspace-component snap, it may succeed yet return a resolution with no\n // integrity (e.g. a directory/git resolution). The pkg then stays\n // resolution-less and must be scrubbed rather than failing validation.\n it('should drop workspace-component pkgs whose resolution has no integrity', async () => {\n const snapPkgId = '@my-org/my-scope.components.button-base@0.0.0-e1613079';\n const packages: PackagesMap = new Map([\n [snapPkgId, { component: { scope: 'my-org.my-scope', name: 'components/button-base' } } as any],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n { id: 'foo@1.0.0', neighbours: [{ id: snapPkgId, optional: false }] },\n { id: snapPkgId, neighbours: [] },\n ];\n const lockfile = await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n // Resolver succeeds but returns no integrity for the unpublished snap.\n resolve: () => ({ resolution: {} }) as any,\n });\n expect(Object.keys(lockfile.packages!).sort()).to.eql(['foo@1.0.0']);\n expect(lockfile.snapshots!['foo@1.0.0']).to.eql({});\n });\n\n // When the resolve failure is for a regular registry package (no component\n // attribute), we still want to surface the error rather than silently drop\n // it — that path means the graph itself is genuinely broken, not just\n // referencing an unpublished workspace snap.\n it('should re-throw resolver errors for non-component pkgs', 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: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n { id: 'foo@1.0.0', neighbours: [] },\n ];\n let caught: Error | undefined;\n try {\n await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => {\n throw new Error('boom');\n },\n });\n } catch (err) {\n caught = err as Error;\n }\n expect(caught?.message).to.equal('boom');\n });\n\n // Narrowing guardrail: even for a component-flagged pkg, only\n // ERR_PNPM_NO_MATCHING_VERSION should be swallowed. A network/auth/5xx\n // failure must propagate so a real outage isn't silently masked as a\n // graph-recovery success.\n it('should re-throw non-NoMatchingVersion errors even for component pkgs', async () => {\n const packages: PackagesMap = new Map([\n [\n '@bitdev/react.app-types.vite-react@0.0.0-df1917dc',\n { component: { scope: 'bitdev.react', name: 'app-types/vite-react' } } as any,\n ],\n ['foo@1.0.0', { resolution: { integrity: 'sha512-aaa' } } as any],\n ]);\n const edges: DependencyEdge[] = [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: 'foo@1.0.0', name: 'foo', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n { id: 'foo@1.0.0', neighbours: [{ id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc' }] },\n { id: '@bitdev/react.app-types.vite-react@0.0.0-df1917dc', neighbours: [] },\n ];\n let caught: Error | undefined;\n try {\n await convertGraphToLockfile(new DependenciesGraph(new DependenciesGraph({ packages, edges })), {\n manifests: {\n [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } },\n },\n rootDir: process.cwd(),\n resolve: () => {\n const err = new Error('Connect ETIMEDOUT');\n (err as Error & { code: string }).code = 'ERR_PNPM_META_FETCH_FAIL';\n throw err;\n },\n });\n } catch (err) {\n caught = err as Error;\n }\n expect(caught?.message).to.equal('Connect ETIMEDOUT');\n expect((caught as Error & { code: string }).code).to.equal('ERR_PNPM_META_FETCH_FAIL');\n });\n\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":[]}
|
package/dist/lynx.d.ts
CHANGED
|
@@ -1,17 +1,32 @@
|
|
|
1
|
-
import type { CreateStoreControllerOptions } from '@pnpm/store-connection-manager';
|
|
2
1
|
import type { ProjectManifest, ReadPackageHook, PeerDependencyRules, DepPath } from '@pnpm/types';
|
|
2
|
+
import * as nodeApi from '@pnpm/napi';
|
|
3
|
+
import type { PeerDependencyIssuesByProjects } from '@pnpm/napi';
|
|
3
4
|
import type { Registries } from '@teambit/pkg.entities.registry';
|
|
4
5
|
import type { ResolvedPackageVersion, PackageManagerProxyConfig, PackageManagerNetworkConfig } from '@teambit/dependency-resolver';
|
|
5
|
-
import type { InstallOptions, PeerDependencyIssuesByProjects } from '@pnpm/core';
|
|
6
6
|
import { type LockfileFile, type LockfileObject } from '@pnpm/lockfile.types';
|
|
7
7
|
import type { Logger } from '@teambit/logger';
|
|
8
|
+
/**
|
|
9
|
+
* Minimal structural signature of the `resolve` function returned by
|
|
10
|
+
* `generateResolverAndFetcher`. It mirrors what the old
|
|
11
|
+
* `@pnpm/installing.client` `ResolveFunction` exposed, but is backed by
|
|
12
|
+
* `@pnpm/napi`'s `resolveDependency`.
|
|
13
|
+
*/
|
|
14
|
+
type ResolveOpts = {
|
|
15
|
+
lockfileDir?: string;
|
|
16
|
+
projectDir?: string;
|
|
17
|
+
preferredVersions?: Record<string, unknown>;
|
|
18
|
+
registry?: string;
|
|
19
|
+
};
|
|
20
|
+
type ResolveFunction = (wantedDependency: nodeApi.WantedDependency, opts: ResolveOpts) => Promise<nodeApi.ResolveResult>;
|
|
8
21
|
export declare function generateResolverAndFetcher({ cacheDir, registries, proxyConfig, networkConfig, fullMetadata, }: {
|
|
9
22
|
cacheDir: string;
|
|
10
23
|
registries: Registries;
|
|
11
24
|
proxyConfig?: PackageManagerProxyConfig;
|
|
12
25
|
networkConfig?: PackageManagerNetworkConfig;
|
|
13
26
|
fullMetadata?: boolean;
|
|
14
|
-
}): Promise<
|
|
27
|
+
}): Promise<{
|
|
28
|
+
resolve: ResolveFunction;
|
|
29
|
+
}>;
|
|
15
30
|
export declare function getPeerDependencyIssues(manifestsByPaths: Record<string, any>, opts: {
|
|
16
31
|
storeDir?: string;
|
|
17
32
|
cacheDir: string;
|
|
@@ -20,7 +35,9 @@ export declare function getPeerDependencyIssues(manifestsByPaths: Record<string,
|
|
|
20
35
|
proxyConfig: PackageManagerProxyConfig;
|
|
21
36
|
networkConfig: PackageManagerNetworkConfig;
|
|
22
37
|
overrides?: Record<string, string>;
|
|
23
|
-
|
|
38
|
+
packageImportMethod?: 'auto' | 'hardlink' | 'copy' | 'clone';
|
|
39
|
+
pnpmHomeDir?: string;
|
|
40
|
+
}): Promise<PeerDependencyIssuesByProjects>;
|
|
24
41
|
export type RebuildFn = (opts: {
|
|
25
42
|
pending?: boolean;
|
|
26
43
|
skipIfHasSideEffectsCache?: boolean;
|
|
@@ -50,12 +67,41 @@ export declare function install(rootDir: string, manifestsByPaths: Record<string
|
|
|
50
67
|
forcedHarmonyVersion?: string;
|
|
51
68
|
allowScripts?: Record<string, boolean | 'warn'>;
|
|
52
69
|
dangerouslyAllowAllScripts?: boolean;
|
|
53
|
-
|
|
70
|
+
neverBuiltDependencies?: string[];
|
|
71
|
+
autoInstallPeers?: boolean;
|
|
72
|
+
publicHoistPattern?: string[];
|
|
73
|
+
hoistPattern?: string[];
|
|
74
|
+
lockfileOnly?: boolean;
|
|
75
|
+
nodeVersion?: string;
|
|
76
|
+
enableModulesDir?: boolean;
|
|
77
|
+
engineStrict?: boolean;
|
|
78
|
+
excludeLinksFromLockfile?: boolean;
|
|
79
|
+
minimumReleaseAge?: number;
|
|
80
|
+
minimumReleaseAgeExclude?: string[];
|
|
81
|
+
ignorePackageManifest?: boolean;
|
|
82
|
+
hoistWorkspacePackages?: boolean;
|
|
83
|
+
returnListOfDepsRequiringBuild?: boolean;
|
|
84
|
+
packageImportMethod?: 'auto' | 'hardlink' | 'copy' | 'clone';
|
|
85
|
+
pnpmHomeDir?: string;
|
|
86
|
+
preferOffline?: boolean;
|
|
87
|
+
sideEffectsCacheRead?: boolean;
|
|
88
|
+
sideEffectsCacheWrite?: boolean;
|
|
89
|
+
}, logger?: Logger): Promise<{
|
|
54
90
|
dependenciesChanged: boolean;
|
|
55
91
|
rebuild: RebuildFn;
|
|
56
92
|
storeDir: string;
|
|
57
93
|
depsRequiringBuild?: DepPath[];
|
|
58
94
|
}>;
|
|
95
|
+
type ScriptPolicyConfig = {
|
|
96
|
+
allowScripts?: Record<string, boolean | 'warn'>;
|
|
97
|
+
dangerouslyAllowAllScripts?: boolean;
|
|
98
|
+
neverBuiltDependencies?: string[];
|
|
99
|
+
};
|
|
100
|
+
export declare function resolveScriptPolicies({ allowScripts, dangerouslyAllowAllScripts, neverBuiltDependencies, }: ScriptPolicyConfig): {
|
|
101
|
+
allowBuilds: Record<string, boolean | string>;
|
|
102
|
+
dangerouslyAllowAllBuilds?: boolean;
|
|
103
|
+
neverBuildPackageNames?: string[];
|
|
104
|
+
};
|
|
59
105
|
/**
|
|
60
106
|
* This function returns the list of hooks that are passed to pnpm
|
|
61
107
|
* for transforming the manifests of dependencies during installation.
|
|
@@ -81,4 +127,6 @@ export interface BitLockfileFile extends LockfileFile {
|
|
|
81
127
|
}
|
|
82
128
|
export interface BitLockfileAttributes {
|
|
83
129
|
depsRequiringBuild: string[];
|
|
130
|
+
restoredFromModel?: boolean;
|
|
84
131
|
}
|
|
132
|
+
export {};
|