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

archetypes

v1.0.0

Published

Universal, rule-based business collaboration APIs for e-commerce and customer relationship management (CRM). `commonality/archetypes` specifies semantically-rich models of universally recurring business entities, events, and relationships with OpenAPI 2.0

Downloads

129

Readme

archetypesNPM version

Business archetypes logo

License Dependencies' licenses NSP Status Synk Vulnerabilities StackShare Dependency Status devDependencies Status Build Status Coverage percentage Codacy quality All Contributors

quote A business archetype is a primordial thing that occurs consistently and universally in business domains and business software systems.

(Arlow & Neustadt, Enterprise patterns and MDA: building better software with archetype patterns and UML, 2006, p. 5)

commonality/archetypes provides universal, rule-based business collaboration APIs for e-commerce and customer relationship management (CRM). commonality/archetypes specifies semantically-rich models of universally recurring business entities, events, and relationships with OpenAPI 2.0.

What are archetypes?

archetypes model how PartiesPeople and Companies—exchange Products and Services with Payments (normally Money or other Locale-based Currencies like gift-cards). The exchanges are recorded from beginning to end as Orders and managed as Customer Relationships (CRM) between buyers and sellers (with PartyRelationships). When necessary, Rules constrain and determine the types of relationships allowed; how products can be packaged; and whether discounts can be applied.

These business archetypes are expressed as models in open, vendor-neutral OpenAPI/Swagger specifications, which provide:

  1. A common vocabulary and operating framework for how PartiesPeople and Companies—exchange goods and services for Money (with Locale-based Currencies), as well as managing these relationships as Customers (CRM).
  2. Executable documentation that articulates these models and how they interact.
  3. Open-source tools that automatically generate microservice "stubs" and client SDKs.

Table of contents

1. Security

commonality/archetypes provide model-driven OpenAPI specifications for pervasive business patterns. Some of these models contain sensitive personal or company data that require access control and privacy safeguards.

None of commonality/archetypes' specifications come with OpenAPI securityDefinitions. Before exposing any data, please apply the principle of least privilege with your own securityDefinitions as appropriate. You must secure how sensitive data are stored and shared.

2. Installation

Open a Terminal and run this command:

npm install --save archetypes

If your team prefers Yarn:

yarn add archetypes

2.1. Generating servers and clients

quote swagger-api/swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.

Cheng, W., & Tam, T. (2011, August 15). swagger-api/swagger-codegen. Retrieved August 27, 2017, from https://github.com/swagger-api/swagger-codegen

Swagger Codegen will generate servers and clients in many different languages and frameworks.

Follow the Installation and Getting Starting instructions to generate and build servers and clients from workstations, CI-services, or Docker containers.

2.2. Editing OpenAPI specs

  1. Go to https://editor.swagger.io/.
  2. Copy the /archetypes/v1/{archetype}/{archetype}.yaml specification of interest.
  3. Paste the *.yaml source into the editor pane.
  4. Select "Generate Server" or "Generate Client" and choose an option.
  5. If successful, you will prompted to download the ZIPped source code.

3. Usage: API HTTP responses

3.1. curl

The simplest way to test against mock objects at http://api.swindle.net/archetypes/v1/parties with curl in a Terminal.

$ curl \
  -X GET "http://api.swindle.net/archetypes/v1/parties/2e908e75-69a9-47e2-83ae-0c3cc52da84c" \
  -H "accept: application/json"

3.2. Swagger-UI

Go to the api.swindle.net Swagger-UI's "About" section and "Explore" the available Swagger Specs.

The following sections summarize all twelve business archetype patterns as they are released.

4. Party API :package:

REST API

quote The Party archetype represents an identifiable, addressable entity that may have a legal status and that normally has autonomous control over (at least some of) its actions.

Arlow, J., & Neustadt, I. (2006). Party archetype pattern. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 122). Boston: Addison-Wesley.

4.1. Standards compliance

