79b9c9f7da
Implementa suporte completo para envio de pacotes de stickers seguindo o padrão oficial do WhatsApp (3-30 stickers por pack). **Novos Recursos:** - Tipos TypeScript: Sticker e StickerPack com documentação completa - Função prepareStickerPackMessage() com criptografia AES-256-CBC + HMAC - Conversão automática para WebP usando Sharp - Detecção de stickers animados via VP8X header - Deduplicação automática de stickers por hash SHA256 - Compressão ZIP usando fflate (level 0 para performance) - Upload de thumbnail 252x252 JPEG com mesma mediaKey - Validações conforme especificações oficiais WhatsApp **Especificações Implementadas:** - Mínimo 3, máximo 30 stickers (padrão oficial WhatsApp) - Limite 1MB por sticker (hard limit) - Recomendado: 100KB estático, 500KB animado - Formato WebP obrigatório - Tray icon 252x252 pixels - Limite total pack: 30MB **Arquivos Modificados:** - src/Types/Message.ts: tipos Sticker e StickerPack - src/Defaults/index.ts: media paths e HKDF keys - src/Utils/sticker-pack.ts: implementação core (440 linhas) - src/Utils/messages-media.ts: export getImageProcessingLibrary, mediaKey opcional - src/Utils/messages.ts: integração com generateWAMessageContent - src/Socket/messages-send.ts: detecção de tipo 'sticker_pack' - package.json: dependência fflate@^0.8.2 **Segurança:** - Criptografia AES-256-CBC com autenticação HMAC-SHA256 - HKDF key derivation para separação de chaves - Reutilização intencional de mediaKey (protocolo WhatsApp) - Validação de tamanhos e formatos **Compatibilidade:** - ✅ Não impacta mensagens interativas existentes - ✅ Tipos completamente separados no union type - ✅ Sharp como peer dependency opcional - ✅ Graceful degradation se Sharp não instalado **Uso:** \`\`\`typescript await sock.sendMessage(jid, { stickerPack: { name: 'Meu Pack', publisher: 'Autor', cover: coverBuffer, stickers: [ { data: sticker1, emojis: ['😀'] }, { data: sticker2, emojis: ['😎'] } ] } }) \`\`\` https://claude.ai/code/session_01FaRqGuPecEyPx1qiuRV8Ye
112 lines
3.3 KiB
JSON
112 lines
3.3 KiB
JSON
{
|
|
"name": "baileys",
|
|
"type": "module",
|
|
"version": "7.0.0-rc.9",
|
|
"description": "A WebSockets library for interacting with WhatsApp Web",
|
|
"keywords": [
|
|
"whatsapp",
|
|
"automation"
|
|
],
|
|
"homepage": "https://github.com/WhiskeySockets/Baileys/",
|
|
"repository": {
|
|
"url": "git@github.com:WhiskeySockets/Baileys.git"
|
|
},
|
|
"license": "MIT",
|
|
"author": "Rajeh Taher",
|
|
"main": "lib/index.js",
|
|
"types": "lib/index.d.ts",
|
|
"files": [
|
|
"lib/**/*",
|
|
"WAProto/**/*",
|
|
"engine-requirements.js"
|
|
],
|
|
"scripts": {
|
|
"build:all": "npm run build && npm run build:docs",
|
|
"build:docs": "typedoc",
|
|
"build": "tsc -P tsconfig.build.json && tsc-esm-fix --tsconfig=tsconfig.build.json --ext=.js",
|
|
"changelog:last": "conventional-changelog -p angular -r 2",
|
|
"changelog:preview": "conventional-changelog -p angular -u",
|
|
"changelog:update": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
|
"example": "tsx ./Example/example.ts",
|
|
"gen:protobuf": "sh WAProto/GenerateStatics.sh",
|
|
"format": "prettier --write \"src/**/*.{ts,js,json,md}\"",
|
|
"lint": "tsc && eslint src --ext .js,.ts",
|
|
"lint:fix": "npm run format && npm run lint -- --fix",
|
|
"prepack": "npm run build",
|
|
"prepare": "npm run build",
|
|
"preinstall": "node ./engine-requirements.js",
|
|
"release": "release-it",
|
|
"test": "node --experimental-vm-modules ./node_modules/.bin/jest --testMatch '**/*.test.ts'",
|
|
"test:e2e": "node --experimental-vm-modules ./node_modules/.bin/jest --testMatch '**/*.test-e2e.ts'",
|
|
"update:version": "tsx ./scripts/update-version.ts"
|
|
},
|
|
"dependencies": {
|
|
"@cacheable/node-cache": "^1.4.0",
|
|
"@hapi/boom": "^9.1.3",
|
|
"async-mutex": "^0.5.0",
|
|
"fflate": "^0.8.2",
|
|
"libsignal": "git+https://github.com/whiskeysockets/libsignal-node",
|
|
"lru-cache": "^11.1.0",
|
|
"music-metadata": "^11.7.0",
|
|
"p-queue": "^9.0.0",
|
|
"pino": "^9.6",
|
|
"prom-client": "^15.1.3",
|
|
"protobufjs": "^7.2.4",
|
|
"ws": "^8.13.0"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3.3.1",
|
|
"@eslint/js": "^9.31.0",
|
|
"@types/jest": "^30.0.0",
|
|
"@types/node": "^20.9.0",
|
|
"@types/ws": "^8.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
"@typescript-eslint/parser": "^8",
|
|
"@whiskeysockets/eslint-config": "^1.0.0",
|
|
"conventional-changelog": "^7.1.1",
|
|
"conventional-changelog-angular": "^8.0.0",
|
|
"esbuild-register": "^3.6.0",
|
|
"eslint": "^9",
|
|
"eslint-config-prettier": "^10.1.2",
|
|
"eslint-plugin-prettier": "^5.4.0",
|
|
"jest": "^30.0.5",
|
|
"jimp": "^1.6.0",
|
|
"jiti": "^2.4.2",
|
|
"json": "^11.0.0",
|
|
"link-preview-js": "^3.0.0",
|
|
"lru-cache": "^11.1.0",
|
|
"open": "^8.4.2",
|
|
"pino-pretty": "^13.1.1",
|
|
"prettier": "^3.5.3",
|
|
"protobufjs-cli": "^1.1.3",
|
|
"release-it": "^15.10.3",
|
|
"ts-jest": "^29.4.0",
|
|
"tsc-esm-fix": "^3.1.2",
|
|
"tsx": "^4.20.3",
|
|
"typedoc": "^0.27.9",
|
|
"typedoc-plugin-markdown": "4.4.2",
|
|
"typescript": "^5.8.2"
|
|
},
|
|
"peerDependencies": {
|
|
"audio-decode": "^2.1.3",
|
|
"jimp": "^1.6.0",
|
|
"link-preview-js": "^3.0.0",
|
|
"sharp": "*"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"audio-decode": {
|
|
"optional": true
|
|
},
|
|
"jimp": {
|
|
"optional": true
|
|
},
|
|
"link-preview-js": {
|
|
"optional": true
|
|
}
|
|
},
|
|
"packageManager": "yarn@4.9.2",
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
}
|
|
}
|