UNPKG

evolution-api-sdk

Version:

Unofficial SDK for the Evolution Whatsapp API v2

1 lines 4.61 kB
{"version":3,"sources":["../../../../src/types/tags.ts","../../../../src/utils/phone-numer-from-jid.ts","../../../../src/modules/messages/schemas/voice.ts"],"sourcesContent":["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","// Pure TypeScript interfaces for better IDE support and performance\nimport type { Media } from \"@/schemas/common\";\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 VoiceMessageResponseRaw {\n\tkey: {\n\t\tremoteJid: string;\n\t\tid: string;\n\t};\n\tmessage: {\n\t\taudioMessage: {\n\t\t\turl: string;\n\t\t\tmimetype: string;\n\t\t\tfileSha256: string;\n\t\t\tfileLength: number | string;\n\t\t\tseconds: number;\n\t\t\tptt?: boolean;\n\t\t\tmediaKey: string;\n\t\t\tfileEncSha256: string;\n\t\t\tdirectPath: string;\n\t\t\tmediaKeyTimestamp: number | string;\n\t\t\twaveform?: string | null;\n\t\t};\n\t};\n\tmessageTimestamp: string | Date;\n}\n\n// Request interfaces\nexport interface VoiceMessageOptions extends BaseMessageOptions {\n\t/**\n\t * Audio URL or file in base64\n\t */\n\taudio: Media;\n\t/**\n\t * Encode audio into WhatsApp default format (allows audio to be sped up)\n\t * @default true\n\t */\n\tencoding?: boolean;\n}\n\n// Response interfaces\nexport interface VoiceMessageResponse {\n\treceiver: {\n\t\tphoneNumber: string;\n\t\tjid: Jid;\n\t};\n\tmedia: {\n\t\turl: string;\n\t\tmimetype: string;\n\t\tlength: number;\n\t\tdurationInSeconds: number;\n\t\tsha256: string;\n\t\tencryptedSha256: string;\n\t\tdirectPath: string;\n\t\t/**\n\t\t * Indicates whether the audio message is a push-to-talk (PTT) message\n\t\t */\n\t\tisPtt?: boolean;\n\t\tkey: string;\n\t\tkeyTimestamp: Date;\n\t\twaveform?: string | null;\n\t};\n\tmessageId: MessageId;\n\ttimestamp: Date;\n}\n\n// Transform function\nexport const VoiceMessageResponseTransform = (data: VoiceMessageResponseRaw): VoiceMessageResponse => ({\n\treceiver: {\n\t\tphoneNumber: phoneNumberFromJid(data.key.remoteJid),\n\t\tjid: Jid(data.key.remoteJid),\n\t},\n\tmedia: {\n\t\turl: data.message.audioMessage.url,\n\t\tmimetype: data.message.audioMessage.mimetype,\n\t\tlength: Number(data.message.audioMessage.fileLength),\n\t\tdurationInSeconds: data.message.audioMessage.seconds,\n\t\tsha256: data.message.audioMessage.fileSha256,\n\t\tencryptedSha256: data.message.audioMessage.fileEncSha256,\n\t\tdirectPath: data.message.audioMessage.directPath,\n\t\tisPtt: data.message.audioMessage.ptt,\n\t\tkey: data.message.audioMessage.mediaKey,\n\t\tkeyTimestamp: new Date(Number(data.message.audioMessage.mediaKeyTimestamp)),\n\t\twaveform: data.message.audioMessage.waveform,\n\t},\n\tmessageId: MessageId(data.key.id),\n\ttimestamp: new Date(data.messageTimestamp),\n});\n\n// Backward compatibility aliases\nexport const ResponseSchema = { parse: VoiceMessageResponseTransform };\n"],"mappings":";AACO,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;;;AC8DO,IAAM,gCAAgC,CAAC,UAAyD;AAAA,EACtG,UAAU;AAAA,IACT,aAAa,mBAAmB,KAAK,IAAI,SAAS;AAAA,IAClD,KAAK,IAAI,KAAK,IAAI,SAAS;AAAA,EAC5B;AAAA,EACA,OAAO;AAAA,IACN,KAAK,KAAK,QAAQ,aAAa;AAAA,IAC/B,UAAU,KAAK,QAAQ,aAAa;AAAA,IACpC,QAAQ,OAAO,KAAK,QAAQ,aAAa,UAAU;AAAA,IACnD,mBAAmB,KAAK,QAAQ,aAAa;AAAA,IAC7C,QAAQ,KAAK,QAAQ,aAAa;AAAA,IAClC,iBAAiB,KAAK,QAAQ,aAAa;AAAA,IAC3C,YAAY,KAAK,QAAQ,aAAa;AAAA,IACtC,OAAO,KAAK,QAAQ,aAAa;AAAA,IACjC,KAAK,KAAK,QAAQ,aAAa;AAAA,IAC/B,cAAc,IAAI,KAAK,OAAO,KAAK,QAAQ,aAAa,iBAAiB,CAAC;AAAA,IAC1E,UAAU,KAAK,QAAQ,aAAa;AAAA,EACrC;AAAA,EACA,WAAW,UAAU,KAAK,IAAI,EAAE;AAAA,EAChC,WAAW,IAAI,KAAK,KAAK,gBAAgB;AAC1C;AAGO,IAAM,iBAAiB,EAAE,OAAO,8BAA8B;","names":[]}