# PM4JS Third Party Dependencies

PM4JS depends on third party libraries to implement some functionality. This document describes which libraries
PM4JS depends upon. This is a best effort attempt to describe the library's dependencies, it is subject to change as libraries are added/removed.

Common dependencies (Javascript library and Node package)

| Name | URL | License | Version |
| --------------------------- | ------------------------------------------------------------ | --------------------------- | ------------------- |
| [heapq.js](pm4js/algo/conformance/heapq.js) | https://stackoverflow.com/questions/42919469/efficient-way-to-implement-priority-queue-in-javascript | [CC BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/) |  |
| [HumanizeDuration.js](pm4js/utils/generic/humanize-duration.js) | https://github.com/EvanHahn/HumanizeDuration.js | [The Unlicense](https://github.com/EvanHahn/HumanizeDuration.js/blob/main/LICENSE.txt) | 3.27.0 |
| [intervaltree.js](pm4js/utils/generic/intervaltree.js) | https://github.com/pineapplemachine/interval-tree-type-js | [ZLIB/LIBPNG](https://opensource.org/licenses/Zlib) | 1.0.1 |
| [numeric.js](pm4js/utils/generic/numeric.js) | https://github.com/sloisel/numeric | [MIT](https://opensource.org/licenses/MIT) | 1.2.6 |

Other dependencies of the Node package: 

| Name | URL | License | Version |
| --------------------------- | ------------------------------------------------------------ | --------------------------- | ------------------- |
| jsdom | https://www.npmjs.com/package/jsdom | [MIT](https://opensource.org/licenses/MIT) | 16.6.0 |
| xmldom | https://www.npmjs.com/package/xmldom | [MIT](https://opensource.org/licenses/MIT) | 0.6.0 |
| xmlserializer | https://www.npmjs.com/package/xmlserializer | [MIT](https://opensource.org/licenses/MIT) | 0.6.1 |
| jest | https://www.npmjs.com/package/jest | [MIT](https://opensource.org/licenses/MIT) | 27.1.1 |
