wabot
Version:
Whatsapp Bot Module for automate response and interact whit users
3,718 lines (1,133 loc) • 146 kB
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Wabot Documentation WABOT</title>
<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script src="./build/entry.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link href="https://fonts.googleapis.com/css?family=Roboto:100,400,700|Inconsolata,700" rel="stylesheet">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
<link type="text/css" rel="stylesheet" href="https://jmblog.github.io/color-themes-for-google-code-prettify/themes/tomorrow-night.min.css">
<link type="text/css" rel="stylesheet" href="styles/app.min.css">
<link type="text/css" rel="stylesheet" href="styles/iframe.css">
<link type="text/css" rel="stylesheet" href="">
<script async defer src="https://buttons.github.io/buttons.js"></script>
</head>
<body class="layout small-header">
<div id="stickyNavbarOverlay"></div>
<div class="top-nav">
<div class="inner">
<a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
<div class="logo">
<a href="index.html">
<h1 class="navbar-item">Wabot Documentation</h1>
</a>
</div>
<div class="menu">
<div class="navigation">
<a
href="index.html"
class="link"
>
API Documentation
</a>
<a
class="link user-link "
href="https://github.com/luiscruzga/wabot"
>
Github
</a>
<a
class="link user-link "
href="https://github.com/luiscruzga/wabot/blob/master/example/test.js"
>
Example
</a>
</div>
</div>
</div>
</div>
<div id="main">
<div
class="sidebar "
id="sidebarNav"
>
<div class="search-wrapper">
<input id="search" type="text" placeholder="Search docs..." class="input">
</div>
<nav>
<h2><a href="index.html">Documentation</a></h2><div class="category"><h3>Namespaces</h3><ul><li><a href="Plugins.html">Plugins</a></li></ul><h3>Classes</h3><ul><li><a href="WABOT.html">WABOT</a></li></ul><h3>Events</h3><ul><li><a href="WABOT.html#event:command">command</a></li><li><a href="WABOT.html#event:message">message</a></li><li><a href="WABOT.html#event:onAddedToGroup">onAddedToGroup</a></li><li><a href="WABOT.html#event:onBattery">onBattery</a></li><li><a href="WABOT.html#event:onMessageFromBloqued">onMessageFromBloqued</a></li><li><a href="WABOT.html#event:onMessageFromNoPrivileges">onMessageFromNoPrivileges</a></li><li><a href="WABOT.html#event:onMessageMediaUploadedEvent">onMessageMediaUploadedEvent</a></li><li><a href="WABOT.html#event:onParticipantsChanged">onParticipantsChanged</a></li><li><a href="WABOT.html#event:onPlugged">onPlugged</a></li><li><a href="WABOT.html#event:onRemovedFromGroup">onRemovedFromGroup</a></li><li><a href="WABOT.html#event:onStateChanged">onStateChanged</a></li><li><a href="WABOT.html#event:ready">ready</a></li><li><a href="WABOT.html#event:vcard">vcard</a></li><li><a href="WABOT.html#event:waitNewAcknowledgements">waitNewAcknowledgements</a></li></ul></div>
</nav>
</div>
<div class="core" id="main-content-wrapper">
<div class="content">
<header class="page-title">
<p>Class</p>
<h1>WABOT</h1>
</header>
<section>
<header>
<h2><span class="attribs"><span class="type-signature"></span></span>WABOT<span class="signature">(opts)</span><span class="type-signature"></span></h2>
</header>
<article>
<div class="container-overview">
<div class='vertical-section'>
<div class="members">
<div class="member">
<div class=name>
<span class="tag">Constructor</span>
</div>
<h4 class="name" id="WABOT">
<a class="href-link" href="#WABOT">#</a>
<span class="code-name">
new WABOT<span class="signature">(opts)</span><span class="type-signature"></span>
</span>
</h4>
<div class="description">
<p>WABOT class for interact whit whatsapp web</p>
</div>
<h5>Parameters:</h5>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>opts</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Wabot options</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Puppeteer launch options</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.WAUrl</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Whatsapp Web Url</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.sessionPath</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Path to save the session info for restore this in the future</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.viewBrowser</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Show browser (headless)</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.opendevtools</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Show devtools (console)</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.userAgent</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>User Agent for web browser</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.width</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Width for web browser</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.heigth</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Height for web browser</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.dowloadChromeVersion</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Download chromium browser or use local google chome</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.chromeVersion</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Version of chromium to download</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.localChromePath</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Google chrome executable path</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.getInitScreenshot</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Allows you to take a screenshot when you start WhatsApp in order to detect problems when running in headless mode</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.localChromePath</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>File name to save the screenshot</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>puppeteerConfig.args</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Args to open the web browser</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Execution and internal options</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.showContent</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Display chats in browser</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.debug</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Debug mode for view console logs</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.removeBgApis</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>Api keys for https://www.remove.bg</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.plugins</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Options for plugins config</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.plugins.folder</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Folder containing the plugins</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.plugins.plugins</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>Array containing the plugin names to use</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.plugins.setup</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Configuration of each plugin</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Options for control chats</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.reponseUsers</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Control response to users</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.simulateTyping</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Simulate typing in chat</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.timeSimulate</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Time in ms for simulate typing</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.contorlExecutions</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Control chats to enqueue messages</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.maxExecutions</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Max messages to process in the same time</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.timeInterval</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Time in seconds to queue messages</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.timePending</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Time in minutes to search for pending messages</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.sendSeen</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Send seen ticket</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.sendSeenFull</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Send seen ticket to all pending messages on login</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.executions.intervalSendSeen</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Time in minutes for search pending messages to send seen</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.bann</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Bann options</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.bann.active</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Control bann users</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.bann.timeInterval</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Time in seconds to validate spam messages</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.bann.maxBann</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Maximum number of messages allowed in the indicated amount of time</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.bann.timeBann</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Time in minutes for temporary ban</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.bann.timeInactive</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>Time in minutes to release banned users who are inactive for the specified time</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.bann.whiteList</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>List of users who will not be banned</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.messages</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Message settings</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.messages.userBanned</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Message to display when a user is banned</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.messages.groupBanned</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Message to display when a group is banned</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.messages.privileges</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Message to display when you do not have privileges to use the bot</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.blocked</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>List of users who cannot use the bot</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.whiteList</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>List of users who can use the bot</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands</code></td>
<td class="type">
<span class="param-type">Array.<object></span>
</td>
<td class="description last"><p>List of commands to evaluate in user messages</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.name</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Name of the command</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.contains</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>Contains word on message</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.exact</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>Message is the same as what is contained here</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.params</code></td>
<td class="type">
<span class="param-type">Array.<object></span>
</td>
<td class="description last"><p>Parameters to require</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.params.name</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Name of the param</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.params.isNumber</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Is a number param</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.params.request</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>Questions to request the parameter</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.params.values</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>Allowed values. If any is allowed, "any" must be indicated</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>intentConfig.commands.params.badResponse</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
</td>
<td class="description last"><p>Messages to send in case of illegal values</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>session</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"><p>Object containing session information. Can be used to restore the session.</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>session.WABrowserId</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>session.WASecretBundle</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>session.WAToken1</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>session.WAToken2</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line30">line 30</a>
</span>
</p>
</dl>
<div class="method-parameter columns">
<div class="column is-2"><label>Fires:</label></div>
<div class="column is-10">
<ul>
<li><a href="WABOT.html#event:ready">WABOT#event:ready</a></li>
<li><a href="WABOT.html#event:onStateChanged">WABOT#event:onStateChanged</a></li>
<li><a href="WABOT.html#event:onMessageFromBloqued">WABOT#event:onMessageFromBloqued</a></li>
<li><a href="WABOT.html#event:onMessageFromNoPrivileges">WABOT#event:onMessageFromNoPrivileges</a></li>
<li><a href="WABOT.html#event:waitNewAcknowledgements">WABOT#event:waitNewAcknowledgements</a></li>
<li><a href="WABOT.html#event:onBattery">WABOT#event:onBattery</a></li>
<li><a href="WABOT.html#event:onPlugged">WABOT#event:onPlugged</a></li>
<li><a href="WABOT.html#event:onRemovedFromGroup">WABOT#event:onRemovedFromGroup</a></li>
<li><a href="WABOT.html#event:onParticipantsChanged">WABOT#event:onParticipantsChanged</a></li>
<li><a href="WABOT.html#event:onMessageMediaUploadedEvent">WABOT#event:onMessageMediaUploadedEvent</a></li>
<li><a href="WABOT.html#event:vcard">WABOT#event:vcard</a></li>
<li><a href="WABOT.html#event:message">WABOT#event:message</a></li>
<li><a href="WABOT.html#event:command">WABOT#event:command</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<h3 class="subsection-title">Extends</h3>
<ul>
<li>EventEmitter</li>
</ul>
<div class='vertical-section'>
<h1>Methods</h1>
<div class="members">
<div class="member">
<h4 class="name" id="archiveChat">
<a class="href-link" href="#archiveChat">#</a>
<span class='tag'>async</span>
<span class="code-name">
archiveChat<span class="signature">()</span><span class="type-signature"> → {boolean}</span>
</span>
</h4>
<div class="description">
<p>Enables and returns the archive state of the Chat</p>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line1091">line 1091</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">boolean</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="archiveChat">
<a class="href-link" href="#archiveChat">#</a>
<span class='tag'>async</span>
<span class="code-name">
archiveChat<span class="signature">()</span><span class="type-signature"> → {boolean}</span>
</span>
</h4>
<div class="description">
<p>Enables and returns the archive state of the Chat</p>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line1158">line 1158</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">boolean</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="createGroup">
<a class="href-link" href="#createGroup">#</a>
<span class='tag'>async</span>
<span class="code-name">
createGroup<span class="signature">(name, contactsId)</span><span class="type-signature"> → {Object|string|Object.<string, string>}</span>
</span>
</h4>
<div class="description">
<p>Create a new group</p>
</div>
<h5>Parameters:</h5>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>group title</p></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code>contactsId</code></td>
<td class="type">
<span class="param-type">Array.<(Contact|string)></span>
</td>
<td class="description last"><p>an array of Contacts or contact IDs to add to the group</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line1014">line 1014</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='param-desc column is-7'><p>createRes</p></div>
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Object</span>
</div>
</div>
<div class="columns">
<div class='param-desc column is-7'><p>createRes.gid - ID for the group that was just created</p></div>
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">string</span>
</div>
</div>
<div class="columns">
<div class='param-desc column is-7'><p>createRes.missingParticipants - participants that were not added to the group. Keys represent the ID for participant that was not added and its value is a status code that represents the reason why participant could not be added. This is usually 403 if the user's privacy settings don't allow you to add them to groups.</p></div>
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Object.<string, string></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="downloadFile">
<a class="href-link" href="#downloadFile">#</a>
<span class='tag'>async</span>
<span class="code-name">
downloadFile<span class="signature">(idMessage)</span><span class="type-signature"> → {Promise.<string>}</span>
</span>
</h4>
<div class="description">
<p>Download file from message received from others users</p>
</div>
<h5>Parameters:</h5>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>idMessage</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Message id containing the file to download</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line642">line 642</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='param-desc column is-7'><p>file in base64 or error message</p></div>
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Promise.<string></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getAllChats">
<a class="href-link" href="#getAllChats">#</a>
<span class='tag'>async</span>
<span class="code-name">
getAllChats<span class="signature">()</span><span class="type-signature"> → {Promise.<Array.<Object>>}</span>
</span>
</h4>
<div class="description">
<p>Get all chats</p>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line948">line 948</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Promise.<Array.<Object>></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getAllChatsWithNewMsg">
<a class="href-link" href="#getAllChatsWithNewMsg">#</a>
<span class='tag'>async</span>
<span class="code-name">
getAllChatsWithNewMsg<span class="signature">()</span><span class="type-signature"> → {Promise.<Array.<Object>>}</span>
</span>
</h4>
<div class="description">
<p>Get all chats with pending messages</p>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line956">line 956</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Promise.<Array.<Object>></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getAllContacts">
<a class="href-link" href="#getAllContacts">#</a>
<span class='tag'>async</span>
<span class="code-name">
getAllContacts<span class="signature">(contactId)</span><span class="type-signature"> → {Promise.<Array.<Contact>>}</span>
</span>
</h4>
<div class="description">
<p>Gets the list of all users</p>
</div>
<h5>Parameters:</h5>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>contactId</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line1023">line 1023</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Promise.<Array.<Contact>></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getAllGroupMetadata">
<a class="href-link" href="#getAllGroupMetadata">#</a>
<span class='tag'>async</span>
<span class="code-name">
getAllGroupMetadata<span class="signature">()</span><span class="type-signature"> → {Array|*}</span>
</span>
</h4>
<div class="description">
<p>Fetches all group metadata objects from store</p>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line992">line 992</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='param-desc column is-7'><p>List of group metadata</p></div>
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Array</span>
|
<span class="param-type">*</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getAllUnreadMessages">
<a class="href-link" href="#getAllUnreadMessages">#</a>
<span class='tag'>async</span>
<span class="code-name">
getAllUnreadMessages<span class="signature">()</span><span class="type-signature"> → {Promise.<Array.<Object>>}</span>
</span>
</h4>
<div class="description">
<p>Get all unread messages</p>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line983">line 983</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Promise.<Array.<Object>></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getBatteryLevel">
<a class="href-link" href="#getBatteryLevel">#</a>
<span class='tag'>async</span>
<span class="code-name">
getBatteryLevel<span class="signature">()</span><span class="type-signature"> → {number}</span>
</span>
</h4>
<div class="description">
<p>Get current battery percentage and charging status for the attached device</p>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line940">line 940</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='param-desc column is-7'><p>battery - The current battery percentage</p></div>
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">number</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getChatById">
<a class="href-link" href="#getChatById">#</a>
<span class='tag'>async</span>
<span class="code-name">
getChatById<span class="signature">(chatId)</span><span class="type-signature"> → {Promise.<Chat>}</span>
</span>
</h4>
<div class="description">
<p>Get chat instance by ID</p>
</div>
<h5>Parameters:</h5>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>chatId</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line965">line 965</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Promise.<Chat></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getContactById">
<a class="href-link" href="#getContactById">#</a>
<span class='tag'>async</span>
<span class="code-name">
getContactById<span class="signature">(contactId)</span><span class="type-signature"> → {Promise.<Contact>}</span>
</span>
</h4>
<div class="description">
<p>Get contact instance by ID</p>
</div>
<h5>Parameters:</h5>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>contactId</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line1041">line 1041</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<div class="columns">
<div class='column is-5 has-text-left'>
<label>Type: </label>
<span class="param-type">Promise.<Contact></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getGroupInviteLink">
<a class="href-link" href="#getGroupInviteLink">#</a>
<span class='tag'>async</span>
<span class="code-name">
getGroupInviteLink<span class="signature">(chatId)</span><span class="type-signature"> → {Promise.<string>}</span>
</span>
</h4>
<div class="description">
<p>Get the invite code's group</p>
</div>
<h5>Parameters:</h5>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>chatId</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
<p class="tag-source">
<a href="src_WABOT.js.html" class="button">View Source</a>
<span>
<a href="src_WABOT.js.html">src/WABOT.js</a>, <a href="src_WABOT.js.html#line1059">line 1059</a>
</span>
</p>
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>Returns:</label></div>
<div class="column is-10">
<di