UNPKG

evolution-api-sdk

Version:

Unofficial SDK for the Evolution Whatsapp API v2

1 lines 49.4 kB
{"version":3,"sources":["../../src/api/routes.ts","../../src/schemas/common.ts","../../src/modules/chats/index.ts","../../src/modules/groups/index.ts","../../src/modules/instance/index.ts","../../src/modules/messages/index.ts","../../src/modules/profile/index.ts","../../src/modules/settings/index.ts","../../src/modules/webhook/index.ts"],"sourcesContent":["export const Routes = {\n Message: {\n SendText: \"message/sendText\",\n SendMedia: \"message/sendMedia\",\n SendVoice: \"message/sendWhatsAppAudio\",\n SendSticker: \"message/sendSticker\",\n SendLocation: \"message/sendLocation\",\n SendContact: \"message/sendContact\",\n SendPoll: \"message/sendPoll\",\n SendReaction: \"message/sendReaction\",\n SendTemplate: \"message/sendTemplate\",\n SendStatus: \"message/sendStatus\",\n SendList: \"message/sendList\",\n },\n Chats: {\n Check: \"chat/whatsappNumbers\",\n FindAll: \"chat/findChats\",\n SendPresence: \"chat/sendPresence\",\n MarkAsRead: \"chat/markMessageAsRead\",\n MarkAsUnread: \"chat/markChatUnread\",\n Archive: \"chat/archive\",\n DeleteMessage: \"chat/deleteMessageForEveryone\",\n FetchProfilePicture: \"chat/fetchProfilePictureUrl\",\n FindContacts: \"chat/findContacts\",\n FindMessages: \"chat/findMessages\",\n FindStatusMessage: \"chat/findStatusMessage\",\n UpdateMessage: \"chat/updateMessage\",\n },\n Groups: {\n FindAll: \"group/fetchAllGroups\",\n FindByJid: \"group/findGroupInfos\",\n FindByInviteCode: \"group/inviteInfo\",\n Create: \"group/create\",\n UpdatePicture: \"group/updateGroupPicture\",\n UpdateSubject: \"group/updateGroupSubject\",\n UpdateDescription: \"group/updateGroupDescription\",\n FetchInviteCode: \"group/fetchInviteCode\",\n AcceptInviteCode: \"group/acceptInviteCode\",\n RevokeInviteCode: \"group/revokeInviteCode\",\n SendGroupInvite: \"group/sendGroupInvite\",\n FindMembers: \"group/findGroupMembers\",\n UpdateMembers: \"group/updateGroupMembers\",\n UpdateSetting: \"group/updateGroupSetting\",\n ToggleEphemeral: \"group/toggleEphemeral\",\n Leave: \"group/leaveGroup\",\n },\n Profile: {\n FetchBusinessProfile: \"chat/fetchBusinessProfile\",\n FetchProfile: \"chat/fetchProfile\",\n UpdateName: \"chat/updateProfileName\",\n UpdateStatus: \"chat/updateProfileStatus\",\n UpdatePicture: \"chat/updateProfilePicture\",\n RemovePicture: \"chat/removeProfilePicture\",\n FetchPrivacySettings: \"chat/fetchPrivacySettings\",\n UpdatePrivacySettings: \"chat/updatePrivacySettings\",\n },\n Webhook: {\n Set: \"webhook/set\",\n Find: \"webhook/find\",\n },\n Settings: {\n Set: \"settings/set\",\n Find: \"settings/find\",\n },\n Instance: {\n Create: \"instance/create\",\n FetchAll: \"instance/fetchInstances\",\n Connect: \"instance/connect\",\n Restart: \"instance/restart\",\n ConnectionState: \"instance/connectionState\",\n Logout: \"instance/logout\",\n Delete: \"instance/delete\",\n SetPresence: \"instance/setPresence\",\n },\n};\n","// Pure TypeScript types and utility functions for better IDE support and performance\nimport { isValidPhoneNumber, parsePhoneNumber } from \"libphonenumber-js\";\nimport type { GroupInviteCode, GroupJid, Jid } from \"@/types/tags\";\n\n// Type definitions\nexport type PhoneNumber = string;\nexport type MessageId = string;\nexport type ChatId = PhoneNumber | Jid | GroupJid;\nexport type ApiNumber = PhoneNumber | Jid | GroupJid;\nexport type Media = string; // URL or base64 string\n\n// Utility functions\nexport const validatePhoneNumber = (value: string): boolean => isValidPhoneNumber(value);\nexport const parsePhoneNumberUtil = (phoneNumber: string): string => parsePhoneNumber(phoneNumber).number;\n\nexport const validateJid = (value: string): boolean => value.endsWith(\"@s.whatsapp.net\");\nexport const validateGroupJid = (value: string): boolean => value.endsWith(\"@g.us\");\nexport const validateGroupInviteCode = (value: string): boolean => \n value.length === 22 && /^[a-zA-Z0-9]{22}$/.test(value);\n\nexport const validateMedia = (value: string): boolean => {\n // Check if it's a URL or base64 string\n try {\n new URL(value);\n return true;\n } catch {\n // Check if it's a valid base64 string\n try {\n return btoa(atob(value)) === value;\n } catch {\n return false;\n }\n }\n};\n\n// Backward compatibility - keeping the schema names but as type aliases\nexport type PhoneNumberSchema = PhoneNumber;\nexport type JidSchema = Jid;\nexport type GroupJidSchema = GroupJid;\nexport type GroupInviteCodeSchema = GroupInviteCode;\nexport type MessageIdSchema = MessageId;\nexport type ChatIdSchema = ChatId;\nexport type ApiNumberSchema = ApiNumber;\nexport type mediaSchema = Media;\n","import { Routes } from \"@/api/routes\";\nimport type { ApiService } from \"@/api/service\";\nimport { validateGroupJid, validateJid } from \"@/schemas/common\";\nimport type { MethodOptions } from \"@/types/api\";\n\nimport type * as Archive from \"./schemas/archive\";\nimport type * as Check from \"./schemas/check\";\nimport type * as DeleteMessage from \"./schemas/delete-message\";\nimport type * as FetchProfilePicture from \"./schemas/fetch-profile-picture\";\nimport type * as FindAll from \"./schemas/find-all\";\nimport type * as FindContacts from \"./schemas/find-contacts\";\nimport type * as FindMessages from \"./schemas/find-messages\";\nimport type * as FindStatusMessage from \"./schemas/find-status-message\";\nimport type * as MarkAsRead from \"./schemas/mark-as-read\";\nimport type * as MarkAsUnread from \"./schemas/mark-as-unread\";\nimport type * as Presence from \"./schemas/presence\";\nimport type * as UpdateMessage from \"./schemas/update-message\";\n\nexport class ChatsModule {\n constructor(private readonly api: ApiService) {}\n\n /**\n * Checks if phone numbers are registered on WhatsApp\n * @param numbers - Array of phone numbers to check\n * @param methodOptions - Method-specific options (instance override)\n */\n async check(\n numbers: Check.CheckOptions,\n methodOptions?: MethodOptions\n ): Promise<Check.CheckResponse> {\n const body = {\n numbers: Array.isArray(numbers) ? numbers : [numbers],\n };\n const response = await this.api.post(Routes.Chats.Check, {\n body,\n ...methodOptions,\n });\n\n return response as Check.CheckResponse;\n }\n\n /**\n * Gets all chats\n * @param methodOptions - Method-specific options (instance override)\n */\n async findAll(\n methodOptions?: MethodOptions\n ): Promise<FindAll.FindAllChatsResponse> {\n const response = await this.api.get(Routes.Chats.FindAll, methodOptions);\n\n return response as FindAll.FindAllChatsResponse;\n }\n\n /**\n * Updates presence status\n * @param params - Presence parameters\n * @param methodOptions - Method-specific options (instance override)\n */\n async updatePresence(\n options: Presence.PresenceOptions,\n methodOptions?: MethodOptions\n ): Promise<void> {\n if (!options.number) {\n throw new Error(\"Number is required\");\n }\n\n if (!validateJid(options.number) && !validateGroupJid(options.number)) {\n options.number = `${options.number}@s.whatsapp.net`;\n }\n\n await this.api.post(Routes.Chats.SendPresence, {\n body: options,\n ...methodOptions,\n });\n }\n\n /**\n * Marks messages as read\n * @param options - Mark as read options\n * @param methodOptions - Method-specific options (instance override)\n */\n async markAsRead(\n options: MarkAsRead.MarkAsReadRequest,\n methodOptions?: MethodOptions\n ): Promise<MarkAsRead.MarkAsReadResponse> {\n const response = await this.api.post(Routes.Chats.MarkAsRead, {\n body: options,\n ...methodOptions,\n });\n\n return response as MarkAsRead.MarkAsReadResponse;\n }\n\n /**\n * Marks messages as unread\n * @param options - Mark as unread options\n * @param methodOptions - Method-specific options (instance override)\n */\n async markAsUnread(\n options: MarkAsUnread.MarkAsUnreadRequest,\n methodOptions?: MethodOptions\n ): Promise<MarkAsUnread.MarkAsUnreadResponse> {\n const response = await this.api.post(Routes.Chats.MarkAsUnread, {\n body: options,\n ...methodOptions,\n });\n\n return response as MarkAsUnread.MarkAsUnreadResponse;\n }\n\n /**\n * Archives a chat\n * @param options - Archive options\n * @param methodOptions - Method-specific options (instance override)\n */\n async archive(\n options: Archive.ArchiveRequest,\n methodOptions?: MethodOptions\n ): Promise<Archive.ArchiveResponse> {\n const response = await this.api.post(Routes.Chats.Archive, {\n body: options,\n ...methodOptions,\n });\n\n return response as Archive.ArchiveResponse;\n }\n\n /**\n * Deletes a message\n * @param options - Delete message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async deleteMessage(\n options: DeleteMessage.DeleteMessageRequest,\n methodOptions?: MethodOptions\n ): Promise<DeleteMessage.DeleteMessageResponse> {\n const response = await this.api.delete(Routes.Chats.DeleteMessage, {\n body: options,\n ...methodOptions,\n });\n\n return response as DeleteMessage.DeleteMessageResponse;\n }\n\n /**\n * Fetches profile picture\n * @param options - Fetch profile picture options\n * @param methodOptions - Method-specific options (instance override)\n */\n async fetchProfilePicture(\n options: FetchProfilePicture.FetchProfilePictureRequest,\n methodOptions?: MethodOptions\n ): Promise<FetchProfilePicture.FetchProfilePictureResponse> {\n const response = await this.api.post(Routes.Chats.FetchProfilePicture, {\n body: options,\n ...methodOptions,\n });\n\n return response as FetchProfilePicture.FetchProfilePictureResponse;\n }\n\n /**\n * Finds contacts\n * @param options - Find contacts options\n * @param methodOptions - Method-specific options (instance override)\n */\n async findContacts(\n options: FindContacts.FindContactsRequest,\n methodOptions?: MethodOptions\n ): Promise<FindContacts.FindContactsResponse> {\n const response = await this.api.post(Routes.Chats.FindContacts, {\n body: options,\n ...methodOptions,\n });\n\n return response as FindContacts.FindContactsResponse;\n }\n\n /**\n * Finds messages\n * @param options - Find messages options\n * @param methodOptions - Method-specific options (instance override)\n */\n async findMessages(\n options: FindMessages.FindMessagesRequest,\n methodOptions?: MethodOptions\n ): Promise<FindMessages.FindMessagesResponse> {\n const response = await this.api.post(Routes.Chats.FindMessages, {\n body: options,\n ...methodOptions,\n });\n\n return response as FindMessages.FindMessagesResponse;\n }\n\n /**\n * Finds status messages\n * @param options - Find status message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async findStatusMessage(\n options: FindStatusMessage.FindStatusMessageRequest,\n methodOptions?: MethodOptions\n ): Promise<FindStatusMessage.FindStatusMessageResponse> {\n const response = await this.api.post(Routes.Chats.FindStatusMessage, {\n body: options,\n ...methodOptions,\n });\n\n return response as FindStatusMessage.FindStatusMessageResponse;\n }\n\n /**\n * Updates a message\n * @param options - Update message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async updateMessage(\n options: UpdateMessage.UpdateMessageRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdateMessage.UpdateMessageResponse> {\n const response = await this.api.put(Routes.Chats.UpdateMessage, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdateMessage.UpdateMessageResponse;\n }\n}\n","import { Routes } from \"@/api/routes\";\nimport type { ApiService } from \"@/api/service\";\nimport type { MethodOptions } from \"@/types/api\";\nimport type { GroupInviteCode, GroupJid } from \"@/types/tags\";\n\nimport type * as AcceptInviteCode from \"./schemas/accept-invite-code\";\nimport type * as Create from \"./schemas/create\";\nimport type * as FetchInviteCode from \"./schemas/fetch-invite-code\";\nimport type * as FindAll from \"./schemas/find-all\";\nimport type * as FindByInviteCode from \"./schemas/find-by-invite-code\";\nimport type * as FindByJid from \"./schemas/find-by-jid\";\nimport type * as FindMembers from \"./schemas/find-members\";\nimport type * as Leave from \"./schemas/leave\";\nimport type * as RevokeInviteCode from \"./schemas/revoke-invite-code\";\nimport type * as SendGroupInvite from \"./schemas/send-group-invite\";\nimport type * as ToggleEphemeral from \"./schemas/toggle-ephemeral\";\nimport type * as UpdateDescription from \"./schemas/update-description\";\nimport type * as UpdateMembers from \"./schemas/update-members\";\nimport type * as UpdatePicture from \"./schemas/update-picture\";\nimport type * as UpdateSetting from \"./schemas/update-setting\";\nimport type * as UpdateSubject from \"./schemas/update-subject\";\n\nexport class GroupsModule {\n constructor(private readonly api: ApiService) {}\n\n /**\n * Gets all groups\n * @param getParticipants - Whether to get participants\n * @param methodOptions - Method-specific options (instance override)\n */\n async findAll(\n getParticipants: false,\n methodOptions?: MethodOptions\n ): Promise<FindAll.FindAllGroupsResponse>;\n async findAll(\n getParticipants: true,\n methodOptions?: MethodOptions\n ): Promise<FindAll.FindAllGroupsWithParticipantsResponse>;\n async findAll(\n getParticipants = false,\n methodOptions?: MethodOptions\n ): Promise<\n | FindAll.FindAllGroupsResponse\n | FindAll.FindAllGroupsWithParticipantsResponse\n > {\n const response = await this.api.get(Routes.Groups.FindAll, {\n params: { getParticipants },\n ...methodOptions,\n });\n\n if (getParticipants) {\n return response as FindAll.FindAllGroupsWithParticipantsResponse;\n }\n return response as FindAll.FindAllGroupsResponse;\n }\n\n /**\n * Gets a group by invite code\n * @param inviteCode - The group invite code (not the URL)\n * @param methodOptions - Method-specific options (instance override)\n */\n async findByInviteCode(\n inviteCode: string | GroupInviteCode,\n methodOptions?: MethodOptions\n ): Promise<FindByInviteCode.FindGroupByInviteCodeResponse> {\n const response = await this.api.get(Routes.Groups.FindByInviteCode, {\n params: { inviteCode: inviteCode as GroupInviteCode },\n ...methodOptions,\n });\n\n return response as FindByInviteCode.FindGroupByInviteCodeResponse;\n }\n\n /**\n * Gets a group by JID\n * @param groupJid - The group JID terminated with \\@g.us\n * @param methodOptions - Method-specific options (instance override)\n */\n async findByJid(\n groupJid: string | GroupJid,\n methodOptions?: MethodOptions\n ): Promise<FindByJid.FindGroupByJidResponse> {\n const response = await this.api.get(Routes.Groups.FindByJid, {\n params: { groupJid: groupJid as GroupJid },\n ...methodOptions,\n });\n\n return response as FindByJid.FindGroupByJidResponse;\n }\n\n async create(\n options: Create.CreateGroupRequest,\n methodOptions?: MethodOptions\n ): Promise<Create.CreateGroupResponse> {\n const response = await this.api.post(Routes.Groups.Create, {\n body: options,\n ...methodOptions,\n });\n\n return response as Create.CreateGroupResponse;\n }\n\n async updatePicture(\n options: UpdatePicture.UpdatePictureRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdatePicture.UpdatePictureResponse> {\n const response = await this.api.post(Routes.Groups.UpdatePicture, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdatePicture.UpdatePictureResponse;\n }\n\n async updateSubject(\n options: UpdateSubject.UpdateSubjectRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdateSubject.UpdateSubjectResponse> {\n const response = await this.api.post(Routes.Groups.UpdateSubject, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdateSubject.UpdateSubjectResponse;\n }\n\n async updateDescription(\n options: UpdateDescription.UpdateDescriptionRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdateDescription.UpdateDescriptionResponse> {\n const response = await this.api.post(Routes.Groups.UpdateDescription, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdateDescription.UpdateDescriptionResponse;\n }\n\n async fetchInviteCode(\n options: FetchInviteCode.FetchInviteCodeRequest,\n methodOptions?: MethodOptions\n ): Promise<FetchInviteCode.FetchInviteCodeResponse> {\n const response = await this.api.get(Routes.Groups.FetchInviteCode, {\n params: options,\n ...methodOptions,\n });\n\n return response as FetchInviteCode.FetchInviteCodeResponse;\n }\n\n async acceptInviteCode(\n options: AcceptInviteCode.AcceptInviteCodeRequest,\n methodOptions?: MethodOptions\n ): Promise<AcceptInviteCode.AcceptInviteCodeResponse> {\n const response = await this.api.post(Routes.Groups.AcceptInviteCode, {\n body: options,\n ...methodOptions,\n });\n\n return response as AcceptInviteCode.AcceptInviteCodeResponse;\n }\n\n async revokeInviteCode(\n options: RevokeInviteCode.RevokeInviteCodeRequest,\n methodOptions?: MethodOptions\n ): Promise<RevokeInviteCode.RevokeInviteCodeResponse> {\n const response = await this.api.post(Routes.Groups.RevokeInviteCode, {\n body: options,\n ...methodOptions,\n });\n\n return response as RevokeInviteCode.RevokeInviteCodeResponse;\n }\n\n async sendGroupInvite(\n options: SendGroupInvite.SendGroupInviteRequest,\n methodOptions?: MethodOptions\n ): Promise<SendGroupInvite.SendGroupInviteResponse> {\n const response = await this.api.post(Routes.Groups.SendGroupInvite, {\n body: options,\n ...methodOptions,\n });\n\n return response as SendGroupInvite.SendGroupInviteResponse;\n }\n\n async findMembers(\n options: FindMembers.FindMembersRequest,\n methodOptions?: MethodOptions\n ): Promise<FindMembers.FindMembersResponse> {\n const response = await this.api.get(Routes.Groups.FindMembers, {\n params: options,\n ...methodOptions,\n });\n\n return response as FindMembers.FindMembersResponse;\n }\n\n async updateMembers(\n options: UpdateMembers.UpdateMembersRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdateMembers.UpdateMembersResponse> {\n const response = await this.api.post(Routes.Groups.UpdateMembers, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdateMembers.UpdateMembersResponse;\n }\n\n async updateSetting(\n options: UpdateSetting.UpdateSettingRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdateSetting.UpdateSettingResponse> {\n const response = await this.api.post(Routes.Groups.UpdateSetting, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdateSetting.UpdateSettingResponse;\n }\n\n async toggleEphemeral(\n options: ToggleEphemeral.ToggleEphemeralRequest,\n methodOptions?: MethodOptions\n ): Promise<ToggleEphemeral.ToggleEphemeralResponse> {\n const response = await this.api.post(Routes.Groups.ToggleEphemeral, {\n body: options,\n ...methodOptions,\n });\n\n return response as ToggleEphemeral.ToggleEphemeralResponse;\n }\n\n async leave(\n options: Leave.LeaveRequest,\n methodOptions?: MethodOptions\n ): Promise<Leave.LeaveResponse> {\n const response = await this.api.post(Routes.Groups.Leave, {\n body: options,\n ...methodOptions,\n });\n\n return response as Leave.LeaveResponse;\n }\n}\n","import { Routes } from \"@/api/routes\";\nimport type { ApiService } from \"@/api/service\";\n\nimport type * as Connect from \"./schemas/connect\";\nimport type * as ConnectionState from \"./schemas/connection-state\";\nimport type * as Create from \"./schemas/create\";\nimport type * as Delete from \"./schemas/delete\";\nimport type * as FetchAll from \"./schemas/fetch-all\";\nimport type * as Logout from \"./schemas/logout\";\nimport type * as Restart from \"./schemas/restart\";\nimport type * as SetPresence from \"./schemas/set-presence\";\n\nimport type { MethodOptions } from \"@/types/api\";\n\nexport class InstanceModule {\n constructor(private readonly api: ApiService) {}\n\n async create(\n options: Create.CreateInstanceRequest\n ): Promise<Create.CreateInstanceResponse> {\n const response = await this.api.post(Routes.Instance.Create, {\n body: options,\n isInstanceUrl: false,\n });\n return response as Create.CreateInstanceResponse;\n }\n\n async connect(\n options: Connect.ConnectRequest,\n methodOptions?: MethodOptions\n ): Promise<Connect.ConnectResponse> {\n const { instanceName } = options;\n const instance = methodOptions?.instance ?? instanceName;\n if (!instance) {\n throw new Error(\"Instance name is required\");\n }\n const response = await this.api.get(Routes.Instance.Connect, {\n instance,\n isInstanceUrl: true,\n });\n return response as Connect.ConnectResponse;\n }\n\n async connectionState(\n options: ConnectionState.ConnectionStateRequest,\n methodOptions?: MethodOptions\n ): Promise<ConnectionState.ConnectionStateResponse> {\n const { instanceName } = options;\n const instance = methodOptions?.instance ?? instanceName;\n if (!instance) {\n throw new Error(\"Instance name is required\");\n }\n const response = await this.api.get(Routes.Instance.ConnectionState, {\n instance,\n isInstanceUrl: true,\n });\n return response as ConnectionState.ConnectionStateResponse;\n }\n\n async logout(\n options: Logout.LogoutRequest,\n methodOptions?: MethodOptions\n ): Promise<Logout.LogoutResponse> {\n const { instanceName } = options;\n const instance = methodOptions?.instance ?? instanceName;\n if (!instance) {\n throw new Error(\"Instance name is required\");\n }\n const response = await this.api.delete(Routes.Instance.Logout, {\n instance,\n isInstanceUrl: true,\n });\n return response as Logout.LogoutResponse;\n }\n\n async delete(options: Delete.DeleteRequest): Promise<Delete.DeleteResponse> {\n const response = await this.api.delete(Routes.Instance.Delete, {\n instance: options.instanceName,\n isInstanceUrl: true,\n });\n return response as Delete.DeleteResponse;\n }\n\n async restart(\n options: Restart.RestartRequest,\n methodOptions?: MethodOptions\n ): Promise<Restart.RestartResponse> {\n const { instanceName } = options;\n const instance = methodOptions?.instance ?? instanceName;\n if (!instance) {\n throw new Error(\"Instance name is required\");\n }\n const response = await this.api.post(Routes.Instance.Restart, {\n instance,\n isInstanceUrl: true,\n });\n return response as Restart.RestartResponse;\n }\n\n async fetchAll(\n options?: FetchAll.FetchAllRequest\n ): Promise<FetchAll.FetchAllResponse> {\n const response = await this.api.get(Routes.Instance.FetchAll, {\n params: options,\n isInstanceUrl: false,\n });\n return response as FetchAll.FetchAllResponse;\n }\n\n async setPresence(\n options: SetPresence.SetPresenceRequest,\n methodOptions?: MethodOptions\n ): Promise<SetPresence.SetPresenceResponse> {\n const { instanceName, ...rest } = options;\n const instance = methodOptions?.instance ?? instanceName;\n if (!instance) {\n throw new Error(\"Instance name is required\");\n }\n const response = await this.api.post(Routes.Instance.SetPresence, {\n body: rest,\n instance,\n isInstanceUrl: true,\n });\n return response as SetPresence.SetPresenceResponse;\n }\n}\n","import { Routes } from \"@/api/routes\";\nimport type { ApiService } from \"@/api/service\";\nimport type { MethodOptions } from \"@/types/api\";\n\nimport type * as Audio from \"./schemas/audio\";\nimport type * as Contact from \"./schemas/contact\";\nimport type * as Document from \"./schemas/document\";\nimport type * as Image from \"./schemas/image\";\nimport type * as List from \"./schemas/list\";\nimport type * as Location from \"./schemas/location\";\nimport type * as Reaction from \"./schemas/reaction\";\nimport type * as Status from \"./schemas/status\";\nimport type * as Sticker from \"./schemas/sticker\";\nimport type * as Template from \"./schemas/template\";\nimport type * as Text from \"./schemas/text\";\nimport type * as Video from \"./schemas/video\";\nimport type * as Voice from \"./schemas/voice\";\n\nexport class MessagesModule {\n constructor(private readonly api: ApiService) {}\n\n /**\n * Sends a text message\n * @param options - Text message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendText(\n options: Text.TextMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Text.TextMessageResponse> {\n const response = await this.api.post(Routes.Message.SendText, {\n body: options,\n ...methodOptions,\n });\n\n return response as Text.TextMessageResponse;\n }\n\n /**\n * Sends an image\n * @param options - Image message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendImage(\n options: Image.ImageMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Image.ImageMessageResponse> {\n options.mediatype = \"image\";\n const response = await this.api.post(Routes.Message.SendMedia, {\n body: options,\n ...methodOptions,\n });\n\n return response as Image.ImageMessageResponse;\n }\n\n /**\n * Sends a video\n * @param options - Video message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendVideo(\n options: Video.VideoMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Video.VideoMessageResponse> {\n options.mediatype = \"video\";\n const response = await this.api.post(Routes.Message.SendMedia, {\n body: options,\n ...methodOptions,\n });\n\n return response as Video.VideoMessageResponse;\n }\n\n /**\n * Sends a document\n * @param options - Document message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendDocument(\n options: Document.DocumentMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Document.DocumentMessageResponse> {\n options.mediatype = \"document\";\n const response = await this.api.post(Routes.Message.SendMedia, {\n body: options,\n ...methodOptions,\n });\n\n return response as Document.DocumentMessageResponse;\n }\n\n /**\n * Sends an audio\n * @param options - Audio message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendAudio(\n options: Audio.AudioMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Audio.AudioMessageResponse> {\n options.mediatype = \"audio\";\n const response = await this.api.post(Routes.Message.SendMedia, {\n body: options,\n ...methodOptions,\n });\n\n return response as Audio.AudioMessageResponse;\n }\n\n /**\n * Sends a voice message\n * @param options - Voice message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendVoice(\n options: Voice.VoiceMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Voice.VoiceMessageResponse> {\n const response = await this.api.post(Routes.Message.SendVoice, {\n body: options,\n ...methodOptions,\n });\n\n return response as Voice.VoiceMessageResponse;\n }\n\n /**\n * Sends a sticker\n * @param options - Sticker message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendSticker(\n options: Sticker.StickerMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Sticker.StickerMessageResponse> {\n const response = await this.api.post(Routes.Message.SendSticker, {\n body: options,\n ...methodOptions,\n });\n\n return response as Sticker.StickerMessageResponse;\n }\n\n /**\n * Sends a location\n * @param options - Location message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendLocation(\n options: Location.LocationMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Location.LocationMessageResponse> {\n const response = await this.api.post(Routes.Message.SendLocation, {\n body: options,\n ...methodOptions,\n });\n\n return response as Location.LocationMessageResponse;\n }\n\n /**\n * Sends a contact\n * @param options - Contact message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendContact(\n options: Contact.ContactMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Contact.ContactMessageResponse> {\n const response = await this.api.post(Routes.Message.SendContact, {\n body: options,\n ...methodOptions,\n });\n\n return response as Contact.ContactMessageResponse;\n }\n\n /**\n * Sends a reaction\n * @param options - Reaction message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendReaction(\n options: Reaction.ReactionMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Reaction.ReactionMessageResponse> {\n const response = await this.api.post(Routes.Message.SendReaction, {\n body: options,\n ...methodOptions,\n });\n\n return response as Reaction.ReactionMessageResponse;\n }\n\n /**\n * Sends a template\n * @param options - Template message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendTemplate(\n options: Template.TemplateMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Template.TemplateMessageResponse> {\n const response = await this.api.post(Routes.Message.SendTemplate, {\n body: options,\n ...methodOptions,\n });\n\n return response as Template.TemplateMessageResponse;\n }\n\n /**\n * Sends a status\n * @param options - Status message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendStatus(\n options: Status.StatusMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<Status.StatusMessageResponse> {\n const response = await this.api.post(Routes.Message.SendStatus, {\n body: options,\n ...methodOptions,\n });\n\n return response as Status.StatusMessageResponse;\n }\n\n /**\n * Sends a list\n * @param options - List message options\n * @param methodOptions - Method-specific options (instance override)\n */\n async sendList(\n options: List.ListMessageOptions,\n methodOptions?: MethodOptions\n ): Promise<List.ListMessageResponse> {\n const response = await this.api.post(Routes.Message.SendList, {\n body: options,\n ...methodOptions,\n });\n\n return response as List.ListMessageResponse;\n }\n}\n","import { Routes } from \"@/api/routes\";\nimport type { ApiService } from \"@/api/service\";\nimport type { MethodOptions } from \"@/types/api\";\n\nimport type * as FetchBusinessProfile from \"./schemas/fetch-business-profile\";\nimport type * as FetchPrivacySettings from \"./schemas/fetch-privacy-settings\";\nimport type * as FetchProfile from \"./schemas/fetch-profile\";\nimport type * as RemovePicture from \"./schemas/remove-picture\";\nimport type * as UpdateName from \"./schemas/update-name\";\nimport type * as UpdatePicture from \"./schemas/update-picture\";\nimport type * as UpdatePrivacySettings from \"./schemas/update-privacy-settings\";\nimport type * as UpdateStatus from \"./schemas/update-status\";\n\nexport class ProfileModule {\n constructor(private readonly api: ApiService) {}\n\n async fetchBusinessProfile(\n options: FetchBusinessProfile.FetchBusinessProfileRequest,\n methodOptions?: MethodOptions\n ): Promise<FetchBusinessProfile.FetchBusinessProfileResponse> {\n const response = await this.api.post(Routes.Profile.FetchBusinessProfile, {\n body: options,\n ...methodOptions,\n });\n\n return response as FetchBusinessProfile.FetchBusinessProfileResponse;\n }\n\n async fetchProfile(\n options: FetchProfile.FetchProfileRequest,\n methodOptions?: MethodOptions\n ): Promise<FetchProfile.FetchProfileResponse> {\n const response = await this.api.post(Routes.Profile.FetchProfile, {\n body: options,\n ...methodOptions,\n });\n\n return response as FetchProfile.FetchProfileResponse;\n }\n\n async updateName(\n options: UpdateName.UpdateNameRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdateName.UpdateNameResponse> {\n const response = await this.api.post(Routes.Profile.UpdateName, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdateName.UpdateNameResponse;\n }\n\n async updateStatus(\n options: UpdateStatus.UpdateStatusRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdateStatus.UpdateStatusResponse> {\n const response = await this.api.post(Routes.Profile.UpdateStatus, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdateStatus.UpdateStatusResponse;\n }\n\n async updatePicture(\n options: UpdatePicture.UpdatePictureRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdatePicture.UpdatePictureResponse> {\n const response = await this.api.post(Routes.Profile.UpdatePicture, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdatePicture.UpdatePictureResponse;\n }\n\n async removePicture(\n methodOptions?: MethodOptions\n ): Promise<RemovePicture.RemovePictureResponse> {\n const response = await this.api.delete(\n Routes.Profile.RemovePicture,\n methodOptions\n );\n\n return response as RemovePicture.RemovePictureResponse;\n }\n\n async fetchPrivacySettings(\n methodOptions?: MethodOptions\n ): Promise<FetchPrivacySettings.FetchPrivacySettingsResponse> {\n const response = await this.api.get(\n Routes.Profile.FetchPrivacySettings,\n methodOptions\n );\n\n return response as FetchPrivacySettings.FetchPrivacySettingsResponse;\n }\n\n async updatePrivacySettings(\n options: UpdatePrivacySettings.UpdatePrivacySettingsRequest,\n methodOptions?: MethodOptions\n ): Promise<UpdatePrivacySettings.UpdatePrivacySettingsResponse> {\n const response = await this.api.put(Routes.Profile.UpdatePrivacySettings, {\n body: options,\n ...methodOptions,\n });\n\n return response as UpdatePrivacySettings.UpdatePrivacySettingsResponse;\n }\n}\n","import { Routes } from \"@/api/routes\";\nimport type { ApiService } from \"@/api/service\";\nimport type { MethodOptions } from \"@/types/api\";\n\nimport type * as Find from \"./schemas/find\";\nimport type * as Set from \"./schemas/set\";\n\nexport class SettingsModule {\n constructor(private readonly api: ApiService) {}\n\n async set(\n options: Set.SetRequest,\n methodOptions?: MethodOptions\n ): Promise<Set.SetResponse> {\n const response = await this.api.post(Routes.Settings.Set, {\n body: options,\n ...methodOptions,\n });\n\n return response as Set.SetResponse;\n }\n\n async find(methodOptions?: MethodOptions): Promise<Find.FindResponse> {\n const response = await this.api.get(Routes.Settings.Find, methodOptions);\n\n return response as Find.FindResponse;\n }\n}\n","import { Routes } from \"@/api/routes\";\nimport type { ApiService } from \"@/api/service\";\nimport type { MethodOptions } from \"@/types/api\";\n\nimport type * as Find from \"./schemas/find\";\nimport type * as Set from \"./schemas/set\";\n\nexport class WebhookModule {\n constructor(private readonly api: ApiService) {}\n\n async set(\n options: Set.SetRequest,\n methodOptions?: MethodOptions\n ): Promise<Set.SetResponse> {\n const response = await this.api.post(Routes.Webhook.Set, {\n body: options,\n ...methodOptions,\n });\n\n return response as Set.SetResponse;\n }\n\n async find(methodOptions?: MethodOptions): Promise<Find.FindResponse> {\n const response = await this.api.get(Routes.Webhook.Find, methodOptions);\n\n return response as Find.FindResponse;\n }\n}\n"],"mappings":"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","names":[]}