Skip to content

Add pnpm-lock.yaml support#15

Open
ejntaylor wants to merge 1 commit into
mainfrom
ejntaylor/brisbane-v1
Open

Add pnpm-lock.yaml support#15
ejntaylor wants to merge 1 commit into
mainfrom
ejntaylor/brisbane-v1

Conversation

@ejntaylor
Copy link
Copy Markdown
Contributor

Summary

  • Adds a zero-dep parser for pnpm-lock.yaml so projects using pnpm (common output of v0, Bolt, Lovable, and other vibe-coding platforms) can scan with @patchstack/connect instead of hitting LOCKFILE_UNSUPPORTED.
  • Handles every pnpm lockfile generation: v5 slash-separated (/pkg/1.0.0), v6–v8 leading-slash with @ and (peer) suffix, and v9 unquoted/quoted keys.
  • Marks direct dependencies from importers: (v9) or top-level dependencies / devDependencies / optionalDependencies (v6–v8 single-project lockfiles). Best-effort: transitive packages are reported but not flagged as direct, matching the npm parser's behaviour.
  • Detection routes pnpm before yarn so an in-progress yarn migration with both lockfiles present still works. package-lock.json continues to win when both are present (verified by test).
  • Yarn remains "coming soon" — the detector and DetectionStrategy union already have slots for it, so wiring it up is a follow-up of the same shape.

Test plan

  • npm run typecheck — clean
  • npm test — 67/67 pass (16 new pnpm tests)
  • npm run build — bundles updated dist/
  • Manual: run npx @patchstack/connect scan --dry-run in a real pnpm-scaffolded project (e.g. a v0/Bolt export) and confirm the payload lists every package
  • Manual: run against a workspace-mode pnpm repo and confirm direct-dep marking for the root importer

🤖 Generated with Claude Code

Vibe-coded apps from platforms like v0/Bolt/Lovable often ship with
pnpm-lock.yaml, which the connector previously rejected with
LOCKFILE_UNSUPPORTED. This adds a zero-dep parser that handles every
common pnpm lockfile format (v5 slash-separated, v6-v8 leading-slash with
`@`, v9 unquoted/quoted keys with `(peer)` suffixes) and marks direct
dependencies from either `importers:` (v9) or top-level dependency
sections (v6-v8 single-project lockfiles).

Detection routes pnpm before yarn so an in-progress yarn migration with
both lockfiles present still works.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@ejntaylor
Copy link
Copy Markdown
Contributor Author

/review

@coderbuds
Copy link
Copy Markdown

coderbuds Bot commented May 19, 2026

Migration covering the required updates.

🎯 Quality: 70% Good · 📦 Size: Oversized — strongly consider breaking this down

📈 This month: Your 53rd PR — above team average · Averaging Good

See how your team is trending →

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant