
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.
wa-sticker-formatter
Advanced tools
Wa-Sticker-Formatter is a simple tool which allows you to create and format WhatsApp Stickers.
> npm i wa-sticker-formatter
Wa-Sticker-Formatter provides two ways to create stickers. The paramers are the same for both.
First is the Buffer, SVG String, URL, SVG String or File path of static image, GIF or Video. The second is the options. GIFs and Videos will output an animated WebP file.
2nd Paramter, an object, Sticker Options accepts the following fields
pack
- The pack name.
author
- The author name.
type
- Value from StickeTypes enum (exported). Can be 'crop' or 'full' or undefined (default).
categories
- The sticker category. Can be an array of Emojis or undefined (default).
quality
- The quality of the output file. Can be an integer from 0 to 100. Defaults to 100.
id
- The sticker id. If this property is not defined, it will be generated.
background
- Background color in hexadecimal format or an RGBA Object. Defaults to undefined (transparent).
Before using the library, you need to import it.
import { Sticker, createSticker, StickerTypes } from 'wa-sticker-formatter' // ES6
// const { Sticker, createSticker, StickerTypes } = require('wa-sticker-formatter') // CommonJS
Sticker
constructor (Recommended)const sticker = new Sticker(image, {
pack: 'My Pack', // The pack name
author: 'Me', // The author name
type: StickerTypes.FULL, // The sticker type
categories: ['🤩', '🎉'], // The sticker category
id: '12345', // The sticker id
quality: 50, // The quality of the output file
background: '#000000' // The sticker background color (only for full stickers)
})
const buffer = await sticker.toBuffer() // convert to buffer
// or save to file
await sticker.toFile('sticker.webp')
// or get Baileys-MD Compatible Object
conn.sendMessage(jid, await sticker.toMessage())
You can also chain methods like this:
const buffer = await new Sticker(image)
.setPack('My Pack')
.setAuthor('Me')
.setType(StickerTypes.FULL)
.setCategories(['🤩', '🎉'])
.setId('12345')
.setBackground('#000000')
.setQuality(50)
.toBuffer()
The image
(first parameter) can be a Buffer, URL, SVG string, or File path.
const sticker = new Sticker(`
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
<path d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 464c-119.1 0-216-96.9-216-216S136.9 40 256 40s216 96.9 216 216-96.9 216-216 216z" fill="#ff0000" />
</svg>
`, { author: 'W3' })
createSticker
functionconst buffer = await createSticker(buffer, options) // same params as the constructor
// NOTE: `createSticker` returns a Promise of a Buffer
The following options are valid:
interface IStickerConfig {
/** Sticker Pack title*/
pack?: string
/** Sticker Pack Author*/
author?: string
/** Sticker Pack ID*/
id?: string
/** Sticker Category*/
categories?: Categories[]
/** Background */
background?: Sharp.Color
/** Sticker Type */
type?: StickerTypes | string
/* Output quality */
quality?: number
}
Sticker types are exported as an enum.
enum StickerTypes {
DEFAULT = 'default',
CROPPED = 'crop',
FULL = 'full',
CIRCLE = 'circle,
ROUNDED = 'rounded'
}
Background can be a hex color string or a sharp color object.
{
"background": "#FFFFFF"
}
or
{
"background": {
"r": 255,
"g": 255,
"b": 255,
"alpha": 1
}
}
Here's some basic information about WhatsApp Sticker Metadata.
In WhatsApp, stickers have their own metadata embedded in the WebP file as They hold info like the author, the title or pack name and the category.
The text on bold is the pack title and the rest is the author. This is actually Exif Metadata embedded in the WebP file.
This is an array of Emojis. Learn More
To extract the metadata from the WebP file, you can use the extractMetadata()
function.
import { extractMetadata, Sticker } from 'wa-sticker-formatter'
import { readFileSync } from 'fs'
const sticker = readFileSync('sticker.webp')
let metadata = await extractMetadata(sticker) // { emojis: [], 'sticker-pack-id': '', 'sticker-pack-name': '', 'sticker-author-name': '' }
// or use the static method from the Sticker class
metadata = await Sticker.extractMetadata(sticker)
Thanks for using Wa-Sticker-Formatter!
FAQs
Sticker Creator for WhatsApp
The npm package wa-sticker-formatter receives a total of 34,489 weekly downloads. As such, wa-sticker-formatter popularity was classified as popular.
We found that wa-sticker-formatter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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.