Skip to content

feat: visualize and analyze commands#79

Merged
artus9033 merged 41 commits intomainfrom
feat/license-kit-visualizer
Aug 6, 2025
Merged

feat: visualize and analyze commands#79
artus9033 merged 41 commits intomainfrom
feat/license-kit-visualizer

Conversation

@artus9033
Copy link
Copy Markdown
Collaborator

@artus9033 artus9033 commented Jul 23, 2025

This PR:

  • renames common types in @callstack/licenses to new, simplified names (breaking change!)
  • updates the algorithm to include parentPackages array rather than a single parent package to account for the practical aspect that a single package+version combination may be a dependency of multiple packages (breaking change!)
  • provides separate exports for the @callstack/licenses package to support both browser & node targets
  • adds license-kit analyze command that:
    • prints summary of detected licenses
    • optionally (behind flags --show-breakdown, --list-unknown) shows a breakdown of packages in given categories
    • supports typical scan flags (dependency type filters, --root)
  • adds license-kit visualize command that:
    • launches a local visualizer Next.js web app, offering visualization of the dependency graph
    • supports specifying the host, port of the server
    • supports drag-and-drop of JSON file produced by license-kit report --format json
    • supports live-loading of report form the visualize command server
    • supports typical scan flags (dependency type filters, --root)
    • displays information about the last hovered graph node (package)
    • shows charts with breakdown of licenses into categories, the share of a given license type, share of license types within categories, share of permissiveness within each category
    • leverages the Summarization API to AI-turbocharge the visualizer with LLM-provided summary of the state of the dependency graph
Visualizer demos

Drag-and-drop

demo-vis-drag-and-drop.mp4

Live load from server

demo-vis-auto-load.mp4

When Summarizer API is unavailable

image
CLI demo Screenshot 2025-08-06 at 22 59 54
Screenshot 2025-08-06 at 22 59 29 Screenshot 2025-08-06 at 22 59 42

artus9033 added 30 commits July 12, 2025 23:32
@artus9033 artus9033 requested a review from mateusz1913 July 23, 2025 11:35
@artus9033 artus9033 self-assigned this Jul 23, 2025
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jul 23, 2025

⚠️ No Changeset found

Latest commit: e179342

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Comment thread .prettierrc.js Outdated
Comment thread package.json
Comment thread package.json
Comment thread packages/license-kit/src/utils/nodeUtils.ts Outdated
Comment thread packages/license-kit/visualizer/.eslintrc.js
Comment thread packages/license-kit/visualizer/src/store/summarizerStore.ts
Comment thread packages/licenses-api/src/index.ts
Comment thread packages/licenses-api/src/permissiveness/descriptions.ts Outdated
@artus9033 artus9033 requested a review from mateusz1913 August 6, 2025 19:49
Copy link
Copy Markdown
Collaborator

@mateusz1913 mateusz1913 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@artus9033 great job! left 2 small comments and let's ship it tomorrow

Comment thread package.json
Comment thread packages/visualizer/src/store/summarizerStore.ts
@artus9033 artus9033 merged commit 0ea1cf9 into main Aug 6, 2025
4 of 6 checks passed
@artus9033 artus9033 deleted the feat/license-kit-visualizer branch August 6, 2025 21:36
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.

2 participants