NickelBridge
============

NickelBridge is a simple utility that allows NickelBox to interface with receipt
printers.  It runs a simple web server listening on localhost:64269 (nibox) that
accepts JSON-format receipts and attempts to print them to whatever device is
configured in the UI.

NickelBridge uses [`node-thermal-printer`](https://www.npmjs.com/package/node-thermal-printer)
to print receipts.  It therefore supports the Epson ESC/POS and STAR protocols.
NickelBridge itself has only been tested with ESC/POS.


Endpoints
---------

* GET `/status`: Returns JSON `{"status": "OK", "width" 48}` where the width is
the user-configured maximum width in characters of a single printed line of text.

* POST `/print`: Accepts a JSON body comprised of the output of a `json` format
NickelBox receipt.  Prints it, cuts the paper (if hardware allows), and responds
with `{"status": "OK"}`.

* POST `/opendrawer`: Instructs the receipt printer to pop open the cash drawer,
if there is one attached.