| Standard | Contents | | ------------------------------------------------------------------------------------ | ------------------------------------------------------ | | OMG Party Management Facility Specification | A standard that supports party management. | | ISO 3166 | Two- and three-letter country codes and country names. | | ISO/IEC 5218:2004 | Codes for the representation of human sexes. | | ITU-T Recommendations | Telecommunication numbering plan. |

4.2. Resources

| Proposal | Contents | | ------------------------------------------- | --------------------------------------------------------------------------------------------------- | | 63 Genders | A proposal for describing Gender as a combination of Physical, Personality and Preferential groups. |

4.3. OpenAPI 2.0 Specs

Party's Swagger validity YAML (Content-Type: application/x-yaml)

parties/
├── nominative.yaml
├── parties.yaml
└── unique-identifier.yaml

4.4. API and SDK documentation

| Business archetype | Definition | | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | | Organizations | Administrative and functional structures | | Parties | Identifiable, addressable entity that may have a legal status and that normally has autonomous control over (at least some of) its actions. | | People | Human beings. | | Preferences | Choices of (or liking for) something, often from a set of possible or offered options. |

4.5. Usage example

Retrieve a Party by identifier with JavaScript:

const Party = require("party");

const api = new Party.PartiesApi();

// {String} The universally unique identifier associated with a Party.
const partyIdentifier = "2e908e75-69a9-47e2-83ae-0c3cc52da84c";

const callback = (error, data, response) => {
  if (error) {
    console.error(error);
  } else {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data, null, 2)
    );
  }
  console.log(response);
};
api.getByPartyIdentifier(partyIdentifier, callback);

5. Quantity API :package:

REST API

quote The Quantity archetype represents an amount of something measured according to some standard of measurement.

Arlow, J., & Neustadt, I. (2006). Quantity archetype pattern. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 400). Boston: Addison-Wesley.

5.1. Standards compliance

5.2. OpenAPI 2.0 Specs

Quantity's Swagger validity YAML (Content-Type: application/x-yaml)

quantities/
├── metric.yaml
├── quantities.yaml
├── quantity.yaml
├── rounding-strategy.yaml
├── si-system-of-units.yaml
└── system-of-units.yaml

5.3. API and SDK documentation

JavaScript client SDK (Node.js) client SDK.

5.4. Usage example

Retrieve an SiBaseUnit by identifier with JavaScript:

const Quantity = require("quantity");

const api = new Quantity.SIInternationalSystemOfUnitsApi();

// {String} The name of the unit/metric.
const name = "meter";

const callback = (error, data, response) => {
  if (error) {
    console.error(error);
  } else {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data, null, 2)
    );
  }
  console.log(response);
};

api.getBaseUnitByName(name, callback);

6. Money API :package:

REST API

quote The Money archetype represents an amount of a specific Currency that is acceptedIn one or more Locales.

Arlow, J., & Neustadt, I. (2006). Money archetype pattern. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 413). Boston: Addison-Wesley.

6.1. Standards compliance

6.2. OpenAPI 2.0 Specs

Quantity's Swagger validity YAML (Content-Type: application/x-yaml)

money/
├── currency.definition.yaml
├── money.definition.yaml
├── money.yaml
├── payment-card.definition.yaml
├── payment-method.definition.yaml
├── payment.definition.yaml
└── README.md

6.3. API documentation

JavaScript client SDK (Node.js)

6.4. Usage examples

Get all ISO 4217 Currencies with JavaScript (Node.js):

const Money = require("money");

const moneyApi = new Money.CurrencyApi();

const callback = (error, data, response) => {
  if (error) {
    console.error(error);
  } else {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data, null, 2)
    );
  }
  console.log(response);
};

moneyApi.getCurrencies(callback);

Retrieve a Currency by its ISO 4217 alphabetic code with JavaScript:

const Money = require("money");

const moneyApi = new Money.CurrencyApi();

// String | An alphabetic code that represents the currency.
const alphabeticCode = "USD";

const callback = (error, data, response) => {
  if (error) {
    console.error(error);
  } else {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data, null, 2)
    );
  }
  console.log(response);
};

