From d34a80556105f59219d65b20faf11cc6a7a7cb87 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 20 Jul 2024 14:53:02 +0000 Subject: [PATCH 1/2] Release 4.71.15 --- CHANGELOG.md | 14 +++++++++++++- bin/oas-type-schemas.json | 2 +- docs/docs/api/api/Client/classes/Client.md | 6 +----- .../functions/setupDataDirWatcher.md | 11 ----------- .../api/controllers/data_dir_watcher/index.md | 7 ------- docs/docs/api/index.md | 3 +-- docs/docs/api/typedoc-sidebar.cjs | 2 +- package-lock.json | 4 ++-- package.json | 2 +- release.png | Bin 50487 -> 64602 bytes 10 files changed, 20 insertions(+), 31 deletions(-) delete mode 100644 docs/docs/api/controllers/data_dir_watcher/functions/setupDataDirWatcher.md delete mode 100644 docs/docs/api/controllers/data_dir_watcher/index.md diff --git a/CHANGELOG.md b/CHANGELOG.md index a2cad07aa5..a813f232d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -## [4.71.14](https://github.com/open-wa/wa-automate-nodejs/compare/4.71.13...4.71.14) +## [4.71.15](https://github.com/open-wa/wa-automate-nodejs/compare/4.71.14...4.71.15) + +### Fixed + +- 🚑 atttempt auth freezing fix #3231 [`#3231`](https://github.com/open-wa/wa-automate-nodejs/issues/3231) + +### Commits + +- 📝 docs update [`e8d7640`](https://github.com/open-wa/wa-automate-nodejs/commit/e8d76408910507d676ad7b6031c866d7173960d1) +- updated types-only package [`bad14c3`](https://github.com/open-wa/wa-automate-nodejs/commit/bad14c3aac1e9b2f6412ebe8321b45a570383ab9) + +## [4.71.14](https://github.com/open-wa/wa-automate-nodejs/compare/4.71.13...4.71.14) - 2024-06-26 ### Commits +- Release 4.71.14 [`e092bbf`](https://github.com/open-wa/wa-automate-nodejs/commit/e092bbf650fc61a57487d9b621ffa7b1f4498578) - 🐛 fix `sendMp4AsSticker` #3216 [`e059f60`](https://github.com/open-wa/wa-automate-nodejs/commit/e059f6026574279d701415624a8d834d33e338af) - updated types-only package [`31fe831`](https://github.com/open-wa/wa-automate-nodejs/commit/31fe83140f9c8a86dce109c4181debe5a66fbcf0) diff --git a/bin/oas-type-schemas.json b/bin/oas-type-schemas.json index 97a8b651bd..95cf541293 100644 --- a/bin/oas-type-schemas.json +++ b/bin/oas-type-schemas.json @@ -1 +1 @@ -{"ChatServer":{"title":"ChatServer","description":"The suffix used to identify a non-group chat id","enum":["c.us"],"type":"string"},"GroupChatServer":{"title":"GroupChatServer","description":"The suffix used to identify a group chat id","enum":["g.us"],"type":"string"},"WaServers":{"anyOf":[{"$ref":"#/components/schemas/ChatServer","title":"WaServers"},{"$ref":"#/components/schemas/GroupChatServer","title":"WaServers"}],"title":"WaServers","description":"A type alias for all available \"servers\""},"CountryCode":{"enum":[1,7,20,27,30,31,32,33,34,36,39,40,41,43,44,45,46,47,48,49,51,52,53,54,55,56,57,58,60,61,62,63,64,65,66,81,82,84,86,90,91,92,93,94,95,98,211,212,213,216,218,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,248,249,250,251,252,253,254,255,256,257,258,260,261,262,263,264,265,266,267,268,269,290,291,297,298,299,350,351,352,353,354,355,356,357,358,359,370,371,372,373,374,375,376,377,378,380,381,382,383,385,386,387,389,420,421,423,500,501,502,503,504,505,506,507,508,509,590,591,592,593,594,595,596,597,598,599,670,672,673,674,675,676,677,678,679,680,681,682,683,685,686,687,688,689,690,691,692,850,852,853,855,856,880,886,960,961,962,963,964,965,966,967,968,970,971,972,973,974,975,976,977,992,993,994,995,996,998],"title":"CountryCode","description":"Type alias representing all available country codes","type":"number"},"AccountNumber":{"title":"AccountNumber","description":"The account number. It is made up of a country code and then the local number without the preceeding 0. For example, if a UK (+44) wa account is linked to the number 07123456789 then the account number will be 447123456789."},"GroupId":{"title":"GroupId","description":"A new group or community has the format of a random number followed by `@g.us`"},"GroupChatId":{"$ref":"#/components/schemas/GroupId","title":"GroupChatId","description":"A group chat ends with `@g.us` and usually has two parts, the timestamp of when it was created, and the user id of the number that created the group. For example `[creator number]-[timestamp]@g.us`\n\nExample:\n\n`\"447123456789-1445627445@g.us\"`"},"ContactId":{"title":"ContactId","description":"A contact id ends with `@c.us` and only contains the number of the contact. For example, if the country code of a contact is `44` and their number is `7123456789` then the contact id would be `447123456789@c.us`\n\nExample:\n\n`\"447123456789@c.us\"`"},"ChatId":{"anyOf":[{"$ref":"#/components/schemas/ContactId","title":"ChatId"},{"$ref":"#/components/schemas/GroupChatId","title":"ChatId"}],"title":"ChatId","description":"A chat id ends with `@c.us` or `@g.us` for group chats.\n\nExample:\n\nA group chat: `\"447123456789-1445627445@g.us\"`\nA group chat: `\"447123456789@g.us\"`"},"MessageId":{"title":"MessageId","description":"The id of a message. The format is `[boolean]_[ChatId]_[random character string]`\n\nExample:\n\n`\"false_447123456789@c.us_9C4D0965EA5C09D591334AB6BDB07FEB\"`"},"Content":{"title":"Content","description":"This is a generic type alias for the content of a message\n\nExample:\n\n`\"hello!\"`"},"NonSerializedId":{"properties":{"server":{"$ref":"#/components/schemas/WaServers","title":"NonSerializedId.server"},"user":{"$ref":"#/components/schemas/AccountNumber","title":"NonSerializedId.user"},"_serialized":{"$ref":"#/components/schemas/ContactId","title":"NonSerializedId._serialized"}},"required":["server","user","_serialized"],"additionalProperties":false,"title":"NonSerializedId","type":"object"},"DataURL":{"title":"DataURL","description":"Data URLs, URLs prefixed with the data: scheme, allow content creators to embed small files inline in documents. They were formerly known as \"data URIs\" until that name was retired by the WHATWG.\n\n\nData URLs are composed of four parts: a prefix (data:), a MIME type indicating the type of data, an optional base64 token if non-textual, and the data itself:\n\nExample:\n`\"data:[][;base64],\"`\n\nLearn more here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"},"Base64":{"title":"Base64","description":"Base64 is basically a file encoded as a string.\n\nBase64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation. The term Base64 originates from a specific MIME content transfer encoding.\n\nLearn more here: https://developer.mozilla.org/en-US/docs/Glossary/Base64"},"FilePath":{"title":"FilePath","description":"The relative or absolute path of a file\n\nLearn more here: https://www.w3schools.com/html/html_filepaths.asp"},"GetURL":{"title":"GetURL","description":"A URL of a file used with a GET request"},"AdvancedFile":{"anyOf":[{"$ref":"#/components/schemas/DataURL","title":"AdvancedFile"},{"$ref":"#/components/schemas/FilePath","title":"AdvancedFile"},{"$ref":"#/components/schemas/GetURL","title":"AdvancedFile"}],"title":"AdvancedFile","description":"Some file based actions in open-wa are powerful enough to take a dataurl, url or filepath"},"Button":{"properties":{"id":{"title":"Button.id","type":"string"},"text":{"title":"Button.text","type":"string"}},"required":["id","text"],"additionalProperties":false,"title":"Button","type":"object"},"AdvancedButton":{"properties":{"id":{"title":"AdvancedButton.id","type":"string"},"text":{"title":"AdvancedButton.text","type":"string"},"url":{"title":"AdvancedButton.url","type":"string"},"number":{"title":"AdvancedButton.number","type":"string"}},"required":["text"],"additionalProperties":false,"title":"AdvancedButton","type":"object"},"Row":{"properties":{"title":{"title":"Row.title","type":"string"},"description":{"title":"Row.description","type":"string"},"rowId":{"title":"Row.rowId","type":"string"}},"required":["title","description","rowId"],"additionalProperties":false,"title":"Row","type":"object"},"Section":{"properties":{"title":{"title":"Section.title","type":"string"},"rows":{"items":{"$ref":"#/components/schemas/Row","title":"Section.rows.[]"},"title":"Section.rows","type":"array"}},"required":["title","rows"],"additionalProperties":false,"title":"Section","type":"object"},"LocationButtonBody":{"properties":{"lat":{"title":"LocationButtonBody.lat","type":"number"},"lng":{"title":"LocationButtonBody.lng","type":"number"},"caption":{"title":"LocationButtonBody.caption","type":"string"}},"required":["lat","lng","caption"],"additionalProperties":false,"title":"LocationButtonBody","type":"object"},"Call":{"properties":{"id":{"title":"Call.id","description":"The id of the call","type":"string"},"peerJid":{"$ref":"#/components/schemas/ContactId","title":"Call.peerJid","description":"The id of the account calling"},"offerTime":{"title":"Call.offerTime","description":"The epoch timestamp of the call. You will have to multiply this by 1000 to get the actual epoch timestamp","type":"number"},"isVideo":{"title":"Call.isVideo","description":"Whether or not the call is a video call","type":"boolean"},"isGroup":{"title":"Call.isGroup","description":"Whether or not the call is a group call","type":"boolean"},"canHandleLocally":{"title":"Call.canHandleLocally","type":"boolean"},"outgoing":{"title":"Call.outgoing","description":"The direction of the call.","type":"boolean"},"webClientShouldHandle":{"title":"Call.webClientShouldHandle","type":"boolean"},"participants":{"items":{"$ref":"#/components/schemas/ContactId","title":"Call.participants.[]"},"title":"Call.participants","description":"The other participants on a group call","type":"array"},"State":{"$ref":"#/components/schemas/CallState","title":"Call.State","description":"State of the call"}},"required":["id","peerJid","offerTime","isVideo","isGroup","canHandleLocally","outgoing","webClientShouldHandle","participants","State"],"additionalProperties":false,"title":"Call","type":"object"},"BaseChat":{"properties":{"archive":{"title":"BaseChat.archive","type":"boolean"},"changeNumberNewJid":{"title":"BaseChat.changeNumberNewJid"},"changeNumberOldJid":{"title":"BaseChat.changeNumberOldJid"},"contact":{"$ref":"#/components/schemas/Contact","title":"BaseChat.contact","description":"The contact related to this chat"},"groupMetadata":{"$ref":"#/components/schemas/GroupMetadata","title":"BaseChat.groupMetadata","description":"Group metadata for this chat"},"isAnnounceGrpRestrict":{"title":"BaseChat.isAnnounceGrpRestrict","description":"If the chat is a group chat is restricted"},"formattedTitle":{"title":"BaseChat.formattedTitle","description":"The title of the chat","type":"string"},"canSend":{"title":"BaseChat.canSend","description":"Whether your host account is able to send messages to this chat","type":"boolean"},"isReadOnly":{"title":"BaseChat.isReadOnly","description":"Whether the chat is a group chat and the group is restricted","type":"boolean"},"kind":{"title":"BaseChat.kind","type":"string"},"labels":{"title":"BaseChat.labels","description":"The labels attached to this chat."},"lastReceivedKey":{"title":"BaseChat.lastReceivedKey","description":"The ID of the last message received in this chat"},"modifyTag":{"title":"BaseChat.modifyTag","type":"number"},"msgs":{"title":"BaseChat.msgs","description":"The messages in the chat"},"muteExpiration":{"title":"BaseChat.muteExpiration","description":"The expiration timestamp of the chat mute","type":"number"},"name":{"title":"BaseChat.name","description":"The name of the chat","type":"string"},"notSpam":{"title":"BaseChat.notSpam","description":"Whether the chat is marked as spam","type":"boolean"},"pendingMsgs":{"title":"BaseChat.pendingMsgs","description":"Messages that are pending to be sent","type":"boolean"},"pin":{"title":"BaseChat.pin","description":"Whether the chat is pinned","type":"number"},"presence":{"title":"BaseChat.presence","description":"The presence state of the chat participant"},"t":{"title":"BaseChat.t","description":"The timestamp of the last interaction in the chat","type":"number"},"unreadCount":{"title":"BaseChat.unreadCount","description":"The number of undread messages in this chat","type":"number"},"ack":{"title":"BaseChat.ack"},"isOnline":{"title":"BaseChat.isOnline","description":"@deprecated This is unreliable. Use the method [`isChatOnline`](https://open-wa.github.io/wa-automate-nodejs/classes/client.html#ischatonline) instead."},"lastSeen":{"title":"BaseChat.lastSeen","description":"@deprecated This is unreliable. Use the method [`getLastSeen`](https://open-wa.github.io/wa-automate-nodejs/classes/client.html#getlastseen) instead."},"pic":{"title":"BaseChat.pic","description":"URL of the chat picture if available","type":"string"}},"required":["archive","changeNumberNewJid","changeNumberOldJid","contact","groupMetadata","isAnnounceGrpRestrict","isReadOnly","kind","labels","lastReceivedKey","modifyTag","msgs","muteExpiration","name","notSpam","pendingMsgs","pin","presence","t","unreadCount"],"additionalProperties":false,"title":"BaseChat","type":"object"},"SingleChat":{"properties":{"id":{"$ref":"#/components/schemas/ContactId","title":"SingleChat.id","description":"The id of the chat"},"isGroup":{"title":"SingleChat.isGroup","description":"Whether the chat is a group chat","enum":[false],"type":"boolean"}},"required":["id","isGroup"],"additionalProperties":false,"title":"SingleChat","type":"object"},"GroupChat":{"properties":{"id":{"$ref":"#/components/schemas/GroupChatId","title":"GroupChat.id","description":"The id of the chat"},"isGroup":{"title":"GroupChat.isGroup","description":"Whether the chat is a group chat","enum":[true],"type":"boolean"}},"required":["id","isGroup"],"additionalProperties":false,"title":"GroupChat","type":"object"},"Chat":{"anyOf":[{"$ref":"#/components/schemas/SingleChat","title":"Chat"},{"$ref":"#/components/schemas/GroupChat","title":"Chat"}],"title":"Chat"},"LiveLocationChangedEvent":{"properties":{"id":{"title":"LiveLocationChangedEvent.id","type":"string"},"lat":{"title":"LiveLocationChangedEvent.lat","type":"number"},"lng":{"title":"LiveLocationChangedEvent.lng","type":"number"},"speed":{"title":"LiveLocationChangedEvent.speed","type":"number"},"lastUpdated":{"title":"LiveLocationChangedEvent.lastUpdated","type":"number"},"accuracy":{"title":"LiveLocationChangedEvent.accuracy","type":"number"},"degrees":{"title":"LiveLocationChangedEvent.degrees"},"msgId":{"title":"LiveLocationChangedEvent.msgId","description":"The message id that was sent when the liveLocation session was started.","type":"string"}},"required":["id","lat","lng","speed","lastUpdated","accuracy","degrees"],"additionalProperties":false,"title":"LiveLocationChangedEvent","type":"object"},"GroupChatCreationParticipantAddResponse":{"properties":{"code":{"enum":[200,400,403],"title":"GroupChatCreationParticipantAddResponse.code","description":"The resultant status code for adding the participant.\n\n200 if the participant was added successfully during the creation of the group.\n\n403 if the participant does not allow their account to be added to group chats. If you receive a 403, you will also get an `invite_code` and `invite_code_exp`","type":"number"},"invite_code":{"title":"GroupChatCreationParticipantAddResponse.invite_code","description":"If the participant is not allowed to be added to group chats due to their privacy settings, you will receive an `invite_code` which you can send to them via a text.","type":"string"},"invite_code_exp":{"title":"GroupChatCreationParticipantAddResponse.invite_code_exp","description":"The expiry ts of the invite_code. It is a number wrapped in a string, in order to get the proper time you can use this:\n\n```javascript\n new Date(Number(invite_code_exp)*1000)\n```","type":"string"}},"required":["code"],"additionalProperties":false,"title":"GroupChatCreationParticipantAddResponse","type":"object"},"GroupChatCreationResponse":{"properties":{"status":{"enum":[200,400],"title":"GroupChatCreationResponse.status","description":"The resultant status code of the group chat creation.\n\n200 if the group was created successfully.\n\n400 if the initial participant does not exist","type":"number"},"gid":{"$ref":"#/components/schemas/GroupChatId","title":"GroupChatCreationResponse.gid","description":"The group chat id"},"participants":{"items":{"properties":{"ContactId":{"$ref":"#/components/schemas/GroupChatCreationParticipantAddResponse","title":"GroupChatCreationResponse.participants.[].ContactId"}},"additionalProperties":false,"title":"GroupChatCreationResponse.participants.[]","type":"object"},"title":"GroupChatCreationResponse.participants","description":"The initial requested participants and their corresponding add responses","type":"array"}},"required":["status","gid","participants"],"additionalProperties":false,"title":"GroupChatCreationResponse","type":"object"},"EphemeralDuration":{"enum":[86400,604800,7776000],"title":"EphemeralDuration","description":"Ephemeral duration can be 1 day, 7 days or 90 days. The default is 1 day.","type":"number"},"SessionData":{"properties":{"WABrowserId":{"title":"SessionData.WABrowserId","type":"string"},"WASecretBundle":{"title":"SessionData.WASecretBundle","type":"string"},"WAToken1":{"title":"SessionData.WAToken1","type":"string"},"WAToken2":{"title":"SessionData.WAToken2","type":"string"}},"additionalProperties":false,"title":"SessionData","type":"object"},"DevTools":{"properties":{"user":{"title":"DevTools.user","description":"Username for devtools","type":"string"},"pass":{"title":"DevTools.pass","description":"Password for devtools","type":"string"}},"required":["user","pass"],"additionalProperties":false,"title":"DevTools","type":"object"},"EventPayload":{"properties":{"ts":{"title":"EventPayload.ts","type":"number"},"sessionId":{"title":"EventPayload.sessionId","type":"string"},"id":{"title":"EventPayload.id","type":"string"},"event":{"$ref":"#/components/schemas/SimpleListener","title":"EventPayload.event"},"data":{"title":"EventPayload.data"}},"required":["ts","sessionId","id","event","data"],"additionalProperties":{},"title":"EventPayload","type":"object"},"Webhook":{"properties":{"url":{"title":"Webhook.url","description":"The endpoint to send (POST) the event to.","type":"string"},"requestConfig":{"$ref":"#/components/schemas/AxiosRequestConfig","title":"Webhook.requestConfig","description":"The optional AxiosRequestConfig to use for firing the webhook event. This can be useful if you want to add some authentication when POSTing data to your server.\n\nFor example, if your webhook requires the username `admin` and password `1234` for authentication, you can set the requestConfig to:\n```\n{\n auth: {\n username: \"admin\",\n password: \"1234\",\n }\n}\n```\n\nPlease note, for security reasons, this is not returned when listing webhooks however it is returned when registering a webhook for verification purposes."},"id":{"title":"Webhook.id","description":"The ID of the given webhook setup. Use this ID with [[removeWebhook]]","type":"string"},"events":{"items":{"$ref":"#/components/schemas/SimpleListener","title":"Webhook.events.[]"},"title":"Webhook.events","description":"An array of events that are registered to be sent to this webhook.","type":"array"},"ts":{"title":"Webhook.ts","description":"Time when the webhook was registered in epoch time","type":"number"}},"required":["url","id","events","ts"],"additionalProperties":false,"title":"Webhook","type":"object"},"ProxyServerCredentials":{"properties":{"protocol":{"title":"ProxyServerCredentials.protocol","description":"The protocol on which the proxy is running. E.g `http`, `https`, `socks4` or `socks5`. This is optional and can be automatically determined from the address.","type":"string"},"address":{"title":"ProxyServerCredentials.address","description":"Proxy Server address. This can include the port e.g '127.0.0.1:5005'","type":"string"},"username":{"title":"ProxyServerCredentials.username","description":"Username for Proxy Server authentication","type":"string"},"password":{"title":"ProxyServerCredentials.password","description":"Password for Proxy Server authentication","type":"string"}},"required":["address","username","password"],"additionalProperties":false,"title":"ProxyServerCredentials","type":"object"},"ConfigObject":{"properties":{"sessionData":{"anyOf":[{"$ref":"#/components/schemas/SessionData","title":"ConfigObject.sessionData"},{"$ref":"#/components/schemas/Base64","title":"ConfigObject.sessionData"}],"title":"ConfigObject.sessionData","description":"The authentication object (as a JSON object or a base64 encoded string) that is required to migrate a session from one instance to another or to just restart an existing instance.\nThis sessionData is provided in a generated JSON file (it's a json file but contains the JSON data as a base64 encoded string) upon QR scan or an event.\n\nYou can capture the event like so:\n```javascript\nimport {create, ev} from '@open-wa/wa-automate';\n\n ev.on('sessionData.**', async (sessionData, sessionId) =>{\n console.log(sessionId, sessionData)\n })\n\n//or as base64 encoded string\n\n ev.on('sessionDataBase64.**', async (sessionDatastring, sessionId) =>{\n console.log(sessionId, sessionDatastring)\n })\n```\n NOTE: You can set sessionData as an evironmental variable also! The variable name has to be [sessionId (default = 'session) in all caps]_DATA_JSON. You have to make sure to surround your session data with single quotes to maintain the formatting.\n\nFor example:\n\nsessionId = 'session'\n\nTo set env var:\n```bash\n export SESSION_DATA_JSON=`...`\n```\nwhere ... is copied from session.data.json this will be a string most likley starting in `ey...` and ending with `==`\n\nSetting the sessionData in the environmental variable will override the sessionData object in the config."},"browserWSEndpoint":{"title":"ConfigObject.browserWSEndpoint","description":"ALPHA EXPERIMENTAL FEATURE! DO NOT USE IN PRODUCTION, REQUIRES TESTING.\n\nLearn more:\n\nhttps://pptr.dev/#?product=Puppeteer&version=v3.1.0&show=api-puppeteerconnectoptions\n\nhttps://medium.com/@jaredpotter1/connecting-puppeteer-to-existing-chrome-window-8a10828149e0","type":"string"},"useStealth":{"title":"ConfigObject.useStealth","description":"This flag allows you to disable or enable the use of the puppeteer stealth plugin. It is a good idea to use it, however it can cause issues sometimes. Set this to false if you are experiencing `browser.setMaxListeneres` issue. For now the default for this is false.","default":"`false`","type":"boolean"},"sessionDataPath":{"title":"ConfigObject.sessionDataPath","description":"The path relative to the current working directory (i.e where you run the command to start your process). This will be used to store and read your `.data.json` files. defualt to ''","type":"string"},"bypassCSP":{"title":"ConfigObject.bypassCSP","description":"Disable cors see: https://pptr.dev/#?product=Puppeteer&version=v3.0.4&show=api-pagesetbypasscspenabled If you are having an issue with sending media try to set this to true. Otherwise leave it set to false.","default":"`false`","type":"boolean"},"chromiumArgs":{"items":{"title":"ConfigObject.chromiumArgs.[]","type":"string"},"title":"ConfigObject.chromiumArgs","description":"This allows you to pass any array of custom chrome/chromium argument strings to the puppeteer instance.\nYou can find all possible arguements [here](https://peter.sh/experiments/chromium-command-line-switches/).","type":"array"},"skipBrokenMethodsCheck":{"title":"ConfigObject.skipBrokenMethodsCheck","description":"If set to true, skipBrokenMethodsCheck will bypass the health check before startup. It is highly suggested to not set this to true.","default":"`false`","type":"boolean"},"skipUpdateCheck":{"title":"ConfigObject.skipUpdateCheck","description":"If set to true, `skipUpdateCheck` will bypass the latest version check. This saves some time on boot (around 150 ms).","default":"`false`","type":"boolean"},"sessionId":{"title":"ConfigObject.sessionId","description":"This is the name of the session. You have to make sure that this is unique for every session.","default":"`session`","type":"string"},"licenseKey":{"$ref":"#/components/schemas/LicenseKey","title":"ConfigObject.licenseKey","description":"In order to unlock the functionality to send texts to unknown numbers, you need a License key.\nOne License Key is valid for each number. Each License Key starts from £5 per month.\n\nPlease check README for instructions on how to get a license key.\n\nNotes:\n1. You can change the number assigned to that License Key at any time, just message me the new number on the private discord channel.\n2. In order to cancel your License Key, simply stop your membership."},"customUserAgent":{"title":"ConfigObject.customUserAgent","description":"You may set a custom user agent. However, due to recent developments, this is not really neccessary any more.","type":"string"},"devtools":{"anyOf":[{"title":"ConfigObject.devtools","type":"boolean"},{"$ref":"#/components/schemas/DevTools","title":"ConfigObject.devtools"}],"title":"ConfigObject.devtools","description":"You can enable remote devtools by setting this to trye. If you set this to true there will be security on the devtools url.\nIf you want, you can also pass a username & password."},"blockCrashLogs":{"title":"ConfigObject.blockCrashLogs","description":"Setting this to true will block any network calls to crash log servers. This should keep anything you do under the radar.","default":"`true`","type":"boolean"},"cacheEnabled":{"title":"ConfigObject.cacheEnabled","description":"Setting this to false turn off the cache. This may improve memory usage.","default":"`false`","type":"boolean"},"browserRevision":{"title":"ConfigObject.browserRevision","description":"This is the specific browser revision to be downlaoded and used. You can find browser revision strings here: http://omahaproxy.appspot.com/\nLearn more about it here: https://github.com/puppeteer/puppeteer/blob/master/docs/api.md#class-browserfetcher\nIf you're having trouble with sending images, try '737027'.\nIf you go too far back things will start breaking !!!!!!\nNOTE: THIS WILL OVERRIDE useChrome and executablePath. ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING.","type":"string"},"throwErrorOnTosBlock":{"title":"ConfigObject.throwErrorOnTosBlock","description":"Setting this to true will throw an error if a session is not able to get a QR code or is unable to restart a session.","type":"boolean"},"headless":{"title":"ConfigObject.headless","description":"By default, all instances of @open-wa/wa-automate are headless (i.e you don't see a chrome window open), you can set this to false to show the chrome/chromium window.","default":"`true`","type":"boolean"},"autoRefresh":{"title":"ConfigObject.autoRefresh","description":"@deprecated THIS IS LOCKED TO `true` AND CANNOT BE TURNED OFF. PLEASE SEE [[authTimeout]]\n\nSetting this to true will result in new QR codes being generated if the end user takes too long to scan the QR code.","default":"`true`","type":"boolean"},"qrRefreshS":{"title":"ConfigObject.qrRefreshS","description":"@deprecated This now has no effect\n\nThis determines the interval at which to refresh the QR code. By default, WA updates the qr code every 18-19 seconds so make sure this value is set to UNDER 18 seconds!!","type":"number"},"qrTimeout":{"title":"ConfigObject.qrTimeout","description":"This determines how long the process should wait for a QR code to be scanned before killing the process entirely. To have the system wait continuously, set this to `0`.","default":"60","type":"number"},"waitForRipeSessionTimeout":{"title":"ConfigObject.waitForRipeSessionTimeout","description":"This determines how long the process should wait for a session to load fully before continuing the launch process.\nSet this to 0 to wait forever. Default is 5 seconds.","default":"5","type":"number"},"executablePath":{"title":"ConfigObject.executablePath","description":"Some features, like video upload, do not work without a chrome instance. Set this to the path of your chrome instance or you can use `useChrome:true` to automatically detect a chrome instance for you. Please note, this overrides `useChrome`.","type":"string"},"useChrome":{"title":"ConfigObject.useChrome","description":"If true, the program will automatically try to detect the instance of chorme on the machine. Please note this DOES NOT override executablePath.","default":"`false`","type":"boolean"},"proxyServerCredentials":{"$ref":"#/components/schemas/ProxyServerCredentials","title":"ConfigObject.proxyServerCredentials","description":"If sent, adds a call to waPage.authenticate with those credentials. Set `corsFix` to true if using a proxy results in CORS errors."},"qrLogSkip":{"title":"ConfigObject.qrLogSkip","description":"If true, skips logging the QR Code to the console.","default":"`false`","type":"boolean"},"restartOnCrash":{"title":"ConfigObject.restartOnCrash","description":"If set, the program will try to recreate itself when the page crashes. You have to pass the function that you want called upon restart. Please note that when the page crashes you may miss some messages.\nE.g:\n```javascript\nconst start = async (client: Client) => {...}\ncreate({\n...\nrestartOnCrash: start,\n...\n})\n```"},"disableSpins":{"title":"ConfigObject.disableSpins","description":"Setting this to true will simplify logs for use within docker containers by disabling spins (will still print raw messages).","default":"`false`","type":"boolean"},"logConsole":{"title":"ConfigObject.logConsole","description":"If true, this will log any console messages from the browser.","default":"`false`","type":"boolean"},"logConsoleErrors":{"title":"ConfigObject.logConsoleErrors","description":"If true, this will log any error messages from the browser instance","default":"`false`","type":"boolean"},"authTimeout":{"title":"ConfigObject.authTimeout","description":"This determines how long the process should wait for the session authentication. If exceeded, checks if phone is out of reach (turned of or without internet connection) and throws an error. It does not relate to the amount of time spent waiting for a qr code scan (see [[qrTimeout]]). To have the system wait continuously, set this to `0`.","default":"`60`","type":"number"},"oorTimeout":{"title":"ConfigObject.oorTimeout","description":"phoneIsOutOfReach check timeout","default":"`60`","type":"number"},"killProcessOnBrowserClose":{"title":"ConfigObject.killProcessOnBrowserClose","description":"Setting this to `true` will kill the whole process when the client is disconnected from the page or if the browser is closed.","default":"`false`","type":"boolean"},"safeMode":{"title":"ConfigObject.safeMode","description":"If true, client will check if the page is valid before each command. If page is not valid, it will throw an error.","default":"`false`","type":"boolean"},"skipSessionSave":{"title":"ConfigObject.skipSessionSave","description":"If true, the process will not save a data.json file. This means that sessions will not be saved and you will need to pass sessionData as a config param or create the session data.json file yourself","default":"`false`","type":"boolean"},"popup":{"title":"ConfigObject.popup","description":"If true, the process will open a browser window where you will see basic event logs and QR codes to authenticate the session. Usually it will open on port 3000. It can also be set to a preferred port.\n\nYou can also get the QR code png at (if localhost and port 3000):\n\n`http://localhost:3000/qr`\n\nor if you have multiple session:\n\n `http://localhost:3000/qr?sessionId=[sessionId]`","default":"`false | 3000`","anyOf":[{"type":"boolean"},{"type":"number"}]},"qrPopUpOnly":{"title":"ConfigObject.qrPopUpOnly","description":"This needs to be used in conjuction with `popup`, if `popup` is not true or a number (representing a desired port) then this will not work.\n\nSetting this to true will make sure that only the qr code png is served via the web server. This is useful if you do not need the whole status page.\n\nAs mentioned in [popup](#popup), the url for the qr code is `http://localhost:3000/qr` if the port is 3000.","type":"boolean"},"inDocker":{"title":"ConfigObject.inDocker","description":"If true, the process will try infer as many config variables as possible from the environment variables. The format of the variables are as below:\n```\nsessionData ==> WA_SESSION_DATA\nsessionDataPath ==> WA_SESSION_DATA_PATH\nsessionId ==> WA_SESSION_ID\ncustomUserAgent ==> WA_CUSTOM_USER_AGENT\nblockCrashLogs ==> WA_BLOCK_CRASH_LOGS\nblockAssets ==> WA_BLOCK_ASSETS\ncorsFix ==> WA_CORS_FIX\ncacheEnabled ==> WA_CACHE_ENABLED\nheadless ==> WA_HEADLESS\nqrTimeout ==> WA_QR_TIMEOUT\nuseChrome ==> WA_USE_CHROME\nqrLogSkip ==> WA_QR_LOG_SKIP\ndisableSpins ==> WA_DISABLE_SPINS\nlogConsole ==> WA_LOG_CONSOLE\nlogConsoleErrors==> WA_LOG_CONSOLE_ERRORS\nauthTimeout ==> WA_AUTH_TIMEOUT\nsafeMode ==> WA_SAFE_MODE\nskipSessionSave ==> WA_SKIP_SESSION_SAVE\npopup ==> WA_POPUP\nlicensekey ==> WA_LICENSE_KEY\n```","default":"`false`","type":"boolean"},"qrQuality":{"$ref":"#/components/schemas/QRQuality","title":"ConfigObject.qrQuality","description":"The output quality of the qr code during authentication. This can be any increment of 0.1 from 0.1 to 1.0.","default":"`1.0`"},"qrFormat":{"$ref":"#/components/schemas/QRFormat","title":"ConfigObject.qrFormat","description":"The output format of the qr code. `png`, `jpeg` or `webm`.","default":"`png`"},"hostNotificationLang":{"$ref":"#/components/schemas/NotificationLanguage","title":"ConfigObject.hostNotificationLang","description":"The language of the host notification. See: https://github.com/open-wa/wa-automate-nodejs/issues/709#issuecomment-673419088"},"blockAssets":{"title":"ConfigObject.blockAssets","description":"Setting this to true will block all assets from loading onto the page. This may result in some load time improvements but also increases instability.","default":"`false`","type":"boolean"},"keepUpdated":{"title":"ConfigObject.keepUpdated","description":"[ALPHA FEATURE - ONLY IMPLEMENTED FOR TESTING - DO NOT USE IN PRODUCTION YET]\nSetting this to true will result in the library making sure it is always starting with the latest version of itself. This overrides `skipUpdateCheck`.","default":"`false`","type":"boolean"},"resizable":{"title":"ConfigObject.resizable","description":"Syncs the viewport size with the window size which is how normal browsers act. Only relevant when `headless: false` and this overrides `viewport` config.","default":"`true`","type":"boolean"},"viewport":{"properties":{"width":{"title":"ConfigObject.viewport.width","description":"Page width in pixels","default":"`1440`","type":"number"},"height":{"title":"ConfigObject.viewport.height","description":"Page height in pixels","default":"`900`","type":"number"}},"additionalProperties":false,"title":"ConfigObject.viewport","description":"Set the desired viewport height and width. For CLI, use [width]x[height] format. E.g `--viewport 1920x1080`.","type":"object"},"legacy":{"title":"ConfigObject.legacy","description":"As the library is constantly evolving, some parts will be replaced with more efficient and improved code. In some of the infinite edge cases these new changes may not work for you. Set this to true to roll back on 'late beta' features. The reason why legacy is false by default is that in order for features to be tested they have to be released and used by everyone to find the edge cases and fix them.","default":"`false`","type":"boolean"},"deleteSessionDataOnLogout":{"title":"ConfigObject.deleteSessionDataOnLogout","description":"Deletes the session data file (if found) on logout event. This results in a quicker login when you restart the process.","default":"`false`","type":"boolean"},"killProcessOnTimeout":{"title":"ConfigObject.killProcessOnTimeout","description":"If set to true, the system will kill the whole node process when either an [[authTimeout]] or a [[qrTimeout]] has been reached. This is useful to prevent hanging processes.","default":"`false`","type":"boolean"},"killProcessOnBan":{"title":"ConfigObject.killProcessOnBan","description":"If set to true, the system will kill the whole node process when a \"TEMPORARY BAN\" is detected. This is useful to prevent hanging processes.\nIt is `true` by default because it is a very rare event and it is better to kill the process than to leave it hanging.","default":"`true`","type":"boolean"},"corsFix":{"title":"ConfigObject.corsFix","description":"Setting this to true will bypass web security. DO NOT DO THIS IF YOU DO NOT HAVE TO. CORS issue may arise when using a proxy.","default":"`false`","type":"boolean"},"callTimeout":{"title":"ConfigObject.callTimeout","description":"Amount of time (in ms) to wait for a client method (specifically methods that interact with the WA web session) to resolve. If a client method results takes longer than the timout value then it will result in a [[PageEvaluationTimeout]] error.\n\nIf you get this error, it does not automatically mean that the method failed - it just stops your program from waiting for a client method to resolve.\n\nThis is useful if you do not rely on the results of a client method (e.g the message ID).\n\nIf set to `0`, the process will wait indefinitely for a client method to resolve.","default":"0","type":"number"},"screenshotOnInitializationBrowserError":{"title":"ConfigObject.screenshotOnInitializationBrowserError","description":"When true, this option will take a screenshot of the browser when an unexpected error occurs within the browser during `create` initialization. The path will be `[working directory]/logs/[session ID]/[start timestamp]/[timestamp].jpg`","default":"`false`","type":"boolean"},"eventMode":{"title":"ConfigObject.eventMode","description":"Setting listeners may not be your cup of tea. With eventMode, all [[SimpleListener]] events will be registered automatically and be filed via the built in Events Listener.\n\nThis is useful because you can register/deregister the event listener as needed whereas the legacy method of setting callbacks are only be set once","default":"`true`;","type":"boolean"},"logFile":{"title":"ConfigObject.logFile","description":"If true, the system will automatically create a log of all processes relating to actions sent to the web session.\n\nThe location of the file will be relative to the process directory (pd)\n\n`[pd]/[sessionId]/[start timestamp].log`","default":"false","type":"boolean"},"idCorrection":{"title":"ConfigObject.idCorrection","description":"When true, the system will attempt to correct chatIds and groupChatIds. This means you can ignore `@c.us` and `@g.us` distinctions in some parameters.","default":"false","type":"boolean"},"stickerServerEndpoint":{"title":"ConfigObject.stickerServerEndpoint","description":"Redundant until self-hostable sticker server is available.","default":"`https://sticker-api.openwa.dev`","anyOf":[{"type":"string"},{"type":"boolean"}]},"ghPatch":{"title":"ConfigObject.ghPatch","description":"This will force the library to use the default cached raw github link for patches to shave a few hundred milliseconds from your launch time. If you use this option, you will need to wait about 5 minutes before trying out new patches.","default":"`false`","type":"boolean"},"cachedPatch":{"title":"ConfigObject.cachedPatch","description":"Setting this to `true` will save a local copy of the patches.json file (as patches.ignore.data.json) which will be used in subsequent instantiations of the session. While the rest of the launch procedure is running, the library will fetch and save a recent version of the patches to ensure your patches don't go stale. This will be ignored if the cached patches are more than a day old.","default":"`false`","type":"boolean"},"logDebugInfoAsObject":{"title":"ConfigObject.logDebugInfoAsObject","description":"Setting `this` to true will replace the `console.table` with a stringified logging of the debug info object instead. This would be useful to set for smaller terminal windows. If `disableSpins` is `true` then this will also be `true`.","default":"`false`","type":"boolean"},"logInternalEvents":{"title":"ConfigObject.logInternalEvents","description":"This will make the library log all internal wa web events to the console. This is useful for debugging purposes. DO NOT TURN THIS ON UNLESS ASKED TO.","type":"boolean"},"killClientOnLogout":{"title":"ConfigObject.killClientOnLogout","description":"Kill the client when a logout is detected","default":"`false`","type":"boolean"},"throwOnExpiredSessionData":{"title":"ConfigObject.throwOnExpiredSessionData","description":"This will make the `create` command return `false` if the detected session data is expired.\n\nThis will mean, the process will not attempt to automatically get a new QR code.","default":"`false`","type":"boolean"},"useNativeProxy":{"title":"ConfigObject.useNativeProxy","description":"Some sessions may experience issues with sending media when using proxies. Using the native proxy system instead of the recommended 3rd party library may fix these issues.","default":"`false`","type":"boolean"},"raspi":{"title":"ConfigObject.raspi","description":"Set this to `true` to make the library work on Raspberry Pi OS.\n\nMake sure to run the following command before running the library the first time:\n\n```\n> sudo apt update -y && sudo apt install chromium-browser chromium-codecs-ffmpeg -y && sudo apt upgrade\n```\n\nIf you're using the CLI, you can set this value to `true` by adding the following flag to the CLI command\n\n```\n> npx @open-wa/wa-automate ... --raspi\n```","default":"`false`","type":"boolean"},"pQueueDefault":{"title":"ConfigObject.pQueueDefault","description":"Default pqueue options applied to all listeners that can take pqueue options as a second optional parameter. For now, this only includes `onMessage` and `onAnyMessage`.\n\nSee: https://github.com/sindresorhus/p-queue#options\n\nExample: process 5 events within every 3 seconds window. Make sure to only process at most 2 at any one time. Make sure there is at least 100ms between each event processing.\n\n```javascript\n {\n intervalCap: 5, //process 5 events\n interval: 3000, //within every three second window\n concurrency: 2, //make sure to process, at most, 2 events at any one time\n timeout: 100, //make sure there is a 100ms gap between each event processing.\n carryoverConcurrencyCount: true //If there are more than 5 events in that period, process them within the next 3 second period. Make sure this is always set to true!!!\n }\n```","default":"`undefined`"},"messagePreprocessor":{"title":"ConfigObject.messagePreprocessor","description":"Set a preprocessor, or multiple chained preprocessors, for messages. See [MPConfigType](/) for more info.\n\noptions: `SCRUB`, `BODY_ONLY`, `AUTO_DECRYPT`, `AUTO_DECRYPT_SAVE`, `UPLOAD_CLOUD`.","default":"`undefined`"},"preprocFilter":{"title":"ConfigObject.preprocFilter","description":"Set an array filter to be used with messagePreprocessor to limit which messages are preprocessed.\n\nE.g if you want to scrub all messages that are not from a group, you can do the following:\n`\"m=>!m.isGroupMsg\"`","default":"`undefined`","type":"string"},"cloudUploadOptions":{"properties":{"provider":{"$ref":"#/components/schemas/CLOUD_PROVIDERS","title":"ConfigObject.cloudUploadOptions.provider","description":"`AWS`, `GCP` or `WASABI`\n\nenv: `OW_CLOUD_ACCESS_KEY_ID`"},"accessKeyId":{"title":"ConfigObject.cloudUploadOptions.accessKeyId","description":"S3 compatible access key ID.\n\ne.g: `AKIAIOSFODNN7EXAMPLE` or `GOOGTS7C7FUP3AIRVJTE2BCD`\n\nenv: `OW_CLOUD_ACCESS_KEY_ID`","type":"string"},"secretAccessKey":{"title":"ConfigObject.cloudUploadOptions.secretAccessKey","description":"S3 compatible secret access key.\n\ne.g `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`\n\nenv: `OW_CLOUD_SECRET_ACCESS_KEY`","type":"string"},"bucket":{"title":"ConfigObject.cloudUploadOptions.bucket","description":"Bucket name\n\nenv: `OW_CLOUD_BUCKET`","type":"string"},"region":{"title":"ConfigObject.cloudUploadOptions.region","description":"Bucket region.\n\nNot required for `GCP` provider\n\nenv: `OW_CLOUD_REGION`","type":"string"},"ignoreHostAccount":{"title":"ConfigObject.cloudUploadOptions.ignoreHostAccount","description":"Ignore processing of messages that are sent by the host account itself\n\nenv: `OW_CLOUD_IGNORE_HOST`","type":"boolean"},"directory":{"anyOf":[{"$ref":"#/components/schemas/DIRECTORY_STRATEGY","title":"ConfigObject.cloudUploadOptions.directory"},{"title":"ConfigObject.cloudUploadOptions.directory","type":"string"}],"title":"ConfigObject.cloudUploadOptions.directory","description":"The directory strategy to use when uploading files. Or just set it to a custom directory string.\n\nenv: `OW_DIRECTORY`"},"public":{"title":"ConfigObject.cloudUploadOptions.public","description":"Setting this to true will make the uploaded file public","type":"boolean"},"headers":{"additionalProperties":{"type":"string"},"title":"ConfigObject.cloudUploadOptions.headers","description":"Extra headers to add to the upload request","type":"object"}},"required":["provider","accessKeyId","secretAccessKey","bucket"],"additionalProperties":false,"title":"ConfigObject.cloudUploadOptions","description":"REQUIRED IF `messagePreprocessor` IS SET TO `UPLOAD_CLOUD`.\n\nThis can be set via the config or the corresponding environment variables.","type":"object"},"onError":{"$ref":"#/components/schemas/OnError","title":"ConfigObject.onError","description":"What to do when an error is detected on a client method.","default":"`OnError.NOTHING`"},"multiDevice":{"title":"ConfigObject.multiDevice","description":"Please note that multi-device is still in beta so a lot of things may not work. It is HIGHLY suggested to NOT use this in production!!!!\n\nSet this to true if you're using the multidevice beta.","default":"`true`\n:::danger\nSome features (e.g [[sendLinkWithAutoPreview]]) **do not** work with multi-device beta. Check [this `api`](#).\n:::","type":"boolean"},"sessionDataBucketAuth":{"title":"ConfigObject.sessionDataBucketAuth","description":"Base64 encoded S3 Bucket & Authentication object for session data files. The object should be in the same format as cloudUploadOptions.","type":"string"},"autoEmoji":{"anyOf":[{"title":"ConfigObject.autoEmoji","type":"string"},{"title":"ConfigObject.autoEmoji","enum":[false],"type":"boolean"}],"title":"ConfigObject.autoEmoji","description":"Set the automatic emoji detection character. Set this to `false` to disable auto emoji. Default is `:`.","default":"`:`"},"maxChats":{"title":"ConfigObject.maxChats","description":"Set the maximum amount of chats to be present in a session.","type":"number"},"maxMessages":{"title":"ConfigObject.maxMessages","description":"Set the maximum amount of messages to be present in a session.","type":"number"},"discord":{"title":"ConfigObject.discord","description":"Your Discord ID to get onto the sticker leaderboard!","type":"string"},"ignoreNuke":{"title":"ConfigObject.ignoreNuke","description":"Don't implicitly determine if the host logged out.","type":"boolean"},"ensureHeadfulIntegrity":{"title":"ConfigObject.ensureHeadfulIntegrity","description":"Makes sure the headless session is usable even on first login.\nHeadful sessions are ususally only usable on reauthentication.","type":"boolean"},"waitForRipeSession":{"title":"ConfigObject.waitForRipeSession","description":"wait for a valid headful session. Not required in recent versions.\ndefault: `true`","type":"boolean"},"qrMax":{"title":"ConfigObject.qrMax","description":"Automatically kill the process after a set amount of qr codes","type":"number"},"ezqr":{"title":"ConfigObject.ezqr","description":"Expose a URL where you can easily scan the qr code","type":"boolean"},"logging":{"items":{"$ref":"#/components/schemas/ConfigLogTransport","title":"ConfigObject.logging.[]"},"title":"ConfigObject.logging","description":"An array of [winston](https://github.com/winstonjs/winston/blob/master/docs/transports.md#additional-transports) logging transport configurations.\n\n[Check this discussion to see how to set up logging](https://github.com/open-wa/wa-automate-nodejs/discussions/2373)","type":"array"},"linkParser":{"title":"ConfigObject.linkParser","description":"The URL of your instance of [serverless meta grabber](https://github.com/RemiixInc/meta-grabber-serverless) by [RemiixInc](https://github.com/RemiixInc).\n\ndefault: `https://link.openwa.cloud/api`","type":"string"},"aggressiveGarbageCollection":{"title":"ConfigObject.aggressiveGarbageCollection","description":"Setting this to true will run `gc()` on before every command sent to the browser.\n\nThis is experimental and may not work or it may have unforeseen sideeffects.","type":"boolean"}},"additionalProperties":{},"title":"ConfigObject","type":"object"},"AdvancedConfig":{"allOf":[{"$ref":"#/components/schemas/ConfigObject"},{"properties":{"licenseKey":{"$ref":"#/components/schemas/LicenseKeyConfig","title":"licenseKey"}},"required":["licenseKey"],"additionalProperties":false,"type":"object"}],"title":"AdvancedConfig"},"LicenseKey":{"title":"LicenseKey","type":"string"},"LicenseKeyConfig":{"anyOf":[{"$ref":"#/components/schemas/LicenseKeyConfigFunction","title":"LicenseKeyConfig"},{"$ref":"#/components/schemas/LicenseKeyConfigObject","title":"LicenseKeyConfig"},{"$ref":"#/components/schemas/LicenseKey","title":"LicenseKeyConfig"}],"title":"LicenseKeyConfig"},"NumberCheck":{"properties":{"id":{"$ref":"#/components/schemas/Id","title":"NumberCheck.id"},"status":{"enum":[200,404],"title":"NumberCheck.status","type":"number"},"isBusiness":{"title":"NumberCheck.isBusiness","type":"boolean"},"canReceiveMessage":{"title":"NumberCheck.canReceiveMessage","type":"boolean"},"numberExists":{"title":"NumberCheck.numberExists","type":"boolean"}},"required":["id","status","isBusiness","canReceiveMessage","numberExists"],"additionalProperties":false,"title":"NumberCheck","type":"object"},"BizCategory":{"properties":{"id":{"title":"BizCategory.id","type":"string"},"localized_display_name":{"title":"BizCategory.localized_display_name","type":"string"}},"required":["id","localized_display_name"],"additionalProperties":false,"title":"BizCategory","type":"object"},"BizProfileOptions":{"properties":{"commerceExperience":{"enum":["catalog","none","shop"],"title":"BizProfileOptions.commerceExperience","type":"string"},"cartEnabled":{"title":"BizProfileOptions.cartEnabled","type":"boolean"}},"required":["commerceExperience","cartEnabled"],"additionalProperties":false,"title":"BizProfileOptions","type":"object"},"BusinessHours":{"properties":{"config":{"title":"BusinessHours.config"},"timezone":{"title":"BusinessHours.timezone","type":"string"}},"required":["config","timezone"],"additionalProperties":false,"title":"BusinessHours","type":"object"},"BusinessProfile":{"properties":{"id":{"$ref":"#/components/schemas/ContactId","title":"BusinessProfile.id","description":"The Contact ID of the business"},"tag":{"title":"BusinessProfile.tag","description":"Some special string that identifies the business (?)","type":"string"},"description":{"title":"BusinessProfile.description","description":"The business description","type":"string"},"categories":{"items":{"$ref":"#/components/schemas/BizCategory","title":"BusinessProfile.categories.[]"},"title":"BusinessProfile.categories","description":"The business' categories","type":"array"},"profileOptions":{"$ref":"#/components/schemas/BizProfileOptions","title":"BusinessProfile.profileOptions","description":"The business' profile options"},"email":{"title":"BusinessProfile.email","description":"The business' email address","type":"string"},"website":{"items":{"title":"BusinessProfile.website.[]","type":"string"},"title":"BusinessProfile.website","description":"Array of strings that represent the business' websites","type":"array"},"businessHours":{"$ref":"#/components/schemas/BusinessHours","title":"BusinessProfile.businessHours","description":"The operating hours of the business"},"catalogStatus":{"title":"BusinessProfile.catalogStatus","description":"The status of the business' catalog","type":"string"},"address":{"title":"BusinessProfile.address","description":"The address of the business","type":"string"},"fbPage":{"title":"BusinessProfile.fbPage","description":"The facebook page of the business"},"igProfessional":{"title":"BusinessProfile.igProfessional","description":"The instagram profile of the business"},"isProfileLinked":{"title":"BusinessProfile.isProfileLinked","type":"boolean"},"coverPhoto":{"properties":{"id":{"title":"BusinessProfile.coverPhoto.id","description":"The id of the cover photo","type":"string"},"url":{"title":"BusinessProfile.coverPhoto.url","description":"The URL of the cover photo. It might download as an .enc but just change the extension to .jpg","type":"string"}},"required":["id","url"],"additionalProperties":false,"title":"BusinessProfile.coverPhoto","type":"object"},"latitude":{"title":"BusinessProfile.latitude","description":"The latitude of the business location if set","type":"number"},"longitude":{"title":"BusinessProfile.longitude","description":"The longitude of the business location if set","type":"number"}},"required":["id","tag","description","categories","profileOptions","email","website","businessHours","catalogStatus","address","fbPage","igProfessional","isProfileLinked","coverPhoto","latitude","longitude"],"additionalProperties":false,"title":"BusinessProfile","type":"object"},"Contact":{"properties":{"formattedName":{"title":"Contact.formattedName","type":"string"},"id":{"$ref":"#/components/schemas/ContactId","title":"Contact.id"},"isBusiness":{"title":"Contact.isBusiness","type":"boolean"},"isEnterprise":{"title":"Contact.isEnterprise","description":"Most likely true when the account has a green tick. See `verifiedLevel` also.","type":"boolean"},"isMe":{"title":"Contact.isMe","type":"boolean"},"isMyContact":{"title":"Contact.isMyContact","type":"boolean"},"isPSA":{"title":"Contact.isPSA","type":"boolean"},"isUser":{"title":"Contact.isUser","type":"boolean"},"isWAContact":{"title":"Contact.isWAContact","type":"boolean"},"labels":{"items":{"title":"Contact.labels.[]","type":"string"},"title":"Contact.labels","type":"array"},"msgs":{"items":{"$ref":"#/components/schemas/Message","title":"Contact.msgs.[]"},"title":"Contact.msgs","type":"array"},"name":{"title":"Contact.name","type":"string"},"plaintextDisabled":{"title":"Contact.plaintextDisabled","type":"boolean"},"profilePicThumbObj":{"properties":{"eurl":{"title":"Contact.profilePicThumbObj.eurl","type":"string"},"id":{"$ref":"#/components/schemas/Id","title":"Contact.profilePicThumbObj.id"},"img":{"title":"Contact.profilePicThumbObj.img","type":"string"},"imgFull":{"title":"Contact.profilePicThumbObj.imgFull","type":"string"},"raw":{"title":"Contact.profilePicThumbObj.raw","type":"string"},"tag":{"title":"Contact.profilePicThumbObj.tag","type":"string"}},"required":["eurl","id","img","imgFull","raw","tag"],"additionalProperties":false,"title":"Contact.profilePicThumbObj","type":"object"},"pushname":{"title":"Contact.pushname","type":"string"},"shortName":{"title":"Contact.shortName","type":"string"},"statusMute":{"title":"Contact.statusMute","type":"boolean"},"type":{"title":"Contact.type","type":"string"},"verifiedLevel":{"title":"Contact.verifiedLevel","description":"0 = not verified\n2 = verified (most likely represents a blue tick)","type":"number"},"verifiedName":{"title":"Contact.verifiedName","description":"The business account name verified by WA.","type":"string"},"isOnline":{"title":"Contact.isOnline","type":"boolean"},"lastSeen":{"title":"Contact.lastSeen","type":"number"},"businessProfile":{"$ref":"#/components/schemas/BusinessProfile","title":"Contact.businessProfile","description":"If the contact is a business, the business information will be added to the contact object.\n\nIn some circumstances this will be out of date or lacking certain fields. In those cases you have to use `client.getBusinessProfile`"}},"required":["formattedName","id","isBusiness","isEnterprise","isMe","isMyContact","isPSA","isUser","isWAContact","labels","msgs","name","plaintextDisabled","profilePicThumbObj","pushname","shortName","statusMute","type","verifiedLevel","verifiedName"],"additionalProperties":false,"title":"Contact","type":"object"},"Participant":{"properties":{"contact":{"$ref":"#/components/schemas/Contact","title":"Participant.contact"},"id":{"$ref":"#/components/schemas/NonSerializedId","title":"Participant.id"},"isAdmin":{"title":"Participant.isAdmin","type":"boolean"},"isSuperAdmin":{"title":"Participant.isSuperAdmin","type":"boolean"}},"required":["contact","id","isAdmin","isSuperAdmin"],"additionalProperties":false,"title":"Participant","type":"object"},"GroupMetadata":{"properties":{"id":{"$ref":"#/components/schemas/GroupChatId","title":"GroupMetadata.id","description":"The chat id of the group [[GroupChatId]]"},"creation":{"title":"GroupMetadata.creation","description":"The timestamp of when the group was created","type":"number"},"owner":{"$ref":"#/components/schemas/NonSerializedId","title":"GroupMetadata.owner","description":"The id of the owner of the group [[ContactId]]"},"participants":{"items":{"$ref":"#/components/schemas/Participant","title":"GroupMetadata.participants.[]"},"title":"GroupMetadata.participants","description":"An array of participants in the group","type":"array"},"pendingParticipants":{"items":{"$ref":"#/components/schemas/Participant","title":"GroupMetadata.pendingParticipants.[]"},"title":"GroupMetadata.pendingParticipants","description":"Unknown.","type":"array"},"desc":{"title":"GroupMetadata.desc","description":"The description of the group","type":"string"},"descOwner":{"$ref":"#/components/schemas/ContactId","title":"GroupMetadata.descOwner","description":"The account that set the description last."},"trusted":{"title":"GroupMetadata.trusted","type":"boolean"},"suspended":{"title":"GroupMetadata.suspended","description":"Not sure what this represents","type":"boolean"},"support":{"title":"GroupMetadata.support","description":"Not sure what this represents","type":"boolean"},"isParentGroup":{"title":"GroupMetadata.isParentGroup","description":"Is this group a parent group (a.k.a community)","type":"boolean"},"groupType":{"enum":["DEAFULT","SUBGROUP","COMMUNITY"],"title":"GroupMetadata.groupType","description":"The type of group","type":"string"},"defaultSubgroup":{"title":"GroupMetadata.defaultSubgroup","description":"Communities have a default group chat","type":"boolean"},"isParentGroupClosed":{"title":"GroupMetadata.isParentGroupClosed","type":"boolean"},"joinedSubgroups":{"items":{"$ref":"#/components/schemas/GroupId","title":"GroupMetadata.joinedSubgroups.[]"},"title":"GroupMetadata.joinedSubgroups","description":"List of Group IDs that the host account has joined as part of this community","type":"array"}},"required":["id","creation","owner","participants","pendingParticipants","groupType","defaultSubgroup","isParentGroupClosed","joinedSubgroups"],"additionalProperties":false,"title":"GroupMetadata","type":"object"},"ParticipantChangedEventModel":{"properties":{"by":{"$ref":"#/components/schemas/ContactId","title":"ParticipantChangedEventModel.by"},"action":{"$ref":"#/components/schemas/groupChangeEvent","title":"ParticipantChangedEventModel.action"},"who":{"items":{"$ref":"#/components/schemas/ContactId","title":"ParticipantChangedEventModel.who.[]"},"title":"ParticipantChangedEventModel.who","type":"array"},"chat":{"$ref":"#/components/schemas/ChatId","title":"ParticipantChangedEventModel.chat"}},"required":["by","action","who","chat"],"additionalProperties":false,"title":"ParticipantChangedEventModel","type":"object"},"NewCommunityGroup":{"properties":{"subject":{"title":"NewCommunityGroup.subject","type":"string"},"icon":{"$ref":"#/components/schemas/DataURL","title":"NewCommunityGroup.icon"},"ephemeralDuration":{"title":"NewCommunityGroup.ephemeralDuration","type":"number"}},"required":["subject"],"additionalProperties":false,"title":"NewCommunityGroup","description":"Used when creating a new community with.","type":"object"},"GenericGroupChangeEvent":{"properties":{"author":{"$ref":"#/components/schemas/Contact","title":"GenericGroupChangeEvent.author","description":"The contact who triggered this event. (E.g the contact who changed the group picture)"},"body":{"title":"GenericGroupChangeEvent.body","description":"Some more information about the event","type":"string"},"groupMetadata":{"$ref":"#/components/schemas/GroupMetadata","title":"GenericGroupChangeEvent.groupMetadata"},"groupPic":{"title":"GenericGroupChangeEvent.groupPic","description":"Base 64 encoded image","type":"string"},"id":{"$ref":"#/components/schemas/MessageId","title":"GenericGroupChangeEvent.id"},"type":{"enum":["picutre","create","delete","subject","revoke_invite","description","restrict","announce","no_frequently_forwarded","announce_msg_bounce","add","remove","demote","promote","invite","leave","modify","v4_add_invite_sent","v4_add_invite_join","growth_locked","growth_unlocked","linked_group_join"],"title":"GenericGroupChangeEvent.type","description":"Type of the event","type":"string"}},"required":["author","body","groupMetadata","groupPic","id","type"],"additionalProperties":false,"title":"GenericGroupChangeEvent","type":"object"},"Id":{"properties":{"server":{"title":"Id.server","type":"string"},"user":{"title":"Id.user","type":"string"},"_serialized":{"title":"Id._serialized","type":"string"}},"required":["server","user","_serialized"],"additionalProperties":false,"title":"Id","type":"object"},"EasyApiResponse":{"properties":{"success":{"title":"EasyApiResponse.success","type":"boolean"},"response":{"title":"EasyApiResponse.response"}},"required":["success","response"],"additionalProperties":false,"title":"EasyApiResponse","type":"object"},"Label":{"properties":{"id":{"title":"Label.id","description":"The internal ID of the label. Usually a number represented as a string e.g \"1\"","type":"string"},"name":{"title":"Label.name","description":"The text contents of the label","type":"string"},"items":{"items":{"properties":{"type":{"enum":["Chat","Contact","Message"],"title":"Label.items.[].type","description":"Labels can be applied to chats, contacts or individual messages. This represents the type of object the label is attached to.","type":"string"},"id":{"anyOf":[{"$ref":"#/components/schemas/ContactId","title":"Label.items.[].id"},{"$ref":"#/components/schemas/ChatId","title":"Label.items.[].id"},{"$ref":"#/components/schemas/MessageId","title":"Label.items.[].id"}],"title":"Label.items.[].id","description":"The ID of the object that the label is atteched to."}},"required":["type","id"],"additionalProperties":false,"title":"Label.items.[]","type":"object"},"title":"Label.items","description":"The items that are tagged with this label","type":"array"}},"required":["id","name","items"],"additionalProperties":false,"title":"Label","type":"object"},"StickerMetadata":{"properties":{"author":{"title":"StickerMetadata.author","description":"The author of the sticker","default":"``","type":"string"},"pack":{"title":"StickerMetadata.pack","description":"The pack of the sticker","default":"``","type":"string"},"removebg":{"anyOf":[{"title":"StickerMetadata.removebg","type":"boolean"},{"title":"StickerMetadata.removebg","enum":["HQ"],"type":"string"}],"title":"StickerMetadata.removebg","description":"ALPHA FEATURE - NO GUARANTEES IT WILL WORK AS EXPECTED:\n\n[REQUIRES AN INSIDERS LICENSE-KEY](https://gum.co/open-wa?tier=Insiders%20Program)\n\nAttempt to remove the background of the sticker. Only valid for paid licenses.\n\noptions:\n\n `true` - remove background after resizing\n\n `HQ` - remove background before resizing (i.e on original photo)","default":"`false`"},"keepScale":{"title":"StickerMetadata.keepScale","description":"Setting this to `true` will skip the resizing/square-cropping of the sticker. It will instead 'letterbox' the image with a transparent background.","type":"boolean"},"circle":{"title":"StickerMetadata.circle","description":"Applies a circular mask to the sticker. Works on images only for now.","type":"boolean"},"discord":{"title":"StickerMetadata.discord","description":"Your Discord ID to get onto the sticker leaderboard!","type":"string"},"cropPosition":{"enum":["top","right top","right","right bottom","bottom","left bottom","left","left top","north","northeast","east","southeast","south","southwest","west","northwest","center","centre","entropy","attention"],"title":"StickerMetadata.cropPosition","description":"Crop position\n\nLearn more: https://sharp.pixelplumbing.com/api-resize","default":"`attention`","type":"string"},"cornerRadius":{"title":"StickerMetadata.cornerRadius","description":"The corner radius of the sticker when `stickerMetadata.circle` is set to true.\n@minimum `1`\n@maximum `100`\n@multipleOf `1`","default":"`100`","type":"number"}},"required":["author","pack"],"additionalProperties":false,"title":"StickerMetadata","type":"object"},"Mp4StickerConversionProcessOptions":{"properties":{"fps":{"title":"Mp4StickerConversionProcessOptions.fps","description":"Desired Frames per second of the sticker output","default":"`10`","type":"number"},"startTime":{"title":"Mp4StickerConversionProcessOptions.startTime","description":"The video start time of the sticker","default":"`00:00:00.0`","type":"string"},"endTime":{"title":"Mp4StickerConversionProcessOptions.endTime","description":"The video end time of the sticker. By default, stickers are made from the first 5 seconds of the video","default":"`00:00:05.0`","type":"string"},"loop":{"title":"Mp4StickerConversionProcessOptions.loop","description":"The amount of times the video loops in the sticker. To save processing time, leave this as 0\ndefault `0`","type":"number"},"crop":{"title":"Mp4StickerConversionProcessOptions.crop","description":"Centres and crops the video.\ndefault `true`","type":"boolean"},"log":{"title":"Mp4StickerConversionProcessOptions.log","description":"Prints ffmpeg logs in the terminal","default":"`false`","type":"boolean"},"square":{"title":"Mp4StickerConversionProcessOptions.square","description":"A number representing the WxH of the output sticker (default `512x512`). Lowering this number is a great way to process longer duration stickers. The max value is `512`.\ndefault `512`","type":"number"}},"additionalProperties":false,"title":"Mp4StickerConversionProcessOptions","type":"object"},"Message":{"properties":{"selectedButtonId":{"title":"Message.selectedButtonId","description":"The ID of the selected button","type":"string"},"id":{"$ref":"#/components/schemas/MessageId","title":"Message.id","description":"The id of the message. Consists of the Chat ID and a unique string.\n\nExample:\n\n```\nfalse_447123456789@c.us_7D914FEA78BE10277743F4B785045C37\n```"},"mId":{"title":"Message.mId","description":"The unique segment of the message id.\n\nExample:\n\n```\n7D914FEA78BE10277743F4B785045C37\n```","type":"string"},"body":{"title":"Message.body","description":"The body of the message. If the message type is `chat` , `body` will be the text of the chat. If the message type is some sort of media, then this body will be the thumbnail of the media.","type":"string"},"text":{"title":"Message.text","description":"a convenient way to get the main text content from a message.","type":"string"},"type":{"$ref":"#/components/schemas/MessageTypes","title":"Message.type","description":"The type of the message, see [[MessageTypes]]"},"filehash":{"title":"Message.filehash","description":"Used to checking the integrity of the decrypted media.","type":"string"},"mimetype":{"title":"Message.mimetype","type":"string"},"lat":{"title":"Message.lat","description":"The latitude of a location message","type":"string"},"lng":{"title":"Message.lng","description":"The longitude of a location message","type":"string"},"loc":{"title":"Message.loc","description":"The text associated with a location message","type":"string"},"t":{"title":"Message.t","description":"The timestamp of the message","type":"number"},"notifyName":{"title":"Message.notifyName","type":"string"},"from":{"$ref":"#/components/schemas/ChatId","title":"Message.from","description":"The chat from which the message was sent"},"to":{"$ref":"#/components/schemas/ChatId","title":"Message.to","description":"The chat id to which the message is being sent"},"self":{"enum":["in","out"],"title":"Message.self","description":"Indicates whether the message is coming into the session or going out of the session. You can have a message sent by the host account show as `in` when the message was sent from another\nsession or from the host account device itself.","type":"string"},"duration":{"title":"Message.duration","description":"The length of the media in the message, if it exists.","anyOf":[{"type":"string"},{"type":"number"}]},"ack":{"$ref":"#/components/schemas/MessageAck","title":"Message.ack","description":"The acknolwedgement state of a message [[MessageAck]]"},"invis":{"title":"Message.invis","type":"boolean"},"isNewMsg":{"title":"Message.isNewMsg","type":"boolean"},"star":{"title":"Message.star","type":"boolean"},"recvFresh":{"title":"Message.recvFresh","type":"boolean"},"broadcast":{"title":"Message.broadcast","description":"If the message is sent as a broadcast","type":"boolean"},"isForwarded":{"title":"Message.isForwarded","description":"If the message has been forwarded","type":"boolean"},"labels":{"items":{"title":"Message.labels.[]","type":"string"},"title":"Message.labels","description":"The labels associated with the message (used with business accounts)","type":"array"},"mentionedJidList":{"items":{"$ref":"#/components/schemas/ContactId","title":"Message.mentionedJidList.[]"},"title":"Message.mentionedJidList","description":"An array of all mentioned numbers in this message.","type":"array"},"caption":{"title":"Message.caption","description":"If the message is of a media type, it may also have a caption","type":"string"},"sender":{"$ref":"#/components/schemas/Contact","title":"Message.sender","description":"The contact object of the account that sent the message"},"timestamp":{"title":"Message.timestamp","description":"the timestanmp of the message","type":"number"},"filePath":{"title":"Message.filePath","description":"When `config.messagePreprocessor: \"AUTO_DECRYPT_SAVE\"` is set, media is decrypted and saved on disk in a folder called media relative to the current working directory.\n\nThis is the filePath of the decrypted file.","type":"string"},"filename":{"title":"Message.filename","description":"The given filename of the file","type":"string"},"content":{"title":"Message.content","type":"string"},"isGroupMsg":{"title":"Message.isGroupMsg","type":"boolean"},"isMMS":{"title":"Message.isMMS","type":"boolean"},"isMedia":{"title":"Message.isMedia","type":"boolean"},"isNotification":{"title":"Message.isNotification","type":"boolean"},"isPSA":{"title":"Message.isPSA","type":"boolean"},"fromMe":{"title":"Message.fromMe","description":"If the message is from the host account","type":"boolean"},"chat":{"$ref":"#/components/schemas/Chat","title":"Message.chat","description":"The chat object"},"chatId":{"$ref":"#/components/schemas/ChatId","title":"Message.chatId"},"author":{"title":"Message.author","type":"string"},"stickerAuthor":{"title":"Message.stickerAuthor","type":"string"},"stickerPack":{"title":"Message.stickerPack","type":"string"},"clientUrl":{"title":"Message.clientUrl","description":"@deprecated Ironically, you should be using `deprecatedMms3Url` instead","type":"string"},"deprecatedMms3Url":{"title":"Message.deprecatedMms3Url","type":"string"},"isQuotedMsgAvailable":{"title":"Message.isQuotedMsgAvailable","description":"If this message is quoting (replying to) another message","type":"boolean"},"quotedMsg":{"$ref":"#/components/schemas/Message","title":"Message.quotedMsg"},"quotedMsgObj":{"$ref":"#/components/schemas/Message","title":"Message.quotedMsgObj"},"isGroupJoinRequest":{"$ref":"#/components/schemas/GroupChatId","title":"Message.isGroupJoinRequest","description":"When a user requests to join a group wihtin a community the request is received by the host as a message. This boolean will allow you to easily determine if the incoming message is a request to join a group.\n\nIf this is `true` then you need to determine within your own code whether or not to accept the user to the group which is indicated with `quotedRemoteJid` using `addParticipant`."},"senderId":{"title":"Message.senderId","description":"The ID of the message sender","type":"string"},"quotedRemoteJid":{"title":"Message.quotedRemoteJid","description":"The ID of the quoted group. Usually present when a user is requesting to join a group.","type":"string"},"quotedParentGroupJid":{"$ref":"#/components/schemas/GroupChatId","title":"Message.quotedParentGroupJid","description":"The parent group ID (community ID - communities are just groups made up of other groups) of the group represented by `quotedRemoteJid`"},"mediaData":{"title":"Message.mediaData"},"shareDuration":{"title":"Message.shareDuration","type":"number"},"isAnimated":{"title":"Message.isAnimated","type":"boolean"},"ctwaContext":{"properties":{"sourceUrl":{"title":"Message.ctwaContext.sourceUrl","type":"string"},"thumbnail":{"title":"Message.ctwaContext.thumbnail","nullable":true,"type":"string"},"mediaType":{"title":"Message.ctwaContext.mediaType","type":"number"},"isSuspiciousLink":{"title":"Message.ctwaContext.isSuspiciousLink","nullable":true,"type":"boolean"}},"required":["sourceUrl","thumbnail","mediaType","isSuspiciousLink"],"additionalProperties":false,"title":"Message.ctwaContext","type":"object"},"isViewOnce":{"title":"Message.isViewOnce","description":"Is the message a \"view once\" message","type":"boolean"},"quoteMap":{"$ref":"#/components/schemas/QuoteMap","title":"Message.quoteMap","description":"Use this to traverse the quote chain."},"cloudUrl":{"title":"Message.cloudUrl","description":"The URL of the file after being uploaded to the cloud using a cloud upload message preprocessor.","type":"string"},"buttons":{"items":{"$ref":"#/components/schemas/Button","title":"Message.buttons.[]"},"title":"Message.buttons","description":"Buttons associated with the message","type":"array"},"listResponse":{"$ref":"#/components/schemas/Row","title":"Message.listResponse","description":"List response associated with the message"},"list":{"properties":{"\"sections\"":{"items":{"$ref":"#/components/schemas/Section","title":"Message.list.\"sections\".[]"},"title":"Message.list.\"sections\"","type":"array"},"\"title\"":{"title":"Message.list.\"title\"","type":"string"},"\"description\"":{"title":"Message.list.\"description\"","type":"string"},"\"buttonText\"":{"title":"Message.list.\"buttonText\"","type":"string"}},"required":["\"sections\"","\"title\"","\"description\"","\"buttonText\""],"additionalProperties":false,"title":"Message.list","description":"The list associated with the list message","type":"object"},"pollOptions":{"items":{"$ref":"#/components/schemas/PollOption","title":"Message.pollOptions.[]"},"title":"Message.pollOptions","description":"The options of a poll","type":"array"},"reactionByMe":{"$ref":"#/components/schemas/ReactionSender","title":"Message.reactionByMe","description":"The reaction of the host account to this message"},"reactions":{"items":{"properties":{"aggregateEmoji":{"title":"Message.reactions.[].aggregateEmoji","type":"string"},"senders":{"items":{"$ref":"#/components/schemas/ReactionSender","title":"Message.reactions.[].senders.[]"},"title":"Message.reactions.[].senders","description":"The senders of this reaction","type":"array"},"hasReactionByMe":{"title":"Message.reactions.[].hasReactionByMe","description":"If the host account has reacted to this message with this reaction","type":"boolean"},"id":{"title":"Message.reactions.[].id","description":"The message ID of the reaction itself","type":"string"}},"required":["aggregateEmoji","senders","hasReactionByMe","id"],"additionalProperties":false,"title":"Message.reactions.[]","type":"object"},"title":"Message.reactions","type":"array"}},"required":["selectedButtonId","id","mId","body","text","type","t","notifyName","from","to","self","ack","invis","isNewMsg","star","recvFresh","broadcast","isForwarded","labels","mentionedJidList","caption","sender","timestamp","content","isGroupMsg","isMMS","isMedia","isNotification","isPSA","fromMe","chat","chatId","author","clientUrl","deprecatedMms3Url","isQuotedMsgAvailable","mediaData","shareDuration","isAnimated","isViewOnce","quoteMap","reactions"],"additionalProperties":false,"title":"Message","type":"object"},"ReactionSender":{"properties":{"parentMsgKey":{"$ref":"#/components/schemas/MessageId","title":"ReactionSender.parentMsgKey","description":"The ID of the message being reacted to"},"senderUserJid":{"$ref":"#/components/schemas/ContactId","title":"ReactionSender.senderUserJid","description":"The contact ID of the sender of the reaction"},"msgKey":{"$ref":"#/components/schemas/MessageId","title":"ReactionSender.msgKey","description":"The message ID of the reaction itself"},"reactionText":{"title":"ReactionSender.reactionText","description":"The text of the reaction","type":"string"},"timestamp":{"title":"ReactionSender.timestamp","description":"The timestamp of the reaction","type":"number"},"orphan":{"title":"ReactionSender.orphan","type":"number"},"read":{"title":"ReactionSender.read","description":"If the reaction was seen/read","type":"boolean"},"t":{"title":"ReactionSender.t","description":"The timestamp of the reaction","type":"number"},"id":{"$ref":"#/components/schemas/MessageId","title":"ReactionSender.id","description":"The message ID of the reaction itself"},"isSendFailure":{"title":"ReactionSender.isSendFailure","type":"boolean"},"ack":{"title":"ReactionSender.ack","type":"number"}},"required":["parentMsgKey","senderUserJid","msgKey","reactionText","timestamp","orphan","read","id","isSendFailure"],"additionalProperties":false,"title":"ReactionSender","type":"object"},"PollOption":{"properties":{"name":{"title":"PollOption.name","type":"string"},"localId":{"title":"PollOption.localId","type":"number"}},"required":["name","localId"],"additionalProperties":false,"title":"PollOption","type":"object"},"PollData":{"properties":{"totalVotes":{"title":"PollData.totalVotes","description":"The total amount of votes recorded so far","type":"number"},"pollOptions":{"items":{"allOf":[{"$ref":"#/components/schemas/PollOption"},{"properties":{"count":{"title":"count","type":"number"}},"required":["count"],"additionalProperties":false,"type":"object"}]},"title":"PollData.pollOptions","description":"The poll options and their respective count of votes.","type":"array"},"votes":{"items":{"$ref":"#/components/schemas/PollVote","title":"PollData.votes.[]"},"title":"PollData.votes","description":"An arrray of vote objects","type":"array"},"pollMessage":{"$ref":"#/components/schemas/Message","title":"PollData.pollMessage","description":"The message object of the poll"}},"required":["totalVotes","pollOptions","votes","pollMessage"],"additionalProperties":false,"title":"PollData","type":"object"},"PollVote":{"properties":{"ack":{"title":"PollVote.ack","type":"number"},"id":{"title":"PollVote.id","description":"The message ID of this vote. For some reason this is different from the msgKey and includes exclamaition marks.","type":"string"},"msgKey":{"title":"PollVote.msgKey","description":"The message key of this vote","type":"string"},"parentMsgKey":{"title":"PollVote.parentMsgKey","description":"The Message ID of the original Poll message","type":"string"},"pollOptions":{"items":{"$ref":"#/components/schemas/PollOption","title":"PollVote.pollOptions.[]"},"title":"PollVote.pollOptions","description":"The original poll options available on the poll","type":"array"},"selectedOptionLocalIds":{"items":{"title":"PollVote.selectedOptionLocalIds.[]","type":"number"},"title":"PollVote.selectedOptionLocalIds","description":"The selected option IDs of the voter","type":"array"},"selectedOptionValues":{"items":{"title":"PollVote.selectedOptionValues.[]","type":"string"},"title":"PollVote.selectedOptionValues","description":"The selected option values by this voter","type":"array"},"sender":{"$ref":"#/components/schemas/ContactId","title":"PollVote.sender","description":"The contact ID of the voter"},"senderObj":{"$ref":"#/components/schemas/Contact","title":"PollVote.senderObj","description":"The contact object of the voter"},"senderTimestampMs":{"title":"PollVote.senderTimestampMs","description":"Timestamp of the vote","type":"number"},"stale":{"title":"PollVote.stale","type":"boolean"}},"required":["ack","id","msgKey","parentMsgKey","pollOptions","selectedOptionLocalIds","selectedOptionValues","sender","senderObj","senderTimestampMs","stale"],"additionalProperties":false,"title":"PollVote","type":"object"},"QuoteMap":{"additionalProperties":{"properties":{"body":{"title":"body","description":"The body of the message","type":"string"},"quotes":{"$ref":"#/components/schemas/MessageId","title":"quotes","description":"The message ID of the message that was quoted. Null if no message was quoted."}},"required":["body"],"additionalProperties":false,"type":"object"},"title":"QuoteMap","type":"object"},"MessageInfoInteraction":{"properties":{"id":{"$ref":"#/components/schemas/ContactId","title":"MessageInfoInteraction.id","description":"The contact ID of the contact that interacted with the message."},"t":{"title":"MessageInfoInteraction.t","description":"The timestamp of the interaction. You have to x 1000 to use in a JS Date object.","type":"number"}},"required":["id","t"],"additionalProperties":false,"title":"MessageInfoInteraction","type":"object"},"MessageInfo":{"properties":{"deliveryRemaining":{"title":"MessageInfo.deliveryRemaining","type":"number"},"playedRemaining":{"title":"MessageInfo.playedRemaining","type":"number"},"readRemaining":{"title":"MessageInfo.readRemaining","type":"number"},"delivery":{"items":{"$ref":"#/components/schemas/MessageInfoInteraction","title":"MessageInfo.delivery.[]"},"title":"MessageInfo.delivery","type":"array"},"read":{"items":{"$ref":"#/components/schemas/MessageInfoInteraction","title":"MessageInfo.read.[]"},"title":"MessageInfo.read","type":"array"},"played":{"items":{"$ref":"#/components/schemas/MessageInfoInteraction","title":"MessageInfo.played.[]"},"title":"MessageInfo.played","type":"array"},"id":{"$ref":"#/components/schemas/MessageId","title":"MessageInfo.id","description":"The ID of the message"}},"required":["deliveryRemaining","playedRemaining","readRemaining","delivery","read","played","id"],"additionalProperties":false,"title":"MessageInfo","type":"object"},"CustomProduct":{"properties":{"name":{"title":"CustomProduct.name","description":"The main title of the product. E.g:\n`BAVARIA — 35 SPORTS CRUISER (2006)`","type":"string"},"description":{"title":"CustomProduct.description","description":"The description of the product. This shows right under the price so it is useful for subscriptions/rentals. E.g:\n\n`(per day)\\n\\nCome and have a fantastic sailing adventure aboard our boat. \\nShe is a Bavaria 35 sports cruiser and is powered by 2 economical Volvo D6’s with Bravo 2 outdrives as well as a bow thruster. This Makes maneuvering very easy. She can accommodate up to 8 people for day charters and for overnight charters she can accommodate 4 in comfort in 2 cabins.`","type":"string"},"priceAmount1000":{"title":"CustomProduct.priceAmount1000","description":"The price amount multiplied by 1000. For example, for something costing `825` units of currency:\n`825000`","type":"number"},"currency":{"title":"CustomProduct.currency","description":"The [**ISO 4217**](https://en.wikipedia.org/wiki/ISO_4217) 3 letter currency code. E.g (Swedish krona)\n`SEK`","type":"string"},"url":{"title":"CustomProduct.url","description":"The URL of the product.\n\nNOTE: At the moment, the URL DOES NOT WORK. It shows up for the recipient but they will not be able to click it. As a rememdy, it is added as a reply to the product message.","type":"string"}},"required":["name","description","priceAmount1000","currency"],"additionalProperties":false,"title":"CustomProduct","type":"object"},"CartItem":{"properties":{"id":{"title":"CartItem.id","description":"Product ID","type":"string"},"name":{"title":"CartItem.name","description":"Product name","type":"string"},"qty":{"title":"CartItem.qty","description":"Amount of this item in the cart","type":"number"},"thumbnailId":{"title":"CartItem.thumbnailId","type":"string"},"thumbnailUrl":{"title":"CartItem.thumbnailUrl","description":"URL to .enc file of the thumbnail. Just change the filetype to .jpg to view the thumbnail","type":"string"}},"required":["id","name","qty","thumbnailId","thumbnailUrl"],"additionalProperties":false,"title":"CartItem","type":"object"},"Product":{"properties":{"id":{"title":"Product.id","description":"Product ID","type":"string"},"isHidden":{"title":"Product.isHidden","description":"`true` if the product is hidden from public view.","type":"boolean"},"catalogWid":{"title":"Product.catalogWid","description":"The id of the catalog in which this product is located.","type":"string"},"url":{"title":"Product.url","description":"The URL of the product.","type":"string"},"name":{"title":"Product.name","description":"The name of the product.","type":"string"},"description":{"title":"Product.description","description":"The description of the product.","type":"string"},"availability":{"anyOf":[{"title":"Product.availability","type":"number"},{"title":"Product.availability","enum":["unknown"],"type":"string"}],"title":"Product.availability","description":"The availiable quantity of this product.","default":"\"unknown\"`"},"reviewStatus":{"enum":["NO_REVIEW","PENDING","REJECTED","APPROVED","OUTDATED"],"title":"Product.reviewStatus","description":"The review status of the product","type":"string"},"imageCdnUrl":{"title":"Product.imageCdnUrl","description":"The url of the main image of the product.\n\nNOTE: If downloading manually, the filetype must be changed to .jpg to view the image.","type":"string"},"imageCount":{"title":"Product.imageCount","description":"The number of images of the product.","type":"number"},"additionalImageCdnUrl":{"items":{"title":"Product.additionalImageCdnUrl.[]","type":"string"},"title":"Product.additionalImageCdnUrl","description":"Array of URLs of the other images of the product. Does not include the main image.","type":"array"},"priceAmount1000":{"title":"Product.priceAmount1000","description":"The price of the product in 1000 units.","type":"number"},"retailerId":{"title":"Product.retailerId","description":"The custom id of the product.","type":"string"},"t":{"title":"Product.t","description":"The timestamp when the product was created / 1000","type":"number"},"currency":{"title":"Product.currency","description":"The [**ISO 4217**](https://en.wikipedia.org/wiki/ISO_4217) 3 letter currency code. E.g (Swedish krona)\n`SEK`","type":"string"}},"required":["id","currency"],"additionalProperties":false,"title":"Product","type":"object"},"Order":{"properties":{"id":{"title":"Order.id","description":"Order ID","type":"string"},"createdAt":{"title":"Order.createdAt","description":"epoch ts divided by 1000","type":"number"},"currency":{"title":"Order.currency","description":"The [**ISO 4217**](https://en.wikipedia.org/wiki/ISO_4217) 3 letter currency code. E.g (Swedish krona)\n`SEK`","type":"string"},"products":{"items":{"$ref":"#/components/schemas/CartItem","title":"Order.products.[]"},"title":"Order.products","description":"An array of items in the cart","type":"array"},"sellerJid":{"title":"Order.sellerJid","type":"string"},"subtotal":{"title":"Order.subtotal"},"total":{"title":"Order.total"},"message":{"$ref":"#/components/schemas/Message","title":"Order.message","description":"The message object associated with the order. Only populated in `onOrder` callback."}},"required":["id","createdAt","currency","products","sellerJid","subtotal","total"],"additionalProperties":false,"title":"Order","type":"object"},"Reaction":{"properties":{"aggregateEmoji":{"title":"Reaction.aggregateEmoji","description":"The aggregate emoji used for the reaction.","type":"string"},"id":{"title":"Reaction.id","description":"The identifier of the reaction","type":"string"},"hasReactionByMe":{"title":"Reaction.hasReactionByMe","description":"If the reaction is also sent by the host account","type":"boolean"},"senders":{"items":{"$ref":"#/components/schemas/ReactionRecord","title":"Reaction.senders.[]"},"title":"Reaction.senders","description":"The senders of this spefcific reaction","type":"array"}},"required":["aggregateEmoji","id","hasReactionByMe","senders"],"additionalProperties":false,"title":"Reaction","description":"A reaction is identified the specific emoji.","type":"object"},"ReactionRecord":{"properties":{"ack":{"$ref":"#/components/schemas/MessageAck","title":"ReactionRecord.ack","description":"The acknowledgement of the reaction"},"id":{"title":"ReactionRecord.id","description":"The ID of the reaction","type":"string"},"msgKey":{"title":"ReactionRecord.msgKey","type":"string"},"parentMsgKey":{"title":"ReactionRecord.parentMsgKey","type":"string"},"orphan":{"title":"ReactionRecord.orphan","type":"number"},"reactionText":{"title":"ReactionRecord.reactionText","description":"The text of the reaction","type":"string"},"read":{"title":"ReactionRecord.read","description":"If the reaction has been read","type":"boolean"},"senderUserJid":{"$ref":"#/components/schemas/ContactId","title":"ReactionRecord.senderUserJid","description":"The ID of the reaction sender"},"timestamp":{"title":"ReactionRecord.timestamp","description":"The timestamp of the reaction","type":"number"}},"required":["ack","id","msgKey","parentMsgKey","orphan","reactionText","read","senderUserJid","timestamp"],"additionalProperties":false,"title":"ReactionRecord","description":"The specific reaction by a user","type":"object"},"ReactionEvent":{"properties":{"message":{"$ref":"#/components/schemas/Message","title":"ReactionEvent.message","description":"The message being reacted to"},"reactionByMe":{"$ref":"#/components/schemas/Reaction","title":"ReactionEvent.reactionByMe","description":"The reaction sent by the host account"},"reactions":{"items":{"$ref":"#/components/schemas/Reaction","title":"ReactionEvent.reactions.[]"},"title":"ReactionEvent.reactions","description":"An array of all reactions","type":"array"},"type":{"enum":["add","change"],"title":"ReactionEvent.type","description":"The type of the reaction event.","type":"string"}},"required":["message","reactionByMe","reactions","type"],"additionalProperties":false,"title":"ReactionEvent","description":"Emitted by onReaction","type":"object"},"SessionInfo":{"properties":{"WA_VERSION":{"title":"SessionInfo.WA_VERSION","type":"string"},"PAGE_UA":{"title":"SessionInfo.PAGE_UA","type":"string"},"WA_AUTOMATE_VERSION":{"title":"SessionInfo.WA_AUTOMATE_VERSION","type":"string"},"BROWSER_VERSION":{"title":"SessionInfo.BROWSER_VERSION","type":"string"},"LAUNCH_TIME_MS":{"title":"SessionInfo.LAUNCH_TIME_MS","type":"number"},"NUM":{"title":"SessionInfo.NUM","type":"string"},"OS":{"title":"SessionInfo.OS","type":"string"},"START_TS":{"title":"SessionInfo.START_TS","type":"number"},"PHONE_VERSION":{"title":"SessionInfo.PHONE_VERSION","type":"string"},"NUM_HASH":{"title":"SessionInfo.NUM_HASH","type":"string"},"PATCH_HASH":{"title":"SessionInfo.PATCH_HASH","type":"string"},"OW_KEY":{"title":"SessionInfo.OW_KEY","type":"string"},"INSTANCE_ID":{"title":"SessionInfo.INSTANCE_ID","type":"string"},"RAM_INFO":{"title":"SessionInfo.RAM_INFO","type":"string"},"PPTR_VERSION":{"title":"SessionInfo.PPTR_VERSION","type":"string"},"LATEST_VERSION":{"title":"SessionInfo.LATEST_VERSION","type":"boolean"},"CLI":{"title":"SessionInfo.CLI","type":"boolean"},"ACC_TYPE":{"enum":["PERSONAL","BUSINESS"],"title":"SessionInfo.ACC_TYPE","type":"string"}},"required":["WA_VERSION","PAGE_UA","WA_AUTOMATE_VERSION","BROWSER_VERSION"],"additionalProperties":false,"title":"SessionInfo","type":"object"},"HealthCheck":{"properties":{"queuedMessages":{"title":"HealthCheck.queuedMessages","description":"The number of messages queued up in the browser. Messages can start being queued up due to the web app awaiting a connection with the host device.\n\nHealthy: 0","type":"number"},"state":{"$ref":"#/components/schemas/STATE","title":"HealthCheck.state","description":"The state of the web app.\n\nHealthy: 'CONNECTED'"},"isPhoneDisconnected":{"title":"HealthCheck.isPhoneDisconnected","description":"Whether or not the \"Phone is disconnected\" message is showing within the web app.\n\nHealthy: `false`","type":"boolean"},"isHere":{"title":"HealthCheck.isHere","description":"Returns `true` if \"Use Here\" button is not detected\n\nHealthy: `true`","type":"boolean"},"wapiInjected":{"title":"HealthCheck.wapiInjected","description":"Returns `true` if the `WAPI` object is detected.\n\nHealthy: `true`","type":"boolean"},"online":{"title":"HealthCheck.online","description":"Result of `window.navigator.onLine`\n\nHealthy: `true`","type":"boolean"},"tryingToReachPhone":{"title":"HealthCheck.tryingToReachPhone","description":"Returns `true` if \"trying to reach phone\" dialog is detected\n\nHealthy: `false`","type":"boolean"},"retryingIn":{"title":"HealthCheck.retryingIn","description":"Returns the number of seconds the \"Retrying in ...\" dialog is indicating. If the dialog is not showing, it will return `0`.\n\nHealthy: `0`","type":"number"},"batteryLow":{"title":"HealthCheck.batteryLow","description":"Returns `true` if \"Phone battery low\" message is detected\n\nHealthy: `false`","type":"boolean"}},"additionalProperties":false,"title":"HealthCheck","type":"object"},"expressMiddleware":{"title":"expressMiddleware"},"ChatwootConfig":{"properties":{"chatwootUrl":{"title":"ChatwootConfig.chatwootUrl","description":"The URL of the chatwoot inbox. If you want this integration to create & manage the inbox for you, you can omit the inbox part.","type":"string"},"chatwootApiAccessToken":{"title":"ChatwootConfig.chatwootApiAccessToken","description":"The API access token which you can get from your account menu.","type":"string"},"apiHost":{"title":"ChatwootConfig.apiHost","description":"The API host which will be used as the webhook address in the Chatwoot inbox.","type":"string"},"host":{"title":"ChatwootConfig.host","description":"Similar to apiHost","type":"string"},"https":{"title":"ChatwootConfig.https","description":"Whether or not to use https for the webhook address","type":"boolean"},"cert":{"title":"ChatwootConfig.cert","description":"The certificate for https","type":"string"},"privkey":{"title":"ChatwootConfig.privkey","description":"The private key for https","type":"string"},"key":{"title":"ChatwootConfig.key","description":"The API key used to secure the instance webhook address","type":"string"},"forceUpdateCwWebhook":{"title":"ChatwootConfig.forceUpdateCwWebhook","description":"Whether or not to update the webhook address in the Chatwoot inbox on launch","type":"boolean"},"port":{"title":"ChatwootConfig.port","description":"port","type":"number"}},"required":["chatwootUrl","chatwootApiAccessToken","apiHost","host","cert","privkey","port"],"additionalProperties":false,"title":"ChatwootConfig","type":"object"},"cliFlags":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"title":"cliFlags","type":"object"},"ConfigLogTransport":{"properties":{"type":{"enum":["syslog","console","file","ev"],"title":"ConfigLogTransport.type","description":"The type of winston transport. At the moment only `file`, `console`, `ev` and `syslog` are supported.","type":"string"},"options":{"title":"ConfigLogTransport.options","description":"The options for the transport. Generally only required for syslog but you can use this to override default options for other types of transports."},"done":{"title":"ConfigLogTransport.done","description":"If the transport has already been added to the logger. The logging set up command handles this for you.","type":"boolean"}},"required":["type"],"additionalProperties":false,"title":"ConfigLogTransport","type":"object"},"CollectorOptions":{"properties":{"maxProcessed":{"title":"CollectorOptions.maxProcessed","description":"The maximum amount of items to process","type":"number"},"max":{"title":"CollectorOptions.max","description":"The maximum amount of items to collect","type":"number"},"time":{"title":"CollectorOptions.time","description":"Max time to wait for items in milliseconds","type":"number"},"idle":{"title":"CollectorOptions.idle","description":"Max time allowed idle","type":"number"},"dispose":{"title":"CollectorOptions.dispose","description":"Whether to dispose data when it's deleted","type":"boolean"}},"additionalProperties":false,"title":"CollectorOptions","description":"Options to be applied to the collector.","type":"object"},"AwaitMessagesOptions":{"properties":{"errors":{"items":{"title":"AwaitMessagesOptions.errors.[]","type":"string"},"title":"AwaitMessagesOptions.errors","description":"An array of \"reasons\" that would result in the awaitMessages command to throw an error.","type":"array"}},"additionalProperties":false,"title":"AwaitMessagesOptions","type":"object"},"CurrentDialogProps":{"additionalProperties":{},"title":"CurrentDialogProps","type":"object"},"DialogState":{"properties":{"currentStep":{"title":"DialogState.currentStep","type":"number"},"currentProps":{"title":"DialogState.currentProps"},"lastInput":{"title":"DialogState.lastInput"},"isComplete":{"title":"DialogState.isComplete","type":"boolean"},"isError":{"title":"DialogState.isError","type":"boolean"},"errorMessage":{"title":"DialogState.errorMessage","type":"string"}},"required":["currentStep","currentProps","lastInput","isComplete","isError","errorMessage"],"additionalProperties":false,"title":"DialogState","type":"object"},"DialogTemplate":{"properties":{"\"dialogId\"":{"title":"DialogTemplate.\"dialogId\"","type":"string"},"\"privateOnly\"":{"title":"DialogTemplate.\"privateOnly\"","type":"boolean"},"\"identifier\"":{"title":"DialogTemplate.\"identifier\"","type":"string"},"\"successMessage\"":{"title":"DialogTemplate.\"successMessage\"","type":"string"},"\"startMessage\"":{"title":"DialogTemplate.\"startMessage\"","type":"string"},"\"properties\"":{"additionalProperties":{"$ref":"#/components/schemas/DialogProperty"},"title":"DialogTemplate.\"properties\"","type":"object"}},"required":["\"dialogId\"","\"privateOnly\"","\"identifier\"","\"successMessage\"","\"startMessage\"","\"properties\""],"additionalProperties":false,"title":"DialogTemplate","type":"object"},"CheckFunction":{"title":"CheckFunction"},"DialogProperty":{"properties":{"\"order\"":{"title":"DialogProperty.\"order\"","type":"number"},"\"key\"":{"title":"DialogProperty.\"key\"","type":"string"},"\"prompt\"":{"title":"DialogProperty.\"prompt\"","type":"string"},"\"type\"":{"title":"DialogProperty.\"type\"","type":"string"},"\"skipCondition\"":{"$ref":"#/components/schemas/CheckFunction","title":"DialogProperty.\"skipCondition\""},"\"options\"":{"anyOf":[{"items":{"$ref":"#/components/schemas/DialogButtons","title":"DialogProperty.\"options\".[]"},"title":"DialogProperty.\"options\".[]","type":"array"},{"items":{"$ref":"#/components/schemas/DialogListMessageSection","title":"DialogProperty.\"options\".[]"},"title":"DialogProperty.\"options\".[]","type":"array"}],"title":"DialogProperty.\"options\""},"\"validation\"":{"items":{"$ref":"#/components/schemas/DialogValidation","title":"DialogProperty.\"validation\".[]"},"title":"DialogProperty.\"validation\"","type":"array"}},"required":["\"order\"","\"key\"","\"prompt\"","\"type\"","\"validation\""],"additionalProperties":false,"title":"DialogProperty","type":"object"},"DialogButtons":{"properties":{"label":{"title":"DialogButtons.label","type":"string"},"value":{"title":"DialogButtons.value","type":"string"}},"required":["label","value"],"additionalProperties":false,"title":"DialogButtons","type":"object"},"DialogListMessageSection":{"properties":{"title":{"title":"DialogListMessageSection.title","type":"string"},"rows":{"items":{"$ref":"#/components/schemas/DialogListMessageRow","title":"DialogListMessageSection.rows.[]"},"title":"DialogListMessageSection.rows","type":"array"}},"required":["title","rows"],"additionalProperties":false,"title":"DialogListMessageSection","type":"object"},"DialogListMessageRow":{"properties":{"title":{"title":"DialogListMessageRow.title","type":"string"},"description":{"title":"DialogListMessageRow.description","type":"string"},"value":{"title":"DialogListMessageRow.value","type":"string"}},"required":["title","description","value"],"additionalProperties":false,"title":"DialogListMessageRow","type":"object"},"DialogValidation":{"properties":{"\"type\"":{"$ref":"#/components/schemas/ValidationType","title":"DialogValidation.\"type\""},"\"value\"":{"anyOf":[{"title":"DialogValidation.\"value\"","type":"string"},{"$ref":"#/components/schemas/CheckFunction","title":"DialogValidation.\"value\""}],"title":"DialogValidation.\"value\""},"\"errorMessage\"":{"title":"DialogValidation.\"errorMessage\"","type":"string"}},"required":["\"type\"","\"value\"","\"errorMessage\""],"additionalProperties":false,"title":"DialogValidation","type":"object"},"MessagePreProcessor":{"title":"MessagePreProcessor","description":"A function that takes a message and returns a message.\n@param The message to be processed\n@param The client that received the message\n@param Whether the message has already been processed by another preprocessor. (This is useful in cases where you want to mutate the message for both onMessage and onAnyMessage events but only want to do the actual process, like uploading to s3, once.)"},"MPConfigType":{"anyOf":[{"$ref":"#/components/schemas/PREPROCESSORS","title":"MPConfigType"},{"$ref":"#/components/schemas/MessagePreProcessor","title":"MPConfigType"},{"items":{"anyOf":[{"$ref":"#/components/schemas/PREPROCESSORS","title":"MPConfigType.[]"},{"$ref":"#/components/schemas/MessagePreProcessor","title":"MPConfigType.[]"}],"title":"MPConfigType.[]"},"title":"MPConfigType.[]","type":"array"}],"title":"MPConfigType","description":"The actual type for [config.messagePreprocessor](/docs/api/interfaces/api_model_config.ConfigObject#messagepreprocessor)"}} +{"ChatServer":{"title":"ChatServer","description":"The suffix used to identify a non-group chat id","enum":["c.us"],"type":"string"},"GroupChatServer":{"title":"GroupChatServer","description":"The suffix used to identify a group chat id","enum":["g.us"],"type":"string"},"WaServers":{"anyOf":[{"$ref":"#/components/schemas/ChatServer","title":"WaServers"},{"$ref":"#/components/schemas/GroupChatServer","title":"WaServers"}],"title":"WaServers","description":"A type alias for all available \"servers\""},"CountryCode":{"enum":[1,7,20,27,30,31,32,33,34,36,39,40,41,43,44,45,46,47,48,49,51,52,53,54,55,56,57,58,60,61,62,63,64,65,66,81,82,84,86,90,91,92,93,94,95,98,211,212,213,216,218,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,248,249,250,251,252,253,254,255,256,257,258,260,261,262,263,264,265,266,267,268,269,290,291,297,298,299,350,351,352,353,354,355,356,357,358,359,370,371,372,373,374,375,376,377,378,380,381,382,383,385,386,387,389,420,421,423,500,501,502,503,504,505,506,507,508,509,590,591,592,593,594,595,596,597,598,599,670,672,673,674,675,676,677,678,679,680,681,682,683,685,686,687,688,689,690,691,692,850,852,853,855,856,880,886,960,961,962,963,964,965,966,967,968,970,971,972,973,974,975,976,977,992,993,994,995,996,998],"title":"CountryCode","description":"Type alias representing all available country codes","type":"number"},"AccountNumber":{"title":"AccountNumber","description":"The account number. It is made up of a country code and then the local number without the preceeding 0. For example, if a UK (+44) wa account is linked to the number 07123456789 then the account number will be 447123456789."},"GroupId":{"title":"GroupId","description":"A new group or community has the format of a random number followed by `@g.us`"},"GroupChatId":{"$ref":"#/components/schemas/GroupId","title":"GroupChatId","description":"A group chat ends with `@g.us` and usually has two parts, the timestamp of when it was created, and the user id of the number that created the group. For example `[creator number]-[timestamp]@g.us`\n\nExample:\n\n`\"447123456789-1445627445@g.us\"`"},"ContactId":{"title":"ContactId","description":"A contact id ends with `@c.us` and only contains the number of the contact. For example, if the country code of a contact is `44` and their number is `7123456789` then the contact id would be `447123456789@c.us`\n\nExample:\n\n`\"447123456789@c.us\"`"},"ChatId":{"anyOf":[{"$ref":"#/components/schemas/ContactId","title":"ChatId"},{"$ref":"#/components/schemas/GroupChatId","title":"ChatId"}],"title":"ChatId","description":"A chat id ends with `@c.us` or `@g.us` for group chats.\n\nExample:\n\nA group chat: `\"447123456789-1445627445@g.us\"`\nA group chat: `\"447123456789@g.us\"`"},"MessageId":{"title":"MessageId","description":"The id of a message. The format is `[boolean]_[ChatId]_[random character string]`\n\nExample:\n\n`\"false_447123456789@c.us_9C4D0965EA5C09D591334AB6BDB07FEB\"`"},"Content":{"title":"Content","description":"This is a generic type alias for the content of a message\n\nExample:\n\n`\"hello!\"`"},"NonSerializedId":{"properties":{"server":{"$ref":"#/components/schemas/WaServers","title":"NonSerializedId.server"},"user":{"$ref":"#/components/schemas/AccountNumber","title":"NonSerializedId.user"},"_serialized":{"$ref":"#/components/schemas/ContactId","title":"NonSerializedId._serialized"}},"required":["server","user","_serialized"],"additionalProperties":false,"title":"NonSerializedId","type":"object"},"DataURL":{"title":"DataURL","description":"Data URLs, URLs prefixed with the data: scheme, allow content creators to embed small files inline in documents. They were formerly known as \"data URIs\" until that name was retired by the WHATWG.\n\n\nData URLs are composed of four parts: a prefix (data:), a MIME type indicating the type of data, an optional base64 token if non-textual, and the data itself:\n\nExample:\n`\"data:[][;base64],\"`\n\nLearn more here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"},"Base64":{"title":"Base64","description":"Base64 is basically a file encoded as a string.\n\nBase64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation. The term Base64 originates from a specific MIME content transfer encoding.\n\nLearn more here: https://developer.mozilla.org/en-US/docs/Glossary/Base64"},"FilePath":{"title":"FilePath","description":"The relative or absolute path of a file\n\nLearn more here: https://www.w3schools.com/html/html_filepaths.asp"},"GetURL":{"title":"GetURL","description":"A URL of a file used with a GET request"},"AdvancedFile":{"anyOf":[{"$ref":"#/components/schemas/DataURL","title":"AdvancedFile"},{"$ref":"#/components/schemas/FilePath","title":"AdvancedFile"},{"$ref":"#/components/schemas/GetURL","title":"AdvancedFile"}],"title":"AdvancedFile","description":"Some file based actions in open-wa are powerful enough to take a dataurl, url or filepath"},"Button":{"properties":{"id":{"title":"Button.id","type":"string"},"text":{"title":"Button.text","type":"string"}},"required":["id","text"],"additionalProperties":false,"title":"Button","type":"object"},"AdvancedButton":{"properties":{"id":{"title":"AdvancedButton.id","type":"string"},"text":{"title":"AdvancedButton.text","type":"string"},"url":{"title":"AdvancedButton.url","type":"string"},"number":{"title":"AdvancedButton.number","type":"string"}},"required":["text"],"additionalProperties":false,"title":"AdvancedButton","type":"object"},"Row":{"properties":{"title":{"title":"Row.title","type":"string"},"description":{"title":"Row.description","type":"string"},"rowId":{"title":"Row.rowId","type":"string"}},"required":["title","description","rowId"],"additionalProperties":false,"title":"Row","type":"object"},"Section":{"properties":{"title":{"title":"Section.title","type":"string"},"rows":{"items":{"$ref":"#/components/schemas/Row","title":"Section.rows.[]"},"title":"Section.rows","type":"array"}},"required":["title","rows"],"additionalProperties":false,"title":"Section","type":"object"},"LocationButtonBody":{"properties":{"lat":{"title":"LocationButtonBody.lat","type":"number"},"lng":{"title":"LocationButtonBody.lng","type":"number"},"caption":{"title":"LocationButtonBody.caption","type":"string"}},"required":["lat","lng","caption"],"additionalProperties":false,"title":"LocationButtonBody","type":"object"},"Call":{"properties":{"id":{"title":"Call.id","description":"The id of the call","type":"string"},"peerJid":{"$ref":"#/components/schemas/ContactId","title":"Call.peerJid","description":"The id of the account calling"},"offerTime":{"title":"Call.offerTime","description":"The epoch timestamp of the call. You will have to multiply this by 1000 to get the actual epoch timestamp","type":"number"},"isVideo":{"title":"Call.isVideo","description":"Whether or not the call is a video call","type":"boolean"},"isGroup":{"title":"Call.isGroup","description":"Whether or not the call is a group call","type":"boolean"},"canHandleLocally":{"title":"Call.canHandleLocally","type":"boolean"},"outgoing":{"title":"Call.outgoing","description":"The direction of the call.","type":"boolean"},"webClientShouldHandle":{"title":"Call.webClientShouldHandle","type":"boolean"},"participants":{"items":{"$ref":"#/components/schemas/ContactId","title":"Call.participants.[]"},"title":"Call.participants","description":"The other participants on a group call","type":"array"},"State":{"$ref":"#/components/schemas/CallState","title":"Call.State","description":"State of the call"}},"required":["id","peerJid","offerTime","isVideo","isGroup","canHandleLocally","outgoing","webClientShouldHandle","participants","State"],"additionalProperties":false,"title":"Call","type":"object"},"BaseChat":{"properties":{"archive":{"title":"BaseChat.archive","type":"boolean"},"changeNumberNewJid":{"title":"BaseChat.changeNumberNewJid"},"changeNumberOldJid":{"title":"BaseChat.changeNumberOldJid"},"contact":{"$ref":"#/components/schemas/Contact","title":"BaseChat.contact","description":"The contact related to this chat"},"groupMetadata":{"$ref":"#/components/schemas/GroupMetadata","title":"BaseChat.groupMetadata","description":"Group metadata for this chat"},"isAnnounceGrpRestrict":{"title":"BaseChat.isAnnounceGrpRestrict","description":"If the chat is a group chat is restricted"},"formattedTitle":{"title":"BaseChat.formattedTitle","description":"The title of the chat","type":"string"},"canSend":{"title":"BaseChat.canSend","description":"Whether your host account is able to send messages to this chat","type":"boolean"},"isReadOnly":{"title":"BaseChat.isReadOnly","description":"Whether the chat is a group chat and the group is restricted","type":"boolean"},"kind":{"title":"BaseChat.kind","type":"string"},"labels":{"title":"BaseChat.labels","description":"The labels attached to this chat."},"lastReceivedKey":{"title":"BaseChat.lastReceivedKey","description":"The ID of the last message received in this chat"},"modifyTag":{"title":"BaseChat.modifyTag","type":"number"},"msgs":{"title":"BaseChat.msgs","description":"The messages in the chat"},"muteExpiration":{"title":"BaseChat.muteExpiration","description":"The expiration timestamp of the chat mute","type":"number"},"name":{"title":"BaseChat.name","description":"The name of the chat","type":"string"},"notSpam":{"title":"BaseChat.notSpam","description":"Whether the chat is marked as spam","type":"boolean"},"pendingMsgs":{"title":"BaseChat.pendingMsgs","description":"Messages that are pending to be sent","type":"boolean"},"pin":{"title":"BaseChat.pin","description":"Whether the chat is pinned","type":"number"},"presence":{"title":"BaseChat.presence","description":"The presence state of the chat participant"},"t":{"title":"BaseChat.t","description":"The timestamp of the last interaction in the chat","type":"number"},"unreadCount":{"title":"BaseChat.unreadCount","description":"The number of undread messages in this chat","type":"number"},"ack":{"title":"BaseChat.ack"},"isOnline":{"title":"BaseChat.isOnline","description":"@deprecated This is unreliable. Use the method [`isChatOnline`](https://open-wa.github.io/wa-automate-nodejs/classes/client.html#ischatonline) instead."},"lastSeen":{"title":"BaseChat.lastSeen","description":"@deprecated This is unreliable. Use the method [`getLastSeen`](https://open-wa.github.io/wa-automate-nodejs/classes/client.html#getlastseen) instead."},"pic":{"title":"BaseChat.pic","description":"URL of the chat picture if available","type":"string"}},"required":["archive","changeNumberNewJid","changeNumberOldJid","contact","groupMetadata","isAnnounceGrpRestrict","isReadOnly","kind","labels","lastReceivedKey","modifyTag","msgs","muteExpiration","name","notSpam","pendingMsgs","pin","presence","t","unreadCount"],"additionalProperties":false,"title":"BaseChat","type":"object"},"SingleChat":{"properties":{"id":{"$ref":"#/components/schemas/ContactId","title":"SingleChat.id","description":"The id of the chat"},"isGroup":{"title":"SingleChat.isGroup","description":"Whether the chat is a group chat","enum":[false],"type":"boolean"}},"required":["id","isGroup"],"additionalProperties":false,"title":"SingleChat","type":"object"},"GroupChat":{"properties":{"id":{"$ref":"#/components/schemas/GroupChatId","title":"GroupChat.id","description":"The id of the chat"},"isGroup":{"title":"GroupChat.isGroup","description":"Whether the chat is a group chat","enum":[true],"type":"boolean"}},"required":["id","isGroup"],"additionalProperties":false,"title":"GroupChat","type":"object"},"Chat":{"anyOf":[{"$ref":"#/components/schemas/SingleChat","title":"Chat"},{"$ref":"#/components/schemas/GroupChat","title":"Chat"}],"title":"Chat"},"LiveLocationChangedEvent":{"properties":{"id":{"title":"LiveLocationChangedEvent.id","type":"string"},"lat":{"title":"LiveLocationChangedEvent.lat","type":"number"},"lng":{"title":"LiveLocationChangedEvent.lng","type":"number"},"speed":{"title":"LiveLocationChangedEvent.speed","type":"number"},"lastUpdated":{"title":"LiveLocationChangedEvent.lastUpdated","type":"number"},"accuracy":{"title":"LiveLocationChangedEvent.accuracy","type":"number"},"degrees":{"title":"LiveLocationChangedEvent.degrees"},"msgId":{"title":"LiveLocationChangedEvent.msgId","description":"The message id that was sent when the liveLocation session was started.","type":"string"}},"required":["id","lat","lng","speed","lastUpdated","accuracy","degrees"],"additionalProperties":false,"title":"LiveLocationChangedEvent","type":"object"},"GroupChatCreationParticipantAddResponse":{"properties":{"code":{"enum":[200,400,403],"title":"GroupChatCreationParticipantAddResponse.code","description":"The resultant status code for adding the participant.\n\n200 if the participant was added successfully during the creation of the group.\n\n403 if the participant does not allow their account to be added to group chats. If you receive a 403, you will also get an `invite_code` and `invite_code_exp`","type":"number"},"invite_code":{"title":"GroupChatCreationParticipantAddResponse.invite_code","description":"If the participant is not allowed to be added to group chats due to their privacy settings, you will receive an `invite_code` which you can send to them via a text.","type":"string"},"invite_code_exp":{"title":"GroupChatCreationParticipantAddResponse.invite_code_exp","description":"The expiry ts of the invite_code. It is a number wrapped in a string, in order to get the proper time you can use this:\n\n```javascript\n new Date(Number(invite_code_exp)*1000)\n```","type":"string"}},"required":["code"],"additionalProperties":false,"title":"GroupChatCreationParticipantAddResponse","type":"object"},"GroupChatCreationResponse":{"properties":{"status":{"enum":[200,400],"title":"GroupChatCreationResponse.status","description":"The resultant status code of the group chat creation.\n\n200 if the group was created successfully.\n\n400 if the initial participant does not exist","type":"number"},"gid":{"$ref":"#/components/schemas/GroupChatId","title":"GroupChatCreationResponse.gid","description":"The group chat id"},"participants":{"items":{"properties":{"ContactId":{"$ref":"#/components/schemas/GroupChatCreationParticipantAddResponse","title":"GroupChatCreationResponse.participants.[].ContactId"}},"additionalProperties":false,"title":"GroupChatCreationResponse.participants.[]","type":"object"},"title":"GroupChatCreationResponse.participants","description":"The initial requested participants and their corresponding add responses","type":"array"}},"required":["status","gid","participants"],"additionalProperties":false,"title":"GroupChatCreationResponse","type":"object"},"EphemeralDuration":{"enum":[86400,604800,7776000],"title":"EphemeralDuration","description":"Ephemeral duration can be 1 day, 7 days or 90 days. The default is 1 day.","type":"number"},"SessionData":{"properties":{"WABrowserId":{"title":"SessionData.WABrowserId","type":"string"},"WASecretBundle":{"title":"SessionData.WASecretBundle","type":"string"},"WAToken1":{"title":"SessionData.WAToken1","type":"string"},"WAToken2":{"title":"SessionData.WAToken2","type":"string"}},"additionalProperties":false,"title":"SessionData","type":"object"},"DevTools":{"properties":{"user":{"title":"DevTools.user","description":"Username for devtools","type":"string"},"pass":{"title":"DevTools.pass","description":"Password for devtools","type":"string"}},"required":["user","pass"],"additionalProperties":false,"title":"DevTools","type":"object"},"EventPayload":{"properties":{"ts":{"title":"EventPayload.ts","type":"number"},"sessionId":{"title":"EventPayload.sessionId","type":"string"},"id":{"title":"EventPayload.id","type":"string"},"event":{"$ref":"#/components/schemas/SimpleListener","title":"EventPayload.event"},"data":{"title":"EventPayload.data"}},"required":["ts","sessionId","id","event","data"],"additionalProperties":{},"title":"EventPayload","type":"object"},"Webhook":{"properties":{"url":{"title":"Webhook.url","description":"The endpoint to send (POST) the event to.","type":"string"},"requestConfig":{"$ref":"#/components/schemas/AxiosRequestConfig","title":"Webhook.requestConfig","description":"The optional AxiosRequestConfig to use for firing the webhook event. This can be useful if you want to add some authentication when POSTing data to your server.\n\nFor example, if your webhook requires the username `admin` and password `1234` for authentication, you can set the requestConfig to:\n```\n{\n auth: {\n username: \"admin\",\n password: \"1234\",\n }\n}\n```\n\nPlease note, for security reasons, this is not returned when listing webhooks however it is returned when registering a webhook for verification purposes."},"id":{"title":"Webhook.id","description":"The ID of the given webhook setup. Use this ID with [[removeWebhook]]","type":"string"},"events":{"items":{"$ref":"#/components/schemas/SimpleListener","title":"Webhook.events.[]"},"title":"Webhook.events","description":"An array of events that are registered to be sent to this webhook.","type":"array"},"ts":{"title":"Webhook.ts","description":"Time when the webhook was registered in epoch time","type":"number"}},"required":["url","id","events","ts"],"additionalProperties":false,"title":"Webhook","type":"object"},"ProxyServerCredentials":{"properties":{"protocol":{"title":"ProxyServerCredentials.protocol","description":"The protocol on which the proxy is running. E.g `http`, `https`, `socks4` or `socks5`. This is optional and can be automatically determined from the address.","type":"string"},"address":{"title":"ProxyServerCredentials.address","description":"Proxy Server address. This can include the port e.g '127.0.0.1:5005'","type":"string"},"username":{"title":"ProxyServerCredentials.username","description":"Username for Proxy Server authentication","type":"string"},"password":{"title":"ProxyServerCredentials.password","description":"Password for Proxy Server authentication","type":"string"}},"required":["address","username","password"],"additionalProperties":false,"title":"ProxyServerCredentials","type":"object"},"ConfigObject":{"properties":{"sessionData":{"anyOf":[{"$ref":"#/components/schemas/SessionData","title":"ConfigObject.sessionData"},{"$ref":"#/components/schemas/Base64","title":"ConfigObject.sessionData"}],"title":"ConfigObject.sessionData","description":"The authentication object (as a JSON object or a base64 encoded string) that is required to migrate a session from one instance to another or to just restart an existing instance.\nThis sessionData is provided in a generated JSON file (it's a json file but contains the JSON data as a base64 encoded string) upon QR scan or an event.\n\nYou can capture the event like so:\n```javascript\nimport {create, ev} from '@open-wa/wa-automate';\n\n ev.on('sessionData.**', async (sessionData, sessionId) =>{\n console.log(sessionId, sessionData)\n })\n\n//or as base64 encoded string\n\n ev.on('sessionDataBase64.**', async (sessionDatastring, sessionId) =>{\n console.log(sessionId, sessionDatastring)\n })\n```\n NOTE: You can set sessionData as an evironmental variable also! The variable name has to be [sessionId (default = 'session) in all caps]_DATA_JSON. You have to make sure to surround your session data with single quotes to maintain the formatting.\n\nFor example:\n\nsessionId = 'session'\n\nTo set env var:\n```bash\n export SESSION_DATA_JSON=`...`\n```\nwhere ... is copied from session.data.json this will be a string most likley starting in `ey...` and ending with `==`\n\nSetting the sessionData in the environmental variable will override the sessionData object in the config."},"browserWSEndpoint":{"title":"ConfigObject.browserWSEndpoint","description":"ALPHA EXPERIMENTAL FEATURE! DO NOT USE IN PRODUCTION, REQUIRES TESTING.\n\nLearn more:\n\nhttps://pptr.dev/#?product=Puppeteer&version=v3.1.0&show=api-puppeteerconnectoptions\n\nhttps://medium.com/@jaredpotter1/connecting-puppeteer-to-existing-chrome-window-8a10828149e0","type":"string"},"useStealth":{"title":"ConfigObject.useStealth","description":"This flag allows you to disable or enable the use of the puppeteer stealth plugin. It is a good idea to use it, however it can cause issues sometimes. Set this to false if you are experiencing `browser.setMaxListeneres` issue. For now the default for this is false.","default":"`false`","type":"boolean"},"sessionDataPath":{"title":"ConfigObject.sessionDataPath","description":"The path relative to the current working directory (i.e where you run the command to start your process). This will be used to store and read your `.data.json` files. defualt to ''","type":"string"},"bypassCSP":{"title":"ConfigObject.bypassCSP","description":"Disable cors see: https://pptr.dev/#?product=Puppeteer&version=v3.0.4&show=api-pagesetbypasscspenabled If you are having an issue with sending media try to set this to true. Otherwise leave it set to false.","default":"`false`","type":"boolean"},"chromiumArgs":{"items":{"title":"ConfigObject.chromiumArgs.[]","type":"string"},"title":"ConfigObject.chromiumArgs","description":"This allows you to pass any array of custom chrome/chromium argument strings to the puppeteer instance.\nYou can find all possible arguements [here](https://peter.sh/experiments/chromium-command-line-switches/).","type":"array"},"skipBrokenMethodsCheck":{"title":"ConfigObject.skipBrokenMethodsCheck","description":"If set to true, skipBrokenMethodsCheck will bypass the health check before startup. It is highly suggested to not set this to true.","default":"`false`","type":"boolean"},"skipUpdateCheck":{"title":"ConfigObject.skipUpdateCheck","description":"If set to true, `skipUpdateCheck` will bypass the latest version check. This saves some time on boot (around 150 ms).","default":"`false`","type":"boolean"},"sessionId":{"title":"ConfigObject.sessionId","description":"This is the name of the session. You have to make sure that this is unique for every session.","default":"`session`","type":"string"},"licenseKey":{"$ref":"#/components/schemas/LicenseKey","title":"ConfigObject.licenseKey","description":"In order to unlock the functionality to send texts to unknown numbers, you need a License key.\nOne License Key is valid for each number. Each License Key starts from £5 per month.\n\nPlease check README for instructions on how to get a license key.\n\nNotes:\n1. You can change the number assigned to that License Key at any time, just message me the new number on the private discord channel.\n2. In order to cancel your License Key, simply stop your membership."},"customUserAgent":{"title":"ConfigObject.customUserAgent","description":"You may set a custom user agent. However, due to recent developments, this is not really neccessary any more.","type":"string"},"devtools":{"anyOf":[{"title":"ConfigObject.devtools","type":"boolean"},{"$ref":"#/components/schemas/DevTools","title":"ConfigObject.devtools"}],"title":"ConfigObject.devtools","description":"You can enable remote devtools by setting this to trye. If you set this to true there will be security on the devtools url.\nIf you want, you can also pass a username & password."},"blockCrashLogs":{"title":"ConfigObject.blockCrashLogs","description":"Setting this to true will block any network calls to crash log servers. This should keep anything you do under the radar.","default":"`true`","type":"boolean"},"cacheEnabled":{"title":"ConfigObject.cacheEnabled","description":"Setting this to false turn off the cache. This may improve memory usage.","default":"`false`","type":"boolean"},"browserRevision":{"title":"ConfigObject.browserRevision","description":"This is the specific browser revision to be downlaoded and used. You can find browser revision strings here: http://omahaproxy.appspot.com/\nLearn more about it here: https://github.com/puppeteer/puppeteer/blob/master/docs/api.md#class-browserfetcher\nIf you're having trouble with sending images, try '737027'.\nIf you go too far back things will start breaking !!!!!!\nNOTE: THIS WILL OVERRIDE useChrome and executablePath. ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING.","type":"string"},"throwErrorOnTosBlock":{"title":"ConfigObject.throwErrorOnTosBlock","description":"Setting this to true will throw an error if a session is not able to get a QR code or is unable to restart a session.","type":"boolean"},"headless":{"title":"ConfigObject.headless","description":"By default, all instances of @open-wa/wa-automate are headless (i.e you don't see a chrome window open), you can set this to false to show the chrome/chromium window.","default":"`true`","type":"boolean"},"autoRefresh":{"title":"ConfigObject.autoRefresh","description":"@deprecated THIS IS LOCKED TO `true` AND CANNOT BE TURNED OFF. PLEASE SEE [[authTimeout]]\n\nSetting this to true will result in new QR codes being generated if the end user takes too long to scan the QR code.","default":"`true`","type":"boolean"},"qrRefreshS":{"title":"ConfigObject.qrRefreshS","description":"@deprecated This now has no effect\n\nThis determines the interval at which to refresh the QR code. By default, WA updates the qr code every 18-19 seconds so make sure this value is set to UNDER 18 seconds!!","type":"number"},"qrTimeout":{"title":"ConfigObject.qrTimeout","description":"This determines how long the process should wait for a QR code to be scanned before killing the process entirely. To have the system wait continuously, set this to `0`.","default":"60","type":"number"},"waitForRipeSessionTimeout":{"title":"ConfigObject.waitForRipeSessionTimeout","description":"This determines how long the process should wait for a session to load fully before continuing the launch process.\nSet this to 0 to wait forever. Default is 5 seconds.","default":"5","type":"number"},"executablePath":{"title":"ConfigObject.executablePath","description":"Some features, like video upload, do not work without a chrome instance. Set this to the path of your chrome instance or you can use `useChrome:true` to automatically detect a chrome instance for you. Please note, this overrides `useChrome`.","type":"string"},"useChrome":{"title":"ConfigObject.useChrome","description":"If true, the program will automatically try to detect the instance of chorme on the machine. Please note this DOES NOT override executablePath.","default":"`false`","type":"boolean"},"proxyServerCredentials":{"$ref":"#/components/schemas/ProxyServerCredentials","title":"ConfigObject.proxyServerCredentials","description":"If sent, adds a call to waPage.authenticate with those credentials. Set `corsFix` to true if using a proxy results in CORS errors."},"qrLogSkip":{"title":"ConfigObject.qrLogSkip","description":"If true, skips logging the QR Code to the console.","default":"`false`","type":"boolean"},"restartOnCrash":{"title":"ConfigObject.restartOnCrash","description":"If set, the program will try to recreate itself when the page crashes. You have to pass the function that you want called upon restart. Please note that when the page crashes you may miss some messages.\nE.g:\n```javascript\nconst start = async (client: Client) => {...}\ncreate({\n...\nrestartOnCrash: start,\n...\n})\n```"},"disableSpins":{"title":"ConfigObject.disableSpins","description":"Setting this to true will simplify logs for use within docker containers by disabling spins (will still print raw messages).","default":"`false`","type":"boolean"},"logConsole":{"title":"ConfigObject.logConsole","description":"If true, this will log any console messages from the browser.","default":"`false`","type":"boolean"},"logConsoleErrors":{"title":"ConfigObject.logConsoleErrors","description":"If true, this will log any error messages from the browser instance","default":"`false`","type":"boolean"},"authTimeout":{"title":"ConfigObject.authTimeout","description":"This determines how long the process should wait for the session authentication. If exceeded, checks if phone is out of reach (turned of or without internet connection) and throws an error. It does not relate to the amount of time spent waiting for a qr code scan (see [[qrTimeout]]). To have the system wait continuously, set this to `0`.","default":"`60`","type":"number"},"oorTimeout":{"title":"ConfigObject.oorTimeout","description":"phoneIsOutOfReach check timeout","default":"`60`","type":"number"},"killProcessOnBrowserClose":{"title":"ConfigObject.killProcessOnBrowserClose","description":"Setting this to `true` will kill the whole process when the client is disconnected from the page or if the browser is closed.","default":"`false`","type":"boolean"},"safeMode":{"title":"ConfigObject.safeMode","description":"If true, client will check if the page is valid before each command. If page is not valid, it will throw an error.","default":"`false`","type":"boolean"},"skipSessionSave":{"title":"ConfigObject.skipSessionSave","description":"If true, the process will not save a data.json file. This means that sessions will not be saved and you will need to pass sessionData as a config param or create the session data.json file yourself","default":"`false`","type":"boolean"},"popup":{"title":"ConfigObject.popup","description":"If true, the process will open a browser window where you will see basic event logs and QR codes to authenticate the session. Usually it will open on port 3000. It can also be set to a preferred port.\n\nYou can also get the QR code png at (if localhost and port 3000):\n\n`http://localhost:3000/qr`\n\nor if you have multiple session:\n\n `http://localhost:3000/qr?sessionId=[sessionId]`","default":"`false | 3000`","anyOf":[{"type":"boolean"},{"type":"number"}]},"qrPopUpOnly":{"title":"ConfigObject.qrPopUpOnly","description":"This needs to be used in conjuction with `popup`, if `popup` is not true or a number (representing a desired port) then this will not work.\n\nSetting this to true will make sure that only the qr code png is served via the web server. This is useful if you do not need the whole status page.\n\nAs mentioned in [popup](#popup), the url for the qr code is `http://localhost:3000/qr` if the port is 3000.","type":"boolean"},"inDocker":{"title":"ConfigObject.inDocker","description":"If true, the process will try infer as many config variables as possible from the environment variables. The format of the variables are as below:\n```\nsessionData ==> WA_SESSION_DATA\nsessionDataPath ==> WA_SESSION_DATA_PATH\nsessionId ==> WA_SESSION_ID\ncustomUserAgent ==> WA_CUSTOM_USER_AGENT\nblockCrashLogs ==> WA_BLOCK_CRASH_LOGS\nblockAssets ==> WA_BLOCK_ASSETS\ncorsFix ==> WA_CORS_FIX\ncacheEnabled ==> WA_CACHE_ENABLED\nheadless ==> WA_HEADLESS\nqrTimeout ==> WA_QR_TIMEOUT\nuseChrome ==> WA_USE_CHROME\nqrLogSkip ==> WA_QR_LOG_SKIP\ndisableSpins ==> WA_DISABLE_SPINS\nlogConsole ==> WA_LOG_CONSOLE\nlogConsoleErrors==> WA_LOG_CONSOLE_ERRORS\nauthTimeout ==> WA_AUTH_TIMEOUT\nsafeMode ==> WA_SAFE_MODE\nskipSessionSave ==> WA_SKIP_SESSION_SAVE\npopup ==> WA_POPUP\nlicensekey ==> WA_LICENSE_KEY\n```","default":"`false`","type":"boolean"},"qrQuality":{"$ref":"#/components/schemas/QRQuality","title":"ConfigObject.qrQuality","description":"The output quality of the qr code during authentication. This can be any increment of 0.1 from 0.1 to 1.0.","default":"`1.0`"},"qrFormat":{"$ref":"#/components/schemas/QRFormat","title":"ConfigObject.qrFormat","description":"The output format of the qr code. `png`, `jpeg` or `webm`.","default":"`png`"},"hostNotificationLang":{"$ref":"#/components/schemas/NotificationLanguage","title":"ConfigObject.hostNotificationLang","description":"The language of the host notification. See: https://github.com/open-wa/wa-automate-nodejs/issues/709#issuecomment-673419088"},"blockAssets":{"title":"ConfigObject.blockAssets","description":"Setting this to true will block all assets from loading onto the page. This may result in some load time improvements but also increases instability.","default":"`false`","type":"boolean"},"keepUpdated":{"title":"ConfigObject.keepUpdated","description":"[ALPHA FEATURE - ONLY IMPLEMENTED FOR TESTING - DO NOT USE IN PRODUCTION YET]\nSetting this to true will result in the library making sure it is always starting with the latest version of itself. This overrides `skipUpdateCheck`.","default":"`false`","type":"boolean"},"resizable":{"title":"ConfigObject.resizable","description":"Syncs the viewport size with the window size which is how normal browsers act. Only relevant when `headless: false` and this overrides `viewport` config.","default":"`true`","type":"boolean"},"viewport":{"properties":{"width":{"title":"ConfigObject.viewport.width","description":"Page width in pixels","default":"`1440`","type":"number"},"height":{"title":"ConfigObject.viewport.height","description":"Page height in pixels","default":"`900`","type":"number"}},"additionalProperties":false,"title":"ConfigObject.viewport","description":"Set the desired viewport height and width. For CLI, use [width]x[height] format. E.g `--viewport 1920x1080`.","type":"object"},"legacy":{"title":"ConfigObject.legacy","description":"As the library is constantly evolving, some parts will be replaced with more efficient and improved code. In some of the infinite edge cases these new changes may not work for you. Set this to true to roll back on 'late beta' features. The reason why legacy is false by default is that in order for features to be tested they have to be released and used by everyone to find the edge cases and fix them.","default":"`false`","type":"boolean"},"deleteSessionDataOnLogout":{"title":"ConfigObject.deleteSessionDataOnLogout","description":"Deletes the session data file (if found) on logout event. This results in a quicker login when you restart the process.","default":"`false`","type":"boolean"},"killProcessOnTimeout":{"title":"ConfigObject.killProcessOnTimeout","description":"If set to true, the system will kill the whole node process when either an [[authTimeout]] or a [[qrTimeout]] has been reached. This is useful to prevent hanging processes.","default":"`false`","type":"boolean"},"killProcessOnBan":{"title":"ConfigObject.killProcessOnBan","description":"If set to true, the system will kill the whole node process when a \"TEMPORARY BAN\" is detected. This is useful to prevent hanging processes.\nIt is `true` by default because it is a very rare event and it is better to kill the process than to leave it hanging.","default":"`true`","type":"boolean"},"corsFix":{"title":"ConfigObject.corsFix","description":"Setting this to true will bypass web security. DO NOT DO THIS IF YOU DO NOT HAVE TO. CORS issue may arise when using a proxy.","default":"`false`","type":"boolean"},"callTimeout":{"title":"ConfigObject.callTimeout","description":"Amount of time (in ms) to wait for a client method (specifically methods that interact with the WA web session) to resolve. If a client method results takes longer than the timout value then it will result in a [[PageEvaluationTimeout]] error.\n\nIf you get this error, it does not automatically mean that the method failed - it just stops your program from waiting for a client method to resolve.\n\nThis is useful if you do not rely on the results of a client method (e.g the message ID).\n\nIf set to `0`, the process will wait indefinitely for a client method to resolve.","default":"0","type":"number"},"screenshotOnInitializationBrowserError":{"title":"ConfigObject.screenshotOnInitializationBrowserError","description":"When true, this option will take a screenshot of the browser when an unexpected error occurs within the browser during `create` initialization. The path will be `[working directory]/logs/[session ID]/[start timestamp]/[timestamp].jpg`","default":"`false`","type":"boolean"},"eventMode":{"title":"ConfigObject.eventMode","description":"Setting listeners may not be your cup of tea. With eventMode, all [[SimpleListener]] events will be registered automatically and be filed via the built in Events Listener.\n\nThis is useful because you can register/deregister the event listener as needed whereas the legacy method of setting callbacks are only be set once","default":"`true`;","type":"boolean"},"logFile":{"title":"ConfigObject.logFile","description":"If true, the system will automatically create a log of all processes relating to actions sent to the web session.\n\nThe location of the file will be relative to the process directory (pd)\n\n`[pd]/[sessionId]/[start timestamp].log`","default":"false","type":"boolean"},"idCorrection":{"title":"ConfigObject.idCorrection","description":"When true, the system will attempt to correct chatIds and groupChatIds. This means you can ignore `@c.us` and `@g.us` distinctions in some parameters.","default":"false","type":"boolean"},"stickerServerEndpoint":{"title":"ConfigObject.stickerServerEndpoint","description":"Redundant until self-hostable sticker server is available.","default":"`https://sticker-api.openwa.dev`","anyOf":[{"type":"string"},{"type":"boolean"}]},"ghPatch":{"title":"ConfigObject.ghPatch","description":"This will force the library to use the default cached raw github link for patches to shave a few hundred milliseconds from your launch time. If you use this option, you will need to wait about 5 minutes before trying out new patches.","default":"`false`","type":"boolean"},"cachedPatch":{"title":"ConfigObject.cachedPatch","description":"Setting this to `true` will save a local copy of the patches.json file (as patches.ignore.data.json) which will be used in subsequent instantiations of the session. While the rest of the launch procedure is running, the library will fetch and save a recent version of the patches to ensure your patches don't go stale. This will be ignored if the cached patches are more than a day old.","default":"`false`","type":"boolean"},"logDebugInfoAsObject":{"title":"ConfigObject.logDebugInfoAsObject","description":"Setting `this` to true will replace the `console.table` with a stringified logging of the debug info object instead. This would be useful to set for smaller terminal windows. If `disableSpins` is `true` then this will also be `true`.","default":"`false`","type":"boolean"},"logInternalEvents":{"title":"ConfigObject.logInternalEvents","description":"This will make the library log all internal wa web events to the console. This is useful for debugging purposes. DO NOT TURN THIS ON UNLESS ASKED TO.","type":"boolean"},"killClientOnLogout":{"title":"ConfigObject.killClientOnLogout","description":"Kill the client when a logout is detected","default":"`false`","type":"boolean"},"throwOnExpiredSessionData":{"title":"ConfigObject.throwOnExpiredSessionData","description":"This will make the `create` command return `false` if the detected session data is expired.\n\nThis will mean, the process will not attempt to automatically get a new QR code.","default":"`false`","type":"boolean"},"useNativeProxy":{"title":"ConfigObject.useNativeProxy","description":"Some sessions may experience issues with sending media when using proxies. Using the native proxy system instead of the recommended 3rd party library may fix these issues.","default":"`false`","type":"boolean"},"raspi":{"title":"ConfigObject.raspi","description":"Set this to `true` to make the library work on Raspberry Pi OS.\n\nMake sure to run the following command before running the library the first time:\n\n```\n> sudo apt update -y && sudo apt install chromium-browser chromium-codecs-ffmpeg -y && sudo apt upgrade\n```\n\nIf you're using the CLI, you can set this value to `true` by adding the following flag to the CLI command\n\n```\n> npx @open-wa/wa-automate ... --raspi\n```","default":"`false`","type":"boolean"},"pQueueDefault":{"title":"ConfigObject.pQueueDefault","description":"Default pqueue options applied to all listeners that can take pqueue options as a second optional parameter. For now, this only includes `onMessage` and `onAnyMessage`.\n\nSee: https://github.com/sindresorhus/p-queue#options\n\nExample: process 5 events within every 3 seconds window. Make sure to only process at most 2 at any one time. Make sure there is at least 100ms between each event processing.\n\n```javascript\n {\n intervalCap: 5, //process 5 events\n interval: 3000, //within every three second window\n concurrency: 2, //make sure to process, at most, 2 events at any one time\n timeout: 100, //make sure there is a 100ms gap between each event processing.\n carryoverConcurrencyCount: true //If there are more than 5 events in that period, process them within the next 3 second period. Make sure this is always set to true!!!\n }\n```","default":"`undefined`"},"messagePreprocessor":{"title":"ConfigObject.messagePreprocessor","description":"Set a preprocessor, or multiple chained preprocessors, for messages. See [MPConfigType](/) for more info.\n\noptions: `SCRUB`, `BODY_ONLY`, `AUTO_DECRYPT`, `AUTO_DECRYPT_SAVE`, `UPLOAD_CLOUD`.","default":"`undefined`"},"preprocFilter":{"title":"ConfigObject.preprocFilter","description":"Set an array filter to be used with messagePreprocessor to limit which messages are preprocessed.\n\nE.g if you want to scrub all messages that are not from a group, you can do the following:\n`\"m=>!m.isGroupMsg\"`","default":"`undefined`","type":"string"},"cloudUploadOptions":{"properties":{"provider":{"$ref":"#/components/schemas/CLOUD_PROVIDERS","title":"ConfigObject.cloudUploadOptions.provider","description":"`AWS`, `GCP` or `WASABI`\n\nenv: `OW_CLOUD_ACCESS_KEY_ID`"},"accessKeyId":{"title":"ConfigObject.cloudUploadOptions.accessKeyId","description":"S3 compatible access key ID.\n\ne.g: `AKIAIOSFODNN7EXAMPLE` or `GOOGTS7C7FUP3AIRVJTE2BCD`\n\nenv: `OW_CLOUD_ACCESS_KEY_ID`","type":"string"},"secretAccessKey":{"title":"ConfigObject.cloudUploadOptions.secretAccessKey","description":"S3 compatible secret access key.\n\ne.g `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`\n\nenv: `OW_CLOUD_SECRET_ACCESS_KEY`","type":"string"},"bucket":{"title":"ConfigObject.cloudUploadOptions.bucket","description":"Bucket name\n\nenv: `OW_CLOUD_BUCKET`","type":"string"},"region":{"title":"ConfigObject.cloudUploadOptions.region","description":"Bucket region.\n\nNot required for `GCP` provider\n\nenv: `OW_CLOUD_REGION`","type":"string"},"ignoreHostAccount":{"title":"ConfigObject.cloudUploadOptions.ignoreHostAccount","description":"Ignore processing of messages that are sent by the host account itself\n\nenv: `OW_CLOUD_IGNORE_HOST`","type":"boolean"},"directory":{"anyOf":[{"$ref":"#/components/schemas/DIRECTORY_STRATEGY","title":"ConfigObject.cloudUploadOptions.directory"},{"title":"ConfigObject.cloudUploadOptions.directory","type":"string"}],"title":"ConfigObject.cloudUploadOptions.directory","description":"The directory strategy to use when uploading files. Or just set it to a custom directory string.\n\nenv: `OW_DIRECTORY`"},"public":{"title":"ConfigObject.cloudUploadOptions.public","description":"Setting this to true will make the uploaded file public","type":"boolean"},"headers":{"additionalProperties":{"type":"string"},"title":"ConfigObject.cloudUploadOptions.headers","description":"Extra headers to add to the upload request","type":"object"}},"required":["provider","accessKeyId","secretAccessKey","bucket"],"additionalProperties":false,"title":"ConfigObject.cloudUploadOptions","description":"REQUIRED IF `messagePreprocessor` IS SET TO `UPLOAD_CLOUD`.\n\nThis can be set via the config or the corresponding environment variables.","type":"object"},"onError":{"$ref":"#/components/schemas/OnError","title":"ConfigObject.onError","description":"What to do when an error is detected on a client method.","default":"`OnError.NOTHING`"},"multiDevice":{"title":"ConfigObject.multiDevice","description":"Please note that multi-device is still in beta so a lot of things may not work. It is HIGHLY suggested to NOT use this in production!!!!\n\nSet this to true if you're using the multidevice beta.","default":"`true`\n:::danger\nSome features (e.g [[sendLinkWithAutoPreview]]) **do not** work with multi-device beta. Check [this `api`](#).\n:::","type":"boolean"},"sessionDataBucketAuth":{"title":"ConfigObject.sessionDataBucketAuth","description":"Base64 encoded S3 Bucket & Authentication object for session data files. The object should be in the same format as cloudUploadOptions.","type":"string"},"autoEmoji":{"anyOf":[{"title":"ConfigObject.autoEmoji","type":"string"},{"title":"ConfigObject.autoEmoji","enum":[false],"type":"boolean"}],"title":"ConfigObject.autoEmoji","description":"Set the automatic emoji detection character. Set this to `false` to disable auto emoji. Default is `:`.","default":"`:`"},"maxChats":{"title":"ConfigObject.maxChats","description":"Set the maximum amount of chats to be present in a session.","type":"number"},"maxMessages":{"title":"ConfigObject.maxMessages","description":"Set the maximum amount of messages to be present in a session.","type":"number"},"discord":{"title":"ConfigObject.discord","description":"Your Discord ID to get onto the sticker leaderboard!","type":"string"},"ignoreNuke":{"title":"ConfigObject.ignoreNuke","description":"Don't implicitly determine if the host logged out.","type":"boolean"},"ensureHeadfulIntegrity":{"title":"ConfigObject.ensureHeadfulIntegrity","description":"Makes sure the headless session is usable even on first login.\nHeadful sessions are ususally only usable on reauthentication.","type":"boolean"},"waitForRipeSession":{"title":"ConfigObject.waitForRipeSession","description":"wait for a valid headful session. Not required in recent versions.\ndefault: `true`","type":"boolean"},"qrMax":{"title":"ConfigObject.qrMax","description":"Automatically kill the process after a set amount of qr codes","type":"number"},"ezqr":{"title":"ConfigObject.ezqr","description":"Expose a URL where you can easily scan the qr code","type":"boolean"},"logging":{"items":{"$ref":"#/components/schemas/ConfigLogTransport","title":"ConfigObject.logging.[]"},"title":"ConfigObject.logging","description":"An array of [winston](https://github.com/winstonjs/winston/blob/master/docs/transports.md#additional-transports) logging transport configurations.\n\n[Check this discussion to see how to set up logging](https://github.com/open-wa/wa-automate-nodejs/discussions/2373)","type":"array"},"linkParser":{"title":"ConfigObject.linkParser","description":"The URL of your instance of [serverless meta grabber](https://github.com/RemiixInc/meta-grabber-serverless) by [RemiixInc](https://github.com/RemiixInc).\n\ndefault: `https://link.openwa.cloud/api`","type":"string"},"aggressiveGarbageCollection":{"title":"ConfigObject.aggressiveGarbageCollection","description":"Setting this to true will run `gc()` on before every command sent to the browser.\n\nThis is experimental and may not work or it may have unforeseen sideeffects.","type":"boolean"}},"additionalProperties":{},"title":"ConfigObject","type":"object"},"AdvancedConfig":{"allOf":[{"$ref":"#/components/schemas/ConfigObject"},{"properties":{"licenseKey":{"$ref":"#/components/schemas/LicenseKeyConfig","title":"licenseKey"}},"required":["licenseKey"],"additionalProperties":false,"type":"object"}],"title":"AdvancedConfig"},"LicenseKey":{"title":"LicenseKey","type":"string"},"LicenseKeyConfig":{"anyOf":[{"$ref":"#/components/schemas/LicenseKeyConfigFunction","title":"LicenseKeyConfig"},{"$ref":"#/components/schemas/LicenseKeyConfigObject","title":"LicenseKeyConfig"},{"$ref":"#/components/schemas/LicenseKey","title":"LicenseKeyConfig"}],"title":"LicenseKeyConfig"},"NumberCheck":{"properties":{"id":{"$ref":"#/components/schemas/Id","title":"NumberCheck.id"},"status":{"enum":[200,404],"title":"NumberCheck.status","type":"number"},"isBusiness":{"title":"NumberCheck.isBusiness","type":"boolean"},"canReceiveMessage":{"title":"NumberCheck.canReceiveMessage","type":"boolean"},"numberExists":{"title":"NumberCheck.numberExists","type":"boolean"}},"required":["id","status","isBusiness","canReceiveMessage","numberExists"],"additionalProperties":false,"title":"NumberCheck","type":"object"},"BizCategory":{"properties":{"id":{"title":"BizCategory.id","type":"string"},"localized_display_name":{"title":"BizCategory.localized_display_name","type":"string"}},"required":["id","localized_display_name"],"additionalProperties":false,"title":"BizCategory","type":"object"},"BizProfileOptions":{"properties":{"commerceExperience":{"enum":["catalog","none","shop"],"title":"BizProfileOptions.commerceExperience","type":"string"},"cartEnabled":{"title":"BizProfileOptions.cartEnabled","type":"boolean"}},"required":["commerceExperience","cartEnabled"],"additionalProperties":false,"title":"BizProfileOptions","type":"object"},"BusinessHours":{"properties":{"config":{"title":"BusinessHours.config"},"timezone":{"title":"BusinessHours.timezone","type":"string"}},"required":["config","timezone"],"additionalProperties":false,"title":"BusinessHours","type":"object"},"BusinessProfile":{"properties":{"id":{"$ref":"#/components/schemas/ContactId","title":"BusinessProfile.id","description":"The Contact ID of the business"},"tag":{"title":"BusinessProfile.tag","description":"Some special string that identifies the business (?)","type":"string"},"description":{"title":"BusinessProfile.description","description":"The business description","type":"string"},"categories":{"items":{"$ref":"#/components/schemas/BizCategory","title":"BusinessProfile.categories.[]"},"title":"BusinessProfile.categories","description":"The business' categories","type":"array"},"profileOptions":{"$ref":"#/components/schemas/BizProfileOptions","title":"BusinessProfile.profileOptions","description":"The business' profile options"},"email":{"title":"BusinessProfile.email","description":"The business' email address","type":"string"},"website":{"items":{"title":"BusinessProfile.website.[]","type":"string"},"title":"BusinessProfile.website","description":"Array of strings that represent the business' websites","type":"array"},"businessHours":{"$ref":"#/components/schemas/BusinessHours","title":"BusinessProfile.businessHours","description":"The operating hours of the business"},"catalogStatus":{"title":"BusinessProfile.catalogStatus","description":"The status of the business' catalog","type":"string"},"address":{"title":"BusinessProfile.address","description":"The address of the business","type":"string"},"fbPage":{"title":"BusinessProfile.fbPage","description":"The facebook page of the business"},"igProfessional":{"title":"BusinessProfile.igProfessional","description":"The instagram profile of the business"},"isProfileLinked":{"title":"BusinessProfile.isProfileLinked","type":"boolean"},"coverPhoto":{"properties":{"id":{"title":"BusinessProfile.coverPhoto.id","description":"The id of the cover photo","type":"string"},"url":{"title":"BusinessProfile.coverPhoto.url","description":"The URL of the cover photo. It might download as an .enc but just change the extension to .jpg","type":"string"}},"required":["id","url"],"additionalProperties":false,"title":"BusinessProfile.coverPhoto","type":"object"},"latitude":{"title":"BusinessProfile.latitude","description":"The latitude of the business location if set","type":"number"},"longitude":{"title":"BusinessProfile.longitude","description":"The longitude of the business location if set","type":"number"}},"required":["id","tag","description","categories","profileOptions","email","website","businessHours","catalogStatus","address","fbPage","igProfessional","isProfileLinked","coverPhoto","latitude","longitude"],"additionalProperties":false,"title":"BusinessProfile","type":"object"},"Contact":{"properties":{"formattedName":{"title":"Contact.formattedName","type":"string"},"id":{"$ref":"#/components/schemas/ContactId","title":"Contact.id"},"isBusiness":{"title":"Contact.isBusiness","type":"boolean"},"isEnterprise":{"title":"Contact.isEnterprise","description":"Most likely true when the account has a green tick. See `verifiedLevel` also.","type":"boolean"},"isMe":{"title":"Contact.isMe","type":"boolean"},"isMyContact":{"title":"Contact.isMyContact","type":"boolean"},"isPSA":{"title":"Contact.isPSA","type":"boolean"},"isUser":{"title":"Contact.isUser","type":"boolean"},"isWAContact":{"title":"Contact.isWAContact","type":"boolean"},"labels":{"items":{"title":"Contact.labels.[]","type":"string"},"title":"Contact.labels","type":"array"},"msgs":{"items":{"$ref":"#/components/schemas/Message","title":"Contact.msgs.[]"},"title":"Contact.msgs","type":"array"},"name":{"title":"Contact.name","type":"string"},"plaintextDisabled":{"title":"Contact.plaintextDisabled","type":"boolean"},"profilePicThumbObj":{"properties":{"eurl":{"title":"Contact.profilePicThumbObj.eurl","type":"string"},"id":{"$ref":"#/components/schemas/Id","title":"Contact.profilePicThumbObj.id"},"img":{"title":"Contact.profilePicThumbObj.img","type":"string"},"imgFull":{"title":"Contact.profilePicThumbObj.imgFull","type":"string"},"raw":{"title":"Contact.profilePicThumbObj.raw","type":"string"},"tag":{"title":"Contact.profilePicThumbObj.tag","type":"string"}},"required":["eurl","id","img","imgFull","raw","tag"],"additionalProperties":false,"title":"Contact.profilePicThumbObj","type":"object"},"pushname":{"title":"Contact.pushname","type":"string"},"shortName":{"title":"Contact.shortName","type":"string"},"statusMute":{"title":"Contact.statusMute","type":"boolean"},"type":{"title":"Contact.type","type":"string"},"verifiedLevel":{"title":"Contact.verifiedLevel","description":"0 = not verified\n2 = verified (most likely represents a blue tick)","type":"number"},"verifiedName":{"title":"Contact.verifiedName","description":"The business account name verified by WA.","type":"string"},"isOnline":{"title":"Contact.isOnline","type":"boolean"},"lastSeen":{"title":"Contact.lastSeen","type":"number"},"businessProfile":{"$ref":"#/components/schemas/BusinessProfile","title":"Contact.businessProfile","description":"If the contact is a business, the business information will be added to the contact object.\n\nIn some circumstances this will be out of date or lacking certain fields. In those cases you have to use `client.getBusinessProfile`"}},"required":["formattedName","id","isBusiness","isEnterprise","isMe","isMyContact","isPSA","isUser","isWAContact","labels","msgs","name","plaintextDisabled","profilePicThumbObj","pushname","shortName","statusMute","type","verifiedLevel","verifiedName"],"additionalProperties":false,"title":"Contact","type":"object"},"Participant":{"properties":{"contact":{"$ref":"#/components/schemas/Contact","title":"Participant.contact"},"id":{"$ref":"#/components/schemas/NonSerializedId","title":"Participant.id"},"isAdmin":{"title":"Participant.isAdmin","type":"boolean"},"isSuperAdmin":{"title":"Participant.isSuperAdmin","type":"boolean"}},"required":["contact","id","isAdmin","isSuperAdmin"],"additionalProperties":false,"title":"Participant","type":"object"},"GroupMetadata":{"properties":{"id":{"$ref":"#/components/schemas/GroupChatId","title":"GroupMetadata.id","description":"The chat id of the group [[GroupChatId]]"},"creation":{"title":"GroupMetadata.creation","description":"The timestamp of when the group was created","type":"number"},"owner":{"$ref":"#/components/schemas/NonSerializedId","title":"GroupMetadata.owner","description":"The id of the owner of the group [[ContactId]]"},"participants":{"items":{"$ref":"#/components/schemas/Participant","title":"GroupMetadata.participants.[]"},"title":"GroupMetadata.participants","description":"An array of participants in the group","type":"array"},"pendingParticipants":{"items":{"$ref":"#/components/schemas/Participant","title":"GroupMetadata.pendingParticipants.[]"},"title":"GroupMetadata.pendingParticipants","description":"Unknown.","type":"array"},"desc":{"title":"GroupMetadata.desc","description":"The description of the group","type":"string"},"descOwner":{"$ref":"#/components/schemas/ContactId","title":"GroupMetadata.descOwner","description":"The account that set the description last."},"trusted":{"title":"GroupMetadata.trusted","type":"boolean"},"suspended":{"title":"GroupMetadata.suspended","description":"Not sure what this represents","type":"boolean"},"support":{"title":"GroupMetadata.support","description":"Not sure what this represents","type":"boolean"},"isParentGroup":{"title":"GroupMetadata.isParentGroup","description":"Is this group a parent group (a.k.a community)","type":"boolean"},"groupType":{"enum":["DEAFULT","SUBGROUP","COMMUNITY"],"title":"GroupMetadata.groupType","description":"The type of group","type":"string"},"defaultSubgroup":{"title":"GroupMetadata.defaultSubgroup","description":"Communities have a default group chat","type":"boolean"},"isParentGroupClosed":{"title":"GroupMetadata.isParentGroupClosed","type":"boolean"},"joinedSubgroups":{"items":{"$ref":"#/components/schemas/GroupId","title":"GroupMetadata.joinedSubgroups.[]"},"title":"GroupMetadata.joinedSubgroups","description":"List of Group IDs that the host account has joined as part of this community","type":"array"}},"required":["id","creation","owner","participants","pendingParticipants","groupType","defaultSubgroup","isParentGroupClosed","joinedSubgroups"],"additionalProperties":false,"title":"GroupMetadata","type":"object"},"ParticipantChangedEventModel":{"properties":{"by":{"$ref":"#/components/schemas/ContactId","title":"ParticipantChangedEventModel.by"},"action":{"$ref":"#/components/schemas/groupChangeEvent","title":"ParticipantChangedEventModel.action"},"who":{"items":{"$ref":"#/components/schemas/ContactId","title":"ParticipantChangedEventModel.who.[]"},"title":"ParticipantChangedEventModel.who","type":"array"},"chat":{"$ref":"#/components/schemas/ChatId","title":"ParticipantChangedEventModel.chat"}},"required":["by","action","who","chat"],"additionalProperties":false,"title":"ParticipantChangedEventModel","type":"object"},"NewCommunityGroup":{"properties":{"subject":{"title":"NewCommunityGroup.subject","type":"string"},"icon":{"$ref":"#/components/schemas/DataURL","title":"NewCommunityGroup.icon"},"ephemeralDuration":{"title":"NewCommunityGroup.ephemeralDuration","type":"number"}},"required":["subject"],"additionalProperties":false,"title":"NewCommunityGroup","description":"Used when creating a new community with.","type":"object"},"GenericGroupChangeEvent":{"properties":{"author":{"$ref":"#/components/schemas/Contact","title":"GenericGroupChangeEvent.author","description":"The contact who triggered this event. (E.g the contact who changed the group picture)"},"body":{"title":"GenericGroupChangeEvent.body","description":"Some more information about the event","type":"string"},"groupMetadata":{"$ref":"#/components/schemas/GroupMetadata","title":"GenericGroupChangeEvent.groupMetadata"},"groupPic":{"title":"GenericGroupChangeEvent.groupPic","description":"Base 64 encoded image","type":"string"},"id":{"$ref":"#/components/schemas/MessageId","title":"GenericGroupChangeEvent.id"},"type":{"enum":["picutre","create","delete","subject","revoke_invite","description","restrict","announce","no_frequently_forwarded","announce_msg_bounce","add","remove","demote","promote","invite","leave","modify","v4_add_invite_sent","v4_add_invite_join","growth_locked","growth_unlocked","linked_group_join"],"title":"GenericGroupChangeEvent.type","description":"Type of the event","type":"string"}},"required":["author","body","groupMetadata","groupPic","id","type"],"additionalProperties":false,"title":"GenericGroupChangeEvent","type":"object"},"Id":{"properties":{"server":{"title":"Id.server","type":"string"},"user":{"title":"Id.user","type":"string"},"_serialized":{"title":"Id._serialized","type":"string"}},"required":["server","user","_serialized"],"additionalProperties":false,"title":"Id","type":"object"},"EasyApiResponse":{"properties":{"success":{"title":"EasyApiResponse.success","type":"boolean"},"response":{"title":"EasyApiResponse.response"}},"required":["success","response"],"additionalProperties":false,"title":"EasyApiResponse","type":"object"},"Label":{"properties":{"id":{"title":"Label.id","description":"The internal ID of the label. Usually a number represented as a string e.g \"1\"","type":"string"},"name":{"title":"Label.name","description":"The text contents of the label","type":"string"},"items":{"items":{"properties":{"type":{"enum":["Chat","Contact","Message"],"title":"Label.items.[].type","description":"Labels can be applied to chats, contacts or individual messages. This represents the type of object the label is attached to.","type":"string"},"id":{"anyOf":[{"$ref":"#/components/schemas/ContactId","title":"Label.items.[].id"},{"$ref":"#/components/schemas/ChatId","title":"Label.items.[].id"},{"$ref":"#/components/schemas/MessageId","title":"Label.items.[].id"}],"title":"Label.items.[].id","description":"The ID of the object that the label is atteched to."}},"required":["type","id"],"additionalProperties":false,"title":"Label.items.[]","type":"object"},"title":"Label.items","description":"The items that are tagged with this label","type":"array"}},"required":["id","name","items"],"additionalProperties":false,"title":"Label","type":"object"},"StickerMetadata":{"properties":{"author":{"title":"StickerMetadata.author","description":"The author of the sticker","default":"``","type":"string"},"pack":{"title":"StickerMetadata.pack","description":"The pack of the sticker","default":"``","type":"string"},"removebg":{"anyOf":[{"title":"StickerMetadata.removebg","type":"boolean"},{"title":"StickerMetadata.removebg","enum":["HQ"],"type":"string"}],"title":"StickerMetadata.removebg","description":"ALPHA FEATURE - NO GUARANTEES IT WILL WORK AS EXPECTED:\n\n[REQUIRES AN INSIDERS LICENSE-KEY](https://gum.co/open-wa?tier=Insiders%20Program)\n\nAttempt to remove the background of the sticker. Only valid for paid licenses.\n\noptions:\n\n `true` - remove background after resizing\n\n `HQ` - remove background before resizing (i.e on original photo)","default":"`false`"},"keepScale":{"title":"StickerMetadata.keepScale","description":"Setting this to `true` will skip the resizing/square-cropping of the sticker. It will instead 'letterbox' the image with a transparent background.","type":"boolean"},"circle":{"title":"StickerMetadata.circle","description":"Applies a circular mask to the sticker. Works on images only for now.","type":"boolean"},"discord":{"title":"StickerMetadata.discord","description":"Your Discord ID to get onto the sticker leaderboard!","type":"string"},"cropPosition":{"enum":["top","right top","right","right bottom","bottom","left bottom","left","left top","north","northeast","east","southeast","south","southwest","west","northwest","center","centre","entropy","attention"],"title":"StickerMetadata.cropPosition","description":"Crop position\n\nLearn more: https://sharp.pixelplumbing.com/api-resize","default":"`attention`","type":"string"},"cornerRadius":{"title":"StickerMetadata.cornerRadius","description":"The corner radius of the sticker when `stickerMetadata.circle` is set to true.\n@minimum `1`\n@maximum `100`\n@multipleOf `1`","default":"`100`","type":"number"}},"required":["author","pack"],"additionalProperties":false,"title":"StickerMetadata","type":"object"},"Mp4StickerConversionProcessOptions":{"properties":{"fps":{"title":"Mp4StickerConversionProcessOptions.fps","description":"Desired Frames per second of the sticker output","default":"`10`","type":"number"},"startTime":{"title":"Mp4StickerConversionProcessOptions.startTime","description":"The video start time of the sticker","default":"`00:00:00.0`","type":"string"},"endTime":{"title":"Mp4StickerConversionProcessOptions.endTime","description":"The video end time of the sticker. By default, stickers are made from the first 5 seconds of the video","default":"`00:00:05.0`","type":"string"},"loop":{"title":"Mp4StickerConversionProcessOptions.loop","description":"The amount of times the video loops in the sticker. To save processing time, leave this as 0\ndefault `0`","type":"number"},"crop":{"title":"Mp4StickerConversionProcessOptions.crop","description":"Centres and crops the video.\ndefault `true`","type":"boolean"},"log":{"title":"Mp4StickerConversionProcessOptions.log","description":"Prints ffmpeg logs in the terminal","default":"`false`","type":"boolean"},"square":{"title":"Mp4StickerConversionProcessOptions.square","description":"A number representing the WxH of the output sticker (default `512x512`). Lowering this number is a great way to process longer duration stickers. The max value is `512`.\ndefault `512`","type":"number"}},"additionalProperties":false,"title":"Mp4StickerConversionProcessOptions","type":"object"},"Message":{"properties":{"selectedButtonId":{"title":"Message.selectedButtonId","description":"The ID of the selected button","type":"string"},"id":{"$ref":"#/components/schemas/MessageId","title":"Message.id","description":"The id of the message. Consists of the Chat ID and a unique string.\n\nExample:\n\n```\nfalse_447123456789@c.us_7D914FEA78BE10277743F4B785045C37\n```"},"mId":{"title":"Message.mId","description":"The unique segment of the message id.\n\nExample:\n\n```\n7D914FEA78BE10277743F4B785045C37\n```","type":"string"},"body":{"title":"Message.body","description":"The body of the message. If the message type is `chat` , `body` will be the text of the chat. If the message type is some sort of media, then this body will be the thumbnail of the media.","type":"string"},"text":{"title":"Message.text","description":"a convenient way to get the main text content from a message.","type":"string"},"type":{"$ref":"#/components/schemas/MessageTypes","title":"Message.type","description":"The type of the message, see [[MessageTypes]]"},"filehash":{"title":"Message.filehash","description":"Used to checking the integrity of the decrypted media.","type":"string"},"mimetype":{"title":"Message.mimetype","type":"string"},"lat":{"title":"Message.lat","description":"The latitude of a location message","type":"string"},"lng":{"title":"Message.lng","description":"The longitude of a location message","type":"string"},"loc":{"title":"Message.loc","description":"The text associated with a location message","type":"string"},"t":{"title":"Message.t","description":"The timestamp of the message","type":"number"},"notifyName":{"title":"Message.notifyName","type":"string"},"from":{"$ref":"#/components/schemas/ChatId","title":"Message.from","description":"The chat from which the message was sent"},"to":{"$ref":"#/components/schemas/ChatId","title":"Message.to","description":"The chat id to which the message is being sent"},"self":{"enum":["in","out"],"title":"Message.self","description":"Indicates whether the message is coming into the session or going out of the session. You can have a message sent by the host account show as `in` when the message was sent from another\nsession or from the host account device itself.","type":"string"},"duration":{"title":"Message.duration","description":"The length of the media in the message, if it exists.","anyOf":[{"type":"string"},{"type":"number"}]},"ack":{"$ref":"#/components/schemas/MessageAck","title":"Message.ack","description":"The acknolwedgement state of a message [[MessageAck]]"},"invis":{"title":"Message.invis","type":"boolean"},"isNewMsg":{"title":"Message.isNewMsg","type":"boolean"},"star":{"title":"Message.star","type":"boolean"},"recvFresh":{"title":"Message.recvFresh","type":"boolean"},"broadcast":{"title":"Message.broadcast","description":"If the message is sent as a broadcast","type":"boolean"},"isForwarded":{"title":"Message.isForwarded","description":"If the message has been forwarded","type":"boolean"},"labels":{"items":{"title":"Message.labels.[]","type":"string"},"title":"Message.labels","description":"The labels associated with the message (used with business accounts)","type":"array"},"mentionedJidList":{"items":{"$ref":"#/components/schemas/ContactId","title":"Message.mentionedJidList.[]"},"title":"Message.mentionedJidList","description":"An array of all mentioned numbers in this message.","type":"array"},"caption":{"title":"Message.caption","description":"If the message is of a media type, it may also have a caption","type":"string"},"sender":{"$ref":"#/components/schemas/Contact","title":"Message.sender","description":"The contact object of the account that sent the message"},"timestamp":{"title":"Message.timestamp","description":"the timestanmp of the message","type":"number"},"filePath":{"title":"Message.filePath","description":"When `config.messagePreprocessor: \"AUTO_DECRYPT_SAVE\"` is set, media is decrypted and saved on disk in a folder called media relative to the current working directory.\n\nThis is the filePath of the decrypted file.","type":"string"},"filename":{"title":"Message.filename","description":"The given filename of the file","type":"string"},"content":{"title":"Message.content","type":"string"},"isGroupMsg":{"title":"Message.isGroupMsg","type":"boolean"},"isMMS":{"title":"Message.isMMS","type":"boolean"},"isMedia":{"title":"Message.isMedia","type":"boolean"},"isNotification":{"title":"Message.isNotification","type":"boolean"},"isPSA":{"title":"Message.isPSA","type":"boolean"},"fromMe":{"title":"Message.fromMe","description":"If the message is from the host account","type":"boolean"},"chat":{"$ref":"#/components/schemas/Chat","title":"Message.chat","description":"The chat object"},"chatId":{"$ref":"#/components/schemas/ChatId","title":"Message.chatId"},"author":{"title":"Message.author","type":"string"},"stickerAuthor":{"title":"Message.stickerAuthor","type":"string"},"stickerPack":{"title":"Message.stickerPack","type":"string"},"clientUrl":{"title":"Message.clientUrl","description":"@deprecated Ironically, you should be using `deprecatedMms3Url` instead","type":"string"},"deprecatedMms3Url":{"title":"Message.deprecatedMms3Url","type":"string"},"isQuotedMsgAvailable":{"title":"Message.isQuotedMsgAvailable","description":"If this message is quoting (replying to) another message","type":"boolean"},"quotedMsg":{"$ref":"#/components/schemas/Message","title":"Message.quotedMsg"},"quotedMsgObj":{"$ref":"#/components/schemas/Message","title":"Message.quotedMsgObj"},"isGroupJoinRequest":{"$ref":"#/components/schemas/GroupChatId","title":"Message.isGroupJoinRequest","description":"When a user requests to join a group wihtin a community the request is received by the host as a message. This boolean will allow you to easily determine if the incoming message is a request to join a group.\n\nIf this is `true` then you need to determine within your own code whether or not to accept the user to the group which is indicated with `quotedRemoteJid` using `addParticipant`."},"senderId":{"title":"Message.senderId","description":"The ID of the message sender","type":"string"},"quotedRemoteJid":{"title":"Message.quotedRemoteJid","description":"The ID of the quoted group. Usually present when a user is requesting to join a group.","type":"string"},"quotedParentGroupJid":{"$ref":"#/components/schemas/GroupChatId","title":"Message.quotedParentGroupJid","description":"The parent group ID (community ID - communities are just groups made up of other groups) of the group represented by `quotedRemoteJid`"},"mediaData":{"title":"Message.mediaData"},"shareDuration":{"title":"Message.shareDuration","type":"number"},"isAnimated":{"title":"Message.isAnimated","type":"boolean"},"ctwaContext":{"properties":{"sourceUrl":{"title":"Message.ctwaContext.sourceUrl","type":"string"},"thumbnail":{"title":"Message.ctwaContext.thumbnail","nullable":true,"type":"string"},"mediaType":{"title":"Message.ctwaContext.mediaType","type":"number"},"isSuspiciousLink":{"title":"Message.ctwaContext.isSuspiciousLink","nullable":true,"type":"boolean"}},"required":["sourceUrl","thumbnail","mediaType","isSuspiciousLink"],"additionalProperties":false,"title":"Message.ctwaContext","type":"object"},"isViewOnce":{"title":"Message.isViewOnce","description":"Is the message a \"view once\" message","type":"boolean"},"quoteMap":{"$ref":"#/components/schemas/QuoteMap","title":"Message.quoteMap","description":"Use this to traverse the quote chain."},"cloudUrl":{"title":"Message.cloudUrl","description":"The URL of the file after being uploaded to the cloud using a cloud upload message preprocessor.","type":"string"},"buttons":{"items":{"$ref":"#/components/schemas/Button","title":"Message.buttons.[]"},"title":"Message.buttons","description":"Buttons associated with the message","type":"array"},"listResponse":{"$ref":"#/components/schemas/Row","title":"Message.listResponse","description":"List response associated with the message"},"list":{"properties":{"\"sections\"":{"items":{"$ref":"#/components/schemas/Section","title":"Message.list.\"sections\".[]"},"title":"Message.list.\"sections\"","type":"array"},"\"title\"":{"title":"Message.list.\"title\"","type":"string"},"\"description\"":{"title":"Message.list.\"description\"","type":"string"},"\"buttonText\"":{"title":"Message.list.\"buttonText\"","type":"string"}},"required":["\"sections\"","\"title\"","\"description\"","\"buttonText\""],"additionalProperties":false,"title":"Message.list","description":"The list associated with the list message","type":"object"},"pollOptions":{"items":{"$ref":"#/components/schemas/PollOption","title":"Message.pollOptions.[]"},"title":"Message.pollOptions","description":"The options of a poll","type":"array"},"reactionByMe":{"$ref":"#/components/schemas/ReactionSender","title":"Message.reactionByMe","description":"The reaction of the host account to this message"},"reactions":{"items":{"properties":{"aggregateEmoji":{"title":"Message.reactions.[].aggregateEmoji","type":"string"},"senders":{"items":{"$ref":"#/components/schemas/ReactionSender","title":"Message.reactions.[].senders.[]"},"title":"Message.reactions.[].senders","description":"The senders of this reaction","type":"array"},"hasReactionByMe":{"title":"Message.reactions.[].hasReactionByMe","description":"If the host account has reacted to this message with this reaction","type":"boolean"},"id":{"title":"Message.reactions.[].id","description":"The message ID of the reaction itself","type":"string"}},"required":["aggregateEmoji","senders","hasReactionByMe","id"],"additionalProperties":false,"title":"Message.reactions.[]","type":"object"},"title":"Message.reactions","type":"array"}},"required":["selectedButtonId","id","mId","body","text","type","t","notifyName","from","to","self","ack","invis","isNewMsg","star","recvFresh","broadcast","isForwarded","labels","mentionedJidList","caption","sender","timestamp","content","isGroupMsg","isMMS","isMedia","isNotification","isPSA","fromMe","chat","chatId","author","clientUrl","deprecatedMms3Url","isQuotedMsgAvailable","mediaData","shareDuration","isAnimated","isViewOnce","quoteMap","reactions"],"additionalProperties":false,"title":"Message","type":"object"},"ReactionSender":{"properties":{"parentMsgKey":{"$ref":"#/components/schemas/MessageId","title":"ReactionSender.parentMsgKey","description":"The ID of the message being reacted to"},"senderUserJid":{"$ref":"#/components/schemas/ContactId","title":"ReactionSender.senderUserJid","description":"The contact ID of the sender of the reaction"},"msgKey":{"$ref":"#/components/schemas/MessageId","title":"ReactionSender.msgKey","description":"The message ID of the reaction itself"},"reactionText":{"title":"ReactionSender.reactionText","description":"The text of the reaction","type":"string"},"timestamp":{"title":"ReactionSender.timestamp","description":"The timestamp of the reaction","type":"number"},"orphan":{"title":"ReactionSender.orphan","type":"number"},"read":{"title":"ReactionSender.read","description":"If the reaction was seen/read","type":"boolean"},"t":{"title":"ReactionSender.t","description":"The timestamp of the reaction","type":"number"},"id":{"$ref":"#/components/schemas/MessageId","title":"ReactionSender.id","description":"The message ID of the reaction itself"},"isSendFailure":{"title":"ReactionSender.isSendFailure","type":"boolean"},"ack":{"title":"ReactionSender.ack","type":"number"}},"required":["parentMsgKey","senderUserJid","msgKey","reactionText","timestamp","orphan","read","id","isSendFailure"],"additionalProperties":false,"title":"ReactionSender","type":"object"},"PollOption":{"properties":{"name":{"title":"PollOption.name","type":"string"},"localId":{"title":"PollOption.localId","type":"number"}},"required":["name","localId"],"additionalProperties":false,"title":"PollOption","type":"object"},"PollData":{"properties":{"totalVotes":{"title":"PollData.totalVotes","description":"The total amount of votes recorded so far","type":"number"},"pollOptions":{"items":{"allOf":[{"$ref":"#/components/schemas/PollOption"},{"properties":{"count":{"title":"count","type":"number"}},"required":["count"],"additionalProperties":false,"type":"object"}]},"title":"PollData.pollOptions","description":"The poll options and their respective count of votes.","type":"array"},"votes":{"items":{"$ref":"#/components/schemas/PollVote","title":"PollData.votes.[]"},"title":"PollData.votes","description":"An arrray of vote objects","type":"array"},"pollMessage":{"$ref":"#/components/schemas/Message","title":"PollData.pollMessage","description":"The message object of the poll"}},"required":["totalVotes","pollOptions","votes","pollMessage"],"additionalProperties":false,"title":"PollData","type":"object"},"PollVote":{"properties":{"ack":{"title":"PollVote.ack","type":"number"},"id":{"title":"PollVote.id","description":"The message ID of this vote. For some reason this is different from the msgKey and includes exclamaition marks.","type":"string"},"msgKey":{"title":"PollVote.msgKey","description":"The message key of this vote","type":"string"},"parentMsgKey":{"title":"PollVote.parentMsgKey","description":"The Message ID of the original Poll message","type":"string"},"pollOptions":{"items":{"$ref":"#/components/schemas/PollOption","title":"PollVote.pollOptions.[]"},"title":"PollVote.pollOptions","description":"The original poll options available on the poll","type":"array"},"selectedOptionLocalIds":{"items":{"title":"PollVote.selectedOptionLocalIds.[]","type":"number"},"title":"PollVote.selectedOptionLocalIds","description":"The selected option IDs of the voter","type":"array"},"selectedOptionValues":{"items":{"title":"PollVote.selectedOptionValues.[]","type":"string"},"title":"PollVote.selectedOptionValues","description":"The selected option values by this voter","type":"array"},"sender":{"$ref":"#/components/schemas/ContactId","title":"PollVote.sender","description":"The contact ID of the voter"},"senderObj":{"$ref":"#/components/schemas/Contact","title":"PollVote.senderObj","description":"The contact object of the voter"},"senderTimestampMs":{"title":"PollVote.senderTimestampMs","description":"Timestamp of the vote","type":"number"},"stale":{"title":"PollVote.stale","type":"boolean"}},"required":["ack","id","msgKey","parentMsgKey","pollOptions","selectedOptionLocalIds","selectedOptionValues","sender","senderObj","senderTimestampMs","stale"],"additionalProperties":false,"title":"PollVote","type":"object"},"QuoteMap":{"additionalProperties":{"properties":{"body":{"title":"body","description":"The body of the message","type":"string"},"quotes":{"$ref":"#/components/schemas/MessageId","title":"quotes","description":"The message ID of the message that was quoted. Null if no message was quoted."}},"required":["body"],"additionalProperties":false,"type":"object"},"title":"QuoteMap","type":"object"},"MessageInfoInteraction":{"properties":{"id":{"$ref":"#/components/schemas/ContactId","title":"MessageInfoInteraction.id","description":"The contact ID of the contact that interacted with the message."},"t":{"title":"MessageInfoInteraction.t","description":"The timestamp of the interaction. You have to x 1000 to use in a JS Date object.","type":"number"}},"required":["id","t"],"additionalProperties":false,"title":"MessageInfoInteraction","type":"object"},"MessageInfo":{"properties":{"deliveryRemaining":{"title":"MessageInfo.deliveryRemaining","type":"number"},"playedRemaining":{"title":"MessageInfo.playedRemaining","type":"number"},"readRemaining":{"title":"MessageInfo.readRemaining","type":"number"},"delivery":{"items":{"$ref":"#/components/schemas/MessageInfoInteraction","title":"MessageInfo.delivery.[]"},"title":"MessageInfo.delivery","type":"array"},"read":{"items":{"$ref":"#/components/schemas/MessageInfoInteraction","title":"MessageInfo.read.[]"},"title":"MessageInfo.read","type":"array"},"played":{"items":{"$ref":"#/components/schemas/MessageInfoInteraction","title":"MessageInfo.played.[]"},"title":"MessageInfo.played","type":"array"},"id":{"$ref":"#/components/schemas/MessageId","title":"MessageInfo.id","description":"The ID of the message"}},"required":["deliveryRemaining","playedRemaining","readRemaining","delivery","read","played","id"],"additionalProperties":false,"title":"MessageInfo","type":"object"},"CustomProduct":{"properties":{"name":{"title":"CustomProduct.name","description":"The main title of the product. E.g:\n`BAVARIA — 35 SPORTS CRUISER (2006)`","type":"string"},"description":{"title":"CustomProduct.description","description":"The description of the product. This shows right under the price so it is useful for subscriptions/rentals. E.g:\n\n`(per day)\\n\\nCome and have a fantastic sailing adventure aboard our boat. \\nShe is a Bavaria 35 sports cruiser and is powered by 2 economical Volvo D6’s with Bravo 2 outdrives as well as a bow thruster. This Makes maneuvering very easy. She can accommodate up to 8 people for day charters and for overnight charters she can accommodate 4 in comfort in 2 cabins.`","type":"string"},"priceAmount1000":{"title":"CustomProduct.priceAmount1000","description":"The price amount multiplied by 1000. For example, for something costing `825` units of currency:\n`825000`","type":"number"},"currency":{"title":"CustomProduct.currency","description":"The [**ISO 4217**](https://en.wikipedia.org/wiki/ISO_4217) 3 letter currency code. E.g (Swedish krona)\n`SEK`","type":"string"},"url":{"title":"CustomProduct.url","description":"The URL of the product.\n\nNOTE: At the moment, the URL DOES NOT WORK. It shows up for the recipient but they will not be able to click it. As a rememdy, it is added as a reply to the product message.","type":"string"}},"required":["name","description","priceAmount1000","currency"],"additionalProperties":false,"title":"CustomProduct","type":"object"},"CartItem":{"properties":{"id":{"title":"CartItem.id","description":"Product ID","type":"string"},"name":{"title":"CartItem.name","description":"Product name","type":"string"},"qty":{"title":"CartItem.qty","description":"Amount of this item in the cart","type":"number"},"thumbnailId":{"title":"CartItem.thumbnailId","type":"string"},"thumbnailUrl":{"title":"CartItem.thumbnailUrl","description":"URL to .enc file of the thumbnail. Just change the filetype to .jpg to view the thumbnail","type":"string"}},"required":["id","name","qty","thumbnailId","thumbnailUrl"],"additionalProperties":false,"title":"CartItem","type":"object"},"Product":{"properties":{"id":{"title":"Product.id","description":"Product ID","type":"string"},"isHidden":{"title":"Product.isHidden","description":"`true` if the product is hidden from public view.","type":"boolean"},"catalogWid":{"title":"Product.catalogWid","description":"The id of the catalog in which this product is located.","type":"string"},"url":{"title":"Product.url","description":"The URL of the product.","type":"string"},"name":{"title":"Product.name","description":"The name of the product.","type":"string"},"description":{"title":"Product.description","description":"The description of the product.","type":"string"},"availability":{"anyOf":[{"title":"Product.availability","type":"number"},{"title":"Product.availability","enum":["unknown"],"type":"string"}],"title":"Product.availability","description":"The availiable quantity of this product.","default":"\"unknown\"`"},"reviewStatus":{"enum":["NO_REVIEW","PENDING","REJECTED","APPROVED","OUTDATED"],"title":"Product.reviewStatus","description":"The review status of the product","type":"string"},"imageCdnUrl":{"title":"Product.imageCdnUrl","description":"The url of the main image of the product.\n\nNOTE: If downloading manually, the filetype must be changed to .jpg to view the image.","type":"string"},"imageCount":{"title":"Product.imageCount","description":"The number of images of the product.","type":"number"},"additionalImageCdnUrl":{"items":{"title":"Product.additionalImageCdnUrl.[]","type":"string"},"title":"Product.additionalImageCdnUrl","description":"Array of URLs of the other images of the product. Does not include the main image.","type":"array"},"priceAmount1000":{"title":"Product.priceAmount1000","description":"The price of the product in 1000 units.","type":"number"},"retailerId":{"title":"Product.retailerId","description":"The custom id of the product.","type":"string"},"t":{"title":"Product.t","description":"The timestamp when the product was created / 1000","type":"number"},"currency":{"title":"Product.currency","description":"The [**ISO 4217**](https://en.wikipedia.org/wiki/ISO_4217) 3 letter currency code. E.g (Swedish krona)\n`SEK`","type":"string"}},"required":["id","currency"],"additionalProperties":false,"title":"Product","type":"object"},"Order":{"properties":{"id":{"title":"Order.id","description":"Order ID","type":"string"},"createdAt":{"title":"Order.createdAt","description":"epoch ts divided by 1000","type":"number"},"currency":{"title":"Order.currency","description":"The [**ISO 4217**](https://en.wikipedia.org/wiki/ISO_4217) 3 letter currency code. E.g (Swedish krona)\n`SEK`","type":"string"},"products":{"items":{"$ref":"#/components/schemas/CartItem","title":"Order.products.[]"},"title":"Order.products","description":"An array of items in the cart","type":"array"},"sellerJid":{"title":"Order.sellerJid","type":"string"},"subtotal":{"title":"Order.subtotal"},"total":{"title":"Order.total"},"message":{"$ref":"#/components/schemas/Message","title":"Order.message","description":"The message object associated with the order. Only populated in `onOrder` callback."}},"required":["id","createdAt","currency","products","sellerJid","subtotal","total"],"additionalProperties":false,"title":"Order","type":"object"},"Reaction":{"properties":{"aggregateEmoji":{"title":"Reaction.aggregateEmoji","description":"The aggregate emoji used for the reaction.","type":"string"},"id":{"title":"Reaction.id","description":"The identifier of the reaction","type":"string"},"hasReactionByMe":{"title":"Reaction.hasReactionByMe","description":"If the reaction is also sent by the host account","type":"boolean"},"senders":{"items":{"$ref":"#/components/schemas/ReactionRecord","title":"Reaction.senders.[]"},"title":"Reaction.senders","description":"The senders of this spefcific reaction","type":"array"}},"required":["aggregateEmoji","id","hasReactionByMe","senders"],"additionalProperties":false,"title":"Reaction","description":"A reaction is identified the specific emoji.","type":"object"},"ReactionRecord":{"properties":{"ack":{"$ref":"#/components/schemas/MessageAck","title":"ReactionRecord.ack","description":"The acknowledgement of the reaction"},"id":{"title":"ReactionRecord.id","description":"The ID of the reaction","type":"string"},"msgKey":{"title":"ReactionRecord.msgKey","type":"string"},"parentMsgKey":{"title":"ReactionRecord.parentMsgKey","type":"string"},"orphan":{"title":"ReactionRecord.orphan","type":"number"},"reactionText":{"title":"ReactionRecord.reactionText","description":"The text of the reaction","type":"string"},"read":{"title":"ReactionRecord.read","description":"If the reaction has been read","type":"boolean"},"senderUserJid":{"$ref":"#/components/schemas/ContactId","title":"ReactionRecord.senderUserJid","description":"The ID of the reaction sender"},"timestamp":{"title":"ReactionRecord.timestamp","description":"The timestamp of the reaction","type":"number"}},"required":["ack","id","msgKey","parentMsgKey","orphan","reactionText","read","senderUserJid","timestamp"],"additionalProperties":false,"title":"ReactionRecord","description":"The specific reaction by a user","type":"object"},"ReactionEvent":{"properties":{"message":{"$ref":"#/components/schemas/Message","title":"ReactionEvent.message","description":"The message being reacted to"},"reactionByMe":{"$ref":"#/components/schemas/Reaction","title":"ReactionEvent.reactionByMe","description":"The reaction sent by the host account"},"reactions":{"items":{"$ref":"#/components/schemas/Reaction","title":"ReactionEvent.reactions.[]"},"title":"ReactionEvent.reactions","description":"An array of all reactions","type":"array"},"type":{"enum":["add","change"],"title":"ReactionEvent.type","description":"The type of the reaction event.","type":"string"}},"required":["message","reactionByMe","reactions","type"],"additionalProperties":false,"title":"ReactionEvent","description":"Emitted by onReaction","type":"object"},"SessionInfo":{"properties":{"WA_VERSION":{"title":"SessionInfo.WA_VERSION","type":"string"},"PAGE_UA":{"title":"SessionInfo.PAGE_UA","type":"string"},"WA_AUTOMATE_VERSION":{"title":"SessionInfo.WA_AUTOMATE_VERSION","type":"string"},"BROWSER_VERSION":{"title":"SessionInfo.BROWSER_VERSION","type":"string"},"LAUNCH_TIME_MS":{"title":"SessionInfo.LAUNCH_TIME_MS","type":"number"},"NUM":{"title":"SessionInfo.NUM","type":"string"},"OS":{"title":"SessionInfo.OS","type":"string"},"START_TS":{"title":"SessionInfo.START_TS","type":"number"},"PHONE_VERSION":{"title":"SessionInfo.PHONE_VERSION","type":"string"},"NUM_HASH":{"title":"SessionInfo.NUM_HASH","type":"string"},"PATCH_HASH":{"title":"SessionInfo.PATCH_HASH","type":"string"},"OW_KEY":{"title":"SessionInfo.OW_KEY","type":"string"},"INSTANCE_ID":{"title":"SessionInfo.INSTANCE_ID","type":"string"},"RAM_INFO":{"title":"SessionInfo.RAM_INFO","type":"string"},"PPTR_VERSION":{"title":"SessionInfo.PPTR_VERSION","type":"string"},"LATEST_VERSION":{"title":"SessionInfo.LATEST_VERSION","type":"boolean"},"CLI":{"title":"SessionInfo.CLI","type":"boolean"},"ACC_TYPE":{"enum":["PERSONAL","BUSINESS"],"title":"SessionInfo.ACC_TYPE","type":"string"}},"required":["WA_VERSION","PAGE_UA","WA_AUTOMATE_VERSION","BROWSER_VERSION"],"additionalProperties":false,"title":"SessionInfo","type":"object"},"HealthCheck":{"properties":{"queuedMessages":{"title":"HealthCheck.queuedMessages","description":"The number of messages queued up in the browser. Messages can start being queued up due to the web app awaiting a connection with the host device.\n\nHealthy: 0","type":"number"},"state":{"$ref":"#/components/schemas/STATE","title":"HealthCheck.state","description":"The state of the web app.\n\nHealthy: 'CONNECTED'"},"isPhoneDisconnected":{"title":"HealthCheck.isPhoneDisconnected","description":"Whether or not the \"Phone is disconnected\" message is showing within the web app.\n\nHealthy: `false`","type":"boolean"},"isHere":{"title":"HealthCheck.isHere","description":"Returns `true` if \"Use Here\" button is not detected\n\nHealthy: `true`","type":"boolean"},"wapiInjected":{"title":"HealthCheck.wapiInjected","description":"Returns `true` if the `WAPI` object is detected.\n\nHealthy: `true`","type":"boolean"},"online":{"title":"HealthCheck.online","description":"Result of `window.navigator.onLine`\n\nHealthy: `true`","type":"boolean"},"tryingToReachPhone":{"title":"HealthCheck.tryingToReachPhone","description":"Returns `true` if \"trying to reach phone\" dialog is detected\n\nHealthy: `false`","type":"boolean"},"retryingIn":{"title":"HealthCheck.retryingIn","description":"Returns the number of seconds the \"Retrying in ...\" dialog is indicating. If the dialog is not showing, it will return `0`.\n\nHealthy: `0`","type":"number"},"batteryLow":{"title":"HealthCheck.batteryLow","description":"Returns `true` if \"Phone battery low\" message is detected\n\nHealthy: `false`","type":"boolean"}},"additionalProperties":false,"title":"HealthCheck","type":"object"},"expressMiddleware":{"title":"expressMiddleware"},"ChatwootConfig":{"properties":{"chatwootUrl":{"title":"ChatwootConfig.chatwootUrl","description":"The URL of the chatwoot inbox. If you want this integration to create & manage the inbox for you, you can omit the inbox part.","type":"string"},"chatwootApiAccessToken":{"title":"ChatwootConfig.chatwootApiAccessToken","description":"The API access token which you can get from your account menu.","type":"string"},"apiHost":{"title":"ChatwootConfig.apiHost","description":"The API host which will be used as the webhook address in the Chatwoot inbox.","type":"string"},"host":{"title":"ChatwootConfig.host","description":"Similar to apiHost","type":"string"},"https":{"title":"ChatwootConfig.https","description":"Whether or not to use https for the webhook address","type":"boolean"},"cert":{"title":"ChatwootConfig.cert","description":"The certificate for https","type":"string"},"privkey":{"title":"ChatwootConfig.privkey","description":"The private key for https","type":"string"},"key":{"title":"ChatwootConfig.key","description":"The API key used to secure the instance webhook address","type":"string"},"forceUpdateCwWebhook":{"title":"ChatwootConfig.forceUpdateCwWebhook","description":"Whether or not to update the webhook address in the Chatwoot inbox on launch","type":"boolean"},"port":{"title":"ChatwootConfig.port","description":"port","type":"number"}},"required":["chatwootUrl","chatwootApiAccessToken","apiHost","host","cert","privkey","port"],"additionalProperties":false,"title":"ChatwootConfig","type":"object"},"cliFlags":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"title":"cliFlags","type":"object"},"ConfigLogTransport":{"properties":{"type":{"enum":["syslog","console","file","ev"],"title":"ConfigLogTransport.type","description":"The type of winston transport. At the moment only `file`, `console`, `ev` and `syslog` are supported.","type":"string"},"options":{"title":"ConfigLogTransport.options","description":"The options for the transport. Generally only required for syslog but you can use this to override default options for other types of transports."},"done":{"title":"ConfigLogTransport.done","description":"If the transport has already been added to the logger. The logging set up command handles this for you.","type":"boolean"}},"required":["type"],"additionalProperties":false,"title":"ConfigLogTransport","type":"object"},"CollectorOptions":{"properties":{"maxProcessed":{"title":"CollectorOptions.maxProcessed","description":"The maximum amount of items to process","type":"number"},"max":{"title":"CollectorOptions.max","description":"The maximum amount of items to collect","type":"number"},"time":{"title":"CollectorOptions.time","description":"Max time to wait for items in milliseconds","type":"number"},"idle":{"title":"CollectorOptions.idle","description":"Max time allowed idle","type":"number"},"dispose":{"title":"CollectorOptions.dispose","description":"Whether to dispose data when it's deleted","type":"boolean"}},"additionalProperties":false,"title":"CollectorOptions","description":"Options to be applied to the collector.","type":"object"},"AwaitMessagesOptions":{"properties":{"errors":{"items":{"title":"AwaitMessagesOptions.errors.[]","type":"string"},"title":"AwaitMessagesOptions.errors","description":"An array of \"reasons\" that would result in the awaitMessages command to throw an error.","type":"array"}},"additionalProperties":false,"title":"AwaitMessagesOptions","type":"object"},"CurrentDialogProps":{"additionalProperties":{},"title":"CurrentDialogProps","type":"object"},"DialogState":{"properties":{"currentStep":{"title":"DialogState.currentStep","type":"number"},"currentProps":{"title":"DialogState.currentProps"},"lastInput":{"title":"DialogState.lastInput"},"isComplete":{"title":"DialogState.isComplete","type":"boolean"},"isError":{"title":"DialogState.isError","type":"boolean"},"errorMessage":{"title":"DialogState.errorMessage","type":"string"}},"required":["currentStep","currentProps","lastInput","isComplete","isError","errorMessage"],"additionalProperties":false,"title":"DialogState","type":"object"},"DialogTemplate":{"properties":{"\"dialogId\"":{"title":"DialogTemplate.\"dialogId\"","type":"string"},"\"privateOnly\"":{"title":"DialogTemplate.\"privateOnly\"","type":"boolean"},"\"identifier\"":{"title":"DialogTemplate.\"identifier\"","type":"string"},"\"successMessage\"":{"title":"DialogTemplate.\"successMessage\"","type":"string"},"\"startMessage\"":{"title":"DialogTemplate.\"startMessage\"","type":"string"},"\"properties\"":{"additionalProperties":{"$ref":"#/components/schemas/DialogProperty"},"title":"DialogTemplate.\"properties\"","type":"object"}},"required":["\"dialogId\"","\"privateOnly\"","\"identifier\"","\"successMessage\"","\"startMessage\"","\"properties\""],"additionalProperties":false,"title":"DialogTemplate","type":"object"},"CheckFunction":{"title":"CheckFunction"},"DialogProperty":{"properties":{"\"order\"":{"title":"DialogProperty.\"order\"","type":"number"},"\"key\"":{"title":"DialogProperty.\"key\"","type":"string"},"\"prompt\"":{"title":"DialogProperty.\"prompt\"","type":"string"},"\"type\"":{"title":"DialogProperty.\"type\"","type":"string"},"\"skipCondition\"":{"$ref":"#/components/schemas/CheckFunction","title":"DialogProperty.\"skipCondition\""},"\"options\"":{"anyOf":[{"items":{"$ref":"#/components/schemas/DialogButtons","title":"DialogProperty.\"options\".[]"},"title":"DialogProperty.\"options\".[]","type":"array"},{"items":{"$ref":"#/components/schemas/DialogListMessageSection","title":"DialogProperty.\"options\".[]"},"title":"DialogProperty.\"options\".[]","type":"array"}],"title":"DialogProperty.\"options\""},"\"validation\"":{"items":{"$ref":"#/components/schemas/DialogValidation","title":"DialogProperty.\"validation\".[]"},"title":"DialogProperty.\"validation\"","type":"array"}},"required":["\"order\"","\"key\"","\"prompt\"","\"type\"","\"validation\""],"additionalProperties":false,"title":"DialogProperty","type":"object"},"DialogButtons":{"properties":{"label":{"title":"DialogButtons.label","type":"string"},"value":{"title":"DialogButtons.value","type":"string"}},"required":["label","value"],"additionalProperties":false,"title":"DialogButtons","type":"object"},"DialogListMessageSection":{"properties":{"title":{"title":"DialogListMessageSection.title","type":"string"},"rows":{"items":{"$ref":"#/components/schemas/DialogListMessageRow","title":"DialogListMessageSection.rows.[]"},"title":"DialogListMessageSection.rows","type":"array"}},"required":["title","rows"],"additionalProperties":false,"title":"DialogListMessageSection","type":"object"},"DialogListMessageRow":{"properties":{"title":{"title":"DialogListMessageRow.title","type":"string"},"description":{"title":"DialogListMessageRow.description","type":"string"},"value":{"title":"DialogListMessageRow.value","type":"string"}},"required":["title","description","value"],"additionalProperties":false,"title":"DialogListMessageRow","type":"object"},"DialogValidation":{"properties":{"\"type\"":{"$ref":"#/components/schemas/ValidationType","title":"DialogValidation.\"type\""},"\"value\"":{"anyOf":[{"title":"DialogValidation.\"value\"","type":"string"},{"$ref":"#/components/schemas/CheckFunction","title":"DialogValidation.\"value\""}],"title":"DialogValidation.\"value\""},"\"errorMessage\"":{"title":"DialogValidation.\"errorMessage\"","type":"string"}},"required":["\"type\"","\"value\"","\"errorMessage\""],"additionalProperties":false,"title":"DialogValidation","type":"object"},"MessagePreProcessor":{"title":"MessagePreProcessor","description":"A function that takes a message and returns a message.\n@param The message to be processed\n@param The client that received the message\n@param Whether the message has already been processed by another preprocessor. (This is useful in cases where you want to mutate the message for both onMessage and onAnyMessage events but only want to do the actual process, like uploading to s3, once.)\n@param The source of the message. This is useful for knowing if the message is from onMessage or onAnyMessage. Only processing one source will prevent duplicate processing."},"MPConfigType":{"anyOf":[{"$ref":"#/components/schemas/PREPROCESSORS","title":"MPConfigType"},{"$ref":"#/components/schemas/MessagePreProcessor","title":"MPConfigType"},{"items":{"anyOf":[{"$ref":"#/components/schemas/PREPROCESSORS","title":"MPConfigType.[]"},{"$ref":"#/components/schemas/MessagePreProcessor","title":"MPConfigType.[]"}],"title":"MPConfigType.[]"},"title":"MPConfigType.[]","type":"array"}],"title":"MPConfigType","description":"The actual type for [config.messagePreprocessor](/docs/api/interfaces/api_model_config.ConfigObject#messagepreprocessor)"}} diff --git a/docs/docs/api/api/Client/classes/Client.md b/docs/docs/api/api/Client/classes/Client.md index 55ad833571..edfde0cf8e 100644 --- a/docs/docs/api/api/Client/classes/Client.md +++ b/docs/docs/api/api/Client/classes/Client.md @@ -3212,15 +3212,11 @@ boolean ### refresh() -> **refresh**(`skipFreshPage`?): `Promise`\<`boolean`\> +> **refresh**(): `Promise`\<`boolean`\> Refreshes the page and reinjects all necessary files. This may be useful for when trying to save memory This will attempt to re register all listeners EXCEPT onLiveLocation and onParticipantChanged -#### Parameters - -• **skipFreshPage?**: `boolean` - #### Returns `Promise`\<`boolean`\> diff --git a/docs/docs/api/controllers/data_dir_watcher/functions/setupDataDirWatcher.md b/docs/docs/api/controllers/data_dir_watcher/functions/setupDataDirWatcher.md deleted file mode 100644 index a2fc5dc1ef..0000000000 --- a/docs/docs/api/controllers/data_dir_watcher/functions/setupDataDirWatcher.md +++ /dev/null @@ -1,11 +0,0 @@ -# Function: setupDataDirWatcher() - -> **setupDataDirWatcher**(`config`): `Promise`\<`void`\> - -## Parameters - -• **config**: [`ConfigObject`](/api/api/model/config/interfaces/ConfigObject.md) - -## Returns - -`Promise`\<`void`\> diff --git a/docs/docs/api/controllers/data_dir_watcher/index.md b/docs/docs/api/controllers/data_dir_watcher/index.md deleted file mode 100644 index df01909036..0000000000 --- a/docs/docs/api/controllers/data_dir_watcher/index.md +++ /dev/null @@ -1,7 +0,0 @@ -# controllers/data\_dir\_watcher - -## Index - -### Functions - -- [setupDataDirWatcher](/api/controllers/data_dir_watcher/functions/setupDataDirWatcher.md) diff --git a/docs/docs/api/index.md b/docs/docs/api/index.md index 6917399658..be84ce70f6 100644 --- a/docs/docs/api/index.md +++ b/docs/docs/api/index.md @@ -1,4 +1,4 @@ -# @open-wa/wa-automate v4.71.14 +# @open-wa/wa-automate v4.71.15 ## Modules @@ -21,7 +21,6 @@ - [api/model/product](/api/api/model/product/index.md) - [api/model/reactions](/api/api/model/reactions/index.md) - [api/model/sessionInfo](/api/api/model/sessionInfo/index.md) -- [controllers/data\_dir\_watcher](/api/controllers/data_dir_watcher/index.md) - [controllers/events](/api/controllers/events/index.md) - [controllers/init\_patch](/api/controllers/init_patch/index.md) - [controllers/initializer](/api/controllers/initializer/index.md) diff --git a/docs/docs/api/typedoc-sidebar.cjs b/docs/docs/api/typedoc-sidebar.cjs index 91caf0d8ad..74644a2316 100644 --- a/docs/docs/api/typedoc-sidebar.cjs +++ b/docs/docs/api/typedoc-sidebar.cjs @@ -1,4 +1,4 @@ // @ts-check /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const typedocSidebar = { items: [{"type":"category","label":"api","items":[{"type":"category","label":"Client","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/Client/enumerations/namespace","label":"namespace"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/api/Client/classes/Client","label":"Client"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/api/Client/variables/useragent","label":"useragent"}]}],"link":{"type":"doc","id":"api/api/Client/index"}},{"type":"category","label":"functions","items":[{"type":"category","label":"exposed.enum","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/functions/exposed.enum/enumerations/ExposedFn","label":"ExposedFn"}]}],"link":{"type":"doc","id":"api/api/functions/exposed.enum/index"}}]},{"type":"category","label":"model","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/enumerations/Events","label":"Events"},{"type":"doc","id":"api/api/model/enumerations/STATE","label":"STATE"},{"type":"doc","id":"api/api/model/enumerations/Status","label":"Status"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/type-aliases/EasyApiResponse","label":"EasyApiResponse"}]},{"type":"category","label":"aliases","items":[{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/aliases/type-aliases/AccountNumber","label":"AccountNumber"},{"type":"doc","id":"api/api/model/aliases/type-aliases/AdvancedFile","label":"AdvancedFile"},{"type":"doc","id":"api/api/model/aliases/type-aliases/Base64","label":"Base64"},{"type":"doc","id":"api/api/model/aliases/type-aliases/ChatId","label":"ChatId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/ChatServer","label":"ChatServer"},{"type":"doc","id":"api/api/model/aliases/type-aliases/ContactId","label":"ContactId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/Content","label":"Content"},{"type":"doc","id":"api/api/model/aliases/type-aliases/CountryCode","label":"CountryCode"},{"type":"doc","id":"api/api/model/aliases/type-aliases/DataURL","label":"DataURL"},{"type":"doc","id":"api/api/model/aliases/type-aliases/FilePath","label":"FilePath"},{"type":"doc","id":"api/api/model/aliases/type-aliases/GetURL","label":"GetURL"},{"type":"doc","id":"api/api/model/aliases/type-aliases/GroupChatId","label":"GroupChatId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/GroupChatServer","label":"GroupChatServer"},{"type":"doc","id":"api/api/model/aliases/type-aliases/GroupId","label":"GroupId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/MessageId","label":"MessageId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/NonSerializedId","label":"NonSerializedId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/WaServers","label":"WaServers"}]}],"link":{"type":"doc","id":"api/api/model/aliases/index"}},{"type":"category","label":"button","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/button/interfaces/AdvancedButton","label":"AdvancedButton"},{"type":"doc","id":"api/api/model/button/interfaces/Button","label":"Button"},{"type":"doc","id":"api/api/model/button/interfaces/LocationButtonBody","label":"LocationButtonBody"},{"type":"doc","id":"api/api/model/button/interfaces/Row","label":"Row"},{"type":"doc","id":"api/api/model/button/interfaces/Section","label":"Section"}]}],"link":{"type":"doc","id":"api/api/model/button/index"}},{"type":"category","label":"call","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/call/enumerations/CallState","label":"CallState"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/call/interfaces/Call","label":"Call"}]}],"link":{"type":"doc","id":"api/api/model/call/index"}},{"type":"category","label":"chat","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/chat/enumerations/ChatMuteDuration","label":"ChatMuteDuration"},{"type":"doc","id":"api/api/model/chat/enumerations/ChatState","label":"ChatState"},{"type":"doc","id":"api/api/model/chat/enumerations/ChatTypes","label":"ChatTypes"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/chat/interfaces/BaseChat","label":"BaseChat"},{"type":"doc","id":"api/api/model/chat/interfaces/GroupChat","label":"GroupChat"},{"type":"doc","id":"api/api/model/chat/interfaces/GroupChatCreationParticipantAddResponse","label":"GroupChatCreationParticipantAddResponse"},{"type":"doc","id":"api/api/model/chat/interfaces/GroupChatCreationResponse","label":"GroupChatCreationResponse"},{"type":"doc","id":"api/api/model/chat/interfaces/LiveLocationChangedEvent","label":"LiveLocationChangedEvent"},{"type":"doc","id":"api/api/model/chat/interfaces/SingleChat","label":"SingleChat"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/chat/type-aliases/Chat","label":"Chat"},{"type":"doc","id":"api/api/model/chat/type-aliases/EphemeralDuration","label":"EphemeralDuration"}]}],"link":{"type":"doc","id":"api/api/model/chat/index"}},{"type":"category","label":"config","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/config/enumerations/CLOUD_PROVIDERS","label":"CLOUD_PROVIDERS"},{"type":"doc","id":"api/api/model/config/enumerations/DIRECTORY_STRATEGY","label":"DIRECTORY_STRATEGY"},{"type":"doc","id":"api/api/model/config/enumerations/LicenseType","label":"LicenseType"},{"type":"doc","id":"api/api/model/config/enumerations/NotificationLanguage","label":"NotificationLanguage"},{"type":"doc","id":"api/api/model/config/enumerations/OnError","label":"OnError"},{"type":"doc","id":"api/api/model/config/enumerations/QRFormat","label":"QRFormat"},{"type":"doc","id":"api/api/model/config/enumerations/QRQuality","label":"QRQuality"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/config/interfaces/ConfigObject","label":"ConfigObject"},{"type":"doc","id":"api/api/model/config/interfaces/DevTools","label":"DevTools"},{"type":"doc","id":"api/api/model/config/interfaces/EventPayload","label":"EventPayload"},{"type":"doc","id":"api/api/model/config/interfaces/ProxyServerCredentials","label":"ProxyServerCredentials"},{"type":"doc","id":"api/api/model/config/interfaces/SessionData","label":"SessionData"},{"type":"doc","id":"api/api/model/config/interfaces/Webhook","label":"Webhook"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/config/type-aliases/AdvancedConfig","label":"AdvancedConfig"}]}],"link":{"type":"doc","id":"api/api/model/config/index"}},{"type":"category","label":"contact","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/contact/interfaces/BizCategory","label":"BizCategory"},{"type":"doc","id":"api/api/model/contact/interfaces/BizProfileOptions","label":"BizProfileOptions"},{"type":"doc","id":"api/api/model/contact/interfaces/BusinessHours","label":"BusinessHours"},{"type":"doc","id":"api/api/model/contact/interfaces/BusinessProfile","label":"BusinessProfile"},{"type":"doc","id":"api/api/model/contact/interfaces/Contact","label":"Contact"},{"type":"doc","id":"api/api/model/contact/interfaces/NumberCheck","label":"NumberCheck"}]}],"link":{"type":"doc","id":"api/api/model/contact/index"}},{"type":"category","label":"errors","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/errors/enumerations/AddParticipantErrorStatusCode","label":"AddParticipantErrorStatusCode"},{"type":"doc","id":"api/api/model/errors/enumerations/ERROR_NAME","label":"ERROR_NAME"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/api/model/errors/classes/AddParticipantError","label":"AddParticipantError"},{"type":"doc","id":"api/api/model/errors/classes/CustomError","label":"CustomError"},{"type":"doc","id":"api/api/model/errors/classes/PageEvaluationTimeout","label":"PageEvaluationTimeout"},{"type":"doc","id":"api/api/model/errors/classes/SessionExpiredError","label":"SessionExpiredError"}]}],"link":{"type":"doc","id":"api/api/model/errors/index"}},{"type":"category","label":"events","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/events/enumerations/SimpleListener","label":"SimpleListener"}]}],"link":{"type":"doc","id":"api/api/model/events/index"}},{"type":"category","label":"group-metadata","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/group-metadata/enumerations/GroupNotificationTypes","label":"GroupNotificationTypes"},{"type":"doc","id":"api/api/model/group-metadata/enumerations/groupChangeEvent","label":"groupChangeEvent"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/group-metadata/interfaces/GenericGroupChangeEvent","label":"GenericGroupChangeEvent"},{"type":"doc","id":"api/api/model/group-metadata/interfaces/GroupMetadata","label":"GroupMetadata"},{"type":"doc","id":"api/api/model/group-metadata/interfaces/NewCommunityGroup","label":"NewCommunityGroup"},{"type":"doc","id":"api/api/model/group-metadata/interfaces/Participant","label":"Participant"},{"type":"doc","id":"api/api/model/group-metadata/interfaces/ParticipantChangedEventModel","label":"ParticipantChangedEventModel"}]}],"link":{"type":"doc","id":"api/api/model/group-metadata/index"}},{"type":"category","label":"id","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/id/interfaces/Id","label":"Id"}]}],"link":{"type":"doc","id":"api/api/model/id/index"}},{"type":"category","label":"label","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/label/interfaces/Label","label":"Label"}]}],"link":{"type":"doc","id":"api/api/model/label/index"}},{"type":"category","label":"media","items":[{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/media/type-aliases/Mp4StickerConversionProcessOptions","label":"Mp4StickerConversionProcessOptions"},{"type":"doc","id":"api/api/model/media/type-aliases/StickerMetadata","label":"StickerMetadata"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/api/model/media/variables/defaultProcessOptions","label":"defaultProcessOptions"}]}],"link":{"type":"doc","id":"api/api/model/media/index"}},{"type":"category","label":"message","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/message/enumerations/MessageAck","label":"MessageAck"},{"type":"doc","id":"api/api/model/message/enumerations/MessageTypes","label":"MessageTypes"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/message/interfaces/Message","label":"Message"},{"type":"doc","id":"api/api/model/message/interfaces/MessageInfo","label":"MessageInfo"},{"type":"doc","id":"api/api/model/message/interfaces/MessageInfoInteraction","label":"MessageInfoInteraction"},{"type":"doc","id":"api/api/model/message/interfaces/PollData","label":"PollData"},{"type":"doc","id":"api/api/model/message/interfaces/PollOption","label":"PollOption"},{"type":"doc","id":"api/api/model/message/interfaces/PollVote","label":"PollVote"},{"type":"doc","id":"api/api/model/message/interfaces/QuoteMap","label":"QuoteMap"},{"type":"doc","id":"api/api/model/message/interfaces/ReactionSender","label":"ReactionSender"}]}],"link":{"type":"doc","id":"api/api/model/message/index"}},{"type":"category","label":"product","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/product/interfaces/CartItem","label":"CartItem"},{"type":"doc","id":"api/api/model/product/interfaces/CustomProduct","label":"CustomProduct"},{"type":"doc","id":"api/api/model/product/interfaces/Order","label":"Order"},{"type":"doc","id":"api/api/model/product/interfaces/Product","label":"Product"}]}],"link":{"type":"doc","id":"api/api/model/product/index"}},{"type":"category","label":"reactions","items":[{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/reactions/type-aliases/Reaction","label":"Reaction"},{"type":"doc","id":"api/api/model/reactions/type-aliases/ReactionEvent","label":"ReactionEvent"},{"type":"doc","id":"api/api/model/reactions/type-aliases/ReactionRecord","label":"ReactionRecord"}]}],"link":{"type":"doc","id":"api/api/model/reactions/index"}},{"type":"category","label":"sessionInfo","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/sessionInfo/interfaces/HealthCheck","label":"HealthCheck"},{"type":"doc","id":"api/api/model/sessionInfo/interfaces/SessionInfo","label":"SessionInfo"}]}],"link":{"type":"doc","id":"api/api/model/sessionInfo/index"}}],"link":{"type":"doc","id":"api/api/model/index"}}]},{"type":"category","label":"controllers","items":[{"type":"category","label":"data_dir_watcher","items":[{"type":"category","label":"Functions","items":[{"type":"doc","id":"api/controllers/data_dir_watcher/functions/setupDataDirWatcher","label":"setupDataDirWatcher"}]}],"link":{"type":"doc","id":"api/controllers/data_dir_watcher/index"}},{"type":"category","label":"events","items":[{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/controllers/events/variables/ev","label":"ev"}]}],"link":{"type":"doc","id":"api/controllers/events/index"}},{"type":"doc","id":"api/controllers/init_patch/index","label":"init_patch"},{"type":"category","label":"initializer","items":[{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/controllers/initializer/variables/configWithCases","label":"configWithCases"},{"type":"doc","id":"api/controllers/initializer/variables/pkg","label":"pkg"},{"type":"doc","id":"api/controllers/initializer/variables/screenshot","label":"screenshot"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"api/controllers/initializer/functions/create","label":"create"},{"type":"doc","id":"api/controllers/initializer/functions/timeout","label":"timeout"}]}],"link":{"type":"doc","id":"api/controllers/initializer/index"}},{"type":"category","label":"patch_manager","items":[{"type":"category","label":"Functions","items":[{"type":"doc","id":"api/controllers/patch_manager/functions/earlyInjectionCheck","label":"earlyInjectionCheck"},{"type":"doc","id":"api/controllers/patch_manager/functions/getAndInjectLicense","label":"getAndInjectLicense"}]}],"link":{"type":"doc","id":"api/controllers/patch_manager/index"}}]},{"type":"category","label":"logging","items":[{"type":"category","label":"custom_transport","items":[{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/logging/custom_transport/classes/LogToEvTransport","label":"LogToEvTransport"},{"type":"doc","id":"api/logging/custom_transport/classes/NoOpTransport","label":"NoOpTransport"}]}],"link":{"type":"doc","id":"api/logging/custom_transport/index"}},{"type":"category","label":"logging","items":[{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/logging/logging/type-aliases/ConfigLogTransport","label":"ConfigLogTransport"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/logging/logging/variables/log","label":"log"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"api/logging/logging/functions/addRotateFileLogTransport","label":"addRotateFileLogTransport"}]}],"link":{"type":"doc","id":"api/logging/logging/index"}}]},{"type":"category","label":"structures","items":[{"type":"category","label":"Collector","items":[{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/structures/Collector/classes/Collection","label":"Collection"},{"type":"doc","id":"api/structures/Collector/classes/Collector","label":"Collector"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/structures/Collector/interfaces/AwaitMessagesOptions","label":"AwaitMessagesOptions"},{"type":"doc","id":"api/structures/Collector/interfaces/CollectorOptions","label":"CollectorOptions"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/structures/Collector/type-aliases/CollectorFilter","label":"CollectorFilter"}]}],"link":{"type":"doc","id":"api/structures/Collector/index"}},{"type":"category","label":"Dialog","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/structures/Dialog/enumerations/ValidationType","label":"ValidationType"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/structures/Dialog/interfaces/CurrentDialogProps","label":"CurrentDialogProps"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogButtons","label":"DialogButtons"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogListMessageRow","label":"DialogListMessageRow"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogListMessageSection","label":"DialogListMessageSection"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogProperty","label":"DialogProperty"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogState","label":"DialogState"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogTemplate","label":"DialogTemplate"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogValidation","label":"DialogValidation"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/structures/Dialog/type-aliases/CheckFunction","label":"CheckFunction"}]}],"link":{"type":"doc","id":"api/structures/Dialog/index"}},{"type":"category","label":"MessageCollector","items":[{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/structures/MessageCollector/classes/MessageCollector","label":"MessageCollector"}]}],"link":{"type":"doc","id":"api/structures/MessageCollector/index"}},{"type":"category","label":"preProcessors","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/structures/preProcessors/enumerations/PREPROCESSORS","label":"PREPROCESSORS"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/structures/preProcessors/type-aliases/MPConfigType","label":"MPConfigType"},{"type":"doc","id":"api/structures/preProcessors/type-aliases/MessagePreProcessor","label":"MessagePreProcessor"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/structures/preProcessors/variables/MessagePreprocessors","label":"MessagePreprocessors"}]}],"link":{"type":"doc","id":"api/structures/preProcessors/index"}}]}]}; +const typedocSidebar = { items: [{"type":"category","label":"api","items":[{"type":"category","label":"Client","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/Client/enumerations/namespace","label":"namespace"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/api/Client/classes/Client","label":"Client"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/api/Client/variables/useragent","label":"useragent"}]}],"link":{"type":"doc","id":"api/api/Client/index"}},{"type":"category","label":"functions","items":[{"type":"category","label":"exposed.enum","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/functions/exposed.enum/enumerations/ExposedFn","label":"ExposedFn"}]}],"link":{"type":"doc","id":"api/api/functions/exposed.enum/index"}}]},{"type":"category","label":"model","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/enumerations/Events","label":"Events"},{"type":"doc","id":"api/api/model/enumerations/STATE","label":"STATE"},{"type":"doc","id":"api/api/model/enumerations/Status","label":"Status"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/type-aliases/EasyApiResponse","label":"EasyApiResponse"}]},{"type":"category","label":"aliases","items":[{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/aliases/type-aliases/AccountNumber","label":"AccountNumber"},{"type":"doc","id":"api/api/model/aliases/type-aliases/AdvancedFile","label":"AdvancedFile"},{"type":"doc","id":"api/api/model/aliases/type-aliases/Base64","label":"Base64"},{"type":"doc","id":"api/api/model/aliases/type-aliases/ChatId","label":"ChatId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/ChatServer","label":"ChatServer"},{"type":"doc","id":"api/api/model/aliases/type-aliases/ContactId","label":"ContactId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/Content","label":"Content"},{"type":"doc","id":"api/api/model/aliases/type-aliases/CountryCode","label":"CountryCode"},{"type":"doc","id":"api/api/model/aliases/type-aliases/DataURL","label":"DataURL"},{"type":"doc","id":"api/api/model/aliases/type-aliases/FilePath","label":"FilePath"},{"type":"doc","id":"api/api/model/aliases/type-aliases/GetURL","label":"GetURL"},{"type":"doc","id":"api/api/model/aliases/type-aliases/GroupChatId","label":"GroupChatId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/GroupChatServer","label":"GroupChatServer"},{"type":"doc","id":"api/api/model/aliases/type-aliases/GroupId","label":"GroupId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/MessageId","label":"MessageId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/NonSerializedId","label":"NonSerializedId"},{"type":"doc","id":"api/api/model/aliases/type-aliases/WaServers","label":"WaServers"}]}],"link":{"type":"doc","id":"api/api/model/aliases/index"}},{"type":"category","label":"button","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/button/interfaces/AdvancedButton","label":"AdvancedButton"},{"type":"doc","id":"api/api/model/button/interfaces/Button","label":"Button"},{"type":"doc","id":"api/api/model/button/interfaces/LocationButtonBody","label":"LocationButtonBody"},{"type":"doc","id":"api/api/model/button/interfaces/Row","label":"Row"},{"type":"doc","id":"api/api/model/button/interfaces/Section","label":"Section"}]}],"link":{"type":"doc","id":"api/api/model/button/index"}},{"type":"category","label":"call","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/call/enumerations/CallState","label":"CallState"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/call/interfaces/Call","label":"Call"}]}],"link":{"type":"doc","id":"api/api/model/call/index"}},{"type":"category","label":"chat","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/chat/enumerations/ChatMuteDuration","label":"ChatMuteDuration"},{"type":"doc","id":"api/api/model/chat/enumerations/ChatState","label":"ChatState"},{"type":"doc","id":"api/api/model/chat/enumerations/ChatTypes","label":"ChatTypes"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/chat/interfaces/BaseChat","label":"BaseChat"},{"type":"doc","id":"api/api/model/chat/interfaces/GroupChat","label":"GroupChat"},{"type":"doc","id":"api/api/model/chat/interfaces/GroupChatCreationParticipantAddResponse","label":"GroupChatCreationParticipantAddResponse"},{"type":"doc","id":"api/api/model/chat/interfaces/GroupChatCreationResponse","label":"GroupChatCreationResponse"},{"type":"doc","id":"api/api/model/chat/interfaces/LiveLocationChangedEvent","label":"LiveLocationChangedEvent"},{"type":"doc","id":"api/api/model/chat/interfaces/SingleChat","label":"SingleChat"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/chat/type-aliases/Chat","label":"Chat"},{"type":"doc","id":"api/api/model/chat/type-aliases/EphemeralDuration","label":"EphemeralDuration"}]}],"link":{"type":"doc","id":"api/api/model/chat/index"}},{"type":"category","label":"config","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/config/enumerations/CLOUD_PROVIDERS","label":"CLOUD_PROVIDERS"},{"type":"doc","id":"api/api/model/config/enumerations/DIRECTORY_STRATEGY","label":"DIRECTORY_STRATEGY"},{"type":"doc","id":"api/api/model/config/enumerations/LicenseType","label":"LicenseType"},{"type":"doc","id":"api/api/model/config/enumerations/NotificationLanguage","label":"NotificationLanguage"},{"type":"doc","id":"api/api/model/config/enumerations/OnError","label":"OnError"},{"type":"doc","id":"api/api/model/config/enumerations/QRFormat","label":"QRFormat"},{"type":"doc","id":"api/api/model/config/enumerations/QRQuality","label":"QRQuality"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/config/interfaces/ConfigObject","label":"ConfigObject"},{"type":"doc","id":"api/api/model/config/interfaces/DevTools","label":"DevTools"},{"type":"doc","id":"api/api/model/config/interfaces/EventPayload","label":"EventPayload"},{"type":"doc","id":"api/api/model/config/interfaces/ProxyServerCredentials","label":"ProxyServerCredentials"},{"type":"doc","id":"api/api/model/config/interfaces/SessionData","label":"SessionData"},{"type":"doc","id":"api/api/model/config/interfaces/Webhook","label":"Webhook"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/config/type-aliases/AdvancedConfig","label":"AdvancedConfig"}]}],"link":{"type":"doc","id":"api/api/model/config/index"}},{"type":"category","label":"contact","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/contact/interfaces/BizCategory","label":"BizCategory"},{"type":"doc","id":"api/api/model/contact/interfaces/BizProfileOptions","label":"BizProfileOptions"},{"type":"doc","id":"api/api/model/contact/interfaces/BusinessHours","label":"BusinessHours"},{"type":"doc","id":"api/api/model/contact/interfaces/BusinessProfile","label":"BusinessProfile"},{"type":"doc","id":"api/api/model/contact/interfaces/Contact","label":"Contact"},{"type":"doc","id":"api/api/model/contact/interfaces/NumberCheck","label":"NumberCheck"}]}],"link":{"type":"doc","id":"api/api/model/contact/index"}},{"type":"category","label":"errors","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/errors/enumerations/AddParticipantErrorStatusCode","label":"AddParticipantErrorStatusCode"},{"type":"doc","id":"api/api/model/errors/enumerations/ERROR_NAME","label":"ERROR_NAME"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/api/model/errors/classes/AddParticipantError","label":"AddParticipantError"},{"type":"doc","id":"api/api/model/errors/classes/CustomError","label":"CustomError"},{"type":"doc","id":"api/api/model/errors/classes/PageEvaluationTimeout","label":"PageEvaluationTimeout"},{"type":"doc","id":"api/api/model/errors/classes/SessionExpiredError","label":"SessionExpiredError"}]}],"link":{"type":"doc","id":"api/api/model/errors/index"}},{"type":"category","label":"events","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/events/enumerations/SimpleListener","label":"SimpleListener"}]}],"link":{"type":"doc","id":"api/api/model/events/index"}},{"type":"category","label":"group-metadata","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/group-metadata/enumerations/GroupNotificationTypes","label":"GroupNotificationTypes"},{"type":"doc","id":"api/api/model/group-metadata/enumerations/groupChangeEvent","label":"groupChangeEvent"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/group-metadata/interfaces/GenericGroupChangeEvent","label":"GenericGroupChangeEvent"},{"type":"doc","id":"api/api/model/group-metadata/interfaces/GroupMetadata","label":"GroupMetadata"},{"type":"doc","id":"api/api/model/group-metadata/interfaces/NewCommunityGroup","label":"NewCommunityGroup"},{"type":"doc","id":"api/api/model/group-metadata/interfaces/Participant","label":"Participant"},{"type":"doc","id":"api/api/model/group-metadata/interfaces/ParticipantChangedEventModel","label":"ParticipantChangedEventModel"}]}],"link":{"type":"doc","id":"api/api/model/group-metadata/index"}},{"type":"category","label":"id","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/id/interfaces/Id","label":"Id"}]}],"link":{"type":"doc","id":"api/api/model/id/index"}},{"type":"category","label":"label","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/label/interfaces/Label","label":"Label"}]}],"link":{"type":"doc","id":"api/api/model/label/index"}},{"type":"category","label":"media","items":[{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/media/type-aliases/Mp4StickerConversionProcessOptions","label":"Mp4StickerConversionProcessOptions"},{"type":"doc","id":"api/api/model/media/type-aliases/StickerMetadata","label":"StickerMetadata"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/api/model/media/variables/defaultProcessOptions","label":"defaultProcessOptions"}]}],"link":{"type":"doc","id":"api/api/model/media/index"}},{"type":"category","label":"message","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/api/model/message/enumerations/MessageAck","label":"MessageAck"},{"type":"doc","id":"api/api/model/message/enumerations/MessageTypes","label":"MessageTypes"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/message/interfaces/Message","label":"Message"},{"type":"doc","id":"api/api/model/message/interfaces/MessageInfo","label":"MessageInfo"},{"type":"doc","id":"api/api/model/message/interfaces/MessageInfoInteraction","label":"MessageInfoInteraction"},{"type":"doc","id":"api/api/model/message/interfaces/PollData","label":"PollData"},{"type":"doc","id":"api/api/model/message/interfaces/PollOption","label":"PollOption"},{"type":"doc","id":"api/api/model/message/interfaces/PollVote","label":"PollVote"},{"type":"doc","id":"api/api/model/message/interfaces/QuoteMap","label":"QuoteMap"},{"type":"doc","id":"api/api/model/message/interfaces/ReactionSender","label":"ReactionSender"}]}],"link":{"type":"doc","id":"api/api/model/message/index"}},{"type":"category","label":"product","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/product/interfaces/CartItem","label":"CartItem"},{"type":"doc","id":"api/api/model/product/interfaces/CustomProduct","label":"CustomProduct"},{"type":"doc","id":"api/api/model/product/interfaces/Order","label":"Order"},{"type":"doc","id":"api/api/model/product/interfaces/Product","label":"Product"}]}],"link":{"type":"doc","id":"api/api/model/product/index"}},{"type":"category","label":"reactions","items":[{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/api/model/reactions/type-aliases/Reaction","label":"Reaction"},{"type":"doc","id":"api/api/model/reactions/type-aliases/ReactionEvent","label":"ReactionEvent"},{"type":"doc","id":"api/api/model/reactions/type-aliases/ReactionRecord","label":"ReactionRecord"}]}],"link":{"type":"doc","id":"api/api/model/reactions/index"}},{"type":"category","label":"sessionInfo","items":[{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/api/model/sessionInfo/interfaces/HealthCheck","label":"HealthCheck"},{"type":"doc","id":"api/api/model/sessionInfo/interfaces/SessionInfo","label":"SessionInfo"}]}],"link":{"type":"doc","id":"api/api/model/sessionInfo/index"}}],"link":{"type":"doc","id":"api/api/model/index"}}]},{"type":"category","label":"controllers","items":[{"type":"category","label":"events","items":[{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/controllers/events/variables/ev","label":"ev"}]}],"link":{"type":"doc","id":"api/controllers/events/index"}},{"type":"doc","id":"api/controllers/init_patch/index","label":"init_patch"},{"type":"category","label":"initializer","items":[{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/controllers/initializer/variables/configWithCases","label":"configWithCases"},{"type":"doc","id":"api/controllers/initializer/variables/pkg","label":"pkg"},{"type":"doc","id":"api/controllers/initializer/variables/screenshot","label":"screenshot"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"api/controllers/initializer/functions/create","label":"create"},{"type":"doc","id":"api/controllers/initializer/functions/timeout","label":"timeout"}]}],"link":{"type":"doc","id":"api/controllers/initializer/index"}},{"type":"category","label":"patch_manager","items":[{"type":"category","label":"Functions","items":[{"type":"doc","id":"api/controllers/patch_manager/functions/earlyInjectionCheck","label":"earlyInjectionCheck"},{"type":"doc","id":"api/controllers/patch_manager/functions/getAndInjectLicense","label":"getAndInjectLicense"}]}],"link":{"type":"doc","id":"api/controllers/patch_manager/index"}}]},{"type":"category","label":"logging","items":[{"type":"category","label":"custom_transport","items":[{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/logging/custom_transport/classes/LogToEvTransport","label":"LogToEvTransport"},{"type":"doc","id":"api/logging/custom_transport/classes/NoOpTransport","label":"NoOpTransport"}]}],"link":{"type":"doc","id":"api/logging/custom_transport/index"}},{"type":"category","label":"logging","items":[{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/logging/logging/type-aliases/ConfigLogTransport","label":"ConfigLogTransport"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/logging/logging/variables/log","label":"log"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"api/logging/logging/functions/addRotateFileLogTransport","label":"addRotateFileLogTransport"}]}],"link":{"type":"doc","id":"api/logging/logging/index"}}]},{"type":"category","label":"structures","items":[{"type":"category","label":"Collector","items":[{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/structures/Collector/classes/Collection","label":"Collection"},{"type":"doc","id":"api/structures/Collector/classes/Collector","label":"Collector"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/structures/Collector/interfaces/AwaitMessagesOptions","label":"AwaitMessagesOptions"},{"type":"doc","id":"api/structures/Collector/interfaces/CollectorOptions","label":"CollectorOptions"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/structures/Collector/type-aliases/CollectorFilter","label":"CollectorFilter"}]}],"link":{"type":"doc","id":"api/structures/Collector/index"}},{"type":"category","label":"Dialog","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/structures/Dialog/enumerations/ValidationType","label":"ValidationType"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/structures/Dialog/interfaces/CurrentDialogProps","label":"CurrentDialogProps"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogButtons","label":"DialogButtons"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogListMessageRow","label":"DialogListMessageRow"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogListMessageSection","label":"DialogListMessageSection"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogProperty","label":"DialogProperty"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogState","label":"DialogState"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogTemplate","label":"DialogTemplate"},{"type":"doc","id":"api/structures/Dialog/interfaces/DialogValidation","label":"DialogValidation"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/structures/Dialog/type-aliases/CheckFunction","label":"CheckFunction"}]}],"link":{"type":"doc","id":"api/structures/Dialog/index"}},{"type":"category","label":"MessageCollector","items":[{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/structures/MessageCollector/classes/MessageCollector","label":"MessageCollector"}]}],"link":{"type":"doc","id":"api/structures/MessageCollector/index"}},{"type":"category","label":"preProcessors","items":[{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"api/structures/preProcessors/enumerations/PREPROCESSORS","label":"PREPROCESSORS"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"api/structures/preProcessors/type-aliases/MPConfigType","label":"MPConfigType"},{"type":"doc","id":"api/structures/preProcessors/type-aliases/MessagePreProcessor","label":"MessagePreProcessor"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/structures/preProcessors/variables/MessagePreprocessors","label":"MessagePreprocessors"}]}],"link":{"type":"doc","id":"api/structures/preProcessors/index"}}]}]}; module.exports = typedocSidebar.items; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f731ca1b0e..b7ffae7246 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@open-wa/wa-automate", - "version": "4.71.14", + "version": "4.71.15", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@open-wa/wa-automate", - "version": "4.71.14", + "version": "4.71.15", "hasInstallScript": true, "license": "H-DNH V1.0", "dependencies": { diff --git a/package.json b/package.json index 1472358618..32c105e23c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@open-wa/wa-automate", - "version": "4.71.14", + "version": "4.71.15", "licenseCheckUrl": "https://funcs.openwa.dev/license-check", "brokenMethodReportUrl": "https://funcs.openwa.dev/report-bm", "patches": "https://cdn.openwa.dev/patches.json", diff --git a/release.png b/release.png index 54729aebbaf39c224d9e27874551b3d58f0654f6..188fc4fd2be78d8308920a9c58e82d4eb9c26116 100644 GIT binary patch literal 64602 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

2OoG7{BGcF8Pv7(MTV-g@Aj58r0+&CoFc-CD5F> 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 z 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 From 77a2984e0f34d1e120cac214775b4f671ee118dc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 20 Jul 2024 14:53:13 +0000 Subject: [PATCH 2/2] updated types-only package --- types-only/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types-only/package.json b/types-only/package.json index 2d614f4717..12a518d7c9 100644 --- a/types-only/package.json +++ b/types-only/package.json @@ -1,6 +1,6 @@ { "name": "@open-wa/wa-automate-types-only", - "version": "4.71.14", + "version": "4.71.15", "description": "Types generated from the @open-wa/wa-automate package", "scripts": { "build": "tsc",