{"version":3,"sources":["../../../src/api/routes.ts","../../../src/modules/instance/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    GetBase64FromMediaMessage: \"chat/getBase64FromMediaMessage\",\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","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"],"mappings":"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","names":[]}