moneyApi.getCurrencyByAlphabeticCode(alphabeticCode, callback);

7. PartyRelationship API

REST API

quote The PartyRelationship captures the fact that there is a semantic relationship between two Parties in which each Party plays a specific role.

Arlow, J., & Neustadt, I. (2006). Archetype glossary. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 160). Boston: Addison-Wesley.

Roadmap

icon-road-milestone-image MVP3: PartyRelationships and Rules

8. Rule API

REST API

quote The Rule archetype represents a constraint on the operation of the software systems of the business—its semantics are defined by a sequence of RuleElements.

Arlow, J., & Neustadt, I. (2006). Archetype glossary. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 449). Boston: Addison-Wesley.

Roadmap

icon-road-milestone-image MVP3: PartyRelationships and Rules

9. Customer relationship management (CRM) API

REST API

quote Customer relationship management (CRM) is about actively managing the relationships between your business and your customers, in order to understand and increase customer value, motivation, and loyalty.

Arlow, J., & Neustadt, I. (2006). Customer relationship management archetype pattern. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 187). Boston: Addison-Wesley.

Roadmap

icon-road-milestone-image MVP4: Customer relationship management (CRM)

10. Product API

REST API

quote The Product archetype pattern represents a generalized model for products.

Arlow, J., & Neustadt, I. (2006). Product archetype pattern. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 207). Boston: Addison-Wesley.

Roadmap

icon-road-milestone-image MVP5: Product

11. Inventory API

REST API

quote The Inventory archetype represents a collection of InventoryEntries held in stock by a business.

Arlow, J., & Neustadt, I. (2006). Inventory archetype pattern. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 271). Boston: Addison-Wesley.

Roadmap

icon-road-milestone-image MVP6: Inventory

12. Order API

REST API

quote The Order archetype represents a request by a buyer for a seller to supply some goods or services.

Arlow, J., & Neustadt, I. (2006). Inventory archetype pattern. In Enterprise patterns and MDA: building better software with archetype patterns and UML (p. 271). Boston: Addison-Wesley.

Roadmap

icon-road-milestone-image MVP7: Inventory

13. Product development and delivery

Packaging

PRs Welcome We welcome contributors and pull requests!

Interested in development contributions? Great! Check out our guidelines for Contributing to archetypes for details.

13.1. Built With

StackShare

archetypes requires the following tech-stack to either run, build, test, or deploy:

