-
Notifications
You must be signed in to change notification settings - Fork 189
Fix pnpm v9 parsing #1532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Fix pnpm v9 parsing #1532
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ce unsafe head, fix formatting
…ndefined with invalidDependency
… for both real-world pnpm repo and test dependencies lockfiles
… unused imports, fix name shadowing warnings, update v6 lockfile test to expect correct dependencies, fixed formatting
…solution Key changes: - Added support for Pnpm lockfile v9 format, replacing PnpmLockGt6 with PnpmLockGt9 - Added Catalog and CatalogEntry types to handle new catalog-based version resolution - Enhanced package key parsing with parseV9PackageKey to handle multiple formats: - ': ' format for direct dependencies - '@' format for package entries - '/' format for legacy entries - Improved version handling with cleanupVersion to properly handle: - Peer dependencies in parentheses - Multiple @ symbols in version strings - Link prefixes and colon suffixes - Added buildV9Graph function for v9+ lockfiles with: - Catalog-based version resolution - Proper handling of direct and deep dependencies - Support for peer dependencies - Enhanced dependency resolution with new helper functions: - resolveDepFromImporter - resolveDepFromPackage - resolveDependency - resolveVersionFromCatalog - Maintained backward compatibility for v5 and v6 lockfiles
Contributor
|
If this PR is no longer in progress please close it and delete the branches. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
Provide an overview of this change. Describe the intent of this change, and how it implements that intent.
Example: This PR accomplishes X by doing Y.
Acceptance criteria
If this PR is successful, what impact does it have on the user experience?
Example: When users do X, Y should now happen.
Testing plan
How did you validate that this PR works? What literal steps did you take when manually checking that your code works?
Example:
This section should list concrete steps that a reviewer can sanity check and repeat on their own machine (and provide any needed test cases).
Risks
Highlight any areas that you're unsure of, want feedback on, or want reviewers to pay particular attention to.
Example: I'm not sure I did X correctly, can reviewers please double-check that for me?
Metrics
Is this change something that can or should be tracked? If so, can we do it today? And how? If its easy, do it
References
Add links to any referenced GitHub issues, Zendesk tickets, Jira tickets, Slack threads, etc.
Example:
Checklist
docs/.docs/README.msand gave consideration to how discoverable or not my documentation is.Changelog.md. If this PR did not mark a release, I added my changes into an## Unreleasedsection at the top..fossa.ymlorfossa-deps.{json.yml}, I updateddocs/references/files/*.schema.jsonAND I have updated example files used byfossa initcommand. You may also need to update these if you have added/removed new dependency type (e.g.pip) or analysis target type (e.g.poetry).docs/references/subcommands/<subcommand>.md.