npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

pdetail-diff

v0.1.1

Published

Concise way to express which card combos found in a set are also set in another

Readme

pdetail-diff build status

Concise way to express which card combos found in a set are also set in another

const { createDiff, applyDiff } = require('pdetail-diff')

const diff = createDiff(availableSet, includedSet, blockers)
const res = applyDiff(availableSet, diff, blockers)
// => res now has exact same combos as the original includedSet

Installation

npm install pdetail-diff

API

createDiff

Creates a diff between the detailed combo sets that were available and the ones of those that were included.

It assumes that we can only include available combos and omits any checks to verify in order to not hurt performance.

If all details of a combo that were available were also included it adds the combo specifier, i.e. 'AA' or 'AKs' to the complete set. If some details were missing it instead adds the included combos to the incomplete set, i.e. AsKs, AhKh, AcKc.

Note round tripping createDiff and applyDiff, results in the original included set.

Parameters

  • available Set<string> detail set of combos that were available to be included
  • included Set<string> detail set of the available combos that were included
  • blockers Set<string> cards that may be part of available combos but are blocked for the included set i.e. 'Ah', 'Ks'

Returns Object result { complete, incomplete } complete being a set of combo notations for detail sets that were fully included and incomplete a set of detail notations of combos that were partially included

applyDiff

Applies a diff derived via createDiff to the available set.

Parameters

  • available Set<string> detail set of combos that were available to be included
  • blockers Set<string> cards that weren't available to be included when diff was created, i.e. 'Ah', 'Ks' should be the same as the ones passed to createDiff to arrive at the same included set

Returns Set included combos for which the diff from the available ones was created

License

MIT