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 🙏

© 2026 – Pkg Stats / Ryan Hefner

humandiff

v1.0.1

Published

"Diff to human-readable differences file"

Readme

HumanDiff

Diff to human-readable differences file.

Produces human readable / editable "diff" files similar to those generated by most VCS to aid conflict resolution intended to facilitate the task of merging two different files without having them under any version control system.

Installation

npm install -g humandiff

Usage

Usage: humandiff [options] <oldFile> <newFile> [oldFileLabel] [newFileLabel]

Human readable "diff" tool with no data loss.

  Differenced sections are labeled with oldFileLabel and newFileLabel if provided.

  File path is used otherwise.


Options:

  -V, --version                      output the version number
  -o, --acceptOld <cfgOptions_list>  Comma-separated list of options to automatically accept old version
  -n, --acceptNew <cfgOptions_list>  Comma-separated list of options to automatically accept new version
  -i, --ignoreCase                   Perform case-insensitive comparsion
  -h, --help                         output usage information


Exit statuses:
   Possible return status codes are:

      0: Ok
         Compare files are identical (~diff)
         ...OR if conflicts were automatically resolved.
      1: Conflict
         Files differ (~diff)
         ...AND conflicts couldn't automatically resolved.
            (Output file needs human review)
      2: Binary
         Tryed to compare binary file (=diff)
         (RESERVED, but Not yet used)
      5: Error
         Some error happened.
         (Details logged to stderr)

   NOTE: Defined as close as possible to diff exit status.
   See: http://tldp.org/LDP/abs/html/filearchiv.html#DIFFERR2


Advanced features:

  Automated resolution:
      Given any differnce section, if it consists in single row both sides
      and both consists in property definiton of the form 'propName = xxxx'.
      If propName is present on --acceptOld or --acceptNew list, proper
      version is automatically selected (printed) and no conflict block is
      rendered. It also works if property is not present either side (was
      removed or added in newFile) or, sometimes, even if its position changes
      (removed from its original position and added in another place).

  Case insensitive comparsion:
      if --ignoreCase option (or -i) option is used, case-insensitive
      comparsion is performed. In this mode, propNames in --acceptOld and
      --acceptNew are threaten in case insensitive manner so, for example
      "someoption" and "SomeOption" property names are considered the same
      and thus selected version is picked (in its original case). In case of
      rows with no other difference than upper/lower-case letters, oldFile
      verison is used

Output example

  Diff example file.

  This row is the same.

  <<<<<<<< test/a.txt
  This row is not the same.
  ========
  This row is different.
  >>>>>>>> test/b.txt

  This is also the same.
  And this too.

  <<<<<<<< test/a.txt
  This row is missing.
  ========
  >>>>>>>> test/b.txt

  More data.

  <<<<<<<< test/a.txt
  ========
  This row is added.
  >>>>>>>> test/b.txt

  And much more data.

  <<<<<<<< test/a.txt
  More differences.
  ========
  Another different block.
  This also added more rows.
  >>>>>>>> test/b.txt

  And much more data again.

More...

See CHANGELOG file.

License

GNU GENERAL PUBLIC LICENSE

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Contributing

If you are interested in contributing with this project, you can do it in many ways:

  • Creating and/or mantainig documentation.

  • Implementing new features or improving code implementation.

  • Reporting bugs and/or fixing it.

  • Sending me any other feedback.

  • Whatever you like...

Please, contact-me, open issues or send pull-requests thought this project GIT repository