diff --git a/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-parser.ts b/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-parser.ts index f828276b..be99f37d 100644 --- a/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-parser.ts +++ b/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-parser.ts @@ -86,17 +86,37 @@ export abstract class PnpmLockfileParser { includeOptionalDeps?: boolean; includePeerDeps?: boolean; }): PnpmDeps { - const prodDeps = this.normalizeTopLevelDeps(this.dependencies || {}, false); + let importerName; + if (this.isWorkspaceLockfile()) { + importerName = this.workspaceArgs?.workspacePath; + } + const prodDeps = this.normalizeTopLevelDeps( + this.dependencies || {}, + false, + importerName, + ); const devDeps = options.includeDevDeps - ? this.normalizeTopLevelDeps(this.devDependencies || {}, true) + ? this.normalizeTopLevelDeps( + this.devDependencies || {}, + true, + importerName, + ) : {}; const optionalDeps = options.includeOptionalDeps - ? this.normalizeTopLevelDeps(this.optionalDependencies || {}, false) + ? this.normalizeTopLevelDeps( + this.optionalDependencies || {}, + false, + importerName, + ) : {}; const peerDeps = options.includePeerDeps - ? this.normalizeTopLevelDeps(this.peerDependencies || {}, false) + ? this.normalizeTopLevelDeps( + this.peerDependencies || {}, + false, + importerName, + ) : {}; return { ...prodDeps, ...devDeps, ...optionalDeps, ...peerDeps }; @@ -106,9 +126,15 @@ export abstract class PnpmLockfileParser { name: string, version: string, isDev: boolean, + importerName?: string, ): string { if (this.isWorkspaceLockfile()) { - version = this.resolveWorkspacesCrossReference(name, version, isDev); + version = this.resolveWorkspacesCrossReference( + name, + version, + isDev, + importerName, + ); } if (!valid(version)) { version = this.excludeTransPeerDepsVersions(version); @@ -131,6 +157,7 @@ export abstract class PnpmLockfileParser { name: string, version: string, isDev: boolean, + importerName?: string, ): string { if (!this.workspaceArgs) { return version; @@ -142,10 +169,13 @@ export abstract class PnpmLockfileParser { // version: link:../pkg-b const depPath = version.split('link:')[1]; const resolvedPathDep = pathUtil - .join(this.workspaceArgs.workspacePath, depPath) + .join(importerName || '.', depPath) .replace(/\\/g, '/'); // cross referenced package, we add it to the extracted packages version = this.workspaceArgs.projectsVersionMap[resolvedPathDep]; + if (!version) { + version = 'undefined'; + } const subDeps = this.rawPnpmLock.importers[resolvedPathDep] || { dependencies: {}, @@ -156,16 +186,19 @@ export abstract class PnpmLockfileParser { const resolvedDeps = this.normalizePackagesDeps( subDeps.dependencies || {}, isDev, + resolvedPathDep, ); const resolvedDevDeps = this.normalizePackagesDeps( subDeps.devDependencies || {}, true, + resolvedPathDep, ); const resolvedOptionalDeps = this.normalizePackagesDeps( subDeps.optionalDependencies || {}, true, + resolvedPathDep, ); this.extractedPackages[`${name}@${version}`] = { @@ -197,9 +230,13 @@ export abstract class PnpmLockfileParser { // specifier: 1.3.7 // version: 1.3.7 - abstract normalizePackagesDeps(dependencies, isDev): Record; + abstract normalizePackagesDeps( + dependencies, + isDev, + importerName?, + ): Record; - abstract normalizeTopLevelDeps(dependencies, isDev): PnpmDeps; + abstract normalizeTopLevelDeps(dependencies, isDev, importerName?): PnpmDeps; // Dependency paths are parsed differently based on lockfile version // For lockfile v5, pnpm provides the 'dependency-path' package that parses a dep path diff --git a/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v5.ts b/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v5.ts index 6dd03266..583a03d3 100644 --- a/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v5.ts +++ b/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v5.ts @@ -27,10 +27,11 @@ export class LockfileV5Parser extends PnpmLockfileParser { public normalizeTopLevelDeps( dependencies: Record, isDev: boolean, + importerName?: string, ): PnpmDeps { return Object.entries(dependencies).reduce( (pnpmDeps: PnpmDeps, [name, version]) => { - version = this.normalizeVersion(name, version, isDev); + version = this.normalizeVersion(name, version, isDev, importerName); pnpmDeps[name] = { name, version, @@ -46,10 +47,11 @@ export class LockfileV5Parser extends PnpmLockfileParser { public normalizePackagesDeps( dependencies: Record, isDev: boolean, + importerName?: string, ): Record { return Object.entries(dependencies).reduce( (pnpmDeps: Record, [name, version]) => { - version = this.normalizeVersion(name, version, isDev); + version = this.normalizeVersion(name, version, isDev, importerName); pnpmDeps[name] = version; return pnpmDeps; }, diff --git a/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v6.ts b/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v6.ts index d3468e68..bc91a201 100644 --- a/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v6.ts +++ b/lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v6.ts @@ -38,10 +38,16 @@ export class LockfileV6Parser extends PnpmLockfileParser { public normalizeTopLevelDeps( dependencies: Record>, isDev: boolean, + importerName?: string, ): PnpmDeps { return Object.entries(dependencies).reduce( (pnpmDeps: PnpmDeps, [name, depInfo]) => { - const version = this.normalizeVersion(name, depInfo.version, isDev); + const version = this.normalizeVersion( + name, + depInfo.version, + isDev, + importerName, + ); pnpmDeps[name] = { name, version, @@ -57,10 +63,16 @@ export class LockfileV6Parser extends PnpmLockfileParser { public normalizePackagesDeps( dependencies: Record>, isDev: boolean, + importerName?: string, ): Record { return Object.entries(dependencies).reduce( (pnpmDeps: Record, [name, depInfo]) => { - const version = this.normalizeVersion(name, depInfo.version, isDev); + const version = this.normalizeVersion( + name, + depInfo.version, + isDev, + importerName, + ); pnpmDeps[name] = version; return pnpmDeps; }, diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/other-packages/pkg-c/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/other-packages/pkg-c/package.json new file mode 100644 index 00000000..343539de --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/other-packages/pkg-c/package.json @@ -0,0 +1,7 @@ +{ + "name": "package-c", + "dependencies": { + "body-parser": "1.20.0" + } + } + \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/package.json new file mode 100644 index 00000000..57e30401 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/package.json @@ -0,0 +1,7 @@ +{ + "name": "pnpm-1-workspace-with-cross-ref", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json new file mode 100644 index 00000000..2c1f88ff --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json @@ -0,0 +1,1067 @@ +{ + "schemaVersion": "1.3.0", + "pkgManager": { + "name": "pnpm" + }, + "pkgs": [ + { + "id": "pkg-a@", + "info": { + "name": "pkg-a" + } + }, + { + "id": "ms@2.1.2", + "info": { + "name": "ms", + "version": "2.1.2" + } + }, + { + "id": "package-b@undefined", + "info": { + "name": "package-b", + "version": "undefined" + } + }, + { + "id": "accepts@1.3.7", + "info": { + "name": "accepts", + "version": "1.3.7" + } + }, + { + "id": "mime-types@2.1.35", + "info": { + "name": "mime-types", + "version": "2.1.35" + } + }, + { + "id": "mime-db@1.52.0", + "info": { + "name": "mime-db", + "version": "1.52.0" + } + }, + { + "id": "negotiator@0.6.2", + "info": { + "name": "negotiator", + "version": "0.6.2" + } + }, + { + "id": "package-c@undefined", + "info": { + "name": "package-c", + "version": "undefined" + } + }, + { + "id": "body-parser@1.20.0", + "info": { + "name": "body-parser", + "version": "1.20.0" + } + }, + { + "id": "bytes@3.1.2", + "info": { + "name": "bytes", + "version": "3.1.2" + } + }, + { + "id": "content-type@1.0.5", + "info": { + "name": "content-type", + "version": "1.0.5" + } + }, + { + "id": "debug@2.6.9", + "info": { + "name": "debug", + "version": "2.6.9" + } + }, + { + "id": "ms@2.0.0", + "info": { + "name": "ms", + "version": "2.0.0" + } + }, + { + "id": "depd@2.0.0", + "info": { + "name": "depd", + "version": "2.0.0" + } + }, + { + "id": "destroy@1.2.0", + "info": { + "name": "destroy", + "version": "1.2.0" + } + }, + { + "id": "http-errors@2.0.0", + "info": { + "name": "http-errors", + "version": "2.0.0" + } + }, + { + "id": "inherits@2.0.4", + "info": { + "name": "inherits", + "version": "2.0.4" + } + }, + { + "id": "setprototypeof@1.2.0", + "info": { + "name": "setprototypeof", + "version": "1.2.0" + } + }, + { + "id": "statuses@2.0.1", + "info": { + "name": "statuses", + "version": "2.0.1" + } + }, + { + "id": "toidentifier@1.0.1", + "info": { + "name": "toidentifier", + "version": "1.0.1" + } + }, + { + "id": "iconv-lite@0.4.24", + "info": { + "name": "iconv-lite", + "version": "0.4.24" + } + }, + { + "id": "safer-buffer@2.1.2", + "info": { + "name": "safer-buffer", + "version": "2.1.2" + } + }, + { + "id": "on-finished@2.4.1", + "info": { + "name": "on-finished", + "version": "2.4.1" + } + }, + { + "id": "ee-first@1.1.1", + "info": { + "name": "ee-first", + "version": "1.1.1" + } + }, + { + "id": "qs@6.10.3", + "info": { + "name": "qs", + "version": "6.10.3" + } + }, + { + "id": "side-channel@1.0.6", + "info": { + "name": "side-channel", + "version": "1.0.6" + } + }, + { + "id": "call-bind@1.0.7", + "info": { + "name": "call-bind", + "version": "1.0.7" + } + }, + { + "id": "es-define-property@1.0.0", + "info": { + "name": "es-define-property", + "version": "1.0.0" + } + }, + { + "id": "get-intrinsic@1.2.4", + "info": { + "name": "get-intrinsic", + "version": "1.2.4" + } + }, + { + "id": "es-errors@1.3.0", + "info": { + "name": "es-errors", + "version": "1.3.0" + } + }, + { + "id": "function-bind@1.1.2", + "info": { + "name": "function-bind", + "version": "1.1.2" + } + }, + { + "id": "has-proto@1.0.3", + "info": { + "name": "has-proto", + "version": "1.0.3" + } + }, + { + "id": "has-symbols@1.0.3", + "info": { + "name": "has-symbols", + "version": "1.0.3" + } + }, + { + "id": "hasown@2.0.2", + "info": { + "name": "hasown", + "version": "2.0.2" + } + }, + { + "id": "set-function-length@1.2.2", + "info": { + "name": "set-function-length", + "version": "1.2.2" + } + }, + { + "id": "define-data-property@1.1.4", + "info": { + "name": "define-data-property", + "version": "1.1.4" + } + }, + { + "id": "gopd@1.0.1", + "info": { + "name": "gopd", + "version": "1.0.1" + } + }, + { + "id": "has-property-descriptors@1.0.2", + "info": { + "name": "has-property-descriptors", + "version": "1.0.2" + } + }, + { + "id": "object-inspect@1.13.1", + "info": { + "name": "object-inspect", + "version": "1.13.1" + } + }, + { + "id": "raw-body@2.5.1", + "info": { + "name": "raw-body", + "version": "2.5.1" + } + }, + { + "id": "unpipe@1.0.0", + "info": { + "name": "unpipe", + "version": "1.0.0" + } + }, + { + "id": "type-is@1.6.18", + "info": { + "name": "type-is", + "version": "1.6.18" + } + }, + { + "id": "media-typer@0.3.0", + "info": { + "name": "media-typer", + "version": "0.3.0" + } + } + ], + "graph": { + "rootNodeId": "root-node", + "nodes": [ + { + "nodeId": "root-node", + "pkgId": "pkg-a@", + "deps": [ + { + "nodeId": "ms@2.1.2" + }, + { + "nodeId": "package-b@undefined" + } + ] + }, + { + "nodeId": "ms@2.1.2", + "pkgId": "ms@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-b@undefined", + "pkgId": "package-b@undefined", + "deps": [ + { + "nodeId": "accepts@1.3.7" + }, + { + "nodeId": "package-c@undefined" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "accepts@1.3.7", + "pkgId": "accepts@1.3.7", + "deps": [ + { + "nodeId": "mime-types@2.1.35" + }, + { + "nodeId": "negotiator@0.6.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35", + "pkgId": "mime-types@2.1.35", + "deps": [ + { + "nodeId": "mime-db@1.52.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-db@1.52.0", + "pkgId": "mime-db@1.52.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "negotiator@0.6.2", + "pkgId": "negotiator@0.6.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-c@undefined", + "pkgId": "package-c@undefined", + "deps": [ + { + "nodeId": "body-parser@1.20.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "body-parser@1.20.0", + "pkgId": "body-parser@1.20.0", + "deps": [ + { + "nodeId": "bytes@3.1.2" + }, + { + "nodeId": "content-type@1.0.5" + }, + { + "nodeId": "debug@2.6.9" + }, + { + "nodeId": "depd@2.0.0" + }, + { + "nodeId": "destroy@1.2.0" + }, + { + "nodeId": "http-errors@2.0.0" + }, + { + "nodeId": "iconv-lite@0.4.24" + }, + { + "nodeId": "on-finished@2.4.1" + }, + { + "nodeId": "qs@6.10.3" + }, + { + "nodeId": "raw-body@2.5.1" + }, + { + "nodeId": "type-is@1.6.18" + }, + { + "nodeId": "unpipe@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "content-type@1.0.5", + "pkgId": "content-type@1.0.5", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "debug@2.6.9", + "pkgId": "debug@2.6.9", + "deps": [ + { + "nodeId": "ms@2.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ms@2.0.0", + "pkgId": "ms@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "destroy@1.2.0", + "pkgId": "destroy@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "http-errors@2.0.0", + "pkgId": "http-errors@2.0.0", + "deps": [ + { + "nodeId": "depd@2.0.0:pruned" + }, + { + "nodeId": "inherits@2.0.4" + }, + { + "nodeId": "setprototypeof@1.2.0" + }, + { + "nodeId": "statuses@2.0.1" + }, + { + "nodeId": "toidentifier@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0:pruned", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "inherits@2.0.4", + "pkgId": "inherits@2.0.4", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "setprototypeof@1.2.0", + "pkgId": "setprototypeof@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "statuses@2.0.1", + "pkgId": "statuses@2.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "toidentifier@1.0.1", + "pkgId": "toidentifier@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24", + "pkgId": "iconv-lite@0.4.24", + "deps": [ + { + "nodeId": "safer-buffer@2.1.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "safer-buffer@2.1.2", + "pkgId": "safer-buffer@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "on-finished@2.4.1", + "pkgId": "on-finished@2.4.1", + "deps": [ + { + "nodeId": "ee-first@1.1.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ee-first@1.1.1", + "pkgId": "ee-first@1.1.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "qs@6.10.3", + "pkgId": "qs@6.10.3", + "deps": [ + { + "nodeId": "side-channel@1.0.6" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "side-channel@1.0.6", + "pkgId": "side-channel@1.0.6", + "deps": [ + { + "nodeId": "call-bind@1.0.7" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "object-inspect@1.13.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "call-bind@1.0.7", + "pkgId": "call-bind@1.0.7", + "deps": [ + { + "nodeId": "es-define-property@1.0.0" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "set-function-length@1.2.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0", + "pkgId": "es-define-property@1.0.0", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4", + "pkgId": "get-intrinsic@1.2.4", + "deps": [ + { + "nodeId": "es-errors@1.3.0" + }, + { + "nodeId": "function-bind@1.1.2" + }, + { + "nodeId": "has-proto@1.0.3" + }, + { + "nodeId": "has-symbols@1.0.3" + }, + { + "nodeId": "hasown@2.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-errors@1.3.0", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-proto@1.0.3", + "pkgId": "has-proto@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-symbols@1.0.3", + "pkgId": "has-symbols@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "hasown@2.0.2", + "pkgId": "hasown@2.0.2", + "deps": [ + { + "nodeId": "function-bind@1.1.2:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2:pruned", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "es-errors@1.3.0:pruned", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned", + "pkgId": "get-intrinsic@1.2.4", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "set-function-length@1.2.2", + "pkgId": "set-function-length@1.2.2", + "deps": [ + { + "nodeId": "define-data-property@1.1.4" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "gopd@1.0.1:pruned" + }, + { + "nodeId": "has-property-descriptors@1.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "define-data-property@1.1.4", + "pkgId": "define-data-property@1.1.4", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "gopd@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0:pruned", + "pkgId": "es-define-property@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "gopd@1.0.1", + "pkgId": "gopd@1.0.1", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "gopd@1.0.1:pruned", + "pkgId": "gopd@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "has-property-descriptors@1.0.2", + "pkgId": "has-property-descriptors@1.0.2", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "object-inspect@1.13.1", + "pkgId": "object-inspect@1.13.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "raw-body@2.5.1", + "pkgId": "raw-body@2.5.1", + "deps": [ + { + "nodeId": "bytes@3.1.2:pruned" + }, + { + "nodeId": "http-errors@2.0.0:pruned" + }, + { + "nodeId": "iconv-lite@0.4.24:pruned" + }, + { + "nodeId": "unpipe@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2:pruned", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "http-errors@2.0.0:pruned", + "pkgId": "http-errors@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24:pruned", + "pkgId": "iconv-lite@0.4.24", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "type-is@1.6.18", + "pkgId": "type-is@1.6.18", + "deps": [ + { + "nodeId": "media-typer@0.3.0" + }, + { + "nodeId": "mime-types@2.1.35:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "media-typer@0.3.0", + "pkgId": "media-typer@0.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35:pruned", + "pkgId": "mime-types@2.1.35", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0:pruned", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + } + ] + } +} \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-a/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-a/package.json new file mode 100644 index 00000000..ac177131 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-a/package.json @@ -0,0 +1,7 @@ +{ + "name": "pkg-a", + "dependencies": { + "ms": "2.1.2", + "package-b": "1.0.0" + } +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-b/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-b/package.json new file mode 100644 index 00000000..a2f15bb7 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/packages/pkgs/pkg-b/package.json @@ -0,0 +1,7 @@ +{ + "name": "package-b", + "dependencies": { + "accepts": "1.3.7", + "package-c": "workspace:^" + } +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/pnpm-lock.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/pnpm-lock.yaml new file mode 100644 index 00000000..f7259b42 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/pnpm-lock.yaml @@ -0,0 +1,302 @@ +lockfileVersion: 5.4 + +importers: + + .: + specifiers: {} + + other-packages/pkg-c: + specifiers: + body-parser: 1.20.0 + dependencies: + body-parser: 1.20.0 + + packages/pkgs/pkg-a: + specifiers: + ms: 2.1.2 + package-b: workspace:^ + dependencies: + ms: 2.1.2 + package-b: link:../pkg-b + + packages/pkgs/pkg-b: + specifiers: + accepts: 1.3.7 + package-c: workspace:^ + dependencies: + accepts: 1.3.7 + package-c: link:../../../other-packages/pkg-c + +packages: + + /accepts/1.3.7: + resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.2 + dev: false + + /body-parser/1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /bytes/3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false + + /call-bind/1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: false + + /content-type/1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /define-data-property/1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: false + + /depd/2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: false + + /destroy/1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false + + /ee-first/1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: false + + /es-define-property/1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /es-errors/1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: false + + /function-bind/1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: false + + /get-intrinsic/1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: false + + /gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /has-property-descriptors/1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: false + + /has-proto/1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /hasown/2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: false + + /http-errors/2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: false + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /media-typer/0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: false + + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /negotiator/0.6.2: + resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} + engines: {node: '>= 0.6'} + dev: false + + /object-inspect/1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: false + + /on-finished/2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false + + /qs/6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: false + + /raw-body/2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + + /set-function-length/1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: false + + /setprototypeof/1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + + /side-channel/1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: false + + /statuses/2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /toidentifier/1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: false + + /type-is/1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: false + + /unpipe/1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: false diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/pnpm-workspace.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/pnpm-workspace.yaml new file mode 100644 index 00000000..b7a1dbe1 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-undefined-versions/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - 'packages/**' + - 'other-packages/**' \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/other-packages/pkg-c/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/other-packages/pkg-c/package.json new file mode 100644 index 00000000..d7b03914 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/other-packages/pkg-c/package.json @@ -0,0 +1,8 @@ +{ + "name": "package-c", + "version": "1.0.0", + "dependencies": { + "body-parser": "1.20.0" + } + } + \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/package.json index e652858e..57e30401 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/package.json +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/package.json @@ -3,8 +3,5 @@ "version": "1.0.0", "main": "index.js", "license": "MIT", - "private": true, - "workspaces": [ - "packages/*" - ] + "private": true } diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkg-a/expected.json deleted file mode 100644 index 260a6d14..00000000 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkg-a/expected.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "schemaVersion": "1.3.0", - "pkgManager": { - "name": "pnpm" - }, - "pkgs": [ - { - "id": "pkg-a@1.0.0", - "info": { - "name": "pkg-a", - "version": "1.0.0" - } - }, - { - "id": "ms@2.1.2", - "info": { - "name": "ms", - "version": "2.1.2" - } - }, - { - "id": "package-b@1.0.0", - "info": { - "name": "package-b", - "version": "1.0.0" - } - }, - { - "id": "accepts@1.3.7", - "info": { - "name": "accepts", - "version": "1.3.7" - } - }, - { - "id": "mime-types@2.1.35", - "info": { - "name": "mime-types", - "version": "2.1.35" - } - }, - { - "id": "mime-db@1.52.0", - "info": { - "name": "mime-db", - "version": "1.52.0" - } - }, - { - "id": "negotiator@0.6.2", - "info": { - "name": "negotiator", - "version": "0.6.2" - } - } - ], - "graph": { - "rootNodeId": "root-node", - "nodes": [ - { - "nodeId": "root-node", - "pkgId": "pkg-a@1.0.0", - "deps": [ - { - "nodeId": "ms@2.1.2" - }, - { - "nodeId": "package-b@1.0.0" - } - ] - }, - { - "nodeId": "ms@2.1.2", - "pkgId": "ms@2.1.2", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "package-b@1.0.0", - "pkgId": "package-b@1.0.0", - "deps": [ - { - "nodeId": "accepts@1.3.7" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "accepts@1.3.7", - "pkgId": "accepts@1.3.7", - "deps": [ - { - "nodeId": "mime-types@2.1.35" - }, - { - "nodeId": "negotiator@0.6.2" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "mime-types@2.1.35", - "pkgId": "mime-types@2.1.35", - "deps": [ - { - "nodeId": "mime-db@1.52.0" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "mime-db@1.52.0", - "pkgId": "mime-db@1.52.0", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "negotiator@0.6.2", - "pkgId": "negotiator@0.6.2", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - } - ] - } -} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json new file mode 100644 index 00000000..cf786d3a --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json @@ -0,0 +1,1068 @@ +{ + "schemaVersion": "1.3.0", + "pkgManager": { + "name": "pnpm" + }, + "pkgs": [ + { + "id": "pkg-a@1.0.0", + "info": { + "name": "pkg-a", + "version": "1.0.0" + } + }, + { + "id": "ms@2.1.2", + "info": { + "name": "ms", + "version": "2.1.2" + } + }, + { + "id": "package-b@1.0.0", + "info": { + "name": "package-b", + "version": "1.0.0" + } + }, + { + "id": "accepts@1.3.7", + "info": { + "name": "accepts", + "version": "1.3.7" + } + }, + { + "id": "mime-types@2.1.35", + "info": { + "name": "mime-types", + "version": "2.1.35" + } + }, + { + "id": "mime-db@1.52.0", + "info": { + "name": "mime-db", + "version": "1.52.0" + } + }, + { + "id": "negotiator@0.6.2", + "info": { + "name": "negotiator", + "version": "0.6.2" + } + }, + { + "id": "package-c@1.0.0", + "info": { + "name": "package-c", + "version": "1.0.0" + } + }, + { + "id": "body-parser@1.20.0", + "info": { + "name": "body-parser", + "version": "1.20.0" + } + }, + { + "id": "bytes@3.1.2", + "info": { + "name": "bytes", + "version": "3.1.2" + } + }, + { + "id": "content-type@1.0.5", + "info": { + "name": "content-type", + "version": "1.0.5" + } + }, + { + "id": "debug@2.6.9", + "info": { + "name": "debug", + "version": "2.6.9" + } + }, + { + "id": "ms@2.0.0", + "info": { + "name": "ms", + "version": "2.0.0" + } + }, + { + "id": "depd@2.0.0", + "info": { + "name": "depd", + "version": "2.0.0" + } + }, + { + "id": "destroy@1.2.0", + "info": { + "name": "destroy", + "version": "1.2.0" + } + }, + { + "id": "http-errors@2.0.0", + "info": { + "name": "http-errors", + "version": "2.0.0" + } + }, + { + "id": "inherits@2.0.4", + "info": { + "name": "inherits", + "version": "2.0.4" + } + }, + { + "id": "setprototypeof@1.2.0", + "info": { + "name": "setprototypeof", + "version": "1.2.0" + } + }, + { + "id": "statuses@2.0.1", + "info": { + "name": "statuses", + "version": "2.0.1" + } + }, + { + "id": "toidentifier@1.0.1", + "info": { + "name": "toidentifier", + "version": "1.0.1" + } + }, + { + "id": "iconv-lite@0.4.24", + "info": { + "name": "iconv-lite", + "version": "0.4.24" + } + }, + { + "id": "safer-buffer@2.1.2", + "info": { + "name": "safer-buffer", + "version": "2.1.2" + } + }, + { + "id": "on-finished@2.4.1", + "info": { + "name": "on-finished", + "version": "2.4.1" + } + }, + { + "id": "ee-first@1.1.1", + "info": { + "name": "ee-first", + "version": "1.1.1" + } + }, + { + "id": "qs@6.10.3", + "info": { + "name": "qs", + "version": "6.10.3" + } + }, + { + "id": "side-channel@1.0.6", + "info": { + "name": "side-channel", + "version": "1.0.6" + } + }, + { + "id": "call-bind@1.0.7", + "info": { + "name": "call-bind", + "version": "1.0.7" + } + }, + { + "id": "es-define-property@1.0.0", + "info": { + "name": "es-define-property", + "version": "1.0.0" + } + }, + { + "id": "get-intrinsic@1.2.4", + "info": { + "name": "get-intrinsic", + "version": "1.2.4" + } + }, + { + "id": "es-errors@1.3.0", + "info": { + "name": "es-errors", + "version": "1.3.0" + } + }, + { + "id": "function-bind@1.1.2", + "info": { + "name": "function-bind", + "version": "1.1.2" + } + }, + { + "id": "has-proto@1.0.3", + "info": { + "name": "has-proto", + "version": "1.0.3" + } + }, + { + "id": "has-symbols@1.0.3", + "info": { + "name": "has-symbols", + "version": "1.0.3" + } + }, + { + "id": "hasown@2.0.2", + "info": { + "name": "hasown", + "version": "2.0.2" + } + }, + { + "id": "set-function-length@1.2.2", + "info": { + "name": "set-function-length", + "version": "1.2.2" + } + }, + { + "id": "define-data-property@1.1.4", + "info": { + "name": "define-data-property", + "version": "1.1.4" + } + }, + { + "id": "gopd@1.0.1", + "info": { + "name": "gopd", + "version": "1.0.1" + } + }, + { + "id": "has-property-descriptors@1.0.2", + "info": { + "name": "has-property-descriptors", + "version": "1.0.2" + } + }, + { + "id": "object-inspect@1.13.1", + "info": { + "name": "object-inspect", + "version": "1.13.1" + } + }, + { + "id": "raw-body@2.5.1", + "info": { + "name": "raw-body", + "version": "2.5.1" + } + }, + { + "id": "unpipe@1.0.0", + "info": { + "name": "unpipe", + "version": "1.0.0" + } + }, + { + "id": "type-is@1.6.18", + "info": { + "name": "type-is", + "version": "1.6.18" + } + }, + { + "id": "media-typer@0.3.0", + "info": { + "name": "media-typer", + "version": "0.3.0" + } + } + ], + "graph": { + "rootNodeId": "root-node", + "nodes": [ + { + "nodeId": "root-node", + "pkgId": "pkg-a@1.0.0", + "deps": [ + { + "nodeId": "ms@2.1.2" + }, + { + "nodeId": "package-b@1.0.0" + } + ] + }, + { + "nodeId": "ms@2.1.2", + "pkgId": "ms@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-b@1.0.0", + "pkgId": "package-b@1.0.0", + "deps": [ + { + "nodeId": "accepts@1.3.7" + }, + { + "nodeId": "package-c@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "accepts@1.3.7", + "pkgId": "accepts@1.3.7", + "deps": [ + { + "nodeId": "mime-types@2.1.35" + }, + { + "nodeId": "negotiator@0.6.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35", + "pkgId": "mime-types@2.1.35", + "deps": [ + { + "nodeId": "mime-db@1.52.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-db@1.52.0", + "pkgId": "mime-db@1.52.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "negotiator@0.6.2", + "pkgId": "negotiator@0.6.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-c@1.0.0", + "pkgId": "package-c@1.0.0", + "deps": [ + { + "nodeId": "body-parser@1.20.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "body-parser@1.20.0", + "pkgId": "body-parser@1.20.0", + "deps": [ + { + "nodeId": "bytes@3.1.2" + }, + { + "nodeId": "content-type@1.0.5" + }, + { + "nodeId": "debug@2.6.9" + }, + { + "nodeId": "depd@2.0.0" + }, + { + "nodeId": "destroy@1.2.0" + }, + { + "nodeId": "http-errors@2.0.0" + }, + { + "nodeId": "iconv-lite@0.4.24" + }, + { + "nodeId": "on-finished@2.4.1" + }, + { + "nodeId": "qs@6.10.3" + }, + { + "nodeId": "raw-body@2.5.1" + }, + { + "nodeId": "type-is@1.6.18" + }, + { + "nodeId": "unpipe@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "content-type@1.0.5", + "pkgId": "content-type@1.0.5", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "debug@2.6.9", + "pkgId": "debug@2.6.9", + "deps": [ + { + "nodeId": "ms@2.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ms@2.0.0", + "pkgId": "ms@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "destroy@1.2.0", + "pkgId": "destroy@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "http-errors@2.0.0", + "pkgId": "http-errors@2.0.0", + "deps": [ + { + "nodeId": "depd@2.0.0:pruned" + }, + { + "nodeId": "inherits@2.0.4" + }, + { + "nodeId": "setprototypeof@1.2.0" + }, + { + "nodeId": "statuses@2.0.1" + }, + { + "nodeId": "toidentifier@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0:pruned", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "inherits@2.0.4", + "pkgId": "inherits@2.0.4", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "setprototypeof@1.2.0", + "pkgId": "setprototypeof@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "statuses@2.0.1", + "pkgId": "statuses@2.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "toidentifier@1.0.1", + "pkgId": "toidentifier@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24", + "pkgId": "iconv-lite@0.4.24", + "deps": [ + { + "nodeId": "safer-buffer@2.1.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "safer-buffer@2.1.2", + "pkgId": "safer-buffer@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "on-finished@2.4.1", + "pkgId": "on-finished@2.4.1", + "deps": [ + { + "nodeId": "ee-first@1.1.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ee-first@1.1.1", + "pkgId": "ee-first@1.1.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "qs@6.10.3", + "pkgId": "qs@6.10.3", + "deps": [ + { + "nodeId": "side-channel@1.0.6" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "side-channel@1.0.6", + "pkgId": "side-channel@1.0.6", + "deps": [ + { + "nodeId": "call-bind@1.0.7" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "object-inspect@1.13.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "call-bind@1.0.7", + "pkgId": "call-bind@1.0.7", + "deps": [ + { + "nodeId": "es-define-property@1.0.0" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "set-function-length@1.2.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0", + "pkgId": "es-define-property@1.0.0", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4", + "pkgId": "get-intrinsic@1.2.4", + "deps": [ + { + "nodeId": "es-errors@1.3.0" + }, + { + "nodeId": "function-bind@1.1.2" + }, + { + "nodeId": "has-proto@1.0.3" + }, + { + "nodeId": "has-symbols@1.0.3" + }, + { + "nodeId": "hasown@2.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-errors@1.3.0", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-proto@1.0.3", + "pkgId": "has-proto@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-symbols@1.0.3", + "pkgId": "has-symbols@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "hasown@2.0.2", + "pkgId": "hasown@2.0.2", + "deps": [ + { + "nodeId": "function-bind@1.1.2:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2:pruned", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "es-errors@1.3.0:pruned", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned", + "pkgId": "get-intrinsic@1.2.4", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "set-function-length@1.2.2", + "pkgId": "set-function-length@1.2.2", + "deps": [ + { + "nodeId": "define-data-property@1.1.4" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "gopd@1.0.1:pruned" + }, + { + "nodeId": "has-property-descriptors@1.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "define-data-property@1.1.4", + "pkgId": "define-data-property@1.1.4", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "gopd@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0:pruned", + "pkgId": "es-define-property@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "gopd@1.0.1", + "pkgId": "gopd@1.0.1", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "gopd@1.0.1:pruned", + "pkgId": "gopd@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "has-property-descriptors@1.0.2", + "pkgId": "has-property-descriptors@1.0.2", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "object-inspect@1.13.1", + "pkgId": "object-inspect@1.13.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "raw-body@2.5.1", + "pkgId": "raw-body@2.5.1", + "deps": [ + { + "nodeId": "bytes@3.1.2:pruned" + }, + { + "nodeId": "http-errors@2.0.0:pruned" + }, + { + "nodeId": "iconv-lite@0.4.24:pruned" + }, + { + "nodeId": "unpipe@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2:pruned", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "http-errors@2.0.0:pruned", + "pkgId": "http-errors@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24:pruned", + "pkgId": "iconv-lite@0.4.24", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "type-is@1.6.18", + "pkgId": "type-is@1.6.18", + "deps": [ + { + "nodeId": "media-typer@0.3.0" + }, + { + "nodeId": "mime-types@2.1.35:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "media-typer@0.3.0", + "pkgId": "media-typer@0.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35:pruned", + "pkgId": "mime-types@2.1.35", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0:pruned", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + } + ] + } + } \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkg-a/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkgs/pkg-a/package.json similarity index 100% rename from test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkg-a/package.json rename to test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkgs/pkg-a/package.json diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkg-b/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json similarity index 57% rename from test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkg-b/package.json rename to test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json index 5303a6c8..8776ee6f 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkg-b/package.json +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json @@ -2,6 +2,7 @@ "name": "package-b", "version": "1.0.0", "dependencies": { - "accepts": "1.3.7" + "accepts": "1.3.7", + "package-c": "workspace:^" } } diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/pnpm-lock.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/pnpm-lock.yaml index 163c7737..355a93b6 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/pnpm-lock.yaml +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/pnpm-lock.yaml @@ -5,19 +5,27 @@ importers: .: specifiers: {} - packages/pkg-a: + other-packages/pkg-c: + specifiers: + body-parser: 1.20.0 + dependencies: + body-parser: 1.20.0 + + packages/pkgs/pkg-a: specifiers: ms: 2.1.2 - package-b: ^1.0.0 + package-b: 1.0.0 dependencies: ms: 2.1.2 package-b: link:../pkg-b - packages/pkg-b: + packages/pkgs/pkg-b: specifiers: accepts: 1.3.7 + package-c: workspace:^ dependencies: accepts: 1.3.7 + package-c: link:../../../other-packages/pkg-c packages: @@ -29,6 +37,164 @@ packages: negotiator: 0.6.2 dev: false + /body-parser/1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /bytes/3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false + + /call-bind/1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: false + + /content-type/1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /define-data-property/1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: false + + /depd/2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: false + + /destroy/1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false + + /ee-first/1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: false + + /es-define-property/1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /es-errors/1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: false + + /function-bind/1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: false + + /get-intrinsic/1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: false + + /gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /has-property-descriptors/1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: false + + /has-proto/1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /hasown/2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: false + + /http-errors/2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: false + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /media-typer/0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: false + /mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -41,6 +207,10 @@ packages: mime-db: 1.52.0 dev: false + /ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false @@ -49,3 +219,84 @@ packages: resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} engines: {node: '>= 0.6'} dev: false + + /object-inspect/1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: false + + /on-finished/2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false + + /qs/6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: false + + /raw-body/2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + + /set-function-length/1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: false + + /setprototypeof/1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + + /side-channel/1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: false + + /statuses/2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /toidentifier/1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: false + + /type-is/1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: false + + /unpipe/1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: false diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/pnpm-workspace.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/pnpm-workspace.yaml index d6d06073..b7a1dbe1 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/pnpm-workspace.yaml +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - # all packages in direct subdirs of packages/ - - 'packages/*' \ No newline at end of file + - 'packages/**' + - 'other-packages/**' \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/other-packages/pkg-c/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/other-packages/pkg-c/package.json new file mode 100644 index 00000000..343539de --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/other-packages/pkg-c/package.json @@ -0,0 +1,7 @@ +{ + "name": "package-c", + "dependencies": { + "body-parser": "1.20.0" + } + } + \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/package.json new file mode 100644 index 00000000..57e30401 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/package.json @@ -0,0 +1,7 @@ +{ + "name": "pnpm-1-workspace-with-cross-ref", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json new file mode 100644 index 00000000..2c1f88ff --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json @@ -0,0 +1,1067 @@ +{ + "schemaVersion": "1.3.0", + "pkgManager": { + "name": "pnpm" + }, + "pkgs": [ + { + "id": "pkg-a@", + "info": { + "name": "pkg-a" + } + }, + { + "id": "ms@2.1.2", + "info": { + "name": "ms", + "version": "2.1.2" + } + }, + { + "id": "package-b@undefined", + "info": { + "name": "package-b", + "version": "undefined" + } + }, + { + "id": "accepts@1.3.7", + "info": { + "name": "accepts", + "version": "1.3.7" + } + }, + { + "id": "mime-types@2.1.35", + "info": { + "name": "mime-types", + "version": "2.1.35" + } + }, + { + "id": "mime-db@1.52.0", + "info": { + "name": "mime-db", + "version": "1.52.0" + } + }, + { + "id": "negotiator@0.6.2", + "info": { + "name": "negotiator", + "version": "0.6.2" + } + }, + { + "id": "package-c@undefined", + "info": { + "name": "package-c", + "version": "undefined" + } + }, + { + "id": "body-parser@1.20.0", + "info": { + "name": "body-parser", + "version": "1.20.0" + } + }, + { + "id": "bytes@3.1.2", + "info": { + "name": "bytes", + "version": "3.1.2" + } + }, + { + "id": "content-type@1.0.5", + "info": { + "name": "content-type", + "version": "1.0.5" + } + }, + { + "id": "debug@2.6.9", + "info": { + "name": "debug", + "version": "2.6.9" + } + }, + { + "id": "ms@2.0.0", + "info": { + "name": "ms", + "version": "2.0.0" + } + }, + { + "id": "depd@2.0.0", + "info": { + "name": "depd", + "version": "2.0.0" + } + }, + { + "id": "destroy@1.2.0", + "info": { + "name": "destroy", + "version": "1.2.0" + } + }, + { + "id": "http-errors@2.0.0", + "info": { + "name": "http-errors", + "version": "2.0.0" + } + }, + { + "id": "inherits@2.0.4", + "info": { + "name": "inherits", + "version": "2.0.4" + } + }, + { + "id": "setprototypeof@1.2.0", + "info": { + "name": "setprototypeof", + "version": "1.2.0" + } + }, + { + "id": "statuses@2.0.1", + "info": { + "name": "statuses", + "version": "2.0.1" + } + }, + { + "id": "toidentifier@1.0.1", + "info": { + "name": "toidentifier", + "version": "1.0.1" + } + }, + { + "id": "iconv-lite@0.4.24", + "info": { + "name": "iconv-lite", + "version": "0.4.24" + } + }, + { + "id": "safer-buffer@2.1.2", + "info": { + "name": "safer-buffer", + "version": "2.1.2" + } + }, + { + "id": "on-finished@2.4.1", + "info": { + "name": "on-finished", + "version": "2.4.1" + } + }, + { + "id": "ee-first@1.1.1", + "info": { + "name": "ee-first", + "version": "1.1.1" + } + }, + { + "id": "qs@6.10.3", + "info": { + "name": "qs", + "version": "6.10.3" + } + }, + { + "id": "side-channel@1.0.6", + "info": { + "name": "side-channel", + "version": "1.0.6" + } + }, + { + "id": "call-bind@1.0.7", + "info": { + "name": "call-bind", + "version": "1.0.7" + } + }, + { + "id": "es-define-property@1.0.0", + "info": { + "name": "es-define-property", + "version": "1.0.0" + } + }, + { + "id": "get-intrinsic@1.2.4", + "info": { + "name": "get-intrinsic", + "version": "1.2.4" + } + }, + { + "id": "es-errors@1.3.0", + "info": { + "name": "es-errors", + "version": "1.3.0" + } + }, + { + "id": "function-bind@1.1.2", + "info": { + "name": "function-bind", + "version": "1.1.2" + } + }, + { + "id": "has-proto@1.0.3", + "info": { + "name": "has-proto", + "version": "1.0.3" + } + }, + { + "id": "has-symbols@1.0.3", + "info": { + "name": "has-symbols", + "version": "1.0.3" + } + }, + { + "id": "hasown@2.0.2", + "info": { + "name": "hasown", + "version": "2.0.2" + } + }, + { + "id": "set-function-length@1.2.2", + "info": { + "name": "set-function-length", + "version": "1.2.2" + } + }, + { + "id": "define-data-property@1.1.4", + "info": { + "name": "define-data-property", + "version": "1.1.4" + } + }, + { + "id": "gopd@1.0.1", + "info": { + "name": "gopd", + "version": "1.0.1" + } + }, + { + "id": "has-property-descriptors@1.0.2", + "info": { + "name": "has-property-descriptors", + "version": "1.0.2" + } + }, + { + "id": "object-inspect@1.13.1", + "info": { + "name": "object-inspect", + "version": "1.13.1" + } + }, + { + "id": "raw-body@2.5.1", + "info": { + "name": "raw-body", + "version": "2.5.1" + } + }, + { + "id": "unpipe@1.0.0", + "info": { + "name": "unpipe", + "version": "1.0.0" + } + }, + { + "id": "type-is@1.6.18", + "info": { + "name": "type-is", + "version": "1.6.18" + } + }, + { + "id": "media-typer@0.3.0", + "info": { + "name": "media-typer", + "version": "0.3.0" + } + } + ], + "graph": { + "rootNodeId": "root-node", + "nodes": [ + { + "nodeId": "root-node", + "pkgId": "pkg-a@", + "deps": [ + { + "nodeId": "ms@2.1.2" + }, + { + "nodeId": "package-b@undefined" + } + ] + }, + { + "nodeId": "ms@2.1.2", + "pkgId": "ms@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-b@undefined", + "pkgId": "package-b@undefined", + "deps": [ + { + "nodeId": "accepts@1.3.7" + }, + { + "nodeId": "package-c@undefined" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "accepts@1.3.7", + "pkgId": "accepts@1.3.7", + "deps": [ + { + "nodeId": "mime-types@2.1.35" + }, + { + "nodeId": "negotiator@0.6.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35", + "pkgId": "mime-types@2.1.35", + "deps": [ + { + "nodeId": "mime-db@1.52.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-db@1.52.0", + "pkgId": "mime-db@1.52.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "negotiator@0.6.2", + "pkgId": "negotiator@0.6.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-c@undefined", + "pkgId": "package-c@undefined", + "deps": [ + { + "nodeId": "body-parser@1.20.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "body-parser@1.20.0", + "pkgId": "body-parser@1.20.0", + "deps": [ + { + "nodeId": "bytes@3.1.2" + }, + { + "nodeId": "content-type@1.0.5" + }, + { + "nodeId": "debug@2.6.9" + }, + { + "nodeId": "depd@2.0.0" + }, + { + "nodeId": "destroy@1.2.0" + }, + { + "nodeId": "http-errors@2.0.0" + }, + { + "nodeId": "iconv-lite@0.4.24" + }, + { + "nodeId": "on-finished@2.4.1" + }, + { + "nodeId": "qs@6.10.3" + }, + { + "nodeId": "raw-body@2.5.1" + }, + { + "nodeId": "type-is@1.6.18" + }, + { + "nodeId": "unpipe@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "content-type@1.0.5", + "pkgId": "content-type@1.0.5", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "debug@2.6.9", + "pkgId": "debug@2.6.9", + "deps": [ + { + "nodeId": "ms@2.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ms@2.0.0", + "pkgId": "ms@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "destroy@1.2.0", + "pkgId": "destroy@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "http-errors@2.0.0", + "pkgId": "http-errors@2.0.0", + "deps": [ + { + "nodeId": "depd@2.0.0:pruned" + }, + { + "nodeId": "inherits@2.0.4" + }, + { + "nodeId": "setprototypeof@1.2.0" + }, + { + "nodeId": "statuses@2.0.1" + }, + { + "nodeId": "toidentifier@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0:pruned", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "inherits@2.0.4", + "pkgId": "inherits@2.0.4", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "setprototypeof@1.2.0", + "pkgId": "setprototypeof@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "statuses@2.0.1", + "pkgId": "statuses@2.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "toidentifier@1.0.1", + "pkgId": "toidentifier@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24", + "pkgId": "iconv-lite@0.4.24", + "deps": [ + { + "nodeId": "safer-buffer@2.1.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "safer-buffer@2.1.2", + "pkgId": "safer-buffer@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "on-finished@2.4.1", + "pkgId": "on-finished@2.4.1", + "deps": [ + { + "nodeId": "ee-first@1.1.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ee-first@1.1.1", + "pkgId": "ee-first@1.1.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "qs@6.10.3", + "pkgId": "qs@6.10.3", + "deps": [ + { + "nodeId": "side-channel@1.0.6" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "side-channel@1.0.6", + "pkgId": "side-channel@1.0.6", + "deps": [ + { + "nodeId": "call-bind@1.0.7" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "object-inspect@1.13.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "call-bind@1.0.7", + "pkgId": "call-bind@1.0.7", + "deps": [ + { + "nodeId": "es-define-property@1.0.0" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "set-function-length@1.2.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0", + "pkgId": "es-define-property@1.0.0", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4", + "pkgId": "get-intrinsic@1.2.4", + "deps": [ + { + "nodeId": "es-errors@1.3.0" + }, + { + "nodeId": "function-bind@1.1.2" + }, + { + "nodeId": "has-proto@1.0.3" + }, + { + "nodeId": "has-symbols@1.0.3" + }, + { + "nodeId": "hasown@2.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-errors@1.3.0", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-proto@1.0.3", + "pkgId": "has-proto@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-symbols@1.0.3", + "pkgId": "has-symbols@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "hasown@2.0.2", + "pkgId": "hasown@2.0.2", + "deps": [ + { + "nodeId": "function-bind@1.1.2:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2:pruned", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "es-errors@1.3.0:pruned", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned", + "pkgId": "get-intrinsic@1.2.4", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "set-function-length@1.2.2", + "pkgId": "set-function-length@1.2.2", + "deps": [ + { + "nodeId": "define-data-property@1.1.4" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "gopd@1.0.1:pruned" + }, + { + "nodeId": "has-property-descriptors@1.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "define-data-property@1.1.4", + "pkgId": "define-data-property@1.1.4", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "gopd@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0:pruned", + "pkgId": "es-define-property@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "gopd@1.0.1", + "pkgId": "gopd@1.0.1", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "gopd@1.0.1:pruned", + "pkgId": "gopd@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "has-property-descriptors@1.0.2", + "pkgId": "has-property-descriptors@1.0.2", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "object-inspect@1.13.1", + "pkgId": "object-inspect@1.13.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "raw-body@2.5.1", + "pkgId": "raw-body@2.5.1", + "deps": [ + { + "nodeId": "bytes@3.1.2:pruned" + }, + { + "nodeId": "http-errors@2.0.0:pruned" + }, + { + "nodeId": "iconv-lite@0.4.24:pruned" + }, + { + "nodeId": "unpipe@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2:pruned", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "http-errors@2.0.0:pruned", + "pkgId": "http-errors@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24:pruned", + "pkgId": "iconv-lite@0.4.24", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "type-is@1.6.18", + "pkgId": "type-is@1.6.18", + "deps": [ + { + "nodeId": "media-typer@0.3.0" + }, + { + "nodeId": "mime-types@2.1.35:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "media-typer@0.3.0", + "pkgId": "media-typer@0.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35:pruned", + "pkgId": "mime-types@2.1.35", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0:pruned", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + } + ] + } +} \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-a/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-a/package.json new file mode 100644 index 00000000..ac177131 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-a/package.json @@ -0,0 +1,7 @@ +{ + "name": "pkg-a", + "dependencies": { + "ms": "2.1.2", + "package-b": "1.0.0" + } +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-b/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-b/package.json new file mode 100644 index 00000000..a2f15bb7 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/packages/pkgs/pkg-b/package.json @@ -0,0 +1,7 @@ +{ + "name": "package-b", + "dependencies": { + "accepts": "1.3.7", + "package-c": "workspace:^" + } +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/pnpm-lock.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/pnpm-lock.yaml new file mode 100644 index 00000000..6af4e7ff --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/pnpm-lock.yaml @@ -0,0 +1,307 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: {} + + other-packages/pkg-c: + dependencies: + body-parser: + specifier: 1.20.0 + version: 1.20.0 + + packages/pkgs/pkg-a: + dependencies: + ms: + specifier: 2.1.2 + version: 2.1.2 + package-b: + specifier: workspace:^ + version: link:../pkg-b + + packages/pkgs/pkg-b: + dependencies: + accepts: + specifier: 1.3.7 + version: 1.3.7 + package-c: + specifier: workspace:^ + version: link:../../../other-packages/pkg-c + +packages: + + /accepts@1.3.7: + resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.2 + dev: false + + /body-parser@1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: false + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: false + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: false + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: false + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: false + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: false + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: false + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: false + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: false + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + + /negotiator@0.6.2: + resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} + engines: {node: '>= 0.6'} + dev: false + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: false + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false + + /qs@6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: false + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: false + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: false + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: false + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: false + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: false diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/pnpm-workspace.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/pnpm-workspace.yaml new file mode 100644 index 00000000..b7a1dbe1 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-undefined-versions/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - 'packages/**' + - 'other-packages/**' \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/other-packages/pkg-c/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/other-packages/pkg-c/package.json new file mode 100644 index 00000000..d7b03914 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/other-packages/pkg-c/package.json @@ -0,0 +1,8 @@ +{ + "name": "package-c", + "version": "1.0.0", + "dependencies": { + "body-parser": "1.20.0" + } + } + \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/package.json index d0b93da4..57e30401 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/package.json +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/package.json @@ -1,10 +1,7 @@ { - "name": "yarn-1-workspace-with-cross-ref", + "name": "pnpm-1-workspace-with-cross-ref", "version": "1.0.0", "main": "index.js", "license": "MIT", - "private": true, - "workspaces": [ - "packages/*" - ] + "private": true } diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkg-a/expected.json deleted file mode 100644 index 260a6d14..00000000 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkg-a/expected.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "schemaVersion": "1.3.0", - "pkgManager": { - "name": "pnpm" - }, - "pkgs": [ - { - "id": "pkg-a@1.0.0", - "info": { - "name": "pkg-a", - "version": "1.0.0" - } - }, - { - "id": "ms@2.1.2", - "info": { - "name": "ms", - "version": "2.1.2" - } - }, - { - "id": "package-b@1.0.0", - "info": { - "name": "package-b", - "version": "1.0.0" - } - }, - { - "id": "accepts@1.3.7", - "info": { - "name": "accepts", - "version": "1.3.7" - } - }, - { - "id": "mime-types@2.1.35", - "info": { - "name": "mime-types", - "version": "2.1.35" - } - }, - { - "id": "mime-db@1.52.0", - "info": { - "name": "mime-db", - "version": "1.52.0" - } - }, - { - "id": "negotiator@0.6.2", - "info": { - "name": "negotiator", - "version": "0.6.2" - } - } - ], - "graph": { - "rootNodeId": "root-node", - "nodes": [ - { - "nodeId": "root-node", - "pkgId": "pkg-a@1.0.0", - "deps": [ - { - "nodeId": "ms@2.1.2" - }, - { - "nodeId": "package-b@1.0.0" - } - ] - }, - { - "nodeId": "ms@2.1.2", - "pkgId": "ms@2.1.2", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "package-b@1.0.0", - "pkgId": "package-b@1.0.0", - "deps": [ - { - "nodeId": "accepts@1.3.7" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "accepts@1.3.7", - "pkgId": "accepts@1.3.7", - "deps": [ - { - "nodeId": "mime-types@2.1.35" - }, - { - "nodeId": "negotiator@0.6.2" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "mime-types@2.1.35", - "pkgId": "mime-types@2.1.35", - "deps": [ - { - "nodeId": "mime-db@1.52.0" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "mime-db@1.52.0", - "pkgId": "mime-db@1.52.0", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "negotiator@0.6.2", - "pkgId": "negotiator@0.6.2", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - } - ] - } -} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json new file mode 100644 index 00000000..cf786d3a --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json @@ -0,0 +1,1068 @@ +{ + "schemaVersion": "1.3.0", + "pkgManager": { + "name": "pnpm" + }, + "pkgs": [ + { + "id": "pkg-a@1.0.0", + "info": { + "name": "pkg-a", + "version": "1.0.0" + } + }, + { + "id": "ms@2.1.2", + "info": { + "name": "ms", + "version": "2.1.2" + } + }, + { + "id": "package-b@1.0.0", + "info": { + "name": "package-b", + "version": "1.0.0" + } + }, + { + "id": "accepts@1.3.7", + "info": { + "name": "accepts", + "version": "1.3.7" + } + }, + { + "id": "mime-types@2.1.35", + "info": { + "name": "mime-types", + "version": "2.1.35" + } + }, + { + "id": "mime-db@1.52.0", + "info": { + "name": "mime-db", + "version": "1.52.0" + } + }, + { + "id": "negotiator@0.6.2", + "info": { + "name": "negotiator", + "version": "0.6.2" + } + }, + { + "id": "package-c@1.0.0", + "info": { + "name": "package-c", + "version": "1.0.0" + } + }, + { + "id": "body-parser@1.20.0", + "info": { + "name": "body-parser", + "version": "1.20.0" + } + }, + { + "id": "bytes@3.1.2", + "info": { + "name": "bytes", + "version": "3.1.2" + } + }, + { + "id": "content-type@1.0.5", + "info": { + "name": "content-type", + "version": "1.0.5" + } + }, + { + "id": "debug@2.6.9", + "info": { + "name": "debug", + "version": "2.6.9" + } + }, + { + "id": "ms@2.0.0", + "info": { + "name": "ms", + "version": "2.0.0" + } + }, + { + "id": "depd@2.0.0", + "info": { + "name": "depd", + "version": "2.0.0" + } + }, + { + "id": "destroy@1.2.0", + "info": { + "name": "destroy", + "version": "1.2.0" + } + }, + { + "id": "http-errors@2.0.0", + "info": { + "name": "http-errors", + "version": "2.0.0" + } + }, + { + "id": "inherits@2.0.4", + "info": { + "name": "inherits", + "version": "2.0.4" + } + }, + { + "id": "setprototypeof@1.2.0", + "info": { + "name": "setprototypeof", + "version": "1.2.0" + } + }, + { + "id": "statuses@2.0.1", + "info": { + "name": "statuses", + "version": "2.0.1" + } + }, + { + "id": "toidentifier@1.0.1", + "info": { + "name": "toidentifier", + "version": "1.0.1" + } + }, + { + "id": "iconv-lite@0.4.24", + "info": { + "name": "iconv-lite", + "version": "0.4.24" + } + }, + { + "id": "safer-buffer@2.1.2", + "info": { + "name": "safer-buffer", + "version": "2.1.2" + } + }, + { + "id": "on-finished@2.4.1", + "info": { + "name": "on-finished", + "version": "2.4.1" + } + }, + { + "id": "ee-first@1.1.1", + "info": { + "name": "ee-first", + "version": "1.1.1" + } + }, + { + "id": "qs@6.10.3", + "info": { + "name": "qs", + "version": "6.10.3" + } + }, + { + "id": "side-channel@1.0.6", + "info": { + "name": "side-channel", + "version": "1.0.6" + } + }, + { + "id": "call-bind@1.0.7", + "info": { + "name": "call-bind", + "version": "1.0.7" + } + }, + { + "id": "es-define-property@1.0.0", + "info": { + "name": "es-define-property", + "version": "1.0.0" + } + }, + { + "id": "get-intrinsic@1.2.4", + "info": { + "name": "get-intrinsic", + "version": "1.2.4" + } + }, + { + "id": "es-errors@1.3.0", + "info": { + "name": "es-errors", + "version": "1.3.0" + } + }, + { + "id": "function-bind@1.1.2", + "info": { + "name": "function-bind", + "version": "1.1.2" + } + }, + { + "id": "has-proto@1.0.3", + "info": { + "name": "has-proto", + "version": "1.0.3" + } + }, + { + "id": "has-symbols@1.0.3", + "info": { + "name": "has-symbols", + "version": "1.0.3" + } + }, + { + "id": "hasown@2.0.2", + "info": { + "name": "hasown", + "version": "2.0.2" + } + }, + { + "id": "set-function-length@1.2.2", + "info": { + "name": "set-function-length", + "version": "1.2.2" + } + }, + { + "id": "define-data-property@1.1.4", + "info": { + "name": "define-data-property", + "version": "1.1.4" + } + }, + { + "id": "gopd@1.0.1", + "info": { + "name": "gopd", + "version": "1.0.1" + } + }, + { + "id": "has-property-descriptors@1.0.2", + "info": { + "name": "has-property-descriptors", + "version": "1.0.2" + } + }, + { + "id": "object-inspect@1.13.1", + "info": { + "name": "object-inspect", + "version": "1.13.1" + } + }, + { + "id": "raw-body@2.5.1", + "info": { + "name": "raw-body", + "version": "2.5.1" + } + }, + { + "id": "unpipe@1.0.0", + "info": { + "name": "unpipe", + "version": "1.0.0" + } + }, + { + "id": "type-is@1.6.18", + "info": { + "name": "type-is", + "version": "1.6.18" + } + }, + { + "id": "media-typer@0.3.0", + "info": { + "name": "media-typer", + "version": "0.3.0" + } + } + ], + "graph": { + "rootNodeId": "root-node", + "nodes": [ + { + "nodeId": "root-node", + "pkgId": "pkg-a@1.0.0", + "deps": [ + { + "nodeId": "ms@2.1.2" + }, + { + "nodeId": "package-b@1.0.0" + } + ] + }, + { + "nodeId": "ms@2.1.2", + "pkgId": "ms@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-b@1.0.0", + "pkgId": "package-b@1.0.0", + "deps": [ + { + "nodeId": "accepts@1.3.7" + }, + { + "nodeId": "package-c@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "accepts@1.3.7", + "pkgId": "accepts@1.3.7", + "deps": [ + { + "nodeId": "mime-types@2.1.35" + }, + { + "nodeId": "negotiator@0.6.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35", + "pkgId": "mime-types@2.1.35", + "deps": [ + { + "nodeId": "mime-db@1.52.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-db@1.52.0", + "pkgId": "mime-db@1.52.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "negotiator@0.6.2", + "pkgId": "negotiator@0.6.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-c@1.0.0", + "pkgId": "package-c@1.0.0", + "deps": [ + { + "nodeId": "body-parser@1.20.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "body-parser@1.20.0", + "pkgId": "body-parser@1.20.0", + "deps": [ + { + "nodeId": "bytes@3.1.2" + }, + { + "nodeId": "content-type@1.0.5" + }, + { + "nodeId": "debug@2.6.9" + }, + { + "nodeId": "depd@2.0.0" + }, + { + "nodeId": "destroy@1.2.0" + }, + { + "nodeId": "http-errors@2.0.0" + }, + { + "nodeId": "iconv-lite@0.4.24" + }, + { + "nodeId": "on-finished@2.4.1" + }, + { + "nodeId": "qs@6.10.3" + }, + { + "nodeId": "raw-body@2.5.1" + }, + { + "nodeId": "type-is@1.6.18" + }, + { + "nodeId": "unpipe@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "content-type@1.0.5", + "pkgId": "content-type@1.0.5", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "debug@2.6.9", + "pkgId": "debug@2.6.9", + "deps": [ + { + "nodeId": "ms@2.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ms@2.0.0", + "pkgId": "ms@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "destroy@1.2.0", + "pkgId": "destroy@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "http-errors@2.0.0", + "pkgId": "http-errors@2.0.0", + "deps": [ + { + "nodeId": "depd@2.0.0:pruned" + }, + { + "nodeId": "inherits@2.0.4" + }, + { + "nodeId": "setprototypeof@1.2.0" + }, + { + "nodeId": "statuses@2.0.1" + }, + { + "nodeId": "toidentifier@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0:pruned", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "inherits@2.0.4", + "pkgId": "inherits@2.0.4", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "setprototypeof@1.2.0", + "pkgId": "setprototypeof@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "statuses@2.0.1", + "pkgId": "statuses@2.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "toidentifier@1.0.1", + "pkgId": "toidentifier@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24", + "pkgId": "iconv-lite@0.4.24", + "deps": [ + { + "nodeId": "safer-buffer@2.1.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "safer-buffer@2.1.2", + "pkgId": "safer-buffer@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "on-finished@2.4.1", + "pkgId": "on-finished@2.4.1", + "deps": [ + { + "nodeId": "ee-first@1.1.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ee-first@1.1.1", + "pkgId": "ee-first@1.1.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "qs@6.10.3", + "pkgId": "qs@6.10.3", + "deps": [ + { + "nodeId": "side-channel@1.0.6" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "side-channel@1.0.6", + "pkgId": "side-channel@1.0.6", + "deps": [ + { + "nodeId": "call-bind@1.0.7" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "object-inspect@1.13.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "call-bind@1.0.7", + "pkgId": "call-bind@1.0.7", + "deps": [ + { + "nodeId": "es-define-property@1.0.0" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "set-function-length@1.2.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0", + "pkgId": "es-define-property@1.0.0", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4", + "pkgId": "get-intrinsic@1.2.4", + "deps": [ + { + "nodeId": "es-errors@1.3.0" + }, + { + "nodeId": "function-bind@1.1.2" + }, + { + "nodeId": "has-proto@1.0.3" + }, + { + "nodeId": "has-symbols@1.0.3" + }, + { + "nodeId": "hasown@2.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-errors@1.3.0", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-proto@1.0.3", + "pkgId": "has-proto@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-symbols@1.0.3", + "pkgId": "has-symbols@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "hasown@2.0.2", + "pkgId": "hasown@2.0.2", + "deps": [ + { + "nodeId": "function-bind@1.1.2:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2:pruned", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "es-errors@1.3.0:pruned", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned", + "pkgId": "get-intrinsic@1.2.4", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "set-function-length@1.2.2", + "pkgId": "set-function-length@1.2.2", + "deps": [ + { + "nodeId": "define-data-property@1.1.4" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "gopd@1.0.1:pruned" + }, + { + "nodeId": "has-property-descriptors@1.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "define-data-property@1.1.4", + "pkgId": "define-data-property@1.1.4", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "gopd@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0:pruned", + "pkgId": "es-define-property@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "gopd@1.0.1", + "pkgId": "gopd@1.0.1", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "gopd@1.0.1:pruned", + "pkgId": "gopd@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "has-property-descriptors@1.0.2", + "pkgId": "has-property-descriptors@1.0.2", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "object-inspect@1.13.1", + "pkgId": "object-inspect@1.13.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "raw-body@2.5.1", + "pkgId": "raw-body@2.5.1", + "deps": [ + { + "nodeId": "bytes@3.1.2:pruned" + }, + { + "nodeId": "http-errors@2.0.0:pruned" + }, + { + "nodeId": "iconv-lite@0.4.24:pruned" + }, + { + "nodeId": "unpipe@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2:pruned", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "http-errors@2.0.0:pruned", + "pkgId": "http-errors@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24:pruned", + "pkgId": "iconv-lite@0.4.24", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "type-is@1.6.18", + "pkgId": "type-is@1.6.18", + "deps": [ + { + "nodeId": "media-typer@0.3.0" + }, + { + "nodeId": "mime-types@2.1.35:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "media-typer@0.3.0", + "pkgId": "media-typer@0.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35:pruned", + "pkgId": "mime-types@2.1.35", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0:pruned", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + } + ] + } + } \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkg-a/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkgs/pkg-a/package.json similarity index 100% rename from test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkg-a/package.json rename to test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkgs/pkg-a/package.json diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkg-b/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json similarity index 57% rename from test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkg-b/package.json rename to test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json index 5303a6c8..8776ee6f 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v5/workspace-with-cross-ref/packages/pkg-b/package.json +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json @@ -2,6 +2,7 @@ "name": "package-b", "version": "1.0.0", "dependencies": { - "accepts": "1.3.7" + "accepts": "1.3.7", + "package-c": "workspace:^" } } diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/pnpm-lock.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/pnpm-lock.yaml index 79b57b39..3f7e4bcd 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/pnpm-lock.yaml +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/pnpm-lock.yaml @@ -8,7 +8,13 @@ importers: .: {} - packages/pkg-a: + other-packages/pkg-c: + dependencies: + body-parser: + specifier: 1.20.0 + version: 1.20.0 + + packages/pkgs/pkg-a: dependencies: ms: specifier: 2.1.2 @@ -17,11 +23,14 @@ importers: specifier: 1.0.0 version: link:../pkg-b - packages/pkg-b: + packages/pkgs/pkg-b: dependencies: accepts: specifier: 1.3.7 version: 1.3.7 + package-c: + specifier: workspace:^ + version: link:../../../other-packages/pkg-c packages: @@ -33,6 +42,164 @@ packages: negotiator: 0.6.2 dev: false + /body-parser@1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: false + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: false + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: false + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: false + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: false + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: false + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: false + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: false + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: false + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -45,6 +212,10 @@ packages: mime-db: 1.52.0 dev: false + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false @@ -53,3 +224,84 @@ packages: resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} engines: {node: '>= 0.6'} dev: false + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: false + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false + + /qs@6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: false + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: false + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: false + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: false + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: false + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: false diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/pnpm-workspace.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/pnpm-workspace.yaml index d6d06073..b7a1dbe1 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/pnpm-workspace.yaml +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - # all packages in direct subdirs of packages/ - - 'packages/*' \ No newline at end of file + - 'packages/**' + - 'other-packages/**' \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/other-packages/pkg-c/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/other-packages/pkg-c/package.json new file mode 100644 index 00000000..343539de --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/other-packages/pkg-c/package.json @@ -0,0 +1,7 @@ +{ + "name": "package-c", + "dependencies": { + "body-parser": "1.20.0" + } + } + \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/package.json new file mode 100644 index 00000000..57e30401 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/package.json @@ -0,0 +1,7 @@ +{ + "name": "pnpm-1-workspace-with-cross-ref", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json new file mode 100644 index 00000000..2c1f88ff --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-a/expected.json @@ -0,0 +1,1067 @@ +{ + "schemaVersion": "1.3.0", + "pkgManager": { + "name": "pnpm" + }, + "pkgs": [ + { + "id": "pkg-a@", + "info": { + "name": "pkg-a" + } + }, + { + "id": "ms@2.1.2", + "info": { + "name": "ms", + "version": "2.1.2" + } + }, + { + "id": "package-b@undefined", + "info": { + "name": "package-b", + "version": "undefined" + } + }, + { + "id": "accepts@1.3.7", + "info": { + "name": "accepts", + "version": "1.3.7" + } + }, + { + "id": "mime-types@2.1.35", + "info": { + "name": "mime-types", + "version": "2.1.35" + } + }, + { + "id": "mime-db@1.52.0", + "info": { + "name": "mime-db", + "version": "1.52.0" + } + }, + { + "id": "negotiator@0.6.2", + "info": { + "name": "negotiator", + "version": "0.6.2" + } + }, + { + "id": "package-c@undefined", + "info": { + "name": "package-c", + "version": "undefined" + } + }, + { + "id": "body-parser@1.20.0", + "info": { + "name": "body-parser", + "version": "1.20.0" + } + }, + { + "id": "bytes@3.1.2", + "info": { + "name": "bytes", + "version": "3.1.2" + } + }, + { + "id": "content-type@1.0.5", + "info": { + "name": "content-type", + "version": "1.0.5" + } + }, + { + "id": "debug@2.6.9", + "info": { + "name": "debug", + "version": "2.6.9" + } + }, + { + "id": "ms@2.0.0", + "info": { + "name": "ms", + "version": "2.0.0" + } + }, + { + "id": "depd@2.0.0", + "info": { + "name": "depd", + "version": "2.0.0" + } + }, + { + "id": "destroy@1.2.0", + "info": { + "name": "destroy", + "version": "1.2.0" + } + }, + { + "id": "http-errors@2.0.0", + "info": { + "name": "http-errors", + "version": "2.0.0" + } + }, + { + "id": "inherits@2.0.4", + "info": { + "name": "inherits", + "version": "2.0.4" + } + }, + { + "id": "setprototypeof@1.2.0", + "info": { + "name": "setprototypeof", + "version": "1.2.0" + } + }, + { + "id": "statuses@2.0.1", + "info": { + "name": "statuses", + "version": "2.0.1" + } + }, + { + "id": "toidentifier@1.0.1", + "info": { + "name": "toidentifier", + "version": "1.0.1" + } + }, + { + "id": "iconv-lite@0.4.24", + "info": { + "name": "iconv-lite", + "version": "0.4.24" + } + }, + { + "id": "safer-buffer@2.1.2", + "info": { + "name": "safer-buffer", + "version": "2.1.2" + } + }, + { + "id": "on-finished@2.4.1", + "info": { + "name": "on-finished", + "version": "2.4.1" + } + }, + { + "id": "ee-first@1.1.1", + "info": { + "name": "ee-first", + "version": "1.1.1" + } + }, + { + "id": "qs@6.10.3", + "info": { + "name": "qs", + "version": "6.10.3" + } + }, + { + "id": "side-channel@1.0.6", + "info": { + "name": "side-channel", + "version": "1.0.6" + } + }, + { + "id": "call-bind@1.0.7", + "info": { + "name": "call-bind", + "version": "1.0.7" + } + }, + { + "id": "es-define-property@1.0.0", + "info": { + "name": "es-define-property", + "version": "1.0.0" + } + }, + { + "id": "get-intrinsic@1.2.4", + "info": { + "name": "get-intrinsic", + "version": "1.2.4" + } + }, + { + "id": "es-errors@1.3.0", + "info": { + "name": "es-errors", + "version": "1.3.0" + } + }, + { + "id": "function-bind@1.1.2", + "info": { + "name": "function-bind", + "version": "1.1.2" + } + }, + { + "id": "has-proto@1.0.3", + "info": { + "name": "has-proto", + "version": "1.0.3" + } + }, + { + "id": "has-symbols@1.0.3", + "info": { + "name": "has-symbols", + "version": "1.0.3" + } + }, + { + "id": "hasown@2.0.2", + "info": { + "name": "hasown", + "version": "2.0.2" + } + }, + { + "id": "set-function-length@1.2.2", + "info": { + "name": "set-function-length", + "version": "1.2.2" + } + }, + { + "id": "define-data-property@1.1.4", + "info": { + "name": "define-data-property", + "version": "1.1.4" + } + }, + { + "id": "gopd@1.0.1", + "info": { + "name": "gopd", + "version": "1.0.1" + } + }, + { + "id": "has-property-descriptors@1.0.2", + "info": { + "name": "has-property-descriptors", + "version": "1.0.2" + } + }, + { + "id": "object-inspect@1.13.1", + "info": { + "name": "object-inspect", + "version": "1.13.1" + } + }, + { + "id": "raw-body@2.5.1", + "info": { + "name": "raw-body", + "version": "2.5.1" + } + }, + { + "id": "unpipe@1.0.0", + "info": { + "name": "unpipe", + "version": "1.0.0" + } + }, + { + "id": "type-is@1.6.18", + "info": { + "name": "type-is", + "version": "1.6.18" + } + }, + { + "id": "media-typer@0.3.0", + "info": { + "name": "media-typer", + "version": "0.3.0" + } + } + ], + "graph": { + "rootNodeId": "root-node", + "nodes": [ + { + "nodeId": "root-node", + "pkgId": "pkg-a@", + "deps": [ + { + "nodeId": "ms@2.1.2" + }, + { + "nodeId": "package-b@undefined" + } + ] + }, + { + "nodeId": "ms@2.1.2", + "pkgId": "ms@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-b@undefined", + "pkgId": "package-b@undefined", + "deps": [ + { + "nodeId": "accepts@1.3.7" + }, + { + "nodeId": "package-c@undefined" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "accepts@1.3.7", + "pkgId": "accepts@1.3.7", + "deps": [ + { + "nodeId": "mime-types@2.1.35" + }, + { + "nodeId": "negotiator@0.6.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35", + "pkgId": "mime-types@2.1.35", + "deps": [ + { + "nodeId": "mime-db@1.52.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-db@1.52.0", + "pkgId": "mime-db@1.52.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "negotiator@0.6.2", + "pkgId": "negotiator@0.6.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-c@undefined", + "pkgId": "package-c@undefined", + "deps": [ + { + "nodeId": "body-parser@1.20.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "body-parser@1.20.0", + "pkgId": "body-parser@1.20.0", + "deps": [ + { + "nodeId": "bytes@3.1.2" + }, + { + "nodeId": "content-type@1.0.5" + }, + { + "nodeId": "debug@2.6.9" + }, + { + "nodeId": "depd@2.0.0" + }, + { + "nodeId": "destroy@1.2.0" + }, + { + "nodeId": "http-errors@2.0.0" + }, + { + "nodeId": "iconv-lite@0.4.24" + }, + { + "nodeId": "on-finished@2.4.1" + }, + { + "nodeId": "qs@6.10.3" + }, + { + "nodeId": "raw-body@2.5.1" + }, + { + "nodeId": "type-is@1.6.18" + }, + { + "nodeId": "unpipe@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "content-type@1.0.5", + "pkgId": "content-type@1.0.5", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "debug@2.6.9", + "pkgId": "debug@2.6.9", + "deps": [ + { + "nodeId": "ms@2.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ms@2.0.0", + "pkgId": "ms@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "destroy@1.2.0", + "pkgId": "destroy@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "http-errors@2.0.0", + "pkgId": "http-errors@2.0.0", + "deps": [ + { + "nodeId": "depd@2.0.0:pruned" + }, + { + "nodeId": "inherits@2.0.4" + }, + { + "nodeId": "setprototypeof@1.2.0" + }, + { + "nodeId": "statuses@2.0.1" + }, + { + "nodeId": "toidentifier@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0:pruned", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "inherits@2.0.4", + "pkgId": "inherits@2.0.4", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "setprototypeof@1.2.0", + "pkgId": "setprototypeof@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "statuses@2.0.1", + "pkgId": "statuses@2.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "toidentifier@1.0.1", + "pkgId": "toidentifier@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24", + "pkgId": "iconv-lite@0.4.24", + "deps": [ + { + "nodeId": "safer-buffer@2.1.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "safer-buffer@2.1.2", + "pkgId": "safer-buffer@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "on-finished@2.4.1", + "pkgId": "on-finished@2.4.1", + "deps": [ + { + "nodeId": "ee-first@1.1.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ee-first@1.1.1", + "pkgId": "ee-first@1.1.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "qs@6.10.3", + "pkgId": "qs@6.10.3", + "deps": [ + { + "nodeId": "side-channel@1.0.6" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "side-channel@1.0.6", + "pkgId": "side-channel@1.0.6", + "deps": [ + { + "nodeId": "call-bind@1.0.7" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "object-inspect@1.13.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "call-bind@1.0.7", + "pkgId": "call-bind@1.0.7", + "deps": [ + { + "nodeId": "es-define-property@1.0.0" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "set-function-length@1.2.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0", + "pkgId": "es-define-property@1.0.0", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4", + "pkgId": "get-intrinsic@1.2.4", + "deps": [ + { + "nodeId": "es-errors@1.3.0" + }, + { + "nodeId": "function-bind@1.1.2" + }, + { + "nodeId": "has-proto@1.0.3" + }, + { + "nodeId": "has-symbols@1.0.3" + }, + { + "nodeId": "hasown@2.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-errors@1.3.0", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-proto@1.0.3", + "pkgId": "has-proto@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-symbols@1.0.3", + "pkgId": "has-symbols@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "hasown@2.0.2", + "pkgId": "hasown@2.0.2", + "deps": [ + { + "nodeId": "function-bind@1.1.2:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2:pruned", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "es-errors@1.3.0:pruned", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned", + "pkgId": "get-intrinsic@1.2.4", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "set-function-length@1.2.2", + "pkgId": "set-function-length@1.2.2", + "deps": [ + { + "nodeId": "define-data-property@1.1.4" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "gopd@1.0.1:pruned" + }, + { + "nodeId": "has-property-descriptors@1.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "define-data-property@1.1.4", + "pkgId": "define-data-property@1.1.4", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "gopd@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0:pruned", + "pkgId": "es-define-property@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "gopd@1.0.1", + "pkgId": "gopd@1.0.1", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "gopd@1.0.1:pruned", + "pkgId": "gopd@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "has-property-descriptors@1.0.2", + "pkgId": "has-property-descriptors@1.0.2", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "object-inspect@1.13.1", + "pkgId": "object-inspect@1.13.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "raw-body@2.5.1", + "pkgId": "raw-body@2.5.1", + "deps": [ + { + "nodeId": "bytes@3.1.2:pruned" + }, + { + "nodeId": "http-errors@2.0.0:pruned" + }, + { + "nodeId": "iconv-lite@0.4.24:pruned" + }, + { + "nodeId": "unpipe@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2:pruned", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "http-errors@2.0.0:pruned", + "pkgId": "http-errors@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24:pruned", + "pkgId": "iconv-lite@0.4.24", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "type-is@1.6.18", + "pkgId": "type-is@1.6.18", + "deps": [ + { + "nodeId": "media-typer@0.3.0" + }, + { + "nodeId": "mime-types@2.1.35:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "media-typer@0.3.0", + "pkgId": "media-typer@0.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35:pruned", + "pkgId": "mime-types@2.1.35", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0:pruned", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + } + ] + } +} \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-a/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-a/package.json new file mode 100644 index 00000000..ac177131 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-a/package.json @@ -0,0 +1,7 @@ +{ + "name": "pkg-a", + "dependencies": { + "ms": "2.1.2", + "package-b": "1.0.0" + } +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-b/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-b/package.json new file mode 100644 index 00000000..a2f15bb7 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/packages/pkgs/pkg-b/package.json @@ -0,0 +1,7 @@ +{ + "name": "package-b", + "dependencies": { + "accepts": "1.3.7", + "package-c": "workspace:^" + } +} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/pnpm-lock.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/pnpm-lock.yaml new file mode 100644 index 00000000..e30487cf --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/pnpm-lock.yaml @@ -0,0 +1,349 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: {} + + other-packages/pkg-c: + dependencies: + body-parser: + specifier: 1.20.0 + version: 1.20.0 + + packages/pkgs/pkg-a: + dependencies: + ms: + specifier: 2.1.2 + version: 2.1.2 + package-b: + specifier: workspace:^ + version: link:../pkg-b + + packages/pkgs/pkg-b: + dependencies: + accepts: + specifier: 1.3.7 + version: 1.3.7 + package-c: + specifier: workspace:^ + version: link:../../../other-packages/pkg-c + +packages: + + accepts@1.3.7: + resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} + engines: {node: '>= 0.6'} + + body-parser@1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + negotiator@0.6.2: + resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} + engines: {node: '>= 0.6'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + qs@6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} + + raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + +snapshots: + + accepts@1.3.7: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.2 + + body-parser@1.20.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + bytes@3.1.2: {} + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + content-type@1.0.5: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + depd@2.0.0: {} + + destroy@1.2.0: {} + + ee-first@1.1.1: {} + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + function-bind@1.1.2: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + inherits@2.0.4: {} + + media-typer@0.3.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + ms@2.0.0: {} + + ms@2.1.2: {} + + negotiator@0.6.2: {} + + object-inspect@1.13.1: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + qs@6.10.3: + dependencies: + side-channel: 1.0.6 + + raw-body@2.5.1: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + safer-buffer@2.1.2: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + setprototypeof@1.2.0: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + + statuses@2.0.1: {} + + toidentifier@1.0.1: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + unpipe@1.0.0: {} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/pnpm-workspace.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/pnpm-workspace.yaml new file mode 100644 index 00000000..b7a1dbe1 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-undefined-versions/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - 'packages/**' + - 'other-packages/**' \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/other-packages/pkg-c/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/other-packages/pkg-c/package.json new file mode 100644 index 00000000..d7b03914 --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/other-packages/pkg-c/package.json @@ -0,0 +1,8 @@ +{ + "name": "package-c", + "version": "1.0.0", + "dependencies": { + "body-parser": "1.20.0" + } + } + \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/package.json index d0b93da4..57e30401 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/package.json +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/package.json @@ -1,10 +1,7 @@ { - "name": "yarn-1-workspace-with-cross-ref", + "name": "pnpm-1-workspace-with-cross-ref", "version": "1.0.0", "main": "index.js", "license": "MIT", - "private": true, - "workspaces": [ - "packages/*" - ] + "private": true } diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkg-a/expected.json deleted file mode 100644 index 260a6d14..00000000 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkg-a/expected.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "schemaVersion": "1.3.0", - "pkgManager": { - "name": "pnpm" - }, - "pkgs": [ - { - "id": "pkg-a@1.0.0", - "info": { - "name": "pkg-a", - "version": "1.0.0" - } - }, - { - "id": "ms@2.1.2", - "info": { - "name": "ms", - "version": "2.1.2" - } - }, - { - "id": "package-b@1.0.0", - "info": { - "name": "package-b", - "version": "1.0.0" - } - }, - { - "id": "accepts@1.3.7", - "info": { - "name": "accepts", - "version": "1.3.7" - } - }, - { - "id": "mime-types@2.1.35", - "info": { - "name": "mime-types", - "version": "2.1.35" - } - }, - { - "id": "mime-db@1.52.0", - "info": { - "name": "mime-db", - "version": "1.52.0" - } - }, - { - "id": "negotiator@0.6.2", - "info": { - "name": "negotiator", - "version": "0.6.2" - } - } - ], - "graph": { - "rootNodeId": "root-node", - "nodes": [ - { - "nodeId": "root-node", - "pkgId": "pkg-a@1.0.0", - "deps": [ - { - "nodeId": "ms@2.1.2" - }, - { - "nodeId": "package-b@1.0.0" - } - ] - }, - { - "nodeId": "ms@2.1.2", - "pkgId": "ms@2.1.2", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "package-b@1.0.0", - "pkgId": "package-b@1.0.0", - "deps": [ - { - "nodeId": "accepts@1.3.7" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "accepts@1.3.7", - "pkgId": "accepts@1.3.7", - "deps": [ - { - "nodeId": "mime-types@2.1.35" - }, - { - "nodeId": "negotiator@0.6.2" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "mime-types@2.1.35", - "pkgId": "mime-types@2.1.35", - "deps": [ - { - "nodeId": "mime-db@1.52.0" - } - ], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "mime-db@1.52.0", - "pkgId": "mime-db@1.52.0", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - }, - { - "nodeId": "negotiator@0.6.2", - "pkgId": "negotiator@0.6.2", - "deps": [], - "info": { - "labels": { - "scope": "prod" - } - } - } - ] - } -} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json new file mode 100644 index 00000000..cf786d3a --- /dev/null +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkgs/pkg-a/expected.json @@ -0,0 +1,1068 @@ +{ + "schemaVersion": "1.3.0", + "pkgManager": { + "name": "pnpm" + }, + "pkgs": [ + { + "id": "pkg-a@1.0.0", + "info": { + "name": "pkg-a", + "version": "1.0.0" + } + }, + { + "id": "ms@2.1.2", + "info": { + "name": "ms", + "version": "2.1.2" + } + }, + { + "id": "package-b@1.0.0", + "info": { + "name": "package-b", + "version": "1.0.0" + } + }, + { + "id": "accepts@1.3.7", + "info": { + "name": "accepts", + "version": "1.3.7" + } + }, + { + "id": "mime-types@2.1.35", + "info": { + "name": "mime-types", + "version": "2.1.35" + } + }, + { + "id": "mime-db@1.52.0", + "info": { + "name": "mime-db", + "version": "1.52.0" + } + }, + { + "id": "negotiator@0.6.2", + "info": { + "name": "negotiator", + "version": "0.6.2" + } + }, + { + "id": "package-c@1.0.0", + "info": { + "name": "package-c", + "version": "1.0.0" + } + }, + { + "id": "body-parser@1.20.0", + "info": { + "name": "body-parser", + "version": "1.20.0" + } + }, + { + "id": "bytes@3.1.2", + "info": { + "name": "bytes", + "version": "3.1.2" + } + }, + { + "id": "content-type@1.0.5", + "info": { + "name": "content-type", + "version": "1.0.5" + } + }, + { + "id": "debug@2.6.9", + "info": { + "name": "debug", + "version": "2.6.9" + } + }, + { + "id": "ms@2.0.0", + "info": { + "name": "ms", + "version": "2.0.0" + } + }, + { + "id": "depd@2.0.0", + "info": { + "name": "depd", + "version": "2.0.0" + } + }, + { + "id": "destroy@1.2.0", + "info": { + "name": "destroy", + "version": "1.2.0" + } + }, + { + "id": "http-errors@2.0.0", + "info": { + "name": "http-errors", + "version": "2.0.0" + } + }, + { + "id": "inherits@2.0.4", + "info": { + "name": "inherits", + "version": "2.0.4" + } + }, + { + "id": "setprototypeof@1.2.0", + "info": { + "name": "setprototypeof", + "version": "1.2.0" + } + }, + { + "id": "statuses@2.0.1", + "info": { + "name": "statuses", + "version": "2.0.1" + } + }, + { + "id": "toidentifier@1.0.1", + "info": { + "name": "toidentifier", + "version": "1.0.1" + } + }, + { + "id": "iconv-lite@0.4.24", + "info": { + "name": "iconv-lite", + "version": "0.4.24" + } + }, + { + "id": "safer-buffer@2.1.2", + "info": { + "name": "safer-buffer", + "version": "2.1.2" + } + }, + { + "id": "on-finished@2.4.1", + "info": { + "name": "on-finished", + "version": "2.4.1" + } + }, + { + "id": "ee-first@1.1.1", + "info": { + "name": "ee-first", + "version": "1.1.1" + } + }, + { + "id": "qs@6.10.3", + "info": { + "name": "qs", + "version": "6.10.3" + } + }, + { + "id": "side-channel@1.0.6", + "info": { + "name": "side-channel", + "version": "1.0.6" + } + }, + { + "id": "call-bind@1.0.7", + "info": { + "name": "call-bind", + "version": "1.0.7" + } + }, + { + "id": "es-define-property@1.0.0", + "info": { + "name": "es-define-property", + "version": "1.0.0" + } + }, + { + "id": "get-intrinsic@1.2.4", + "info": { + "name": "get-intrinsic", + "version": "1.2.4" + } + }, + { + "id": "es-errors@1.3.0", + "info": { + "name": "es-errors", + "version": "1.3.0" + } + }, + { + "id": "function-bind@1.1.2", + "info": { + "name": "function-bind", + "version": "1.1.2" + } + }, + { + "id": "has-proto@1.0.3", + "info": { + "name": "has-proto", + "version": "1.0.3" + } + }, + { + "id": "has-symbols@1.0.3", + "info": { + "name": "has-symbols", + "version": "1.0.3" + } + }, + { + "id": "hasown@2.0.2", + "info": { + "name": "hasown", + "version": "2.0.2" + } + }, + { + "id": "set-function-length@1.2.2", + "info": { + "name": "set-function-length", + "version": "1.2.2" + } + }, + { + "id": "define-data-property@1.1.4", + "info": { + "name": "define-data-property", + "version": "1.1.4" + } + }, + { + "id": "gopd@1.0.1", + "info": { + "name": "gopd", + "version": "1.0.1" + } + }, + { + "id": "has-property-descriptors@1.0.2", + "info": { + "name": "has-property-descriptors", + "version": "1.0.2" + } + }, + { + "id": "object-inspect@1.13.1", + "info": { + "name": "object-inspect", + "version": "1.13.1" + } + }, + { + "id": "raw-body@2.5.1", + "info": { + "name": "raw-body", + "version": "2.5.1" + } + }, + { + "id": "unpipe@1.0.0", + "info": { + "name": "unpipe", + "version": "1.0.0" + } + }, + { + "id": "type-is@1.6.18", + "info": { + "name": "type-is", + "version": "1.6.18" + } + }, + { + "id": "media-typer@0.3.0", + "info": { + "name": "media-typer", + "version": "0.3.0" + } + } + ], + "graph": { + "rootNodeId": "root-node", + "nodes": [ + { + "nodeId": "root-node", + "pkgId": "pkg-a@1.0.0", + "deps": [ + { + "nodeId": "ms@2.1.2" + }, + { + "nodeId": "package-b@1.0.0" + } + ] + }, + { + "nodeId": "ms@2.1.2", + "pkgId": "ms@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-b@1.0.0", + "pkgId": "package-b@1.0.0", + "deps": [ + { + "nodeId": "accepts@1.3.7" + }, + { + "nodeId": "package-c@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "accepts@1.3.7", + "pkgId": "accepts@1.3.7", + "deps": [ + { + "nodeId": "mime-types@2.1.35" + }, + { + "nodeId": "negotiator@0.6.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35", + "pkgId": "mime-types@2.1.35", + "deps": [ + { + "nodeId": "mime-db@1.52.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-db@1.52.0", + "pkgId": "mime-db@1.52.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "negotiator@0.6.2", + "pkgId": "negotiator@0.6.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "package-c@1.0.0", + "pkgId": "package-c@1.0.0", + "deps": [ + { + "nodeId": "body-parser@1.20.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "body-parser@1.20.0", + "pkgId": "body-parser@1.20.0", + "deps": [ + { + "nodeId": "bytes@3.1.2" + }, + { + "nodeId": "content-type@1.0.5" + }, + { + "nodeId": "debug@2.6.9" + }, + { + "nodeId": "depd@2.0.0" + }, + { + "nodeId": "destroy@1.2.0" + }, + { + "nodeId": "http-errors@2.0.0" + }, + { + "nodeId": "iconv-lite@0.4.24" + }, + { + "nodeId": "on-finished@2.4.1" + }, + { + "nodeId": "qs@6.10.3" + }, + { + "nodeId": "raw-body@2.5.1" + }, + { + "nodeId": "type-is@1.6.18" + }, + { + "nodeId": "unpipe@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "content-type@1.0.5", + "pkgId": "content-type@1.0.5", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "debug@2.6.9", + "pkgId": "debug@2.6.9", + "deps": [ + { + "nodeId": "ms@2.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ms@2.0.0", + "pkgId": "ms@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "destroy@1.2.0", + "pkgId": "destroy@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "http-errors@2.0.0", + "pkgId": "http-errors@2.0.0", + "deps": [ + { + "nodeId": "depd@2.0.0:pruned" + }, + { + "nodeId": "inherits@2.0.4" + }, + { + "nodeId": "setprototypeof@1.2.0" + }, + { + "nodeId": "statuses@2.0.1" + }, + { + "nodeId": "toidentifier@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "depd@2.0.0:pruned", + "pkgId": "depd@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "inherits@2.0.4", + "pkgId": "inherits@2.0.4", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "setprototypeof@1.2.0", + "pkgId": "setprototypeof@1.2.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "statuses@2.0.1", + "pkgId": "statuses@2.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "toidentifier@1.0.1", + "pkgId": "toidentifier@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24", + "pkgId": "iconv-lite@0.4.24", + "deps": [ + { + "nodeId": "safer-buffer@2.1.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "safer-buffer@2.1.2", + "pkgId": "safer-buffer@2.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "on-finished@2.4.1", + "pkgId": "on-finished@2.4.1", + "deps": [ + { + "nodeId": "ee-first@1.1.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "ee-first@1.1.1", + "pkgId": "ee-first@1.1.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "qs@6.10.3", + "pkgId": "qs@6.10.3", + "deps": [ + { + "nodeId": "side-channel@1.0.6" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "side-channel@1.0.6", + "pkgId": "side-channel@1.0.6", + "deps": [ + { + "nodeId": "call-bind@1.0.7" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "object-inspect@1.13.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "call-bind@1.0.7", + "pkgId": "call-bind@1.0.7", + "deps": [ + { + "nodeId": "es-define-property@1.0.0" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "set-function-length@1.2.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0", + "pkgId": "es-define-property@1.0.0", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4", + "pkgId": "get-intrinsic@1.2.4", + "deps": [ + { + "nodeId": "es-errors@1.3.0" + }, + { + "nodeId": "function-bind@1.1.2" + }, + { + "nodeId": "has-proto@1.0.3" + }, + { + "nodeId": "has-symbols@1.0.3" + }, + { + "nodeId": "hasown@2.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-errors@1.3.0", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-proto@1.0.3", + "pkgId": "has-proto@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "has-symbols@1.0.3", + "pkgId": "has-symbols@1.0.3", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "hasown@2.0.2", + "pkgId": "hasown@2.0.2", + "deps": [ + { + "nodeId": "function-bind@1.1.2:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "function-bind@1.1.2:pruned", + "pkgId": "function-bind@1.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "es-errors@1.3.0:pruned", + "pkgId": "es-errors@1.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned", + "pkgId": "get-intrinsic@1.2.4", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "set-function-length@1.2.2", + "pkgId": "set-function-length@1.2.2", + "deps": [ + { + "nodeId": "define-data-property@1.1.4" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "function-bind@1.1.2:pruned" + }, + { + "nodeId": "get-intrinsic@1.2.4:pruned" + }, + { + "nodeId": "gopd@1.0.1:pruned" + }, + { + "nodeId": "has-property-descriptors@1.0.2" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "define-data-property@1.1.4", + "pkgId": "define-data-property@1.1.4", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + }, + { + "nodeId": "es-errors@1.3.0:pruned" + }, + { + "nodeId": "gopd@1.0.1" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "es-define-property@1.0.0:pruned", + "pkgId": "es-define-property@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "gopd@1.0.1", + "pkgId": "gopd@1.0.1", + "deps": [ + { + "nodeId": "get-intrinsic@1.2.4:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "gopd@1.0.1:pruned", + "pkgId": "gopd@1.0.1", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "has-property-descriptors@1.0.2", + "pkgId": "has-property-descriptors@1.0.2", + "deps": [ + { + "nodeId": "es-define-property@1.0.0:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "object-inspect@1.13.1", + "pkgId": "object-inspect@1.13.1", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "raw-body@2.5.1", + "pkgId": "raw-body@2.5.1", + "deps": [ + { + "nodeId": "bytes@3.1.2:pruned" + }, + { + "nodeId": "http-errors@2.0.0:pruned" + }, + { + "nodeId": "iconv-lite@0.4.24:pruned" + }, + { + "nodeId": "unpipe@1.0.0" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "bytes@3.1.2:pruned", + "pkgId": "bytes@3.1.2", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "http-errors@2.0.0:pruned", + "pkgId": "http-errors@2.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "iconv-lite@0.4.24:pruned", + "pkgId": "iconv-lite@0.4.24", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "type-is@1.6.18", + "pkgId": "type-is@1.6.18", + "deps": [ + { + "nodeId": "media-typer@0.3.0" + }, + { + "nodeId": "mime-types@2.1.35:pruned" + } + ], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "media-typer@0.3.0", + "pkgId": "media-typer@0.3.0", + "deps": [], + "info": { + "labels": { + "scope": "prod" + } + } + }, + { + "nodeId": "mime-types@2.1.35:pruned", + "pkgId": "mime-types@2.1.35", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + }, + { + "nodeId": "unpipe@1.0.0:pruned", + "pkgId": "unpipe@1.0.0", + "deps": [], + "info": { + "labels": { + "scope": "prod", + "pruned": "true" + } + } + } + ] + } + } \ No newline at end of file diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkg-a/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkgs/pkg-a/package.json similarity index 100% rename from test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkg-a/package.json rename to test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkgs/pkg-a/package.json diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkg-b/package.json b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json similarity index 57% rename from test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkg-b/package.json rename to test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json index 5303a6c8..8776ee6f 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v6/workspace-with-cross-ref/packages/pkg-b/package.json +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/packages/pkgs/pkg-b/package.json @@ -2,6 +2,7 @@ "name": "package-b", "version": "1.0.0", "dependencies": { - "accepts": "1.3.7" + "accepts": "1.3.7", + "package-c": "workspace:^" } } diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/pnpm-lock.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/pnpm-lock.yaml index 05e60843..bc59a08d 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/pnpm-lock.yaml +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/pnpm-lock.yaml @@ -8,7 +8,13 @@ importers: .: {} - packages/pkg-a: + other-packages/pkg-c: + dependencies: + body-parser: + specifier: 1.20.0 + version: 1.20.0 + + packages/pkgs/pkg-a: dependencies: ms: specifier: 2.1.2 @@ -17,11 +23,14 @@ importers: specifier: workspace:1.0.0 version: link:../pkg-b - packages/pkg-b: + packages/pkgs/pkg-b: dependencies: accepts: specifier: 1.3.7 version: 1.3.7 + package-c: + specifier: workspace:^ + version: link:../../../other-packages/pkg-c packages: @@ -29,6 +38,93 @@ packages: resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} engines: {node: '>= 0.6'} + body-parser@1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -37,6 +133,9 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -44,6 +143,51 @@ packages: resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} engines: {node: '>= 0.6'} + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + qs@6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} + + raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + snapshots: accepts@1.3.7: @@ -51,12 +195,155 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.2 + body-parser@1.20.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + bytes@3.1.2: {} + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + content-type@1.0.5: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + depd@2.0.0: {} + + destroy@1.2.0: {} + + ee-first@1.1.1: {} + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + function-bind@1.1.2: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + inherits@2.0.4: {} + + media-typer@0.3.0: {} + mime-db@1.52.0: {} mime-types@2.1.35: dependencies: mime-db: 1.52.0 + ms@2.0.0: {} + ms@2.1.2: {} negotiator@0.6.2: {} + + object-inspect@1.13.1: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + qs@6.10.3: + dependencies: + side-channel: 1.0.6 + + raw-body@2.5.1: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + safer-buffer@2.1.2: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + setprototypeof@1.2.0: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + + statuses@2.0.1: {} + + toidentifier@1.0.1: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + unpipe@1.0.0: {} diff --git a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/pnpm-workspace.yaml b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/pnpm-workspace.yaml index d6d06073..b7a1dbe1 100644 --- a/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/pnpm-workspace.yaml +++ b/test/jest/dep-graph-builders/fixtures/pnpm-lock-v9/workspace-with-cross-ref/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - # all packages in direct subdirs of packages/ - - 'packages/*' \ No newline at end of file + - 'packages/**' + - 'other-packages/**' \ No newline at end of file diff --git a/test/jest/dep-graph-builders/pnpm-lock.test.ts b/test/jest/dep-graph-builders/pnpm-lock.test.ts index 66e8fbbf..183aa816 100644 --- a/test/jest/dep-graph-builders/pnpm-lock.test.ts +++ b/test/jest/dep-graph-builders/pnpm-lock.test.ts @@ -185,7 +185,7 @@ describe.each(['pnpm-lock-v5', 'pnpm-lock-v6', 'pnpm-lock-v9'])( const pkgJsonContent = readFileSync( join( __dirname, - `./fixtures/${lockFileVersionPath}/${fixtureName}/packages/pkg-a/package.json`, + `./fixtures/${lockFileVersionPath}/${fixtureName}/packages/pkgs/pkg-a/package.json`, ), 'utf8', ); @@ -209,11 +209,12 @@ describe.each(['pnpm-lock-v5', 'pnpm-lock-v6', 'pnpm-lock-v9'])( { isWorkspacePkg: true, isRoot: false, - workspacePath: 'packages/pkg-a', + workspacePath: 'packages/pkgs/pkg-a', projectsVersionMap: { '.': '1.0.0', - 'packages/pkg-a': '1.0.0', - 'packages/pkg-b': '1.0.0', + 'packages/pkgs/pkg-a': '1.0.0', + 'packages/pkgs/pkg-b': '1.0.0', + 'other-packages/pkg-c': '1.0.0', }, rootOverrides: {}, }, @@ -222,7 +223,61 @@ describe.each(['pnpm-lock-v5', 'pnpm-lock-v6', 'pnpm-lock-v9'])( readFileSync( join( __dirname, - `./fixtures/${lockFileVersionPath}/${fixtureName}/packages/pkg-a/expected.json`, + `./fixtures/${lockFileVersionPath}/${fixtureName}/packages/pkgs/pkg-a/expected.json`, + ), + 'utf8', + ), + ); + expect( + Buffer.from(JSON.stringify(newDepGraph)).toString('base64'), + ).toBe( + Buffer.from(JSON.stringify(expectedDepGraphJson)).toString( + 'base64', + ), + ); + }); + + it('undefined versions in cross ref packages in workspaces', async () => { + const fixtureName = 'workspace-undefined-versions'; + const pkgJsonContent = readFileSync( + join( + __dirname, + `./fixtures/${lockFileVersionPath}/${fixtureName}/packages/pkgs/pkg-a/package.json`, + ), + 'utf8', + ); + const pkgLockContent = readFileSync( + join( + __dirname, + `./fixtures/${lockFileVersionPath}/${fixtureName}/pnpm-lock.yaml`, + ), + 'utf8', + ); + const newDepGraph = await parsePnpmProject( + pkgJsonContent, + pkgLockContent, + { + includeDevDeps: false, + includeOptionalDeps: true, + pruneWithinTopLevelDeps: true, + strictOutOfSync: false, + }, + LOCK_FILE_VERSIONS[lockFileVersionPath], + { + isWorkspacePkg: true, + isRoot: false, + workspacePath: 'packages/pkgs/pkg-a', + projectsVersionMap: { + '.': '1.0.0', + }, + rootOverrides: {}, + }, + ); + const expectedDepGraphJson = JSON.parse( + readFileSync( + join( + __dirname, + `./fixtures/${lockFileVersionPath}/${fixtureName}/packages/pkgs/pkg-a/expected.json`, ), 'utf8', ),