@teambit/pnpm 1.0.1322 → 1.0.1324
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lockfile-deps-graph-converter.d.ts +21 -2
- package/dist/lockfile-deps-graph-converter.js +261 -18
- package/dist/lockfile-deps-graph-converter.js.map +1 -1
- package/dist/lockfile-deps-graph-converter.restore.spec.d.ts +1 -0
- package/dist/lockfile-deps-graph-converter.restore.spec.js +687 -0
- package/dist/lockfile-deps-graph-converter.restore.spec.js.map +1 -0
- package/dist/lockfile-deps-graph-converter.spec.js +33 -16
- package/dist/lockfile-deps-graph-converter.spec.js.map +1 -1
- package/dist/pnpm.package-manager.d.ts +7 -0
- package/dist/pnpm.package-manager.js +31 -6
- package/dist/pnpm.package-manager.js.map +1 -1
- package/dist/pnpm.package-manager.spec.js +197 -0
- package/dist/pnpm.package-manager.spec.js.map +1 -1
- package/dist/{preview-1793638233324.js → preview-1793647503939.js} +2 -2
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_path","data","_interopRequireDefault","require","_component","_objects","_lockfileDepsGraphConverter","_chai","e","__esModule","default","before","initLockfileDepsGraphConverter","describe","comp1Dir","comp2Dir","comp2","comp2FilePkgId","comp2FileDepPath","workspaceLockfile","lockfileVersion","importers","dependencies","version","specifier","react","packages","resolution","directory","type","peerDependencies","integrity","snapshots","foo","bit","depsRequiringBuild","toGraph","lockfile","convertLockfileToGraph","componentRelativeDir","componentIdByPkgName","Map","ComponentID","fromString","toLockfile","graph","comp2Version","resolve","failingResolver","convertGraphToLockfile","DependenciesGraph","deserialize","serialize","manifests","path","name","rootDir","process","cwd","Error","it","expect","has","to","equal","eql","not","have","property","resolved","alias","bareSpecifier","push","apolloVariant","graphql","edges","id","ROOT_EDGE_ID","neighbours","lifecycle","attr","pkgId","restore","lonely","component","scope","manifest","dist","map","optional","ssh2","nan","optionalDependencies","fsevents","Object","keys","bar","qar","markOptionalOnlyEntries"],"sources":["lockfile-deps-graph-converter.restore.spec.ts"],"sourcesContent":["import path from 'path';\nimport { ComponentID } from '@teambit/component';\nimport { DependenciesGraph } from '@teambit/objects';\nimport {\n convertLockfileToGraph,\n convertGraphToLockfile,\n markOptionalOnlyEntries,\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('workspace components in a restored lockfile', () => {\n const comp1Dir = 'comps/comp1';\n const comp2Dir = 'comps/comp2';\n const comp2 = '@my-org/my-scope.comp2';\n const comp2FilePkgId = `${comp2}@file:${comp2Dir}`;\n const comp2FileDepPath = `${comp2FilePkgId}(react@18.3.1)`;\n\n /** A workspace lockfile where comp1 depends on the injected comp2, which has a peer. */\n function workspaceLockfile(): BitLockfileFile {\n return {\n lockfileVersion: '9.0',\n importers: {\n [comp1Dir]: {\n dependencies: {\n [comp2]: { version: `file:${comp2Dir}(react@18.3.1)`, specifier: '2.0.0' },\n react: { version: '18.3.1', specifier: '18.3.1' },\n },\n },\n },\n packages: {\n [comp2FilePkgId]: {\n resolution: { directory: comp2Dir, type: 'directory' },\n peerDependencies: { react: '*' },\n },\n 'foo@1.0.0': { resolution: { integrity: 'sha512-foo' } },\n 'react@18.3.1': { resolution: { integrity: 'sha512-react' } },\n },\n snapshots: {\n [comp2FileDepPath]: { dependencies: { foo: '1.0.0', react: '18.3.1' } },\n 'foo@1.0.0': {},\n 'react@18.3.1': {},\n },\n bit: { depsRequiringBuild: [comp2FilePkgId] },\n } as BitLockfileFile;\n }\n\n function toGraph(lockfile: BitLockfileFile) {\n return convertLockfileToGraph(lockfile, {\n componentRelativeDir: comp1Dir,\n componentIdByPkgName: new Map([[comp2, ComponentID.fromString('my-org.my-scope/comp2@2.0.0')]]),\n });\n }\n\n function toLockfile(graph: DependenciesGraph, comp2Version: string, resolve = failingResolver) {\n return convertGraphToLockfile(DependenciesGraph.deserialize(graph.serialize())!, {\n manifests: {\n [path.resolve(comp1Dir)]: { dependencies: { [comp2]: '2.0.0', react: '18.3.1' } },\n [path.resolve(comp2Dir)]: { name: comp2, version: comp2Version },\n },\n rootDir: process.cwd(),\n resolve,\n });\n }\n\n function failingResolver(): never {\n throw new Error('a workspace component must not be resolved from the registry');\n }\n\n it('should restore the file: package and snapshot of a workspace component, peer suffix included', async () => {\n const graph = toGraph(workspaceLockfile());\n expect(graph.packages.has(`${comp2}@2.0.0`)).to.equal(true);\n\n const lockfile = await toLockfile(graph, '2.0.0');\n\n expect(lockfile.importers![comp1Dir].dependencies![comp2]).to.eql({\n version: `file:${comp2Dir}(react@18.3.1)`,\n specifier: '2.0.0',\n });\n expect(lockfile.packages![comp2FilePkgId]).to.eql({\n resolution: { directory: comp2Dir, type: 'directory' },\n peerDependencies: { react: '*' },\n });\n expect(lockfile.packages).not.to.have.property(`${comp2}@2.0.0`);\n expect(lockfile.snapshots![comp2FileDepPath]).to.eql({ dependencies: { foo: '1.0.0', react: '18.3.1' } });\n expect(lockfile.snapshots).not.to.have.property(`${comp2}@2.0.0(react@18.3.1)`);\n expect(lockfile.packages!['foo@1.0.0']).to.eql({ resolution: { integrity: 'sha512-foo' } });\n expect(lockfile.bit?.depsRequiringBuild).to.eql([comp2FilePkgId]);\n });\n\n it('should keep a dependency on another version of a workspace component as a registry package', async () => {\n const graph = toGraph(workspaceLockfile());\n const resolved: string[] = [];\n\n const lockfile = await toLockfile(graph, '3.0.0', (async ({ alias, bareSpecifier }) => {\n resolved.push(`${alias}@${bareSpecifier}`);\n return { resolution: { integrity: 'sha512-comp2' } };\n }) as any);\n\n expect(resolved).to.eql([`${comp2}@2.0.0`]);\n expect(lockfile.importers![comp1Dir].dependencies![comp2]).to.eql({\n version: '2.0.0(react@18.3.1)',\n specifier: '2.0.0',\n });\n expect(lockfile.packages![`${comp2}@2.0.0`]).to.eql({\n resolution: { integrity: 'sha512-comp2' },\n peerDependencies: { react: '*' },\n });\n expect(lockfile.packages).not.to.have.property(comp2FilePkgId);\n });\n});\n\ndescribe('importer entries of a restored lockfile', () => {\n const comp1Dir = 'comps/comp1';\n const apolloVariant = '@apollo/client@3.3.21(graphql@15.8.0)';\n const graph = new DependenciesGraph({\n packages: new Map([\n ['@babel/runtime@7.20.0', { resolution: { integrity: 'sha512-runtime' } }],\n ['@teambit/ui.app@0.0.110', { resolution: { integrity: 'sha512-app' } }],\n ['@apollo/client@3.3.21', { resolution: { integrity: 'sha512-apollo' }, peerDependencies: { graphql: '*' } }],\n ['graphql@15.8.0', { resolution: { integrity: 'sha512-graphql' } }],\n ['graphql@16.0.0', { resolution: { integrity: 'sha512-graphql16' } }],\n ['lonely@1.0.0', { resolution: { integrity: 'sha512-lonely' } }],\n ] as any),\n edges: [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n { id: '@babel/runtime@7.20.0', name: '@babel/runtime', specifier: '*', lifecycle: 'runtime' },\n {\n id: `@teambit/ui.app@0.0.110(${apolloVariant})`,\n name: '@teambit/ui.app',\n specifier: '0.0.110',\n lifecycle: 'runtime',\n },\n ],\n },\n {\n id: `@teambit/ui.app@0.0.110(${apolloVariant})`,\n attr: { pkgId: '@teambit/ui.app@0.0.110' },\n neighbours: [{ id: apolloVariant }],\n },\n { id: apolloVariant, attr: { pkgId: '@apollo/client@3.3.21' }, neighbours: [{ id: 'graphql@15.8.0' }] },\n {\n id: '@apollo/client@3.3.21(graphql@16.0.0)',\n attr: { pkgId: '@apollo/client@3.3.21' },\n neighbours: [{ id: 'graphql@16.0.0' }],\n },\n ],\n });\n\n function restore(dependencies: Record<string, string>) {\n return convertGraphToLockfile(DependenciesGraph.deserialize(graph.serialize())!, {\n manifests: { [path.resolve(comp1Dir)]: { dependencies } },\n rootDir: process.cwd(),\n resolve: () => {\n throw new Error('nothing here needs the registry');\n },\n });\n }\n\n it('matches a range specifier against the version the graph resolved', async () => {\n const lockfile = await restore({ '@babel/runtime': '^7.8.4' });\n expect(lockfile.importers![comp1Dir].dependencies!['@babel/runtime']).to.eql({\n version: '7.20.0',\n specifier: '^7.8.4',\n });\n });\n\n it('leaves a range specifier the resolved version does not satisfy without an entry', async () => {\n const lockfile = await restore({ '@babel/runtime': '^8.0.0' });\n expect(lockfile.importers![comp1Dir].dependencies).not.to.have.property('@babel/runtime');\n });\n\n it('points a version the graph holds only deeper in the tree at the variant the direct dependencies use', async () => {\n const lockfile = await restore({ '@apollo/client': '3.3.21', '@teambit/ui.app': '0.0.110' });\n expect(lockfile.importers![comp1Dir].dependencies!['@apollo/client']).to.eql({\n version: '3.3.21(graphql@15.8.0)',\n specifier: '3.3.21',\n });\n expect(lockfile.snapshots![apolloVariant]).to.eql({ dependencies: { graphql: '15.8.0' } });\n });\n\n it('points a version the graph holds only as a package at that package', async () => {\n const lockfile = await restore({ lonely: '1.0.0' });\n expect(lockfile.importers![comp1Dir].dependencies!.lonely).to.eql({ version: '1.0.0', specifier: '1.0.0' });\n expect(lockfile.snapshots!['lonely@1.0.0']).to.eql({});\n });\n\n it('leaves a version the graph does not hold without an entry', async () => {\n const lockfile = await restore({ '@apollo/client': '3.3.7' });\n expect(lockfile.importers![comp1Dir].dependencies).not.to.have.property('@apollo/client');\n });\n});\n\ndescribe('resolving a workspace-component package from the registry on restore', () => {\n const comp1Dir = 'comps/comp1';\n const pkgId = '@my-org/my-scope.comp2@1.0.0';\n\n function restore(resolve: (...args: any[]) => any) {\n const graph = new DependenciesGraph({\n packages: new Map([[pkgId, { component: { scope: 'my-org.my-scope', name: 'comp2' } } as any]]),\n edges: [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [{ id: pkgId, name: '@my-org/my-scope.comp2', specifier: '1.0.0', lifecycle: 'runtime' }],\n },\n { id: pkgId, neighbours: [] },\n ],\n });\n return convertGraphToLockfile(graph, {\n manifests: { [path.resolve(comp1Dir)]: { dependencies: { '@my-org/my-scope.comp2': '1.0.0' } } },\n rootDir: process.cwd(),\n resolve,\n });\n }\n\n // `@pnpm/napi`'s resolveDependency reports a registry package's integrity in\n // the manifest's `dist`, and no `resolution` at all.\n it(\"takes the integrity from the resolved manifest's dist when the resolver reports no resolution\", async () => {\n const lockfile = await restore(() => ({ manifest: { dist: { integrity: 'sha512-fromdist' } } }));\n expect(lockfile.packages![pkgId]).to.eql({ resolution: { integrity: 'sha512-fromdist' } });\n expect(lockfile.importers![comp1Dir].dependencies!['@my-org/my-scope.comp2']).to.eql({\n version: '1.0.0',\n specifier: '1.0.0',\n });\n });\n\n it('prefers the integrity of a resolution the resolver reports', async () => {\n const lockfile = await restore(() => ({\n resolution: { integrity: 'sha512-fromresolution' },\n manifest: { dist: { integrity: 'sha512-fromdist' } },\n }));\n expect(lockfile.packages![pkgId]).to.eql({ resolution: { integrity: 'sha512-fromresolution' } });\n });\n});\n\ndescribe('optional flags of a restored lockfile', () => {\n const comp1Dir = 'comps/comp1';\n\n it('marks the entries only optional edges reach, and leaves one a required path reaches alone', async () => {\n const graph = new DependenciesGraph({\n packages: new Map(\n ['ssh2@1.0.0', 'cpu-features@0.0.10', 'nan@2.29.0', 'fsevents@2.3.3'].map((id) => [\n id,\n { resolution: { integrity: `sha512-${id}` } } as any,\n ])\n ),\n edges: [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n { id: 'ssh2@1.0.0', name: 'ssh2', specifier: '1.0.0', lifecycle: 'runtime' },\n { id: 'nan@2.29.0', name: 'nan', specifier: '2.29.0', lifecycle: 'runtime' },\n { id: 'fsevents@2.3.3', name: 'fsevents', specifier: '2.3.3', lifecycle: 'runtime', optional: true },\n ],\n },\n { id: 'ssh2@1.0.0', neighbours: [{ id: 'cpu-features@0.0.10', optional: true }] },\n { id: 'cpu-features@0.0.10', neighbours: [{ id: 'nan@2.29.0' }] },\n ],\n });\n const lockfile = await convertGraphToLockfile(graph, {\n manifests: {\n [path.resolve(comp1Dir)]: {\n dependencies: { ssh2: '1.0.0', nan: '2.29.0' },\n optionalDependencies: { fsevents: '2.3.3' },\n },\n },\n rootDir: process.cwd(),\n resolve: () => {\n throw new Error('nothing here needs the registry');\n },\n });\n expect(lockfile.snapshots!['cpu-features@0.0.10'].optional).to.equal(true);\n expect(lockfile.snapshots!['fsevents@2.3.3'].optional).to.equal(true);\n expect(lockfile.snapshots!['ssh2@1.0.0']).not.to.have.property('optional');\n // nan is reached optionally through cpu-features and directly as well.\n expect(lockfile.snapshots!['nan@2.29.0']).not.to.have.property('optional');\n });\n});\n\ndescribe('workspace: specifiers in a restored lockfile', () => {\n const comp1Dir = 'comps/comp1';\n const comp2Dir = 'comps/comp2';\n const comp2 = '@my-org/my-scope.comp2';\n // A merged graph can hold the sibling at two versions as direct dependencies.\n const graph = new DependenciesGraph({\n packages: new Map([\n [`${comp2}@1.0.0`, { resolution: { integrity: 'sha512-one' } }],\n [`${comp2}@2.0.0`, { resolution: { integrity: 'sha512-two' } }],\n ] as any),\n edges: [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n { id: `${comp2}@1.0.0`, name: comp2, specifier: '1.0.0', lifecycle: 'runtime' },\n { id: `${comp2}@2.0.0`, name: comp2, specifier: '2.0.0', lifecycle: 'runtime' },\n ],\n },\n ],\n });\n\n function restore(specifier: string, comp2Version: string) {\n return convertGraphToLockfile(DependenciesGraph.deserialize(graph.serialize())!, {\n manifests: {\n [path.resolve(comp1Dir)]: { dependencies: { [comp2]: specifier } },\n [path.resolve(comp2Dir)]: { name: comp2, version: comp2Version },\n },\n rootDir: process.cwd(),\n resolve: () => ({ resolution: { integrity: 'sha512-other' } }) as any,\n });\n }\n\n it('points at the version the workspace holds, not the first same-name neighbour', async () => {\n const lockfile = await restore('workspace:^2', '2.0.0');\n expect(lockfile.importers![comp1Dir].dependencies![comp2]).to.eql({\n version: `file:${comp2Dir}`,\n specifier: 'workspace:^2',\n });\n });\n\n it('leaves the entry out when the range rejects the version the workspace holds', async () => {\n const lockfile = await restore('workspace:^3', '2.0.0');\n expect(lockfile.importers![comp1Dir].dependencies).not.to.have.property(comp2);\n });\n\n it('leaves the entry out when the graph lacks the version the workspace holds', async () => {\n const lockfile = await restore('workspace:*', '3.0.0');\n expect(lockfile.importers![comp1Dir].dependencies).not.to.have.property(comp2);\n });\n});\n\ndescribe('several direct dependencies of the same name in a restored lockfile', () => {\n const comp1Dir = 'comps/comp1';\n // A merged graph keeps one root neighbour per distinct specifier of foo.\n const graph = new DependenciesGraph({\n packages: new Map([\n ['foo@1.5.0', { resolution: { integrity: 'sha512-five' } }],\n ['foo@1.2.0', { resolution: { integrity: 'sha512-two' } }],\n ['foo@1.9.0', { resolution: { integrity: 'sha512-nine' } }],\n ] as any),\n edges: [\n {\n id: DependenciesGraph.ROOT_EDGE_ID,\n neighbours: [\n { id: 'foo@1.5.0', name: 'foo', specifier: '^1.5.0', lifecycle: 'runtime' },\n { id: 'foo@1.2.0', name: 'foo', specifier: '^1.0.0', lifecycle: 'runtime' },\n { id: 'foo@1.9.0', name: 'foo', specifier: '*', lifecycle: 'runtime' },\n ],\n },\n ],\n });\n\n function restore(specifier: string) {\n return convertGraphToLockfile(DependenciesGraph.deserialize(graph.serialize())!, {\n manifests: { [path.resolve(comp1Dir)]: { dependencies: { foo: specifier } } },\n rootDir: process.cwd(),\n resolve: () => {\n throw new Error('nothing here needs the registry');\n },\n });\n }\n\n it('takes the dependency recorded for the very specifier over one that merely satisfies it', async () => {\n const lockfile = await restore('^1.0.0');\n expect(lockfile.importers![comp1Dir].dependencies!.foo).to.eql({ version: '1.2.0', specifier: '^1.0.0' });\n });\n\n it('takes the dependency recorded at the very version', async () => {\n const lockfile = await restore('1.5.0');\n expect(lockfile.importers![comp1Dir].dependencies!.foo).to.eql({ version: '1.5.0', specifier: '1.5.0' });\n });\n\n it('takes the highest satisfying resolution when none was recorded for the specifier', async () => {\n const lockfile = await restore('^1.1.0');\n expect(lockfile.importers![comp1Dir].dependencies!.foo).to.eql({ version: '1.9.0', specifier: '^1.1.0' });\n });\n});\n\ndescribe('entries no importer reaches in a restored lockfile', () => {\n it('are dropped before anything is resolved from the registry', async () => {\n const graph = new DependenciesGraph({\n packages: new Map([\n ['foo@1.0.0', { resolution: { integrity: 'sha512-foo' } }],\n // An attached extension's dev dependency: no resolution, and nothing reaches it.\n ['@org/dev-only@1.0.0', { component: { scope: 'org', name: 'dev-only' } }],\n ] as any),\n edges: [\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 });\n const lockfile = await convertGraphToLockfile(graph, {\n manifests: { [path.resolve('comps/comp1')]: { dependencies: { foo: '1.0.0' } } },\n rootDir: process.cwd(),\n resolve: () => {\n throw new Error('an unreachable entry must not be resolved');\n },\n });\n expect(Object.keys(lockfile.packages!)).to.eql(['foo@1.0.0']);\n });\n});\n\ndescribe('optional flags under an aliased dependency', () => {\n it('walks into the package an alias names', () => {\n const lockfile = {\n importers: {\n 'comps/comp1': {\n dependencies: { foo: { version: 'real-foo@1.0.0', specifier: 'npm:real-foo@1.0.0' } },\n optionalDependencies: { bar: { version: '1.0.0', specifier: '1.0.0' } },\n },\n },\n snapshots: {\n 'real-foo@1.0.0': { optionalDependencies: { qar: '1.0.0' }, dependencies: { bar: '1.0.0' } },\n 'bar@1.0.0': { optional: true },\n 'qar@1.0.0': {},\n },\n };\n markOptionalOnlyEntries(lockfile as any);\n expect(lockfile.snapshots['real-foo@1.0.0']).not.to.have.property('optional');\n // Reached optionally from the importer, but required through the alias.\n expect(lockfile.snapshots['bar@1.0.0']).not.to.have.property('optional');\n expect(lockfile.snapshots['qar@1.0.0']).to.have.property('optional', true);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1590,7 +1590,12 @@ describe('convertGraphToLockfile on invalid graph', () => {
|
|
|
1590
1590
|
(0, _chai().expect)(Object.keys(lockfile.snapshots).sort()).to.eql(['foo@1.0.0']);
|
|
1591
1591
|
(0, _chai().expect)(lockfile.snapshots['foo@1.0.0']).to.eql({});
|
|
1592
1592
|
});
|
|
1593
|
-
|
|
1593
|
+
|
|
1594
|
+
// pnpm links a dependency on the version the workspace holds to the
|
|
1595
|
+
// workspace component, so the registry resolution the graph carries for it
|
|
1596
|
+
// would only be resolved again. The restored lockfile records the component
|
|
1597
|
+
// the way pnpm does, as a `file:` directory package.
|
|
1598
|
+
it('should link workspace-component pkgs at the version the workspace holds, whatever resolution they carry', async () => {
|
|
1594
1599
|
const componentPkgId = '@my-org/my-scope.comp2@1.0.0';
|
|
1595
1600
|
const packages = new Map([[componentPkgId, {
|
|
1596
1601
|
component: {
|
|
@@ -1634,25 +1639,26 @@ describe('convertGraphToLockfile on invalid graph', () => {
|
|
|
1634
1639
|
}
|
|
1635
1640
|
});
|
|
1636
1641
|
(0, _chai().expect)(lockfile.importers['comps/comp1'].dependencies['@my-org/my-scope.comp2']).to.eql({
|
|
1637
|
-
version: '
|
|
1642
|
+
version: 'file:comps/comp2',
|
|
1638
1643
|
specifier: '1.0.0'
|
|
1639
1644
|
});
|
|
1640
|
-
(0, _chai().expect)(lockfile.packages
|
|
1645
|
+
(0, _chai().expect)(Object.keys(lockfile.packages)).to.eql(['@my-org/my-scope.comp2@file:comps/comp2']);
|
|
1646
|
+
(0, _chai().expect)(lockfile.packages['@my-org/my-scope.comp2@file:comps/comp2']).to.eql({
|
|
1641
1647
|
resolution: {
|
|
1642
|
-
|
|
1648
|
+
directory: 'comps/comp2',
|
|
1649
|
+
type: 'directory'
|
|
1643
1650
|
}
|
|
1644
1651
|
});
|
|
1645
|
-
(0, _chai().expect)(lockfile.snapshots
|
|
1652
|
+
(0, _chai().expect)(Object.keys(lockfile.snapshots)).to.eql(['@my-org/my-scope.comp2@file:comps/comp2']);
|
|
1653
|
+
(0, _chai().expect)(lockfile.snapshots['@my-org/my-scope.comp2@file:comps/comp2']).to.eql({});
|
|
1646
1654
|
});
|
|
1647
1655
|
|
|
1648
|
-
// A workspace-component snap
|
|
1649
|
-
//
|
|
1650
|
-
//
|
|
1651
|
-
//
|
|
1652
|
-
//
|
|
1653
|
-
|
|
1654
|
-
// field`. It must be scrubbed so pnpm links it from the manifest instead.
|
|
1655
|
-
it('should drop workspace-component snaps skipped by the resolver (seeder in manifests)', async () => {
|
|
1656
|
+
// A workspace-component snap whose name+version matches a manifest in the
|
|
1657
|
+
// sign/capsule set is a seeder being signed. Its snap version was never
|
|
1658
|
+
// published, so it is never sent to the resolver; pnpm links it from the
|
|
1659
|
+
// manifest, transitive dependencies on it included, so the restored lockfile
|
|
1660
|
+
// records it as a `file:` directory package and points the dependency at it.
|
|
1661
|
+
it('should link workspace-component snaps that are seeders in the manifests', async () => {
|
|
1656
1662
|
const snapPkgId = '@my-org/my-scope.components.button-base@0.0.0-e1613079b55eabc19ad484478b769d929986c124';
|
|
1657
1663
|
const packages = new Map([[snapPkgId, {
|
|
1658
1664
|
component: {
|
|
@@ -1711,9 +1717,20 @@ describe('convertGraphToLockfile on invalid graph', () => {
|
|
|
1711
1717
|
}
|
|
1712
1718
|
});
|
|
1713
1719
|
(0, _chai().expect)(resolverCalled).to.equal(false);
|
|
1714
|
-
|
|
1715
|
-
(0, _chai().expect)(Object.keys(lockfile.
|
|
1716
|
-
(0, _chai().expect)(lockfile.
|
|
1720
|
+
const linkedPkgId = '@my-org/my-scope.components.button-base@file:comps/button-base';
|
|
1721
|
+
(0, _chai().expect)(Object.keys(lockfile.packages).sort()).to.eql([linkedPkgId, 'foo@1.0.0']);
|
|
1722
|
+
(0, _chai().expect)(lockfile.packages[linkedPkgId]).to.eql({
|
|
1723
|
+
resolution: {
|
|
1724
|
+
directory: 'comps/button-base',
|
|
1725
|
+
type: 'directory'
|
|
1726
|
+
}
|
|
1727
|
+
});
|
|
1728
|
+
(0, _chai().expect)(Object.keys(lockfile.snapshots).sort()).to.eql([linkedPkgId, 'foo@1.0.0']);
|
|
1729
|
+
(0, _chai().expect)(lockfile.snapshots['foo@1.0.0']).to.eql({
|
|
1730
|
+
dependencies: {
|
|
1731
|
+
'@my-org/my-scope.components.button-base': 'file:comps/button-base'
|
|
1732
|
+
}
|
|
1733
|
+
});
|
|
1717
1734
|
});
|
|
1718
1735
|
|
|
1719
1736
|
// Sibling of the above: even when the resolver IS called for a
|