I am working on a Monero invoice solution for a client, and I would like to use integrated addresses to allow the client to reconcile payments. It's cost prohibitive to run a private node just to generate these addresses. Is there a JS library for generating an integrated address?
As already mentioned by el00ruobuob, subaddresses are the way to go.
However, you can manually build integrated addresses as per this detailed answer: https://monero.stackexchange.com/a/3184/7493
You do not need a node to generate an integrated address.
You only need the monero-wallet-rpc and call the appropriate method.
Edit: but you should also look at the subaddresses which are designed for the same purpose and will be available for a longer time.
Btw, how do you expect to confirm payment without a node?
A remote node does not seems trustworthy for such use case.