
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
@anvilco/anvil
Advanced tools
Anvil is a suite of tools for managing document-based workflows:
Currently, this node client only supports our PDF filling API.
yarn add @anvilco/anvil
npm install @anvilco/anvil
A basic example converting your JSON to a filled PDF, then saving the PDF to a file:
import fs from 'fs'
import Anvil from '@anvilco/anvil'
// The ID of the PDF template to fill
const pdfTemplateID = 'kA6Da9CuGqUtc6QiBDRR'
// Your API key from your Anvil organization settings
const apiKey = '7j2JuUWmN4fGjBxsCltWaybHOEy3UEtt'
// JSON data to fill the PDF
const exampleData = {
"title": "My PDF Title",
"fontSize": 10,
"textColor": "#CC0000",
"data": {
"someFieldId": "Hello World!"
}
}
const anvilClient = new Anvil({ apiKey })
const { statusCode, data } = await anvilClient.fillPDF(pdfTemplateID, exampleData)
console.log(statusCode) // => 200
// Data will be the filled PDF raw bytes
fs.writeFileSync('output.pdf', data, { encoding: null })
Creates an Anvil client instance.
options
(Object) - Options for the Anvil Client instance.const anvilClient = new Anvil({ apiKey: 'abc123' })
Options for the Anvil Client. Defaults are shown after each option key.
{
apiKey: <your_api_key> // Required. Your API key from your Anvil organization settings
}
Fills a PDF with your JSON data.
First, you will need to have uploaded a PDF to Anvil. You can find the PDF template's id on the API Info
tab of your PDF template's page:
An example:
const pdfTemplateID = 'kA6Da9CuGqUtc6QiBDRR'
// Your API key from your Anvil organization settings
const apiKey = '7j2JuUWmN4fGjBxsCltWaybHOEy3UEtt'
// JSON data to fill the PDF
const payload = {
"title": "My PDF Title",
"fontSize": 10,
"textColor": "#CC0000",
"data": {
"someFieldId": "Hello World!"
}
}
// The 'options' parameter is optional
const options = {
"dataType": "buffer"
}
const anvilClient = new Anvil({ apiKey })
const { statusCode, data } = await anvilClient.fillPDF(pdfTemplateID, payload, options)
pdfTemplateID
(String) - The id of your PDF template from the Anvil UIpayload
(Object) - The JSON data that will fill the PDF template
title
(String) - optional Set the title encoded into the PDF documentfontSize
(Number) - optional Set the fontSize of all filled text. Default is 10.color
(String) - optional Set the text color of all filled text. Default is dark blue.data
(Object) - The data to fill the PDF. The keys in this object will correspond to a field's ID in the PDF. These field IDs and their types are available on the API Info
tab on your PDF template's page in the Anvil dashboard.
{ "someFieldId": "Hello World!" }
options
(Object) - optional Any additional options for the request
dataType
(Enum[String]) - optional Set the type of the data
value that is returned in the resolved Promise
. Defaults to 'buffer'
, but 'stream'
is also supported.Promise
that resolves to an Object
statusCode
(Number) - the HTTP status code; 200
is successdata
(Buffer | Stream) - The raw binary data of the filled PDF if success. Will be either a Buffer or a Stream, depending on dataType
option supplied to the request.errors
(Array of Objects) - Will be present if status >= 400. See Errors
message
(String)Our API has request rate limits in place. This API client handles 429 Too Many Requests
errors by waiting until it can retry again, then retrying the request. The client attempts to avoid 429
errors by throttling requests after the number of requests within the specified time period has been reached.
See the Anvil API docs for more information on the specifics of the rate limits.
See the PDF filling API docs for more information.
Check out the example folder for running usage examples!
First install the dependencies
yarn install
Running tests
yarn test
yarn test:watch
Building with babel will output in the /lib
directory.
yarn test
# Watches the `src` and `test` directories
yarn test:watch
FAQs
Anvil API Client
The npm package @anvilco/anvil receives a total of 6,526 weekly downloads. As such, @anvilco/anvil popularity was classified as popular.
We found that @anvilco/anvil demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.