diff --git a/.eslintignore b/.eslintignore index ffb396b..761d8a9 100644 --- a/.eslintignore +++ b/.eslintignore @@ -8,3 +8,4 @@ WAProto WASignalGroup Example/Example.ts docs +proto-extract \ No newline at end of file diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 0000000..7cb3e2c --- /dev/null +++ b/.github/README.md @@ -0,0 +1,44 @@ +

Baileys logo

+ +![NPM Downloads](https://img.shields.io/npm/dw/%40whiskeysockets%2Fbaileys?label=npm&color=%23CB3837) +![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/whiskeysockets/baileys) +![Discord](https://img.shields.io/discord/725839806084546610?label=discord&color=%235865F2) + +Baileys is a WebSockets-based TypeScript library for interacting with the WhatsApp Web API. + +# Usage +A new guide has been posted at https://baileys.wiki. The old guide can be accessed on [NPM](https://npmjs.com/package/baileys). + +# Sponsor +If you'd like to financially support this project, you can do so by supporting the current maintainer [here](https://purpshell.dev/sponsor). + +# Disclaimer +This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with WhatsApp or any of its subsidiaries or its affiliates. +The official WhatsApp website can be found at whatsapp.com. "WhatsApp" as well as related names, marks, emblems and images are registered trademarks of their respective owners. + +The maintainers of Baileys do not in any way condone the use of this application in practices that violate the Terms of Service of WhatsApp. The maintainers of this application call upon the personal responsibility of its users to use this application in a fair way, as it is intended to be used. +Use at your own discretion. Do not spam people with this. We discourage any stalkerware, bulk or automated messaging usage. + +# License +Copyright (c) 2025 Rajeh Taher/WhiskeySockets + +Licensed under the MIT License: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Thus, the maintainers of the project can't be held liable for any potential misuse of this project. diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index dc509f9..deaf85c 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,7 +3,9 @@ name: Mark stale issues and pull requests on: schedule: - cron: "30 1 * * *" - +permissions: + issues: write + pull-requests: write jobs: stale: runs-on: ubuntu-latest @@ -11,7 +13,9 @@ jobs: - uses: actions/stale@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: 'This issue is stale because it has been open 6 days with no activity. Remove the stale label or comment or this will be closed in 2 days' - stale-pr-message: 'This PR is stale because it has been open 6 days with no activity. Remove the stale label or comment or this will be closed in 2 days' - days-before-stale: 6 - days-before-close: 2 + stale-issue-message: 'This issue is stale because it has been open 15 days with no activity. Remove the stale label or comment or this will be closed in 15 days' + stale-pr-message: 'This PR is stale because it has been open 15 days with no activity. Remove the stale label or comment or this will be closed in 15 days' + days-before-stale: 15 + days-before-close: 30 + exempt-issue-labels: 'bug,enhancement' + exempt-pr-labels: 'bug,enhancement' diff --git a/CHANGELOG.md b/CHANGELOG.md index 00e1779..9b2e4f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 6.7.16 (2025-03-04) +## 6.7.18 (2025-05-28) diff --git a/README.md b/README.md index 0c17a43..4e64eea 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,19 @@ -

Baileys logo

+

Baileys logo

+ +
![NPM Downloads](https://img.shields.io/npm/dw/%40whiskeysockets%2Fbaileys?label=npm&color=%23CB3837) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/whiskeysockets/baileys) ![Discord](https://img.shields.io/discord/725839806084546610?label=discord&color=%235865F2) -Baileys is a WebSockets-based TypeScript library for interacting with the WhatsApp Web API. +
-# Usage -A new guide has been posted at https://baileys.wiki. +
Baileys is a WebSockets-based TypeScript library for interacting with the WhatsApp Web API.
+ +# Important Note +This is a temporally README, the new guide is at development and will be fully released when it's finished. + +New Guide: https://baileys.wiki # Sponsor If you'd like to financially support this project, you can do so by supporting the current maintainer [here](https://purpshell.dev/sponsor). @@ -19,6 +25,1259 @@ The official WhatsApp website can be found at whatsapp.com. "WhatsApp" as well a The maintainers of Baileys do not in any way condone the use of this application in practices that violate the Terms of Service of WhatsApp. The maintainers of this application call upon the personal responsibility of its users to use this application in a fair way, as it is intended to be used. Use at your own discretion. Do not spam people with this. We discourage any stalkerware, bulk or automated messaging usage. +## + +- Baileys does not require Selenium or any other browser to be interface with WhatsApp Web, it does so directly using a **WebSocket**. +- Not running Selenium or Chromimum saves you like **half a gig** of ram :/ +- Baileys supports interacting with the multi-device & web versions of WhatsApp. +- Thank you to [@pokearaujo](https://github.com/pokearaujo/multidevice) for writing his observations on the workings of WhatsApp Multi-Device. Also, thank you to [@Sigalor](https://github.com/sigalor/whatsapp-web-reveng) for writing his observations on the workings of WhatsApp Web and thanks to [@Rhymen](https://github.com/Rhymen/go-whatsapp/) for the __go__ implementation. + +> [!IMPORTANT] +> The original repository had to be removed by the original author - we now continue development in this repository here. +This is the only official repository and is maintained by the community. +> **Join the Discord [here](https://discord.gg/WeJM5FP9GG)** + +## Example + +Do check out & run [example.ts](Example/example.ts) to see an example usage of the library. +The script covers most common use cases. +To run the example script, download or clone the repo and then type the following in a terminal: +1. ``` cd path/to/Baileys ``` +2. ``` yarn ``` +3. ``` yarn example ``` + +## Install + +Use the stable version: +``` +yarn add @whiskeysockets/baileys +``` + +Use the edge version (no guarantee of stability, but latest fixes + features) +``` +yarn add github:WhiskeySockets/Baileys +``` + +Then import your code using: +```ts +import makeWASocket from '@whiskeysockets/baileys' +``` + +# Links + +- [Discord](https://discord.gg/WeJM5FP9GG) +- [Docs](https://guide.whiskeysockets.io/) + +# Index + +- [Connecting Account](#connecting-account) + - [Connect with QR-CODE](#starting-socket-with-qr-code) + - [Connect with Pairing Code](#starting-socket-with-pairing-code) + - [Receive Full History](#receive-full-history) +- [Important Notes About Socket Config](#important-notes-about-socket-config) + - [Caching Group Metadata (Recommended)](#caching-group-metadata-recommended) + - [Improve Retry System & Decrypt Poll Votes](#improve-retry-system--decrypt-poll-votes) + - [Receive Notifications in Whatsapp App](#receive-notifications-in-whatsapp-app) + +- [Save Auth Info](#saving--restoring-sessions) +- [Handling Events](#handling-events) + - [Example to Start](#example-to-start) + - [Decrypt Poll Votes](#decrypt-poll-votes) + - [Summary of Events on First Connection](#summary-of-events-on-first-connection) +- [Implementing a Data Store](#implementing-a-data-store) +- [Whatsapp IDs Explain](#whatsapp-ids-explain) +- [Utility Functions](#utility-functions) +- [Sending Messages](#sending-messages) + - [Non-Media Messages](#non-media-messages) + - [Text Message](#text-message) + - [Quote Message](#quote-message-works-with-all-types) + - [Mention User](#mention-user-works-with-most-types) + - [Forward Messages](#forward-messages) + - [Location Message](#location-message) + - [Contact Message](#contact-message) + - [Reaction Message](#reaction-message) + - [Pin Message](#pin-message) + - [Poll Message](#poll-message) + - [Sending with Link Preview](#sending-messages-with-link-previews) + - [Media Messages](#media-messages) + - [Gif Message](#gif-message) + - [Video Message](#video-message) + - [Audio Message](#audio-message) + - [Image Message](#image-message) + - [ViewOnce Message](#view-once-message) +- [Modify Messages](#modify-messages) + - [Delete Messages (for everyone)](#deleting-messages-for-everyone) + - [Edit Messages](#editing-messages) +- [Manipulating Media Messages](#manipulating-media-messages) + - [Thumbnail in Media Messages](#thumbnail-in-media-messages) + - [Downloading Media Messages](#downloading-media-messages) + - [Re-upload Media Message to Whatsapp](#re-upload-media-message-to-whatsapp) +- [Reject Call](#reject-call) +- [Send States in Chat](#send-states-in-chat) + - [Reading Messages](#reading-messages) + - [Update Presence](#update-presence) +- [Modifying Chats](#modifying-chats) + - [Archive a Chat](#archive-a-chat) + - [Mute/Unmute a Chat](#muteunmute-a-chat) + - [Mark a Chat Read/Unread](#mark-a-chat-readunread) + - [Delete a Message for Me](#delete-a-message-for-me) + - [Delete a Chat](#delete-a-chat) + - [Star/Unstar a Message](#starunstar-a-message) + - [Disappearing Messages](#disappearing-messages) +- [User Querys](#user-querys) + - [Check If ID Exists in Whatsapp](#check-if-id-exists-in-whatsapp) + - [Query Chat History (groups too)](#query-chat-history-groups-too) + - [Fetch Status](#fetch-status) + - [Fetch Profile Picture (groups too)](#fetch-profile-picture-groups-too) + - [Fetch Bussines Profile (such as description or category)](#fetch-bussines-profile-such-as-description-or-category) + - [Fetch Someone's Presence (if they're typing or online)](#fetch-someones-presence-if-theyre-typing-or-online) +- [Change Profile](#change-profile) + - [Change Profile Status](#change-profile-status) + - [Change Profile Name](#change-profile-name) + - [Change Display Picture (groups too)](#change-display-picture-groups-too) + - [Remove display picture (groups too)](#remove-display-picture-groups-too) +- [Groups](#groups) + - [Create a Group](#create-a-group) + - [Add/Remove or Demote/Promote](#addremove-or-demotepromote) + - [Change Subject (name)](#change-subject-name) + - [Change Description](#change-description) + - [Change Settings](#change-settings) + - [Leave a Group](#leave-a-group) + - [Get Invite Code](#get-invite-code) + - [Revoke Invite Code](#revoke-invite-code) + - [Join Using Invitation Code](#join-using-invitation-code) + - [Get Group Info by Invite Code](#get-group-info-by-invite-code) + - [Query Metadata (participants, name, description...)](#query-metadata-participants-name-description) + - [Join using groupInviteMessage](#join-using-groupinvitemessage) + - [Get Request Join List](#get-request-join-list) + - [Approve/Reject Request Join](#approvereject-request-join) + - [Get All Participating Groups Metadata](#get-all-participating-groups-metadata) + - [Toggle Ephemeral](#toggle-ephemeral) + - [Change Add Mode](#change-add-mode) +- [Privacy](#privacy) + - [Block/Unblock User](#blockunblock-user) + - [Get Privacy Settings](#get-privacy-settings) + - [Get BlockList](#get-blocklist) + - [Update LastSeen Privacy](#update-lastseen-privacy) + - [Update Online Privacy](#update-online-privacy) + - [Update Profile Picture Privacy](#update-profile-picture-privacy) + - [Update Status Privacy](#update-status-privacy) + - [Update Read Receipts Privacy](#update-read-receipts-privacy) + - [Update Groups Add Privacy](#update-groups-add-privacy) + - [Update Default Disappearing Mode](#update-default-disappearing-mode) +- [Broadcast Lists & Stories](#broadcast-lists--stories) + - [Send Broadcast & Stories](#send-broadcast--stories) + - [Query a Broadcast List's Recipients & Name](#query-a-broadcast-lists-recipients--name) +- [Writing Custom Functionality](#writing-custom-functionality) + - [Enabling Debug Level in Baileys Logs](#enabling-debug-level-in-baileys-logs) + - [How Whatsapp Communicate With Us](#how-whatsapp-communicate-with-us) + - [Register a Callback for Websocket Events](#register-a-callback-for-websocket-events) + +## Connecting Account + +WhatsApp provides a multi-device API that allows Baileys to be authenticated as a second WhatsApp client by scanning a **QR code** or **Pairing Code** with WhatsApp on your phone. + +> [!NOTE] +> **[Here](#example-to-start) is a simple example of event handling** + +> [!TIP] +> **You can see all supported socket configs [here](https://baileys.whiskeysockets.io/types/SocketConfig.html) (Recommended)** + +### Starting socket with **QR-CODE** + +> [!TIP] +> You can customize browser name if you connect with **QR-CODE**, with `Browser` constant, we have some browsers config, **see [here](https://baileys.whiskeysockets.io/types/BrowsersMap.html)** + +```ts +import makeWASocket from '@whiskeysockets/baileys' + +const sock = makeWASocket({ + // can provide additional config here + browser: Browsers.ubuntu('My App'), + printQRInTerminal: true +}) +``` + +If the connection is successful, you will see a QR code printed on your terminal screen, scan it with WhatsApp on your phone and you'll be logged in! + +### Starting socket with **Pairing Code** + + +> [!IMPORTANT] +> Pairing Code isn't Mobile API, it's a method to connect Whatsapp Web without QR-CODE, you can connect only with one device, see [here](https://faq.whatsapp.com/1324084875126592/?cms_platform=web) + +The phone number can't have `+` or `()` or `-`, only numbers, you must provide country code + +```ts +import makeWASocket from '@whiskeysockets/baileys' + +const sock = makeWASocket({ + // can provide additional config here + printQRInTerminal: false //need to be false +}) + +if (!sock.authState.creds.registered) { + const number = 'XXXXXXXXXXX' + const code = await sock.requestPairingCode(number) + console.log(code) +} +``` + +### Receive Full History + +1. Set `syncFullHistory` as `true` +2. Baileys, by default, use chrome browser config + - If you'd like to emulate a desktop connection (and receive more message history), this browser setting to your Socket config: + +```ts +const sock = makeWASocket({ + ...otherOpts, + // can use Windows, Ubuntu here too + browser: Browsers.macOS('Desktop'), + syncFullHistory: true +}) +``` + +## Important Notes About Socket Config + +### Caching Group Metadata (Recommended) +- If you use baileys for groups, we recommend you to set `cachedGroupMetadata` in socket config, you need to implement a cache like this: + + ```ts + const groupCache = new NodeCache({stdTTL: 5 * 60, useClones: false}) + + const sock = makeWASocket({ + cachedGroupMetadata: async (jid) => groupCache.get(jid) + }) + + sock.ev.on('groups.update', async ([event]) => { + const metadata = await sock.groupMetadata(event.id) + groupCache.set(event.id, metadata) + }) + + sock.ev.on('group-participants.update', async (event) => { + const metadata = await sock.groupMetadata(event.id) + groupCache.set(event.id, metadata) + }) + ``` + +### Improve Retry System & Decrypt Poll Votes +- If you want to improve sending message, retrying when error occurs and decrypt poll votes, you need to have a store and set `getMessage` config in socket like this: + ```ts + const sock = makeWASocket({ + getMessage: async (key) => await getMessageFromStore(key) + }) + ``` + +### Receive Notifications in Whatsapp App +- If you want to receive notifications in whatsapp app, set `markOnlineOnConnect` to `false` + ```ts + const sock = makeWASocket({ + markOnlineOnConnect: false + }) + ``` +## Saving & Restoring Sessions + +You obviously don't want to keep scanning the QR code every time you want to connect. + +So, you can load the credentials to log back in: +```ts +import makeWASocket, { useMultiFileAuthState } from '@whiskeysockets/baileys' + +const { state, saveCreds } = await useMultiFileAuthState('auth_info_baileys') + +// will use the given state to connect +// so if valid credentials are available -- it'll connect without QR +const sock = makeWASocket({ auth: state }) + +// this will be called as soon as the credentials are updated +sock.ev.on('creds.update', saveCreds) +``` + +> [!IMPORTANT] +> `useMultiFileAuthState` is a utility function to help save the auth state in a single folder, this function serves as a good guide to help write auth & key states for SQL/no-SQL databases, which I would recommend in any production grade system. + +> [!NOTE] +> When a message is received/sent, due to signal sessions needing updating, the auth keys (`authState.keys`) will update. Whenever that happens, you must save the updated keys (`authState.keys.set()` is called). Not doing so will prevent your messages from reaching the recipient & cause other unexpected consequences. The `useMultiFileAuthState` function automatically takes care of that, but for any other serious implementation -- you will need to be very careful with the key state management. + +## Handling Events + +- Baileys uses the EventEmitter syntax for events. +They're all nicely typed up, so you shouldn't have any issues with an Intellisense editor like VS Code. + +> [!IMPORTANT] +> **The events are [these](https://baileys.whiskeysockets.io/types/BaileysEventMap.html)**, it's important you see all events + +You can listen to these events like this: +```ts +const sock = makeWASocket() +sock.ev.on('messages.upsert', ({ messages }) => { + console.log('got messages', messages) +}) +``` + +### Example to Start + +> [!NOTE] +> This example includes basic auth storage too + +```ts +import makeWASocket, { DisconnectReason, useMultiFileAuthState } from '@whiskeysockets/baileys' +import { Boom } from '@hapi/boom' + +async function connectToWhatsApp () { + const { state, saveCreds } = await useMultiFileAuthState('auth_info_baileys') + const sock = makeWASocket({ + // can provide additional config here + auth: state, + printQRInTerminal: true + }) + sock.ev.on('connection.update', (update) => { + const { connection, lastDisconnect } = update + if(connection === 'close') { + const shouldReconnect = (lastDisconnect.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut + console.log('connection closed due to ', lastDisconnect.error, ', reconnecting ', shouldReconnect) + // reconnect if not logged out + if(shouldReconnect) { + connectToWhatsApp() + } + } else if(connection === 'open') { + console.log('opened connection') + } + }) + sock.ev.on('messages.upsert', event => { + for (const m of event.messages) { + console.log(JSON.stringify(m, undefined, 2)) + + console.log('replying to', m.key.remoteJid) + await sock.sendMessage(m.key.remoteJid!, { text: 'Hello Word' }) + } + }) + + // to storage creds (session info) when it updates + sock.ev.on('creds.update', saveCreds) +} +// run in main file +connectToWhatsApp() +``` + +> [!IMPORTANT] +> In `messages.upsert` it's recommended to use a loop like `for (const message of event.messages)` to handle all messages in array + +### Decrypt Poll Votes + +- By default poll votes are encrypted and handled in `messages.update` +- That's a simple example +```ts +sock.ev.on('messages.update', event => { + for(const { key, update } of event) { + if(update.pollUpdates) { + const pollCreation = await getMessage(key) + if(pollCreation) { + console.log( + 'got poll update, aggregation: ', + getAggregateVotesInPollMessage({ + message: pollCreation, + pollUpdates: update.pollUpdates, + }) + ) + } + } + } +}) +``` + +- `getMessage` is a [store](#implementing-a-data-store) implementation (in your end) + +### Summary of Events on First Connection + +1. When you connect first time, `connection.update` will be fired requesting you to restart sock +2. Then, history messages will be received in `messaging.history-set` + +## Implementing a Data Store + +- Baileys does not come with a defacto storage for chats, contacts, or messages. However, a simple in-memory implementation has been provided. The store listens for chat updates, new messages, message updates, etc., to always have an up-to-date version of the data. + +> [!IMPORTANT] +> I highly recommend building your own data store, as storing someone's entire chat history in memory is a terrible waste of RAM. + +It can be used as follows: + +```ts +import makeWASocket, { makeInMemoryStore } from '@whiskeysockets/baileys' +// the store maintains the data of the WA connection in memory +// can be written out to a file & read from it +const store = makeInMemoryStore({ }) +// can be read from a file +store.readFromFile('./baileys_store.json') +// saves the state to a file every 10s +setInterval(() => { + store.writeToFile('./baileys_store.json') +}, 10_000) + +const sock = makeWASocket({ }) +// will listen from this socket +// the store can listen from a new socket once the current socket outlives its lifetime +store.bind(sock.ev) + +sock.ev.on('chats.upsert', () => { + // can use 'store.chats' however you want, even after the socket dies out + // 'chats' => a KeyedDB instance + console.log('got chats', store.chats.all()) +}) + +sock.ev.on('contacts.upsert', () => { + console.log('got contacts', Object.values(store.contacts)) +}) + +``` + +The store also provides some simple functions such as `loadMessages` that utilize the store to speed up data retrieval. + +## Whatsapp IDs Explain + +- `id` is the WhatsApp ID, called `jid` too, of the person or group you're sending the message to. + - It must be in the format ```[country code][phone number]@s.whatsapp.net``` + - Example for people: ```+19999999999@s.whatsapp.net```. + - For groups, it must be in the format ``` 123456789-123345@g.us ```. + - For broadcast lists, it's `[timestamp of creation]@broadcast`. + - For stories, the ID is `status@broadcast`. + +## Utility Functions + +- `getContentType`, returns the content type for any message +- `getDevice`, returns the device from message +- `makeCacheableSignalKeyStore`, make auth store more fast +- `downloadContentFromMessage`, download content from any message + +## Sending Messages + +- Send all types of messages with a single function + - **[Here](https://baileys.whiskeysockets.io/types/AnyMessageContent.html) you can see all message contents supported, like text message** + - **[Here](https://baileys.whiskeysockets.io/types/MiscMessageGenerationOptions.html) you can see all options supported, like quote message** + + ```ts + const jid: string + const content: AnyMessageContent + const options: MiscMessageGenerationOptions + + sock.sendMessage(jid, content, options) + ``` + +### Non-Media Messages + +#### Text Message +```ts +await sock.sendMessage(jid, { text: 'hello word' }) +``` + +#### Quote Message (works with all types) +```ts +await sock.sendMessage(jid, { text: 'hello word' }, { quoted: message }) +``` + +#### Mention User (works with most types) +- @number is to mention in text, it's optional +```ts +await sock.sendMessage( + jid, + { + text: '@12345678901', + mentions: ['12345678901@s.whatsapp.net'] + } +) +``` + +#### Forward Messages +- You need to have message object, can be retrieved from [store](#implementing-a-data-store) or use a [message](https://baileys.whiskeysockets.io/types/WAMessage.html) object +```ts +const msg = getMessageFromStore() // implement this on your end +await sock.sendMessage(jid, { forward: msg }) // WA forward the message! +``` + +#### Location Message +```ts +await sock.sendMessage( + jid, + { + location: { + degreesLatitude: 24.121231, + degreesLongitude: 55.1121221 + } + } +) +``` +#### Contact Message +```ts +const vcard = 'BEGIN:VCARD\n' // metadata of the contact card + + 'VERSION:3.0\n' + + 'FN:Jeff Singh\n' // full name + + 'ORG:Ashoka Uni;\n' // the organization of the contact + + 'TEL;type=CELL;type=VOICE;waid=911234567890:+91 12345 67890\n' // WhatsApp ID + phone number + + 'END:VCARD' + +await sock.sendMessage( + id, + { + contacts: { + displayName: 'Jeff', + contacts: [{ vcard }] + } + } +) +``` + +#### Reaction Message +- You need to pass the key of message, you can retrieve from [store](#implementing-a-data-store) or use a [key](https://baileys.whiskeysockets.io/types/WAMessageKey.html) object +```ts +await sock.sendMessage( + jid, + { + react: { + text: '💖', // use an empty string to remove the reaction + key: message.key + } + } +) +``` + +#### Pin Message +- You need to pass the key of message, you can retrieve from [store](#implementing-a-data-store) or use a [key](https://baileys.whiskeysockets.io/types/WAMessageKey.html) object + +- Time can be: + +| Time | Seconds | +|-------|----------------| +| 24h | 86.400 | +| 7d | 604.800 | +| 30d | 2.592.000 | + +```ts +await sock.sendMessage( + jid, + { + pin: { + type: 1, // 0 to remove + time: 86400 + key: message.key + } + } +) +``` + +#### Poll Message +```ts +await sock.sendMessage( + jid, + { + poll: { + name: 'My Poll', + values: ['Option 1', 'Option 2', ...], + selectableCount: 1, + toAnnouncementGroup: false // or true + } + } +) +``` + +### Sending Messages with Link Previews + +1. By default, wa does not have link generation when sent from the web +2. Baileys has a function to generate the content for these link previews +3. To enable this function's usage, add `link-preview-js` as a dependency to your project with `yarn add link-preview-js` +4. Send a link: +```ts +await sock.sendMessage( + jid, + { + text: 'Hi, this was sent using https://github.com/whiskeysockets/baileys' + } +) +``` + +### Media Messages + +Sending media (video, stickers, images) is easier & more efficient than ever. + +> [!NOTE] +> In media messages, you can pass `{ stream: Stream }` or `{ url: Url }` or `Buffer` directly, you can see more [here](https://baileys.whiskeysockets.io/types/WAMediaUpload.html) + +- When specifying a media url, Baileys never loads the entire buffer into memory; it even encrypts the media as a readable stream. + +> [!TIP] +> It's recommended to use Stream or Url to save memory + +#### Gif Message +- Whatsapp doesn't support `.gif` files, that's why we send gifs as common `.mp4` video with `gifPlayback` flag +```ts +await sock.sendMessage( + jid, + { + video: fs.readFileSync('Media/ma_gif.mp4'), + caption: 'hello word', + gifPlayback: true + } +) +``` + +#### Video Message +```ts +await sock.sendMessage( + id, + { + video: { + url: './Media/ma_gif.mp4' + }, + caption: 'hello word', + ptv: false // if set to true, will send as a `video note` + } +) +``` + +#### Audio Message +- To audio message work in all devices you need to convert with some tool like `ffmpeg` with this flags: + ```bash + codec: libopus //ogg file + ac: 1 //one channel + avoid_negative_ts + make_zero + ``` + - Example: + ```bash + ffmpeg -i input.mp4 -avoid_negative_ts make_zero -ac 1 output.ogg + ``` +```ts +await sock.sendMessage( + jid, + { + audio: { + url: './Media/audio.mp3' + }, + mimetype: 'audio/mp4' + } +) +``` + +#### Image Message +```ts +await sock.sendMessage( + id, + { + image: { + url: './Media/ma_img.png' + }, + caption: 'hello word' + } +) +``` + +#### View Once Message + +- You can send all messages above as `viewOnce`, you only need to pass `viewOnce: true` in content object + +```ts +await sock.sendMessage( + id, + { + image: { + url: './Media/ma_img.png' + }, + viewOnce: true, //works with video, audio too + caption: 'hello word' + } +) +``` + +## Modify Messages + +### Deleting Messages (for everyone) + +```ts +const msg = await sock.sendMessage(jid, { text: 'hello word' }) +await sock.sendMessage(jid, { delete: msg.key }) +``` + +**Note:** deleting for oneself is supported via `chatModify`, see in [this section](#modifying-chats) + +### Editing Messages + +- You can pass all editable contents here +```ts +await sock.sendMessage(jid, { + text: 'updated text goes here', + edit: response.key, + }); +``` + +## Manipulating Media Messages + +### Thumbnail in Media Messages +- For media messages, the thumbnail can be generated automatically for images & stickers provided you add `jimp` or `sharp` as a dependency in your project using `yarn add jimp` or `yarn add sharp`. +- Thumbnails for videos can also be generated automatically, though, you need to have `ffmpeg` installed on your system. + +### Downloading Media Messages + +If you want to save the media you received +```ts +import { createWriteStream } from 'fs' +import { downloadMediaMessage, getContentType } from '@whiskeysockets/baileys' + +sock.ev.on('messages.upsert', async ({ [m] }) => { + if (!m.message) return // if there is no text or media message + const messageType = getContentType(m) // get what type of message it is (text, image, video...) + + // if the message is an image + if (messageType === 'imageMessage') { + // download the message + const stream = await downloadMediaMessage( + m, + 'stream', // can be 'buffer' too + { }, + { + logger, + // pass this so that baileys can request a reupload of media + // that has been deleted + reuploadRequest: sock.updateMediaMessage + } + ) + // save to file + const writeStream = createWriteStream('./my-download.jpeg') + stream.pipe(writeStream) + } +} +``` + +### Re-upload Media Message to Whatsapp + +- WhatsApp automatically removes old media from their servers. For the device to access said media -- a re-upload is required by another device that has it. This can be accomplished using: +```ts +await sock.updateMediaMessage(msg) +``` + +## Reject Call + +- You can obtain `callId` and `callFrom` from `call` event + +```ts +await sock.rejectCall(callId, callFrom) +``` + +## Send States in Chat + +### Reading Messages +- A set of message [keys](https://baileys.whiskeysockets.io/types/WAMessageKey.html) must be explicitly marked read now. +- You cannot mark an entire 'chat' read as it were with Baileys Web. +This means you have to keep track of unread messages. + +```ts +const key: WAMessageKey +// can pass multiple keys to read multiple messages as well +await sock.readMessages([key]) +``` + +The message ID is the unique identifier of the message that you are marking as read. +On a `WAMessage`, the `messageID` can be accessed using ```messageID = message.key.id```. + +### Update Presence + +- ``` presence ``` can be one of [these](https://baileys.whiskeysockets.io/types/WAPresence.html) +- The presence expires after about 10 seconds. +- This lets the person/group with `jid` know whether you're online, offline, typing etc. + +```ts +await sock.sendPresenceUpdate('available', jid) +``` + +> [!NOTE] +> If a desktop client is active, WA doesn't send push notifications to the device. If you would like to receive said notifications -- mark your Baileys client offline using `sock.sendPresenceUpdate('unavailable')` + +## Modifying Chats + +WA uses an encrypted form of communication to send chat/app updates. This has been implemented mostly and you can send the following updates: + +> [!IMPORTANT] +> If you mess up one of your updates, WA can log you out of all your devices and you'll have to log in again. + +### Archive a Chat +```ts +const lastMsgInChat = await getLastMessageInChat(jid) // implement this on your end +await sock.chatModify({ archive: true, lastMessages: [lastMsgInChat] }, jid) +``` +### Mute/Unmute a Chat + +- Supported times: + +| Time | Miliseconds | +|-------|-----------------| +| Remove | null | +| 8h | 86.400.000 | +| 7d | 604.800.000 | + +```ts +// mute for 8 hours +await sock.chatModify({ mute: 8 * 60 * 60 * 1000 }, jid) +// unmute +await sock.chatModify({ mute: null }, jid) +``` +### Mark a Chat Read/Unread +```ts +const lastMsgInChat = await getLastMessageInChat(jid) // implement this on your end +// mark it unread +await sock.chatModify({ markRead: false, lastMessages: [lastMsgInChat] }, jid) +``` + +### Delete a Message for Me +```ts +await sock.chatModify( + { + clear: { + messages: [ + { + id: 'ATWYHDNNWU81732J', + fromMe: true, + timestamp: '1654823909' + } + ] + } + }, + jid +) + +``` +### Delete a Chat +```ts +const lastMsgInChat = await getLastMessageInChat(jid) // implement this on your end +await sock.chatModify({ + delete: true, + lastMessages: [ + { + key: lastMsgInChat.key, + messageTimestamp: lastMsgInChat.messageTimestamp + } + ] + }, + jid +) +``` +### Pin/Unpin a Chat +```ts +await sock.chatModify({ + pin: true // or `false` to unpin + }, + jid +) +``` +### Star/Unstar a Message +```ts +await sock.chatModify({ + star: { + messages: [ + { + id: 'messageID', + fromMe: true // or `false` + } + ], + star: true // - true: Star Message; false: Unstar Message + } + }, + jid +) +``` + +### Disappearing Messages + +- Ephemeral can be: + +| Time | Seconds | +|-------|----------------| +| Remove | 0 | +| 24h | 86.400 | +| 7d | 604.800 | +| 90d | 7.776.000 | + +- You need to pass in **Seconds**, default is 7 days + +```ts +// turn on disappearing messages +await sock.sendMessage( + jid, + // this is 1 week in seconds -- how long you want messages to appear for + { disappearingMessagesInChat: WA_DEFAULT_EPHEMERAL } +) + +// will send as a disappearing message +await sock.sendMessage(jid, { text: 'hello' }, { ephemeralExpiration: WA_DEFAULT_EPHEMERAL }) + +// turn off disappearing messages +await sock.sendMessage( + jid, + { disappearingMessagesInChat: false } +) +``` + +## User Querys + +### Check If ID Exists in Whatsapp +```ts +const [result] = await sock.onWhatsApp(jid) +if (result.exists) console.log (`${jid} exists on WhatsApp, as jid: ${result.jid}`) +``` + +### Query Chat History (groups too) + +- You need to have oldest message in chat +```ts +const msg = await getOldestMessageInChat(jid) // implement this on your end +await sock.fetchMessageHistory( + 50, //quantity (max: 50 per query) + msg.key, + msg.messageTimestamp +) +``` +- Messages will be received in `messaging.history-set` event + +### Fetch Status +```ts +const status = await sock.fetchStatus(jid) +console.log('status: ' + status) +``` + +### Fetch Profile Picture (groups too) +- To get the display picture of some person/group +```ts +// for low res picture +const ppUrl = await sock.profilePictureUrl(jid) +console.log(ppUrl) + +// for high res picture +const ppUrl = await sock.profilePictureUrl(jid, 'image') +``` + +### Fetch Bussines Profile (such as description or category) +```ts +const profile = await sock.getBusinessProfile(jid) +console.log('business description: ' + profile.description + ', category: ' + profile.category) +``` + +### Fetch Someone's Presence (if they're typing or online) +```ts +// the presence update is fetched and called here +sock.ev.on('presence.update', console.log) + +// request updates for a chat +await sock.presenceSubscribe(jid) +``` + +## Change Profile + +### Change Profile Status +```ts +await sock.updateProfileStatus('Hello World!') +``` +### Change Profile Name +```ts +await sock.updateProfileName('My name') +``` +### Change Display Picture (groups too) +- To change your display picture or a group's + +> [!NOTE] +> Like media messages, you can pass `{ stream: Stream }` or `{ url: Url }` or `Buffer` directly, you can see more [here](https://baileys.whiskeysockets.io/types/WAMediaUpload.html) + +```ts +await sock.updateProfilePicture(jid, { url: './new-profile-picture.jpeg' }) +``` +### Remove display picture (groups too) +```ts +await sock.removeProfilePicture(jid) +``` + +## Groups + +- To change group properties you need to be admin + +### Create a Group +```ts +// title & participants +const group = await sock.groupCreate('My Fab Group', ['1234@s.whatsapp.net', '4564@s.whatsapp.net']) +console.log('created group with id: ' + group.gid) +await sock.sendMessage(group.id, { text: 'hello there' }) // say hello to everyone on the group +``` +### Add/Remove or Demote/Promote +```ts +// id & people to add to the group (will throw error if it fails) +await sock.groupParticipantsUpdate( + jid, + ['abcd@s.whatsapp.net', 'efgh@s.whatsapp.net'], + 'add' // replace this parameter with 'remove' or 'demote' or 'promote' +) +``` +### Change Subject (name) +```ts +await sock.groupUpdateSubject(jid, 'New Subject!') +``` +### Change Description +```ts +await sock.groupUpdateDescription(jid, 'New Description!') +``` +### Change Settings +```ts +// only allow admins to send messages +await sock.groupSettingUpdate(jid, 'announcement') +// allow everyone to send messages +await sock.groupSettingUpdate(jid, 'not_announcement') +// allow everyone to modify the group's settings -- like display picture etc. +await sock.groupSettingUpdate(jid, 'unlocked') +// only allow admins to modify the group's settings +await sock.groupSettingUpdate(jid, 'locked') +``` +### Leave a Group +```ts +// will throw error if it fails +await sock.groupLeave(jid) +``` +### Get Invite Code +- To create link with code use `'https://chat.whatsapp.com/' + code` +```ts +const code = await sock.groupInviteCode(jid) +console.log('group code: ' + code) +``` +### Revoke Invite Code +```ts +const code = await sock.groupRevokeInvite(jid) +console.log('New group code: ' + code) +``` +### Join Using Invitation Code +- Code can't have `https://chat.whatsapp.com/`, only code +```ts +const response = await sock.groupAcceptInvite(code) +console.log('joined to: ' + response) +``` +### Get Group Info by Invite Code +```ts +const response = await sock.groupGetInviteInfo(code) +console.log('group information: ' + response) +``` +### Query Metadata (participants, name, description...) +```ts +const metadata = await sock.groupMetadata(jid) +console.log(metadata.id + ', title: ' + metadata.subject + ', description: ' + metadata.desc) +``` +### Join using `groupInviteMessage` +```ts +const response = await sock.groupAcceptInviteV4(jid, groupInviteMessage) +console.log('joined to: ' + response) +``` +### Get Request Join List +```ts +const response = await sock.groupRequestParticipantsList(jid) +console.log(response) +``` +### Approve/Reject Request Join +```ts +const response = await sock.groupRequestParticipantsUpdate( + jid, // group id + ['abcd@s.whatsapp.net', 'efgh@s.whatsapp.net'], + 'approve' // or 'reject' +) +console.log(response) +``` +### Get All Participating Groups Metadata +```ts +const response = await sock.groupFetchAllParticipating() +console.log(response) +``` +### Toggle Ephemeral + +- Ephemeral can be: + +| Time | Seconds | +|-------|----------------| +| Remove | 0 | +| 24h | 86.400 | +| 7d | 604.800 | +| 90d | 7.776.000 | + +```ts +await sock.groupToggleEphemeral(jid, 86400) +``` + +### Change Add Mode +```ts +await sock.groupMemberAddMode( + jid, + 'all_member_add' // or 'admin_add' +) +``` + +## Privacy + +### Block/Unblock User +```ts +await sock.updateBlockStatus(jid, 'block') // Block user +await sock.updateBlockStatus(jid, 'unblock') // Unblock user +``` +### Get Privacy Settings +```ts +const privacySettings = await sock.fetchPrivacySettings(true) +console.log('privacy settings: ' + privacySettings) +``` +### Get BlockList +```ts +const response = await sock.fetchBlocklist() +console.log(response) +``` +### Update LastSeen Privacy +```ts +const value = 'all' // 'contacts' | 'contact_blacklist' | 'none' +await sock.updateLastSeenPrivacy(value) +``` +### Update Online Privacy +```ts +const value = 'all' // 'match_last_seen' +await sock.updateOnlinePrivacy(value) +``` +### Update Profile Picture Privacy +```ts +const value = 'all' // 'contacts' | 'contact_blacklist' | 'none' +await sock.updateProfilePicturePrivacy(value) +``` +### Update Status Privacy +```ts +const value = 'all' // 'contacts' | 'contact_blacklist' | 'none' +await sock.updateStatusPrivacy(value) +``` +### Update Read Receipts Privacy +```ts +const value = 'all' // 'none' +await sock.updateReadReceiptsPrivacy(value) +``` +### Update Groups Add Privacy +```ts +const value = 'all' // 'contacts' | 'contact_blacklist' +await sock.updateGroupsAddPrivacy(value) +``` +### Update Default Disappearing Mode + +- Like [this](#disappearing-messages), ephemeral can be: + +| Time | Seconds | +|-------|----------------| +| Remove | 0 | +| 24h | 86.400 | +| 7d | 604.800 | +| 90d | 7.776.000 | + +```ts +const ephemeral = 86400 +await sock.updateDefaultDisappearingMode(ephemeral) +``` + +## Broadcast Lists & Stories + +### Send Broadcast & Stories +- Messages can be sent to broadcasts & stories. You need to add the following message options in sendMessage, like this: +```ts +await sock.sendMessage( + jid, + { + image: { + url: url + }, + caption: caption + }, + { + backgroundColor: backgroundColor, + font: font, + statusJidList: statusJidList, + broadcast: true + } +) +``` +- Message body can be a `extendedTextMessage` or `imageMessage` or `videoMessage` or `voiceMessage`, see [here](https://baileys.whiskeysockets.io/types/AnyRegularMessageContent.html) +- You can add `backgroundColor` and other options in the message options, see [here](https://baileys.whiskeysockets.io/types/MiscMessageGenerationOptions.html) +- `broadcast: true` enables broadcast mode +- `statusJidList`: a list of people that you can get which you need to provide, which are the people who will get this status message. + +- You can send messages to broadcast lists the same way you send messages to groups & individual chats. +- Right now, WA Web does not support creating broadcast lists, but you can still delete them. +- Broadcast IDs are in the format `12345678@broadcast` +### Query a Broadcast List's Recipients & Name +```ts +const bList = await sock.getBroadcastListInfo('1234@broadcast') +console.log (`list name: ${bList.name}, recps: ${bList.recipients}`) +``` + +## Writing Custom Functionality +Baileys is written with custom functionality in mind. Instead of forking the project & re-writing the internals, you can simply write your own extensions. + +### Enabling Debug Level in Baileys Logs +First, enable the logging of unhandled messages from WhatsApp by setting: +```ts +const sock = makeWASocket({ + logger: P({ level: 'debug' }), +}) +``` +This will enable you to see all sorts of messages WhatsApp sends in the console. + +### How Whatsapp Communicate With Us + +> [!TIP] +> If you want to learn whatsapp protocol, we recommend to study about Libsignal Protocol and Noise Protocol + +- **Example:** Functionality to track the battery percentage of your phone. You enable logging and you'll see a message about your battery pop up in the console: + ``` + { + "level": 10, + "fromMe": false, + "frame": { + "tag": "ib", + "attrs": { + "from": "@s.whatsapp.net" + }, + "content": [ + { + "tag": "edge_routing", + "attrs": {}, + "content": [ + { + "tag": "routing_info", + "attrs": {}, + "content": { + "type": "Buffer", + "data": [8,2,8,5] + } + } + ] + } + ] + }, + "msg":"communication" + } + ``` + +The `'frame'` is what the message received is, it has three components: +- `tag` -- what this frame is about (eg. message will have 'message') +- `attrs` -- a string key-value pair with some metadata (contains ID of the message usually) +- `content` -- the actual data (eg. a message node will have the actual message content in it) +- read more about this format [here](/src/WABinary/readme.md) + +### Register a Callback for Websocket Events + +> [!TIP] +> Recommended to see `onMessageReceived` function in `socket.ts` file to understand how websockets events are fired + +```ts +// for any message with tag 'edge_routing' +sock.ws.on('CB:edge_routing', (node: BinaryNode) => { }) + +// for any message with tag 'edge_routing' and id attribute = abcd +sock.ws.on('CB:edge_routing,id:abcd', (node: BinaryNode) => { }) + +// for any message with tag 'edge_routing', id attribute = abcd & first content node routing_info +sock.ws.on('CB:edge_routing,id:abcd,routing_info', (node: BinaryNode) => { }) +``` + # License Copyright (c) 2025 Rajeh Taher/WhiskeySockets diff --git a/WAProto/GenerateStatics.sh b/WAProto/GenerateStatics.sh new file mode 100755 index 0000000..ef80a00 --- /dev/null +++ b/WAProto/GenerateStatics.sh @@ -0,0 +1,2 @@ +yarn pbjs -t static-module -w commonjs -o ./WAProto/index.js ./WAProto/WAProto.proto; +yarn pbts -o ./WAProto/index.d.ts ./WAProto/index.js; \ No newline at end of file diff --git a/WAProto/WAProto.proto b/WAProto/WAProto.proto index 51ac4c9..1760a21 100644 --- a/WAProto/WAProto.proto +++ b/WAProto/WAProto.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package proto; -/// WhatsApp Version: 2.3000.1020608496 +/// WhatsApp Version: 2.3000.1023047013 message ADVDeviceIdentity { optional uint32 rawId = 1; @@ -42,14 +42,16 @@ message ADVSignedKeyIndexList { optional bytes accountSignatureKey = 3; } +message AIQueryFanout { + optional MessageKey messageKey = 1; + optional Message message = 2; + optional int64 timestamp = 3; +} + message AIRichResponseMessage { optional AIRichResponseMessageType messageType = 1; repeated AIRichResponseSubMessage submessages = 2; - optional AIRichResponseAbstractData abstractData = 3; - message AIRichResponseAbstractData { - optional bytes data = 1; - } - + optional AIRichResponseUnifiedResponse unifiedResponse = 3; message AIRichResponseCodeMetadata { optional string codeLanguage = 1; repeated AIRichResponseCodeBlock codeBlocks = 2; @@ -57,7 +59,7 @@ message AIRichResponseMessage { optional AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType highlightType = 1; optional string codeContent = 2; } - + enum AIRichResponseCodeHighlightType { AI_RICH_RESPONSE_CODE_HIGHLIGHT_DEFAULT = 0; AI_RICH_RESPONSE_CODE_HIGHLIGHT_KEYWORD = 1; @@ -67,7 +69,7 @@ message AIRichResponseMessage { AI_RICH_RESPONSE_CODE_HIGHLIGHT_COMMENT = 5; } } - + message AIRichResponseContentItemsMetadata { repeated AIRichResponseContentItemMetadata itemsMetadata = 1; optional ContentType contentType = 2; @@ -76,20 +78,20 @@ message AIRichResponseMessage { AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseReelItem reelItem = 1; } } - + message AIRichResponseReelItem { optional string title = 1; optional string profileIconUrl = 2; optional string thumbnailUrl = 3; optional string videoUrl = 4; } - + enum ContentType { DEFAULT = 0; CAROUSEL = 1; } } - + message AIRichResponseDynamicMetadata { optional AIRichResponseDynamicMetadataType type = 1; optional uint64 version = 2; @@ -101,18 +103,18 @@ message AIRichResponseMessage { AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_GIF = 2; } } - + message AIRichResponseGridImageMetadata { optional AIRichResponseMessage.AIRichResponseImageURL gridImageUrl = 1; repeated AIRichResponseMessage.AIRichResponseImageURL imageUrls = 2; } - + message AIRichResponseImageURL { optional string imagePreviewUrl = 1; optional string imageHighResUrl = 2; optional string sourceUrl = 3; } - + message AIRichResponseInlineImageMetadata { optional AIRichResponseMessage.AIRichResponseImageURL imageUrl = 1; optional string imageText = 2; @@ -124,7 +126,7 @@ message AIRichResponseMessage { AI_RICH_RESPONSE_IMAGE_LAYOUT_CENTER_ALIGNED = 2; } } - + message AIRichResponseLatexMetadata { optional string text = 1; repeated AIRichResponseLatexExpression expressions = 2; @@ -134,10 +136,14 @@ message AIRichResponseMessage { optional double width = 3; optional double height = 4; optional double fontHeight = 5; + optional double imageTopPadding = 6; + optional double imageLeadingPadding = 7; + optional double imageBottomPadding = 8; + optional double imageTrailingPadding = 9; } - + } - + message AIRichResponseMapMetadata { optional double centerLatitude = 1; optional double centerLongitude = 2; @@ -152,9 +158,9 @@ message AIRichResponseMessage { optional string title = 4; optional string body = 5; } - + } - + enum AIRichResponseMessageType { AI_RICH_RESPONSE_TYPE_UNKNOWN = 0; AI_RICH_RESPONSE_TYPE_STANDARD = 1; @@ -171,7 +177,7 @@ message AIRichResponseMessage { optional AIRichResponseMessage.AIRichResponseMapMetadata mapMetadata = 9; optional AIRichResponseMessage.AIRichResponseContentItemsMetadata contentItemsMetadata = 10; } - + enum AIRichResponseSubMessageType { AI_RICH_RESPONSE_UNKNOWN = 0; AI_RICH_RESPONSE_GRID_IMAGE = 1; @@ -190,9 +196,20 @@ message AIRichResponseMessage { repeated string items = 1; optional bool isHeading = 2; } - + } + + message AIRichResponseUnifiedResponse { + optional bytes data = 1; + } + +} +message Account { + optional string lid = 1; + optional string username = 2; + optional string countryCode = 3; + optional bool isUsernameDeleted = 4; } message ActionLink { @@ -256,6 +273,11 @@ message BizIdentityInfo { } } +message BotAgeCollectionMetadata { + optional bool ageCollectionEligible = 1; + optional bool shouldTriggerAgeCollectionOnClient = 2; +} + message BotAvatarMetadata { optional uint32 sentiment = 1; optional string behaviorGraph = 2; @@ -297,6 +319,12 @@ message BotCapabilityMetadata { AGENTIC_PLANNING = 27; ACCOUNT_LINKING = 28; STREAMING_DISAGGREGATION = 29; + RICH_RESPONSE_GRID_IMAGE_3P = 30; + RICH_RESPONSE_LATEX_INLINE = 31; + QUERY_PLAN = 32; + PROACTIVE_MESSAGE = 33; + RICH_RESPONSE_UNIFIED_RESPONSE = 34; + PROMOTION_MESSAGE = 35; } } @@ -321,6 +349,7 @@ message BotLinkedAccount { message BotLinkedAccountsMetadata { repeated BotLinkedAccount accounts = 1; optional bytes acAuthTokens = 2; + optional int32 acErrorCode = 3; } message BotMediaMetadata { @@ -372,6 +401,12 @@ message BotMetadata { optional BotRenderingMetadata renderingMetadata = 16; optional BotMetricsMetadata botMetricsMetadata = 17; optional BotLinkedAccountsMetadata botLinkedAccountsMetadata = 18; + optional BotSourcesMetadata richResponseSourcesMetadata = 19; + optional bytes aiConversationContext = 20; + optional BotPromotionMessageMetadata botPromotionMessageMetadata = 21; + optional BotModeSelectionMetadata botModeSelectionMetadata = 22; + optional BotQuotaMetadata botQuotaMetadata = 23; + optional BotAgeCollectionMetadata botAgeCollectionMetadata = 24; } enum BotMetricsEntryPoint { @@ -392,10 +427,32 @@ enum BotMetricsEntryPoint { FORWARD = 15; APP_SHORTCUT = 16; FF_FAMILY = 17; + AI_TAB = 18; + AI_HOME = 19; + AI_DEEPLINK_IMMERSIVE = 20; + AI_DEEPLINK = 21; + META_AI_CHAT_SHORTCUT_AI_STUDIO = 22; + UGC_CHAT_SHORTCUT_AI_STUDIO = 23; + NEW_CHAT_AI_STUDIO = 24; } message BotMetricsMetadata { optional string destinationId = 1; optional BotMetricsEntryPoint destinationEntryPoint = 2; + optional BotMetricsThreadEntryPoint threadOrigin = 3; +} + +enum BotMetricsThreadEntryPoint { + AI_TAB_THREAD = 1; + AI_HOME_THREAD = 2; + AI_DEEPLINK_IMMERSIVE_THREAD = 3; + AI_DEEPLINK_THREAD = 4; +} +message BotModeSelectionMetadata { + repeated BotUserSelectionMode mode = 1; + enum BotUserSelectionMode { + UNKNOWN_MODE = 0; + REASONING_MODE = 1; + } } message BotModelMetadata { @@ -449,6 +506,14 @@ message BotProgressIndicatorMetadata { optional PlanningStepStatus status = 4; optional bool isReasoning = 5; optional bool isEnhancedSearch = 6; + repeated BotPlanningStepSectionMetadata sections = 7; + message BotPlanningSearchSourceMetadata { + optional string title = 1; + optional BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider provider = 2; + optional string sourceUrl = 3; + optional string favIconUrl = 4; + } + message BotPlanningSearchSourcesMetadata { optional string sourceTitle = 1; optional BotPlanningSearchSourceProvider provider = 2; @@ -460,7 +525,19 @@ message BotProgressIndicatorMetadata { BING = 3; } } - + + message BotPlanningStepSectionMetadata { + optional string sectionTitle = 1; + optional string sectionBody = 2; + repeated BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata sourcesMetadata = 3; + } + + enum BotSearchSourceProvider { + UNKNOWN_PROVIDER = 0; + OTHER = 1; + GOOGLE = 2; + BING = 3; + } enum PlanningStepStatus { UNKNOWN = 0; PLANNED = 1; @@ -468,7 +545,16 @@ message BotProgressIndicatorMetadata { FINISHED = 3; } } + +} +message BotPromotionMessageMetadata { + optional BotPromotionType promotionType = 1; + optional string buttonTitle = 2; + enum BotPromotionType { + UNKNOWN_TYPE = 0; + C50 = 1; + } } message BotPromptSuggestion { @@ -480,6 +566,20 @@ message BotPromptSuggestions { repeated BotPromptSuggestion suggestions = 1; } +message BotQuotaMetadata { + repeated BotFeatureQuotaMetadata botFeatureQuotaMetadata = 1; + message BotFeatureQuotaMetadata { + optional BotFeatureType featureType = 1; + optional uint32 remainingQuota = 2; + optional uint64 expirationTimestamp = 3; + enum BotFeatureType { + UNKNOWN_FEATURE = 0; + REASONING_FEATURE = 1; + } + } + +} + message BotReminderMetadata { optional MessageKey requestMessageKey = 1; optional ReminderAction action = 2; @@ -507,7 +607,7 @@ message BotRenderingMetadata { optional string value = 1; repeated string associatedPrompts = 2; } - + } message BotSessionMetadata { @@ -524,6 +624,25 @@ enum BotSessionSource { EMU_FLASH_FOLLOWUP = 5; VOICE = 6; } +message BotSourcesMetadata { + repeated BotSourceItem sources = 1; + message BotSourceItem { + optional SourceProvider provider = 1; + optional string thumbnailCdnUrl = 2; + optional string sourceProviderUrl = 3; + optional string sourceQuery = 4; + optional string faviconCdnUrl = 5; + optional uint32 citationNumber = 6; + enum SourceProvider { + UNKNOWN = 0; + BING = 1; + GOOGLE = 2; + SUPPORT = 3; + } + } + +} + message BotSuggestedPromptMetadata { repeated string suggestedPrompts = 1; optional uint32 selectedPromptIndex = 2; @@ -569,7 +688,7 @@ message CallLogRecord { optional string userJid = 1; optional CallLogRecord.CallResult callResult = 2; } - + enum SilenceReason { NONE = 0; SCHEDULED = 1; @@ -591,9 +710,9 @@ message CertChain { optional uint64 notBefore = 4; optional uint64 notAfter = 5; } - + } - + } message ChatLockSettings { @@ -628,16 +747,16 @@ message ChatRowOpaqueData { VIDEO = 2; } } - + message CtwaContextLinkData { optional string context = 1; optional string sourceUrl = 2; optional string icebreaker = 3; optional string phone = 4; } - + } - + } message Citation { @@ -681,6 +800,12 @@ message ClientPayload { optional int32 memClass = 37; optional InteropData interopData = 38; optional TrafficAnonymization trafficAnonymization = 40; + optional bool lidDbMigrated = 41; + optional AccountType accountType = 42; + enum AccountType { + DEFAULT = 0; + GUEST = 1; + } enum ConnectReason { PUSH = 0; USER_ACTIVATED = 1; @@ -719,7 +844,7 @@ message ClientPayload { MNS = 5; } } - + message DevicePairingRegistrationData { optional bytes eRegid = 1; optional bytes eKeytype = 2; @@ -730,7 +855,7 @@ message ClientPayload { optional bytes buildHash = 7; optional bytes deviceProps = 8; } - + enum IOSAppExtension { SHARE_EXTENSION = 0; SERVICE_EXTENSION = 1; @@ -741,12 +866,13 @@ message ClientPayload { optional bytes token = 2; optional bool enableReadReceipts = 3; } - + enum Product { WHATSAPP = 0; MESSENGER = 1; INTEROP = 2; INTEROP_MSGR = 3; + WHATSAPP_LID = 4; } enum TrafficAnonymization { OFF = 0; @@ -776,7 +902,7 @@ message ClientPayload { optional uint32 quaternary = 4; optional uint32 quinary = 5; } - + enum DeviceType { PHONE = 0; TABLET = 1; @@ -829,7 +955,7 @@ message ClientPayload { DEBUG = 3; } } - + message WebInfo { optional string refToken = 1; optional string version = 2; @@ -856,9 +982,9 @@ message ClientPayload { optional string documentTypes = 10; optional bytes features = 11; } - + } - + } message CommentMetadata { @@ -926,6 +1052,9 @@ message ContextInfo { optional UrlTrackingMap urlTrackingMap = 58; optional PairedMediaType pairedMediaType = 59; optional uint32 rankingVersion = 60; + optional MemberLabel memberLabel = 62; + optional bool isQuestion = 63; + optional StatusSourceType statusSourceType = 64; message AdReplyInfo { optional string advertiserName = 1; optional MediaType mediaType = 2; @@ -937,11 +1066,11 @@ message ContextInfo { VIDEO = 2; } } - + message BusinessMessageForwardInfo { optional string businessOwnerJid = 1; } - + message DataSharingContext { optional bool showMmDisclosure = 1; optional string encryptedSignalTokenConsented = 2; @@ -953,9 +1082,9 @@ message ContextInfo { optional float floatData = 4; optional ContextInfo.DataSharingContext.Parameters contents = 5; } - + } - + message ExternalAdReplyInfo { optional string title = 1; optional string body = 2; @@ -979,26 +1108,33 @@ message ContextInfo { optional string ctaPayload = 20; optional bool disableNudge = 21; optional string originalImageUrl = 22; + optional string automatedGreetingMessageCtaType = 23; + optional bool wtwaAdFormat = 24; + optional AdType adType = 25; + enum AdType { + CTWA = 0; + CAWC = 1; + } enum MediaType { NONE = 0; IMAGE = 1; VIDEO = 2; } } - + message FeatureEligibilities { optional bool cannotBeReactedTo = 1; optional bool cannotBeRanked = 2; optional bool canRequestFeedback = 3; optional bool canBeReshared = 4; } - + message ForwardedAIBotMessageInfo { optional string botName = 1; optional string botJid = 2; optional string creatorName = 3; } - + message ForwardedNewsletterMessageInfo { optional string newsletterJid = 1; optional int32 serverMessageId = 2; @@ -1011,24 +1147,34 @@ message ContextInfo { LINK_CARD = 3; } } - + enum PairedMediaType { NOT_PAIRED_MEDIA = 0; SD_VIDEO_PARENT = 1; HD_VIDEO_CHILD = 2; SD_IMAGE_PARENT = 3; HD_IMAGE_CHILD = 4; + MOTION_PHOTO_PARENT = 5; + MOTION_PHOTO_CHILD = 6; } enum StatusAttributionType { NONE = 0; RESHARED_FROM_MENTION = 1; RESHARED_FROM_POST = 2; } + enum StatusSourceType { + IMAGE = 0; + VIDEO = 1; + GIF = 2; + AUDIO = 3; + TEXT = 4; + MUSIC_STANDALONE = 5; + } message UTMInfo { optional string utmSource = 1; optional string utmCampaign = 2; } - + } message Conversation { @@ -1082,6 +1228,9 @@ message Conversation { optional bool capiCreatedGroup = 48; optional string accountLid = 49; optional bool limitSharing = 50; + optional int64 limitSharingSettingTimestamp = 51; + optional LimitSharing.TriggerType limitSharingTrigger = 52; + optional bool limitSharingInitiatedByMe = 53; enum EndOfHistoryTransferType { COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY = 0; COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY = 1; @@ -1100,7 +1249,7 @@ message DeviceCapabilities { message LIDMigration { optional uint64 chatDbMigrationTimestamp = 1; } - + } message DeviceConsistencyCodeMessage { @@ -1132,7 +1281,7 @@ message DeviceProps { optional uint32 quaternary = 4; optional uint32 quinary = 5; } - + message HistorySyncConfig { optional uint32 fullSyncDaysLimit = 1; optional uint32 fullSyncSizeMbLimit = 2; @@ -1149,7 +1298,7 @@ message DeviceProps { optional bool supportAddOnHistorySyncMigration = 13; optional bool supportMessageAssociation = 14; } - + enum PlatformType { UNKNOWN = 0; CHROME = 1; @@ -1289,6 +1438,7 @@ message GlobalSettings { optional NotificationSettings individualNotificationSettings = 17; optional NotificationSettings groupNotificationSettings = 18; optional ChatLockSettings chatLockSettings = 19; + optional int64 chatDbLidMigrationTimestamp = 20; } message GroupMention { @@ -1314,19 +1464,19 @@ message HandshakeMessage { optional bytes static = 1; optional bytes payload = 2; } - + message ClientHello { optional bytes ephemeral = 1; optional bytes static = 2; optional bytes payload = 3; } - + message ServerHello { optional bytes ephemeral = 1; optional bytes static = 2; optional bytes payload = 3; } - + } message HistorySync { @@ -1346,6 +1496,7 @@ message HistorySync { repeated PhoneNumberToLIDMapping phoneNumberToLidMappings = 15; optional string companionMetaNonce = 16; optional bytes shareableChatIdentifierEncryptionKey = 17; + repeated Account accounts = 18; enum BotAIWaitListState { IN_WAITLIST = 0; AI_AVAILABLE = 1; @@ -1377,12 +1528,12 @@ message HydratedTemplateButton { optional string displayText = 1; optional string phoneNumber = 2; } - + message HydratedQuickReplyButton { optional string displayText = 1; optional string id = 2; } - + message HydratedURLButton { optional string displayText = 1; optional string url = 2; @@ -1394,7 +1545,7 @@ message HydratedTemplateButton { COMPACT = 3; } } - + } message IdentityKeyPairStructure { @@ -1406,12 +1557,18 @@ message InteractiveAnnotation { repeated Point polygonVertices = 1; optional bool shouldSkipConfirmation = 4; optional EmbeddedContent embeddedContent = 5; + optional StatusLinkType statusLinkType = 8; oneof action { Location location = 2; ContextInfo.ForwardedNewsletterMessageInfo newsletter = 3; bool embeddedAction = 6; TapLinkAction tapAction = 7; } + enum StatusLinkType { + RASTERIZED_LINK_PREVIEW = 1; + RASTERIZED_LINK_TRUNCATED = 2; + RASTERIZED_LINK_FULL_URL = 3; + } } message KeepInChat { @@ -1452,6 +1609,7 @@ message LIDMigrationMappingSyncMessage { message LIDMigrationMappingSyncPayload { repeated LIDMigrationMapping pnToLidMappings = 1; + optional uint64 chatDbMigrationTimestamp = 2; } message LegacyMessage { @@ -1461,10 +1619,14 @@ message LegacyMessage { message LimitSharing { optional bool sharingLimited = 1; - optional Trigger trigger = 2; - enum Trigger { - CHAT_SETTING = 0; - BIZ_SUPPORTS_FB_HOSTING = 1; + optional TriggerType trigger = 2; + optional int64 limitSharingSettingTimestamp = 3; + optional bool initiatedByMe = 4; + enum TriggerType { + UNKNOWN = 0; + CHAT_SETTING = 1; + BIZ_SUPPORTS_FB_HOSTING = 2; + UNKNOWN_GROUP = 3; } } @@ -1508,6 +1670,11 @@ enum MediaVisibility { OFF = 1; ON = 2; } +message MemberLabel { + optional string label = 1; + optional int64 labelTimestamp = 2; +} + message Message { optional string conversation = 1; optional SenderKeyDistributionMessage senderKeyDistributionMessage = 2; @@ -1591,46 +1758,50 @@ message Message { optional FutureProofMessage groupStatusMessage = 96; optional AIRichResponseMessage richResponseMessage = 97; optional StatusNotificationMessage statusNotificationMessage = 98; + optional FutureProofMessage limitSharingMessage = 99; + optional FutureProofMessage botTaskMessage = 100; + optional FutureProofMessage questionMessage = 101; + optional MessageHistoryNotice messageHistoryNotice = 102; message AlbumMessage { optional uint32 expectedImageCount = 2; optional uint32 expectedVideoCount = 3; optional ContextInfo contextInfo = 17; } - + message AppStateFatalExceptionNotification { repeated string collectionNames = 1; optional int64 timestamp = 2; } - + message AppStateSyncKey { optional Message.AppStateSyncKeyId keyId = 1; optional Message.AppStateSyncKeyData keyData = 2; } - + message AppStateSyncKeyData { optional bytes keyData = 1; optional Message.AppStateSyncKeyFingerprint fingerprint = 2; optional int64 timestamp = 3; } - + message AppStateSyncKeyFingerprint { optional uint32 rawId = 1; optional uint32 currentIndex = 2; repeated uint32 deviceIndexes = 3 [packed=true]; } - + message AppStateSyncKeyId { optional bytes keyId = 1; } - + message AppStateSyncKeyRequest { repeated Message.AppStateSyncKeyId keyIds = 1; } - + message AppStateSyncKeyShare { repeated Message.AppStateSyncKey keys = 1; } - + message AudioMessage { optional string url = 1; optional string mimetype = 2; @@ -1649,7 +1820,7 @@ message Message { optional bool viewOnce = 21; optional string accessibilityLabel = 22; } - + message BCallMessage { optional string sessionId = 1; optional MediaType mediaType = 2; @@ -1661,7 +1832,7 @@ message Message { VIDEO = 2; } } - + message BotFeedbackMessage { optional MessageKey messageKey = 1; optional BotFeedbackKind kind = 2; @@ -1702,7 +1873,7 @@ message Message { GENERIC = 0; } } - + message ButtonsMessage { optional string contentText = 6; optional string footerText = 7; @@ -1724,19 +1895,19 @@ message Message { message ButtonText { optional string displayText = 1; } - + message NativeFlowInfo { optional string name = 1; optional string paramsJson = 2; } - + enum Type { UNKNOWN = 0; RESPONSE = 1; NATIVE_FLOW = 2; } } - + enum HeaderType { UNKNOWN = 0; EMPTY = 1; @@ -1747,7 +1918,7 @@ message Message { LOCATION = 6; } } - + message ButtonsResponseMessage { optional string selectedButtonId = 1; optional ContextInfo contextInfo = 3; @@ -1760,7 +1931,7 @@ message Message { DISPLAY_TEXT = 1; } } - + message Call { optional bytes callKey = 1; optional string conversionSource = 2; @@ -1768,8 +1939,9 @@ message Message { optional uint32 conversionDelaySeconds = 4; optional string ctwaSignals = 5; optional bytes ctwaPayload = 6; + optional ContextInfo contextInfo = 7; } - + message CallLogMessage { optional bool isVideo = 1; optional CallOutcome callOutcome = 2; @@ -1790,62 +1962,68 @@ message Message { optional string jid = 1; optional Message.CallLogMessage.CallOutcome callOutcome = 2; } - + enum CallType { REGULAR = 0; SCHEDULED_CALL = 1; VOICE_CHAT = 2; } } - + message CancelPaymentRequestMessage { optional MessageKey key = 1; } - + message Chat { optional string displayName = 1; optional string id = 2; } - + message CloudAPIThreadControlNotification { optional CloudAPIThreadControl status = 1; optional int64 senderNotificationTimestampMs = 2; optional string consumerLid = 3; optional string consumerPhoneNumber = 4; + optional CloudAPIThreadControlNotificationContent notificationContent = 5; enum CloudAPIThreadControl { UNKNOWN = 0; CONTROL_PASSED = 1; CONTROL_TAKEN = 2; } + message CloudAPIThreadControlNotificationContent { + optional string handoffNotificationText = 1; + optional string extraJson = 2; + } + } - + message CommentMessage { optional Message message = 1; optional MessageKey targetMessageKey = 2; } - + message ContactMessage { optional string displayName = 1; optional string vcard = 16; optional ContextInfo contextInfo = 17; } - + message ContactsArrayMessage { optional string displayName = 1; repeated Message.ContactMessage contacts = 2; optional ContextInfo contextInfo = 17; } - + message DeclinePaymentRequestMessage { optional MessageKey key = 1; } - + message DeviceSentMessage { optional string destinationJid = 1; optional Message message = 2; optional string phash = 3; } - + message DocumentMessage { optional string url = 1; optional string mimetype = 2; @@ -1869,25 +2047,25 @@ message Message { optional string caption = 20; optional string accessibilityLabel = 21; } - + message EncCommentMessage { optional MessageKey targetMessageKey = 1; optional bytes encPayload = 2; optional bytes encIv = 3; } - + message EncEventResponseMessage { optional MessageKey eventCreationMessageKey = 1; optional bytes encPayload = 2; optional bytes encIv = 3; } - + message EncReactionMessage { optional MessageKey targetMessageKey = 1; optional bytes encPayload = 2; optional bytes encIv = 3; } - + message EventMessage { optional ContextInfo contextInfo = 1; optional bool isCanceled = 2; @@ -1898,8 +2076,9 @@ message Message { optional int64 startTime = 7; optional int64 endTime = 8; optional bool extraGuestsAllowed = 9; + optional bool isScheduleCall = 10; } - + message EventResponseMessage { optional EventResponseType response = 1; optional int64 timestampMs = 2; @@ -1911,7 +2090,7 @@ message Message { MAYBE = 3; } } - + message ExtendedTextMessage { optional string text = 1; optional string matchedText = 2; @@ -1939,6 +2118,8 @@ message Message { optional uint32 videoHeight = 31; optional uint32 videoWidth = 32; optional Message.MMSThumbnailMetadata faviconMMSMetadata = 33; + optional Message.LinkPreviewMetadata linkPreviewMetadata = 34; + optional Message.PaymentLinkMetadata paymentLinkMetadata = 35; enum FontType { SYSTEM = 0; SYSTEM_TEXT = 1; @@ -1964,15 +2145,15 @@ message Message { PROFILE = 7; } } - + message FullHistorySyncOnDemandRequestMetadata { optional string requestId = 1; } - + message FutureProofMessage { optional Message message = 1; } - + message GroupInviteMessage { optional string groupJid = 1; optional string inviteCode = 2; @@ -1987,7 +2168,7 @@ message Message { PARENT = 1; } } - + message HighlyStructuredMessage { optional string namespace = 1; optional string elementName = 2; @@ -2008,7 +2189,7 @@ message Message { optional string currencyCode = 1; optional int64 amount1000 = 2; } - + message HSMDateTime { oneof datetimeOneof { Message.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent component = 1; @@ -2036,17 +2217,17 @@ message Message { SUNDAY = 7; } } - + message HSMDateTimeUnixEpoch { optional int64 timestamp = 1; } - + } - + } - + } - + message HistorySyncNotification { optional bytes fileSha256 = 1; optional uint64 fileLength = 2; @@ -2073,7 +2254,7 @@ message Message { NO_HISTORY = 7; } } - + message ImageMessage { optional string url = 1; optional string mimetype = 2; @@ -2111,11 +2292,11 @@ message Message { RASTERIZED_TEXT_STATUS = 3; } } - + message InitialSecurityNotificationSettingSync { optional bool securityNotificationEnabled = 1; } - + message InteractiveMessage { optional Header header = 1; optional Body body = 2; @@ -2131,22 +2312,22 @@ message Message { message Body { optional string text = 1; } - + message CarouselMessage { repeated Message.InteractiveMessage cards = 1; optional int32 messageVersion = 2; } - + message CollectionMessage { optional string bizJid = 1; optional string id = 2; optional int32 messageVersion = 3; } - + message Footer { optional string text = 1; } - + message Header { optional string title = 1; optional string subtitle = 2; @@ -2160,7 +2341,7 @@ message Message { Message.ProductMessage productMessage = 9; } } - + message NativeFlowMessage { repeated NativeFlowButton buttons = 1; optional string messageParamsJson = 2; @@ -2169,9 +2350,9 @@ message Message { optional string name = 1; optional string buttonParamsJson = 2; } - + } - + message ShopMessage { optional string id = 1; optional Surface surface = 2; @@ -2183,9 +2364,9 @@ message Message { WA = 3; } } - + } - + message InteractiveResponseMessage { optional Body body = 1; optional ContextInfo contextInfo = 15; @@ -2200,15 +2381,15 @@ message Message { EXTENSIONS_1 = 1; } } - + message NativeFlowResponseMessage { optional string name = 1; optional string paramsJson = 2; optional int32 version = 3; } - + } - + message InvoiceMessage { optional string note = 1; optional string token = 2; @@ -2225,13 +2406,19 @@ message Message { PDF = 1; } } - + message KeepInChatMessage { optional MessageKey key = 1; optional KeepType keepType = 2; optional int64 timestampMs = 3; } - + + message LinkPreviewMetadata { + optional Message.PaymentLinkMetadata paymentLinkMetadata = 1; + optional Message.URLMetadata urlMetadata = 2; + optional uint32 fbExperimentId = 3; + } + message ListMessage { optional string title = 1; optional string description = 2; @@ -2249,36 +2436,36 @@ message Message { message Product { optional string productId = 1; } - + message ProductListHeaderImage { optional string productId = 1; optional bytes jpegThumbnail = 2; } - + message ProductListInfo { repeated Message.ListMessage.ProductSection productSections = 1; optional Message.ListMessage.ProductListHeaderImage headerImage = 2; optional string businessOwnerJid = 3; } - + message ProductSection { optional string title = 1; repeated Message.ListMessage.Product products = 2; } - + message Row { optional string title = 1; optional string description = 2; optional string rowId = 3; } - + message Section { optional string title = 1; repeated Message.ListMessage.Row rows = 2; } - + } - + message ListResponseMessage { optional string title = 1; optional ListType listType = 2; @@ -2292,9 +2479,9 @@ message Message { message SingleSelectReply { optional string selectedRowId = 1; } - + } - + message LiveLocationMessage { optional double degreesLatitude = 1; optional double degreesLongitude = 2; @@ -2307,7 +2494,7 @@ message Message { optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; } - + message LocationMessage { optional double degreesLatitude = 1; optional double degreesLongitude = 2; @@ -2322,7 +2509,7 @@ message Message { optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; } - + message MMSThumbnailMetadata { optional string thumbnailDirectPath = 1; optional bytes thumbnailSha256 = 2; @@ -2332,18 +2519,29 @@ message Message { optional uint32 thumbnailHeight = 6; optional uint32 thumbnailWidth = 7; } - + message MessageHistoryBundle { - optional string mimetype = 2; - optional bytes fileSha256 = 3; - optional bytes mediaKey = 5; - optional bytes fileEncSha256 = 6; - optional string directPath = 7; - optional int64 mediaKeyTimestamp = 8; - optional ContextInfo contextInfo = 9; - repeated string participants = 10; + optional string mimetype = 1; + optional bytes fileSha256 = 2; + optional bytes mediaKey = 3; + optional bytes fileEncSha256 = 4; + optional string directPath = 5; + optional int64 mediaKeyTimestamp = 6; + optional ContextInfo contextInfo = 7; + optional Message.MessageHistoryMetadata messageHistoryMetadata = 8; } - + + message MessageHistoryMetadata { + repeated string historyReceivers = 1; + optional int64 firstMessageTimestamp = 2; + optional int64 messageCount = 3; + } + + message MessageHistoryNotice { + optional ContextInfo contextInfo = 1; + optional Message.MessageHistoryMetadata messageHistoryMetadata = 2; + } + message NewsletterAdminInviteMessage { optional string newsletterJid = 1; optional string newsletterName = 2; @@ -2352,7 +2550,7 @@ message Message { optional int64 inviteExpiration = 5; optional ContextInfo contextInfo = 6; } - + message OrderMessage { optional string orderId = 1; optional bytes thumbnail = 2; @@ -2368,6 +2566,7 @@ message Message { optional ContextInfo contextInfo = 17; optional int32 messageVersion = 12; optional MessageKey orderRequestMessageId = 13; + optional string catalogType = 15; enum OrderStatus { INQUIRY = 1; ACCEPTED = 2; @@ -2377,7 +2576,7 @@ message Message { CATALOG = 1; } } - + message PaymentInviteMessage { optional ServiceType serviceType = 1; optional int64 expiryTimestamp = 2; @@ -2388,7 +2587,24 @@ message Message { UPI = 3; } } - + + message PaymentLinkMetadata { + optional PaymentLinkButton button = 1; + optional PaymentLinkHeader header = 2; + message PaymentLinkButton { + optional string displayText = 1; + } + + message PaymentLinkHeader { + optional PaymentLinkHeaderType headerType = 1; + enum PaymentLinkHeaderType { + LINK_PREVIEW = 0; + ORDER = 1; + } + } + + } + message PeerDataOperationRequestMessage { optional Message.PeerDataOperationRequestType peerDataOperationRequestType = 1; repeated RequestStickerReupload requestStickerReupload = 2; @@ -2396,11 +2612,12 @@ message Message { optional HistorySyncOnDemandRequest historySyncOnDemandRequest = 4; repeated PlaceholderMessageResendRequest placeholderMessageResendRequest = 5; optional FullHistorySyncOnDemandRequest fullHistorySyncOnDemandRequest = 6; + optional SyncDCollectionFatalRecoveryRequest syncdCollectionFatalRecoveryRequest = 7; message FullHistorySyncOnDemandRequest { optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1; optional DeviceProps.HistorySyncConfig historySyncConfig = 2; } - + message HistorySyncOnDemandRequest { optional string chatJid = 1; optional string oldestMsgId = 2; @@ -2409,22 +2626,27 @@ message Message { optional int64 oldestMsgTimestampMs = 5; optional string accountLid = 6; } - + message PlaceholderMessageResendRequest { optional MessageKey messageKey = 1; } - + message RequestStickerReupload { optional string fileSha256 = 1; } - + message RequestUrlPreview { optional string url = 1; optional bool includeHqThumbnail = 2; } - + + message SyncDCollectionFatalRecoveryRequest { + optional string collectionName = 1; + optional int64 timestamp = 2; + } + } - + message PeerDataOperationRequestResponseMessage { optional Message.PeerDataOperationRequestType peerDataOperationRequestType = 1; optional string stanzaId = 2; @@ -2437,15 +2659,16 @@ message Message { optional WaffleNonceFetchResponse waffleNonceFetchRequestResponse = 5; optional FullHistorySyncOnDemandRequestResponse fullHistorySyncOnDemandRequestResponse = 6; optional CompanionMetaNonceFetchResponse companionMetaNonceFetchRequestResponse = 7; + optional SyncDSnapshotFatalRecoveryResponse syncdSnapshotFatalRecoveryResponse = 8; message CompanionMetaNonceFetchResponse { optional string nonce = 1; } - + message FullHistorySyncOnDemandRequestResponse { optional Message.FullHistorySyncOnDemandRequestMetadata requestMetadata = 1; optional Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode responseCode = 2; } - + enum FullHistorySyncOnDemandResponseCode { REQUEST_SUCCESS = 0; REQUEST_TIME_EXPIRED = 1; @@ -2472,22 +2695,27 @@ message Message { optional int32 thumbWidth = 6; optional int32 thumbHeight = 7; } - + } - + message PlaceholderMessageResendResponse { optional bytes webMessageInfoBytes = 1; } - + + message SyncDSnapshotFatalRecoveryResponse { + optional bytes collectionSnapshot = 1; + optional bool isCompressed = 2; + } + message WaffleNonceFetchResponse { optional string nonce = 1; optional string waEntFbid = 2; } - + } - + } - + enum PeerDataOperationRequestType { UPLOAD_STICKER = 0; SEND_RECENT_STICKER_BOOTSTRAP = 1; @@ -2497,6 +2725,7 @@ message Message { WAFFLE_LINKING_NONCE_FETCH = 5; FULL_HISTORY_SYNC_ON_DEMAND = 6; COMPANION_META_NONCE_FETCH = 7; + COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY = 8; } message PinInChatMessage { optional MessageKey key = 1; @@ -2508,14 +2737,14 @@ message Message { UNPIN_FOR_ALL = 2; } } - + message PlaceholderMessage { optional PlaceholderType type = 1; enum PlaceholderType { MASK_LINKED_DEVICES = 0; } } - + enum PollContentType { UNKNOWN = 0; TEXT = 1; @@ -2534,18 +2763,18 @@ message Message { optional string optionName = 1; optional string optionHash = 2; } - + enum PollType { POLL = 0; QUIZ = 1; } } - + message PollEncValue { optional bytes encPayload = 1; optional bytes encIv = 2; } - + message PollResultSnapshotMessage { optional string name = 1; repeated PollVote pollVotes = 2; @@ -2554,23 +2783,23 @@ message Message { optional string optionName = 1; optional int64 optionVoteCount = 2; } - + } - + message PollUpdateMessage { optional MessageKey pollCreationMessageKey = 1; optional Message.PollEncValue vote = 2; optional Message.PollUpdateMessageMetadata metadata = 3; optional int64 senderTimestampMs = 4; } - + message PollUpdateMessageMetadata { } - + message PollVoteMessage { repeated bytes selectedOptions = 1; } - + message ProductMessage { optional ProductSnapshot product = 1; optional string businessOwnerJid = 2; @@ -2583,7 +2812,7 @@ message Message { optional string title = 2; optional string description = 3; } - + message ProductSnapshot { optional Message.ImageMessage productImage = 1; optional string productId = 2; @@ -2598,9 +2827,9 @@ message Message { optional int64 salePriceAmount1000 = 12; optional string signedUrl = 13; } - + } - + message ProtocolMessage { optional MessageKey key = 1; optional Type type = 2; @@ -2623,6 +2852,9 @@ message Message { optional Message.CloudAPIThreadControlNotification cloudApiThreadControlNotification = 22; optional LIDMigrationMappingSyncMessage lidMigrationMappingSyncMessage = 23; optional LimitSharing limitSharing = 24; + optional bytes aiPsiMetadata = 25; + optional AIQueryFanout aiQueryFanout = 26; + optional MemberLabel memberLabel = 27; enum Type { REVOKE = 0; EPHEMERAL_SETTING = 3; @@ -2647,16 +2879,19 @@ message Message { STATUS_MENTION_MESSAGE = 25; STOP_GENERATION_MESSAGE = 26; LIMIT_SHARING = 27; + AI_PSI_METADATA = 28; + AI_QUERY_FANOUT = 29; + GROUP_MEMBER_LABEL_CHANGE = 30; } } - + message ReactionMessage { optional MessageKey key = 1; optional string text = 2; optional string groupingKey = 3; optional int64 senderTimestampMs = 4; } - + message RequestPaymentMessage { optional Message noteMessage = 4; optional string currencyCodeIso4217 = 1; @@ -2666,11 +2901,11 @@ message Message { optional Money amount = 6; optional PaymentBackground background = 7; } - + message RequestPhoneNumberMessage { optional ContextInfo contextInfo = 1; } - + message RequestWelcomeMessageMetadata { optional LocalChatState localChatState = 1; enum LocalChatState { @@ -2678,7 +2913,7 @@ message Message { NON_EMPTY = 1; } } - + message ScheduledCallCreationMessage { optional int64 scheduledTimestampMs = 1; optional CallType callType = 2; @@ -2689,7 +2924,7 @@ message Message { VIDEO = 2; } } - + message ScheduledCallEditMessage { optional MessageKey key = 1; optional EditType editType = 2; @@ -2698,7 +2933,7 @@ message Message { CANCEL = 1; } } - + message SecretEncryptedMessage { optional MessageKey targetMessageKey = 1; optional bytes encPayload = 2; @@ -2707,20 +2942,21 @@ message Message { enum SecretEncType { UNKNOWN = 0; EVENT_EDIT = 1; + MESSAGE_EDIT = 2; } } - + message SendPaymentMessage { optional Message noteMessage = 2; optional MessageKey requestMessageKey = 3; optional PaymentBackground background = 4; } - + message SenderKeyDistributionMessage { optional string groupId = 1; optional bytes axolotlSenderKeyDistributionMessage = 2; } - + message StatusNotificationMessage { optional MessageKey responseMessageKey = 1; optional MessageKey originalMessageKey = 2; @@ -2731,7 +2967,7 @@ message Message { STATUS_RESHARE = 2; } } - + message StickerMessage { optional string url = 1; optional bytes fileSha256 = 2; @@ -2754,7 +2990,7 @@ message Message { optional bool isLottie = 21; optional string accessibilityLabel = 22; } - + message StickerPackMessage { optional string stickerPackId = 1; optional string name = 2; @@ -2786,20 +3022,20 @@ message Message { optional bool isLottie = 5; optional string mimetype = 6; } - + enum StickerPackOrigin { FIRST_PARTY = 0; THIRD_PARTY = 1; USER_CREATED = 2; } } - + message StickerSyncRMRMessage { repeated string filehash = 1; optional string rmrSource = 2; optional int64 requestTimestamp = 3; } - + message TemplateButtonReplyMessage { optional string selectedId = 1; optional string selectedDisplayText = 2; @@ -2807,7 +3043,7 @@ message Message { optional uint32 selectedIndex = 4; optional uint32 selectedCarouselCardIndex = 5; } - + message TemplateMessage { optional ContextInfo contextInfo = 3; optional HydratedFourRowTemplate hydratedTemplate = 4; @@ -2829,7 +3065,7 @@ message Message { Message.LocationMessage locationMessage = 5; } } - + message HydratedFourRowTemplate { optional string hydratedContentText = 6; optional string hydratedFooterText = 7; @@ -2844,9 +3080,13 @@ message Message { Message.LocationMessage locationMessage = 5; } } - + } - + + message URLMetadata { + optional uint32 fbExperimentId = 1; + } + message VideoMessage { optional string url = 1; optional string mimetype = 2; @@ -2881,7 +3121,7 @@ message Message { TENOR = 2; } } - + } message MessageAddOn { @@ -2918,12 +3158,15 @@ message MessageAssociation { EVENT_COVER_IMAGE = 3; STATUS_POLL = 4; HD_VIDEO_DUAL_UPLOAD = 5; - STATUS_TAPPABLE_MESSAGE = 6; + STATUS_EXTERNAL_RESHARE = 6; MEDIA_POLL = 7; STATUS_ADD_YOURS = 8; STATUS_NOTIFICATION = 9; HD_IMAGE_DUAL_UPLOAD = 10; STICKER_ANNOTATION = 11; + MOTION_PHOTO = 12; + STATUS_LINK_ACTION = 13; + VIEW_ALL_REPLIES = 14; } } @@ -2940,6 +3183,8 @@ message MessageContextInfo { optional MessageAssociation messageAssociation = 10; optional bool capiCreatedGroup = 11; optional string supportPayload = 12; + optional LimitSharing limitSharing = 13; + optional LimitSharing limitSharingV2 = 14; enum MessageAddonExpiryType { STATIC = 1; DEPENDENT_ON_PARENT = 2; @@ -3004,6 +3249,7 @@ message MsgOpaqueData { optional int64 eventStartTime = 37; optional EventLocation eventLocation = 38; optional int64 eventEndTime = 40; + optional bytes plainProtobufBytes = 43; message EventLocation { optional double degreesLatitude = 1; optional double degreesLongitude = 2; @@ -3012,7 +3258,7 @@ message MsgOpaqueData { optional string url = 5; optional bytes jpegThumbnail = 6; } - + enum PollContentType { UNKNOWN = 0; TEXT = 1; @@ -3022,16 +3268,16 @@ message MsgOpaqueData { optional string name = 1; optional string hash = 2; } - + message PollVoteSnapshot { optional MsgOpaqueData.PollOption option = 1; optional int32 optionVoteCount = 2; } - + message PollVotesSnapshot { repeated MsgOpaqueData.PollVoteSnapshot pollVotes = 1; } - + } message MsgRowOpaqueData { @@ -3049,7 +3295,7 @@ message NoiseCertificate { optional string subject = 4; optional bytes key = 5; } - + } message NotificationMessageInfo { @@ -3132,7 +3378,7 @@ message PaymentBackground { optional bytes fileEncSha256 = 4; optional string directPath = 5; } - + enum Type { UNKNOWN = 0; DEFAULT = 1; @@ -3366,17 +3612,17 @@ message SenderKeyStateStructure { optional uint32 iteration = 1; optional bytes seed = 2; } - + message SenderMessageKey { optional uint32 iteration = 1; optional bytes seed = 2; } - + message SenderSigningKey { optional bytes public = 1; optional bytes private = 2; } - + } message ServerErrorReceipt { @@ -3406,16 +3652,16 @@ message SessionStructure { optional uint32 index = 1; optional bytes key = 2; } - + message MessageKey { optional uint32 index = 1; optional bytes cipherKey = 2; optional bytes macKey = 3; optional bytes iv = 4; } - + } - + message PendingKeyExchange { optional uint32 sequence = 1; optional bytes localBaseKey = 2; @@ -3425,13 +3671,13 @@ message SessionStructure { optional bytes localIdentityKey = 7; optional bytes localIdentityKeyPrivate = 8; } - + message PendingPreKey { optional uint32 preKeyId = 1; optional int32 signedPreKeyId = 3; optional bytes baseKey = 2; } - + } message SignalMessage { @@ -3535,98 +3781,107 @@ message SyncActionValue { optional WaffleAccountLinkStateAction waffleAccountLinkStateAction = 58; optional UsernameChatStartModeAction usernameChatStartMode = 59; optional NotificationActivitySettingAction notificationActivitySettingAction = 60; + optional LidContactAction lidContactAction = 61; + optional CtwaPerCustomerDataSharingAction ctwaPerCustomerDataSharingAction = 62; + optional PaymentTosAction paymentTosAction = 63; message AgentAction { optional string name = 1; optional int32 deviceID = 2; optional bool isDeleted = 3; } - + message AndroidUnsupportedActions { optional bool allowed = 1; } - + message ArchiveChatAction { optional bool archived = 1; optional SyncActionValue.SyncActionMessageRange messageRange = 2; } - + message BotWelcomeRequestAction { optional bool isSent = 1; } - + message CallLogAction { optional CallLogRecord callLogRecord = 1; } - + message ChatAssignmentAction { optional string deviceAgentID = 1; } - + message ChatAssignmentOpenedStatusAction { optional bool chatOpened = 1; } - + message ClearChatAction { optional SyncActionValue.SyncActionMessageRange messageRange = 1; } - + message ContactAction { optional string fullName = 1; optional string firstName = 2; optional string lidJid = 3; optional bool saveOnPrimaryAddressbook = 4; + optional string pnJid = 5; + optional string username = 6; } - + + message CtwaPerCustomerDataSharingAction { + optional bool isCtwaPerCustomerDataSharingEnabled = 1; + } + message CustomPaymentMethod { required string credentialId = 1; required string country = 2; required string type = 3; repeated SyncActionValue.CustomPaymentMethodMetadata metadata = 4; } - + message CustomPaymentMethodMetadata { required string key = 1; required string value = 2; } - + message CustomPaymentMethodsAction { repeated SyncActionValue.CustomPaymentMethod customPaymentMethods = 1; } - + message DeleteChatAction { optional SyncActionValue.SyncActionMessageRange messageRange = 1; } - + message DeleteIndividualCallLogAction { optional string peerJid = 1; optional bool isIncoming = 2; } - + message DeleteMessageForMeAction { optional bool deleteMedia = 1; optional int64 messageTimestamp = 2; } - + message ExternalWebBetaAction { optional bool isOptIn = 1; } - + message FavoritesAction { repeated Favorite favorites = 1; message Favorite { optional string id = 1; } - + } - + message KeyExpiration { optional int32 expiredKeyEpoch = 1; } - + message LabelAssociationAction { optional bool labeled = 1; } - + message LabelEditAction { optional string name = 1; optional int32 color = 2; @@ -3635,6 +3890,7 @@ message SyncActionValue { optional int32 orderIndex = 5; optional bool isActive = 6; optional ListType type = 7; + optional bool isImmutable = 8; enum ListType { NONE = 0; UNREAD = 1; @@ -3642,26 +3898,35 @@ message SyncActionValue { FAVORITES = 3; PREDEFINED = 4; CUSTOM = 5; + COMMUNITY = 6; + SERVER_ASSIGNED = 7; } } - + message LabelReorderingAction { repeated int32 sortedLabelIds = 1; } - + + message LidContactAction { + optional string fullName = 1; + optional string firstName = 2; + optional string username = 3; + optional bool saveOnPrimaryAddressbook = 4; + } + message LocaleSetting { optional string locale = 1; } - + message LockChatAction { optional bool locked = 1; } - + message MarkChatAsReadAction { optional bool read = 1; optional SyncActionValue.SyncActionMessageRange messageRange = 2; } - + message MarketingMessageAction { optional string name = 1; optional string message = 2; @@ -3674,11 +3939,11 @@ message SyncActionValue { PERSONALIZED = 0; } } - + message MarketingMessageBroadcastAction { optional int32 repliedCount = 1; } - + message MerchantPaymentPartnerAction { required Status status = 1; required string country = 2; @@ -3689,13 +3954,13 @@ message SyncActionValue { INACTIVE = 1; } } - + message MuteAction { optional bool muted = 1; optional int64 muteEndTimestamp = 2; optional bool autoMuted = 3; } - + message NoteEditAction { optional NoteType type = 1; optional string chatJid = 2; @@ -3707,7 +3972,7 @@ message SyncActionValue { STRUCTURED = 2; } } - + message NotificationActivitySettingAction { optional NotificationActivitySetting notificationActivitySetting = 1; enum NotificationActivitySetting { @@ -3717,43 +3982,51 @@ message SyncActionValue { DEFAULT_HIGHLIGHTS = 3; } } - + message NuxAction { optional bool acknowledged = 1; } - + message PaymentInfoAction { optional string cpi = 1; } - + + message PaymentTosAction { + required PaymentNotice paymentNotice = 1; + required bool accepted = 2; + enum PaymentNotice { + BR_PAY_PRIVACY_POLICY = 0; + } + } + message PinAction { optional bool pinned = 1; } - + message PnForLidChatAction { optional string pnJid = 1; } - + message PrimaryFeature { repeated string flags = 1; } - + message PrimaryVersionAction { optional string version = 1; } - + message PrivacySettingDisableLinkPreviewsAction { optional bool isPreviewsDisabled = 1; } - + message PrivacySettingRelayAllCalls { optional bool isEnabled = 1; } - + message PushNameSetting { optional string name = 1; } - + message QuickReplyAction { optional string shortcut = 1; optional string message = 2; @@ -3761,23 +4034,23 @@ message SyncActionValue { optional int32 count = 4; optional bool deleted = 5; } - + message RecentEmojiWeightsAction { repeated RecentEmojiWeight weights = 1; } - + message RemoveRecentStickerAction { optional int64 lastStickerSentTs = 1; } - + message SecurityNotificationSetting { optional bool showNotification = 1; } - + message StarAction { optional bool starred = 1; } - + message StatusPrivacyAction { optional StatusDistributionMode mode = 1; repeated string userJid = 2; @@ -3787,7 +4060,7 @@ message SyncActionValue { CONTACTS = 2; } } - + message StickerAction { optional string url = 1; optional bytes fileEncSha256 = 2; @@ -3801,36 +4074,36 @@ message SyncActionValue { optional uint32 deviceIdHint = 10; optional bool isLottie = 11; } - + message SubscriptionAction { optional bool isDeactivated = 1; optional bool isAutoRenewing = 2; optional int64 expirationDate = 3; } - + message SyncActionMessage { optional MessageKey key = 1; optional int64 timestamp = 2; } - + message SyncActionMessageRange { optional int64 lastMessageTimestamp = 1; optional int64 lastSystemMessageTimestamp = 2; repeated SyncActionValue.SyncActionMessage messages = 3; } - + message TimeFormatAction { optional bool isTwentyFourHourFormatEnabled = 1; } - + message UnarchiveChatsSetting { optional bool unarchiveChats = 1; } - + message UserStatusMuteAction { optional bool muted = 1; } - + message UsernameChatStartModeAction { optional ChatStartMode chatStartMode = 1; enum ChatStartMode { @@ -3838,18 +4111,18 @@ message SyncActionValue { PN = 2; } } - + message WaffleAccountLinkStateAction { optional AccountLinkState linkState = 2; enum AccountLinkState { ACTIVE = 0; } } - + message WamoUserIdentifierAction { optional string identifier = 1; } - + } message SyncdIndex { @@ -3918,17 +4191,17 @@ message TemplateButton { optional Message.HighlyStructuredMessage displayText = 1; optional Message.HighlyStructuredMessage phoneNumber = 2; } - + message QuickReplyButton { optional Message.HighlyStructuredMessage displayText = 1; optional string id = 2; } - + message URLButton { optional Message.HighlyStructuredMessage displayText = 1; optional Message.HighlyStructuredMessage url = 2; } - + } message UrlTrackingMap { @@ -3939,7 +4212,7 @@ message UrlTrackingMap { optional string consentedUsersUrl = 3; optional uint32 cardIndex = 4; } - + } message UserPassword { @@ -3965,9 +4238,9 @@ message UserPassword { uint32 asUnsignedInteger = 2; } } - + } - + } message UserReceipt { @@ -3990,7 +4263,7 @@ message VerifiedNameCertificate { repeated LocalizedName localizedNames = 8; optional uint64 issueTime = 10; } - + } message WallpaperSettings { @@ -4346,6 +4619,9 @@ message WebMessageInfo { CHANGE_LID = 213; BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE = 214; BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE = 215; + CHANGE_LIMIT_SHARING = 216; + GROUP_MEMBER_LINK_MODE = 217; + BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE = 218; } } diff --git a/WAProto/index.d.ts b/WAProto/index.d.ts index 150b518..519f533 100644 --- a/WAProto/index.d.ts +++ b/WAProto/index.d.ts @@ -584,6 +584,115 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a AIQueryFanout. */ + interface IAIQueryFanout { + + /** AIQueryFanout messageKey */ + messageKey?: (proto.IMessageKey|null); + + /** AIQueryFanout message */ + message?: (proto.IMessage|null); + + /** AIQueryFanout timestamp */ + timestamp?: (number|Long|null); + } + + /** Represents a AIQueryFanout. */ + class AIQueryFanout implements IAIQueryFanout { + + /** + * Constructs a new AIQueryFanout. + * @param [properties] Properties to set + */ + constructor(properties?: proto.IAIQueryFanout); + + /** AIQueryFanout messageKey. */ + public messageKey?: (proto.IMessageKey|null); + + /** AIQueryFanout message. */ + public message?: (proto.IMessage|null); + + /** AIQueryFanout timestamp. */ + public timestamp?: (number|Long|null); + + /** + * Creates a new AIQueryFanout instance using the specified properties. + * @param [properties] Properties to set + * @returns AIQueryFanout instance + */ + public static create(properties?: proto.IAIQueryFanout): proto.AIQueryFanout; + + /** + * Encodes the specified AIQueryFanout message. Does not implicitly {@link proto.AIQueryFanout.verify|verify} messages. + * @param message AIQueryFanout message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.IAIQueryFanout, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified AIQueryFanout message, length delimited. Does not implicitly {@link proto.AIQueryFanout.verify|verify} messages. + * @param message AIQueryFanout message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.IAIQueryFanout, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a AIQueryFanout message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns AIQueryFanout + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.AIQueryFanout; + + /** + * Decodes a AIQueryFanout message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns AIQueryFanout + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.AIQueryFanout; + + /** + * Verifies a AIQueryFanout message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a AIQueryFanout message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns AIQueryFanout + */ + public static fromObject(object: { [k: string]: any }): proto.AIQueryFanout; + + /** + * Creates a plain object from a AIQueryFanout message. Also converts values to other types if specified. + * @param message AIQueryFanout + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.AIQueryFanout, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this AIQueryFanout to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for AIQueryFanout + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a AIRichResponseMessage. */ interface IAIRichResponseMessage { @@ -593,8 +702,8 @@ export namespace proto { /** AIRichResponseMessage submessages */ submessages?: (proto.AIRichResponseMessage.IAIRichResponseSubMessage[]|null); - /** AIRichResponseMessage abstractData */ - abstractData?: (proto.AIRichResponseMessage.IAIRichResponseAbstractData|null); + /** AIRichResponseMessage unifiedResponse */ + unifiedResponse?: (proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse|null); } /** Represents a AIRichResponseMessage. */ @@ -612,8 +721,8 @@ export namespace proto { /** AIRichResponseMessage submessages. */ public submessages: proto.AIRichResponseMessage.IAIRichResponseSubMessage[]; - /** AIRichResponseMessage abstractData. */ - public abstractData?: (proto.AIRichResponseMessage.IAIRichResponseAbstractData|null); + /** AIRichResponseMessage unifiedResponse. */ + public unifiedResponse?: (proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse|null); /** * Creates a new AIRichResponseMessage instance using the specified properties. @@ -695,103 +804,6 @@ export namespace proto { namespace AIRichResponseMessage { - /** Properties of a AIRichResponseAbstractData. */ - interface IAIRichResponseAbstractData { - - /** AIRichResponseAbstractData data */ - data?: (Uint8Array|null); - } - - /** Represents a AIRichResponseAbstractData. */ - class AIRichResponseAbstractData implements IAIRichResponseAbstractData { - - /** - * Constructs a new AIRichResponseAbstractData. - * @param [properties] Properties to set - */ - constructor(properties?: proto.AIRichResponseMessage.IAIRichResponseAbstractData); - - /** AIRichResponseAbstractData data. */ - public data?: (Uint8Array|null); - - /** - * Creates a new AIRichResponseAbstractData instance using the specified properties. - * @param [properties] Properties to set - * @returns AIRichResponseAbstractData instance - */ - public static create(properties?: proto.AIRichResponseMessage.IAIRichResponseAbstractData): proto.AIRichResponseMessage.AIRichResponseAbstractData; - - /** - * Encodes the specified AIRichResponseAbstractData message. Does not implicitly {@link proto.AIRichResponseMessage.AIRichResponseAbstractData.verify|verify} messages. - * @param message AIRichResponseAbstractData message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: proto.AIRichResponseMessage.IAIRichResponseAbstractData, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified AIRichResponseAbstractData message, length delimited. Does not implicitly {@link proto.AIRichResponseMessage.AIRichResponseAbstractData.verify|verify} messages. - * @param message AIRichResponseAbstractData message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: proto.AIRichResponseMessage.IAIRichResponseAbstractData, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a AIRichResponseAbstractData message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns AIRichResponseAbstractData - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.AIRichResponseMessage.AIRichResponseAbstractData; - - /** - * Decodes a AIRichResponseAbstractData message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns AIRichResponseAbstractData - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.AIRichResponseMessage.AIRichResponseAbstractData; - - /** - * Verifies a AIRichResponseAbstractData message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a AIRichResponseAbstractData message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns AIRichResponseAbstractData - */ - public static fromObject(object: { [k: string]: any }): proto.AIRichResponseMessage.AIRichResponseAbstractData; - - /** - * Creates a plain object from a AIRichResponseAbstractData message. Also converts values to other types if specified. - * @param message AIRichResponseAbstractData - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: proto.AIRichResponseMessage.AIRichResponseAbstractData, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this AIRichResponseAbstractData to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - - /** - * Gets the default type url for AIRichResponseAbstractData - * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns The default type url - */ - public static getTypeUrl(typeUrlPrefix?: string): string; - } - /** Properties of a AIRichResponseCodeMetadata. */ interface IAIRichResponseCodeMetadata { @@ -1922,6 +1934,18 @@ export namespace proto { /** AIRichResponseLatexExpression fontHeight */ fontHeight?: (number|null); + + /** AIRichResponseLatexExpression imageTopPadding */ + imageTopPadding?: (number|null); + + /** AIRichResponseLatexExpression imageLeadingPadding */ + imageLeadingPadding?: (number|null); + + /** AIRichResponseLatexExpression imageBottomPadding */ + imageBottomPadding?: (number|null); + + /** AIRichResponseLatexExpression imageTrailingPadding */ + imageTrailingPadding?: (number|null); } /** Represents a AIRichResponseLatexExpression. */ @@ -1948,6 +1972,18 @@ export namespace proto { /** AIRichResponseLatexExpression fontHeight. */ public fontHeight?: (number|null); + /** AIRichResponseLatexExpression imageTopPadding. */ + public imageTopPadding?: (number|null); + + /** AIRichResponseLatexExpression imageLeadingPadding. */ + public imageLeadingPadding?: (number|null); + + /** AIRichResponseLatexExpression imageBottomPadding. */ + public imageBottomPadding?: (number|null); + + /** AIRichResponseLatexExpression imageTrailingPadding. */ + public imageTrailingPadding?: (number|null); + /** * Creates a new AIRichResponseLatexExpression instance using the specified properties. * @param [properties] Properties to set @@ -2651,6 +2687,218 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } } + + /** Properties of a AIRichResponseUnifiedResponse. */ + interface IAIRichResponseUnifiedResponse { + + /** AIRichResponseUnifiedResponse data */ + data?: (Uint8Array|null); + } + + /** Represents a AIRichResponseUnifiedResponse. */ + class AIRichResponseUnifiedResponse implements IAIRichResponseUnifiedResponse { + + /** + * Constructs a new AIRichResponseUnifiedResponse. + * @param [properties] Properties to set + */ + constructor(properties?: proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse); + + /** AIRichResponseUnifiedResponse data. */ + public data?: (Uint8Array|null); + + /** + * Creates a new AIRichResponseUnifiedResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns AIRichResponseUnifiedResponse instance + */ + public static create(properties?: proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse): proto.AIRichResponseMessage.AIRichResponseUnifiedResponse; + + /** + * Encodes the specified AIRichResponseUnifiedResponse message. Does not implicitly {@link proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.verify|verify} messages. + * @param message AIRichResponseUnifiedResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified AIRichResponseUnifiedResponse message, length delimited. Does not implicitly {@link proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.verify|verify} messages. + * @param message AIRichResponseUnifiedResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a AIRichResponseUnifiedResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns AIRichResponseUnifiedResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.AIRichResponseMessage.AIRichResponseUnifiedResponse; + + /** + * Decodes a AIRichResponseUnifiedResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns AIRichResponseUnifiedResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.AIRichResponseMessage.AIRichResponseUnifiedResponse; + + /** + * Verifies a AIRichResponseUnifiedResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a AIRichResponseUnifiedResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns AIRichResponseUnifiedResponse + */ + public static fromObject(object: { [k: string]: any }): proto.AIRichResponseMessage.AIRichResponseUnifiedResponse; + + /** + * Creates a plain object from a AIRichResponseUnifiedResponse message. Also converts values to other types if specified. + * @param message AIRichResponseUnifiedResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.AIRichResponseMessage.AIRichResponseUnifiedResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this AIRichResponseUnifiedResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for AIRichResponseUnifiedResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + + /** Properties of an Account. */ + interface IAccount { + + /** Account lid */ + lid?: (string|null); + + /** Account username */ + username?: (string|null); + + /** Account countryCode */ + countryCode?: (string|null); + + /** Account isUsernameDeleted */ + isUsernameDeleted?: (boolean|null); + } + + /** Represents an Account. */ + class Account implements IAccount { + + /** + * Constructs a new Account. + * @param [properties] Properties to set + */ + constructor(properties?: proto.IAccount); + + /** Account lid. */ + public lid?: (string|null); + + /** Account username. */ + public username?: (string|null); + + /** Account countryCode. */ + public countryCode?: (string|null); + + /** Account isUsernameDeleted. */ + public isUsernameDeleted?: (boolean|null); + + /** + * Creates a new Account instance using the specified properties. + * @param [properties] Properties to set + * @returns Account instance + */ + public static create(properties?: proto.IAccount): proto.Account; + + /** + * Encodes the specified Account message. Does not implicitly {@link proto.Account.verify|verify} messages. + * @param message Account message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.IAccount, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Account message, length delimited. Does not implicitly {@link proto.Account.verify|verify} messages. + * @param message Account message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.IAccount, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Account message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Account + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Account; + + /** + * Decodes an Account message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Account + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Account; + + /** + * Verifies an Account message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an Account message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Account + */ + public static fromObject(object: { [k: string]: any }): proto.Account; + + /** + * Creates a plain object from an Account message. Also converts values to other types if specified. + * @param message Account + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Account, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Account to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Account + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of an ActionLink. */ @@ -3373,6 +3621,109 @@ export namespace proto { } } + /** Properties of a BotAgeCollectionMetadata. */ + interface IBotAgeCollectionMetadata { + + /** BotAgeCollectionMetadata ageCollectionEligible */ + ageCollectionEligible?: (boolean|null); + + /** BotAgeCollectionMetadata shouldTriggerAgeCollectionOnClient */ + shouldTriggerAgeCollectionOnClient?: (boolean|null); + } + + /** Represents a BotAgeCollectionMetadata. */ + class BotAgeCollectionMetadata implements IBotAgeCollectionMetadata { + + /** + * Constructs a new BotAgeCollectionMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.IBotAgeCollectionMetadata); + + /** BotAgeCollectionMetadata ageCollectionEligible. */ + public ageCollectionEligible?: (boolean|null); + + /** BotAgeCollectionMetadata shouldTriggerAgeCollectionOnClient. */ + public shouldTriggerAgeCollectionOnClient?: (boolean|null); + + /** + * Creates a new BotAgeCollectionMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns BotAgeCollectionMetadata instance + */ + public static create(properties?: proto.IBotAgeCollectionMetadata): proto.BotAgeCollectionMetadata; + + /** + * Encodes the specified BotAgeCollectionMetadata message. Does not implicitly {@link proto.BotAgeCollectionMetadata.verify|verify} messages. + * @param message BotAgeCollectionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.IBotAgeCollectionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotAgeCollectionMetadata message, length delimited. Does not implicitly {@link proto.BotAgeCollectionMetadata.verify|verify} messages. + * @param message BotAgeCollectionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.IBotAgeCollectionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotAgeCollectionMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotAgeCollectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotAgeCollectionMetadata; + + /** + * Decodes a BotAgeCollectionMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotAgeCollectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotAgeCollectionMetadata; + + /** + * Verifies a BotAgeCollectionMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotAgeCollectionMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotAgeCollectionMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.BotAgeCollectionMetadata; + + /** + * Creates a plain object from a BotAgeCollectionMetadata message. Also converts values to other types if specified. + * @param message BotAgeCollectionMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotAgeCollectionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotAgeCollectionMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotAgeCollectionMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a BotAvatarMetadata. */ interface IBotAvatarMetadata { @@ -3624,7 +3975,13 @@ export namespace proto { RICH_RESPONSE_INLINE_REELS = 26, AGENTIC_PLANNING = 27, ACCOUNT_LINKING = 28, - STREAMING_DISAGGREGATION = 29 + STREAMING_DISAGGREGATION = 29, + RICH_RESPONSE_GRID_IMAGE_3P = 30, + RICH_RESPONSE_LATEX_INLINE = 31, + QUERY_PLAN = 32, + PROACTIVE_MESSAGE = 33, + RICH_RESPONSE_UNIFIED_RESPONSE = 34, + PROMOTION_MESSAGE = 35 } } @@ -3850,6 +4207,9 @@ export namespace proto { /** BotLinkedAccountsMetadata acAuthTokens */ acAuthTokens?: (Uint8Array|null); + + /** BotLinkedAccountsMetadata acErrorCode */ + acErrorCode?: (number|null); } /** Represents a BotLinkedAccountsMetadata. */ @@ -3867,6 +4227,9 @@ export namespace proto { /** BotLinkedAccountsMetadata acAuthTokens. */ public acAuthTokens?: (Uint8Array|null); + /** BotLinkedAccountsMetadata acErrorCode. */ + public acErrorCode?: (number|null); + /** * Creates a new BotLinkedAccountsMetadata instance using the specified properties. * @param [properties] Properties to set @@ -4453,6 +4816,24 @@ export namespace proto { /** BotMetadata botLinkedAccountsMetadata */ botLinkedAccountsMetadata?: (proto.IBotLinkedAccountsMetadata|null); + + /** BotMetadata richResponseSourcesMetadata */ + richResponseSourcesMetadata?: (proto.IBotSourcesMetadata|null); + + /** BotMetadata aiConversationContext */ + aiConversationContext?: (Uint8Array|null); + + /** BotMetadata botPromotionMessageMetadata */ + botPromotionMessageMetadata?: (proto.IBotPromotionMessageMetadata|null); + + /** BotMetadata botModeSelectionMetadata */ + botModeSelectionMetadata?: (proto.IBotModeSelectionMetadata|null); + + /** BotMetadata botQuotaMetadata */ + botQuotaMetadata?: (proto.IBotQuotaMetadata|null); + + /** BotMetadata botAgeCollectionMetadata */ + botAgeCollectionMetadata?: (proto.IBotAgeCollectionMetadata|null); } /** Represents a BotMetadata. */ @@ -4518,6 +4899,24 @@ export namespace proto { /** BotMetadata botLinkedAccountsMetadata. */ public botLinkedAccountsMetadata?: (proto.IBotLinkedAccountsMetadata|null); + /** BotMetadata richResponseSourcesMetadata. */ + public richResponseSourcesMetadata?: (proto.IBotSourcesMetadata|null); + + /** BotMetadata aiConversationContext. */ + public aiConversationContext?: (Uint8Array|null); + + /** BotMetadata botPromotionMessageMetadata. */ + public botPromotionMessageMetadata?: (proto.IBotPromotionMessageMetadata|null); + + /** BotMetadata botModeSelectionMetadata. */ + public botModeSelectionMetadata?: (proto.IBotModeSelectionMetadata|null); + + /** BotMetadata botQuotaMetadata. */ + public botQuotaMetadata?: (proto.IBotQuotaMetadata|null); + + /** BotMetadata botAgeCollectionMetadata. */ + public botAgeCollectionMetadata?: (proto.IBotAgeCollectionMetadata|null); + /** * Creates a new BotMetadata instance using the specified properties. * @param [properties] Properties to set @@ -4614,7 +5013,14 @@ export namespace proto { PROFILE_MESSAGE_BUTTON = 14, FORWARD = 15, APP_SHORTCUT = 16, - FF_FAMILY = 17 + FF_FAMILY = 17, + AI_TAB = 18, + AI_HOME = 19, + AI_DEEPLINK_IMMERSIVE = 20, + AI_DEEPLINK = 21, + META_AI_CHAT_SHORTCUT_AI_STUDIO = 22, + UGC_CHAT_SHORTCUT_AI_STUDIO = 23, + NEW_CHAT_AI_STUDIO = 24 } /** Properties of a BotMetricsMetadata. */ @@ -4625,6 +5031,9 @@ export namespace proto { /** BotMetricsMetadata destinationEntryPoint */ destinationEntryPoint?: (proto.BotMetricsEntryPoint|null); + + /** BotMetricsMetadata threadOrigin */ + threadOrigin?: (proto.BotMetricsThreadEntryPoint|null); } /** Represents a BotMetricsMetadata. */ @@ -4642,6 +5051,9 @@ export namespace proto { /** BotMetricsMetadata destinationEntryPoint. */ public destinationEntryPoint?: (proto.BotMetricsEntryPoint|null); + /** BotMetricsMetadata threadOrigin. */ + public threadOrigin?: (proto.BotMetricsThreadEntryPoint|null); + /** * Creates a new BotMetricsMetadata instance using the specified properties. * @param [properties] Properties to set @@ -4720,6 +5132,120 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** BotMetricsThreadEntryPoint enum. */ + enum BotMetricsThreadEntryPoint { + AI_TAB_THREAD = 1, + AI_HOME_THREAD = 2, + AI_DEEPLINK_IMMERSIVE_THREAD = 3, + AI_DEEPLINK_THREAD = 4 + } + + /** Properties of a BotModeSelectionMetadata. */ + interface IBotModeSelectionMetadata { + + /** BotModeSelectionMetadata mode */ + mode?: (proto.BotModeSelectionMetadata.BotUserSelectionMode[]|null); + } + + /** Represents a BotModeSelectionMetadata. */ + class BotModeSelectionMetadata implements IBotModeSelectionMetadata { + + /** + * Constructs a new BotModeSelectionMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.IBotModeSelectionMetadata); + + /** BotModeSelectionMetadata mode. */ + public mode: proto.BotModeSelectionMetadata.BotUserSelectionMode[]; + + /** + * Creates a new BotModeSelectionMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns BotModeSelectionMetadata instance + */ + public static create(properties?: proto.IBotModeSelectionMetadata): proto.BotModeSelectionMetadata; + + /** + * Encodes the specified BotModeSelectionMetadata message. Does not implicitly {@link proto.BotModeSelectionMetadata.verify|verify} messages. + * @param message BotModeSelectionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.IBotModeSelectionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotModeSelectionMetadata message, length delimited. Does not implicitly {@link proto.BotModeSelectionMetadata.verify|verify} messages. + * @param message BotModeSelectionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.IBotModeSelectionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotModeSelectionMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotModeSelectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotModeSelectionMetadata; + + /** + * Decodes a BotModeSelectionMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotModeSelectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotModeSelectionMetadata; + + /** + * Verifies a BotModeSelectionMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotModeSelectionMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotModeSelectionMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.BotModeSelectionMetadata; + + /** + * Creates a plain object from a BotModeSelectionMetadata message. Also converts values to other types if specified. + * @param message BotModeSelectionMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotModeSelectionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotModeSelectionMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotModeSelectionMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace BotModeSelectionMetadata { + + /** BotUserSelectionMode enum. */ + enum BotUserSelectionMode { + UNKNOWN_MODE = 0, + REASONING_MODE = 1 + } + } + /** Properties of a BotModelMetadata. */ interface IBotModelMetadata { @@ -5146,6 +5672,9 @@ export namespace proto { /** BotPlanningStepMetadata isEnhancedSearch */ isEnhancedSearch?: (boolean|null); + + /** BotPlanningStepMetadata sections */ + sections?: (proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata[]|null); } /** Represents a BotPlanningStepMetadata. */ @@ -5175,6 +5704,9 @@ export namespace proto { /** BotPlanningStepMetadata isEnhancedSearch. */ public isEnhancedSearch?: (boolean|null); + /** BotPlanningStepMetadata sections. */ + public sections: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata[]; + /** * Creates a new BotPlanningStepMetadata instance using the specified properties. * @param [properties] Properties to set @@ -5255,6 +5787,121 @@ export namespace proto { namespace BotPlanningStepMetadata { + /** Properties of a BotPlanningSearchSourceMetadata. */ + interface IBotPlanningSearchSourceMetadata { + + /** BotPlanningSearchSourceMetadata title */ + title?: (string|null); + + /** BotPlanningSearchSourceMetadata provider */ + provider?: (proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider|null); + + /** BotPlanningSearchSourceMetadata sourceUrl */ + sourceUrl?: (string|null); + + /** BotPlanningSearchSourceMetadata favIconUrl */ + favIconUrl?: (string|null); + } + + /** Represents a BotPlanningSearchSourceMetadata. */ + class BotPlanningSearchSourceMetadata implements IBotPlanningSearchSourceMetadata { + + /** + * Constructs a new BotPlanningSearchSourceMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata); + + /** BotPlanningSearchSourceMetadata title. */ + public title?: (string|null); + + /** BotPlanningSearchSourceMetadata provider. */ + public provider?: (proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider|null); + + /** BotPlanningSearchSourceMetadata sourceUrl. */ + public sourceUrl?: (string|null); + + /** BotPlanningSearchSourceMetadata favIconUrl. */ + public favIconUrl?: (string|null); + + /** + * Creates a new BotPlanningSearchSourceMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns BotPlanningSearchSourceMetadata instance + */ + public static create(properties?: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata): proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata; + + /** + * Encodes the specified BotPlanningSearchSourceMetadata message. Does not implicitly {@link proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.verify|verify} messages. + * @param message BotPlanningSearchSourceMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotPlanningSearchSourceMetadata message, length delimited. Does not implicitly {@link proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.verify|verify} messages. + * @param message BotPlanningSearchSourceMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotPlanningSearchSourceMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotPlanningSearchSourceMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata; + + /** + * Decodes a BotPlanningSearchSourceMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotPlanningSearchSourceMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata; + + /** + * Verifies a BotPlanningSearchSourceMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotPlanningSearchSourceMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotPlanningSearchSourceMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata; + + /** + * Creates a plain object from a BotPlanningSearchSourceMetadata message. Also converts values to other types if specified. + * @param message BotPlanningSearchSourceMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotPlanningSearchSourceMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotPlanningSearchSourceMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a BotPlanningSearchSourcesMetadata. */ interface IBotPlanningSearchSourcesMetadata { @@ -5375,6 +6022,123 @@ export namespace proto { } } + /** Properties of a BotPlanningStepSectionMetadata. */ + interface IBotPlanningStepSectionMetadata { + + /** BotPlanningStepSectionMetadata sectionTitle */ + sectionTitle?: (string|null); + + /** BotPlanningStepSectionMetadata sectionBody */ + sectionBody?: (string|null); + + /** BotPlanningStepSectionMetadata sourcesMetadata */ + sourcesMetadata?: (proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata[]|null); + } + + /** Represents a BotPlanningStepSectionMetadata. */ + class BotPlanningStepSectionMetadata implements IBotPlanningStepSectionMetadata { + + /** + * Constructs a new BotPlanningStepSectionMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata); + + /** BotPlanningStepSectionMetadata sectionTitle. */ + public sectionTitle?: (string|null); + + /** BotPlanningStepSectionMetadata sectionBody. */ + public sectionBody?: (string|null); + + /** BotPlanningStepSectionMetadata sourcesMetadata. */ + public sourcesMetadata: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata[]; + + /** + * Creates a new BotPlanningStepSectionMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns BotPlanningStepSectionMetadata instance + */ + public static create(properties?: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata): proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata; + + /** + * Encodes the specified BotPlanningStepSectionMetadata message. Does not implicitly {@link proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.verify|verify} messages. + * @param message BotPlanningStepSectionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotPlanningStepSectionMetadata message, length delimited. Does not implicitly {@link proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.verify|verify} messages. + * @param message BotPlanningStepSectionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotPlanningStepSectionMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotPlanningStepSectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata; + + /** + * Decodes a BotPlanningStepSectionMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotPlanningStepSectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata; + + /** + * Verifies a BotPlanningStepSectionMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotPlanningStepSectionMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotPlanningStepSectionMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata; + + /** + * Creates a plain object from a BotPlanningStepSectionMetadata message. Also converts values to other types if specified. + * @param message BotPlanningStepSectionMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotPlanningStepSectionMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotPlanningStepSectionMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** BotSearchSourceProvider enum. */ + enum BotSearchSourceProvider { + UNKNOWN_PROVIDER = 0, + OTHER = 1, + GOOGLE = 2, + BING = 3 + } + /** PlanningStepStatus enum. */ enum PlanningStepStatus { UNKNOWN = 0, @@ -5385,6 +6149,118 @@ export namespace proto { } } + /** Properties of a BotPromotionMessageMetadata. */ + interface IBotPromotionMessageMetadata { + + /** BotPromotionMessageMetadata promotionType */ + promotionType?: (proto.BotPromotionMessageMetadata.BotPromotionType|null); + + /** BotPromotionMessageMetadata buttonTitle */ + buttonTitle?: (string|null); + } + + /** Represents a BotPromotionMessageMetadata. */ + class BotPromotionMessageMetadata implements IBotPromotionMessageMetadata { + + /** + * Constructs a new BotPromotionMessageMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.IBotPromotionMessageMetadata); + + /** BotPromotionMessageMetadata promotionType. */ + public promotionType?: (proto.BotPromotionMessageMetadata.BotPromotionType|null); + + /** BotPromotionMessageMetadata buttonTitle. */ + public buttonTitle?: (string|null); + + /** + * Creates a new BotPromotionMessageMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns BotPromotionMessageMetadata instance + */ + public static create(properties?: proto.IBotPromotionMessageMetadata): proto.BotPromotionMessageMetadata; + + /** + * Encodes the specified BotPromotionMessageMetadata message. Does not implicitly {@link proto.BotPromotionMessageMetadata.verify|verify} messages. + * @param message BotPromotionMessageMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.IBotPromotionMessageMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotPromotionMessageMetadata message, length delimited. Does not implicitly {@link proto.BotPromotionMessageMetadata.verify|verify} messages. + * @param message BotPromotionMessageMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.IBotPromotionMessageMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotPromotionMessageMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotPromotionMessageMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotPromotionMessageMetadata; + + /** + * Decodes a BotPromotionMessageMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotPromotionMessageMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotPromotionMessageMetadata; + + /** + * Verifies a BotPromotionMessageMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotPromotionMessageMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotPromotionMessageMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.BotPromotionMessageMetadata; + + /** + * Creates a plain object from a BotPromotionMessageMetadata message. Also converts values to other types if specified. + * @param message BotPromotionMessageMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotPromotionMessageMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotPromotionMessageMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotPromotionMessageMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace BotPromotionMessageMetadata { + + /** BotPromotionType enum. */ + enum BotPromotionType { + UNKNOWN_TYPE = 0, + C50 = 1 + } + } + /** Properties of a BotPromptSuggestion. */ interface IBotPromptSuggestion { @@ -5585,6 +6461,224 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a BotQuotaMetadata. */ + interface IBotQuotaMetadata { + + /** BotQuotaMetadata botFeatureQuotaMetadata */ + botFeatureQuotaMetadata?: (proto.BotQuotaMetadata.IBotFeatureQuotaMetadata[]|null); + } + + /** Represents a BotQuotaMetadata. */ + class BotQuotaMetadata implements IBotQuotaMetadata { + + /** + * Constructs a new BotQuotaMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.IBotQuotaMetadata); + + /** BotQuotaMetadata botFeatureQuotaMetadata. */ + public botFeatureQuotaMetadata: proto.BotQuotaMetadata.IBotFeatureQuotaMetadata[]; + + /** + * Creates a new BotQuotaMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns BotQuotaMetadata instance + */ + public static create(properties?: proto.IBotQuotaMetadata): proto.BotQuotaMetadata; + + /** + * Encodes the specified BotQuotaMetadata message. Does not implicitly {@link proto.BotQuotaMetadata.verify|verify} messages. + * @param message BotQuotaMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.IBotQuotaMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotQuotaMetadata message, length delimited. Does not implicitly {@link proto.BotQuotaMetadata.verify|verify} messages. + * @param message BotQuotaMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.IBotQuotaMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotQuotaMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotQuotaMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotQuotaMetadata; + + /** + * Decodes a BotQuotaMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotQuotaMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotQuotaMetadata; + + /** + * Verifies a BotQuotaMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotQuotaMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotQuotaMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.BotQuotaMetadata; + + /** + * Creates a plain object from a BotQuotaMetadata message. Also converts values to other types if specified. + * @param message BotQuotaMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotQuotaMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotQuotaMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotQuotaMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace BotQuotaMetadata { + + /** Properties of a BotFeatureQuotaMetadata. */ + interface IBotFeatureQuotaMetadata { + + /** BotFeatureQuotaMetadata featureType */ + featureType?: (proto.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType|null); + + /** BotFeatureQuotaMetadata remainingQuota */ + remainingQuota?: (number|null); + + /** BotFeatureQuotaMetadata expirationTimestamp */ + expirationTimestamp?: (number|Long|null); + } + + /** Represents a BotFeatureQuotaMetadata. */ + class BotFeatureQuotaMetadata implements IBotFeatureQuotaMetadata { + + /** + * Constructs a new BotFeatureQuotaMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.BotQuotaMetadata.IBotFeatureQuotaMetadata); + + /** BotFeatureQuotaMetadata featureType. */ + public featureType?: (proto.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType|null); + + /** BotFeatureQuotaMetadata remainingQuota. */ + public remainingQuota?: (number|null); + + /** BotFeatureQuotaMetadata expirationTimestamp. */ + public expirationTimestamp?: (number|Long|null); + + /** + * Creates a new BotFeatureQuotaMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns BotFeatureQuotaMetadata instance + */ + public static create(properties?: proto.BotQuotaMetadata.IBotFeatureQuotaMetadata): proto.BotQuotaMetadata.BotFeatureQuotaMetadata; + + /** + * Encodes the specified BotFeatureQuotaMetadata message. Does not implicitly {@link proto.BotQuotaMetadata.BotFeatureQuotaMetadata.verify|verify} messages. + * @param message BotFeatureQuotaMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.BotQuotaMetadata.IBotFeatureQuotaMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotFeatureQuotaMetadata message, length delimited. Does not implicitly {@link proto.BotQuotaMetadata.BotFeatureQuotaMetadata.verify|verify} messages. + * @param message BotFeatureQuotaMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.BotQuotaMetadata.IBotFeatureQuotaMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotFeatureQuotaMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotFeatureQuotaMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotQuotaMetadata.BotFeatureQuotaMetadata; + + /** + * Decodes a BotFeatureQuotaMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotFeatureQuotaMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotQuotaMetadata.BotFeatureQuotaMetadata; + + /** + * Verifies a BotFeatureQuotaMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotFeatureQuotaMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotFeatureQuotaMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.BotQuotaMetadata.BotFeatureQuotaMetadata; + + /** + * Creates a plain object from a BotFeatureQuotaMetadata message. Also converts values to other types if specified. + * @param message BotFeatureQuotaMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotQuotaMetadata.BotFeatureQuotaMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotFeatureQuotaMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotFeatureQuotaMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace BotFeatureQuotaMetadata { + + /** BotFeatureType enum. */ + enum BotFeatureType { + UNKNOWN_FEATURE = 0, + REASONING_FEATURE = 1 + } + } + } + /** Properties of a BotReminderMetadata. */ interface IBotReminderMetadata { @@ -6043,6 +7137,244 @@ export namespace proto { VOICE = 6 } + /** Properties of a BotSourcesMetadata. */ + interface IBotSourcesMetadata { + + /** BotSourcesMetadata sources */ + sources?: (proto.BotSourcesMetadata.IBotSourceItem[]|null); + } + + /** Represents a BotSourcesMetadata. */ + class BotSourcesMetadata implements IBotSourcesMetadata { + + /** + * Constructs a new BotSourcesMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.IBotSourcesMetadata); + + /** BotSourcesMetadata sources. */ + public sources: proto.BotSourcesMetadata.IBotSourceItem[]; + + /** + * Creates a new BotSourcesMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns BotSourcesMetadata instance + */ + public static create(properties?: proto.IBotSourcesMetadata): proto.BotSourcesMetadata; + + /** + * Encodes the specified BotSourcesMetadata message. Does not implicitly {@link proto.BotSourcesMetadata.verify|verify} messages. + * @param message BotSourcesMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.IBotSourcesMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotSourcesMetadata message, length delimited. Does not implicitly {@link proto.BotSourcesMetadata.verify|verify} messages. + * @param message BotSourcesMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.IBotSourcesMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotSourcesMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotSourcesMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotSourcesMetadata; + + /** + * Decodes a BotSourcesMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotSourcesMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotSourcesMetadata; + + /** + * Verifies a BotSourcesMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotSourcesMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotSourcesMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.BotSourcesMetadata; + + /** + * Creates a plain object from a BotSourcesMetadata message. Also converts values to other types if specified. + * @param message BotSourcesMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotSourcesMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotSourcesMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotSourcesMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace BotSourcesMetadata { + + /** Properties of a BotSourceItem. */ + interface IBotSourceItem { + + /** BotSourceItem provider */ + provider?: (proto.BotSourcesMetadata.BotSourceItem.SourceProvider|null); + + /** BotSourceItem thumbnailCdnUrl */ + thumbnailCdnUrl?: (string|null); + + /** BotSourceItem sourceProviderUrl */ + sourceProviderUrl?: (string|null); + + /** BotSourceItem sourceQuery */ + sourceQuery?: (string|null); + + /** BotSourceItem faviconCdnUrl */ + faviconCdnUrl?: (string|null); + + /** BotSourceItem citationNumber */ + citationNumber?: (number|null); + } + + /** Represents a BotSourceItem. */ + class BotSourceItem implements IBotSourceItem { + + /** + * Constructs a new BotSourceItem. + * @param [properties] Properties to set + */ + constructor(properties?: proto.BotSourcesMetadata.IBotSourceItem); + + /** BotSourceItem provider. */ + public provider?: (proto.BotSourcesMetadata.BotSourceItem.SourceProvider|null); + + /** BotSourceItem thumbnailCdnUrl. */ + public thumbnailCdnUrl?: (string|null); + + /** BotSourceItem sourceProviderUrl. */ + public sourceProviderUrl?: (string|null); + + /** BotSourceItem sourceQuery. */ + public sourceQuery?: (string|null); + + /** BotSourceItem faviconCdnUrl. */ + public faviconCdnUrl?: (string|null); + + /** BotSourceItem citationNumber. */ + public citationNumber?: (number|null); + + /** + * Creates a new BotSourceItem instance using the specified properties. + * @param [properties] Properties to set + * @returns BotSourceItem instance + */ + public static create(properties?: proto.BotSourcesMetadata.IBotSourceItem): proto.BotSourcesMetadata.BotSourceItem; + + /** + * Encodes the specified BotSourceItem message. Does not implicitly {@link proto.BotSourcesMetadata.BotSourceItem.verify|verify} messages. + * @param message BotSourceItem message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.BotSourcesMetadata.IBotSourceItem, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BotSourceItem message, length delimited. Does not implicitly {@link proto.BotSourcesMetadata.BotSourceItem.verify|verify} messages. + * @param message BotSourceItem message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.BotSourcesMetadata.IBotSourceItem, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BotSourceItem message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BotSourceItem + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.BotSourcesMetadata.BotSourceItem; + + /** + * Decodes a BotSourceItem message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BotSourceItem + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.BotSourcesMetadata.BotSourceItem; + + /** + * Verifies a BotSourceItem message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BotSourceItem message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BotSourceItem + */ + public static fromObject(object: { [k: string]: any }): proto.BotSourcesMetadata.BotSourceItem; + + /** + * Creates a plain object from a BotSourceItem message. Also converts values to other types if specified. + * @param message BotSourceItem + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.BotSourcesMetadata.BotSourceItem, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BotSourceItem to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BotSourceItem + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace BotSourceItem { + + /** SourceProvider enum. */ + enum SourceProvider { + UNKNOWN = 0, + BING = 1, + GOOGLE = 2, + SUPPORT = 3 + } + } + } + /** Properties of a BotSuggestedPromptMetadata. */ interface IBotSuggestedPromptMetadata { @@ -7727,6 +9059,12 @@ export namespace proto { /** ClientPayload trafficAnonymization */ trafficAnonymization?: (proto.ClientPayload.TrafficAnonymization|null); + + /** ClientPayload lidDbMigrated */ + lidDbMigrated?: (boolean|null); + + /** ClientPayload accountType */ + accountType?: (proto.ClientPayload.AccountType|null); } /** Represents a ClientPayload. */ @@ -7822,6 +9160,12 @@ export namespace proto { /** ClientPayload trafficAnonymization. */ public trafficAnonymization?: (proto.ClientPayload.TrafficAnonymization|null); + /** ClientPayload lidDbMigrated. */ + public lidDbMigrated?: (boolean|null); + + /** ClientPayload accountType. */ + public accountType?: (proto.ClientPayload.AccountType|null); + /** * Creates a new ClientPayload instance using the specified properties. * @param [properties] Properties to set @@ -7902,6 +9246,12 @@ export namespace proto { namespace ClientPayload { + /** AccountType enum. */ + enum AccountType { + DEFAULT = 0, + GUEST = 1 + } + /** ConnectReason enum. */ enum ConnectReason { PUSH = 0, @@ -8308,7 +9658,8 @@ export namespace proto { WHATSAPP = 0, MESSENGER = 1, INTEROP = 2, - INTEROP_MSGR = 3 + INTEROP_MSGR = 3, + WHATSAPP_LID = 4 } /** TrafficAnonymization enum. */ @@ -9517,6 +10868,15 @@ export namespace proto { /** ContextInfo rankingVersion */ rankingVersion?: (number|null); + + /** ContextInfo memberLabel */ + memberLabel?: (proto.IMemberLabel|null); + + /** ContextInfo isQuestion */ + isQuestion?: (boolean|null); + + /** ContextInfo statusSourceType */ + statusSourceType?: (proto.ContextInfo.StatusSourceType|null); } /** Represents a ContextInfo. */ @@ -9660,6 +11020,15 @@ export namespace proto { /** ContextInfo rankingVersion. */ public rankingVersion?: (number|null); + /** ContextInfo memberLabel. */ + public memberLabel?: (proto.IMemberLabel|null); + + /** ContextInfo isQuestion. */ + public isQuestion?: (boolean|null); + + /** ContextInfo statusSourceType. */ + public statusSourceType?: (proto.ContextInfo.StatusSourceType|null); + /** * Creates a new ContextInfo instance using the specified properties. * @param [properties] Properties to set @@ -10263,6 +11632,15 @@ export namespace proto { /** ExternalAdReplyInfo originalImageUrl */ originalImageUrl?: (string|null); + + /** ExternalAdReplyInfo automatedGreetingMessageCtaType */ + automatedGreetingMessageCtaType?: (string|null); + + /** ExternalAdReplyInfo wtwaAdFormat */ + wtwaAdFormat?: (boolean|null); + + /** ExternalAdReplyInfo adType */ + adType?: (proto.ContextInfo.ExternalAdReplyInfo.AdType|null); } /** Represents an ExternalAdReplyInfo. */ @@ -10340,6 +11718,15 @@ export namespace proto { /** ExternalAdReplyInfo originalImageUrl. */ public originalImageUrl?: (string|null); + /** ExternalAdReplyInfo automatedGreetingMessageCtaType. */ + public automatedGreetingMessageCtaType?: (string|null); + + /** ExternalAdReplyInfo wtwaAdFormat. */ + public wtwaAdFormat?: (boolean|null); + + /** ExternalAdReplyInfo adType. */ + public adType?: (proto.ContextInfo.ExternalAdReplyInfo.AdType|null); + /** * Creates a new ExternalAdReplyInfo instance using the specified properties. * @param [properties] Properties to set @@ -10420,6 +11807,12 @@ export namespace proto { namespace ExternalAdReplyInfo { + /** AdType enum. */ + enum AdType { + CTWA = 0, + CAWC = 1 + } + /** MediaType enum. */ enum MediaType { NONE = 0, @@ -10789,7 +12182,9 @@ export namespace proto { SD_VIDEO_PARENT = 1, HD_VIDEO_CHILD = 2, SD_IMAGE_PARENT = 3, - HD_IMAGE_CHILD = 4 + HD_IMAGE_CHILD = 4, + MOTION_PHOTO_PARENT = 5, + MOTION_PHOTO_CHILD = 6 } /** StatusAttributionType enum. */ @@ -10799,6 +12194,16 @@ export namespace proto { RESHARED_FROM_POST = 2 } + /** StatusSourceType enum. */ + enum StatusSourceType { + IMAGE = 0, + VIDEO = 1, + GIF = 2, + AUDIO = 3, + TEXT = 4, + MUSIC_STANDALONE = 5 + } + /** Properties of a UTMInfo. */ interface IUTMInfo { @@ -11055,6 +12460,15 @@ export namespace proto { /** Conversation limitSharing */ limitSharing?: (boolean|null); + + /** Conversation limitSharingSettingTimestamp */ + limitSharingSettingTimestamp?: (number|Long|null); + + /** Conversation limitSharingTrigger */ + limitSharingTrigger?: (proto.LimitSharing.TriggerType|null); + + /** Conversation limitSharingInitiatedByMe */ + limitSharingInitiatedByMe?: (boolean|null); } /** Represents a Conversation. */ @@ -11216,6 +12630,15 @@ export namespace proto { /** Conversation limitSharing. */ public limitSharing?: (boolean|null); + /** Conversation limitSharingSettingTimestamp. */ + public limitSharingSettingTimestamp?: (number|Long|null); + + /** Conversation limitSharingTrigger. */ + public limitSharingTrigger?: (proto.LimitSharing.TriggerType|null); + + /** Conversation limitSharingInitiatedByMe. */ + public limitSharingInitiatedByMe?: (boolean|null); + /** * Creates a new Conversation instance using the specified properties. * @param [properties] Properties to set @@ -13535,6 +14958,9 @@ export namespace proto { /** GlobalSettings chatLockSettings */ chatLockSettings?: (proto.IChatLockSettings|null); + + /** GlobalSettings chatDbLidMigrationTimestamp */ + chatDbLidMigrationTimestamp?: (number|Long|null); } /** Represents a GlobalSettings. */ @@ -13603,6 +15029,9 @@ export namespace proto { /** GlobalSettings chatLockSettings. */ public chatLockSettings?: (proto.IChatLockSettings|null); + /** GlobalSettings chatDbLidMigrationTimestamp. */ + public chatDbLidMigrationTimestamp?: (number|Long|null); + /** * Creates a new GlobalSettings instance using the specified properties. * @param [properties] Properties to set @@ -14380,6 +15809,9 @@ export namespace proto { /** HistorySync shareableChatIdentifierEncryptionKey */ shareableChatIdentifierEncryptionKey?: (Uint8Array|null); + + /** HistorySync accounts */ + accounts?: (proto.IAccount[]|null); } /** Represents a HistorySync. */ @@ -14439,6 +15871,9 @@ export namespace proto { /** HistorySync shareableChatIdentifierEncryptionKey. */ public shareableChatIdentifierEncryptionKey?: (Uint8Array|null); + /** HistorySync accounts. */ + public accounts: proto.IAccount[]; + /** * Creates a new HistorySync instance using the specified properties. * @param [properties] Properties to set @@ -15207,6 +16642,9 @@ export namespace proto { /** InteractiveAnnotation embeddedContent */ embeddedContent?: (proto.IEmbeddedContent|null); + /** InteractiveAnnotation statusLinkType */ + statusLinkType?: (proto.InteractiveAnnotation.StatusLinkType|null); + /** InteractiveAnnotation location */ location?: (proto.ILocation|null); @@ -15238,6 +16676,9 @@ export namespace proto { /** InteractiveAnnotation embeddedContent. */ public embeddedContent?: (proto.IEmbeddedContent|null); + /** InteractiveAnnotation statusLinkType. */ + public statusLinkType?: (proto.InteractiveAnnotation.StatusLinkType|null); + /** InteractiveAnnotation location. */ public location?: (proto.ILocation|null); @@ -15331,6 +16772,16 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + namespace InteractiveAnnotation { + + /** StatusLinkType enum. */ + enum StatusLinkType { + RASTERIZED_LINK_PREVIEW = 1, + RASTERIZED_LINK_TRUNCATED = 2, + RASTERIZED_LINK_FULL_URL = 3 + } + } + /** Properties of a KeepInChat. */ interface IKeepInChat { @@ -15894,6 +17345,9 @@ export namespace proto { /** LIDMigrationMappingSyncPayload pnToLidMappings */ pnToLidMappings?: (proto.ILIDMigrationMapping[]|null); + + /** LIDMigrationMappingSyncPayload chatDbMigrationTimestamp */ + chatDbMigrationTimestamp?: (number|Long|null); } /** Represents a LIDMigrationMappingSyncPayload. */ @@ -15908,6 +17362,9 @@ export namespace proto { /** LIDMigrationMappingSyncPayload pnToLidMappings. */ public pnToLidMappings: proto.ILIDMigrationMapping[]; + /** LIDMigrationMappingSyncPayload chatDbMigrationTimestamp. */ + public chatDbMigrationTimestamp?: (number|Long|null); + /** * Creates a new LIDMigrationMappingSyncPayload instance using the specified properties. * @param [properties] Properties to set @@ -16096,7 +17553,13 @@ export namespace proto { sharingLimited?: (boolean|null); /** LimitSharing trigger */ - trigger?: (proto.LimitSharing.Trigger|null); + trigger?: (proto.LimitSharing.TriggerType|null); + + /** LimitSharing limitSharingSettingTimestamp */ + limitSharingSettingTimestamp?: (number|Long|null); + + /** LimitSharing initiatedByMe */ + initiatedByMe?: (boolean|null); } /** Represents a LimitSharing. */ @@ -16112,7 +17575,13 @@ export namespace proto { public sharingLimited?: (boolean|null); /** LimitSharing trigger. */ - public trigger?: (proto.LimitSharing.Trigger|null); + public trigger?: (proto.LimitSharing.TriggerType|null); + + /** LimitSharing limitSharingSettingTimestamp. */ + public limitSharingSettingTimestamp?: (number|Long|null); + + /** LimitSharing initiatedByMe. */ + public initiatedByMe?: (boolean|null); /** * Creates a new LimitSharing instance using the specified properties. @@ -16194,10 +17663,12 @@ export namespace proto { namespace LimitSharing { - /** Trigger enum. */ - enum Trigger { - CHAT_SETTING = 0, - BIZ_SUPPORTS_FB_HOSTING = 1 + /** TriggerType enum. */ + enum TriggerType { + UNKNOWN = 0, + CHAT_SETTING = 1, + BIZ_SUPPORTS_FB_HOSTING = 2, + UNKNOWN_GROUP = 3 } } @@ -16758,6 +18229,109 @@ export namespace proto { ON = 2 } + /** Properties of a MemberLabel. */ + interface IMemberLabel { + + /** MemberLabel label */ + label?: (string|null); + + /** MemberLabel labelTimestamp */ + labelTimestamp?: (number|Long|null); + } + + /** Represents a MemberLabel. */ + class MemberLabel implements IMemberLabel { + + /** + * Constructs a new MemberLabel. + * @param [properties] Properties to set + */ + constructor(properties?: proto.IMemberLabel); + + /** MemberLabel label. */ + public label?: (string|null); + + /** MemberLabel labelTimestamp. */ + public labelTimestamp?: (number|Long|null); + + /** + * Creates a new MemberLabel instance using the specified properties. + * @param [properties] Properties to set + * @returns MemberLabel instance + */ + public static create(properties?: proto.IMemberLabel): proto.MemberLabel; + + /** + * Encodes the specified MemberLabel message. Does not implicitly {@link proto.MemberLabel.verify|verify} messages. + * @param message MemberLabel message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.IMemberLabel, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MemberLabel message, length delimited. Does not implicitly {@link proto.MemberLabel.verify|verify} messages. + * @param message MemberLabel message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.IMemberLabel, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MemberLabel message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MemberLabel + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.MemberLabel; + + /** + * Decodes a MemberLabel message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MemberLabel + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.MemberLabel; + + /** + * Verifies a MemberLabel message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MemberLabel message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MemberLabel + */ + public static fromObject(object: { [k: string]: any }): proto.MemberLabel; + + /** + * Creates a plain object from a MemberLabel message. Also converts values to other types if specified. + * @param message MemberLabel + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.MemberLabel, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MemberLabel to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MemberLabel + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a Message. */ interface IMessage { @@ -17006,6 +18580,18 @@ export namespace proto { /** Message statusNotificationMessage */ statusNotificationMessage?: (proto.Message.IStatusNotificationMessage|null); + + /** Message limitSharingMessage */ + limitSharingMessage?: (proto.Message.IFutureProofMessage|null); + + /** Message botTaskMessage */ + botTaskMessage?: (proto.Message.IFutureProofMessage|null); + + /** Message questionMessage */ + questionMessage?: (proto.Message.IFutureProofMessage|null); + + /** Message messageHistoryNotice */ + messageHistoryNotice?: (proto.Message.IMessageHistoryNotice|null); } /** Represents a Message. */ @@ -17263,6 +18849,18 @@ export namespace proto { /** Message statusNotificationMessage. */ public statusNotificationMessage?: (proto.Message.IStatusNotificationMessage|null); + /** Message limitSharingMessage. */ + public limitSharingMessage?: (proto.Message.IFutureProofMessage|null); + + /** Message botTaskMessage. */ + public botTaskMessage?: (proto.Message.IFutureProofMessage|null); + + /** Message questionMessage. */ + public questionMessage?: (proto.Message.IFutureProofMessage|null); + + /** Message messageHistoryNotice. */ + public messageHistoryNotice?: (proto.Message.IMessageHistoryNotice|null); + /** * Creates a new Message instance using the specified properties. * @param [properties] Properties to set @@ -19289,6 +20887,9 @@ export namespace proto { /** Call ctwaPayload */ ctwaPayload?: (Uint8Array|null); + + /** Call contextInfo */ + contextInfo?: (proto.IContextInfo|null); } /** Represents a Call. */ @@ -19318,6 +20919,9 @@ export namespace proto { /** Call ctwaPayload. */ public ctwaPayload?: (Uint8Array|null); + /** Call contextInfo. */ + public contextInfo?: (proto.IContextInfo|null); + /** * Creates a new Call instance using the specified properties. * @param [properties] Properties to set @@ -19856,6 +21460,9 @@ export namespace proto { /** CloudAPIThreadControlNotification consumerPhoneNumber */ consumerPhoneNumber?: (string|null); + + /** CloudAPIThreadControlNotification notificationContent */ + notificationContent?: (proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent|null); } /** Represents a CloudAPIThreadControlNotification. */ @@ -19879,6 +21486,9 @@ export namespace proto { /** CloudAPIThreadControlNotification consumerPhoneNumber. */ public consumerPhoneNumber?: (string|null); + /** CloudAPIThreadControlNotification notificationContent. */ + public notificationContent?: (proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent|null); + /** * Creates a new CloudAPIThreadControlNotification instance using the specified properties. * @param [properties] Properties to set @@ -19965,6 +21575,109 @@ export namespace proto { CONTROL_PASSED = 1, CONTROL_TAKEN = 2 } + + /** Properties of a CloudAPIThreadControlNotificationContent. */ + interface ICloudAPIThreadControlNotificationContent { + + /** CloudAPIThreadControlNotificationContent handoffNotificationText */ + handoffNotificationText?: (string|null); + + /** CloudAPIThreadControlNotificationContent extraJson */ + extraJson?: (string|null); + } + + /** Represents a CloudAPIThreadControlNotificationContent. */ + class CloudAPIThreadControlNotificationContent implements ICloudAPIThreadControlNotificationContent { + + /** + * Constructs a new CloudAPIThreadControlNotificationContent. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent); + + /** CloudAPIThreadControlNotificationContent handoffNotificationText. */ + public handoffNotificationText?: (string|null); + + /** CloudAPIThreadControlNotificationContent extraJson. */ + public extraJson?: (string|null); + + /** + * Creates a new CloudAPIThreadControlNotificationContent instance using the specified properties. + * @param [properties] Properties to set + * @returns CloudAPIThreadControlNotificationContent instance + */ + public static create(properties?: proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent): proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent; + + /** + * Encodes the specified CloudAPIThreadControlNotificationContent message. Does not implicitly {@link proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.verify|verify} messages. + * @param message CloudAPIThreadControlNotificationContent message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CloudAPIThreadControlNotificationContent message, length delimited. Does not implicitly {@link proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.verify|verify} messages. + * @param message CloudAPIThreadControlNotificationContent message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CloudAPIThreadControlNotificationContent message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CloudAPIThreadControlNotificationContent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent; + + /** + * Decodes a CloudAPIThreadControlNotificationContent message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CloudAPIThreadControlNotificationContent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent; + + /** + * Verifies a CloudAPIThreadControlNotificationContent message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CloudAPIThreadControlNotificationContent message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CloudAPIThreadControlNotificationContent + */ + public static fromObject(object: { [k: string]: any }): proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent; + + /** + * Creates a plain object from a CloudAPIThreadControlNotificationContent message. Also converts values to other types if specified. + * @param message CloudAPIThreadControlNotificationContent + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CloudAPIThreadControlNotificationContent to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CloudAPIThreadControlNotificationContent + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } /** Properties of a CommentMessage. */ @@ -21067,6 +22780,9 @@ export namespace proto { /** EventMessage extraGuestsAllowed */ extraGuestsAllowed?: (boolean|null); + + /** EventMessage isScheduleCall */ + isScheduleCall?: (boolean|null); } /** Represents an EventMessage. */ @@ -21105,6 +22821,9 @@ export namespace proto { /** EventMessage extraGuestsAllowed. */ public extraGuestsAllowed?: (boolean|null); + /** EventMessage isScheduleCall. */ + public isScheduleCall?: (boolean|null); + /** * Creates a new EventMessage instance using the specified properties. * @param [properties] Properties to set @@ -21383,6 +23102,12 @@ export namespace proto { /** ExtendedTextMessage faviconMMSMetadata */ faviconMMSMetadata?: (proto.Message.IMMSThumbnailMetadata|null); + + /** ExtendedTextMessage linkPreviewMetadata */ + linkPreviewMetadata?: (proto.Message.ILinkPreviewMetadata|null); + + /** ExtendedTextMessage paymentLinkMetadata */ + paymentLinkMetadata?: (proto.Message.IPaymentLinkMetadata|null); } /** Represents an ExtendedTextMessage. */ @@ -21472,6 +23197,12 @@ export namespace proto { /** ExtendedTextMessage faviconMMSMetadata. */ public faviconMMSMetadata?: (proto.Message.IMMSThumbnailMetadata|null); + /** ExtendedTextMessage linkPreviewMetadata. */ + public linkPreviewMetadata?: (proto.Message.ILinkPreviewMetadata|null); + + /** ExtendedTextMessage paymentLinkMetadata. */ + public paymentLinkMetadata?: (proto.Message.IPaymentLinkMetadata|null); + /** * Creates a new ExtendedTextMessage instance using the specified properties. * @param [properties] Properties to set @@ -24858,6 +26589,115 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a LinkPreviewMetadata. */ + interface ILinkPreviewMetadata { + + /** LinkPreviewMetadata paymentLinkMetadata */ + paymentLinkMetadata?: (proto.Message.IPaymentLinkMetadata|null); + + /** LinkPreviewMetadata urlMetadata */ + urlMetadata?: (proto.Message.IURLMetadata|null); + + /** LinkPreviewMetadata fbExperimentId */ + fbExperimentId?: (number|null); + } + + /** Represents a LinkPreviewMetadata. */ + class LinkPreviewMetadata implements ILinkPreviewMetadata { + + /** + * Constructs a new LinkPreviewMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.ILinkPreviewMetadata); + + /** LinkPreviewMetadata paymentLinkMetadata. */ + public paymentLinkMetadata?: (proto.Message.IPaymentLinkMetadata|null); + + /** LinkPreviewMetadata urlMetadata. */ + public urlMetadata?: (proto.Message.IURLMetadata|null); + + /** LinkPreviewMetadata fbExperimentId. */ + public fbExperimentId?: (number|null); + + /** + * Creates a new LinkPreviewMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns LinkPreviewMetadata instance + */ + public static create(properties?: proto.Message.ILinkPreviewMetadata): proto.Message.LinkPreviewMetadata; + + /** + * Encodes the specified LinkPreviewMetadata message. Does not implicitly {@link proto.Message.LinkPreviewMetadata.verify|verify} messages. + * @param message LinkPreviewMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.ILinkPreviewMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified LinkPreviewMetadata message, length delimited. Does not implicitly {@link proto.Message.LinkPreviewMetadata.verify|verify} messages. + * @param message LinkPreviewMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.ILinkPreviewMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a LinkPreviewMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns LinkPreviewMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.LinkPreviewMetadata; + + /** + * Decodes a LinkPreviewMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns LinkPreviewMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.LinkPreviewMetadata; + + /** + * Verifies a LinkPreviewMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a LinkPreviewMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns LinkPreviewMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.Message.LinkPreviewMetadata; + + /** + * Creates a plain object from a LinkPreviewMetadata message. Also converts values to other types if specified. + * @param message LinkPreviewMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.LinkPreviewMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this LinkPreviewMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for LinkPreviewMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a ListMessage. */ interface IListMessage { @@ -26329,8 +28169,8 @@ export namespace proto { /** MessageHistoryBundle contextInfo */ contextInfo?: (proto.IContextInfo|null); - /** MessageHistoryBundle participants */ - participants?: (string[]|null); + /** MessageHistoryBundle messageHistoryMetadata */ + messageHistoryMetadata?: (proto.Message.IMessageHistoryMetadata|null); } /** Represents a MessageHistoryBundle. */ @@ -26363,8 +28203,8 @@ export namespace proto { /** MessageHistoryBundle contextInfo. */ public contextInfo?: (proto.IContextInfo|null); - /** MessageHistoryBundle participants. */ - public participants: string[]; + /** MessageHistoryBundle messageHistoryMetadata. */ + public messageHistoryMetadata?: (proto.Message.IMessageHistoryMetadata|null); /** * Creates a new MessageHistoryBundle instance using the specified properties. @@ -26444,6 +28284,218 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a MessageHistoryMetadata. */ + interface IMessageHistoryMetadata { + + /** MessageHistoryMetadata historyReceivers */ + historyReceivers?: (string[]|null); + + /** MessageHistoryMetadata firstMessageTimestamp */ + firstMessageTimestamp?: (number|Long|null); + + /** MessageHistoryMetadata messageCount */ + messageCount?: (number|Long|null); + } + + /** Represents a MessageHistoryMetadata. */ + class MessageHistoryMetadata implements IMessageHistoryMetadata { + + /** + * Constructs a new MessageHistoryMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.IMessageHistoryMetadata); + + /** MessageHistoryMetadata historyReceivers. */ + public historyReceivers: string[]; + + /** MessageHistoryMetadata firstMessageTimestamp. */ + public firstMessageTimestamp?: (number|Long|null); + + /** MessageHistoryMetadata messageCount. */ + public messageCount?: (number|Long|null); + + /** + * Creates a new MessageHistoryMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns MessageHistoryMetadata instance + */ + public static create(properties?: proto.Message.IMessageHistoryMetadata): proto.Message.MessageHistoryMetadata; + + /** + * Encodes the specified MessageHistoryMetadata message. Does not implicitly {@link proto.Message.MessageHistoryMetadata.verify|verify} messages. + * @param message MessageHistoryMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.IMessageHistoryMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MessageHistoryMetadata message, length delimited. Does not implicitly {@link proto.Message.MessageHistoryMetadata.verify|verify} messages. + * @param message MessageHistoryMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.IMessageHistoryMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MessageHistoryMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MessageHistoryMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.MessageHistoryMetadata; + + /** + * Decodes a MessageHistoryMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MessageHistoryMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.MessageHistoryMetadata; + + /** + * Verifies a MessageHistoryMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MessageHistoryMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MessageHistoryMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.Message.MessageHistoryMetadata; + + /** + * Creates a plain object from a MessageHistoryMetadata message. Also converts values to other types if specified. + * @param message MessageHistoryMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.MessageHistoryMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MessageHistoryMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MessageHistoryMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a MessageHistoryNotice. */ + interface IMessageHistoryNotice { + + /** MessageHistoryNotice contextInfo */ + contextInfo?: (proto.IContextInfo|null); + + /** MessageHistoryNotice messageHistoryMetadata */ + messageHistoryMetadata?: (proto.Message.IMessageHistoryMetadata|null); + } + + /** Represents a MessageHistoryNotice. */ + class MessageHistoryNotice implements IMessageHistoryNotice { + + /** + * Constructs a new MessageHistoryNotice. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.IMessageHistoryNotice); + + /** MessageHistoryNotice contextInfo. */ + public contextInfo?: (proto.IContextInfo|null); + + /** MessageHistoryNotice messageHistoryMetadata. */ + public messageHistoryMetadata?: (proto.Message.IMessageHistoryMetadata|null); + + /** + * Creates a new MessageHistoryNotice instance using the specified properties. + * @param [properties] Properties to set + * @returns MessageHistoryNotice instance + */ + public static create(properties?: proto.Message.IMessageHistoryNotice): proto.Message.MessageHistoryNotice; + + /** + * Encodes the specified MessageHistoryNotice message. Does not implicitly {@link proto.Message.MessageHistoryNotice.verify|verify} messages. + * @param message MessageHistoryNotice message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.IMessageHistoryNotice, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified MessageHistoryNotice message, length delimited. Does not implicitly {@link proto.Message.MessageHistoryNotice.verify|verify} messages. + * @param message MessageHistoryNotice message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.IMessageHistoryNotice, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a MessageHistoryNotice message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MessageHistoryNotice + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.MessageHistoryNotice; + + /** + * Decodes a MessageHistoryNotice message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MessageHistoryNotice + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.MessageHistoryNotice; + + /** + * Verifies a MessageHistoryNotice message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a MessageHistoryNotice message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MessageHistoryNotice + */ + public static fromObject(object: { [k: string]: any }): proto.Message.MessageHistoryNotice; + + /** + * Creates a plain object from a MessageHistoryNotice message. Also converts values to other types if specified. + * @param message MessageHistoryNotice + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.MessageHistoryNotice, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MessageHistoryNotice to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MessageHistoryNotice + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a NewsletterAdminInviteMessage. */ interface INewsletterAdminInviteMessage { @@ -26615,6 +28667,9 @@ export namespace proto { /** OrderMessage orderRequestMessageId */ orderRequestMessageId?: (proto.IMessageKey|null); + + /** OrderMessage catalogType */ + catalogType?: (string|null); } /** Represents an OrderMessage. */ @@ -26668,6 +28723,9 @@ export namespace proto { /** OrderMessage orderRequestMessageId. */ public orderRequestMessageId?: (proto.IMessageKey|null); + /** OrderMessage catalogType. */ + public catalogType?: (string|null); + /** * Creates a new OrderMessage instance using the specified properties. * @param [properties] Properties to set @@ -26875,6 +28933,315 @@ export namespace proto { } } + /** Properties of a PaymentLinkMetadata. */ + interface IPaymentLinkMetadata { + + /** PaymentLinkMetadata button */ + button?: (proto.Message.PaymentLinkMetadata.IPaymentLinkButton|null); + + /** PaymentLinkMetadata header */ + header?: (proto.Message.PaymentLinkMetadata.IPaymentLinkHeader|null); + } + + /** Represents a PaymentLinkMetadata. */ + class PaymentLinkMetadata implements IPaymentLinkMetadata { + + /** + * Constructs a new PaymentLinkMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.IPaymentLinkMetadata); + + /** PaymentLinkMetadata button. */ + public button?: (proto.Message.PaymentLinkMetadata.IPaymentLinkButton|null); + + /** PaymentLinkMetadata header. */ + public header?: (proto.Message.PaymentLinkMetadata.IPaymentLinkHeader|null); + + /** + * Creates a new PaymentLinkMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns PaymentLinkMetadata instance + */ + public static create(properties?: proto.Message.IPaymentLinkMetadata): proto.Message.PaymentLinkMetadata; + + /** + * Encodes the specified PaymentLinkMetadata message. Does not implicitly {@link proto.Message.PaymentLinkMetadata.verify|verify} messages. + * @param message PaymentLinkMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.IPaymentLinkMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PaymentLinkMetadata message, length delimited. Does not implicitly {@link proto.Message.PaymentLinkMetadata.verify|verify} messages. + * @param message PaymentLinkMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.IPaymentLinkMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PaymentLinkMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PaymentLinkMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.PaymentLinkMetadata; + + /** + * Decodes a PaymentLinkMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PaymentLinkMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.PaymentLinkMetadata; + + /** + * Verifies a PaymentLinkMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PaymentLinkMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PaymentLinkMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.Message.PaymentLinkMetadata; + + /** + * Creates a plain object from a PaymentLinkMetadata message. Also converts values to other types if specified. + * @param message PaymentLinkMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.PaymentLinkMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PaymentLinkMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PaymentLinkMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace PaymentLinkMetadata { + + /** Properties of a PaymentLinkButton. */ + interface IPaymentLinkButton { + + /** PaymentLinkButton displayText */ + displayText?: (string|null); + } + + /** Represents a PaymentLinkButton. */ + class PaymentLinkButton implements IPaymentLinkButton { + + /** + * Constructs a new PaymentLinkButton. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.PaymentLinkMetadata.IPaymentLinkButton); + + /** PaymentLinkButton displayText. */ + public displayText?: (string|null); + + /** + * Creates a new PaymentLinkButton instance using the specified properties. + * @param [properties] Properties to set + * @returns PaymentLinkButton instance + */ + public static create(properties?: proto.Message.PaymentLinkMetadata.IPaymentLinkButton): proto.Message.PaymentLinkMetadata.PaymentLinkButton; + + /** + * Encodes the specified PaymentLinkButton message. Does not implicitly {@link proto.Message.PaymentLinkMetadata.PaymentLinkButton.verify|verify} messages. + * @param message PaymentLinkButton message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.PaymentLinkMetadata.IPaymentLinkButton, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PaymentLinkButton message, length delimited. Does not implicitly {@link proto.Message.PaymentLinkMetadata.PaymentLinkButton.verify|verify} messages. + * @param message PaymentLinkButton message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.PaymentLinkMetadata.IPaymentLinkButton, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PaymentLinkButton message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PaymentLinkButton + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.PaymentLinkMetadata.PaymentLinkButton; + + /** + * Decodes a PaymentLinkButton message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PaymentLinkButton + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.PaymentLinkMetadata.PaymentLinkButton; + + /** + * Verifies a PaymentLinkButton message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PaymentLinkButton message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PaymentLinkButton + */ + public static fromObject(object: { [k: string]: any }): proto.Message.PaymentLinkMetadata.PaymentLinkButton; + + /** + * Creates a plain object from a PaymentLinkButton message. Also converts values to other types if specified. + * @param message PaymentLinkButton + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.PaymentLinkMetadata.PaymentLinkButton, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PaymentLinkButton to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PaymentLinkButton + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a PaymentLinkHeader. */ + interface IPaymentLinkHeader { + + /** PaymentLinkHeader headerType */ + headerType?: (proto.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType|null); + } + + /** Represents a PaymentLinkHeader. */ + class PaymentLinkHeader implements IPaymentLinkHeader { + + /** + * Constructs a new PaymentLinkHeader. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.PaymentLinkMetadata.IPaymentLinkHeader); + + /** PaymentLinkHeader headerType. */ + public headerType?: (proto.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType|null); + + /** + * Creates a new PaymentLinkHeader instance using the specified properties. + * @param [properties] Properties to set + * @returns PaymentLinkHeader instance + */ + public static create(properties?: proto.Message.PaymentLinkMetadata.IPaymentLinkHeader): proto.Message.PaymentLinkMetadata.PaymentLinkHeader; + + /** + * Encodes the specified PaymentLinkHeader message. Does not implicitly {@link proto.Message.PaymentLinkMetadata.PaymentLinkHeader.verify|verify} messages. + * @param message PaymentLinkHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.PaymentLinkMetadata.IPaymentLinkHeader, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PaymentLinkHeader message, length delimited. Does not implicitly {@link proto.Message.PaymentLinkMetadata.PaymentLinkHeader.verify|verify} messages. + * @param message PaymentLinkHeader message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.PaymentLinkMetadata.IPaymentLinkHeader, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PaymentLinkHeader message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PaymentLinkHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.PaymentLinkMetadata.PaymentLinkHeader; + + /** + * Decodes a PaymentLinkHeader message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PaymentLinkHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.PaymentLinkMetadata.PaymentLinkHeader; + + /** + * Verifies a PaymentLinkHeader message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PaymentLinkHeader message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PaymentLinkHeader + */ + public static fromObject(object: { [k: string]: any }): proto.Message.PaymentLinkMetadata.PaymentLinkHeader; + + /** + * Creates a plain object from a PaymentLinkHeader message. Also converts values to other types if specified. + * @param message PaymentLinkHeader + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.PaymentLinkMetadata.PaymentLinkHeader, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PaymentLinkHeader to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PaymentLinkHeader + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace PaymentLinkHeader { + + /** PaymentLinkHeaderType enum. */ + enum PaymentLinkHeaderType { + LINK_PREVIEW = 0, + ORDER = 1 + } + } + } + /** Properties of a PeerDataOperationRequestMessage. */ interface IPeerDataOperationRequestMessage { @@ -26895,6 +29262,9 @@ export namespace proto { /** PeerDataOperationRequestMessage fullHistorySyncOnDemandRequest */ fullHistorySyncOnDemandRequest?: (proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest|null); + + /** PeerDataOperationRequestMessage syncdCollectionFatalRecoveryRequest */ + syncdCollectionFatalRecoveryRequest?: (proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest|null); } /** Represents a PeerDataOperationRequestMessage. */ @@ -26924,6 +29294,9 @@ export namespace proto { /** PeerDataOperationRequestMessage fullHistorySyncOnDemandRequest. */ public fullHistorySyncOnDemandRequest?: (proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest|null); + /** PeerDataOperationRequestMessage syncdCollectionFatalRecoveryRequest. */ + public syncdCollectionFatalRecoveryRequest?: (proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest|null); + /** * Creates a new PeerDataOperationRequestMessage instance using the specified properties. * @param [properties] Properties to set @@ -27530,6 +29903,109 @@ export namespace proto { */ public static getTypeUrl(typeUrlPrefix?: string): string; } + + /** Properties of a SyncDCollectionFatalRecoveryRequest. */ + interface ISyncDCollectionFatalRecoveryRequest { + + /** SyncDCollectionFatalRecoveryRequest collectionName */ + collectionName?: (string|null); + + /** SyncDCollectionFatalRecoveryRequest timestamp */ + timestamp?: (number|Long|null); + } + + /** Represents a SyncDCollectionFatalRecoveryRequest. */ + class SyncDCollectionFatalRecoveryRequest implements ISyncDCollectionFatalRecoveryRequest { + + /** + * Constructs a new SyncDCollectionFatalRecoveryRequest. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest); + + /** SyncDCollectionFatalRecoveryRequest collectionName. */ + public collectionName?: (string|null); + + /** SyncDCollectionFatalRecoveryRequest timestamp. */ + public timestamp?: (number|Long|null); + + /** + * Creates a new SyncDCollectionFatalRecoveryRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns SyncDCollectionFatalRecoveryRequest instance + */ + public static create(properties?: proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest): proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest; + + /** + * Encodes the specified SyncDCollectionFatalRecoveryRequest message. Does not implicitly {@link proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.verify|verify} messages. + * @param message SyncDCollectionFatalRecoveryRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SyncDCollectionFatalRecoveryRequest message, length delimited. Does not implicitly {@link proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.verify|verify} messages. + * @param message SyncDCollectionFatalRecoveryRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SyncDCollectionFatalRecoveryRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SyncDCollectionFatalRecoveryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest; + + /** + * Decodes a SyncDCollectionFatalRecoveryRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SyncDCollectionFatalRecoveryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest; + + /** + * Verifies a SyncDCollectionFatalRecoveryRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SyncDCollectionFatalRecoveryRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SyncDCollectionFatalRecoveryRequest + */ + public static fromObject(object: { [k: string]: any }): proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest; + + /** + * Creates a plain object from a SyncDCollectionFatalRecoveryRequest message. Also converts values to other types if specified. + * @param message SyncDCollectionFatalRecoveryRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SyncDCollectionFatalRecoveryRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SyncDCollectionFatalRecoveryRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } /** Properties of a PeerDataOperationRequestResponseMessage. */ @@ -27666,6 +30142,9 @@ export namespace proto { /** PeerDataOperationResult companionMetaNonceFetchRequestResponse */ companionMetaNonceFetchRequestResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ICompanionMetaNonceFetchResponse|null); + + /** PeerDataOperationResult syncdSnapshotFatalRecoveryResponse */ + syncdSnapshotFatalRecoveryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse|null); } /** Represents a PeerDataOperationResult. */ @@ -27698,6 +30177,9 @@ export namespace proto { /** PeerDataOperationResult companionMetaNonceFetchRequestResponse. */ public companionMetaNonceFetchRequestResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ICompanionMetaNonceFetchResponse|null); + /** PeerDataOperationResult syncdSnapshotFatalRecoveryResponse. */ + public syncdSnapshotFatalRecoveryResponse?: (proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse|null); + /** * Creates a new PeerDataOperationResult instance using the specified properties. * @param [properties] Properties to set @@ -28355,6 +30837,109 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a SyncDSnapshotFatalRecoveryResponse. */ + interface ISyncDSnapshotFatalRecoveryResponse { + + /** SyncDSnapshotFatalRecoveryResponse collectionSnapshot */ + collectionSnapshot?: (Uint8Array|null); + + /** SyncDSnapshotFatalRecoveryResponse isCompressed */ + isCompressed?: (boolean|null); + } + + /** Represents a SyncDSnapshotFatalRecoveryResponse. */ + class SyncDSnapshotFatalRecoveryResponse implements ISyncDSnapshotFatalRecoveryResponse { + + /** + * Constructs a new SyncDSnapshotFatalRecoveryResponse. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse); + + /** SyncDSnapshotFatalRecoveryResponse collectionSnapshot. */ + public collectionSnapshot?: (Uint8Array|null); + + /** SyncDSnapshotFatalRecoveryResponse isCompressed. */ + public isCompressed?: (boolean|null); + + /** + * Creates a new SyncDSnapshotFatalRecoveryResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns SyncDSnapshotFatalRecoveryResponse instance + */ + public static create(properties?: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse; + + /** + * Encodes the specified SyncDSnapshotFatalRecoveryResponse message. Does not implicitly {@link proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.verify|verify} messages. + * @param message SyncDSnapshotFatalRecoveryResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SyncDSnapshotFatalRecoveryResponse message, length delimited. Does not implicitly {@link proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.verify|verify} messages. + * @param message SyncDSnapshotFatalRecoveryResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SyncDSnapshotFatalRecoveryResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SyncDSnapshotFatalRecoveryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse; + + /** + * Decodes a SyncDSnapshotFatalRecoveryResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SyncDSnapshotFatalRecoveryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse; + + /** + * Verifies a SyncDSnapshotFatalRecoveryResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SyncDSnapshotFatalRecoveryResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SyncDSnapshotFatalRecoveryResponse + */ + public static fromObject(object: { [k: string]: any }): proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse; + + /** + * Creates a plain object from a SyncDSnapshotFatalRecoveryResponse message. Also converts values to other types if specified. + * @param message SyncDSnapshotFatalRecoveryResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SyncDSnapshotFatalRecoveryResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SyncDSnapshotFatalRecoveryResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a WaffleNonceFetchResponse. */ interface IWaffleNonceFetchResponse { @@ -28469,7 +31054,8 @@ export namespace proto { PLACEHOLDER_MESSAGE_RESEND = 4, WAFFLE_LINKING_NONCE_FETCH = 5, FULL_HISTORY_SYNC_ON_DEMAND = 6, - COMPANION_META_NONCE_FETCH = 7 + COMPANION_META_NONCE_FETCH = 7, + COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY = 8 } /** Properties of a PinInChatMessage. */ @@ -30042,6 +32628,15 @@ export namespace proto { /** ProtocolMessage limitSharing */ limitSharing?: (proto.ILimitSharing|null); + + /** ProtocolMessage aiPsiMetadata */ + aiPsiMetadata?: (Uint8Array|null); + + /** ProtocolMessage aiQueryFanout */ + aiQueryFanout?: (proto.IAIQueryFanout|null); + + /** ProtocolMessage memberLabel */ + memberLabel?: (proto.IMemberLabel|null); } /** Represents a ProtocolMessage. */ @@ -30116,6 +32711,15 @@ export namespace proto { /** ProtocolMessage limitSharing. */ public limitSharing?: (proto.ILimitSharing|null); + /** ProtocolMessage aiPsiMetadata. */ + public aiPsiMetadata?: (Uint8Array|null); + + /** ProtocolMessage aiQueryFanout. */ + public aiQueryFanout?: (proto.IAIQueryFanout|null); + + /** ProtocolMessage memberLabel. */ + public memberLabel?: (proto.IMemberLabel|null); + /** * Creates a new ProtocolMessage instance using the specified properties. * @param [properties] Properties to set @@ -30220,7 +32824,10 @@ export namespace proto { BOT_MEMU_ONBOARDING_MESSAGE = 24, STATUS_MENTION_MESSAGE = 25, STOP_GENERATION_MESSAGE = 26, - LIMIT_SHARING = 27 + LIMIT_SHARING = 27, + AI_PSI_METADATA = 28, + AI_QUERY_FANOUT = 29, + GROUP_MEMBER_LABEL_CHANGE = 30 } } @@ -31026,7 +33633,8 @@ export namespace proto { /** SecretEncType enum. */ enum SecretEncType { UNKNOWN = 0, - EVENT_EDIT = 1 + EVENT_EDIT = 1, + MESSAGE_EDIT = 2 } } @@ -32591,6 +35199,103 @@ export namespace proto { } } + /** Properties of a URLMetadata. */ + interface IURLMetadata { + + /** URLMetadata fbExperimentId */ + fbExperimentId?: (number|null); + } + + /** Represents a URLMetadata. */ + class URLMetadata implements IURLMetadata { + + /** + * Constructs a new URLMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: proto.Message.IURLMetadata); + + /** URLMetadata fbExperimentId. */ + public fbExperimentId?: (number|null); + + /** + * Creates a new URLMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns URLMetadata instance + */ + public static create(properties?: proto.Message.IURLMetadata): proto.Message.URLMetadata; + + /** + * Encodes the specified URLMetadata message. Does not implicitly {@link proto.Message.URLMetadata.verify|verify} messages. + * @param message URLMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.Message.IURLMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified URLMetadata message, length delimited. Does not implicitly {@link proto.Message.URLMetadata.verify|verify} messages. + * @param message URLMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.Message.IURLMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a URLMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns URLMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.Message.URLMetadata; + + /** + * Decodes a URLMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns URLMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.Message.URLMetadata; + + /** + * Verifies a URLMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a URLMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns URLMetadata + */ + public static fromObject(object: { [k: string]: any }): proto.Message.URLMetadata; + + /** + * Creates a plain object from a URLMetadata message. Also converts values to other types if specified. + * @param message URLMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.Message.URLMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this URLMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for URLMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a VideoMessage. */ interface IVideoMessage { @@ -33228,12 +35933,15 @@ export namespace proto { EVENT_COVER_IMAGE = 3, STATUS_POLL = 4, HD_VIDEO_DUAL_UPLOAD = 5, - STATUS_TAPPABLE_MESSAGE = 6, + STATUS_EXTERNAL_RESHARE = 6, MEDIA_POLL = 7, STATUS_ADD_YOURS = 8, STATUS_NOTIFICATION = 9, HD_IMAGE_DUAL_UPLOAD = 10, - STICKER_ANNOTATION = 11 + STICKER_ANNOTATION = 11, + MOTION_PHOTO = 12, + STATUS_LINK_ACTION = 13, + VIEW_ALL_REPLIES = 14 } } @@ -33275,6 +35983,12 @@ export namespace proto { /** MessageContextInfo supportPayload */ supportPayload?: (string|null); + + /** MessageContextInfo limitSharing */ + limitSharing?: (proto.ILimitSharing|null); + + /** MessageContextInfo limitSharingV2 */ + limitSharingV2?: (proto.ILimitSharing|null); } /** Represents a MessageContextInfo. */ @@ -33322,6 +36036,12 @@ export namespace proto { /** MessageContextInfo supportPayload. */ public supportPayload?: (string|null); + /** MessageContextInfo limitSharing. */ + public limitSharing?: (proto.ILimitSharing|null); + + /** MessageContextInfo limitSharingV2. */ + public limitSharingV2?: (proto.ILimitSharing|null); + /** * Creates a new MessageContextInfo instance using the specified properties. * @param [properties] Properties to set @@ -33858,6 +36578,9 @@ export namespace proto { /** MsgOpaqueData eventEndTime */ eventEndTime?: (number|Long|null); + + /** MsgOpaqueData plainProtobufBytes */ + plainProtobufBytes?: (Uint8Array|null); } /** Represents a MsgOpaqueData. */ @@ -33983,6 +36706,9 @@ export namespace proto { /** MsgOpaqueData eventEndTime. */ public eventEndTime?: (number|Long|null); + /** MsgOpaqueData plainProtobufBytes. */ + public plainProtobufBytes?: (Uint8Array|null); + /** * Creates a new MsgOpaqueData instance using the specified properties. * @param [properties] Properties to set @@ -40677,6 +43403,15 @@ export namespace proto { /** SyncActionValue notificationActivitySettingAction */ notificationActivitySettingAction?: (proto.SyncActionValue.INotificationActivitySettingAction|null); + + /** SyncActionValue lidContactAction */ + lidContactAction?: (proto.SyncActionValue.ILidContactAction|null); + + /** SyncActionValue ctwaPerCustomerDataSharingAction */ + ctwaPerCustomerDataSharingAction?: (proto.SyncActionValue.ICtwaPerCustomerDataSharingAction|null); + + /** SyncActionValue paymentTosAction */ + paymentTosAction?: (proto.SyncActionValue.IPaymentTosAction|null); } /** Represents a SyncActionValue. */ @@ -40850,6 +43585,15 @@ export namespace proto { /** SyncActionValue notificationActivitySettingAction. */ public notificationActivitySettingAction?: (proto.SyncActionValue.INotificationActivitySettingAction|null); + /** SyncActionValue lidContactAction. */ + public lidContactAction?: (proto.SyncActionValue.ILidContactAction|null); + + /** SyncActionValue ctwaPerCustomerDataSharingAction. */ + public ctwaPerCustomerDataSharingAction?: (proto.SyncActionValue.ICtwaPerCustomerDataSharingAction|null); + + /** SyncActionValue paymentTosAction. */ + public paymentTosAction?: (proto.SyncActionValue.IPaymentTosAction|null); + /** * Creates a new SyncActionValue instance using the specified properties. * @param [properties] Properties to set @@ -41738,6 +44482,12 @@ export namespace proto { /** ContactAction saveOnPrimaryAddressbook */ saveOnPrimaryAddressbook?: (boolean|null); + + /** ContactAction pnJid */ + pnJid?: (string|null); + + /** ContactAction username */ + username?: (string|null); } /** Represents a ContactAction. */ @@ -41761,6 +44511,12 @@ export namespace proto { /** ContactAction saveOnPrimaryAddressbook. */ public saveOnPrimaryAddressbook?: (boolean|null); + /** ContactAction pnJid. */ + public pnJid?: (string|null); + + /** ContactAction username. */ + public username?: (string|null); + /** * Creates a new ContactAction instance using the specified properties. * @param [properties] Properties to set @@ -41839,6 +44595,103 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a CtwaPerCustomerDataSharingAction. */ + interface ICtwaPerCustomerDataSharingAction { + + /** CtwaPerCustomerDataSharingAction isCtwaPerCustomerDataSharingEnabled */ + isCtwaPerCustomerDataSharingEnabled?: (boolean|null); + } + + /** Represents a CtwaPerCustomerDataSharingAction. */ + class CtwaPerCustomerDataSharingAction implements ICtwaPerCustomerDataSharingAction { + + /** + * Constructs a new CtwaPerCustomerDataSharingAction. + * @param [properties] Properties to set + */ + constructor(properties?: proto.SyncActionValue.ICtwaPerCustomerDataSharingAction); + + /** CtwaPerCustomerDataSharingAction isCtwaPerCustomerDataSharingEnabled. */ + public isCtwaPerCustomerDataSharingEnabled?: (boolean|null); + + /** + * Creates a new CtwaPerCustomerDataSharingAction instance using the specified properties. + * @param [properties] Properties to set + * @returns CtwaPerCustomerDataSharingAction instance + */ + public static create(properties?: proto.SyncActionValue.ICtwaPerCustomerDataSharingAction): proto.SyncActionValue.CtwaPerCustomerDataSharingAction; + + /** + * Encodes the specified CtwaPerCustomerDataSharingAction message. Does not implicitly {@link proto.SyncActionValue.CtwaPerCustomerDataSharingAction.verify|verify} messages. + * @param message CtwaPerCustomerDataSharingAction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.SyncActionValue.ICtwaPerCustomerDataSharingAction, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CtwaPerCustomerDataSharingAction message, length delimited. Does not implicitly {@link proto.SyncActionValue.CtwaPerCustomerDataSharingAction.verify|verify} messages. + * @param message CtwaPerCustomerDataSharingAction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.SyncActionValue.ICtwaPerCustomerDataSharingAction, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CtwaPerCustomerDataSharingAction message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CtwaPerCustomerDataSharingAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.SyncActionValue.CtwaPerCustomerDataSharingAction; + + /** + * Decodes a CtwaPerCustomerDataSharingAction message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CtwaPerCustomerDataSharingAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.SyncActionValue.CtwaPerCustomerDataSharingAction; + + /** + * Verifies a CtwaPerCustomerDataSharingAction message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CtwaPerCustomerDataSharingAction message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CtwaPerCustomerDataSharingAction + */ + public static fromObject(object: { [k: string]: any }): proto.SyncActionValue.CtwaPerCustomerDataSharingAction; + + /** + * Creates a plain object from a CtwaPerCustomerDataSharingAction message. Also converts values to other types if specified. + * @param message CtwaPerCustomerDataSharingAction + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.SyncActionValue.CtwaPerCustomerDataSharingAction, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CtwaPerCustomerDataSharingAction to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CtwaPerCustomerDataSharingAction + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a CustomPaymentMethod. */ interface ICustomPaymentMethod { @@ -42968,6 +45821,9 @@ export namespace proto { /** LabelEditAction type */ type?: (proto.SyncActionValue.LabelEditAction.ListType|null); + + /** LabelEditAction isImmutable */ + isImmutable?: (boolean|null); } /** Represents a LabelEditAction. */ @@ -43000,6 +45856,9 @@ export namespace proto { /** LabelEditAction type. */ public type?: (proto.SyncActionValue.LabelEditAction.ListType|null); + /** LabelEditAction isImmutable. */ + public isImmutable?: (boolean|null); + /** * Creates a new LabelEditAction instance using the specified properties. * @param [properties] Properties to set @@ -43087,7 +45946,9 @@ export namespace proto { GROUPS = 2, FAVORITES = 3, PREDEFINED = 4, - CUSTOM = 5 + CUSTOM = 5, + COMMUNITY = 6, + SERVER_ASSIGNED = 7 } } @@ -43188,6 +46049,121 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a LidContactAction. */ + interface ILidContactAction { + + /** LidContactAction fullName */ + fullName?: (string|null); + + /** LidContactAction firstName */ + firstName?: (string|null); + + /** LidContactAction username */ + username?: (string|null); + + /** LidContactAction saveOnPrimaryAddressbook */ + saveOnPrimaryAddressbook?: (boolean|null); + } + + /** Represents a LidContactAction. */ + class LidContactAction implements ILidContactAction { + + /** + * Constructs a new LidContactAction. + * @param [properties] Properties to set + */ + constructor(properties?: proto.SyncActionValue.ILidContactAction); + + /** LidContactAction fullName. */ + public fullName?: (string|null); + + /** LidContactAction firstName. */ + public firstName?: (string|null); + + /** LidContactAction username. */ + public username?: (string|null); + + /** LidContactAction saveOnPrimaryAddressbook. */ + public saveOnPrimaryAddressbook?: (boolean|null); + + /** + * Creates a new LidContactAction instance using the specified properties. + * @param [properties] Properties to set + * @returns LidContactAction instance + */ + public static create(properties?: proto.SyncActionValue.ILidContactAction): proto.SyncActionValue.LidContactAction; + + /** + * Encodes the specified LidContactAction message. Does not implicitly {@link proto.SyncActionValue.LidContactAction.verify|verify} messages. + * @param message LidContactAction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.SyncActionValue.ILidContactAction, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified LidContactAction message, length delimited. Does not implicitly {@link proto.SyncActionValue.LidContactAction.verify|verify} messages. + * @param message LidContactAction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.SyncActionValue.ILidContactAction, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a LidContactAction message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns LidContactAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.SyncActionValue.LidContactAction; + + /** + * Decodes a LidContactAction message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns LidContactAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.SyncActionValue.LidContactAction; + + /** + * Verifies a LidContactAction message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a LidContactAction message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns LidContactAction + */ + public static fromObject(object: { [k: string]: any }): proto.SyncActionValue.LidContactAction; + + /** + * Creates a plain object from a LidContactAction message. Also converts values to other types if specified. + * @param message LidContactAction + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.SyncActionValue.LidContactAction, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this LidContactAction to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for LidContactAction + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a LocaleSetting. */ interface ILocaleSetting { @@ -44388,6 +47364,117 @@ export namespace proto { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a PaymentTosAction. */ + interface IPaymentTosAction { + + /** PaymentTosAction paymentNotice */ + paymentNotice: proto.SyncActionValue.PaymentTosAction.PaymentNotice; + + /** PaymentTosAction accepted */ + accepted: boolean; + } + + /** Represents a PaymentTosAction. */ + class PaymentTosAction implements IPaymentTosAction { + + /** + * Constructs a new PaymentTosAction. + * @param [properties] Properties to set + */ + constructor(properties?: proto.SyncActionValue.IPaymentTosAction); + + /** PaymentTosAction paymentNotice. */ + public paymentNotice: proto.SyncActionValue.PaymentTosAction.PaymentNotice; + + /** PaymentTosAction accepted. */ + public accepted: boolean; + + /** + * Creates a new PaymentTosAction instance using the specified properties. + * @param [properties] Properties to set + * @returns PaymentTosAction instance + */ + public static create(properties?: proto.SyncActionValue.IPaymentTosAction): proto.SyncActionValue.PaymentTosAction; + + /** + * Encodes the specified PaymentTosAction message. Does not implicitly {@link proto.SyncActionValue.PaymentTosAction.verify|verify} messages. + * @param message PaymentTosAction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: proto.SyncActionValue.IPaymentTosAction, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified PaymentTosAction message, length delimited. Does not implicitly {@link proto.SyncActionValue.PaymentTosAction.verify|verify} messages. + * @param message PaymentTosAction message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: proto.SyncActionValue.IPaymentTosAction, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PaymentTosAction message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PaymentTosAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): proto.SyncActionValue.PaymentTosAction; + + /** + * Decodes a PaymentTosAction message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns PaymentTosAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): proto.SyncActionValue.PaymentTosAction; + + /** + * Verifies a PaymentTosAction message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a PaymentTosAction message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns PaymentTosAction + */ + public static fromObject(object: { [k: string]: any }): proto.SyncActionValue.PaymentTosAction; + + /** + * Creates a plain object from a PaymentTosAction message. Also converts values to other types if specified. + * @param message PaymentTosAction + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: proto.SyncActionValue.PaymentTosAction, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this PaymentTosAction to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for PaymentTosAction + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace PaymentTosAction { + + /** PaymentNotice enum. */ + enum PaymentNotice { + BR_PAY_PRIVACY_POLICY = 0 + } + } + /** Properties of a PinAction. */ interface IPinAction { @@ -50262,7 +53349,10 @@ export namespace proto { SUPPORT_SYSTEM_MESSAGE = 212, CHANGE_LID = 213, BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE = 214, - BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE = 215 + BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE = 215, + CHANGE_LIMIT_SHARING = 216, + GROUP_MEMBER_LINK_MODE = 217, + BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE = 218 } } diff --git a/WAProto/index.js b/WAProto/index.js index d4ecfca..342f79c 100644 --- a/WAProto/index.js +++ b/WAProto/index.js @@ -1745,6 +1745,310 @@ $root.proto = (function() { return ADVSignedKeyIndexList; })(); + proto.AIQueryFanout = (function() { + + /** + * Properties of a AIQueryFanout. + * @memberof proto + * @interface IAIQueryFanout + * @property {proto.IMessageKey|null} [messageKey] AIQueryFanout messageKey + * @property {proto.IMessage|null} [message] AIQueryFanout message + * @property {number|Long|null} [timestamp] AIQueryFanout timestamp + */ + + /** + * Constructs a new AIQueryFanout. + * @memberof proto + * @classdesc Represents a AIQueryFanout. + * @implements IAIQueryFanout + * @constructor + * @param {proto.IAIQueryFanout=} [properties] Properties to set + */ + function AIQueryFanout(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * AIQueryFanout messageKey. + * @member {proto.IMessageKey|null|undefined} messageKey + * @memberof proto.AIQueryFanout + * @instance + */ + AIQueryFanout.prototype.messageKey = null; + + /** + * AIQueryFanout message. + * @member {proto.IMessage|null|undefined} message + * @memberof proto.AIQueryFanout + * @instance + */ + AIQueryFanout.prototype.message = null; + + /** + * AIQueryFanout timestamp. + * @member {number|Long|null|undefined} timestamp + * @memberof proto.AIQueryFanout + * @instance + */ + AIQueryFanout.prototype.timestamp = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(AIQueryFanout.prototype, "_messageKey", { + get: $util.oneOfGetter($oneOfFields = ["messageKey"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(AIQueryFanout.prototype, "_message", { + get: $util.oneOfGetter($oneOfFields = ["message"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(AIQueryFanout.prototype, "_timestamp", { + get: $util.oneOfGetter($oneOfFields = ["timestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new AIQueryFanout instance using the specified properties. + * @function create + * @memberof proto.AIQueryFanout + * @static + * @param {proto.IAIQueryFanout=} [properties] Properties to set + * @returns {proto.AIQueryFanout} AIQueryFanout instance + */ + AIQueryFanout.create = function create(properties) { + return new AIQueryFanout(properties); + }; + + /** + * Encodes the specified AIQueryFanout message. Does not implicitly {@link proto.AIQueryFanout.verify|verify} messages. + * @function encode + * @memberof proto.AIQueryFanout + * @static + * @param {proto.IAIQueryFanout} message AIQueryFanout message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AIQueryFanout.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.messageKey != null && Object.hasOwnProperty.call(message, "messageKey")) + $root.proto.MessageKey.encode(message.messageKey, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.message != null && Object.hasOwnProperty.call(message, "message")) + $root.proto.Message.encode(message.message, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.timestamp != null && Object.hasOwnProperty.call(message, "timestamp")) + writer.uint32(/* id 3, wireType 0 =*/24).int64(message.timestamp); + return writer; + }; + + /** + * Encodes the specified AIQueryFanout message, length delimited. Does not implicitly {@link proto.AIQueryFanout.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.AIQueryFanout + * @static + * @param {proto.IAIQueryFanout} message AIQueryFanout message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AIQueryFanout.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a AIQueryFanout message from the specified reader or buffer. + * @function decode + * @memberof proto.AIQueryFanout + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.AIQueryFanout} AIQueryFanout + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AIQueryFanout.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.AIQueryFanout(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.messageKey = $root.proto.MessageKey.decode(reader, reader.uint32()); + break; + } + case 2: { + message.message = $root.proto.Message.decode(reader, reader.uint32()); + break; + } + case 3: { + message.timestamp = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a AIQueryFanout message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.AIQueryFanout + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.AIQueryFanout} AIQueryFanout + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AIQueryFanout.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a AIQueryFanout message. + * @function verify + * @memberof proto.AIQueryFanout + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AIQueryFanout.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.messageKey != null && message.hasOwnProperty("messageKey")) { + properties._messageKey = 1; + { + var error = $root.proto.MessageKey.verify(message.messageKey); + if (error) + return "messageKey." + error; + } + } + if (message.message != null && message.hasOwnProperty("message")) { + properties._message = 1; + { + var error = $root.proto.Message.verify(message.message); + if (error) + return "message." + error; + } + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) { + properties._timestamp = 1; + if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high))) + return "timestamp: integer|Long expected"; + } + return null; + }; + + /** + * Creates a AIQueryFanout message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.AIQueryFanout + * @static + * @param {Object.} object Plain object + * @returns {proto.AIQueryFanout} AIQueryFanout + */ + AIQueryFanout.fromObject = function fromObject(object) { + if (object instanceof $root.proto.AIQueryFanout) + return object; + var message = new $root.proto.AIQueryFanout(); + if (object.messageKey != null) { + if (typeof object.messageKey !== "object") + throw TypeError(".proto.AIQueryFanout.messageKey: object expected"); + message.messageKey = $root.proto.MessageKey.fromObject(object.messageKey); + } + if (object.message != null) { + if (typeof object.message !== "object") + throw TypeError(".proto.AIQueryFanout.message: object expected"); + message.message = $root.proto.Message.fromObject(object.message); + } + if (object.timestamp != null) + if ($util.Long) + (message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = false; + else if (typeof object.timestamp === "string") + message.timestamp = parseInt(object.timestamp, 10); + else if (typeof object.timestamp === "number") + message.timestamp = object.timestamp; + else if (typeof object.timestamp === "object") + message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from a AIQueryFanout message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.AIQueryFanout + * @static + * @param {proto.AIQueryFanout} message AIQueryFanout + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AIQueryFanout.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.messageKey != null && message.hasOwnProperty("messageKey")) { + object.messageKey = $root.proto.MessageKey.toObject(message.messageKey, options); + if (options.oneofs) + object._messageKey = "messageKey"; + } + if (message.message != null && message.hasOwnProperty("message")) { + object.message = $root.proto.Message.toObject(message.message, options); + if (options.oneofs) + object._message = "message"; + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) { + if (typeof message.timestamp === "number") + object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp; + else + object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber() : message.timestamp; + if (options.oneofs) + object._timestamp = "timestamp"; + } + return object; + }; + + /** + * Converts this AIQueryFanout to JSON. + * @function toJSON + * @memberof proto.AIQueryFanout + * @instance + * @returns {Object.} JSON object + */ + AIQueryFanout.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for AIQueryFanout + * @function getTypeUrl + * @memberof proto.AIQueryFanout + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + AIQueryFanout.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.AIQueryFanout"; + }; + + return AIQueryFanout; + })(); + proto.AIRichResponseMessage = (function() { /** @@ -1753,7 +2057,7 @@ $root.proto = (function() { * @interface IAIRichResponseMessage * @property {proto.AIRichResponseMessage.AIRichResponseMessageType|null} [messageType] AIRichResponseMessage messageType * @property {Array.|null} [submessages] AIRichResponseMessage submessages - * @property {proto.AIRichResponseMessage.IAIRichResponseAbstractData|null} [abstractData] AIRichResponseMessage abstractData + * @property {proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse|null} [unifiedResponse] AIRichResponseMessage unifiedResponse */ /** @@ -1789,12 +2093,12 @@ $root.proto = (function() { AIRichResponseMessage.prototype.submessages = $util.emptyArray; /** - * AIRichResponseMessage abstractData. - * @member {proto.AIRichResponseMessage.IAIRichResponseAbstractData|null|undefined} abstractData + * AIRichResponseMessage unifiedResponse. + * @member {proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse|null|undefined} unifiedResponse * @memberof proto.AIRichResponseMessage * @instance */ - AIRichResponseMessage.prototype.abstractData = null; + AIRichResponseMessage.prototype.unifiedResponse = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -1806,8 +2110,8 @@ $root.proto = (function() { }); // Virtual OneOf for proto3 optional field - Object.defineProperty(AIRichResponseMessage.prototype, "_abstractData", { - get: $util.oneOfGetter($oneOfFields = ["abstractData"]), + Object.defineProperty(AIRichResponseMessage.prototype, "_unifiedResponse", { + get: $util.oneOfGetter($oneOfFields = ["unifiedResponse"]), set: $util.oneOfSetter($oneOfFields) }); @@ -1840,8 +2144,8 @@ $root.proto = (function() { if (message.submessages != null && message.submessages.length) for (var i = 0; i < message.submessages.length; ++i) $root.proto.AIRichResponseMessage.AIRichResponseSubMessage.encode(message.submessages[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.abstractData != null && Object.hasOwnProperty.call(message, "abstractData")) - $root.proto.AIRichResponseMessage.AIRichResponseAbstractData.encode(message.abstractData, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.unifiedResponse != null && Object.hasOwnProperty.call(message, "unifiedResponse")) + $root.proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.encode(message.unifiedResponse, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -1887,7 +2191,7 @@ $root.proto = (function() { break; } case 3: { - message.abstractData = $root.proto.AIRichResponseMessage.AIRichResponseAbstractData.decode(reader, reader.uint32()); + message.unifiedResponse = $root.proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.decode(reader, reader.uint32()); break; } default: @@ -1945,12 +2249,12 @@ $root.proto = (function() { return "submessages." + error; } } - if (message.abstractData != null && message.hasOwnProperty("abstractData")) { - properties._abstractData = 1; + if (message.unifiedResponse != null && message.hasOwnProperty("unifiedResponse")) { + properties._unifiedResponse = 1; { - var error = $root.proto.AIRichResponseMessage.AIRichResponseAbstractData.verify(message.abstractData); + var error = $root.proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.verify(message.unifiedResponse); if (error) - return "abstractData." + error; + return "unifiedResponse." + error; } } return null; @@ -1994,10 +2298,10 @@ $root.proto = (function() { message.submessages[i] = $root.proto.AIRichResponseMessage.AIRichResponseSubMessage.fromObject(object.submessages[i]); } } - if (object.abstractData != null) { - if (typeof object.abstractData !== "object") - throw TypeError(".proto.AIRichResponseMessage.abstractData: object expected"); - message.abstractData = $root.proto.AIRichResponseMessage.AIRichResponseAbstractData.fromObject(object.abstractData); + if (object.unifiedResponse != null) { + if (typeof object.unifiedResponse !== "object") + throw TypeError(".proto.AIRichResponseMessage.unifiedResponse: object expected"); + message.unifiedResponse = $root.proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.fromObject(object.unifiedResponse); } return message; }; @@ -2027,10 +2331,10 @@ $root.proto = (function() { for (var j = 0; j < message.submessages.length; ++j) object.submessages[j] = $root.proto.AIRichResponseMessage.AIRichResponseSubMessage.toObject(message.submessages[j], options); } - if (message.abstractData != null && message.hasOwnProperty("abstractData")) { - object.abstractData = $root.proto.AIRichResponseMessage.AIRichResponseAbstractData.toObject(message.abstractData, options); + if (message.unifiedResponse != null && message.hasOwnProperty("unifiedResponse")) { + object.unifiedResponse = $root.proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.toObject(message.unifiedResponse, options); if (options.oneofs) - object._abstractData = "abstractData"; + object._unifiedResponse = "unifiedResponse"; } return object; }; @@ -2061,225 +2365,6 @@ $root.proto = (function() { return typeUrlPrefix + "/proto.AIRichResponseMessage"; }; - AIRichResponseMessage.AIRichResponseAbstractData = (function() { - - /** - * Properties of a AIRichResponseAbstractData. - * @memberof proto.AIRichResponseMessage - * @interface IAIRichResponseAbstractData - * @property {Uint8Array|null} [data] AIRichResponseAbstractData data - */ - - /** - * Constructs a new AIRichResponseAbstractData. - * @memberof proto.AIRichResponseMessage - * @classdesc Represents a AIRichResponseAbstractData. - * @implements IAIRichResponseAbstractData - * @constructor - * @param {proto.AIRichResponseMessage.IAIRichResponseAbstractData=} [properties] Properties to set - */ - function AIRichResponseAbstractData(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * AIRichResponseAbstractData data. - * @member {Uint8Array|null|undefined} data - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @instance - */ - AIRichResponseAbstractData.prototype.data = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; - - // Virtual OneOf for proto3 optional field - Object.defineProperty(AIRichResponseAbstractData.prototype, "_data", { - get: $util.oneOfGetter($oneOfFields = ["data"]), - set: $util.oneOfSetter($oneOfFields) - }); - - /** - * Creates a new AIRichResponseAbstractData instance using the specified properties. - * @function create - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {proto.AIRichResponseMessage.IAIRichResponseAbstractData=} [properties] Properties to set - * @returns {proto.AIRichResponseMessage.AIRichResponseAbstractData} AIRichResponseAbstractData instance - */ - AIRichResponseAbstractData.create = function create(properties) { - return new AIRichResponseAbstractData(properties); - }; - - /** - * Encodes the specified AIRichResponseAbstractData message. Does not implicitly {@link proto.AIRichResponseMessage.AIRichResponseAbstractData.verify|verify} messages. - * @function encode - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {proto.AIRichResponseMessage.IAIRichResponseAbstractData} message AIRichResponseAbstractData message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - AIRichResponseAbstractData.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.data != null && Object.hasOwnProperty.call(message, "data")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); - return writer; - }; - - /** - * Encodes the specified AIRichResponseAbstractData message, length delimited. Does not implicitly {@link proto.AIRichResponseMessage.AIRichResponseAbstractData.verify|verify} messages. - * @function encodeDelimited - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {proto.AIRichResponseMessage.IAIRichResponseAbstractData} message AIRichResponseAbstractData message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - AIRichResponseAbstractData.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a AIRichResponseAbstractData message from the specified reader or buffer. - * @function decode - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {proto.AIRichResponseMessage.AIRichResponseAbstractData} AIRichResponseAbstractData - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - AIRichResponseAbstractData.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.AIRichResponseMessage.AIRichResponseAbstractData(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.data = reader.bytes(); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a AIRichResponseAbstractData message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {proto.AIRichResponseMessage.AIRichResponseAbstractData} AIRichResponseAbstractData - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - AIRichResponseAbstractData.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a AIRichResponseAbstractData message. - * @function verify - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - AIRichResponseAbstractData.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.data != null && message.hasOwnProperty("data")) { - properties._data = 1; - if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) - return "data: buffer expected"; - } - return null; - }; - - /** - * Creates a AIRichResponseAbstractData message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {Object.} object Plain object - * @returns {proto.AIRichResponseMessage.AIRichResponseAbstractData} AIRichResponseAbstractData - */ - AIRichResponseAbstractData.fromObject = function fromObject(object) { - if (object instanceof $root.proto.AIRichResponseMessage.AIRichResponseAbstractData) - return object; - var message = new $root.proto.AIRichResponseMessage.AIRichResponseAbstractData(); - if (object.data != null) - if (typeof object.data === "string") - $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); - else if (object.data.length >= 0) - message.data = object.data; - return message; - }; - - /** - * Creates a plain object from a AIRichResponseAbstractData message. Also converts values to other types if specified. - * @function toObject - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {proto.AIRichResponseMessage.AIRichResponseAbstractData} message AIRichResponseAbstractData - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - AIRichResponseAbstractData.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.data != null && message.hasOwnProperty("data")) { - object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; - if (options.oneofs) - object._data = "data"; - } - return object; - }; - - /** - * Converts this AIRichResponseAbstractData to JSON. - * @function toJSON - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @instance - * @returns {Object.} JSON object - */ - AIRichResponseAbstractData.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Gets the default type url for AIRichResponseAbstractData - * @function getTypeUrl - * @memberof proto.AIRichResponseMessage.AIRichResponseAbstractData - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - AIRichResponseAbstractData.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/proto.AIRichResponseMessage.AIRichResponseAbstractData"; - }; - - return AIRichResponseAbstractData; - })(); - AIRichResponseMessage.AIRichResponseCodeMetadata = (function() { /** @@ -5231,6 +5316,10 @@ $root.proto = (function() { * @property {number|null} [width] AIRichResponseLatexExpression width * @property {number|null} [height] AIRichResponseLatexExpression height * @property {number|null} [fontHeight] AIRichResponseLatexExpression fontHeight + * @property {number|null} [imageTopPadding] AIRichResponseLatexExpression imageTopPadding + * @property {number|null} [imageLeadingPadding] AIRichResponseLatexExpression imageLeadingPadding + * @property {number|null} [imageBottomPadding] AIRichResponseLatexExpression imageBottomPadding + * @property {number|null} [imageTrailingPadding] AIRichResponseLatexExpression imageTrailingPadding */ /** @@ -5288,6 +5377,38 @@ $root.proto = (function() { */ AIRichResponseLatexExpression.prototype.fontHeight = null; + /** + * AIRichResponseLatexExpression imageTopPadding. + * @member {number|null|undefined} imageTopPadding + * @memberof proto.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpression + * @instance + */ + AIRichResponseLatexExpression.prototype.imageTopPadding = null; + + /** + * AIRichResponseLatexExpression imageLeadingPadding. + * @member {number|null|undefined} imageLeadingPadding + * @memberof proto.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpression + * @instance + */ + AIRichResponseLatexExpression.prototype.imageLeadingPadding = null; + + /** + * AIRichResponseLatexExpression imageBottomPadding. + * @member {number|null|undefined} imageBottomPadding + * @memberof proto.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpression + * @instance + */ + AIRichResponseLatexExpression.prototype.imageBottomPadding = null; + + /** + * AIRichResponseLatexExpression imageTrailingPadding. + * @member {number|null|undefined} imageTrailingPadding + * @memberof proto.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpression + * @instance + */ + AIRichResponseLatexExpression.prototype.imageTrailingPadding = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -5321,6 +5442,30 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(AIRichResponseLatexExpression.prototype, "_imageTopPadding", { + get: $util.oneOfGetter($oneOfFields = ["imageTopPadding"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(AIRichResponseLatexExpression.prototype, "_imageLeadingPadding", { + get: $util.oneOfGetter($oneOfFields = ["imageLeadingPadding"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(AIRichResponseLatexExpression.prototype, "_imageBottomPadding", { + get: $util.oneOfGetter($oneOfFields = ["imageBottomPadding"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(AIRichResponseLatexExpression.prototype, "_imageTrailingPadding", { + get: $util.oneOfGetter($oneOfFields = ["imageTrailingPadding"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new AIRichResponseLatexExpression instance using the specified properties. * @function create @@ -5355,6 +5500,14 @@ $root.proto = (function() { writer.uint32(/* id 4, wireType 1 =*/33).double(message.height); if (message.fontHeight != null && Object.hasOwnProperty.call(message, "fontHeight")) writer.uint32(/* id 5, wireType 1 =*/41).double(message.fontHeight); + if (message.imageTopPadding != null && Object.hasOwnProperty.call(message, "imageTopPadding")) + writer.uint32(/* id 6, wireType 1 =*/49).double(message.imageTopPadding); + if (message.imageLeadingPadding != null && Object.hasOwnProperty.call(message, "imageLeadingPadding")) + writer.uint32(/* id 7, wireType 1 =*/57).double(message.imageLeadingPadding); + if (message.imageBottomPadding != null && Object.hasOwnProperty.call(message, "imageBottomPadding")) + writer.uint32(/* id 8, wireType 1 =*/65).double(message.imageBottomPadding); + if (message.imageTrailingPadding != null && Object.hasOwnProperty.call(message, "imageTrailingPadding")) + writer.uint32(/* id 9, wireType 1 =*/73).double(message.imageTrailingPadding); return writer; }; @@ -5409,6 +5562,22 @@ $root.proto = (function() { message.fontHeight = reader.double(); break; } + case 6: { + message.imageTopPadding = reader.double(); + break; + } + case 7: { + message.imageLeadingPadding = reader.double(); + break; + } + case 8: { + message.imageBottomPadding = reader.double(); + break; + } + case 9: { + message.imageTrailingPadding = reader.double(); + break; + } default: reader.skipType(tag & 7); break; @@ -5470,6 +5639,26 @@ $root.proto = (function() { if (typeof message.fontHeight !== "number") return "fontHeight: number expected"; } + if (message.imageTopPadding != null && message.hasOwnProperty("imageTopPadding")) { + properties._imageTopPadding = 1; + if (typeof message.imageTopPadding !== "number") + return "imageTopPadding: number expected"; + } + if (message.imageLeadingPadding != null && message.hasOwnProperty("imageLeadingPadding")) { + properties._imageLeadingPadding = 1; + if (typeof message.imageLeadingPadding !== "number") + return "imageLeadingPadding: number expected"; + } + if (message.imageBottomPadding != null && message.hasOwnProperty("imageBottomPadding")) { + properties._imageBottomPadding = 1; + if (typeof message.imageBottomPadding !== "number") + return "imageBottomPadding: number expected"; + } + if (message.imageTrailingPadding != null && message.hasOwnProperty("imageTrailingPadding")) { + properties._imageTrailingPadding = 1; + if (typeof message.imageTrailingPadding !== "number") + return "imageTrailingPadding: number expected"; + } return null; }; @@ -5495,6 +5684,14 @@ $root.proto = (function() { message.height = Number(object.height); if (object.fontHeight != null) message.fontHeight = Number(object.fontHeight); + if (object.imageTopPadding != null) + message.imageTopPadding = Number(object.imageTopPadding); + if (object.imageLeadingPadding != null) + message.imageLeadingPadding = Number(object.imageLeadingPadding); + if (object.imageBottomPadding != null) + message.imageBottomPadding = Number(object.imageBottomPadding); + if (object.imageTrailingPadding != null) + message.imageTrailingPadding = Number(object.imageTrailingPadding); return message; }; @@ -5536,6 +5733,26 @@ $root.proto = (function() { if (options.oneofs) object._fontHeight = "fontHeight"; } + if (message.imageTopPadding != null && message.hasOwnProperty("imageTopPadding")) { + object.imageTopPadding = options.json && !isFinite(message.imageTopPadding) ? String(message.imageTopPadding) : message.imageTopPadding; + if (options.oneofs) + object._imageTopPadding = "imageTopPadding"; + } + if (message.imageLeadingPadding != null && message.hasOwnProperty("imageLeadingPadding")) { + object.imageLeadingPadding = options.json && !isFinite(message.imageLeadingPadding) ? String(message.imageLeadingPadding) : message.imageLeadingPadding; + if (options.oneofs) + object._imageLeadingPadding = "imageLeadingPadding"; + } + if (message.imageBottomPadding != null && message.hasOwnProperty("imageBottomPadding")) { + object.imageBottomPadding = options.json && !isFinite(message.imageBottomPadding) ? String(message.imageBottomPadding) : message.imageBottomPadding; + if (options.oneofs) + object._imageBottomPadding = "imageBottomPadding"; + } + if (message.imageTrailingPadding != null && message.hasOwnProperty("imageTrailingPadding")) { + object.imageTrailingPadding = options.json && !isFinite(message.imageTrailingPadding) ? String(message.imageTrailingPadding) : message.imageTrailingPadding; + if (options.oneofs) + object._imageTrailingPadding = "imageTrailingPadding"; + } return object; }; @@ -7456,9 +7673,543 @@ $root.proto = (function() { return AIRichResponseTableMetadata; })(); + AIRichResponseMessage.AIRichResponseUnifiedResponse = (function() { + + /** + * Properties of a AIRichResponseUnifiedResponse. + * @memberof proto.AIRichResponseMessage + * @interface IAIRichResponseUnifiedResponse + * @property {Uint8Array|null} [data] AIRichResponseUnifiedResponse data + */ + + /** + * Constructs a new AIRichResponseUnifiedResponse. + * @memberof proto.AIRichResponseMessage + * @classdesc Represents a AIRichResponseUnifiedResponse. + * @implements IAIRichResponseUnifiedResponse + * @constructor + * @param {proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse=} [properties] Properties to set + */ + function AIRichResponseUnifiedResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * AIRichResponseUnifiedResponse data. + * @member {Uint8Array|null|undefined} data + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @instance + */ + AIRichResponseUnifiedResponse.prototype.data = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(AIRichResponseUnifiedResponse.prototype, "_data", { + get: $util.oneOfGetter($oneOfFields = ["data"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new AIRichResponseUnifiedResponse instance using the specified properties. + * @function create + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse=} [properties] Properties to set + * @returns {proto.AIRichResponseMessage.AIRichResponseUnifiedResponse} AIRichResponseUnifiedResponse instance + */ + AIRichResponseUnifiedResponse.create = function create(properties) { + return new AIRichResponseUnifiedResponse(properties); + }; + + /** + * Encodes the specified AIRichResponseUnifiedResponse message. Does not implicitly {@link proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.verify|verify} messages. + * @function encode + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse} message AIRichResponseUnifiedResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AIRichResponseUnifiedResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.data != null && Object.hasOwnProperty.call(message, "data")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified AIRichResponseUnifiedResponse message, length delimited. Does not implicitly {@link proto.AIRichResponseMessage.AIRichResponseUnifiedResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {proto.AIRichResponseMessage.IAIRichResponseUnifiedResponse} message AIRichResponseUnifiedResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AIRichResponseUnifiedResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a AIRichResponseUnifiedResponse message from the specified reader or buffer. + * @function decode + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.AIRichResponseMessage.AIRichResponseUnifiedResponse} AIRichResponseUnifiedResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AIRichResponseUnifiedResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.AIRichResponseMessage.AIRichResponseUnifiedResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.data = reader.bytes(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a AIRichResponseUnifiedResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.AIRichResponseMessage.AIRichResponseUnifiedResponse} AIRichResponseUnifiedResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AIRichResponseUnifiedResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a AIRichResponseUnifiedResponse message. + * @function verify + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AIRichResponseUnifiedResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.data != null && message.hasOwnProperty("data")) { + properties._data = 1; + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + } + return null; + }; + + /** + * Creates a AIRichResponseUnifiedResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {Object.} object Plain object + * @returns {proto.AIRichResponseMessage.AIRichResponseUnifiedResponse} AIRichResponseUnifiedResponse + */ + AIRichResponseUnifiedResponse.fromObject = function fromObject(object) { + if (object instanceof $root.proto.AIRichResponseMessage.AIRichResponseUnifiedResponse) + return object; + var message = new $root.proto.AIRichResponseMessage.AIRichResponseUnifiedResponse(); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length >= 0) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a AIRichResponseUnifiedResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {proto.AIRichResponseMessage.AIRichResponseUnifiedResponse} message AIRichResponseUnifiedResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AIRichResponseUnifiedResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.data != null && message.hasOwnProperty("data")) { + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + if (options.oneofs) + object._data = "data"; + } + return object; + }; + + /** + * Converts this AIRichResponseUnifiedResponse to JSON. + * @function toJSON + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @instance + * @returns {Object.} JSON object + */ + AIRichResponseUnifiedResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for AIRichResponseUnifiedResponse + * @function getTypeUrl + * @memberof proto.AIRichResponseMessage.AIRichResponseUnifiedResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + AIRichResponseUnifiedResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.AIRichResponseMessage.AIRichResponseUnifiedResponse"; + }; + + return AIRichResponseUnifiedResponse; + })(); + return AIRichResponseMessage; })(); + proto.Account = (function() { + + /** + * Properties of an Account. + * @memberof proto + * @interface IAccount + * @property {string|null} [lid] Account lid + * @property {string|null} [username] Account username + * @property {string|null} [countryCode] Account countryCode + * @property {boolean|null} [isUsernameDeleted] Account isUsernameDeleted + */ + + /** + * Constructs a new Account. + * @memberof proto + * @classdesc Represents an Account. + * @implements IAccount + * @constructor + * @param {proto.IAccount=} [properties] Properties to set + */ + function Account(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Account lid. + * @member {string|null|undefined} lid + * @memberof proto.Account + * @instance + */ + Account.prototype.lid = null; + + /** + * Account username. + * @member {string|null|undefined} username + * @memberof proto.Account + * @instance + */ + Account.prototype.username = null; + + /** + * Account countryCode. + * @member {string|null|undefined} countryCode + * @memberof proto.Account + * @instance + */ + Account.prototype.countryCode = null; + + /** + * Account isUsernameDeleted. + * @member {boolean|null|undefined} isUsernameDeleted + * @memberof proto.Account + * @instance + */ + Account.prototype.isUsernameDeleted = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Account.prototype, "_lid", { + get: $util.oneOfGetter($oneOfFields = ["lid"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Account.prototype, "_username", { + get: $util.oneOfGetter($oneOfFields = ["username"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Account.prototype, "_countryCode", { + get: $util.oneOfGetter($oneOfFields = ["countryCode"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Account.prototype, "_isUsernameDeleted", { + get: $util.oneOfGetter($oneOfFields = ["isUsernameDeleted"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Account instance using the specified properties. + * @function create + * @memberof proto.Account + * @static + * @param {proto.IAccount=} [properties] Properties to set + * @returns {proto.Account} Account instance + */ + Account.create = function create(properties) { + return new Account(properties); + }; + + /** + * Encodes the specified Account message. Does not implicitly {@link proto.Account.verify|verify} messages. + * @function encode + * @memberof proto.Account + * @static + * @param {proto.IAccount} message Account message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Account.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.lid != null && Object.hasOwnProperty.call(message, "lid")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.lid); + if (message.username != null && Object.hasOwnProperty.call(message, "username")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.username); + if (message.countryCode != null && Object.hasOwnProperty.call(message, "countryCode")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.countryCode); + if (message.isUsernameDeleted != null && Object.hasOwnProperty.call(message, "isUsernameDeleted")) + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.isUsernameDeleted); + return writer; + }; + + /** + * Encodes the specified Account message, length delimited. Does not implicitly {@link proto.Account.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Account + * @static + * @param {proto.IAccount} message Account message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Account.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Account message from the specified reader or buffer. + * @function decode + * @memberof proto.Account + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Account} Account + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Account.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Account(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.lid = reader.string(); + break; + } + case 2: { + message.username = reader.string(); + break; + } + case 3: { + message.countryCode = reader.string(); + break; + } + case 4: { + message.isUsernameDeleted = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Account message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Account + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Account} Account + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Account.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Account message. + * @function verify + * @memberof proto.Account + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Account.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.lid != null && message.hasOwnProperty("lid")) { + properties._lid = 1; + if (!$util.isString(message.lid)) + return "lid: string expected"; + } + if (message.username != null && message.hasOwnProperty("username")) { + properties._username = 1; + if (!$util.isString(message.username)) + return "username: string expected"; + } + if (message.countryCode != null && message.hasOwnProperty("countryCode")) { + properties._countryCode = 1; + if (!$util.isString(message.countryCode)) + return "countryCode: string expected"; + } + if (message.isUsernameDeleted != null && message.hasOwnProperty("isUsernameDeleted")) { + properties._isUsernameDeleted = 1; + if (typeof message.isUsernameDeleted !== "boolean") + return "isUsernameDeleted: boolean expected"; + } + return null; + }; + + /** + * Creates an Account message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Account + * @static + * @param {Object.} object Plain object + * @returns {proto.Account} Account + */ + Account.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Account) + return object; + var message = new $root.proto.Account(); + if (object.lid != null) + message.lid = String(object.lid); + if (object.username != null) + message.username = String(object.username); + if (object.countryCode != null) + message.countryCode = String(object.countryCode); + if (object.isUsernameDeleted != null) + message.isUsernameDeleted = Boolean(object.isUsernameDeleted); + return message; + }; + + /** + * Creates a plain object from an Account message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Account + * @static + * @param {proto.Account} message Account + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Account.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.lid != null && message.hasOwnProperty("lid")) { + object.lid = message.lid; + if (options.oneofs) + object._lid = "lid"; + } + if (message.username != null && message.hasOwnProperty("username")) { + object.username = message.username; + if (options.oneofs) + object._username = "username"; + } + if (message.countryCode != null && message.hasOwnProperty("countryCode")) { + object.countryCode = message.countryCode; + if (options.oneofs) + object._countryCode = "countryCode"; + } + if (message.isUsernameDeleted != null && message.hasOwnProperty("isUsernameDeleted")) { + object.isUsernameDeleted = message.isUsernameDeleted; + if (options.oneofs) + object._isUsernameDeleted = "isUsernameDeleted"; + } + return object; + }; + + /** + * Converts this Account to JSON. + * @function toJSON + * @memberof proto.Account + * @instance + * @returns {Object.} JSON object + */ + Account.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Account + * @function getTypeUrl + * @memberof proto.Account + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Account.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Account"; + }; + + return Account; + })(); + proto.ActionLink = (function() { /** @@ -9536,6 +10287,255 @@ $root.proto = (function() { return BizIdentityInfo; })(); + proto.BotAgeCollectionMetadata = (function() { + + /** + * Properties of a BotAgeCollectionMetadata. + * @memberof proto + * @interface IBotAgeCollectionMetadata + * @property {boolean|null} [ageCollectionEligible] BotAgeCollectionMetadata ageCollectionEligible + * @property {boolean|null} [shouldTriggerAgeCollectionOnClient] BotAgeCollectionMetadata shouldTriggerAgeCollectionOnClient + */ + + /** + * Constructs a new BotAgeCollectionMetadata. + * @memberof proto + * @classdesc Represents a BotAgeCollectionMetadata. + * @implements IBotAgeCollectionMetadata + * @constructor + * @param {proto.IBotAgeCollectionMetadata=} [properties] Properties to set + */ + function BotAgeCollectionMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotAgeCollectionMetadata ageCollectionEligible. + * @member {boolean|null|undefined} ageCollectionEligible + * @memberof proto.BotAgeCollectionMetadata + * @instance + */ + BotAgeCollectionMetadata.prototype.ageCollectionEligible = null; + + /** + * BotAgeCollectionMetadata shouldTriggerAgeCollectionOnClient. + * @member {boolean|null|undefined} shouldTriggerAgeCollectionOnClient + * @memberof proto.BotAgeCollectionMetadata + * @instance + */ + BotAgeCollectionMetadata.prototype.shouldTriggerAgeCollectionOnClient = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotAgeCollectionMetadata.prototype, "_ageCollectionEligible", { + get: $util.oneOfGetter($oneOfFields = ["ageCollectionEligible"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotAgeCollectionMetadata.prototype, "_shouldTriggerAgeCollectionOnClient", { + get: $util.oneOfGetter($oneOfFields = ["shouldTriggerAgeCollectionOnClient"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BotAgeCollectionMetadata instance using the specified properties. + * @function create + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {proto.IBotAgeCollectionMetadata=} [properties] Properties to set + * @returns {proto.BotAgeCollectionMetadata} BotAgeCollectionMetadata instance + */ + BotAgeCollectionMetadata.create = function create(properties) { + return new BotAgeCollectionMetadata(properties); + }; + + /** + * Encodes the specified BotAgeCollectionMetadata message. Does not implicitly {@link proto.BotAgeCollectionMetadata.verify|verify} messages. + * @function encode + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {proto.IBotAgeCollectionMetadata} message BotAgeCollectionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotAgeCollectionMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ageCollectionEligible != null && Object.hasOwnProperty.call(message, "ageCollectionEligible")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.ageCollectionEligible); + if (message.shouldTriggerAgeCollectionOnClient != null && Object.hasOwnProperty.call(message, "shouldTriggerAgeCollectionOnClient")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.shouldTriggerAgeCollectionOnClient); + return writer; + }; + + /** + * Encodes the specified BotAgeCollectionMetadata message, length delimited. Does not implicitly {@link proto.BotAgeCollectionMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {proto.IBotAgeCollectionMetadata} message BotAgeCollectionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotAgeCollectionMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotAgeCollectionMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotAgeCollectionMetadata} BotAgeCollectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotAgeCollectionMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotAgeCollectionMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.ageCollectionEligible = reader.bool(); + break; + } + case 2: { + message.shouldTriggerAgeCollectionOnClient = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotAgeCollectionMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotAgeCollectionMetadata} BotAgeCollectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotAgeCollectionMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotAgeCollectionMetadata message. + * @function verify + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotAgeCollectionMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.ageCollectionEligible != null && message.hasOwnProperty("ageCollectionEligible")) { + properties._ageCollectionEligible = 1; + if (typeof message.ageCollectionEligible !== "boolean") + return "ageCollectionEligible: boolean expected"; + } + if (message.shouldTriggerAgeCollectionOnClient != null && message.hasOwnProperty("shouldTriggerAgeCollectionOnClient")) { + properties._shouldTriggerAgeCollectionOnClient = 1; + if (typeof message.shouldTriggerAgeCollectionOnClient !== "boolean") + return "shouldTriggerAgeCollectionOnClient: boolean expected"; + } + return null; + }; + + /** + * Creates a BotAgeCollectionMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.BotAgeCollectionMetadata} BotAgeCollectionMetadata + */ + BotAgeCollectionMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotAgeCollectionMetadata) + return object; + var message = new $root.proto.BotAgeCollectionMetadata(); + if (object.ageCollectionEligible != null) + message.ageCollectionEligible = Boolean(object.ageCollectionEligible); + if (object.shouldTriggerAgeCollectionOnClient != null) + message.shouldTriggerAgeCollectionOnClient = Boolean(object.shouldTriggerAgeCollectionOnClient); + return message; + }; + + /** + * Creates a plain object from a BotAgeCollectionMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {proto.BotAgeCollectionMetadata} message BotAgeCollectionMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotAgeCollectionMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.ageCollectionEligible != null && message.hasOwnProperty("ageCollectionEligible")) { + object.ageCollectionEligible = message.ageCollectionEligible; + if (options.oneofs) + object._ageCollectionEligible = "ageCollectionEligible"; + } + if (message.shouldTriggerAgeCollectionOnClient != null && message.hasOwnProperty("shouldTriggerAgeCollectionOnClient")) { + object.shouldTriggerAgeCollectionOnClient = message.shouldTriggerAgeCollectionOnClient; + if (options.oneofs) + object._shouldTriggerAgeCollectionOnClient = "shouldTriggerAgeCollectionOnClient"; + } + return object; + }; + + /** + * Converts this BotAgeCollectionMetadata to JSON. + * @function toJSON + * @memberof proto.BotAgeCollectionMetadata + * @instance + * @returns {Object.} JSON object + */ + BotAgeCollectionMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotAgeCollectionMetadata + * @function getTypeUrl + * @memberof proto.BotAgeCollectionMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotAgeCollectionMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotAgeCollectionMetadata"; + }; + + return BotAgeCollectionMetadata; + })(); + proto.BotAvatarMetadata = (function() { /** @@ -10064,6 +11064,12 @@ $root.proto = (function() { case 27: case 28: case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: break; } } @@ -10213,6 +11219,30 @@ $root.proto = (function() { case 29: message.capabilities[i] = 29; break; + case "RICH_RESPONSE_GRID_IMAGE_3P": + case 30: + message.capabilities[i] = 30; + break; + case "RICH_RESPONSE_LATEX_INLINE": + case 31: + message.capabilities[i] = 31; + break; + case "QUERY_PLAN": + case 32: + message.capabilities[i] = 32; + break; + case "PROACTIVE_MESSAGE": + case 33: + message.capabilities[i] = 33; + break; + case "RICH_RESPONSE_UNIFIED_RESPONSE": + case 34: + message.capabilities[i] = 34; + break; + case "PROMOTION_MESSAGE": + case 35: + message.capabilities[i] = 35; + break; } } return message; @@ -10301,6 +11331,12 @@ $root.proto = (function() { * @property {number} AGENTIC_PLANNING=27 AGENTIC_PLANNING value * @property {number} ACCOUNT_LINKING=28 ACCOUNT_LINKING value * @property {number} STREAMING_DISAGGREGATION=29 STREAMING_DISAGGREGATION value + * @property {number} RICH_RESPONSE_GRID_IMAGE_3P=30 RICH_RESPONSE_GRID_IMAGE_3P value + * @property {number} RICH_RESPONSE_LATEX_INLINE=31 RICH_RESPONSE_LATEX_INLINE value + * @property {number} QUERY_PLAN=32 QUERY_PLAN value + * @property {number} PROACTIVE_MESSAGE=33 PROACTIVE_MESSAGE value + * @property {number} RICH_RESPONSE_UNIFIED_RESPONSE=34 RICH_RESPONSE_UNIFIED_RESPONSE value + * @property {number} PROMOTION_MESSAGE=35 PROMOTION_MESSAGE value */ BotCapabilityMetadata.BotCapabilityType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -10334,6 +11370,12 @@ $root.proto = (function() { values[valuesById[27] = "AGENTIC_PLANNING"] = 27; values[valuesById[28] = "ACCOUNT_LINKING"] = 28; values[valuesById[29] = "STREAMING_DISAGGREGATION"] = 29; + values[valuesById[30] = "RICH_RESPONSE_GRID_IMAGE_3P"] = 30; + values[valuesById[31] = "RICH_RESPONSE_LATEX_INLINE"] = 31; + values[valuesById[32] = "QUERY_PLAN"] = 32; + values[valuesById[33] = "PROACTIVE_MESSAGE"] = 33; + values[valuesById[34] = "RICH_RESPONSE_UNIFIED_RESPONSE"] = 34; + values[valuesById[35] = "PROMOTION_MESSAGE"] = 35; return values; })(); @@ -10860,6 +11902,7 @@ $root.proto = (function() { * @interface IBotLinkedAccountsMetadata * @property {Array.|null} [accounts] BotLinkedAccountsMetadata accounts * @property {Uint8Array|null} [acAuthTokens] BotLinkedAccountsMetadata acAuthTokens + * @property {number|null} [acErrorCode] BotLinkedAccountsMetadata acErrorCode */ /** @@ -10894,6 +11937,14 @@ $root.proto = (function() { */ BotLinkedAccountsMetadata.prototype.acAuthTokens = null; + /** + * BotLinkedAccountsMetadata acErrorCode. + * @member {number|null|undefined} acErrorCode + * @memberof proto.BotLinkedAccountsMetadata + * @instance + */ + BotLinkedAccountsMetadata.prototype.acErrorCode = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -10903,6 +11954,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotLinkedAccountsMetadata.prototype, "_acErrorCode", { + get: $util.oneOfGetter($oneOfFields = ["acErrorCode"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new BotLinkedAccountsMetadata instance using the specified properties. * @function create @@ -10932,6 +11989,8 @@ $root.proto = (function() { $root.proto.BotLinkedAccount.encode(message.accounts[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.acAuthTokens != null && Object.hasOwnProperty.call(message, "acAuthTokens")) writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.acAuthTokens); + if (message.acErrorCode != null && Object.hasOwnProperty.call(message, "acErrorCode")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.acErrorCode); return writer; }; @@ -10976,6 +12035,10 @@ $root.proto = (function() { message.acAuthTokens = reader.bytes(); break; } + case 3: { + message.acErrorCode = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -11026,6 +12089,11 @@ $root.proto = (function() { if (!(message.acAuthTokens && typeof message.acAuthTokens.length === "number" || $util.isString(message.acAuthTokens))) return "acAuthTokens: buffer expected"; } + if (message.acErrorCode != null && message.hasOwnProperty("acErrorCode")) { + properties._acErrorCode = 1; + if (!$util.isInteger(message.acErrorCode)) + return "acErrorCode: integer expected"; + } return null; }; @@ -11056,6 +12124,8 @@ $root.proto = (function() { $util.base64.decode(object.acAuthTokens, message.acAuthTokens = $util.newBuffer($util.base64.length(object.acAuthTokens)), 0); else if (object.acAuthTokens.length >= 0) message.acAuthTokens = object.acAuthTokens; + if (object.acErrorCode != null) + message.acErrorCode = object.acErrorCode | 0; return message; }; @@ -11084,6 +12154,11 @@ $root.proto = (function() { if (options.oneofs) object._acAuthTokens = "acAuthTokens"; } + if (message.acErrorCode != null && message.hasOwnProperty("acErrorCode")) { + object.acErrorCode = message.acErrorCode; + if (options.oneofs) + object._acErrorCode = "acErrorCode"; + } return object; }; @@ -12383,6 +13458,12 @@ $root.proto = (function() { * @property {proto.IBotRenderingMetadata|null} [renderingMetadata] BotMetadata renderingMetadata * @property {proto.IBotMetricsMetadata|null} [botMetricsMetadata] BotMetadata botMetricsMetadata * @property {proto.IBotLinkedAccountsMetadata|null} [botLinkedAccountsMetadata] BotMetadata botLinkedAccountsMetadata + * @property {proto.IBotSourcesMetadata|null} [richResponseSourcesMetadata] BotMetadata richResponseSourcesMetadata + * @property {Uint8Array|null} [aiConversationContext] BotMetadata aiConversationContext + * @property {proto.IBotPromotionMessageMetadata|null} [botPromotionMessageMetadata] BotMetadata botPromotionMessageMetadata + * @property {proto.IBotModeSelectionMetadata|null} [botModeSelectionMetadata] BotMetadata botModeSelectionMetadata + * @property {proto.IBotQuotaMetadata|null} [botQuotaMetadata] BotMetadata botQuotaMetadata + * @property {proto.IBotAgeCollectionMetadata|null} [botAgeCollectionMetadata] BotMetadata botAgeCollectionMetadata */ /** @@ -12544,6 +13625,54 @@ $root.proto = (function() { */ BotMetadata.prototype.botLinkedAccountsMetadata = null; + /** + * BotMetadata richResponseSourcesMetadata. + * @member {proto.IBotSourcesMetadata|null|undefined} richResponseSourcesMetadata + * @memberof proto.BotMetadata + * @instance + */ + BotMetadata.prototype.richResponseSourcesMetadata = null; + + /** + * BotMetadata aiConversationContext. + * @member {Uint8Array|null|undefined} aiConversationContext + * @memberof proto.BotMetadata + * @instance + */ + BotMetadata.prototype.aiConversationContext = null; + + /** + * BotMetadata botPromotionMessageMetadata. + * @member {proto.IBotPromotionMessageMetadata|null|undefined} botPromotionMessageMetadata + * @memberof proto.BotMetadata + * @instance + */ + BotMetadata.prototype.botPromotionMessageMetadata = null; + + /** + * BotMetadata botModeSelectionMetadata. + * @member {proto.IBotModeSelectionMetadata|null|undefined} botModeSelectionMetadata + * @memberof proto.BotMetadata + * @instance + */ + BotMetadata.prototype.botModeSelectionMetadata = null; + + /** + * BotMetadata botQuotaMetadata. + * @member {proto.IBotQuotaMetadata|null|undefined} botQuotaMetadata + * @memberof proto.BotMetadata + * @instance + */ + BotMetadata.prototype.botQuotaMetadata = null; + + /** + * BotMetadata botAgeCollectionMetadata. + * @member {proto.IBotAgeCollectionMetadata|null|undefined} botAgeCollectionMetadata + * @memberof proto.BotMetadata + * @instance + */ + BotMetadata.prototype.botAgeCollectionMetadata = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -12655,6 +13784,42 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotMetadata.prototype, "_richResponseSourcesMetadata", { + get: $util.oneOfGetter($oneOfFields = ["richResponseSourcesMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotMetadata.prototype, "_aiConversationContext", { + get: $util.oneOfGetter($oneOfFields = ["aiConversationContext"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotMetadata.prototype, "_botPromotionMessageMetadata", { + get: $util.oneOfGetter($oneOfFields = ["botPromotionMessageMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotMetadata.prototype, "_botModeSelectionMetadata", { + get: $util.oneOfGetter($oneOfFields = ["botModeSelectionMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotMetadata.prototype, "_botQuotaMetadata", { + get: $util.oneOfGetter($oneOfFields = ["botQuotaMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotMetadata.prototype, "_botAgeCollectionMetadata", { + get: $util.oneOfGetter($oneOfFields = ["botAgeCollectionMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new BotMetadata instance using the specified properties. * @function create @@ -12715,6 +13880,18 @@ $root.proto = (function() { $root.proto.BotMetricsMetadata.encode(message.botMetricsMetadata, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); if (message.botLinkedAccountsMetadata != null && Object.hasOwnProperty.call(message, "botLinkedAccountsMetadata")) $root.proto.BotLinkedAccountsMetadata.encode(message.botLinkedAccountsMetadata, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); + if (message.richResponseSourcesMetadata != null && Object.hasOwnProperty.call(message, "richResponseSourcesMetadata")) + $root.proto.BotSourcesMetadata.encode(message.richResponseSourcesMetadata, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim(); + if (message.aiConversationContext != null && Object.hasOwnProperty.call(message, "aiConversationContext")) + writer.uint32(/* id 20, wireType 2 =*/162).bytes(message.aiConversationContext); + if (message.botPromotionMessageMetadata != null && Object.hasOwnProperty.call(message, "botPromotionMessageMetadata")) + $root.proto.BotPromotionMessageMetadata.encode(message.botPromotionMessageMetadata, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim(); + if (message.botModeSelectionMetadata != null && Object.hasOwnProperty.call(message, "botModeSelectionMetadata")) + $root.proto.BotModeSelectionMetadata.encode(message.botModeSelectionMetadata, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim(); + if (message.botQuotaMetadata != null && Object.hasOwnProperty.call(message, "botQuotaMetadata")) + $root.proto.BotQuotaMetadata.encode(message.botQuotaMetadata, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); + if (message.botAgeCollectionMetadata != null && Object.hasOwnProperty.call(message, "botAgeCollectionMetadata")) + $root.proto.BotAgeCollectionMetadata.encode(message.botAgeCollectionMetadata, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); return writer; }; @@ -12821,6 +13998,30 @@ $root.proto = (function() { message.botLinkedAccountsMetadata = $root.proto.BotLinkedAccountsMetadata.decode(reader, reader.uint32()); break; } + case 19: { + message.richResponseSourcesMetadata = $root.proto.BotSourcesMetadata.decode(reader, reader.uint32()); + break; + } + case 20: { + message.aiConversationContext = reader.bytes(); + break; + } + case 21: { + message.botPromotionMessageMetadata = $root.proto.BotPromotionMessageMetadata.decode(reader, reader.uint32()); + break; + } + case 22: { + message.botModeSelectionMetadata = $root.proto.BotModeSelectionMetadata.decode(reader, reader.uint32()); + break; + } + case 23: { + message.botQuotaMetadata = $root.proto.BotQuotaMetadata.decode(reader, reader.uint32()); + break; + } + case 24: { + message.botAgeCollectionMetadata = $root.proto.BotAgeCollectionMetadata.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -12989,6 +14190,51 @@ $root.proto = (function() { return "botLinkedAccountsMetadata." + error; } } + if (message.richResponseSourcesMetadata != null && message.hasOwnProperty("richResponseSourcesMetadata")) { + properties._richResponseSourcesMetadata = 1; + { + var error = $root.proto.BotSourcesMetadata.verify(message.richResponseSourcesMetadata); + if (error) + return "richResponseSourcesMetadata." + error; + } + } + if (message.aiConversationContext != null && message.hasOwnProperty("aiConversationContext")) { + properties._aiConversationContext = 1; + if (!(message.aiConversationContext && typeof message.aiConversationContext.length === "number" || $util.isString(message.aiConversationContext))) + return "aiConversationContext: buffer expected"; + } + if (message.botPromotionMessageMetadata != null && message.hasOwnProperty("botPromotionMessageMetadata")) { + properties._botPromotionMessageMetadata = 1; + { + var error = $root.proto.BotPromotionMessageMetadata.verify(message.botPromotionMessageMetadata); + if (error) + return "botPromotionMessageMetadata." + error; + } + } + if (message.botModeSelectionMetadata != null && message.hasOwnProperty("botModeSelectionMetadata")) { + properties._botModeSelectionMetadata = 1; + { + var error = $root.proto.BotModeSelectionMetadata.verify(message.botModeSelectionMetadata); + if (error) + return "botModeSelectionMetadata." + error; + } + } + if (message.botQuotaMetadata != null && message.hasOwnProperty("botQuotaMetadata")) { + properties._botQuotaMetadata = 1; + { + var error = $root.proto.BotQuotaMetadata.verify(message.botQuotaMetadata); + if (error) + return "botQuotaMetadata." + error; + } + } + if (message.botAgeCollectionMetadata != null && message.hasOwnProperty("botAgeCollectionMetadata")) { + properties._botAgeCollectionMetadata = 1; + { + var error = $root.proto.BotAgeCollectionMetadata.verify(message.botAgeCollectionMetadata); + if (error) + return "botAgeCollectionMetadata." + error; + } + } return null; }; @@ -13082,6 +14328,36 @@ $root.proto = (function() { throw TypeError(".proto.BotMetadata.botLinkedAccountsMetadata: object expected"); message.botLinkedAccountsMetadata = $root.proto.BotLinkedAccountsMetadata.fromObject(object.botLinkedAccountsMetadata); } + if (object.richResponseSourcesMetadata != null) { + if (typeof object.richResponseSourcesMetadata !== "object") + throw TypeError(".proto.BotMetadata.richResponseSourcesMetadata: object expected"); + message.richResponseSourcesMetadata = $root.proto.BotSourcesMetadata.fromObject(object.richResponseSourcesMetadata); + } + if (object.aiConversationContext != null) + if (typeof object.aiConversationContext === "string") + $util.base64.decode(object.aiConversationContext, message.aiConversationContext = $util.newBuffer($util.base64.length(object.aiConversationContext)), 0); + else if (object.aiConversationContext.length >= 0) + message.aiConversationContext = object.aiConversationContext; + if (object.botPromotionMessageMetadata != null) { + if (typeof object.botPromotionMessageMetadata !== "object") + throw TypeError(".proto.BotMetadata.botPromotionMessageMetadata: object expected"); + message.botPromotionMessageMetadata = $root.proto.BotPromotionMessageMetadata.fromObject(object.botPromotionMessageMetadata); + } + if (object.botModeSelectionMetadata != null) { + if (typeof object.botModeSelectionMetadata !== "object") + throw TypeError(".proto.BotMetadata.botModeSelectionMetadata: object expected"); + message.botModeSelectionMetadata = $root.proto.BotModeSelectionMetadata.fromObject(object.botModeSelectionMetadata); + } + if (object.botQuotaMetadata != null) { + if (typeof object.botQuotaMetadata !== "object") + throw TypeError(".proto.BotMetadata.botQuotaMetadata: object expected"); + message.botQuotaMetadata = $root.proto.BotQuotaMetadata.fromObject(object.botQuotaMetadata); + } + if (object.botAgeCollectionMetadata != null) { + if (typeof object.botAgeCollectionMetadata !== "object") + throw TypeError(".proto.BotMetadata.botAgeCollectionMetadata: object expected"); + message.botAgeCollectionMetadata = $root.proto.BotAgeCollectionMetadata.fromObject(object.botAgeCollectionMetadata); + } return message; }; @@ -13188,6 +14464,36 @@ $root.proto = (function() { if (options.oneofs) object._botLinkedAccountsMetadata = "botLinkedAccountsMetadata"; } + if (message.richResponseSourcesMetadata != null && message.hasOwnProperty("richResponseSourcesMetadata")) { + object.richResponseSourcesMetadata = $root.proto.BotSourcesMetadata.toObject(message.richResponseSourcesMetadata, options); + if (options.oneofs) + object._richResponseSourcesMetadata = "richResponseSourcesMetadata"; + } + if (message.aiConversationContext != null && message.hasOwnProperty("aiConversationContext")) { + object.aiConversationContext = options.bytes === String ? $util.base64.encode(message.aiConversationContext, 0, message.aiConversationContext.length) : options.bytes === Array ? Array.prototype.slice.call(message.aiConversationContext) : message.aiConversationContext; + if (options.oneofs) + object._aiConversationContext = "aiConversationContext"; + } + if (message.botPromotionMessageMetadata != null && message.hasOwnProperty("botPromotionMessageMetadata")) { + object.botPromotionMessageMetadata = $root.proto.BotPromotionMessageMetadata.toObject(message.botPromotionMessageMetadata, options); + if (options.oneofs) + object._botPromotionMessageMetadata = "botPromotionMessageMetadata"; + } + if (message.botModeSelectionMetadata != null && message.hasOwnProperty("botModeSelectionMetadata")) { + object.botModeSelectionMetadata = $root.proto.BotModeSelectionMetadata.toObject(message.botModeSelectionMetadata, options); + if (options.oneofs) + object._botModeSelectionMetadata = "botModeSelectionMetadata"; + } + if (message.botQuotaMetadata != null && message.hasOwnProperty("botQuotaMetadata")) { + object.botQuotaMetadata = $root.proto.BotQuotaMetadata.toObject(message.botQuotaMetadata, options); + if (options.oneofs) + object._botQuotaMetadata = "botQuotaMetadata"; + } + if (message.botAgeCollectionMetadata != null && message.hasOwnProperty("botAgeCollectionMetadata")) { + object.botAgeCollectionMetadata = $root.proto.BotAgeCollectionMetadata.toObject(message.botAgeCollectionMetadata, options); + if (options.oneofs) + object._botAgeCollectionMetadata = "botAgeCollectionMetadata"; + } return object; }; @@ -13241,6 +14547,13 @@ $root.proto = (function() { * @property {number} FORWARD=15 FORWARD value * @property {number} APP_SHORTCUT=16 APP_SHORTCUT value * @property {number} FF_FAMILY=17 FF_FAMILY value + * @property {number} AI_TAB=18 AI_TAB value + * @property {number} AI_HOME=19 AI_HOME value + * @property {number} AI_DEEPLINK_IMMERSIVE=20 AI_DEEPLINK_IMMERSIVE value + * @property {number} AI_DEEPLINK=21 AI_DEEPLINK value + * @property {number} META_AI_CHAT_SHORTCUT_AI_STUDIO=22 META_AI_CHAT_SHORTCUT_AI_STUDIO value + * @property {number} UGC_CHAT_SHORTCUT_AI_STUDIO=23 UGC_CHAT_SHORTCUT_AI_STUDIO value + * @property {number} NEW_CHAT_AI_STUDIO=24 NEW_CHAT_AI_STUDIO value */ proto.BotMetricsEntryPoint = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -13261,6 +14574,13 @@ $root.proto = (function() { values[valuesById[15] = "FORWARD"] = 15; values[valuesById[16] = "APP_SHORTCUT"] = 16; values[valuesById[17] = "FF_FAMILY"] = 17; + values[valuesById[18] = "AI_TAB"] = 18; + values[valuesById[19] = "AI_HOME"] = 19; + values[valuesById[20] = "AI_DEEPLINK_IMMERSIVE"] = 20; + values[valuesById[21] = "AI_DEEPLINK"] = 21; + values[valuesById[22] = "META_AI_CHAT_SHORTCUT_AI_STUDIO"] = 22; + values[valuesById[23] = "UGC_CHAT_SHORTCUT_AI_STUDIO"] = 23; + values[valuesById[24] = "NEW_CHAT_AI_STUDIO"] = 24; return values; })(); @@ -13272,6 +14592,7 @@ $root.proto = (function() { * @interface IBotMetricsMetadata * @property {string|null} [destinationId] BotMetricsMetadata destinationId * @property {proto.BotMetricsEntryPoint|null} [destinationEntryPoint] BotMetricsMetadata destinationEntryPoint + * @property {proto.BotMetricsThreadEntryPoint|null} [threadOrigin] BotMetricsMetadata threadOrigin */ /** @@ -13305,6 +14626,14 @@ $root.proto = (function() { */ BotMetricsMetadata.prototype.destinationEntryPoint = null; + /** + * BotMetricsMetadata threadOrigin. + * @member {proto.BotMetricsThreadEntryPoint|null|undefined} threadOrigin + * @memberof proto.BotMetricsMetadata + * @instance + */ + BotMetricsMetadata.prototype.threadOrigin = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -13320,6 +14649,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotMetricsMetadata.prototype, "_threadOrigin", { + get: $util.oneOfGetter($oneOfFields = ["threadOrigin"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new BotMetricsMetadata instance using the specified properties. * @function create @@ -13348,6 +14683,8 @@ $root.proto = (function() { writer.uint32(/* id 1, wireType 2 =*/10).string(message.destinationId); if (message.destinationEntryPoint != null && Object.hasOwnProperty.call(message, "destinationEntryPoint")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.destinationEntryPoint); + if (message.threadOrigin != null && Object.hasOwnProperty.call(message, "threadOrigin")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.threadOrigin); return writer; }; @@ -13390,6 +14727,10 @@ $root.proto = (function() { message.destinationEntryPoint = reader.int32(); break; } + case 3: { + message.threadOrigin = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -13453,6 +14794,25 @@ $root.proto = (function() { case 15: case 16: case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + break; + } + } + if (message.threadOrigin != null && message.hasOwnProperty("threadOrigin")) { + properties._threadOrigin = 1; + switch (message.threadOrigin) { + default: + return "threadOrigin: enum value expected"; + case 1: + case 2: + case 3: + case 4: break; } } @@ -13548,6 +14908,58 @@ $root.proto = (function() { case 17: message.destinationEntryPoint = 17; break; + case "AI_TAB": + case 18: + message.destinationEntryPoint = 18; + break; + case "AI_HOME": + case 19: + message.destinationEntryPoint = 19; + break; + case "AI_DEEPLINK_IMMERSIVE": + case 20: + message.destinationEntryPoint = 20; + break; + case "AI_DEEPLINK": + case 21: + message.destinationEntryPoint = 21; + break; + case "META_AI_CHAT_SHORTCUT_AI_STUDIO": + case 22: + message.destinationEntryPoint = 22; + break; + case "UGC_CHAT_SHORTCUT_AI_STUDIO": + case 23: + message.destinationEntryPoint = 23; + break; + case "NEW_CHAT_AI_STUDIO": + case 24: + message.destinationEntryPoint = 24; + break; + } + switch (object.threadOrigin) { + default: + if (typeof object.threadOrigin === "number") { + message.threadOrigin = object.threadOrigin; + break; + } + break; + case "AI_TAB_THREAD": + case 1: + message.threadOrigin = 1; + break; + case "AI_HOME_THREAD": + case 2: + message.threadOrigin = 2; + break; + case "AI_DEEPLINK_IMMERSIVE_THREAD": + case 3: + message.threadOrigin = 3; + break; + case "AI_DEEPLINK_THREAD": + case 4: + message.threadOrigin = 4; + break; } return message; }; @@ -13575,6 +14987,11 @@ $root.proto = (function() { if (options.oneofs) object._destinationEntryPoint = "destinationEntryPoint"; } + if (message.threadOrigin != null && message.hasOwnProperty("threadOrigin")) { + object.threadOrigin = options.enums === String ? $root.proto.BotMetricsThreadEntryPoint[message.threadOrigin] === undefined ? message.threadOrigin : $root.proto.BotMetricsThreadEntryPoint[message.threadOrigin] : message.threadOrigin; + if (options.oneofs) + object._threadOrigin = "threadOrigin"; + } return object; }; @@ -13607,6 +15024,284 @@ $root.proto = (function() { return BotMetricsMetadata; })(); + /** + * BotMetricsThreadEntryPoint enum. + * @name proto.BotMetricsThreadEntryPoint + * @enum {number} + * @property {number} AI_TAB_THREAD=1 AI_TAB_THREAD value + * @property {number} AI_HOME_THREAD=2 AI_HOME_THREAD value + * @property {number} AI_DEEPLINK_IMMERSIVE_THREAD=3 AI_DEEPLINK_IMMERSIVE_THREAD value + * @property {number} AI_DEEPLINK_THREAD=4 AI_DEEPLINK_THREAD value + */ + proto.BotMetricsThreadEntryPoint = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[1] = "AI_TAB_THREAD"] = 1; + values[valuesById[2] = "AI_HOME_THREAD"] = 2; + values[valuesById[3] = "AI_DEEPLINK_IMMERSIVE_THREAD"] = 3; + values[valuesById[4] = "AI_DEEPLINK_THREAD"] = 4; + return values; + })(); + + proto.BotModeSelectionMetadata = (function() { + + /** + * Properties of a BotModeSelectionMetadata. + * @memberof proto + * @interface IBotModeSelectionMetadata + * @property {Array.|null} [mode] BotModeSelectionMetadata mode + */ + + /** + * Constructs a new BotModeSelectionMetadata. + * @memberof proto + * @classdesc Represents a BotModeSelectionMetadata. + * @implements IBotModeSelectionMetadata + * @constructor + * @param {proto.IBotModeSelectionMetadata=} [properties] Properties to set + */ + function BotModeSelectionMetadata(properties) { + this.mode = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotModeSelectionMetadata mode. + * @member {Array.} mode + * @memberof proto.BotModeSelectionMetadata + * @instance + */ + BotModeSelectionMetadata.prototype.mode = $util.emptyArray; + + /** + * Creates a new BotModeSelectionMetadata instance using the specified properties. + * @function create + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {proto.IBotModeSelectionMetadata=} [properties] Properties to set + * @returns {proto.BotModeSelectionMetadata} BotModeSelectionMetadata instance + */ + BotModeSelectionMetadata.create = function create(properties) { + return new BotModeSelectionMetadata(properties); + }; + + /** + * Encodes the specified BotModeSelectionMetadata message. Does not implicitly {@link proto.BotModeSelectionMetadata.verify|verify} messages. + * @function encode + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {proto.IBotModeSelectionMetadata} message BotModeSelectionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotModeSelectionMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.mode != null && message.mode.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.mode.length; ++i) + writer.int32(message.mode[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified BotModeSelectionMetadata message, length delimited. Does not implicitly {@link proto.BotModeSelectionMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {proto.IBotModeSelectionMetadata} message BotModeSelectionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotModeSelectionMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotModeSelectionMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotModeSelectionMetadata} BotModeSelectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotModeSelectionMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotModeSelectionMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.mode && message.mode.length)) + message.mode = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.mode.push(reader.int32()); + } else + message.mode.push(reader.int32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotModeSelectionMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotModeSelectionMetadata} BotModeSelectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotModeSelectionMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotModeSelectionMetadata message. + * @function verify + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotModeSelectionMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.mode != null && message.hasOwnProperty("mode")) { + if (!Array.isArray(message.mode)) + return "mode: array expected"; + for (var i = 0; i < message.mode.length; ++i) + switch (message.mode[i]) { + default: + return "mode: enum value[] expected"; + case 0: + case 1: + break; + } + } + return null; + }; + + /** + * Creates a BotModeSelectionMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.BotModeSelectionMetadata} BotModeSelectionMetadata + */ + BotModeSelectionMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotModeSelectionMetadata) + return object; + var message = new $root.proto.BotModeSelectionMetadata(); + if (object.mode) { + if (!Array.isArray(object.mode)) + throw TypeError(".proto.BotModeSelectionMetadata.mode: array expected"); + message.mode = []; + for (var i = 0; i < object.mode.length; ++i) + switch (object.mode[i]) { + default: + if (typeof object.mode[i] === "number") { + message.mode[i] = object.mode[i]; + break; + } + case "UNKNOWN_MODE": + case 0: + message.mode[i] = 0; + break; + case "REASONING_MODE": + case 1: + message.mode[i] = 1; + break; + } + } + return message; + }; + + /** + * Creates a plain object from a BotModeSelectionMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {proto.BotModeSelectionMetadata} message BotModeSelectionMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotModeSelectionMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.mode = []; + if (message.mode && message.mode.length) { + object.mode = []; + for (var j = 0; j < message.mode.length; ++j) + object.mode[j] = options.enums === String ? $root.proto.BotModeSelectionMetadata.BotUserSelectionMode[message.mode[j]] === undefined ? message.mode[j] : $root.proto.BotModeSelectionMetadata.BotUserSelectionMode[message.mode[j]] : message.mode[j]; + } + return object; + }; + + /** + * Converts this BotModeSelectionMetadata to JSON. + * @function toJSON + * @memberof proto.BotModeSelectionMetadata + * @instance + * @returns {Object.} JSON object + */ + BotModeSelectionMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotModeSelectionMetadata + * @function getTypeUrl + * @memberof proto.BotModeSelectionMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotModeSelectionMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotModeSelectionMetadata"; + }; + + /** + * BotUserSelectionMode enum. + * @name proto.BotModeSelectionMetadata.BotUserSelectionMode + * @enum {number} + * @property {number} UNKNOWN_MODE=0 UNKNOWN_MODE value + * @property {number} REASONING_MODE=1 REASONING_MODE value + */ + BotModeSelectionMetadata.BotUserSelectionMode = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "UNKNOWN_MODE"] = 0; + values[valuesById[1] = "REASONING_MODE"] = 1; + return values; + })(); + + return BotModeSelectionMetadata; + })(); + proto.BotModelMetadata = (function() { /** @@ -14926,6 +16621,7 @@ $root.proto = (function() { * @property {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus|null} [status] BotPlanningStepMetadata status * @property {boolean|null} [isReasoning] BotPlanningStepMetadata isReasoning * @property {boolean|null} [isEnhancedSearch] BotPlanningStepMetadata isEnhancedSearch + * @property {Array.|null} [sections] BotPlanningStepMetadata sections */ /** @@ -14938,6 +16634,7 @@ $root.proto = (function() { */ function BotPlanningStepMetadata(properties) { this.sourcesMetadata = []; + this.sections = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -14992,6 +16689,14 @@ $root.proto = (function() { */ BotPlanningStepMetadata.prototype.isEnhancedSearch = null; + /** + * BotPlanningStepMetadata sections. + * @member {Array.} sections + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata + * @instance + */ + BotPlanningStepMetadata.prototype.sections = $util.emptyArray; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -15062,6 +16767,9 @@ $root.proto = (function() { writer.uint32(/* id 5, wireType 0 =*/40).bool(message.isReasoning); if (message.isEnhancedSearch != null && Object.hasOwnProperty.call(message, "isEnhancedSearch")) writer.uint32(/* id 6, wireType 0 =*/48).bool(message.isEnhancedSearch); + if (message.sections != null && message.sections.length) + for (var i = 0; i < message.sections.length; ++i) + $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.encode(message.sections[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; @@ -15122,6 +16830,12 @@ $root.proto = (function() { message.isEnhancedSearch = reader.bool(); break; } + case 7: { + if (!(message.sections && message.sections.length)) + message.sections = []; + message.sections.push($root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -15199,6 +16913,15 @@ $root.proto = (function() { if (typeof message.isEnhancedSearch !== "boolean") return "isEnhancedSearch: boolean expected"; } + if (message.sections != null && message.hasOwnProperty("sections")) { + if (!Array.isArray(message.sections)) + return "sections: array expected"; + for (var i = 0; i < message.sections.length; ++i) { + var error = $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.verify(message.sections[i]); + if (error) + return "sections." + error; + } + } return null; }; @@ -15256,6 +16979,16 @@ $root.proto = (function() { message.isReasoning = Boolean(object.isReasoning); if (object.isEnhancedSearch != null) message.isEnhancedSearch = Boolean(object.isEnhancedSearch); + if (object.sections) { + if (!Array.isArray(object.sections)) + throw TypeError(".proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sections: array expected"); + message.sections = []; + for (var i = 0; i < object.sections.length; ++i) { + if (typeof object.sections[i] !== "object") + throw TypeError(".proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sections: object expected"); + message.sections[i] = $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.fromObject(object.sections[i]); + } + } return message; }; @@ -15272,8 +17005,10 @@ $root.proto = (function() { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) + if (options.arrays || options.defaults) { object.sourcesMetadata = []; + object.sections = []; + } if (message.statusTitle != null && message.hasOwnProperty("statusTitle")) { object.statusTitle = message.statusTitle; if (options.oneofs) @@ -15304,6 +17039,11 @@ $root.proto = (function() { if (options.oneofs) object._isEnhancedSearch = "isEnhancedSearch"; } + if (message.sections && message.sections.length) { + object.sections = []; + for (var j = 0; j < message.sections.length; ++j) + object.sections[j] = $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.toObject(message.sections[j], options); + } return object; }; @@ -15333,6 +17073,350 @@ $root.proto = (function() { return typeUrlPrefix + "/proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata"; }; + BotPlanningStepMetadata.BotPlanningSearchSourceMetadata = (function() { + + /** + * Properties of a BotPlanningSearchSourceMetadata. + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata + * @interface IBotPlanningSearchSourceMetadata + * @property {string|null} [title] BotPlanningSearchSourceMetadata title + * @property {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider|null} [provider] BotPlanningSearchSourceMetadata provider + * @property {string|null} [sourceUrl] BotPlanningSearchSourceMetadata sourceUrl + * @property {string|null} [favIconUrl] BotPlanningSearchSourceMetadata favIconUrl + */ + + /** + * Constructs a new BotPlanningSearchSourceMetadata. + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata + * @classdesc Represents a BotPlanningSearchSourceMetadata. + * @implements IBotPlanningSearchSourceMetadata + * @constructor + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata=} [properties] Properties to set + */ + function BotPlanningSearchSourceMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotPlanningSearchSourceMetadata title. + * @member {string|null|undefined} title + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @instance + */ + BotPlanningSearchSourceMetadata.prototype.title = null; + + /** + * BotPlanningSearchSourceMetadata provider. + * @member {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider|null|undefined} provider + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @instance + */ + BotPlanningSearchSourceMetadata.prototype.provider = null; + + /** + * BotPlanningSearchSourceMetadata sourceUrl. + * @member {string|null|undefined} sourceUrl + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @instance + */ + BotPlanningSearchSourceMetadata.prototype.sourceUrl = null; + + /** + * BotPlanningSearchSourceMetadata favIconUrl. + * @member {string|null|undefined} favIconUrl + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @instance + */ + BotPlanningSearchSourceMetadata.prototype.favIconUrl = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotPlanningSearchSourceMetadata.prototype, "_title", { + get: $util.oneOfGetter($oneOfFields = ["title"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotPlanningSearchSourceMetadata.prototype, "_provider", { + get: $util.oneOfGetter($oneOfFields = ["provider"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotPlanningSearchSourceMetadata.prototype, "_sourceUrl", { + get: $util.oneOfGetter($oneOfFields = ["sourceUrl"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotPlanningSearchSourceMetadata.prototype, "_favIconUrl", { + get: $util.oneOfGetter($oneOfFields = ["favIconUrl"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BotPlanningSearchSourceMetadata instance using the specified properties. + * @function create + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata=} [properties] Properties to set + * @returns {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata} BotPlanningSearchSourceMetadata instance + */ + BotPlanningSearchSourceMetadata.create = function create(properties) { + return new BotPlanningSearchSourceMetadata(properties); + }; + + /** + * Encodes the specified BotPlanningSearchSourceMetadata message. Does not implicitly {@link proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.verify|verify} messages. + * @function encode + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata} message BotPlanningSearchSourceMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotPlanningSearchSourceMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.title != null && Object.hasOwnProperty.call(message, "title")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.title); + if (message.provider != null && Object.hasOwnProperty.call(message, "provider")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.provider); + if (message.sourceUrl != null && Object.hasOwnProperty.call(message, "sourceUrl")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.sourceUrl); + if (message.favIconUrl != null && Object.hasOwnProperty.call(message, "favIconUrl")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.favIconUrl); + return writer; + }; + + /** + * Encodes the specified BotPlanningSearchSourceMetadata message, length delimited. Does not implicitly {@link proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningSearchSourceMetadata} message BotPlanningSearchSourceMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotPlanningSearchSourceMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotPlanningSearchSourceMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata} BotPlanningSearchSourceMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotPlanningSearchSourceMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.title = reader.string(); + break; + } + case 2: { + message.provider = reader.int32(); + break; + } + case 3: { + message.sourceUrl = reader.string(); + break; + } + case 4: { + message.favIconUrl = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotPlanningSearchSourceMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata} BotPlanningSearchSourceMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotPlanningSearchSourceMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotPlanningSearchSourceMetadata message. + * @function verify + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotPlanningSearchSourceMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.title != null && message.hasOwnProperty("title")) { + properties._title = 1; + if (!$util.isString(message.title)) + return "title: string expected"; + } + if (message.provider != null && message.hasOwnProperty("provider")) { + properties._provider = 1; + switch (message.provider) { + default: + return "provider: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + } + if (message.sourceUrl != null && message.hasOwnProperty("sourceUrl")) { + properties._sourceUrl = 1; + if (!$util.isString(message.sourceUrl)) + return "sourceUrl: string expected"; + } + if (message.favIconUrl != null && message.hasOwnProperty("favIconUrl")) { + properties._favIconUrl = 1; + if (!$util.isString(message.favIconUrl)) + return "favIconUrl: string expected"; + } + return null; + }; + + /** + * Creates a BotPlanningSearchSourceMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata} BotPlanningSearchSourceMetadata + */ + BotPlanningSearchSourceMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata) + return object; + var message = new $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata(); + if (object.title != null) + message.title = String(object.title); + switch (object.provider) { + default: + if (typeof object.provider === "number") { + message.provider = object.provider; + break; + } + break; + case "UNKNOWN_PROVIDER": + case 0: + message.provider = 0; + break; + case "OTHER": + case 1: + message.provider = 1; + break; + case "GOOGLE": + case 2: + message.provider = 2; + break; + case "BING": + case 3: + message.provider = 3; + break; + } + if (object.sourceUrl != null) + message.sourceUrl = String(object.sourceUrl); + if (object.favIconUrl != null) + message.favIconUrl = String(object.favIconUrl); + return message; + }; + + /** + * Creates a plain object from a BotPlanningSearchSourceMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata} message BotPlanningSearchSourceMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotPlanningSearchSourceMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.title != null && message.hasOwnProperty("title")) { + object.title = message.title; + if (options.oneofs) + object._title = "title"; + } + if (message.provider != null && message.hasOwnProperty("provider")) { + object.provider = options.enums === String ? $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider[message.provider] === undefined ? message.provider : $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider[message.provider] : message.provider; + if (options.oneofs) + object._provider = "provider"; + } + if (message.sourceUrl != null && message.hasOwnProperty("sourceUrl")) { + object.sourceUrl = message.sourceUrl; + if (options.oneofs) + object._sourceUrl = "sourceUrl"; + } + if (message.favIconUrl != null && message.hasOwnProperty("favIconUrl")) { + object.favIconUrl = message.favIconUrl; + if (options.oneofs) + object._favIconUrl = "favIconUrl"; + } + return object; + }; + + /** + * Converts this BotPlanningSearchSourceMetadata to JSON. + * @function toJSON + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @instance + * @returns {Object.} JSON object + */ + BotPlanningSearchSourceMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotPlanningSearchSourceMetadata + * @function getTypeUrl + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotPlanningSearchSourceMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata"; + }; + + return BotPlanningSearchSourceMetadata; + })(); + BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata = (function() { /** @@ -15662,6 +17746,318 @@ $root.proto = (function() { return BotPlanningSearchSourcesMetadata; })(); + BotPlanningStepMetadata.BotPlanningStepSectionMetadata = (function() { + + /** + * Properties of a BotPlanningStepSectionMetadata. + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata + * @interface IBotPlanningStepSectionMetadata + * @property {string|null} [sectionTitle] BotPlanningStepSectionMetadata sectionTitle + * @property {string|null} [sectionBody] BotPlanningStepSectionMetadata sectionBody + * @property {Array.|null} [sourcesMetadata] BotPlanningStepSectionMetadata sourcesMetadata + */ + + /** + * Constructs a new BotPlanningStepSectionMetadata. + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata + * @classdesc Represents a BotPlanningStepSectionMetadata. + * @implements IBotPlanningStepSectionMetadata + * @constructor + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata=} [properties] Properties to set + */ + function BotPlanningStepSectionMetadata(properties) { + this.sourcesMetadata = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotPlanningStepSectionMetadata sectionTitle. + * @member {string|null|undefined} sectionTitle + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @instance + */ + BotPlanningStepSectionMetadata.prototype.sectionTitle = null; + + /** + * BotPlanningStepSectionMetadata sectionBody. + * @member {string|null|undefined} sectionBody + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @instance + */ + BotPlanningStepSectionMetadata.prototype.sectionBody = null; + + /** + * BotPlanningStepSectionMetadata sourcesMetadata. + * @member {Array.} sourcesMetadata + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @instance + */ + BotPlanningStepSectionMetadata.prototype.sourcesMetadata = $util.emptyArray; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotPlanningStepSectionMetadata.prototype, "_sectionTitle", { + get: $util.oneOfGetter($oneOfFields = ["sectionTitle"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotPlanningStepSectionMetadata.prototype, "_sectionBody", { + get: $util.oneOfGetter($oneOfFields = ["sectionBody"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BotPlanningStepSectionMetadata instance using the specified properties. + * @function create + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata=} [properties] Properties to set + * @returns {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata} BotPlanningStepSectionMetadata instance + */ + BotPlanningStepSectionMetadata.create = function create(properties) { + return new BotPlanningStepSectionMetadata(properties); + }; + + /** + * Encodes the specified BotPlanningStepSectionMetadata message. Does not implicitly {@link proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.verify|verify} messages. + * @function encode + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata} message BotPlanningStepSectionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotPlanningStepSectionMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.sectionTitle != null && Object.hasOwnProperty.call(message, "sectionTitle")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.sectionTitle); + if (message.sectionBody != null && Object.hasOwnProperty.call(message, "sectionBody")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.sectionBody); + if (message.sourcesMetadata != null && message.sourcesMetadata.length) + for (var i = 0; i < message.sourcesMetadata.length; ++i) + $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.encode(message.sourcesMetadata[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BotPlanningStepSectionMetadata message, length delimited. Does not implicitly {@link proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.IBotPlanningStepSectionMetadata} message BotPlanningStepSectionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotPlanningStepSectionMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotPlanningStepSectionMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata} BotPlanningStepSectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotPlanningStepSectionMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.sectionTitle = reader.string(); + break; + } + case 2: { + message.sectionBody = reader.string(); + break; + } + case 3: { + if (!(message.sourcesMetadata && message.sourcesMetadata.length)) + message.sourcesMetadata = []; + message.sourcesMetadata.push($root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotPlanningStepSectionMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata} BotPlanningStepSectionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotPlanningStepSectionMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotPlanningStepSectionMetadata message. + * @function verify + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotPlanningStepSectionMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.sectionTitle != null && message.hasOwnProperty("sectionTitle")) { + properties._sectionTitle = 1; + if (!$util.isString(message.sectionTitle)) + return "sectionTitle: string expected"; + } + if (message.sectionBody != null && message.hasOwnProperty("sectionBody")) { + properties._sectionBody = 1; + if (!$util.isString(message.sectionBody)) + return "sectionBody: string expected"; + } + if (message.sourcesMetadata != null && message.hasOwnProperty("sourcesMetadata")) { + if (!Array.isArray(message.sourcesMetadata)) + return "sourcesMetadata: array expected"; + for (var i = 0; i < message.sourcesMetadata.length; ++i) { + var error = $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.verify(message.sourcesMetadata[i]); + if (error) + return "sourcesMetadata." + error; + } + } + return null; + }; + + /** + * Creates a BotPlanningStepSectionMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata} BotPlanningStepSectionMetadata + */ + BotPlanningStepSectionMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata) + return object; + var message = new $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata(); + if (object.sectionTitle != null) + message.sectionTitle = String(object.sectionTitle); + if (object.sectionBody != null) + message.sectionBody = String(object.sectionBody); + if (object.sourcesMetadata) { + if (!Array.isArray(object.sourcesMetadata)) + throw TypeError(".proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.sourcesMetadata: array expected"); + message.sourcesMetadata = []; + for (var i = 0; i < object.sourcesMetadata.length; ++i) { + if (typeof object.sourcesMetadata[i] !== "object") + throw TypeError(".proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.sourcesMetadata: object expected"); + message.sourcesMetadata[i] = $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.fromObject(object.sourcesMetadata[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BotPlanningStepSectionMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata} message BotPlanningStepSectionMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotPlanningStepSectionMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.sourcesMetadata = []; + if (message.sectionTitle != null && message.hasOwnProperty("sectionTitle")) { + object.sectionTitle = message.sectionTitle; + if (options.oneofs) + object._sectionTitle = "sectionTitle"; + } + if (message.sectionBody != null && message.hasOwnProperty("sectionBody")) { + object.sectionBody = message.sectionBody; + if (options.oneofs) + object._sectionBody = "sectionBody"; + } + if (message.sourcesMetadata && message.sourcesMetadata.length) { + object.sourcesMetadata = []; + for (var j = 0; j < message.sourcesMetadata.length; ++j) + object.sourcesMetadata[j] = $root.proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.toObject(message.sourcesMetadata[j], options); + } + return object; + }; + + /** + * Converts this BotPlanningStepSectionMetadata to JSON. + * @function toJSON + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @instance + * @returns {Object.} JSON object + */ + BotPlanningStepSectionMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotPlanningStepSectionMetadata + * @function getTypeUrl + * @memberof proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotPlanningStepSectionMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata"; + }; + + return BotPlanningStepSectionMetadata; + })(); + + /** + * BotSearchSourceProvider enum. + * @name proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider + * @enum {number} + * @property {number} UNKNOWN_PROVIDER=0 UNKNOWN_PROVIDER value + * @property {number} OTHER=1 OTHER value + * @property {number} GOOGLE=2 GOOGLE value + * @property {number} BING=3 BING value + */ + BotPlanningStepMetadata.BotSearchSourceProvider = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "UNKNOWN_PROVIDER"] = 0; + values[valuesById[1] = "OTHER"] = 1; + values[valuesById[2] = "GOOGLE"] = 2; + values[valuesById[3] = "BING"] = 3; + return values; + })(); + /** * PlanningStepStatus enum. * @name proto.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus @@ -15686,6 +18082,288 @@ $root.proto = (function() { return BotProgressIndicatorMetadata; })(); + proto.BotPromotionMessageMetadata = (function() { + + /** + * Properties of a BotPromotionMessageMetadata. + * @memberof proto + * @interface IBotPromotionMessageMetadata + * @property {proto.BotPromotionMessageMetadata.BotPromotionType|null} [promotionType] BotPromotionMessageMetadata promotionType + * @property {string|null} [buttonTitle] BotPromotionMessageMetadata buttonTitle + */ + + /** + * Constructs a new BotPromotionMessageMetadata. + * @memberof proto + * @classdesc Represents a BotPromotionMessageMetadata. + * @implements IBotPromotionMessageMetadata + * @constructor + * @param {proto.IBotPromotionMessageMetadata=} [properties] Properties to set + */ + function BotPromotionMessageMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotPromotionMessageMetadata promotionType. + * @member {proto.BotPromotionMessageMetadata.BotPromotionType|null|undefined} promotionType + * @memberof proto.BotPromotionMessageMetadata + * @instance + */ + BotPromotionMessageMetadata.prototype.promotionType = null; + + /** + * BotPromotionMessageMetadata buttonTitle. + * @member {string|null|undefined} buttonTitle + * @memberof proto.BotPromotionMessageMetadata + * @instance + */ + BotPromotionMessageMetadata.prototype.buttonTitle = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotPromotionMessageMetadata.prototype, "_promotionType", { + get: $util.oneOfGetter($oneOfFields = ["promotionType"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotPromotionMessageMetadata.prototype, "_buttonTitle", { + get: $util.oneOfGetter($oneOfFields = ["buttonTitle"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BotPromotionMessageMetadata instance using the specified properties. + * @function create + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {proto.IBotPromotionMessageMetadata=} [properties] Properties to set + * @returns {proto.BotPromotionMessageMetadata} BotPromotionMessageMetadata instance + */ + BotPromotionMessageMetadata.create = function create(properties) { + return new BotPromotionMessageMetadata(properties); + }; + + /** + * Encodes the specified BotPromotionMessageMetadata message. Does not implicitly {@link proto.BotPromotionMessageMetadata.verify|verify} messages. + * @function encode + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {proto.IBotPromotionMessageMetadata} message BotPromotionMessageMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotPromotionMessageMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.promotionType != null && Object.hasOwnProperty.call(message, "promotionType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.promotionType); + if (message.buttonTitle != null && Object.hasOwnProperty.call(message, "buttonTitle")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.buttonTitle); + return writer; + }; + + /** + * Encodes the specified BotPromotionMessageMetadata message, length delimited. Does not implicitly {@link proto.BotPromotionMessageMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {proto.IBotPromotionMessageMetadata} message BotPromotionMessageMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotPromotionMessageMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotPromotionMessageMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotPromotionMessageMetadata} BotPromotionMessageMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotPromotionMessageMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotPromotionMessageMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.promotionType = reader.int32(); + break; + } + case 2: { + message.buttonTitle = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotPromotionMessageMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotPromotionMessageMetadata} BotPromotionMessageMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotPromotionMessageMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotPromotionMessageMetadata message. + * @function verify + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotPromotionMessageMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.promotionType != null && message.hasOwnProperty("promotionType")) { + properties._promotionType = 1; + switch (message.promotionType) { + default: + return "promotionType: enum value expected"; + case 0: + case 1: + break; + } + } + if (message.buttonTitle != null && message.hasOwnProperty("buttonTitle")) { + properties._buttonTitle = 1; + if (!$util.isString(message.buttonTitle)) + return "buttonTitle: string expected"; + } + return null; + }; + + /** + * Creates a BotPromotionMessageMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.BotPromotionMessageMetadata} BotPromotionMessageMetadata + */ + BotPromotionMessageMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotPromotionMessageMetadata) + return object; + var message = new $root.proto.BotPromotionMessageMetadata(); + switch (object.promotionType) { + default: + if (typeof object.promotionType === "number") { + message.promotionType = object.promotionType; + break; + } + break; + case "UNKNOWN_TYPE": + case 0: + message.promotionType = 0; + break; + case "C50": + case 1: + message.promotionType = 1; + break; + } + if (object.buttonTitle != null) + message.buttonTitle = String(object.buttonTitle); + return message; + }; + + /** + * Creates a plain object from a BotPromotionMessageMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {proto.BotPromotionMessageMetadata} message BotPromotionMessageMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotPromotionMessageMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.promotionType != null && message.hasOwnProperty("promotionType")) { + object.promotionType = options.enums === String ? $root.proto.BotPromotionMessageMetadata.BotPromotionType[message.promotionType] === undefined ? message.promotionType : $root.proto.BotPromotionMessageMetadata.BotPromotionType[message.promotionType] : message.promotionType; + if (options.oneofs) + object._promotionType = "promotionType"; + } + if (message.buttonTitle != null && message.hasOwnProperty("buttonTitle")) { + object.buttonTitle = message.buttonTitle; + if (options.oneofs) + object._buttonTitle = "buttonTitle"; + } + return object; + }; + + /** + * Converts this BotPromotionMessageMetadata to JSON. + * @function toJSON + * @memberof proto.BotPromotionMessageMetadata + * @instance + * @returns {Object.} JSON object + */ + BotPromotionMessageMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotPromotionMessageMetadata + * @function getTypeUrl + * @memberof proto.BotPromotionMessageMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotPromotionMessageMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotPromotionMessageMetadata"; + }; + + /** + * BotPromotionType enum. + * @name proto.BotPromotionMessageMetadata.BotPromotionType + * @enum {number} + * @property {number} UNKNOWN_TYPE=0 UNKNOWN_TYPE value + * @property {number} C50=1 C50 value + */ + BotPromotionMessageMetadata.BotPromotionType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "UNKNOWN_TYPE"] = 0; + values[valuesById[1] = "C50"] = 1; + return values; + })(); + + return BotPromotionMessageMetadata; + })(); + proto.BotPromptSuggestion = (function() { /** @@ -16159,6 +18837,555 @@ $root.proto = (function() { return BotPromptSuggestions; })(); + proto.BotQuotaMetadata = (function() { + + /** + * Properties of a BotQuotaMetadata. + * @memberof proto + * @interface IBotQuotaMetadata + * @property {Array.|null} [botFeatureQuotaMetadata] BotQuotaMetadata botFeatureQuotaMetadata + */ + + /** + * Constructs a new BotQuotaMetadata. + * @memberof proto + * @classdesc Represents a BotQuotaMetadata. + * @implements IBotQuotaMetadata + * @constructor + * @param {proto.IBotQuotaMetadata=} [properties] Properties to set + */ + function BotQuotaMetadata(properties) { + this.botFeatureQuotaMetadata = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotQuotaMetadata botFeatureQuotaMetadata. + * @member {Array.} botFeatureQuotaMetadata + * @memberof proto.BotQuotaMetadata + * @instance + */ + BotQuotaMetadata.prototype.botFeatureQuotaMetadata = $util.emptyArray; + + /** + * Creates a new BotQuotaMetadata instance using the specified properties. + * @function create + * @memberof proto.BotQuotaMetadata + * @static + * @param {proto.IBotQuotaMetadata=} [properties] Properties to set + * @returns {proto.BotQuotaMetadata} BotQuotaMetadata instance + */ + BotQuotaMetadata.create = function create(properties) { + return new BotQuotaMetadata(properties); + }; + + /** + * Encodes the specified BotQuotaMetadata message. Does not implicitly {@link proto.BotQuotaMetadata.verify|verify} messages. + * @function encode + * @memberof proto.BotQuotaMetadata + * @static + * @param {proto.IBotQuotaMetadata} message BotQuotaMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotQuotaMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.botFeatureQuotaMetadata != null && message.botFeatureQuotaMetadata.length) + for (var i = 0; i < message.botFeatureQuotaMetadata.length; ++i) + $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata.encode(message.botFeatureQuotaMetadata[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BotQuotaMetadata message, length delimited. Does not implicitly {@link proto.BotQuotaMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotQuotaMetadata + * @static + * @param {proto.IBotQuotaMetadata} message BotQuotaMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotQuotaMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotQuotaMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.BotQuotaMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotQuotaMetadata} BotQuotaMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotQuotaMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotQuotaMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.botFeatureQuotaMetadata && message.botFeatureQuotaMetadata.length)) + message.botFeatureQuotaMetadata = []; + message.botFeatureQuotaMetadata.push($root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotQuotaMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotQuotaMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotQuotaMetadata} BotQuotaMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotQuotaMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotQuotaMetadata message. + * @function verify + * @memberof proto.BotQuotaMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotQuotaMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.botFeatureQuotaMetadata != null && message.hasOwnProperty("botFeatureQuotaMetadata")) { + if (!Array.isArray(message.botFeatureQuotaMetadata)) + return "botFeatureQuotaMetadata: array expected"; + for (var i = 0; i < message.botFeatureQuotaMetadata.length; ++i) { + var error = $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata.verify(message.botFeatureQuotaMetadata[i]); + if (error) + return "botFeatureQuotaMetadata." + error; + } + } + return null; + }; + + /** + * Creates a BotQuotaMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotQuotaMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.BotQuotaMetadata} BotQuotaMetadata + */ + BotQuotaMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotQuotaMetadata) + return object; + var message = new $root.proto.BotQuotaMetadata(); + if (object.botFeatureQuotaMetadata) { + if (!Array.isArray(object.botFeatureQuotaMetadata)) + throw TypeError(".proto.BotQuotaMetadata.botFeatureQuotaMetadata: array expected"); + message.botFeatureQuotaMetadata = []; + for (var i = 0; i < object.botFeatureQuotaMetadata.length; ++i) { + if (typeof object.botFeatureQuotaMetadata[i] !== "object") + throw TypeError(".proto.BotQuotaMetadata.botFeatureQuotaMetadata: object expected"); + message.botFeatureQuotaMetadata[i] = $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata.fromObject(object.botFeatureQuotaMetadata[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BotQuotaMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotQuotaMetadata + * @static + * @param {proto.BotQuotaMetadata} message BotQuotaMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotQuotaMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.botFeatureQuotaMetadata = []; + if (message.botFeatureQuotaMetadata && message.botFeatureQuotaMetadata.length) { + object.botFeatureQuotaMetadata = []; + for (var j = 0; j < message.botFeatureQuotaMetadata.length; ++j) + object.botFeatureQuotaMetadata[j] = $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata.toObject(message.botFeatureQuotaMetadata[j], options); + } + return object; + }; + + /** + * Converts this BotQuotaMetadata to JSON. + * @function toJSON + * @memberof proto.BotQuotaMetadata + * @instance + * @returns {Object.} JSON object + */ + BotQuotaMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotQuotaMetadata + * @function getTypeUrl + * @memberof proto.BotQuotaMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotQuotaMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotQuotaMetadata"; + }; + + BotQuotaMetadata.BotFeatureQuotaMetadata = (function() { + + /** + * Properties of a BotFeatureQuotaMetadata. + * @memberof proto.BotQuotaMetadata + * @interface IBotFeatureQuotaMetadata + * @property {proto.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType|null} [featureType] BotFeatureQuotaMetadata featureType + * @property {number|null} [remainingQuota] BotFeatureQuotaMetadata remainingQuota + * @property {number|Long|null} [expirationTimestamp] BotFeatureQuotaMetadata expirationTimestamp + */ + + /** + * Constructs a new BotFeatureQuotaMetadata. + * @memberof proto.BotQuotaMetadata + * @classdesc Represents a BotFeatureQuotaMetadata. + * @implements IBotFeatureQuotaMetadata + * @constructor + * @param {proto.BotQuotaMetadata.IBotFeatureQuotaMetadata=} [properties] Properties to set + */ + function BotFeatureQuotaMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotFeatureQuotaMetadata featureType. + * @member {proto.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType|null|undefined} featureType + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @instance + */ + BotFeatureQuotaMetadata.prototype.featureType = null; + + /** + * BotFeatureQuotaMetadata remainingQuota. + * @member {number|null|undefined} remainingQuota + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @instance + */ + BotFeatureQuotaMetadata.prototype.remainingQuota = null; + + /** + * BotFeatureQuotaMetadata expirationTimestamp. + * @member {number|Long|null|undefined} expirationTimestamp + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @instance + */ + BotFeatureQuotaMetadata.prototype.expirationTimestamp = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotFeatureQuotaMetadata.prototype, "_featureType", { + get: $util.oneOfGetter($oneOfFields = ["featureType"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotFeatureQuotaMetadata.prototype, "_remainingQuota", { + get: $util.oneOfGetter($oneOfFields = ["remainingQuota"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotFeatureQuotaMetadata.prototype, "_expirationTimestamp", { + get: $util.oneOfGetter($oneOfFields = ["expirationTimestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BotFeatureQuotaMetadata instance using the specified properties. + * @function create + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {proto.BotQuotaMetadata.IBotFeatureQuotaMetadata=} [properties] Properties to set + * @returns {proto.BotQuotaMetadata.BotFeatureQuotaMetadata} BotFeatureQuotaMetadata instance + */ + BotFeatureQuotaMetadata.create = function create(properties) { + return new BotFeatureQuotaMetadata(properties); + }; + + /** + * Encodes the specified BotFeatureQuotaMetadata message. Does not implicitly {@link proto.BotQuotaMetadata.BotFeatureQuotaMetadata.verify|verify} messages. + * @function encode + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {proto.BotQuotaMetadata.IBotFeatureQuotaMetadata} message BotFeatureQuotaMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotFeatureQuotaMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.featureType != null && Object.hasOwnProperty.call(message, "featureType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.featureType); + if (message.remainingQuota != null && Object.hasOwnProperty.call(message, "remainingQuota")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.remainingQuota); + if (message.expirationTimestamp != null && Object.hasOwnProperty.call(message, "expirationTimestamp")) + writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.expirationTimestamp); + return writer; + }; + + /** + * Encodes the specified BotFeatureQuotaMetadata message, length delimited. Does not implicitly {@link proto.BotQuotaMetadata.BotFeatureQuotaMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {proto.BotQuotaMetadata.IBotFeatureQuotaMetadata} message BotFeatureQuotaMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotFeatureQuotaMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotFeatureQuotaMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotQuotaMetadata.BotFeatureQuotaMetadata} BotFeatureQuotaMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotFeatureQuotaMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.featureType = reader.int32(); + break; + } + case 2: { + message.remainingQuota = reader.uint32(); + break; + } + case 3: { + message.expirationTimestamp = reader.uint64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotFeatureQuotaMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotQuotaMetadata.BotFeatureQuotaMetadata} BotFeatureQuotaMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotFeatureQuotaMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotFeatureQuotaMetadata message. + * @function verify + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotFeatureQuotaMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.featureType != null && message.hasOwnProperty("featureType")) { + properties._featureType = 1; + switch (message.featureType) { + default: + return "featureType: enum value expected"; + case 0: + case 1: + break; + } + } + if (message.remainingQuota != null && message.hasOwnProperty("remainingQuota")) { + properties._remainingQuota = 1; + if (!$util.isInteger(message.remainingQuota)) + return "remainingQuota: integer expected"; + } + if (message.expirationTimestamp != null && message.hasOwnProperty("expirationTimestamp")) { + properties._expirationTimestamp = 1; + if (!$util.isInteger(message.expirationTimestamp) && !(message.expirationTimestamp && $util.isInteger(message.expirationTimestamp.low) && $util.isInteger(message.expirationTimestamp.high))) + return "expirationTimestamp: integer|Long expected"; + } + return null; + }; + + /** + * Creates a BotFeatureQuotaMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.BotQuotaMetadata.BotFeatureQuotaMetadata} BotFeatureQuotaMetadata + */ + BotFeatureQuotaMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata) + return object; + var message = new $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata(); + switch (object.featureType) { + default: + if (typeof object.featureType === "number") { + message.featureType = object.featureType; + break; + } + break; + case "UNKNOWN_FEATURE": + case 0: + message.featureType = 0; + break; + case "REASONING_FEATURE": + case 1: + message.featureType = 1; + break; + } + if (object.remainingQuota != null) + message.remainingQuota = object.remainingQuota >>> 0; + if (object.expirationTimestamp != null) + if ($util.Long) + (message.expirationTimestamp = $util.Long.fromValue(object.expirationTimestamp)).unsigned = true; + else if (typeof object.expirationTimestamp === "string") + message.expirationTimestamp = parseInt(object.expirationTimestamp, 10); + else if (typeof object.expirationTimestamp === "number") + message.expirationTimestamp = object.expirationTimestamp; + else if (typeof object.expirationTimestamp === "object") + message.expirationTimestamp = new $util.LongBits(object.expirationTimestamp.low >>> 0, object.expirationTimestamp.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from a BotFeatureQuotaMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {proto.BotQuotaMetadata.BotFeatureQuotaMetadata} message BotFeatureQuotaMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotFeatureQuotaMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.featureType != null && message.hasOwnProperty("featureType")) { + object.featureType = options.enums === String ? $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType[message.featureType] === undefined ? message.featureType : $root.proto.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType[message.featureType] : message.featureType; + if (options.oneofs) + object._featureType = "featureType"; + } + if (message.remainingQuota != null && message.hasOwnProperty("remainingQuota")) { + object.remainingQuota = message.remainingQuota; + if (options.oneofs) + object._remainingQuota = "remainingQuota"; + } + if (message.expirationTimestamp != null && message.hasOwnProperty("expirationTimestamp")) { + if (typeof message.expirationTimestamp === "number") + object.expirationTimestamp = options.longs === String ? String(message.expirationTimestamp) : message.expirationTimestamp; + else + object.expirationTimestamp = options.longs === String ? $util.Long.prototype.toString.call(message.expirationTimestamp) : options.longs === Number ? new $util.LongBits(message.expirationTimestamp.low >>> 0, message.expirationTimestamp.high >>> 0).toNumber(true) : message.expirationTimestamp; + if (options.oneofs) + object._expirationTimestamp = "expirationTimestamp"; + } + return object; + }; + + /** + * Converts this BotFeatureQuotaMetadata to JSON. + * @function toJSON + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @instance + * @returns {Object.} JSON object + */ + BotFeatureQuotaMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotFeatureQuotaMetadata + * @function getTypeUrl + * @memberof proto.BotQuotaMetadata.BotFeatureQuotaMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotFeatureQuotaMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotQuotaMetadata.BotFeatureQuotaMetadata"; + }; + + /** + * BotFeatureType enum. + * @name proto.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType + * @enum {number} + * @property {number} UNKNOWN_FEATURE=0 UNKNOWN_FEATURE value + * @property {number} REASONING_FEATURE=1 REASONING_FEATURE value + */ + BotFeatureQuotaMetadata.BotFeatureType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "UNKNOWN_FEATURE"] = 0; + values[valuesById[1] = "REASONING_FEATURE"] = 1; + return values; + })(); + + return BotFeatureQuotaMetadata; + })(); + + return BotQuotaMetadata; + })(); + proto.BotReminderMetadata = (function() { /** @@ -17421,6 +20648,658 @@ $root.proto = (function() { return values; })(); + proto.BotSourcesMetadata = (function() { + + /** + * Properties of a BotSourcesMetadata. + * @memberof proto + * @interface IBotSourcesMetadata + * @property {Array.|null} [sources] BotSourcesMetadata sources + */ + + /** + * Constructs a new BotSourcesMetadata. + * @memberof proto + * @classdesc Represents a BotSourcesMetadata. + * @implements IBotSourcesMetadata + * @constructor + * @param {proto.IBotSourcesMetadata=} [properties] Properties to set + */ + function BotSourcesMetadata(properties) { + this.sources = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotSourcesMetadata sources. + * @member {Array.} sources + * @memberof proto.BotSourcesMetadata + * @instance + */ + BotSourcesMetadata.prototype.sources = $util.emptyArray; + + /** + * Creates a new BotSourcesMetadata instance using the specified properties. + * @function create + * @memberof proto.BotSourcesMetadata + * @static + * @param {proto.IBotSourcesMetadata=} [properties] Properties to set + * @returns {proto.BotSourcesMetadata} BotSourcesMetadata instance + */ + BotSourcesMetadata.create = function create(properties) { + return new BotSourcesMetadata(properties); + }; + + /** + * Encodes the specified BotSourcesMetadata message. Does not implicitly {@link proto.BotSourcesMetadata.verify|verify} messages. + * @function encode + * @memberof proto.BotSourcesMetadata + * @static + * @param {proto.IBotSourcesMetadata} message BotSourcesMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotSourcesMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.sources != null && message.sources.length) + for (var i = 0; i < message.sources.length; ++i) + $root.proto.BotSourcesMetadata.BotSourceItem.encode(message.sources[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified BotSourcesMetadata message, length delimited. Does not implicitly {@link proto.BotSourcesMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotSourcesMetadata + * @static + * @param {proto.IBotSourcesMetadata} message BotSourcesMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotSourcesMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotSourcesMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.BotSourcesMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotSourcesMetadata} BotSourcesMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotSourcesMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotSourcesMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.sources && message.sources.length)) + message.sources = []; + message.sources.push($root.proto.BotSourcesMetadata.BotSourceItem.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotSourcesMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotSourcesMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotSourcesMetadata} BotSourcesMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotSourcesMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotSourcesMetadata message. + * @function verify + * @memberof proto.BotSourcesMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotSourcesMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.sources != null && message.hasOwnProperty("sources")) { + if (!Array.isArray(message.sources)) + return "sources: array expected"; + for (var i = 0; i < message.sources.length; ++i) { + var error = $root.proto.BotSourcesMetadata.BotSourceItem.verify(message.sources[i]); + if (error) + return "sources." + error; + } + } + return null; + }; + + /** + * Creates a BotSourcesMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotSourcesMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.BotSourcesMetadata} BotSourcesMetadata + */ + BotSourcesMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotSourcesMetadata) + return object; + var message = new $root.proto.BotSourcesMetadata(); + if (object.sources) { + if (!Array.isArray(object.sources)) + throw TypeError(".proto.BotSourcesMetadata.sources: array expected"); + message.sources = []; + for (var i = 0; i < object.sources.length; ++i) { + if (typeof object.sources[i] !== "object") + throw TypeError(".proto.BotSourcesMetadata.sources: object expected"); + message.sources[i] = $root.proto.BotSourcesMetadata.BotSourceItem.fromObject(object.sources[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a BotSourcesMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotSourcesMetadata + * @static + * @param {proto.BotSourcesMetadata} message BotSourcesMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotSourcesMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.sources = []; + if (message.sources && message.sources.length) { + object.sources = []; + for (var j = 0; j < message.sources.length; ++j) + object.sources[j] = $root.proto.BotSourcesMetadata.BotSourceItem.toObject(message.sources[j], options); + } + return object; + }; + + /** + * Converts this BotSourcesMetadata to JSON. + * @function toJSON + * @memberof proto.BotSourcesMetadata + * @instance + * @returns {Object.} JSON object + */ + BotSourcesMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotSourcesMetadata + * @function getTypeUrl + * @memberof proto.BotSourcesMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotSourcesMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotSourcesMetadata"; + }; + + BotSourcesMetadata.BotSourceItem = (function() { + + /** + * Properties of a BotSourceItem. + * @memberof proto.BotSourcesMetadata + * @interface IBotSourceItem + * @property {proto.BotSourcesMetadata.BotSourceItem.SourceProvider|null} [provider] BotSourceItem provider + * @property {string|null} [thumbnailCdnUrl] BotSourceItem thumbnailCdnUrl + * @property {string|null} [sourceProviderUrl] BotSourceItem sourceProviderUrl + * @property {string|null} [sourceQuery] BotSourceItem sourceQuery + * @property {string|null} [faviconCdnUrl] BotSourceItem faviconCdnUrl + * @property {number|null} [citationNumber] BotSourceItem citationNumber + */ + + /** + * Constructs a new BotSourceItem. + * @memberof proto.BotSourcesMetadata + * @classdesc Represents a BotSourceItem. + * @implements IBotSourceItem + * @constructor + * @param {proto.BotSourcesMetadata.IBotSourceItem=} [properties] Properties to set + */ + function BotSourceItem(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BotSourceItem provider. + * @member {proto.BotSourcesMetadata.BotSourceItem.SourceProvider|null|undefined} provider + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @instance + */ + BotSourceItem.prototype.provider = null; + + /** + * BotSourceItem thumbnailCdnUrl. + * @member {string|null|undefined} thumbnailCdnUrl + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @instance + */ + BotSourceItem.prototype.thumbnailCdnUrl = null; + + /** + * BotSourceItem sourceProviderUrl. + * @member {string|null|undefined} sourceProviderUrl + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @instance + */ + BotSourceItem.prototype.sourceProviderUrl = null; + + /** + * BotSourceItem sourceQuery. + * @member {string|null|undefined} sourceQuery + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @instance + */ + BotSourceItem.prototype.sourceQuery = null; + + /** + * BotSourceItem faviconCdnUrl. + * @member {string|null|undefined} faviconCdnUrl + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @instance + */ + BotSourceItem.prototype.faviconCdnUrl = null; + + /** + * BotSourceItem citationNumber. + * @member {number|null|undefined} citationNumber + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @instance + */ + BotSourceItem.prototype.citationNumber = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotSourceItem.prototype, "_provider", { + get: $util.oneOfGetter($oneOfFields = ["provider"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotSourceItem.prototype, "_thumbnailCdnUrl", { + get: $util.oneOfGetter($oneOfFields = ["thumbnailCdnUrl"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotSourceItem.prototype, "_sourceProviderUrl", { + get: $util.oneOfGetter($oneOfFields = ["sourceProviderUrl"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotSourceItem.prototype, "_sourceQuery", { + get: $util.oneOfGetter($oneOfFields = ["sourceQuery"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotSourceItem.prototype, "_faviconCdnUrl", { + get: $util.oneOfGetter($oneOfFields = ["faviconCdnUrl"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(BotSourceItem.prototype, "_citationNumber", { + get: $util.oneOfGetter($oneOfFields = ["citationNumber"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BotSourceItem instance using the specified properties. + * @function create + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {proto.BotSourcesMetadata.IBotSourceItem=} [properties] Properties to set + * @returns {proto.BotSourcesMetadata.BotSourceItem} BotSourceItem instance + */ + BotSourceItem.create = function create(properties) { + return new BotSourceItem(properties); + }; + + /** + * Encodes the specified BotSourceItem message. Does not implicitly {@link proto.BotSourcesMetadata.BotSourceItem.verify|verify} messages. + * @function encode + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {proto.BotSourcesMetadata.IBotSourceItem} message BotSourceItem message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotSourceItem.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.provider != null && Object.hasOwnProperty.call(message, "provider")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.provider); + if (message.thumbnailCdnUrl != null && Object.hasOwnProperty.call(message, "thumbnailCdnUrl")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.thumbnailCdnUrl); + if (message.sourceProviderUrl != null && Object.hasOwnProperty.call(message, "sourceProviderUrl")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.sourceProviderUrl); + if (message.sourceQuery != null && Object.hasOwnProperty.call(message, "sourceQuery")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.sourceQuery); + if (message.faviconCdnUrl != null && Object.hasOwnProperty.call(message, "faviconCdnUrl")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.faviconCdnUrl); + if (message.citationNumber != null && Object.hasOwnProperty.call(message, "citationNumber")) + writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.citationNumber); + return writer; + }; + + /** + * Encodes the specified BotSourceItem message, length delimited. Does not implicitly {@link proto.BotSourcesMetadata.BotSourceItem.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {proto.BotSourcesMetadata.IBotSourceItem} message BotSourceItem message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BotSourceItem.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BotSourceItem message from the specified reader or buffer. + * @function decode + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.BotSourcesMetadata.BotSourceItem} BotSourceItem + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotSourceItem.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.BotSourcesMetadata.BotSourceItem(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.provider = reader.int32(); + break; + } + case 2: { + message.thumbnailCdnUrl = reader.string(); + break; + } + case 3: { + message.sourceProviderUrl = reader.string(); + break; + } + case 4: { + message.sourceQuery = reader.string(); + break; + } + case 5: { + message.faviconCdnUrl = reader.string(); + break; + } + case 6: { + message.citationNumber = reader.uint32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BotSourceItem message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.BotSourcesMetadata.BotSourceItem} BotSourceItem + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BotSourceItem.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BotSourceItem message. + * @function verify + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BotSourceItem.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.provider != null && message.hasOwnProperty("provider")) { + properties._provider = 1; + switch (message.provider) { + default: + return "provider: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + } + if (message.thumbnailCdnUrl != null && message.hasOwnProperty("thumbnailCdnUrl")) { + properties._thumbnailCdnUrl = 1; + if (!$util.isString(message.thumbnailCdnUrl)) + return "thumbnailCdnUrl: string expected"; + } + if (message.sourceProviderUrl != null && message.hasOwnProperty("sourceProviderUrl")) { + properties._sourceProviderUrl = 1; + if (!$util.isString(message.sourceProviderUrl)) + return "sourceProviderUrl: string expected"; + } + if (message.sourceQuery != null && message.hasOwnProperty("sourceQuery")) { + properties._sourceQuery = 1; + if (!$util.isString(message.sourceQuery)) + return "sourceQuery: string expected"; + } + if (message.faviconCdnUrl != null && message.hasOwnProperty("faviconCdnUrl")) { + properties._faviconCdnUrl = 1; + if (!$util.isString(message.faviconCdnUrl)) + return "faviconCdnUrl: string expected"; + } + if (message.citationNumber != null && message.hasOwnProperty("citationNumber")) { + properties._citationNumber = 1; + if (!$util.isInteger(message.citationNumber)) + return "citationNumber: integer expected"; + } + return null; + }; + + /** + * Creates a BotSourceItem message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {Object.} object Plain object + * @returns {proto.BotSourcesMetadata.BotSourceItem} BotSourceItem + */ + BotSourceItem.fromObject = function fromObject(object) { + if (object instanceof $root.proto.BotSourcesMetadata.BotSourceItem) + return object; + var message = new $root.proto.BotSourcesMetadata.BotSourceItem(); + switch (object.provider) { + default: + if (typeof object.provider === "number") { + message.provider = object.provider; + break; + } + break; + case "UNKNOWN": + case 0: + message.provider = 0; + break; + case "BING": + case 1: + message.provider = 1; + break; + case "GOOGLE": + case 2: + message.provider = 2; + break; + case "SUPPORT": + case 3: + message.provider = 3; + break; + } + if (object.thumbnailCdnUrl != null) + message.thumbnailCdnUrl = String(object.thumbnailCdnUrl); + if (object.sourceProviderUrl != null) + message.sourceProviderUrl = String(object.sourceProviderUrl); + if (object.sourceQuery != null) + message.sourceQuery = String(object.sourceQuery); + if (object.faviconCdnUrl != null) + message.faviconCdnUrl = String(object.faviconCdnUrl); + if (object.citationNumber != null) + message.citationNumber = object.citationNumber >>> 0; + return message; + }; + + /** + * Creates a plain object from a BotSourceItem message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {proto.BotSourcesMetadata.BotSourceItem} message BotSourceItem + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BotSourceItem.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.provider != null && message.hasOwnProperty("provider")) { + object.provider = options.enums === String ? $root.proto.BotSourcesMetadata.BotSourceItem.SourceProvider[message.provider] === undefined ? message.provider : $root.proto.BotSourcesMetadata.BotSourceItem.SourceProvider[message.provider] : message.provider; + if (options.oneofs) + object._provider = "provider"; + } + if (message.thumbnailCdnUrl != null && message.hasOwnProperty("thumbnailCdnUrl")) { + object.thumbnailCdnUrl = message.thumbnailCdnUrl; + if (options.oneofs) + object._thumbnailCdnUrl = "thumbnailCdnUrl"; + } + if (message.sourceProviderUrl != null && message.hasOwnProperty("sourceProviderUrl")) { + object.sourceProviderUrl = message.sourceProviderUrl; + if (options.oneofs) + object._sourceProviderUrl = "sourceProviderUrl"; + } + if (message.sourceQuery != null && message.hasOwnProperty("sourceQuery")) { + object.sourceQuery = message.sourceQuery; + if (options.oneofs) + object._sourceQuery = "sourceQuery"; + } + if (message.faviconCdnUrl != null && message.hasOwnProperty("faviconCdnUrl")) { + object.faviconCdnUrl = message.faviconCdnUrl; + if (options.oneofs) + object._faviconCdnUrl = "faviconCdnUrl"; + } + if (message.citationNumber != null && message.hasOwnProperty("citationNumber")) { + object.citationNumber = message.citationNumber; + if (options.oneofs) + object._citationNumber = "citationNumber"; + } + return object; + }; + + /** + * Converts this BotSourceItem to JSON. + * @function toJSON + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @instance + * @returns {Object.} JSON object + */ + BotSourceItem.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BotSourceItem + * @function getTypeUrl + * @memberof proto.BotSourcesMetadata.BotSourceItem + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BotSourceItem.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.BotSourcesMetadata.BotSourceItem"; + }; + + /** + * SourceProvider enum. + * @name proto.BotSourcesMetadata.BotSourceItem.SourceProvider + * @enum {number} + * @property {number} UNKNOWN=0 UNKNOWN value + * @property {number} BING=1 BING value + * @property {number} GOOGLE=2 GOOGLE value + * @property {number} SUPPORT=3 SUPPORT value + */ + BotSourceItem.SourceProvider = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "UNKNOWN"] = 0; + values[valuesById[1] = "BING"] = 1; + values[valuesById[2] = "GOOGLE"] = 2; + values[valuesById[3] = "SUPPORT"] = 3; + return values; + })(); + + return BotSourceItem; + })(); + + return BotSourcesMetadata; + })(); + proto.BotSuggestedPromptMetadata = (function() { /** @@ -22182,6 +26061,8 @@ $root.proto = (function() { * @property {number|null} [memClass] ClientPayload memClass * @property {proto.ClientPayload.IInteropData|null} [interopData] ClientPayload interopData * @property {proto.ClientPayload.TrafficAnonymization|null} [trafficAnonymization] ClientPayload trafficAnonymization + * @property {boolean|null} [lidDbMigrated] ClientPayload lidDbMigrated + * @property {proto.ClientPayload.AccountType|null} [accountType] ClientPayload accountType */ /** @@ -22424,6 +26305,22 @@ $root.proto = (function() { */ ClientPayload.prototype.trafficAnonymization = null; + /** + * ClientPayload lidDbMigrated. + * @member {boolean|null|undefined} lidDbMigrated + * @memberof proto.ClientPayload + * @instance + */ + ClientPayload.prototype.lidDbMigrated = null; + + /** + * ClientPayload accountType. + * @member {proto.ClientPayload.AccountType|null|undefined} accountType + * @memberof proto.ClientPayload + * @instance + */ + ClientPayload.prototype.accountType = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -22589,6 +26486,18 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(ClientPayload.prototype, "_lidDbMigrated", { + get: $util.oneOfGetter($oneOfFields = ["lidDbMigrated"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ClientPayload.prototype, "_accountType", { + get: $util.oneOfGetter($oneOfFields = ["accountType"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new ClientPayload instance using the specified properties. * @function create @@ -22673,6 +26582,10 @@ $root.proto = (function() { $root.proto.ClientPayload.InteropData.encode(message.interopData, writer.uint32(/* id 38, wireType 2 =*/306).fork()).ldelim(); if (message.trafficAnonymization != null && Object.hasOwnProperty.call(message, "trafficAnonymization")) writer.uint32(/* id 40, wireType 0 =*/320).int32(message.trafficAnonymization); + if (message.lidDbMigrated != null && Object.hasOwnProperty.call(message, "lidDbMigrated")) + writer.uint32(/* id 41, wireType 0 =*/328).bool(message.lidDbMigrated); + if (message.accountType != null && Object.hasOwnProperty.call(message, "accountType")) + writer.uint32(/* id 42, wireType 0 =*/336).int32(message.accountType); return writer; }; @@ -22826,6 +26739,14 @@ $root.proto = (function() { message.trafficAnonymization = reader.int32(); break; } + case 41: { + message.lidDbMigrated = reader.bool(); + break; + } + case 42: { + message.accountType = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -22983,6 +26904,7 @@ $root.proto = (function() { case 1: case 2: case 3: + case 4: break; } } @@ -23065,6 +26987,21 @@ $root.proto = (function() { break; } } + if (message.lidDbMigrated != null && message.hasOwnProperty("lidDbMigrated")) { + properties._lidDbMigrated = 1; + if (typeof message.lidDbMigrated !== "boolean") + return "lidDbMigrated: boolean expected"; + } + if (message.accountType != null && message.hasOwnProperty("accountType")) { + properties._accountType = 1; + switch (message.accountType) { + default: + return "accountType: enum value expected"; + case 0: + case 1: + break; + } + } return null; }; @@ -23255,6 +27192,10 @@ $root.proto = (function() { case 3: message.product = 3; break; + case "WHATSAPP_LID": + case 4: + message.product = 4; + break; } if (object.fbCat != null) if (typeof object.fbCat === "string") @@ -23336,6 +27277,24 @@ $root.proto = (function() { message.trafficAnonymization = 1; break; } + if (object.lidDbMigrated != null) + message.lidDbMigrated = Boolean(object.lidDbMigrated); + switch (object.accountType) { + default: + if (typeof object.accountType === "number") { + message.accountType = object.accountType; + break; + } + break; + case "DEFAULT": + case 0: + message.accountType = 0; + break; + case "GUEST": + case 1: + message.accountType = 1; + break; + } return message; }; @@ -23500,6 +27459,16 @@ $root.proto = (function() { if (options.oneofs) object._trafficAnonymization = "trafficAnonymization"; } + if (message.lidDbMigrated != null && message.hasOwnProperty("lidDbMigrated")) { + object.lidDbMigrated = message.lidDbMigrated; + if (options.oneofs) + object._lidDbMigrated = "lidDbMigrated"; + } + if (message.accountType != null && message.hasOwnProperty("accountType")) { + object.accountType = options.enums === String ? $root.proto.ClientPayload.AccountType[message.accountType] === undefined ? message.accountType : $root.proto.ClientPayload.AccountType[message.accountType] : message.accountType; + if (options.oneofs) + object._accountType = "accountType"; + } return object; }; @@ -23529,6 +27498,20 @@ $root.proto = (function() { return typeUrlPrefix + "/proto.ClientPayload"; }; + /** + * AccountType enum. + * @name proto.ClientPayload.AccountType + * @enum {number} + * @property {number} DEFAULT=0 DEFAULT value + * @property {number} GUEST=1 GUEST value + */ + ClientPayload.AccountType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "DEFAULT"] = 0; + values[valuesById[1] = "GUEST"] = 1; + return values; + })(); + /** * ConnectReason enum. * @name proto.ClientPayload.ConnectReason @@ -24693,6 +28676,7 @@ $root.proto = (function() { * @property {number} MESSENGER=1 MESSENGER value * @property {number} INTEROP=2 INTEROP value * @property {number} INTEROP_MSGR=3 INTEROP_MSGR value + * @property {number} WHATSAPP_LID=4 WHATSAPP_LID value */ ClientPayload.Product = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -24700,6 +28684,7 @@ $root.proto = (function() { values[valuesById[1] = "MESSENGER"] = 1; values[valuesById[2] = "INTEROP"] = 2; values[valuesById[3] = "INTEROP_MSGR"] = 3; + values[valuesById[4] = "WHATSAPP_LID"] = 4; return values; })(); @@ -28317,6 +32302,9 @@ $root.proto = (function() { * @property {proto.IUrlTrackingMap|null} [urlTrackingMap] ContextInfo urlTrackingMap * @property {proto.ContextInfo.PairedMediaType|null} [pairedMediaType] ContextInfo pairedMediaType * @property {number|null} [rankingVersion] ContextInfo rankingVersion + * @property {proto.IMemberLabel|null} [memberLabel] ContextInfo memberLabel + * @property {boolean|null} [isQuestion] ContextInfo isQuestion + * @property {proto.ContextInfo.StatusSourceType|null} [statusSourceType] ContextInfo statusSourceType */ /** @@ -28688,6 +32676,30 @@ $root.proto = (function() { */ ContextInfo.prototype.rankingVersion = null; + /** + * ContextInfo memberLabel. + * @member {proto.IMemberLabel|null|undefined} memberLabel + * @memberof proto.ContextInfo + * @instance + */ + ContextInfo.prototype.memberLabel = null; + + /** + * ContextInfo isQuestion. + * @member {boolean|null|undefined} isQuestion + * @memberof proto.ContextInfo + * @instance + */ + ContextInfo.prototype.isQuestion = null; + + /** + * ContextInfo statusSourceType. + * @member {proto.ContextInfo.StatusSourceType|null|undefined} statusSourceType + * @memberof proto.ContextInfo + * @instance + */ + ContextInfo.prototype.statusSourceType = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -28943,6 +32955,24 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(ContextInfo.prototype, "_memberLabel", { + get: $util.oneOfGetter($oneOfFields = ["memberLabel"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ContextInfo.prototype, "_isQuestion", { + get: $util.oneOfGetter($oneOfFields = ["isQuestion"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ContextInfo.prototype, "_statusSourceType", { + get: $util.oneOfGetter($oneOfFields = ["statusSourceType"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new ContextInfo instance using the specified properties. * @function create @@ -29057,6 +33087,12 @@ $root.proto = (function() { writer.uint32(/* id 59, wireType 0 =*/472).int32(message.pairedMediaType); if (message.rankingVersion != null && Object.hasOwnProperty.call(message, "rankingVersion")) writer.uint32(/* id 60, wireType 0 =*/480).uint32(message.rankingVersion); + if (message.memberLabel != null && Object.hasOwnProperty.call(message, "memberLabel")) + $root.proto.MemberLabel.encode(message.memberLabel, writer.uint32(/* id 62, wireType 2 =*/498).fork()).ldelim(); + if (message.isQuestion != null && Object.hasOwnProperty.call(message, "isQuestion")) + writer.uint32(/* id 63, wireType 0 =*/504).bool(message.isQuestion); + if (message.statusSourceType != null && Object.hasOwnProperty.call(message, "statusSourceType")) + writer.uint32(/* id 64, wireType 0 =*/512).int32(message.statusSourceType); return writer; }; @@ -29271,6 +33307,18 @@ $root.proto = (function() { message.rankingVersion = reader.uint32(); break; } + case 62: { + message.memberLabel = $root.proto.MemberLabel.decode(reader, reader.uint32()); + break; + } + case 63: { + message.isQuestion = reader.bool(); + break; + } + case 64: { + message.statusSourceType = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -29578,6 +33626,8 @@ $root.proto = (function() { case 2: case 3: case 4: + case 5: + case 6: break; } } @@ -29586,6 +33636,33 @@ $root.proto = (function() { if (!$util.isInteger(message.rankingVersion)) return "rankingVersion: integer expected"; } + if (message.memberLabel != null && message.hasOwnProperty("memberLabel")) { + properties._memberLabel = 1; + { + var error = $root.proto.MemberLabel.verify(message.memberLabel); + if (error) + return "memberLabel." + error; + } + } + if (message.isQuestion != null && message.hasOwnProperty("isQuestion")) { + properties._isQuestion = 1; + if (typeof message.isQuestion !== "boolean") + return "isQuestion: boolean expected"; + } + if (message.statusSourceType != null && message.hasOwnProperty("statusSourceType")) { + properties._statusSourceType = 1; + switch (message.statusSourceType) { + default: + return "statusSourceType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + break; + } + } return null; }; @@ -29798,9 +33875,56 @@ $root.proto = (function() { case 4: message.pairedMediaType = 4; break; + case "MOTION_PHOTO_PARENT": + case 5: + message.pairedMediaType = 5; + break; + case "MOTION_PHOTO_CHILD": + case 6: + message.pairedMediaType = 6; + break; } if (object.rankingVersion != null) message.rankingVersion = object.rankingVersion >>> 0; + if (object.memberLabel != null) { + if (typeof object.memberLabel !== "object") + throw TypeError(".proto.ContextInfo.memberLabel: object expected"); + message.memberLabel = $root.proto.MemberLabel.fromObject(object.memberLabel); + } + if (object.isQuestion != null) + message.isQuestion = Boolean(object.isQuestion); + switch (object.statusSourceType) { + default: + if (typeof object.statusSourceType === "number") { + message.statusSourceType = object.statusSourceType; + break; + } + break; + case "IMAGE": + case 0: + message.statusSourceType = 0; + break; + case "VIDEO": + case 1: + message.statusSourceType = 1; + break; + case "GIF": + case 2: + message.statusSourceType = 2; + break; + case "AUDIO": + case 3: + message.statusSourceType = 3; + break; + case "TEXT": + case 4: + message.statusSourceType = 4; + break; + case "MUSIC_STANDALONE": + case 5: + message.statusSourceType = 5; + break; + } return message; }; @@ -30044,6 +34168,21 @@ $root.proto = (function() { if (options.oneofs) object._rankingVersion = "rankingVersion"; } + if (message.memberLabel != null && message.hasOwnProperty("memberLabel")) { + object.memberLabel = $root.proto.MemberLabel.toObject(message.memberLabel, options); + if (options.oneofs) + object._memberLabel = "memberLabel"; + } + if (message.isQuestion != null && message.hasOwnProperty("isQuestion")) { + object.isQuestion = message.isQuestion; + if (options.oneofs) + object._isQuestion = "isQuestion"; + } + if (message.statusSourceType != null && message.hasOwnProperty("statusSourceType")) { + object.statusSourceType = options.enums === String ? $root.proto.ContextInfo.StatusSourceType[message.statusSourceType] === undefined ? message.statusSourceType : $root.proto.ContextInfo.StatusSourceType[message.statusSourceType] : message.statusSourceType; + if (options.oneofs) + object._statusSourceType = "statusSourceType"; + } return object; }; @@ -31333,6 +35472,9 @@ $root.proto = (function() { * @property {string|null} [ctaPayload] ExternalAdReplyInfo ctaPayload * @property {boolean|null} [disableNudge] ExternalAdReplyInfo disableNudge * @property {string|null} [originalImageUrl] ExternalAdReplyInfo originalImageUrl + * @property {string|null} [automatedGreetingMessageCtaType] ExternalAdReplyInfo automatedGreetingMessageCtaType + * @property {boolean|null} [wtwaAdFormat] ExternalAdReplyInfo wtwaAdFormat + * @property {proto.ContextInfo.ExternalAdReplyInfo.AdType|null} [adType] ExternalAdReplyInfo adType */ /** @@ -31526,6 +35668,30 @@ $root.proto = (function() { */ ExternalAdReplyInfo.prototype.originalImageUrl = null; + /** + * ExternalAdReplyInfo automatedGreetingMessageCtaType. + * @member {string|null|undefined} automatedGreetingMessageCtaType + * @memberof proto.ContextInfo.ExternalAdReplyInfo + * @instance + */ + ExternalAdReplyInfo.prototype.automatedGreetingMessageCtaType = null; + + /** + * ExternalAdReplyInfo wtwaAdFormat. + * @member {boolean|null|undefined} wtwaAdFormat + * @memberof proto.ContextInfo.ExternalAdReplyInfo + * @instance + */ + ExternalAdReplyInfo.prototype.wtwaAdFormat = null; + + /** + * ExternalAdReplyInfo adType. + * @member {proto.ContextInfo.ExternalAdReplyInfo.AdType|null|undefined} adType + * @memberof proto.ContextInfo.ExternalAdReplyInfo + * @instance + */ + ExternalAdReplyInfo.prototype.adType = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -31661,6 +35827,24 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(ExternalAdReplyInfo.prototype, "_automatedGreetingMessageCtaType", { + get: $util.oneOfGetter($oneOfFields = ["automatedGreetingMessageCtaType"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ExternalAdReplyInfo.prototype, "_wtwaAdFormat", { + get: $util.oneOfGetter($oneOfFields = ["wtwaAdFormat"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ExternalAdReplyInfo.prototype, "_adType", { + get: $util.oneOfGetter($oneOfFields = ["adType"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new ExternalAdReplyInfo instance using the specified properties. * @function create @@ -31729,6 +35913,12 @@ $root.proto = (function() { writer.uint32(/* id 21, wireType 0 =*/168).bool(message.disableNudge); if (message.originalImageUrl != null && Object.hasOwnProperty.call(message, "originalImageUrl")) writer.uint32(/* id 22, wireType 2 =*/178).string(message.originalImageUrl); + if (message.automatedGreetingMessageCtaType != null && Object.hasOwnProperty.call(message, "automatedGreetingMessageCtaType")) + writer.uint32(/* id 23, wireType 2 =*/186).string(message.automatedGreetingMessageCtaType); + if (message.wtwaAdFormat != null && Object.hasOwnProperty.call(message, "wtwaAdFormat")) + writer.uint32(/* id 24, wireType 0 =*/192).bool(message.wtwaAdFormat); + if (message.adType != null && Object.hasOwnProperty.call(message, "adType")) + writer.uint32(/* id 25, wireType 0 =*/200).int32(message.adType); return writer; }; @@ -31851,6 +36041,18 @@ $root.proto = (function() { message.originalImageUrl = reader.string(); break; } + case 23: { + message.automatedGreetingMessageCtaType = reader.string(); + break; + } + case 24: { + message.wtwaAdFormat = reader.bool(); + break; + } + case 25: { + message.adType = reader.int32(); + break; + } default: reader.skipType(tag & 7); break; @@ -32003,6 +36205,26 @@ $root.proto = (function() { if (!$util.isString(message.originalImageUrl)) return "originalImageUrl: string expected"; } + if (message.automatedGreetingMessageCtaType != null && message.hasOwnProperty("automatedGreetingMessageCtaType")) { + properties._automatedGreetingMessageCtaType = 1; + if (!$util.isString(message.automatedGreetingMessageCtaType)) + return "automatedGreetingMessageCtaType: string expected"; + } + if (message.wtwaAdFormat != null && message.hasOwnProperty("wtwaAdFormat")) { + properties._wtwaAdFormat = 1; + if (typeof message.wtwaAdFormat !== "boolean") + return "wtwaAdFormat: boolean expected"; + } + if (message.adType != null && message.hasOwnProperty("adType")) { + properties._adType = 1; + switch (message.adType) { + default: + return "adType: enum value expected"; + case 0: + case 1: + break; + } + } return null; }; @@ -32083,6 +36305,26 @@ $root.proto = (function() { message.disableNudge = Boolean(object.disableNudge); if (object.originalImageUrl != null) message.originalImageUrl = String(object.originalImageUrl); + if (object.automatedGreetingMessageCtaType != null) + message.automatedGreetingMessageCtaType = String(object.automatedGreetingMessageCtaType); + if (object.wtwaAdFormat != null) + message.wtwaAdFormat = Boolean(object.wtwaAdFormat); + switch (object.adType) { + default: + if (typeof object.adType === "number") { + message.adType = object.adType; + break; + } + break; + case "CTWA": + case 0: + message.adType = 0; + break; + case "CAWC": + case 1: + message.adType = 1; + break; + } return message; }; @@ -32209,6 +36451,21 @@ $root.proto = (function() { if (options.oneofs) object._originalImageUrl = "originalImageUrl"; } + if (message.automatedGreetingMessageCtaType != null && message.hasOwnProperty("automatedGreetingMessageCtaType")) { + object.automatedGreetingMessageCtaType = message.automatedGreetingMessageCtaType; + if (options.oneofs) + object._automatedGreetingMessageCtaType = "automatedGreetingMessageCtaType"; + } + if (message.wtwaAdFormat != null && message.hasOwnProperty("wtwaAdFormat")) { + object.wtwaAdFormat = message.wtwaAdFormat; + if (options.oneofs) + object._wtwaAdFormat = "wtwaAdFormat"; + } + if (message.adType != null && message.hasOwnProperty("adType")) { + object.adType = options.enums === String ? $root.proto.ContextInfo.ExternalAdReplyInfo.AdType[message.adType] === undefined ? message.adType : $root.proto.ContextInfo.ExternalAdReplyInfo.AdType[message.adType] : message.adType; + if (options.oneofs) + object._adType = "adType"; + } return object; }; @@ -32238,6 +36495,20 @@ $root.proto = (function() { return typeUrlPrefix + "/proto.ContextInfo.ExternalAdReplyInfo"; }; + /** + * AdType enum. + * @name proto.ContextInfo.ExternalAdReplyInfo.AdType + * @enum {number} + * @property {number} CTWA=0 CTWA value + * @property {number} CAWC=1 CAWC value + */ + ExternalAdReplyInfo.AdType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "CTWA"] = 0; + values[valuesById[1] = "CAWC"] = 1; + return values; + })(); + /** * MediaType enum. * @name proto.ContextInfo.ExternalAdReplyInfo.MediaType @@ -33251,6 +37522,8 @@ $root.proto = (function() { * @property {number} HD_VIDEO_CHILD=2 HD_VIDEO_CHILD value * @property {number} SD_IMAGE_PARENT=3 SD_IMAGE_PARENT value * @property {number} HD_IMAGE_CHILD=4 HD_IMAGE_CHILD value + * @property {number} MOTION_PHOTO_PARENT=5 MOTION_PHOTO_PARENT value + * @property {number} MOTION_PHOTO_CHILD=6 MOTION_PHOTO_CHILD value */ ContextInfo.PairedMediaType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -33259,6 +37532,8 @@ $root.proto = (function() { values[valuesById[2] = "HD_VIDEO_CHILD"] = 2; values[valuesById[3] = "SD_IMAGE_PARENT"] = 3; values[valuesById[4] = "HD_IMAGE_CHILD"] = 4; + values[valuesById[5] = "MOTION_PHOTO_PARENT"] = 5; + values[valuesById[6] = "MOTION_PHOTO_CHILD"] = 6; return values; })(); @@ -33278,6 +37553,28 @@ $root.proto = (function() { return values; })(); + /** + * StatusSourceType enum. + * @name proto.ContextInfo.StatusSourceType + * @enum {number} + * @property {number} IMAGE=0 IMAGE value + * @property {number} VIDEO=1 VIDEO value + * @property {number} GIF=2 GIF value + * @property {number} AUDIO=3 AUDIO value + * @property {number} TEXT=4 TEXT value + * @property {number} MUSIC_STANDALONE=5 MUSIC_STANDALONE value + */ + ContextInfo.StatusSourceType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "IMAGE"] = 0; + values[valuesById[1] = "VIDEO"] = 1; + values[valuesById[2] = "GIF"] = 2; + values[valuesById[3] = "AUDIO"] = 3; + values[valuesById[4] = "TEXT"] = 4; + values[valuesById[5] = "MUSIC_STANDALONE"] = 5; + return values; + })(); + ContextInfo.UTMInfo = (function() { /** @@ -33586,6 +37883,9 @@ $root.proto = (function() { * @property {boolean|null} [capiCreatedGroup] Conversation capiCreatedGroup * @property {string|null} [accountLid] Conversation accountLid * @property {boolean|null} [limitSharing] Conversation limitSharing + * @property {number|Long|null} [limitSharingSettingTimestamp] Conversation limitSharingSettingTimestamp + * @property {proto.LimitSharing.TriggerType|null} [limitSharingTrigger] Conversation limitSharingTrigger + * @property {boolean|null} [limitSharingInitiatedByMe] Conversation limitSharingInitiatedByMe */ /** @@ -34005,6 +38305,30 @@ $root.proto = (function() { */ Conversation.prototype.limitSharing = null; + /** + * Conversation limitSharingSettingTimestamp. + * @member {number|Long|null|undefined} limitSharingSettingTimestamp + * @memberof proto.Conversation + * @instance + */ + Conversation.prototype.limitSharingSettingTimestamp = null; + + /** + * Conversation limitSharingTrigger. + * @member {proto.LimitSharing.TriggerType|null|undefined} limitSharingTrigger + * @memberof proto.Conversation + * @instance + */ + Conversation.prototype.limitSharingTrigger = null; + + /** + * Conversation limitSharingInitiatedByMe. + * @member {boolean|null|undefined} limitSharingInitiatedByMe + * @memberof proto.Conversation + * @instance + */ + Conversation.prototype.limitSharingInitiatedByMe = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -34290,6 +38614,24 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(Conversation.prototype, "_limitSharingSettingTimestamp", { + get: $util.oneOfGetter($oneOfFields = ["limitSharingSettingTimestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Conversation.prototype, "_limitSharingTrigger", { + get: $util.oneOfGetter($oneOfFields = ["limitSharingTrigger"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Conversation.prototype, "_limitSharingInitiatedByMe", { + get: $util.oneOfGetter($oneOfFields = ["limitSharingInitiatedByMe"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new Conversation instance using the specified properties. * @function create @@ -34415,6 +38757,12 @@ $root.proto = (function() { writer.uint32(/* id 49, wireType 2 =*/394).string(message.accountLid); if (message.limitSharing != null && Object.hasOwnProperty.call(message, "limitSharing")) writer.uint32(/* id 50, wireType 0 =*/400).bool(message.limitSharing); + if (message.limitSharingSettingTimestamp != null && Object.hasOwnProperty.call(message, "limitSharingSettingTimestamp")) + writer.uint32(/* id 51, wireType 0 =*/408).int64(message.limitSharingSettingTimestamp); + if (message.limitSharingTrigger != null && Object.hasOwnProperty.call(message, "limitSharingTrigger")) + writer.uint32(/* id 52, wireType 0 =*/416).int32(message.limitSharingTrigger); + if (message.limitSharingInitiatedByMe != null && Object.hasOwnProperty.call(message, "limitSharingInitiatedByMe")) + writer.uint32(/* id 53, wireType 0 =*/424).bool(message.limitSharingInitiatedByMe); return writer; }; @@ -34653,6 +39001,18 @@ $root.proto = (function() { message.limitSharing = reader.bool(); break; } + case 51: { + message.limitSharingSettingTimestamp = reader.int64(); + break; + } + case 52: { + message.limitSharingTrigger = reader.int32(); + break; + } + case 53: { + message.limitSharingInitiatedByMe = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -34970,6 +39330,28 @@ $root.proto = (function() { if (typeof message.limitSharing !== "boolean") return "limitSharing: boolean expected"; } + if (message.limitSharingSettingTimestamp != null && message.hasOwnProperty("limitSharingSettingTimestamp")) { + properties._limitSharingSettingTimestamp = 1; + if (!$util.isInteger(message.limitSharingSettingTimestamp) && !(message.limitSharingSettingTimestamp && $util.isInteger(message.limitSharingSettingTimestamp.low) && $util.isInteger(message.limitSharingSettingTimestamp.high))) + return "limitSharingSettingTimestamp: integer|Long expected"; + } + if (message.limitSharingTrigger != null && message.hasOwnProperty("limitSharingTrigger")) { + properties._limitSharingTrigger = 1; + switch (message.limitSharingTrigger) { + default: + return "limitSharingTrigger: enum value expected"; + case 0: + case 1: + case 2: + case 3: + break; + } + } + if (message.limitSharingInitiatedByMe != null && message.hasOwnProperty("limitSharingInitiatedByMe")) { + properties._limitSharingInitiatedByMe = 1; + if (typeof message.limitSharingInitiatedByMe !== "boolean") + return "limitSharingInitiatedByMe: boolean expected"; + } return null; }; @@ -35216,6 +39598,41 @@ $root.proto = (function() { message.accountLid = String(object.accountLid); if (object.limitSharing != null) message.limitSharing = Boolean(object.limitSharing); + if (object.limitSharingSettingTimestamp != null) + if ($util.Long) + (message.limitSharingSettingTimestamp = $util.Long.fromValue(object.limitSharingSettingTimestamp)).unsigned = false; + else if (typeof object.limitSharingSettingTimestamp === "string") + message.limitSharingSettingTimestamp = parseInt(object.limitSharingSettingTimestamp, 10); + else if (typeof object.limitSharingSettingTimestamp === "number") + message.limitSharingSettingTimestamp = object.limitSharingSettingTimestamp; + else if (typeof object.limitSharingSettingTimestamp === "object") + message.limitSharingSettingTimestamp = new $util.LongBits(object.limitSharingSettingTimestamp.low >>> 0, object.limitSharingSettingTimestamp.high >>> 0).toNumber(); + switch (object.limitSharingTrigger) { + default: + if (typeof object.limitSharingTrigger === "number") { + message.limitSharingTrigger = object.limitSharingTrigger; + break; + } + break; + case "UNKNOWN": + case 0: + message.limitSharingTrigger = 0; + break; + case "CHAT_SETTING": + case 1: + message.limitSharingTrigger = 1; + break; + case "BIZ_SUPPORTS_FB_HOSTING": + case 2: + message.limitSharingTrigger = 2; + break; + case "UNKNOWN_GROUP": + case 3: + message.limitSharingTrigger = 3; + break; + } + if (object.limitSharingInitiatedByMe != null) + message.limitSharingInitiatedByMe = Boolean(object.limitSharingInitiatedByMe); return message; }; @@ -35506,6 +39923,24 @@ $root.proto = (function() { if (options.oneofs) object._limitSharing = "limitSharing"; } + if (message.limitSharingSettingTimestamp != null && message.hasOwnProperty("limitSharingSettingTimestamp")) { + if (typeof message.limitSharingSettingTimestamp === "number") + object.limitSharingSettingTimestamp = options.longs === String ? String(message.limitSharingSettingTimestamp) : message.limitSharingSettingTimestamp; + else + object.limitSharingSettingTimestamp = options.longs === String ? $util.Long.prototype.toString.call(message.limitSharingSettingTimestamp) : options.longs === Number ? new $util.LongBits(message.limitSharingSettingTimestamp.low >>> 0, message.limitSharingSettingTimestamp.high >>> 0).toNumber() : message.limitSharingSettingTimestamp; + if (options.oneofs) + object._limitSharingSettingTimestamp = "limitSharingSettingTimestamp"; + } + if (message.limitSharingTrigger != null && message.hasOwnProperty("limitSharingTrigger")) { + object.limitSharingTrigger = options.enums === String ? $root.proto.LimitSharing.TriggerType[message.limitSharingTrigger] === undefined ? message.limitSharingTrigger : $root.proto.LimitSharing.TriggerType[message.limitSharingTrigger] : message.limitSharingTrigger; + if (options.oneofs) + object._limitSharingTrigger = "limitSharingTrigger"; + } + if (message.limitSharingInitiatedByMe != null && message.hasOwnProperty("limitSharingInitiatedByMe")) { + object.limitSharingInitiatedByMe = message.limitSharingInitiatedByMe; + if (options.oneofs) + object._limitSharingInitiatedByMe = "limitSharingInitiatedByMe"; + } return object; }; @@ -42049,6 +46484,7 @@ $root.proto = (function() { * @property {proto.INotificationSettings|null} [individualNotificationSettings] GlobalSettings individualNotificationSettings * @property {proto.INotificationSettings|null} [groupNotificationSettings] GlobalSettings groupNotificationSettings * @property {proto.IChatLockSettings|null} [chatLockSettings] GlobalSettings chatLockSettings + * @property {number|Long|null} [chatDbLidMigrationTimestamp] GlobalSettings chatDbLidMigrationTimestamp */ /** @@ -42218,6 +46654,14 @@ $root.proto = (function() { */ GlobalSettings.prototype.chatLockSettings = null; + /** + * GlobalSettings chatDbLidMigrationTimestamp. + * @member {number|Long|null|undefined} chatDbLidMigrationTimestamp + * @memberof proto.GlobalSettings + * @instance + */ + GlobalSettings.prototype.chatDbLidMigrationTimestamp = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -42335,6 +46779,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(GlobalSettings.prototype, "_chatDbLidMigrationTimestamp", { + get: $util.oneOfGetter($oneOfFields = ["chatDbLidMigrationTimestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new GlobalSettings instance using the specified properties. * @function create @@ -42397,6 +46847,8 @@ $root.proto = (function() { $root.proto.NotificationSettings.encode(message.groupNotificationSettings, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); if (message.chatLockSettings != null && Object.hasOwnProperty.call(message, "chatLockSettings")) $root.proto.ChatLockSettings.encode(message.chatLockSettings, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim(); + if (message.chatDbLidMigrationTimestamp != null && Object.hasOwnProperty.call(message, "chatDbLidMigrationTimestamp")) + writer.uint32(/* id 20, wireType 0 =*/160).int64(message.chatDbLidMigrationTimestamp); return writer; }; @@ -42507,6 +46959,10 @@ $root.proto = (function() { message.chatLockSettings = $root.proto.ChatLockSettings.decode(reader, reader.uint32()); break; } + case 20: { + message.chatDbLidMigrationTimestamp = reader.int64(); + break; + } default: reader.skipType(tag & 7); break; @@ -42671,6 +47127,11 @@ $root.proto = (function() { return "chatLockSettings." + error; } } + if (message.chatDbLidMigrationTimestamp != null && message.hasOwnProperty("chatDbLidMigrationTimestamp")) { + properties._chatDbLidMigrationTimestamp = 1; + if (!$util.isInteger(message.chatDbLidMigrationTimestamp) && !(message.chatDbLidMigrationTimestamp && $util.isInteger(message.chatDbLidMigrationTimestamp.low) && $util.isInteger(message.chatDbLidMigrationTimestamp.high))) + return "chatDbLidMigrationTimestamp: integer|Long expected"; + } return null; }; @@ -42776,6 +47237,15 @@ $root.proto = (function() { throw TypeError(".proto.GlobalSettings.chatLockSettings: object expected"); message.chatLockSettings = $root.proto.ChatLockSettings.fromObject(object.chatLockSettings); } + if (object.chatDbLidMigrationTimestamp != null) + if ($util.Long) + (message.chatDbLidMigrationTimestamp = $util.Long.fromValue(object.chatDbLidMigrationTimestamp)).unsigned = false; + else if (typeof object.chatDbLidMigrationTimestamp === "string") + message.chatDbLidMigrationTimestamp = parseInt(object.chatDbLidMigrationTimestamp, 10); + else if (typeof object.chatDbLidMigrationTimestamp === "number") + message.chatDbLidMigrationTimestamp = object.chatDbLidMigrationTimestamp; + else if (typeof object.chatDbLidMigrationTimestamp === "object") + message.chatDbLidMigrationTimestamp = new $util.LongBits(object.chatDbLidMigrationTimestamp.low >>> 0, object.chatDbLidMigrationTimestamp.high >>> 0).toNumber(); return message; }; @@ -42890,6 +47360,14 @@ $root.proto = (function() { if (options.oneofs) object._chatLockSettings = "chatLockSettings"; } + if (message.chatDbLidMigrationTimestamp != null && message.hasOwnProperty("chatDbLidMigrationTimestamp")) { + if (typeof message.chatDbLidMigrationTimestamp === "number") + object.chatDbLidMigrationTimestamp = options.longs === String ? String(message.chatDbLidMigrationTimestamp) : message.chatDbLidMigrationTimestamp; + else + object.chatDbLidMigrationTimestamp = options.longs === String ? $util.Long.prototype.toString.call(message.chatDbLidMigrationTimestamp) : options.longs === Number ? new $util.LongBits(message.chatDbLidMigrationTimestamp.low >>> 0, message.chatDbLidMigrationTimestamp.high >>> 0).toNumber() : message.chatDbLidMigrationTimestamp; + if (options.oneofs) + object._chatDbLidMigrationTimestamp = "chatDbLidMigrationTimestamp"; + } return object; }; @@ -44610,6 +49088,7 @@ $root.proto = (function() { * @property {Array.|null} [phoneNumberToLidMappings] HistorySync phoneNumberToLidMappings * @property {string|null} [companionMetaNonce] HistorySync companionMetaNonce * @property {Uint8Array|null} [shareableChatIdentifierEncryptionKey] HistorySync shareableChatIdentifierEncryptionKey + * @property {Array.|null} [accounts] HistorySync accounts */ /** @@ -44628,6 +49107,7 @@ $root.proto = (function() { this.pastParticipants = []; this.callLogRecords = []; this.phoneNumberToLidMappings = []; + this.accounts = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -44762,6 +49242,14 @@ $root.proto = (function() { */ HistorySync.prototype.shareableChatIdentifierEncryptionKey = null; + /** + * HistorySync accounts. + * @member {Array.} accounts + * @memberof proto.HistorySync + * @instance + */ + HistorySync.prototype.accounts = $util.emptyArray; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -44875,6 +49363,9 @@ $root.proto = (function() { writer.uint32(/* id 16, wireType 2 =*/130).string(message.companionMetaNonce); if (message.shareableChatIdentifierEncryptionKey != null && Object.hasOwnProperty.call(message, "shareableChatIdentifierEncryptionKey")) writer.uint32(/* id 17, wireType 2 =*/138).bytes(message.shareableChatIdentifierEncryptionKey); + if (message.accounts != null && message.accounts.length) + for (var i = 0; i < message.accounts.length; ++i) + $root.proto.Account.encode(message.accounts[i], writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim(); return writer; }; @@ -44987,6 +49478,12 @@ $root.proto = (function() { message.shareableChatIdentifierEncryptionKey = reader.bytes(); break; } + case 18: { + if (!(message.accounts && message.accounts.length)) + message.accounts = []; + message.accounts.push($root.proto.Account.decode(reader, reader.uint32())); + break; + } default: reader.skipType(tag & 7); break; @@ -45148,6 +49645,15 @@ $root.proto = (function() { if (!(message.shareableChatIdentifierEncryptionKey && typeof message.shareableChatIdentifierEncryptionKey.length === "number" || $util.isString(message.shareableChatIdentifierEncryptionKey))) return "shareableChatIdentifierEncryptionKey: buffer expected"; } + if (message.accounts != null && message.hasOwnProperty("accounts")) { + if (!Array.isArray(message.accounts)) + return "accounts: array expected"; + for (var i = 0; i < message.accounts.length; ++i) { + var error = $root.proto.Account.verify(message.accounts[i]); + if (error) + return "accounts." + error; + } + } return null; }; @@ -45308,6 +49814,16 @@ $root.proto = (function() { $util.base64.decode(object.shareableChatIdentifierEncryptionKey, message.shareableChatIdentifierEncryptionKey = $util.newBuffer($util.base64.length(object.shareableChatIdentifierEncryptionKey)), 0); else if (object.shareableChatIdentifierEncryptionKey.length >= 0) message.shareableChatIdentifierEncryptionKey = object.shareableChatIdentifierEncryptionKey; + if (object.accounts) { + if (!Array.isArray(object.accounts)) + throw TypeError(".proto.HistorySync.accounts: array expected"); + message.accounts = []; + for (var i = 0; i < object.accounts.length; ++i) { + if (typeof object.accounts[i] !== "object") + throw TypeError(".proto.HistorySync.accounts: object expected"); + message.accounts[i] = $root.proto.Account.fromObject(object.accounts[i]); + } + } return message; }; @@ -45332,6 +49848,7 @@ $root.proto = (function() { object.pastParticipants = []; object.callLogRecords = []; object.phoneNumberToLidMappings = []; + object.accounts = []; } if (options.defaults) object.syncType = options.enums === String ? "INITIAL_BOOTSTRAP" : 0; @@ -45412,6 +49929,11 @@ $root.proto = (function() { if (options.oneofs) object._shareableChatIdentifierEncryptionKey = "shareableChatIdentifierEncryptionKey"; } + if (message.accounts && message.accounts.length) { + object.accounts = []; + for (var j = 0; j < message.accounts.length; ++j) + object.accounts[j] = $root.proto.Account.toObject(message.accounts[j], options); + } return object; }; @@ -47194,6 +51716,7 @@ $root.proto = (function() { * @property {Array.|null} [polygonVertices] InteractiveAnnotation polygonVertices * @property {boolean|null} [shouldSkipConfirmation] InteractiveAnnotation shouldSkipConfirmation * @property {proto.IEmbeddedContent|null} [embeddedContent] InteractiveAnnotation embeddedContent + * @property {proto.InteractiveAnnotation.StatusLinkType|null} [statusLinkType] InteractiveAnnotation statusLinkType * @property {proto.ILocation|null} [location] InteractiveAnnotation location * @property {proto.ContextInfo.IForwardedNewsletterMessageInfo|null} [newsletter] InteractiveAnnotation newsletter * @property {boolean|null} [embeddedAction] InteractiveAnnotation embeddedAction @@ -47240,6 +51763,14 @@ $root.proto = (function() { */ InteractiveAnnotation.prototype.embeddedContent = null; + /** + * InteractiveAnnotation statusLinkType. + * @member {proto.InteractiveAnnotation.StatusLinkType|null|undefined} statusLinkType + * @memberof proto.InteractiveAnnotation + * @instance + */ + InteractiveAnnotation.prototype.statusLinkType = null; + /** * InteractiveAnnotation location. * @member {proto.ILocation|null|undefined} location @@ -47287,6 +51818,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(InteractiveAnnotation.prototype, "_statusLinkType", { + get: $util.oneOfGetter($oneOfFields = ["statusLinkType"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * InteractiveAnnotation action. * @member {"location"|"newsletter"|"embeddedAction"|"tapAction"|undefined} action @@ -47337,6 +51874,8 @@ $root.proto = (function() { writer.uint32(/* id 6, wireType 0 =*/48).bool(message.embeddedAction); if (message.tapAction != null && Object.hasOwnProperty.call(message, "tapAction")) $root.proto.TapLinkAction.encode(message.tapAction, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.statusLinkType != null && Object.hasOwnProperty.call(message, "statusLinkType")) + writer.uint32(/* id 8, wireType 0 =*/64).int32(message.statusLinkType); return writer; }; @@ -47385,6 +51924,10 @@ $root.proto = (function() { message.embeddedContent = $root.proto.EmbeddedContent.decode(reader, reader.uint32()); break; } + case 8: { + message.statusLinkType = reader.int32(); + break; + } case 2: { message.location = $root.proto.Location.decode(reader, reader.uint32()); break; @@ -47459,6 +52002,17 @@ $root.proto = (function() { return "embeddedContent." + error; } } + if (message.statusLinkType != null && message.hasOwnProperty("statusLinkType")) { + properties._statusLinkType = 1; + switch (message.statusLinkType) { + default: + return "statusLinkType: enum value expected"; + case 1: + case 2: + case 3: + break; + } + } if (message.location != null && message.hasOwnProperty("location")) { properties.action = 1; { @@ -47526,6 +52080,26 @@ $root.proto = (function() { throw TypeError(".proto.InteractiveAnnotation.embeddedContent: object expected"); message.embeddedContent = $root.proto.EmbeddedContent.fromObject(object.embeddedContent); } + switch (object.statusLinkType) { + default: + if (typeof object.statusLinkType === "number") { + message.statusLinkType = object.statusLinkType; + break; + } + break; + case "RASTERIZED_LINK_PREVIEW": + case 1: + message.statusLinkType = 1; + break; + case "RASTERIZED_LINK_TRUNCATED": + case 2: + message.statusLinkType = 2; + break; + case "RASTERIZED_LINK_FULL_URL": + case 3: + message.statusLinkType = 3; + break; + } if (object.location != null) { if (typeof object.location !== "object") throw TypeError(".proto.InteractiveAnnotation.location: object expected"); @@ -47596,6 +52170,11 @@ $root.proto = (function() { if (options.oneofs) object.action = "tapAction"; } + if (message.statusLinkType != null && message.hasOwnProperty("statusLinkType")) { + object.statusLinkType = options.enums === String ? $root.proto.InteractiveAnnotation.StatusLinkType[message.statusLinkType] === undefined ? message.statusLinkType : $root.proto.InteractiveAnnotation.StatusLinkType[message.statusLinkType] : message.statusLinkType; + if (options.oneofs) + object._statusLinkType = "statusLinkType"; + } return object; }; @@ -47625,6 +52204,22 @@ $root.proto = (function() { return typeUrlPrefix + "/proto.InteractiveAnnotation"; }; + /** + * StatusLinkType enum. + * @name proto.InteractiveAnnotation.StatusLinkType + * @enum {number} + * @property {number} RASTERIZED_LINK_PREVIEW=1 RASTERIZED_LINK_PREVIEW value + * @property {number} RASTERIZED_LINK_TRUNCATED=2 RASTERIZED_LINK_TRUNCATED value + * @property {number} RASTERIZED_LINK_FULL_URL=3 RASTERIZED_LINK_FULL_URL value + */ + InteractiveAnnotation.StatusLinkType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[1] = "RASTERIZED_LINK_PREVIEW"] = 1; + values[valuesById[2] = "RASTERIZED_LINK_TRUNCATED"] = 2; + values[valuesById[3] = "RASTERIZED_LINK_FULL_URL"] = 3; + return values; + })(); + return InteractiveAnnotation; })(); @@ -49192,6 +53787,7 @@ $root.proto = (function() { * @memberof proto * @interface ILIDMigrationMappingSyncPayload * @property {Array.|null} [pnToLidMappings] LIDMigrationMappingSyncPayload pnToLidMappings + * @property {number|Long|null} [chatDbMigrationTimestamp] LIDMigrationMappingSyncPayload chatDbMigrationTimestamp */ /** @@ -49218,6 +53814,23 @@ $root.proto = (function() { */ LIDMigrationMappingSyncPayload.prototype.pnToLidMappings = $util.emptyArray; + /** + * LIDMigrationMappingSyncPayload chatDbMigrationTimestamp. + * @member {number|Long|null|undefined} chatDbMigrationTimestamp + * @memberof proto.LIDMigrationMappingSyncPayload + * @instance + */ + LIDMigrationMappingSyncPayload.prototype.chatDbMigrationTimestamp = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LIDMigrationMappingSyncPayload.prototype, "_chatDbMigrationTimestamp", { + get: $util.oneOfGetter($oneOfFields = ["chatDbMigrationTimestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new LIDMigrationMappingSyncPayload instance using the specified properties. * @function create @@ -49245,6 +53858,8 @@ $root.proto = (function() { if (message.pnToLidMappings != null && message.pnToLidMappings.length) for (var i = 0; i < message.pnToLidMappings.length; ++i) $root.proto.LIDMigrationMapping.encode(message.pnToLidMappings[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.chatDbMigrationTimestamp != null && Object.hasOwnProperty.call(message, "chatDbMigrationTimestamp")) + writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.chatDbMigrationTimestamp); return writer; }; @@ -49285,6 +53900,10 @@ $root.proto = (function() { message.pnToLidMappings.push($root.proto.LIDMigrationMapping.decode(reader, reader.uint32())); break; } + case 2: { + message.chatDbMigrationTimestamp = reader.uint64(); + break; + } default: reader.skipType(tag & 7); break; @@ -49320,6 +53939,7 @@ $root.proto = (function() { LIDMigrationMappingSyncPayload.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; + var properties = {}; if (message.pnToLidMappings != null && message.hasOwnProperty("pnToLidMappings")) { if (!Array.isArray(message.pnToLidMappings)) return "pnToLidMappings: array expected"; @@ -49329,6 +53949,11 @@ $root.proto = (function() { return "pnToLidMappings." + error; } } + if (message.chatDbMigrationTimestamp != null && message.hasOwnProperty("chatDbMigrationTimestamp")) { + properties._chatDbMigrationTimestamp = 1; + if (!$util.isInteger(message.chatDbMigrationTimestamp) && !(message.chatDbMigrationTimestamp && $util.isInteger(message.chatDbMigrationTimestamp.low) && $util.isInteger(message.chatDbMigrationTimestamp.high))) + return "chatDbMigrationTimestamp: integer|Long expected"; + } return null; }; @@ -49354,6 +53979,15 @@ $root.proto = (function() { message.pnToLidMappings[i] = $root.proto.LIDMigrationMapping.fromObject(object.pnToLidMappings[i]); } } + if (object.chatDbMigrationTimestamp != null) + if ($util.Long) + (message.chatDbMigrationTimestamp = $util.Long.fromValue(object.chatDbMigrationTimestamp)).unsigned = true; + else if (typeof object.chatDbMigrationTimestamp === "string") + message.chatDbMigrationTimestamp = parseInt(object.chatDbMigrationTimestamp, 10); + else if (typeof object.chatDbMigrationTimestamp === "number") + message.chatDbMigrationTimestamp = object.chatDbMigrationTimestamp; + else if (typeof object.chatDbMigrationTimestamp === "object") + message.chatDbMigrationTimestamp = new $util.LongBits(object.chatDbMigrationTimestamp.low >>> 0, object.chatDbMigrationTimestamp.high >>> 0).toNumber(true); return message; }; @@ -49377,6 +54011,14 @@ $root.proto = (function() { for (var j = 0; j < message.pnToLidMappings.length; ++j) object.pnToLidMappings[j] = $root.proto.LIDMigrationMapping.toObject(message.pnToLidMappings[j], options); } + if (message.chatDbMigrationTimestamp != null && message.hasOwnProperty("chatDbMigrationTimestamp")) { + if (typeof message.chatDbMigrationTimestamp === "number") + object.chatDbMigrationTimestamp = options.longs === String ? String(message.chatDbMigrationTimestamp) : message.chatDbMigrationTimestamp; + else + object.chatDbMigrationTimestamp = options.longs === String ? $util.Long.prototype.toString.call(message.chatDbMigrationTimestamp) : options.longs === Number ? new $util.LongBits(message.chatDbMigrationTimestamp.low >>> 0, message.chatDbMigrationTimestamp.high >>> 0).toNumber(true) : message.chatDbMigrationTimestamp; + if (options.oneofs) + object._chatDbMigrationTimestamp = "chatDbMigrationTimestamp"; + } return object; }; @@ -49677,7 +54319,9 @@ $root.proto = (function() { * @memberof proto * @interface ILimitSharing * @property {boolean|null} [sharingLimited] LimitSharing sharingLimited - * @property {proto.LimitSharing.Trigger|null} [trigger] LimitSharing trigger + * @property {proto.LimitSharing.TriggerType|null} [trigger] LimitSharing trigger + * @property {number|Long|null} [limitSharingSettingTimestamp] LimitSharing limitSharingSettingTimestamp + * @property {boolean|null} [initiatedByMe] LimitSharing initiatedByMe */ /** @@ -49705,12 +54349,28 @@ $root.proto = (function() { /** * LimitSharing trigger. - * @member {proto.LimitSharing.Trigger|null|undefined} trigger + * @member {proto.LimitSharing.TriggerType|null|undefined} trigger * @memberof proto.LimitSharing * @instance */ LimitSharing.prototype.trigger = null; + /** + * LimitSharing limitSharingSettingTimestamp. + * @member {number|Long|null|undefined} limitSharingSettingTimestamp + * @memberof proto.LimitSharing + * @instance + */ + LimitSharing.prototype.limitSharingSettingTimestamp = null; + + /** + * LimitSharing initiatedByMe. + * @member {boolean|null|undefined} initiatedByMe + * @memberof proto.LimitSharing + * @instance + */ + LimitSharing.prototype.initiatedByMe = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -49726,6 +54386,18 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(LimitSharing.prototype, "_limitSharingSettingTimestamp", { + get: $util.oneOfGetter($oneOfFields = ["limitSharingSettingTimestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LimitSharing.prototype, "_initiatedByMe", { + get: $util.oneOfGetter($oneOfFields = ["initiatedByMe"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new LimitSharing instance using the specified properties. * @function create @@ -49754,6 +54426,10 @@ $root.proto = (function() { writer.uint32(/* id 1, wireType 0 =*/8).bool(message.sharingLimited); if (message.trigger != null && Object.hasOwnProperty.call(message, "trigger")) writer.uint32(/* id 2, wireType 0 =*/16).int32(message.trigger); + if (message.limitSharingSettingTimestamp != null && Object.hasOwnProperty.call(message, "limitSharingSettingTimestamp")) + writer.uint32(/* id 3, wireType 0 =*/24).int64(message.limitSharingSettingTimestamp); + if (message.initiatedByMe != null && Object.hasOwnProperty.call(message, "initiatedByMe")) + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.initiatedByMe); return writer; }; @@ -49796,6 +54472,14 @@ $root.proto = (function() { message.trigger = reader.int32(); break; } + case 3: { + message.limitSharingSettingTimestamp = reader.int64(); + break; + } + case 4: { + message.initiatedByMe = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -49844,9 +54528,21 @@ $root.proto = (function() { return "trigger: enum value expected"; case 0: case 1: + case 2: + case 3: break; } } + if (message.limitSharingSettingTimestamp != null && message.hasOwnProperty("limitSharingSettingTimestamp")) { + properties._limitSharingSettingTimestamp = 1; + if (!$util.isInteger(message.limitSharingSettingTimestamp) && !(message.limitSharingSettingTimestamp && $util.isInteger(message.limitSharingSettingTimestamp.low) && $util.isInteger(message.limitSharingSettingTimestamp.high))) + return "limitSharingSettingTimestamp: integer|Long expected"; + } + if (message.initiatedByMe != null && message.hasOwnProperty("initiatedByMe")) { + properties._initiatedByMe = 1; + if (typeof message.initiatedByMe !== "boolean") + return "initiatedByMe: boolean expected"; + } return null; }; @@ -49871,15 +54567,34 @@ $root.proto = (function() { break; } break; - case "CHAT_SETTING": + case "UNKNOWN": case 0: message.trigger = 0; break; - case "BIZ_SUPPORTS_FB_HOSTING": + case "CHAT_SETTING": case 1: message.trigger = 1; break; + case "BIZ_SUPPORTS_FB_HOSTING": + case 2: + message.trigger = 2; + break; + case "UNKNOWN_GROUP": + case 3: + message.trigger = 3; + break; } + if (object.limitSharingSettingTimestamp != null) + if ($util.Long) + (message.limitSharingSettingTimestamp = $util.Long.fromValue(object.limitSharingSettingTimestamp)).unsigned = false; + else if (typeof object.limitSharingSettingTimestamp === "string") + message.limitSharingSettingTimestamp = parseInt(object.limitSharingSettingTimestamp, 10); + else if (typeof object.limitSharingSettingTimestamp === "number") + message.limitSharingSettingTimestamp = object.limitSharingSettingTimestamp; + else if (typeof object.limitSharingSettingTimestamp === "object") + message.limitSharingSettingTimestamp = new $util.LongBits(object.limitSharingSettingTimestamp.low >>> 0, object.limitSharingSettingTimestamp.high >>> 0).toNumber(); + if (object.initiatedByMe != null) + message.initiatedByMe = Boolean(object.initiatedByMe); return message; }; @@ -49902,10 +54617,23 @@ $root.proto = (function() { object._sharingLimited = "sharingLimited"; } if (message.trigger != null && message.hasOwnProperty("trigger")) { - object.trigger = options.enums === String ? $root.proto.LimitSharing.Trigger[message.trigger] === undefined ? message.trigger : $root.proto.LimitSharing.Trigger[message.trigger] : message.trigger; + object.trigger = options.enums === String ? $root.proto.LimitSharing.TriggerType[message.trigger] === undefined ? message.trigger : $root.proto.LimitSharing.TriggerType[message.trigger] : message.trigger; if (options.oneofs) object._trigger = "trigger"; } + if (message.limitSharingSettingTimestamp != null && message.hasOwnProperty("limitSharingSettingTimestamp")) { + if (typeof message.limitSharingSettingTimestamp === "number") + object.limitSharingSettingTimestamp = options.longs === String ? String(message.limitSharingSettingTimestamp) : message.limitSharingSettingTimestamp; + else + object.limitSharingSettingTimestamp = options.longs === String ? $util.Long.prototype.toString.call(message.limitSharingSettingTimestamp) : options.longs === Number ? new $util.LongBits(message.limitSharingSettingTimestamp.low >>> 0, message.limitSharingSettingTimestamp.high >>> 0).toNumber() : message.limitSharingSettingTimestamp; + if (options.oneofs) + object._limitSharingSettingTimestamp = "limitSharingSettingTimestamp"; + } + if (message.initiatedByMe != null && message.hasOwnProperty("initiatedByMe")) { + object.initiatedByMe = message.initiatedByMe; + if (options.oneofs) + object._initiatedByMe = "initiatedByMe"; + } return object; }; @@ -49936,16 +54664,20 @@ $root.proto = (function() { }; /** - * Trigger enum. - * @name proto.LimitSharing.Trigger + * TriggerType enum. + * @name proto.LimitSharing.TriggerType * @enum {number} - * @property {number} CHAT_SETTING=0 CHAT_SETTING value - * @property {number} BIZ_SUPPORTS_FB_HOSTING=1 BIZ_SUPPORTS_FB_HOSTING value + * @property {number} UNKNOWN=0 UNKNOWN value + * @property {number} CHAT_SETTING=1 CHAT_SETTING value + * @property {number} BIZ_SUPPORTS_FB_HOSTING=2 BIZ_SUPPORTS_FB_HOSTING value + * @property {number} UNKNOWN_GROUP=3 UNKNOWN_GROUP value */ - LimitSharing.Trigger = (function() { + LimitSharing.TriggerType = (function() { var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "CHAT_SETTING"] = 0; - values[valuesById[1] = "BIZ_SUPPORTS_FB_HOSTING"] = 1; + values[valuesById[0] = "UNKNOWN"] = 0; + values[valuesById[1] = "CHAT_SETTING"] = 1; + values[valuesById[2] = "BIZ_SUPPORTS_FB_HOSTING"] = 2; + values[valuesById[3] = "UNKNOWN_GROUP"] = 3; return values; })(); @@ -51408,6 +56140,265 @@ $root.proto = (function() { return values; })(); + proto.MemberLabel = (function() { + + /** + * Properties of a MemberLabel. + * @memberof proto + * @interface IMemberLabel + * @property {string|null} [label] MemberLabel label + * @property {number|Long|null} [labelTimestamp] MemberLabel labelTimestamp + */ + + /** + * Constructs a new MemberLabel. + * @memberof proto + * @classdesc Represents a MemberLabel. + * @implements IMemberLabel + * @constructor + * @param {proto.IMemberLabel=} [properties] Properties to set + */ + function MemberLabel(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MemberLabel label. + * @member {string|null|undefined} label + * @memberof proto.MemberLabel + * @instance + */ + MemberLabel.prototype.label = null; + + /** + * MemberLabel labelTimestamp. + * @member {number|Long|null|undefined} labelTimestamp + * @memberof proto.MemberLabel + * @instance + */ + MemberLabel.prototype.labelTimestamp = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(MemberLabel.prototype, "_label", { + get: $util.oneOfGetter($oneOfFields = ["label"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(MemberLabel.prototype, "_labelTimestamp", { + get: $util.oneOfGetter($oneOfFields = ["labelTimestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new MemberLabel instance using the specified properties. + * @function create + * @memberof proto.MemberLabel + * @static + * @param {proto.IMemberLabel=} [properties] Properties to set + * @returns {proto.MemberLabel} MemberLabel instance + */ + MemberLabel.create = function create(properties) { + return new MemberLabel(properties); + }; + + /** + * Encodes the specified MemberLabel message. Does not implicitly {@link proto.MemberLabel.verify|verify} messages. + * @function encode + * @memberof proto.MemberLabel + * @static + * @param {proto.IMemberLabel} message MemberLabel message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MemberLabel.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.label != null && Object.hasOwnProperty.call(message, "label")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.label); + if (message.labelTimestamp != null && Object.hasOwnProperty.call(message, "labelTimestamp")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.labelTimestamp); + return writer; + }; + + /** + * Encodes the specified MemberLabel message, length delimited. Does not implicitly {@link proto.MemberLabel.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.MemberLabel + * @static + * @param {proto.IMemberLabel} message MemberLabel message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MemberLabel.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MemberLabel message from the specified reader or buffer. + * @function decode + * @memberof proto.MemberLabel + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.MemberLabel} MemberLabel + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MemberLabel.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.MemberLabel(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.label = reader.string(); + break; + } + case 2: { + message.labelTimestamp = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MemberLabel message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.MemberLabel + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.MemberLabel} MemberLabel + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MemberLabel.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MemberLabel message. + * @function verify + * @memberof proto.MemberLabel + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MemberLabel.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.label != null && message.hasOwnProperty("label")) { + properties._label = 1; + if (!$util.isString(message.label)) + return "label: string expected"; + } + if (message.labelTimestamp != null && message.hasOwnProperty("labelTimestamp")) { + properties._labelTimestamp = 1; + if (!$util.isInteger(message.labelTimestamp) && !(message.labelTimestamp && $util.isInteger(message.labelTimestamp.low) && $util.isInteger(message.labelTimestamp.high))) + return "labelTimestamp: integer|Long expected"; + } + return null; + }; + + /** + * Creates a MemberLabel message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.MemberLabel + * @static + * @param {Object.} object Plain object + * @returns {proto.MemberLabel} MemberLabel + */ + MemberLabel.fromObject = function fromObject(object) { + if (object instanceof $root.proto.MemberLabel) + return object; + var message = new $root.proto.MemberLabel(); + if (object.label != null) + message.label = String(object.label); + if (object.labelTimestamp != null) + if ($util.Long) + (message.labelTimestamp = $util.Long.fromValue(object.labelTimestamp)).unsigned = false; + else if (typeof object.labelTimestamp === "string") + message.labelTimestamp = parseInt(object.labelTimestamp, 10); + else if (typeof object.labelTimestamp === "number") + message.labelTimestamp = object.labelTimestamp; + else if (typeof object.labelTimestamp === "object") + message.labelTimestamp = new $util.LongBits(object.labelTimestamp.low >>> 0, object.labelTimestamp.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from a MemberLabel message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.MemberLabel + * @static + * @param {proto.MemberLabel} message MemberLabel + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MemberLabel.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.label != null && message.hasOwnProperty("label")) { + object.label = message.label; + if (options.oneofs) + object._label = "label"; + } + if (message.labelTimestamp != null && message.hasOwnProperty("labelTimestamp")) { + if (typeof message.labelTimestamp === "number") + object.labelTimestamp = options.longs === String ? String(message.labelTimestamp) : message.labelTimestamp; + else + object.labelTimestamp = options.longs === String ? $util.Long.prototype.toString.call(message.labelTimestamp) : options.longs === Number ? new $util.LongBits(message.labelTimestamp.low >>> 0, message.labelTimestamp.high >>> 0).toNumber() : message.labelTimestamp; + if (options.oneofs) + object._labelTimestamp = "labelTimestamp"; + } + return object; + }; + + /** + * Converts this MemberLabel to JSON. + * @function toJSON + * @memberof proto.MemberLabel + * @instance + * @returns {Object.} JSON object + */ + MemberLabel.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for MemberLabel + * @function getTypeUrl + * @memberof proto.MemberLabel + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MemberLabel.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.MemberLabel"; + }; + + return MemberLabel; + })(); + proto.Message = (function() { /** @@ -51496,6 +56487,10 @@ $root.proto = (function() { * @property {proto.Message.IFutureProofMessage|null} [groupStatusMessage] Message groupStatusMessage * @property {proto.IAIRichResponseMessage|null} [richResponseMessage] Message richResponseMessage * @property {proto.Message.IStatusNotificationMessage|null} [statusNotificationMessage] Message statusNotificationMessage + * @property {proto.Message.IFutureProofMessage|null} [limitSharingMessage] Message limitSharingMessage + * @property {proto.Message.IFutureProofMessage|null} [botTaskMessage] Message botTaskMessage + * @property {proto.Message.IFutureProofMessage|null} [questionMessage] Message questionMessage + * @property {proto.Message.IMessageHistoryNotice|null} [messageHistoryNotice] Message messageHistoryNotice */ /** @@ -52169,6 +57164,38 @@ $root.proto = (function() { */ Message.prototype.statusNotificationMessage = null; + /** + * Message limitSharingMessage. + * @member {proto.Message.IFutureProofMessage|null|undefined} limitSharingMessage + * @memberof proto.Message + * @instance + */ + Message.prototype.limitSharingMessage = null; + + /** + * Message botTaskMessage. + * @member {proto.Message.IFutureProofMessage|null|undefined} botTaskMessage + * @memberof proto.Message + * @instance + */ + Message.prototype.botTaskMessage = null; + + /** + * Message questionMessage. + * @member {proto.Message.IFutureProofMessage|null|undefined} questionMessage + * @memberof proto.Message + * @instance + */ + Message.prototype.questionMessage = null; + + /** + * Message messageHistoryNotice. + * @member {proto.Message.IMessageHistoryNotice|null|undefined} messageHistoryNotice + * @memberof proto.Message + * @instance + */ + Message.prototype.messageHistoryNotice = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -52664,6 +57691,30 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(Message.prototype, "_limitSharingMessage", { + get: $util.oneOfGetter($oneOfFields = ["limitSharingMessage"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Message.prototype, "_botTaskMessage", { + get: $util.oneOfGetter($oneOfFields = ["botTaskMessage"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Message.prototype, "_questionMessage", { + get: $util.oneOfGetter($oneOfFields = ["questionMessage"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(Message.prototype, "_messageHistoryNotice", { + get: $util.oneOfGetter($oneOfFields = ["messageHistoryNotice"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new Message instance using the specified properties. * @function create @@ -52852,6 +57903,14 @@ $root.proto = (function() { $root.proto.AIRichResponseMessage.encode(message.richResponseMessage, writer.uint32(/* id 97, wireType 2 =*/778).fork()).ldelim(); if (message.statusNotificationMessage != null && Object.hasOwnProperty.call(message, "statusNotificationMessage")) $root.proto.Message.StatusNotificationMessage.encode(message.statusNotificationMessage, writer.uint32(/* id 98, wireType 2 =*/786).fork()).ldelim(); + if (message.limitSharingMessage != null && Object.hasOwnProperty.call(message, "limitSharingMessage")) + $root.proto.Message.FutureProofMessage.encode(message.limitSharingMessage, writer.uint32(/* id 99, wireType 2 =*/794).fork()).ldelim(); + if (message.botTaskMessage != null && Object.hasOwnProperty.call(message, "botTaskMessage")) + $root.proto.Message.FutureProofMessage.encode(message.botTaskMessage, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim(); + if (message.questionMessage != null && Object.hasOwnProperty.call(message, "questionMessage")) + $root.proto.Message.FutureProofMessage.encode(message.questionMessage, writer.uint32(/* id 101, wireType 2 =*/810).fork()).ldelim(); + if (message.messageHistoryNotice != null && Object.hasOwnProperty.call(message, "messageHistoryNotice")) + $root.proto.Message.MessageHistoryNotice.encode(message.messageHistoryNotice, writer.uint32(/* id 102, wireType 2 =*/818).fork()).ldelim(); return writer; }; @@ -53214,6 +58273,22 @@ $root.proto = (function() { message.statusNotificationMessage = $root.proto.Message.StatusNotificationMessage.decode(reader, reader.uint32()); break; } + case 99: { + message.limitSharingMessage = $root.proto.Message.FutureProofMessage.decode(reader, reader.uint32()); + break; + } + case 100: { + message.botTaskMessage = $root.proto.Message.FutureProofMessage.decode(reader, reader.uint32()); + break; + } + case 101: { + message.questionMessage = $root.proto.Message.FutureProofMessage.decode(reader, reader.uint32()); + break; + } + case 102: { + message.messageHistoryNotice = $root.proto.Message.MessageHistoryNotice.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -53903,6 +58978,38 @@ $root.proto = (function() { return "statusNotificationMessage." + error; } } + if (message.limitSharingMessage != null && message.hasOwnProperty("limitSharingMessage")) { + properties._limitSharingMessage = 1; + { + var error = $root.proto.Message.FutureProofMessage.verify(message.limitSharingMessage); + if (error) + return "limitSharingMessage." + error; + } + } + if (message.botTaskMessage != null && message.hasOwnProperty("botTaskMessage")) { + properties._botTaskMessage = 1; + { + var error = $root.proto.Message.FutureProofMessage.verify(message.botTaskMessage); + if (error) + return "botTaskMessage." + error; + } + } + if (message.questionMessage != null && message.hasOwnProperty("questionMessage")) { + properties._questionMessage = 1; + { + var error = $root.proto.Message.FutureProofMessage.verify(message.questionMessage); + if (error) + return "questionMessage." + error; + } + } + if (message.messageHistoryNotice != null && message.hasOwnProperty("messageHistoryNotice")) { + properties._messageHistoryNotice = 1; + { + var error = $root.proto.Message.MessageHistoryNotice.verify(message.messageHistoryNotice); + if (error) + return "messageHistoryNotice." + error; + } + } return null; }; @@ -54325,6 +59432,26 @@ $root.proto = (function() { throw TypeError(".proto.Message.statusNotificationMessage: object expected"); message.statusNotificationMessage = $root.proto.Message.StatusNotificationMessage.fromObject(object.statusNotificationMessage); } + if (object.limitSharingMessage != null) { + if (typeof object.limitSharingMessage !== "object") + throw TypeError(".proto.Message.limitSharingMessage: object expected"); + message.limitSharingMessage = $root.proto.Message.FutureProofMessage.fromObject(object.limitSharingMessage); + } + if (object.botTaskMessage != null) { + if (typeof object.botTaskMessage !== "object") + throw TypeError(".proto.Message.botTaskMessage: object expected"); + message.botTaskMessage = $root.proto.Message.FutureProofMessage.fromObject(object.botTaskMessage); + } + if (object.questionMessage != null) { + if (typeof object.questionMessage !== "object") + throw TypeError(".proto.Message.questionMessage: object expected"); + message.questionMessage = $root.proto.Message.FutureProofMessage.fromObject(object.questionMessage); + } + if (object.messageHistoryNotice != null) { + if (typeof object.messageHistoryNotice !== "object") + throw TypeError(".proto.Message.messageHistoryNotice: object expected"); + message.messageHistoryNotice = $root.proto.Message.MessageHistoryNotice.fromObject(object.messageHistoryNotice); + } return message; }; @@ -54751,6 +59878,26 @@ $root.proto = (function() { if (options.oneofs) object._statusNotificationMessage = "statusNotificationMessage"; } + if (message.limitSharingMessage != null && message.hasOwnProperty("limitSharingMessage")) { + object.limitSharingMessage = $root.proto.Message.FutureProofMessage.toObject(message.limitSharingMessage, options); + if (options.oneofs) + object._limitSharingMessage = "limitSharingMessage"; + } + if (message.botTaskMessage != null && message.hasOwnProperty("botTaskMessage")) { + object.botTaskMessage = $root.proto.Message.FutureProofMessage.toObject(message.botTaskMessage, options); + if (options.oneofs) + object._botTaskMessage = "botTaskMessage"; + } + if (message.questionMessage != null && message.hasOwnProperty("questionMessage")) { + object.questionMessage = $root.proto.Message.FutureProofMessage.toObject(message.questionMessage, options); + if (options.oneofs) + object._questionMessage = "questionMessage"; + } + if (message.messageHistoryNotice != null && message.hasOwnProperty("messageHistoryNotice")) { + object.messageHistoryNotice = $root.proto.Message.MessageHistoryNotice.toObject(message.messageHistoryNotice, options); + if (options.oneofs) + object._messageHistoryNotice = "messageHistoryNotice"; + } return object; }; @@ -60368,6 +65515,7 @@ $root.proto = (function() { * @property {number|null} [conversionDelaySeconds] Call conversionDelaySeconds * @property {string|null} [ctwaSignals] Call ctwaSignals * @property {Uint8Array|null} [ctwaPayload] Call ctwaPayload + * @property {proto.IContextInfo|null} [contextInfo] Call contextInfo */ /** @@ -60433,6 +65581,14 @@ $root.proto = (function() { */ Call.prototype.ctwaPayload = null; + /** + * Call contextInfo. + * @member {proto.IContextInfo|null|undefined} contextInfo + * @memberof proto.Message.Call + * @instance + */ + Call.prototype.contextInfo = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -60472,6 +65628,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(Call.prototype, "_contextInfo", { + get: $util.oneOfGetter($oneOfFields = ["contextInfo"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new Call instance using the specified properties. * @function create @@ -60508,6 +65670,8 @@ $root.proto = (function() { writer.uint32(/* id 5, wireType 2 =*/42).string(message.ctwaSignals); if (message.ctwaPayload != null && Object.hasOwnProperty.call(message, "ctwaPayload")) writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.ctwaPayload); + if (message.contextInfo != null && Object.hasOwnProperty.call(message, "contextInfo")) + $root.proto.ContextInfo.encode(message.contextInfo, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; @@ -60566,6 +65730,10 @@ $root.proto = (function() { message.ctwaPayload = reader.bytes(); break; } + case 7: { + message.contextInfo = $root.proto.ContextInfo.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -60632,6 +65800,14 @@ $root.proto = (function() { if (!(message.ctwaPayload && typeof message.ctwaPayload.length === "number" || $util.isString(message.ctwaPayload))) return "ctwaPayload: buffer expected"; } + if (message.contextInfo != null && message.hasOwnProperty("contextInfo")) { + properties._contextInfo = 1; + { + var error = $root.proto.ContextInfo.verify(message.contextInfo); + if (error) + return "contextInfo." + error; + } + } return null; }; @@ -60668,6 +65844,11 @@ $root.proto = (function() { $util.base64.decode(object.ctwaPayload, message.ctwaPayload = $util.newBuffer($util.base64.length(object.ctwaPayload)), 0); else if (object.ctwaPayload.length >= 0) message.ctwaPayload = object.ctwaPayload; + if (object.contextInfo != null) { + if (typeof object.contextInfo !== "object") + throw TypeError(".proto.Message.Call.contextInfo: object expected"); + message.contextInfo = $root.proto.ContextInfo.fromObject(object.contextInfo); + } return message; }; @@ -60714,6 +65895,11 @@ $root.proto = (function() { if (options.oneofs) object._ctwaPayload = "ctwaPayload"; } + if (message.contextInfo != null && message.hasOwnProperty("contextInfo")) { + object.contextInfo = $root.proto.ContextInfo.toObject(message.contextInfo, options); + if (options.oneofs) + object._contextInfo = "contextInfo"; + } return object; }; @@ -62010,6 +67196,7 @@ $root.proto = (function() { * @property {number|Long|null} [senderNotificationTimestampMs] CloudAPIThreadControlNotification senderNotificationTimestampMs * @property {string|null} [consumerLid] CloudAPIThreadControlNotification consumerLid * @property {string|null} [consumerPhoneNumber] CloudAPIThreadControlNotification consumerPhoneNumber + * @property {proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent|null} [notificationContent] CloudAPIThreadControlNotification notificationContent */ /** @@ -62059,6 +67246,14 @@ $root.proto = (function() { */ CloudAPIThreadControlNotification.prototype.consumerPhoneNumber = null; + /** + * CloudAPIThreadControlNotification notificationContent. + * @member {proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent|null|undefined} notificationContent + * @memberof proto.Message.CloudAPIThreadControlNotification + * @instance + */ + CloudAPIThreadControlNotification.prototype.notificationContent = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -62086,6 +67281,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(CloudAPIThreadControlNotification.prototype, "_notificationContent", { + get: $util.oneOfGetter($oneOfFields = ["notificationContent"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new CloudAPIThreadControlNotification instance using the specified properties. * @function create @@ -62118,6 +67319,8 @@ $root.proto = (function() { writer.uint32(/* id 3, wireType 2 =*/26).string(message.consumerLid); if (message.consumerPhoneNumber != null && Object.hasOwnProperty.call(message, "consumerPhoneNumber")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.consumerPhoneNumber); + if (message.notificationContent != null && Object.hasOwnProperty.call(message, "notificationContent")) + $root.proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.encode(message.notificationContent, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; @@ -62168,6 +67371,10 @@ $root.proto = (function() { message.consumerPhoneNumber = reader.string(); break; } + case 5: { + message.notificationContent = $root.proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -62230,6 +67437,14 @@ $root.proto = (function() { if (!$util.isString(message.consumerPhoneNumber)) return "consumerPhoneNumber: string expected"; } + if (message.notificationContent != null && message.hasOwnProperty("notificationContent")) { + properties._notificationContent = 1; + { + var error = $root.proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.verify(message.notificationContent); + if (error) + return "notificationContent." + error; + } + } return null; }; @@ -62278,6 +67493,11 @@ $root.proto = (function() { message.consumerLid = String(object.consumerLid); if (object.consumerPhoneNumber != null) message.consumerPhoneNumber = String(object.consumerPhoneNumber); + if (object.notificationContent != null) { + if (typeof object.notificationContent !== "object") + throw TypeError(".proto.Message.CloudAPIThreadControlNotification.notificationContent: object expected"); + message.notificationContent = $root.proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.fromObject(object.notificationContent); + } return message; }; @@ -62317,6 +67537,11 @@ $root.proto = (function() { if (options.oneofs) object._consumerPhoneNumber = "consumerPhoneNumber"; } + if (message.notificationContent != null && message.hasOwnProperty("notificationContent")) { + object.notificationContent = $root.proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.toObject(message.notificationContent, options); + if (options.oneofs) + object._notificationContent = "notificationContent"; + } return object; }; @@ -62362,6 +67587,255 @@ $root.proto = (function() { return values; })(); + CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent = (function() { + + /** + * Properties of a CloudAPIThreadControlNotificationContent. + * @memberof proto.Message.CloudAPIThreadControlNotification + * @interface ICloudAPIThreadControlNotificationContent + * @property {string|null} [handoffNotificationText] CloudAPIThreadControlNotificationContent handoffNotificationText + * @property {string|null} [extraJson] CloudAPIThreadControlNotificationContent extraJson + */ + + /** + * Constructs a new CloudAPIThreadControlNotificationContent. + * @memberof proto.Message.CloudAPIThreadControlNotification + * @classdesc Represents a CloudAPIThreadControlNotificationContent. + * @implements ICloudAPIThreadControlNotificationContent + * @constructor + * @param {proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent=} [properties] Properties to set + */ + function CloudAPIThreadControlNotificationContent(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CloudAPIThreadControlNotificationContent handoffNotificationText. + * @member {string|null|undefined} handoffNotificationText + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @instance + */ + CloudAPIThreadControlNotificationContent.prototype.handoffNotificationText = null; + + /** + * CloudAPIThreadControlNotificationContent extraJson. + * @member {string|null|undefined} extraJson + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @instance + */ + CloudAPIThreadControlNotificationContent.prototype.extraJson = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(CloudAPIThreadControlNotificationContent.prototype, "_handoffNotificationText", { + get: $util.oneOfGetter($oneOfFields = ["handoffNotificationText"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(CloudAPIThreadControlNotificationContent.prototype, "_extraJson", { + get: $util.oneOfGetter($oneOfFields = ["extraJson"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new CloudAPIThreadControlNotificationContent instance using the specified properties. + * @function create + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent=} [properties] Properties to set + * @returns {proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent} CloudAPIThreadControlNotificationContent instance + */ + CloudAPIThreadControlNotificationContent.create = function create(properties) { + return new CloudAPIThreadControlNotificationContent(properties); + }; + + /** + * Encodes the specified CloudAPIThreadControlNotificationContent message. Does not implicitly {@link proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.verify|verify} messages. + * @function encode + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent} message CloudAPIThreadControlNotificationContent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CloudAPIThreadControlNotificationContent.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.handoffNotificationText != null && Object.hasOwnProperty.call(message, "handoffNotificationText")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.handoffNotificationText); + if (message.extraJson != null && Object.hasOwnProperty.call(message, "extraJson")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.extraJson); + return writer; + }; + + /** + * Encodes the specified CloudAPIThreadControlNotificationContent message, length delimited. Does not implicitly {@link proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {proto.Message.CloudAPIThreadControlNotification.ICloudAPIThreadControlNotificationContent} message CloudAPIThreadControlNotificationContent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CloudAPIThreadControlNotificationContent.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CloudAPIThreadControlNotificationContent message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent} CloudAPIThreadControlNotificationContent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CloudAPIThreadControlNotificationContent.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.handoffNotificationText = reader.string(); + break; + } + case 2: { + message.extraJson = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CloudAPIThreadControlNotificationContent message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent} CloudAPIThreadControlNotificationContent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CloudAPIThreadControlNotificationContent.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CloudAPIThreadControlNotificationContent message. + * @function verify + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CloudAPIThreadControlNotificationContent.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.handoffNotificationText != null && message.hasOwnProperty("handoffNotificationText")) { + properties._handoffNotificationText = 1; + if (!$util.isString(message.handoffNotificationText)) + return "handoffNotificationText: string expected"; + } + if (message.extraJson != null && message.hasOwnProperty("extraJson")) { + properties._extraJson = 1; + if (!$util.isString(message.extraJson)) + return "extraJson: string expected"; + } + return null; + }; + + /** + * Creates a CloudAPIThreadControlNotificationContent message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent} CloudAPIThreadControlNotificationContent + */ + CloudAPIThreadControlNotificationContent.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent) + return object; + var message = new $root.proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent(); + if (object.handoffNotificationText != null) + message.handoffNotificationText = String(object.handoffNotificationText); + if (object.extraJson != null) + message.extraJson = String(object.extraJson); + return message; + }; + + /** + * Creates a plain object from a CloudAPIThreadControlNotificationContent message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent} message CloudAPIThreadControlNotificationContent + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CloudAPIThreadControlNotificationContent.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.handoffNotificationText != null && message.hasOwnProperty("handoffNotificationText")) { + object.handoffNotificationText = message.handoffNotificationText; + if (options.oneofs) + object._handoffNotificationText = "handoffNotificationText"; + } + if (message.extraJson != null && message.hasOwnProperty("extraJson")) { + object.extraJson = message.extraJson; + if (options.oneofs) + object._extraJson = "extraJson"; + } + return object; + }; + + /** + * Converts this CloudAPIThreadControlNotificationContent to JSON. + * @function toJSON + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @instance + * @returns {Object.} JSON object + */ + CloudAPIThreadControlNotificationContent.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CloudAPIThreadControlNotificationContent + * @function getTypeUrl + * @memberof proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CloudAPIThreadControlNotificationContent.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent"; + }; + + return CloudAPIThreadControlNotificationContent; + })(); + return CloudAPIThreadControlNotification; })(); @@ -65541,6 +71015,7 @@ $root.proto = (function() { * @property {number|Long|null} [startTime] EventMessage startTime * @property {number|Long|null} [endTime] EventMessage endTime * @property {boolean|null} [extraGuestsAllowed] EventMessage extraGuestsAllowed + * @property {boolean|null} [isScheduleCall] EventMessage isScheduleCall */ /** @@ -65630,6 +71105,14 @@ $root.proto = (function() { */ EventMessage.prototype.extraGuestsAllowed = null; + /** + * EventMessage isScheduleCall. + * @member {boolean|null|undefined} isScheduleCall + * @memberof proto.Message.EventMessage + * @instance + */ + EventMessage.prototype.isScheduleCall = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -65687,6 +71170,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(EventMessage.prototype, "_isScheduleCall", { + get: $util.oneOfGetter($oneOfFields = ["isScheduleCall"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new EventMessage instance using the specified properties. * @function create @@ -65729,6 +71218,8 @@ $root.proto = (function() { writer.uint32(/* id 8, wireType 0 =*/64).int64(message.endTime); if (message.extraGuestsAllowed != null && Object.hasOwnProperty.call(message, "extraGuestsAllowed")) writer.uint32(/* id 9, wireType 0 =*/72).bool(message.extraGuestsAllowed); + if (message.isScheduleCall != null && Object.hasOwnProperty.call(message, "isScheduleCall")) + writer.uint32(/* id 10, wireType 0 =*/80).bool(message.isScheduleCall); return writer; }; @@ -65799,6 +71290,10 @@ $root.proto = (function() { message.extraGuestsAllowed = reader.bool(); break; } + case 10: { + message.isScheduleCall = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -65886,6 +71381,11 @@ $root.proto = (function() { if (typeof message.extraGuestsAllowed !== "boolean") return "extraGuestsAllowed: boolean expected"; } + if (message.isScheduleCall != null && message.hasOwnProperty("isScheduleCall")) { + properties._isScheduleCall = 1; + if (typeof message.isScheduleCall !== "boolean") + return "isScheduleCall: boolean expected"; + } return null; }; @@ -65939,6 +71439,8 @@ $root.proto = (function() { message.endTime = new $util.LongBits(object.endTime.low >>> 0, object.endTime.high >>> 0).toNumber(); if (object.extraGuestsAllowed != null) message.extraGuestsAllowed = Boolean(object.extraGuestsAllowed); + if (object.isScheduleCall != null) + message.isScheduleCall = Boolean(object.isScheduleCall); return message; }; @@ -66006,6 +71508,11 @@ $root.proto = (function() { if (options.oneofs) object._extraGuestsAllowed = "extraGuestsAllowed"; } + if (message.isScheduleCall != null && message.hasOwnProperty("isScheduleCall")) { + object.isScheduleCall = message.isScheduleCall; + if (options.oneofs) + object._isScheduleCall = "isScheduleCall"; + } return object; }; @@ -66409,6 +71916,8 @@ $root.proto = (function() { * @property {number|null} [videoHeight] ExtendedTextMessage videoHeight * @property {number|null} [videoWidth] ExtendedTextMessage videoWidth * @property {proto.Message.IMMSThumbnailMetadata|null} [faviconMMSMetadata] ExtendedTextMessage faviconMMSMetadata + * @property {proto.Message.ILinkPreviewMetadata|null} [linkPreviewMetadata] ExtendedTextMessage linkPreviewMetadata + * @property {proto.Message.IPaymentLinkMetadata|null} [paymentLinkMetadata] ExtendedTextMessage paymentLinkMetadata */ /** @@ -66634,6 +72143,22 @@ $root.proto = (function() { */ ExtendedTextMessage.prototype.faviconMMSMetadata = null; + /** + * ExtendedTextMessage linkPreviewMetadata. + * @member {proto.Message.ILinkPreviewMetadata|null|undefined} linkPreviewMetadata + * @memberof proto.Message.ExtendedTextMessage + * @instance + */ + ExtendedTextMessage.prototype.linkPreviewMetadata = null; + + /** + * ExtendedTextMessage paymentLinkMetadata. + * @member {proto.Message.IPaymentLinkMetadata|null|undefined} paymentLinkMetadata + * @memberof proto.Message.ExtendedTextMessage + * @instance + */ + ExtendedTextMessage.prototype.paymentLinkMetadata = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -66793,6 +72318,18 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(ExtendedTextMessage.prototype, "_linkPreviewMetadata", { + get: $util.oneOfGetter($oneOfFields = ["linkPreviewMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ExtendedTextMessage.prototype, "_paymentLinkMetadata", { + get: $util.oneOfGetter($oneOfFields = ["paymentLinkMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new ExtendedTextMessage instance using the specified properties. * @function create @@ -66869,6 +72406,10 @@ $root.proto = (function() { writer.uint32(/* id 32, wireType 0 =*/256).uint32(message.videoWidth); if (message.faviconMMSMetadata != null && Object.hasOwnProperty.call(message, "faviconMMSMetadata")) $root.proto.Message.MMSThumbnailMetadata.encode(message.faviconMMSMetadata, writer.uint32(/* id 33, wireType 2 =*/266).fork()).ldelim(); + if (message.linkPreviewMetadata != null && Object.hasOwnProperty.call(message, "linkPreviewMetadata")) + $root.proto.Message.LinkPreviewMetadata.encode(message.linkPreviewMetadata, writer.uint32(/* id 34, wireType 2 =*/274).fork()).ldelim(); + if (message.paymentLinkMetadata != null && Object.hasOwnProperty.call(message, "paymentLinkMetadata")) + $root.proto.Message.PaymentLinkMetadata.encode(message.paymentLinkMetadata, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim(); return writer; }; @@ -67007,6 +72548,14 @@ $root.proto = (function() { message.faviconMMSMetadata = $root.proto.Message.MMSThumbnailMetadata.decode(reader, reader.uint32()); break; } + case 34: { + message.linkPreviewMetadata = $root.proto.Message.LinkPreviewMetadata.decode(reader, reader.uint32()); + break; + } + case 35: { + message.paymentLinkMetadata = $root.proto.Message.PaymentLinkMetadata.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -67213,6 +72762,22 @@ $root.proto = (function() { return "faviconMMSMetadata." + error; } } + if (message.linkPreviewMetadata != null && message.hasOwnProperty("linkPreviewMetadata")) { + properties._linkPreviewMetadata = 1; + { + var error = $root.proto.Message.LinkPreviewMetadata.verify(message.linkPreviewMetadata); + if (error) + return "linkPreviewMetadata." + error; + } + } + if (message.paymentLinkMetadata != null && message.hasOwnProperty("paymentLinkMetadata")) { + properties._paymentLinkMetadata = 1; + { + var error = $root.proto.Message.PaymentLinkMetadata.verify(message.paymentLinkMetadata); + if (error) + return "paymentLinkMetadata." + error; + } + } return null; }; @@ -67420,6 +72985,16 @@ $root.proto = (function() { throw TypeError(".proto.Message.ExtendedTextMessage.faviconMMSMetadata: object expected"); message.faviconMMSMetadata = $root.proto.Message.MMSThumbnailMetadata.fromObject(object.faviconMMSMetadata); } + if (object.linkPreviewMetadata != null) { + if (typeof object.linkPreviewMetadata !== "object") + throw TypeError(".proto.Message.ExtendedTextMessage.linkPreviewMetadata: object expected"); + message.linkPreviewMetadata = $root.proto.Message.LinkPreviewMetadata.fromObject(object.linkPreviewMetadata); + } + if (object.paymentLinkMetadata != null) { + if (typeof object.paymentLinkMetadata !== "object") + throw TypeError(".proto.Message.ExtendedTextMessage.paymentLinkMetadata: object expected"); + message.paymentLinkMetadata = $root.proto.Message.PaymentLinkMetadata.fromObject(object.paymentLinkMetadata); + } return message; }; @@ -67569,6 +73144,16 @@ $root.proto = (function() { if (options.oneofs) object._faviconMMSMetadata = "faviconMMSMetadata"; } + if (message.linkPreviewMetadata != null && message.hasOwnProperty("linkPreviewMetadata")) { + object.linkPreviewMetadata = $root.proto.Message.LinkPreviewMetadata.toObject(message.linkPreviewMetadata, options); + if (options.oneofs) + object._linkPreviewMetadata = "linkPreviewMetadata"; + } + if (message.paymentLinkMetadata != null && message.hasOwnProperty("paymentLinkMetadata")) { + object.paymentLinkMetadata = $root.proto.Message.PaymentLinkMetadata.toObject(message.paymentLinkMetadata, options); + if (options.oneofs) + object._paymentLinkMetadata = "paymentLinkMetadata"; + } return object; }; @@ -77552,6 +83137,300 @@ $root.proto = (function() { return KeepInChatMessage; })(); + Message.LinkPreviewMetadata = (function() { + + /** + * Properties of a LinkPreviewMetadata. + * @memberof proto.Message + * @interface ILinkPreviewMetadata + * @property {proto.Message.IPaymentLinkMetadata|null} [paymentLinkMetadata] LinkPreviewMetadata paymentLinkMetadata + * @property {proto.Message.IURLMetadata|null} [urlMetadata] LinkPreviewMetadata urlMetadata + * @property {number|null} [fbExperimentId] LinkPreviewMetadata fbExperimentId + */ + + /** + * Constructs a new LinkPreviewMetadata. + * @memberof proto.Message + * @classdesc Represents a LinkPreviewMetadata. + * @implements ILinkPreviewMetadata + * @constructor + * @param {proto.Message.ILinkPreviewMetadata=} [properties] Properties to set + */ + function LinkPreviewMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * LinkPreviewMetadata paymentLinkMetadata. + * @member {proto.Message.IPaymentLinkMetadata|null|undefined} paymentLinkMetadata + * @memberof proto.Message.LinkPreviewMetadata + * @instance + */ + LinkPreviewMetadata.prototype.paymentLinkMetadata = null; + + /** + * LinkPreviewMetadata urlMetadata. + * @member {proto.Message.IURLMetadata|null|undefined} urlMetadata + * @memberof proto.Message.LinkPreviewMetadata + * @instance + */ + LinkPreviewMetadata.prototype.urlMetadata = null; + + /** + * LinkPreviewMetadata fbExperimentId. + * @member {number|null|undefined} fbExperimentId + * @memberof proto.Message.LinkPreviewMetadata + * @instance + */ + LinkPreviewMetadata.prototype.fbExperimentId = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LinkPreviewMetadata.prototype, "_paymentLinkMetadata", { + get: $util.oneOfGetter($oneOfFields = ["paymentLinkMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LinkPreviewMetadata.prototype, "_urlMetadata", { + get: $util.oneOfGetter($oneOfFields = ["urlMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LinkPreviewMetadata.prototype, "_fbExperimentId", { + get: $util.oneOfGetter($oneOfFields = ["fbExperimentId"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new LinkPreviewMetadata instance using the specified properties. + * @function create + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {proto.Message.ILinkPreviewMetadata=} [properties] Properties to set + * @returns {proto.Message.LinkPreviewMetadata} LinkPreviewMetadata instance + */ + LinkPreviewMetadata.create = function create(properties) { + return new LinkPreviewMetadata(properties); + }; + + /** + * Encodes the specified LinkPreviewMetadata message. Does not implicitly {@link proto.Message.LinkPreviewMetadata.verify|verify} messages. + * @function encode + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {proto.Message.ILinkPreviewMetadata} message LinkPreviewMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + LinkPreviewMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.paymentLinkMetadata != null && Object.hasOwnProperty.call(message, "paymentLinkMetadata")) + $root.proto.Message.PaymentLinkMetadata.encode(message.paymentLinkMetadata, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.urlMetadata != null && Object.hasOwnProperty.call(message, "urlMetadata")) + $root.proto.Message.URLMetadata.encode(message.urlMetadata, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.fbExperimentId != null && Object.hasOwnProperty.call(message, "fbExperimentId")) + writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.fbExperimentId); + return writer; + }; + + /** + * Encodes the specified LinkPreviewMetadata message, length delimited. Does not implicitly {@link proto.Message.LinkPreviewMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {proto.Message.ILinkPreviewMetadata} message LinkPreviewMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + LinkPreviewMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a LinkPreviewMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.LinkPreviewMetadata} LinkPreviewMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + LinkPreviewMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.LinkPreviewMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.paymentLinkMetadata = $root.proto.Message.PaymentLinkMetadata.decode(reader, reader.uint32()); + break; + } + case 2: { + message.urlMetadata = $root.proto.Message.URLMetadata.decode(reader, reader.uint32()); + break; + } + case 3: { + message.fbExperimentId = reader.uint32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a LinkPreviewMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.LinkPreviewMetadata} LinkPreviewMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + LinkPreviewMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a LinkPreviewMetadata message. + * @function verify + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + LinkPreviewMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.paymentLinkMetadata != null && message.hasOwnProperty("paymentLinkMetadata")) { + properties._paymentLinkMetadata = 1; + { + var error = $root.proto.Message.PaymentLinkMetadata.verify(message.paymentLinkMetadata); + if (error) + return "paymentLinkMetadata." + error; + } + } + if (message.urlMetadata != null && message.hasOwnProperty("urlMetadata")) { + properties._urlMetadata = 1; + { + var error = $root.proto.Message.URLMetadata.verify(message.urlMetadata); + if (error) + return "urlMetadata." + error; + } + } + if (message.fbExperimentId != null && message.hasOwnProperty("fbExperimentId")) { + properties._fbExperimentId = 1; + if (!$util.isInteger(message.fbExperimentId)) + return "fbExperimentId: integer expected"; + } + return null; + }; + + /** + * Creates a LinkPreviewMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.LinkPreviewMetadata} LinkPreviewMetadata + */ + LinkPreviewMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.LinkPreviewMetadata) + return object; + var message = new $root.proto.Message.LinkPreviewMetadata(); + if (object.paymentLinkMetadata != null) { + if (typeof object.paymentLinkMetadata !== "object") + throw TypeError(".proto.Message.LinkPreviewMetadata.paymentLinkMetadata: object expected"); + message.paymentLinkMetadata = $root.proto.Message.PaymentLinkMetadata.fromObject(object.paymentLinkMetadata); + } + if (object.urlMetadata != null) { + if (typeof object.urlMetadata !== "object") + throw TypeError(".proto.Message.LinkPreviewMetadata.urlMetadata: object expected"); + message.urlMetadata = $root.proto.Message.URLMetadata.fromObject(object.urlMetadata); + } + if (object.fbExperimentId != null) + message.fbExperimentId = object.fbExperimentId >>> 0; + return message; + }; + + /** + * Creates a plain object from a LinkPreviewMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {proto.Message.LinkPreviewMetadata} message LinkPreviewMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + LinkPreviewMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.paymentLinkMetadata != null && message.hasOwnProperty("paymentLinkMetadata")) { + object.paymentLinkMetadata = $root.proto.Message.PaymentLinkMetadata.toObject(message.paymentLinkMetadata, options); + if (options.oneofs) + object._paymentLinkMetadata = "paymentLinkMetadata"; + } + if (message.urlMetadata != null && message.hasOwnProperty("urlMetadata")) { + object.urlMetadata = $root.proto.Message.URLMetadata.toObject(message.urlMetadata, options); + if (options.oneofs) + object._urlMetadata = "urlMetadata"; + } + if (message.fbExperimentId != null && message.hasOwnProperty("fbExperimentId")) { + object.fbExperimentId = message.fbExperimentId; + if (options.oneofs) + object._fbExperimentId = "fbExperimentId"; + } + return object; + }; + + /** + * Converts this LinkPreviewMetadata to JSON. + * @function toJSON + * @memberof proto.Message.LinkPreviewMetadata + * @instance + * @returns {Object.} JSON object + */ + LinkPreviewMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for LinkPreviewMetadata + * @function getTypeUrl + * @memberof proto.Message.LinkPreviewMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + LinkPreviewMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.LinkPreviewMetadata"; + }; + + return LinkPreviewMetadata; + })(); + Message.ListMessage = (function() { /** @@ -81810,7 +87689,7 @@ $root.proto = (function() { * @property {string|null} [directPath] MessageHistoryBundle directPath * @property {number|Long|null} [mediaKeyTimestamp] MessageHistoryBundle mediaKeyTimestamp * @property {proto.IContextInfo|null} [contextInfo] MessageHistoryBundle contextInfo - * @property {Array.|null} [participants] MessageHistoryBundle participants + * @property {proto.Message.IMessageHistoryMetadata|null} [messageHistoryMetadata] MessageHistoryBundle messageHistoryMetadata */ /** @@ -81822,7 +87701,6 @@ $root.proto = (function() { * @param {proto.Message.IMessageHistoryBundle=} [properties] Properties to set */ function MessageHistoryBundle(properties) { - this.participants = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -81886,12 +87764,12 @@ $root.proto = (function() { MessageHistoryBundle.prototype.contextInfo = null; /** - * MessageHistoryBundle participants. - * @member {Array.} participants + * MessageHistoryBundle messageHistoryMetadata. + * @member {proto.Message.IMessageHistoryMetadata|null|undefined} messageHistoryMetadata * @memberof proto.Message.MessageHistoryBundle * @instance */ - MessageHistoryBundle.prototype.participants = $util.emptyArray; + MessageHistoryBundle.prototype.messageHistoryMetadata = null; // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -81938,6 +87816,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(MessageHistoryBundle.prototype, "_messageHistoryMetadata", { + get: $util.oneOfGetter($oneOfFields = ["messageHistoryMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new MessageHistoryBundle instance using the specified properties. * @function create @@ -81963,22 +87847,21 @@ $root.proto = (function() { if (!writer) writer = $Writer.create(); if (message.mimetype != null && Object.hasOwnProperty.call(message, "mimetype")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.mimetype); + writer.uint32(/* id 1, wireType 2 =*/10).string(message.mimetype); if (message.fileSha256 != null && Object.hasOwnProperty.call(message, "fileSha256")) - writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.fileSha256); + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.fileSha256); if (message.mediaKey != null && Object.hasOwnProperty.call(message, "mediaKey")) - writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.mediaKey); + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.mediaKey); if (message.fileEncSha256 != null && Object.hasOwnProperty.call(message, "fileEncSha256")) - writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.fileEncSha256); + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.fileEncSha256); if (message.directPath != null && Object.hasOwnProperty.call(message, "directPath")) - writer.uint32(/* id 7, wireType 2 =*/58).string(message.directPath); + writer.uint32(/* id 5, wireType 2 =*/42).string(message.directPath); if (message.mediaKeyTimestamp != null && Object.hasOwnProperty.call(message, "mediaKeyTimestamp")) - writer.uint32(/* id 8, wireType 0 =*/64).int64(message.mediaKeyTimestamp); + writer.uint32(/* id 6, wireType 0 =*/48).int64(message.mediaKeyTimestamp); if (message.contextInfo != null && Object.hasOwnProperty.call(message, "contextInfo")) - $root.proto.ContextInfo.encode(message.contextInfo, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); - if (message.participants != null && message.participants.length) - for (var i = 0; i < message.participants.length; ++i) - writer.uint32(/* id 10, wireType 2 =*/82).string(message.participants[i]); + $root.proto.ContextInfo.encode(message.contextInfo, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.messageHistoryMetadata != null && Object.hasOwnProperty.call(message, "messageHistoryMetadata")) + $root.proto.Message.MessageHistoryMetadata.encode(message.messageHistoryMetadata, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); return writer; }; @@ -82013,38 +87896,36 @@ $root.proto = (function() { while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 2: { + case 1: { message.mimetype = reader.string(); break; } - case 3: { + case 2: { message.fileSha256 = reader.bytes(); break; } - case 5: { + case 3: { message.mediaKey = reader.bytes(); break; } - case 6: { + case 4: { message.fileEncSha256 = reader.bytes(); break; } - case 7: { + case 5: { message.directPath = reader.string(); break; } - case 8: { + case 6: { message.mediaKeyTimestamp = reader.int64(); break; } - case 9: { + case 7: { message.contextInfo = $root.proto.ContextInfo.decode(reader, reader.uint32()); break; } - case 10: { - if (!(message.participants && message.participants.length)) - message.participants = []; - message.participants.push(reader.string()); + case 8: { + message.messageHistoryMetadata = $root.proto.Message.MessageHistoryMetadata.decode(reader, reader.uint32()); break; } default: @@ -82121,12 +88002,13 @@ $root.proto = (function() { return "contextInfo." + error; } } - if (message.participants != null && message.hasOwnProperty("participants")) { - if (!Array.isArray(message.participants)) - return "participants: array expected"; - for (var i = 0; i < message.participants.length; ++i) - if (!$util.isString(message.participants[i])) - return "participants: string[] expected"; + if (message.messageHistoryMetadata != null && message.hasOwnProperty("messageHistoryMetadata")) { + properties._messageHistoryMetadata = 1; + { + var error = $root.proto.Message.MessageHistoryMetadata.verify(message.messageHistoryMetadata); + if (error) + return "messageHistoryMetadata." + error; + } } return null; }; @@ -82176,12 +88058,10 @@ $root.proto = (function() { throw TypeError(".proto.Message.MessageHistoryBundle.contextInfo: object expected"); message.contextInfo = $root.proto.ContextInfo.fromObject(object.contextInfo); } - if (object.participants) { - if (!Array.isArray(object.participants)) - throw TypeError(".proto.Message.MessageHistoryBundle.participants: array expected"); - message.participants = []; - for (var i = 0; i < object.participants.length; ++i) - message.participants[i] = String(object.participants[i]); + if (object.messageHistoryMetadata != null) { + if (typeof object.messageHistoryMetadata !== "object") + throw TypeError(".proto.Message.MessageHistoryBundle.messageHistoryMetadata: object expected"); + message.messageHistoryMetadata = $root.proto.Message.MessageHistoryMetadata.fromObject(object.messageHistoryMetadata); } return message; }; @@ -82199,8 +88079,6 @@ $root.proto = (function() { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.participants = []; if (message.mimetype != null && message.hasOwnProperty("mimetype")) { object.mimetype = message.mimetype; if (options.oneofs) @@ -82239,10 +88117,10 @@ $root.proto = (function() { if (options.oneofs) object._contextInfo = "contextInfo"; } - if (message.participants && message.participants.length) { - object.participants = []; - for (var j = 0; j < message.participants.length; ++j) - object.participants[j] = message.participants[j]; + if (message.messageHistoryMetadata != null && message.hasOwnProperty("messageHistoryMetadata")) { + object.messageHistoryMetadata = $root.proto.Message.MessageHistoryMetadata.toObject(message.messageHistoryMetadata, options); + if (options.oneofs) + object._messageHistoryMetadata = "messageHistoryMetadata"; } return object; }; @@ -82276,6 +88154,576 @@ $root.proto = (function() { return MessageHistoryBundle; })(); + Message.MessageHistoryMetadata = (function() { + + /** + * Properties of a MessageHistoryMetadata. + * @memberof proto.Message + * @interface IMessageHistoryMetadata + * @property {Array.|null} [historyReceivers] MessageHistoryMetadata historyReceivers + * @property {number|Long|null} [firstMessageTimestamp] MessageHistoryMetadata firstMessageTimestamp + * @property {number|Long|null} [messageCount] MessageHistoryMetadata messageCount + */ + + /** + * Constructs a new MessageHistoryMetadata. + * @memberof proto.Message + * @classdesc Represents a MessageHistoryMetadata. + * @implements IMessageHistoryMetadata + * @constructor + * @param {proto.Message.IMessageHistoryMetadata=} [properties] Properties to set + */ + function MessageHistoryMetadata(properties) { + this.historyReceivers = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MessageHistoryMetadata historyReceivers. + * @member {Array.} historyReceivers + * @memberof proto.Message.MessageHistoryMetadata + * @instance + */ + MessageHistoryMetadata.prototype.historyReceivers = $util.emptyArray; + + /** + * MessageHistoryMetadata firstMessageTimestamp. + * @member {number|Long|null|undefined} firstMessageTimestamp + * @memberof proto.Message.MessageHistoryMetadata + * @instance + */ + MessageHistoryMetadata.prototype.firstMessageTimestamp = null; + + /** + * MessageHistoryMetadata messageCount. + * @member {number|Long|null|undefined} messageCount + * @memberof proto.Message.MessageHistoryMetadata + * @instance + */ + MessageHistoryMetadata.prototype.messageCount = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(MessageHistoryMetadata.prototype, "_firstMessageTimestamp", { + get: $util.oneOfGetter($oneOfFields = ["firstMessageTimestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(MessageHistoryMetadata.prototype, "_messageCount", { + get: $util.oneOfGetter($oneOfFields = ["messageCount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new MessageHistoryMetadata instance using the specified properties. + * @function create + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {proto.Message.IMessageHistoryMetadata=} [properties] Properties to set + * @returns {proto.Message.MessageHistoryMetadata} MessageHistoryMetadata instance + */ + MessageHistoryMetadata.create = function create(properties) { + return new MessageHistoryMetadata(properties); + }; + + /** + * Encodes the specified MessageHistoryMetadata message. Does not implicitly {@link proto.Message.MessageHistoryMetadata.verify|verify} messages. + * @function encode + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {proto.Message.IMessageHistoryMetadata} message MessageHistoryMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageHistoryMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.historyReceivers != null && message.historyReceivers.length) + for (var i = 0; i < message.historyReceivers.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.historyReceivers[i]); + if (message.firstMessageTimestamp != null && Object.hasOwnProperty.call(message, "firstMessageTimestamp")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.firstMessageTimestamp); + if (message.messageCount != null && Object.hasOwnProperty.call(message, "messageCount")) + writer.uint32(/* id 3, wireType 0 =*/24).int64(message.messageCount); + return writer; + }; + + /** + * Encodes the specified MessageHistoryMetadata message, length delimited. Does not implicitly {@link proto.Message.MessageHistoryMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {proto.Message.IMessageHistoryMetadata} message MessageHistoryMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageHistoryMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MessageHistoryMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.MessageHistoryMetadata} MessageHistoryMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageHistoryMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.MessageHistoryMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.historyReceivers && message.historyReceivers.length)) + message.historyReceivers = []; + message.historyReceivers.push(reader.string()); + break; + } + case 2: { + message.firstMessageTimestamp = reader.int64(); + break; + } + case 3: { + message.messageCount = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MessageHistoryMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.MessageHistoryMetadata} MessageHistoryMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageHistoryMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MessageHistoryMetadata message. + * @function verify + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MessageHistoryMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.historyReceivers != null && message.hasOwnProperty("historyReceivers")) { + if (!Array.isArray(message.historyReceivers)) + return "historyReceivers: array expected"; + for (var i = 0; i < message.historyReceivers.length; ++i) + if (!$util.isString(message.historyReceivers[i])) + return "historyReceivers: string[] expected"; + } + if (message.firstMessageTimestamp != null && message.hasOwnProperty("firstMessageTimestamp")) { + properties._firstMessageTimestamp = 1; + if (!$util.isInteger(message.firstMessageTimestamp) && !(message.firstMessageTimestamp && $util.isInteger(message.firstMessageTimestamp.low) && $util.isInteger(message.firstMessageTimestamp.high))) + return "firstMessageTimestamp: integer|Long expected"; + } + if (message.messageCount != null && message.hasOwnProperty("messageCount")) { + properties._messageCount = 1; + if (!$util.isInteger(message.messageCount) && !(message.messageCount && $util.isInteger(message.messageCount.low) && $util.isInteger(message.messageCount.high))) + return "messageCount: integer|Long expected"; + } + return null; + }; + + /** + * Creates a MessageHistoryMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.MessageHistoryMetadata} MessageHistoryMetadata + */ + MessageHistoryMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.MessageHistoryMetadata) + return object; + var message = new $root.proto.Message.MessageHistoryMetadata(); + if (object.historyReceivers) { + if (!Array.isArray(object.historyReceivers)) + throw TypeError(".proto.Message.MessageHistoryMetadata.historyReceivers: array expected"); + message.historyReceivers = []; + for (var i = 0; i < object.historyReceivers.length; ++i) + message.historyReceivers[i] = String(object.historyReceivers[i]); + } + if (object.firstMessageTimestamp != null) + if ($util.Long) + (message.firstMessageTimestamp = $util.Long.fromValue(object.firstMessageTimestamp)).unsigned = false; + else if (typeof object.firstMessageTimestamp === "string") + message.firstMessageTimestamp = parseInt(object.firstMessageTimestamp, 10); + else if (typeof object.firstMessageTimestamp === "number") + message.firstMessageTimestamp = object.firstMessageTimestamp; + else if (typeof object.firstMessageTimestamp === "object") + message.firstMessageTimestamp = new $util.LongBits(object.firstMessageTimestamp.low >>> 0, object.firstMessageTimestamp.high >>> 0).toNumber(); + if (object.messageCount != null) + if ($util.Long) + (message.messageCount = $util.Long.fromValue(object.messageCount)).unsigned = false; + else if (typeof object.messageCount === "string") + message.messageCount = parseInt(object.messageCount, 10); + else if (typeof object.messageCount === "number") + message.messageCount = object.messageCount; + else if (typeof object.messageCount === "object") + message.messageCount = new $util.LongBits(object.messageCount.low >>> 0, object.messageCount.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from a MessageHistoryMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {proto.Message.MessageHistoryMetadata} message MessageHistoryMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MessageHistoryMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.historyReceivers = []; + if (message.historyReceivers && message.historyReceivers.length) { + object.historyReceivers = []; + for (var j = 0; j < message.historyReceivers.length; ++j) + object.historyReceivers[j] = message.historyReceivers[j]; + } + if (message.firstMessageTimestamp != null && message.hasOwnProperty("firstMessageTimestamp")) { + if (typeof message.firstMessageTimestamp === "number") + object.firstMessageTimestamp = options.longs === String ? String(message.firstMessageTimestamp) : message.firstMessageTimestamp; + else + object.firstMessageTimestamp = options.longs === String ? $util.Long.prototype.toString.call(message.firstMessageTimestamp) : options.longs === Number ? new $util.LongBits(message.firstMessageTimestamp.low >>> 0, message.firstMessageTimestamp.high >>> 0).toNumber() : message.firstMessageTimestamp; + if (options.oneofs) + object._firstMessageTimestamp = "firstMessageTimestamp"; + } + if (message.messageCount != null && message.hasOwnProperty("messageCount")) { + if (typeof message.messageCount === "number") + object.messageCount = options.longs === String ? String(message.messageCount) : message.messageCount; + else + object.messageCount = options.longs === String ? $util.Long.prototype.toString.call(message.messageCount) : options.longs === Number ? new $util.LongBits(message.messageCount.low >>> 0, message.messageCount.high >>> 0).toNumber() : message.messageCount; + if (options.oneofs) + object._messageCount = "messageCount"; + } + return object; + }; + + /** + * Converts this MessageHistoryMetadata to JSON. + * @function toJSON + * @memberof proto.Message.MessageHistoryMetadata + * @instance + * @returns {Object.} JSON object + */ + MessageHistoryMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for MessageHistoryMetadata + * @function getTypeUrl + * @memberof proto.Message.MessageHistoryMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MessageHistoryMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.MessageHistoryMetadata"; + }; + + return MessageHistoryMetadata; + })(); + + Message.MessageHistoryNotice = (function() { + + /** + * Properties of a MessageHistoryNotice. + * @memberof proto.Message + * @interface IMessageHistoryNotice + * @property {proto.IContextInfo|null} [contextInfo] MessageHistoryNotice contextInfo + * @property {proto.Message.IMessageHistoryMetadata|null} [messageHistoryMetadata] MessageHistoryNotice messageHistoryMetadata + */ + + /** + * Constructs a new MessageHistoryNotice. + * @memberof proto.Message + * @classdesc Represents a MessageHistoryNotice. + * @implements IMessageHistoryNotice + * @constructor + * @param {proto.Message.IMessageHistoryNotice=} [properties] Properties to set + */ + function MessageHistoryNotice(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * MessageHistoryNotice contextInfo. + * @member {proto.IContextInfo|null|undefined} contextInfo + * @memberof proto.Message.MessageHistoryNotice + * @instance + */ + MessageHistoryNotice.prototype.contextInfo = null; + + /** + * MessageHistoryNotice messageHistoryMetadata. + * @member {proto.Message.IMessageHistoryMetadata|null|undefined} messageHistoryMetadata + * @memberof proto.Message.MessageHistoryNotice + * @instance + */ + MessageHistoryNotice.prototype.messageHistoryMetadata = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(MessageHistoryNotice.prototype, "_contextInfo", { + get: $util.oneOfGetter($oneOfFields = ["contextInfo"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(MessageHistoryNotice.prototype, "_messageHistoryMetadata", { + get: $util.oneOfGetter($oneOfFields = ["messageHistoryMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new MessageHistoryNotice instance using the specified properties. + * @function create + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {proto.Message.IMessageHistoryNotice=} [properties] Properties to set + * @returns {proto.Message.MessageHistoryNotice} MessageHistoryNotice instance + */ + MessageHistoryNotice.create = function create(properties) { + return new MessageHistoryNotice(properties); + }; + + /** + * Encodes the specified MessageHistoryNotice message. Does not implicitly {@link proto.Message.MessageHistoryNotice.verify|verify} messages. + * @function encode + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {proto.Message.IMessageHistoryNotice} message MessageHistoryNotice message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageHistoryNotice.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.contextInfo != null && Object.hasOwnProperty.call(message, "contextInfo")) + $root.proto.ContextInfo.encode(message.contextInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.messageHistoryMetadata != null && Object.hasOwnProperty.call(message, "messageHistoryMetadata")) + $root.proto.Message.MessageHistoryMetadata.encode(message.messageHistoryMetadata, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified MessageHistoryNotice message, length delimited. Does not implicitly {@link proto.Message.MessageHistoryNotice.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {proto.Message.IMessageHistoryNotice} message MessageHistoryNotice message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MessageHistoryNotice.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a MessageHistoryNotice message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.MessageHistoryNotice} MessageHistoryNotice + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageHistoryNotice.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.MessageHistoryNotice(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.contextInfo = $root.proto.ContextInfo.decode(reader, reader.uint32()); + break; + } + case 2: { + message.messageHistoryMetadata = $root.proto.Message.MessageHistoryMetadata.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a MessageHistoryNotice message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.MessageHistoryNotice} MessageHistoryNotice + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MessageHistoryNotice.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a MessageHistoryNotice message. + * @function verify + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MessageHistoryNotice.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.contextInfo != null && message.hasOwnProperty("contextInfo")) { + properties._contextInfo = 1; + { + var error = $root.proto.ContextInfo.verify(message.contextInfo); + if (error) + return "contextInfo." + error; + } + } + if (message.messageHistoryMetadata != null && message.hasOwnProperty("messageHistoryMetadata")) { + properties._messageHistoryMetadata = 1; + { + var error = $root.proto.Message.MessageHistoryMetadata.verify(message.messageHistoryMetadata); + if (error) + return "messageHistoryMetadata." + error; + } + } + return null; + }; + + /** + * Creates a MessageHistoryNotice message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.MessageHistoryNotice} MessageHistoryNotice + */ + MessageHistoryNotice.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.MessageHistoryNotice) + return object; + var message = new $root.proto.Message.MessageHistoryNotice(); + if (object.contextInfo != null) { + if (typeof object.contextInfo !== "object") + throw TypeError(".proto.Message.MessageHistoryNotice.contextInfo: object expected"); + message.contextInfo = $root.proto.ContextInfo.fromObject(object.contextInfo); + } + if (object.messageHistoryMetadata != null) { + if (typeof object.messageHistoryMetadata !== "object") + throw TypeError(".proto.Message.MessageHistoryNotice.messageHistoryMetadata: object expected"); + message.messageHistoryMetadata = $root.proto.Message.MessageHistoryMetadata.fromObject(object.messageHistoryMetadata); + } + return message; + }; + + /** + * Creates a plain object from a MessageHistoryNotice message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {proto.Message.MessageHistoryNotice} message MessageHistoryNotice + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MessageHistoryNotice.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.contextInfo != null && message.hasOwnProperty("contextInfo")) { + object.contextInfo = $root.proto.ContextInfo.toObject(message.contextInfo, options); + if (options.oneofs) + object._contextInfo = "contextInfo"; + } + if (message.messageHistoryMetadata != null && message.hasOwnProperty("messageHistoryMetadata")) { + object.messageHistoryMetadata = $root.proto.Message.MessageHistoryMetadata.toObject(message.messageHistoryMetadata, options); + if (options.oneofs) + object._messageHistoryMetadata = "messageHistoryMetadata"; + } + return object; + }; + + /** + * Converts this MessageHistoryNotice to JSON. + * @function toJSON + * @memberof proto.Message.MessageHistoryNotice + * @instance + * @returns {Object.} JSON object + */ + MessageHistoryNotice.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for MessageHistoryNotice + * @function getTypeUrl + * @memberof proto.Message.MessageHistoryNotice + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MessageHistoryNotice.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.MessageHistoryNotice"; + }; + + return MessageHistoryNotice; + })(); + Message.NewsletterAdminInviteMessage = (function() { /** @@ -82696,6 +89144,7 @@ $root.proto = (function() { * @property {proto.IContextInfo|null} [contextInfo] OrderMessage contextInfo * @property {number|null} [messageVersion] OrderMessage messageVersion * @property {proto.IMessageKey|null} [orderRequestMessageId] OrderMessage orderRequestMessageId + * @property {string|null} [catalogType] OrderMessage catalogType */ /** @@ -82825,6 +89274,14 @@ $root.proto = (function() { */ OrderMessage.prototype.orderRequestMessageId = null; + /** + * OrderMessage catalogType. + * @member {string|null|undefined} catalogType + * @memberof proto.Message.OrderMessage + * @instance + */ + OrderMessage.prototype.catalogType = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -82912,6 +89369,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(OrderMessage.prototype, "_catalogType", { + get: $util.oneOfGetter($oneOfFields = ["catalogType"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new OrderMessage instance using the specified properties. * @function create @@ -82962,6 +89425,8 @@ $root.proto = (function() { writer.uint32(/* id 12, wireType 0 =*/96).int32(message.messageVersion); if (message.orderRequestMessageId != null && Object.hasOwnProperty.call(message, "orderRequestMessageId")) $root.proto.MessageKey.encode(message.orderRequestMessageId, writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim(); + if (message.catalogType != null && Object.hasOwnProperty.call(message, "catalogType")) + writer.uint32(/* id 15, wireType 2 =*/122).string(message.catalogType); if (message.contextInfo != null && Object.hasOwnProperty.call(message, "contextInfo")) $root.proto.ContextInfo.encode(message.contextInfo, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); return writer; @@ -83054,6 +89519,10 @@ $root.proto = (function() { message.orderRequestMessageId = $root.proto.MessageKey.decode(reader, reader.uint32()); break; } + case 15: { + message.catalogType = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -83176,6 +89645,11 @@ $root.proto = (function() { return "orderRequestMessageId." + error; } } + if (message.catalogType != null && message.hasOwnProperty("catalogType")) { + properties._catalogType = 1; + if (!$util.isString(message.catalogType)) + return "catalogType: string expected"; + } return null; }; @@ -83263,6 +89737,8 @@ $root.proto = (function() { throw TypeError(".proto.Message.OrderMessage.orderRequestMessageId: object expected"); message.orderRequestMessageId = $root.proto.MessageKey.fromObject(object.orderRequestMessageId); } + if (object.catalogType != null) + message.catalogType = String(object.catalogType); return message; }; @@ -83347,6 +89823,11 @@ $root.proto = (function() { if (options.oneofs) object._orderRequestMessageId = "orderRequestMessageId"; } + if (message.catalogType != null && message.hasOwnProperty("catalogType")) { + object.catalogType = message.catalogType; + if (options.oneofs) + object._catalogType = "catalogType"; + } if (message.contextInfo != null && message.hasOwnProperty("contextInfo")) { object.contextInfo = $root.proto.ContextInfo.toObject(message.contextInfo, options); if (options.oneofs) @@ -83718,6 +90199,732 @@ $root.proto = (function() { return PaymentInviteMessage; })(); + Message.PaymentLinkMetadata = (function() { + + /** + * Properties of a PaymentLinkMetadata. + * @memberof proto.Message + * @interface IPaymentLinkMetadata + * @property {proto.Message.PaymentLinkMetadata.IPaymentLinkButton|null} [button] PaymentLinkMetadata button + * @property {proto.Message.PaymentLinkMetadata.IPaymentLinkHeader|null} [header] PaymentLinkMetadata header + */ + + /** + * Constructs a new PaymentLinkMetadata. + * @memberof proto.Message + * @classdesc Represents a PaymentLinkMetadata. + * @implements IPaymentLinkMetadata + * @constructor + * @param {proto.Message.IPaymentLinkMetadata=} [properties] Properties to set + */ + function PaymentLinkMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PaymentLinkMetadata button. + * @member {proto.Message.PaymentLinkMetadata.IPaymentLinkButton|null|undefined} button + * @memberof proto.Message.PaymentLinkMetadata + * @instance + */ + PaymentLinkMetadata.prototype.button = null; + + /** + * PaymentLinkMetadata header. + * @member {proto.Message.PaymentLinkMetadata.IPaymentLinkHeader|null|undefined} header + * @memberof proto.Message.PaymentLinkMetadata + * @instance + */ + PaymentLinkMetadata.prototype.header = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PaymentLinkMetadata.prototype, "_button", { + get: $util.oneOfGetter($oneOfFields = ["button"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PaymentLinkMetadata.prototype, "_header", { + get: $util.oneOfGetter($oneOfFields = ["header"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PaymentLinkMetadata instance using the specified properties. + * @function create + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {proto.Message.IPaymentLinkMetadata=} [properties] Properties to set + * @returns {proto.Message.PaymentLinkMetadata} PaymentLinkMetadata instance + */ + PaymentLinkMetadata.create = function create(properties) { + return new PaymentLinkMetadata(properties); + }; + + /** + * Encodes the specified PaymentLinkMetadata message. Does not implicitly {@link proto.Message.PaymentLinkMetadata.verify|verify} messages. + * @function encode + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {proto.Message.IPaymentLinkMetadata} message PaymentLinkMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PaymentLinkMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.button != null && Object.hasOwnProperty.call(message, "button")) + $root.proto.Message.PaymentLinkMetadata.PaymentLinkButton.encode(message.button, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.header != null && Object.hasOwnProperty.call(message, "header")) + $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader.encode(message.header, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified PaymentLinkMetadata message, length delimited. Does not implicitly {@link proto.Message.PaymentLinkMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {proto.Message.IPaymentLinkMetadata} message PaymentLinkMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PaymentLinkMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PaymentLinkMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.PaymentLinkMetadata} PaymentLinkMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PaymentLinkMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.PaymentLinkMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.button = $root.proto.Message.PaymentLinkMetadata.PaymentLinkButton.decode(reader, reader.uint32()); + break; + } + case 2: { + message.header = $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PaymentLinkMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.PaymentLinkMetadata} PaymentLinkMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PaymentLinkMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PaymentLinkMetadata message. + * @function verify + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PaymentLinkMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.button != null && message.hasOwnProperty("button")) { + properties._button = 1; + { + var error = $root.proto.Message.PaymentLinkMetadata.PaymentLinkButton.verify(message.button); + if (error) + return "button." + error; + } + } + if (message.header != null && message.hasOwnProperty("header")) { + properties._header = 1; + { + var error = $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader.verify(message.header); + if (error) + return "header." + error; + } + } + return null; + }; + + /** + * Creates a PaymentLinkMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.PaymentLinkMetadata} PaymentLinkMetadata + */ + PaymentLinkMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.PaymentLinkMetadata) + return object; + var message = new $root.proto.Message.PaymentLinkMetadata(); + if (object.button != null) { + if (typeof object.button !== "object") + throw TypeError(".proto.Message.PaymentLinkMetadata.button: object expected"); + message.button = $root.proto.Message.PaymentLinkMetadata.PaymentLinkButton.fromObject(object.button); + } + if (object.header != null) { + if (typeof object.header !== "object") + throw TypeError(".proto.Message.PaymentLinkMetadata.header: object expected"); + message.header = $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader.fromObject(object.header); + } + return message; + }; + + /** + * Creates a plain object from a PaymentLinkMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {proto.Message.PaymentLinkMetadata} message PaymentLinkMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PaymentLinkMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.button != null && message.hasOwnProperty("button")) { + object.button = $root.proto.Message.PaymentLinkMetadata.PaymentLinkButton.toObject(message.button, options); + if (options.oneofs) + object._button = "button"; + } + if (message.header != null && message.hasOwnProperty("header")) { + object.header = $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader.toObject(message.header, options); + if (options.oneofs) + object._header = "header"; + } + return object; + }; + + /** + * Converts this PaymentLinkMetadata to JSON. + * @function toJSON + * @memberof proto.Message.PaymentLinkMetadata + * @instance + * @returns {Object.} JSON object + */ + PaymentLinkMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PaymentLinkMetadata + * @function getTypeUrl + * @memberof proto.Message.PaymentLinkMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PaymentLinkMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.PaymentLinkMetadata"; + }; + + PaymentLinkMetadata.PaymentLinkButton = (function() { + + /** + * Properties of a PaymentLinkButton. + * @memberof proto.Message.PaymentLinkMetadata + * @interface IPaymentLinkButton + * @property {string|null} [displayText] PaymentLinkButton displayText + */ + + /** + * Constructs a new PaymentLinkButton. + * @memberof proto.Message.PaymentLinkMetadata + * @classdesc Represents a PaymentLinkButton. + * @implements IPaymentLinkButton + * @constructor + * @param {proto.Message.PaymentLinkMetadata.IPaymentLinkButton=} [properties] Properties to set + */ + function PaymentLinkButton(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PaymentLinkButton displayText. + * @member {string|null|undefined} displayText + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @instance + */ + PaymentLinkButton.prototype.displayText = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PaymentLinkButton.prototype, "_displayText", { + get: $util.oneOfGetter($oneOfFields = ["displayText"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PaymentLinkButton instance using the specified properties. + * @function create + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {proto.Message.PaymentLinkMetadata.IPaymentLinkButton=} [properties] Properties to set + * @returns {proto.Message.PaymentLinkMetadata.PaymentLinkButton} PaymentLinkButton instance + */ + PaymentLinkButton.create = function create(properties) { + return new PaymentLinkButton(properties); + }; + + /** + * Encodes the specified PaymentLinkButton message. Does not implicitly {@link proto.Message.PaymentLinkMetadata.PaymentLinkButton.verify|verify} messages. + * @function encode + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {proto.Message.PaymentLinkMetadata.IPaymentLinkButton} message PaymentLinkButton message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PaymentLinkButton.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.displayText != null && Object.hasOwnProperty.call(message, "displayText")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.displayText); + return writer; + }; + + /** + * Encodes the specified PaymentLinkButton message, length delimited. Does not implicitly {@link proto.Message.PaymentLinkMetadata.PaymentLinkButton.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {proto.Message.PaymentLinkMetadata.IPaymentLinkButton} message PaymentLinkButton message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PaymentLinkButton.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PaymentLinkButton message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.PaymentLinkMetadata.PaymentLinkButton} PaymentLinkButton + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PaymentLinkButton.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.PaymentLinkMetadata.PaymentLinkButton(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.displayText = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PaymentLinkButton message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.PaymentLinkMetadata.PaymentLinkButton} PaymentLinkButton + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PaymentLinkButton.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PaymentLinkButton message. + * @function verify + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PaymentLinkButton.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.displayText != null && message.hasOwnProperty("displayText")) { + properties._displayText = 1; + if (!$util.isString(message.displayText)) + return "displayText: string expected"; + } + return null; + }; + + /** + * Creates a PaymentLinkButton message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.PaymentLinkMetadata.PaymentLinkButton} PaymentLinkButton + */ + PaymentLinkButton.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.PaymentLinkMetadata.PaymentLinkButton) + return object; + var message = new $root.proto.Message.PaymentLinkMetadata.PaymentLinkButton(); + if (object.displayText != null) + message.displayText = String(object.displayText); + return message; + }; + + /** + * Creates a plain object from a PaymentLinkButton message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {proto.Message.PaymentLinkMetadata.PaymentLinkButton} message PaymentLinkButton + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PaymentLinkButton.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.displayText != null && message.hasOwnProperty("displayText")) { + object.displayText = message.displayText; + if (options.oneofs) + object._displayText = "displayText"; + } + return object; + }; + + /** + * Converts this PaymentLinkButton to JSON. + * @function toJSON + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @instance + * @returns {Object.} JSON object + */ + PaymentLinkButton.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PaymentLinkButton + * @function getTypeUrl + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkButton + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PaymentLinkButton.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.PaymentLinkMetadata.PaymentLinkButton"; + }; + + return PaymentLinkButton; + })(); + + PaymentLinkMetadata.PaymentLinkHeader = (function() { + + /** + * Properties of a PaymentLinkHeader. + * @memberof proto.Message.PaymentLinkMetadata + * @interface IPaymentLinkHeader + * @property {proto.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType|null} [headerType] PaymentLinkHeader headerType + */ + + /** + * Constructs a new PaymentLinkHeader. + * @memberof proto.Message.PaymentLinkMetadata + * @classdesc Represents a PaymentLinkHeader. + * @implements IPaymentLinkHeader + * @constructor + * @param {proto.Message.PaymentLinkMetadata.IPaymentLinkHeader=} [properties] Properties to set + */ + function PaymentLinkHeader(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PaymentLinkHeader headerType. + * @member {proto.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType|null|undefined} headerType + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @instance + */ + PaymentLinkHeader.prototype.headerType = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(PaymentLinkHeader.prototype, "_headerType", { + get: $util.oneOfGetter($oneOfFields = ["headerType"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new PaymentLinkHeader instance using the specified properties. + * @function create + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {proto.Message.PaymentLinkMetadata.IPaymentLinkHeader=} [properties] Properties to set + * @returns {proto.Message.PaymentLinkMetadata.PaymentLinkHeader} PaymentLinkHeader instance + */ + PaymentLinkHeader.create = function create(properties) { + return new PaymentLinkHeader(properties); + }; + + /** + * Encodes the specified PaymentLinkHeader message. Does not implicitly {@link proto.Message.PaymentLinkMetadata.PaymentLinkHeader.verify|verify} messages. + * @function encode + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {proto.Message.PaymentLinkMetadata.IPaymentLinkHeader} message PaymentLinkHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PaymentLinkHeader.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.headerType != null && Object.hasOwnProperty.call(message, "headerType")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.headerType); + return writer; + }; + + /** + * Encodes the specified PaymentLinkHeader message, length delimited. Does not implicitly {@link proto.Message.PaymentLinkMetadata.PaymentLinkHeader.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {proto.Message.PaymentLinkMetadata.IPaymentLinkHeader} message PaymentLinkHeader message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PaymentLinkHeader.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PaymentLinkHeader message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.PaymentLinkMetadata.PaymentLinkHeader} PaymentLinkHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PaymentLinkHeader.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.headerType = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a PaymentLinkHeader message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.PaymentLinkMetadata.PaymentLinkHeader} PaymentLinkHeader + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PaymentLinkHeader.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PaymentLinkHeader message. + * @function verify + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PaymentLinkHeader.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.headerType != null && message.hasOwnProperty("headerType")) { + properties._headerType = 1; + switch (message.headerType) { + default: + return "headerType: enum value expected"; + case 0: + case 1: + break; + } + } + return null; + }; + + /** + * Creates a PaymentLinkHeader message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.PaymentLinkMetadata.PaymentLinkHeader} PaymentLinkHeader + */ + PaymentLinkHeader.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader) + return object; + var message = new $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader(); + switch (object.headerType) { + default: + if (typeof object.headerType === "number") { + message.headerType = object.headerType; + break; + } + break; + case "LINK_PREVIEW": + case 0: + message.headerType = 0; + break; + case "ORDER": + case 1: + message.headerType = 1; + break; + } + return message; + }; + + /** + * Creates a plain object from a PaymentLinkHeader message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {proto.Message.PaymentLinkMetadata.PaymentLinkHeader} message PaymentLinkHeader + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PaymentLinkHeader.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.headerType != null && message.hasOwnProperty("headerType")) { + object.headerType = options.enums === String ? $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType[message.headerType] === undefined ? message.headerType : $root.proto.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType[message.headerType] : message.headerType; + if (options.oneofs) + object._headerType = "headerType"; + } + return object; + }; + + /** + * Converts this PaymentLinkHeader to JSON. + * @function toJSON + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @instance + * @returns {Object.} JSON object + */ + PaymentLinkHeader.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PaymentLinkHeader + * @function getTypeUrl + * @memberof proto.Message.PaymentLinkMetadata.PaymentLinkHeader + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PaymentLinkHeader.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.PaymentLinkMetadata.PaymentLinkHeader"; + }; + + /** + * PaymentLinkHeaderType enum. + * @name proto.Message.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType + * @enum {number} + * @property {number} LINK_PREVIEW=0 LINK_PREVIEW value + * @property {number} ORDER=1 ORDER value + */ + PaymentLinkHeader.PaymentLinkHeaderType = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "LINK_PREVIEW"] = 0; + values[valuesById[1] = "ORDER"] = 1; + return values; + })(); + + return PaymentLinkHeader; + })(); + + return PaymentLinkMetadata; + })(); + Message.PeerDataOperationRequestMessage = (function() { /** @@ -83730,6 +90937,7 @@ $root.proto = (function() { * @property {proto.Message.PeerDataOperationRequestMessage.IHistorySyncOnDemandRequest|null} [historySyncOnDemandRequest] PeerDataOperationRequestMessage historySyncOnDemandRequest * @property {Array.|null} [placeholderMessageResendRequest] PeerDataOperationRequestMessage placeholderMessageResendRequest * @property {proto.Message.PeerDataOperationRequestMessage.IFullHistorySyncOnDemandRequest|null} [fullHistorySyncOnDemandRequest] PeerDataOperationRequestMessage fullHistorySyncOnDemandRequest + * @property {proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest|null} [syncdCollectionFatalRecoveryRequest] PeerDataOperationRequestMessage syncdCollectionFatalRecoveryRequest */ /** @@ -83798,6 +91006,14 @@ $root.proto = (function() { */ PeerDataOperationRequestMessage.prototype.fullHistorySyncOnDemandRequest = null; + /** + * PeerDataOperationRequestMessage syncdCollectionFatalRecoveryRequest. + * @member {proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest|null|undefined} syncdCollectionFatalRecoveryRequest + * @memberof proto.Message.PeerDataOperationRequestMessage + * @instance + */ + PeerDataOperationRequestMessage.prototype.syncdCollectionFatalRecoveryRequest = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -83819,6 +91035,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(PeerDataOperationRequestMessage.prototype, "_syncdCollectionFatalRecoveryRequest", { + get: $util.oneOfGetter($oneOfFields = ["syncdCollectionFatalRecoveryRequest"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new PeerDataOperationRequestMessage instance using the specified properties. * @function create @@ -83858,6 +91080,8 @@ $root.proto = (function() { $root.proto.Message.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest.encode(message.placeholderMessageResendRequest[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); if (message.fullHistorySyncOnDemandRequest != null && Object.hasOwnProperty.call(message, "fullHistorySyncOnDemandRequest")) $root.proto.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.encode(message.fullHistorySyncOnDemandRequest, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.syncdCollectionFatalRecoveryRequest != null && Object.hasOwnProperty.call(message, "syncdCollectionFatalRecoveryRequest")) + $root.proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.encode(message.syncdCollectionFatalRecoveryRequest, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; @@ -83922,6 +91146,10 @@ $root.proto = (function() { message.fullHistorySyncOnDemandRequest = $root.proto.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.decode(reader, reader.uint32()); break; } + case 7: { + message.syncdCollectionFatalRecoveryRequest = $root.proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -83971,6 +91199,7 @@ $root.proto = (function() { case 5: case 6: case 7: + case 8: break; } } @@ -84017,6 +91246,14 @@ $root.proto = (function() { return "fullHistorySyncOnDemandRequest." + error; } } + if (message.syncdCollectionFatalRecoveryRequest != null && message.hasOwnProperty("syncdCollectionFatalRecoveryRequest")) { + properties._syncdCollectionFatalRecoveryRequest = 1; + { + var error = $root.proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.verify(message.syncdCollectionFatalRecoveryRequest); + if (error) + return "syncdCollectionFatalRecoveryRequest." + error; + } + } return null; }; @@ -84071,6 +91308,10 @@ $root.proto = (function() { case 7: message.peerDataOperationRequestType = 7; break; + case "COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY": + case 8: + message.peerDataOperationRequestType = 8; + break; } if (object.requestStickerReupload) { if (!Array.isArray(object.requestStickerReupload)) @@ -84112,6 +91353,11 @@ $root.proto = (function() { throw TypeError(".proto.Message.PeerDataOperationRequestMessage.fullHistorySyncOnDemandRequest: object expected"); message.fullHistorySyncOnDemandRequest = $root.proto.Message.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.fromObject(object.fullHistorySyncOnDemandRequest); } + if (object.syncdCollectionFatalRecoveryRequest != null) { + if (typeof object.syncdCollectionFatalRecoveryRequest !== "object") + throw TypeError(".proto.Message.PeerDataOperationRequestMessage.syncdCollectionFatalRecoveryRequest: object expected"); + message.syncdCollectionFatalRecoveryRequest = $root.proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.fromObject(object.syncdCollectionFatalRecoveryRequest); + } return message; }; @@ -84163,6 +91409,11 @@ $root.proto = (function() { if (options.oneofs) object._fullHistorySyncOnDemandRequest = "fullHistorySyncOnDemandRequest"; } + if (message.syncdCollectionFatalRecoveryRequest != null && message.hasOwnProperty("syncdCollectionFatalRecoveryRequest")) { + object.syncdCollectionFatalRecoveryRequest = $root.proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.toObject(message.syncdCollectionFatalRecoveryRequest, options); + if (options.oneofs) + object._syncdCollectionFatalRecoveryRequest = "syncdCollectionFatalRecoveryRequest"; + } return object; }; @@ -85531,6 +92782,265 @@ $root.proto = (function() { return RequestUrlPreview; })(); + PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest = (function() { + + /** + * Properties of a SyncDCollectionFatalRecoveryRequest. + * @memberof proto.Message.PeerDataOperationRequestMessage + * @interface ISyncDCollectionFatalRecoveryRequest + * @property {string|null} [collectionName] SyncDCollectionFatalRecoveryRequest collectionName + * @property {number|Long|null} [timestamp] SyncDCollectionFatalRecoveryRequest timestamp + */ + + /** + * Constructs a new SyncDCollectionFatalRecoveryRequest. + * @memberof proto.Message.PeerDataOperationRequestMessage + * @classdesc Represents a SyncDCollectionFatalRecoveryRequest. + * @implements ISyncDCollectionFatalRecoveryRequest + * @constructor + * @param {proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest=} [properties] Properties to set + */ + function SyncDCollectionFatalRecoveryRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SyncDCollectionFatalRecoveryRequest collectionName. + * @member {string|null|undefined} collectionName + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @instance + */ + SyncDCollectionFatalRecoveryRequest.prototype.collectionName = null; + + /** + * SyncDCollectionFatalRecoveryRequest timestamp. + * @member {number|Long|null|undefined} timestamp + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @instance + */ + SyncDCollectionFatalRecoveryRequest.prototype.timestamp = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SyncDCollectionFatalRecoveryRequest.prototype, "_collectionName", { + get: $util.oneOfGetter($oneOfFields = ["collectionName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SyncDCollectionFatalRecoveryRequest.prototype, "_timestamp", { + get: $util.oneOfGetter($oneOfFields = ["timestamp"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new SyncDCollectionFatalRecoveryRequest instance using the specified properties. + * @function create + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest=} [properties] Properties to set + * @returns {proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest} SyncDCollectionFatalRecoveryRequest instance + */ + SyncDCollectionFatalRecoveryRequest.create = function create(properties) { + return new SyncDCollectionFatalRecoveryRequest(properties); + }; + + /** + * Encodes the specified SyncDCollectionFatalRecoveryRequest message. Does not implicitly {@link proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.verify|verify} messages. + * @function encode + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest} message SyncDCollectionFatalRecoveryRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SyncDCollectionFatalRecoveryRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.collectionName != null && Object.hasOwnProperty.call(message, "collectionName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.collectionName); + if (message.timestamp != null && Object.hasOwnProperty.call(message, "timestamp")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.timestamp); + return writer; + }; + + /** + * Encodes the specified SyncDCollectionFatalRecoveryRequest message, length delimited. Does not implicitly {@link proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {proto.Message.PeerDataOperationRequestMessage.ISyncDCollectionFatalRecoveryRequest} message SyncDCollectionFatalRecoveryRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SyncDCollectionFatalRecoveryRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SyncDCollectionFatalRecoveryRequest message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest} SyncDCollectionFatalRecoveryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SyncDCollectionFatalRecoveryRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.collectionName = reader.string(); + break; + } + case 2: { + message.timestamp = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SyncDCollectionFatalRecoveryRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest} SyncDCollectionFatalRecoveryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SyncDCollectionFatalRecoveryRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SyncDCollectionFatalRecoveryRequest message. + * @function verify + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SyncDCollectionFatalRecoveryRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.collectionName != null && message.hasOwnProperty("collectionName")) { + properties._collectionName = 1; + if (!$util.isString(message.collectionName)) + return "collectionName: string expected"; + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) { + properties._timestamp = 1; + if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high))) + return "timestamp: integer|Long expected"; + } + return null; + }; + + /** + * Creates a SyncDCollectionFatalRecoveryRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest} SyncDCollectionFatalRecoveryRequest + */ + SyncDCollectionFatalRecoveryRequest.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest) + return object; + var message = new $root.proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest(); + if (object.collectionName != null) + message.collectionName = String(object.collectionName); + if (object.timestamp != null) + if ($util.Long) + (message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = false; + else if (typeof object.timestamp === "string") + message.timestamp = parseInt(object.timestamp, 10); + else if (typeof object.timestamp === "number") + message.timestamp = object.timestamp; + else if (typeof object.timestamp === "object") + message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from a SyncDCollectionFatalRecoveryRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest} message SyncDCollectionFatalRecoveryRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SyncDCollectionFatalRecoveryRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.collectionName != null && message.hasOwnProperty("collectionName")) { + object.collectionName = message.collectionName; + if (options.oneofs) + object._collectionName = "collectionName"; + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) { + if (typeof message.timestamp === "number") + object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp; + else + object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber() : message.timestamp; + if (options.oneofs) + object._timestamp = "timestamp"; + } + return object; + }; + + /** + * Converts this SyncDCollectionFatalRecoveryRequest to JSON. + * @function toJSON + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @instance + * @returns {Object.} JSON object + */ + SyncDCollectionFatalRecoveryRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SyncDCollectionFatalRecoveryRequest + * @function getTypeUrl + * @memberof proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SyncDCollectionFatalRecoveryRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest"; + }; + + return SyncDCollectionFatalRecoveryRequest; + })(); + return PeerDataOperationRequestMessage; })(); @@ -85728,6 +93238,7 @@ $root.proto = (function() { case 5: case 6: case 7: + case 8: break; } } @@ -85799,6 +93310,10 @@ $root.proto = (function() { case 7: message.peerDataOperationRequestType = 7; break; + case "COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY": + case 8: + message.peerDataOperationRequestType = 8; + break; } if (object.stanzaId != null) message.stanzaId = String(object.stanzaId); @@ -85887,6 +93402,7 @@ $root.proto = (function() { * @property {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IWaffleNonceFetchResponse|null} [waffleNonceFetchRequestResponse] PeerDataOperationResult waffleNonceFetchRequestResponse * @property {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.IFullHistorySyncOnDemandRequestResponse|null} [fullHistorySyncOnDemandRequestResponse] PeerDataOperationResult fullHistorySyncOnDemandRequestResponse * @property {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ICompanionMetaNonceFetchResponse|null} [companionMetaNonceFetchRequestResponse] PeerDataOperationResult companionMetaNonceFetchRequestResponse + * @property {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse|null} [syncdSnapshotFatalRecoveryResponse] PeerDataOperationResult syncdSnapshotFatalRecoveryResponse */ /** @@ -85960,6 +93476,14 @@ $root.proto = (function() { */ PeerDataOperationResult.prototype.companionMetaNonceFetchRequestResponse = null; + /** + * PeerDataOperationResult syncdSnapshotFatalRecoveryResponse. + * @member {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse|null|undefined} syncdSnapshotFatalRecoveryResponse + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + * @instance + */ + PeerDataOperationResult.prototype.syncdSnapshotFatalRecoveryResponse = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -86005,6 +93529,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(PeerDataOperationResult.prototype, "_syncdSnapshotFatalRecoveryResponse", { + get: $util.oneOfGetter($oneOfFields = ["syncdSnapshotFatalRecoveryResponse"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new PeerDataOperationResult instance using the specified properties. * @function create @@ -86043,6 +93573,8 @@ $root.proto = (function() { $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.encode(message.fullHistorySyncOnDemandRequestResponse, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); if (message.companionMetaNonceFetchRequestResponse != null && Object.hasOwnProperty.call(message, "companionMetaNonceFetchRequestResponse")) $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse.encode(message.companionMetaNonceFetchRequestResponse, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.syncdSnapshotFatalRecoveryResponse != null && Object.hasOwnProperty.call(message, "syncdSnapshotFatalRecoveryResponse")) + $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.encode(message.syncdSnapshotFatalRecoveryResponse, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); return writer; }; @@ -86105,6 +93637,10 @@ $root.proto = (function() { message.companionMetaNonceFetchRequestResponse = $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse.decode(reader, reader.uint32()); break; } + case 8: { + message.syncdSnapshotFatalRecoveryResponse = $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -86201,6 +93737,14 @@ $root.proto = (function() { return "companionMetaNonceFetchRequestResponse." + error; } } + if (message.syncdSnapshotFatalRecoveryResponse != null && message.hasOwnProperty("syncdSnapshotFatalRecoveryResponse")) { + properties._syncdSnapshotFatalRecoveryResponse = 1; + { + var error = $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.verify(message.syncdSnapshotFatalRecoveryResponse); + if (error) + return "syncdSnapshotFatalRecoveryResponse." + error; + } + } return null; }; @@ -86270,6 +93814,11 @@ $root.proto = (function() { throw TypeError(".proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.companionMetaNonceFetchRequestResponse: object expected"); message.companionMetaNonceFetchRequestResponse = $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse.fromObject(object.companionMetaNonceFetchRequestResponse); } + if (object.syncdSnapshotFatalRecoveryResponse != null) { + if (typeof object.syncdSnapshotFatalRecoveryResponse !== "object") + throw TypeError(".proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.syncdSnapshotFatalRecoveryResponse: object expected"); + message.syncdSnapshotFatalRecoveryResponse = $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.fromObject(object.syncdSnapshotFatalRecoveryResponse); + } return message; }; @@ -86321,6 +93870,11 @@ $root.proto = (function() { if (options.oneofs) object._companionMetaNonceFetchRequestResponse = "companionMetaNonceFetchRequestResponse"; } + if (message.syncdSnapshotFatalRecoveryResponse != null && message.hasOwnProperty("syncdSnapshotFatalRecoveryResponse")) { + object.syncdSnapshotFatalRecoveryResponse = $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.toObject(message.syncdSnapshotFatalRecoveryResponse, options); + if (options.oneofs) + object._syncdSnapshotFatalRecoveryResponse = "syncdSnapshotFatalRecoveryResponse"; + } return object; }; @@ -87958,6 +95512,258 @@ $root.proto = (function() { return PlaceholderMessageResendResponse; })(); + PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse = (function() { + + /** + * Properties of a SyncDSnapshotFatalRecoveryResponse. + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + * @interface ISyncDSnapshotFatalRecoveryResponse + * @property {Uint8Array|null} [collectionSnapshot] SyncDSnapshotFatalRecoveryResponse collectionSnapshot + * @property {boolean|null} [isCompressed] SyncDSnapshotFatalRecoveryResponse isCompressed + */ + + /** + * Constructs a new SyncDSnapshotFatalRecoveryResponse. + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + * @classdesc Represents a SyncDSnapshotFatalRecoveryResponse. + * @implements ISyncDSnapshotFatalRecoveryResponse + * @constructor + * @param {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse=} [properties] Properties to set + */ + function SyncDSnapshotFatalRecoveryResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SyncDSnapshotFatalRecoveryResponse collectionSnapshot. + * @member {Uint8Array|null|undefined} collectionSnapshot + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @instance + */ + SyncDSnapshotFatalRecoveryResponse.prototype.collectionSnapshot = null; + + /** + * SyncDSnapshotFatalRecoveryResponse isCompressed. + * @member {boolean|null|undefined} isCompressed + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @instance + */ + SyncDSnapshotFatalRecoveryResponse.prototype.isCompressed = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SyncDSnapshotFatalRecoveryResponse.prototype, "_collectionSnapshot", { + get: $util.oneOfGetter($oneOfFields = ["collectionSnapshot"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SyncDSnapshotFatalRecoveryResponse.prototype, "_isCompressed", { + get: $util.oneOfGetter($oneOfFields = ["isCompressed"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new SyncDSnapshotFatalRecoveryResponse instance using the specified properties. + * @function create + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse=} [properties] Properties to set + * @returns {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse} SyncDSnapshotFatalRecoveryResponse instance + */ + SyncDSnapshotFatalRecoveryResponse.create = function create(properties) { + return new SyncDSnapshotFatalRecoveryResponse(properties); + }; + + /** + * Encodes the specified SyncDSnapshotFatalRecoveryResponse message. Does not implicitly {@link proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.verify|verify} messages. + * @function encode + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse} message SyncDSnapshotFatalRecoveryResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SyncDSnapshotFatalRecoveryResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.collectionSnapshot != null && Object.hasOwnProperty.call(message, "collectionSnapshot")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.collectionSnapshot); + if (message.isCompressed != null && Object.hasOwnProperty.call(message, "isCompressed")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isCompressed); + return writer; + }; + + /** + * Encodes the specified SyncDSnapshotFatalRecoveryResponse message, length delimited. Does not implicitly {@link proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.ISyncDSnapshotFatalRecoveryResponse} message SyncDSnapshotFatalRecoveryResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SyncDSnapshotFatalRecoveryResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SyncDSnapshotFatalRecoveryResponse message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse} SyncDSnapshotFatalRecoveryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SyncDSnapshotFatalRecoveryResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.collectionSnapshot = reader.bytes(); + break; + } + case 2: { + message.isCompressed = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SyncDSnapshotFatalRecoveryResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse} SyncDSnapshotFatalRecoveryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SyncDSnapshotFatalRecoveryResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SyncDSnapshotFatalRecoveryResponse message. + * @function verify + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SyncDSnapshotFatalRecoveryResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.collectionSnapshot != null && message.hasOwnProperty("collectionSnapshot")) { + properties._collectionSnapshot = 1; + if (!(message.collectionSnapshot && typeof message.collectionSnapshot.length === "number" || $util.isString(message.collectionSnapshot))) + return "collectionSnapshot: buffer expected"; + } + if (message.isCompressed != null && message.hasOwnProperty("isCompressed")) { + properties._isCompressed = 1; + if (typeof message.isCompressed !== "boolean") + return "isCompressed: boolean expected"; + } + return null; + }; + + /** + * Creates a SyncDSnapshotFatalRecoveryResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse} SyncDSnapshotFatalRecoveryResponse + */ + SyncDSnapshotFatalRecoveryResponse.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse) + return object; + var message = new $root.proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse(); + if (object.collectionSnapshot != null) + if (typeof object.collectionSnapshot === "string") + $util.base64.decode(object.collectionSnapshot, message.collectionSnapshot = $util.newBuffer($util.base64.length(object.collectionSnapshot)), 0); + else if (object.collectionSnapshot.length >= 0) + message.collectionSnapshot = object.collectionSnapshot; + if (object.isCompressed != null) + message.isCompressed = Boolean(object.isCompressed); + return message; + }; + + /** + * Creates a plain object from a SyncDSnapshotFatalRecoveryResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse} message SyncDSnapshotFatalRecoveryResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SyncDSnapshotFatalRecoveryResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.collectionSnapshot != null && message.hasOwnProperty("collectionSnapshot")) { + object.collectionSnapshot = options.bytes === String ? $util.base64.encode(message.collectionSnapshot, 0, message.collectionSnapshot.length) : options.bytes === Array ? Array.prototype.slice.call(message.collectionSnapshot) : message.collectionSnapshot; + if (options.oneofs) + object._collectionSnapshot = "collectionSnapshot"; + } + if (message.isCompressed != null && message.hasOwnProperty("isCompressed")) { + object.isCompressed = message.isCompressed; + if (options.oneofs) + object._isCompressed = "isCompressed"; + } + return object; + }; + + /** + * Converts this SyncDSnapshotFatalRecoveryResponse to JSON. + * @function toJSON + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @instance + * @returns {Object.} JSON object + */ + SyncDSnapshotFatalRecoveryResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SyncDSnapshotFatalRecoveryResponse + * @function getTypeUrl + * @memberof proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SyncDSnapshotFatalRecoveryResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse"; + }; + + return SyncDSnapshotFatalRecoveryResponse; + })(); + PeerDataOperationResult.WaffleNonceFetchResponse = (function() { /** @@ -88225,6 +96031,7 @@ $root.proto = (function() { * @property {number} WAFFLE_LINKING_NONCE_FETCH=5 WAFFLE_LINKING_NONCE_FETCH value * @property {number} FULL_HISTORY_SYNC_ON_DEMAND=6 FULL_HISTORY_SYNC_ON_DEMAND value * @property {number} COMPANION_META_NONCE_FETCH=7 COMPANION_META_NONCE_FETCH value + * @property {number} COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY=8 COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY value */ Message.PeerDataOperationRequestType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -88236,6 +96043,7 @@ $root.proto = (function() { values[valuesById[5] = "WAFFLE_LINKING_NONCE_FETCH"] = 5; values[valuesById[6] = "FULL_HISTORY_SYNC_ON_DEMAND"] = 6; values[valuesById[7] = "COMPANION_META_NONCE_FETCH"] = 7; + values[valuesById[8] = "COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY"] = 8; return values; })(); @@ -92488,6 +100296,9 @@ $root.proto = (function() { * @property {proto.Message.ICloudAPIThreadControlNotification|null} [cloudApiThreadControlNotification] ProtocolMessage cloudApiThreadControlNotification * @property {proto.ILIDMigrationMappingSyncMessage|null} [lidMigrationMappingSyncMessage] ProtocolMessage lidMigrationMappingSyncMessage * @property {proto.ILimitSharing|null} [limitSharing] ProtocolMessage limitSharing + * @property {Uint8Array|null} [aiPsiMetadata] ProtocolMessage aiPsiMetadata + * @property {proto.IAIQueryFanout|null} [aiQueryFanout] ProtocolMessage aiQueryFanout + * @property {proto.IMemberLabel|null} [memberLabel] ProtocolMessage memberLabel */ /** @@ -92673,6 +100484,30 @@ $root.proto = (function() { */ ProtocolMessage.prototype.limitSharing = null; + /** + * ProtocolMessage aiPsiMetadata. + * @member {Uint8Array|null|undefined} aiPsiMetadata + * @memberof proto.Message.ProtocolMessage + * @instance + */ + ProtocolMessage.prototype.aiPsiMetadata = null; + + /** + * ProtocolMessage aiQueryFanout. + * @member {proto.IAIQueryFanout|null|undefined} aiQueryFanout + * @memberof proto.Message.ProtocolMessage + * @instance + */ + ProtocolMessage.prototype.aiQueryFanout = null; + + /** + * ProtocolMessage memberLabel. + * @member {proto.IMemberLabel|null|undefined} memberLabel + * @memberof proto.Message.ProtocolMessage + * @instance + */ + ProtocolMessage.prototype.memberLabel = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -92802,6 +100637,24 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(ProtocolMessage.prototype, "_aiPsiMetadata", { + get: $util.oneOfGetter($oneOfFields = ["aiPsiMetadata"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ProtocolMessage.prototype, "_aiQueryFanout", { + get: $util.oneOfGetter($oneOfFields = ["aiQueryFanout"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ProtocolMessage.prototype, "_memberLabel", { + get: $util.oneOfGetter($oneOfFields = ["memberLabel"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new ProtocolMessage instance using the specified properties. * @function create @@ -92868,6 +100721,12 @@ $root.proto = (function() { $root.proto.LIDMigrationMappingSyncMessage.encode(message.lidMigrationMappingSyncMessage, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim(); if (message.limitSharing != null && Object.hasOwnProperty.call(message, "limitSharing")) $root.proto.LimitSharing.encode(message.limitSharing, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim(); + if (message.aiPsiMetadata != null && Object.hasOwnProperty.call(message, "aiPsiMetadata")) + writer.uint32(/* id 25, wireType 2 =*/202).bytes(message.aiPsiMetadata); + if (message.aiQueryFanout != null && Object.hasOwnProperty.call(message, "aiQueryFanout")) + $root.proto.AIQueryFanout.encode(message.aiQueryFanout, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim(); + if (message.memberLabel != null && Object.hasOwnProperty.call(message, "memberLabel")) + $root.proto.MemberLabel.encode(message.memberLabel, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim(); return writer; }; @@ -92986,6 +100845,18 @@ $root.proto = (function() { message.limitSharing = $root.proto.LimitSharing.decode(reader, reader.uint32()); break; } + case 25: { + message.aiPsiMetadata = reader.bytes(); + break; + } + case 26: { + message.aiQueryFanout = $root.proto.AIQueryFanout.decode(reader, reader.uint32()); + break; + } + case 27: { + message.memberLabel = $root.proto.MemberLabel.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -93058,6 +100929,9 @@ $root.proto = (function() { case 25: case 26: case 27: + case 28: + case 29: + case 30: break; } } @@ -93201,6 +101075,27 @@ $root.proto = (function() { return "limitSharing." + error; } } + if (message.aiPsiMetadata != null && message.hasOwnProperty("aiPsiMetadata")) { + properties._aiPsiMetadata = 1; + if (!(message.aiPsiMetadata && typeof message.aiPsiMetadata.length === "number" || $util.isString(message.aiPsiMetadata))) + return "aiPsiMetadata: buffer expected"; + } + if (message.aiQueryFanout != null && message.hasOwnProperty("aiQueryFanout")) { + properties._aiQueryFanout = 1; + { + var error = $root.proto.AIQueryFanout.verify(message.aiQueryFanout); + if (error) + return "aiQueryFanout." + error; + } + } + if (message.memberLabel != null && message.hasOwnProperty("memberLabel")) { + properties._memberLabel = 1; + { + var error = $root.proto.MemberLabel.verify(message.memberLabel); + if (error) + return "memberLabel." + error; + } + } return null; }; @@ -93320,6 +101215,18 @@ $root.proto = (function() { case 27: message.type = 27; break; + case "AI_PSI_METADATA": + case 28: + message.type = 28; + break; + case "AI_QUERY_FANOUT": + case 29: + message.type = 29; + break; + case "GROUP_MEMBER_LABEL_CHANGE": + case 30: + message.type = 30; + break; } if (object.ephemeralExpiration != null) message.ephemeralExpiration = object.ephemeralExpiration >>> 0; @@ -93418,6 +101325,21 @@ $root.proto = (function() { throw TypeError(".proto.Message.ProtocolMessage.limitSharing: object expected"); message.limitSharing = $root.proto.LimitSharing.fromObject(object.limitSharing); } + if (object.aiPsiMetadata != null) + if (typeof object.aiPsiMetadata === "string") + $util.base64.decode(object.aiPsiMetadata, message.aiPsiMetadata = $util.newBuffer($util.base64.length(object.aiPsiMetadata)), 0); + else if (object.aiPsiMetadata.length >= 0) + message.aiPsiMetadata = object.aiPsiMetadata; + if (object.aiQueryFanout != null) { + if (typeof object.aiQueryFanout !== "object") + throw TypeError(".proto.Message.ProtocolMessage.aiQueryFanout: object expected"); + message.aiQueryFanout = $root.proto.AIQueryFanout.fromObject(object.aiQueryFanout); + } + if (object.memberLabel != null) { + if (typeof object.memberLabel !== "object") + throw TypeError(".proto.Message.ProtocolMessage.memberLabel: object expected"); + message.memberLabel = $root.proto.MemberLabel.fromObject(object.memberLabel); + } return message; }; @@ -93545,6 +101467,21 @@ $root.proto = (function() { if (options.oneofs) object._limitSharing = "limitSharing"; } + if (message.aiPsiMetadata != null && message.hasOwnProperty("aiPsiMetadata")) { + object.aiPsiMetadata = options.bytes === String ? $util.base64.encode(message.aiPsiMetadata, 0, message.aiPsiMetadata.length) : options.bytes === Array ? Array.prototype.slice.call(message.aiPsiMetadata) : message.aiPsiMetadata; + if (options.oneofs) + object._aiPsiMetadata = "aiPsiMetadata"; + } + if (message.aiQueryFanout != null && message.hasOwnProperty("aiQueryFanout")) { + object.aiQueryFanout = $root.proto.AIQueryFanout.toObject(message.aiQueryFanout, options); + if (options.oneofs) + object._aiQueryFanout = "aiQueryFanout"; + } + if (message.memberLabel != null && message.hasOwnProperty("memberLabel")) { + object.memberLabel = $root.proto.MemberLabel.toObject(message.memberLabel, options); + if (options.oneofs) + object._memberLabel = "memberLabel"; + } return object; }; @@ -93601,6 +101538,9 @@ $root.proto = (function() { * @property {number} STATUS_MENTION_MESSAGE=25 STATUS_MENTION_MESSAGE value * @property {number} STOP_GENERATION_MESSAGE=26 STOP_GENERATION_MESSAGE value * @property {number} LIMIT_SHARING=27 LIMIT_SHARING value + * @property {number} AI_PSI_METADATA=28 AI_PSI_METADATA value + * @property {number} AI_QUERY_FANOUT=29 AI_QUERY_FANOUT value + * @property {number} GROUP_MEMBER_LABEL_CHANGE=30 GROUP_MEMBER_LABEL_CHANGE value */ ProtocolMessage.Type = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -93627,6 +101567,9 @@ $root.proto = (function() { values[valuesById[25] = "STATUS_MENTION_MESSAGE"] = 25; values[valuesById[26] = "STOP_GENERATION_MESSAGE"] = 26; values[valuesById[27] = "LIMIT_SHARING"] = 27; + values[valuesById[28] = "AI_PSI_METADATA"] = 28; + values[valuesById[29] = "AI_QUERY_FANOUT"] = 29; + values[valuesById[30] = "GROUP_MEMBER_LABEL_CHANGE"] = 30; return values; })(); @@ -95736,6 +103679,7 @@ $root.proto = (function() { return "secretEncType: enum value expected"; case 0: case 1: + case 2: break; } } @@ -95784,6 +103728,10 @@ $root.proto = (function() { case 1: message.secretEncType = 1; break; + case "MESSAGE_EDIT": + case 2: + message.secretEncType = 2; + break; } return message; }; @@ -95856,11 +103804,13 @@ $root.proto = (function() { * @enum {number} * @property {number} UNKNOWN=0 UNKNOWN value * @property {number} EVENT_EDIT=1 EVENT_EDIT value + * @property {number} MESSAGE_EDIT=2 MESSAGE_EDIT value */ SecretEncryptedMessage.SecretEncType = (function() { var valuesById = {}, values = Object.create(valuesById); values[valuesById[0] = "UNKNOWN"] = 0; values[valuesById[1] = "EVENT_EDIT"] = 1; + values[valuesById[2] = "MESSAGE_EDIT"] = 2; return values; })(); @@ -101136,6 +109086,222 @@ $root.proto = (function() { return TemplateMessage; })(); + Message.URLMetadata = (function() { + + /** + * Properties of a URLMetadata. + * @memberof proto.Message + * @interface IURLMetadata + * @property {number|null} [fbExperimentId] URLMetadata fbExperimentId + */ + + /** + * Constructs a new URLMetadata. + * @memberof proto.Message + * @classdesc Represents a URLMetadata. + * @implements IURLMetadata + * @constructor + * @param {proto.Message.IURLMetadata=} [properties] Properties to set + */ + function URLMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * URLMetadata fbExperimentId. + * @member {number|null|undefined} fbExperimentId + * @memberof proto.Message.URLMetadata + * @instance + */ + URLMetadata.prototype.fbExperimentId = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(URLMetadata.prototype, "_fbExperimentId", { + get: $util.oneOfGetter($oneOfFields = ["fbExperimentId"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new URLMetadata instance using the specified properties. + * @function create + * @memberof proto.Message.URLMetadata + * @static + * @param {proto.Message.IURLMetadata=} [properties] Properties to set + * @returns {proto.Message.URLMetadata} URLMetadata instance + */ + URLMetadata.create = function create(properties) { + return new URLMetadata(properties); + }; + + /** + * Encodes the specified URLMetadata message. Does not implicitly {@link proto.Message.URLMetadata.verify|verify} messages. + * @function encode + * @memberof proto.Message.URLMetadata + * @static + * @param {proto.Message.IURLMetadata} message URLMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + URLMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fbExperimentId != null && Object.hasOwnProperty.call(message, "fbExperimentId")) + writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.fbExperimentId); + return writer; + }; + + /** + * Encodes the specified URLMetadata message, length delimited. Does not implicitly {@link proto.Message.URLMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.Message.URLMetadata + * @static + * @param {proto.Message.IURLMetadata} message URLMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + URLMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a URLMetadata message from the specified reader or buffer. + * @function decode + * @memberof proto.Message.URLMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.Message.URLMetadata} URLMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + URLMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.Message.URLMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.fbExperimentId = reader.uint32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a URLMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.Message.URLMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.Message.URLMetadata} URLMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + URLMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a URLMetadata message. + * @function verify + * @memberof proto.Message.URLMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + URLMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.fbExperimentId != null && message.hasOwnProperty("fbExperimentId")) { + properties._fbExperimentId = 1; + if (!$util.isInteger(message.fbExperimentId)) + return "fbExperimentId: integer expected"; + } + return null; + }; + + /** + * Creates a URLMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.Message.URLMetadata + * @static + * @param {Object.} object Plain object + * @returns {proto.Message.URLMetadata} URLMetadata + */ + URLMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.proto.Message.URLMetadata) + return object; + var message = new $root.proto.Message.URLMetadata(); + if (object.fbExperimentId != null) + message.fbExperimentId = object.fbExperimentId >>> 0; + return message; + }; + + /** + * Creates a plain object from a URLMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.Message.URLMetadata + * @static + * @param {proto.Message.URLMetadata} message URLMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + URLMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.fbExperimentId != null && message.hasOwnProperty("fbExperimentId")) { + object.fbExperimentId = message.fbExperimentId; + if (options.oneofs) + object._fbExperimentId = "fbExperimentId"; + } + return object; + }; + + /** + * Converts this URLMetadata to JSON. + * @function toJSON + * @memberof proto.Message.URLMetadata + * @instance + * @returns {Object.} JSON object + */ + URLMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for URLMetadata + * @function getTypeUrl + * @memberof proto.Message.URLMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + URLMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.Message.URLMetadata"; + }; + + return URLMetadata; + })(); + Message.VideoMessage = (function() { /** @@ -103387,6 +111553,9 @@ $root.proto = (function() { case 9: case 10: case 11: + case 12: + case 13: + case 14: break; } } @@ -103449,7 +111618,7 @@ $root.proto = (function() { case 5: message.associationType = 5; break; - case "STATUS_TAPPABLE_MESSAGE": + case "STATUS_EXTERNAL_RESHARE": case 6: message.associationType = 6; break; @@ -103473,6 +111642,18 @@ $root.proto = (function() { case 11: message.associationType = 11; break; + case "MOTION_PHOTO": + case 12: + message.associationType = 12; + break; + case "STATUS_LINK_ACTION": + case 13: + message.associationType = 13; + break; + case "VIEW_ALL_REPLIES": + case 14: + message.associationType = 14; + break; } if (object.parentMessageKey != null) { if (typeof object.parentMessageKey !== "object") @@ -103551,12 +111732,15 @@ $root.proto = (function() { * @property {number} EVENT_COVER_IMAGE=3 EVENT_COVER_IMAGE value * @property {number} STATUS_POLL=4 STATUS_POLL value * @property {number} HD_VIDEO_DUAL_UPLOAD=5 HD_VIDEO_DUAL_UPLOAD value - * @property {number} STATUS_TAPPABLE_MESSAGE=6 STATUS_TAPPABLE_MESSAGE value + * @property {number} STATUS_EXTERNAL_RESHARE=6 STATUS_EXTERNAL_RESHARE value * @property {number} MEDIA_POLL=7 MEDIA_POLL value * @property {number} STATUS_ADD_YOURS=8 STATUS_ADD_YOURS value * @property {number} STATUS_NOTIFICATION=9 STATUS_NOTIFICATION value * @property {number} HD_IMAGE_DUAL_UPLOAD=10 HD_IMAGE_DUAL_UPLOAD value * @property {number} STICKER_ANNOTATION=11 STICKER_ANNOTATION value + * @property {number} MOTION_PHOTO=12 MOTION_PHOTO value + * @property {number} STATUS_LINK_ACTION=13 STATUS_LINK_ACTION value + * @property {number} VIEW_ALL_REPLIES=14 VIEW_ALL_REPLIES value */ MessageAssociation.AssociationType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -103566,12 +111750,15 @@ $root.proto = (function() { values[valuesById[3] = "EVENT_COVER_IMAGE"] = 3; values[valuesById[4] = "STATUS_POLL"] = 4; values[valuesById[5] = "HD_VIDEO_DUAL_UPLOAD"] = 5; - values[valuesById[6] = "STATUS_TAPPABLE_MESSAGE"] = 6; + values[valuesById[6] = "STATUS_EXTERNAL_RESHARE"] = 6; values[valuesById[7] = "MEDIA_POLL"] = 7; values[valuesById[8] = "STATUS_ADD_YOURS"] = 8; values[valuesById[9] = "STATUS_NOTIFICATION"] = 9; values[valuesById[10] = "HD_IMAGE_DUAL_UPLOAD"] = 10; values[valuesById[11] = "STICKER_ANNOTATION"] = 11; + values[valuesById[12] = "MOTION_PHOTO"] = 12; + values[valuesById[13] = "STATUS_LINK_ACTION"] = 13; + values[valuesById[14] = "VIEW_ALL_REPLIES"] = 14; return values; })(); @@ -103596,6 +111783,8 @@ $root.proto = (function() { * @property {proto.IMessageAssociation|null} [messageAssociation] MessageContextInfo messageAssociation * @property {boolean|null} [capiCreatedGroup] MessageContextInfo capiCreatedGroup * @property {string|null} [supportPayload] MessageContextInfo supportPayload + * @property {proto.ILimitSharing|null} [limitSharing] MessageContextInfo limitSharing + * @property {proto.ILimitSharing|null} [limitSharingV2] MessageContextInfo limitSharingV2 */ /** @@ -103709,6 +111898,22 @@ $root.proto = (function() { */ MessageContextInfo.prototype.supportPayload = null; + /** + * MessageContextInfo limitSharing. + * @member {proto.ILimitSharing|null|undefined} limitSharing + * @memberof proto.MessageContextInfo + * @instance + */ + MessageContextInfo.prototype.limitSharing = null; + + /** + * MessageContextInfo limitSharingV2. + * @member {proto.ILimitSharing|null|undefined} limitSharingV2 + * @memberof proto.MessageContextInfo + * @instance + */ + MessageContextInfo.prototype.limitSharingV2 = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -103784,6 +111989,18 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(MessageContextInfo.prototype, "_limitSharing", { + get: $util.oneOfGetter($oneOfFields = ["limitSharing"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(MessageContextInfo.prototype, "_limitSharingV2", { + get: $util.oneOfGetter($oneOfFields = ["limitSharingV2"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new MessageContextInfo instance using the specified properties. * @function create @@ -103832,6 +112049,10 @@ $root.proto = (function() { writer.uint32(/* id 11, wireType 0 =*/88).bool(message.capiCreatedGroup); if (message.supportPayload != null && Object.hasOwnProperty.call(message, "supportPayload")) writer.uint32(/* id 12, wireType 2 =*/98).string(message.supportPayload); + if (message.limitSharing != null && Object.hasOwnProperty.call(message, "limitSharing")) + $root.proto.LimitSharing.encode(message.limitSharing, writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim(); + if (message.limitSharingV2 != null && Object.hasOwnProperty.call(message, "limitSharingV2")) + $root.proto.LimitSharing.encode(message.limitSharingV2, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); return writer; }; @@ -103914,6 +112135,14 @@ $root.proto = (function() { message.supportPayload = reader.string(); break; } + case 13: { + message.limitSharing = $root.proto.LimitSharing.decode(reader, reader.uint32()); + break; + } + case 14: { + message.limitSharingV2 = $root.proto.LimitSharing.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -104024,6 +112253,22 @@ $root.proto = (function() { if (!$util.isString(message.supportPayload)) return "supportPayload: string expected"; } + if (message.limitSharing != null && message.hasOwnProperty("limitSharing")) { + properties._limitSharing = 1; + { + var error = $root.proto.LimitSharing.verify(message.limitSharing); + if (error) + return "limitSharing." + error; + } + } + if (message.limitSharingV2 != null && message.hasOwnProperty("limitSharingV2")) { + properties._limitSharingV2 = 1; + { + var error = $root.proto.LimitSharing.verify(message.limitSharingV2); + if (error) + return "limitSharingV2." + error; + } + } return null; }; @@ -104095,6 +112340,16 @@ $root.proto = (function() { message.capiCreatedGroup = Boolean(object.capiCreatedGroup); if (object.supportPayload != null) message.supportPayload = String(object.supportPayload); + if (object.limitSharing != null) { + if (typeof object.limitSharing !== "object") + throw TypeError(".proto.MessageContextInfo.limitSharing: object expected"); + message.limitSharing = $root.proto.LimitSharing.fromObject(object.limitSharing); + } + if (object.limitSharingV2 != null) { + if (typeof object.limitSharingV2 !== "object") + throw TypeError(".proto.MessageContextInfo.limitSharingV2: object expected"); + message.limitSharingV2 = $root.proto.LimitSharing.fromObject(object.limitSharingV2); + } return message; }; @@ -104171,6 +112426,16 @@ $root.proto = (function() { if (options.oneofs) object._supportPayload = "supportPayload"; } + if (message.limitSharing != null && message.hasOwnProperty("limitSharing")) { + object.limitSharing = $root.proto.LimitSharing.toObject(message.limitSharing, options); + if (options.oneofs) + object._limitSharing = "limitSharing"; + } + if (message.limitSharingV2 != null && message.hasOwnProperty("limitSharingV2")) { + object.limitSharingV2 = $root.proto.LimitSharing.toObject(message.limitSharingV2, options); + if (options.oneofs) + object._limitSharingV2 = "limitSharingV2"; + } return object; }; @@ -105156,6 +113421,7 @@ $root.proto = (function() { * @property {number|Long|null} [eventStartTime] MsgOpaqueData eventStartTime * @property {proto.MsgOpaqueData.IEventLocation|null} [eventLocation] MsgOpaqueData eventLocation * @property {number|Long|null} [eventEndTime] MsgOpaqueData eventEndTime + * @property {Uint8Array|null} [plainProtobufBytes] MsgOpaqueData plainProtobufBytes */ /** @@ -105478,6 +113744,14 @@ $root.proto = (function() { */ MsgOpaqueData.prototype.eventEndTime = null; + /** + * MsgOpaqueData plainProtobufBytes. + * @member {Uint8Array|null|undefined} plainProtobufBytes + * @memberof proto.MsgOpaqueData + * @instance + */ + MsgOpaqueData.prototype.plainProtobufBytes = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -105703,6 +113977,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(MsgOpaqueData.prototype, "_plainProtobufBytes", { + get: $util.oneOfGetter($oneOfFields = ["plainProtobufBytes"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new MsgOpaqueData instance using the specified properties. * @function create @@ -105802,6 +114082,8 @@ $root.proto = (function() { $root.proto.MsgOpaqueData.PollVotesSnapshot.encode(message.pollVotesSnapshot, writer.uint32(/* id 41, wireType 2 =*/330).fork()).ldelim(); if (message.pollContentType != null && Object.hasOwnProperty.call(message, "pollContentType")) writer.uint32(/* id 42, wireType 0 =*/336).int32(message.pollContentType); + if (message.plainProtobufBytes != null && Object.hasOwnProperty.call(message, "plainProtobufBytes")) + writer.uint32(/* id 43, wireType 2 =*/346).bytes(message.plainProtobufBytes); if (message.originalSelfAuthor != null && Object.hasOwnProperty.call(message, "originalSelfAuthor")) writer.uint32(/* id 51, wireType 2 =*/410).string(message.originalSelfAuthor); return writer; @@ -105992,6 +114274,10 @@ $root.proto = (function() { message.eventEndTime = reader.int64(); break; } + case 43: { + message.plainProtobufBytes = reader.bytes(); + break; + } default: reader.skipType(tag & 7); break; @@ -106237,6 +114523,11 @@ $root.proto = (function() { if (!$util.isInteger(message.eventEndTime) && !(message.eventEndTime && $util.isInteger(message.eventEndTime.low) && $util.isInteger(message.eventEndTime.high))) return "eventEndTime: integer|Long expected"; } + if (message.plainProtobufBytes != null && message.hasOwnProperty("plainProtobufBytes")) { + properties._plainProtobufBytes = 1; + if (!(message.plainProtobufBytes && typeof message.plainProtobufBytes.length === "number" || $util.isString(message.plainProtobufBytes))) + return "plainProtobufBytes: buffer expected"; + } return null; }; @@ -106405,6 +114696,11 @@ $root.proto = (function() { message.eventEndTime = object.eventEndTime; else if (typeof object.eventEndTime === "object") message.eventEndTime = new $util.LongBits(object.eventEndTime.low >>> 0, object.eventEndTime.high >>> 0).toNumber(); + if (object.plainProtobufBytes != null) + if (typeof object.plainProtobufBytes === "string") + $util.base64.decode(object.plainProtobufBytes, message.plainProtobufBytes = $util.newBuffer($util.base64.length(object.plainProtobufBytes)), 0); + else if (object.plainProtobufBytes.length >= 0) + message.plainProtobufBytes = object.plainProtobufBytes; return message; }; @@ -106617,6 +114913,11 @@ $root.proto = (function() { if (options.oneofs) object._pollContentType = "pollContentType"; } + if (message.plainProtobufBytes != null && message.hasOwnProperty("plainProtobufBytes")) { + object.plainProtobufBytes = options.bytes === String ? $util.base64.encode(message.plainProtobufBytes, 0, message.plainProtobufBytes.length) : options.bytes === Array ? Array.prototype.slice.call(message.plainProtobufBytes) : message.plainProtobufBytes; + if (options.oneofs) + object._plainProtobufBytes = "plainProtobufBytes"; + } if (message.originalSelfAuthor != null && message.hasOwnProperty("originalSelfAuthor")) { object.originalSelfAuthor = message.originalSelfAuthor; if (options.oneofs) @@ -125190,6 +133491,9 @@ $root.proto = (function() { * @property {proto.SyncActionValue.IWaffleAccountLinkStateAction|null} [waffleAccountLinkStateAction] SyncActionValue waffleAccountLinkStateAction * @property {proto.SyncActionValue.IUsernameChatStartModeAction|null} [usernameChatStartMode] SyncActionValue usernameChatStartMode * @property {proto.SyncActionValue.INotificationActivitySettingAction|null} [notificationActivitySettingAction] SyncActionValue notificationActivitySettingAction + * @property {proto.SyncActionValue.ILidContactAction|null} [lidContactAction] SyncActionValue lidContactAction + * @property {proto.SyncActionValue.ICtwaPerCustomerDataSharingAction|null} [ctwaPerCustomerDataSharingAction] SyncActionValue ctwaPerCustomerDataSharingAction + * @property {proto.SyncActionValue.IPaymentTosAction|null} [paymentTosAction] SyncActionValue paymentTosAction */ /** @@ -125639,6 +133943,30 @@ $root.proto = (function() { */ SyncActionValue.prototype.notificationActivitySettingAction = null; + /** + * SyncActionValue lidContactAction. + * @member {proto.SyncActionValue.ILidContactAction|null|undefined} lidContactAction + * @memberof proto.SyncActionValue + * @instance + */ + SyncActionValue.prototype.lidContactAction = null; + + /** + * SyncActionValue ctwaPerCustomerDataSharingAction. + * @member {proto.SyncActionValue.ICtwaPerCustomerDataSharingAction|null|undefined} ctwaPerCustomerDataSharingAction + * @memberof proto.SyncActionValue + * @instance + */ + SyncActionValue.prototype.ctwaPerCustomerDataSharingAction = null; + + /** + * SyncActionValue paymentTosAction. + * @member {proto.SyncActionValue.IPaymentTosAction|null|undefined} paymentTosAction + * @memberof proto.SyncActionValue + * @instance + */ + SyncActionValue.prototype.paymentTosAction = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -125966,6 +134294,24 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(SyncActionValue.prototype, "_lidContactAction", { + get: $util.oneOfGetter($oneOfFields = ["lidContactAction"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SyncActionValue.prototype, "_ctwaPerCustomerDataSharingAction", { + get: $util.oneOfGetter($oneOfFields = ["ctwaPerCustomerDataSharingAction"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(SyncActionValue.prototype, "_paymentTosAction", { + get: $util.oneOfGetter($oneOfFields = ["paymentTosAction"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new SyncActionValue instance using the specified properties. * @function create @@ -126098,6 +134444,12 @@ $root.proto = (function() { $root.proto.SyncActionValue.UsernameChatStartModeAction.encode(message.usernameChatStartMode, writer.uint32(/* id 59, wireType 2 =*/474).fork()).ldelim(); if (message.notificationActivitySettingAction != null && Object.hasOwnProperty.call(message, "notificationActivitySettingAction")) $root.proto.SyncActionValue.NotificationActivitySettingAction.encode(message.notificationActivitySettingAction, writer.uint32(/* id 60, wireType 2 =*/482).fork()).ldelim(); + if (message.lidContactAction != null && Object.hasOwnProperty.call(message, "lidContactAction")) + $root.proto.SyncActionValue.LidContactAction.encode(message.lidContactAction, writer.uint32(/* id 61, wireType 2 =*/490).fork()).ldelim(); + if (message.ctwaPerCustomerDataSharingAction != null && Object.hasOwnProperty.call(message, "ctwaPerCustomerDataSharingAction")) + $root.proto.SyncActionValue.CtwaPerCustomerDataSharingAction.encode(message.ctwaPerCustomerDataSharingAction, writer.uint32(/* id 62, wireType 2 =*/498).fork()).ldelim(); + if (message.paymentTosAction != null && Object.hasOwnProperty.call(message, "paymentTosAction")) + $root.proto.SyncActionValue.PaymentTosAction.encode(message.paymentTosAction, writer.uint32(/* id 63, wireType 2 =*/506).fork()).ldelim(); return writer; }; @@ -126348,6 +134700,18 @@ $root.proto = (function() { message.notificationActivitySettingAction = $root.proto.SyncActionValue.NotificationActivitySettingAction.decode(reader, reader.uint32()); break; } + case 61: { + message.lidContactAction = $root.proto.SyncActionValue.LidContactAction.decode(reader, reader.uint32()); + break; + } + case 62: { + message.ctwaPerCustomerDataSharingAction = $root.proto.SyncActionValue.CtwaPerCustomerDataSharingAction.decode(reader, reader.uint32()); + break; + } + case 63: { + message.paymentTosAction = $root.proto.SyncActionValue.PaymentTosAction.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -126813,6 +135177,30 @@ $root.proto = (function() { return "notificationActivitySettingAction." + error; } } + if (message.lidContactAction != null && message.hasOwnProperty("lidContactAction")) { + properties._lidContactAction = 1; + { + var error = $root.proto.SyncActionValue.LidContactAction.verify(message.lidContactAction); + if (error) + return "lidContactAction." + error; + } + } + if (message.ctwaPerCustomerDataSharingAction != null && message.hasOwnProperty("ctwaPerCustomerDataSharingAction")) { + properties._ctwaPerCustomerDataSharingAction = 1; + { + var error = $root.proto.SyncActionValue.CtwaPerCustomerDataSharingAction.verify(message.ctwaPerCustomerDataSharingAction); + if (error) + return "ctwaPerCustomerDataSharingAction." + error; + } + } + if (message.paymentTosAction != null && message.hasOwnProperty("paymentTosAction")) { + properties._paymentTosAction = 1; + { + var error = $root.proto.SyncActionValue.PaymentTosAction.verify(message.paymentTosAction); + if (error) + return "paymentTosAction." + error; + } + } return null; }; @@ -127102,6 +135490,21 @@ $root.proto = (function() { throw TypeError(".proto.SyncActionValue.notificationActivitySettingAction: object expected"); message.notificationActivitySettingAction = $root.proto.SyncActionValue.NotificationActivitySettingAction.fromObject(object.notificationActivitySettingAction); } + if (object.lidContactAction != null) { + if (typeof object.lidContactAction !== "object") + throw TypeError(".proto.SyncActionValue.lidContactAction: object expected"); + message.lidContactAction = $root.proto.SyncActionValue.LidContactAction.fromObject(object.lidContactAction); + } + if (object.ctwaPerCustomerDataSharingAction != null) { + if (typeof object.ctwaPerCustomerDataSharingAction !== "object") + throw TypeError(".proto.SyncActionValue.ctwaPerCustomerDataSharingAction: object expected"); + message.ctwaPerCustomerDataSharingAction = $root.proto.SyncActionValue.CtwaPerCustomerDataSharingAction.fromObject(object.ctwaPerCustomerDataSharingAction); + } + if (object.paymentTosAction != null) { + if (typeof object.paymentTosAction !== "object") + throw TypeError(".proto.SyncActionValue.paymentTosAction: object expected"); + message.paymentTosAction = $root.proto.SyncActionValue.PaymentTosAction.fromObject(object.paymentTosAction); + } return message; }; @@ -127391,6 +135794,21 @@ $root.proto = (function() { if (options.oneofs) object._notificationActivitySettingAction = "notificationActivitySettingAction"; } + if (message.lidContactAction != null && message.hasOwnProperty("lidContactAction")) { + object.lidContactAction = $root.proto.SyncActionValue.LidContactAction.toObject(message.lidContactAction, options); + if (options.oneofs) + object._lidContactAction = "lidContactAction"; + } + if (message.ctwaPerCustomerDataSharingAction != null && message.hasOwnProperty("ctwaPerCustomerDataSharingAction")) { + object.ctwaPerCustomerDataSharingAction = $root.proto.SyncActionValue.CtwaPerCustomerDataSharingAction.toObject(message.ctwaPerCustomerDataSharingAction, options); + if (options.oneofs) + object._ctwaPerCustomerDataSharingAction = "ctwaPerCustomerDataSharingAction"; + } + if (message.paymentTosAction != null && message.hasOwnProperty("paymentTosAction")) { + object.paymentTosAction = $root.proto.SyncActionValue.PaymentTosAction.toObject(message.paymentTosAction, options); + if (options.oneofs) + object._paymentTosAction = "paymentTosAction"; + } return object; }; @@ -129275,6 +137693,8 @@ $root.proto = (function() { * @property {string|null} [firstName] ContactAction firstName * @property {string|null} [lidJid] ContactAction lidJid * @property {boolean|null} [saveOnPrimaryAddressbook] ContactAction saveOnPrimaryAddressbook + * @property {string|null} [pnJid] ContactAction pnJid + * @property {string|null} [username] ContactAction username */ /** @@ -129324,6 +137744,22 @@ $root.proto = (function() { */ ContactAction.prototype.saveOnPrimaryAddressbook = null; + /** + * ContactAction pnJid. + * @member {string|null|undefined} pnJid + * @memberof proto.SyncActionValue.ContactAction + * @instance + */ + ContactAction.prototype.pnJid = null; + + /** + * ContactAction username. + * @member {string|null|undefined} username + * @memberof proto.SyncActionValue.ContactAction + * @instance + */ + ContactAction.prototype.username = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -129351,6 +137787,18 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(ContactAction.prototype, "_pnJid", { + get: $util.oneOfGetter($oneOfFields = ["pnJid"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(ContactAction.prototype, "_username", { + get: $util.oneOfGetter($oneOfFields = ["username"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new ContactAction instance using the specified properties. * @function create @@ -129383,6 +137831,10 @@ $root.proto = (function() { writer.uint32(/* id 3, wireType 2 =*/26).string(message.lidJid); if (message.saveOnPrimaryAddressbook != null && Object.hasOwnProperty.call(message, "saveOnPrimaryAddressbook")) writer.uint32(/* id 4, wireType 0 =*/32).bool(message.saveOnPrimaryAddressbook); + if (message.pnJid != null && Object.hasOwnProperty.call(message, "pnJid")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.pnJid); + if (message.username != null && Object.hasOwnProperty.call(message, "username")) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.username); return writer; }; @@ -129433,6 +137885,14 @@ $root.proto = (function() { message.saveOnPrimaryAddressbook = reader.bool(); break; } + case 5: { + message.pnJid = reader.string(); + break; + } + case 6: { + message.username = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -129489,6 +137949,16 @@ $root.proto = (function() { if (typeof message.saveOnPrimaryAddressbook !== "boolean") return "saveOnPrimaryAddressbook: boolean expected"; } + if (message.pnJid != null && message.hasOwnProperty("pnJid")) { + properties._pnJid = 1; + if (!$util.isString(message.pnJid)) + return "pnJid: string expected"; + } + if (message.username != null && message.hasOwnProperty("username")) { + properties._username = 1; + if (!$util.isString(message.username)) + return "username: string expected"; + } return null; }; @@ -129512,6 +137982,10 @@ $root.proto = (function() { message.lidJid = String(object.lidJid); if (object.saveOnPrimaryAddressbook != null) message.saveOnPrimaryAddressbook = Boolean(object.saveOnPrimaryAddressbook); + if (object.pnJid != null) + message.pnJid = String(object.pnJid); + if (object.username != null) + message.username = String(object.username); return message; }; @@ -129548,6 +138022,16 @@ $root.proto = (function() { if (options.oneofs) object._saveOnPrimaryAddressbook = "saveOnPrimaryAddressbook"; } + if (message.pnJid != null && message.hasOwnProperty("pnJid")) { + object.pnJid = message.pnJid; + if (options.oneofs) + object._pnJid = "pnJid"; + } + if (message.username != null && message.hasOwnProperty("username")) { + object.username = message.username; + if (options.oneofs) + object._username = "username"; + } return object; }; @@ -129580,6 +138064,222 @@ $root.proto = (function() { return ContactAction; })(); + SyncActionValue.CtwaPerCustomerDataSharingAction = (function() { + + /** + * Properties of a CtwaPerCustomerDataSharingAction. + * @memberof proto.SyncActionValue + * @interface ICtwaPerCustomerDataSharingAction + * @property {boolean|null} [isCtwaPerCustomerDataSharingEnabled] CtwaPerCustomerDataSharingAction isCtwaPerCustomerDataSharingEnabled + */ + + /** + * Constructs a new CtwaPerCustomerDataSharingAction. + * @memberof proto.SyncActionValue + * @classdesc Represents a CtwaPerCustomerDataSharingAction. + * @implements ICtwaPerCustomerDataSharingAction + * @constructor + * @param {proto.SyncActionValue.ICtwaPerCustomerDataSharingAction=} [properties] Properties to set + */ + function CtwaPerCustomerDataSharingAction(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CtwaPerCustomerDataSharingAction isCtwaPerCustomerDataSharingEnabled. + * @member {boolean|null|undefined} isCtwaPerCustomerDataSharingEnabled + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @instance + */ + CtwaPerCustomerDataSharingAction.prototype.isCtwaPerCustomerDataSharingEnabled = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(CtwaPerCustomerDataSharingAction.prototype, "_isCtwaPerCustomerDataSharingEnabled", { + get: $util.oneOfGetter($oneOfFields = ["isCtwaPerCustomerDataSharingEnabled"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new CtwaPerCustomerDataSharingAction instance using the specified properties. + * @function create + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {proto.SyncActionValue.ICtwaPerCustomerDataSharingAction=} [properties] Properties to set + * @returns {proto.SyncActionValue.CtwaPerCustomerDataSharingAction} CtwaPerCustomerDataSharingAction instance + */ + CtwaPerCustomerDataSharingAction.create = function create(properties) { + return new CtwaPerCustomerDataSharingAction(properties); + }; + + /** + * Encodes the specified CtwaPerCustomerDataSharingAction message. Does not implicitly {@link proto.SyncActionValue.CtwaPerCustomerDataSharingAction.verify|verify} messages. + * @function encode + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {proto.SyncActionValue.ICtwaPerCustomerDataSharingAction} message CtwaPerCustomerDataSharingAction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CtwaPerCustomerDataSharingAction.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.isCtwaPerCustomerDataSharingEnabled != null && Object.hasOwnProperty.call(message, "isCtwaPerCustomerDataSharingEnabled")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.isCtwaPerCustomerDataSharingEnabled); + return writer; + }; + + /** + * Encodes the specified CtwaPerCustomerDataSharingAction message, length delimited. Does not implicitly {@link proto.SyncActionValue.CtwaPerCustomerDataSharingAction.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {proto.SyncActionValue.ICtwaPerCustomerDataSharingAction} message CtwaPerCustomerDataSharingAction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CtwaPerCustomerDataSharingAction.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CtwaPerCustomerDataSharingAction message from the specified reader or buffer. + * @function decode + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.SyncActionValue.CtwaPerCustomerDataSharingAction} CtwaPerCustomerDataSharingAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CtwaPerCustomerDataSharingAction.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.SyncActionValue.CtwaPerCustomerDataSharingAction(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.isCtwaPerCustomerDataSharingEnabled = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CtwaPerCustomerDataSharingAction message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.SyncActionValue.CtwaPerCustomerDataSharingAction} CtwaPerCustomerDataSharingAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CtwaPerCustomerDataSharingAction.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CtwaPerCustomerDataSharingAction message. + * @function verify + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CtwaPerCustomerDataSharingAction.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.isCtwaPerCustomerDataSharingEnabled != null && message.hasOwnProperty("isCtwaPerCustomerDataSharingEnabled")) { + properties._isCtwaPerCustomerDataSharingEnabled = 1; + if (typeof message.isCtwaPerCustomerDataSharingEnabled !== "boolean") + return "isCtwaPerCustomerDataSharingEnabled: boolean expected"; + } + return null; + }; + + /** + * Creates a CtwaPerCustomerDataSharingAction message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {Object.} object Plain object + * @returns {proto.SyncActionValue.CtwaPerCustomerDataSharingAction} CtwaPerCustomerDataSharingAction + */ + CtwaPerCustomerDataSharingAction.fromObject = function fromObject(object) { + if (object instanceof $root.proto.SyncActionValue.CtwaPerCustomerDataSharingAction) + return object; + var message = new $root.proto.SyncActionValue.CtwaPerCustomerDataSharingAction(); + if (object.isCtwaPerCustomerDataSharingEnabled != null) + message.isCtwaPerCustomerDataSharingEnabled = Boolean(object.isCtwaPerCustomerDataSharingEnabled); + return message; + }; + + /** + * Creates a plain object from a CtwaPerCustomerDataSharingAction message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {proto.SyncActionValue.CtwaPerCustomerDataSharingAction} message CtwaPerCustomerDataSharingAction + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CtwaPerCustomerDataSharingAction.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.isCtwaPerCustomerDataSharingEnabled != null && message.hasOwnProperty("isCtwaPerCustomerDataSharingEnabled")) { + object.isCtwaPerCustomerDataSharingEnabled = message.isCtwaPerCustomerDataSharingEnabled; + if (options.oneofs) + object._isCtwaPerCustomerDataSharingEnabled = "isCtwaPerCustomerDataSharingEnabled"; + } + return object; + }; + + /** + * Converts this CtwaPerCustomerDataSharingAction to JSON. + * @function toJSON + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @instance + * @returns {Object.} JSON object + */ + CtwaPerCustomerDataSharingAction.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CtwaPerCustomerDataSharingAction + * @function getTypeUrl + * @memberof proto.SyncActionValue.CtwaPerCustomerDataSharingAction + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CtwaPerCustomerDataSharingAction.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.SyncActionValue.CtwaPerCustomerDataSharingAction"; + }; + + return CtwaPerCustomerDataSharingAction; + })(); + SyncActionValue.CustomPaymentMethod = (function() { /** @@ -132157,6 +140857,7 @@ $root.proto = (function() { * @property {number|null} [orderIndex] LabelEditAction orderIndex * @property {boolean|null} [isActive] LabelEditAction isActive * @property {proto.SyncActionValue.LabelEditAction.ListType|null} [type] LabelEditAction type + * @property {boolean|null} [isImmutable] LabelEditAction isImmutable */ /** @@ -132230,6 +140931,14 @@ $root.proto = (function() { */ LabelEditAction.prototype.type = null; + /** + * LabelEditAction isImmutable. + * @member {boolean|null|undefined} isImmutable + * @memberof proto.SyncActionValue.LabelEditAction + * @instance + */ + LabelEditAction.prototype.isImmutable = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -132275,6 +140984,12 @@ $root.proto = (function() { set: $util.oneOfSetter($oneOfFields) }); + // Virtual OneOf for proto3 optional field + Object.defineProperty(LabelEditAction.prototype, "_isImmutable", { + get: $util.oneOfGetter($oneOfFields = ["isImmutable"]), + set: $util.oneOfSetter($oneOfFields) + }); + /** * Creates a new LabelEditAction instance using the specified properties. * @function create @@ -132313,6 +141028,8 @@ $root.proto = (function() { writer.uint32(/* id 6, wireType 0 =*/48).bool(message.isActive); if (message.type != null && Object.hasOwnProperty.call(message, "type")) writer.uint32(/* id 7, wireType 0 =*/56).int32(message.type); + if (message.isImmutable != null && Object.hasOwnProperty.call(message, "isImmutable")) + writer.uint32(/* id 8, wireType 0 =*/64).bool(message.isImmutable); return writer; }; @@ -132375,6 +141092,10 @@ $root.proto = (function() { message.type = reader.int32(); break; } + case 8: { + message.isImmutable = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -132452,9 +141173,16 @@ $root.proto = (function() { case 3: case 4: case 5: + case 6: + case 7: break; } } + if (message.isImmutable != null && message.hasOwnProperty("isImmutable")) { + properties._isImmutable = 1; + if (typeof message.isImmutable !== "boolean") + return "isImmutable: boolean expected"; + } return null; }; @@ -132513,7 +141241,17 @@ $root.proto = (function() { case 5: message.type = 5; break; + case "COMMUNITY": + case 6: + message.type = 6; + break; + case "SERVER_ASSIGNED": + case 7: + message.type = 7; + break; } + if (object.isImmutable != null) + message.isImmutable = Boolean(object.isImmutable); return message; }; @@ -132565,6 +141303,11 @@ $root.proto = (function() { if (options.oneofs) object._type = "type"; } + if (message.isImmutable != null && message.hasOwnProperty("isImmutable")) { + object.isImmutable = message.isImmutable; + if (options.oneofs) + object._isImmutable = "isImmutable"; + } return object; }; @@ -132604,6 +141347,8 @@ $root.proto = (function() { * @property {number} FAVORITES=3 FAVORITES value * @property {number} PREDEFINED=4 PREDEFINED value * @property {number} CUSTOM=5 CUSTOM value + * @property {number} COMMUNITY=6 COMMUNITY value + * @property {number} SERVER_ASSIGNED=7 SERVER_ASSIGNED value */ LabelEditAction.ListType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -132613,6 +141358,8 @@ $root.proto = (function() { values[valuesById[3] = "FAVORITES"] = 3; values[valuesById[4] = "PREDEFINED"] = 4; values[valuesById[5] = "CUSTOM"] = 5; + values[valuesById[6] = "COMMUNITY"] = 6; + values[valuesById[7] = "SERVER_ASSIGNED"] = 7; return values; })(); @@ -132846,6 +141593,321 @@ $root.proto = (function() { return LabelReorderingAction; })(); + SyncActionValue.LidContactAction = (function() { + + /** + * Properties of a LidContactAction. + * @memberof proto.SyncActionValue + * @interface ILidContactAction + * @property {string|null} [fullName] LidContactAction fullName + * @property {string|null} [firstName] LidContactAction firstName + * @property {string|null} [username] LidContactAction username + * @property {boolean|null} [saveOnPrimaryAddressbook] LidContactAction saveOnPrimaryAddressbook + */ + + /** + * Constructs a new LidContactAction. + * @memberof proto.SyncActionValue + * @classdesc Represents a LidContactAction. + * @implements ILidContactAction + * @constructor + * @param {proto.SyncActionValue.ILidContactAction=} [properties] Properties to set + */ + function LidContactAction(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * LidContactAction fullName. + * @member {string|null|undefined} fullName + * @memberof proto.SyncActionValue.LidContactAction + * @instance + */ + LidContactAction.prototype.fullName = null; + + /** + * LidContactAction firstName. + * @member {string|null|undefined} firstName + * @memberof proto.SyncActionValue.LidContactAction + * @instance + */ + LidContactAction.prototype.firstName = null; + + /** + * LidContactAction username. + * @member {string|null|undefined} username + * @memberof proto.SyncActionValue.LidContactAction + * @instance + */ + LidContactAction.prototype.username = null; + + /** + * LidContactAction saveOnPrimaryAddressbook. + * @member {boolean|null|undefined} saveOnPrimaryAddressbook + * @memberof proto.SyncActionValue.LidContactAction + * @instance + */ + LidContactAction.prototype.saveOnPrimaryAddressbook = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LidContactAction.prototype, "_fullName", { + get: $util.oneOfGetter($oneOfFields = ["fullName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LidContactAction.prototype, "_firstName", { + get: $util.oneOfGetter($oneOfFields = ["firstName"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LidContactAction.prototype, "_username", { + get: $util.oneOfGetter($oneOfFields = ["username"]), + set: $util.oneOfSetter($oneOfFields) + }); + + // Virtual OneOf for proto3 optional field + Object.defineProperty(LidContactAction.prototype, "_saveOnPrimaryAddressbook", { + get: $util.oneOfGetter($oneOfFields = ["saveOnPrimaryAddressbook"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new LidContactAction instance using the specified properties. + * @function create + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {proto.SyncActionValue.ILidContactAction=} [properties] Properties to set + * @returns {proto.SyncActionValue.LidContactAction} LidContactAction instance + */ + LidContactAction.create = function create(properties) { + return new LidContactAction(properties); + }; + + /** + * Encodes the specified LidContactAction message. Does not implicitly {@link proto.SyncActionValue.LidContactAction.verify|verify} messages. + * @function encode + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {proto.SyncActionValue.ILidContactAction} message LidContactAction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + LidContactAction.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.fullName != null && Object.hasOwnProperty.call(message, "fullName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.fullName); + if (message.firstName != null && Object.hasOwnProperty.call(message, "firstName")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.firstName); + if (message.username != null && Object.hasOwnProperty.call(message, "username")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.username); + if (message.saveOnPrimaryAddressbook != null && Object.hasOwnProperty.call(message, "saveOnPrimaryAddressbook")) + writer.uint32(/* id 4, wireType 0 =*/32).bool(message.saveOnPrimaryAddressbook); + return writer; + }; + + /** + * Encodes the specified LidContactAction message, length delimited. Does not implicitly {@link proto.SyncActionValue.LidContactAction.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {proto.SyncActionValue.ILidContactAction} message LidContactAction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + LidContactAction.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a LidContactAction message from the specified reader or buffer. + * @function decode + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.SyncActionValue.LidContactAction} LidContactAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + LidContactAction.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.SyncActionValue.LidContactAction(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.fullName = reader.string(); + break; + } + case 2: { + message.firstName = reader.string(); + break; + } + case 3: { + message.username = reader.string(); + break; + } + case 4: { + message.saveOnPrimaryAddressbook = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a LidContactAction message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.SyncActionValue.LidContactAction} LidContactAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + LidContactAction.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a LidContactAction message. + * @function verify + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + LidContactAction.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.fullName != null && message.hasOwnProperty("fullName")) { + properties._fullName = 1; + if (!$util.isString(message.fullName)) + return "fullName: string expected"; + } + if (message.firstName != null && message.hasOwnProperty("firstName")) { + properties._firstName = 1; + if (!$util.isString(message.firstName)) + return "firstName: string expected"; + } + if (message.username != null && message.hasOwnProperty("username")) { + properties._username = 1; + if (!$util.isString(message.username)) + return "username: string expected"; + } + if (message.saveOnPrimaryAddressbook != null && message.hasOwnProperty("saveOnPrimaryAddressbook")) { + properties._saveOnPrimaryAddressbook = 1; + if (typeof message.saveOnPrimaryAddressbook !== "boolean") + return "saveOnPrimaryAddressbook: boolean expected"; + } + return null; + }; + + /** + * Creates a LidContactAction message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {Object.} object Plain object + * @returns {proto.SyncActionValue.LidContactAction} LidContactAction + */ + LidContactAction.fromObject = function fromObject(object) { + if (object instanceof $root.proto.SyncActionValue.LidContactAction) + return object; + var message = new $root.proto.SyncActionValue.LidContactAction(); + if (object.fullName != null) + message.fullName = String(object.fullName); + if (object.firstName != null) + message.firstName = String(object.firstName); + if (object.username != null) + message.username = String(object.username); + if (object.saveOnPrimaryAddressbook != null) + message.saveOnPrimaryAddressbook = Boolean(object.saveOnPrimaryAddressbook); + return message; + }; + + /** + * Creates a plain object from a LidContactAction message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {proto.SyncActionValue.LidContactAction} message LidContactAction + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + LidContactAction.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.fullName != null && message.hasOwnProperty("fullName")) { + object.fullName = message.fullName; + if (options.oneofs) + object._fullName = "fullName"; + } + if (message.firstName != null && message.hasOwnProperty("firstName")) { + object.firstName = message.firstName; + if (options.oneofs) + object._firstName = "firstName"; + } + if (message.username != null && message.hasOwnProperty("username")) { + object.username = message.username; + if (options.oneofs) + object._username = "username"; + } + if (message.saveOnPrimaryAddressbook != null && message.hasOwnProperty("saveOnPrimaryAddressbook")) { + object.saveOnPrimaryAddressbook = message.saveOnPrimaryAddressbook; + if (options.oneofs) + object._saveOnPrimaryAddressbook = "saveOnPrimaryAddressbook"; + } + return object; + }; + + /** + * Converts this LidContactAction to JSON. + * @function toJSON + * @memberof proto.SyncActionValue.LidContactAction + * @instance + * @returns {Object.} JSON object + */ + LidContactAction.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for LidContactAction + * @function getTypeUrl + * @memberof proto.SyncActionValue.LidContactAction + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + LidContactAction.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.SyncActionValue.LidContactAction"; + }; + + return LidContactAction; + })(); + SyncActionValue.LocaleSetting = (function() { /** @@ -135917,6 +144979,259 @@ $root.proto = (function() { return PaymentInfoAction; })(); + SyncActionValue.PaymentTosAction = (function() { + + /** + * Properties of a PaymentTosAction. + * @memberof proto.SyncActionValue + * @interface IPaymentTosAction + * @property {proto.SyncActionValue.PaymentTosAction.PaymentNotice} paymentNotice PaymentTosAction paymentNotice + * @property {boolean} accepted PaymentTosAction accepted + */ + + /** + * Constructs a new PaymentTosAction. + * @memberof proto.SyncActionValue + * @classdesc Represents a PaymentTosAction. + * @implements IPaymentTosAction + * @constructor + * @param {proto.SyncActionValue.IPaymentTosAction=} [properties] Properties to set + */ + function PaymentTosAction(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PaymentTosAction paymentNotice. + * @member {proto.SyncActionValue.PaymentTosAction.PaymentNotice} paymentNotice + * @memberof proto.SyncActionValue.PaymentTosAction + * @instance + */ + PaymentTosAction.prototype.paymentNotice = 0; + + /** + * PaymentTosAction accepted. + * @member {boolean} accepted + * @memberof proto.SyncActionValue.PaymentTosAction + * @instance + */ + PaymentTosAction.prototype.accepted = false; + + /** + * Creates a new PaymentTosAction instance using the specified properties. + * @function create + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {proto.SyncActionValue.IPaymentTosAction=} [properties] Properties to set + * @returns {proto.SyncActionValue.PaymentTosAction} PaymentTosAction instance + */ + PaymentTosAction.create = function create(properties) { + return new PaymentTosAction(properties); + }; + + /** + * Encodes the specified PaymentTosAction message. Does not implicitly {@link proto.SyncActionValue.PaymentTosAction.verify|verify} messages. + * @function encode + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {proto.SyncActionValue.IPaymentTosAction} message PaymentTosAction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PaymentTosAction.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.paymentNotice); + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.accepted); + return writer; + }; + + /** + * Encodes the specified PaymentTosAction message, length delimited. Does not implicitly {@link proto.SyncActionValue.PaymentTosAction.verify|verify} messages. + * @function encodeDelimited + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {proto.SyncActionValue.IPaymentTosAction} message PaymentTosAction message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PaymentTosAction.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a PaymentTosAction message from the specified reader or buffer. + * @function decode + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {proto.SyncActionValue.PaymentTosAction} PaymentTosAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PaymentTosAction.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.proto.SyncActionValue.PaymentTosAction(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.paymentNotice = reader.int32(); + break; + } + case 2: { + message.accepted = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("paymentNotice")) + throw $util.ProtocolError("missing required 'paymentNotice'", { instance: message }); + if (!message.hasOwnProperty("accepted")) + throw $util.ProtocolError("missing required 'accepted'", { instance: message }); + return message; + }; + + /** + * Decodes a PaymentTosAction message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {proto.SyncActionValue.PaymentTosAction} PaymentTosAction + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PaymentTosAction.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a PaymentTosAction message. + * @function verify + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PaymentTosAction.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + switch (message.paymentNotice) { + default: + return "paymentNotice: enum value expected"; + case 0: + break; + } + if (typeof message.accepted !== "boolean") + return "accepted: boolean expected"; + return null; + }; + + /** + * Creates a PaymentTosAction message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {Object.} object Plain object + * @returns {proto.SyncActionValue.PaymentTosAction} PaymentTosAction + */ + PaymentTosAction.fromObject = function fromObject(object) { + if (object instanceof $root.proto.SyncActionValue.PaymentTosAction) + return object; + var message = new $root.proto.SyncActionValue.PaymentTosAction(); + switch (object.paymentNotice) { + default: + if (typeof object.paymentNotice === "number") { + message.paymentNotice = object.paymentNotice; + break; + } + break; + case "BR_PAY_PRIVACY_POLICY": + case 0: + message.paymentNotice = 0; + break; + } + if (object.accepted != null) + message.accepted = Boolean(object.accepted); + return message; + }; + + /** + * Creates a plain object from a PaymentTosAction message. Also converts values to other types if specified. + * @function toObject + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {proto.SyncActionValue.PaymentTosAction} message PaymentTosAction + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + PaymentTosAction.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.paymentNotice = options.enums === String ? "BR_PAY_PRIVACY_POLICY" : 0; + object.accepted = false; + } + if (message.paymentNotice != null && message.hasOwnProperty("paymentNotice")) + object.paymentNotice = options.enums === String ? $root.proto.SyncActionValue.PaymentTosAction.PaymentNotice[message.paymentNotice] === undefined ? message.paymentNotice : $root.proto.SyncActionValue.PaymentTosAction.PaymentNotice[message.paymentNotice] : message.paymentNotice; + if (message.accepted != null && message.hasOwnProperty("accepted")) + object.accepted = message.accepted; + return object; + }; + + /** + * Converts this PaymentTosAction to JSON. + * @function toJSON + * @memberof proto.SyncActionValue.PaymentTosAction + * @instance + * @returns {Object.} JSON object + */ + PaymentTosAction.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for PaymentTosAction + * @function getTypeUrl + * @memberof proto.SyncActionValue.PaymentTosAction + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + PaymentTosAction.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/proto.SyncActionValue.PaymentTosAction"; + }; + + /** + * PaymentNotice enum. + * @name proto.SyncActionValue.PaymentTosAction.PaymentNotice + * @enum {number} + * @property {number} BR_PAY_PRIVACY_POLICY=0 BR_PAY_PRIVACY_POLICY value + */ + PaymentTosAction.PaymentNotice = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "BR_PAY_PRIVACY_POLICY"] = 0; + return values; + })(); + + return PaymentTosAction; + })(); + SyncActionValue.PinAction = (function() { /** @@ -152932,6 +162247,9 @@ $root.proto = (function() { case 213: case 214: case 215: + case 216: + case 217: + case 218: break; } } @@ -154224,6 +163542,18 @@ $root.proto = (function() { case 215: message.messageStubType = 215; break; + case "CHANGE_LIMIT_SHARING": + case 216: + message.messageStubType = 216; + break; + case "GROUP_MEMBER_LINK_MODE": + case 217: + message.messageStubType = 217; + break; + case "BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE": + case 218: + message.messageStubType = 218; + break; } if (object.clearMedia != null) message.clearMedia = Boolean(object.clearMedia); @@ -155125,6 +164455,9 @@ $root.proto = (function() { * @property {number} CHANGE_LID=213 CHANGE_LID value * @property {number} BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE=214 BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE value * @property {number} BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE=215 BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE value + * @property {number} CHANGE_LIMIT_SHARING=216 CHANGE_LIMIT_SHARING value + * @property {number} GROUP_MEMBER_LINK_MODE=217 GROUP_MEMBER_LINK_MODE value + * @property {number} BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE=218 BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE value */ WebMessageInfo.StubType = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -155344,6 +164677,9 @@ $root.proto = (function() { values[valuesById[213] = "CHANGE_LID"] = 213; values[valuesById[214] = "BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE"] = 214; values[valuesById[215] = "BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE"] = 215; + values[valuesById[216] = "CHANGE_LIMIT_SHARING"] = 216; + values[valuesById[217] = "GROUP_MEMBER_LINK_MODE"] = 217; + values[valuesById[218] = "BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE"] = 218; return values; })(); diff --git a/package.json b/package.json index 975da4e..228ce29 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "baileys", - "version": "6.7.16", + "version": "6.7.18", "description": "A WebSockets library for interacting with WhatsApp Web", "keywords": [ "whatsapp", @@ -66,6 +66,7 @@ "json": "^11.0.0", "link-preview-js": "^3.0.0", "open": "^8.4.2", + "protobufjs-cli": "^1.1.3", "release-it": "^15.10.3", "sharp": "^0.32.6", "ts-jest": "^29.3.2", diff --git a/proto-extract/README.md b/proto-extract/README.md new file mode 100644 index 0000000..b1b7cc5 --- /dev/null +++ b/proto-extract/README.md @@ -0,0 +1,10 @@ +# Proto Extract + +Derived initially from `whatseow`'s proto extract, this version generates a predictable diff friendly protobuf. It also does not rely on a hardcoded set of modules to look for but finds all proto modules on its own and extracts the proto from there. + +Thanks to [wppconnect-team](https://github.com/wppconnect-team) for the script update to make it work with the latest version of whatsapp. + +## Usage +1. Install dependencies with `yarn` (or `npm install`) +2. `yarn start` +3. The script will update `../WAProto/WAProto.proto` (except if something is broken) diff --git a/proto-extract/index.js b/proto-extract/index.js new file mode 100644 index 0000000..ea2ce67 --- /dev/null +++ b/proto-extract/index.js @@ -0,0 +1,507 @@ +const request = require('request-promise-native'); +const acorn = require('acorn'); +const walk = require('acorn-walk'); +const fs = require('fs/promises'); + +let whatsAppVersion = 'latest'; + +const addPrefix = (lines, prefix) => lines.map((line) => prefix + line); + +const extractAllExpressions = (node) => { + const expressions = [node]; + const exp = node.expression; + if (exp) { + expressions.push(exp); + } + if(node?.expression?.arguments?.length) { + for (const arg of node?.expression?.arguments) { + if(arg?.body?.body?.length){ + for(const exp of arg?.body.body) { + expressions.push(...extractAllExpressions(exp)); + } + } + } + } + if(node?.body?.body?.length) { + for (const exp of node?.body?.body) { + if(exp.expression){ + expressions.push(...extractAllExpressions(exp.expression)); + } + } + } + + if (node.expression?.expressions?.length) { + for (const exp of node.expression?.expressions) { + expressions.push(...extractAllExpressions(exp)); + } + } + + return expressions; +}; + + +async function findAppModules() { + const ua = { + headers: { + 'User-Agent': + 'Mozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0', + 'Sec-Fetch-Dest': 'script', + 'Sec-Fetch-Mode': 'no-cors', + 'Sec-Fetch-Site': 'same-origin', + Referer: 'https://web.whatsapp.com/', + Accept: '*/*', + 'Accept-Language': 'Accept-Language: en-US,en;q=0.5', + }, + }; + const baseURL = 'https://web.whatsapp.com'; + const serviceworker = await request.get(`${baseURL}/sw.js`, ua); + + const versions = [ + ...serviceworker.matchAll(/client_revision\\":([\d\.]+),/g), + ].map((r) => r[1]); + const version = versions[0]; + console.log(`Current version: 2.3000.${version}`); + + const waVersion = `2.3000.${version}`; + whatsAppVersion = waVersion; + + let bootstrapQRURL = ''; + const clearString = serviceworker.replaceAll('/*BTDS*/', ''); + const URLScript = clearString.match(/(?<=importScripts\(["'])(.*?)(?=["']\);)/g); + bootstrapQRURL = new URL(URLScript[0].replaceAll("\\",'')).href; + + console.info('Found source JS URL:', bootstrapQRURL); + + const qrData = await request.get(bootstrapQRURL, ua); + + // This one list of types is so long that it's split into two JavaScript declarations. + // The module finder below can't handle it, so just patch it manually here. + const patchedQrData = qrData.replaceAll( + 'LimitSharing$Trigger', + 'LimitSharing$TriggerType' + ); + + const qrModules = acorn.parse(patchedQrData).body; + + const result = qrModules.filter((m) => { + const expressions = extractAllExpressions(m); + return expressions?.find( + (e) => { + return e?.left?.property?.name === 'internalSpec' + } + ); + }); + return result; +} + +(async () => { + const unspecName = (name) => + name.endsWith('Spec') ? name.slice(0, -4) : name; + const unnestName = (name) => name.split('$').slice(-1)[0]; + const getNesting = (name) => name.split('$').slice(0, -1).join('$'); + const makeRenameFunc = () => (name) => { + name = unspecName(name); + return name; // .replaceAll('$', '__') + // return renames[name] ?? unnestName(name) + }; + // The constructor IDs that can be used for enum types + + const modules = await findAppModules(); + + // find aliases of cross references between the wanted modules + const modulesInfo = {}; + const moduleIndentationMap = {}; + modules.forEach((module) => { + const moduleName = module.expression.arguments[0].value; + modulesInfo[moduleName] = { crossRefs: [] }; + walk.simple(module, { + AssignmentExpression(node) { + if ( + node && + node?.right?.type == 'CallExpression' && + node?.right?.arguments?.length == 1 && + node?.right?.arguments[0].type !== 'ObjectExpression' + ) { + /*if(node.right.arguments[0].value == '$InternalEnum') { + console.log(node); + console.log(node.right.arguments[0]); + exit; + }*/ + modulesInfo[moduleName].crossRefs.push({ + alias: node.left.name, + module: node.right.arguments[0].value, + }); + } + }, + }); + }); + + // find all identifiers and, for enums, their array of values + for (const mod of modules) { + const modInfo = modulesInfo[mod.expression.arguments[0].value]; + const rename = makeRenameFunc(mod.expression.arguments[0].value); + + const assignments = [] + walk.simple(mod, { + AssignmentExpression(node) { + const left = node.left; + if( + left.property?.name && + left.property?.name !== 'internalSpec' && + left.property?.name !== 'internalDefaults' && + left.property?.name !== 'name' + ) { + assignments.push(left); + } + }, + }); + + + const makeBlankIdent = (a) => { + const key = rename(a?.property?.name); + const indentation = getNesting(key); + const value = { name: key }; + + moduleIndentationMap[key] = moduleIndentationMap[key] || {}; + moduleIndentationMap[key].indentation = indentation; + + if (indentation.length) { + moduleIndentationMap[indentation] = + moduleIndentationMap[indentation] || {}; + moduleIndentationMap[indentation].members = + moduleIndentationMap[indentation].members || new Set(); + moduleIndentationMap[indentation].members.add(key); + } + + return [key, value]; + }; + + modInfo.identifiers = Object.fromEntries( + assignments.map(makeBlankIdent).reverse() + ); + const enumAliases = {}; + // enums are defined directly, and both enums and messages get a one-letter alias + walk.ancestor(mod, { + Property(node, anc) { + const fatherNode = anc[anc.length - 3]; + const fatherFather = anc[anc.length - 4]; + if( + fatherNode?.type === 'AssignmentExpression' && + fatherNode?.left?.property?.name == 'internalSpec' + && fatherNode?.right?.properties.length + ) { + const values = fatherNode?.right?.properties.map((p) => ({ + name: p.key.name, + id: p.value.value, + })); + const nameAlias = fatherNode?.left?.name; + enumAliases[nameAlias] = values; + } + else if (node?.key && node?.key?.name && fatherNode.arguments?.length > 0) { + const values = fatherNode.arguments?.[0]?.properties.map((p) => ({ + name: p.key.name, + id: p.value.value, + })); + const nameAlias = fatherFather?.left?.name || fatherFather.id.name; + enumAliases[nameAlias] = values; + } + }, + }); + walk.simple(mod, { + AssignmentExpression(node) { + if ( + node.left.type === 'MemberExpression' && + modInfo.identifiers?.[rename(node.left.property.name)] + ) { + const ident = modInfo.identifiers[rename(node.left.property.name)]; + ident.alias = node.right.name; + ident.enumValues = enumAliases[ident.alias]; + } + }, + }); + } + + // find the contents for all protobuf messages + for (const mod of modules) { + const modInfo = modulesInfo[mod.expression.arguments[0].value]; + const rename = makeRenameFunc(mod.expression.arguments[0].value); + const findByAliasInIdentifier = (obj, alias) => { + return Object.values(obj).find(item => item.alias === alias); + }; + + // message specifications are stored in a "internalSpec" attribute of the respective identifier alias + walk.simple(mod, { + AssignmentExpression(node) { + if ( + node.left.type === 'MemberExpression' && + node.left.property.name === 'internalSpec' && + node.right.type === 'ObjectExpression' + ) { + const targetIdent = Object.values(modInfo.identifiers).find( + (v) => v.alias === node.left.object.name + ); + if (!targetIdent) { + console.warn( + `found message specification for unknown identifier alias: ${node.left.object.name}` + ); + return; + } + + // partition spec properties by normal members and constraints (like "__oneofs__") which will be processed afterwards + const constraints = []; + let members = []; + for (const p of node.right.properties) { + p.key.name = p.key.type === 'Identifier' ? p.key.name : p.key.value; + const arr = + p.key.name.substr(0, 2) === '__' ? constraints : members; + arr.push(p); + } + + members = members.map(({ key: { name }, value: { elements } }) => { + let type; + const flags = []; + const unwrapBinaryOr = (n) => + n.type === 'BinaryExpression' && n.operator === '|' + ? [].concat(unwrapBinaryOr(n.left), unwrapBinaryOr(n.right)) + : [n]; + + // find type and flags + unwrapBinaryOr(elements[1]).forEach((m) => { + if ( + m.type === 'MemberExpression' && + m.object.type === 'MemberExpression' + ) { + if (m.object.property.name === 'TYPES') { + type = m.property.name.toLowerCase(); + if(type == 'map'){ + + let typeStr = 'map<'; + if (elements[2]?.type === 'ArrayExpression') { + const subElements = elements[2].elements; + subElements.forEach((element, index) => { + if(element?.property?.name) { + typeStr += element?.property?.name?.toLowerCase(); + } else { + const ref = findByAliasInIdentifier(modInfo.identifiers, element.name); + typeStr += ref.name; + } + if (index < subElements.length - 1) { + typeStr += ', '; + } + }); + typeStr += '>'; + type = typeStr; + } + } + } else if (m.object.property.name === 'FLAGS') { + flags.push(m.property.name.toLowerCase()); + } + } + }); + + // determine cross reference name from alias if this member has type "message" or "enum" + + if (type === 'message' || type === 'enum') { + const currLoc = ` from member '${name}' of message ${targetIdent.name}'`; + if (elements[2].type === 'Identifier') { + type = Object.values(modInfo.identifiers).find( + (v) => v.alias === elements[2].name + )?.name; + if (!type) { + console.warn( + `unable to find reference of alias '${elements[2].name}'` + + currLoc + ); + } + } else if (elements[2].type === 'MemberExpression') { + let crossRef = modInfo.crossRefs.find( + (r) => r.alias === elements[2]?.object?.name || elements[2]?.object?.left?.name || elements[2]?.object?.callee?.name + ); + if(elements[1]?.property?.name === 'ENUM' && elements[2]?.property?.name?.includes('Type')) { + type = rename(elements[2]?.property?.name); + } + else if(elements[2]?.property?.name.includes('Spec')) { + type = rename(elements[2].property.name); + } else if ( + crossRef && + crossRef.module !== '$InternalEnum' && + modulesInfo[crossRef.module].identifiers[ + rename(elements[2].property.name) + ] + ) { + type = rename(elements[2].property.name); + } else { + console.warn( + `unable to find reference of alias to other module '${elements[2].object.name}' or to message ${elements[2].property.name} of this module` + + currLoc + ); + } + } + } + + return { name, id: elements[0].value, type, flags }; + }); + + // resolve constraints for members + constraints.forEach((c) => { + if ( + c.key.name === '__oneofs__' && + c.value.type === 'ObjectExpression' + ) { + const newOneOfs = c.value.properties.map((p) => ({ + name: p.key.name, + type: '__oneof__', + members: p.value.elements.map((e) => { + const idx = members.findIndex((m) => m.name === e.value); + const member = members[idx]; + members.splice(idx, 1); + return member; + }), + })); + members.push(...newOneOfs); + } + }); + + targetIdent.members = members; + } + }, + }); + } + + const decodedProtoMap = {}; + const spaceIndent = ' '.repeat(4); + for (const mod of modules) { + const modInfo = modulesInfo[mod.expression.arguments[0].value]; + const identifiers = Object.values(modInfo?.identifiers); + + // enum stringifying function + const stringifyEnum = (ident, overrideName = null) => + [].concat( + [`enum ${overrideName || ident.displayName || ident.name} {`], + addPrefix( + ident.enumValues.map((v) => `${v.name} = ${v.id};`), + spaceIndent + ), + ['}'] + ); + + // message specification member stringifying function + const stringifyMessageSpecMember = ( + info, + completeFlags, + parentName = undefined + ) => { + if (info.type === '__oneof__') { + return [].concat( + [`oneof ${info.name} {`], + addPrefix( + [].concat( + ...info.members.map((m) => stringifyMessageSpecMember(m, false)) + ), + spaceIndent + ), + ['}'] + ); + } else { + if (info.flags.includes('packed')) { + info.flags.splice(info.flags.indexOf('packed')); + info.packed = ' [packed=true]'; + } + if (completeFlags && info.flags.length === 0 && !info.type.includes('map')) { + info.flags.push('optional'); + } + + const ret = []; + const indentation = moduleIndentationMap[info.type]?.indentation; + let typeName = unnestName(info.type); + if (indentation !== parentName && indentation) { + typeName = `${indentation.replaceAll('$', '.')}.${typeName}`; + } + + // if(info.enumValues) { + // // typeName = unnestName(info.type) + // ret = stringifyEnum(info, typeName) + // } + + ret.push( + `${ + info.flags.join(' ') + (info.flags.length === 0 ? '' : ' ') + }${typeName} ${info.name} = ${info.id}${info.packed || ''};` + ); + return ret; + } + }; + + // message specification stringifying function + const stringifyMessageSpec = (ident) => { + const members = moduleIndentationMap[ident.name]?.members; + const result = []; + result.push( + `message ${ident.displayName || ident.name} {`, + ...addPrefix( + [].concat( + ...ident.members.map((m) => + stringifyMessageSpecMember(m, true, ident.name) + ) + ), + spaceIndent + ) + ); + + if (members?.size) { + const sortedMembers = Array.from(members).sort(); + for (const memberName of sortedMembers) { + let entity = modInfo.identifiers[memberName]; + if (entity) { + const displayName = entity.name.slice(ident.name.length + 1); + entity = { ...entity, displayName }; + result.push(...addPrefix(getEntity(entity), spaceIndent)); + } else { + console.log('missing nested entity ', memberName); + } + } + } + + result.push('}'); + result.push(''); + + return result; + }; + + const getEntity = (v) => { + let result; + if (v.members) { + result = stringifyMessageSpec(v); + } else if (v.enumValues?.length) { + result = stringifyEnum(v); + } else { + result = ['// Unknown entity ' + v.name]; + } + + return result; + }; + + const stringifyEntity = (v) => { + return { + content: getEntity(v).join('\n'), + name: v.name, + }; + }; + + for (const value of identifiers) { + const { name, content } = stringifyEntity(value); + if (!moduleIndentationMap[name]?.indentation?.length) { + decodedProtoMap[name] = content; + } + } + } + + const decodedProto = Object.keys(decodedProtoMap).sort(); + const sortedStr = decodedProto.map((d) => decodedProtoMap[d]).join('\n'); + + const decodedProtoStr = `syntax = "proto3";\npackage proto;\n\n/// WhatsApp Version: ${whatsAppVersion}\n\n${sortedStr}`; + const destinationPath = '../WAProto/WAProto.proto'; + await fs.writeFile(destinationPath, decodedProtoStr); + + console.log(`Extracted protobuf schema to "${destinationPath}"`); +})(); \ No newline at end of file diff --git a/proto-extract/package-lock.json b/proto-extract/package-lock.json new file mode 100644 index 0000000..2df632b --- /dev/null +++ b/proto-extract/package-lock.json @@ -0,0 +1,509 @@ +{ + "name": "whatsapp-web-protobuf-extractor", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "whatsapp-web-protobuf-extractor", + "version": "1.0.0", + "dependencies": { + "acorn": "^6.4.1", + "acorn-walk": "^6.1.1", + "request": "^2.88.0", + "request-promise-core": "^1.1.2", + "request-promise-native": "^1.0.7" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k= sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk= sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM= sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= sha512-a3xHnILGMtk+hDOqNwHzF6e2fNbiMrXZvxKQiEv2MlgQP+pjIOzqAmKYD2mDpXYE/44M7g+n9p2bKkYWDUcXCQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= sha512-4Dj8Rf+fQ+/Pn7C5qeEX02op1WfOss3PKTE9Nsop3Dx+6UPxlm1dr/og7o2cRa5hNN07CACr4NFzRLtj/rjWog==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/mime-db": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", + "dependencies": { + "mime-db": "1.50.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + } + } +} diff --git a/proto-extract/package.json b/proto-extract/package.json new file mode 100644 index 0000000..97ed950 --- /dev/null +++ b/proto-extract/package.json @@ -0,0 +1,15 @@ +{ + "name": "whatsapp-web-protobuf-extractor", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "acorn": "^6.4.1", + "acorn-walk": "^6.1.1", + "request": "^2.88.0", + "request-promise-core": "^1.1.2", + "request-promise-native": "^1.0.7" + } +} diff --git a/proto-extract/yarn.lock b/proto-extract/yarn.lock new file mode 100644 index 0000000..61742b2 --- /dev/null +++ b/proto-extract/yarn.lock @@ -0,0 +1,352 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +acorn-walk@^6.1.1: + version "6.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@^1.0.0, assert-plus@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@^1.2.0, extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= sha512-a3xHnILGMtk+hDOqNwHzF6e2fNbiMrXZvxKQiEv2MlgQP+pjIOzqAmKYD2mDpXYE/44M7g+n9p2bKkYWDUcXCQ== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= sha512-4Dj8Rf+fQ+/Pn7C5qeEX02op1WfOss3PKTE9Nsop3Dx+6UPxlm1dr/og7o2cRa5hNN07CACr4NFzRLtj/rjWog== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +lodash@^4.17.19: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +mime-db@1.50.0: + version "1.50.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz" + integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.33" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz" + integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== + dependencies: + mime-db "1.50.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +request-promise-core@^1.1.2, request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.34, request@^2.88.0: + version "2.88.2" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +safe-buffer@^5.0.1, safe-buffer@^5.1.2: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" diff --git a/src/Defaults/baileys-version.json b/src/Defaults/baileys-version.json index 60dfb24..0590b2e 100644 --- a/src/Defaults/baileys-version.json +++ b/src/Defaults/baileys-version.json @@ -1,3 +1,3 @@ { - "version": [2, 3000, 1020608496] + "version": [2, 3000, 1023223821] } diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 2a12118..6b6679c 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -634,7 +634,10 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { isLid ? authState.creds.me?.lid : authState.creds.me?.id ) const remoteJid = !isNodeFromMe || isJidGroup(attrs.from) ? attrs.from : attrs.recipient - const fromMe = !attrs.recipient || (attrs.type === 'retry' && isNodeFromMe) + const fromMe = !attrs.recipient || ( + (attrs.type === 'retry' || attrs.type === 'sender') + && isNodeFromMe + ) const key: proto.IMessageKey = { remoteJid, diff --git a/src/Types/Message.ts b/src/Types/Message.ts index ab0eead..8ab0daa 100644 --- a/src/Types/Message.ts +++ b/src/Types/Message.ts @@ -264,10 +264,7 @@ export type MessageGenerationOptionsFromContent = MiscMessageGenerationOptions & userJid: string } -export type WAMediaUploadFunction = ( - readStream: Readable, - opts: { fileEncSha256B64: string; mediaType: MediaType; timeoutMs?: number } -) => Promise<{ mediaUrl: string; directPath: string }> +export type WAMediaUploadFunction = (encFilePath: string, opts: { fileEncSha256B64: string, mediaType: MediaType, timeoutMs?: number }) => Promise<{ mediaUrl: string, directPath: string }> export type MediaGenerationOptions = { logger?: ILogger diff --git a/src/Utils/business.ts b/src/Utils/business.ts index 41f9ad6..f242a1e 100644 --- a/src/Utils/business.ts +++ b/src/Utils/business.ts @@ -1,18 +1,12 @@ import { Boom } from '@hapi/boom' import { createHash } from 'crypto' -import { - CatalogCollection, - CatalogStatus, - OrderDetails, - OrderProduct, - Product, - ProductCreate, - ProductUpdate, - WAMediaUpload, - WAMediaUploadFunction -} from '../Types' +import { createWriteStream, promises as fs } from 'fs' +import { tmpdir } from 'os' +import { join } from 'path' +import { CatalogCollection, CatalogStatus, OrderDetails, OrderProduct, Product, ProductCreate, ProductUpdate, WAMediaUpload, WAMediaUploadFunction } from '../Types' import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString } from '../WABinary' -import { getStream, getUrlFromDirectPath, toReadable } from './messages-media' +import { generateMessageIDV2 } from './generics' +import { getStream, getUrlFromDirectPath } from './messages-media' export const parseCatalogNode = (node: BinaryNode) => { const catalogNode = getBinaryNodeChild(node, 'product_catalog') @@ -238,23 +232,35 @@ export const uploadingNecessaryImages = async ( } } - const { stream } = await getStream(img) - const hasher = createHash('sha256') - const contentBlocks: Buffer[] = [] - for await (const block of stream) { - hasher.update(block) - contentBlocks.push(block) - } + const { stream } = await getStream(img) + const hasher = createHash('sha256') + + const filePath = join(tmpdir(), 'img' + generateMessageIDV2()) + const encFileWriteStream = createWriteStream(filePath) + + for await (const block of stream) { + hasher.update(block) + encFileWriteStream.write(block) + } const sha = hasher.digest('base64') - const { directPath } = await waUploadToServer(toReadable(Buffer.concat(contentBlocks)), { - mediaType: 'product-catalog-image', - fileEncSha256B64: sha, - timeoutMs - }) - return { url: getUrlFromDirectPath(directPath) } - }) + const { directPath } = await waUploadToServer( + filePath, + { + mediaType: 'product-catalog-image', + fileEncSha256B64: sha, + timeoutMs + } + ) + + await fs + .unlink(filePath) + .catch(err => console.log('Error deleting temp file ', err)) + + return { url: getUrlFromDirectPath(directPath) } + } + ) ) return results } diff --git a/src/Utils/generics.ts b/src/Utils/generics.ts index b57cc39..37d3bf7 100644 --- a/src/Utils/generics.ts +++ b/src/Utils/generics.ts @@ -36,7 +36,7 @@ export const Browsers: BrowsersMap = { export const getPlatformId = (browser: string) => { const platformType = proto.DeviceProps.PlatformType[browser.toUpperCase()] - return platformType ? platformType.toString().charCodeAt(0).toString() : '49' //chrome + return platformType ? platformType.toString() : '1' //chrome } export const BufferJSON = { diff --git a/src/Utils/messages-media.ts b/src/Utils/messages-media.ts index ddd5d3a..1e9a514 100644 --- a/src/Utils/messages-media.ts +++ b/src/Utils/messages-media.ts @@ -11,20 +11,7 @@ import { Readable, Transform } from 'stream' import { URL } from 'url' import { proto } from '../../WAProto' import { DEFAULT_ORIGIN, MEDIA_HKDF_KEY_MAPPING, MEDIA_PATH_MAP } from '../Defaults' -import { - BaileysEventMap, - DownloadableMessage, - MediaConnInfo, - MediaDecryptionKeyInfo, - MediaType, - MessageType, - SocketConfig, - WAGenericMediaMessage, - WAMediaPayloadURL, - WAMediaUpload, - WAMediaUploadFunction, - WAMessageContent -} from '../Types' +import { BaileysEventMap, DownloadableMessage, MediaConnInfo, MediaDecryptionKeyInfo, MediaType, MessageType, SocketConfig, WAGenericMediaMessage, WAMediaUpload, WAMediaUploadFunction, WAMessageContent } from '../Types' import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildBuffer, jidNormalizedUser } from '../WABinary' import { aesDecryptGCM, aesEncryptGCM, hkdf } from './crypto' import { generateMessageIDV2 } from './generics' @@ -339,24 +326,35 @@ export const encryptedStream = async ( const mediaKey = Crypto.randomBytes(32) const { cipherKey, iv, macKey } = await getMediaKeys(mediaKey, mediaType) - const encWriteStream = new Readable({ read: () => {} }) - let bodyPath: string | undefined - let writeStream: WriteStream | undefined - let didSaveToTmpPath = false - if (type === 'file') { - bodyPath = (media as WAMediaPayloadURL).url.toString() - } else if (saveOriginalFileIfRequired) { - bodyPath = join(getTmpFilesDirectory(), mediaType + generateMessageIDV2()) - writeStream = createWriteStream(bodyPath) - didSaveToTmpPath = true + const encFilePath = join( + getTmpFilesDirectory(), + mediaType + generateMessageIDV2() + '-enc' + ) + const encFileWriteStream = createWriteStream(encFilePath) + + let originalFileStream: WriteStream | undefined + let originalFilePath: string | undefined + + if(saveOriginalFileIfRequired) { + originalFilePath = join( + getTmpFilesDirectory(), + mediaType + generateMessageIDV2() + '-original' + ) + originalFileStream = createWriteStream(originalFilePath) } let fileLength = 0 const aes = Crypto.createCipheriv('aes-256-cbc', cipherKey, iv) - let hmac = Crypto.createHmac('sha256', macKey!).update(iv) - let sha256Plain = Crypto.createHash('sha256') - let sha256Enc = Crypto.createHash('sha256') + const hmac = Crypto.createHmac('sha256', macKey!).update(iv) + const sha256Plain = Crypto.createHash('sha256') + const sha256Enc = Crypto.createHash('sha256') + + const onChunk = (buff: Buffer) => { + sha256Enc.update(buff) + hmac.update(buff) + encFileWriteStream.write(buff) + } try { for await (const data of stream) { @@ -368,66 +366,63 @@ export const encryptedStream = async ( }) } - sha256Plain = sha256Plain.update(data) - if (writeStream && !writeStream.write(data)) { - await once(writeStream, 'drain') + if(originalFileStream) { + if(!originalFileStream.write(data)) { + await once(originalFileStream, 'drain') + } } + sha256Plain.update(data) onChunk(aes.update(data)) } onChunk(aes.final()) const mac = hmac.digest().slice(0, 10) - sha256Enc = sha256Enc.update(mac) + sha256Enc.update(mac) const fileSha256 = sha256Plain.digest() const fileEncSha256 = sha256Enc.digest() - encWriteStream.push(mac) - encWriteStream.push(null) + encFileWriteStream.write(mac) - writeStream?.end() + encFileWriteStream.end() + originalFileStream?.end?.() stream.destroy() logger?.debug('encrypted data successfully') return { mediaKey, - encWriteStream, - bodyPath, + originalFilePath, + encFilePath, mac, fileEncSha256, fileSha256, - fileLength, - didSaveToTmpPath + fileLength } } catch (error) { // destroy all streams with error - encWriteStream.destroy() - writeStream?.destroy() + encFileWriteStream.destroy() + originalFileStream?.destroy?.() aes.destroy() hmac.destroy() sha256Plain.destroy() sha256Enc.destroy() stream.destroy() - if (didSaveToTmpPath) { - try { - await fs.unlink(bodyPath!) - } catch (err) { - logger?.error({ err }, 'failed to save to tmp path') + + try { + await fs.unlink(encFilePath) + if(originalFilePath) { + await fs.unlink(originalFilePath) } + } catch(err) { + logger?.error({ err }, 'failed deleting tmp files') } throw error } - - function onChunk(buff: Buffer) { - sha256Enc = sha256Enc.update(buff) - hmac = hmac.update(buff) - encWriteStream.push(buff) - } } const DEF_HOST = 'mmg.whatsapp.net' @@ -577,7 +572,7 @@ export const getWAUploadToServer = ( { customUploadHosts, fetchAgent, logger, options }: SocketConfig, refreshMediaConn: (force: boolean) => Promise ): WAMediaUploadFunction => { - return async (stream, { mediaType, fileEncSha256B64, timeoutMs }) => { + return async(filePath, { mediaType, fileEncSha256B64, timeoutMs }) => { // send a query JSON to obtain the url & auth token to upload our media let uploadInfo = await refreshMediaConn(false) @@ -594,19 +589,25 @@ export const getWAUploadToServer = ( // eslint-disable-next-line @typescript-eslint/no-explicit-any let result: any try { - const body = await axios.post(url, stream, { - ...options, - headers: { - ...(options.headers || {}), - 'Content-Type': 'application/octet-stream', - Origin: DEFAULT_ORIGIN - }, - httpsAgent: fetchAgent, - timeout: timeoutMs, - responseType: 'json', - maxBodyLength: Infinity, - maxContentLength: Infinity - }) + + const body = await axios.post( + url, + createReadStream(filePath), + { + ...options, + maxRedirects: 0, + headers: { + ...options.headers || { }, + 'Content-Type': 'application/octet-stream', + 'Origin': DEFAULT_ORIGIN + }, + httpsAgent: fetchAgent, + timeout: timeoutMs, + responseType: 'json', + maxBodyLength: Infinity, + maxContentLength: Infinity, + } + ) result = body.data if (result?.url || result?.directPath) { diff --git a/src/Utils/messages.ts b/src/Utils/messages.ts index a775530..ffcc890 100644 --- a/src/Utils/messages.ts +++ b/src/Utils/messages.ts @@ -165,8 +165,17 @@ export const prepareWAMessageMedia = async (message: AnyMediaMessageContent, opt const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true const requiresAudioBackground = options.backgroundColor && mediaType === 'audio' && uploadData.ptt === true const requiresOriginalForSomeProcessing = requiresDurationComputation || requiresThumbnailComputation - const { mediaKey, encWriteStream, bodyPath, fileEncSha256, fileSha256, fileLength, didSaveToTmpPath } = - await encryptedStream(uploadData.media, options.mediaTypeOverride || mediaType, { + const { + mediaKey, + encFilePath, + originalFilePath, + fileEncSha256, + fileSha256, + fileLength + } = await encryptedStream( + uploadData.media, + options.mediaTypeOverride || mediaType, + { logger, saveOriginalFileIfRequired: requiresOriginalForSomeProcessing, opts: options.options @@ -174,23 +183,21 @@ export const prepareWAMessageMedia = async (message: AnyMediaMessageContent, opt // url safe Base64 encode the SHA256 hash of the body const fileEncSha256B64 = fileEncSha256.toString('base64') const [{ mediaUrl, directPath }] = await Promise.all([ - (async () => { - const result = await options.upload(encWriteStream, { - fileEncSha256B64, - mediaType, - timeoutMs: options.mediaUploadTimeoutMs - }) + (async() => { + const result = await options.upload( + encFilePath, + { fileEncSha256B64, mediaType, timeoutMs: options.mediaUploadTimeoutMs } + ) logger?.debug({ mediaType, cacheableKey }, 'uploaded media') return result })(), (async () => { try { - if (requiresThumbnailComputation) { - const { thumbnail, originalImageDimensions } = await generateThumbnail( - bodyPath!, - mediaType as 'image' | 'video', - options - ) + if(requiresThumbnailComputation) { + const { + thumbnail, + originalImageDimensions + } = await generateThumbnail(originalFilePath!, mediaType as 'image' | 'video', options) uploadData.jpegThumbnail = thumbnail if (!uploadData.width && originalImageDimensions) { uploadData.width = originalImageDimensions.width @@ -201,13 +208,13 @@ export const prepareWAMessageMedia = async (message: AnyMediaMessageContent, opt logger?.debug('generated thumbnail') } - if (requiresDurationComputation) { - uploadData.seconds = await getAudioDuration(bodyPath!) + if(requiresDurationComputation) { + uploadData.seconds = await getAudioDuration(originalFilePath!) logger?.debug('computed audio duration') } - if (requiresWaveformProcessing) { - uploadData.waveform = await getAudioWaveform(bodyPath!, logger) + if(requiresWaveformProcessing) { + uploadData.waveform = await getAudioWaveform(originalFilePath!, logger) logger?.debug('processed waveform') } @@ -218,20 +225,22 @@ export const prepareWAMessageMedia = async (message: AnyMediaMessageContent, opt } catch (error) { logger?.warn({ trace: error.stack }, 'failed to obtain extra info') } - })() - ]).finally(async () => { - encWriteStream.destroy() - // remove tmp files - if (didSaveToTmpPath && bodyPath) { - try { - await fs.access(bodyPath) - await fs.unlink(bodyPath) - logger?.debug('removed tmp file') - } catch (error) { - logger?.warn('failed to remove tmp file') + })(), + ]) + .finally( + async() => { + try { + await fs.unlink(encFilePath) + if(originalFilePath) { + await fs.unlink(originalFilePath) + } + + logger?.debug('removed tmp files') + } catch(error) { + logger?.warn('failed to remove tmp file') + } } - } - }) + ) const obj = WAProto.Message.fromObject({ [`${mediaType}Message`]: MessageTypeProto[mediaType].fromObject({ diff --git a/src/WAUSync/Protocols/USyncStatusProtocol.ts b/src/WAUSync/Protocols/USyncStatusProtocol.ts index 83ff2c0..b50d2e8 100644 --- a/src/WAUSync/Protocols/USyncStatusProtocol.ts +++ b/src/WAUSync/Protocols/USyncStatusProtocol.ts @@ -23,7 +23,7 @@ export class USyncStatusProtocol implements USyncQueryProtocol { parser(node: BinaryNode): StatusData | undefined { if (node.tag === 'status') { assertNodeErrorFree(node) - let status: string | null = node?.content!.toString() + let status: string | null = node?.content?.toString() ?? null const setAt = new Date(+(node?.attrs.t || 0) * 1000) if (!status) { if (+node.attrs?.code === 401) { diff --git a/yarn.lock b/yarn.lock index 6aaf445..0415e77 100644 --- a/yarn.lock +++ b/yarn.lock @@ -101,11 +101,21 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54" integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + "@babel/helper-validator-identifier@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + "@babel/helper-validator-option@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz#97d1d684448228b30b506d90cace495d6f492729" @@ -136,6 +146,13 @@ dependencies: "@babel/types" "^7.25.8" +"@babel/parser@^7.20.15": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.2.tgz#577518bedb17a2ce4212afd052e01f7df0941127" + integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== + dependencies: + "@babel/types" "^7.27.1" + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -286,6 +303,14 @@ "@babel/helper-validator-identifier" "^7.25.7" to-fast-properties "^2.0.0" +"@babel/types@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.1.tgz#9defc53c16fc899e46941fc6901a9eea1c9d8560" + integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -904,6 +929,13 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jsdoc/salty@^0.2.1": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@jsdoc/salty/-/salty-0.2.9.tgz#4d8c147f7ca011532681ce86352a77a0178f1dec" + integrity sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw== + dependencies: + lodash "^4.17.21" + "@keyv/serialize@*": version "1.0.1" resolved "https://registry.yarnpkg.com/@keyv/serialize/-/serialize-1.0.1.tgz#8dae240d5fe11c589e38b73a2db238dcf26a33cf" @@ -1273,11 +1305,29 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" +"@types/linkify-it@^5": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" + integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== + "@types/long@^4.0.0": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/markdown-it@^14.1.1": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" + integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== + dependencies: + "@types/linkify-it" "^5" + "@types/mdurl" "^2" + +"@types/mdurl@^2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" + integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== + "@types/minimist@^1.2.0": version "1.2.5" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" @@ -1842,6 +1892,11 @@ bl@^5.0.0: inherits "^2.0.4" readable-stream "^3.4.0" +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + bmp-js@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" @@ -2028,6 +2083,13 @@ caniuse-lite@^1.0.30001663: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz#98e214455329f54bf7a4d70b49c9794f0fbedbed" integrity sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw== +catharsis@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" + integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== + dependencies: + lodash "^4.17.15" + centra@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/centra/-/centra-2.7.0.tgz#4c8312a58436e8a718302011561db7e6a2b0ec18" @@ -2955,7 +3017,7 @@ escape-string-regexp@^5.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== -escodegen@^1.14.3: +escodegen@^1.13.0, escodegen@^1.14.3: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== @@ -3040,7 +3102,7 @@ eslint@^8.0.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: +espree@^9.0.0, espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -3532,6 +3594,17 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-dirs@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" @@ -3619,7 +3692,7 @@ graceful-fs@4.2.10: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -4727,11 +4800,39 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +js2xmlparser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" + integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== + dependencies: + xmlcreate "^2.0.4" + jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== +jsdoc@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.4.tgz#86565a9e39cc723a3640465b3fb189a22d1206ca" + integrity sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw== + dependencies: + "@babel/parser" "^7.20.15" + "@jsdoc/salty" "^0.2.1" + "@types/markdown-it" "^14.1.1" + bluebird "^3.7.2" + catharsis "^0.9.0" + escape-string-regexp "^2.0.0" + js2xmlparser "^4.0.2" + klaw "^3.0.0" + markdown-it "^14.1.0" + markdown-it-anchor "^8.6.7" + marked "^4.0.10" + mkdirp "^1.0.4" + requizzle "^0.2.3" + strip-json-comments "^3.1.0" + underscore "~1.13.2" + jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -4843,6 +4944,13 @@ kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" + integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== + dependencies: + graceful-fs "^4.1.9" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -5085,6 +5193,11 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== +markdown-it-anchor@^8.6.7: + version "8.6.7" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" + integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== + markdown-it@^14.1.0: version "14.1.0" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" @@ -5097,6 +5210,11 @@ markdown-it@^14.1.0: punycode.js "^2.3.1" uc.micro "^2.1.0" +marked@^4.0.10: + version "4.3.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== + mdurl@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" @@ -5198,6 +5316,13 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^9.0.4, minimatch@^9.0.5: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" @@ -5231,6 +5356,11 @@ mkdirp@^0.5.1: dependencies: minimist "^1.2.6" +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -5919,6 +6049,22 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== +protobufjs-cli@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.1.3.tgz#c58b8566784f0fa1aff11e8d875a31de999637fe" + integrity sha512-MqD10lqF+FMsOayFiNOdOGNlXc4iKDCf0ZQPkPR+gizYh9gqUeGTWulABUCdI+N67w5RfJ6xhgX4J8pa8qmMXQ== + dependencies: + chalk "^4.0.0" + escodegen "^1.13.0" + espree "^9.0.0" + estraverse "^5.1.0" + glob "^8.0.0" + jsdoc "^4.0.0" + minimist "^1.2.0" + semver "^7.1.2" + tmp "^0.2.1" + uglify-js "^3.7.7" + protobufjs@6.8.8: version "6.8.8" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" @@ -6232,6 +6378,13 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== +requizzle@^0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.4.tgz#319eb658b28c370f0c20f968fa8ceab98c13d27c" + integrity sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw== + dependencies: + lodash "^4.17.21" + resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -6414,6 +6567,11 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@^7.1.2: + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + set-function-length@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" @@ -6765,7 +6923,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -6964,6 +7122,11 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -7197,7 +7360,7 @@ uc.micro@^2.0.0, uc.micro@^2.1.0: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== -uglify-js@^3.1.4: +uglify-js@^3.1.4, uglify-js@^3.7.7: version "3.19.3" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== @@ -7212,6 +7375,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +underscore@~1.13.2: + version "1.13.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.7.tgz#970e33963af9a7dda228f17ebe8399e5fbe63a10" + integrity sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g== + undici-types@~6.19.2: version "6.19.8" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" @@ -7577,6 +7745,11 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +xmlcreate@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" + integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== + xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"