| Dependency | Description | Version | License | Type | | -------------- | --------------- | ----------- | ----------- | -------- | | @babel/core@^7.1.6 | Babel compiler core. | 7.1.6 | MIT | dev | | all-contributors-cli@^5.4.1 | Tool to easily add recognition for new contributors | 5.4.1 | MIT | dev | | [email protected] | Generate performance statistics for async or sync functions | 0.0.6 | UNLICENSED | dev | | babel-jest@^23.6.0 | Jest plugin to use babel for transformation. | 23.6.0 | MIT | dev | | babel-preset-env@^1.7.0 | A Babel preset for each environment. | 1.7.0 | MIT | dev | | babelify@^10.0.0 | Babel browserify transform | 10.0.0 | MIT | dev | | commitplease@^3.2.0 | Validates strings as commit messages | 3.2.0 | MIT | dev | | coveralls@^3.0.2 | takes json-cov output into stdin and POSTs to coveralls.io | 3.0.2 | BSD-2-Clause | dev | | eslint@^5.9.0 | An AST-based pattern checker for JavaScript. | 5.9.0 | MIT | dev | | eslint-config-standard@^12.0.0 | JavaScript Standard Style - ESLint Shareable Config | 12.0.0 | MIT | dev | | eslint-config-xo-space@^0.20.0 | ESLint shareable config for XO with 2-space indent | 0.20.0 | MIT | dev | | eslint-plugin-import@^2.14.0 | Import with sanity. | 2.14.0 | MIT | dev | | eslint-plugin-jest@^22.1.0 | Eslint rules for Jest | 22.1.0 | MIT | dev | | eslint-plugin-jsdoc@^3.9.1 | JSDoc linting rules for ESLint. | 3.9.1 | BSD-3-Clause | dev | | eslint-plugin-no-unsafe-innerhtml@^1.0.16 | custom ESLint rule to disallows unsafe innerHTML, outerHTML and insertAdjacentHTML | 1.0.16 | MPL-2.0 | dev | | eslint-plugin-no-unsanitized@^3.0.2 | ESLint rule to disallow unsanitized code | 3.0.2 | MPL-2.0 | dev | | eslint-plugin-node@^8.0.0 | Additional ESLint's rules for Node.js | 8.0.0 | MIT | dev | | eslint-plugin-promise@^4.0.1 | Enforce best practices for JavaScript promises | 4.0.1 | ISC | dev | | eslint-plugin-scanjs-rules@^0.2.1 | ESLint plugin that contains ScanJS rules | 0.2.1 | MPL-2.0 | dev | | eslint-plugin-security@^1.4.0 | Security rules for eslint | 1.4.0 | Apache-2.0 | dev | | eslint-plugin-standard@^4.0.0 | ESlint Plugin for the Standard Linter | 4.0.0 | MIT | dev | | eslint-plugin-xss@^0.1.9 | Validates XSS related issues of mixing HTML and non-HTML content in variables. | 0.1.9 | ISC | dev | | jest@^23.6.0 | Delightful JavaScript Testing. | 23.6.0 | MIT | dev | | jest-cli@^23.6.0 | Delightful JavaScript Testing. | 23.6.0 | MIT | dev | | jest-config@^23.6.0 | | 23.6.0 | MIT | dev | | markdown-magic@^0.1.25 | Automatically update markdown files with content from external sources | 0.1.25 | MIT | dev | | markdown-magic-dependency-table@^1.3.2 | Generate table of information about dependencies automatically in markdown | 1.3.2 | MIT | dev | | markdown-magic-directory-tree@^1.2.3 | Print an archy tree for markdown file | 1.2.3 | MIT | dev | | [email protected] | Add github contributors to markdown file | 0.0.3 | MIT | dev | | markdown-magic-package-scripts@^1.2.1 | Print list of scripts in package.json with descriptions | 1.2.1 | MIT | dev | | markdown-magic-subpackage-list@^1.1.1 | Print a list of subpackages for markdown file | 1.1.1 | MIT | dev | | markdown-toc@^1.2.0 | Generate a markdown TOC (table of contents) with Remarkable. | 1.2.0 | MIT | dev | | prettier@^1.15.2 | Prettier is an opinionated code formatter | 1.15.2 | MIT | dev | | semantic-release@^15.12.... | Automated semver compliant package publishing | 15.12.2 | MIT | dev | | snyk@^1.110.... | snyk library and cli utility | 1.110.2 | Apache-2.0 | dev | | sonar-scanner@^3.1.0 | Wrap sonar-scanner as a node module | 3.1.0 | MIT | dev | | standard-version@^4.4.0 | replacement for npm version with automatic CHANGELOG generation | 4.4.0 | ISC | dev | | swagger-parser@^6.0.2 | Swagger 2.0 and OpenAPI 3.0 parser and validator for Node and browsers | 6.0.2 | MIT | dev | | [email protected] | schronize a remote directory with a local one, then run a series of preset commands on the server | 0.0.02 | UNLICENSED | dev | | travis-deploy-once@^5.0.9 | Run a deployment script only once in the Travis test matrix | 5.0.9 | MIT | dev |

Keep track of archetypes' tech-stack with these news and RSS feeds.

13.2. Prerequisite

Node.js: commonality/archetypes product development and delivery require Node.js (version 6.x or greater) and its package manager, npm. for build, test, and release tasks.

13.3. Set up a development environment

Here's a brief intro about what a developer must do in order to start developing the project further:

$ git clone https://github.com/commonality/archetypes.git
$ cd archetypes/
$ npm install

13.4. npm-scripts

Software modules often have funky, irrelative names, which is why we prefix custom tasks by their responsibility and purpose.

