<p align="center">
  <img src=".github/images/qq-icon-md.png">
</p>

[![Build status][circleci-badge]][circleci-badge-url]
[![Code style][prettier-badge]][prettier-badge-url]

# QQ shared library

Currently the following modules are contained in qq-shared-packages:

1. [Logging library](lib/logger) to enforce payload formatting and message standards
1. [Authentication helper](lib/auth-helper) for generating JWTs using Okta
1. [Parameter lookup helper](lib/param-helper) for reading parameter values from SSM, environment variables, and local config files
1. [Testing helper](lib/test-helper) with utility functions that allow integration/e2e tests to get deployed API urls
1. [Lambda wrappers](lib/wrapper) with Lambda handler wrappers for API Gateway, SNS, DynamoDB Stream, CloudFormation Custom Resource, and API Gateway Custom Authorizer events

## Publishing NPM packages

Package publishing happens automatically through CircleCI whenever changes are checked in to master. The only setup needed is to set an NPM_TOKEN environment variable in CircleCI with a token authorized to make access to the ArgoDigital organization.

Steps to publish:

1. Determine what kind of change is being made following semantic versioning conventions
1. Update `package.json` with the appropriate package number
1. Deploy into or merge into master to initiate the publishing workflow

[circleci-badge]: https://circleci.com/gh/Argo-DigitalVentures/qq-shared-packages.svg?style=shield&circle-token=6da4448816f309abe433827d6f624567cb8640eb
[circleci-badge-url]: https://circleci.com/gh/Argo-DigitalVentures/qq-shared-packages
[prettier-badge]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square
[prettier-badge-url]: #badge
