UNPKG

@solufy/evolution-sdk

Version:

Unofficial SDK for the Evolution Whatsapp API v2

57 lines (55 loc) 1.69 kB
// src/modules/chats/schemas/presence.ts import { z as z2 } 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/modules/chats/schemas/presence.ts var PresenceOptionsSchema = z2.object({ /** * Chat number or JID to receve the presence */ number: ApiNumberSchema, /** * Duration of the presence in millisseconds */ duration: z2.number(), /** * Presence state * - `composing`: typing a message * - `recording`: recording an audio */ presence: z2.enum(["composing", "recording"]), /** * Whether to wait until the presence is finished (duration) */ waitUntilFinish: z2.boolean().optional() }); var PresenceBodySchema = PresenceOptionsSchema.transform( ({ waitUntilFinish, duration, ...data }) => ({ ...data, delay: duration }) ); export { PresenceBodySchema as BodySchema, PresenceOptionsSchema as OptionsSchema, PresenceBodySchema, PresenceOptionsSchema }; //# sourceMappingURL=presence.mjs.map