UNPKG

@solufy/evolution-sdk

Version:

Unofficial SDK for the Evolution Whatsapp API v2

102 lines (97 loc) 3.18 kB
// src/modules/messages/schemas/sticker.ts import { z as z3 } from "zod"; // src/schemas/common.ts import { isValidPhoneNumber, parsePhoneNumber } from "libphonenumber-js"; import { z } from "zod"; var PhoneNumberSchema = z.custom((value) => isValidPhoneNumber(value), "Invalid phone number").transform((phoneNumber) => parsePhoneNumber(phoneNumber).number); var JidSchema = z.string().endsWith( "@s.whatsapp.net", "Invalid remote JID, should end with @s.whatsapp.net" ); var GroupJidSchema = z.string().endsWith( "@g.us", "Invalid group JID, should end with @g.us" ); var GroupInviteCodeSchema = z.string().length(22).regex( /^[a-zA-Z0-9]{22}$/, "Invalid group invite code" ); var ApiNumberSchema = z.union([ PhoneNumberSchema, JidSchema, GroupJidSchema ]); var mediaSchema = z.union([z.string().url(), z.string().base64()]); // src/types/tags.ts var Jid = (jid) => jid; var MessageId = (id) => id; // src/utils/phone-numer-from-jid.ts import { parsePhoneNumber as parsePhoneNumber2 } from "libphonenumber-js"; function phoneNumberFromJid(jid) { return parsePhoneNumber2(`+${jid.split("@")[0]}`).number; } // src/modules/messages/schemas/base.ts import { z as z2 } from "zod"; var BaseMessageOptionsSchema = z2.object({ /** * Number (with country code) or JID to receive the message */ number: ApiNumberSchema, /** * Time in milliseconds before sending message */ delay: z2.number().optional() }); // src/modules/messages/schemas/sticker.ts var StickerMessageOptionsSchema = BaseMessageOptionsSchema.extend({ /** * Image URL or file in base64 */ sticker: mediaSchema }); var StickerMessageBodySchema = StickerMessageOptionsSchema; var StickerMessageResponseSchema = z3.object({ key: z3.object({ remoteJid: z3.string(), id: z3.string() }), message: z3.object({ stickerMessage: z3.object({ url: z3.string().url(), fileSha256: z3.string().base64(), fileEncSha256: z3.string().base64(), mediaKey: z3.string().base64(), mimetype: z3.string().optional(), directPath: z3.string(), fileLength: z3.coerce.number(), mediaKeyTimestamp: z3.coerce.number().transform((value) => new Date(value)) }) }), messageTimestamp: z3.coerce.date() }).transform((data) => ({ receiver: { phoneNumber: phoneNumberFromJid(data.key.remoteJid), jid: Jid(data.key.remoteJid) }, media: { url: data.message.stickerMessage.url, mimetype: data.message.stickerMessage.mimetype, length: data.message.stickerMessage.fileLength, sha256: data.message.stickerMessage.fileSha256, encryptedSha256: data.message.stickerMessage.fileEncSha256, directPath: data.message.stickerMessage.directPath, key: data.message.stickerMessage.mediaKey, keyTimestamp: data.message.stickerMessage.mediaKeyTimestamp }, id: MessageId(data.key.id), timestamp: data.messageTimestamp })); export { StickerMessageBodySchema as BodySchema, StickerMessageOptionsSchema as OptionsSchema, StickerMessageResponseSchema as ResponseSchema, StickerMessageBodySchema, StickerMessageOptionsSchema, StickerMessageResponseSchema }; //# sourceMappingURL=sticker.mjs.map