UNPKG

evolution-api-sdk

Version:

Unofficial SDK for the Evolution Whatsapp API v2

1 lines 4.7 kB
{"version":3,"sources":["../../../../src/modules/messages/schemas/contact.ts","../../../../src/types/tags.ts","../../../../src/utils/phone-numer-from-jid.ts"],"sourcesContent":["// Pure TypeScript interfaces for better IDE support and performance\nimport { parsePhoneNumber } from \"libphonenumber-js\";\nimport { Jid, MessageId } from \"@/types/tags\";\nimport { phoneNumberFromJid } from \"@/utils/phone-numer-from-jid\";\nimport { BaseMessageOptions } from \"./base\";\n\n// Raw response interface from API\nexport interface ContactMessageResponseRaw {\n key: {\n remoteJid: string;\n id: string;\n };\n message: {\n contactMessage?: {\n displayName: string;\n vcard: string;\n };\n contactsArrayMessage?: {\n contacts: {\n displayName: string;\n vcard: string;\n }[];\n };\n };\n messageTimestamp: string | Date;\n}\n\n// Request interfaces\nexport interface Contact {\n /**\n * Contact display name\n */\n fullName: string;\n /**\n * Contact phone number\n */\n phoneNumber: string;\n /**\n * Contact organization\n */\n organization?: string;\n /**\n * Contact email\n */\n email?: string;\n /**\n * Contact website url\n */\n url?: string;\n}\n\nexport interface ContactMessageOptions extends BaseMessageOptions {\n /**\n * Contact list\n */\n contact: [Contact, ...Contact[]];\n}\n\nexport interface ContactMessageBody extends BaseMessageOptions {\n contact: (Contact & {\n wuid: string;\n })[];\n}\n\n// Response interfaces\nexport interface ContactMessageResponse {\n receiver: {\n phoneNumber: string;\n jid: Jid;\n };\n contacts: {\n displayName: string;\n vcard: string;\n }[];\n id: MessageId;\n timestamp: Date;\n}\n\n// Transform functions\nexport const ContactMessageBodyTransform = ({\n contact,\n ...data\n}: ContactMessageOptions): ContactMessageBody => ({\n ...data,\n contact: contact.map((contactItem) => ({\n ...contactItem,\n phoneNumber: parsePhoneNumber(\n contactItem.phoneNumber\n ).formatInternational(),\n wuid: contactItem.phoneNumber.replace(/\\D/g, \"\"),\n organization: contactItem.organization || \"\",\n email: contactItem.email || \"\",\n url: contactItem.url || \"\",\n })),\n});\n\nexport const ContactMessageResponseTransform = (\n data: ContactMessageResponseRaw\n): ContactMessageResponse => ({\n receiver: {\n phoneNumber: phoneNumberFromJid(data.key.remoteJid),\n jid: Jid(data.key.remoteJid),\n },\n contacts: data.message.contactMessage\n ? [data.message.contactMessage]\n : data.message.contactsArrayMessage?.contacts || [],\n id: MessageId(data.key.id),\n timestamp: new Date(data.messageTimestamp),\n});\n\n// Backward compatibility aliases\nexport const BodySchema = { parse: ContactMessageBodyTransform };\nexport const ResponseSchema = { parse: ContactMessageResponseTransform };\n","export type Jid = `${string}@s.whatsapp.net` | string;\nexport const Jid = (jid: string) => jid as Jid;\n\nexport type GroupJid = `${string}@g.us` | string;\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"],"mappings":";AACA,SAAS,oBAAAA,yBAAwB;;;ACA1B,IAAM,MAAM,CAAC,QAAgB;AAS7B,IAAM,YAAY,CAAC,OAAe;;;ACVzC,SAAS,wBAAwB;AAM1B,SAAS,mBAAmB,KAAa;AAC/C,SAAO,iBAAiB,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;AAClD;;;AFuEO,IAAM,8BAA8B,CAAC;AAAA,EAC1C;AAAA,EACA,GAAG;AACL,OAAkD;AAAA,EAChD,GAAG;AAAA,EACH,SAAS,QAAQ,IAAI,CAAC,iBAAiB;AAAA,IACrC,GAAG;AAAA,IACH,aAAaC;AAAA,MACX,YAAY;AAAA,IACd,EAAE,oBAAoB;AAAA,IACtB,MAAM,YAAY,YAAY,QAAQ,OAAO,EAAE;AAAA,IAC/C,cAAc,YAAY,gBAAgB;AAAA,IAC1C,OAAO,YAAY,SAAS;AAAA,IAC5B,KAAK,YAAY,OAAO;AAAA,EAC1B,EAAE;AACJ;AAEO,IAAM,kCAAkC,CAC7C,UAC4B;AAAA,EAC5B,UAAU;AAAA,IACR,aAAa,mBAAmB,KAAK,IAAI,SAAS;AAAA,IAClD,KAAK,IAAI,KAAK,IAAI,SAAS;AAAA,EAC7B;AAAA,EACA,UAAU,KAAK,QAAQ,iBACnB,CAAC,KAAK,QAAQ,cAAc,IAC5B,KAAK,QAAQ,sBAAsB,YAAY,CAAC;AAAA,EACpD,IAAI,UAAU,KAAK,IAAI,EAAE;AAAA,EACzB,WAAW,IAAI,KAAK,KAAK,gBAAgB;AAC3C;AAGO,IAAM,aAAa,EAAE,OAAO,4BAA4B;AACxD,IAAM,iBAAiB,EAAE,OAAO,gCAAgC;","names":["parsePhoneNumber","parsePhoneNumber"]}