A javascript library for interacting with an OpenCAP server.
This package uses DNS lookups and will not work in browsers. In case you need OpenCAP in your browser app you have two options:
-
Use a DNS service that provides SRV lookups through an API (Google DNS HTTPS API, Cloudflare DNS HTTPS API)
-
Use this package in your backend and provide the functionality through your own api endpoints.
'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
NodeJS by default blocks requests to servers signed by intermediary Certification Authorities, even trusted, commonly known ones. This means that any alias hosted at a server with said certificate will not be resolved properly. To fix this there is a package that will inject intermediary certificates. Chrome for an example trusts these certificates by default.
Install the following package: 'ssl-root-cas'
Then do as follows:
const sslRootCAs = require('ssl-root-cas/latest')
sslRootCAs.inject()
Once the certificates were downloaded and installed once, you may remove those lines from your application.
Your client can now perfectly resolve any OpenCAP alias.
npm i --save opencap
const opencap = require("opencap")
const addresses = await opencap.getAddresses("example$domain.tld")
const address = await opencap.getAddress("example$domain.tld", 100 /* Bitcoin */)
const authenticationResult = await opencap.authenticate("example$domain.tld", "examplepassword")
await opencap.putAddress("example$domain.tld", 100, "example_address", authenticationResult.jwt)
const authenticationResult = await opencap.authenticate("example$domain.tld", "examplepassword")
await opencap.deleteAddress("example$domain.tld", 100, authenticationResult.jwt)
const authenticationResult = await opencap.authenticate("example$domain.tld", "examplepassword")
await opencap.deleteAllAddress("example$domain.tld", authenticationResult.jwt)