| Prefix | Definition | | ----------- | ------------------------------------------------------------------------------------- | | build* | Source code distribution tasks. | | docs* | API documentation and automation tasks. | | lint* | Code style, standards, and vulnerabilty assessments (as well as fixes, if available). | | release | Bump the product's semver, update docs, commit, and publish to the npm registry. | | security* | Security vulnerabilty checks. |

The following CLI npm-scripts are available to you (assuming you're human, gentle reader) and CI-services.

| Script | Description | |--------|-------------| | build:bundle:all | npm run build:bundle:money && npm run build:bundle:parties && npm run build:bundle:quantities | | build:bundle:money | swagger bundle --dereference --outfile ./schemas/v1/money/money.bundle.json ./schemas/v1/money/money.spec.yaml | | build:bundle:parties | swagger bundle --dereference --outfile ./schemas/v1/parties/parties.bundle.json ./schemas/v1/parties/parties.yaml | | build:bundle:quantities | swagger bundle --dereference --outfile ./schemas/v1/quantities/quantities.bundle.json ./schemas/v1/quantities/quantities.yaml | | docs | node generate-docs.js && npm run docs:toc | | docs:contributors | all-contributors | | docs:contributors:add | all-contributors add | | docs:contributors:generate | all-contributors generate | | docs:toc | ./node_modules/.bin/markdown-toc -i README.md | | lint | npm run lint:js && npm run lint:swagger:all | | lint:js | eslint . --fix | | lint:md | prettier --write README.md | | lint:sonar | node_modules/sonar-scanner/bin/sonar-scanner | | lint:swagger:all | npm run lint:swagger:parties | | lint:swagger:money | swagger validate schemas/v1/money/money.spec.yaml --debug | | lint:swagger:parties | swagger validate schemas/v1/parties/parties.yaml --debug | | lint:swagger:quantities | swagger validate schemas/v1/quantities/quantities.yaml --debug | | postbump | echo $npm_package_version | | prepublishOnly | npm run docs | | preversion | npm run docs | | security | npm run security:nsp:scan && npm run security:snyk:all | | security:audit | npm run security:audit:scan | | security:audit:scan | npm audit | | security:snyk | snyk | | security:snyk:all | npm run security:snyk:auth && npm run security:snyk:monitor && npm run security:snyk:scan | | security:snyk:auth | snyk auth $SNYK_TOKEN | | security:snyk:monitor | snyk monitor --org=commonality | | security:snyk:scan | snyk test | | standard-version | standard-version | | test | jest --config=jest.config.json | | posttest | npm run security && npm run docs |

14. DevSecOps

commonality/archetypes triggers Travis CI builds to execute the ESLint, the Jest test runner, and Node Security Platform (NSP) analysis. Code coverage reports are then sent to Coveralls and SonarCloud.

14.1. Builds

Travis CI

commonality/archetypes uses Travis CI for continuous integration.

For details, please review the .travis.yml build file.

14.2. Tests and quality gates

This repository enforces Swagger quality; Javascript quality; and Javascript unit tests and code coverage.

14.2.1. Swagger validation

Swagger

commonality/archetypes validates Swagger docs with swagger-cli.

swagger-cli validation runs before every test execution:

# These two npm-scripts run lint automatically:
$ npm run pretest

$ npm test

# Only lint the Party OpenAPI specification:
$ npm run lint:swagger:party

# You can also validate your Swagger docs independently with:
$ npm run lint:swagger:all

swagger-api/validator-badges display whether there are syntactic issues with you Swagger/OpenAPI 2.0 document.

14.2.2. Linting

ESLint

commonality/archetypes lints with ESLint and displays real-time results with README badges.

# Code quality analysis runs before every test execution:
$ npm test

# Only validate JavaScript and OpenAPI specs
$ npm run lint

# Only run ESLint:
$ npm run lint:js

14.3.3. Spec (unit test) execution and code coverage

Jest

commonality/archetypes uses jest for BDD spec execution and code coverage analysis. The results are displayed real-time with README badges.

Generate detailed code coverage reports at coverage/lcov-report/index.html and lcov.info and clover.xml files (which you can send to CI test coverage services like Coveralls and [OneSonarQube][one-sonar-url] or SonarCloud):

$ npm test

14.3.4. Deploy/Publish

Conventional Commits with Angular commit conventions

Contributors must follow the Angular commit conventions in order to support automated CHANGELOG, package.json, Git release tags, and semantic version updates.

14.3.4.1. Prerequisites

Once a PR has been approved (and passes all checks), topic branches are are merged into master on GitHub.

  1. On the GitHub PR page, select Squash and Merge.
  2. Add a <title>, <body>, and <footer> that comply with the Conventional Commits Specfication.

14.3.4.2. Publish on npm

When you're ready to release (i.e., publish to npm or a local Node package registry), open a Terminal and follow these steps:

  1. Checkout and pull the latest from master:
$ git checkout master; git pull origin master
  1. Create and document a new semantic version:
# The npm-script "release" executes standard-version
$ npm release

npm release executes an npm-script that will:

  1. Bump the version in package.json

  2. Update CHANGELOG.md (with conventional-changelog)

  3. Commit package.json and CHANGELOG.md

  4. Tag a new release

  5. Push all changes, the new version tag to master, and publish on npm:

$ git push --follow-tags origin master; npm publish

Read more... For standard-version configuration details, read "Cut a Release" on the conventional-changelog/standard-version's README page.

15. Style guides

15.1. JavaScript source code

JavaScript Style Guide

Whenever you run npm test, ESLint will automatically reformat your JavaScript to ensure that all souce code conforms to the JavaScript Standard Style.

Open a Terminal and run any of these commands to ensure your JavaScript source code meets the JavaScript Standard Style:

  • Only lint JavaScript source code (with ESLint):
# Runs eslint . --fix
$ npm run lint:js
  • Lint source and validate OpenAPI specs:
# Lint source and validate OpenAPI specs:
$ npm run pretest
  • Or run all quality gates (including source code linting):
# Or run lint and all other quality gates:
$ npm test

15.2. Color palette

The archetypes documentation uses this color palette:

Color palette

The colors are (from left to right):

  • #CFDBD5: Light Grey
  • #E8EDDF: Platinum
  • #F5CB5C: Stil de Grain Yellow
  • #242423: Raisin Black
  • #333533: Jet

View the palette as PDF, PNG, SCSS, or on coolors.com.

16. Semantic version and CHANGELOG

The latest version of commonality/archetypes is 0.0.0. View the CHANGELOG for details.

17. Contributing to commonality/archetypes

PRs Welcome We welcome contributors and pull requests!

Contributions are community-driven stories with a beginning, a middle, and an end, all told through issues, comments, and pull requests. If you're interested in collaborating, please review the:

17.1. Contribution workflows summarized

We use the Git feature-branch-workflow to accept modifications, where contributors:

  1. Create an issue related to the problem you want to fix (good for traceability and cross-reference)
  2. Label the issue as
    • Type: Defect or
    • Type: Feature
  3. Fork the repository
  4. Create a branch (optionally with the reference to the issue in the name)
  5. Work it
  6. Commit incrementally with readable and detailed commit messages
  7. Submit a pull-request against the master branch of this repository.

We'll take care of tagging your issue with the appropriated labels and answer within a week (hopefully less!) to the problem you encounter.

17.2. Contributors

Thanks goes to these wonderful people (emoji key):

| Greg Swindle💻 🎨 📖 💡 ⚠️ | greenkeeper[bot]⚠️ | | :---: | :---: |

This project follows the all-contributors specification. Contributions of any kind welcome!

18. Licenses

Apache-2.0 © Greg Swindle.

Third-party licenses: Please see the NOTICE document for 3rd-Party Software information, or select the FOSSA badge below.

FOSSA Status


Code Style Guide for JavaScript Conventional Commits Greenkeeper badge Readme Score StackShare

Graphic art by icons8.