# Ecosystem Overview

## Main modules

Find the full list here: <https://www.npmjs.com/~stamp>

* **@stamp/compose** - The standard compose function implementation to create stamps
* **stampit** - A nice, handy API implementation of the compose standard. The original `stampit` module where it all began
* **@stamp/it** - Same as above

## Utility stamps

* **@stamp/arg-over-prop** - Assign properties passed to the stamp factory
* [**@stamp/collision**](https://stampit.js.org/ecosystem/stamp-collision) - Detect and manipulate method collisions
* **@stamp/configure** - Access configuration of your stamps anywhere
* **@stamp/eventemittable** - Node.js' EventEmitter as a stamp
* **@stamp/fp-constructor** - Adds the Functional Programming capabilities to your stamps
* **@stamp/init-property** - Replaces properties which reference stamps with objects created from the stamps
* [**@stamp/instanceof**](https://stampit.js.org/ecosystem/stamp-instanceof) - Enables `obj instanceof MyStamp` in ES6 environments
* [**@stamp/named**](https://stampit.js.org/ecosystem/stamp-named) - (Re)Name a stamp factory function (DEPRECATED)
* [**@stamp/privatize**](https://stampit.js.org/ecosystem/stamp-privatize) - Protect private properties
* [**@stamp/required**](https://stampit.js.org/ecosystem/stamp-required) - Insist on a method/property/staticProperty/configuration presence
* **@stamp/shortcut** - Adds handy shortcuts for stamp composition. Used in **@stamp/it**

## Other

* **@stamp/is** - Various validation functions used with stamps. Used in **@stamp/it**
* **@stamp/core** - Core functions for creating stamps. Used in **@stamp/it**
* **@stamp/check-compose** - Command line tool and library to test your `compose` function implementation
