@solufy/evolution-sdk
Version:
Unofficial SDK for the Evolution Whatsapp API v2
57 lines (55 loc) • 1.69 kB
JavaScript
// 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