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 🙏

© 2024 – Pkg Stats / Ryan Hefner

cpeediff

v0.1.2

Published

An advanced diff tool for process models conforming to the CPEE notation.

Downloads

4

Readme

cpeediff

CpeeDiff is an advanced diff tool for business process models conforming to the CPEE notation. This project is part of my bachelor's thesis at the Technical University of Munich (TUM).

Prerequisites

  • Linux
  • Node.js 16.x.x

Although not explicitly tested, CpeeDiff should also work with Node.js 15.x.x.

Installation

To install globally and as a command line utility, run npm install -g cpeediff (root user privileges may be necessary). To verify that the symbolic link to the main.js file has been created, run cpeediff --help.

If you want to use CpeeDiff for a single project only, navigate to your project folder and run npm install cpeediff.

If you want to install from source, clone this repository, navigate to it, and run npm install. This should place all the necessary dependencies in the node_modules directory.

Usage

From the command line

  • cpeediff --help for the list of available subcommands.
  • cpediff <command> --help for the list of available options for a subcommand.

Currently, the following subcommands are available:

  • diff <old> <new>: Find differences between two CPEE process trees given as XML documents. The diff is given as a sequence of edit operations encoded in an XML document.
  • patch <old> [editScript]: Apply an edit script produced by CpeeDiff to a CPEE process tree. The given tree must be identical to the tree that was used to generate the edit script.
  • merge <base> <branch1> <branch2>: Perform a three-way merge with the given process trees.
  • eval <suite>: Run the automated evaluation framework with the selected test suite.

By default, output XML documents are unformatted and (nearly) impossible to navigate for humans. To pretty-print XML output, use the --pretty option.

As a module

CpeeDiff can only be imported as an ES6 module and will not function with require() syntax.

import {Preprocessor} from 'cpeediff/src/io/Preprocessor.js'
import {CpeeDiff} from 'cpeediff/src/diff/CpeeDiff.js'
import {DiffConfig} from 'cpeediff/src/config/DiffConfig.js'

// Parse process models
const parser = new Preprocessor();
const oldTree = parser.fromFile('old.xml');
const newTree = parser.fromFile('new.xml');

// Express differences as edit script
const differ = new CpeeDiff();
const editScript = differ.diff(oldTree, newTree);

// Enable prettier XML formatting
DiffConfig.PRETTY_XML = true;

// Output as XML document
console.log(editScript.toXmlString());

More documentation is available here.

References

Made with the help of the following npm modules (all licensed under MIT):

  • yargs to parse command line arguments.
  • xmldom for access to XML DOM functions and XML (de-)serialization.
  • murmur-32 for string hashing.
  • vkbeautify to pretty-print XML documents.
  • markdown-table to format the output of the evaluation framework.

For an overview of literature that informed the algorithm design, please consult the bachelor's thesis.