UNPKG

@solufy/evolution-sdk

Version:

Unofficial SDK for the Evolution Whatsapp API v2

1 lines 7.61 kB
{"version":3,"sources":["../../../../src/modules/messages/schemas/contact.ts","../../../../src/schemas/common.ts","../../../../src/types/tags.ts","../../../../src/utils/phone-numer-from-jid.ts","../../../../src/modules/messages/schemas/base.ts"],"sourcesContent":["import { parsePhoneNumber } from \"libphonenumber-js\";\nimport { z } from \"zod\";\n\nimport { PhoneNumberSchema } from \"@/schemas/common\";\nimport { Jid, MessageId } from \"@/types/tags\";\nimport { phoneNumberFromJid } from \"@/utils/phone-numer-from-jid\";\nimport { BaseMessageOptionsSchema } from \"./base\";\n\nexport const ContactMessageOptionsSchema = BaseMessageOptionsSchema.extend({\n\t/**\n\t * Contact list\n\t */\n\tcontacts: z.array(\n\t\tz.object({\n\t\t\t/**\n\t\t\t * Contact display name\n\t\t\t */\n\t\t\tfullName: z.string(),\n\t\t\t/**\n\t\t\t * Contact phone number\n\t\t\t */\n\t\t\tphoneNumber: PhoneNumberSchema,\n\t\t\t/**\n\t\t\t * Contact organization\n\t\t\t */\n\t\t\torganization: z.string().optional(),\n\t\t\t/**\n\t\t\t * Contact email\n\t\t\t */\n\t\t\temail: z.string().email().optional(),\n\t\t\t/**\n\t\t\t * Contact website url\n\t\t\t */\n\t\t\turl: z.string().url().optional(),\n\t\t}),\n\t),\n});\n\nexport const ContactMessageBodySchema = ContactMessageOptionsSchema.transform(\n\t({ contacts, ...data }) => ({\n\t\t...data,\n\t\tcontact: contacts.map((contact) => ({\n\t\t\t...contact,\n\t\t\tphoneNumber: parsePhoneNumber(contact.phoneNumber).formatInternational(),\n\t\t\twuid: contact.phoneNumber.replace(/\\D/g, \"\"),\n\t\t})),\n\t}),\n);\n\nexport const ContactMessageResponseSchema = z\n\t.object({\n\t\tkey: z.object({\n\t\t\tremoteJid: z.string(),\n\t\t\tid: z.string(),\n\t\t}),\n\t\tmessage: z.union([\n\t\t\tz.object({\n\t\t\t\tcontactMessage: z.object({\n\t\t\t\t\tdisplayName: z.string(),\n\t\t\t\t\tvcard: z.string(),\n\t\t\t\t}),\n\t\t\t}),\n\t\t\tz.object({\n\t\t\t\tcontactsArrayMessage: z.object({\n\t\t\t\t\tcontacts: z.array(\n\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\tdisplayName: z.string(),\n\t\t\t\t\t\t\tvcard: z.string(),\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t}),\n\t\t\t}),\n\t\t]),\n\t\tmessageTimestamp: z.coerce.date(),\n\t})\n\t.transform((data) => ({\n\t\treceiver: {\n\t\t\tphoneNumber: phoneNumberFromJid(data.key.remoteJid),\n\t\t\tjid: Jid(data.key.remoteJid),\n\t\t},\n\t\tcontacts:\n\t\t\t\"contactMessage\" in data.message\n\t\t\t\t? [data.message.contactMessage]\n\t\t\t\t: data.message.contactsArrayMessage.contacts,\n\t\tid: MessageId(data.key.id),\n\t\ttimestamp: data.messageTimestamp,\n\t}));\n\nexport type ContactMessageOptions = z.infer<typeof ContactMessageOptionsSchema>;\nexport type ContactMessageResponse = z.infer<\n\ttypeof ContactMessageResponseSchema\n>;\n\nexport {\n\tContactMessageBodySchema as BodySchema,\n\tContactMessageOptionsSchema as OptionsSchema,\n\tContactMessageResponseSchema as ResponseSchema,\n};\n","import { isValidPhoneNumber, parsePhoneNumber } from \"libphonenumber-js\";\nimport { z } from \"zod\";\n\nimport type { GroupInviteCode, GroupJid, Jid } from \"@/types/tags\";\n\nexport const PhoneNumberSchema = z\n\t.custom<string>((value) => isValidPhoneNumber(value), \"Invalid phone number\")\n\t.transform<string>((phoneNumber) => parsePhoneNumber(phoneNumber).number);\n\nexport const JidSchema = z\n\t.string()\n\t.endsWith(\n\t\t\"@s.whatsapp.net\",\n\t\t\"Invalid remote JID, should end with @s.whatsapp.net\",\n\t) as z.ZodType<Jid>;\n\nexport const GroupJidSchema = z\n\t.string()\n\t.endsWith(\n\t\t\"@g.us\",\n\t\t\"Invalid group JID, should end with @g.us\",\n\t) as z.ZodType<GroupJid>;\n\nexport const GroupInviteCodeSchema = z\n\t.string()\n\t.length(22)\n\t.regex(\n\t\t/^[a-zA-Z0-9]{22}$/,\n\t\t\"Invalid group invite code\",\n\t) as unknown as z.ZodType<GroupInviteCode>;\n\nexport const ApiNumberSchema = z.union([\n\tPhoneNumberSchema,\n\tJidSchema,\n\tGroupJidSchema,\n]);\n\nexport const mediaSchema = z.union([z.string().url(), z.string().base64()]);\n","export type Jid = `${string}@s.whatsapp.net`;\nexport const Jid = (jid: string) => jid as Jid;\n\nexport type GroupJid = `${string}@g.us`;\nexport const GroupJid = (jid: string) => jid as GroupJid;\n\nexport type GroupInviteCode = string & { __tag: \"GroupInviteCode\" };\nexport const GroupInviteCode = (code: string) => code as GroupInviteCode;\n\nexport type MessageId = string & { __tag: \"MessageId\" };\nexport const MessageId = (id: string) => id as MessageId;\n\nexport type ChatId = string & { __tag: \"ChatId\" };\nexport const ChatId = (id: string) => id as ChatId;\n","import { parsePhoneNumber } from \"libphonenumber-js\";\n\n/**\n * Get phone number from JID\n * @param jid - JID (remote JID)\n */\nexport function phoneNumberFromJid(jid: string) {\n\treturn parsePhoneNumber(`+${jid.split(\"@\")[0]}`).number;\n}\n","import { z } from \"zod\";\n\nimport { ApiNumberSchema } from \"@/schemas/common\";\n\nexport const BaseMessageOptionsSchema = z.object({\n\t/**\n\t * Number (with country code) or JID to receive the message\n\t */\n\tnumber: ApiNumberSchema,\n\t/**\n\t * Time in milliseconds before sending message\n\t */\n\tdelay: z.number().optional(),\n});\n\nexport type BaseMessageOptions = z.infer<typeof BaseMessageOptionsSchema>;\n"],"mappings":"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","names":["parsePhoneNumber","z","parsePhoneNumber","z","z","z","parsePhoneNumber"]}