diff --git a/README.md b/README.md index c8f787c2..d87a4f39 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,11 @@ # waSocket -[![Go Reference](https://pkg.go.dev/badge/github.com/techwiz37/waSocket.svg)](https://pkg.go.dev/github.com/techwiz37/waSocket) +[![Go Reference](https://pkg.go.dev/badge/github.com/techwiz37/waSocket/.svg)](https://pkg.go.dev/github.com/techwiz37/waSocket/) +> [!NOTE] +> This is just a fork of whatsmeow waSocket is a Go library for the WhatsApp web multidevice API. -This is a fork that use a workaround for slow groupm essage, and some unmerged PR +This is a fork that use a workaround for slow group message, and some unmerged PR + ## Discussion Whatsapp Group: https://chat.whatsapp.com/BDI3NMjO7vW7RlOqgdxtmw @@ -14,8 +17,8 @@ discussions. ## Usage -The [godoc](https://pkg.go.dev/github.com/techwiz37/waSocket) includes docs for all methods and event types. -There's also a [simple example](https://pkg.go.dev/github.com/techwiz37/waSocket#example-package) at the top. +The [godoc](https://pkg.go.dev/github.com/techwiz37/waSocket/) includes docs for all methods and event types. +There's also a [simple example](https://pkg.go.dev/github.com/techwiz37/waSocket/#example-package) at the top. ## Features Most core features are already present: diff --git a/appstate.go b/appstate.go index 2d8e5a2c..6796a466 100644 --- a/appstate.go +++ b/appstate.go @@ -24,19 +24,19 @@ import ( // FetchAppState fetches updates to the given type of app state. If fullSync is true, the current // cached state will be removed and all app state patches will be re-fetched from the server. -func (cli *Client) FetchAppState(name appstate.WAPatchName, fullSync, onlyIfNotSynced bool) error { +func (cli *Client) FetchAppState(ctx context.Context, name appstate.WAPatchName, fullSync, onlyIfNotSynced bool) error { if cli == nil { return ErrClientIsNil } cli.appStateSyncLock.Lock() defer cli.appStateSyncLock.Unlock() if fullSync { - err := cli.Store.AppState.DeleteAppStateVersion(string(name)) + err := cli.Store.AppState.DeleteAppStateVersion(ctx, string(name)) if err != nil { return fmt.Errorf("failed to reset app state %s version: %w", name, err) } } - version, hash, err := cli.Store.AppState.GetAppStateVersion(string(name)) + version, hash, err := cli.Store.AppState.GetAppStateVersion(ctx, string(name)) if err != nil { return fmt.Errorf("failed to get app state %s version: %w", name, err) } @@ -51,17 +51,17 @@ func (cli *Client) FetchAppState(name appstate.WAPatchName, fullSync, onlyIfNotS hasMore := true wantSnapshot := fullSync for hasMore { - patches, err := cli.fetchAppStatePatches(name, state.Version, wantSnapshot) + patches, err := cli.fetchAppStatePatches(ctx, name, state.Version, wantSnapshot) wantSnapshot = false if err != nil { return fmt.Errorf("failed to fetch app state %s patches: %w", name, err) } hasMore = patches.HasMorePatches - mutations, newState, err := cli.appStateProc.DecodePatches(patches, state, true) + mutations, newState, err := cli.appStateProc.DecodePatches(ctx, patches, state, true) if err != nil { if errors.Is(err, appstate.ErrKeyNotFound) { - go cli.requestMissingAppStateKeys(context.TODO(), patches) + go cli.requestMissingAppStateKeys(context.WithoutCancel(ctx), patches) } return fmt.Errorf("failed to decode app state %s patches: %w", name, err) } @@ -71,14 +71,14 @@ func (cli *Client) FetchAppState(name appstate.WAPatchName, fullSync, onlyIfNotS var contacts []store.ContactEntry mutations, contacts = cli.filterContacts(mutations) cli.Log.Debugf("Mass inserting app state snapshot with %d contacts into the store", len(contacts)) - err = cli.Store.Contacts.PutAllContactNames(contacts) + err = cli.Store.Contacts.PutAllContactNames(ctx, contacts) if err != nil { // This is a fairly serious failure, so just abort the whole thing return fmt.Errorf("failed to update contact store with data from snapshot: %v", err) } } for _, mutation := range mutations { - cli.dispatchAppState(mutation, fullSync, cli.EmitAppStateEventsOnFullSync) + cli.dispatchAppState(ctx, mutation, fullSync, cli.EmitAppStateEventsOnFullSync) } } if fullSync { @@ -109,10 +109,10 @@ func (cli *Client) filterContacts(mutations []appstate.Mutation) ([]appstate.Mut return filteredMutations, contacts } -func (cli *Client) dispatchAppState(mutation appstate.Mutation, fullSync bool, emitOnFullSync bool) { +func (cli *Client) dispatchAppState(ctx context.Context, mutation appstate.Mutation, fullSync bool, emitOnFullSync bool) { dispatchEvts := !fullSync || emitOnFullSync - if (mutation.Action != nil && mutation.Action.ContactAction == nil) && mutation.Operation != waServerSync.SyncdMutation_SET { + if mutation.Operation != waServerSync.SyncdMutation_SET { return } @@ -137,25 +137,25 @@ func (cli *Client) dispatchAppState(mutation appstate.Mutation, fullSync bool, e mutedUntil = time.UnixMilli(act.GetMuteEndTimestamp()) } if cli.Store.ChatSettings != nil { - storeUpdateError = cli.Store.ChatSettings.PutMutedUntil(jid, mutedUntil) + storeUpdateError = cli.Store.ChatSettings.PutMutedUntil(ctx, jid, mutedUntil) } case appstate.IndexPin: act := mutation.Action.GetPinAction() eventToDispatch = &events.Pin{JID: jid, Timestamp: ts, Action: act, FromFullSync: fullSync} if cli.Store.ChatSettings != nil { - storeUpdateError = cli.Store.ChatSettings.PutPinned(jid, act.GetPinned()) + storeUpdateError = cli.Store.ChatSettings.PutPinned(ctx, jid, act.GetPinned()) } case appstate.IndexArchive: act := mutation.Action.GetArchiveChatAction() eventToDispatch = &events.Archive{JID: jid, Timestamp: ts, Action: act, FromFullSync: fullSync} if cli.Store.ChatSettings != nil { - storeUpdateError = cli.Store.ChatSettings.PutArchived(jid, act.GetArchived()) + storeUpdateError = cli.Store.ChatSettings.PutArchived(ctx, jid, act.GetArchived()) } case appstate.IndexContact: act := mutation.Action.GetContactAction() eventToDispatch = &events.Contact{JID: jid, Timestamp: ts, Action: act, FromFullSync: fullSync} if cli.Store.Contacts != nil { - storeUpdateError = cli.Store.Contacts.PutContactName(jid, act.GetFirstName(), act.GetFullName()) + storeUpdateError = cli.Store.Contacts.PutContactName(ctx, jid, act.GetFirstName(), act.GetFullName()) } case appstate.IndexClearChat: act := mutation.Action.GetClearChatAction() @@ -209,7 +209,7 @@ func (cli *Client) dispatchAppState(mutation appstate.Mutation, fullSync bool, e FromFullSync: fullSync, } cli.Store.PushName = mutation.Action.GetPushNameSetting().GetName() - err := cli.Store.Save() + err := cli.Store.Save(ctx) if err != nil { cli.Log.Errorf("Failed to save device store after updating push name: %v", err) } @@ -270,11 +270,11 @@ func (cli *Client) dispatchAppState(mutation appstate.Mutation, fullSync bool, e } } -func (cli *Client) downloadExternalAppStateBlob(ref *waServerSync.ExternalBlobReference) ([]byte, error) { - return cli.Download(ref) +func (cli *Client) downloadExternalAppStateBlob(ctx context.Context, ref *waServerSync.ExternalBlobReference) ([]byte, error) { + return cli.Download(ctx, ref) } -func (cli *Client) fetchAppStatePatches(name appstate.WAPatchName, fromVersion uint64, snapshot bool) (*appstate.PatchList, error) { +func (cli *Client) fetchAppStatePatches(ctx context.Context, name appstate.WAPatchName, fromVersion uint64, snapshot bool) (*appstate.PatchList, error) { attrs := waBinary.Attrs{ "name": string(name), "return_snapshot": snapshot, @@ -283,6 +283,7 @@ func (cli *Client) fetchAppStatePatches(name appstate.WAPatchName, fromVersion u attrs["version"] = fromVersion } resp, err := cli.sendIQ(infoQuery{ + Context: ctx, Namespace: "w:sync:app:state", Type: "set", To: types.ServerJID, @@ -297,12 +298,12 @@ func (cli *Client) fetchAppStatePatches(name appstate.WAPatchName, fromVersion u if err != nil { return nil, err } - return appstate.ParsePatchList(resp, cli.downloadExternalAppStateBlob) + return appstate.ParsePatchList(ctx, resp, cli.downloadExternalAppStateBlob) } func (cli *Client) requestMissingAppStateKeys(ctx context.Context, patches *appstate.PatchList) { cli.appStateKeyRequestsLock.Lock() - rawKeyIDs := cli.appStateProc.GetMissingKeyIDs(patches) + rawKeyIDs := cli.appStateProc.GetMissingKeyIDs(ctx, patches) filteredKeyIDs := make([][]byte, 0, len(rawKeyIDs)) now := time.Now() for _, keyID := range rawKeyIDs { @@ -348,17 +349,17 @@ func (cli *Client) requestAppStateKeys(ctx context.Context, rawKeyIDs [][]byte) // // You can use the Build methods in the appstate package to build the parameter for this method, e.g. // -// cli.SendAppState(appstate.BuildMute(targetJID, true, 24 * time.Hour)) -func (cli *Client) SendAppState(patch appstate.PatchInfo) error { +// cli.SendAppState(ctx, appstate.BuildMute(targetJID, true, 24 * time.Hour)) +func (cli *Client) SendAppState(ctx context.Context, patch appstate.PatchInfo) error { if cli == nil { return ErrClientIsNil } - version, hash, err := cli.Store.AppState.GetAppStateVersion(string(patch.Type)) + version, hash, err := cli.Store.AppState.GetAppStateVersion(ctx, string(patch.Type)) if err != nil { return err } // TODO create new key instead of reusing the primary client's keys - latestKeyID, err := cli.Store.AppStateKeys.GetLatestAppStateSyncKeyID() + latestKeyID, err := cli.Store.AppStateKeys.GetLatestAppStateSyncKeyID(ctx) if err != nil { return fmt.Errorf("failed to get latest app state key ID: %w", err) } else if latestKeyID == nil { @@ -367,12 +368,13 @@ func (cli *Client) SendAppState(patch appstate.PatchInfo) error { state := appstate.HashState{Version: version, Hash: hash} - encodedPatch, err := cli.appStateProc.EncodePatch(latestKeyID, state, patch) + encodedPatch, err := cli.appStateProc.EncodePatch(ctx, latestKeyID, state, patch) if err != nil { return err } resp, err := cli.sendIQ(infoQuery{ + Context: ctx, Namespace: "w:sync:app:state", Type: iqSet, To: types.ServerJID, @@ -403,5 +405,5 @@ func (cli *Client) SendAppState(patch appstate.PatchInfo) error { return fmt.Errorf("%w: %s", ErrAppStateUpdate, respCollection.XMLString()) } - return cli.FetchAppState(patch.Type, false, false) + return cli.FetchAppState(ctx, patch.Type, false, false) } diff --git a/appstate/decode.go b/appstate/decode.go index 004d0604..6a30f128 100644 --- a/appstate/decode.go +++ b/appstate/decode.go @@ -8,6 +8,7 @@ package appstate import ( "bytes" + "context" "crypto/sha256" "encoding/json" "fmt" @@ -30,9 +31,9 @@ type PatchList struct { } // DownloadExternalFunc is a function that can download a blob of external app state patches. -type DownloadExternalFunc func(*waServerSync.ExternalBlobReference) ([]byte, error) +type DownloadExternalFunc func(context.Context, *waServerSync.ExternalBlobReference) ([]byte, error) -func parseSnapshotInternal(collection *waBinary.Node, downloadExternal DownloadExternalFunc) (*waServerSync.SyncdSnapshot, error) { +func parseSnapshotInternal(ctx context.Context, collection *waBinary.Node, downloadExternal DownloadExternalFunc) (*waServerSync.SyncdSnapshot, error) { snapshotNode := collection.GetChildByTag("snapshot") rawSnapshot, ok := snapshotNode.Content.([]byte) if snapshotNode.Tag != "snapshot" || !ok { @@ -44,7 +45,7 @@ func parseSnapshotInternal(collection *waBinary.Node, downloadExternal DownloadE return nil, fmt.Errorf("failed to unmarshal snapshot: %w", err) } var rawData []byte - rawData, err = downloadExternal(&snapshot) + rawData, err = downloadExternal(ctx, &snapshot) if err != nil { return nil, fmt.Errorf("failed to download external mutations: %w", err) } @@ -56,7 +57,7 @@ func parseSnapshotInternal(collection *waBinary.Node, downloadExternal DownloadE return &downloaded, nil } -func parsePatchListInternal(collection *waBinary.Node, downloadExternal DownloadExternalFunc) ([]*waServerSync.SyncdPatch, error) { +func parsePatchListInternal(ctx context.Context, collection *waBinary.Node, downloadExternal DownloadExternalFunc) ([]*waServerSync.SyncdPatch, error) { patchesNode := collection.GetChildByTag("patches") patchNodes := patchesNode.GetChildren() patches := make([]*waServerSync.SyncdPatch, 0, len(patchNodes)) @@ -72,7 +73,7 @@ func parsePatchListInternal(collection *waBinary.Node, downloadExternal Download } if patch.GetExternalMutations() != nil && downloadExternal != nil { var rawData []byte - rawData, err = downloadExternal(patch.GetExternalMutations()) + rawData, err = downloadExternal(ctx, patch.GetExternalMutations()) if err != nil { return nil, fmt.Errorf("failed to download external mutations: %w", err) } @@ -91,14 +92,14 @@ func parsePatchListInternal(collection *waBinary.Node, downloadExternal Download } // ParsePatchList will decode an XML node containing app state patches, including downloading any external blobs. -func ParsePatchList(node *waBinary.Node, downloadExternal DownloadExternalFunc) (*PatchList, error) { +func ParsePatchList(ctx context.Context, node *waBinary.Node, downloadExternal DownloadExternalFunc) (*PatchList, error) { collection := node.GetChildByTag("sync", "collection") ag := collection.AttrGetter() - snapshot, err := parseSnapshotInternal(&collection, downloadExternal) + snapshot, err := parseSnapshotInternal(ctx, &collection, downloadExternal) if err != nil { return nil, err } - patches, err := parsePatchListInternal(&collection, downloadExternal) + patches, err := parsePatchListInternal(ctx, &collection, downloadExternal) if err != nil { return nil, err } @@ -117,10 +118,10 @@ type patchOutput struct { Mutations []Mutation } -func (proc *Processor) decodeMutations(mutations []*waServerSync.SyncdMutation, out *patchOutput, validateMACs bool) error { +func (proc *Processor) decodeMutations(ctx context.Context, mutations []*waServerSync.SyncdMutation, out *patchOutput, validateMACs bool) error { for i, mutation := range mutations { keyID := mutation.GetRecord().GetKeyID().GetID() - keys, err := proc.getAppStateKey(keyID) + keys, err := proc.getAppStateKey(ctx, keyID) if err != nil { return fmt.Errorf("failed to get key %X to decode mutation: %w", keyID, err) } @@ -173,23 +174,23 @@ func (proc *Processor) decodeMutations(mutations []*waServerSync.SyncdMutation, return nil } -func (proc *Processor) storeMACs(name WAPatchName, currentState HashState, out *patchOutput) { - err := proc.Store.AppState.PutAppStateVersion(string(name), currentState.Version, currentState.Hash) +func (proc *Processor) storeMACs(ctx context.Context, name WAPatchName, currentState HashState, out *patchOutput) { + err := proc.Store.AppState.PutAppStateVersion(ctx, string(name), currentState.Version, currentState.Hash) if err != nil { proc.Log.Errorf("Failed to update app state version in the database: %v", err) } - err = proc.Store.AppState.DeleteAppStateMutationMACs(string(name), out.RemovedMACs) + err = proc.Store.AppState.DeleteAppStateMutationMACs(ctx, string(name), out.RemovedMACs) if err != nil { proc.Log.Errorf("Failed to remove deleted mutation MACs from the database: %v", err) } - err = proc.Store.AppState.PutAppStateMutationMACs(string(name), currentState.Version, out.AddedMACs) + err = proc.Store.AppState.PutAppStateMutationMACs(ctx, string(name), currentState.Version, out.AddedMACs) if err != nil { proc.Log.Errorf("Failed to insert added mutation MACs to the database: %v", err) } } -func (proc *Processor) validateSnapshotMAC(name WAPatchName, currentState HashState, keyID, expectedSnapshotMAC []byte) (keys ExpandedAppStateKeys, err error) { - keys, err = proc.getAppStateKey(keyID) +func (proc *Processor) validateSnapshotMAC(ctx context.Context, name WAPatchName, currentState HashState, keyID, expectedSnapshotMAC []byte) (keys ExpandedAppStateKeys, err error) { + keys, err = proc.getAppStateKey(ctx, keyID) if err != nil { err = fmt.Errorf("failed to get key %X to verify patch v%d MACs: %w", keyID, currentState.Version, err) return @@ -201,7 +202,7 @@ func (proc *Processor) validateSnapshotMAC(name WAPatchName, currentState HashSt return } -func (proc *Processor) decodeSnapshot(name WAPatchName, ss *waServerSync.SyncdSnapshot, initialState HashState, validateMACs bool, newMutationsInput []Mutation) (newMutations []Mutation, currentState HashState, err error) { +func (proc *Processor) decodeSnapshot(ctx context.Context, name WAPatchName, ss *waServerSync.SyncdSnapshot, initialState HashState, validateMACs bool, newMutationsInput []Mutation) (newMutations []Mutation, currentState HashState, err error) { currentState = initialState currentState.Version = ss.GetVersion().GetVersion() @@ -226,7 +227,7 @@ func (proc *Processor) decodeSnapshot(name WAPatchName, ss *waServerSync.SyncdSn } if validateMACs { - _, err = proc.validateSnapshotMAC(name, currentState, ss.GetKeyID().GetID(), ss.GetMac()) + _, err = proc.validateSnapshotMAC(ctx, name, currentState, ss.GetKeyID().GetID(), ss.GetMac()) if err != nil { return } @@ -234,18 +235,18 @@ func (proc *Processor) decodeSnapshot(name WAPatchName, ss *waServerSync.SyncdSn var out patchOutput out.Mutations = newMutationsInput - err = proc.decodeMutations(encryptedMutations, &out, validateMACs) + err = proc.decodeMutations(ctx, encryptedMutations, &out, validateMACs) if err != nil { err = fmt.Errorf("failed to decode snapshot of v%d: %w", currentState.Version, err) return } - proc.storeMACs(name, currentState, &out) + proc.storeMACs(ctx, name, currentState, &out) newMutations = out.Mutations return } // DecodePatches will decode all the patches in a PatchList into a list of app state mutations. -func (proc *Processor) DecodePatches(list *PatchList, initialState HashState, validateMACs bool) (newMutations []Mutation, currentState HashState, err error) { +func (proc *Processor) DecodePatches(ctx context.Context, list *PatchList, initialState HashState, validateMACs bool) (newMutations []Mutation, currentState HashState, err error) { currentState = initialState var expectedLength int if list.Snapshot != nil { @@ -257,7 +258,7 @@ func (proc *Processor) DecodePatches(list *PatchList, initialState HashState, va newMutations = make([]Mutation, 0, expectedLength) if list.Snapshot != nil { - newMutations, currentState, err = proc.decodeSnapshot(list.Name, list.Snapshot, currentState, validateMACs, newMutations) + newMutations, currentState, err = proc.decodeSnapshot(ctx, list.Name, list.Snapshot, currentState, validateMACs, newMutations) if err != nil { return } @@ -275,7 +276,7 @@ func (proc *Processor) DecodePatches(list *PatchList, initialState HashState, va } } // Previous value not found in current patch, look in the database - return proc.Store.AppState.GetAppStateMutationMAC(string(list.Name), indexMAC) + return proc.Store.AppState.GetAppStateMutationMAC(ctx, string(list.Name), indexMAC) }) if len(warn) > 0 { proc.Log.Warnf("Warnings while updating hash for %s: %+v", list.Name, warn) @@ -287,7 +288,7 @@ func (proc *Processor) DecodePatches(list *PatchList, initialState HashState, va if validateMACs { var keys ExpandedAppStateKeys - keys, err = proc.validateSnapshotMAC(list.Name, currentState, patch.GetKeyID().GetID(), patch.GetSnapshotMac()) + keys, err = proc.validateSnapshotMAC(ctx, list.Name, currentState, patch.GetKeyID().GetID(), patch.GetSnapshotMac()) if err != nil { return } @@ -300,11 +301,11 @@ func (proc *Processor) DecodePatches(list *PatchList, initialState HashState, va var out patchOutput out.Mutations = newMutations - err = proc.decodeMutations(patch.GetMutations(), &out, validateMACs) + err = proc.decodeMutations(ctx, patch.GetMutations(), &out, validateMACs) if err != nil { return } - proc.storeMACs(list.Name, currentState, &out) + proc.storeMACs(ctx, list.Name, currentState, &out) newMutations = out.Mutations } return diff --git a/appstate/encode.go b/appstate/encode.go index ec783150..043c3e46 100644 --- a/appstate/encode.go +++ b/appstate/encode.go @@ -1,6 +1,7 @@ package appstate import ( + "context" "crypto/sha256" "encoding/json" "fmt" @@ -32,8 +33,6 @@ type PatchInfo struct { Timestamp time.Time // Type is the app state type being mutated. Type WAPatchName - // Operation is SET / REMOVE - Operation waServerSync.SyncdMutation_SyncdOperation // Mutations contains the individual mutations to apply to the app state in this patch. Mutations []MutationInfo } @@ -48,8 +47,7 @@ func BuildMute(target types.JID, mute bool, muteDuration time.Duration) PatchInf } return PatchInfo{ - Type: WAPatchRegularHigh, - Operation: waServerSync.SyncdMutation_SET, + Type: WAPatchRegularHigh, Mutations: []MutationInfo{{ Index: []string{IndexMute, target.String()}, Version: 2, @@ -63,37 +61,6 @@ func BuildMute(target types.JID, mute bool, muteDuration time.Duration) PatchInf } } -func BuildAddContact(target types.JID, fullName string) PatchInfo { - return PatchInfo{ - Type: WAPatchCriticalUnblockLow, - Operation: waServerSync.SyncdMutation_SET, - Mutations: []MutationInfo{{ - Index: []string{IndexContact, target.String()}, - Version: 2, - Value: &waSyncAction.SyncActionValue{ - ContactAction: &waSyncAction.ContactAction{ - FullName: &fullName, - SaveOnPrimaryAddressbook: proto.Bool(true), - }, - }, - }}, - } -} - -func BuildRemoveContact(target types.JID) PatchInfo { - return PatchInfo{ - Type: WAPatchCriticalUnblockLow, - Operation: waServerSync.SyncdMutation_REMOVE, - Mutations: []MutationInfo{{ - Index: []string{IndexContact, target.String()}, - Version: 2, - Value: &waSyncAction.SyncActionValue{ - ContactAction: &waSyncAction.ContactAction{}, - }, - }}, - } -} - func newPinMutationInfo(target types.JID, pin bool) MutationInfo { return MutationInfo{ Index: []string{IndexPin, target.String()}, @@ -109,8 +76,7 @@ func newPinMutationInfo(target types.JID, pin bool) MutationInfo { // BuildPin builds an app state patch for pinning or unpinning a chat. func BuildPin(target types.JID, pin bool) PatchInfo { return PatchInfo{ - Type: WAPatchRegularLow, - Operation: waServerSync.SyncdMutation_SET, + Type: WAPatchRegularLow, Mutations: []MutationInfo{ newPinMutationInfo(target, pin), }, @@ -154,7 +120,6 @@ func BuildArchive(target types.JID, archive bool, lastMessageTimestamp time.Time result := PatchInfo{ Type: WAPatchRegularLow, - Operation: waServerSync.SyncdMutation_SET, Mutations: mutations, } @@ -176,8 +141,7 @@ func newLabelChatMutation(target types.JID, labelID string, labeled bool) Mutati // BuildLabelChat builds an app state patch for labeling or un(labeling) a chat. func BuildLabelChat(target types.JID, labelID string, labeled bool) PatchInfo { return PatchInfo{ - Type: WAPatchRegular, - Operation: waServerSync.SyncdMutation_SET, + Type: WAPatchRegular, Mutations: []MutationInfo{ newLabelChatMutation(target, labelID, labeled), }, @@ -199,8 +163,7 @@ func newLabelMessageMutation(target types.JID, labelID, messageID string, labele // BuildLabelMessage builds an app state patch for labeling or un(labeling) a message. func BuildLabelMessage(target types.JID, labelID, messageID string, labeled bool) PatchInfo { return PatchInfo{ - Type: WAPatchRegular, - Operation: waServerSync.SyncdMutation_SET, + Type: WAPatchRegular, Mutations: []MutationInfo{ newLabelMessageMutation(target, labelID, messageID, labeled), }, @@ -224,8 +187,7 @@ func newLabelEditMutation(labelID string, labelName string, labelColor int32, de // BuildLabelEdit builds an app state patch for editing a label. func BuildLabelEdit(labelID string, labelName string, labelColor int32, deleted bool) PatchInfo { return PatchInfo{ - Type: WAPatchRegular, - Operation: waServerSync.SyncdMutation_SET, + Type: WAPatchRegular, Mutations: []MutationInfo{ newLabelEditMutation(labelID, labelName, labelColor, deleted), }, @@ -247,8 +209,7 @@ func newSettingPushNameMutation(pushName string) MutationInfo { // BuildSettingPushName builds an app state patch for setting the push name. func BuildSettingPushName(pushName string) PatchInfo { return PatchInfo{ - Type: WAPatchCriticalBlock, - Operation: waServerSync.SyncdMutation_SET, + Type: WAPatchCriticalBlock, Mutations: []MutationInfo{ newSettingPushNameMutation(pushName), }, @@ -278,16 +239,15 @@ func BuildStar(target, sender types.JID, messageID types.MessageID, fromMe, star senderJID = "0" } return PatchInfo{ - Type: WAPatchRegularHigh, - Operation: waServerSync.SyncdMutation_SET, + Type: WAPatchRegularHigh, Mutations: []MutationInfo{ newStarMutation(targetJID, senderJID, messageID, isFromMe, starred), }, } } -func (proc *Processor) EncodePatch(keyID []byte, state HashState, patchInfo PatchInfo) ([]byte, error) { - keys, err := proc.getAppStateKey(keyID) +func (proc *Processor) EncodePatch(ctx context.Context, keyID []byte, state HashState, patchInfo PatchInfo) ([]byte, error) { + keys, err := proc.getAppStateKey(ctx, keyID) if err != nil { return nil, fmt.Errorf("failed to get app state key details with key ID %x: %w", keyID, err) } @@ -322,11 +282,11 @@ func (proc *Processor) EncodePatch(keyID []byte, state HashState, patchInfo Patc return nil, fmt.Errorf("failed to encrypt mutation: %w", err) } - valueMac := generateContentMAC(patchInfo.Operation, encryptedContent, keyID, keys.ValueMAC) + valueMac := generateContentMAC(waServerSync.SyncdMutation_SET, encryptedContent, keyID, keys.ValueMAC) indexMac := concatAndHMAC(sha256.New, keys.Index, indexBytes) mutations = append(mutations, &waServerSync.SyncdMutation{ - Operation: patchInfo.Operation.Enum(), + Operation: waServerSync.SyncdMutation_SET.Enum(), Record: &waServerSync.SyncdRecord{ Index: &waServerSync.SyncdIndex{Blob: indexMac}, Value: &waServerSync.SyncdValue{Blob: append(encryptedContent, valueMac...)}, @@ -336,7 +296,7 @@ func (proc *Processor) EncodePatch(keyID []byte, state HashState, patchInfo Patc } warn, err := state.updateHash(mutations, func(indexMAC []byte, _ int) ([]byte, error) { - return proc.Store.AppState.GetAppStateMutationMAC(string(patchInfo.Type), indexMAC) + return proc.Store.AppState.GetAppStateMutationMAC(ctx, string(patchInfo.Type), indexMAC) }) if len(warn) > 0 { proc.Log.Warnf("Warnings while updating hash for %s (sending new app state): %+v", patchInfo.Type, warn) diff --git a/appstate/keys.go b/appstate/keys.go index 2ea758d8..7e6e18c2 100644 --- a/appstate/keys.go +++ b/appstate/keys.go @@ -8,6 +8,7 @@ package appstate import ( + "context" "encoding/base64" "sync" @@ -82,7 +83,7 @@ func expandAppStateKeys(keyData []byte) (keys ExpandedAppStateKeys) { return ExpandedAppStateKeys{appStateKeyExpanded[0:32], appStateKeyExpanded[32:64], appStateKeyExpanded[64:96], appStateKeyExpanded[96:128], appStateKeyExpanded[128:160]} } -func (proc *Processor) getAppStateKey(keyID []byte) (keys ExpandedAppStateKeys, err error) { +func (proc *Processor) getAppStateKey(ctx context.Context, keyID []byte) (keys ExpandedAppStateKeys, err error) { keyCacheID := base64.RawStdEncoding.EncodeToString(keyID) var ok bool @@ -92,7 +93,7 @@ func (proc *Processor) getAppStateKey(keyID []byte) (keys ExpandedAppStateKeys, keys, ok = proc.keyCache[keyCacheID] if !ok { var keyData *store.AppStateSyncKey - keyData, err = proc.Store.AppStateKeys.GetAppStateSyncKey(keyID) + keyData, err = proc.Store.AppStateKeys.GetAppStateSyncKey(ctx, keyID) if keyData != nil { keys = expandAppStateKeys(keyData.Data) proc.keyCache[keyCacheID] = keys @@ -103,7 +104,7 @@ func (proc *Processor) getAppStateKey(keyID []byte) (keys ExpandedAppStateKeys, return } -func (proc *Processor) GetMissingKeyIDs(pl *PatchList) [][]byte { +func (proc *Processor) GetMissingKeyIDs(ctx context.Context, pl *PatchList) [][]byte { cache := make(map[string]bool) var missingKeys [][]byte checkMissing := func(keyID []byte) { @@ -113,7 +114,7 @@ func (proc *Processor) GetMissingKeyIDs(pl *PatchList) [][]byte { stringKeyID := base64.RawStdEncoding.EncodeToString(keyID) _, alreadyAdded := cache[stringKeyID] if !alreadyAdded { - keyData, err := proc.Store.AppStateKeys.GetAppStateSyncKey(keyID) + keyData, err := proc.Store.AppStateKeys.GetAppStateSyncKey(ctx, keyID) if err != nil { proc.Log.Warnf("Error fetching key %X while checking if it's missing: %v", keyID, err) } diff --git a/armadillomessage.go b/armadillomessage.go index fb863da1..a963fbb0 100644 --- a/armadillomessage.go +++ b/armadillomessage.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "fmt" "google.golang.org/protobuf/proto" @@ -19,7 +20,7 @@ import ( "github.com/techwiz37/waSocket/types/events" ) -func (cli *Client) handleDecryptedArmadillo(info *types.MessageInfo, decrypted []byte, retryCount int) bool { +func (cli *Client) handleDecryptedArmadillo(ctx context.Context, info *types.MessageInfo, decrypted []byte, retryCount int) bool { dec, err := decodeArmadillo(decrypted) if err != nil { cli.Log.Warnf("Failed to decode armadillo message from %s: %v", info.SourceString(), err) @@ -32,7 +33,7 @@ func (cli *Client) handleDecryptedArmadillo(info *types.MessageInfo, decrypted [ cli.Log.Warnf("Got sender key distribution message in non-group chat from %s", info.Sender) } else { skdm := dec.Transport.GetProtocol().GetAncillary().GetSkdm() - cli.handleSenderKeyDistributionMessage(info.Chat, info.Sender, skdm.AxolotlSenderKeyDistributionMessage) + cli.handleSenderKeyDistributionMessage(ctx, info.Chat, info.Sender, skdm.AxolotlSenderKeyDistributionMessage) } } if dec.Message != nil { diff --git a/broadcast.go b/broadcast.go index b94a4e6a..0e162ea1 100644 --- a/broadcast.go +++ b/broadcast.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "errors" "fmt" @@ -14,11 +15,11 @@ import ( "github.com/techwiz37/waSocket/types" ) -func (cli *Client) getBroadcastListParticipants(jid types.JID) ([]types.JID, error) { +func (cli *Client) getBroadcastListParticipants(ctx context.Context, jid types.JID) ([]types.JID, error) { var list []types.JID var err error if jid == types.StatusBroadcastJID { - list, err = cli.getStatusBroadcastRecipients() + list, err = cli.getStatusBroadcastRecipients(ctx) } else { return nil, ErrBroadcastListUnsupported } @@ -43,7 +44,7 @@ func (cli *Client) getBroadcastListParticipants(jid types.JID) ([]types.JID, err return list, nil } -func (cli *Client) getStatusBroadcastRecipients() ([]types.JID, error) { +func (cli *Client) getStatusBroadcastRecipients(ctx context.Context) ([]types.JID, error) { statusPrivacyOptions, err := cli.GetStatusPrivacy() if err != nil { return nil, fmt.Errorf("failed to get status privacy: %w", err) @@ -55,7 +56,7 @@ func (cli *Client) getStatusBroadcastRecipients() ([]types.JID, error) { } // Blacklist or all contacts mode. Find all contacts from database, then filter them appropriately. - contacts, err := cli.Store.Contacts.GetAllContacts() + contacts, err := cli.Store.Contacts.GetAllContacts(ctx) if err != nil { return nil, fmt.Errorf("failed to get contact list from db: %w", err) } diff --git a/client.go b/client.go index 1a2642f7..f9b4f1d9 100644 --- a/client.go +++ b/client.go @@ -20,6 +20,7 @@ import ( "time" "github.com/gorilla/websocket" + "go.mau.fi/util/exhttp" "go.mau.fi/util/random" "golang.org/x/net/proxy" @@ -67,13 +68,16 @@ type Client struct { isLoggedIn atomic.Bool expectedDisconnect atomic.Bool EnableAutoReconnect bool + InitialAutoReconnect bool LastSuccessfulConnect time.Time AutoReconnectErrors int // AutoReconnectHook is called when auto-reconnection fails. If the function returns false, // the client will not attempt to reconnect. The number of retries can be read from AutoReconnectErrors. AutoReconnectHook func(error) bool // If SynchronousAck is set, acks for messages will only be sent after all event handlers return. - SynchronousAck bool + SynchronousAck bool + EnableDecryptedEventBuffer bool + lastDecryptedBufferClear time.Time DisableLoginAutoReconnect bool @@ -421,6 +425,17 @@ func (cli *Client) SetWSDialer(dialer *websocket.Dialer) { // Connect connects the client to the WhatsApp web websocket. After connection, it will either // authenticate if there's data in the device store, or emit a QREvent to set up a new link. func (cli *Client) Connect() error { + err := cli.connect() + if exhttp.IsNetworkError(err) && cli.InitialAutoReconnect && cli.EnableAutoReconnect { + cli.Log.Errorf("Initial connection failed but reconnecting in background") + go cli.dispatchEvent(&events.Disconnected{}) + go cli.autoReconnect() + return nil + } + return err +} + +func (cli *Client) connect() error { if cli == nil { return ErrClientIsNil } @@ -519,7 +534,7 @@ func (cli *Client) autoReconnect() { cli.Log.Debugf("Automatically reconnecting after %v", autoReconnectDelay) cli.AutoReconnectErrors++ time.Sleep(autoReconnectDelay) - err := cli.Connect() + err := cli.connect() if errors.Is(err, ErrAlreadyConnected) { cli.Log.Debugf("Connect() said we're already connected after autoreconnect sleep") return @@ -577,7 +592,7 @@ func (cli *Client) unlockedDisconnect() { // // Note that this will not emit any events. The LoggedOut event is only used for external logouts // (triggered by the user from the main device or by WhatsApp servers). -func (cli *Client) Logout() error { +func (cli *Client) Logout(ctx context.Context) error { if cli == nil { return ErrClientIsNil } else if cli.MessengerConfig != nil { @@ -603,7 +618,7 @@ func (cli *Client) Logout() error { return fmt.Errorf("error sending logout request: %w", err) } cli.Disconnect() - err = cli.Store.Delete() + err = cli.Store.Delete(ctx) if err != nil { return fmt.Errorf("error deleting data from store: %w", err) } diff --git a/client_test.go b/client_test.go index cdd86689..60798a63 100644 --- a/client_test.go +++ b/client_test.go @@ -32,12 +32,13 @@ func Example() { // |------------------------------------------------------------------------------------------------------| dbLog := waLog.Stdout("Database", "DEBUG", true) - container, err := sqlstore.New("sqlite3", "file:examplestore.db?_foreign_keys=on", dbLog) + ctx := context.Background() + container, err := sqlstore.New(ctx, "sqlite3", "file:examplestore.db?_foreign_keys=on", dbLog) if err != nil { panic(err) } // If you want multiple sessions, remember their JIDs and use .GetDevice(jid) or .GetAllDevices() instead. - deviceStore, err := container.GetFirstDevice() + deviceStore, err := container.GetFirstDevice(ctx) if err != nil { panic(err) } diff --git a/connectionevents.go b/connectionevents.go index 60625e07..01d0d6ea 100644 --- a/connectionevents.go +++ b/connectionevents.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "time" waBinary "github.com/techwiz37/waSocket/binary" @@ -16,6 +17,7 @@ import ( ) func (cli *Client) handleStreamError(node *waBinary.Node) { + ctx := context.TODO() cli.isLoggedIn.Store(false) cli.clearResponseWaiters(node) code, _ := node.Attrs["code"].(string) @@ -31,7 +33,7 @@ func (cli *Client) handleStreamError(node *waBinary.Node) { cli.Log.Infof("Got 515 code, reconnecting...") go func() { cli.Disconnect() - err := cli.Connect() + err := cli.connect() if err != nil { cli.Log.Errorf("Failed to reconnect after 515 code: %v", err) } @@ -40,7 +42,7 @@ func (cli *Client) handleStreamError(node *waBinary.Node) { cli.expectDisconnect() cli.Log.Infof("Got device removed stream error, sending LoggedOut event and deleting session") go cli.dispatchEvent(&events.LoggedOut{OnConnect: false, Reason: events.ConnectFailureLoggedOut}) - err := cli.Store.Delete() + err := cli.Store.Delete(ctx) if err != nil { cli.Log.Warnf("Failed to delete store after device_removed error: %v", err) } @@ -92,6 +94,7 @@ func (cli *Client) handleIB(node *waBinary.Node) { } func (cli *Client) handleConnectFailure(node *waBinary.Node) { + ctx := context.TODO() ag := node.AttrGetter() reason := events.ConnectFailureReason(ag.Int("reason")) message := ag.OptionalString("message") @@ -118,7 +121,7 @@ func (cli *Client) handleConnectFailure(node *waBinary.Node) { if reason.IsLoggedOut() { cli.Log.Infof("Got %s connect failure, sending LoggedOut event and deleting session", reason) go cli.dispatchEvent(&events.LoggedOut{OnConnect: true, Reason: reason}) - err := cli.Store.Delete() + err := cli.Store.Delete(ctx) if err != nil { cli.Log.Warnf("Failed to delete store after %d failure: %v", int(reason), err) } @@ -148,33 +151,36 @@ func (cli *Client) handleConnectFailure(node *waBinary.Node) { } func (cli *Client) handleConnectSuccess(node *waBinary.Node) { + ctx := context.TODO() cli.Log.Infof("Successfully authenticated") cli.LastSuccessfulConnect = time.Now() cli.AutoReconnectErrors = 0 cli.isLoggedIn.Store(true) - if cli.Store.LID.IsEmpty() { - cli.Store.LID = node.AttrGetter().JID("lid") - err := cli.Store.Save() + nodeLID := node.AttrGetter().JID("lid") + if cli.Store.LID.IsEmpty() && !nodeLID.IsEmpty() { + cli.Store.LID = nodeLID + err := cli.Store.Save(ctx) if err != nil { cli.Log.Warnf("Failed to save device after updating LID: %v", err) } else { cli.Log.Infof("Updated LID to %s", cli.Store.LID) } + cli.StoreLIDPNMapping(ctx, cli.Store.GetLID(), cli.Store.GetJID()) } go func() { - if dbCount, err := cli.Store.PreKeys.UploadedPreKeyCount(); err != nil { + if dbCount, err := cli.Store.PreKeys.UploadedPreKeyCount(ctx); err != nil { cli.Log.Errorf("Failed to get number of prekeys in database: %v", err) - } else if serverCount, err := cli.getServerPreKeyCount(); err != nil { + } else if serverCount, err := cli.getServerPreKeyCount(ctx); err != nil { cli.Log.Warnf("Failed to get number of prekeys on server: %v", err) } else { cli.Log.Debugf("Database has %d prekeys, server says we have %d", dbCount, serverCount) if serverCount < MinPreKeyCount || dbCount < MinPreKeyCount { - cli.uploadPreKeys() - sc, _ := cli.getServerPreKeyCount() + cli.uploadPreKeys(ctx) + sc, _ := cli.getServerPreKeyCount(ctx) cli.Log.Debugf("Prekey count after upload: %d", sc) } } - err := cli.SetPassive(false) + err := cli.SetPassive(ctx, false) if err != nil { cli.Log.Warnf("Failed to send post-connect passive IQ: %v", err) } @@ -187,7 +193,7 @@ func (cli *Client) handleConnectSuccess(node *waBinary.Node) { // // This seems to mostly affect whether the device receives certain events. // By default, waSocket will automatically do SetPassive(false) after connecting. -func (cli *Client) SetPassive(passive bool) error { +func (cli *Client) SetPassive(ctx context.Context, passive bool) error { tag := "active" if passive { tag = "passive" @@ -196,6 +202,7 @@ func (cli *Client) SetPassive(passive bool) error { Namespace: "passive", Type: "set", To: types.ServerJID, + Context: ctx, Content: []waBinary.Node{{Tag: tag}}, }) if err != nil { diff --git a/download-to-file.go b/download-to-file.go index ebfff2ef..955cc999 100644 --- a/download-to-file.go +++ b/download-to-file.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "crypto/hmac" "crypto/sha256" "encoding/base64" @@ -37,7 +38,7 @@ type File interface { // DownloadToFile downloads the attachment from the given protobuf message. // // This is otherwise identical to [Download], but writes the attachment to a file instead of returning it as a byte slice. -func (cli *Client) DownloadToFile(msg DownloadableMessage, file File) error { +func (cli *Client) DownloadToFile(ctx context.Context, msg DownloadableMessage, file File) error { if cli == nil { return ErrClientIsNil } @@ -53,9 +54,9 @@ func (cli *Client) DownloadToFile(msg DownloadableMessage, file File) error { isWebWhatsappNetURL = strings.HasPrefix(url, "https://web.whatsapp.net") } if len(url) > 0 && !isWebWhatsappNetURL { - return cli.downloadAndDecryptToFile(url, msg.GetMediaKey(), mediaType, getSize(msg), msg.GetFileEncSHA256(), msg.GetFileSHA256(), file) + return cli.downloadAndDecryptToFile(ctx, url, msg.GetMediaKey(), mediaType, getSize(msg), msg.GetFileEncSHA256(), msg.GetFileSHA256(), file) } else if len(msg.GetDirectPath()) > 0 { - return cli.DownloadMediaWithPathToFile(msg.GetDirectPath(), msg.GetFileEncSHA256(), msg.GetFileSHA256(), msg.GetMediaKey(), getSize(msg), mediaType, mediaTypeToMMSType[mediaType], file) + return cli.DownloadMediaWithPathToFile(ctx, msg.GetDirectPath(), msg.GetFileEncSHA256(), msg.GetFileSHA256(), msg.GetMediaKey(), getSize(msg), mediaType, mediaTypeToMMSType[mediaType], file) } else { if isWebWhatsappNetURL { cli.Log.Warnf("Got a media message with a web.whatsapp.net URL (%s) and no direct path", url) @@ -64,12 +65,25 @@ func (cli *Client) DownloadToFile(msg DownloadableMessage, file File) error { } } -func (cli *Client) DownloadFBToFile(transport *waMediaTransport.WAMediaTransport_Integral, mediaType MediaType, file File) error { - return cli.DownloadMediaWithPathToFile(transport.GetDirectPath(), transport.GetFileEncSHA256(), transport.GetFileSHA256(), transport.GetMediaKey(), -1, mediaType, mediaTypeToMMSType[mediaType], file) +func (cli *Client) DownloadFBToFile( + ctx context.Context, + transport *waMediaTransport.WAMediaTransport_Integral, + mediaType MediaType, + file File, +) error { + return cli.DownloadMediaWithPathToFile(ctx, transport.GetDirectPath(), transport.GetFileEncSHA256(), transport.GetFileSHA256(), transport.GetMediaKey(), -1, mediaType, mediaTypeToMMSType[mediaType], file) } -func (cli *Client) DownloadMediaWithPathToFile(directPath string, encFileHash, fileHash, mediaKey []byte, fileLength int, mediaType MediaType, mmsType string, file File) error { - mediaConn, err := cli.refreshMediaConn(false) +func (cli *Client) DownloadMediaWithPathToFile( + ctx context.Context, + directPath string, + encFileHash, fileHash, mediaKey []byte, + fileLength int, + mediaType MediaType, + mmsType string, + file File, +) error { + mediaConn, err := cli.refreshMediaConn(ctx, false) if err != nil { return fmt.Errorf("failed to refresh media connections: %w", err) } @@ -79,7 +93,7 @@ func (cli *Client) DownloadMediaWithPathToFile(directPath string, encFileHash, f for i, host := range mediaConn.Hosts { // TODO omit hash for unencrypted media? mediaURL := fmt.Sprintf("https://%s%s&hash=%s&mms-type=%s&__wa-mms=", host.Hostname, directPath, base64.URLEncoding.EncodeToString(encFileHash), mmsType) - err = cli.downloadAndDecryptToFile(mediaURL, mediaKey, mediaType, fileLength, encFileHash, fileHash, file) + err = cli.downloadAndDecryptToFile(ctx, mediaURL, mediaKey, mediaType, fileLength, encFileHash, fileHash, file) if err == nil || errors.Is(err, ErrFileLengthMismatch) || errors.Is(err, ErrInvalidMediaSHA256) || errors.Is(err, ErrMediaDownloadFailedWith403) || errors.Is(err, ErrMediaDownloadFailedWith404) || errors.Is(err, ErrMediaDownloadFailedWith410) { return err @@ -91,10 +105,18 @@ func (cli *Client) DownloadMediaWithPathToFile(directPath string, encFileHash, f return err } -func (cli *Client) downloadAndDecryptToFile(url string, mediaKey []byte, appInfo MediaType, fileLength int, fileEncSHA256, fileSHA256 []byte, file File) error { +func (cli *Client) downloadAndDecryptToFile( + ctx context.Context, + url string, + mediaKey []byte, + appInfo MediaType, + fileLength int, + fileEncSHA256, fileSHA256 []byte, + file File, +) error { iv, cipherKey, macKey, _ := getMediaKeys(mediaKey, appInfo) hasher := sha256.New() - if mac, err := cli.downloadPossiblyEncryptedMediaWithRetriesToFile(url, fileEncSHA256, file); err != nil { + if mac, err := cli.downloadPossiblyEncryptedMediaWithRetriesToFile(ctx, url, fileEncSHA256, file); err != nil { return err } else if mediaKey == nil && fileEncSHA256 == nil && mac == nil { // Unencrypted media, just return the downloaded data @@ -107,7 +129,7 @@ func (cli *Client) downloadAndDecryptToFile(url string, mediaKey []byte, appInfo return fmt.Errorf("failed to decrypt file: %w", err) } else if info, err := file.Stat(); err != nil { return fmt.Errorf("failed to stat file: %w", err) - } else if info.Size() != int64(fileLength) { + } else if fileLength >= 0 && info.Size() != int64(fileLength) { return fmt.Errorf("%w: expected %d, got %d", ErrFileLengthMismatch, fileLength, info.Size()) } else if _, err = file.Seek(0, io.SeekStart); err != nil { return fmt.Errorf("failed to seek to start of file after decrypting: %w", err) @@ -119,12 +141,12 @@ func (cli *Client) downloadAndDecryptToFile(url string, mediaKey []byte, appInfo return nil } -func (cli *Client) downloadPossiblyEncryptedMediaWithRetriesToFile(url string, checksum []byte, file File) (mac []byte, err error) { +func (cli *Client) downloadPossiblyEncryptedMediaWithRetriesToFile(ctx context.Context, url string, checksum []byte, file File) (mac []byte, err error) { for retryNum := 0; retryNum < 5; retryNum++ { if checksum == nil { - _, _, err = cli.downloadMediaToFile(url, file) + _, _, err = cli.downloadMediaToFile(ctx, url, file) } else { - mac, err = cli.downloadEncryptedMediaToFile(url, checksum, file) + mac, err = cli.downloadEncryptedMediaToFile(ctx, url, checksum, file) } if err == nil || !shouldRetryMediaDownload(err) { return @@ -139,13 +161,17 @@ func (cli *Client) downloadPossiblyEncryptedMediaWithRetriesToFile(url string, c if err != nil { return nil, fmt.Errorf("failed to seek to start of file to retry download: %w", err) } - time.Sleep(retryDuration) + select { + case <-ctx.Done(): + return nil, ctx.Err() + case <-time.After(retryDuration): + } } return } -func (cli *Client) downloadMediaToFile(url string, file io.Writer) (int64, []byte, error) { - resp, err := cli.doMediaDownloadRequest(url) +func (cli *Client) downloadMediaToFile(ctx context.Context, url string, file io.Writer) (int64, []byte, error) { + resp, err := cli.doMediaDownloadRequest(ctx, url) if err != nil { return 0, nil, err } @@ -162,8 +188,8 @@ func (cli *Client) downloadMediaToFile(url string, file io.Writer) (int64, []byt return n, hasher.Sum(nil), err } -func (cli *Client) downloadEncryptedMediaToFile(url string, checksum []byte, file File) ([]byte, error) { - size, hash, err := cli.downloadMediaToFile(url, file) +func (cli *Client) downloadEncryptedMediaToFile(ctx context.Context, url string, checksum []byte, file File) ([]byte, error) { + size, hash, err := cli.downloadMediaToFile(ctx, url, file) if err != nil { return nil, err } else if size <= mediaHMACLength { diff --git a/download.go b/download.go index d242ebd8..48b018fd 100644 --- a/download.go +++ b/download.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "crypto/hmac" "crypto/sha256" "encoding/base64" @@ -129,21 +130,21 @@ var mediaTypeToMMSType = map[MediaType]string{ } // DownloadAny loops through the downloadable parts of the given message and downloads the first non-nil item. -func (cli *Client) DownloadAny(msg *waE2E.Message) (data []byte, err error) { +func (cli *Client) DownloadAny(ctx context.Context, msg *waE2E.Message) (data []byte, err error) { if msg == nil { return nil, ErrNothingDownloadableFound } switch { case msg.ImageMessage != nil: - return cli.Download(msg.ImageMessage) + return cli.Download(ctx, msg.ImageMessage) case msg.VideoMessage != nil: - return cli.Download(msg.VideoMessage) + return cli.Download(ctx, msg.VideoMessage) case msg.AudioMessage != nil: - return cli.Download(msg.AudioMessage) + return cli.Download(ctx, msg.AudioMessage) case msg.DocumentMessage != nil: - return cli.Download(msg.DocumentMessage) + return cli.Download(ctx, msg.DocumentMessage) case msg.StickerMessage != nil: - return cli.Download(msg.StickerMessage) + return cli.Download(ctx, msg.StickerMessage) default: return nil, ErrNothingDownloadableFound } @@ -167,12 +168,12 @@ func getSize(msg DownloadableMessage) int { // var msg *waE2E.Message // ... // thumbnailImageBytes, err := cli.DownloadThumbnail(msg.GetExtendedTextMessage()) -func (cli *Client) DownloadThumbnail(msg DownloadableThumbnail) ([]byte, error) { +func (cli *Client) DownloadThumbnail(ctx context.Context, msg DownloadableThumbnail) ([]byte, error) { mediaType, ok := classToThumbnailMediaType[msg.ProtoReflect().Descriptor().Name()] if !ok { return nil, fmt.Errorf("%w '%s'", ErrUnknownMediaType, string(msg.ProtoReflect().Descriptor().Name())) } else if len(msg.GetThumbnailDirectPath()) > 0 { - return cli.DownloadMediaWithPath(msg.GetThumbnailDirectPath(), msg.GetThumbnailEncSHA256(), msg.GetThumbnailSHA256(), msg.GetMediaKey(), -1, mediaType, mediaTypeToMMSType[mediaType]) + return cli.DownloadMediaWithPath(ctx, msg.GetThumbnailDirectPath(), msg.GetThumbnailEncSHA256(), msg.GetThumbnailSHA256(), msg.GetMediaKey(), -1, mediaType, mediaTypeToMMSType[mediaType]) } else { return nil, ErrNoURLPresent } @@ -200,7 +201,7 @@ func GetMediaType(msg DownloadableMessage) MediaType { // imageData, err := cli.Download(msg.GetImageMessage()) // // You can also use DownloadAny to download the first non-nil sub-message. -func (cli *Client) Download(msg DownloadableMessage) ([]byte, error) { +func (cli *Client) Download(ctx context.Context, msg DownloadableMessage) ([]byte, error) { if cli == nil { return nil, ErrClientIsNil } @@ -216,9 +217,9 @@ func (cli *Client) Download(msg DownloadableMessage) ([]byte, error) { isWebWhatsappNetURL = strings.HasPrefix(url, "https://web.whatsapp.net") } if len(url) > 0 && !isWebWhatsappNetURL { - return cli.downloadAndDecrypt(url, msg.GetMediaKey(), mediaType, getSize(msg), msg.GetFileEncSHA256(), msg.GetFileSHA256()) + return cli.downloadAndDecrypt(ctx, url, msg.GetMediaKey(), mediaType, getSize(msg), msg.GetFileEncSHA256(), msg.GetFileSHA256()) } else if len(msg.GetDirectPath()) > 0 { - return cli.DownloadMediaWithPath(msg.GetDirectPath(), msg.GetFileEncSHA256(), msg.GetFileSHA256(), msg.GetMediaKey(), getSize(msg), mediaType, mediaTypeToMMSType[mediaType]) + return cli.DownloadMediaWithPath(ctx, msg.GetDirectPath(), msg.GetFileEncSHA256(), msg.GetFileSHA256(), msg.GetMediaKey(), getSize(msg), mediaType, mediaTypeToMMSType[mediaType]) } else { if isWebWhatsappNetURL { cli.Log.Warnf("Got a media message with a web.whatsapp.net URL (%s) and no direct path", url) @@ -227,14 +228,25 @@ func (cli *Client) Download(msg DownloadableMessage) ([]byte, error) { } } -func (cli *Client) DownloadFB(transport *waMediaTransport.WAMediaTransport_Integral, mediaType MediaType) ([]byte, error) { - return cli.DownloadMediaWithPath(transport.GetDirectPath(), transport.GetFileEncSHA256(), transport.GetFileSHA256(), transport.GetMediaKey(), -1, mediaType, mediaTypeToMMSType[mediaType]) +func (cli *Client) DownloadFB( + ctx context.Context, + transport *waMediaTransport.WAMediaTransport_Integral, + mediaType MediaType, +) ([]byte, error) { + return cli.DownloadMediaWithPath(ctx, transport.GetDirectPath(), transport.GetFileEncSHA256(), transport.GetFileSHA256(), transport.GetMediaKey(), -1, mediaType, mediaTypeToMMSType[mediaType]) } // DownloadMediaWithPath downloads an attachment by manually specifying the path and encryption details. -func (cli *Client) DownloadMediaWithPath(directPath string, encFileHash, fileHash, mediaKey []byte, fileLength int, mediaType MediaType, mmsType string) (data []byte, err error) { +func (cli *Client) DownloadMediaWithPath( + ctx context.Context, + directPath string, + encFileHash, fileHash, mediaKey []byte, + fileLength int, + mediaType MediaType, + mmsType string, +) (data []byte, err error) { var mediaConn *MediaConn - mediaConn, err = cli.refreshMediaConn(false) + mediaConn, err = cli.refreshMediaConn(ctx, false) if err != nil { return nil, fmt.Errorf("failed to refresh media connections: %w", err) } @@ -244,7 +256,7 @@ func (cli *Client) DownloadMediaWithPath(directPath string, encFileHash, fileHas for i, host := range mediaConn.Hosts { // TODO omit hash for unencrypted media? mediaURL := fmt.Sprintf("https://%s%s&hash=%s&mms-type=%s&__wa-mms=", host.Hostname, directPath, base64.URLEncoding.EncodeToString(encFileHash), mmsType) - data, err = cli.downloadAndDecrypt(mediaURL, mediaKey, mediaType, fileLength, encFileHash, fileHash) + data, err = cli.downloadAndDecrypt(ctx, mediaURL, mediaKey, mediaType, fileLength, encFileHash, fileHash) if err == nil || errors.Is(err, ErrFileLengthMismatch) || errors.Is(err, ErrInvalidMediaSHA256) || errors.Is(err, ErrMediaDownloadFailedWith403) || errors.Is(err, ErrMediaDownloadFailedWith404) || errors.Is(err, ErrMediaDownloadFailedWith410) { return @@ -256,10 +268,18 @@ func (cli *Client) DownloadMediaWithPath(directPath string, encFileHash, fileHas return } -func (cli *Client) downloadAndDecrypt(url string, mediaKey []byte, appInfo MediaType, fileLength int, fileEncSHA256, fileSHA256 []byte) (data []byte, err error) { +func (cli *Client) downloadAndDecrypt( + ctx context.Context, + url string, + mediaKey []byte, + appInfo MediaType, + fileLength int, + fileEncSHA256, + fileSHA256 []byte, +) (data []byte, err error) { iv, cipherKey, macKey, _ := getMediaKeys(mediaKey, appInfo) var ciphertext, mac []byte - if ciphertext, mac, err = cli.downloadPossiblyEncryptedMediaWithRetries(url, fileEncSHA256); err != nil { + if ciphertext, mac, err = cli.downloadPossiblyEncryptedMediaWithRetries(ctx, url, fileEncSHA256); err != nil { } else if mediaKey == nil && fileEncSHA256 == nil && mac == nil { // Unencrypted media, just return the downloaded data @@ -289,12 +309,12 @@ func shouldRetryMediaDownload(err error) bool { (errors.As(err, &httpErr) && retryafter.Should(httpErr.StatusCode, true)) } -func (cli *Client) downloadPossiblyEncryptedMediaWithRetries(url string, checksum []byte) (file, mac []byte, err error) { +func (cli *Client) downloadPossiblyEncryptedMediaWithRetries(ctx context.Context, url string, checksum []byte) (file, mac []byte, err error) { for retryNum := 0; retryNum < 5; retryNum++ { if checksum == nil { - file, err = cli.downloadMedia(url) + file, err = cli.downloadMedia(ctx, url) } else { - file, mac, err = cli.downloadEncryptedMedia(url, checksum) + file, mac, err = cli.downloadEncryptedMedia(ctx, url, checksum) } if err == nil || !shouldRetryMediaDownload(err) { return @@ -305,13 +325,17 @@ func (cli *Client) downloadPossiblyEncryptedMediaWithRetries(url string, checksu retryDuration = retryafter.Parse(httpErr.Response.Header.Get("Retry-After"), retryDuration) } cli.Log.Warnf("Failed to download media due to network error: %v, retrying in %s...", err, retryDuration) - time.Sleep(retryDuration) + select { + case <-ctx.Done(): + return nil, nil, ctx.Err() + case <-time.After(retryDuration): + } } return } -func (cli *Client) doMediaDownloadRequest(url string) (*http.Response, error) { - req, err := http.NewRequest(http.MethodGet, url, nil) +func (cli *Client) doMediaDownloadRequest(ctx context.Context, url string) (*http.Response, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) if err != nil { return nil, fmt.Errorf("failed to prepare request: %w", err) } @@ -332,8 +356,8 @@ func (cli *Client) doMediaDownloadRequest(url string) (*http.Response, error) { return resp, nil } -func (cli *Client) downloadMedia(url string) ([]byte, error) { - resp, err := cli.doMediaDownloadRequest(url) +func (cli *Client) downloadMedia(ctx context.Context, url string) ([]byte, error) { + resp, err := cli.doMediaDownloadRequest(ctx, url) if err != nil { return nil, err } @@ -344,8 +368,8 @@ func (cli *Client) downloadMedia(url string) ([]byte, error) { const mediaHMACLength = 10 -func (cli *Client) downloadEncryptedMedia(url string, checksum []byte) (file, mac []byte, err error) { - data, err := cli.downloadMedia(url) +func (cli *Client) downloadEncryptedMedia(ctx context.Context, url string, checksum []byte) (file, mac []byte, err error) { + data, err := cli.downloadMedia(ctx, url) if err != nil { return } else if len(data) <= mediaHMACLength { diff --git a/go.mod b/go.mod index c99ba3c2..974cfad2 100644 --- a/go.mod +++ b/go.mod @@ -2,24 +2,25 @@ module github.com/techwiz37/waSocket go 1.23.0 -toolchain go1.24.1 +toolchain go1.24.3 require ( github.com/google/uuid v1.6.0 github.com/gorilla/websocket v1.5.0 - github.com/rs/zerolog v1.33.0 - go.mau.fi/libsignal v0.1.2 - go.mau.fi/util v0.8.6 - golang.org/x/crypto v0.36.0 - golang.org/x/net v0.37.0 - google.golang.org/protobuf v1.36.5 + github.com/rs/zerolog v1.34.0 + go.mau.fi/libsignal v0.2.0 + go.mau.fi/util v0.8.7 + golang.org/x/crypto v0.38.0 + golang.org/x/net v0.40.0 + google.golang.org/protobuf v1.36.6 ) require ( filippo.io/edwards25519 v1.1.0 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - github.com/petermattis/goid v0.0.0-20250303134427-723919f7f203 // indirect - golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect - golang.org/x/sys v0.31.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/petermattis/goid v0.0.0-20250508124226-395b08cebbdb // indirect + golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.25.0 // indirect ) diff --git a/go.sum b/go.sum index 3043c24c..33815dfc 100644 --- a/go.sum +++ b/go.sum @@ -12,39 +12,43 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM= -github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -github.com/petermattis/goid v0.0.0-20250303134427-723919f7f203 h1:E7Kmf11E4K7B5hDti2K2NqPb1nlYlGYsu02S1JNd/Bs= -github.com/petermattis/goid v0.0.0-20250303134427-723919f7f203/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-sqlite3 v1.14.28 h1:ThEiQrnbtumT+QMknw63Befp/ce/nUPgBPMlRFEum7A= +github.com/mattn/go-sqlite3 v1.14.28/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/petermattis/goid v0.0.0-20250508124226-395b08cebbdb h1:3PrKuO92dUTMrQ9dx0YNejC6U/Si6jqKmyQ9vWjwqR4= +github.com/petermattis/goid v0.0.0-20250508124226-395b08cebbdb/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= -github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= +github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= +github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -go.mau.fi/libsignal v0.1.2 h1:Vs16DXWxSKyzVtI+EEXLCSy5pVWzzCzp/2eqFGvLyP0= -go.mau.fi/libsignal v0.1.2/go.mod h1:JpnLSSJptn/s1sv7I56uEMywvz8x4YzxeF5OzdPb6PE= -go.mau.fi/util v0.8.6 h1:AEK13rfgtiZJL2YsNK+W4ihhYCuukcRom8WPP/w/L54= -go.mau.fi/util v0.8.6/go.mod h1:uNB3UTXFbkpp7xL1M/WvQks90B/L4gvbLpbS0603KOE= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= -golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= -golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= -golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= -golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +go.mau.fi/libsignal v0.2.0 h1:oRXj3OHhEJq51BFEM8/50UZblmWiTYH93hsNTPcbk90= +go.mau.fi/libsignal v0.2.0/go.mod h1:tvjoDsMejgT38CXTXwqaYu8itBiY8O2Mb6biWvZBb9k= +go.mau.fi/util v0.8.7 h1:ywKarPxouJQEEijTs4mPlxC7F4AWEKokEpWc+2TYy6c= +go.mau.fi/util v0.8.7/go.mod h1:j6R3cENakc1f8HpQeFl0N15UiSTcNmIfDBNJUbL71RY= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internals.go b/internals.go index 4a2834fb..7200d11e 100644 --- a/internals.go +++ b/internals.go @@ -1,7 +1,7 @@ // GENERATED BY internals_generate.go; DO NOT EDIT //go:generate go run internals_generate.go -//go:generate goimports -local github.com/techwiz37/waSocket -w internals.go +//go:generate goimports -local github.com/techwiz37/waSocket/ -w internals.go package waSocket @@ -47,16 +47,16 @@ func (int *DangerousInternalClient) FilterContacts(mutations []appstate.Mutation return int.c.filterContacts(mutations) } -func (int *DangerousInternalClient) DispatchAppState(mutation appstate.Mutation, fullSync bool, emitOnFullSync bool) { - int.c.dispatchAppState(mutation, fullSync, emitOnFullSync) +func (int *DangerousInternalClient) DispatchAppState(ctx context.Context, mutation appstate.Mutation, fullSync bool, emitOnFullSync bool) { + int.c.dispatchAppState(ctx, mutation, fullSync, emitOnFullSync) } -func (int *DangerousInternalClient) DownloadExternalAppStateBlob(ref *waServerSync.ExternalBlobReference) ([]byte, error) { - return int.c.downloadExternalAppStateBlob(ref) +func (int *DangerousInternalClient) DownloadExternalAppStateBlob(ctx context.Context, ref *waServerSync.ExternalBlobReference) ([]byte, error) { + return int.c.downloadExternalAppStateBlob(ctx, ref) } -func (int *DangerousInternalClient) FetchAppStatePatches(name appstate.WAPatchName, fromVersion uint64, snapshot bool) (*appstate.PatchList, error) { - return int.c.fetchAppStatePatches(name, fromVersion, snapshot) +func (int *DangerousInternalClient) FetchAppStatePatches(ctx context.Context, name appstate.WAPatchName, fromVersion uint64, snapshot bool) (*appstate.PatchList, error) { + return int.c.fetchAppStatePatches(ctx, name, fromVersion, snapshot) } func (int *DangerousInternalClient) RequestMissingAppStateKeys(ctx context.Context, patches *appstate.PatchList) { @@ -67,16 +67,16 @@ func (int *DangerousInternalClient) RequestAppStateKeys(ctx context.Context, raw int.c.requestAppStateKeys(ctx, rawKeyIDs) } -func (int *DangerousInternalClient) HandleDecryptedArmadillo(info *types.MessageInfo, decrypted []byte, retryCount int) bool { - return int.c.handleDecryptedArmadillo(info, decrypted, retryCount) +func (int *DangerousInternalClient) HandleDecryptedArmadillo(ctx context.Context, info *types.MessageInfo, decrypted []byte, retryCount int) bool { + return int.c.handleDecryptedArmadillo(ctx, info, decrypted, retryCount) } -func (int *DangerousInternalClient) GetBroadcastListParticipants(jid types.JID) ([]types.JID, error) { - return int.c.getBroadcastListParticipants(jid) +func (int *DangerousInternalClient) GetBroadcastListParticipants(ctx context.Context, jid types.JID) ([]types.JID, error) { + return int.c.getBroadcastListParticipants(ctx, jid) } -func (int *DangerousInternalClient) GetStatusBroadcastRecipients() ([]types.JID, error) { - return int.c.getStatusBroadcastRecipients() +func (int *DangerousInternalClient) GetStatusBroadcastRecipients(ctx context.Context) ([]types.JID, error) { + return int.c.getStatusBroadcastRecipients(ctx) } func (int *DangerousInternalClient) HandleCallEvent(node *waBinary.Node) { @@ -159,40 +159,40 @@ func (int *DangerousInternalClient) HandleConnectSuccess(node *waBinary.Node) { int.c.handleConnectSuccess(node) } -func (int *DangerousInternalClient) DownloadAndDecrypt(url string, mediaKey []byte, appInfo MediaType, fileLength int, fileEncSHA256, fileSHA256 []byte) (data []byte, err error) { - return int.c.downloadAndDecrypt(url, mediaKey, appInfo, fileLength, fileEncSHA256, fileSHA256) +func (int *DangerousInternalClient) DownloadAndDecrypt(ctx context.Context, url string, mediaKey []byte, appInfo MediaType, fileLength int, fileEncSHA256, fileSHA256 []byte) (data []byte, err error) { + return int.c.downloadAndDecrypt(ctx, url, mediaKey, appInfo, fileLength, fileEncSHA256, fileSHA256) } -func (int *DangerousInternalClient) DownloadPossiblyEncryptedMediaWithRetries(url string, checksum []byte) (file, mac []byte, err error) { - return int.c.downloadPossiblyEncryptedMediaWithRetries(url, checksum) +func (int *DangerousInternalClient) DownloadPossiblyEncryptedMediaWithRetries(ctx context.Context, url string, checksum []byte) (file, mac []byte, err error) { + return int.c.downloadPossiblyEncryptedMediaWithRetries(ctx, url, checksum) } -func (int *DangerousInternalClient) DoMediaDownloadRequest(url string) (*http.Response, error) { - return int.c.doMediaDownloadRequest(url) +func (int *DangerousInternalClient) DoMediaDownloadRequest(ctx context.Context, url string) (*http.Response, error) { + return int.c.doMediaDownloadRequest(ctx, url) } -func (int *DangerousInternalClient) DownloadMedia(url string) ([]byte, error) { - return int.c.downloadMedia(url) +func (int *DangerousInternalClient) DownloadMedia(ctx context.Context, url string) ([]byte, error) { + return int.c.downloadMedia(ctx, url) } -func (int *DangerousInternalClient) DownloadEncryptedMedia(url string, checksum []byte) (file, mac []byte, err error) { - return int.c.downloadEncryptedMedia(url, checksum) +func (int *DangerousInternalClient) DownloadEncryptedMedia(ctx context.Context, url string, checksum []byte) (file, mac []byte, err error) { + return int.c.downloadEncryptedMedia(ctx, url, checksum) } -func (int *DangerousInternalClient) DownloadAndDecryptToFile(url string, mediaKey []byte, appInfo MediaType, fileLength int, fileEncSHA256, fileSHA256 []byte, file File) error { - return int.c.downloadAndDecryptToFile(url, mediaKey, appInfo, fileLength, fileEncSHA256, fileSHA256, file) +func (int *DangerousInternalClient) DownloadAndDecryptToFile(ctx context.Context, url string, mediaKey []byte, appInfo MediaType, fileLength int, fileEncSHA256, fileSHA256 []byte, file File) error { + return int.c.downloadAndDecryptToFile(ctx, url, mediaKey, appInfo, fileLength, fileEncSHA256, fileSHA256, file) } -func (int *DangerousInternalClient) DownloadPossiblyEncryptedMediaWithRetriesToFile(url string, checksum []byte, file File) (mac []byte, err error) { - return int.c.downloadPossiblyEncryptedMediaWithRetriesToFile(url, checksum, file) +func (int *DangerousInternalClient) DownloadPossiblyEncryptedMediaWithRetriesToFile(ctx context.Context, url string, checksum []byte, file File) (mac []byte, err error) { + return int.c.downloadPossiblyEncryptedMediaWithRetriesToFile(ctx, url, checksum, file) } -func (int *DangerousInternalClient) DownloadMediaToFile(url string, file io.Writer) (int64, []byte, error) { - return int.c.downloadMediaToFile(url, file) +func (int *DangerousInternalClient) DownloadMediaToFile(ctx context.Context, url string, file io.Writer) (int64, []byte, error) { + return int.c.downloadMediaToFile(ctx, url, file) } -func (int *DangerousInternalClient) DownloadEncryptedMediaToFile(url string, checksum []byte, file File) ([]byte, error) { - return int.c.downloadEncryptedMediaToFile(url, checksum, file) +func (int *DangerousInternalClient) DownloadEncryptedMediaToFile(ctx context.Context, url string, checksum []byte, file File) ([]byte, error) { + return int.c.downloadEncryptedMediaToFile(ctx, url, checksum, file) } func (int *DangerousInternalClient) SendGroupIQ(ctx context.Context, iqType infoQueryType, jid types.JID, content waBinary.Node) (*waBinary.Node, error) { @@ -239,16 +239,16 @@ func (int *DangerousInternalClient) SendKeepAlive(ctx context.Context) (isSucces return int.c.sendKeepAlive(ctx) } -func (int *DangerousInternalClient) RefreshMediaConn(force bool) (*MediaConn, error) { - return int.c.refreshMediaConn(force) +func (int *DangerousInternalClient) RefreshMediaConn(ctx context.Context, force bool) (*MediaConn, error) { + return int.c.refreshMediaConn(ctx, force) } -func (int *DangerousInternalClient) QueryMediaConn() (*MediaConn, error) { - return int.c.queryMediaConn() +func (int *DangerousInternalClient) QueryMediaConn(ctx context.Context) (*MediaConn, error) { + return int.c.queryMediaConn(ctx) } -func (int *DangerousInternalClient) HandleMediaRetryNotification(node *waBinary.Node) { - int.c.handleMediaRetryNotification(node) +func (int *DangerousInternalClient) HandleMediaRetryNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleMediaRetryNotification(ctx, node) } func (int *DangerousInternalClient) HandleEncryptedMessage(node *waBinary.Node) { @@ -271,84 +271,88 @@ func (int *DangerousInternalClient) ParseMessageInfo(node *waBinary.Node) (*type return int.c.parseMessageInfo(node) } -func (int *DangerousInternalClient) HandlePlaintextMessage(info *types.MessageInfo, node *waBinary.Node) { - int.c.handlePlaintextMessage(info, node) +func (int *DangerousInternalClient) HandlePlaintextMessage(ctx context.Context, info *types.MessageInfo, node *waBinary.Node) { + int.c.handlePlaintextMessage(ctx, info, node) } -func (int *DangerousInternalClient) MigrateSessionStore(pn, lid types.JID) { - int.c.migrateSessionStore(pn, lid) +func (int *DangerousInternalClient) MigrateSessionStore(ctx context.Context, pn, lid types.JID) { + int.c.migrateSessionStore(ctx, pn, lid) } -func (int *DangerousInternalClient) DecryptMessages(info *types.MessageInfo, node *waBinary.Node) { - int.c.decryptMessages(info, node) +func (int *DangerousInternalClient) DecryptMessages(ctx context.Context, info *types.MessageInfo, node *waBinary.Node) { + int.c.decryptMessages(ctx, info, node) } -func (int *DangerousInternalClient) ClearUntrustedIdentity(target types.JID) { - int.c.clearUntrustedIdentity(target) +func (int *DangerousInternalClient) ClearUntrustedIdentity(ctx context.Context, target types.JID) error { + return int.c.clearUntrustedIdentity(ctx, target) } -func (int *DangerousInternalClient) DecryptDM(child *waBinary.Node, from types.JID, isPreKey bool) ([]byte, error) { - return int.c.decryptDM(child, from, isPreKey) +func (int *DangerousInternalClient) BufferedDecrypt(ctx context.Context, ciphertext []byte, serverTimestamp time.Time, decrypt func(context.Context) ([]byte, error)) (plaintext []byte, ciphertextHash [32]byte, err error) { + return int.c.bufferedDecrypt(ctx, ciphertext, serverTimestamp, decrypt) } -func (int *DangerousInternalClient) DecryptGroupMsg(child *waBinary.Node, from types.JID, chat types.JID) ([]byte, error) { - return int.c.decryptGroupMsg(child, from, chat) +func (int *DangerousInternalClient) DecryptDM(ctx context.Context, child *waBinary.Node, from types.JID, isPreKey bool, serverTS time.Time) ([]byte, *[32]byte, error) { + return int.c.decryptDM(ctx, child, from, isPreKey, serverTS) } -func (int *DangerousInternalClient) HandleSenderKeyDistributionMessage(chat, from types.JID, axolotlSKDM []byte) { - int.c.handleSenderKeyDistributionMessage(chat, from, axolotlSKDM) +func (int *DangerousInternalClient) DecryptGroupMsg(ctx context.Context, child *waBinary.Node, from types.JID, chat types.JID, serverTS time.Time) ([]byte, *[32]byte, error) { + return int.c.decryptGroupMsg(ctx, child, from, chat, serverTS) +} + +func (int *DangerousInternalClient) HandleSenderKeyDistributionMessage(ctx context.Context, chat, from types.JID, axolotlSKDM []byte) { + int.c.handleSenderKeyDistributionMessage(ctx, chat, from, axolotlSKDM) } func (int *DangerousInternalClient) HandleHistorySyncNotificationLoop() { int.c.handleHistorySyncNotificationLoop() } -func (int *DangerousInternalClient) HandleHistorySyncNotification(notif *waE2E.HistorySyncNotification) { - int.c.handleHistorySyncNotification(notif) +func (int *DangerousInternalClient) HandleHistorySyncNotification(ctx context.Context, notif *waE2E.HistorySyncNotification) { + int.c.handleHistorySyncNotification(ctx, notif) } -func (int *DangerousInternalClient) HandleAppStateSyncKeyShare(keys *waE2E.AppStateSyncKeyShare) { - int.c.handleAppStateSyncKeyShare(keys) +func (int *DangerousInternalClient) HandleAppStateSyncKeyShare(ctx context.Context, keys *waE2E.AppStateSyncKeyShare) { + int.c.handleAppStateSyncKeyShare(ctx, keys) } func (int *DangerousInternalClient) HandlePlaceholderResendResponse(msg *waE2E.PeerDataOperationRequestResponseMessage) { int.c.handlePlaceholderResendResponse(msg) } -func (int *DangerousInternalClient) HandleProtocolMessage(info *types.MessageInfo, msg *waE2E.Message) { - int.c.handleProtocolMessage(info, msg) +func (int *DangerousInternalClient) HandleProtocolMessage(ctx context.Context, info *types.MessageInfo, msg *waE2E.Message) { + int.c.handleProtocolMessage(ctx, info, msg) } -func (int *DangerousInternalClient) ProcessProtocolParts(info *types.MessageInfo, msg *waE2E.Message) { - int.c.processProtocolParts(info, msg) +func (int *DangerousInternalClient) ProcessProtocolParts(ctx context.Context, info *types.MessageInfo, msg *waE2E.Message) { + int.c.processProtocolParts(ctx, info, msg) } -func (int *DangerousInternalClient) StoreMessageSecret(info *types.MessageInfo, msg *waE2E.Message) { - int.c.storeMessageSecret(info, msg) +func (int *DangerousInternalClient) StoreMessageSecret(ctx context.Context, info *types.MessageInfo, msg *waE2E.Message) { + int.c.storeMessageSecret(ctx, info, msg) } -func (int *DangerousInternalClient) StoreHistoricalMessageSecrets(conversations []*waHistorySync.Conversation) { - int.c.storeHistoricalMessageSecrets(conversations) +func (int *DangerousInternalClient) StoreHistoricalMessageSecrets(ctx context.Context, conversations []*waHistorySync.Conversation) { + int.c.storeHistoricalMessageSecrets(ctx, conversations) } -func (int *DangerousInternalClient) HandleDecryptedMessage(info *types.MessageInfo, msg *waE2E.Message, retryCount int) { - int.c.handleDecryptedMessage(info, msg, retryCount) +func (int *DangerousInternalClient) HandleDecryptedMessage(ctx context.Context, info *types.MessageInfo, msg *waE2E.Message, retryCount int) { + int.c.handleDecryptedMessage(ctx, info, msg, retryCount) } func (int *DangerousInternalClient) SendProtocolMessageReceipt(id types.MessageID, msgType types.ReceiptType) { int.c.sendProtocolMessageReceipt(id, msgType) } -func (int *DangerousInternalClient) DecryptMsgSecret(msg *events.Message, useCase MsgSecretType, encrypted messageEncryptedSecret, origMsgKey *waCommon.MessageKey) ([]byte, error) { - return int.c.decryptMsgSecret(msg, useCase, encrypted, origMsgKey) +func (int *DangerousInternalClient) DecryptMsgSecret(ctx context.Context, msg *events.Message, useCase MsgSecretType, encrypted messageEncryptedSecret, origMsgKey *waCommon.MessageKey) ([]byte, error) { + return int.c.decryptMsgSecret(ctx, msg, useCase, encrypted, origMsgKey) } -func (int *DangerousInternalClient) EncryptMsgSecret(ownID, chat, origSender types.JID, origMsgID types.MessageID, useCase MsgSecretType, plaintext []byte) (ciphertext, iv []byte, err error) { - return int.c.encryptMsgSecret(ownID, chat, origSender, origMsgID, useCase, plaintext) +func (int *DangerousInternalClient) EncryptMsgSecret(ctx context.Context, ownID, chat, origSender types.JID, origMsgID types.MessageID, useCase MsgSecretType, plaintext []byte) (ciphertext, iv []byte, err error) { + return int.c.encryptMsgSecret(ctx, ownID, chat, origSender, origMsgID, useCase, plaintext) } -func (int *DangerousInternalClient) DecryptBotMessage(messageSecret []byte, msMsg messageEncryptedSecret, messageID types.MessageID, targetSenderJID types.JID, info *types.MessageInfo) ([]byte, error) { - return int.c.decryptBotMessage(messageSecret, msMsg, messageID, targetSenderJID, info) +func (int *DangerousInternalClient) DecryptBotMessage(ctx context.Context, messageSecret []byte, msMsg messageEncryptedSecret, messageID types.MessageID, targetSenderJID types.JID, info *types.MessageInfo) ([]byte, error) { + return int.c.decryptBotMessage(ctx, messageSecret, msMsg, messageID, targetSenderJID, info) } func (int *DangerousInternalClient) SendMexIQ(ctx context.Context, queryID string, variables any) (json.RawMessage, error) { @@ -359,68 +363,68 @@ func (int *DangerousInternalClient) GetNewsletterInfo(input map[string]any, fetc return int.c.getNewsletterInfo(input, fetchViewerMeta) } -func (int *DangerousInternalClient) HandleEncryptNotification(node *waBinary.Node) { - int.c.handleEncryptNotification(node) +func (int *DangerousInternalClient) HandleEncryptNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleEncryptNotification(ctx, node) } -func (int *DangerousInternalClient) HandleAppStateNotification(node *waBinary.Node) { - int.c.handleAppStateNotification(node) +func (int *DangerousInternalClient) HandleAppStateNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleAppStateNotification(ctx, node) } -func (int *DangerousInternalClient) HandlePictureNotification(node *waBinary.Node) { - int.c.handlePictureNotification(node) +func (int *DangerousInternalClient) HandlePictureNotification(ctx context.Context, node *waBinary.Node) { + int.c.handlePictureNotification(ctx, node) } -func (int *DangerousInternalClient) HandleDeviceNotification(node *waBinary.Node) { - int.c.handleDeviceNotification(node) +func (int *DangerousInternalClient) HandleDeviceNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleDeviceNotification(ctx, node) } -func (int *DangerousInternalClient) HandleFBDeviceNotification(node *waBinary.Node) { - int.c.handleFBDeviceNotification(node) +func (int *DangerousInternalClient) HandleFBDeviceNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleFBDeviceNotification(ctx, node) } -func (int *DangerousInternalClient) HandleOwnDevicesNotification(node *waBinary.Node) { - int.c.handleOwnDevicesNotification(node) +func (int *DangerousInternalClient) HandleOwnDevicesNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleOwnDevicesNotification(ctx, node) } -func (int *DangerousInternalClient) HandleBlocklist(node *waBinary.Node) { - int.c.handleBlocklist(node) +func (int *DangerousInternalClient) HandleBlocklist(ctx context.Context, node *waBinary.Node) { + int.c.handleBlocklist(ctx, node) } -func (int *DangerousInternalClient) HandleAccountSyncNotification(node *waBinary.Node) { - int.c.handleAccountSyncNotification(node) +func (int *DangerousInternalClient) HandleAccountSyncNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleAccountSyncNotification(ctx, node) } -func (int *DangerousInternalClient) HandlePrivacyTokenNotification(node *waBinary.Node) { - int.c.handlePrivacyTokenNotification(node) +func (int *DangerousInternalClient) HandlePrivacyTokenNotification(ctx context.Context, node *waBinary.Node) { + int.c.handlePrivacyTokenNotification(ctx, node) } func (int *DangerousInternalClient) ParseNewsletterMessages(node *waBinary.Node) []*types.NewsletterMessage { return int.c.parseNewsletterMessages(node) } -func (int *DangerousInternalClient) HandleNewsletterNotification(node *waBinary.Node) { - int.c.handleNewsletterNotification(node) +func (int *DangerousInternalClient) HandleNewsletterNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleNewsletterNotification(ctx, node) } -func (int *DangerousInternalClient) HandleMexNotification(node *waBinary.Node) { - int.c.handleMexNotification(node) +func (int *DangerousInternalClient) HandleMexNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleMexNotification(ctx, node) } -func (int *DangerousInternalClient) HandleStatusNotification(node *waBinary.Node) { - int.c.handleStatusNotification(node) +func (int *DangerousInternalClient) HandleStatusNotification(ctx context.Context, node *waBinary.Node) { + int.c.handleStatusNotification(ctx, node) } func (int *DangerousInternalClient) HandleNotification(node *waBinary.Node) { int.c.handleNotification(node) } -func (int *DangerousInternalClient) TryHandleCodePairNotification(parentNode *waBinary.Node) { - int.c.tryHandleCodePairNotification(parentNode) +func (int *DangerousInternalClient) TryHandleCodePairNotification(ctx context.Context, parentNode *waBinary.Node) { + int.c.tryHandleCodePairNotification(ctx, parentNode) } -func (int *DangerousInternalClient) HandleCodePairNotification(parentNode *waBinary.Node) error { - return int.c.handleCodePairNotification(parentNode) +func (int *DangerousInternalClient) HandleCodePairNotification(ctx context.Context, parentNode *waBinary.Node) error { + return int.c.handleCodePairNotification(ctx, parentNode) } func (int *DangerousInternalClient) HandleIQ(node *waBinary.Node) { @@ -439,20 +443,20 @@ func (int *DangerousInternalClient) HandlePairSuccess(node *waBinary.Node) { int.c.handlePairSuccess(node) } -func (int *DangerousInternalClient) HandlePair(deviceIdentityBytes []byte, reqID, businessName, platform string, jid, lid types.JID) error { - return int.c.handlePair(deviceIdentityBytes, reqID, businessName, platform, jid, lid) +func (int *DangerousInternalClient) HandlePair(ctx context.Context, deviceIdentityBytes []byte, reqID, businessName, platform string, jid, lid types.JID) error { + return int.c.handlePair(ctx, deviceIdentityBytes, reqID, businessName, platform, jid, lid) } func (int *DangerousInternalClient) SendPairError(id string, code int, text string) { int.c.sendPairError(id, code, text) } -func (int *DangerousInternalClient) GetServerPreKeyCount() (int, error) { - return int.c.getServerPreKeyCount() +func (int *DangerousInternalClient) GetServerPreKeyCount(ctx context.Context) (int, error) { + return int.c.getServerPreKeyCount(ctx) } -func (int *DangerousInternalClient) UploadPreKeys() { - int.c.uploadPreKeys() +func (int *DangerousInternalClient) UploadPreKeys(ctx context.Context) { + int.c.uploadPreKeys(ctx) } func (int *DangerousInternalClient) FetchPreKeys(ctx context.Context, users []types.JID) (map[types.JID]preKeyResp, error) { @@ -471,8 +475,8 @@ func (int *DangerousInternalClient) ParsePrivacySettings(privacyNode *waBinary.N return int.c.parsePrivacySettings(privacyNode, settings) } -func (int *DangerousInternalClient) HandlePrivacySettingsNotification(privacyNode *waBinary.Node) { - int.c.handlePrivacySettingsNotification(privacyNode) +func (int *DangerousInternalClient) HandlePrivacySettingsNotification(ctx context.Context, privacyNode *waBinary.Node) { + int.c.handlePrivacySettingsNotification(ctx, privacyNode) } func (int *DangerousInternalClient) HandleReceipt(node *waBinary.Node) { @@ -543,16 +547,16 @@ func (int *DangerousInternalClient) GetRecentMessage(to types.JID, id types.Mess return int.c.getRecentMessage(to, id) } -func (int *DangerousInternalClient) GetMessageForRetry(receipt *events.Receipt, messageID types.MessageID) (RecentMessage, error) { - return int.c.getMessageForRetry(receipt, messageID) +func (int *DangerousInternalClient) GetMessageForRetry(ctx context.Context, receipt *events.Receipt, messageID types.MessageID) (RecentMessage, error) { + return int.c.getMessageForRetry(ctx, receipt, messageID) } -func (int *DangerousInternalClient) ShouldRecreateSession(retryCount int, jid types.JID) (reason string, recreate bool) { - return int.c.shouldRecreateSession(retryCount, jid) +func (int *DangerousInternalClient) ShouldRecreateSession(ctx context.Context, retryCount int, jid types.JID) (reason string, recreate bool) { + return int.c.shouldRecreateSession(ctx, retryCount, jid) } -func (int *DangerousInternalClient) HandleRetryReceipt(receipt *events.Receipt, node *waBinary.Node) error { - return int.c.handleRetryReceipt(receipt, node) +func (int *DangerousInternalClient) HandleRetryReceipt(ctx context.Context, receipt *events.Receipt, node *waBinary.Node) error { + return int.c.handleRetryReceipt(ctx, receipt, node) } func (int *DangerousInternalClient) CancelDelayedRequestFromPhone(msgID types.MessageID) { @@ -567,8 +571,8 @@ func (int *DangerousInternalClient) ClearDelayedMessageRequests() { int.c.clearDelayedMessageRequests() } -func (int *DangerousInternalClient) SendRetryReceipt(node *waBinary.Node, info *types.MessageInfo, forceIncludeIdentity bool) { - int.c.sendRetryReceipt(node, info, forceIncludeIdentity) +func (int *DangerousInternalClient) SendRetryReceipt(ctx context.Context, node *waBinary.Node, info *types.MessageInfo, forceIncludeIdentity bool) { + int.c.sendRetryReceipt(ctx, node, info, forceIncludeIdentity) } func (int *DangerousInternalClient) SendGroupV3(ctx context.Context, to, ownID types.JID, id types.MessageID, messageApp []byte, msgAttrs messageAttrs, frankingTag []byte, timings *MessageDebugTimings) (string, []byte, error) { @@ -587,12 +591,12 @@ func (int *DangerousInternalClient) EncryptMessageForDevicesV3(ctx context.Conte return int.c.encryptMessageForDevicesV3(ctx, allDevices, ownID, id, payload, skdm, dsm, encAttrs) } -func (int *DangerousInternalClient) EncryptMessageForDeviceAndWrapV3(payload *waMsgTransport.MessageTransport_Payload, skdm *waMsgTransport.MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage, dsm *waMsgTransport.MessageTransport_Protocol_Integral_DeviceSentMessage, to types.JID, bundle *prekey.Bundle, encAttrs waBinary.Attrs) (*waBinary.Node, error) { - return int.c.encryptMessageForDeviceAndWrapV3(payload, skdm, dsm, to, bundle, encAttrs) +func (int *DangerousInternalClient) EncryptMessageForDeviceAndWrapV3(ctx context.Context, payload *waMsgTransport.MessageTransport_Payload, skdm *waMsgTransport.MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage, dsm *waMsgTransport.MessageTransport_Protocol_Integral_DeviceSentMessage, to types.JID, bundle *prekey.Bundle, encAttrs waBinary.Attrs) (*waBinary.Node, error) { + return int.c.encryptMessageForDeviceAndWrapV3(ctx, payload, skdm, dsm, to, bundle, encAttrs) } -func (int *DangerousInternalClient) EncryptMessageForDeviceV3(payload *waMsgTransport.MessageTransport_Payload, skdm *waMsgTransport.MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage, dsm *waMsgTransport.MessageTransport_Protocol_Integral_DeviceSentMessage, to types.JID, bundle *prekey.Bundle, extraAttrs waBinary.Attrs) (*waBinary.Node, error) { - return int.c.encryptMessageForDeviceV3(payload, skdm, dsm, to, bundle, extraAttrs) +func (int *DangerousInternalClient) EncryptMessageForDeviceV3(ctx context.Context, payload *waMsgTransport.MessageTransport_Payload, skdm *waMsgTransport.MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage, dsm *waMsgTransport.MessageTransport_Protocol_Integral_DeviceSentMessage, to types.JID, bundle *prekey.Bundle, extraAttrs waBinary.Attrs) (*waBinary.Node, error) { + return int.c.encryptMessageForDeviceV3(ctx, payload, skdm, dsm, to, bundle, extraAttrs) } func (int *DangerousInternalClient) SendNewsletter(to types.JID, id types.MessageID, message *waE2E.Message, mediaID string, timings *MessageDebugTimings) ([]byte, error) { @@ -603,16 +607,16 @@ func (int *DangerousInternalClient) SendGroup(ctx context.Context, to types.JID, return int.c.sendGroup(ctx, to, participants, id, message, timings, extraParams) } -func (int *DangerousInternalClient) SendPeerMessage(to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings) ([]byte, error) { - return int.c.sendPeerMessage(to, id, message, timings) +func (int *DangerousInternalClient) SendPeerMessage(ctx context.Context, to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings) ([]byte, error) { + return int.c.sendPeerMessage(ctx, to, id, message, timings) } func (int *DangerousInternalClient) SendDM(ctx context.Context, ownID, to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings, extraParams nodeExtraParams) ([]byte, error) { return int.c.sendDM(ctx, ownID, to, id, message, timings, extraParams) } -func (int *DangerousInternalClient) PreparePeerMessageNode(to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings) (*waBinary.Node, error) { - return int.c.preparePeerMessageNode(to, id, message, timings) +func (int *DangerousInternalClient) PreparePeerMessageNode(ctx context.Context, to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings) (*waBinary.Node, error) { + return int.c.preparePeerMessageNode(ctx, to, id, message, timings) } func (int *DangerousInternalClient) GetMessageContent(baseNode waBinary.Node, message *waE2E.Message, msgAttrs waBinary.Attrs, includeIdentity bool, extraParams nodeExtraParams) []waBinary.Node { @@ -631,12 +635,12 @@ func (int *DangerousInternalClient) EncryptMessageForDevices(ctx context.Context return int.c.encryptMessageForDevices(ctx, allDevices, id, msgPlaintext, dsmPlaintext, encAttrs) } -func (int *DangerousInternalClient) EncryptMessageForDeviceAndWrap(plaintext []byte, wireIdentity, encryptionIdentity types.JID, bundle *prekey.Bundle, encAttrs waBinary.Attrs) (*waBinary.Node, bool, error) { - return int.c.encryptMessageForDeviceAndWrap(plaintext, wireIdentity, encryptionIdentity, bundle, encAttrs) +func (int *DangerousInternalClient) EncryptMessageForDeviceAndWrap(ctx context.Context, plaintext []byte, wireIdentity, encryptionIdentity types.JID, bundle *prekey.Bundle, encAttrs waBinary.Attrs) (*waBinary.Node, bool, error) { + return int.c.encryptMessageForDeviceAndWrap(ctx, plaintext, wireIdentity, encryptionIdentity, bundle, encAttrs) } -func (int *DangerousInternalClient) EncryptMessageForDevice(plaintext []byte, to types.JID, bundle *prekey.Bundle, extraAttrs waBinary.Attrs) (*waBinary.Node, bool, error) { - return int.c.encryptMessageForDevice(plaintext, to, bundle, extraAttrs) +func (int *DangerousInternalClient) EncryptMessageForDevice(ctx context.Context, plaintext []byte, to types.JID, bundle *prekey.Bundle, extraAttrs waBinary.Attrs) (*waBinary.Node, bool, error) { + return int.c.encryptMessageForDevice(ctx, plaintext, to, bundle, extraAttrs) } func (int *DangerousInternalClient) RawUpload(ctx context.Context, dataToUpload io.Reader, uploadSize uint64, fileHash []byte, appInfo MediaType, newsletter bool, resp *UploadResponse) error { @@ -647,16 +651,16 @@ func (int *DangerousInternalClient) ParseBusinessProfile(node *waBinary.Node) (* return int.c.parseBusinessProfile(node) } -func (int *DangerousInternalClient) HandleHistoricalPushNames(names []*waHistorySync.Pushname) { - int.c.handleHistoricalPushNames(names) +func (int *DangerousInternalClient) HandleHistoricalPushNames(ctx context.Context, names []*waHistorySync.Pushname) { + int.c.handleHistoricalPushNames(ctx, names) } -func (int *DangerousInternalClient) UpdatePushName(user types.JID, messageInfo *types.MessageInfo, name string) { - int.c.updatePushName(user, messageInfo, name) +func (int *DangerousInternalClient) UpdatePushName(ctx context.Context, user types.JID, messageInfo *types.MessageInfo, name string) { + int.c.updatePushName(ctx, user, messageInfo, name) } -func (int *DangerousInternalClient) UpdateBusinessName(user types.JID, messageInfo *types.MessageInfo, name string) { - int.c.updateBusinessName(user, messageInfo, name) +func (int *DangerousInternalClient) UpdateBusinessName(ctx context.Context, user types.JID, messageInfo *types.MessageInfo, name string) { + int.c.updateBusinessName(ctx, user, messageInfo, name) } func (int *DangerousInternalClient) GetFBIDDevicesInternal(ctx context.Context, jids []types.JID) (*waBinary.Node, error) { diff --git a/internals_generate.go b/internals_generate.go index b0251585..60bc64fe 100644 --- a/internals_generate.go +++ b/internals_generate.go @@ -22,7 +22,7 @@ import ( const header = `// GENERATED BY internals_generate.go; DO NOT EDIT //go:generate go run internals_generate.go -//go:generate goimports -local github.com/techwiz37/waSocket -w internals.go +//go:generate goimports -local github.com/techwiz37/waSocket/ -w internals.go package waSocket @@ -51,6 +51,9 @@ func getTypeName(expr ast.Expr) string { case *ast.StarExpr: return "*" + getTypeName(e.X) case *ast.ArrayType: + if e.Len != nil { + return fmt.Sprintf("[%s]%s", getTypeName(e.Len), getTypeName(e.Elt)) + } return "[]" + getTypeName(e.Elt) case *ast.MapType: return fmt.Sprintf("map[%s]%s", getTypeName(e.Key), getTypeName(e.Value)) @@ -72,7 +75,11 @@ func getTypeName(expr ast.Expr) string { results = append(results, getTypeName(result.Type)) } } - return fmt.Sprintf("func(%s) %s", strings.Join(params, ", "), strings.Join(results, ", ")) + retVals := strings.Join(results, ", ") + if len(results) > 1 { + retVals = fmt.Sprintf("(%s)", retVals) + } + return fmt.Sprintf("func(%s) %s", strings.Join(params, ", "), retVals) case *ast.SelectorExpr: return fmt.Sprintf("%s.%s", getTypeName(e.X), e.Sel.Name) case *ast.StructType: @@ -80,6 +87,8 @@ func getTypeName(expr ast.Expr) string { return "struct{}" case *ast.Ellipsis: return fmt.Sprintf("...%s", e.Elt) + case *ast.BasicLit: + return e.Value default: panic(fmt.Errorf("unknown type %T", e)) } diff --git a/keepalive.go b/keepalive.go index d142045e..aec26eee 100644 --- a/keepalive.go +++ b/keepalive.go @@ -8,7 +8,7 @@ package waSocket import ( "context" - "math/rand" + "math/rand/v2" "time" "github.com/techwiz37/waSocket/types" @@ -31,7 +31,7 @@ func (cli *Client) keepAliveLoop(ctx context.Context) { lastSuccess := time.Now() var errorCount int for { - interval := rand.Int63n(KeepAliveIntervalMax.Milliseconds()-KeepAliveIntervalMin.Milliseconds()) + KeepAliveIntervalMin.Milliseconds() + interval := rand.Int64N(KeepAliveIntervalMax.Milliseconds()-KeepAliveIntervalMin.Milliseconds()) + KeepAliveIntervalMin.Milliseconds() select { case <-time.After(time.Duration(interval) * time.Millisecond): isSuccess, shouldContinue := cli.sendKeepAlive(ctx) diff --git a/mediaconn.go b/mediaconn.go index fae4578d..ec6d273f 100644 --- a/mediaconn.go +++ b/mediaconn.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "fmt" "time" @@ -40,7 +41,7 @@ func (mc *MediaConn) Expiry() time.Time { return mc.FetchedAt.Add(time.Duration(mc.TTL) * time.Second) } -func (cli *Client) refreshMediaConn(force bool) (*MediaConn, error) { +func (cli *Client) refreshMediaConn(ctx context.Context, force bool) (*MediaConn, error) { if cli == nil { return nil, ErrClientIsNil } @@ -48,7 +49,7 @@ func (cli *Client) refreshMediaConn(force bool) (*MediaConn, error) { defer cli.mediaConnLock.Unlock() if cli.mediaConnCache == nil || force || time.Now().After(cli.mediaConnCache.Expiry()) { var err error - cli.mediaConnCache, err = cli.queryMediaConn() + cli.mediaConnCache, err = cli.queryMediaConn(ctx) if err != nil { return nil, err } @@ -56,8 +57,9 @@ func (cli *Client) refreshMediaConn(force bool) (*MediaConn, error) { return cli.mediaConnCache, nil } -func (cli *Client) queryMediaConn() (*MediaConn, error) { +func (cli *Client) queryMediaConn(ctx context.Context) (*MediaConn, error) { resp, err := cli.sendIQ(infoQuery{ + Context: ctx, Namespace: "w:m", Type: "set", To: types.ServerJID, diff --git a/mediaretry.go b/mediaretry.go index a76ddcaf..341a45ac 100644 --- a/mediaretry.go +++ b/mediaretry.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "fmt" "go.mau.fi/util/random" @@ -174,7 +175,7 @@ func parseMediaRetryNotification(node *waBinary.Node) (*events.MediaRetry, error return &evt, nil } -func (cli *Client) handleMediaRetryNotification(node *waBinary.Node) { +func (cli *Client) handleMediaRetryNotification(ctx context.Context, node *waBinary.Node) { evt, err := parseMediaRetryNotification(node) if err != nil { cli.Log.Warnf("Failed to parse media retry notification: %v", err) diff --git a/message.go b/message.go index 41298150..310d957f 100644 --- a/message.go +++ b/message.go @@ -10,6 +10,7 @@ import ( "bytes" "compress/zlib" "context" + "crypto/sha256" "encoding/hex" "errors" "fmt" @@ -17,6 +18,7 @@ import ( "runtime/debug" "time" + "github.com/rs/zerolog" "go.mau.fi/libsignal/groups" "go.mau.fi/libsignal/protocol" "go.mau.fi/libsignal/session" @@ -37,26 +39,27 @@ import ( var pbSerializer = store.SignalProtobufSerializer func (cli *Client) handleEncryptedMessage(node *waBinary.Node) { + ctx := context.TODO() info, err := cli.parseMessageInfo(node) if err != nil { cli.Log.Warnf("Failed to parse message: %v", err) } else { if !info.SenderAlt.IsEmpty() { - cli.StoreLIDPNMapping(context.TODO(), info.SenderAlt, info.Sender) + cli.StoreLIDPNMapping(ctx, info.SenderAlt, info.Sender) } else if !info.RecipientAlt.IsEmpty() { - cli.StoreLIDPNMapping(context.TODO(), info.RecipientAlt, info.Chat) + cli.StoreLIDPNMapping(ctx, info.RecipientAlt, info.Chat) } if info.VerifiedName != nil && len(info.VerifiedName.Details.GetVerifiedName()) > 0 { - go cli.updateBusinessName(info.Sender, info, info.VerifiedName.Details.GetVerifiedName()) + go cli.updateBusinessName(context.WithoutCancel(ctx), info.Sender, info, info.VerifiedName.Details.GetVerifiedName()) } if len(info.PushName) > 0 && info.PushName != "-" { - go cli.updatePushName(info.Sender, info, info.PushName) + go cli.updatePushName(context.WithoutCancel(ctx), info.Sender, info, info.PushName) } defer cli.maybeDeferredAck(node)() if info.Sender.Server == types.NewsletterServer { - cli.handlePlaintextMessage(info, node) + cli.handlePlaintextMessage(ctx, info, node) } else { - cli.decryptMessages(info, node) + cli.decryptMessages(ctx, info, node) } } } @@ -127,6 +130,9 @@ func (cli *Client) parseMessageSource(node *waBinary.Node, requireParticipant bo source.SenderAlt = ag.OptionalJIDOrEmpty("sender_lid") } } + if !source.SenderAlt.IsEmpty() && source.SenderAlt.Device == 0 { + source.SenderAlt.Device = source.Sender.Device + } err = ag.Error() return } @@ -212,7 +218,7 @@ func (cli *Client) parseMessageInfo(node *waBinary.Node) (*types.MessageInfo, er return &info, nil } -func (cli *Client) handlePlaintextMessage(info *types.MessageInfo, node *waBinary.Node) { +func (cli *Client) handlePlaintextMessage(ctx context.Context, info *types.MessageInfo, node *waBinary.Node) { // TODO edits have an additional node plaintext, ok := node.GetOptionalChildByTag("plaintext") if !ok { @@ -231,7 +237,7 @@ func (cli *Client) handlePlaintextMessage(info *types.MessageInfo, node *waBinar cli.Log.Warnf("Error unmarshaling plaintext message from %s: %v", info.SourceString(), err) return } - cli.storeMessageSecret(info, &msg) + cli.storeMessageSecret(ctx, info, &msg) evt := &events.Message{ Info: *info, RawMessage: &msg, @@ -246,14 +252,14 @@ func (cli *Client) handlePlaintextMessage(info *types.MessageInfo, node *waBinar cli.dispatchEvent(evt.UnwrapRaw()) } -func (cli *Client) migrateSessionStore(pn, lid types.JID) { - err := cli.Store.Sessions.MigratePNToLID(context.TODO(), pn, lid) +func (cli *Client) migrateSessionStore(ctx context.Context, pn, lid types.JID) { + err := cli.Store.Sessions.MigratePNToLID(ctx, pn, lid) if err != nil { cli.Log.Errorf("Failed to migrate signal store from %s to %s: %v", pn, lid, err) } } -func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node) { +func (cli *Client) decryptMessages(ctx context.Context, info *types.MessageInfo, node *waBinary.Node) { unavailableNode, ok := node.GetOptionalChildByTag("unavailable") if ok && len(node.GetChildrenByTag("enc")) == 0 { uType := events.UnavailableType(unavailableNode.AttrGetter().String("type")) @@ -271,11 +277,11 @@ func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node) if info.Sender.Server == types.DefaultUserServer && !info.Sender.IsBot() { if info.SenderAlt.Server == types.HiddenUserServer { senderEncryptionJID = info.SenderAlt - cli.migrateSessionStore(info.Sender, info.SenderAlt) - } else if lid, err := cli.Store.LIDs.GetLIDForPN(context.TODO(), info.Sender); err != nil { + cli.migrateSessionStore(ctx, info.Sender, info.SenderAlt) + } else if lid, err := cli.Store.LIDs.GetLIDForPN(ctx, info.Sender); err != nil { cli.Log.Errorf("Failed to get LID for %s: %v", info.Sender, err) } else if !lid.IsEmpty() { - cli.migrateSessionStore(info.Sender, lid) + cli.migrateSessionStore(ctx, info.Sender, lid) senderEncryptionJID = lid info.SenderAlt = lid } else { @@ -292,12 +298,13 @@ func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node) continue } var decrypted []byte + var ciphertextHash *[32]byte var err error if encType == "pkmsg" || encType == "msg" { - decrypted, err = cli.decryptDM(&child, senderEncryptionJID, encType == "pkmsg") + decrypted, ciphertextHash, err = cli.decryptDM(ctx, &child, senderEncryptionJID, encType == "pkmsg", info.Timestamp) containsDirectMsg = true } else if info.IsGroup && encType == "skmsg" { - decrypted, err = cli.decryptGroupMsg(&child, senderEncryptionJID, info.Chat) + decrypted, ciphertextHash, err = cli.decryptGroupMsg(ctx, &child, senderEncryptionJID, info.Chat, info.Timestamp) } else if encType == "msmsg" && info.Sender.IsBot() { targetSenderJID := info.MsgMetaInfo.TargetSender messageSecretSenderJID := targetSenderJID @@ -317,26 +324,28 @@ func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node) } var msMsg waE2E.MessageSecretMessage var messageSecret []byte - if messageSecret, err = cli.Store.MsgSecrets.GetMessageSecret(info.Chat, messageSecretSenderJID, info.MsgMetaInfo.TargetID); err != nil { + if messageSecret, err = cli.Store.MsgSecrets.GetMessageSecret(ctx, info.Chat, messageSecretSenderJID, info.MsgMetaInfo.TargetID); err != nil { err = fmt.Errorf("failed to get message secret for %s: %v", info.MsgMetaInfo.TargetID, err) } else if messageSecret == nil { err = fmt.Errorf("message secret for %s not found", info.MsgMetaInfo.TargetID) } else if err = proto.Unmarshal(child.Content.([]byte), &msMsg); err != nil { err = fmt.Errorf("failed to unmarshal MessageSecretMessage protobuf: %v", err) } else { - decrypted, err = cli.decryptBotMessage(messageSecret, &msMsg, decryptMessageID, targetSenderJID, info) + decrypted, err = cli.decryptBotMessage(ctx, messageSecret, &msMsg, decryptMessageID, targetSenderJID, info) } } else { cli.Log.Warnf("Unhandled encrypted message (type %s) from %s", encType, info.SourceString()) continue } - if err != nil { + if errors.Is(err, EventAlreadyProcessed) { + cli.Log.Debugf("Ignoring message %s from %s: %v", info.ID, info.SourceString(), err) + return + } else if err != nil { cli.Log.Warnf("Error decrypting message from %s: %v", info.SourceString(), err) isUnavailable := encType == "skmsg" && !containsDirectMsg && errors.Is(err, signalerror.ErrNoSenderKeyForUser) - // TODO figure out why @bot messages fail to decrypt - if info.Chat.Server != types.BotServer && encType != "msmsg" { - go cli.sendRetryReceipt(node, info, isUnavailable) + if encType != "msmsg" { + go cli.sendRetryReceipt(context.WithoutCancel(ctx), node, info, isUnavailable) } cli.dispatchEvent(&events.UndecryptableMessage{ Info: *info, @@ -356,74 +365,163 @@ func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node) cli.Log.Warnf("Error unmarshaling decrypted message from %s: %v", info.SourceString(), err) continue } - cli.handleDecryptedMessage(info, &msg, retryCount) + cli.handleDecryptedMessage(ctx, info, &msg, retryCount) handled = true case 3: - handled = cli.handleDecryptedArmadillo(info, decrypted, retryCount) + handled = cli.handleDecryptedArmadillo(ctx, info, decrypted, retryCount) default: cli.Log.Warnf("Unknown version %d in decrypted message from %s", ag.Int("v"), info.SourceString()) } + if ciphertextHash != nil && cli.EnableDecryptedEventBuffer { + // Use the context passed to decryptMessages + err = cli.Store.EventBuffer.ClearBufferedEventPlaintext(ctx, *ciphertextHash) + if err != nil { + zerolog.Ctx(ctx).Err(err). + Hex("ciphertext_hash", ciphertextHash[:]). + Msg("Failed to clear buffered event plaintext") + } else { + zerolog.Ctx(ctx).Debug(). + Hex("ciphertext_hash", ciphertextHash[:]). + Msg("Deleted event plaintext from buffer") + } + + if time.Since(cli.lastDecryptedBufferClear) > 12*time.Hour { + cli.lastDecryptedBufferClear = time.Now() + go func() { + err := cli.Store.EventBuffer.DeleteOldBufferedHashes(context.WithoutCancel(ctx)) + if err != nil { + zerolog.Ctx(ctx).Err(err).Msg("Failed to delete old buffered hashes") + } + }() + } + } } if handled { go cli.sendMessageReceipt(info) } } -func (cli *Client) clearUntrustedIdentity(target types.JID) { - err := cli.Store.Identities.DeleteIdentity(target.SignalAddress().String()) +func (cli *Client) clearUntrustedIdentity(ctx context.Context, target types.JID) error { + err := cli.Store.Identities.DeleteIdentity(ctx, target.SignalAddress().String()) if err != nil { - cli.Log.Warnf("Failed to delete untrusted identity of %s from store: %v", target, err) + return fmt.Errorf("failed to delete identity: %w", err) } - err = cli.Store.Sessions.DeleteSession(target.SignalAddress().String()) + err = cli.Store.Sessions.DeleteSession(ctx, target.SignalAddress().String()) if err != nil { - cli.Log.Warnf("Failed to delete session with %s (untrusted identity) from store: %v", target, err) + return fmt.Errorf("failed to delete session: %w", err) + } + go cli.dispatchEvent(&events.IdentityChange{JID: target, Timestamp: time.Now(), Implicit: true}) + return nil +} + +var EventAlreadyProcessed = errors.New("event was already processed") + +func (cli *Client) bufferedDecrypt( + ctx context.Context, + ciphertext []byte, + serverTimestamp time.Time, + decrypt func(context.Context) ([]byte, error), +) (plaintext []byte, ciphertextHash [32]byte, err error) { + if !cli.EnableDecryptedEventBuffer { + plaintext, err = decrypt(ctx) + return + } + ciphertextHash = sha256.Sum256(ciphertext) + var buf *store.BufferedEvent + buf, err = cli.Store.EventBuffer.GetBufferedEvent(ctx, ciphertextHash) + if err != nil { + err = fmt.Errorf("failed to get buffered event: %w", err) + return + } else if buf != nil { + if buf.Plaintext == nil { + zerolog.Ctx(ctx).Debug(). + Hex("ciphertext_hash", ciphertextHash[:]). + Time("insertion_time", buf.InsertTime). + Msg("Returning event already processed error") + err = fmt.Errorf("%w at %s", EventAlreadyProcessed, buf.InsertTime.String()) + return + } + zerolog.Ctx(ctx).Debug(). + Hex("ciphertext_hash", ciphertextHash[:]). + Time("insertion_time", buf.InsertTime). + Msg("Returning previously decrypted plaintext") + plaintext = buf.Plaintext + return + } + + err = cli.Store.EventBuffer.DoDecryptionTxn(ctx, func(ctx context.Context) (innerErr error) { + plaintext, innerErr = decrypt(ctx) + if innerErr != nil { + return + } + innerErr = cli.Store.EventBuffer.PutBufferedEvent(ctx, ciphertextHash, plaintext, serverTimestamp) + if innerErr != nil { + innerErr = fmt.Errorf("failed to save decrypted event to buffer: %w", innerErr) + } + return + }) + if err == nil { + zerolog.Ctx(ctx).Debug(). + Hex("ciphertext_hash", ciphertextHash[:]). + Msg("Successfully decrypted and saved event") } - cli.dispatchEvent(&events.IdentityChange{JID: target, Timestamp: time.Now(), Implicit: true}) + return } -func (cli *Client) decryptDM(child *waBinary.Node, from types.JID, isPreKey bool) ([]byte, error) { +func (cli *Client) decryptDM(ctx context.Context, child *waBinary.Node, from types.JID, isPreKey bool, serverTS time.Time) ([]byte, *[32]byte, error) { content, ok := child.Content.([]byte) if !ok { - return nil, fmt.Errorf("message content is not a byte slice") + return nil, nil, fmt.Errorf("message content is not a byte slice") } builder := session.NewBuilderFromSignal(cli.Store, from.SignalAddress(), pbSerializer) cipher := session.NewCipher(builder, from.SignalAddress()) var plaintext []byte + var ciphertextHash [32]byte if isPreKey { preKeyMsg, err := protocol.NewPreKeySignalMessageFromBytes(content, pbSerializer.PreKeySignalMessage, pbSerializer.SignalMessage) if err != nil { - return nil, fmt.Errorf("failed to parse prekey message: %w", err) - } - plaintext, _, err = cipher.DecryptMessageReturnKey(preKeyMsg) - if cli.AutoTrustIdentity && errors.Is(err, signalerror.ErrUntrustedIdentity) { - cli.Log.Warnf("Got %v error while trying to decrypt prekey message from %s, clearing stored identity and retrying", err, from) - cli.clearUntrustedIdentity(from) - plaintext, _, err = cipher.DecryptMessageReturnKey(preKeyMsg) - } + return nil, nil, fmt.Errorf("failed to parse prekey message: %w", err) + } + plaintext, ciphertextHash, err = cli.bufferedDecrypt(ctx, content, serverTS, func(decryptCtx context.Context) ([]byte, error) { + pt, innerErr := cipher.DecryptMessage(decryptCtx, preKeyMsg) + if cli.AutoTrustIdentity && errors.Is(innerErr, signalerror.ErrUntrustedIdentity) { + cli.Log.Warnf("Got %v error while trying to decrypt prekey message from %s, clearing stored identity and retrying", innerErr, from) + if innerErr = cli.clearUntrustedIdentity(decryptCtx, from); innerErr != nil { + innerErr = fmt.Errorf("failed to clear untrusted identity: %w", innerErr) + return nil, innerErr + } + pt, innerErr = cipher.DecryptMessage(decryptCtx, preKeyMsg) + } + return pt, innerErr + }) if err != nil { - return nil, fmt.Errorf("failed to decrypt prekey message: %w", err) + return nil, nil, fmt.Errorf("failed to decrypt prekey message: %w", err) } } else { msg, err := protocol.NewSignalMessageFromBytes(content, pbSerializer.SignalMessage) if err != nil { - return nil, fmt.Errorf("failed to parse normal message: %w", err) + return nil, nil, fmt.Errorf("failed to parse normal message: %w", err) } - plaintext, err = cipher.Decrypt(msg) + plaintext, ciphertextHash, err = cli.bufferedDecrypt(ctx, content, serverTS, func(decryptCtx context.Context) ([]byte, error) { + return cipher.Decrypt(decryptCtx, msg) + }) if err != nil { - return nil, fmt.Errorf("failed to decrypt normal message: %w", err) + return nil, nil, fmt.Errorf("failed to decrypt normal message: %w", err) } } - if child.AttrGetter().Int("v") == 3 { - return plaintext, nil + var err error + plaintext, err = unpadMessage(plaintext, child.AttrGetter().Int("v")) + if err != nil { + return nil, nil, fmt.Errorf("failed to unpad message: %w", err) } - return unpadMessage(plaintext) + return plaintext, &ciphertextHash, nil } -func (cli *Client) decryptGroupMsg(child *waBinary.Node, from types.JID, chat types.JID) ([]byte, error) { +func (cli *Client) decryptGroupMsg(ctx context.Context, child *waBinary.Node, from types.JID, chat types.JID, serverTS time.Time) ([]byte, *[32]byte, error) { content, ok := child.Content.([]byte) if !ok { - return nil, fmt.Errorf("message content is not a byte slice") + return nil, nil, fmt.Errorf("message content is not a byte slice") } senderKeyName := protocol.NewSenderKeyName(chat.String(), from.SignalAddress()) @@ -431,16 +529,19 @@ func (cli *Client) decryptGroupMsg(child *waBinary.Node, from types.JID, chat ty cipher := groups.NewGroupCipher(builder, senderKeyName, cli.Store) msg, err := protocol.NewSenderKeyMessageFromBytes(content, pbSerializer.SenderKeyMessage) if err != nil { - return nil, fmt.Errorf("failed to parse group message: %w", err) + return nil, nil, fmt.Errorf("failed to parse group message: %w", err) } - plaintext, err := cipher.Decrypt(msg) + plaintext, ciphertextHash, err := cli.bufferedDecrypt(ctx, content, serverTS, func(decryptCtx context.Context) ([]byte, error) { + return cipher.Decrypt(decryptCtx, msg) + }) if err != nil { - return nil, fmt.Errorf("failed to decrypt group message: %w", err) + return nil, nil, fmt.Errorf("failed to decrypt group message: %w", err) } - if child.AttrGetter().Int("v") == 3 { - return plaintext, nil + plaintext, err = unpadMessage(plaintext, child.AttrGetter().Int("v")) + if err != nil { + return nil, nil, err } - return unpadMessage(plaintext) + return plaintext, &ciphertextHash, nil } const checkPadding = true @@ -451,14 +552,16 @@ func isValidPadding(plaintext []byte) bool { return bytes.HasSuffix(plaintext, expectedPadding) } -func unpadMessage(plaintext []byte) ([]byte, error) { - if len(plaintext) == 0 { +func unpadMessage(plaintext []byte, version int) ([]byte, error) { + if version == 3 { + return plaintext, nil + } else if len(plaintext) == 0 { return nil, fmt.Errorf("plaintext is empty") - } - if checkPadding && !isValidPadding(plaintext) { + } else if checkPadding && !isValidPadding(plaintext) { return nil, fmt.Errorf("plaintext doesn't have expected padding") + } else { + return plaintext[:len(plaintext)-int(plaintext[len(plaintext)-1])], nil } - return plaintext[:len(plaintext)-int(plaintext[len(plaintext)-1])], nil } func padMessage(plaintext []byte) []byte { @@ -471,7 +574,7 @@ func padMessage(plaintext []byte) []byte { return plaintext } -func (cli *Client) handleSenderKeyDistributionMessage(chat, from types.JID, axolotlSKDM []byte) { +func (cli *Client) handleSenderKeyDistributionMessage(ctx context.Context, chat, from types.JID, axolotlSKDM []byte) { builder := groups.NewGroupSessionBuilder(cli.Store, pbSerializer) senderKeyName := protocol.NewSenderKeyName(chat.String(), from.SignalAddress()) sdkMsg, err := protocol.NewSenderKeyDistributionMessageFromBytes(axolotlSKDM, pbSerializer.SenderKeyDistributionMessage) @@ -479,7 +582,11 @@ func (cli *Client) handleSenderKeyDistributionMessage(chat, from types.JID, axol cli.Log.Errorf("Failed to parse sender key distribution message from %s for %s: %v", from, chat, err) return } - builder.Process(senderKeyName, sdkMsg) + err = builder.Process(ctx, senderKeyName, sdkMsg) + if err != nil { + cli.Log.Errorf("Failed to process sender key distribution message from %s for %s: %v", from, chat, err) + return + } cli.Log.Debugf("Processed sender key distribution message from %s in %s", senderKeyName.Sender().String(), senderKeyName.GroupID()) } @@ -498,14 +605,15 @@ func (cli *Client) handleHistorySyncNotificationLoop() { go cli.handleHistorySyncNotificationLoop() } }() + ctx := context.TODO() for notif := range cli.historySyncNotifications { - cli.handleHistorySyncNotification(notif) + cli.handleHistorySyncNotification(ctx, notif) } } -func (cli *Client) handleHistorySyncNotification(notif *waE2E.HistorySyncNotification) { +func (cli *Client) handleHistorySyncNotification(ctx context.Context, notif *waE2E.HistorySyncNotification) { var historySync waHistorySync.HistorySync - if data, err := cli.Download(notif); err != nil { + if data, err := cli.Download(ctx, notif); err != nil { cli.Log.Errorf("Failed to download history sync data: %v", err) } else if reader, err := zlib.NewReader(bytes.NewReader(data)); err != nil { cli.Log.Errorf("Failed to create zlib reader for history sync data: %v", err) @@ -516,9 +624,9 @@ func (cli *Client) handleHistorySyncNotification(notif *waE2E.HistorySyncNotific } else { cli.Log.Debugf("Received history sync (type %s, chunk %d)", historySync.GetSyncType(), historySync.GetChunkOrder()) if historySync.GetSyncType() == waHistorySync.HistorySync_PUSH_NAME { - go cli.handleHistoricalPushNames(historySync.GetPushnames()) + go cli.handleHistoricalPushNames(context.WithoutCancel(ctx), historySync.GetPushnames()) } else if len(historySync.GetConversations()) > 0 { - go cli.storeHistoricalMessageSecrets(historySync.GetConversations()) + go cli.storeHistoricalMessageSecrets(context.WithoutCancel(ctx), historySync.GetConversations()) } cli.dispatchEvent(&events.HistorySync{ Data: &historySync, @@ -526,7 +634,7 @@ func (cli *Client) handleHistorySyncNotification(notif *waE2E.HistorySyncNotific } } -func (cli *Client) handleAppStateSyncKeyShare(keys *waE2E.AppStateSyncKeyShare) { +func (cli *Client) handleAppStateSyncKeyShare(ctx context.Context, keys *waE2E.AppStateSyncKeyShare) { onlyResyncIfNotSynced := true cli.Log.Debugf("Got %d new app state keys", len(keys.GetKeys())) @@ -541,7 +649,7 @@ func (cli *Client) handleAppStateSyncKeyShare(keys *waE2E.AppStateSyncKeyShare) if isReRequest { onlyResyncIfNotSynced = false } - err = cli.Store.AppStateKeys.PutAppStateSyncKey(key.GetKeyID().GetKeyID(), store.AppStateSyncKey{ + err = cli.Store.AppStateKeys.PutAppStateSyncKey(ctx, key.GetKeyID().GetKeyID(), store.AppStateSyncKey{ Data: key.GetKeyData().GetKeyData(), Fingerprint: marshaledFingerprint, Timestamp: key.GetKeyData().GetTimestamp(), @@ -555,7 +663,7 @@ func (cli *Client) handleAppStateSyncKeyShare(keys *waE2E.AppStateSyncKeyShare) cli.appStateKeyRequestsLock.RUnlock() for _, name := range appstate.AllPatchNames { - err := cli.FetchAppState(name, false, onlyResyncIfNotSynced) + err := cli.FetchAppState(ctx, name, false, onlyResyncIfNotSynced) if err != nil { cli.Log.Errorf("Failed to do initial fetch of app state %s: %v", name, err) } @@ -581,7 +689,7 @@ func (cli *Client) handlePlaceholderResendResponse(msg *waE2E.PeerDataOperationR } } -func (cli *Client) handleProtocolMessage(info *types.MessageInfo, msg *waE2E.Message) { +func (cli *Client) handleProtocolMessage(ctx context.Context, info *types.MessageInfo, msg *waE2E.Message) { protoMsg := msg.GetProtocolMessage() if protoMsg.GetHistorySyncNotification() != nil && info.IsFromMe { @@ -597,7 +705,7 @@ func (cli *Client) handleProtocolMessage(info *types.MessageInfo, msg *waE2E.Mes } if protoMsg.GetAppStateSyncKeyShare() != nil && info.IsFromMe { - go cli.handleAppStateSyncKeyShare(protoMsg.AppStateSyncKeyShare) + go cli.handleAppStateSyncKeyShare(context.WithoutCancel(ctx), protoMsg.AppStateSyncKeyShare) } if info.Category == "peer" { @@ -605,8 +713,8 @@ func (cli *Client) handleProtocolMessage(info *types.MessageInfo, msg *waE2E.Mes } } -func (cli *Client) processProtocolParts(info *types.MessageInfo, msg *waE2E.Message) { - cli.storeMessageSecret(info, msg) +func (cli *Client) processProtocolParts(ctx context.Context, info *types.MessageInfo, msg *waE2E.Message) { + cli.storeMessageSecret(ctx, info, msg) // Hopefully sender key distribution messages and protocol messages can't be inside ephemeral messages if msg.GetDeviceSentMessage().GetMessage() != nil { msg = msg.GetDeviceSentMessage().GetMessage() @@ -619,19 +727,19 @@ func (cli *Client) processProtocolParts(info *types.MessageInfo, msg *waE2E.Mess if encryptionIdentity.Server == types.DefaultUserServer && info.SenderAlt.Server == types.HiddenUserServer { encryptionIdentity = info.SenderAlt } - cli.handleSenderKeyDistributionMessage(info.Chat, encryptionIdentity, msg.SenderKeyDistributionMessage.AxolotlSenderKeyDistributionMessage) + cli.handleSenderKeyDistributionMessage(ctx, info.Chat, encryptionIdentity, msg.SenderKeyDistributionMessage.AxolotlSenderKeyDistributionMessage) } } // N.B. Edits are protocol messages, but they're also wrapped inside EditedMessage, // which is only unwrapped after processProtocolParts, so this won't trigger for edits. if msg.GetProtocolMessage() != nil { - cli.handleProtocolMessage(info, msg) + cli.handleProtocolMessage(ctx, info, msg) } } -func (cli *Client) storeMessageSecret(info *types.MessageInfo, msg *waE2E.Message) { +func (cli *Client) storeMessageSecret(ctx context.Context, info *types.MessageInfo, msg *waE2E.Message) { if msgSecret := msg.GetMessageContextInfo().GetMessageSecret(); len(msgSecret) > 0 { - err := cli.Store.MsgSecrets.PutMessageSecret(info.Chat, info.Sender, info.ID, msgSecret) + err := cli.Store.MsgSecrets.PutMessageSecret(ctx, info.Chat, info.Sender, info.ID, msgSecret) if err != nil { cli.Log.Errorf("Failed to store message secret key for %s: %v", info.ID, err) } else { @@ -640,7 +748,7 @@ func (cli *Client) storeMessageSecret(info *types.MessageInfo, msg *waE2E.Messag } } -func (cli *Client) storeHistoricalMessageSecrets(conversations []*waHistorySync.Conversation) { +func (cli *Client) storeHistoricalMessageSecrets(ctx context.Context, conversations []*waHistorySync.Conversation) { var secrets []store.MessageSecretInsert var privacyTokens []store.PrivacyToken ownID := cli.getOwnID().ToNonAD() @@ -690,7 +798,7 @@ func (cli *Client) storeHistoricalMessageSecrets(conversations []*waHistorySync. } if len(secrets) > 0 { cli.Log.Debugf("Storing %d message secret keys in history sync", len(secrets)) - err := cli.Store.MsgSecrets.PutMessageSecrets(secrets) + err := cli.Store.MsgSecrets.PutMessageSecrets(ctx, secrets) if err != nil { cli.Log.Errorf("Failed to store message secret keys in history sync: %v", err) } else { @@ -699,7 +807,7 @@ func (cli *Client) storeHistoricalMessageSecrets(conversations []*waHistorySync. } if len(privacyTokens) > 0 { cli.Log.Debugf("Storing %d privacy tokens in history sync", len(privacyTokens)) - err := cli.Store.PrivacyTokens.PutPrivacyTokens(privacyTokens...) + err := cli.Store.PrivacyTokens.PutPrivacyTokens(ctx, privacyTokens...) if err != nil { cli.Log.Errorf("Failed to store privacy tokens in history sync: %v", err) } else { @@ -708,8 +816,8 @@ func (cli *Client) storeHistoricalMessageSecrets(conversations []*waHistorySync. } } -func (cli *Client) handleDecryptedMessage(info *types.MessageInfo, msg *waE2E.Message, retryCount int) { - cli.processProtocolParts(info, msg) +func (cli *Client) handleDecryptedMessage(ctx context.Context, info *types.MessageInfo, msg *waE2E.Message, retryCount int) { + cli.processProtocolParts(ctx, info, msg) evt := &events.Message{Info: *info, RawMessage: msg, RetryCount: retryCount} cli.dispatchEvent(evt.UnwrapRaw()) } diff --git a/msgsecret.go b/msgsecret.go index 52ed3b2b..55f6d6fc 100644 --- a/msgsecret.go +++ b/msgsecret.go @@ -12,12 +12,11 @@ import ( "fmt" "time" - "github.com/techwiz37/waSocket/proto/waCommon" - "github.com/techwiz37/waSocket/proto/waE2E" - "go.mau.fi/util/random" "google.golang.org/protobuf/proto" + "github.com/techwiz37/waSocket/proto/waCommon" + "github.com/techwiz37/waSocket/proto/waE2E" "github.com/techwiz37/waSocket/types" "github.com/techwiz37/waSocket/types/events" "github.com/techwiz37/waSocket/util/gcmutil" @@ -56,7 +55,7 @@ func generateMsgSecretKey( secretKey := hkdfutil.SHA256(origMsgSecret, nil, useCaseSecret, 32) var additionalData []byte switch modificationType { - case EncSecretPollVote, EncSecretEventResponse: + case EncSecretPollVote, EncSecretEventResponse, "": additionalData = fmt.Appendf(nil, "%s\x00%s", origMsgID, modificationSenderStr) } @@ -91,7 +90,7 @@ type messageEncryptedSecret interface { GetEncPayload() []byte } -func (cli *Client) decryptMsgSecret(msg *events.Message, useCase MsgSecretType, encrypted messageEncryptedSecret, origMsgKey *waCommon.MessageKey) ([]byte, error) { +func (cli *Client) decryptMsgSecret(ctx context.Context, msg *events.Message, useCase MsgSecretType, encrypted messageEncryptedSecret, origMsgKey *waCommon.MessageKey) ([]byte, error) { if cli == nil { return nil, ErrClientIsNil } @@ -99,18 +98,18 @@ func (cli *Client) decryptMsgSecret(msg *events.Message, useCase MsgSecretType, if err != nil { return nil, err } - baseEncKey, err := cli.Store.MsgSecrets.GetMessageSecret(msg.Info.Chat, origSender, origMsgKey.GetID()) + baseEncKey, err := cli.Store.MsgSecrets.GetMessageSecret(ctx, msg.Info.Chat, origSender, origMsgKey.GetID()) if err != nil { return nil, fmt.Errorf("failed to get original message secret key: %w", err) } if baseEncKey == nil && origMsgKey.GetFromMe() && origSender.Server == types.HiddenUserServer { - origSender, err = cli.Store.LIDs.GetPNForLID(context.TODO(), origSender) + origSender, err = cli.Store.LIDs.GetPNForLID(ctx, origSender) if err != nil { return nil, fmt.Errorf("%w (also failed to get PN for LID: %w)", ErrOriginalMessageSecretNotFound, err) } else if origSender.IsEmpty() { return nil, fmt.Errorf("%w (PN for LID not found)", ErrOriginalMessageSecretNotFound) } - baseEncKey, err = cli.Store.MsgSecrets.GetMessageSecret(msg.Info.Chat, origSender, origMsgKey.GetID()) + baseEncKey, err = cli.Store.MsgSecrets.GetMessageSecret(ctx, msg.Info.Chat, origSender, origMsgKey.GetID()) if err != nil { return nil, fmt.Errorf("failed to get original message secret key with PN: %w", err) } @@ -126,14 +125,14 @@ func (cli *Client) decryptMsgSecret(msg *events.Message, useCase MsgSecretType, return plaintext, nil } -func (cli *Client) encryptMsgSecret(ownID, chat, origSender types.JID, origMsgID types.MessageID, useCase MsgSecretType, plaintext []byte) (ciphertext, iv []byte, err error) { +func (cli *Client) encryptMsgSecret(ctx context.Context, ownID, chat, origSender types.JID, origMsgID types.MessageID, useCase MsgSecretType, plaintext []byte) (ciphertext, iv []byte, err error) { if cli == nil { return nil, nil, ErrClientIsNil } else if ownID.IsEmpty() { return nil, nil, ErrNotLoggedIn } - baseEncKey, err := cli.Store.MsgSecrets.GetMessageSecret(chat, origSender, origMsgID) + baseEncKey, err := cli.Store.MsgSecrets.GetMessageSecret(ctx, chat, origSender, origMsgID) if err != nil { return nil, nil, fmt.Errorf("failed to get original message secret key: %w", err) } else if baseEncKey == nil { @@ -149,7 +148,7 @@ func (cli *Client) encryptMsgSecret(ownID, chat, origSender types.JID, origMsgID return ciphertext, iv, nil } -func (cli *Client) decryptBotMessage(messageSecret []byte, msMsg messageEncryptedSecret, messageID types.MessageID, targetSenderJID types.JID, info *types.MessageInfo) ([]byte, error) { +func (cli *Client) decryptBotMessage(ctx context.Context, messageSecret []byte, msMsg messageEncryptedSecret, messageID types.MessageID, targetSenderJID types.JID, info *types.MessageInfo) ([]byte, error) { newKey, additionalData := generateMsgSecretKey("", info.Sender, messageID, targetSenderJID, applyBotMessageHKDF(messageSecret)) plaintext, err := gcmutil.Decrypt(newKey, msMsg.GetEncIV(), msMsg.GetEncPayload(), additionalData) @@ -170,12 +169,12 @@ func (cli *Client) decryptBotMessage(messageSecret []byte, msMsg messageEncrypte // } // fmt.Printf("Reaction message: %+v\n", reaction) // } -func (cli *Client) DecryptReaction(reaction *events.Message) (*waE2E.ReactionMessage, error) { +func (cli *Client) DecryptReaction(ctx context.Context, reaction *events.Message) (*waE2E.ReactionMessage, error) { encReaction := reaction.Message.GetEncReactionMessage() if encReaction == nil { return nil, ErrNotEncryptedReactionMessage } - plaintext, err := cli.decryptMsgSecret(reaction, EncSecretReaction, encReaction, encReaction.GetTargetMessageKey()) + plaintext, err := cli.decryptMsgSecret(ctx, reaction, EncSecretReaction, encReaction, encReaction.GetTargetMessageKey()) if err != nil { return nil, fmt.Errorf("failed to decrypt reaction: %w", err) } @@ -197,12 +196,12 @@ func (cli *Client) DecryptReaction(reaction *events.Message) (*waE2E.ReactionMes // } // fmt.Printf("Comment message: %+v\n", comment) // } -func (cli *Client) DecryptComment(comment *events.Message) (*waE2E.Message, error) { +func (cli *Client) DecryptComment(ctx context.Context, comment *events.Message) (*waE2E.Message, error) { encComment := comment.Message.GetEncCommentMessage() if encComment == nil { return nil, ErrNotEncryptedCommentMessage } - plaintext, err := cli.decryptMsgSecret(comment, EncSecretComment, encComment, encComment.GetTargetMessageKey()) + plaintext, err := cli.decryptMsgSecret(ctx, comment, EncSecretComment, encComment, encComment.GetTargetMessageKey()) if err != nil { return nil, fmt.Errorf("failed to decrypt comment: %w", err) } @@ -227,12 +226,12 @@ func (cli *Client) DecryptComment(comment *events.Message) (*waE2E.Message, erro // fmt.Printf("- %X\n", hash) // } // } -func (cli *Client) DecryptPollVote(vote *events.Message) (*waE2E.PollVoteMessage, error) { +func (cli *Client) DecryptPollVote(ctx context.Context, vote *events.Message) (*waE2E.PollVoteMessage, error) { pollUpdate := vote.Message.GetPollUpdateMessage() if pollUpdate == nil { return nil, ErrNotPollUpdateMessage } - plaintext, err := cli.decryptMsgSecret(vote, EncSecretPollVote, pollUpdate.GetVote(), pollUpdate.GetPollCreationMessageKey()) + plaintext, err := cli.decryptMsgSecret(ctx, vote, EncSecretPollVote, pollUpdate.GetVote(), pollUpdate.GetPollCreationMessageKey()) if err != nil { return nil, fmt.Errorf("failed to decrypt poll vote: %w", err) } @@ -280,8 +279,8 @@ func HashPollOptions(optionNames []string) [][]byte { // } // resp, err := cli.SendMessage(context.Background(), evt.Info.Chat, pollVoteMsg) // } -func (cli *Client) BuildPollVote(pollInfo *types.MessageInfo, optionNames []string) (*waE2E.Message, error) { - pollUpdate, err := cli.EncryptPollVote(pollInfo, &waE2E.PollVoteMessage{ +func (cli *Client) BuildPollVote(ctx context.Context, pollInfo *types.MessageInfo, optionNames []string) (*waE2E.Message, error) { + pollUpdate, err := cli.EncryptPollVote(ctx, pollInfo, &waE2E.PollVoteMessage{ SelectedOptions: HashPollOptions(optionNames), }) return &waE2E.Message{PollUpdateMessage: pollUpdate}, err @@ -313,12 +312,12 @@ func (cli *Client) BuildPollCreation(name string, optionNames []string, selectab } // EncryptPollVote encrypts a poll vote message. This is a slightly lower-level function, using BuildPollVote is recommended. -func (cli *Client) EncryptPollVote(pollInfo *types.MessageInfo, vote *waE2E.PollVoteMessage) (*waE2E.PollUpdateMessage, error) { +func (cli *Client) EncryptPollVote(ctx context.Context, pollInfo *types.MessageInfo, vote *waE2E.PollVoteMessage) (*waE2E.PollUpdateMessage, error) { plaintext, err := proto.Marshal(vote) if err != nil { return nil, fmt.Errorf("failed to marshal poll vote protobuf: %w", err) } - ciphertext, iv, err := cli.encryptMsgSecret(cli.getOwnID(), pollInfo.Chat, pollInfo.Sender, pollInfo.ID, EncSecretPollVote, plaintext) + ciphertext, iv, err := cli.encryptMsgSecret(ctx, cli.getOwnID(), pollInfo.Chat, pollInfo.Sender, pollInfo.ID, EncSecretPollVote, plaintext) if err != nil { return nil, fmt.Errorf("failed to encrypt poll vote: %w", err) } @@ -332,13 +331,13 @@ func (cli *Client) EncryptPollVote(pollInfo *types.MessageInfo, vote *waE2E.Poll }, nil } -func (cli *Client) EncryptComment(rootMsgInfo *types.MessageInfo, comment *waE2E.Message) (*waE2E.Message, error) { +func (cli *Client) EncryptComment(ctx context.Context, rootMsgInfo *types.MessageInfo, comment *waE2E.Message) (*waE2E.Message, error) { plaintext, err := proto.Marshal(comment) if err != nil { return nil, fmt.Errorf("failed to marshal comment protobuf: %w", err) } // TODO is hardcoding LID here correct? What about polls? - ciphertext, iv, err := cli.encryptMsgSecret(cli.getOwnLID(), rootMsgInfo.Chat, rootMsgInfo.Sender, rootMsgInfo.ID, EncSecretComment, plaintext) + ciphertext, iv, err := cli.encryptMsgSecret(ctx, cli.getOwnLID(), rootMsgInfo.Chat, rootMsgInfo.Sender, rootMsgInfo.ID, EncSecretComment, plaintext) if err != nil { return nil, fmt.Errorf("failed to encrypt comment: %w", err) } @@ -356,14 +355,14 @@ func (cli *Client) EncryptComment(rootMsgInfo *types.MessageInfo, comment *waE2E }, nil } -func (cli *Client) EncryptReaction(rootMsgInfo *types.MessageInfo, reaction *waE2E.ReactionMessage) (*waE2E.EncReactionMessage, error) { +func (cli *Client) EncryptReaction(ctx context.Context, rootMsgInfo *types.MessageInfo, reaction *waE2E.ReactionMessage) (*waE2E.EncReactionMessage, error) { reactionKey := reaction.Key reaction.Key = nil plaintext, err := proto.Marshal(reaction) if err != nil { return nil, fmt.Errorf("failed to marshal reaction protobuf: %w", err) } - ciphertext, iv, err := cli.encryptMsgSecret(cli.getOwnLID(), rootMsgInfo.Chat, rootMsgInfo.Sender, rootMsgInfo.ID, EncSecretReaction, plaintext) + ciphertext, iv, err := cli.encryptMsgSecret(ctx, cli.getOwnLID(), rootMsgInfo.Chat, rootMsgInfo.Sender, rootMsgInfo.ID, EncSecretReaction, plaintext) if err != nil { return nil, fmt.Errorf("failed to encrypt reaction: %w", err) } diff --git a/notification.go b/notification.go index ed5e1da1..3bc7fc53 100644 --- a/notification.go +++ b/notification.go @@ -22,7 +22,7 @@ import ( "github.com/techwiz37/waSocket/types/events" ) -func (cli *Client) handleEncryptNotification(node *waBinary.Node) { +func (cli *Client) handleEncryptNotification(ctx context.Context, node *waBinary.Node) { from := node.AttrGetter().JID("from") if from == types.ServerJID { count := node.GetChildByTag("count") @@ -34,15 +34,15 @@ func (cli *Client) handleEncryptNotification(node *waBinary.Node) { } cli.Log.Infof("Got prekey count from server: %s", node.XMLString()) if otksLeft < MinPreKeyCount { - cli.uploadPreKeys() + cli.uploadPreKeys(ctx) } } else if _, ok := node.GetOptionalChildByTag("identity"); ok { cli.Log.Debugf("Got identity change for %s: %s, deleting all identities/sessions for that number", from, node.XMLString()) - err := cli.Store.Identities.DeleteAllIdentities(from.User) + err := cli.Store.Identities.DeleteAllIdentities(ctx, from.User) if err != nil { cli.Log.Warnf("Failed to delete all identities of %s from store after identity change: %v", from, err) } - err = cli.Store.Sessions.DeleteAllSessions(from.User) + err = cli.Store.Sessions.DeleteAllSessions(ctx, from.User) if err != nil { cli.Log.Warnf("Failed to delete all sessions of %s from store after identity change: %v", from, err) } @@ -53,13 +53,13 @@ func (cli *Client) handleEncryptNotification(node *waBinary.Node) { } } -func (cli *Client) handleAppStateNotification(node *waBinary.Node) { +func (cli *Client) handleAppStateNotification(ctx context.Context, node *waBinary.Node) { for _, collection := range node.GetChildrenByTag("collection") { ag := collection.AttrGetter() name := appstate.WAPatchName(ag.String("name")) version := ag.Uint64("version") cli.Log.Debugf("Got server sync notification that app state %s has updated to version %d", name, version) - err := cli.FetchAppState(name, false, false) + err := cli.FetchAppState(ctx, name, false, false) if errors.Is(err, ErrIQDisconnected) || errors.Is(err, ErrNotConnected) { // There are some app state changes right before a remote logout, so stop syncing if we're disconnected. cli.Log.Debugf("Failed to sync app state after notification: %v, not trying to sync other states", err) @@ -70,7 +70,7 @@ func (cli *Client) handleAppStateNotification(node *waBinary.Node) { } } -func (cli *Client) handlePictureNotification(node *waBinary.Node) { +func (cli *Client) handlePictureNotification(ctx context.Context, node *waBinary.Node) { ts := node.AttrGetter().UnixTime("t") for _, child := range node.GetChildren() { ag := child.AttrGetter() @@ -96,14 +96,14 @@ func (cli *Client) handlePictureNotification(node *waBinary.Node) { } } -func (cli *Client) handleDeviceNotification(node *waBinary.Node) { +func (cli *Client) handleDeviceNotification(ctx context.Context, node *waBinary.Node) { cli.userDevicesCacheLock.Lock() defer cli.userDevicesCacheLock.Unlock() ag := node.AttrGetter() from := ag.JID("from") fromLID := ag.OptionalJID("lid") if fromLID != nil { - cli.StoreLIDPNMapping(context.TODO(), *fromLID, from) + cli.StoreLIDPNMapping(ctx, *fromLID, from) } cached, ok := cli.userDevicesCache[from] if !ok { @@ -167,7 +167,7 @@ func (cli *Client) handleDeviceNotification(node *waBinary.Node) { } } -func (cli *Client) handleFBDeviceNotification(node *waBinary.Node) { +func (cli *Client) handleFBDeviceNotification(ctx context.Context, node *waBinary.Node) { cli.userDevicesCacheLock.Lock() defer cli.userDevicesCacheLock.Unlock() jid := node.AttrGetter().JID("from") @@ -175,7 +175,7 @@ func (cli *Client) handleFBDeviceNotification(node *waBinary.Node) { cli.userDevicesCache[jid] = userDevices } -func (cli *Client) handleOwnDevicesNotification(node *waBinary.Node) { +func (cli *Client) handleOwnDevicesNotification(ctx context.Context, node *waBinary.Node) { cli.userDevicesCacheLock.Lock() defer cli.userDevicesCacheLock.Unlock() ownID := cli.getOwnID().ToNonAD() @@ -207,7 +207,7 @@ func (cli *Client) handleOwnDevicesNotification(node *waBinary.Node) { } } -func (cli *Client) handleBlocklist(node *waBinary.Node) { +func (cli *Client) handleBlocklist(ctx context.Context, node *waBinary.Node) { ag := node.AttrGetter() evt := events.Blocklist{ Action: events.BlocklistAction(ag.OptionalString("action")), @@ -229,27 +229,27 @@ func (cli *Client) handleBlocklist(node *waBinary.Node) { cli.dispatchEvent(&evt) } -func (cli *Client) handleAccountSyncNotification(node *waBinary.Node) { +func (cli *Client) handleAccountSyncNotification(ctx context.Context, node *waBinary.Node) { for _, child := range node.GetChildren() { switch child.Tag { case "privacy": - cli.handlePrivacySettingsNotification(&child) + cli.handlePrivacySettingsNotification(ctx, &child) case "devices": - cli.handleOwnDevicesNotification(&child) + cli.handleOwnDevicesNotification(ctx, &child) case "picture": cli.dispatchEvent(&events.Picture{ Timestamp: node.AttrGetter().UnixTime("t"), JID: cli.getOwnID().ToNonAD(), }) case "blocklist": - cli.handleBlocklist(&child) + cli.handleBlocklist(ctx, &child) default: cli.Log.Debugf("Unhandled account sync item %s", child.Tag) } } } -func (cli *Client) handlePrivacyTokenNotification(node *waBinary.Node) { +func (cli *Client) handlePrivacyTokenNotification(ctx context.Context, node *waBinary.Node) { ownID := cli.getOwnID().ToNonAD() if ownID.IsEmpty() { cli.Log.Debugf("Ignoring privacy token notification, session was deleted") @@ -281,7 +281,7 @@ func (cli *Client) handlePrivacyTokenNotification(node *waBinary.Node) { if !ag.OK() { cli.Log.Warnf("privacy_token notification is missing some fields: %v", ag.Error()) } - err := cli.Store.PrivacyTokens.PutPrivacyTokens(store.PrivacyToken{ + err := cli.Store.PrivacyTokens.PutPrivacyTokens(ctx, store.PrivacyToken{ User: sender, Token: token, Timestamp: timestamp, @@ -338,7 +338,7 @@ func (cli *Client) parseNewsletterMessages(node *waBinary.Node) []*types.Newslet return output } -func (cli *Client) handleNewsletterNotification(node *waBinary.Node) { +func (cli *Client) handleNewsletterNotification(ctx context.Context, node *waBinary.Node) { ag := node.AttrGetter() liveUpdates := node.GetChildByTag("live_updates") cli.dispatchEvent(&events.NewsletterLiveUpdate{ @@ -361,7 +361,7 @@ type newsletterEvent struct { // _on_state_change -> id, is_requestor, state } -func (cli *Client) handleMexNotification(node *waBinary.Node) { +func (cli *Client) handleMexNotification(ctx context.Context, node *waBinary.Node) { for _, child := range node.GetChildren() { if child.Tag != "update" { continue @@ -386,7 +386,7 @@ func (cli *Client) handleMexNotification(node *waBinary.Node) { } } -func (cli *Client) handleStatusNotification(node *waBinary.Node) { +func (cli *Client) handleStatusNotification(ctx context.Context, node *waBinary.Node) { ag := node.AttrGetter() child, found := node.GetOptionalChildByTag("set") if !found { @@ -406,6 +406,7 @@ func (cli *Client) handleStatusNotification(node *waBinary.Node) { } func (cli *Client) handleNotification(node *waBinary.Node) { + ctx := context.TODO() ag := node.AttrGetter() notifType := ag.String("type") if !ag.OK() { @@ -414,15 +415,15 @@ func (cli *Client) handleNotification(node *waBinary.Node) { defer cli.maybeDeferredAck(node)() switch notifType { case "encrypt": - go cli.handleEncryptNotification(node) + go cli.handleEncryptNotification(ctx, node) case "server_sync": - go cli.handleAppStateNotification(node) + go cli.handleAppStateNotification(ctx, node) case "account_sync": - go cli.handleAccountSyncNotification(node) + go cli.handleAccountSyncNotification(ctx, node) case "devices": - cli.handleDeviceNotification(node) + cli.handleDeviceNotification(ctx, node) case "fbid:devices": - cli.handleFBDeviceNotification(node) + cli.handleFBDeviceNotification(ctx, node) case "w:gp2": evt, err := cli.parseGroupNotification(node) if err != nil { @@ -431,19 +432,19 @@ func (cli *Client) handleNotification(node *waBinary.Node) { cli.dispatchEvent(evt) } case "picture": - cli.handlePictureNotification(node) + cli.handlePictureNotification(ctx, node) case "mediaretry": - cli.handleMediaRetryNotification(node) + cli.handleMediaRetryNotification(ctx, node) case "privacy_token": - cli.handlePrivacyTokenNotification(node) + cli.handlePrivacyTokenNotification(ctx, node) case "link_code_companion_reg": - go cli.tryHandleCodePairNotification(node) + go cli.tryHandleCodePairNotification(ctx, node) case "newsletter": - cli.handleNewsletterNotification(node) + cli.handleNewsletterNotification(ctx, node) case "mex": - cli.handleMexNotification(node) + cli.handleMexNotification(ctx, node) case "status": - cli.handleStatusNotification(node) + cli.handleStatusNotification(ctx, node) // Other types: business, disappearing_mode, server, status, pay, psa default: cli.Log.Debugf("Unhandled notification with type %s", notifType) diff --git a/pair-code.go b/pair-code.go index 0f5e13f9..ee7a0673 100644 --- a/pair-code.go +++ b/pair-code.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "crypto/aes" "crypto/cipher" "crypto/sha256" @@ -86,7 +87,7 @@ func generateCompanionEphemeralKey() (ephemeralKeyPair *keys.KeyPair, ephemeralK // (the server will validate it and return 400 if it's wrong). // // See https://faq.whatsapp.com/1324084875126592 for more info -func (cli *Client) PairPhone(phone string, showPushNotification bool, clientType PairClientType, clientDisplayName string) (string, error) { +func (cli *Client) PairPhone(ctx context.Context, phone string, showPushNotification bool, clientType PairClientType, clientDisplayName string) (string, error) { if cli == nil { return "", ErrClientIsNil } @@ -102,6 +103,7 @@ func (cli *Client) PairPhone(phone string, showPushNotification bool, clientType Namespace: "md", Type: iqSet, To: types.ServerJID, + Context: ctx, Content: []waBinary.Node{{ Tag: "link_code_companion_reg", Attrs: waBinary.Attrs{ @@ -139,14 +141,14 @@ func (cli *Client) PairPhone(phone string, showPushNotification bool, clientType return encodedLinkingCode[0:4] + "-" + encodedLinkingCode[4:], nil } -func (cli *Client) tryHandleCodePairNotification(parentNode *waBinary.Node) { - err := cli.handleCodePairNotification(parentNode) +func (cli *Client) tryHandleCodePairNotification(ctx context.Context, parentNode *waBinary.Node) { + err := cli.handleCodePairNotification(ctx, parentNode) if err != nil { cli.Log.Errorf("Failed to handle code pair notification: %s", err) } } -func (cli *Client) handleCodePairNotification(parentNode *waBinary.Node) error { +func (cli *Client) handleCodePairNotification(ctx context.Context, parentNode *waBinary.Node) error { node, ok := parentNode.GetOptionalChildByTag("link_code_companion_reg") if !ok { return &ElementMissingError{ @@ -225,6 +227,7 @@ func (cli *Client) handleCodePairNotification(parentNode *waBinary.Node) error { Namespace: "md", Type: iqSet, To: types.ServerJID, + Context: ctx, Content: []waBinary.Node{{ Tag: "link_code_companion_reg", Attrs: waBinary.Attrs{ diff --git a/pair.go b/pair.go index 674709b9..ad6bf61d 100644 --- a/pair.go +++ b/pair.go @@ -25,6 +25,13 @@ import ( "github.com/techwiz37/waSocket/util/keys" ) +var ( + AdvPrefixAccountSignature = []byte{6, 0} + AdvPrefixDeviceSignatureGenerate = []byte{6, 1} + AdvHostedPrefixDeviceIdentityAccountSignature = []byte{6, 5} + AdvHostedPrefixDeviceIdentityDeviceSignatureVerification = []byte{6, 6} +) + func (cli *Client) handleIQ(node *waBinary.Node) { children := node.GetChildren() if len(children) != 1 || node.Attrs["from"] != types.ServerJID { @@ -87,7 +94,7 @@ func (cli *Client) handlePairSuccess(node *waBinary.Node) { platform, _ := pairSuccess.GetChildByTag("platform").Attrs["name"].(string) go func() { - err := cli.handlePair(deviceIdentityBytes, id, businessName, platform, jid, lid) + err := cli.handlePair(context.TODO(), deviceIdentityBytes, id, businessName, platform, jid, lid) if err != nil { cli.Log.Errorf("Failed to pair device: %v", err) cli.Disconnect() @@ -99,19 +106,24 @@ func (cli *Client) handlePairSuccess(node *waBinary.Node) { }() } -func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, platform string, jid, lid types.JID) error { +func (cli *Client) handlePair(ctx context.Context, deviceIdentityBytes []byte, reqID, businessName, platform string, jid, lid types.JID) error { var deviceIdentityContainer waAdv.ADVSignedDeviceIdentityHMAC err := proto.Unmarshal(deviceIdentityBytes, &deviceIdentityContainer) if err != nil { cli.sendPairError(reqID, 500, "internal-error") return &PairProtoError{"failed to parse device identity container in pair success message", err} } + isHostedAccount := deviceIdentityContainer.AccountType != nil && *deviceIdentityContainer.AccountType == waAdv.ADVEncryptionType_HOSTED h := hmac.New(sha256.New, cli.Store.AdvSecretKey) + if isHostedAccount { + h.Write(AdvHostedPrefixDeviceIdentityAccountSignature) + } h.Write(deviceIdentityContainer.Details) + if !bytes.Equal(h.Sum(nil), deviceIdentityContainer.HMAC) { cli.Log.Warnf("Invalid HMAC from pair success message") - cli.sendPairError(reqID, 401, "not-authorized") + cli.sendPairError(reqID, 401, "hmac-mismatch") return ErrPairInvalidDeviceIdentityHMAC } @@ -122,12 +134,12 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p return &PairProtoError{"failed to parse signed device identity in pair success message", err} } - if !verifyDeviceIdentityAccountSignature(&deviceIdentity, cli.Store.IdentityKey) { - cli.sendPairError(reqID, 401, "not-authorized") + if !verifyDeviceIdentityAccountSignature(&deviceIdentity, cli.Store.IdentityKey, isHostedAccount) { + cli.sendPairError(reqID, 401, "signature-mismatch") return ErrPairInvalidDeviceSignature } - deviceIdentity.DeviceSignature = generateDeviceSignature(&deviceIdentity, cli.Store.IdentityKey)[:] + deviceIdentity.DeviceSignature = generateDeviceSignature(&deviceIdentity, cli.Store.IdentityKey, isHostedAccount)[:] var deviceIdentityDetails waAdv.ADVDeviceIdentity err = proto.Unmarshal(deviceIdentity.Details, &deviceIdentityDetails) @@ -158,15 +170,15 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p cli.Store.LID = lid cli.Store.BusinessName = businessName cli.Store.Platform = platform - err = cli.Store.Save() + err = cli.Store.Save(ctx) if err != nil { cli.sendPairError(reqID, 500, "internal-error") return &PairDatabaseError{"failed to save device store", err} } - cli.StoreLIDPNMapping(context.TODO(), lid, jid) - err = cli.Store.Identities.PutIdentity(mainDeviceLID.SignalAddress().String(), mainDeviceIdentity) + cli.StoreLIDPNMapping(ctx, lid, jid) + err = cli.Store.Identities.PutIdentity(ctx, mainDeviceLID.SignalAddress().String(), mainDeviceIdentity) if err != nil { - _ = cli.Store.Delete() + _ = cli.Store.Delete(ctx) cli.sendPairError(reqID, 500, "internal-error") return &PairDatabaseError{"failed to store main device identity", err} } @@ -193,7 +205,7 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p }}, }) if err != nil { - _ = cli.Store.Delete() + _ = cli.Store.Delete(ctx) return fmt.Errorf("failed to send pairing confirmation: %w", err) } return nil @@ -212,7 +224,7 @@ func concatBytes(data ...[]byte) []byte { return output } -func verifyDeviceIdentityAccountSignature(deviceIdentity *waAdv.ADVSignedDeviceIdentity, ikp *keys.KeyPair) bool { +func verifyDeviceIdentityAccountSignature(deviceIdentity *waAdv.ADVSignedDeviceIdentity, ikp *keys.KeyPair, isHostedAccount bool) bool { if len(deviceIdentity.AccountSignatureKey) != 32 || len(deviceIdentity.AccountSignature) != 64 { return false } @@ -220,12 +232,20 @@ func verifyDeviceIdentityAccountSignature(deviceIdentity *waAdv.ADVSignedDeviceI signatureKey := ecc.NewDjbECPublicKey(*(*[32]byte)(deviceIdentity.AccountSignatureKey)) signature := *(*[64]byte)(deviceIdentity.AccountSignature) - message := concatBytes([]byte{6, 0}, deviceIdentity.Details, ikp.Pub[:]) + prefix := AdvPrefixAccountSignature + if isHostedAccount { + prefix = AdvHostedPrefixDeviceIdentityAccountSignature + } + message := concatBytes(prefix, deviceIdentity.Details, ikp.Pub[:]) return ecc.VerifySignature(signatureKey, message, signature) } -func generateDeviceSignature(deviceIdentity *waAdv.ADVSignedDeviceIdentity, ikp *keys.KeyPair) *[64]byte { - message := concatBytes([]byte{6, 1}, deviceIdentity.Details, ikp.Pub[:], deviceIdentity.AccountSignatureKey) +func generateDeviceSignature(deviceIdentity *waAdv.ADVSignedDeviceIdentity, ikp *keys.KeyPair, isHostedAccount bool) *[64]byte { + prefix := AdvPrefixDeviceSignatureGenerate + if isHostedAccount { + prefix = AdvHostedPrefixDeviceIdentityDeviceSignatureVerification + } + message := concatBytes(prefix, deviceIdentity.Details, ikp.Pub[:], deviceIdentity.AccountSignatureKey) sig := ecc.CalculateSignature(ecc.NewDjbECPrivateKey(*ikp.Priv), message) return &sig } diff --git a/prekeys.go b/prekeys.go index c3d20ad7..ec2a219b 100644 --- a/prekeys.go +++ b/prekeys.go @@ -29,11 +29,12 @@ const ( MinPreKeyCount = 5 ) -func (cli *Client) getServerPreKeyCount() (int, error) { +func (cli *Client) getServerPreKeyCount(ctx context.Context) (int, error) { resp, err := cli.sendIQ(infoQuery{ Namespace: "encrypt", Type: "get", To: types.ServerJID, + Context: ctx, Content: []waBinary.Node{ {Tag: "count"}, }, @@ -47,11 +48,11 @@ func (cli *Client) getServerPreKeyCount() (int, error) { return val, ag.Error() } -func (cli *Client) uploadPreKeys() { +func (cli *Client) uploadPreKeys(ctx context.Context) { cli.uploadPreKeysLock.Lock() defer cli.uploadPreKeysLock.Unlock() if cli.lastPreKeyUpload.Add(10 * time.Minute).After(time.Now()) { - sc, _ := cli.getServerPreKeyCount() + sc, _ := cli.getServerPreKeyCount(ctx) if sc >= WantedPreKeyCount { cli.Log.Debugf("Canceling prekey upload request due to likely race condition") return @@ -59,13 +60,14 @@ func (cli *Client) uploadPreKeys() { } var registrationIDBytes [4]byte binary.BigEndian.PutUint32(registrationIDBytes[:], cli.Store.RegistrationID) - preKeys, err := cli.Store.PreKeys.GetOrGenPreKeys(WantedPreKeyCount) + preKeys, err := cli.Store.PreKeys.GetOrGenPreKeys(ctx, WantedPreKeyCount) if err != nil { cli.Log.Errorf("Failed to get prekeys to upload: %v", err) return } cli.Log.Infof("Uploading %d new prekeys to server", len(preKeys)) _, err = cli.sendIQ(infoQuery{ + Context: ctx, Namespace: "encrypt", Type: "set", To: types.ServerJID, @@ -82,11 +84,13 @@ func (cli *Client) uploadPreKeys() { return } cli.Log.Debugf("Got response to uploading prekeys") - err = cli.Store.PreKeys.MarkPreKeysAsUploaded(preKeys[len(preKeys)-1].KeyID) + err = cli.Store.PreKeys.MarkPreKeysAsUploaded(ctx, preKeys[len(preKeys)-1].KeyID) if err != nil { cli.Log.Warnf("Failed to mark prekeys as uploaded: %v", err) + return } cli.lastPreKeyUpload = time.Now() + return } type preKeyResp struct { diff --git a/presence.go b/presence.go index e828a4ef..a16dbd18 100644 --- a/presence.go +++ b/presence.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "fmt" waBinary "github.com/techwiz37/waSocket/binary" @@ -87,7 +88,7 @@ func (cli *Client) SendPresence(state types.Presence) error { // // cli.SendPresence(types.PresenceAvailable) func (cli *Client) SubscribePresence(jid types.JID) error { - privacyToken, err := cli.Store.PrivacyTokens.GetPrivacyToken(jid) + privacyToken, err := cli.Store.PrivacyTokens.GetPrivacyToken(context.TODO(), jid) if err != nil { return fmt.Errorf("failed to get privacy token: %w", err) } else if privacyToken == nil { diff --git a/privacysettings.go b/privacysettings.go index 30feffbc..106bf204 100644 --- a/privacysettings.go +++ b/privacysettings.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "strconv" "time" @@ -16,7 +17,7 @@ import ( ) // TryFetchPrivacySettings will fetch the user's privacy settings, either from the in-memory cache or from the server. -func (cli *Client) TryFetchPrivacySettings(ignoreCache bool) (*types.PrivacySettings, error) { +func (cli *Client) TryFetchPrivacySettings(ctx context.Context, ignoreCache bool) (*types.PrivacySettings, error) { if cli == nil { return nil, ErrClientIsNil } else if val := cli.privacySettingsCache.Load(); val != nil && !ignoreCache { @@ -24,6 +25,7 @@ func (cli *Client) TryFetchPrivacySettings(ignoreCache bool) (*types.PrivacySett } resp, err := cli.sendIQ(infoQuery{ Namespace: "privacy", + Context: ctx, Type: iqGet, To: types.ServerJID, Content: []waBinary.Node{{Tag: "privacy"}}, @@ -43,11 +45,11 @@ func (cli *Client) TryFetchPrivacySettings(ignoreCache bool) (*types.PrivacySett // GetPrivacySettings will get the user's privacy settings. If an error occurs while fetching them, the error will be // logged, but the method will just return an empty struct. -func (cli *Client) GetPrivacySettings() (settings types.PrivacySettings) { +func (cli *Client) GetPrivacySettings(ctx context.Context) (settings types.PrivacySettings) { if cli == nil || cli.MessengerConfig != nil { return } - settingsPtr, err := cli.TryFetchPrivacySettings(false) + settingsPtr, err := cli.TryFetchPrivacySettings(ctx, false) if err != nil { cli.Log.Errorf("Failed to fetch privacy settings: %v", err) } else { @@ -59,8 +61,8 @@ func (cli *Client) GetPrivacySettings() (settings types.PrivacySettings) { // SetPrivacySetting will set the given privacy setting to the given value. // The privacy settings will be fetched from the server after the change and the new settings will be returned. // If an error occurs while fetching the new settings, will return an empty struct. -func (cli *Client) SetPrivacySetting(name types.PrivacySettingType, value types.PrivacySetting) (settings types.PrivacySettings, err error) { - settingsPtr, err := cli.TryFetchPrivacySettings(false) +func (cli *Client) SetPrivacySetting(ctx context.Context, name types.PrivacySettingType, value types.PrivacySetting) (settings types.PrivacySettings, err error) { + settingsPtr, err := cli.TryFetchPrivacySettings(ctx, false) if err != nil { return settings, err } @@ -155,17 +157,14 @@ func (cli *Client) parsePrivacySettings(privacyNode *waBinary.Node, settings *ty return &evt } -func (cli *Client) handlePrivacySettingsNotification(privacyNode *waBinary.Node) { +func (cli *Client) handlePrivacySettingsNotification(ctx context.Context, privacyNode *waBinary.Node) { cli.Log.Debugf("Parsing privacy settings change notification") - settings, err := cli.TryFetchPrivacySettings(false) + settings, err := cli.TryFetchPrivacySettings(ctx, false) if err != nil { cli.Log.Errorf("Failed to fetch privacy settings when handling change: %v", err) return } evt := cli.parsePrivacySettings(privacyNode, settings) - // The data isn't be reliable if the fetch failed, so only cache if it didn't fail - if err == nil { - cli.privacySettingsCache.Store(settings) - } + cli.privacySettingsCache.Store(settings) cli.dispatchEvent(evt) } diff --git a/proto/waAdv/WAAdv.pb.go b/proto/waAdv/WAAdv.pb.go index c0b548ed..0a8fdb30 100644 --- a/proto/waAdv/WAAdv.pb.go +++ b/proto/waAdv/WAAdv.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waAdv/WAAdv.proto @@ -9,11 +9,10 @@ package waAdv import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -421,17 +420,49 @@ func (x *ADVSignedDeviceIdentityHMAC) GetAccountType() ADVEncryptionType { var File_waAdv_WAAdv_proto protoreflect.FileDescriptor -//go:embed WAAdv.pb.raw -var file_waAdv_WAAdv_proto_rawDesc []byte +const file_waAdv_WAAdv_proto_rawDesc = "" + + "\n" + + "\x11waAdv/WAAdv.proto\x12\x05WAAdv\"\xcd\x01\n" + + "\x0fADVKeyIndexList\x12\x14\n" + + "\x05rawID\x18\x01 \x01(\rR\x05rawID\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x04R\ttimestamp\x12\"\n" + + "\fcurrentIndex\x18\x03 \x01(\rR\fcurrentIndex\x12&\n" + + "\fvalidIndexes\x18\x04 \x03(\rB\x02\x10\x01R\fvalidIndexes\x12:\n" + + "\vaccountType\x18\x05 \x01(\x0e2\x18.WAAdv.ADVEncryptionTypeR\vaccountType\"\x8f\x01\n" + + "\x15ADVSignedKeyIndexList\x12\x18\n" + + "\adetails\x18\x01 \x01(\fR\adetails\x12*\n" + + "\x10accountSignature\x18\x02 \x01(\fR\x10accountSignature\x120\n" + + "\x13accountSignatureKey\x18\x03 \x01(\fR\x13accountSignatureKey\"\xd9\x01\n" + + "\x11ADVDeviceIdentity\x12\x14\n" + + "\x05rawID\x18\x01 \x01(\rR\x05rawID\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x04R\ttimestamp\x12\x1a\n" + + "\bkeyIndex\x18\x03 \x01(\rR\bkeyIndex\x12:\n" + + "\vaccountType\x18\x04 \x01(\x0e2\x18.WAAdv.ADVEncryptionTypeR\vaccountType\x128\n" + + "\n" + + "deviceType\x18\x05 \x01(\x0e2\x18.WAAdv.ADVEncryptionTypeR\n" + + "deviceType\"\xbb\x01\n" + + "\x17ADVSignedDeviceIdentity\x12\x18\n" + + "\adetails\x18\x01 \x01(\fR\adetails\x120\n" + + "\x13accountSignatureKey\x18\x02 \x01(\fR\x13accountSignatureKey\x12*\n" + + "\x10accountSignature\x18\x03 \x01(\fR\x10accountSignature\x12(\n" + + "\x0fdeviceSignature\x18\x04 \x01(\fR\x0fdeviceSignature\"\x87\x01\n" + + "\x1bADVSignedDeviceIdentityHMAC\x12\x18\n" + + "\adetails\x18\x01 \x01(\fR\adetails\x12\x12\n" + + "\x04HMAC\x18\x02 \x01(\fR\x04HMAC\x12:\n" + + "\vaccountType\x18\x03 \x01(\x0e2\x18.WAAdv.ADVEncryptionTypeR\vaccountType*)\n" + + "\x11ADVEncryptionType\x12\b\n" + + "\x04E2EE\x10\x00\x12\n" + + "\n" + + "\x06HOSTED\x10\x01B!Z\x1fgithub.com/techwiz37/waSocket/proto/waAdv" var ( file_waAdv_WAAdv_proto_rawDescOnce sync.Once - file_waAdv_WAAdv_proto_rawDescData = file_waAdv_WAAdv_proto_rawDesc + file_waAdv_WAAdv_proto_rawDescData []byte ) func file_waAdv_WAAdv_proto_rawDescGZIP() []byte { file_waAdv_WAAdv_proto_rawDescOnce.Do(func() { - file_waAdv_WAAdv_proto_rawDescData = protoimpl.X.CompressGZIP(file_waAdv_WAAdv_proto_rawDescData) + file_waAdv_WAAdv_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waAdv_WAAdv_proto_rawDesc), len(file_waAdv_WAAdv_proto_rawDesc))) }) return file_waAdv_WAAdv_proto_rawDescData } @@ -467,7 +498,7 @@ func file_waAdv_WAAdv_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waAdv_WAAdv_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waAdv_WAAdv_proto_rawDesc), len(file_waAdv_WAAdv_proto_rawDesc)), NumEnums: 1, NumMessages: 5, NumExtensions: 0, @@ -479,7 +510,6 @@ func file_waAdv_WAAdv_proto_init() { MessageInfos: file_waAdv_WAAdv_proto_msgTypes, }.Build() File_waAdv_WAAdv_proto = out.File - file_waAdv_WAAdv_proto_rawDesc = nil file_waAdv_WAAdv_proto_goTypes = nil file_waAdv_WAAdv_proto_depIdxs = nil } diff --git a/proto/waAdv/WAAdv.pb.raw b/proto/waAdv/WAAdv.pb.raw deleted file mode 100644 index d894e36f..00000000 Binary files a/proto/waAdv/WAAdv.pb.raw and /dev/null differ diff --git a/proto/waArmadilloApplication/WAArmadilloApplication.pb.go b/proto/waArmadilloApplication/WAArmadilloApplication.pb.go index b8e04f37..1b6a74a2 100644 --- a/proto/waArmadilloApplication/WAArmadilloApplication.pb.go +++ b/proto/waArmadilloApplication/WAArmadilloApplication.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waArmadilloApplication/WAArmadilloApplication.proto @@ -9,14 +9,13 @@ package waArmadilloApplication import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waArmadilloXMA "github.com/techwiz37/waSocket/proto/waArmadilloXMA" waCommon "github.com/techwiz37/waSocket/proto/waCommon" - - _ "embed" ) const ( @@ -2604,17 +2603,197 @@ func (x *Armadillo_Content_CommonSticker) GetStickerType() Armadillo_Content_Com var File_waArmadilloApplication_WAArmadilloApplication_proto protoreflect.FileDescriptor -//go:embed WAArmadilloApplication.pb.raw -var file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc []byte +const file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc = "" + + "\n" + + "3waArmadilloApplication/WAArmadilloApplication.proto\x12\x16WAArmadilloApplication\x1a#waArmadilloXMA/WAArmadilloXMA.proto\x1a\x17waCommon/WACommon.proto\"\x97?\n" + + "\tArmadillo\x12C\n" + + "\apayload\x18\x01 \x01(\v2).WAArmadilloApplication.Armadillo.PayloadR\apayload\x12F\n" + + "\bmetadata\x18\x02 \x01(\v2*.WAArmadilloApplication.Armadillo.MetadataR\bmetadata\x1a\n" + + "\n" + + "\bMetadata\x1a\xd8\x02\n" + + "\aPayload\x12E\n" + + "\acontent\x18\x01 \x01(\v2).WAArmadilloApplication.Armadillo.ContentH\x00R\acontent\x12]\n" + + "\x0fapplicationData\x18\x02 \x01(\v21.WAArmadilloApplication.Armadillo.ApplicationDataH\x00R\x0fapplicationData\x12B\n" + + "\x06signal\x18\x03 \x01(\v2(.WAArmadilloApplication.Armadillo.SignalH\x00R\x06signal\x12X\n" + + "\vsubProtocol\x18\x04 \x01(\v24.WAArmadilloApplication.Armadillo.SubProtocolPayloadH\x00R\vsubProtocolB\t\n" + + "\apayload\x1aU\n" + + "\x12SubProtocolPayload\x12?\n" + + "\vfutureProof\x18\x01 \x01(\x0e2\x1d.WACommon.FutureProofBehaviorR\vfutureProof\x1a\xc2\x05\n" + + "\x06Signal\x12|\n" + + "\x17encryptedBackupsSecrets\x18\x01 \x01(\v2@.WAArmadilloApplication.Armadillo.Signal.EncryptedBackupsSecretsH\x00R\x17encryptedBackupsSecrets\x1a\xaf\x04\n" + + "\x17EncryptedBackupsSecrets\x12\x1a\n" + + "\bbackupID\x18\x01 \x01(\x04R\bbackupID\x12\"\n" + + "\fserverDataID\x18\x02 \x01(\x04R\fserverDataID\x12\\\n" + + "\x05epoch\x18\x03 \x03(\v2F.WAArmadilloApplication.Armadillo.Signal.EncryptedBackupsSecrets.EpochR\x05epoch\x120\n" + + "\x13tempOcmfClientState\x18\x04 \x01(\fR\x13tempOcmfClientState\x12&\n" + + "\x0emailboxRootKey\x18\x05 \x01(\fR\x0emailboxRootKey\x12:\n" + + "\x18obliviousValidationToken\x18\x06 \x01(\fR\x18obliviousValidationToken\x1a\xdf\x01\n" + + "\x05Epoch\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\x04R\x02ID\x12\x16\n" + + "\x06anonID\x18\x02 \x01(\fR\x06anonID\x12\x18\n" + + "\arootKey\x18\x03 \x01(\fR\arootKey\x12j\n" + + "\x06status\x18\x04 \x01(\x0e2R.WAArmadilloApplication.Armadillo.Signal.EncryptedBackupsSecrets.Epoch.EpochStatusR\x06status\"(\n" + + "\vEpochStatus\x12\v\n" + + "\aES_OPEN\x10\x01\x12\f\n" + + "\bES_CLOSE\x10\x02B\b\n" + + "\x06signal\x1a\xcf\x14\n" + + "\x0fApplicationData\x12p\n" + + "\fmetadataSync\x18\x01 \x01(\v2J.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncNotificationH\x00R\fmetadataSync\x12n\n" + + "\raiBotResponse\x18\x02 \x01(\v2F.WAArmadilloApplication.Armadillo.ApplicationData.AIBotResponseMessageH\x00R\raiBotResponse\x12\x97\x01\n" + + "\x1dmessageHistoryDocumentMessage\x18\x03 \x01(\v2O.WAArmadilloApplication.Armadillo.ApplicationData.MessageHistoryDocumentMessageH\x00R\x1dmessageHistoryDocumentMessage\x1aR\n" + + "\x1dMessageHistoryDocumentMessage\x121\n" + + "\bdocument\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\bdocument\x1a\x86\x01\n" + + "\x14AIBotResponseMessage\x12 \n" + + "\vsummonToken\x18\x01 \x01(\tR\vsummonToken\x12 \n" + + "\vmessageText\x18\x02 \x01(\tR\vmessageText\x12*\n" + + "\x10serializedExtras\x18\x03 \x01(\tR\x10serializedExtras\x1a\xd3\x0e\n" + + "\x12MetadataSyncAction\x12u\n" + + "\n" + + "chatAction\x18e \x01(\v2S.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncChatActionH\x00R\n" + + "chatAction\x12~\n" + + "\rmessageAction\x18f \x01(\v2V.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncMessageActionH\x00R\rmessageAction\x12(\n" + + "\x0factionTimestamp\x18\x01 \x01(\x03R\x0factionTimestamp\x1a\xf1\x01\n" + + "\x11SyncMessageAction\x12\x92\x01\n" + + "\rmessageDelete\x18e \x01(\v2j.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncMessageAction.ActionMessageDeleteH\x00R\rmessageDelete\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x1a\x15\n" + + "\x13ActionMessageDeleteB\b\n" + + "\x06action\x1a\xbb\a\n" + + "\x0eSyncChatAction\x12\x89\x01\n" + + "\vchatArchive\x18e \x01(\v2e.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncChatAction.ActionChatArchiveH\x00R\vchatArchive\x12\x86\x01\n" + + "\n" + + "chatDelete\x18f \x01(\v2d.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncChatAction.ActionChatDeleteH\x00R\n" + + "chatDelete\x12\x80\x01\n" + + "\bchatRead\x18g \x01(\v2b.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncChatAction.ActionChatReadH\x00R\bchatRead\x12\x16\n" + + "\x06chatID\x18\x01 \x01(\tR\x06chatID\x1a\xa5\x01\n" + + "\x0eActionChatRead\x12\x7f\n" + + "\fmessageRange\x18\x01 \x01(\v2[.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncActionMessageRangeR\fmessageRange\x12\x12\n" + + "\x04read\x18\x02 \x01(\bR\x04read\x1a\x93\x01\n" + + "\x10ActionChatDelete\x12\x7f\n" + + "\fmessageRange\x18\x01 \x01(\v2[.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncActionMessageRangeR\fmessageRange\x1a\xb0\x01\n" + + "\x11ActionChatArchive\x12\x7f\n" + + "\fmessageRange\x18\x01 \x01(\v2[.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncActionMessageRangeR\fmessageRange\x12\x1a\n" + + "\barchived\x18\x02 \x01(\bR\barchivedB\b\n" + + "\x06action\x1aY\n" + + "\x11SyncActionMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x03R\ttimestamp\x1a\x80\x02\n" + + "\x16SyncActionMessageRange\x122\n" + + "\x14lastMessageTimestamp\x18\x01 \x01(\x03R\x14lastMessageTimestamp\x12>\n" + + "\x1alastSystemMessageTimestamp\x18\x02 \x01(\x03R\x1alastSystemMessageTimestamp\x12r\n" + + "\bmessages\x18\x03 \x03(\v2V.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncAction.SyncActionMessageR\bmessagesB\f\n" + + "\n" + + "actionType\x1az\n" + + "\x18MetadataSyncNotification\x12^\n" + + "\aactions\x18\x02 \x03(\v2D.WAArmadilloApplication.Armadillo.ApplicationData.MetadataSyncActionR\aactionsB\x11\n" + + "\x0fapplicationData\x1a\xa7 \n" + + "\aContent\x12_\n" + + "\rcommonSticker\x18\x01 \x01(\v27.WAArmadilloApplication.Armadillo.Content.CommonStickerH\x00R\rcommonSticker\x12h\n" + + "\x10screenshotAction\x18\x03 \x01(\v2:.WAArmadilloApplication.Armadillo.Content.ScreenshotActionH\x00R\x10screenshotAction\x12`\n" + + "\x16extendedContentMessage\x18\x04 \x01(\v2&.WAArmadilloXMA.ExtendedContentMessageH\x00R\x16extendedContentMessage\x12\\\n" + + "\fravenMessage\x18\x05 \x01(\v26.WAArmadilloApplication.Armadillo.Content.RavenMessageH\x00R\fravenMessage\x12}\n" + + "\x17ravenActionNotifMessage\x18\x06 \x01(\v2A.WAArmadilloApplication.Armadillo.Content.RavenActionNotifMessageH\x00R\x17ravenActionNotifMessage\x12\x92\x01\n" + + "\x1eextendedMessageContentWithSear\x18\a \x01(\v2H.WAArmadilloApplication.Armadillo.Content.ExtendedContentMessageWithSearH\x00R\x1eextendedMessageContentWithSear\x12q\n" + + "\x13imageGalleryMessage\x18\b \x01(\v2=.WAArmadilloApplication.Armadillo.Content.ImageGalleryMessageH\x00R\x13imageGalleryMessage\x12\x86\x01\n" + + "\x1apaymentsTransactionMessage\x18\n" + + " \x01(\v2D.WAArmadilloApplication.Armadillo.Content.PaymentsTransactionMessageH\x00R\x1apaymentsTransactionMessage\x12q\n" + + "\x13bumpExistingMessage\x18\v \x01(\v2=.WAArmadilloApplication.Armadillo.Content.BumpExistingMessageH\x00R\x13bumpExistingMessage\x12h\n" + + "\x10noteReplyMessage\x18\r \x01(\v2:.WAArmadilloApplication.Armadillo.Content.NoteReplyMessageH\x00R\x10noteReplyMessage\x12d\n" + + "\x10ravenMessageMsgr\x18\x0e \x01(\v26.WAArmadilloApplication.Armadillo.Content.RavenMessageH\x00R\x10ravenMessageMsgr\x12\x86\x01\n" + + "\x1anetworkVerificationMessage\x18\x0f \x01(\v2D.WAArmadilloApplication.Armadillo.Content.NetworkVerificationMessageH\x00R\x1anetworkVerificationMessage\x1a\xba\a\n" + + "\x1aPaymentsTransactionMessage\x12$\n" + + "\rtransactionID\x18\x01 \x01(\x04R\rtransactionID\x12\x16\n" + + "\x06amount\x18\x02 \x01(\tR\x06amount\x12\x1a\n" + + "\bcurrency\x18\x03 \x01(\tR\bcurrency\x12x\n" + + "\rpaymentStatus\x18\x04 \x01(\x0e2R.WAArmadilloApplication.Armadillo.Content.PaymentsTransactionMessage.PaymentStatusR\rpaymentStatus\x12^\n" + + "\x16extendedContentMessage\x18\x05 \x01(\v2&.WAArmadilloXMA.ExtendedContentMessageR\x16extendedContentMessage\"\xe7\x04\n" + + "\rPaymentStatus\x12\x13\n" + + "\x0fPAYMENT_UNKNOWN\x10\x00\x12\x12\n" + + "\x0eREQUEST_INITED\x10\x04\x12\x14\n" + + "\x10REQUEST_DECLINED\x10\x05\x12\x1b\n" + + "\x17REQUEST_TRANSFER_INITED\x10\x06\x12\x1e\n" + + "\x1aREQUEST_TRANSFER_COMPLETED\x10\a\x12\x1b\n" + + "\x17REQUEST_TRANSFER_FAILED\x10\b\x12\x14\n" + + "\x10REQUEST_CANCELED\x10\t\x12\x13\n" + + "\x0fREQUEST_EXPIRED\x10\n" + + "\x12\x13\n" + + "\x0fTRANSFER_INITED\x10\v\x12\x14\n" + + "\x10TRANSFER_PENDING\x10\f\x12+\n" + + "'TRANSFER_PENDING_RECIPIENT_VERIFICATION\x10\r\x12\x15\n" + + "\x11TRANSFER_CANCELED\x10\x0e\x12\x16\n" + + "\x12TRANSFER_COMPLETED\x10\x0f\x12;\n" + + "7TRANSFER_NO_RECEIVER_CREDENTIAL_NO_RTS_PENDING_CANCELED\x10\x10\x128\n" + + "4TRANSFER_NO_RECEIVER_CREDENTIAL_NO_RTS_PENDING_OTHER\x10\x11\x12\x15\n" + + "\x11TRANSFER_REFUNDED\x10\x12\x12\x1b\n" + + "\x17TRANSFER_PARTIAL_REFUND\x10\x13\x12\x19\n" + + "\x15TRANSFER_CHARGED_BACK\x10\x14\x12\x14\n" + + "\x10TRANSFER_EXPIRED\x10\x15\x12\x15\n" + + "\x11TRANSFER_DECLINED\x10\x16\x12\x18\n" + + "\x14TRANSFER_UNAVAILABLE\x10\x17\x1a8\n" + + "\x1aNetworkVerificationMessage\x12\x1a\n" + + "\bcodeText\x18\x01 \x01(\tR\bcodeText\x1a\xd4\x02\n" + + "\x10NoteReplyMessage\x129\n" + + "\vtextContent\x18\x04 \x01(\v2\x15.WACommon.MessageTextH\x00R\vtextContent\x12?\n" + + "\x0estickerContent\x18\x05 \x01(\v2\x15.WACommon.SubProtocolH\x00R\x0estickerContent\x12;\n" + + "\fvideoContent\x18\x06 \x01(\v2\x15.WACommon.SubProtocolH\x00R\fvideoContent\x12\x16\n" + + "\x06noteID\x18\x01 \x01(\tR\x06noteID\x121\n" + + "\bnoteText\x18\x02 \x01(\v2\x15.WACommon.MessageTextR\bnoteText\x12(\n" + + "\x0fnoteTimestampMS\x18\x03 \x01(\x03R\x0fnoteTimestampMSB\x12\n" + + "\x10noteReplyContent\x1a=\n" + + "\x13BumpExistingMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x1aD\n" + + "\x13ImageGalleryMessage\x12-\n" + + "\x06images\x18\x01 \x03(\v2\x15.WACommon.SubProtocolR\x06images\x1a\xc3\x01\n" + + "\x10ScreenshotAction\x12q\n" + + "\x0escreenshotType\x18\x01 \x01(\x0e2I.WAArmadilloApplication.Armadillo.Content.ScreenshotAction.ScreenshotTypeR\x0escreenshotType\"<\n" + + "\x0eScreenshotType\x12\x14\n" + + "\x10SCREENSHOT_IMAGE\x10\x01\x12\x14\n" + + "\x10SCREEN_RECORDING\x10\x02\x1a\xf3\x01\n" + + "\x1eExtendedContentMessageWithSear\x12\x16\n" + + "\x06searID\x18\x01 \x01(\tR\x06searID\x12\x18\n" + + "\apayload\x18\x02 \x01(\fR\apayload\x12\x1c\n" + + "\tnativeURL\x18\x03 \x01(\tR\tnativeURL\x12K\n" + + "\x15searAssociatedMessage\x18\x04 \x01(\v2\x15.WACommon.SubProtocolR\x15searAssociatedMessage\x124\n" + + "\x15searSentWithMessageID\x18\x05 \x01(\tR\x15searSentWithMessageID\x1a\x96\x02\n" + + "\x17RavenActionNotifMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12(\n" + + "\x0factionTimestamp\x18\x02 \x01(\x03R\x0factionTimestamp\x12l\n" + + "\n" + + "actionType\x18\x03 \x01(\x0e2L.WAArmadilloApplication.Armadillo.Content.RavenActionNotifMessage.ActionTypeR\n" + + "actionType\";\n" + + "\n" + + "ActionType\x12\n" + + "\n" + + "\x06PLAYED\x10\x00\x12\x0e\n" + + "\n" + + "SCREENSHOT\x10\x01\x12\x11\n" + + "\rFORCE_DISABLE\x10\x02\x1a\xc8\x02\n" + + "\fRavenMessage\x12;\n" + + "\fimageMessage\x18\x02 \x01(\v2\x15.WACommon.SubProtocolH\x00R\fimageMessage\x12;\n" + + "\fvideoMessage\x18\x03 \x01(\v2\x15.WACommon.SubProtocolH\x00R\fvideoMessage\x12j\n" + + "\rephemeralType\x18\x01 \x01(\x0e2D.WAArmadilloApplication.Armadillo.Content.RavenMessage.EphemeralTypeR\rephemeralType\"B\n" + + "\rEphemeralType\x12\r\n" + + "\tVIEW_ONCE\x10\x00\x12\x10\n" + + "\fALLOW_REPLAY\x10\x01\x12\x10\n" + + "\fKEEP_IN_CHAT\x10\x02B\x0e\n" + + "\fmediaContent\x1a\xb6\x01\n" + + "\rCommonSticker\x12e\n" + + "\vstickerType\x18\x01 \x01(\x0e2C.WAArmadilloApplication.Armadillo.Content.CommonSticker.StickerTypeR\vstickerType\">\n" + + "\vStickerType\x12\x0e\n" + + "\n" + + "SMALL_LIKE\x10\x01\x12\x0f\n" + + "\vMEDIUM_LIKE\x10\x02\x12\x0e\n" + + "\n" + + "LARGE_LIKE\x10\x03B\t\n" + + "\acontentB2Z0github.com/techwiz37/waSocket/proto/waArmadilloApplication" var ( file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescOnce sync.Once - file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescData = file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc + file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescData []byte ) func file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescGZIP() []byte { file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescOnce.Do(func() { - file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescData = protoimpl.X.CompressGZIP(file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescData) + file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc), len(file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc))) }) return file_waArmadilloApplication_WAArmadilloApplication_proto_rawDescData } @@ -2786,7 +2965,7 @@ func file_waArmadilloApplication_WAArmadilloApplication_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc), len(file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc)), NumEnums: 6, NumMessages: 31, NumExtensions: 0, @@ -2798,7 +2977,6 @@ func file_waArmadilloApplication_WAArmadilloApplication_proto_init() { MessageInfos: file_waArmadilloApplication_WAArmadilloApplication_proto_msgTypes, }.Build() File_waArmadilloApplication_WAArmadilloApplication_proto = out.File - file_waArmadilloApplication_WAArmadilloApplication_proto_rawDesc = nil file_waArmadilloApplication_WAArmadilloApplication_proto_goTypes = nil file_waArmadilloApplication_WAArmadilloApplication_proto_depIdxs = nil } diff --git a/proto/waArmadilloApplication/WAArmadilloApplication.pb.raw b/proto/waArmadilloApplication/WAArmadilloApplication.pb.raw deleted file mode 100644 index 7fb517fb..00000000 Binary files a/proto/waArmadilloApplication/WAArmadilloApplication.pb.raw and /dev/null differ diff --git a/proto/waArmadilloBackupCommon/WAArmadilloBackupCommon.pb.go b/proto/waArmadilloBackupCommon/WAArmadilloBackupCommon.pb.go index f2b66e95..abb0e925 100644 --- a/proto/waArmadilloBackupCommon/WAArmadilloBackupCommon.pb.go +++ b/proto/waArmadilloBackupCommon/WAArmadilloBackupCommon.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waArmadilloBackupCommon/WAArmadilloBackupCommon.proto @@ -9,11 +9,10 @@ package waArmadilloBackupCommon import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -77,17 +76,21 @@ func (x *Subprotocol) GetVersion() int32 { var File_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto protoreflect.FileDescriptor -//go:embed WAArmadilloBackupCommon.pb.raw -var file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc []byte +const file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc = "" + + "\n" + + "5waArmadilloBackupCommon/WAArmadilloBackupCommon.proto\x12\x17WAArmadilloBackupCommon\"A\n" + + "\vSubprotocol\x12\x18\n" + + "\apayload\x18\x01 \x01(\fR\apayload\x12\x18\n" + + "\aversion\x18\x02 \x01(\x05R\aversionB3Z1github.com/techwiz37/waSocket/proto/waArmadilloBackupCommon" var ( file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescOnce sync.Once - file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescData = file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc + file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescData []byte ) func file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescGZIP() []byte { file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescOnce.Do(func() { - file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescData = protoimpl.X.CompressGZIP(file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescData) + file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc), len(file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc))) }) return file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDescData } @@ -113,7 +116,7 @@ func file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc), len(file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -124,7 +127,6 @@ func file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_init() { MessageInfos: file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_msgTypes, }.Build() File_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto = out.File - file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_rawDesc = nil file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_goTypes = nil file_waArmadilloBackupCommon_WAArmadilloBackupCommon_proto_depIdxs = nil } diff --git a/proto/waArmadilloBackupCommon/WAArmadilloBackupCommon.pb.raw b/proto/waArmadilloBackupCommon/WAArmadilloBackupCommon.pb.raw deleted file mode 100644 index 51fac26e..00000000 --- a/proto/waArmadilloBackupCommon/WAArmadilloBackupCommon.pb.raw +++ /dev/null @@ -1,5 +0,0 @@ - -5waArmadilloBackupCommon/WAArmadilloBackupCommon.protoWAArmadilloBackupCommon"A - Subprotocol -payload ( Rpayload -version (RversionB3Z1go.mau.fi/whatsmeow/proto/waArmadilloBackupCommon \ No newline at end of file diff --git a/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.pb.go b/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.pb.go index e57cd4b8..df928424 100644 --- a/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.pb.go +++ b/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waArmadilloBackupMessage/WAArmadilloBackupMessage.proto @@ -9,13 +9,12 @@ package waArmadilloBackupMessage import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waArmadilloBackupCommon "github.com/techwiz37/waSocket/proto/waArmadilloBackupCommon" - - _ "embed" ) const ( @@ -32,6 +31,7 @@ type BackupMessage struct { // *BackupMessage_EncryptedTransportMessage // *BackupMessage_EncryptedTransportEvent // *BackupMessage_EncryptedTransportLocallyTransformedMessage + // *BackupMessage_MiTransportAdminMessage Payload isBackupMessage_Payload `protobuf_oneof:"payload"` Metadata *BackupMessage_Metadata `protobuf:"bytes,1,opt,name=metadata" json:"metadata,omitempty"` unknownFields protoimpl.UnknownFields @@ -102,6 +102,15 @@ func (x *BackupMessage) GetEncryptedTransportLocallyTransformedMessage() *waArma return nil } +func (x *BackupMessage) GetMiTransportAdminMessage() *waArmadilloBackupCommon.Subprotocol { + if x != nil { + if x, ok := x.Payload.(*BackupMessage_MiTransportAdminMessage); ok { + return x.MiTransportAdminMessage + } + } + return nil +} + func (x *BackupMessage) GetMetadata() *BackupMessage_Metadata { if x != nil { return x.Metadata @@ -125,12 +134,18 @@ type BackupMessage_EncryptedTransportLocallyTransformedMessage struct { EncryptedTransportLocallyTransformedMessage *waArmadilloBackupCommon.Subprotocol `protobuf:"bytes,6,opt,name=encryptedTransportLocallyTransformedMessage,oneof"` } +type BackupMessage_MiTransportAdminMessage struct { + MiTransportAdminMessage *waArmadilloBackupCommon.Subprotocol `protobuf:"bytes,7,opt,name=miTransportAdminMessage,oneof"` +} + func (*BackupMessage_EncryptedTransportMessage) isBackupMessage_Payload() {} func (*BackupMessage_EncryptedTransportEvent) isBackupMessage_Payload() {} func (*BackupMessage_EncryptedTransportLocallyTransformedMessage) isBackupMessage_Payload() {} +func (*BackupMessage_MiTransportAdminMessage) isBackupMessage_Payload() {} + type BackupMessage_Metadata struct { state protoimpl.MessageState `protogen:"open.v1"` SenderID *string `protobuf:"bytes,1,opt,name=senderID" json:"senderID,omitempty"` @@ -277,17 +292,36 @@ func (x *BackupMessage_Metadata_FrankingMetadata) GetReportingTag() []byte { var File_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto protoreflect.FileDescriptor -//go:embed WAArmadilloBackupMessage.pb.raw -var file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc []byte +const file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc = "" + + "\n" + + "7waArmadilloBackupMessage/WAArmadilloBackupMessage.proto\x12\x18WAArmadilloBackupMessage\x1a5waArmadilloBackupCommon/WAArmadilloBackupCommon.proto\"\xa9\a\n" + + "\rBackupMessage\x12>\n" + + "\x19encryptedTransportMessage\x18\x02 \x01(\fH\x00R\x19encryptedTransportMessage\x12`\n" + + "\x17encryptedTransportEvent\x18\x05 \x01(\v2$.WAArmadilloBackupCommon.SubprotocolH\x00R\x17encryptedTransportEvent\x12\x88\x01\n" + + "+encryptedTransportLocallyTransformedMessage\x18\x06 \x01(\v2$.WAArmadilloBackupCommon.SubprotocolH\x00R+encryptedTransportLocallyTransformedMessage\x12`\n" + + "\x17miTransportAdminMessage\x18\a \x01(\v2$.WAArmadilloBackupCommon.SubprotocolH\x00R\x17miTransportAdminMessage\x12L\n" + + "\bmetadata\x18\x01 \x01(\v20.WAArmadilloBackupMessage.BackupMessage.MetadataR\bmetadata\x1a\xaf\x03\n" + + "\bMetadata\x12\x1a\n" + + "\bsenderID\x18\x01 \x01(\tR\bsenderID\x12\x1c\n" + + "\tmessageID\x18\x02 \x01(\tR\tmessageID\x12 \n" + + "\vtimestampMS\x18\x03 \x01(\x03R\vtimestampMS\x12m\n" + + "\x10frankingMetadata\x18\x04 \x01(\v2A.WAArmadilloBackupMessage.BackupMessage.Metadata.FrankingMetadataR\x10frankingMetadata\x12&\n" + + "\x0epayloadVersion\x18\x05 \x01(\x05R\x0epayloadVersion\x120\n" + + "\x13futureProofBehavior\x18\x06 \x01(\x05R\x13futureProofBehavior\x12$\n" + + "\rthreadTypeTag\x18\a \x01(\x05R\rthreadTypeTag\x1aX\n" + + "\x10FrankingMetadata\x12 \n" + + "\vfrankingTag\x18\x03 \x01(\fR\vfrankingTag\x12\"\n" + + "\freportingTag\x18\x04 \x01(\fR\freportingTagB\t\n" + + "\apayloadB4Z2github.com/techwiz37/waSocket/proto/waArmadilloBackupMessage" var ( file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescOnce sync.Once - file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescData = file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc + file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescData []byte ) func file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescGZIP() []byte { file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescOnce.Do(func() { - file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescData = protoimpl.X.CompressGZIP(file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescData) + file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc), len(file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc))) }) return file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDescData } @@ -302,13 +336,14 @@ var file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_goTypes = []any var file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_depIdxs = []int32{ 3, // 0: WAArmadilloBackupMessage.BackupMessage.encryptedTransportEvent:type_name -> WAArmadilloBackupCommon.Subprotocol 3, // 1: WAArmadilloBackupMessage.BackupMessage.encryptedTransportLocallyTransformedMessage:type_name -> WAArmadilloBackupCommon.Subprotocol - 1, // 2: WAArmadilloBackupMessage.BackupMessage.metadata:type_name -> WAArmadilloBackupMessage.BackupMessage.Metadata - 2, // 3: WAArmadilloBackupMessage.BackupMessage.Metadata.frankingMetadata:type_name -> WAArmadilloBackupMessage.BackupMessage.Metadata.FrankingMetadata - 4, // [4:4] is the sub-list for method output_type - 4, // [4:4] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 3, // 2: WAArmadilloBackupMessage.BackupMessage.miTransportAdminMessage:type_name -> WAArmadilloBackupCommon.Subprotocol + 1, // 3: WAArmadilloBackupMessage.BackupMessage.metadata:type_name -> WAArmadilloBackupMessage.BackupMessage.Metadata + 2, // 4: WAArmadilloBackupMessage.BackupMessage.Metadata.frankingMetadata:type_name -> WAArmadilloBackupMessage.BackupMessage.Metadata.FrankingMetadata + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_init() } @@ -320,12 +355,13 @@ func file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_init() { (*BackupMessage_EncryptedTransportMessage)(nil), (*BackupMessage_EncryptedTransportEvent)(nil), (*BackupMessage_EncryptedTransportLocallyTransformedMessage)(nil), + (*BackupMessage_MiTransportAdminMessage)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc), len(file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc)), NumEnums: 0, NumMessages: 3, NumExtensions: 0, @@ -336,7 +372,6 @@ func file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_init() { MessageInfos: file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_msgTypes, }.Build() File_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto = out.File - file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_rawDesc = nil file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_goTypes = nil file_waArmadilloBackupMessage_WAArmadilloBackupMessage_proto_depIdxs = nil } diff --git a/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.pb.raw b/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.pb.raw deleted file mode 100644 index cea3ec7b..00000000 Binary files a/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.pb.raw and /dev/null differ diff --git a/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.proto b/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.proto index ce51abd2..2484b607 100644 --- a/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.proto +++ b/proto/waArmadilloBackupMessage/WAArmadilloBackupMessage.proto @@ -24,6 +24,7 @@ message BackupMessage { bytes encryptedTransportMessage = 2; WAArmadilloBackupCommon.Subprotocol encryptedTransportEvent = 5; WAArmadilloBackupCommon.Subprotocol encryptedTransportLocallyTransformedMessage = 6; + WAArmadilloBackupCommon.Subprotocol miTransportAdminMessage = 7; } optional Metadata metadata = 1; diff --git a/proto/waArmadilloICDC/WAArmadilloICDC.pb.go b/proto/waArmadilloICDC/WAArmadilloICDC.pb.go index 2eafb1ae..f51ebcb4 100644 --- a/proto/waArmadilloICDC/WAArmadilloICDC.pb.go +++ b/proto/waArmadilloICDC/WAArmadilloICDC.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waArmadilloICDC/WAArmadilloICDC.proto @@ -9,11 +9,10 @@ package waArmadilloICDC import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -145,17 +144,26 @@ func (x *SignedICDCIdentityList) GetSignature() []byte { var File_waArmadilloICDC_WAArmadilloICDC_proto protoreflect.FileDescriptor -//go:embed WAArmadilloICDC.pb.raw -var file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc []byte +const file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc = "" + + "\n" + + "%waArmadilloICDC/WAArmadilloICDC.proto\x12\x0fWAArmadilloICDC\"\x8c\x01\n" + + "\x10ICDCIdentityList\x12\x10\n" + + "\x03seq\x18\x01 \x01(\x05R\x03seq\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x03R\ttimestamp\x12\x18\n" + + "\adevices\x18\x03 \x03(\fR\adevices\x12.\n" + + "\x12signingDeviceIndex\x18\x04 \x01(\x05R\x12signingDeviceIndex\"P\n" + + "\x16SignedICDCIdentityList\x12\x18\n" + + "\adetails\x18\x01 \x01(\fR\adetails\x12\x1c\n" + + "\tsignature\x18\x02 \x01(\fR\tsignatureB+Z)github.com/techwiz37/waSocket/proto/waArmadilloICDC" var ( file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescOnce sync.Once - file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescData = file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc + file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescData []byte ) func file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescGZIP() []byte { file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescOnce.Do(func() { - file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescData = protoimpl.X.CompressGZIP(file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescData) + file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc), len(file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc))) }) return file_waArmadilloICDC_WAArmadilloICDC_proto_rawDescData } @@ -182,7 +190,7 @@ func file_waArmadilloICDC_WAArmadilloICDC_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc), len(file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -193,7 +201,6 @@ func file_waArmadilloICDC_WAArmadilloICDC_proto_init() { MessageInfos: file_waArmadilloICDC_WAArmadilloICDC_proto_msgTypes, }.Build() File_waArmadilloICDC_WAArmadilloICDC_proto = out.File - file_waArmadilloICDC_WAArmadilloICDC_proto_rawDesc = nil file_waArmadilloICDC_WAArmadilloICDC_proto_goTypes = nil file_waArmadilloICDC_WAArmadilloICDC_proto_depIdxs = nil } diff --git a/proto/waArmadilloICDC/WAArmadilloICDC.pb.raw b/proto/waArmadilloICDC/WAArmadilloICDC.pb.raw deleted file mode 100644 index aab49cba..00000000 --- a/proto/waArmadilloICDC/WAArmadilloICDC.pb.raw +++ /dev/null @@ -1,10 +0,0 @@ - -%waArmadilloICDC/WAArmadilloICDC.protoWAArmadilloICDC"Œ -ICDCIdentityList -seq (Rseq - timestamp (R timestamp -devices ( Rdevices. -signingDeviceIndex (RsigningDeviceIndex"P -SignedICDCIdentityList -details ( Rdetails - signature ( R signatureB+Z)go.mau.fi/whatsmeow/proto/waArmadilloICDC \ No newline at end of file diff --git a/proto/waArmadilloMiTransportAdminMessage/WAArmadilloMiTransportAdminMessage.pb.go b/proto/waArmadilloMiTransportAdminMessage/WAArmadilloMiTransportAdminMessage.pb.go new file mode 100644 index 00000000..380148a1 --- /dev/null +++ b/proto/waArmadilloMiTransportAdminMessage/WAArmadilloMiTransportAdminMessage.pb.go @@ -0,0 +1,1364 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc v3.21.12 +// source: waArmadilloMiTransportAdminMessage/WAArmadilloMiTransportAdminMessage.proto + +package waArmadilloMiTransportAdminMessage + +import ( + reflect "reflect" + sync "sync" + unsafe "unsafe" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type MiTransportAdminMessage_GroupImageChanged_Action int32 + +const ( + MiTransportAdminMessage_GroupImageChanged_CHANGED MiTransportAdminMessage_GroupImageChanged_Action = 1 + MiTransportAdminMessage_GroupImageChanged_REMOVED MiTransportAdminMessage_GroupImageChanged_Action = 2 +) + +// Enum value maps for MiTransportAdminMessage_GroupImageChanged_Action. +var ( + MiTransportAdminMessage_GroupImageChanged_Action_name = map[int32]string{ + 1: "CHANGED", + 2: "REMOVED", + } + MiTransportAdminMessage_GroupImageChanged_Action_value = map[string]int32{ + "CHANGED": 1, + "REMOVED": 2, + } +) + +func (x MiTransportAdminMessage_GroupImageChanged_Action) Enum() *MiTransportAdminMessage_GroupImageChanged_Action { + p := new(MiTransportAdminMessage_GroupImageChanged_Action) + *p = x + return p +} + +func (x MiTransportAdminMessage_GroupImageChanged_Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MiTransportAdminMessage_GroupImageChanged_Action) Descriptor() protoreflect.EnumDescriptor { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[0].Descriptor() +} + +func (MiTransportAdminMessage_GroupImageChanged_Action) Type() protoreflect.EnumType { + return &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[0] +} + +func (x MiTransportAdminMessage_GroupImageChanged_Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *MiTransportAdminMessage_GroupImageChanged_Action) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = MiTransportAdminMessage_GroupImageChanged_Action(num) + return nil +} + +// Deprecated: Use MiTransportAdminMessage_GroupImageChanged_Action.Descriptor instead. +func (MiTransportAdminMessage_GroupImageChanged_Action) EnumDescriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 0, 0} +} + +type MiTransportAdminMessage_MessagePinned_Action int32 + +const ( + MiTransportAdminMessage_MessagePinned_PINNED MiTransportAdminMessage_MessagePinned_Action = 1 + MiTransportAdminMessage_MessagePinned_UNPINNED MiTransportAdminMessage_MessagePinned_Action = 2 +) + +// Enum value maps for MiTransportAdminMessage_MessagePinned_Action. +var ( + MiTransportAdminMessage_MessagePinned_Action_name = map[int32]string{ + 1: "PINNED", + 2: "UNPINNED", + } + MiTransportAdminMessage_MessagePinned_Action_value = map[string]int32{ + "PINNED": 1, + "UNPINNED": 2, + } +) + +func (x MiTransportAdminMessage_MessagePinned_Action) Enum() *MiTransportAdminMessage_MessagePinned_Action { + p := new(MiTransportAdminMessage_MessagePinned_Action) + *p = x + return p +} + +func (x MiTransportAdminMessage_MessagePinned_Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MiTransportAdminMessage_MessagePinned_Action) Descriptor() protoreflect.EnumDescriptor { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[1].Descriptor() +} + +func (MiTransportAdminMessage_MessagePinned_Action) Type() protoreflect.EnumType { + return &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[1] +} + +func (x MiTransportAdminMessage_MessagePinned_Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *MiTransportAdminMessage_MessagePinned_Action) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = MiTransportAdminMessage_MessagePinned_Action(num) + return nil +} + +// Deprecated: Use MiTransportAdminMessage_MessagePinned_Action.Descriptor instead. +func (MiTransportAdminMessage_MessagePinned_Action) EnumDescriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 1, 0} +} + +type MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode int32 + +const ( + MiTransportAdminMessage_GroupMembershipAddModeChanged_ALL_MEMBERS MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode = 1 + MiTransportAdminMessage_GroupMembershipAddModeChanged_ADMINS_ONLY MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode = 2 +) + +// Enum value maps for MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode. +var ( + MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode_name = map[int32]string{ + 1: "ALL_MEMBERS", + 2: "ADMINS_ONLY", + } + MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode_value = map[string]int32{ + "ALL_MEMBERS": 1, + "ADMINS_ONLY": 2, + } +) + +func (x MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode) Enum() *MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode { + p := new(MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode) + *p = x + return p +} + +func (x MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode) Descriptor() protoreflect.EnumDescriptor { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[2].Descriptor() +} + +func (MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode) Type() protoreflect.EnumType { + return &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[2] +} + +func (x MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode(num) + return nil +} + +// Deprecated: Use MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode.Descriptor instead. +func (MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode) EnumDescriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 2, 0} +} + +type MiTransportAdminMessage_GroupAdminChanged_Action int32 + +const ( + MiTransportAdminMessage_GroupAdminChanged_ADDED MiTransportAdminMessage_GroupAdminChanged_Action = 1 + MiTransportAdminMessage_GroupAdminChanged_REMOVED MiTransportAdminMessage_GroupAdminChanged_Action = 2 +) + +// Enum value maps for MiTransportAdminMessage_GroupAdminChanged_Action. +var ( + MiTransportAdminMessage_GroupAdminChanged_Action_name = map[int32]string{ + 1: "ADDED", + 2: "REMOVED", + } + MiTransportAdminMessage_GroupAdminChanged_Action_value = map[string]int32{ + "ADDED": 1, + "REMOVED": 2, + } +) + +func (x MiTransportAdminMessage_GroupAdminChanged_Action) Enum() *MiTransportAdminMessage_GroupAdminChanged_Action { + p := new(MiTransportAdminMessage_GroupAdminChanged_Action) + *p = x + return p +} + +func (x MiTransportAdminMessage_GroupAdminChanged_Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MiTransportAdminMessage_GroupAdminChanged_Action) Descriptor() protoreflect.EnumDescriptor { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[3].Descriptor() +} + +func (MiTransportAdminMessage_GroupAdminChanged_Action) Type() protoreflect.EnumType { + return &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[3] +} + +func (x MiTransportAdminMessage_GroupAdminChanged_Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *MiTransportAdminMessage_GroupAdminChanged_Action) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = MiTransportAdminMessage_GroupAdminChanged_Action(num) + return nil +} + +// Deprecated: Use MiTransportAdminMessage_GroupAdminChanged_Action.Descriptor instead. +func (MiTransportAdminMessage_GroupAdminChanged_Action) EnumDescriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 3, 0} +} + +type MiTransportAdminMessage_GroupParticipantChanged_Action int32 + +const ( + MiTransportAdminMessage_GroupParticipantChanged_ADDED MiTransportAdminMessage_GroupParticipantChanged_Action = 1 + MiTransportAdminMessage_GroupParticipantChanged_REMOVED MiTransportAdminMessage_GroupParticipantChanged_Action = 2 +) + +// Enum value maps for MiTransportAdminMessage_GroupParticipantChanged_Action. +var ( + MiTransportAdminMessage_GroupParticipantChanged_Action_name = map[int32]string{ + 1: "ADDED", + 2: "REMOVED", + } + MiTransportAdminMessage_GroupParticipantChanged_Action_value = map[string]int32{ + "ADDED": 1, + "REMOVED": 2, + } +) + +func (x MiTransportAdminMessage_GroupParticipantChanged_Action) Enum() *MiTransportAdminMessage_GroupParticipantChanged_Action { + p := new(MiTransportAdminMessage_GroupParticipantChanged_Action) + *p = x + return p +} + +func (x MiTransportAdminMessage_GroupParticipantChanged_Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MiTransportAdminMessage_GroupParticipantChanged_Action) Descriptor() protoreflect.EnumDescriptor { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[4].Descriptor() +} + +func (MiTransportAdminMessage_GroupParticipantChanged_Action) Type() protoreflect.EnumType { + return &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes[4] +} + +func (x MiTransportAdminMessage_GroupParticipantChanged_Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *MiTransportAdminMessage_GroupParticipantChanged_Action) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = MiTransportAdminMessage_GroupParticipantChanged_Action(num) + return nil +} + +// Deprecated: Use MiTransportAdminMessage_GroupParticipantChanged_Action.Descriptor instead. +func (MiTransportAdminMessage_GroupParticipantChanged_Action) EnumDescriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 4, 0} +} + +type MiTransportAdminMessage struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Content: + // + // *MiTransportAdminMessage_ChatThemeChanged_ + // *MiTransportAdminMessage_NicknameChanged_ + // *MiTransportAdminMessage_GroupParticipantChanged_ + // *MiTransportAdminMessage_GroupAdminChanged_ + // *MiTransportAdminMessage_GroupNameChanged_ + // *MiTransportAdminMessage_GroupMembershipAddModeChanged_ + // *MiTransportAdminMessage_MessagePinned_ + // *MiTransportAdminMessage_GroupImageChanged_ + // *MiTransportAdminMessage_QuickReactionChanged_ + // *MiTransportAdminMessage_LinkCta_ + // *MiTransportAdminMessage_IconChanged_ + // *MiTransportAdminMessage_DisappearingSettingChanged_ + Content isMiTransportAdminMessage_Content `protobuf_oneof:"content"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage) Reset() { + *x = MiTransportAdminMessage{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage) ProtoMessage() {} + +func (x *MiTransportAdminMessage) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0} +} + +func (x *MiTransportAdminMessage) GetContent() isMiTransportAdminMessage_Content { + if x != nil { + return x.Content + } + return nil +} + +func (x *MiTransportAdminMessage) GetChatThemeChanged() *MiTransportAdminMessage_ChatThemeChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_ChatThemeChanged_); ok { + return x.ChatThemeChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetNicknameChanged() *MiTransportAdminMessage_NicknameChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_NicknameChanged_); ok { + return x.NicknameChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetGroupParticipantChanged() *MiTransportAdminMessage_GroupParticipantChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_GroupParticipantChanged_); ok { + return x.GroupParticipantChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetGroupAdminChanged() *MiTransportAdminMessage_GroupAdminChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_GroupAdminChanged_); ok { + return x.GroupAdminChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetGroupNameChanged() *MiTransportAdminMessage_GroupNameChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_GroupNameChanged_); ok { + return x.GroupNameChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetGroupMembershipAddModeChanged() *MiTransportAdminMessage_GroupMembershipAddModeChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_GroupMembershipAddModeChanged_); ok { + return x.GroupMembershipAddModeChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetMessagePinned() *MiTransportAdminMessage_MessagePinned { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_MessagePinned_); ok { + return x.MessagePinned + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetGroupImageChanged() *MiTransportAdminMessage_GroupImageChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_GroupImageChanged_); ok { + return x.GroupImageChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetQuickReactionChanged() *MiTransportAdminMessage_QuickReactionChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_QuickReactionChanged_); ok { + return x.QuickReactionChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetLinkCta() *MiTransportAdminMessage_LinkCta { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_LinkCta_); ok { + return x.LinkCta + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetIconChanged() *MiTransportAdminMessage_IconChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_IconChanged_); ok { + return x.IconChanged + } + } + return nil +} + +func (x *MiTransportAdminMessage) GetDisappearingSettingChanged() *MiTransportAdminMessage_DisappearingSettingChanged { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_DisappearingSettingChanged_); ok { + return x.DisappearingSettingChanged + } + } + return nil +} + +type isMiTransportAdminMessage_Content interface { + isMiTransportAdminMessage_Content() +} + +type MiTransportAdminMessage_ChatThemeChanged_ struct { + ChatThemeChanged *MiTransportAdminMessage_ChatThemeChanged `protobuf:"bytes,1,opt,name=chatThemeChanged,oneof"` +} + +type MiTransportAdminMessage_NicknameChanged_ struct { + NicknameChanged *MiTransportAdminMessage_NicknameChanged `protobuf:"bytes,2,opt,name=nicknameChanged,oneof"` +} + +type MiTransportAdminMessage_GroupParticipantChanged_ struct { + GroupParticipantChanged *MiTransportAdminMessage_GroupParticipantChanged `protobuf:"bytes,3,opt,name=groupParticipantChanged,oneof"` +} + +type MiTransportAdminMessage_GroupAdminChanged_ struct { + GroupAdminChanged *MiTransportAdminMessage_GroupAdminChanged `protobuf:"bytes,4,opt,name=groupAdminChanged,oneof"` +} + +type MiTransportAdminMessage_GroupNameChanged_ struct { + GroupNameChanged *MiTransportAdminMessage_GroupNameChanged `protobuf:"bytes,5,opt,name=groupNameChanged,oneof"` +} + +type MiTransportAdminMessage_GroupMembershipAddModeChanged_ struct { + GroupMembershipAddModeChanged *MiTransportAdminMessage_GroupMembershipAddModeChanged `protobuf:"bytes,6,opt,name=groupMembershipAddModeChanged,oneof"` +} + +type MiTransportAdminMessage_MessagePinned_ struct { + MessagePinned *MiTransportAdminMessage_MessagePinned `protobuf:"bytes,7,opt,name=messagePinned,oneof"` +} + +type MiTransportAdminMessage_GroupImageChanged_ struct { + GroupImageChanged *MiTransportAdminMessage_GroupImageChanged `protobuf:"bytes,8,opt,name=groupImageChanged,oneof"` +} + +type MiTransportAdminMessage_QuickReactionChanged_ struct { + QuickReactionChanged *MiTransportAdminMessage_QuickReactionChanged `protobuf:"bytes,9,opt,name=quickReactionChanged,oneof"` +} + +type MiTransportAdminMessage_LinkCta_ struct { + LinkCta *MiTransportAdminMessage_LinkCta `protobuf:"bytes,10,opt,name=linkCta,oneof"` +} + +type MiTransportAdminMessage_IconChanged_ struct { + IconChanged *MiTransportAdminMessage_IconChanged `protobuf:"bytes,11,opt,name=iconChanged,oneof"` +} + +type MiTransportAdminMessage_DisappearingSettingChanged_ struct { + DisappearingSettingChanged *MiTransportAdminMessage_DisappearingSettingChanged `protobuf:"bytes,12,opt,name=disappearingSettingChanged,oneof"` +} + +func (*MiTransportAdminMessage_ChatThemeChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_NicknameChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_GroupParticipantChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_GroupAdminChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_GroupNameChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_GroupMembershipAddModeChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_MessagePinned_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_GroupImageChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_QuickReactionChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_LinkCta_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_IconChanged_) isMiTransportAdminMessage_Content() {} + +func (*MiTransportAdminMessage_DisappearingSettingChanged_) isMiTransportAdminMessage_Content() {} + +type MiTransportAdminMessage_GroupImageChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action *MiTransportAdminMessage_GroupImageChanged_Action `protobuf:"varint,1,opt,name=action,enum=WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage_GroupImageChanged_Action" json:"action,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_GroupImageChanged) Reset() { + *x = MiTransportAdminMessage_GroupImageChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_GroupImageChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_GroupImageChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_GroupImageChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_GroupImageChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_GroupImageChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *MiTransportAdminMessage_GroupImageChanged) GetAction() MiTransportAdminMessage_GroupImageChanged_Action { + if x != nil && x.Action != nil { + return *x.Action + } + return MiTransportAdminMessage_GroupImageChanged_CHANGED +} + +type MiTransportAdminMessage_MessagePinned struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action *MiTransportAdminMessage_MessagePinned_Action `protobuf:"varint,1,opt,name=action,enum=WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage_MessagePinned_Action" json:"action,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_MessagePinned) Reset() { + *x = MiTransportAdminMessage_MessagePinned{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_MessagePinned) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_MessagePinned) ProtoMessage() {} + +func (x *MiTransportAdminMessage_MessagePinned) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_MessagePinned.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_MessagePinned) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *MiTransportAdminMessage_MessagePinned) GetAction() MiTransportAdminMessage_MessagePinned_Action { + if x != nil && x.Action != nil { + return *x.Action + } + return MiTransportAdminMessage_MessagePinned_PINNED +} + +type MiTransportAdminMessage_GroupMembershipAddModeChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + Mode *MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode `protobuf:"varint,1,opt,name=mode,enum=WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode" json:"mode,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_GroupMembershipAddModeChanged) Reset() { + *x = MiTransportAdminMessage_GroupMembershipAddModeChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_GroupMembershipAddModeChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_GroupMembershipAddModeChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_GroupMembershipAddModeChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_GroupMembershipAddModeChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_GroupMembershipAddModeChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *MiTransportAdminMessage_GroupMembershipAddModeChanged) GetMode() MiTransportAdminMessage_GroupMembershipAddModeChanged_Mode { + if x != nil && x.Mode != nil { + return *x.Mode + } + return MiTransportAdminMessage_GroupMembershipAddModeChanged_ALL_MEMBERS +} + +type MiTransportAdminMessage_GroupAdminChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + TargetUserID []string `protobuf:"bytes,1,rep,name=targetUserID" json:"targetUserID,omitempty"` + Action *MiTransportAdminMessage_GroupAdminChanged_Action `protobuf:"varint,2,opt,name=action,enum=WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage_GroupAdminChanged_Action" json:"action,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_GroupAdminChanged) Reset() { + *x = MiTransportAdminMessage_GroupAdminChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_GroupAdminChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_GroupAdminChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_GroupAdminChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_GroupAdminChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_GroupAdminChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *MiTransportAdminMessage_GroupAdminChanged) GetTargetUserID() []string { + if x != nil { + return x.TargetUserID + } + return nil +} + +func (x *MiTransportAdminMessage_GroupAdminChanged) GetAction() MiTransportAdminMessage_GroupAdminChanged_Action { + if x != nil && x.Action != nil { + return *x.Action + } + return MiTransportAdminMessage_GroupAdminChanged_ADDED +} + +type MiTransportAdminMessage_GroupParticipantChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + TargetUserID []string `protobuf:"bytes,1,rep,name=targetUserID" json:"targetUserID,omitempty"` + Action *MiTransportAdminMessage_GroupParticipantChanged_Action `protobuf:"varint,2,opt,name=action,enum=WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage_GroupParticipantChanged_Action" json:"action,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_GroupParticipantChanged) Reset() { + *x = MiTransportAdminMessage_GroupParticipantChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_GroupParticipantChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_GroupParticipantChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_GroupParticipantChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_GroupParticipantChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_GroupParticipantChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 4} +} + +func (x *MiTransportAdminMessage_GroupParticipantChanged) GetTargetUserID() []string { + if x != nil { + return x.TargetUserID + } + return nil +} + +func (x *MiTransportAdminMessage_GroupParticipantChanged) GetAction() MiTransportAdminMessage_GroupParticipantChanged_Action { + if x != nil && x.Action != nil { + return *x.Action + } + return MiTransportAdminMessage_GroupParticipantChanged_ADDED +} + +type MiTransportAdminMessage_DisappearingSettingChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + DisappearingSettingDurationSeconds *int32 `protobuf:"varint,1,opt,name=disappearingSettingDurationSeconds" json:"disappearingSettingDurationSeconds,omitempty"` + OldDisappearingSettingDurationSeconds *int32 `protobuf:"varint,2,opt,name=oldDisappearingSettingDurationSeconds" json:"oldDisappearingSettingDurationSeconds,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_DisappearingSettingChanged) Reset() { + *x = MiTransportAdminMessage_DisappearingSettingChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_DisappearingSettingChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_DisappearingSettingChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_DisappearingSettingChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_DisappearingSettingChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_DisappearingSettingChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 5} +} + +func (x *MiTransportAdminMessage_DisappearingSettingChanged) GetDisappearingSettingDurationSeconds() int32 { + if x != nil && x.DisappearingSettingDurationSeconds != nil { + return *x.DisappearingSettingDurationSeconds + } + return 0 +} + +func (x *MiTransportAdminMessage_DisappearingSettingChanged) GetOldDisappearingSettingDurationSeconds() int32 { + if x != nil && x.OldDisappearingSettingDurationSeconds != nil { + return *x.OldDisappearingSettingDurationSeconds + } + return 0 +} + +type MiTransportAdminMessage_IconChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + ThreadIcon *string `protobuf:"bytes,1,opt,name=threadIcon" json:"threadIcon,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_IconChanged) Reset() { + *x = MiTransportAdminMessage_IconChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_IconChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_IconChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_IconChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_IconChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_IconChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 6} +} + +func (x *MiTransportAdminMessage_IconChanged) GetThreadIcon() string { + if x != nil && x.ThreadIcon != nil { + return *x.ThreadIcon + } + return "" +} + +type MiTransportAdminMessage_LinkCta struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Content: + // + // *MiTransportAdminMessage_LinkCta_UkOsaAdminText_ + Content isMiTransportAdminMessage_LinkCta_Content `protobuf_oneof:"content"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_LinkCta) Reset() { + *x = MiTransportAdminMessage_LinkCta{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_LinkCta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_LinkCta) ProtoMessage() {} + +func (x *MiTransportAdminMessage_LinkCta) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_LinkCta.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_LinkCta) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 7} +} + +func (x *MiTransportAdminMessage_LinkCta) GetContent() isMiTransportAdminMessage_LinkCta_Content { + if x != nil { + return x.Content + } + return nil +} + +func (x *MiTransportAdminMessage_LinkCta) GetUkOsaAdminText() *MiTransportAdminMessage_LinkCta_UkOsaAdminText { + if x != nil { + if x, ok := x.Content.(*MiTransportAdminMessage_LinkCta_UkOsaAdminText_); ok { + return x.UkOsaAdminText + } + } + return nil +} + +type isMiTransportAdminMessage_LinkCta_Content interface { + isMiTransportAdminMessage_LinkCta_Content() +} + +type MiTransportAdminMessage_LinkCta_UkOsaAdminText_ struct { + UkOsaAdminText *MiTransportAdminMessage_LinkCta_UkOsaAdminText `protobuf:"bytes,1,opt,name=ukOsaAdminText,oneof"` +} + +func (*MiTransportAdminMessage_LinkCta_UkOsaAdminText_) isMiTransportAdminMessage_LinkCta_Content() {} + +type MiTransportAdminMessage_QuickReactionChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + EmojiName *string `protobuf:"bytes,1,opt,name=emojiName" json:"emojiName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_QuickReactionChanged) Reset() { + *x = MiTransportAdminMessage_QuickReactionChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_QuickReactionChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_QuickReactionChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_QuickReactionChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_QuickReactionChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_QuickReactionChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 8} +} + +func (x *MiTransportAdminMessage_QuickReactionChanged) GetEmojiName() string { + if x != nil && x.EmojiName != nil { + return *x.EmojiName + } + return "" +} + +type MiTransportAdminMessage_GroupNameChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + GroupName *string `protobuf:"bytes,1,opt,name=groupName" json:"groupName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_GroupNameChanged) Reset() { + *x = MiTransportAdminMessage_GroupNameChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_GroupNameChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_GroupNameChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_GroupNameChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_GroupNameChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_GroupNameChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 9} +} + +func (x *MiTransportAdminMessage_GroupNameChanged) GetGroupName() string { + if x != nil && x.GroupName != nil { + return *x.GroupName + } + return "" +} + +type MiTransportAdminMessage_NicknameChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + TargetUserID *string `protobuf:"bytes,1,opt,name=targetUserID" json:"targetUserID,omitempty"` + Nickname *string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_NicknameChanged) Reset() { + *x = MiTransportAdminMessage_NicknameChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_NicknameChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_NicknameChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_NicknameChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_NicknameChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_NicknameChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 10} +} + +func (x *MiTransportAdminMessage_NicknameChanged) GetTargetUserID() string { + if x != nil && x.TargetUserID != nil { + return *x.TargetUserID + } + return "" +} + +func (x *MiTransportAdminMessage_NicknameChanged) GetNickname() string { + if x != nil && x.Nickname != nil { + return *x.Nickname + } + return "" +} + +type MiTransportAdminMessage_ChatThemeChanged struct { + state protoimpl.MessageState `protogen:"open.v1"` + ThemeName *string `protobuf:"bytes,1,opt,name=themeName" json:"themeName,omitempty"` + ThemeEmoji *string `protobuf:"bytes,2,opt,name=themeEmoji" json:"themeEmoji,omitempty"` + ThemeType *int32 `protobuf:"varint,3,opt,name=themeType" json:"themeType,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_ChatThemeChanged) Reset() { + *x = MiTransportAdminMessage_ChatThemeChanged{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_ChatThemeChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_ChatThemeChanged) ProtoMessage() {} + +func (x *MiTransportAdminMessage_ChatThemeChanged) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_ChatThemeChanged.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_ChatThemeChanged) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 11} +} + +func (x *MiTransportAdminMessage_ChatThemeChanged) GetThemeName() string { + if x != nil && x.ThemeName != nil { + return *x.ThemeName + } + return "" +} + +func (x *MiTransportAdminMessage_ChatThemeChanged) GetThemeEmoji() string { + if x != nil && x.ThemeEmoji != nil { + return *x.ThemeEmoji + } + return "" +} + +func (x *MiTransportAdminMessage_ChatThemeChanged) GetThemeType() int32 { + if x != nil && x.ThemeType != nil { + return *x.ThemeType + } + return 0 +} + +type MiTransportAdminMessage_LinkCta_UkOsaAdminText struct { + state protoimpl.MessageState `protogen:"open.v1"` + InitiatorUserID *string `protobuf:"bytes,2,opt,name=initiatorUserID" json:"initiatorUserID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MiTransportAdminMessage_LinkCta_UkOsaAdminText) Reset() { + *x = MiTransportAdminMessage_LinkCta_UkOsaAdminText{} + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MiTransportAdminMessage_LinkCta_UkOsaAdminText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiTransportAdminMessage_LinkCta_UkOsaAdminText) ProtoMessage() {} + +func (x *MiTransportAdminMessage_LinkCta_UkOsaAdminText) ProtoReflect() protoreflect.Message { + mi := &file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiTransportAdminMessage_LinkCta_UkOsaAdminText.ProtoReflect.Descriptor instead. +func (*MiTransportAdminMessage_LinkCta_UkOsaAdminText) Descriptor() ([]byte, []int) { + return file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDescGZIP(), []int{0, 7, 0} +} + +func (x *MiTransportAdminMessage_LinkCta_UkOsaAdminText) GetInitiatorUserID() string { + if x != nil && x.InitiatorUserID != nil { + return *x.InitiatorUserID + } + return "" +} + +var File_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto protoreflect.FileDescriptor + +const file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDesc = "" + + "\n" + + "KwaArmadilloMiTransportAdminMessage/WAArmadilloMiTransportAdminMessage.proto\x12\"WAArmadilloMiTransportAdminMessage\"\xc6\x19\n" + + "\x17MiTransportAdminMessage\x12z\n" + + "\x10chatThemeChanged\x18\x01 \x01(\v2L.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.ChatThemeChangedH\x00R\x10chatThemeChanged\x12w\n" + + "\x0fnicknameChanged\x18\x02 \x01(\v2K.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.NicknameChangedH\x00R\x0fnicknameChanged\x12\x8f\x01\n" + + "\x17groupParticipantChanged\x18\x03 \x01(\v2S.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupParticipantChangedH\x00R\x17groupParticipantChanged\x12}\n" + + "\x11groupAdminChanged\x18\x04 \x01(\v2M.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupAdminChangedH\x00R\x11groupAdminChanged\x12z\n" + + "\x10groupNameChanged\x18\x05 \x01(\v2L.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupNameChangedH\x00R\x10groupNameChanged\x12\xa1\x01\n" + + "\x1dgroupMembershipAddModeChanged\x18\x06 \x01(\v2Y.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupMembershipAddModeChangedH\x00R\x1dgroupMembershipAddModeChanged\x12q\n" + + "\rmessagePinned\x18\a \x01(\v2I.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.MessagePinnedH\x00R\rmessagePinned\x12}\n" + + "\x11groupImageChanged\x18\b \x01(\v2M.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupImageChangedH\x00R\x11groupImageChanged\x12\x86\x01\n" + + "\x14quickReactionChanged\x18\t \x01(\v2P.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.QuickReactionChangedH\x00R\x14quickReactionChanged\x12_\n" + + "\alinkCta\x18\n" + + " \x01(\v2C.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.LinkCtaH\x00R\alinkCta\x12k\n" + + "\viconChanged\x18\v \x01(\v2G.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.IconChangedH\x00R\viconChanged\x12\x98\x01\n" + + "\x1adisappearingSettingChanged\x18\f \x01(\v2V.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.DisappearingSettingChangedH\x00R\x1adisappearingSettingChanged\x1a\xa5\x01\n" + + "\x11GroupImageChanged\x12l\n" + + "\x06action\x18\x01 \x01(\x0e2T.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupImageChanged.ActionR\x06action\"\"\n" + + "\x06Action\x12\v\n" + + "\aCHANGED\x10\x01\x12\v\n" + + "\aREMOVED\x10\x02\x1a\x9d\x01\n" + + "\rMessagePinned\x12h\n" + + "\x06action\x18\x01 \x01(\x0e2P.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.MessagePinned.ActionR\x06action\"\"\n" + + "\x06Action\x12\n" + + "\n" + + "\x06PINNED\x10\x01\x12\f\n" + + "\bUNPINNED\x10\x02\x1a\xbd\x01\n" + + "\x1dGroupMembershipAddModeChanged\x12r\n" + + "\x04mode\x18\x01 \x01(\x0e2^.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupMembershipAddModeChanged.ModeR\x04mode\"(\n" + + "\x04Mode\x12\x0f\n" + + "\vALL_MEMBERS\x10\x01\x12\x0f\n" + + "\vADMINS_ONLY\x10\x02\x1a\xc7\x01\n" + + "\x11GroupAdminChanged\x12\"\n" + + "\ftargetUserID\x18\x01 \x03(\tR\ftargetUserID\x12l\n" + + "\x06action\x18\x02 \x01(\x0e2T.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupAdminChanged.ActionR\x06action\" \n" + + "\x06Action\x12\t\n" + + "\x05ADDED\x10\x01\x12\v\n" + + "\aREMOVED\x10\x02\x1a\xd3\x01\n" + + "\x17GroupParticipantChanged\x12\"\n" + + "\ftargetUserID\x18\x01 \x03(\tR\ftargetUserID\x12r\n" + + "\x06action\x18\x02 \x01(\x0e2Z.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupParticipantChanged.ActionR\x06action\" \n" + + "\x06Action\x12\t\n" + + "\x05ADDED\x10\x01\x12\v\n" + + "\aREMOVED\x10\x02\x1a\xc2\x01\n" + + "\x1aDisappearingSettingChanged\x12N\n" + + "\"disappearingSettingDurationSeconds\x18\x01 \x01(\x05R\"disappearingSettingDurationSeconds\x12T\n" + + "%oldDisappearingSettingDurationSeconds\x18\x02 \x01(\x05R%oldDisappearingSettingDurationSeconds\x1a-\n" + + "\vIconChanged\x12\x1e\n" + + "\n" + + "threadIcon\x18\x01 \x01(\tR\n" + + "threadIcon\x1a\xce\x01\n" + + "\aLinkCta\x12|\n" + + "\x0eukOsaAdminText\x18\x01 \x01(\v2R.WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.LinkCta.UkOsaAdminTextH\x00R\x0eukOsaAdminText\x1a:\n" + + "\x0eUkOsaAdminText\x12(\n" + + "\x0finitiatorUserID\x18\x02 \x01(\tR\x0finitiatorUserIDB\t\n" + + "\acontent\x1a4\n" + + "\x14QuickReactionChanged\x12\x1c\n" + + "\temojiName\x18\x01 \x01(\tR\temojiName\x1a0\n" + + "\x10GroupNameChanged\x12\x1c\n" + + "\tgroupName\x18\x01 \x01(\tR\tgroupName\x1aQ\n" + + "\x0fNicknameChanged\x12\"\n" + + "\ftargetUserID\x18\x01 \x01(\tR\ftargetUserID\x12\x1a\n" + + "\bnickname\x18\x02 \x01(\tR\bnickname\x1an\n" + + "\x10ChatThemeChanged\x12\x1c\n" + + "\tthemeName\x18\x01 \x01(\tR\tthemeName\x12\x1e\n" + + "\n" + + "themeEmoji\x18\x02 \x01(\tR\n" + + "themeEmoji\x12\x1c\n" + + "\tthemeType\x18\x03 \x01(\x05R\tthemeTypeB\t\n" + + "\acontentB>Z WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.ChatThemeChanged + 16, // 1: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.nicknameChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.NicknameChanged + 10, // 2: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.groupParticipantChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupParticipantChanged + 9, // 3: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.groupAdminChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupAdminChanged + 15, // 4: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.groupNameChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupNameChanged + 8, // 5: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.groupMembershipAddModeChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupMembershipAddModeChanged + 7, // 6: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.messagePinned:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.MessagePinned + 6, // 7: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.groupImageChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupImageChanged + 14, // 8: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.quickReactionChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.QuickReactionChanged + 13, // 9: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.linkCta:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.LinkCta + 12, // 10: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.iconChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.IconChanged + 11, // 11: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.disappearingSettingChanged:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.DisappearingSettingChanged + 0, // 12: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupImageChanged.action:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupImageChanged.Action + 1, // 13: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.MessagePinned.action:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.MessagePinned.Action + 2, // 14: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupMembershipAddModeChanged.mode:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupMembershipAddModeChanged.Mode + 3, // 15: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupAdminChanged.action:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupAdminChanged.Action + 4, // 16: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupParticipantChanged.action:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.GroupParticipantChanged.Action + 18, // 17: WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.LinkCta.ukOsaAdminText:type_name -> WAArmadilloMiTransportAdminMessage.MiTransportAdminMessage.LinkCta.UkOsaAdminText + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name +} + +func init() { file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_init() } +func file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_init() { + if File_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto != nil { + return + } + file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[0].OneofWrappers = []any{ + (*MiTransportAdminMessage_ChatThemeChanged_)(nil), + (*MiTransportAdminMessage_NicknameChanged_)(nil), + (*MiTransportAdminMessage_GroupParticipantChanged_)(nil), + (*MiTransportAdminMessage_GroupAdminChanged_)(nil), + (*MiTransportAdminMessage_GroupNameChanged_)(nil), + (*MiTransportAdminMessage_GroupMembershipAddModeChanged_)(nil), + (*MiTransportAdminMessage_MessagePinned_)(nil), + (*MiTransportAdminMessage_GroupImageChanged_)(nil), + (*MiTransportAdminMessage_QuickReactionChanged_)(nil), + (*MiTransportAdminMessage_LinkCta_)(nil), + (*MiTransportAdminMessage_IconChanged_)(nil), + (*MiTransportAdminMessage_DisappearingSettingChanged_)(nil), + } + file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes[8].OneofWrappers = []any{ + (*MiTransportAdminMessage_LinkCta_UkOsaAdminText_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDesc), len(file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_rawDesc)), + NumEnums: 5, + NumMessages: 14, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_goTypes, + DependencyIndexes: file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_depIdxs, + EnumInfos: file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_enumTypes, + MessageInfos: file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_msgTypes, + }.Build() + File_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto = out.File + file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_goTypes = nil + file_waArmadilloMiTransportAdminMessage_WAArmadilloMiTransportAdminMessage_proto_depIdxs = nil +} diff --git a/proto/waArmadilloMiTransportAdminMessage/WAArmadilloMiTransportAdminMessage.proto b/proto/waArmadilloMiTransportAdminMessage/WAArmadilloMiTransportAdminMessage.proto new file mode 100644 index 00000000..9c62cd8e --- /dev/null +++ b/proto/waArmadilloMiTransportAdminMessage/WAArmadilloMiTransportAdminMessage.proto @@ -0,0 +1,105 @@ +syntax = "proto2"; +package WAArmadilloMiTransportAdminMessage; +option go_package = "go.mau.fi/whatsmeow/proto/waArmadilloMiTransportAdminMessage"; + +message MiTransportAdminMessage { + message GroupImageChanged { + enum Action { + CHANGED = 1; + REMOVED = 2; + } + + optional Action action = 1; + } + + message MessagePinned { + enum Action { + PINNED = 1; + UNPINNED = 2; + } + + optional Action action = 1; + } + + message GroupMembershipAddModeChanged { + enum Mode { + ALL_MEMBERS = 1; + ADMINS_ONLY = 2; + } + + optional Mode mode = 1; + } + + message GroupAdminChanged { + enum Action { + ADDED = 1; + REMOVED = 2; + } + + repeated string targetUserID = 1; + optional Action action = 2; + } + + message GroupParticipantChanged { + enum Action { + ADDED = 1; + REMOVED = 2; + } + + repeated string targetUserID = 1; + optional Action action = 2; + } + + message DisappearingSettingChanged { + optional int32 disappearingSettingDurationSeconds = 1; + optional int32 oldDisappearingSettingDurationSeconds = 2; + } + + message IconChanged { + optional string threadIcon = 1; + } + + message LinkCta { + message UkOsaAdminText { + optional string initiatorUserID = 2; + } + + oneof content { + UkOsaAdminText ukOsaAdminText = 1; + } + } + + message QuickReactionChanged { + optional string emojiName = 1; + } + + message GroupNameChanged { + optional string groupName = 1; + } + + message NicknameChanged { + optional string targetUserID = 1; + optional string nickname = 2; + } + + message ChatThemeChanged { + optional string themeName = 1; + optional string themeEmoji = 2; + optional int32 themeType = 3; + } + + oneof content { + ChatThemeChanged chatThemeChanged = 1; + NicknameChanged nicknameChanged = 2; + GroupParticipantChanged groupParticipantChanged = 3; + GroupAdminChanged groupAdminChanged = 4; + GroupNameChanged groupNameChanged = 5; + GroupMembershipAddModeChanged groupMembershipAddModeChanged = 6; + MessagePinned messagePinned = 7; + GroupImageChanged groupImageChanged = 8; + QuickReactionChanged quickReactionChanged = 9; + LinkCta linkCta = 10; + IconChanged iconChanged = 11; + DisappearingSettingChanged disappearingSettingChanged = 12; + } +} diff --git a/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.pb.go b/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.pb.go index 160a28d7..2b8c6eef 100644 --- a/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.pb.go +++ b/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waArmadilloTransportEvent/WAArmadilloTransportEvent.proto @@ -9,11 +9,10 @@ package waArmadilloTransportEvent import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -453,11 +452,13 @@ func (x *TransportEvent_Event_IcdcAlert) GetType() TransportEvent_Event_IcdcAler } type TransportEvent_Event_DeviceChange struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type *TransportEvent_Event_DeviceChange_Type `protobuf:"varint,1,opt,name=type,enum=WAArmadilloTransportEvent.TransportEvent_Event_DeviceChange_Type" json:"type,omitempty"` - DeviceName *string `protobuf:"bytes,2,opt,name=deviceName" json:"deviceName,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type *TransportEvent_Event_DeviceChange_Type `protobuf:"varint,1,opt,name=type,enum=WAArmadilloTransportEvent.TransportEvent_Event_DeviceChange_Type" json:"type,omitempty"` + DeviceName *string `protobuf:"bytes,2,opt,name=deviceName" json:"deviceName,omitempty"` + DevicePlatform *string `protobuf:"bytes,3,opt,name=devicePlatform" json:"devicePlatform,omitempty"` + DeviceModel *string `protobuf:"bytes,4,opt,name=deviceModel" json:"deviceModel,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TransportEvent_Event_DeviceChange) Reset() { @@ -504,19 +505,65 @@ func (x *TransportEvent_Event_DeviceChange) GetDeviceName() string { return "" } +func (x *TransportEvent_Event_DeviceChange) GetDevicePlatform() string { + if x != nil && x.DevicePlatform != nil { + return *x.DevicePlatform + } + return "" +} + +func (x *TransportEvent_Event_DeviceChange) GetDeviceModel() string { + if x != nil && x.DeviceModel != nil { + return *x.DeviceModel + } + return "" +} + var File_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto protoreflect.FileDescriptor -//go:embed WAArmadilloTransportEvent.pb.raw -var file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc []byte +const file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc = "" + + "\n" + + "9waArmadilloTransportEvent/WAArmadilloTransportEvent.proto\x12\x19WAArmadilloTransportEvent\"\xc3\a\n" + + "\x0eTransportEvent\x12Y\n" + + "\vplaceholder\x18\x01 \x01(\v25.WAArmadilloTransportEvent.TransportEvent.PlaceholderH\x00R\vplaceholder\x12G\n" + + "\x05event\x18\x02 \x01(\v2/.WAArmadilloTransportEvent.TransportEvent.EventH\x00R\x05event\x1a\xe8\x04\n" + + "\x05Event\x12b\n" + + "\fdeviceChange\x18\x01 \x01(\v2<.WAArmadilloTransportEvent.TransportEvent.Event.DeviceChangeH\x00R\fdeviceChange\x12Y\n" + + "\ticdcAlert\x18\x02 \x01(\v29.WAArmadilloTransportEvent.TransportEvent.Event.IcdcAlertH\x00R\ticdcAlert\x1a\x8c\x01\n" + + "\tIcdcAlert\x12R\n" + + "\x04type\x18\x01 \x01(\x0e2>.WAArmadilloTransportEvent.TransportEvent.Event.IcdcAlert.TypeR\x04type\"+\n" + + "\x04Type\x12\b\n" + + "\x04NONE\x10\x00\x12\f\n" + + "\bDETECTED\x10\x01\x12\v\n" + + "\aCLEARED\x10\x02\x1a\x87\x02\n" + + "\fDeviceChange\x12U\n" + + "\x04type\x18\x01 \x01(\x0e2A.WAArmadilloTransportEvent.TransportEvent.Event.DeviceChange.TypeR\x04type\x12\x1e\n" + + "\n" + + "deviceName\x18\x02 \x01(\tR\n" + + "deviceName\x12&\n" + + "\x0edevicePlatform\x18\x03 \x01(\tR\x0edevicePlatform\x12 \n" + + "\vdeviceModel\x18\x04 \x01(\tR\vdeviceModel\"6\n" + + "\x04Type\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05ADDED\x10\x01\x12\v\n" + + "\aREMOVED\x10\x02\x12\f\n" + + "\bREPLACED\x10\x03B\a\n" + + "\x05event\x1a\x96\x01\n" + + "\vPlaceholder\x12N\n" + + "\x04type\x18\x01 \x01(\x0e2:.WAArmadilloTransportEvent.TransportEvent.Placeholder.TypeR\x04type\"7\n" + + "\x04Type\x12\x16\n" + + "\x12DECRYPTION_FAILURE\x10\x01\x12\x17\n" + + "\x13UNAVAILABLE_MESSAGE\x10\x02B\t\n" + + "\acontentB5Z3github.com/techwiz37/waSocket/proto/waArmadilloTransportEvent" var ( file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescOnce sync.Once - file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescData = file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc + file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescData []byte ) func file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescGZIP() []byte { file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescOnce.Do(func() { - file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescData = protoimpl.X.CompressGZIP(file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescData) + file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc), len(file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc))) }) return file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDescData } @@ -565,7 +612,7 @@ func file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc), len(file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc)), NumEnums: 3, NumMessages: 5, NumExtensions: 0, @@ -577,7 +624,6 @@ func file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_init() { MessageInfos: file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_msgTypes, }.Build() File_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto = out.File - file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_rawDesc = nil file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_goTypes = nil file_waArmadilloTransportEvent_WAArmadilloTransportEvent_proto_depIdxs = nil } diff --git a/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.pb.raw b/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.pb.raw deleted file mode 100644 index 40c2cd28..00000000 Binary files a/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.pb.raw and /dev/null differ diff --git a/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.proto b/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.proto index fa2c1f70..192b2bcf 100644 --- a/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.proto +++ b/proto/waArmadilloTransportEvent/WAArmadilloTransportEvent.proto @@ -24,6 +24,8 @@ message TransportEvent { optional Type type = 1; optional string deviceName = 2; + optional string devicePlatform = 3; + optional string deviceModel = 4; } oneof event { diff --git a/proto/waArmadilloXMA/WAArmadilloXMA.pb.go b/proto/waArmadilloXMA/WAArmadilloXMA.pb.go index 5c1579cb..44f9a9b2 100644 --- a/proto/waArmadilloXMA/WAArmadilloXMA.pb.go +++ b/proto/waArmadilloXMA/WAArmadilloXMA.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waArmadilloXMA/WAArmadilloXMA.proto @@ -9,13 +9,12 @@ package waArmadilloXMA import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waCommon "github.com/techwiz37/waSocket/proto/waCommon" - - _ "embed" ) const ( @@ -810,17 +809,152 @@ func (x *ExtendedContentMessage_CTA) GetActionContentBlob() string { var File_waArmadilloXMA_WAArmadilloXMA_proto protoreflect.FileDescriptor -//go:embed WAArmadilloXMA.pb.raw -var file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc []byte +const file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc = "" + + "\n" + + "#waArmadilloXMA/WAArmadilloXMA.proto\x12\x0eWAArmadilloXMA\x1a\x17waCommon/WACommon.proto\"\xf0\x1c\n" + + "\x16ExtendedContentMessage\x12C\n" + + "\x11associatedMessage\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\x11associatedMessage\x12Z\n" + + "\n" + + "targetType\x18\x02 \x01(\x0e2:.WAArmadilloXMA.ExtendedContentMessage.ExtendedContentTypeR\n" + + "targetType\x12&\n" + + "\x0etargetUsername\x18\x03 \x01(\tR\x0etargetUsername\x12\x1a\n" + + "\btargetID\x18\x04 \x01(\tR\btargetID\x120\n" + + "\x13targetExpiringAtSec\x18\x05 \x01(\x03R\x13targetExpiringAtSec\x12Z\n" + + "\rxmaLayoutType\x18\x06 \x01(\x0e24.WAArmadilloXMA.ExtendedContentMessage.XmaLayoutTypeR\rxmaLayoutType\x12>\n" + + "\x04ctas\x18\a \x03(\v2*.WAArmadilloXMA.ExtendedContentMessage.CTAR\x04ctas\x121\n" + + "\bpreviews\x18\b \x03(\v2\x15.WACommon.SubProtocolR\bpreviews\x12\x1c\n" + + "\ttitleText\x18\t \x01(\tR\ttitleText\x12\"\n" + + "\fsubtitleText\x18\n" + + " \x01(\tR\fsubtitleText\x12.\n" + + "\x12maxTitleNumOfLines\x18\v \x01(\rR\x12maxTitleNumOfLines\x124\n" + + "\x15maxSubtitleNumOfLines\x18\f \x01(\rR\x15maxSubtitleNumOfLines\x12/\n" + + "\afavicon\x18\r \x01(\v2\x15.WACommon.SubProtocolR\afavicon\x127\n" + + "\vheaderImage\x18\x0e \x01(\v2\x15.WACommon.SubProtocolR\vheaderImage\x12 \n" + + "\vheaderTitle\x18\x0f \x01(\tR\vheaderTitle\x12c\n" + + "\x10overlayIconGlyph\x18\x10 \x01(\x0e27.WAArmadilloXMA.ExtendedContentMessage.OverlayIconGlyphR\x10overlayIconGlyph\x12\"\n" + + "\foverlayTitle\x18\x11 \x01(\tR\foverlayTitle\x12.\n" + + "\x12overlayDescription\x18\x12 \x01(\tR\x12overlayDescription\x12,\n" + + "\x11sentWithMessageID\x18\x13 \x01(\tR\x11sentWithMessageID\x12 \n" + + "\vmessageText\x18\x14 \x01(\tR\vmessageText\x12&\n" + + "\x0eheaderSubtitle\x18\x15 \x01(\tR\x0eheaderSubtitle\x12\"\n" + + "\fxmaDataclass\x18\x16 \x01(\tR\fxmaDataclass\x12\x1e\n" + + "\n" + + "contentRef\x18\x17 \x01(\tR\n" + + "contentRef\x12\"\n" + + "\fmentionedJID\x18\x18 \x03(\tR\fmentionedJID\x12-\n" + + "\bcommands\x18\x19 \x03(\v2\x11.WACommon.CommandR\bcommands\x12-\n" + + "\bmentions\x18\x1a \x03(\v2\x11.WACommon.MentionR\bmentions\x1a\xf5\x01\n" + + "\x03CTA\x12T\n" + + "\n" + + "buttonType\x18\x01 \x01(\x0e24.WAArmadilloXMA.ExtendedContentMessage.CtaButtonTypeR\n" + + "buttonType\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12\x1c\n" + + "\tactionURL\x18\x03 \x01(\tR\tactionURL\x12\x1c\n" + + "\tnativeURL\x18\x04 \x01(\tR\tnativeURL\x12\x18\n" + + "\actaType\x18\x05 \x01(\tR\actaType\x12,\n" + + "\x11actionContentBlob\x18\x06 \x01(\tR\x11actionContentBlob\"\xa1\x01\n" + + "\x10OverlayIconGlyph\x12\b\n" + + "\x04INFO\x10\x00\x12\v\n" + + "\aEYE_OFF\x10\x01\x12\f\n" + + "\bNEWS_OFF\x10\x02\x12\v\n" + + "\aWARNING\x10\x03\x12\v\n" + + "\aPRIVATE\x10\x04\x12\b\n" + + "\x04NONE\x10\x05\x12\x0f\n" + + "\vMEDIA_LABEL\x10\x06\x12\x0e\n" + + "\n" + + "POST_COVER\x10\a\x12\x0e\n" + + "\n" + + "POST_LABEL\x10\b\x12\x13\n" + + "\x0fWARNING_SCREENS\x10\t\" \n" + + "\rCtaButtonType\x12\x0f\n" + + "\vOPEN_NATIVE\x10\v\"b\n" + + "\rXmaLayoutType\x12\n" + + "\n" + + "\x06SINGLE\x10\x00\x12\v\n" + + "\aHSCROLL\x10\x01\x12\f\n" + + "\bPORTRAIT\x10\x03\x12\x11\n" + + "\rSTANDARD_DXMA\x10\f\x12\r\n" + + "\tLIST_DXMA\x10\x0f\x12\b\n" + + "\x04GRID\x10\x10\"\xa2\x0e\n" + + "\x13ExtendedContentType\x12\x0f\n" + + "\vUNSUPPORTED\x10\x00\x12\x1a\n" + + "\x16IG_STORY_PHOTO_MENTION\x10\x04\x12\x1e\n" + + "\x1aIG_SINGLE_IMAGE_POST_SHARE\x10\t\x12\x16\n" + + "\x12IG_MULTIPOST_SHARE\x10\n" + + "\x12\x1e\n" + + "\x1aIG_SINGLE_VIDEO_POST_SHARE\x10\v\x12\x18\n" + + "\x14IG_STORY_PHOTO_SHARE\x10\f\x12\x18\n" + + "\x14IG_STORY_VIDEO_SHARE\x10\r\x12\x12\n" + + "\x0eIG_CLIPS_SHARE\x10\x0e\x12\x11\n" + + "\rIG_IGTV_SHARE\x10\x0f\x12\x11\n" + + "\rIG_SHOP_SHARE\x10\x10\x12\x14\n" + + "\x10IG_PROFILE_SHARE\x10\x13\x12\"\n" + + "\x1eIG_STORY_PHOTO_HIGHLIGHT_SHARE\x10\x14\x12\"\n" + + "\x1eIG_STORY_VIDEO_HIGHLIGHT_SHARE\x10\x15\x12\x12\n" + + "\x0eIG_STORY_REPLY\x10\x16\x12\x15\n" + + "\x11IG_STORY_REACTION\x10\x17\x12\x1a\n" + + "\x16IG_STORY_VIDEO_MENTION\x10\x18\x12\x1c\n" + + "\x18IG_STORY_HIGHLIGHT_REPLY\x10\x19\x12\x1f\n" + + "\x1bIG_STORY_HIGHLIGHT_REACTION\x10\x1a\x12\x14\n" + + "\x10IG_EXTERNAL_LINK\x10\x1b\x12\x15\n" + + "\x11IG_RECEIVER_FETCH\x10\x1c\x12\x12\n" + + "\rFB_FEED_SHARE\x10\xe8\a\x12\x13\n" + + "\x0eFB_STORY_REPLY\x10\xe9\a\x12\x13\n" + + "\x0eFB_STORY_SHARE\x10\xea\a\x12\x15\n" + + "\x10FB_STORY_MENTION\x10\xeb\a\x12\x18\n" + + "\x13FB_FEED_VIDEO_SHARE\x10\xec\a\x12\x1c\n" + + "\x17FB_GAMING_CUSTOM_UPDATE\x10\xed\a\x12\x1c\n" + + "\x17FB_PRODUCER_STORY_REPLY\x10\xee\a\x12\r\n" + + "\bFB_EVENT\x10\xef\a\x12\x1f\n" + + "\x1aFB_FEED_POST_PRIVATE_REPLY\x10\xf0\a\x12\r\n" + + "\bFB_SHORT\x10\xf1\a\x12\x1d\n" + + "\x18FB_COMMENT_MENTION_SHARE\x10\xf2\a\x12\x14\n" + + "\x0fFB_POST_MENTION\x10\xf3\a\x12\x1c\n" + + "\x17MSG_EXTERNAL_LINK_SHARE\x10\xd0\x0f\x12\x14\n" + + "\x0fMSG_P2P_PAYMENT\x10\xd1\x0f\x12\x19\n" + + "\x14MSG_LOCATION_SHARING\x10\xd2\x0f\x12\x1c\n" + + "\x17MSG_LOCATION_SHARING_V2\x10\xd3\x0f\x12,\n" + + "'MSG_HIGHLIGHTS_TAB_FRIEND_UPDATES_REPLY\x10\xd4\x0f\x12)\n" + + "$MSG_HIGHLIGHTS_TAB_LOCAL_EVENT_REPLY\x10\xd5\x0f\x12\x17\n" + + "\x12MSG_RECEIVER_FETCH\x10\xd6\x0f\x12\x17\n" + + "\x12MSG_IG_MEDIA_SHARE\x10\xd7\x0f\x12&\n" + + "!MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE\x10\xd8\x0f\x12\x13\n" + + "\x0eMSG_REELS_LIST\x10\xd9\x0f\x12\x10\n" + + "\vMSG_CONTACT\x10\xda\x0f\x12\x1b\n" + + "\x16MSG_THREADS_POST_SHARE\x10\xdb\x0f\x12\r\n" + + "\bMSG_FILE\x10\xdc\x0f\x12\x17\n" + + "\x12MSG_AVATAR_DETAILS\x10\xdd\x0f\x12\x13\n" + + "\x0eMSG_AI_CONTACT\x10\xde\x0f\x12\x17\n" + + "\x12MSG_MEMORIES_SHARE\x10\xdf\x0f\x12\x1b\n" + + "\x16MSG_SHARED_ALBUM_REPLY\x10\xe0\x0f\x12\x15\n" + + "\x10MSG_SHARED_ALBUM\x10\xe1\x0f\x12\x18\n" + + "\x13MSG_OCCAMADILLO_XMA\x10\xe2\x0f\x12\x1c\n" + + "\x17MSG_GEN_AI_SUBSCRIPTION\x10\xe5\x0f\x12\x18\n" + + "\x13MSG_GEN_AI_REMINDER\x10\xe6\x0f\x12(\n" + + "#MSG_GEN_AI_MEMU_ONBOARDING_RESPONSE\x10\xe7\x0f\x12\x13\n" + + "\x0eMSG_NOTE_REPLY\x10\xe8\x0f\x12\x15\n" + + "\x10MSG_NOTE_MENTION\x10\xe9\x0f\x12\x13\n" + + "\x0eRTC_AUDIO_CALL\x10\xb8\x17\x12\x13\n" + + "\x0eRTC_VIDEO_CALL\x10\xb9\x17\x12\x1a\n" + + "\x15RTC_MISSED_AUDIO_CALL\x10\xba\x17\x12\x1a\n" + + "\x15RTC_MISSED_VIDEO_CALL\x10\xbb\x17\x12\x19\n" + + "\x14RTC_GROUP_AUDIO_CALL\x10\xbc\x17\x12\x19\n" + + "\x14RTC_GROUP_VIDEO_CALL\x10\xbd\x17\x12 \n" + + "\x1bRTC_MISSED_GROUP_AUDIO_CALL\x10\xbe\x17\x12 \n" + + "\x1bRTC_MISSED_GROUP_VIDEO_CALL\x10\xbf\x17\x12\x1b\n" + + "\x16RTC_ONGOING_AUDIO_CALL\x10\xc0\x17\x12\x1b\n" + + "\x16RTC_ONGOING_VIDEO_CALL\x10\xc1\x17\x12 \n" + + "\x1bMSG_RECEIVER_FETCH_FALLBACK\x10\xd1\x17\x12\x1a\n" + + "\x15DATACLASS_SENDER_COPY\x10\xa0\x1fB*Z(github.com/techwiz37/waSocket/proto/waArmadilloXMA" var ( file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescOnce sync.Once - file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescData = file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc + file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescData []byte ) func file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescGZIP() []byte { file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescOnce.Do(func() { - file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescData = protoimpl.X.CompressGZIP(file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescData) + file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc), len(file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc))) }) return file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescData } @@ -866,7 +1000,7 @@ func file_waArmadilloXMA_WAArmadilloXMA_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc), len(file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc)), NumEnums: 4, NumMessages: 2, NumExtensions: 0, @@ -878,7 +1012,6 @@ func file_waArmadilloXMA_WAArmadilloXMA_proto_init() { MessageInfos: file_waArmadilloXMA_WAArmadilloXMA_proto_msgTypes, }.Build() File_waArmadilloXMA_WAArmadilloXMA_proto = out.File - file_waArmadilloXMA_WAArmadilloXMA_proto_rawDesc = nil file_waArmadilloXMA_WAArmadilloXMA_proto_goTypes = nil file_waArmadilloXMA_WAArmadilloXMA_proto_depIdxs = nil } diff --git a/proto/waArmadilloXMA/WAArmadilloXMA.pb.raw b/proto/waArmadilloXMA/WAArmadilloXMA.pb.raw deleted file mode 100644 index b2046e3c..00000000 Binary files a/proto/waArmadilloXMA/WAArmadilloXMA.pb.raw and /dev/null differ diff --git a/proto/waCert/WACert.pb.go b/proto/waCert/WACert.pb.go index d177b1d3..0397a315 100644 --- a/proto/waCert/WACert.pb.go +++ b/proto/waCert/WACert.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waCert/WACert.proto @@ -9,11 +9,10 @@ package waCert import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -333,17 +332,39 @@ func (x *CertChain_NoiseCertificate_Details) GetNotAfter() uint64 { var File_waCert_WACert_proto protoreflect.FileDescriptor -//go:embed WACert.pb.raw -var file_waCert_WACert_proto_rawDesc []byte +const file_waCert_WACert_proto_rawDesc = "" + + "\n" + + "\x13waCert/WACert.proto\x12\x06WACert\"\xcb\x01\n" + + "\x10NoiseCertificate\x12\x18\n" + + "\adetails\x18\x01 \x01(\fR\adetails\x12\x1c\n" + + "\tsignature\x18\x02 \x01(\fR\tsignature\x1a\x7f\n" + + "\aDetails\x12\x16\n" + + "\x06serial\x18\x01 \x01(\rR\x06serial\x12\x16\n" + + "\x06issuer\x18\x02 \x01(\tR\x06issuer\x12\x18\n" + + "\aexpires\x18\x03 \x01(\x04R\aexpires\x12\x18\n" + + "\asubject\x18\x04 \x01(\tR\asubject\x12\x10\n" + + "\x03key\x18\x05 \x01(\fR\x03key\"\xec\x02\n" + + "\tCertChain\x126\n" + + "\x04leaf\x18\x01 \x01(\v2\".WACert.CertChain.NoiseCertificateR\x04leaf\x12F\n" + + "\fintermediate\x18\x02 \x01(\v2\".WACert.CertChain.NoiseCertificateR\fintermediate\x1a\xde\x01\n" + + "\x10NoiseCertificate\x12\x18\n" + + "\adetails\x18\x01 \x01(\fR\adetails\x12\x1c\n" + + "\tsignature\x18\x02 \x01(\fR\tsignature\x1a\x91\x01\n" + + "\aDetails\x12\x16\n" + + "\x06serial\x18\x01 \x01(\rR\x06serial\x12\"\n" + + "\fissuerSerial\x18\x02 \x01(\rR\fissuerSerial\x12\x10\n" + + "\x03key\x18\x03 \x01(\fR\x03key\x12\x1c\n" + + "\tnotBefore\x18\x04 \x01(\x04R\tnotBefore\x12\x1a\n" + + "\bnotAfter\x18\x05 \x01(\x04R\bnotAfterB\"Z github.com/techwiz37/waSocket/proto/waCert" var ( file_waCert_WACert_proto_rawDescOnce sync.Once - file_waCert_WACert_proto_rawDescData = file_waCert_WACert_proto_rawDesc + file_waCert_WACert_proto_rawDescData []byte ) func file_waCert_WACert_proto_rawDescGZIP() []byte { file_waCert_WACert_proto_rawDescOnce.Do(func() { - file_waCert_WACert_proto_rawDescData = protoimpl.X.CompressGZIP(file_waCert_WACert_proto_rawDescData) + file_waCert_WACert_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waCert_WACert_proto_rawDesc), len(file_waCert_WACert_proto_rawDesc))) }) return file_waCert_WACert_proto_rawDescData } @@ -375,7 +396,7 @@ func file_waCert_WACert_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waCert_WACert_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waCert_WACert_proto_rawDesc), len(file_waCert_WACert_proto_rawDesc)), NumEnums: 0, NumMessages: 5, NumExtensions: 0, @@ -386,7 +407,6 @@ func file_waCert_WACert_proto_init() { MessageInfos: file_waCert_WACert_proto_msgTypes, }.Build() File_waCert_WACert_proto = out.File - file_waCert_WACert_proto_rawDesc = nil file_waCert_WACert_proto_goTypes = nil file_waCert_WACert_proto_depIdxs = nil } diff --git a/proto/waCert/WACert.pb.raw b/proto/waCert/WACert.pb.raw deleted file mode 100644 index ae70c93c..00000000 --- a/proto/waCert/WACert.pb.raw +++ /dev/null @@ -1,23 +0,0 @@ - -waCert/WACert.protoWACert"Ë -NoiseCertificate -details ( Rdetails - signature ( R signature -Details -serial ( Rserial -issuer ( Rissuer -expires (Rexpires -subject ( Rsubject -key ( Rkey"ì - CertChain6 -leaf ( 2".WACert.CertChain.NoiseCertificateRleafF - intermediate ( 2".WACert.CertChain.NoiseCertificateR intermediateÞ -NoiseCertificate -details ( Rdetails - signature ( R signature‘ -Details -serial ( Rserial" - issuerSerial ( R issuerSerial -key ( Rkey - notBefore (R notBefore -notAfter (RnotAfterB"Z go.mau.fi/whatsmeow/proto/waCert \ No newline at end of file diff --git a/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go b/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go index 85b96800..d573336c 100644 --- a/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go +++ b/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waChatLockSettings/WAProtobufsChatLockSettings.proto @@ -9,13 +9,12 @@ package waChatLockSettings import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waUserPassword "github.com/techwiz37/waSocket/proto/waUserPassword" - - _ "embed" ) const ( @@ -79,17 +78,23 @@ func (x *ChatLockSettings) GetSecretCode() *waUserPassword.UserPassword { var File_waChatLockSettings_WAProtobufsChatLockSettings_proto protoreflect.FileDescriptor -//go:embed WAProtobufsChatLockSettings.pb.raw -var file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc []byte +const file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc = "" + + "\n" + + "4waChatLockSettings/WAProtobufsChatLockSettings.proto\x12\x1bWAProtobufsChatLockSettings\x1a,waUserPassword/WAProtobufsUserPassword.proto\"\x83\x01\n" + + "\x10ChatLockSettings\x12(\n" + + "\x0fhideLockedChats\x18\x01 \x01(\bR\x0fhideLockedChats\x12E\n" + + "\n" + + "secretCode\x18\x02 \x01(\v2%.WAProtobufsUserPassword.UserPasswordR\n" + + "secretCodeB.Z,github.com/techwiz37/waSocket/proto/waChatLockSettings" var ( file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescOnce sync.Once - file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData = file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc + file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData []byte ) func file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescGZIP() []byte { file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescOnce.Do(func() { - file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData = protoimpl.X.CompressGZIP(file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData) + file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc), len(file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc))) }) return file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData } @@ -117,7 +122,7 @@ func file_waChatLockSettings_WAProtobufsChatLockSettings_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc), len(file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -128,7 +133,6 @@ func file_waChatLockSettings_WAProtobufsChatLockSettings_proto_init() { MessageInfos: file_waChatLockSettings_WAProtobufsChatLockSettings_proto_msgTypes, }.Build() File_waChatLockSettings_WAProtobufsChatLockSettings_proto = out.File - file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc = nil file_waChatLockSettings_WAProtobufsChatLockSettings_proto_goTypes = nil file_waChatLockSettings_WAProtobufsChatLockSettings_proto_depIdxs = nil } diff --git a/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.raw b/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.raw deleted file mode 100644 index 92c0c343..00000000 --- a/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.raw +++ /dev/null @@ -1,7 +0,0 @@ - -4waChatLockSettings/WAProtobufsChatLockSettings.protoWAProtobufsChatLockSettings,waUserPassword/WAProtobufsUserPassword.proto"ƒ -ChatLockSettings( -hideLockedChats (RhideLockedChatsE - -secretCode ( 2%.WAProtobufsUserPassword.UserPasswordR -secretCodeB.Z,go.mau.fi/whatsmeow/proto/waChatLockSettings \ No newline at end of file diff --git a/proto/waCommon/WACommon.pb.go b/proto/waCommon/WACommon.pb.go index 8e3b58af..3383bb23 100644 --- a/proto/waCommon/WACommon.pb.go +++ b/proto/waCommon/WACommon.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waCommon/WACommon.proto @@ -9,11 +9,10 @@ package waCommon import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -653,17 +652,66 @@ func (x *LimitSharing) GetInitiatedByMe() bool { var File_waCommon_WACommon_proto protoreflect.FileDescriptor -//go:embed WACommon.pb.raw -var file_waCommon_WACommon_proto_rawDesc []byte +const file_waCommon_WACommon_proto_rawDesc = "" + + "\n" + + "\x17waCommon/WACommon.proto\x12\bWACommon\"t\n" + + "\n" + + "MessageKey\x12\x1c\n" + + "\tremoteJID\x18\x01 \x01(\tR\tremoteJID\x12\x16\n" + + "\x06fromMe\x18\x02 \x01(\bR\x06fromMe\x12\x0e\n" + + "\x02ID\x18\x03 \x01(\tR\x02ID\x12 \n" + + "\vparticipant\x18\x04 \x01(\tR\vparticipant\"\xe5\x01\n" + + "\aCommand\x12?\n" + + "\vcommandType\x18\x01 \x01(\x0e2\x1d.WACommon.Command.CommandTypeR\vcommandType\x12\x16\n" + + "\x06offset\x18\x02 \x01(\rR\x06offset\x12\x16\n" + + "\x06length\x18\x03 \x01(\rR\x06length\x12(\n" + + "\x0fvalidationToken\x18\x04 \x01(\tR\x0fvalidationToken\"?\n" + + "\vCommandType\x12\f\n" + + "\bEVERYONE\x10\x01\x12\n" + + "\n" + + "\x06SILENT\x10\x02\x12\x06\n" + + "\x02AI\x10\x03\x12\x0e\n" + + "\n" + + "AI_IMAGINE\x10\x04\"\xba\x01\n" + + "\aMention\x12?\n" + + "\vmentionType\x18\x01 \x01(\x0e2\x1d.WACommon.Mention.MentionTypeR\vmentionType\x12\"\n" + + "\fmentionedJID\x18\x02 \x01(\tR\fmentionedJID\x12\x16\n" + + "\x06offset\x18\x03 \x01(\rR\x06offset\x12\x16\n" + + "\x06length\x18\x04 \x01(\rR\x06length\"\x1a\n" + + "\vMentionType\x12\v\n" + + "\aPROFILE\x10\x00\"\xa3\x01\n" + + "\vMessageText\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x12\"\n" + + "\fmentionedJID\x18\x02 \x03(\tR\fmentionedJID\x12-\n" + + "\bcommands\x18\x03 \x03(\v2\x11.WACommon.CommandR\bcommands\x12-\n" + + "\bmentions\x18\x04 \x03(\v2\x11.WACommon.MentionR\bmentions\"A\n" + + "\vSubProtocol\x12\x18\n" + + "\apayload\x18\x01 \x01(\fR\apayload\x12\x18\n" + + "\aversion\x18\x02 \x01(\x05R\aversion\"\xb4\x02\n" + + "\fLimitSharing\x12&\n" + + "\x0esharingLimited\x18\x01 \x01(\bR\x0esharingLimited\x128\n" + + "\atrigger\x18\x02 \x01(\x0e2\x1e.WACommon.LimitSharing.TriggerR\atrigger\x12B\n" + + "\x1climitSharingSettingTimestamp\x18\x03 \x01(\x03R\x1climitSharingSettingTimestamp\x12$\n" + + "\rinitiatedByMe\x18\x04 \x01(\bR\rinitiatedByMe\"X\n" + + "\aTrigger\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x10\n" + + "\fCHAT_SETTING\x10\x01\x12\x1b\n" + + "\x17BIZ_SUPPORTS_FB_HOSTING\x10\x02\x12\x11\n" + + "\rUNKNOWN_GROUP\x10\x03*F\n" + + "\x13FutureProofBehavior\x12\x0f\n" + + "\vPLACEHOLDER\x10\x00\x12\x12\n" + + "\x0eNO_PLACEHOLDER\x10\x01\x12\n" + + "\n" + + "\x06IGNORE\x10\x02B$Z\"github.com/techwiz37/waSocket/proto/waCommon" var ( file_waCommon_WACommon_proto_rawDescOnce sync.Once - file_waCommon_WACommon_proto_rawDescData = file_waCommon_WACommon_proto_rawDesc + file_waCommon_WACommon_proto_rawDescData []byte ) func file_waCommon_WACommon_proto_rawDescGZIP() []byte { file_waCommon_WACommon_proto_rawDescOnce.Do(func() { - file_waCommon_WACommon_proto_rawDescData = protoimpl.X.CompressGZIP(file_waCommon_WACommon_proto_rawDescData) + file_waCommon_WACommon_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waCommon_WACommon_proto_rawDesc), len(file_waCommon_WACommon_proto_rawDesc))) }) return file_waCommon_WACommon_proto_rawDescData } @@ -704,7 +752,7 @@ func file_waCommon_WACommon_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waCommon_WACommon_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waCommon_WACommon_proto_rawDesc), len(file_waCommon_WACommon_proto_rawDesc)), NumEnums: 4, NumMessages: 6, NumExtensions: 0, @@ -716,7 +764,6 @@ func file_waCommon_WACommon_proto_init() { MessageInfos: file_waCommon_WACommon_proto_msgTypes, }.Build() File_waCommon_WACommon_proto = out.File - file_waCommon_WACommon_proto_rawDesc = nil file_waCommon_WACommon_proto_goTypes = nil file_waCommon_WACommon_proto_depIdxs = nil } diff --git a/proto/waCommon/WACommon.pb.raw b/proto/waCommon/WACommon.pb.raw deleted file mode 100644 index 6fc89f6f..00000000 Binary files a/proto/waCommon/WACommon.pb.raw and /dev/null differ diff --git a/proto/waCompanionReg/WACompanionReg.pb.go b/proto/waCompanionReg/WACompanionReg.pb.go index 1b1ccb52..ea9511ea 100644 --- a/proto/waCompanionReg/WACompanionReg.pb.go +++ b/proto/waCompanionReg/WACompanionReg.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waCompanionReg/WACompanionReg.proto @@ -9,11 +9,10 @@ package waCompanionReg import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -822,17 +821,105 @@ func (x *DeviceProps_AppVersion) GetQuinary() uint32 { var File_waCompanionReg_WACompanionReg_proto protoreflect.FileDescriptor -//go:embed WACompanionReg.pb.raw -var file_waCompanionReg_WACompanionReg_proto_rawDesc []byte +const file_waCompanionReg_WACompanionReg_proto_rawDesc = "" + + "\n" + + "#waCompanionReg/WACompanionReg.proto\x12\x0eWACompanionReg\"\x95\r\n" + + "\vDeviceProps\x12\x0e\n" + + "\x02os\x18\x01 \x01(\tR\x02os\x12@\n" + + "\aversion\x18\x02 \x01(\v2&.WACompanionReg.DeviceProps.AppVersionR\aversion\x12L\n" + + "\fplatformType\x18\x03 \x01(\x0e2(.WACompanionReg.DeviceProps.PlatformTypeR\fplatformType\x12(\n" + + "\x0frequireFullSync\x18\x04 \x01(\bR\x0frequireFullSync\x12[\n" + + "\x11historySyncConfig\x18\x05 \x01(\v2-.WACompanionReg.DeviceProps.HistorySyncConfigR\x11historySyncConfig\x1a\xdf\x06\n" + + "\x11HistorySyncConfig\x12,\n" + + "\x11fullSyncDaysLimit\x18\x01 \x01(\rR\x11fullSyncDaysLimit\x120\n" + + "\x13fullSyncSizeMbLimit\x18\x02 \x01(\rR\x13fullSyncSizeMbLimit\x12&\n" + + "\x0estorageQuotaMb\x18\x03 \x01(\rR\x0estorageQuotaMb\x12D\n" + + "\x1dinlineInitialPayloadInE2EeMsg\x18\x04 \x01(\bR\x1dinlineInitialPayloadInE2EeMsg\x120\n" + + "\x13recentSyncDaysLimit\x18\x05 \x01(\rR\x13recentSyncDaysLimit\x124\n" + + "\x15supportCallLogHistory\x18\x06 \x01(\bR\x15supportCallLogHistory\x12F\n" + + "\x1esupportBotUserAgentChatHistory\x18\a \x01(\bR\x1esupportBotUserAgentChatHistory\x12@\n" + + "\x1bsupportCagReactionsAndPolls\x18\b \x01(\bR\x1bsupportCagReactionsAndPolls\x120\n" + + "\x13supportBizHostedMsg\x18\t \x01(\bR\x13supportBizHostedMsg\x12Z\n" + + "(supportRecentSyncChunkMessageCountTuning\x18\n" + + " \x01(\bR(supportRecentSyncChunkMessageCountTuning\x124\n" + + "\x15supportHostedGroupMsg\x18\v \x01(\bR\x15supportHostedGroupMsg\x12<\n" + + "\x19supportFbidBotChatHistory\x18\f \x01(\bR\x19supportFbidBotChatHistory\x12J\n" + + " supportAddOnHistorySyncMigration\x18\r \x01(\bR supportAddOnHistorySyncMigration\x12<\n" + + "\x19supportMessageAssociation\x18\x0e \x01(\bR\x19supportMessageAssociation\x1a\x9a\x01\n" + + "\n" + + "AppVersion\x12\x18\n" + + "\aprimary\x18\x01 \x01(\rR\aprimary\x12\x1c\n" + + "\tsecondary\x18\x02 \x01(\rR\tsecondary\x12\x1a\n" + + "\btertiary\x18\x03 \x01(\rR\btertiary\x12\x1e\n" + + "\n" + + "quaternary\x18\x04 \x01(\rR\n" + + "quaternary\x12\x18\n" + + "\aquinary\x18\x05 \x01(\rR\aquinary\"\xdf\x02\n" + + "\fPlatformType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\n" + + "\n" + + "\x06CHROME\x10\x01\x12\v\n" + + "\aFIREFOX\x10\x02\x12\x06\n" + + "\x02IE\x10\x03\x12\t\n" + + "\x05OPERA\x10\x04\x12\n" + + "\n" + + "\x06SAFARI\x10\x05\x12\b\n" + + "\x04EDGE\x10\x06\x12\v\n" + + "\aDESKTOP\x10\a\x12\b\n" + + "\x04IPAD\x10\b\x12\x12\n" + + "\x0eANDROID_TABLET\x10\t\x12\t\n" + + "\x05OHANA\x10\n" + + "\x12\t\n" + + "\x05ALOHA\x10\v\x12\f\n" + + "\bCATALINA\x10\f\x12\n" + + "\n" + + "\x06TCL_TV\x10\r\x12\r\n" + + "\tIOS_PHONE\x10\x0e\x12\x10\n" + + "\fIOS_CATALYST\x10\x0f\x12\x11\n" + + "\rANDROID_PHONE\x10\x10\x12\x15\n" + + "\x11ANDROID_AMBIGUOUS\x10\x11\x12\v\n" + + "\aWEAR_OS\x10\x12\x12\f\n" + + "\bAR_WRIST\x10\x13\x12\r\n" + + "\tAR_DEVICE\x10\x14\x12\a\n" + + "\x03UWP\x10\x15\x12\x06\n" + + "\x02VR\x10\x16\x12\r\n" + + "\tCLOUD_API\x10\x17\x12\x10\n" + + "\fSMARTGLASSES\x10\x18\"\x96\x01\n" + + "\x1aCompanionEphemeralIdentity\x12\x1c\n" + + "\tpublicKey\x18\x01 \x01(\fR\tpublicKey\x12H\n" + + "\n" + + "deviceType\x18\x02 \x01(\x0e2(.WACompanionReg.DeviceProps.PlatformTypeR\n" + + "deviceType\x12\x10\n" + + "\x03ref\x18\x03 \x01(\tR\x03ref\")\n" + + "\x13CompanionCommitment\x12\x12\n" + + "\x04hash\x18\x01 \x01(\fR\x04hash\"\x96\x01\n" + + "\x0fProloguePayload\x12>\n" + + "\x1acompanionEphemeralIdentity\x18\x01 \x01(\fR\x1acompanionEphemeralIdentity\x12C\n" + + "\n" + + "commitment\x18\x02 \x01(\v2#.WACompanionReg.CompanionCommitmentR\n" + + "commitment\"N\n" + + "\x18PrimaryEphemeralIdentity\x12\x1c\n" + + "\tpublicKey\x18\x01 \x01(\fR\tpublicKey\x12\x14\n" + + "\x05nonce\x18\x02 \x01(\fR\x05nonce\"\x92\x01\n" + + "\x0ePairingRequest\x12.\n" + + "\x12companionPublicKey\x18\x01 \x01(\fR\x12companionPublicKey\x122\n" + + "\x14companionIdentityKey\x18\x02 \x01(\fR\x14companionIdentityKey\x12\x1c\n" + + "\tadvSecret\x18\x03 \x01(\fR\tadvSecret\"U\n" + + "\x17EncryptedPairingRequest\x12*\n" + + "\x10encryptedPayload\x18\x01 \x01(\fR\x10encryptedPayload\x12\x0e\n" + + "\x02IV\x18\x02 \x01(\fR\x02IV\"|\n" + + "\x12ClientPairingProps\x120\n" + + "\x13isChatDbLidMigrated\x18\x01 \x01(\bR\x13isChatDbLidMigrated\x124\n" + + "\x15isSyncdPureLidSession\x18\x02 \x01(\bR\x15isSyncdPureLidSessionB*Z(github.com/techwiz37/waSocket/proto/waCompanionReg" var ( file_waCompanionReg_WACompanionReg_proto_rawDescOnce sync.Once - file_waCompanionReg_WACompanionReg_proto_rawDescData = file_waCompanionReg_WACompanionReg_proto_rawDesc + file_waCompanionReg_WACompanionReg_proto_rawDescData []byte ) func file_waCompanionReg_WACompanionReg_proto_rawDescGZIP() []byte { file_waCompanionReg_WACompanionReg_proto_rawDescOnce.Do(func() { - file_waCompanionReg_WACompanionReg_proto_rawDescData = protoimpl.X.CompressGZIP(file_waCompanionReg_WACompanionReg_proto_rawDescData) + file_waCompanionReg_WACompanionReg_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waCompanionReg_WACompanionReg_proto_rawDesc), len(file_waCompanionReg_WACompanionReg_proto_rawDesc))) }) return file_waCompanionReg_WACompanionReg_proto_rawDescData } @@ -874,7 +961,7 @@ func file_waCompanionReg_WACompanionReg_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waCompanionReg_WACompanionReg_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waCompanionReg_WACompanionReg_proto_rawDesc), len(file_waCompanionReg_WACompanionReg_proto_rawDesc)), NumEnums: 1, NumMessages: 10, NumExtensions: 0, @@ -886,7 +973,6 @@ func file_waCompanionReg_WACompanionReg_proto_init() { MessageInfos: file_waCompanionReg_WACompanionReg_proto_msgTypes, }.Build() File_waCompanionReg_WACompanionReg_proto = out.File - file_waCompanionReg_WACompanionReg_proto_rawDesc = nil file_waCompanionReg_WACompanionReg_proto_goTypes = nil file_waCompanionReg_WACompanionReg_proto_depIdxs = nil } diff --git a/proto/waCompanionReg/WACompanionReg.pb.raw b/proto/waCompanionReg/WACompanionReg.pb.raw deleted file mode 100644 index 180f0841..00000000 Binary files a/proto/waCompanionReg/WACompanionReg.pb.raw and /dev/null differ diff --git a/proto/waConsumerApplication/WAConsumerApplication.pb.go b/proto/waConsumerApplication/WAConsumerApplication.pb.go index 55e39da7..d75ae8c1 100644 --- a/proto/waConsumerApplication/WAConsumerApplication.pb.go +++ b/proto/waConsumerApplication/WAConsumerApplication.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waConsumerApplication/WAConsumerApplication.proto @@ -9,13 +9,12 @@ package waConsumerApplication import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waCommon "github.com/techwiz37/waSocket/proto/waCommon" - - _ "embed" ) const ( @@ -2464,17 +2463,183 @@ func (x *ConsumerApplication_MediaPayload) GetProtocol() *waCommon.SubProtocol { var File_waConsumerApplication_WAConsumerApplication_proto protoreflect.FileDescriptor -//go:embed WAConsumerApplication.pb.raw -var file_waConsumerApplication_WAConsumerApplication_proto_rawDesc []byte +const file_waConsumerApplication_WAConsumerApplication_proto_rawDesc = "" + + "\n" + + "1waConsumerApplication/WAConsumerApplication.proto\x12\x15WAConsumerApplication\x1a\x17waCommon/WACommon.proto\"\x9d6\n" + + "\x13ConsumerApplication\x12L\n" + + "\apayload\x18\x01 \x01(\v22.WAConsumerApplication.ConsumerApplication.PayloadR\apayload\x12O\n" + + "\bmetadata\x18\x02 \x01(\v23.WAConsumerApplication.ConsumerApplication.MetadataR\bmetadata\x1a\xfc\x02\n" + + "\aPayload\x12N\n" + + "\acontent\x18\x01 \x01(\v22.WAConsumerApplication.ConsumerApplication.ContentH\x00R\acontent\x12f\n" + + "\x0fapplicationData\x18\x02 \x01(\v2:.WAConsumerApplication.ConsumerApplication.ApplicationDataH\x00R\x0fapplicationData\x12K\n" + + "\x06signal\x18\x03 \x01(\v21.WAConsumerApplication.ConsumerApplication.SignalH\x00R\x06signal\x12a\n" + + "\vsubProtocol\x18\x04 \x01(\v2=.WAConsumerApplication.ConsumerApplication.SubProtocolPayloadH\x00R\vsubProtocolB\t\n" + + "\apayload\x1aU\n" + + "\x12SubProtocolPayload\x12?\n" + + "\vfutureProof\x18\x01 \x01(\x0e2\x1d.WACommon.FutureProofBehaviorR\vfutureProof\x1a\xae\x01\n" + + "\bMetadata\x12m\n" + + "\x0fspecialTextSize\x18\x01 \x01(\x0e2C.WAConsumerApplication.ConsumerApplication.Metadata.SpecialTextSizeR\x0fspecialTextSize\"3\n" + + "\x0fSpecialTextSize\x12\t\n" + + "\x05SMALL\x10\x01\x12\n" + + "\n" + + "\x06MEDIUM\x10\x02\x12\t\n" + + "\x05LARGE\x10\x03\x1a\b\n" + + "\x06Signal\x1a{\n" + + "\x0fApplicationData\x12R\n" + + "\x06revoke\x18\x01 \x01(\v28.WAConsumerApplication.ConsumerApplication.RevokeMessageH\x00R\x06revokeB\x14\n" + + "\x12applicationContent\x1a\xd1\x0e\n" + + "\aContent\x129\n" + + "\vmessageText\x18\x01 \x01(\v2\x15.WACommon.MessageTextH\x00R\vmessageText\x12]\n" + + "\fimageMessage\x18\x02 \x01(\v27.WAConsumerApplication.ConsumerApplication.ImageMessageH\x00R\fimageMessage\x12c\n" + + "\x0econtactMessage\x18\x03 \x01(\v29.WAConsumerApplication.ConsumerApplication.ContactMessageH\x00R\x0econtactMessage\x12f\n" + + "\x0flocationMessage\x18\x04 \x01(\v2:.WAConsumerApplication.ConsumerApplication.LocationMessageH\x00R\x0flocationMessage\x12r\n" + + "\x13extendedTextMessage\x18\x05 \x01(\v2>.WAConsumerApplication.ConsumerApplication.ExtendedTextMessageH\x00R\x13extendedTextMessage\x12k\n" + + "\x11statusTextMessage\x18\x06 \x01(\v2;.WAConsumerApplication.ConsumerApplication.StatusTextMesageH\x00R\x11statusTextMessage\x12f\n" + + "\x0fdocumentMessage\x18\a \x01(\v2:.WAConsumerApplication.ConsumerApplication.DocumentMessageH\x00R\x0fdocumentMessage\x12]\n" + + "\faudioMessage\x18\b \x01(\v27.WAConsumerApplication.ConsumerApplication.AudioMessageH\x00R\faudioMessage\x12]\n" + + "\fvideoMessage\x18\t \x01(\v27.WAConsumerApplication.ConsumerApplication.VideoMessageH\x00R\fvideoMessage\x12u\n" + + "\x14contactsArrayMessage\x18\n" + + " \x01(\v2?.WAConsumerApplication.ConsumerApplication.ContactsArrayMessageH\x00R\x14contactsArrayMessage\x12r\n" + + "\x13liveLocationMessage\x18\v \x01(\v2>.WAConsumerApplication.ConsumerApplication.LiveLocationMessageH\x00R\x13liveLocationMessage\x12c\n" + + "\x0estickerMessage\x18\f \x01(\v29.WAConsumerApplication.ConsumerApplication.StickerMessageH\x00R\x0estickerMessage\x12o\n" + + "\x12groupInviteMessage\x18\r \x01(\v2=.WAConsumerApplication.ConsumerApplication.GroupInviteMessageH\x00R\x12groupInviteMessage\x12f\n" + + "\x0fviewOnceMessage\x18\x0e \x01(\v2:.WAConsumerApplication.ConsumerApplication.ViewOnceMessageH\x00R\x0fviewOnceMessage\x12f\n" + + "\x0freactionMessage\x18\x10 \x01(\v2:.WAConsumerApplication.ConsumerApplication.ReactionMessageH\x00R\x0freactionMessage\x12r\n" + + "\x13pollCreationMessage\x18\x11 \x01(\v2>.WAConsumerApplication.ConsumerApplication.PollCreationMessageH\x00R\x13pollCreationMessage\x12l\n" + + "\x11pollUpdateMessage\x18\x12 \x01(\v2<.WAConsumerApplication.ConsumerApplication.PollUpdateMessageH\x00R\x11pollUpdateMessage\x12Z\n" + + "\veditMessage\x18\x13 \x01(\v26.WAConsumerApplication.ConsumerApplication.EditMessageH\x00R\veditMessageB\t\n" + + "\acontent\x1a\x88\x01\n" + + "\vEditMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12/\n" + + "\amessage\x18\x02 \x01(\v2\x15.WACommon.MessageTextR\amessage\x12 \n" + + "\vtimestampMS\x18\x03 \x01(\x03R\vtimestampMS\x1ai\n" + + "\x14PollAddOptionMessage\x12Q\n" + + "\n" + + "pollOption\x18\x01 \x03(\v21.WAConsumerApplication.ConsumerApplication.OptionR\n" + + "pollOption\x1ai\n" + + "\x0fPollVoteMessage\x12(\n" + + "\x0fselectedOptions\x18\x01 \x03(\fR\x0fselectedOptions\x12,\n" + + "\x11senderTimestampMS\x18\x02 \x01(\x03R\x11senderTimestampMS\x1aD\n" + + "\fPollEncValue\x12\x1e\n" + + "\n" + + "encPayload\x18\x01 \x01(\fR\n" + + "encPayload\x12\x14\n" + + "\x05encIV\x18\x02 \x01(\fR\x05encIV\x1a\x85\x02\n" + + "\x11PollUpdateMessage\x12L\n" + + "\x16pollCreationMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x16pollCreationMessageKey\x12K\n" + + "\x04vote\x18\x02 \x01(\v27.WAConsumerApplication.ConsumerApplication.PollEncValueR\x04vote\x12U\n" + + "\taddOption\x18\x03 \x01(\v27.WAConsumerApplication.ConsumerApplication.PollEncValueR\taddOption\x1a\xc6\x01\n" + + "\x13PollCreationMessage\x12\x16\n" + + "\x06encKey\x18\x01 \x01(\fR\x06encKey\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12K\n" + + "\aoptions\x18\x03 \x03(\v21.WAConsumerApplication.ConsumerApplication.OptionR\aoptions\x126\n" + + "\x16selectableOptionsCount\x18\x04 \x01(\rR\x16selectableOptionsCount\x1a(\n" + + "\x06Option\x12\x1e\n" + + "\n" + + "optionName\x18\x01 \x01(\tR\n" + + "optionName\x1a\xf9\x01\n" + + "\x0fReactionMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12\x12\n" + + "\x04text\x18\x02 \x01(\tR\x04text\x12 \n" + + "\vgroupingKey\x18\x03 \x01(\tR\vgroupingKey\x12,\n" + + "\x11senderTimestampMS\x18\x04 \x01(\x03R\x11senderTimestampMS\x12D\n" + + "\x1dreactionMetadataDataclassData\x18\x05 \x01(\tR\x1dreactionMetadataDataclassData\x12\x14\n" + + "\x05style\x18\x06 \x01(\x05R\x05style\x1a7\n" + + "\rRevokeMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x1a\xe2\x01\n" + + "\x0fViewOnceMessage\x12]\n" + + "\fimageMessage\x18\x01 \x01(\v27.WAConsumerApplication.ConsumerApplication.ImageMessageH\x00R\fimageMessage\x12]\n" + + "\fvideoMessage\x18\x02 \x01(\v27.WAConsumerApplication.ConsumerApplication.VideoMessageH\x00R\fvideoMessageB\x11\n" + + "\x0fviewOnceContent\x1a\xf1\x01\n" + + "\x12GroupInviteMessage\x12\x1a\n" + + "\bgroupJID\x18\x01 \x01(\tR\bgroupJID\x12\x1e\n" + + "\n" + + "inviteCode\x18\x02 \x01(\tR\n" + + "inviteCode\x12*\n" + + "\x10inviteExpiration\x18\x03 \x01(\x03R\x10inviteExpiration\x12\x1c\n" + + "\tgroupName\x18\x04 \x01(\tR\tgroupName\x12$\n" + + "\rJPEGThumbnail\x18\x05 \x01(\fR\rJPEGThumbnail\x12/\n" + + "\acaption\x18\x06 \x01(\v2\x15.WACommon.MessageTextR\acaption\x1a\xf9\x02\n" + + "\x13LiveLocationMessage\x12O\n" + + "\blocation\x18\x01 \x01(\v23.WAConsumerApplication.ConsumerApplication.LocationR\blocation\x12*\n" + + "\x10accuracyInMeters\x18\x02 \x01(\rR\x10accuracyInMeters\x12\x1e\n" + + "\n" + + "speedInMps\x18\x03 \x01(\x02R\n" + + "speedInMps\x12L\n" + + "!degreesClockwiseFromMagneticNorth\x18\x04 \x01(\rR!degreesClockwiseFromMagneticNorth\x12/\n" + + "\acaption\x18\x05 \x01(\v2\x15.WACommon.MessageTextR\acaption\x12&\n" + + "\x0esequenceNumber\x18\x06 \x01(\x03R\x0esequenceNumber\x12\x1e\n" + + "\n" + + "timeOffset\x18\a \x01(\rR\n" + + "timeOffset\x1a\x8f\x01\n" + + "\x14ContactsArrayMessage\x12 \n" + + "\vdisplayName\x18\x01 \x01(\tR\vdisplayName\x12U\n" + + "\bcontacts\x18\x02 \x03(\v29.WAConsumerApplication.ConsumerApplication.ContactMessageR\bcontacts\x1aA\n" + + "\x0eContactMessage\x12/\n" + + "\acontact\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\acontact\x1a\xfc\x02\n" + + "\x10StatusTextMesage\x12R\n" + + "\x04text\x18\x01 \x01(\v2>.WAConsumerApplication.ConsumerApplication.ExtendedTextMessageR\x04text\x12\x1a\n" + + "\btextArgb\x18\x06 \x01(\aR\btextArgb\x12&\n" + + "\x0ebackgroundArgb\x18\a \x01(\aR\x0ebackgroundArgb\x12X\n" + + "\x04font\x18\b \x01(\x0e2D.WAConsumerApplication.ConsumerApplication.StatusTextMesage.FontTypeR\x04font\"v\n" + + "\bFontType\x12\x0e\n" + + "\n" + + "SANS_SERIF\x10\x00\x12\t\n" + + "\x05SERIF\x10\x01\x12\x13\n" + + "\x0fNORICAN_REGULAR\x10\x02\x12\x11\n" + + "\rBRYNDAN_WRITE\x10\x03\x12\x15\n" + + "\x11BEBASNEUE_REGULAR\x10\x04\x12\x10\n" + + "\fOSWALD_HEAVY\x10\x05\x1a\x85\x03\n" + + "\x13ExtendedTextMessage\x12)\n" + + "\x04text\x18\x01 \x01(\v2\x15.WACommon.MessageTextR\x04text\x12 \n" + + "\vmatchedText\x18\x02 \x01(\tR\vmatchedText\x12\"\n" + + "\fcanonicalURL\x18\x03 \x01(\tR\fcanonicalURL\x12 \n" + + "\vdescription\x18\x04 \x01(\tR\vdescription\x12\x14\n" + + "\x05title\x18\x05 \x01(\tR\x05title\x123\n" + + "\tthumbnail\x18\x06 \x01(\v2\x15.WACommon.SubProtocolR\tthumbnail\x12l\n" + + "\vpreviewType\x18\a \x01(\x0e2J.WAConsumerApplication.ConsumerApplication.ExtendedTextMessage.PreviewTypeR\vpreviewType\"\"\n" + + "\vPreviewType\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05VIDEO\x10\x01\x1a|\n" + + "\x0fLocationMessage\x12O\n" + + "\blocation\x18\x01 \x01(\v23.WAConsumerApplication.ConsumerApplication.LocationR\blocation\x12\x18\n" + + "\aaddress\x18\x02 \x01(\tR\aaddress\x1aA\n" + + "\x0eStickerMessage\x12/\n" + + "\asticker\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\asticker\x1a`\n" + + "\x0fDocumentMessage\x121\n" + + "\bdocument\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\bdocument\x12\x1a\n" + + "\bfileName\x18\x02 \x01(\tR\bfileName\x1al\n" + + "\fVideoMessage\x12+\n" + + "\x05video\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\x05video\x12/\n" + + "\acaption\x18\x02 \x01(\v2\x15.WACommon.MessageTextR\acaption\x1aM\n" + + "\fAudioMessage\x12+\n" + + "\x05audio\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\x05audio\x12\x10\n" + + "\x03PTT\x18\x02 \x01(\bR\x03PTT\x1al\n" + + "\fImageMessage\x12+\n" + + "\x05image\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\x05image\x12/\n" + + "\acaption\x18\x02 \x01(\v2\x15.WACommon.MessageTextR\acaption\x1a\xd0\x01\n" + + "\x15InteractiveAnnotation\x12Q\n" + + "\blocation\x18\x02 \x01(\v23.WAConsumerApplication.ConsumerApplication.LocationH\x00R\blocation\x12Z\n" + + "\x0fpolygonVertices\x18\x01 \x03(\v20.WAConsumerApplication.ConsumerApplication.PointR\x0fpolygonVerticesB\b\n" + + "\x06action\x1a#\n" + + "\x05Point\x12\f\n" + + "\x01x\x18\x01 \x01(\x01R\x01x\x12\f\n" + + "\x01y\x18\x02 \x01(\x01R\x01y\x1at\n" + + "\bLocation\x12(\n" + + "\x0fdegreesLatitude\x18\x01 \x01(\x01R\x0fdegreesLatitude\x12*\n" + + "\x10degreesLongitude\x18\x02 \x01(\x01R\x10degreesLongitude\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x1aA\n" + + "\fMediaPayload\x121\n" + + "\bprotocol\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\bprotocolB1Z/github.com/techwiz37/waSocket/proto/waConsumerApplication" var ( file_waConsumerApplication_WAConsumerApplication_proto_rawDescOnce sync.Once - file_waConsumerApplication_WAConsumerApplication_proto_rawDescData = file_waConsumerApplication_WAConsumerApplication_proto_rawDesc + file_waConsumerApplication_WAConsumerApplication_proto_rawDescData []byte ) func file_waConsumerApplication_WAConsumerApplication_proto_rawDescGZIP() []byte { file_waConsumerApplication_WAConsumerApplication_proto_rawDescOnce.Do(func() { - file_waConsumerApplication_WAConsumerApplication_proto_rawDescData = protoimpl.X.CompressGZIP(file_waConsumerApplication_WAConsumerApplication_proto_rawDescData) + file_waConsumerApplication_WAConsumerApplication_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waConsumerApplication_WAConsumerApplication_proto_rawDesc), len(file_waConsumerApplication_WAConsumerApplication_proto_rawDesc))) }) return file_waConsumerApplication_WAConsumerApplication_proto_rawDescData } @@ -2635,7 +2800,7 @@ func file_waConsumerApplication_WAConsumerApplication_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waConsumerApplication_WAConsumerApplication_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waConsumerApplication_WAConsumerApplication_proto_rawDesc), len(file_waConsumerApplication_WAConsumerApplication_proto_rawDesc)), NumEnums: 3, NumMessages: 33, NumExtensions: 0, @@ -2647,7 +2812,6 @@ func file_waConsumerApplication_WAConsumerApplication_proto_init() { MessageInfos: file_waConsumerApplication_WAConsumerApplication_proto_msgTypes, }.Build() File_waConsumerApplication_WAConsumerApplication_proto = out.File - file_waConsumerApplication_WAConsumerApplication_proto_rawDesc = nil file_waConsumerApplication_WAConsumerApplication_proto_goTypes = nil file_waConsumerApplication_WAConsumerApplication_proto_depIdxs = nil } diff --git a/proto/waConsumerApplication/WAConsumerApplication.pb.raw b/proto/waConsumerApplication/WAConsumerApplication.pb.raw deleted file mode 100644 index 6964bb5b..00000000 Binary files a/proto/waConsumerApplication/WAConsumerApplication.pb.raw and /dev/null differ diff --git a/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go b/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go index 1a7c152e..42dc3614 100644 --- a/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go +++ b/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto @@ -9,11 +9,10 @@ package waDeviceCapabilities import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -180,17 +179,27 @@ func (x *DeviceCapabilities_LIDMigration) GetChatDbMigrationTimestamp() uint64 { var File_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto protoreflect.FileDescriptor -//go:embed WAProtobufsDeviceCapabilities.pb.raw -var file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc []byte +const file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc = "" + + "\n" + + "8waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto\x12\x1dWAProtobufsDeviceCapabilities\"\xf9\x02\n" + + "\x12DeviceCapabilities\x12z\n" + + "\x14chatLockSupportLevel\x18\x01 \x01(\x0e2F.WAProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevelR\x14chatLockSupportLevel\x12b\n" + + "\flidMigration\x18\x02 \x01(\v2>.WAProtobufsDeviceCapabilities.DeviceCapabilities.LIDMigrationR\flidMigration\x1aJ\n" + + "\fLIDMigration\x12:\n" + + "\x18chatDbMigrationTimestamp\x18\x01 \x01(\x04R\x18chatDbMigrationTimestamp\"7\n" + + "\x14ChatLockSupportLevel\x12\b\n" + + "\x04NONE\x10\x00\x12\v\n" + + "\aMINIMAL\x10\x01\x12\b\n" + + "\x04FULL\x10\x02B0Z.github.com/techwiz37/waSocket/proto/waDeviceCapabilities" var ( file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescOnce sync.Once - file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData = file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc + file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData []byte ) func file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescGZIP() []byte { file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescOnce.Do(func() { - file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData = protoimpl.X.CompressGZIP(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData) + file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc), len(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc))) }) return file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData } @@ -221,7 +230,7 @@ func file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc), len(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc)), NumEnums: 1, NumMessages: 2, NumExtensions: 0, @@ -233,7 +242,6 @@ func file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_init() { MessageInfos: file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes, }.Build() File_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto = out.File - file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc = nil file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_goTypes = nil file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_depIdxs = nil } diff --git a/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.raw b/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.raw deleted file mode 100644 index bd88029a..00000000 Binary files a/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.raw and /dev/null differ diff --git a/proto/waE2E/WAWebProtobufsE2E.pb.go b/proto/waE2E/WAWebProtobufsE2E.pb.go index f6e5a295..97739124 100644 --- a/proto/waE2E/WAWebProtobufsE2E.pb.go +++ b/proto/waE2E/WAWebProtobufsE2E.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waE2E/WAWebProtobufsE2E.proto @@ -9,6 +9,7 @@ package waE2E import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -17,8 +18,6 @@ import ( waCommon "github.com/techwiz37/waSocket/proto/waCommon" waCompanionReg "github.com/techwiz37/waSocket/proto/waCompanionReg" waMmsRetry "github.com/techwiz37/waSocket/proto/waMmsRetry" - - _ "embed" ) const ( @@ -90,14 +89,15 @@ func (PollContentType) EnumDescriptor() ([]byte, []int) { type PeerDataOperationRequestType int32 const ( - PeerDataOperationRequestType_UPLOAD_STICKER PeerDataOperationRequestType = 0 - PeerDataOperationRequestType_SEND_RECENT_STICKER_BOOTSTRAP PeerDataOperationRequestType = 1 - PeerDataOperationRequestType_GENERATE_LINK_PREVIEW PeerDataOperationRequestType = 2 - PeerDataOperationRequestType_HISTORY_SYNC_ON_DEMAND PeerDataOperationRequestType = 3 - PeerDataOperationRequestType_PLACEHOLDER_MESSAGE_RESEND PeerDataOperationRequestType = 4 - PeerDataOperationRequestType_WAFFLE_LINKING_NONCE_FETCH PeerDataOperationRequestType = 5 - PeerDataOperationRequestType_FULL_HISTORY_SYNC_ON_DEMAND PeerDataOperationRequestType = 6 - PeerDataOperationRequestType_COMPANION_META_NONCE_FETCH PeerDataOperationRequestType = 7 + PeerDataOperationRequestType_UPLOAD_STICKER PeerDataOperationRequestType = 0 + PeerDataOperationRequestType_SEND_RECENT_STICKER_BOOTSTRAP PeerDataOperationRequestType = 1 + PeerDataOperationRequestType_GENERATE_LINK_PREVIEW PeerDataOperationRequestType = 2 + PeerDataOperationRequestType_HISTORY_SYNC_ON_DEMAND PeerDataOperationRequestType = 3 + PeerDataOperationRequestType_PLACEHOLDER_MESSAGE_RESEND PeerDataOperationRequestType = 4 + PeerDataOperationRequestType_WAFFLE_LINKING_NONCE_FETCH PeerDataOperationRequestType = 5 + PeerDataOperationRequestType_FULL_HISTORY_SYNC_ON_DEMAND PeerDataOperationRequestType = 6 + PeerDataOperationRequestType_COMPANION_META_NONCE_FETCH PeerDataOperationRequestType = 7 + PeerDataOperationRequestType_COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY PeerDataOperationRequestType = 8 ) // Enum value maps for PeerDataOperationRequestType. @@ -111,16 +111,18 @@ var ( 5: "WAFFLE_LINKING_NONCE_FETCH", 6: "FULL_HISTORY_SYNC_ON_DEMAND", 7: "COMPANION_META_NONCE_FETCH", + 8: "COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY", } PeerDataOperationRequestType_value = map[string]int32{ - "UPLOAD_STICKER": 0, - "SEND_RECENT_STICKER_BOOTSTRAP": 1, - "GENERATE_LINK_PREVIEW": 2, - "HISTORY_SYNC_ON_DEMAND": 3, - "PLACEHOLDER_MESSAGE_RESEND": 4, - "WAFFLE_LINKING_NONCE_FETCH": 5, - "FULL_HISTORY_SYNC_ON_DEMAND": 6, - "COMPANION_META_NONCE_FETCH": 7, + "UPLOAD_STICKER": 0, + "SEND_RECENT_STICKER_BOOTSTRAP": 1, + "GENERATE_LINK_PREVIEW": 2, + "HISTORY_SYNC_ON_DEMAND": 3, + "PLACEHOLDER_MESSAGE_RESEND": 4, + "WAFFLE_LINKING_NONCE_FETCH": 5, + "FULL_HISTORY_SYNC_ON_DEMAND": 6, + "COMPANION_META_NONCE_FETCH": 7, + "COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY": 8, } ) @@ -185,6 +187,9 @@ const ( BotMetricsEntryPoint_AI_HOME BotMetricsEntryPoint = 19 BotMetricsEntryPoint_AI_DEEPLINK_IMMERSIVE BotMetricsEntryPoint = 20 BotMetricsEntryPoint_AI_DEEPLINK BotMetricsEntryPoint = 21 + BotMetricsEntryPoint_META_AI_CHAT_SHORTCUT_AI_STUDIO BotMetricsEntryPoint = 22 + BotMetricsEntryPoint_UGC_CHAT_SHORTCUT_AI_STUDIO BotMetricsEntryPoint = 23 + BotMetricsEntryPoint_NEW_CHAT_AI_STUDIO BotMetricsEntryPoint = 24 ) // Enum value maps for BotMetricsEntryPoint. @@ -211,6 +216,9 @@ var ( 19: "AI_HOME", 20: "AI_DEEPLINK_IMMERSIVE", 21: "AI_DEEPLINK", + 22: "META_AI_CHAT_SHORTCUT_AI_STUDIO", + 23: "UGC_CHAT_SHORTCUT_AI_STUDIO", + 24: "NEW_CHAT_AI_STUDIO", } BotMetricsEntryPoint_value = map[string]int32{ "FAVICON": 1, @@ -234,6 +242,9 @@ var ( "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, } ) @@ -1251,8 +1262,9 @@ func (ButtonsMessage_Button_Type) EnumDescriptor() ([]byte, []int) { type SecretEncryptedMessage_SecretEncType int32 const ( - SecretEncryptedMessage_UNKNOWN SecretEncryptedMessage_SecretEncType = 0 - SecretEncryptedMessage_EVENT_EDIT SecretEncryptedMessage_SecretEncType = 1 + SecretEncryptedMessage_UNKNOWN SecretEncryptedMessage_SecretEncType = 0 + SecretEncryptedMessage_EVENT_EDIT SecretEncryptedMessage_SecretEncType = 1 + SecretEncryptedMessage_MESSAGE_EDIT SecretEncryptedMessage_SecretEncType = 2 ) // Enum value maps for SecretEncryptedMessage_SecretEncType. @@ -1260,10 +1272,12 @@ var ( SecretEncryptedMessage_SecretEncType_name = map[int32]string{ 0: "UNKNOWN", 1: "EVENT_EDIT", + 2: "MESSAGE_EDIT", } SecretEncryptedMessage_SecretEncType_value = map[string]int32{ - "UNKNOWN": 0, - "EVENT_EDIT": 1, + "UNKNOWN": 0, + "EVENT_EDIT": 1, + "MESSAGE_EDIT": 2, } ) @@ -2123,6 +2137,7 @@ const ( ProtocolMessage_LIMIT_SHARING ProtocolMessage_Type = 27 ProtocolMessage_AI_PSI_METADATA ProtocolMessage_Type = 28 ProtocolMessage_AI_QUERY_FANOUT ProtocolMessage_Type = 29 + ProtocolMessage_GROUP_MEMBER_LABEL_CHANGE ProtocolMessage_Type = 30 ) // Enum value maps for ProtocolMessage_Type. @@ -2153,6 +2168,7 @@ var ( 27: "LIMIT_SHARING", 28: "AI_PSI_METADATA", 29: "AI_QUERY_FANOUT", + 30: "GROUP_MEMBER_LABEL_CHANGE", } ProtocolMessage_Type_value = map[string]int32{ "REVOKE": 0, @@ -2180,6 +2196,7 @@ var ( "LIMIT_SHARING": 27, "AI_PSI_METADATA": 28, "AI_QUERY_FANOUT": 29, + "GROUP_MEMBER_LABEL_CHANGE": 30, } ) @@ -3047,6 +3064,74 @@ func (ImageMessage_ImageSourceType) EnumDescriptor() ([]byte, []int) { return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{31, 0} } +type ContextInfo_StatusSourceType int32 + +const ( + ContextInfo_IMAGE ContextInfo_StatusSourceType = 0 + ContextInfo_VIDEO ContextInfo_StatusSourceType = 1 + ContextInfo_GIF ContextInfo_StatusSourceType = 2 + ContextInfo_AUDIO ContextInfo_StatusSourceType = 3 + ContextInfo_TEXT ContextInfo_StatusSourceType = 4 + ContextInfo_MUSIC_STANDALONE ContextInfo_StatusSourceType = 5 +) + +// Enum value maps for ContextInfo_StatusSourceType. +var ( + ContextInfo_StatusSourceType_name = map[int32]string{ + 0: "IMAGE", + 1: "VIDEO", + 2: "GIF", + 3: "AUDIO", + 4: "TEXT", + 5: "MUSIC_STANDALONE", + } + ContextInfo_StatusSourceType_value = map[string]int32{ + "IMAGE": 0, + "VIDEO": 1, + "GIF": 2, + "AUDIO": 3, + "TEXT": 4, + "MUSIC_STANDALONE": 5, + } +) + +func (x ContextInfo_StatusSourceType) Enum() *ContextInfo_StatusSourceType { + p := new(ContextInfo_StatusSourceType) + *p = x + return p +} + +func (x ContextInfo_StatusSourceType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ContextInfo_StatusSourceType) Descriptor() protoreflect.EnumDescriptor { + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[47].Descriptor() +} + +func (ContextInfo_StatusSourceType) Type() protoreflect.EnumType { + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[47] +} + +func (x ContextInfo_StatusSourceType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ContextInfo_StatusSourceType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ContextInfo_StatusSourceType(num) + return nil +} + +// Deprecated: Use ContextInfo_StatusSourceType.Descriptor instead. +func (ContextInfo_StatusSourceType) EnumDescriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 0} +} + type ContextInfo_PairedMediaType int32 const ( @@ -3086,11 +3171,11 @@ func (x ContextInfo_PairedMediaType) String() string { } func (ContextInfo_PairedMediaType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[47].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[48].Descriptor() } func (ContextInfo_PairedMediaType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[47] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[48] } func (x ContextInfo_PairedMediaType) Number() protoreflect.EnumNumber { @@ -3109,7 +3194,7 @@ func (x *ContextInfo_PairedMediaType) UnmarshalJSON(b []byte) error { // Deprecated: Use ContextInfo_PairedMediaType.Descriptor instead. func (ContextInfo_PairedMediaType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 1} } type ContextInfo_StatusAttributionType int32 @@ -3145,11 +3230,11 @@ func (x ContextInfo_StatusAttributionType) String() string { } func (ContextInfo_StatusAttributionType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[48].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[49].Descriptor() } func (ContextInfo_StatusAttributionType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[48] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[49] } func (x ContextInfo_StatusAttributionType) Number() protoreflect.EnumNumber { @@ -3168,7 +3253,7 @@ func (x *ContextInfo_StatusAttributionType) UnmarshalJSON(b []byte) error { // Deprecated: Use ContextInfo_StatusAttributionType.Descriptor instead. func (ContextInfo_StatusAttributionType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 2} } type ContextInfo_ForwardedNewsletterMessageInfo_ContentType int32 @@ -3204,11 +3289,11 @@ func (x ContextInfo_ForwardedNewsletterMessageInfo_ContentType) String() string } func (ContextInfo_ForwardedNewsletterMessageInfo_ContentType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[49].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[50].Descriptor() } func (ContextInfo_ForwardedNewsletterMessageInfo_ContentType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[49] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[50] } func (x ContextInfo_ForwardedNewsletterMessageInfo_ContentType) Number() protoreflect.EnumNumber { @@ -3230,6 +3315,62 @@ func (ContextInfo_ForwardedNewsletterMessageInfo_ContentType) EnumDescriptor() ( return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 0, 0} } +type ContextInfo_ExternalAdReplyInfo_AdType int32 + +const ( + ContextInfo_ExternalAdReplyInfo_CTWA ContextInfo_ExternalAdReplyInfo_AdType = 0 + ContextInfo_ExternalAdReplyInfo_CAWC ContextInfo_ExternalAdReplyInfo_AdType = 1 +) + +// Enum value maps for ContextInfo_ExternalAdReplyInfo_AdType. +var ( + ContextInfo_ExternalAdReplyInfo_AdType_name = map[int32]string{ + 0: "CTWA", + 1: "CAWC", + } + ContextInfo_ExternalAdReplyInfo_AdType_value = map[string]int32{ + "CTWA": 0, + "CAWC": 1, + } +) + +func (x ContextInfo_ExternalAdReplyInfo_AdType) Enum() *ContextInfo_ExternalAdReplyInfo_AdType { + p := new(ContextInfo_ExternalAdReplyInfo_AdType) + *p = x + return p +} + +func (x ContextInfo_ExternalAdReplyInfo_AdType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ContextInfo_ExternalAdReplyInfo_AdType) Descriptor() protoreflect.EnumDescriptor { + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[51].Descriptor() +} + +func (ContextInfo_ExternalAdReplyInfo_AdType) Type() protoreflect.EnumType { + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[51] +} + +func (x ContextInfo_ExternalAdReplyInfo_AdType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ContextInfo_ExternalAdReplyInfo_AdType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ContextInfo_ExternalAdReplyInfo_AdType(num) + return nil +} + +// Deprecated: Use ContextInfo_ExternalAdReplyInfo_AdType.Descriptor instead. +func (ContextInfo_ExternalAdReplyInfo_AdType) EnumDescriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 1, 0} +} + type ContextInfo_ExternalAdReplyInfo_MediaType int32 const ( @@ -3263,11 +3404,11 @@ func (x ContextInfo_ExternalAdReplyInfo_MediaType) String() string { } func (ContextInfo_ExternalAdReplyInfo_MediaType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[50].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[52].Descriptor() } func (ContextInfo_ExternalAdReplyInfo_MediaType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[50] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[52] } func (x ContextInfo_ExternalAdReplyInfo_MediaType) Number() protoreflect.EnumNumber { @@ -3286,7 +3427,7 @@ func (x *ContextInfo_ExternalAdReplyInfo_MediaType) UnmarshalJSON(b []byte) erro // Deprecated: Use ContextInfo_ExternalAdReplyInfo_MediaType.Descriptor instead. func (ContextInfo_ExternalAdReplyInfo_MediaType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 1, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{32, 1, 1} } type ContextInfo_AdReplyInfo_MediaType int32 @@ -3322,11 +3463,11 @@ func (x ContextInfo_AdReplyInfo_MediaType) String() string { } func (ContextInfo_AdReplyInfo_MediaType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[51].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[53].Descriptor() } func (ContextInfo_AdReplyInfo_MediaType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[51] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[53] } func (x ContextInfo_AdReplyInfo_MediaType) Number() protoreflect.EnumNumber { @@ -3381,11 +3522,11 @@ func (x BotPluginMetadata_PluginType) String() string { } func (BotPluginMetadata_PluginType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[52].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[54].Descriptor() } func (BotPluginMetadata_PluginType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[52] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[54] } func (x BotPluginMetadata_PluginType) Number() protoreflect.EnumNumber { @@ -3443,11 +3584,11 @@ func (x BotPluginMetadata_SearchProvider) String() string { } func (BotPluginMetadata_SearchProvider) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[53].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[55].Descriptor() } func (BotPluginMetadata_SearchProvider) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[53] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[55] } func (x BotPluginMetadata_SearchProvider) Number() protoreflect.EnumNumber { @@ -3496,11 +3637,11 @@ func (x BotLinkedAccount_BotLinkedAccountType) String() string { } func (BotLinkedAccount_BotLinkedAccountType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[54].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[56].Descriptor() } func (BotLinkedAccount_BotLinkedAccountType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[54] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[56] } func (x BotLinkedAccount_BotLinkedAccountType) Number() protoreflect.EnumNumber { @@ -3576,11 +3717,11 @@ func (x AIRichResponseMessage_AIRichResponseSubMessageType) String() string { } func (AIRichResponseMessage_AIRichResponseSubMessageType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[55].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[57].Descriptor() } func (AIRichResponseMessage_AIRichResponseSubMessageType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[55] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[57] } func (x AIRichResponseMessage_AIRichResponseSubMessageType) Number() protoreflect.EnumNumber { @@ -3632,11 +3773,11 @@ func (x AIRichResponseMessage_AIRichResponseMessageType) String() string { } func (AIRichResponseMessage_AIRichResponseMessageType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[56].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[58].Descriptor() } func (AIRichResponseMessage_AIRichResponseMessageType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[56] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[58] } func (x AIRichResponseMessage_AIRichResponseMessageType) Number() protoreflect.EnumNumber { @@ -3688,11 +3829,11 @@ func (x AIRichResponseMessage_AIRichResponseContentItemsMetadata_ContentType) St } func (AIRichResponseMessage_AIRichResponseContentItemsMetadata_ContentType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[57].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[59].Descriptor() } func (AIRichResponseMessage_AIRichResponseContentItemsMetadata_ContentType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[57] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[59] } func (x AIRichResponseMessage_AIRichResponseContentItemsMetadata_ContentType) Number() protoreflect.EnumNumber { @@ -3747,11 +3888,11 @@ func (x AIRichResponseMessage_AIRichResponseDynamicMetadata_AIRichResponseDynami } func (AIRichResponseMessage_AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[58].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[60].Descriptor() } func (AIRichResponseMessage_AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[58] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[60] } func (x AIRichResponseMessage_AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType) Number() protoreflect.EnumNumber { @@ -3815,11 +3956,11 @@ func (x AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeHighl } func (AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[59].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[61].Descriptor() } func (AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[59] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[61] } func (x AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType) Number() protoreflect.EnumNumber { @@ -3874,11 +4015,11 @@ func (x AIRichResponseMessage_AIRichResponseInlineImageMetadata_AIRichResponseIm } func (AIRichResponseMessage_AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[60].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[62].Descriptor() } func (AIRichResponseMessage_AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[60] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[62] } func (x AIRichResponseMessage_AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment) Number() protoreflect.EnumNumber { @@ -3900,6 +4041,62 @@ func (AIRichResponseMessage_AIRichResponseInlineImageMetadata_AIRichResponseImag return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{35, 3, 0} } +type BotPromotionMessageMetadata_BotPromotionType int32 + +const ( + BotPromotionMessageMetadata_UNKNOWN_TYPE BotPromotionMessageMetadata_BotPromotionType = 0 + BotPromotionMessageMetadata_C50 BotPromotionMessageMetadata_BotPromotionType = 1 +) + +// Enum value maps for BotPromotionMessageMetadata_BotPromotionType. +var ( + BotPromotionMessageMetadata_BotPromotionType_name = map[int32]string{ + 0: "UNKNOWN_TYPE", + 1: "C50", + } + BotPromotionMessageMetadata_BotPromotionType_value = map[string]int32{ + "UNKNOWN_TYPE": 0, + "C50": 1, + } +) + +func (x BotPromotionMessageMetadata_BotPromotionType) Enum() *BotPromotionMessageMetadata_BotPromotionType { + p := new(BotPromotionMessageMetadata_BotPromotionType) + *p = x + return p +} + +func (x BotPromotionMessageMetadata_BotPromotionType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BotPromotionMessageMetadata_BotPromotionType) Descriptor() protoreflect.EnumDescriptor { + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[63].Descriptor() +} + +func (BotPromotionMessageMetadata_BotPromotionType) Type() protoreflect.EnumType { + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[63] +} + +func (x BotPromotionMessageMetadata_BotPromotionType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *BotPromotionMessageMetadata_BotPromotionType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = BotPromotionMessageMetadata_BotPromotionType(num) + return nil +} + +// Deprecated: Use BotPromotionMessageMetadata_BotPromotionType.Descriptor instead. +func (BotPromotionMessageMetadata_BotPromotionType) EnumDescriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{36, 0} +} + type BotMediaMetadata_OrientationType int32 const ( @@ -3933,11 +4130,11 @@ func (x BotMediaMetadata_OrientationType) String() string { } func (BotMediaMetadata_OrientationType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[61].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[64].Descriptor() } func (BotMediaMetadata_OrientationType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[61] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[64] } func (x BotMediaMetadata_OrientationType) Number() protoreflect.EnumNumber { @@ -3956,7 +4153,7 @@ func (x *BotMediaMetadata_OrientationType) UnmarshalJSON(b []byte) error { // Deprecated: Use BotMediaMetadata_OrientationType.Descriptor instead. func (BotMediaMetadata_OrientationType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{36, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{37, 0} } type BotReminderMetadata_ReminderFrequency int32 @@ -3998,11 +4195,11 @@ func (x BotReminderMetadata_ReminderFrequency) String() string { } func (BotReminderMetadata_ReminderFrequency) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[62].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[65].Descriptor() } func (BotReminderMetadata_ReminderFrequency) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[62] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[65] } func (x BotReminderMetadata_ReminderFrequency) Number() protoreflect.EnumNumber { @@ -4021,7 +4218,7 @@ func (x *BotReminderMetadata_ReminderFrequency) UnmarshalJSON(b []byte) error { // Deprecated: Use BotReminderMetadata_ReminderFrequency.Descriptor instead. func (BotReminderMetadata_ReminderFrequency) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{37, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{38, 0} } type BotReminderMetadata_ReminderAction int32 @@ -4060,11 +4257,11 @@ func (x BotReminderMetadata_ReminderAction) String() string { } func (BotReminderMetadata_ReminderAction) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[63].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[66].Descriptor() } func (BotReminderMetadata_ReminderAction) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[63] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[66] } func (x BotReminderMetadata_ReminderAction) Number() protoreflect.EnumNumber { @@ -4083,7 +4280,7 @@ func (x *BotReminderMetadata_ReminderAction) UnmarshalJSON(b []byte) error { // Deprecated: Use BotReminderMetadata_ReminderAction.Descriptor instead. func (BotReminderMetadata_ReminderAction) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{37, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{38, 1} } type BotModelMetadata_PremiumModelStatus int32 @@ -4119,11 +4316,11 @@ func (x BotModelMetadata_PremiumModelStatus) String() string { } func (BotModelMetadata_PremiumModelStatus) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[64].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[67].Descriptor() } func (BotModelMetadata_PremiumModelStatus) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[64] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[67] } func (x BotModelMetadata_PremiumModelStatus) Number() protoreflect.EnumNumber { @@ -4142,7 +4339,7 @@ func (x *BotModelMetadata_PremiumModelStatus) UnmarshalJSON(b []byte) error { // Deprecated: Use BotModelMetadata_PremiumModelStatus.Descriptor instead. func (BotModelMetadata_PremiumModelStatus) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{38, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 0} } type BotModelMetadata_ModelType int32 @@ -4178,11 +4375,11 @@ func (x BotModelMetadata_ModelType) String() string { } func (BotModelMetadata_ModelType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[65].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[68].Descriptor() } func (BotModelMetadata_ModelType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[65] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[68] } func (x BotModelMetadata_ModelType) Number() protoreflect.EnumNumber { @@ -4201,7 +4398,7 @@ func (x *BotModelMetadata_ModelType) UnmarshalJSON(b []byte) error { // Deprecated: Use BotModelMetadata_ModelType.Descriptor instead. func (BotModelMetadata_ModelType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{38, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 1} } type BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider int32 @@ -4240,11 +4437,11 @@ func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProv } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[66].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[69].Descriptor() } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[66] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[69] } func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider) Number() protoreflect.EnumNumber { @@ -4263,7 +4460,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourcePro // Deprecated: Use BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider.Descriptor instead. func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 0, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40, 0, 0} } type BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus int32 @@ -4302,11 +4499,11 @@ func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[67].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[70].Descriptor() } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[67] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[70] } func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Number() protoreflect.EnumNumber { @@ -4325,7 +4522,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus // Deprecated: Use BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus.Descriptor instead. func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 0, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40, 0, 1} } type BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider int32 @@ -4364,11 +4561,11 @@ func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSo } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[68].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[71].Descriptor() } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[68] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[71] } func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider) Number() protoreflect.EnumNumber { @@ -4387,7 +4584,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchS // Deprecated: Use BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider.Descriptor instead. func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 0, 0, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40, 0, 0, 0} } type BotCapabilityMetadata_BotCapabilityType int32 @@ -4427,6 +4624,8 @@ const ( BotCapabilityMetadata_RICH_RESPONSE_LATEX_INLINE BotCapabilityMetadata_BotCapabilityType = 31 BotCapabilityMetadata_QUERY_PLAN BotCapabilityMetadata_BotCapabilityType = 32 BotCapabilityMetadata_PROACTIVE_MESSAGE BotCapabilityMetadata_BotCapabilityType = 33 + BotCapabilityMetadata_RICH_RESPONSE_UNIFIED_RESPONSE BotCapabilityMetadata_BotCapabilityType = 34 + BotCapabilityMetadata_PROMOTION_MESSAGE BotCapabilityMetadata_BotCapabilityType = 35 ) // Enum value maps for BotCapabilityMetadata_BotCapabilityType. @@ -4466,6 +4665,8 @@ var ( 31: "RICH_RESPONSE_LATEX_INLINE", 32: "QUERY_PLAN", 33: "PROACTIVE_MESSAGE", + 34: "RICH_RESPONSE_UNIFIED_RESPONSE", + 35: "PROMOTION_MESSAGE", } BotCapabilityMetadata_BotCapabilityType_value = map[string]int32{ "UNKNOWN": 0, @@ -4502,6 +4703,8 @@ var ( "RICH_RESPONSE_LATEX_INLINE": 31, "QUERY_PLAN": 32, "PROACTIVE_MESSAGE": 33, + "RICH_RESPONSE_UNIFIED_RESPONSE": 34, + "PROMOTION_MESSAGE": 35, } ) @@ -4516,11 +4719,11 @@ func (x BotCapabilityMetadata_BotCapabilityType) String() string { } func (BotCapabilityMetadata_BotCapabilityType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[69].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[72].Descriptor() } func (BotCapabilityMetadata_BotCapabilityType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[69] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[72] } func (x BotCapabilityMetadata_BotCapabilityType) Number() protoreflect.EnumNumber { @@ -4539,78 +4742,190 @@ func (x *BotCapabilityMetadata_BotCapabilityType) UnmarshalJSON(b []byte) error // Deprecated: Use BotCapabilityMetadata_BotCapabilityType.Descriptor instead. func (BotCapabilityMetadata_BotCapabilityType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{41, 0} } -type BotImagineMetadata_ImagineType int32 +type BotModeSelectionMetadata_BotUserSelectionMode int32 const ( - BotImagineMetadata_UNKNOWN BotImagineMetadata_ImagineType = 0 - BotImagineMetadata_IMAGINE BotImagineMetadata_ImagineType = 1 - BotImagineMetadata_MEMU BotImagineMetadata_ImagineType = 2 - BotImagineMetadata_FLASH BotImagineMetadata_ImagineType = 3 - BotImagineMetadata_EDIT BotImagineMetadata_ImagineType = 4 + BotModeSelectionMetadata_UNKNOWN_MODE BotModeSelectionMetadata_BotUserSelectionMode = 0 + BotModeSelectionMetadata_REASONING_MODE BotModeSelectionMetadata_BotUserSelectionMode = 1 ) -// Enum value maps for BotImagineMetadata_ImagineType. +// Enum value maps for BotModeSelectionMetadata_BotUserSelectionMode. var ( - BotImagineMetadata_ImagineType_name = map[int32]string{ - 0: "UNKNOWN", - 1: "IMAGINE", - 2: "MEMU", - 3: "FLASH", - 4: "EDIT", + BotModeSelectionMetadata_BotUserSelectionMode_name = map[int32]string{ + 0: "UNKNOWN_MODE", + 1: "REASONING_MODE", } - BotImagineMetadata_ImagineType_value = map[string]int32{ - "UNKNOWN": 0, - "IMAGINE": 1, - "MEMU": 2, - "FLASH": 3, - "EDIT": 4, + BotModeSelectionMetadata_BotUserSelectionMode_value = map[string]int32{ + "UNKNOWN_MODE": 0, + "REASONING_MODE": 1, } ) -func (x BotImagineMetadata_ImagineType) Enum() *BotImagineMetadata_ImagineType { - p := new(BotImagineMetadata_ImagineType) +func (x BotModeSelectionMetadata_BotUserSelectionMode) Enum() *BotModeSelectionMetadata_BotUserSelectionMode { + p := new(BotModeSelectionMetadata_BotUserSelectionMode) *p = x return p } -func (x BotImagineMetadata_ImagineType) String() string { +func (x BotModeSelectionMetadata_BotUserSelectionMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (BotImagineMetadata_ImagineType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[70].Descriptor() +func (BotModeSelectionMetadata_BotUserSelectionMode) Descriptor() protoreflect.EnumDescriptor { + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[73].Descriptor() } -func (BotImagineMetadata_ImagineType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[70] +func (BotModeSelectionMetadata_BotUserSelectionMode) Type() protoreflect.EnumType { + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[73] } -func (x BotImagineMetadata_ImagineType) Number() protoreflect.EnumNumber { +func (x BotModeSelectionMetadata_BotUserSelectionMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. -func (x *BotImagineMetadata_ImagineType) UnmarshalJSON(b []byte) error { +func (x *BotModeSelectionMetadata_BotUserSelectionMode) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = BotImagineMetadata_ImagineType(num) + *x = BotModeSelectionMetadata_BotUserSelectionMode(num) return nil } -// Deprecated: Use BotImagineMetadata_ImagineType.Descriptor instead. -func (BotImagineMetadata_ImagineType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{41, 0} +// Deprecated: Use BotModeSelectionMetadata_BotUserSelectionMode.Descriptor instead. +func (BotModeSelectionMetadata_BotUserSelectionMode) EnumDescriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{42, 0} } -type BotSourcesMetadata_BotSourceItem_SourceProvider int32 +type BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType int32 const ( - BotSourcesMetadata_BotSourceItem_UNKNOWN BotSourcesMetadata_BotSourceItem_SourceProvider = 0 + BotQuotaMetadata_BotFeatureQuotaMetadata_UNKNOWN_FEATURE BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType = 0 + BotQuotaMetadata_BotFeatureQuotaMetadata_REASONING_FEATURE BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType = 1 +) + +// Enum value maps for BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType. +var ( + BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType_name = map[int32]string{ + 0: "UNKNOWN_FEATURE", + 1: "REASONING_FEATURE", + } + BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType_value = map[string]int32{ + "UNKNOWN_FEATURE": 0, + "REASONING_FEATURE": 1, + } +) + +func (x BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) Enum() *BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType { + p := new(BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) + *p = x + return p +} + +func (x BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) Descriptor() protoreflect.EnumDescriptor { + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[74].Descriptor() +} + +func (BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) Type() protoreflect.EnumType { + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[74] +} + +func (x BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType(num) + return nil +} + +// Deprecated: Use BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType.Descriptor instead. +func (BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) EnumDescriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{43, 0, 0} +} + +type BotImagineMetadata_ImagineType int32 + +const ( + BotImagineMetadata_UNKNOWN BotImagineMetadata_ImagineType = 0 + BotImagineMetadata_IMAGINE BotImagineMetadata_ImagineType = 1 + BotImagineMetadata_MEMU BotImagineMetadata_ImagineType = 2 + BotImagineMetadata_FLASH BotImagineMetadata_ImagineType = 3 + BotImagineMetadata_EDIT BotImagineMetadata_ImagineType = 4 +) + +// Enum value maps for BotImagineMetadata_ImagineType. +var ( + BotImagineMetadata_ImagineType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "IMAGINE", + 2: "MEMU", + 3: "FLASH", + 4: "EDIT", + } + BotImagineMetadata_ImagineType_value = map[string]int32{ + "UNKNOWN": 0, + "IMAGINE": 1, + "MEMU": 2, + "FLASH": 3, + "EDIT": 4, + } +) + +func (x BotImagineMetadata_ImagineType) Enum() *BotImagineMetadata_ImagineType { + p := new(BotImagineMetadata_ImagineType) + *p = x + return p +} + +func (x BotImagineMetadata_ImagineType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BotImagineMetadata_ImagineType) Descriptor() protoreflect.EnumDescriptor { + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[75].Descriptor() +} + +func (BotImagineMetadata_ImagineType) Type() protoreflect.EnumType { + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[75] +} + +func (x BotImagineMetadata_ImagineType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *BotImagineMetadata_ImagineType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = BotImagineMetadata_ImagineType(num) + return nil +} + +// Deprecated: Use BotImagineMetadata_ImagineType.Descriptor instead. +func (BotImagineMetadata_ImagineType) EnumDescriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{44, 0} +} + +type BotSourcesMetadata_BotSourceItem_SourceProvider int32 + +const ( + BotSourcesMetadata_BotSourceItem_UNKNOWN BotSourcesMetadata_BotSourceItem_SourceProvider = 0 BotSourcesMetadata_BotSourceItem_BING BotSourcesMetadata_BotSourceItem_SourceProvider = 1 BotSourcesMetadata_BotSourceItem_GOOGLE BotSourcesMetadata_BotSourceItem_SourceProvider = 2 BotSourcesMetadata_BotSourceItem_SUPPORT BotSourcesMetadata_BotSourceItem_SourceProvider = 3 @@ -4643,11 +4958,11 @@ func (x BotSourcesMetadata_BotSourceItem_SourceProvider) String() string { } func (BotSourcesMetadata_BotSourceItem_SourceProvider) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[71].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[76].Descriptor() } func (BotSourcesMetadata_BotSourceItem_SourceProvider) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[71] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[76] } func (x BotSourcesMetadata_BotSourceItem_SourceProvider) Number() protoreflect.EnumNumber { @@ -4666,7 +4981,7 @@ func (x *BotSourcesMetadata_BotSourceItem_SourceProvider) UnmarshalJSON(b []byte // Deprecated: Use BotSourcesMetadata_BotSourceItem_SourceProvider.Descriptor instead. func (BotSourcesMetadata_BotSourceItem_SourceProvider) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{42, 0, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{45, 0, 0} } type MessageAssociation_AssociationType int32 @@ -4738,11 +5053,11 @@ func (x MessageAssociation_AssociationType) String() string { } func (MessageAssociation_AssociationType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[72].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[77].Descriptor() } func (MessageAssociation_AssociationType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[72] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[77] } func (x MessageAssociation_AssociationType) Number() protoreflect.EnumNumber { @@ -4761,7 +5076,7 @@ func (x *MessageAssociation_AssociationType) UnmarshalJSON(b []byte) error { // Deprecated: Use MessageAssociation_AssociationType.Descriptor instead. func (MessageAssociation_AssociationType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{43, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{46, 0} } type MessageContextInfo_MessageAddonExpiryType int32 @@ -4794,11 +5109,11 @@ func (x MessageContextInfo_MessageAddonExpiryType) String() string { } func (MessageContextInfo_MessageAddonExpiryType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[73].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[78].Descriptor() } func (MessageContextInfo_MessageAddonExpiryType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[73] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[78] } func (x MessageContextInfo_MessageAddonExpiryType) Number() protoreflect.EnumNumber { @@ -4817,7 +5132,7 @@ func (x *MessageContextInfo_MessageAddonExpiryType) UnmarshalJSON(b []byte) erro // Deprecated: Use MessageContextInfo_MessageAddonExpiryType.Descriptor instead. func (MessageContextInfo_MessageAddonExpiryType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{44, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{47, 0} } type InteractiveAnnotation_StatusLinkType int32 @@ -4853,11 +5168,11 @@ func (x InteractiveAnnotation_StatusLinkType) String() string { } func (InteractiveAnnotation_StatusLinkType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[74].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[79].Descriptor() } func (InteractiveAnnotation_StatusLinkType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[74] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[79] } func (x InteractiveAnnotation_StatusLinkType) Number() protoreflect.EnumNumber { @@ -4876,7 +5191,7 @@ func (x *InteractiveAnnotation_StatusLinkType) UnmarshalJSON(b []byte) error { // Deprecated: Use InteractiveAnnotation_StatusLinkType.Descriptor instead. func (InteractiveAnnotation_StatusLinkType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{45, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{48, 0} } type HydratedTemplateButton_HydratedURLButton_WebviewPresentationType int32 @@ -4912,11 +5227,11 @@ func (x HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) String } func (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[75].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[80].Descriptor() } func (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[75] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[80] } func (x HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) Number() protoreflect.EnumNumber { @@ -4935,7 +5250,7 @@ func (x *HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) Unmar // Deprecated: Use HydratedTemplateButton_HydratedURLButton_WebviewPresentationType.Descriptor instead. func (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{46, 0, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{49, 0, 0} } type PaymentBackground_Type int32 @@ -4968,11 +5283,11 @@ func (x PaymentBackground_Type) String() string { } func (PaymentBackground_Type) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[76].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[81].Descriptor() } func (PaymentBackground_Type) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[76] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[81] } func (x PaymentBackground_Type) Number() protoreflect.EnumNumber { @@ -4991,7 +5306,7 @@ func (x *PaymentBackground_Type) UnmarshalJSON(b []byte) error { // Deprecated: Use PaymentBackground_Type.Descriptor instead. func (PaymentBackground_Type) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{47, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{50, 0} } type DisappearingMode_Trigger int32 @@ -5036,11 +5351,11 @@ func (x DisappearingMode_Trigger) String() string { } func (DisappearingMode_Trigger) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[77].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[82].Descriptor() } func (DisappearingMode_Trigger) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[77] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[82] } func (x DisappearingMode_Trigger) Number() protoreflect.EnumNumber { @@ -5059,7 +5374,7 @@ func (x *DisappearingMode_Trigger) UnmarshalJSON(b []byte) error { // Deprecated: Use DisappearingMode_Trigger.Descriptor instead. func (DisappearingMode_Trigger) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{48, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{51, 0} } type DisappearingMode_Initiator int32 @@ -5098,11 +5413,11 @@ func (x DisappearingMode_Initiator) String() string { } func (DisappearingMode_Initiator) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[78].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[83].Descriptor() } func (DisappearingMode_Initiator) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[78] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[83] } func (x DisappearingMode_Initiator) Number() protoreflect.EnumNumber { @@ -5121,7 +5436,7 @@ func (x *DisappearingMode_Initiator) UnmarshalJSON(b []byte) error { // Deprecated: Use DisappearingMode_Initiator.Descriptor instead. func (DisappearingMode_Initiator) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{48, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{51, 1} } type ProcessedVideo_VideoQuality int32 @@ -5160,11 +5475,11 @@ func (x ProcessedVideo_VideoQuality) String() string { } func (ProcessedVideo_VideoQuality) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[79].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[84].Descriptor() } func (ProcessedVideo_VideoQuality) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[79] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[84] } func (x ProcessedVideo_VideoQuality) Number() protoreflect.EnumNumber { @@ -5183,7 +5498,7 @@ func (x *ProcessedVideo_VideoQuality) UnmarshalJSON(b []byte) error { // Deprecated: Use ProcessedVideo_VideoQuality.Descriptor instead. func (ProcessedVideo_VideoQuality) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{49, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{52, 0} } type StickerPackMessage struct { @@ -6775,6 +7090,7 @@ type OrderMessage struct { ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` MessageVersion *int32 `protobuf:"varint,12,opt,name=messageVersion" json:"messageVersion,omitempty"` OrderRequestMessageID *waCommon.MessageKey `protobuf:"bytes,13,opt,name=orderRequestMessageID" json:"orderRequestMessageID,omitempty"` + CatalogType *string `protobuf:"bytes,15,opt,name=catalogType" json:"catalogType,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -6907,6 +7223,13 @@ func (x *OrderMessage) GetOrderRequestMessageID() *waCommon.MessageKey { return nil } +func (x *OrderMessage) GetCatalogType() string { + if x != nil && x.CatalogType != nil { + return *x.CatalogType + } + return "" +} + type PaymentInviteMessage struct { state protoimpl.MessageState `protogen:"open.v1"` ServiceType *PaymentInviteMessage_ServiceType `protobuf:"varint,1,opt,name=serviceType,enum=WAWebProtobufsE2E.PaymentInviteMessage_ServiceType" json:"serviceType,omitempty"` @@ -7344,6 +7667,7 @@ type ProtocolMessage struct { LimitSharing *waCommon.LimitSharing `protobuf:"bytes,24,opt,name=limitSharing" json:"limitSharing,omitempty"` AiPsiMetadata []byte `protobuf:"bytes,25,opt,name=aiPsiMetadata" json:"aiPsiMetadata,omitempty"` AiQueryFanout *AIQueryFanout `protobuf:"bytes,26,opt,name=aiQueryFanout" json:"aiQueryFanout,omitempty"` + MemberLabel *MemberLabel `protobuf:"bytes,27,opt,name=memberLabel" json:"memberLabel,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7539,12 +7863,20 @@ func (x *ProtocolMessage) GetAiQueryFanout() *AIQueryFanout { return nil } +func (x *ProtocolMessage) GetMemberLabel() *MemberLabel { + if x != nil { + return x.MemberLabel + } + return nil +} + type CloudAPIThreadControlNotification struct { - state protoimpl.MessageState `protogen:"open.v1"` - Status *CloudAPIThreadControlNotification_CloudAPIThreadControl `protobuf:"varint,1,opt,name=status,enum=WAWebProtobufsE2E.CloudAPIThreadControlNotification_CloudAPIThreadControl" json:"status,omitempty"` - SenderNotificationTimestampMS *int64 `protobuf:"varint,2,opt,name=senderNotificationTimestampMS" json:"senderNotificationTimestampMS,omitempty"` - ConsumerLid *string `protobuf:"bytes,3,opt,name=consumerLid" json:"consumerLid,omitempty"` - ConsumerPhoneNumber *string `protobuf:"bytes,4,opt,name=consumerPhoneNumber" json:"consumerPhoneNumber,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Status *CloudAPIThreadControlNotification_CloudAPIThreadControl `protobuf:"varint,1,opt,name=status,enum=WAWebProtobufsE2E.CloudAPIThreadControlNotification_CloudAPIThreadControl" json:"status,omitempty"` + SenderNotificationTimestampMS *int64 `protobuf:"varint,2,opt,name=senderNotificationTimestampMS" json:"senderNotificationTimestampMS,omitempty"` + ConsumerLid *string `protobuf:"bytes,3,opt,name=consumerLid" json:"consumerLid,omitempty"` + ConsumerPhoneNumber *string `protobuf:"bytes,4,opt,name=consumerPhoneNumber" json:"consumerPhoneNumber,omitempty"` + NotificationContent *CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent `protobuf:"bytes,5,opt,name=notificationContent" json:"notificationContent,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -7607,6 +7939,13 @@ func (x *CloudAPIThreadControlNotification) GetConsumerPhoneNumber() string { return "" } +func (x *CloudAPIThreadControlNotification) GetNotificationContent() *CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent { + if x != nil { + return x.NotificationContent + } + return nil +} + type BotFeedbackMessage struct { state protoimpl.MessageState `protogen:"open.v1"` MessageKey *waCommon.MessageKey `protobuf:"bytes,1,opt,name=messageKey" json:"messageKey,omitempty"` @@ -8745,6 +9084,9 @@ type ContextInfo struct { UrlTrackingMap *UrlTrackingMap `protobuf:"bytes,58,opt,name=urlTrackingMap" json:"urlTrackingMap,omitempty"` PairedMediaType *ContextInfo_PairedMediaType `protobuf:"varint,59,opt,name=pairedMediaType,enum=WAWebProtobufsE2E.ContextInfo_PairedMediaType" json:"pairedMediaType,omitempty"` RankingVersion *uint32 `protobuf:"varint,60,opt,name=rankingVersion" json:"rankingVersion,omitempty"` + MemberLabel *MemberLabel `protobuf:"bytes,62,opt,name=memberLabel" json:"memberLabel,omitempty"` + IsQuestion *bool `protobuf:"varint,63,opt,name=isQuestion" json:"isQuestion,omitempty"` + StatusSourceType *ContextInfo_StatusSourceType `protobuf:"varint,64,opt,name=statusSourceType,enum=WAWebProtobufsE2E.ContextInfo_StatusSourceType" json:"statusSourceType,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -9087,6 +9429,27 @@ func (x *ContextInfo) GetRankingVersion() uint32 { return 0 } +func (x *ContextInfo) GetMemberLabel() *MemberLabel { + if x != nil { + return x.MemberLabel + } + return nil +} + +func (x *ContextInfo) GetIsQuestion() bool { + if x != nil && x.IsQuestion != nil { + return *x.IsQuestion + } + return false +} + +func (x *ContextInfo) GetStatusSourceType() ContextInfo_StatusSourceType { + if x != nil && x.StatusSourceType != nil { + return *x.StatusSourceType + } + return ContextInfo_IMAGE +} + type BotPluginMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` Provider *BotPluginMetadata_SearchProvider `protobuf:"varint,1,opt,name=provider,enum=WAWebProtobufsE2E.BotPluginMetadata_SearchProvider" json:"provider,omitempty"` @@ -9264,12 +9627,12 @@ func (x *BotLinkedAccount) GetType() BotLinkedAccount_BotLinkedAccountType { } type AIRichResponseMessage struct { - state protoimpl.MessageState `protogen:"open.v1"` - MessageType *AIRichResponseMessage_AIRichResponseMessageType `protobuf:"varint,1,opt,name=messageType,enum=WAWebProtobufsE2E.AIRichResponseMessage_AIRichResponseMessageType" json:"messageType,omitempty"` - Submessages []*AIRichResponseMessage_AIRichResponseSubMessage `protobuf:"bytes,2,rep,name=submessages" json:"submessages,omitempty"` - AbstractData *AIRichResponseMessage_AIRichResponseAbstractData `protobuf:"bytes,3,opt,name=abstractData" json:"abstractData,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + MessageType *AIRichResponseMessage_AIRichResponseMessageType `protobuf:"varint,1,opt,name=messageType,enum=WAWebProtobufsE2E.AIRichResponseMessage_AIRichResponseMessageType" json:"messageType,omitempty"` + Submessages []*AIRichResponseMessage_AIRichResponseSubMessage `protobuf:"bytes,2,rep,name=submessages" json:"submessages,omitempty"` + UnifiedResponse *AIRichResponseMessage_AIRichResponseUnifiedResponse `protobuf:"bytes,3,opt,name=unifiedResponse" json:"unifiedResponse,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AIRichResponseMessage) Reset() { @@ -9316,13 +9679,65 @@ func (x *AIRichResponseMessage) GetSubmessages() []*AIRichResponseMessage_AIRich return nil } -func (x *AIRichResponseMessage) GetAbstractData() *AIRichResponseMessage_AIRichResponseAbstractData { +func (x *AIRichResponseMessage) GetUnifiedResponse() *AIRichResponseMessage_AIRichResponseUnifiedResponse { if x != nil { - return x.AbstractData + return x.UnifiedResponse } return nil } +type BotPromotionMessageMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + PromotionType *BotPromotionMessageMetadata_BotPromotionType `protobuf:"varint,1,opt,name=promotionType,enum=WAWebProtobufsE2E.BotPromotionMessageMetadata_BotPromotionType" json:"promotionType,omitempty"` + ButtonTitle *string `protobuf:"bytes,2,opt,name=buttonTitle" json:"buttonTitle,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotPromotionMessageMetadata) Reset() { + *x = BotPromotionMessageMetadata{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotPromotionMessageMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotPromotionMessageMetadata) ProtoMessage() {} + +func (x *BotPromotionMessageMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotPromotionMessageMetadata.ProtoReflect.Descriptor instead. +func (*BotPromotionMessageMetadata) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{36} +} + +func (x *BotPromotionMessageMetadata) GetPromotionType() BotPromotionMessageMetadata_BotPromotionType { + if x != nil && x.PromotionType != nil { + return *x.PromotionType + } + return BotPromotionMessageMetadata_UNKNOWN_TYPE +} + +func (x *BotPromotionMessageMetadata) GetButtonTitle() string { + if x != nil && x.ButtonTitle != nil { + return *x.ButtonTitle + } + return "" +} + type BotMediaMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` FileSHA256 *string `protobuf:"bytes,1,opt,name=fileSHA256" json:"fileSHA256,omitempty"` @@ -9338,7 +9753,7 @@ type BotMediaMetadata struct { func (x *BotMediaMetadata) Reset() { *x = BotMediaMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[36] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9350,7 +9765,7 @@ func (x *BotMediaMetadata) String() string { func (*BotMediaMetadata) ProtoMessage() {} func (x *BotMediaMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[36] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9363,7 +9778,7 @@ func (x *BotMediaMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMediaMetadata.ProtoReflect.Descriptor instead. func (*BotMediaMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{36} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{37} } func (x *BotMediaMetadata) GetFileSHA256() string { @@ -9428,7 +9843,7 @@ type BotReminderMetadata struct { func (x *BotReminderMetadata) Reset() { *x = BotReminderMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[37] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9440,7 +9855,7 @@ func (x *BotReminderMetadata) String() string { func (*BotReminderMetadata) ProtoMessage() {} func (x *BotReminderMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[37] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9453,7 +9868,7 @@ func (x *BotReminderMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotReminderMetadata.ProtoReflect.Descriptor instead. func (*BotReminderMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{37} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{38} } func (x *BotReminderMetadata) GetRequestMessageKey() *waCommon.MessageKey { @@ -9501,7 +9916,7 @@ type BotModelMetadata struct { func (x *BotModelMetadata) Reset() { *x = BotModelMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[38] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9513,7 +9928,7 @@ func (x *BotModelMetadata) String() string { func (*BotModelMetadata) ProtoMessage() {} func (x *BotModelMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[38] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9526,7 +9941,7 @@ func (x *BotModelMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotModelMetadata.ProtoReflect.Descriptor instead. func (*BotModelMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{38} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39} } func (x *BotModelMetadata) GetModelType() BotModelMetadata_ModelType { @@ -9553,7 +9968,7 @@ type BotProgressIndicatorMetadata struct { func (x *BotProgressIndicatorMetadata) Reset() { *x = BotProgressIndicatorMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[39] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9565,7 +9980,7 @@ func (x *BotProgressIndicatorMetadata) String() string { func (*BotProgressIndicatorMetadata) ProtoMessage() {} func (x *BotProgressIndicatorMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[39] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9578,7 +9993,7 @@ func (x *BotProgressIndicatorMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotProgressIndicatorMetadata.ProtoReflect.Descriptor instead. func (*BotProgressIndicatorMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40} } func (x *BotProgressIndicatorMetadata) GetProgressDescription() string { @@ -9604,7 +10019,7 @@ type BotCapabilityMetadata struct { func (x *BotCapabilityMetadata) Reset() { *x = BotCapabilityMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[40] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9616,7 +10031,7 @@ func (x *BotCapabilityMetadata) String() string { func (*BotCapabilityMetadata) ProtoMessage() {} func (x *BotCapabilityMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[40] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9629,7 +10044,7 @@ func (x *BotCapabilityMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotCapabilityMetadata.ProtoReflect.Descriptor instead. func (*BotCapabilityMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{41} } func (x *BotCapabilityMetadata) GetCapabilities() []BotCapabilityMetadata_BotCapabilityType { @@ -9639,28 +10054,28 @@ func (x *BotCapabilityMetadata) GetCapabilities() []BotCapabilityMetadata_BotCap return nil } -type BotImagineMetadata struct { - state protoimpl.MessageState `protogen:"open.v1"` - ImagineType *BotImagineMetadata_ImagineType `protobuf:"varint,1,opt,name=imagineType,enum=WAWebProtobufsE2E.BotImagineMetadata_ImagineType" json:"imagineType,omitempty"` +type BotModeSelectionMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + Mode []BotModeSelectionMetadata_BotUserSelectionMode `protobuf:"varint,1,rep,name=mode,enum=WAWebProtobufsE2E.BotModeSelectionMetadata_BotUserSelectionMode" json:"mode,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *BotImagineMetadata) Reset() { - *x = BotImagineMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[41] +func (x *BotModeSelectionMetadata) Reset() { + *x = BotModeSelectionMetadata{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *BotImagineMetadata) String() string { +func (x *BotModeSelectionMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BotImagineMetadata) ProtoMessage() {} +func (*BotModeSelectionMetadata) ProtoMessage() {} -func (x *BotImagineMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[41] +func (x *BotModeSelectionMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9671,16 +10086,104 @@ func (x *BotImagineMetadata) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BotImagineMetadata.ProtoReflect.Descriptor instead. -func (*BotImagineMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{41} +// Deprecated: Use BotModeSelectionMetadata.ProtoReflect.Descriptor instead. +func (*BotModeSelectionMetadata) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{42} } -func (x *BotImagineMetadata) GetImagineType() BotImagineMetadata_ImagineType { - if x != nil && x.ImagineType != nil { - return *x.ImagineType +func (x *BotModeSelectionMetadata) GetMode() []BotModeSelectionMetadata_BotUserSelectionMode { + if x != nil { + return x.Mode } - return BotImagineMetadata_UNKNOWN + return nil +} + +type BotQuotaMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + BotFeatureQuotaMetadata []*BotQuotaMetadata_BotFeatureQuotaMetadata `protobuf:"bytes,1,rep,name=botFeatureQuotaMetadata" json:"botFeatureQuotaMetadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotQuotaMetadata) Reset() { + *x = BotQuotaMetadata{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotQuotaMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotQuotaMetadata) ProtoMessage() {} + +func (x *BotQuotaMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[43] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotQuotaMetadata.ProtoReflect.Descriptor instead. +func (*BotQuotaMetadata) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{43} +} + +func (x *BotQuotaMetadata) GetBotFeatureQuotaMetadata() []*BotQuotaMetadata_BotFeatureQuotaMetadata { + if x != nil { + return x.BotFeatureQuotaMetadata + } + return nil +} + +type BotImagineMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + ImagineType *BotImagineMetadata_ImagineType `protobuf:"varint,1,opt,name=imagineType,enum=WAWebProtobufsE2E.BotImagineMetadata_ImagineType" json:"imagineType,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotImagineMetadata) Reset() { + *x = BotImagineMetadata{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotImagineMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotImagineMetadata) ProtoMessage() {} + +func (x *BotImagineMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[44] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotImagineMetadata.ProtoReflect.Descriptor instead. +func (*BotImagineMetadata) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{44} +} + +func (x *BotImagineMetadata) GetImagineType() BotImagineMetadata_ImagineType { + if x != nil && x.ImagineType != nil { + return *x.ImagineType + } + return BotImagineMetadata_UNKNOWN } type BotSourcesMetadata struct { @@ -9692,7 +10195,7 @@ type BotSourcesMetadata struct { func (x *BotSourcesMetadata) Reset() { *x = BotSourcesMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[42] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9704,7 +10207,7 @@ func (x *BotSourcesMetadata) String() string { func (*BotSourcesMetadata) ProtoMessage() {} func (x *BotSourcesMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[42] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9717,7 +10220,7 @@ func (x *BotSourcesMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotSourcesMetadata.ProtoReflect.Descriptor instead. func (*BotSourcesMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{42} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{45} } func (x *BotSourcesMetadata) GetSources() []*BotSourcesMetadata_BotSourceItem { @@ -9738,7 +10241,7 @@ type MessageAssociation struct { func (x *MessageAssociation) Reset() { *x = MessageAssociation{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[43] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9750,7 +10253,7 @@ func (x *MessageAssociation) String() string { func (*MessageAssociation) ProtoMessage() {} func (x *MessageAssociation) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[43] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9763,7 +10266,7 @@ func (x *MessageAssociation) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageAssociation.ProtoReflect.Descriptor instead. func (*MessageAssociation) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{43} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{46} } func (x *MessageAssociation) GetAssociationType() MessageAssociation_AssociationType { @@ -9802,13 +10305,14 @@ type MessageContextInfo struct { CapiCreatedGroup *bool `protobuf:"varint,11,opt,name=capiCreatedGroup" json:"capiCreatedGroup,omitempty"` SupportPayload *string `protobuf:"bytes,12,opt,name=supportPayload" json:"supportPayload,omitempty"` LimitSharing *waCommon.LimitSharing `protobuf:"bytes,13,opt,name=limitSharing" json:"limitSharing,omitempty"` + LimitSharingV2 *waCommon.LimitSharing `protobuf:"bytes,14,opt,name=limitSharingV2" json:"limitSharingV2,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MessageContextInfo) Reset() { *x = MessageContextInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[44] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9820,7 +10324,7 @@ func (x *MessageContextInfo) String() string { func (*MessageContextInfo) ProtoMessage() {} func (x *MessageContextInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[44] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9833,7 +10337,7 @@ func (x *MessageContextInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageContextInfo.ProtoReflect.Descriptor instead. func (*MessageContextInfo) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{44} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{47} } func (x *MessageContextInfo) GetDeviceListMetadata() *DeviceListMetadata { @@ -9927,6 +10431,13 @@ func (x *MessageContextInfo) GetLimitSharing() *waCommon.LimitSharing { return nil } +func (x *MessageContextInfo) GetLimitSharingV2() *waCommon.LimitSharing { + if x != nil { + return x.LimitSharingV2 + } + return nil +} + type InteractiveAnnotation struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Action: @@ -9946,7 +10457,7 @@ type InteractiveAnnotation struct { func (x *InteractiveAnnotation) Reset() { *x = InteractiveAnnotation{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[45] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9958,7 +10469,7 @@ func (x *InteractiveAnnotation) String() string { func (*InteractiveAnnotation) ProtoMessage() {} func (x *InteractiveAnnotation) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[45] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9971,7 +10482,7 @@ func (x *InteractiveAnnotation) ProtoReflect() protoreflect.Message { // Deprecated: Use InteractiveAnnotation.ProtoReflect.Descriptor instead. func (*InteractiveAnnotation) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{45} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{48} } func (x *InteractiveAnnotation) GetAction() isInteractiveAnnotation_Action { @@ -10088,7 +10599,7 @@ type HydratedTemplateButton struct { func (x *HydratedTemplateButton) Reset() { *x = HydratedTemplateButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[46] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10100,7 +10611,7 @@ func (x *HydratedTemplateButton) String() string { func (*HydratedTemplateButton) ProtoMessage() {} func (x *HydratedTemplateButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[46] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10113,7 +10624,7 @@ func (x *HydratedTemplateButton) ProtoReflect() protoreflect.Message { // Deprecated: Use HydratedTemplateButton.ProtoReflect.Descriptor instead. func (*HydratedTemplateButton) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{46} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{49} } func (x *HydratedTemplateButton) GetHydratedButton() isHydratedTemplateButton_HydratedButton { @@ -10197,7 +10708,7 @@ type PaymentBackground struct { func (x *PaymentBackground) Reset() { *x = PaymentBackground{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[47] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10209,7 +10720,7 @@ func (x *PaymentBackground) String() string { func (*PaymentBackground) ProtoMessage() {} func (x *PaymentBackground) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[47] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10222,7 +10733,7 @@ func (x *PaymentBackground) ProtoReflect() protoreflect.Message { // Deprecated: Use PaymentBackground.ProtoReflect.Descriptor instead. func (*PaymentBackground) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{47} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{50} } func (x *PaymentBackground) GetID() string { @@ -10307,7 +10818,7 @@ type DisappearingMode struct { func (x *DisappearingMode) Reset() { *x = DisappearingMode{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[48] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10319,7 +10830,7 @@ func (x *DisappearingMode) String() string { func (*DisappearingMode) ProtoMessage() {} func (x *DisappearingMode) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[48] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10332,7 +10843,7 @@ func (x *DisappearingMode) ProtoReflect() protoreflect.Message { // Deprecated: Use DisappearingMode.ProtoReflect.Descriptor instead. func (*DisappearingMode) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{48} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{51} } func (x *DisappearingMode) GetInitiator() DisappearingMode_Initiator { @@ -10379,7 +10890,7 @@ type ProcessedVideo struct { func (x *ProcessedVideo) Reset() { *x = ProcessedVideo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[49] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10391,7 +10902,7 @@ func (x *ProcessedVideo) String() string { func (*ProcessedVideo) ProtoMessage() {} func (x *ProcessedVideo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[49] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10404,7 +10915,7 @@ func (x *ProcessedVideo) ProtoReflect() protoreflect.Message { // Deprecated: Use ProcessedVideo.ProtoReflect.Descriptor instead. func (*ProcessedVideo) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{49} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{52} } func (x *ProcessedVideo) GetDirectPath() string { @@ -10549,13 +11060,15 @@ type Message struct { StatusNotificationMessage *StatusNotificationMessage `protobuf:"bytes,98,opt,name=statusNotificationMessage" json:"statusNotificationMessage,omitempty"` LimitSharingMessage *FutureProofMessage `protobuf:"bytes,99,opt,name=limitSharingMessage" json:"limitSharingMessage,omitempty"` BotTaskMessage *FutureProofMessage `protobuf:"bytes,100,opt,name=botTaskMessage" json:"botTaskMessage,omitempty"` + QuestionMessage *FutureProofMessage `protobuf:"bytes,101,opt,name=questionMessage" json:"questionMessage,omitempty"` + MessageHistoryNotice *MessageHistoryNotice `protobuf:"bytes,102,opt,name=messageHistoryNotice" json:"messageHistoryNotice,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Message) Reset() { *x = Message{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[50] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10567,7 +11080,7 @@ func (x *Message) String() string { func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[50] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10580,7 +11093,7 @@ func (x *Message) ProtoReflect() protoreflect.Message { // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{50} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{53} } func (x *Message) GetConversation() string { @@ -11171,6 +11684,20 @@ func (x *Message) GetBotTaskMessage() *FutureProofMessage { return nil } +func (x *Message) GetQuestionMessage() *FutureProofMessage { + if x != nil { + return x.QuestionMessage + } + return nil +} + +func (x *Message) GetMessageHistoryNotice() *MessageHistoryNotice { + if x != nil { + return x.MessageHistoryNotice + } + return nil +} + type AlbumMessage struct { state protoimpl.MessageState `protogen:"open.v1"` ExpectedImageCount *uint32 `protobuf:"varint,2,opt,name=expectedImageCount" json:"expectedImageCount,omitempty"` @@ -11182,7 +11709,7 @@ type AlbumMessage struct { func (x *AlbumMessage) Reset() { *x = AlbumMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[51] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11194,7 +11721,7 @@ func (x *AlbumMessage) String() string { func (*AlbumMessage) ProtoMessage() {} func (x *AlbumMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[51] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11207,7 +11734,7 @@ func (x *AlbumMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use AlbumMessage.ProtoReflect.Descriptor instead. func (*AlbumMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{51} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{54} } func (x *AlbumMessage) GetExpectedImageCount() uint32 { @@ -11231,23 +11758,135 @@ func (x *AlbumMessage) GetContextInfo() *ContextInfo { return nil } +type MessageHistoryMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + HistoryReceivers []string `protobuf:"bytes,1,rep,name=historyReceivers" json:"historyReceivers,omitempty"` + FirstMessageTimestamp *int64 `protobuf:"varint,2,opt,name=firstMessageTimestamp" json:"firstMessageTimestamp,omitempty"` + MessageCount *int64 `protobuf:"varint,3,opt,name=messageCount" json:"messageCount,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MessageHistoryMetadata) Reset() { + *x = MessageHistoryMetadata{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MessageHistoryMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageHistoryMetadata) ProtoMessage() {} + +func (x *MessageHistoryMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[55] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageHistoryMetadata.ProtoReflect.Descriptor instead. +func (*MessageHistoryMetadata) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{55} +} + +func (x *MessageHistoryMetadata) GetHistoryReceivers() []string { + if x != nil { + return x.HistoryReceivers + } + return nil +} + +func (x *MessageHistoryMetadata) GetFirstMessageTimestamp() int64 { + if x != nil && x.FirstMessageTimestamp != nil { + return *x.FirstMessageTimestamp + } + return 0 +} + +func (x *MessageHistoryMetadata) GetMessageCount() int64 { + if x != nil && x.MessageCount != nil { + return *x.MessageCount + } + return 0 +} + +type MessageHistoryNotice struct { + state protoimpl.MessageState `protogen:"open.v1"` + ContextInfo *ContextInfo `protobuf:"bytes,1,opt,name=contextInfo" json:"contextInfo,omitempty"` + MessageHistoryMetadata *MessageHistoryMetadata `protobuf:"bytes,2,opt,name=messageHistoryMetadata" json:"messageHistoryMetadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MessageHistoryNotice) Reset() { + *x = MessageHistoryNotice{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MessageHistoryNotice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageHistoryNotice) ProtoMessage() {} + +func (x *MessageHistoryNotice) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[56] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageHistoryNotice.ProtoReflect.Descriptor instead. +func (*MessageHistoryNotice) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{56} +} + +func (x *MessageHistoryNotice) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil +} + +func (x *MessageHistoryNotice) GetMessageHistoryMetadata() *MessageHistoryMetadata { + if x != nil { + return x.MessageHistoryMetadata + } + return nil +} + type MessageHistoryBundle struct { - state protoimpl.MessageState `protogen:"open.v1"` - Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` - FileSHA256 []byte `protobuf:"bytes,3,opt,name=fileSHA256" json:"fileSHA256,omitempty"` - MediaKey []byte `protobuf:"bytes,5,opt,name=mediaKey" json:"mediaKey,omitempty"` - FileEncSHA256 []byte `protobuf:"bytes,6,opt,name=fileEncSHA256" json:"fileEncSHA256,omitempty"` - DirectPath *string `protobuf:"bytes,7,opt,name=directPath" json:"directPath,omitempty"` - MediaKeyTimestamp *int64 `protobuf:"varint,8,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,9,opt,name=contextInfo" json:"contextInfo,omitempty"` - Participants []string `protobuf:"bytes,10,rep,name=participants" json:"participants,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Mimetype *string `protobuf:"bytes,1,opt,name=mimetype" json:"mimetype,omitempty"` + FileSHA256 []byte `protobuf:"bytes,2,opt,name=fileSHA256" json:"fileSHA256,omitempty"` + MediaKey []byte `protobuf:"bytes,3,opt,name=mediaKey" json:"mediaKey,omitempty"` + FileEncSHA256 []byte `protobuf:"bytes,4,opt,name=fileEncSHA256" json:"fileEncSHA256,omitempty"` + DirectPath *string `protobuf:"bytes,5,opt,name=directPath" json:"directPath,omitempty"` + MediaKeyTimestamp *int64 `protobuf:"varint,6,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,7,opt,name=contextInfo" json:"contextInfo,omitempty"` + MessageHistoryMetadata *MessageHistoryMetadata `protobuf:"bytes,8,opt,name=messageHistoryMetadata" json:"messageHistoryMetadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MessageHistoryBundle) Reset() { *x = MessageHistoryBundle{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[52] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11259,7 +11898,7 @@ func (x *MessageHistoryBundle) String() string { func (*MessageHistoryBundle) ProtoMessage() {} func (x *MessageHistoryBundle) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[52] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11272,7 +11911,7 @@ func (x *MessageHistoryBundle) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageHistoryBundle.ProtoReflect.Descriptor instead. func (*MessageHistoryBundle) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{52} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{57} } func (x *MessageHistoryBundle) GetMimetype() string { @@ -11324,9 +11963,9 @@ func (x *MessageHistoryBundle) GetContextInfo() *ContextInfo { return nil } -func (x *MessageHistoryBundle) GetParticipants() []string { +func (x *MessageHistoryBundle) GetMessageHistoryMetadata() *MessageHistoryMetadata { if x != nil { - return x.Participants + return x.MessageHistoryMetadata } return nil } @@ -11342,7 +11981,7 @@ type EncEventResponseMessage struct { func (x *EncEventResponseMessage) Reset() { *x = EncEventResponseMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[53] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11354,7 +11993,7 @@ func (x *EncEventResponseMessage) String() string { func (*EncEventResponseMessage) ProtoMessage() {} func (x *EncEventResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[53] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11367,7 +12006,7 @@ func (x *EncEventResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use EncEventResponseMessage.ProtoReflect.Descriptor instead. func (*EncEventResponseMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{53} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{58} } func (x *EncEventResponseMessage) GetEventCreationMessageKey() *waCommon.MessageKey { @@ -11409,7 +12048,7 @@ type EventMessage struct { func (x *EventMessage) Reset() { *x = EventMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[54] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11421,7 +12060,7 @@ func (x *EventMessage) String() string { func (*EventMessage) ProtoMessage() {} func (x *EventMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[54] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11434,7 +12073,7 @@ func (x *EventMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use EventMessage.ProtoReflect.Descriptor instead. func (*EventMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{54} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{59} } func (x *EventMessage) GetContextInfo() *ContextInfo { @@ -11517,7 +12156,7 @@ type CommentMessage struct { func (x *CommentMessage) Reset() { *x = CommentMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[55] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11529,7 +12168,7 @@ func (x *CommentMessage) String() string { func (*CommentMessage) ProtoMessage() {} func (x *CommentMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[55] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11542,7 +12181,7 @@ func (x *CommentMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use CommentMessage.ProtoReflect.Descriptor instead. func (*CommentMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{55} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{60} } func (x *CommentMessage) GetMessage() *Message { @@ -11570,7 +12209,7 @@ type EncCommentMessage struct { func (x *EncCommentMessage) Reset() { *x = EncCommentMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[56] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11582,7 +12221,7 @@ func (x *EncCommentMessage) String() string { func (*EncCommentMessage) ProtoMessage() {} func (x *EncCommentMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[56] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11595,7 +12234,7 @@ func (x *EncCommentMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use EncCommentMessage.ProtoReflect.Descriptor instead. func (*EncCommentMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{56} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{61} } func (x *EncCommentMessage) GetTargetMessageKey() *waCommon.MessageKey { @@ -11630,7 +12269,7 @@ type EncReactionMessage struct { func (x *EncReactionMessage) Reset() { *x = EncReactionMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[57] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11642,7 +12281,7 @@ func (x *EncReactionMessage) String() string { func (*EncReactionMessage) ProtoMessage() {} func (x *EncReactionMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[57] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11655,7 +12294,7 @@ func (x *EncReactionMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use EncReactionMessage.ProtoReflect.Descriptor instead. func (*EncReactionMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{57} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{62} } func (x *EncReactionMessage) GetTargetMessageKey() *waCommon.MessageKey { @@ -11690,7 +12329,7 @@ type KeepInChatMessage struct { func (x *KeepInChatMessage) Reset() { *x = KeepInChatMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[58] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11702,7 +12341,7 @@ func (x *KeepInChatMessage) String() string { func (*KeepInChatMessage) ProtoMessage() {} func (x *KeepInChatMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[58] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11715,7 +12354,7 @@ func (x *KeepInChatMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use KeepInChatMessage.ProtoReflect.Descriptor instead. func (*KeepInChatMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{58} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{63} } func (x *KeepInChatMessage) GetKey() *waCommon.MessageKey { @@ -11750,7 +12389,7 @@ type PollResultSnapshotMessage struct { func (x *PollResultSnapshotMessage) Reset() { *x = PollResultSnapshotMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[59] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11762,7 +12401,7 @@ func (x *PollResultSnapshotMessage) String() string { func (*PollResultSnapshotMessage) ProtoMessage() {} func (x *PollResultSnapshotMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[59] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11775,7 +12414,7 @@ func (x *PollResultSnapshotMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use PollResultSnapshotMessage.ProtoReflect.Descriptor instead. func (*PollResultSnapshotMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{59} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{64} } func (x *PollResultSnapshotMessage) GetName() string { @@ -11808,7 +12447,7 @@ type PollVoteMessage struct { func (x *PollVoteMessage) Reset() { *x = PollVoteMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[60] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11820,7 +12459,7 @@ func (x *PollVoteMessage) String() string { func (*PollVoteMessage) ProtoMessage() {} func (x *PollVoteMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[60] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11833,7 +12472,7 @@ func (x *PollVoteMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use PollVoteMessage.ProtoReflect.Descriptor instead. func (*PollVoteMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{60} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{65} } func (x *PollVoteMessage) GetSelectedOptions() [][]byte { @@ -11853,7 +12492,7 @@ type PollEncValue struct { func (x *PollEncValue) Reset() { *x = PollEncValue{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[61] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11865,7 +12504,7 @@ func (x *PollEncValue) String() string { func (*PollEncValue) ProtoMessage() {} func (x *PollEncValue) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[61] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11878,7 +12517,7 @@ func (x *PollEncValue) ProtoReflect() protoreflect.Message { // Deprecated: Use PollEncValue.ProtoReflect.Descriptor instead. func (*PollEncValue) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{61} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{66} } func (x *PollEncValue) GetEncPayload() []byte { @@ -11903,7 +12542,7 @@ type PollUpdateMessageMetadata struct { func (x *PollUpdateMessageMetadata) Reset() { *x = PollUpdateMessageMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[62] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11915,7 +12554,7 @@ func (x *PollUpdateMessageMetadata) String() string { func (*PollUpdateMessageMetadata) ProtoMessage() {} func (x *PollUpdateMessageMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[62] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11928,7 +12567,7 @@ func (x *PollUpdateMessageMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use PollUpdateMessageMetadata.ProtoReflect.Descriptor instead. func (*PollUpdateMessageMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{62} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{67} } type PollUpdateMessage struct { @@ -11943,7 +12582,7 @@ type PollUpdateMessage struct { func (x *PollUpdateMessage) Reset() { *x = PollUpdateMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[63] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11955,7 +12594,7 @@ func (x *PollUpdateMessage) String() string { func (*PollUpdateMessage) ProtoMessage() {} func (x *PollUpdateMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[63] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11968,7 +12607,7 @@ func (x *PollUpdateMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use PollUpdateMessage.ProtoReflect.Descriptor instead. func (*PollUpdateMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{63} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{68} } func (x *PollUpdateMessage) GetPollCreationMessageKey() *waCommon.MessageKey { @@ -12010,7 +12649,7 @@ type StickerSyncRMRMessage struct { func (x *StickerSyncRMRMessage) Reset() { *x = StickerSyncRMRMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[64] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12022,7 +12661,7 @@ func (x *StickerSyncRMRMessage) String() string { func (*StickerSyncRMRMessage) ProtoMessage() {} func (x *StickerSyncRMRMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[64] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12035,7 +12674,7 @@ func (x *StickerSyncRMRMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use StickerSyncRMRMessage.ProtoReflect.Descriptor instead. func (*StickerSyncRMRMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{64} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{69} } func (x *StickerSyncRMRMessage) GetFilehash() []string { @@ -12071,7 +12710,7 @@ type ReactionMessage struct { func (x *ReactionMessage) Reset() { *x = ReactionMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[65] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12083,7 +12722,7 @@ func (x *ReactionMessage) String() string { func (*ReactionMessage) ProtoMessage() {} func (x *ReactionMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[65] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12096,7 +12735,7 @@ func (x *ReactionMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ReactionMessage.ProtoReflect.Descriptor instead. func (*ReactionMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{65} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{70} } func (x *ReactionMessage) GetKey() *waCommon.MessageKey { @@ -12136,7 +12775,7 @@ type FutureProofMessage struct { func (x *FutureProofMessage) Reset() { *x = FutureProofMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[66] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12148,7 +12787,7 @@ func (x *FutureProofMessage) String() string { func (*FutureProofMessage) ProtoMessage() {} func (x *FutureProofMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[66] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12161,7 +12800,7 @@ func (x *FutureProofMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use FutureProofMessage.ProtoReflect.Descriptor instead. func (*FutureProofMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{66} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{71} } func (x *FutureProofMessage) GetMessage() *Message { @@ -12182,7 +12821,7 @@ type DeviceSentMessage struct { func (x *DeviceSentMessage) Reset() { *x = DeviceSentMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[67] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12194,7 +12833,7 @@ func (x *DeviceSentMessage) String() string { func (*DeviceSentMessage) ProtoMessage() {} func (x *DeviceSentMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[67] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12207,7 +12846,7 @@ func (x *DeviceSentMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceSentMessage.ProtoReflect.Descriptor instead. func (*DeviceSentMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{67} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{72} } func (x *DeviceSentMessage) GetDestinationJID() string { @@ -12240,7 +12879,7 @@ type RequestPhoneNumberMessage struct { func (x *RequestPhoneNumberMessage) Reset() { *x = RequestPhoneNumberMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[68] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12252,7 +12891,7 @@ func (x *RequestPhoneNumberMessage) String() string { func (*RequestPhoneNumberMessage) ProtoMessage() {} func (x *RequestPhoneNumberMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[68] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12265,7 +12904,7 @@ func (x *RequestPhoneNumberMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestPhoneNumberMessage.ProtoReflect.Descriptor instead. func (*RequestPhoneNumberMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{68} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{73} } func (x *RequestPhoneNumberMessage) GetContextInfo() *ContextInfo { @@ -12289,7 +12928,7 @@ type NewsletterAdminInviteMessage struct { func (x *NewsletterAdminInviteMessage) Reset() { *x = NewsletterAdminInviteMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[69] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12301,7 +12940,7 @@ func (x *NewsletterAdminInviteMessage) String() string { func (*NewsletterAdminInviteMessage) ProtoMessage() {} func (x *NewsletterAdminInviteMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[69] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12314,7 +12953,7 @@ func (x *NewsletterAdminInviteMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use NewsletterAdminInviteMessage.ProtoReflect.Descriptor instead. func (*NewsletterAdminInviteMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{69} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{74} } func (x *NewsletterAdminInviteMessage) GetNewsletterJID() string { @@ -12373,7 +13012,7 @@ type ProductMessage struct { func (x *ProductMessage) Reset() { *x = ProductMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12385,7 +13024,7 @@ func (x *ProductMessage) String() string { func (*ProductMessage) ProtoMessage() {} func (x *ProductMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12398,7 +13037,7 @@ func (x *ProductMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductMessage.ProtoReflect.Descriptor instead. func (*ProductMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{70} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{75} } func (x *ProductMessage) GetProduct() *ProductMessage_ProductSnapshot { @@ -12456,7 +13095,7 @@ type TemplateButtonReplyMessage struct { func (x *TemplateButtonReplyMessage) Reset() { *x = TemplateButtonReplyMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12468,7 +13107,7 @@ func (x *TemplateButtonReplyMessage) String() string { func (*TemplateButtonReplyMessage) ProtoMessage() {} func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12481,7 +13120,7 @@ func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateButtonReplyMessage.ProtoReflect.Descriptor instead. func (*TemplateButtonReplyMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{71} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{76} } func (x *TemplateButtonReplyMessage) GetSelectedID() string { @@ -12536,7 +13175,7 @@ type TemplateMessage struct { func (x *TemplateMessage) Reset() { *x = TemplateMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12548,7 +13187,7 @@ func (x *TemplateMessage) String() string { func (*TemplateMessage) ProtoMessage() {} func (x *TemplateMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12561,7 +13200,7 @@ func (x *TemplateMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateMessage.ProtoReflect.Descriptor instead. func (*TemplateMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{72} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{77} } func (x *TemplateMessage) GetFormat() isTemplateMessage_Format { @@ -12669,7 +13308,7 @@ type StickerMessage struct { func (x *StickerMessage) Reset() { *x = StickerMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[73] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12681,7 +13320,7 @@ func (x *StickerMessage) String() string { func (*StickerMessage) ProtoMessage() {} func (x *StickerMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[73] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12694,7 +13333,7 @@ func (x *StickerMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use StickerMessage.ProtoReflect.Descriptor instead. func (*StickerMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{73} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{78} } func (x *StickerMessage) GetURL() string { @@ -12855,7 +13494,7 @@ type LiveLocationMessage struct { func (x *LiveLocationMessage) Reset() { *x = LiveLocationMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[74] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12867,7 +13506,7 @@ func (x *LiveLocationMessage) String() string { func (*LiveLocationMessage) ProtoMessage() {} func (x *LiveLocationMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[74] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12880,7 +13519,7 @@ func (x *LiveLocationMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use LiveLocationMessage.ProtoReflect.Descriptor instead. func (*LiveLocationMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{74} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{79} } func (x *LiveLocationMessage) GetDegreesLatitude() float64 { @@ -12962,7 +13601,7 @@ type CancelPaymentRequestMessage struct { func (x *CancelPaymentRequestMessage) Reset() { *x = CancelPaymentRequestMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[75] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12974,7 +13613,7 @@ func (x *CancelPaymentRequestMessage) String() string { func (*CancelPaymentRequestMessage) ProtoMessage() {} func (x *CancelPaymentRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[75] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12987,7 +13626,7 @@ func (x *CancelPaymentRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelPaymentRequestMessage.ProtoReflect.Descriptor instead. func (*CancelPaymentRequestMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{75} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{80} } func (x *CancelPaymentRequestMessage) GetKey() *waCommon.MessageKey { @@ -13006,7 +13645,7 @@ type DeclinePaymentRequestMessage struct { func (x *DeclinePaymentRequestMessage) Reset() { *x = DeclinePaymentRequestMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[76] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13018,7 +13657,7 @@ func (x *DeclinePaymentRequestMessage) String() string { func (*DeclinePaymentRequestMessage) ProtoMessage() {} func (x *DeclinePaymentRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[76] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13031,7 +13670,7 @@ func (x *DeclinePaymentRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use DeclinePaymentRequestMessage.ProtoReflect.Descriptor instead. func (*DeclinePaymentRequestMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{76} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81} } func (x *DeclinePaymentRequestMessage) GetKey() *waCommon.MessageKey { @@ -13056,7 +13695,7 @@ type RequestPaymentMessage struct { func (x *RequestPaymentMessage) Reset() { *x = RequestPaymentMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13068,7 +13707,7 @@ func (x *RequestPaymentMessage) String() string { func (*RequestPaymentMessage) ProtoMessage() {} func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13081,7 +13720,7 @@ func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestPaymentMessage.ProtoReflect.Descriptor instead. func (*RequestPaymentMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{77} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{82} } func (x *RequestPaymentMessage) GetNoteMessage() *Message { @@ -13144,7 +13783,7 @@ type SendPaymentMessage struct { func (x *SendPaymentMessage) Reset() { *x = SendPaymentMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[78] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13156,7 +13795,7 @@ func (x *SendPaymentMessage) String() string { func (*SendPaymentMessage) ProtoMessage() {} func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[78] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13169,7 +13808,7 @@ func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SendPaymentMessage.ProtoReflect.Descriptor instead. func (*SendPaymentMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{78} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{83} } func (x *SendPaymentMessage) GetNoteMessage() *Message { @@ -13204,7 +13843,7 @@ type ContactsArrayMessage struct { func (x *ContactsArrayMessage) Reset() { *x = ContactsArrayMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[79] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13216,7 +13855,7 @@ func (x *ContactsArrayMessage) String() string { func (*ContactsArrayMessage) ProtoMessage() {} func (x *ContactsArrayMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[79] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13229,7 +13868,7 @@ func (x *ContactsArrayMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ContactsArrayMessage.ProtoReflect.Descriptor instead. func (*ContactsArrayMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{79} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{84} } func (x *ContactsArrayMessage) GetDisplayName() string { @@ -13262,7 +13901,7 @@ type InitialSecurityNotificationSettingSync struct { func (x *InitialSecurityNotificationSettingSync) Reset() { *x = InitialSecurityNotificationSettingSync{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[80] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13274,7 +13913,7 @@ func (x *InitialSecurityNotificationSettingSync) String() string { func (*InitialSecurityNotificationSettingSync) ProtoMessage() {} func (x *InitialSecurityNotificationSettingSync) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[80] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13287,7 +13926,7 @@ func (x *InitialSecurityNotificationSettingSync) ProtoReflect() protoreflect.Mes // Deprecated: Use InitialSecurityNotificationSettingSync.ProtoReflect.Descriptor instead. func (*InitialSecurityNotificationSettingSync) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{80} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{85} } func (x *InitialSecurityNotificationSettingSync) GetSecurityNotificationEnabled() bool { @@ -13298,20 +13937,21 @@ func (x *InitialSecurityNotificationSettingSync) GetSecurityNotificationEnabled( } type PeerDataOperationRequestMessage struct { - state protoimpl.MessageState `protogen:"open.v1"` - PeerDataOperationRequestType *PeerDataOperationRequestType `protobuf:"varint,1,opt,name=peerDataOperationRequestType,enum=WAWebProtobufsE2E.PeerDataOperationRequestType" json:"peerDataOperationRequestType,omitempty"` - RequestStickerReupload []*PeerDataOperationRequestMessage_RequestStickerReupload `protobuf:"bytes,2,rep,name=requestStickerReupload" json:"requestStickerReupload,omitempty"` - RequestURLPreview []*PeerDataOperationRequestMessage_RequestUrlPreview `protobuf:"bytes,3,rep,name=requestURLPreview" json:"requestURLPreview,omitempty"` - HistorySyncOnDemandRequest *PeerDataOperationRequestMessage_HistorySyncOnDemandRequest `protobuf:"bytes,4,opt,name=historySyncOnDemandRequest" json:"historySyncOnDemandRequest,omitempty"` - PlaceholderMessageResendRequest []*PeerDataOperationRequestMessage_PlaceholderMessageResendRequest `protobuf:"bytes,5,rep,name=placeholderMessageResendRequest" json:"placeholderMessageResendRequest,omitempty"` - FullHistorySyncOnDemandRequest *PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest `protobuf:"bytes,6,opt,name=fullHistorySyncOnDemandRequest" json:"fullHistorySyncOnDemandRequest,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PeerDataOperationRequestType *PeerDataOperationRequestType `protobuf:"varint,1,opt,name=peerDataOperationRequestType,enum=WAWebProtobufsE2E.PeerDataOperationRequestType" json:"peerDataOperationRequestType,omitempty"` + RequestStickerReupload []*PeerDataOperationRequestMessage_RequestStickerReupload `protobuf:"bytes,2,rep,name=requestStickerReupload" json:"requestStickerReupload,omitempty"` + RequestURLPreview []*PeerDataOperationRequestMessage_RequestUrlPreview `protobuf:"bytes,3,rep,name=requestURLPreview" json:"requestURLPreview,omitempty"` + HistorySyncOnDemandRequest *PeerDataOperationRequestMessage_HistorySyncOnDemandRequest `protobuf:"bytes,4,opt,name=historySyncOnDemandRequest" json:"historySyncOnDemandRequest,omitempty"` + PlaceholderMessageResendRequest []*PeerDataOperationRequestMessage_PlaceholderMessageResendRequest `protobuf:"bytes,5,rep,name=placeholderMessageResendRequest" json:"placeholderMessageResendRequest,omitempty"` + FullHistorySyncOnDemandRequest *PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest `protobuf:"bytes,6,opt,name=fullHistorySyncOnDemandRequest" json:"fullHistorySyncOnDemandRequest,omitempty"` + SyncdCollectionFatalRecoveryRequest *PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest `protobuf:"bytes,7,opt,name=syncdCollectionFatalRecoveryRequest" json:"syncdCollectionFatalRecoveryRequest,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PeerDataOperationRequestMessage) Reset() { *x = PeerDataOperationRequestMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[81] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13323,7 +13963,7 @@ func (x *PeerDataOperationRequestMessage) String() string { func (*PeerDataOperationRequestMessage) ProtoMessage() {} func (x *PeerDataOperationRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[81] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13336,7 +13976,7 @@ func (x *PeerDataOperationRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerDataOperationRequestMessage.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86} } func (x *PeerDataOperationRequestMessage) GetPeerDataOperationRequestType() PeerDataOperationRequestType { @@ -13381,6 +14021,13 @@ func (x *PeerDataOperationRequestMessage) GetFullHistorySyncOnDemandRequest() *P return nil } +func (x *PeerDataOperationRequestMessage) GetSyncdCollectionFatalRecoveryRequest() *PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest { + if x != nil { + return x.SyncdCollectionFatalRecoveryRequest + } + return nil +} + type FullHistorySyncOnDemandRequestMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` RequestID *string `protobuf:"bytes,1,opt,name=requestID" json:"requestID,omitempty"` @@ -13390,7 +14037,7 @@ type FullHistorySyncOnDemandRequestMetadata struct { func (x *FullHistorySyncOnDemandRequestMetadata) Reset() { *x = FullHistorySyncOnDemandRequestMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[82] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13402,7 +14049,7 @@ func (x *FullHistorySyncOnDemandRequestMetadata) String() string { func (*FullHistorySyncOnDemandRequestMetadata) ProtoMessage() {} func (x *FullHistorySyncOnDemandRequestMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[82] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13415,7 +14062,7 @@ func (x *FullHistorySyncOnDemandRequestMetadata) ProtoReflect() protoreflect.Mes // Deprecated: Use FullHistorySyncOnDemandRequestMetadata.ProtoReflect.Descriptor instead. func (*FullHistorySyncOnDemandRequestMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{82} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{87} } func (x *FullHistorySyncOnDemandRequestMetadata) GetRequestID() string { @@ -13435,7 +14082,7 @@ type AppStateFatalExceptionNotification struct { func (x *AppStateFatalExceptionNotification) Reset() { *x = AppStateFatalExceptionNotification{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[83] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13447,7 +14094,7 @@ func (x *AppStateFatalExceptionNotification) String() string { func (*AppStateFatalExceptionNotification) ProtoMessage() {} func (x *AppStateFatalExceptionNotification) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[83] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13460,7 +14107,7 @@ func (x *AppStateFatalExceptionNotification) ProtoReflect() protoreflect.Message // Deprecated: Use AppStateFatalExceptionNotification.ProtoReflect.Descriptor instead. func (*AppStateFatalExceptionNotification) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{83} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{88} } func (x *AppStateFatalExceptionNotification) GetCollectionNames() []string { @@ -13486,7 +14133,7 @@ type AppStateSyncKeyRequest struct { func (x *AppStateSyncKeyRequest) Reset() { *x = AppStateSyncKeyRequest{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[84] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13498,7 +14145,7 @@ func (x *AppStateSyncKeyRequest) String() string { func (*AppStateSyncKeyRequest) ProtoMessage() {} func (x *AppStateSyncKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[84] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13511,7 +14158,7 @@ func (x *AppStateSyncKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyRequest.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyRequest) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{84} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{89} } func (x *AppStateSyncKeyRequest) GetKeyIDs() []*AppStateSyncKeyId { @@ -13530,7 +14177,7 @@ type AppStateSyncKeyShare struct { func (x *AppStateSyncKeyShare) Reset() { *x = AppStateSyncKeyShare{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[85] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13542,7 +14189,7 @@ func (x *AppStateSyncKeyShare) String() string { func (*AppStateSyncKeyShare) ProtoMessage() {} func (x *AppStateSyncKeyShare) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[85] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13555,7 +14202,7 @@ func (x *AppStateSyncKeyShare) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyShare.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyShare) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{85} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{90} } func (x *AppStateSyncKeyShare) GetKeys() []*AppStateSyncKey { @@ -13576,7 +14223,7 @@ type AppStateSyncKeyData struct { func (x *AppStateSyncKeyData) Reset() { *x = AppStateSyncKeyData{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[86] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13588,7 +14235,7 @@ func (x *AppStateSyncKeyData) String() string { func (*AppStateSyncKeyData) ProtoMessage() {} func (x *AppStateSyncKeyData) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[86] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13601,7 +14248,7 @@ func (x *AppStateSyncKeyData) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyData.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyData) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{91} } func (x *AppStateSyncKeyData) GetKeyData() []byte { @@ -13636,7 +14283,7 @@ type AppStateSyncKeyFingerprint struct { func (x *AppStateSyncKeyFingerprint) Reset() { *x = AppStateSyncKeyFingerprint{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[87] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13648,7 +14295,7 @@ func (x *AppStateSyncKeyFingerprint) String() string { func (*AppStateSyncKeyFingerprint) ProtoMessage() {} func (x *AppStateSyncKeyFingerprint) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[87] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13661,7 +14308,7 @@ func (x *AppStateSyncKeyFingerprint) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyFingerprint.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyFingerprint) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{87} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{92} } func (x *AppStateSyncKeyFingerprint) GetRawID() uint32 { @@ -13694,7 +14341,7 @@ type AppStateSyncKeyId struct { func (x *AppStateSyncKeyId) Reset() { *x = AppStateSyncKeyId{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[88] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13706,7 +14353,7 @@ func (x *AppStateSyncKeyId) String() string { func (*AppStateSyncKeyId) ProtoMessage() {} func (x *AppStateSyncKeyId) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[88] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13719,7 +14366,7 @@ func (x *AppStateSyncKeyId) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyId.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyId) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{88} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{93} } func (x *AppStateSyncKeyId) GetKeyID() []byte { @@ -13739,7 +14386,7 @@ type AppStateSyncKey struct { func (x *AppStateSyncKey) Reset() { *x = AppStateSyncKey{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[89] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13751,7 +14398,7 @@ func (x *AppStateSyncKey) String() string { func (*AppStateSyncKey) ProtoMessage() {} func (x *AppStateSyncKey) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[89] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13764,7 +14411,7 @@ func (x *AppStateSyncKey) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKey.ProtoReflect.Descriptor instead. func (*AppStateSyncKey) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{89} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{94} } func (x *AppStateSyncKey) GetKeyID() *AppStateSyncKeyId { @@ -13791,7 +14438,7 @@ type Chat struct { func (x *Chat) Reset() { *x = Chat{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[90] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13803,7 +14450,7 @@ func (x *Chat) String() string { func (*Chat) ProtoMessage() {} func (x *Chat) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[90] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13816,7 +14463,7 @@ func (x *Chat) ProtoReflect() protoreflect.Message { // Deprecated: Use Chat.ProtoReflect.Descriptor instead. func (*Chat) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{90} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{95} } func (x *Chat) GetDisplayName() string { @@ -13841,13 +14488,14 @@ type Call struct { ConversionDelaySeconds *uint32 `protobuf:"varint,4,opt,name=conversionDelaySeconds" json:"conversionDelaySeconds,omitempty"` CtwaSignals *string `protobuf:"bytes,5,opt,name=ctwaSignals" json:"ctwaSignals,omitempty"` CtwaPayload []byte `protobuf:"bytes,6,opt,name=ctwaPayload" json:"ctwaPayload,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,7,opt,name=contextInfo" json:"contextInfo,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Call) Reset() { *x = Call{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[91] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13859,7 +14507,7 @@ func (x *Call) String() string { func (*Call) ProtoMessage() {} func (x *Call) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[91] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13872,7 +14520,7 @@ func (x *Call) ProtoReflect() protoreflect.Message { // Deprecated: Use Call.ProtoReflect.Descriptor instead. func (*Call) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{91} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{96} } func (x *Call) GetCallKey() []byte { @@ -13917,6 +14565,13 @@ func (x *Call) GetCtwaPayload() []byte { return nil } +func (x *Call) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil +} + type AudioMessage struct { state protoimpl.MessageState `protogen:"open.v1"` URL *string `protobuf:"bytes,1,opt,name=URL" json:"URL,omitempty"` @@ -13941,7 +14596,7 @@ type AudioMessage struct { func (x *AudioMessage) Reset() { *x = AudioMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[92] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13953,7 +14608,7 @@ func (x *AudioMessage) String() string { func (*AudioMessage) ProtoMessage() {} func (x *AudioMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[92] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13966,7 +14621,7 @@ func (x *AudioMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioMessage.ProtoReflect.Descriptor instead. func (*AudioMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{92} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{97} } func (x *AudioMessage) GetURL() string { @@ -14110,7 +14765,7 @@ type DocumentMessage struct { func (x *DocumentMessage) Reset() { *x = DocumentMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[93] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14122,7 +14777,7 @@ func (x *DocumentMessage) String() string { func (*DocumentMessage) ProtoMessage() {} func (x *DocumentMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[93] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14135,7 +14790,7 @@ func (x *DocumentMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use DocumentMessage.ProtoReflect.Descriptor instead. func (*DocumentMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{93} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{98} } func (x *DocumentMessage) GetURL() string { @@ -14296,7 +14951,7 @@ type LinkPreviewMetadata struct { func (x *LinkPreviewMetadata) Reset() { *x = LinkPreviewMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[94] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14308,7 +14963,7 @@ func (x *LinkPreviewMetadata) String() string { func (*LinkPreviewMetadata) ProtoMessage() {} func (x *LinkPreviewMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[94] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14321,7 +14976,7 @@ func (x *LinkPreviewMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use LinkPreviewMetadata.ProtoReflect.Descriptor instead. func (*LinkPreviewMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{94} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{99} } func (x *LinkPreviewMetadata) GetPaymentLinkMetadata() *PaymentLinkMetadata { @@ -14354,7 +15009,7 @@ type URLMetadata struct { func (x *URLMetadata) Reset() { *x = URLMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[95] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14366,7 +15021,7 @@ func (x *URLMetadata) String() string { func (*URLMetadata) ProtoMessage() {} func (x *URLMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[95] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14379,7 +15034,7 @@ func (x *URLMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use URLMetadata.ProtoReflect.Descriptor instead. func (*URLMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{95} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{100} } func (x *URLMetadata) GetFbExperimentID() uint32 { @@ -14404,7 +15059,7 @@ type MMSThumbnailMetadata struct { func (x *MMSThumbnailMetadata) Reset() { *x = MMSThumbnailMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[96] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14416,7 +15071,7 @@ func (x *MMSThumbnailMetadata) String() string { func (*MMSThumbnailMetadata) ProtoMessage() {} func (x *MMSThumbnailMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[96] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14429,7 +15084,7 @@ func (x *MMSThumbnailMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use MMSThumbnailMetadata.ProtoReflect.Descriptor instead. func (*MMSThumbnailMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{96} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{101} } func (x *MMSThumbnailMetadata) GetThumbnailDirectPath() string { @@ -14501,7 +15156,7 @@ type LocationMessage struct { func (x *LocationMessage) Reset() { *x = LocationMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[97] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14513,7 +15168,7 @@ func (x *LocationMessage) String() string { func (*LocationMessage) ProtoMessage() {} func (x *LocationMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[97] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14526,7 +15181,7 @@ func (x *LocationMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use LocationMessage.ProtoReflect.Descriptor instead. func (*LocationMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{97} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{102} } func (x *LocationMessage) GetDegreesLatitude() float64 { @@ -14624,7 +15279,7 @@ type ContactMessage struct { func (x *ContactMessage) Reset() { *x = ContactMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[98] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14636,7 +15291,7 @@ func (x *ContactMessage) String() string { func (*ContactMessage) ProtoMessage() {} func (x *ContactMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[98] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14649,7 +15304,7 @@ func (x *ContactMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ContactMessage.ProtoReflect.Descriptor instead. func (*ContactMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{98} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{103} } func (x *ContactMessage) GetDisplayName() string { @@ -14683,7 +15338,7 @@ type SenderKeyDistributionMessage struct { func (x *SenderKeyDistributionMessage) Reset() { *x = SenderKeyDistributionMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[99] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14695,7 +15350,7 @@ func (x *SenderKeyDistributionMessage) String() string { func (*SenderKeyDistributionMessage) ProtoMessage() {} func (x *SenderKeyDistributionMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[99] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14708,7 +15363,7 @@ func (x *SenderKeyDistributionMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SenderKeyDistributionMessage.ProtoReflect.Descriptor instead. func (*SenderKeyDistributionMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{99} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{104} } func (x *SenderKeyDistributionMessage) GetGroupID() string { @@ -14738,7 +15393,7 @@ type BotAvatarMetadata struct { func (x *BotAvatarMetadata) Reset() { *x = BotAvatarMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[100] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14750,7 +15405,7 @@ func (x *BotAvatarMetadata) String() string { func (*BotAvatarMetadata) ProtoMessage() {} func (x *BotAvatarMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[100] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14763,7 +15418,7 @@ func (x *BotAvatarMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotAvatarMetadata.ProtoReflect.Descriptor instead. func (*BotAvatarMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{100} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{105} } func (x *BotAvatarMetadata) GetSentiment() uint32 { @@ -14813,7 +15468,7 @@ type BotSuggestedPromptMetadata struct { func (x *BotSuggestedPromptMetadata) Reset() { *x = BotSuggestedPromptMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[101] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14825,7 +15480,7 @@ func (x *BotSuggestedPromptMetadata) String() string { func (*BotSuggestedPromptMetadata) ProtoMessage() {} func (x *BotSuggestedPromptMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[101] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14838,7 +15493,7 @@ func (x *BotSuggestedPromptMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotSuggestedPromptMetadata.ProtoReflect.Descriptor instead. func (*BotSuggestedPromptMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{101} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{106} } func (x *BotSuggestedPromptMetadata) GetSuggestedPrompts() []string { @@ -14878,7 +15533,7 @@ type BotPromptSuggestions struct { func (x *BotPromptSuggestions) Reset() { *x = BotPromptSuggestions{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[102] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14890,7 +15545,7 @@ func (x *BotPromptSuggestions) String() string { func (*BotPromptSuggestions) ProtoMessage() {} func (x *BotPromptSuggestions) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[102] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14903,7 +15558,7 @@ func (x *BotPromptSuggestions) ProtoReflect() protoreflect.Message { // Deprecated: Use BotPromptSuggestions.ProtoReflect.Descriptor instead. func (*BotPromptSuggestions) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{102} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{107} } func (x *BotPromptSuggestions) GetSuggestions() []*BotPromptSuggestion { @@ -14923,7 +15578,7 @@ type BotPromptSuggestion struct { func (x *BotPromptSuggestion) Reset() { *x = BotPromptSuggestion{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[103] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14935,7 +15590,7 @@ func (x *BotPromptSuggestion) String() string { func (*BotPromptSuggestion) ProtoMessage() {} func (x *BotPromptSuggestion) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[103] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14948,7 +15603,7 @@ func (x *BotPromptSuggestion) ProtoReflect() protoreflect.Message { // Deprecated: Use BotPromptSuggestion.ProtoReflect.Descriptor instead. func (*BotPromptSuggestion) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{103} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{108} } func (x *BotPromptSuggestion) GetPrompt() string { @@ -14976,7 +15631,7 @@ type BotLinkedAccountsMetadata struct { func (x *BotLinkedAccountsMetadata) Reset() { *x = BotLinkedAccountsMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[104] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14988,7 +15643,7 @@ func (x *BotLinkedAccountsMetadata) String() string { func (*BotLinkedAccountsMetadata) ProtoMessage() {} func (x *BotLinkedAccountsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[104] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15001,7 +15656,7 @@ func (x *BotLinkedAccountsMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotLinkedAccountsMetadata.ProtoReflect.Descriptor instead. func (*BotLinkedAccountsMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{104} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{109} } func (x *BotLinkedAccountsMetadata) GetAccounts() []*BotLinkedAccount { @@ -15036,7 +15691,7 @@ type BotMemoryMetadata struct { func (x *BotMemoryMetadata) Reset() { *x = BotMemoryMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[105] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15048,7 +15703,7 @@ func (x *BotMemoryMetadata) String() string { func (*BotMemoryMetadata) ProtoMessage() {} func (x *BotMemoryMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[105] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15061,7 +15716,7 @@ func (x *BotMemoryMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMemoryMetadata.ProtoReflect.Descriptor instead. func (*BotMemoryMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{105} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{110} } func (x *BotMemoryMetadata) GetAddedFacts() []*BotMemoryFact { @@ -15095,7 +15750,7 @@ type BotMemoryFact struct { func (x *BotMemoryFact) Reset() { *x = BotMemoryFact{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[106] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15107,7 +15762,7 @@ func (x *BotMemoryFact) String() string { func (*BotMemoryFact) ProtoMessage() {} func (x *BotMemoryFact) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[106] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15120,7 +15775,7 @@ func (x *BotMemoryFact) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMemoryFact.ProtoReflect.Descriptor instead. func (*BotMemoryFact) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{106} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{111} } func (x *BotMemoryFact) GetFact() string { @@ -15146,7 +15801,7 @@ type BotRenderingMetadata struct { func (x *BotRenderingMetadata) Reset() { *x = BotRenderingMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[107] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15158,7 +15813,7 @@ func (x *BotRenderingMetadata) String() string { func (*BotRenderingMetadata) ProtoMessage() {} func (x *BotRenderingMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[107] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15171,7 +15826,7 @@ func (x *BotRenderingMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotRenderingMetadata.ProtoReflect.Descriptor instead. func (*BotRenderingMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{107} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{112} } func (x *BotRenderingMetadata) GetKeywords() []*BotRenderingMetadata_Keyword { @@ -15192,7 +15847,7 @@ type BotMetricsMetadata struct { func (x *BotMetricsMetadata) Reset() { *x = BotMetricsMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[108] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15204,7 +15859,7 @@ func (x *BotMetricsMetadata) String() string { func (*BotMetricsMetadata) ProtoMessage() {} func (x *BotMetricsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[108] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15217,7 +15872,7 @@ func (x *BotMetricsMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMetricsMetadata.ProtoReflect.Descriptor instead. func (*BotMetricsMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{108} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{113} } func (x *BotMetricsMetadata) GetDestinationID() string { @@ -15251,7 +15906,7 @@ type BotSessionMetadata struct { func (x *BotSessionMetadata) Reset() { *x = BotSessionMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[109] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15263,7 +15918,7 @@ func (x *BotSessionMetadata) String() string { func (*BotSessionMetadata) ProtoMessage() {} func (x *BotSessionMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[109] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15276,7 +15931,7 @@ func (x *BotSessionMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotSessionMetadata.ProtoReflect.Descriptor instead. func (*BotSessionMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{109} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{114} } func (x *BotSessionMetadata) GetSessionID() string { @@ -15302,7 +15957,7 @@ type BotMemuMetadata struct { func (x *BotMemuMetadata) Reset() { *x = BotMemuMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[110] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15314,7 +15969,7 @@ func (x *BotMemuMetadata) String() string { func (*BotMemuMetadata) ProtoMessage() {} func (x *BotMemuMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[110] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15327,7 +15982,7 @@ func (x *BotMemuMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMemuMetadata.ProtoReflect.Descriptor instead. func (*BotMemuMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{110} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{115} } func (x *BotMemuMetadata) GetFaceImages() []*BotMediaMetadata { @@ -15337,6 +15992,58 @@ func (x *BotMemuMetadata) GetFaceImages() []*BotMediaMetadata { return nil } +type BotAgeCollectionMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + AgeCollectionEligible *bool `protobuf:"varint,1,opt,name=ageCollectionEligible" json:"ageCollectionEligible,omitempty"` + ShouldTriggerAgeCollectionOnClient *bool `protobuf:"varint,2,opt,name=shouldTriggerAgeCollectionOnClient" json:"shouldTriggerAgeCollectionOnClient,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotAgeCollectionMetadata) Reset() { + *x = BotAgeCollectionMetadata{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotAgeCollectionMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotAgeCollectionMetadata) ProtoMessage() {} + +func (x *BotAgeCollectionMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[116] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotAgeCollectionMetadata.ProtoReflect.Descriptor instead. +func (*BotAgeCollectionMetadata) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{116} +} + +func (x *BotAgeCollectionMetadata) GetAgeCollectionEligible() bool { + if x != nil && x.AgeCollectionEligible != nil { + return *x.AgeCollectionEligible + } + return false +} + +func (x *BotAgeCollectionMetadata) GetShouldTriggerAgeCollectionOnClient() bool { + if x != nil && x.ShouldTriggerAgeCollectionOnClient != nil { + return *x.ShouldTriggerAgeCollectionOnClient + } + return false +} + type BotMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` AvatarMetadata *BotAvatarMetadata `protobuf:"bytes,1,opt,name=avatarMetadata" json:"avatarMetadata,omitempty"` @@ -15359,13 +16066,17 @@ type BotMetadata struct { BotLinkedAccountsMetadata *BotLinkedAccountsMetadata `protobuf:"bytes,18,opt,name=botLinkedAccountsMetadata" json:"botLinkedAccountsMetadata,omitempty"` RichResponseSourcesMetadata *BotSourcesMetadata `protobuf:"bytes,19,opt,name=richResponseSourcesMetadata" json:"richResponseSourcesMetadata,omitempty"` AiConversationContext []byte `protobuf:"bytes,20,opt,name=aiConversationContext" json:"aiConversationContext,omitempty"` + BotPromotionMessageMetadata *BotPromotionMessageMetadata `protobuf:"bytes,21,opt,name=botPromotionMessageMetadata" json:"botPromotionMessageMetadata,omitempty"` + BotModeSelectionMetadata *BotModeSelectionMetadata `protobuf:"bytes,22,opt,name=botModeSelectionMetadata" json:"botModeSelectionMetadata,omitempty"` + BotQuotaMetadata *BotQuotaMetadata `protobuf:"bytes,23,opt,name=botQuotaMetadata" json:"botQuotaMetadata,omitempty"` + BotAgeCollectionMetadata *BotAgeCollectionMetadata `protobuf:"bytes,24,opt,name=botAgeCollectionMetadata" json:"botAgeCollectionMetadata,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BotMetadata) Reset() { *x = BotMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[111] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15377,7 +16088,7 @@ func (x *BotMetadata) String() string { func (*BotMetadata) ProtoMessage() {} func (x *BotMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[111] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15390,7 +16101,7 @@ func (x *BotMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMetadata.ProtoReflect.Descriptor instead. func (*BotMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{111} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{117} } func (x *BotMetadata) GetAvatarMetadata() *BotAvatarMetadata { @@ -15533,6 +16244,34 @@ func (x *BotMetadata) GetAiConversationContext() []byte { return nil } +func (x *BotMetadata) GetBotPromotionMessageMetadata() *BotPromotionMessageMetadata { + if x != nil { + return x.BotPromotionMessageMetadata + } + return nil +} + +func (x *BotMetadata) GetBotModeSelectionMetadata() *BotModeSelectionMetadata { + if x != nil { + return x.BotModeSelectionMetadata + } + return nil +} + +func (x *BotMetadata) GetBotQuotaMetadata() *BotQuotaMetadata { + if x != nil { + return x.BotQuotaMetadata + } + return nil +} + +func (x *BotMetadata) GetBotAgeCollectionMetadata() *BotAgeCollectionMetadata { + if x != nil { + return x.BotAgeCollectionMetadata + } + return nil +} + type DeviceListMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` SenderKeyHash []byte `protobuf:"bytes,1,opt,name=senderKeyHash" json:"senderKeyHash,omitempty"` @@ -15549,7 +16288,7 @@ type DeviceListMetadata struct { func (x *DeviceListMetadata) Reset() { *x = DeviceListMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[112] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15561,7 +16300,7 @@ func (x *DeviceListMetadata) String() string { func (*DeviceListMetadata) ProtoMessage() {} func (x *DeviceListMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[112] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15574,7 +16313,7 @@ func (x *DeviceListMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceListMetadata.ProtoReflect.Descriptor instead. func (*DeviceListMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{112} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{118} } func (x *DeviceListMetadata) GetSenderKeyHash() []byte { @@ -15643,7 +16382,7 @@ type EmbeddedMessage struct { func (x *EmbeddedMessage) Reset() { *x = EmbeddedMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[113] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15655,7 +16394,7 @@ func (x *EmbeddedMessage) String() string { func (*EmbeddedMessage) ProtoMessage() {} func (x *EmbeddedMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[113] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15668,7 +16407,7 @@ func (x *EmbeddedMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use EmbeddedMessage.ProtoReflect.Descriptor instead. func (*EmbeddedMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{113} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{119} } func (x *EmbeddedMessage) GetStanzaID() string { @@ -15704,7 +16443,7 @@ type EmbeddedMusic struct { func (x *EmbeddedMusic) Reset() { *x = EmbeddedMusic{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[114] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15716,7 +16455,7 @@ func (x *EmbeddedMusic) String() string { func (*EmbeddedMusic) ProtoMessage() {} func (x *EmbeddedMusic) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[114] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15729,7 +16468,7 @@ func (x *EmbeddedMusic) ProtoReflect() protoreflect.Message { // Deprecated: Use EmbeddedMusic.ProtoReflect.Descriptor instead. func (*EmbeddedMusic) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{114} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{120} } func (x *EmbeddedMusic) GetMusicContentMediaID() string { @@ -15822,7 +16561,7 @@ type EmbeddedContent struct { func (x *EmbeddedContent) Reset() { *x = EmbeddedContent{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[115] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15834,7 +16573,7 @@ func (x *EmbeddedContent) String() string { func (*EmbeddedContent) ProtoMessage() {} func (x *EmbeddedContent) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[115] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15847,7 +16586,7 @@ func (x *EmbeddedContent) ProtoReflect() protoreflect.Message { // Deprecated: Use EmbeddedContent.ProtoReflect.Descriptor instead. func (*EmbeddedContent) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{115} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{121} } func (x *EmbeddedContent) GetContent() isEmbeddedContent_Content { @@ -15901,7 +16640,7 @@ type TapLinkAction struct { func (x *TapLinkAction) Reset() { *x = TapLinkAction{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[116] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15913,7 +16652,7 @@ func (x *TapLinkAction) String() string { func (*TapLinkAction) ProtoMessage() {} func (x *TapLinkAction) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[116] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[122] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15926,7 +16665,7 @@ func (x *TapLinkAction) ProtoReflect() protoreflect.Message { // Deprecated: Use TapLinkAction.ProtoReflect.Descriptor instead. func (*TapLinkAction) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{116} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{122} } func (x *TapLinkAction) GetTitle() string { @@ -15955,7 +16694,7 @@ type Point struct { func (x *Point) Reset() { *x = Point{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[117] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15967,7 +16706,7 @@ func (x *Point) String() string { func (*Point) ProtoMessage() {} func (x *Point) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[117] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[123] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15980,7 +16719,7 @@ func (x *Point) ProtoReflect() protoreflect.Message { // Deprecated: Use Point.ProtoReflect.Descriptor instead. func (*Point) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{117} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{123} } func (x *Point) GetXDeprecated() int32 { @@ -16022,7 +16761,7 @@ type Location struct { func (x *Location) Reset() { *x = Location{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[118] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16034,7 +16773,7 @@ func (x *Location) String() string { func (*Location) ProtoMessage() {} func (x *Location) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[118] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[124] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16047,7 +16786,7 @@ func (x *Location) ProtoReflect() protoreflect.Message { // Deprecated: Use Location.ProtoReflect.Descriptor instead. func (*Location) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{118} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{124} } func (x *Location) GetDegreesLatitude() float64 { @@ -16086,7 +16825,7 @@ type TemplateButton struct { func (x *TemplateButton) Reset() { *x = TemplateButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[119] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16098,7 +16837,7 @@ func (x *TemplateButton) String() string { func (*TemplateButton) ProtoMessage() {} func (x *TemplateButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[119] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[125] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16111,7 +16850,7 @@ func (x *TemplateButton) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateButton.ProtoReflect.Descriptor instead. func (*TemplateButton) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{119} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{125} } func (x *TemplateButton) GetButton() isTemplateButton_Button { @@ -16188,7 +16927,7 @@ type Money struct { func (x *Money) Reset() { *x = Money{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[120] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16200,7 +16939,7 @@ func (x *Money) String() string { func (*Money) ProtoMessage() {} func (x *Money) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[120] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[126] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16213,7 +16952,7 @@ func (x *Money) ProtoReflect() protoreflect.Message { // Deprecated: Use Money.ProtoReflect.Descriptor instead. func (*Money) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{120} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{126} } func (x *Money) GetValue() int64 { @@ -16247,7 +16986,7 @@ type ActionLink struct { func (x *ActionLink) Reset() { *x = ActionLink{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[121] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16259,7 +16998,7 @@ func (x *ActionLink) String() string { func (*ActionLink) ProtoMessage() {} func (x *ActionLink) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[121] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[127] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16272,7 +17011,7 @@ func (x *ActionLink) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionLink.ProtoReflect.Descriptor instead. func (*ActionLink) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{121} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{127} } func (x *ActionLink) GetURL() string { @@ -16299,7 +17038,7 @@ type GroupMention struct { func (x *GroupMention) Reset() { *x = GroupMention{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[122] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16311,7 +17050,7 @@ func (x *GroupMention) String() string { func (*GroupMention) ProtoMessage() {} func (x *GroupMention) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[122] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[128] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16324,7 +17063,7 @@ func (x *GroupMention) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMention.ProtoReflect.Descriptor instead. func (*GroupMention) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{122} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{128} } func (x *GroupMention) GetGroupJID() string { @@ -16352,7 +17091,7 @@ type MessageSecretMessage struct { func (x *MessageSecretMessage) Reset() { *x = MessageSecretMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[123] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16364,7 +17103,7 @@ func (x *MessageSecretMessage) String() string { func (*MessageSecretMessage) ProtoMessage() {} func (x *MessageSecretMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[123] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[129] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16377,7 +17116,7 @@ func (x *MessageSecretMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageSecretMessage.ProtoReflect.Descriptor instead. func (*MessageSecretMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{123} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{129} } func (x *MessageSecretMessage) GetVersion() int32 { @@ -16412,7 +17151,7 @@ type MediaNotifyMessage struct { func (x *MediaNotifyMessage) Reset() { *x = MediaNotifyMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[124] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16424,7 +17163,7 @@ func (x *MediaNotifyMessage) String() string { func (*MediaNotifyMessage) ProtoMessage() {} func (x *MediaNotifyMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[124] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[130] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16437,7 +17176,7 @@ func (x *MediaNotifyMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaNotifyMessage.ProtoReflect.Descriptor instead. func (*MediaNotifyMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{124} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{130} } func (x *MediaNotifyMessage) GetExpressPathURL() string { @@ -16470,7 +17209,7 @@ type LIDMigrationMappingSyncMessage struct { func (x *LIDMigrationMappingSyncMessage) Reset() { *x = LIDMigrationMappingSyncMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[125] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16482,7 +17221,7 @@ func (x *LIDMigrationMappingSyncMessage) String() string { func (*LIDMigrationMappingSyncMessage) ProtoMessage() {} func (x *LIDMigrationMappingSyncMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[125] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[131] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16495,7 +17234,7 @@ func (x *LIDMigrationMappingSyncMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use LIDMigrationMappingSyncMessage.ProtoReflect.Descriptor instead. func (*LIDMigrationMappingSyncMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{125} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{131} } func (x *LIDMigrationMappingSyncMessage) GetEncodedMappingPayload() []byte { @@ -16514,7 +17253,7 @@ type UrlTrackingMap struct { func (x *UrlTrackingMap) Reset() { *x = UrlTrackingMap{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[126] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16526,7 +17265,7 @@ func (x *UrlTrackingMap) String() string { func (*UrlTrackingMap) ProtoMessage() {} func (x *UrlTrackingMap) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[126] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[132] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16539,7 +17278,7 @@ func (x *UrlTrackingMap) ProtoReflect() protoreflect.Message { // Deprecated: Use UrlTrackingMap.ProtoReflect.Descriptor instead. func (*UrlTrackingMap) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{126} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{132} } func (x *UrlTrackingMap) GetUrlTrackingMapElements() []*UrlTrackingMap_UrlTrackingMapElement { @@ -16560,7 +17299,7 @@ type AIQueryFanout struct { func (x *AIQueryFanout) Reset() { *x = AIQueryFanout{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[127] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16572,7 +17311,7 @@ func (x *AIQueryFanout) String() string { func (*AIQueryFanout) ProtoMessage() {} func (x *AIQueryFanout) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[127] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[133] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16585,26 +17324,78 @@ func (x *AIQueryFanout) ProtoReflect() protoreflect.Message { // Deprecated: Use AIQueryFanout.ProtoReflect.Descriptor instead. func (*AIQueryFanout) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{127} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{133} +} + +func (x *AIQueryFanout) GetMessageKey() *waCommon.MessageKey { + if x != nil { + return x.MessageKey + } + return nil +} + +func (x *AIQueryFanout) GetMessage() *Message { + if x != nil { + return x.Message + } + return nil +} + +func (x *AIQueryFanout) GetTimestamp() int64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +type MemberLabel struct { + state protoimpl.MessageState `protogen:"open.v1"` + Label *string `protobuf:"bytes,1,opt,name=label" json:"label,omitempty"` + LabelTimestamp *int64 `protobuf:"varint,2,opt,name=labelTimestamp" json:"labelTimestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MemberLabel) Reset() { + *x = MemberLabel{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MemberLabel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MemberLabel) ProtoMessage() {} + +func (x *MemberLabel) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[134] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (x *AIQueryFanout) GetMessageKey() *waCommon.MessageKey { - if x != nil { - return x.MessageKey - } - return nil +// Deprecated: Use MemberLabel.ProtoReflect.Descriptor instead. +func (*MemberLabel) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{134} } -func (x *AIQueryFanout) GetMessage() *Message { - if x != nil { - return x.Message +func (x *MemberLabel) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label } - return nil + return "" } -func (x *AIQueryFanout) GetTimestamp() int64 { - if x != nil && x.Timestamp != nil { - return *x.Timestamp +func (x *MemberLabel) GetLabelTimestamp() int64 { + if x != nil && x.LabelTimestamp != nil { + return *x.LabelTimestamp } return 0 } @@ -16623,7 +17414,7 @@ type StickerPackMessage_Sticker struct { func (x *StickerPackMessage_Sticker) Reset() { *x = StickerPackMessage_Sticker{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[128] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16635,7 +17426,7 @@ func (x *StickerPackMessage_Sticker) String() string { func (*StickerPackMessage_Sticker) ProtoMessage() {} func (x *StickerPackMessage_Sticker) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[128] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[135] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16703,7 +17494,7 @@ type CallLogMessage_CallParticipant struct { func (x *CallLogMessage_CallParticipant) Reset() { *x = CallLogMessage_CallParticipant{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[129] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16715,7 +17506,7 @@ func (x *CallLogMessage_CallParticipant) String() string { func (*CallLogMessage_CallParticipant) ProtoMessage() {} func (x *CallLogMessage_CallParticipant) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[129] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[136] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16755,7 +17546,7 @@ type PollCreationMessage_Option struct { func (x *PollCreationMessage_Option) Reset() { *x = PollCreationMessage_Option{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[130] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16767,7 +17558,7 @@ func (x *PollCreationMessage_Option) String() string { func (*PollCreationMessage_Option) ProtoMessage() {} func (x *PollCreationMessage_Option) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[130] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[137] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16809,7 +17600,7 @@ type ButtonsMessage_Button struct { func (x *ButtonsMessage_Button) Reset() { *x = ButtonsMessage_Button{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[131] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16821,7 +17612,7 @@ func (x *ButtonsMessage_Button) String() string { func (*ButtonsMessage_Button) ProtoMessage() {} func (x *ButtonsMessage_Button) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[131] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[138] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16875,7 +17666,7 @@ type ButtonsMessage_Button_NativeFlowInfo struct { func (x *ButtonsMessage_Button_NativeFlowInfo) Reset() { *x = ButtonsMessage_Button_NativeFlowInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[132] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16887,7 +17678,7 @@ func (x *ButtonsMessage_Button_NativeFlowInfo) String() string { func (*ButtonsMessage_Button_NativeFlowInfo) ProtoMessage() {} func (x *ButtonsMessage_Button_NativeFlowInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[132] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[139] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16926,7 +17717,7 @@ type ButtonsMessage_Button_ButtonText struct { func (x *ButtonsMessage_Button_ButtonText) Reset() { *x = ButtonsMessage_Button_ButtonText{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[133] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16938,7 +17729,7 @@ func (x *ButtonsMessage_Button_ButtonText) String() string { func (*ButtonsMessage_Button_ButtonText) ProtoMessage() {} func (x *ButtonsMessage_Button_ButtonText) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[133] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[140] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16971,7 +17762,7 @@ type InteractiveResponseMessage_Body struct { func (x *InteractiveResponseMessage_Body) Reset() { *x = InteractiveResponseMessage_Body{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[134] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16983,7 +17774,7 @@ func (x *InteractiveResponseMessage_Body) String() string { func (*InteractiveResponseMessage_Body) ProtoMessage() {} func (x *InteractiveResponseMessage_Body) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[134] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[141] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17024,7 +17815,7 @@ type InteractiveResponseMessage_NativeFlowResponseMessage struct { func (x *InteractiveResponseMessage_NativeFlowResponseMessage) Reset() { *x = InteractiveResponseMessage_NativeFlowResponseMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[135] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17036,7 +17827,7 @@ func (x *InteractiveResponseMessage_NativeFlowResponseMessage) String() string { func (*InteractiveResponseMessage_NativeFlowResponseMessage) ProtoMessage() {} func (x *InteractiveResponseMessage_NativeFlowResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[135] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[142] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17084,7 +17875,7 @@ type InteractiveMessage_ShopMessage struct { func (x *InteractiveMessage_ShopMessage) Reset() { *x = InteractiveMessage_ShopMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[136] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17096,7 +17887,7 @@ func (x *InteractiveMessage_ShopMessage) String() string { func (*InteractiveMessage_ShopMessage) ProtoMessage() {} func (x *InteractiveMessage_ShopMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[136] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[143] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17143,7 +17934,7 @@ type InteractiveMessage_CarouselMessage struct { func (x *InteractiveMessage_CarouselMessage) Reset() { *x = InteractiveMessage_CarouselMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[137] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17155,7 +17946,7 @@ func (x *InteractiveMessage_CarouselMessage) String() string { func (*InteractiveMessage_CarouselMessage) ProtoMessage() {} func (x *InteractiveMessage_CarouselMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[137] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[144] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17196,7 +17987,7 @@ type InteractiveMessage_NativeFlowMessage struct { func (x *InteractiveMessage_NativeFlowMessage) Reset() { *x = InteractiveMessage_NativeFlowMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[138] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17208,7 +17999,7 @@ func (x *InteractiveMessage_NativeFlowMessage) String() string { func (*InteractiveMessage_NativeFlowMessage) ProtoMessage() {} func (x *InteractiveMessage_NativeFlowMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[138] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[145] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17256,7 +18047,7 @@ type InteractiveMessage_CollectionMessage struct { func (x *InteractiveMessage_CollectionMessage) Reset() { *x = InteractiveMessage_CollectionMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[139] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17268,7 +18059,7 @@ func (x *InteractiveMessage_CollectionMessage) String() string { func (*InteractiveMessage_CollectionMessage) ProtoMessage() {} func (x *InteractiveMessage_CollectionMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[139] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[146] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17314,7 +18105,7 @@ type InteractiveMessage_Footer struct { func (x *InteractiveMessage_Footer) Reset() { *x = InteractiveMessage_Footer{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[140] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17326,7 +18117,7 @@ func (x *InteractiveMessage_Footer) String() string { func (*InteractiveMessage_Footer) ProtoMessage() {} func (x *InteractiveMessage_Footer) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[140] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[147] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17358,7 +18149,7 @@ type InteractiveMessage_Body struct { func (x *InteractiveMessage_Body) Reset() { *x = InteractiveMessage_Body{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[141] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17370,7 +18161,7 @@ func (x *InteractiveMessage_Body) String() string { func (*InteractiveMessage_Body) ProtoMessage() {} func (x *InteractiveMessage_Body) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[141] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[148] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17413,7 +18204,7 @@ type InteractiveMessage_Header struct { func (x *InteractiveMessage_Header) Reset() { *x = InteractiveMessage_Header{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[142] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17425,7 +18216,7 @@ func (x *InteractiveMessage_Header) String() string { func (*InteractiveMessage_Header) ProtoMessage() {} func (x *InteractiveMessage_Header) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[142] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[149] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17573,7 +18364,7 @@ type InteractiveMessage_NativeFlowMessage_NativeFlowButton struct { func (x *InteractiveMessage_NativeFlowMessage_NativeFlowButton) Reset() { *x = InteractiveMessage_NativeFlowMessage_NativeFlowButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[143] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17585,7 +18376,7 @@ func (x *InteractiveMessage_NativeFlowMessage_NativeFlowButton) String() string func (*InteractiveMessage_NativeFlowMessage_NativeFlowButton) ProtoMessage() {} func (x *InteractiveMessage_NativeFlowMessage_NativeFlowButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[143] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[150] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17624,7 +18415,7 @@ type ListResponseMessage_SingleSelectReply struct { func (x *ListResponseMessage_SingleSelectReply) Reset() { *x = ListResponseMessage_SingleSelectReply{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[144] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17636,7 +18427,7 @@ func (x *ListResponseMessage_SingleSelectReply) String() string { func (*ListResponseMessage_SingleSelectReply) ProtoMessage() {} func (x *ListResponseMessage_SingleSelectReply) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[144] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[151] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17670,7 +18461,7 @@ type ListMessage_ProductListInfo struct { func (x *ListMessage_ProductListInfo) Reset() { *x = ListMessage_ProductListInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[145] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17682,7 +18473,7 @@ func (x *ListMessage_ProductListInfo) String() string { func (*ListMessage_ProductListInfo) ProtoMessage() {} func (x *ListMessage_ProductListInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[145] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[152] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17729,7 +18520,7 @@ type ListMessage_ProductListHeaderImage struct { func (x *ListMessage_ProductListHeaderImage) Reset() { *x = ListMessage_ProductListHeaderImage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[146] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17741,7 +18532,7 @@ func (x *ListMessage_ProductListHeaderImage) String() string { func (*ListMessage_ProductListHeaderImage) ProtoMessage() {} func (x *ListMessage_ProductListHeaderImage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[146] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[153] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17781,7 +18572,7 @@ type ListMessage_ProductSection struct { func (x *ListMessage_ProductSection) Reset() { *x = ListMessage_ProductSection{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[147] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17793,7 +18584,7 @@ func (x *ListMessage_ProductSection) String() string { func (*ListMessage_ProductSection) ProtoMessage() {} func (x *ListMessage_ProductSection) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[147] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[154] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17832,7 +18623,7 @@ type ListMessage_Product struct { func (x *ListMessage_Product) Reset() { *x = ListMessage_Product{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[148] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17844,7 +18635,7 @@ func (x *ListMessage_Product) String() string { func (*ListMessage_Product) ProtoMessage() {} func (x *ListMessage_Product) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[148] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[155] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17877,7 +18668,7 @@ type ListMessage_Section struct { func (x *ListMessage_Section) Reset() { *x = ListMessage_Section{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[149] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17889,7 +18680,7 @@ func (x *ListMessage_Section) String() string { func (*ListMessage_Section) ProtoMessage() {} func (x *ListMessage_Section) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[149] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[156] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17930,7 +18721,7 @@ type ListMessage_Row struct { func (x *ListMessage_Row) Reset() { *x = ListMessage_Row{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[150] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17942,7 +18733,7 @@ func (x *ListMessage_Row) String() string { func (*ListMessage_Row) ProtoMessage() {} func (x *ListMessage_Row) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[150] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[157] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17993,7 +18784,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter struct { func (x *HighlyStructuredMessage_HSMLocalizableParameter) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[151] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18005,7 +18796,7 @@ func (x *HighlyStructuredMessage_HSMLocalizableParameter) String() string { func (*HighlyStructuredMessage_HSMLocalizableParameter) ProtoMessage() {} func (x *HighlyStructuredMessage_HSMLocalizableParameter) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[151] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[158] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18084,7 +18875,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime struct { func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[152] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18096,7 +18887,7 @@ func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime) String() s func (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime) ProtoMessage() {} func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[152] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[159] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18165,7 +18956,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency struct { func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[153] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18177,7 +18968,7 @@ func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency) String() s func (*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency) ProtoMessage() {} func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[153] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[160] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18222,7 +19013,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComp func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[154] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18235,7 +19026,7 @@ func (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeCo } func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[154] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[161] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18309,7 +19100,7 @@ type HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnix func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch) Reset() { *x = HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[155] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18322,7 +19113,7 @@ func (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUn } func (x *HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[155] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[162] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18354,13 +19145,14 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult struct { WaffleNonceFetchRequestResponse *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse `protobuf:"bytes,5,opt,name=waffleNonceFetchRequestResponse" json:"waffleNonceFetchRequestResponse,omitempty"` FullHistorySyncOnDemandRequestResponse *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse `protobuf:"bytes,6,opt,name=fullHistorySyncOnDemandRequestResponse" json:"fullHistorySyncOnDemandRequestResponse,omitempty"` CompanionMetaNonceFetchRequestResponse *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse `protobuf:"bytes,7,opt,name=companionMetaNonceFetchRequestResponse" json:"companionMetaNonceFetchRequestResponse,omitempty"` + SyncdSnapshotFatalRecoveryResponse *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse `protobuf:"bytes,8,opt,name=syncdSnapshotFatalRecoveryResponse" json:"syncdSnapshotFatalRecoveryResponse,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[156] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18372,7 +19164,7 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult) String func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult) ProtoMessage() {} func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[156] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[163] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18437,6 +19229,66 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult) GetCom return nil } +func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult) GetSyncdSnapshotFatalRecoveryResponse() *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse { + if x != nil { + return x.SyncdSnapshotFatalRecoveryResponse + } + return nil +} + +type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + CollectionSnapshot []byte `protobuf:"bytes,1,opt,name=collectionSnapshot" json:"collectionSnapshot,omitempty"` + IsCompressed *bool `protobuf:"varint,2,opt,name=isCompressed" json:"isCompressed,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse) Reset() { + *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[164] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse) ProtoMessage() { +} + +func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[164] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse.ProtoReflect.Descriptor instead. +func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 0} +} + +func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse) GetCollectionSnapshot() []byte { + if x != nil { + return x.CollectionSnapshot + } + return nil +} + +func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse) GetIsCompressed() bool { + if x != nil && x.IsCompressed != nil { + return *x.IsCompressed + } + return false +} + type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Nonce *string `protobuf:"bytes,1,opt,name=nonce" json:"nonce,omitempty"` @@ -18446,7 +19298,7 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMe func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[157] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18459,7 +19311,7 @@ func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_Companion } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[157] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[165] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18472,7 +19324,7 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_Compani // Deprecated: Use PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 1} } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse) GetNonce() string { @@ -18492,7 +19344,7 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonce func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[158] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18505,7 +19357,7 @@ func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNon } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[158] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[166] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18518,7 +19370,7 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleN // Deprecated: Use PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 2} } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse) GetNonce() string { @@ -18545,7 +19397,7 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistory func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[159] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18558,7 +19410,7 @@ func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHisto } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[159] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[167] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18571,7 +19423,7 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHis // Deprecated: Use PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 2} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 3} } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse) GetRequestMetadata() *FullHistorySyncOnDemandRequestMetadata { @@ -18597,7 +19449,7 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_Placeholder func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[160] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18610,7 +19462,7 @@ func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_Placehold } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[160] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[168] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18623,7 +19475,7 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_Placeho // Deprecated: Use PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 3} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 4} } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse) GetWebMessageInfoBytes() []byte { @@ -18648,7 +19500,7 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreview func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[161] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18661,7 +19513,7 @@ func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPrevi } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[161] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[169] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18674,7 +19526,7 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPre // Deprecated: Use PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 4} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 5} } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse) GetURL() string { @@ -18741,7 +19593,7 @@ type PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreview func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail) Reset() { *x = PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[162] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18754,7 +19606,7 @@ func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPrevi } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[162] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[170] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18767,7 +19619,7 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPre // Deprecated: Use PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 4, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{20, 0, 5, 0} } func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail) GetDirectPath() string { @@ -18819,6 +19671,58 @@ func (x *PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPre return 0 } +type CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent struct { + state protoimpl.MessageState `protogen:"open.v1"` + HandoffNotificationText *string `protobuf:"bytes,1,opt,name=handoffNotificationText" json:"handoffNotificationText,omitempty"` + ExtraJSON *string `protobuf:"bytes,2,opt,name=extraJSON" json:"extraJSON,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent) Reset() { + *x = CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[171] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent) ProtoMessage() {} + +func (x *CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[171] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent.ProtoReflect.Descriptor instead. +func (*CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{24, 0} +} + +func (x *CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent) GetHandoffNotificationText() string { + if x != nil && x.HandoffNotificationText != nil { + return *x.HandoffNotificationText + } + return "" +} + +func (x *CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent) GetExtraJSON() string { + if x != nil && x.ExtraJSON != nil { + return *x.ExtraJSON + } + return "" +} + type PaymentLinkMetadata_PaymentLinkHeader struct { state protoimpl.MessageState `protogen:"open.v1"` HeaderType *PaymentLinkMetadata_PaymentLinkHeader_PaymentLinkHeaderType `protobuf:"varint,1,opt,name=headerType,enum=WAWebProtobufsE2E.PaymentLinkMetadata_PaymentLinkHeader_PaymentLinkHeaderType" json:"headerType,omitempty"` @@ -18828,7 +19732,7 @@ type PaymentLinkMetadata_PaymentLinkHeader struct { func (x *PaymentLinkMetadata_PaymentLinkHeader) Reset() { *x = PaymentLinkMetadata_PaymentLinkHeader{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[163] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18840,7 +19744,7 @@ func (x *PaymentLinkMetadata_PaymentLinkHeader) String() string { func (*PaymentLinkMetadata_PaymentLinkHeader) ProtoMessage() {} func (x *PaymentLinkMetadata_PaymentLinkHeader) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[163] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[172] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18872,7 +19776,7 @@ type PaymentLinkMetadata_PaymentLinkButton struct { func (x *PaymentLinkMetadata_PaymentLinkButton) Reset() { *x = PaymentLinkMetadata_PaymentLinkButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[164] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18884,7 +19788,7 @@ func (x *PaymentLinkMetadata_PaymentLinkButton) String() string { func (*PaymentLinkMetadata_PaymentLinkButton) ProtoMessage() {} func (x *PaymentLinkMetadata_PaymentLinkButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[164] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[173] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18920,7 +19824,7 @@ type ContextInfo_ForwardedNewsletterMessageInfo struct { func (x *ContextInfo_ForwardedNewsletterMessageInfo) Reset() { *x = ContextInfo_ForwardedNewsletterMessageInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[165] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18932,7 +19836,7 @@ func (x *ContextInfo_ForwardedNewsletterMessageInfo) String() string { func (*ContextInfo_ForwardedNewsletterMessageInfo) ProtoMessage() {} func (x *ContextInfo_ForwardedNewsletterMessageInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[165] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[174] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19009,13 +19913,14 @@ type ContextInfo_ExternalAdReplyInfo struct { OriginalImageURL *string `protobuf:"bytes,22,opt,name=originalImageURL" json:"originalImageURL,omitempty"` AutomatedGreetingMessageCtaType *string `protobuf:"bytes,23,opt,name=automatedGreetingMessageCtaType" json:"automatedGreetingMessageCtaType,omitempty"` WtwaAdFormat *bool `protobuf:"varint,24,opt,name=wtwaAdFormat" json:"wtwaAdFormat,omitempty"` + AdType *ContextInfo_ExternalAdReplyInfo_AdType `protobuf:"varint,25,opt,name=adType,enum=WAWebProtobufsE2E.ContextInfo_ExternalAdReplyInfo_AdType" json:"adType,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ContextInfo_ExternalAdReplyInfo) Reset() { *x = ContextInfo_ExternalAdReplyInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[166] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19027,7 +19932,7 @@ func (x *ContextInfo_ExternalAdReplyInfo) String() string { func (*ContextInfo_ExternalAdReplyInfo) ProtoMessage() {} func (x *ContextInfo_ExternalAdReplyInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[166] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[175] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19211,6 +20116,13 @@ func (x *ContextInfo_ExternalAdReplyInfo) GetWtwaAdFormat() bool { return false } +func (x *ContextInfo_ExternalAdReplyInfo) GetAdType() ContextInfo_ExternalAdReplyInfo_AdType { + if x != nil && x.AdType != nil { + return *x.AdType + } + return ContextInfo_ExternalAdReplyInfo_CTWA +} + type ContextInfo_AdReplyInfo struct { state protoimpl.MessageState `protogen:"open.v1"` AdvertiserName *string `protobuf:"bytes,1,opt,name=advertiserName" json:"advertiserName,omitempty"` @@ -19223,7 +20135,7 @@ type ContextInfo_AdReplyInfo struct { func (x *ContextInfo_AdReplyInfo) Reset() { *x = ContextInfo_AdReplyInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[167] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19235,7 +20147,7 @@ func (x *ContextInfo_AdReplyInfo) String() string { func (*ContextInfo_AdReplyInfo) ProtoMessage() {} func (x *ContextInfo_AdReplyInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[167] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[176] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19291,7 +20203,7 @@ type ContextInfo_FeatureEligibilities struct { func (x *ContextInfo_FeatureEligibilities) Reset() { *x = ContextInfo_FeatureEligibilities{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[168] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19303,7 +20215,7 @@ func (x *ContextInfo_FeatureEligibilities) String() string { func (*ContextInfo_FeatureEligibilities) ProtoMessage() {} func (x *ContextInfo_FeatureEligibilities) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[168] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[177] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19358,7 +20270,7 @@ type ContextInfo_DataSharingContext struct { func (x *ContextInfo_DataSharingContext) Reset() { *x = ContextInfo_DataSharingContext{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[169] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19370,7 +20282,7 @@ func (x *ContextInfo_DataSharingContext) String() string { func (*ContextInfo_DataSharingContext) ProtoMessage() {} func (x *ContextInfo_DataSharingContext) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[169] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[178] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19418,7 +20330,7 @@ type ContextInfo_ForwardedAIBotMessageInfo struct { func (x *ContextInfo_ForwardedAIBotMessageInfo) Reset() { *x = ContextInfo_ForwardedAIBotMessageInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[170] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19430,7 +20342,7 @@ func (x *ContextInfo_ForwardedAIBotMessageInfo) String() string { func (*ContextInfo_ForwardedAIBotMessageInfo) ProtoMessage() {} func (x *ContextInfo_ForwardedAIBotMessageInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[170] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[179] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19477,7 +20389,7 @@ type ContextInfo_UTMInfo struct { func (x *ContextInfo_UTMInfo) Reset() { *x = ContextInfo_UTMInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[171] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19489,7 +20401,7 @@ func (x *ContextInfo_UTMInfo) String() string { func (*ContextInfo_UTMInfo) ProtoMessage() {} func (x *ContextInfo_UTMInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[171] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[180] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19528,7 +20440,7 @@ type ContextInfo_BusinessMessageForwardInfo struct { func (x *ContextInfo_BusinessMessageForwardInfo) Reset() { *x = ContextInfo_BusinessMessageForwardInfo{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[172] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19540,7 +20452,7 @@ func (x *ContextInfo_BusinessMessageForwardInfo) String() string { func (*ContextInfo_BusinessMessageForwardInfo) ProtoMessage() {} func (x *ContextInfo_BusinessMessageForwardInfo) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[172] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[181] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19576,7 +20488,7 @@ type ContextInfo_DataSharingContext_Parameters struct { func (x *ContextInfo_DataSharingContext_Parameters) Reset() { *x = ContextInfo_DataSharingContext_Parameters{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[173] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19588,7 +20500,7 @@ func (x *ContextInfo_DataSharingContext_Parameters) String() string { func (*ContextInfo_DataSharingContext_Parameters) ProtoMessage() {} func (x *ContextInfo_DataSharingContext_Parameters) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[173] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[182] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19649,7 +20561,7 @@ type AIRichResponseMessage_AIRichResponseContentItemsMetadata struct { func (x *AIRichResponseMessage_AIRichResponseContentItemsMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseContentItemsMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[174] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19661,7 +20573,7 @@ func (x *AIRichResponseMessage_AIRichResponseContentItemsMetadata) String() stri func (*AIRichResponseMessage_AIRichResponseContentItemsMetadata) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseContentItemsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[174] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[183] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19703,7 +20615,7 @@ type AIRichResponseMessage_AIRichResponseDynamicMetadata struct { func (x *AIRichResponseMessage_AIRichResponseDynamicMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseDynamicMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[175] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19715,7 +20627,7 @@ func (x *AIRichResponseMessage_AIRichResponseDynamicMetadata) String() string { func (*AIRichResponseMessage_AIRichResponseDynamicMetadata) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseDynamicMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[175] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[184] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19769,7 +20681,7 @@ type AIRichResponseMessage_AIRichResponseCodeMetadata struct { func (x *AIRichResponseMessage_AIRichResponseCodeMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseCodeMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[176] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19781,7 +20693,7 @@ func (x *AIRichResponseMessage_AIRichResponseCodeMetadata) String() string { func (*AIRichResponseMessage_AIRichResponseCodeMetadata) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseCodeMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[176] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[185] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19823,7 +20735,7 @@ type AIRichResponseMessage_AIRichResponseInlineImageMetadata struct { func (x *AIRichResponseMessage_AIRichResponseInlineImageMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseInlineImageMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[177] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19835,7 +20747,7 @@ func (x *AIRichResponseMessage_AIRichResponseInlineImageMetadata) String() strin func (*AIRichResponseMessage_AIRichResponseInlineImageMetadata) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseInlineImageMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[177] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[186] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19897,7 +20809,7 @@ type AIRichResponseMessage_AIRichResponseSubMessage struct { func (x *AIRichResponseMessage_AIRichResponseSubMessage) Reset() { *x = AIRichResponseMessage_AIRichResponseSubMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[178] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19909,7 +20821,7 @@ func (x *AIRichResponseMessage_AIRichResponseSubMessage) String() string { func (*AIRichResponseMessage_AIRichResponseSubMessage) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseSubMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[178] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[187] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20009,7 +20921,7 @@ type AIRichResponseMessage_AIRichResponseMapMetadata struct { func (x *AIRichResponseMessage_AIRichResponseMapMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseMapMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[179] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20021,7 +20933,7 @@ func (x *AIRichResponseMessage_AIRichResponseMapMetadata) String() string { func (*AIRichResponseMessage_AIRichResponseMapMetadata) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseMapMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[179] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[188] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20089,7 +21001,7 @@ type AIRichResponseMessage_AIRichResponseLatexMetadata struct { func (x *AIRichResponseMessage_AIRichResponseLatexMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseLatexMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[180] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20101,7 +21013,7 @@ func (x *AIRichResponseMessage_AIRichResponseLatexMetadata) String() string { func (*AIRichResponseMessage_AIRichResponseLatexMetadata) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseLatexMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[180] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[189] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20131,28 +21043,28 @@ func (x *AIRichResponseMessage_AIRichResponseLatexMetadata) GetExpressions() []* return nil } -type AIRichResponseMessage_AIRichResponseAbstractData struct { +type AIRichResponseMessage_AIRichResponseUnifiedResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *AIRichResponseMessage_AIRichResponseAbstractData) Reset() { - *x = AIRichResponseMessage_AIRichResponseAbstractData{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[181] +func (x *AIRichResponseMessage_AIRichResponseUnifiedResponse) Reset() { + *x = AIRichResponseMessage_AIRichResponseUnifiedResponse{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *AIRichResponseMessage_AIRichResponseAbstractData) String() string { +func (x *AIRichResponseMessage_AIRichResponseUnifiedResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AIRichResponseMessage_AIRichResponseAbstractData) ProtoMessage() {} +func (*AIRichResponseMessage_AIRichResponseUnifiedResponse) ProtoMessage() {} -func (x *AIRichResponseMessage_AIRichResponseAbstractData) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[181] +func (x *AIRichResponseMessage_AIRichResponseUnifiedResponse) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[190] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20163,12 +21075,12 @@ func (x *AIRichResponseMessage_AIRichResponseAbstractData) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use AIRichResponseMessage_AIRichResponseAbstractData.ProtoReflect.Descriptor instead. -func (*AIRichResponseMessage_AIRichResponseAbstractData) Descriptor() ([]byte, []int) { +// Deprecated: Use AIRichResponseMessage_AIRichResponseUnifiedResponse.ProtoReflect.Descriptor instead. +func (*AIRichResponseMessage_AIRichResponseUnifiedResponse) Descriptor() ([]byte, []int) { return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{35, 7} } -func (x *AIRichResponseMessage_AIRichResponseAbstractData) GetData() []byte { +func (x *AIRichResponseMessage_AIRichResponseUnifiedResponse) GetData() []byte { if x != nil { return x.Data } @@ -20184,7 +21096,7 @@ type AIRichResponseMessage_AIRichResponseTableMetadata struct { func (x *AIRichResponseMessage_AIRichResponseTableMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseTableMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[182] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20196,7 +21108,7 @@ func (x *AIRichResponseMessage_AIRichResponseTableMetadata) String() string { func (*AIRichResponseMessage_AIRichResponseTableMetadata) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseTableMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[182] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[191] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20229,7 +21141,7 @@ type AIRichResponseMessage_AIRichResponseGridImageMetadata struct { func (x *AIRichResponseMessage_AIRichResponseGridImageMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseGridImageMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[183] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20241,7 +21153,7 @@ func (x *AIRichResponseMessage_AIRichResponseGridImageMetadata) String() string func (*AIRichResponseMessage_AIRichResponseGridImageMetadata) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseGridImageMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[183] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[192] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20282,7 +21194,7 @@ type AIRichResponseMessage_AIRichResponseImageURL struct { func (x *AIRichResponseMessage_AIRichResponseImageURL) Reset() { *x = AIRichResponseMessage_AIRichResponseImageURL{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[184] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20294,7 +21206,7 @@ func (x *AIRichResponseMessage_AIRichResponseImageURL) String() string { func (*AIRichResponseMessage_AIRichResponseImageURL) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseImageURL) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[184] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[193] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20343,7 +21255,7 @@ type AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseCont func (x *AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata) Reset() { *x = AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[185] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20356,7 +21268,7 @@ func (*AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseCo } func (x *AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[185] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[194] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20411,7 +21323,7 @@ type AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseReel func (x *AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseReelItem) Reset() { *x = AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseReelItem{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[186] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20424,7 +21336,7 @@ func (*AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseRe } func (x *AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseReelItem) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[186] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[195] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20478,7 +21390,7 @@ type AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeBlock st func (x *AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeBlock) Reset() { *x = AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeBlock{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[187] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20490,7 +21402,7 @@ func (x *AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeBloc func (*AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeBlock) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeBlock) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[187] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[196] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20533,7 +21445,7 @@ type AIRichResponseMessage_AIRichResponseMapMetadata_AIRichResponseMapAnnotation func (x *AIRichResponseMessage_AIRichResponseMapMetadata_AIRichResponseMapAnnotation) Reset() { *x = AIRichResponseMessage_AIRichResponseMapMetadata_AIRichResponseMapAnnotation{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[188] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20545,7 +21457,7 @@ func (x *AIRichResponseMessage_AIRichResponseMapMetadata_AIRichResponseMapAnnota func (*AIRichResponseMessage_AIRichResponseMapMetadata_AIRichResponseMapAnnotation) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseMapMetadata_AIRichResponseMapAnnotation) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[188] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[197] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20613,7 +21525,7 @@ type AIRichResponseMessage_AIRichResponseLatexMetadata_AIRichResponseLatexExpres func (x *AIRichResponseMessage_AIRichResponseLatexMetadata_AIRichResponseLatexExpression) Reset() { *x = AIRichResponseMessage_AIRichResponseLatexMetadata_AIRichResponseLatexExpression{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[189] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20626,7 +21538,7 @@ func (*AIRichResponseMessage_AIRichResponseLatexMetadata_AIRichResponseLatexExpr } func (x *AIRichResponseMessage_AIRichResponseLatexMetadata_AIRichResponseLatexExpression) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[189] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[198] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20715,7 +21627,7 @@ type AIRichResponseMessage_AIRichResponseTableMetadata_AIRichResponseTableRow st func (x *AIRichResponseMessage_AIRichResponseTableMetadata_AIRichResponseTableRow) Reset() { *x = AIRichResponseMessage_AIRichResponseTableMetadata_AIRichResponseTableRow{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[190] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20727,7 +21639,7 @@ func (x *AIRichResponseMessage_AIRichResponseTableMetadata_AIRichResponseTableRo func (*AIRichResponseMessage_AIRichResponseTableMetadata_AIRichResponseTableRow) ProtoMessage() {} func (x *AIRichResponseMessage_AIRichResponseTableMetadata_AIRichResponseTableRow) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[190] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[199] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20772,7 +21684,7 @@ type BotProgressIndicatorMetadata_BotPlanningStepMetadata struct { func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) Reset() { *x = BotProgressIndicatorMetadata_BotPlanningStepMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[191] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20784,7 +21696,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) String() string { func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata) ProtoMessage() {} func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[191] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[200] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20797,7 +21709,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) ProtoReflect() pr // Deprecated: Use BotProgressIndicatorMetadata_BotPlanningStepMetadata.ProtoReflect.Descriptor instead. func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40, 0} } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) GetStatusTitle() string { @@ -20860,7 +21772,7 @@ type BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourc func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata) Reset() { *x = BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[192] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20873,7 +21785,7 @@ func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSou } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[192] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[201] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20886,7 +21798,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchS // Deprecated: Use BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata.ProtoReflect.Descriptor instead. func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 0, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40, 0, 0} } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata) GetSourceTitle() string { @@ -20921,7 +21833,7 @@ type BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSection func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata) Reset() { *x = BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[193] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20934,7 +21846,7 @@ func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSecti } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[193] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[202] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20947,7 +21859,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSec // Deprecated: Use BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata.ProtoReflect.Descriptor instead. func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 0, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40, 0, 1} } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata) GetSectionTitle() string { @@ -20983,7 +21895,7 @@ type BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourc func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata) Reset() { *x = BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[194] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20996,7 +21908,7 @@ func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSou } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[194] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[203] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21009,7 +21921,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchS // Deprecated: Use BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata.ProtoReflect.Descriptor instead. func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{39, 0, 2} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{40, 0, 2} } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata) GetTitle() string { @@ -21040,6 +21952,66 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchS return "" } +type BotQuotaMetadata_BotFeatureQuotaMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + FeatureType *BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType `protobuf:"varint,1,opt,name=featureType,enum=WAWebProtobufsE2E.BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType" json:"featureType,omitempty"` + RemainingQuota *uint32 `protobuf:"varint,2,opt,name=remainingQuota" json:"remainingQuota,omitempty"` + ExpirationTimestamp *uint64 `protobuf:"varint,3,opt,name=expirationTimestamp" json:"expirationTimestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) Reset() { + *x = BotQuotaMetadata_BotFeatureQuotaMetadata{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[204] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotQuotaMetadata_BotFeatureQuotaMetadata) ProtoMessage() {} + +func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[204] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotQuotaMetadata_BotFeatureQuotaMetadata.ProtoReflect.Descriptor instead. +func (*BotQuotaMetadata_BotFeatureQuotaMetadata) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{43, 0} +} + +func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) GetFeatureType() BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType { + if x != nil && x.FeatureType != nil { + return *x.FeatureType + } + return BotQuotaMetadata_BotFeatureQuotaMetadata_UNKNOWN_FEATURE +} + +func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) GetRemainingQuota() uint32 { + if x != nil && x.RemainingQuota != nil { + return *x.RemainingQuota + } + return 0 +} + +func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) GetExpirationTimestamp() uint64 { + if x != nil && x.ExpirationTimestamp != nil { + return *x.ExpirationTimestamp + } + return 0 +} + type BotSourcesMetadata_BotSourceItem struct { state protoimpl.MessageState `protogen:"open.v1"` Provider *BotSourcesMetadata_BotSourceItem_SourceProvider `protobuf:"varint,1,opt,name=provider,enum=WAWebProtobufsE2E.BotSourcesMetadata_BotSourceItem_SourceProvider" json:"provider,omitempty"` @@ -21054,7 +22026,7 @@ type BotSourcesMetadata_BotSourceItem struct { func (x *BotSourcesMetadata_BotSourceItem) Reset() { *x = BotSourcesMetadata_BotSourceItem{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[195] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21066,7 +22038,7 @@ func (x *BotSourcesMetadata_BotSourceItem) String() string { func (*BotSourcesMetadata_BotSourceItem) ProtoMessage() {} func (x *BotSourcesMetadata_BotSourceItem) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[195] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[205] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21079,7 +22051,7 @@ func (x *BotSourcesMetadata_BotSourceItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BotSourcesMetadata_BotSourceItem.ProtoReflect.Descriptor instead. func (*BotSourcesMetadata_BotSourceItem) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{42, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{45, 0} } func (x *BotSourcesMetadata_BotSourceItem) GetProvider() BotSourcesMetadata_BotSourceItem_SourceProvider { @@ -21136,7 +22108,7 @@ type HydratedTemplateButton_HydratedURLButton struct { func (x *HydratedTemplateButton_HydratedURLButton) Reset() { *x = HydratedTemplateButton_HydratedURLButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[196] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21148,7 +22120,7 @@ func (x *HydratedTemplateButton_HydratedURLButton) String() string { func (*HydratedTemplateButton_HydratedURLButton) ProtoMessage() {} func (x *HydratedTemplateButton_HydratedURLButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[196] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[206] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21161,7 +22133,7 @@ func (x *HydratedTemplateButton_HydratedURLButton) ProtoReflect() protoreflect.M // Deprecated: Use HydratedTemplateButton_HydratedURLButton.ProtoReflect.Descriptor instead. func (*HydratedTemplateButton_HydratedURLButton) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{46, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{49, 0} } func (x *HydratedTemplateButton_HydratedURLButton) GetDisplayText() string { @@ -21202,7 +22174,7 @@ type HydratedTemplateButton_HydratedCallButton struct { func (x *HydratedTemplateButton_HydratedCallButton) Reset() { *x = HydratedTemplateButton_HydratedCallButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[197] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21214,7 +22186,7 @@ func (x *HydratedTemplateButton_HydratedCallButton) String() string { func (*HydratedTemplateButton_HydratedCallButton) ProtoMessage() {} func (x *HydratedTemplateButton_HydratedCallButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[197] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[207] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21227,7 +22199,7 @@ func (x *HydratedTemplateButton_HydratedCallButton) ProtoReflect() protoreflect. // Deprecated: Use HydratedTemplateButton_HydratedCallButton.ProtoReflect.Descriptor instead. func (*HydratedTemplateButton_HydratedCallButton) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{46, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{49, 1} } func (x *HydratedTemplateButton_HydratedCallButton) GetDisplayText() string { @@ -21254,7 +22226,7 @@ type HydratedTemplateButton_HydratedQuickReplyButton struct { func (x *HydratedTemplateButton_HydratedQuickReplyButton) Reset() { *x = HydratedTemplateButton_HydratedQuickReplyButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[198] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21266,7 +22238,7 @@ func (x *HydratedTemplateButton_HydratedQuickReplyButton) String() string { func (*HydratedTemplateButton_HydratedQuickReplyButton) ProtoMessage() {} func (x *HydratedTemplateButton_HydratedQuickReplyButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[198] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[208] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21279,7 +22251,7 @@ func (x *HydratedTemplateButton_HydratedQuickReplyButton) ProtoReflect() protore // Deprecated: Use HydratedTemplateButton_HydratedQuickReplyButton.ProtoReflect.Descriptor instead. func (*HydratedTemplateButton_HydratedQuickReplyButton) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{46, 2} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{49, 2} } func (x *HydratedTemplateButton_HydratedQuickReplyButton) GetDisplayText() string { @@ -21309,7 +22281,7 @@ type PaymentBackground_MediaData struct { func (x *PaymentBackground_MediaData) Reset() { *x = PaymentBackground_MediaData{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[199] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21321,7 +22293,7 @@ func (x *PaymentBackground_MediaData) String() string { func (*PaymentBackground_MediaData) ProtoMessage() {} func (x *PaymentBackground_MediaData) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[199] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[209] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21334,7 +22306,7 @@ func (x *PaymentBackground_MediaData) ProtoReflect() protoreflect.Message { // Deprecated: Use PaymentBackground_MediaData.ProtoReflect.Descriptor instead. func (*PaymentBackground_MediaData) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{47, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{50, 0} } func (x *PaymentBackground_MediaData) GetMediaKey() []byte { @@ -21382,7 +22354,7 @@ type PollResultSnapshotMessage_PollVote struct { func (x *PollResultSnapshotMessage_PollVote) Reset() { *x = PollResultSnapshotMessage_PollVote{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[200] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21394,7 +22366,7 @@ func (x *PollResultSnapshotMessage_PollVote) String() string { func (*PollResultSnapshotMessage_PollVote) ProtoMessage() {} func (x *PollResultSnapshotMessage_PollVote) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[200] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[210] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21407,7 +22379,7 @@ func (x *PollResultSnapshotMessage_PollVote) ProtoReflect() protoreflect.Message // Deprecated: Use PollResultSnapshotMessage_PollVote.ProtoReflect.Descriptor instead. func (*PollResultSnapshotMessage_PollVote) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{59, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{64, 0} } func (x *PollResultSnapshotMessage_PollVote) GetOptionName() string { @@ -21444,7 +22416,7 @@ type ProductMessage_ProductSnapshot struct { func (x *ProductMessage_ProductSnapshot) Reset() { *x = ProductMessage_ProductSnapshot{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[201] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21456,7 +22428,7 @@ func (x *ProductMessage_ProductSnapshot) String() string { func (*ProductMessage_ProductSnapshot) ProtoMessage() {} func (x *ProductMessage_ProductSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[201] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[211] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21469,7 +22441,7 @@ func (x *ProductMessage_ProductSnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductMessage_ProductSnapshot.ProtoReflect.Descriptor instead. func (*ProductMessage_ProductSnapshot) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{70, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{75, 0} } func (x *ProductMessage_ProductSnapshot) GetProductImage() *ImageMessage { @@ -21567,7 +22539,7 @@ type ProductMessage_CatalogSnapshot struct { func (x *ProductMessage_CatalogSnapshot) Reset() { *x = ProductMessage_CatalogSnapshot{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[202] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21579,7 +22551,7 @@ func (x *ProductMessage_CatalogSnapshot) String() string { func (*ProductMessage_CatalogSnapshot) ProtoMessage() {} func (x *ProductMessage_CatalogSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[202] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[212] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21592,7 +22564,7 @@ func (x *ProductMessage_CatalogSnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductMessage_CatalogSnapshot.ProtoReflect.Descriptor instead. func (*ProductMessage_CatalogSnapshot) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{70, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{75, 1} } func (x *ProductMessage_CatalogSnapshot) GetCatalogImage() *ImageMessage { @@ -21637,7 +22609,7 @@ type TemplateMessage_HydratedFourRowTemplate struct { func (x *TemplateMessage_HydratedFourRowTemplate) Reset() { *x = TemplateMessage_HydratedFourRowTemplate{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[203] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21649,7 +22621,7 @@ func (x *TemplateMessage_HydratedFourRowTemplate) String() string { func (*TemplateMessage_HydratedFourRowTemplate) ProtoMessage() {} func (x *TemplateMessage_HydratedFourRowTemplate) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[203] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[213] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21662,7 +22634,7 @@ func (x *TemplateMessage_HydratedFourRowTemplate) ProtoReflect() protoreflect.Me // Deprecated: Use TemplateMessage_HydratedFourRowTemplate.ProtoReflect.Descriptor instead. func (*TemplateMessage_HydratedFourRowTemplate) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{72, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{77, 0} } func (x *TemplateMessage_HydratedFourRowTemplate) GetTitle() isTemplateMessage_HydratedFourRowTemplate_Title { @@ -21810,7 +22782,7 @@ type TemplateMessage_FourRowTemplate struct { func (x *TemplateMessage_FourRowTemplate) Reset() { *x = TemplateMessage_FourRowTemplate{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[204] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21822,7 +22794,7 @@ func (x *TemplateMessage_FourRowTemplate) String() string { func (*TemplateMessage_FourRowTemplate) ProtoMessage() {} func (x *TemplateMessage_FourRowTemplate) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[204] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[214] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21835,7 +22807,7 @@ func (x *TemplateMessage_FourRowTemplate) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateMessage_FourRowTemplate.ProtoReflect.Descriptor instead. func (*TemplateMessage_FourRowTemplate) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{72, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{77, 1} } func (x *TemplateMessage_FourRowTemplate) GetTitle() isTemplateMessage_FourRowTemplate_Title { @@ -21946,6 +22918,58 @@ func (*TemplateMessage_FourRowTemplate_VideoMessage) isTemplateMessage_FourRowTe func (*TemplateMessage_FourRowTemplate_LocationMessage) isTemplateMessage_FourRowTemplate_Title() {} +type PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + CollectionName *string `protobuf:"bytes,1,opt,name=collectionName" json:"collectionName,omitempty"` + Timestamp *int64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest) Reset() { + *x = PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[215] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest) ProtoMessage() {} + +func (x *PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[215] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest.ProtoReflect.Descriptor instead. +func (*PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86, 0} +} + +func (x *PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest) GetCollectionName() string { + if x != nil && x.CollectionName != nil { + return *x.CollectionName + } + return "" +} + +func (x *PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest) GetTimestamp() int64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + type PeerDataOperationRequestMessage_PlaceholderMessageResendRequest struct { state protoimpl.MessageState `protogen:"open.v1"` MessageKey *waCommon.MessageKey `protobuf:"bytes,1,opt,name=messageKey" json:"messageKey,omitempty"` @@ -21955,7 +22979,7 @@ type PeerDataOperationRequestMessage_PlaceholderMessageResendRequest struct { func (x *PeerDataOperationRequestMessage_PlaceholderMessageResendRequest) Reset() { *x = PeerDataOperationRequestMessage_PlaceholderMessageResendRequest{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[205] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21967,7 +22991,7 @@ func (x *PeerDataOperationRequestMessage_PlaceholderMessageResendRequest) String func (*PeerDataOperationRequestMessage_PlaceholderMessageResendRequest) ProtoMessage() {} func (x *PeerDataOperationRequestMessage_PlaceholderMessageResendRequest) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[205] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[216] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21980,7 +23004,7 @@ func (x *PeerDataOperationRequestMessage_PlaceholderMessageResendRequest) ProtoR // Deprecated: Use PeerDataOperationRequestMessage_PlaceholderMessageResendRequest.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestMessage_PlaceholderMessageResendRequest) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86, 1} } func (x *PeerDataOperationRequestMessage_PlaceholderMessageResendRequest) GetMessageKey() *waCommon.MessageKey { @@ -22000,7 +23024,7 @@ type PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest struct { func (x *PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest) Reset() { *x = PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[206] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22012,7 +23036,7 @@ func (x *PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest) String( func (*PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest) ProtoMessage() {} func (x *PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[206] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[217] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22025,7 +23049,7 @@ func (x *PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest) ProtoRe // Deprecated: Use PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86, 2} } func (x *PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest) GetRequestMetadata() *FullHistorySyncOnDemandRequestMetadata { @@ -22056,7 +23080,7 @@ type PeerDataOperationRequestMessage_HistorySyncOnDemandRequest struct { func (x *PeerDataOperationRequestMessage_HistorySyncOnDemandRequest) Reset() { *x = PeerDataOperationRequestMessage_HistorySyncOnDemandRequest{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[207] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22068,7 +23092,7 @@ func (x *PeerDataOperationRequestMessage_HistorySyncOnDemandRequest) String() st func (*PeerDataOperationRequestMessage_HistorySyncOnDemandRequest) ProtoMessage() {} func (x *PeerDataOperationRequestMessage_HistorySyncOnDemandRequest) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[207] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[218] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22081,7 +23105,7 @@ func (x *PeerDataOperationRequestMessage_HistorySyncOnDemandRequest) ProtoReflec // Deprecated: Use PeerDataOperationRequestMessage_HistorySyncOnDemandRequest.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestMessage_HistorySyncOnDemandRequest) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81, 2} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86, 3} } func (x *PeerDataOperationRequestMessage_HistorySyncOnDemandRequest) GetChatJID() string { @@ -22136,7 +23160,7 @@ type PeerDataOperationRequestMessage_RequestUrlPreview struct { func (x *PeerDataOperationRequestMessage_RequestUrlPreview) Reset() { *x = PeerDataOperationRequestMessage_RequestUrlPreview{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[208] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22148,7 +23172,7 @@ func (x *PeerDataOperationRequestMessage_RequestUrlPreview) String() string { func (*PeerDataOperationRequestMessage_RequestUrlPreview) ProtoMessage() {} func (x *PeerDataOperationRequestMessage_RequestUrlPreview) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[208] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[219] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22161,7 +23185,7 @@ func (x *PeerDataOperationRequestMessage_RequestUrlPreview) ProtoReflect() proto // Deprecated: Use PeerDataOperationRequestMessage_RequestUrlPreview.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestMessage_RequestUrlPreview) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81, 3} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86, 4} } func (x *PeerDataOperationRequestMessage_RequestUrlPreview) GetURL() string { @@ -22187,7 +23211,7 @@ type PeerDataOperationRequestMessage_RequestStickerReupload struct { func (x *PeerDataOperationRequestMessage_RequestStickerReupload) Reset() { *x = PeerDataOperationRequestMessage_RequestStickerReupload{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[209] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22199,7 +23223,7 @@ func (x *PeerDataOperationRequestMessage_RequestStickerReupload) String() string func (*PeerDataOperationRequestMessage_RequestStickerReupload) ProtoMessage() {} func (x *PeerDataOperationRequestMessage_RequestStickerReupload) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[209] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[220] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22212,7 +23236,7 @@ func (x *PeerDataOperationRequestMessage_RequestStickerReupload) ProtoReflect() // Deprecated: Use PeerDataOperationRequestMessage_RequestStickerReupload.ProtoReflect.Descriptor instead. func (*PeerDataOperationRequestMessage_RequestStickerReupload) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81, 4} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86, 5} } func (x *PeerDataOperationRequestMessage_RequestStickerReupload) GetFileSHA256() string { @@ -22232,7 +23256,7 @@ type BotRenderingMetadata_Keyword struct { func (x *BotRenderingMetadata_Keyword) Reset() { *x = BotRenderingMetadata_Keyword{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[210] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22244,7 +23268,7 @@ func (x *BotRenderingMetadata_Keyword) String() string { func (*BotRenderingMetadata_Keyword) ProtoMessage() {} func (x *BotRenderingMetadata_Keyword) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[210] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[221] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22257,7 +23281,7 @@ func (x *BotRenderingMetadata_Keyword) ProtoReflect() protoreflect.Message { // Deprecated: Use BotRenderingMetadata_Keyword.ProtoReflect.Descriptor instead. func (*BotRenderingMetadata_Keyword) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{107, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{112, 0} } func (x *BotRenderingMetadata_Keyword) GetValue() string { @@ -22284,7 +23308,7 @@ type TemplateButton_CallButton struct { func (x *TemplateButton_CallButton) Reset() { *x = TemplateButton_CallButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[211] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22296,7 +23320,7 @@ func (x *TemplateButton_CallButton) String() string { func (*TemplateButton_CallButton) ProtoMessage() {} func (x *TemplateButton_CallButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[211] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[222] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22309,7 +23333,7 @@ func (x *TemplateButton_CallButton) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateButton_CallButton.ProtoReflect.Descriptor instead. func (*TemplateButton_CallButton) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{119, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{125, 0} } func (x *TemplateButton_CallButton) GetDisplayText() *HighlyStructuredMessage { @@ -22336,7 +23360,7 @@ type TemplateButton_URLButton struct { func (x *TemplateButton_URLButton) Reset() { *x = TemplateButton_URLButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[212] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22348,7 +23372,7 @@ func (x *TemplateButton_URLButton) String() string { func (*TemplateButton_URLButton) ProtoMessage() {} func (x *TemplateButton_URLButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[212] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[223] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22361,7 +23385,7 @@ func (x *TemplateButton_URLButton) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateButton_URLButton.ProtoReflect.Descriptor instead. func (*TemplateButton_URLButton) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{119, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{125, 1} } func (x *TemplateButton_URLButton) GetDisplayText() *HighlyStructuredMessage { @@ -22388,7 +23412,7 @@ type TemplateButton_QuickReplyButton struct { func (x *TemplateButton_QuickReplyButton) Reset() { *x = TemplateButton_QuickReplyButton{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[213] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22400,7 +23424,7 @@ func (x *TemplateButton_QuickReplyButton) String() string { func (*TemplateButton_QuickReplyButton) ProtoMessage() {} func (x *TemplateButton_QuickReplyButton) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[213] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[224] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22413,7 +23437,7 @@ func (x *TemplateButton_QuickReplyButton) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateButton_QuickReplyButton.ProtoReflect.Descriptor instead. func (*TemplateButton_QuickReplyButton) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{119, 2} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{125, 2} } func (x *TemplateButton_QuickReplyButton) GetDisplayText() *HighlyStructuredMessage { @@ -22442,7 +23466,7 @@ type UrlTrackingMap_UrlTrackingMapElement struct { func (x *UrlTrackingMap_UrlTrackingMapElement) Reset() { *x = UrlTrackingMap_UrlTrackingMapElement{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[214] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22454,7 +23478,7 @@ func (x *UrlTrackingMap_UrlTrackingMapElement) String() string { func (*UrlTrackingMap_UrlTrackingMapElement) ProtoMessage() {} func (x *UrlTrackingMap_UrlTrackingMapElement) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[214] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[225] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22467,7 +23491,7 @@ func (x *UrlTrackingMap_UrlTrackingMapElement) ProtoReflect() protoreflect.Messa // Deprecated: Use UrlTrackingMap_UrlTrackingMapElement.ProtoReflect.Descriptor instead. func (*UrlTrackingMap_UrlTrackingMapElement) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{126, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{132, 0} } func (x *UrlTrackingMap_UrlTrackingMapElement) GetOriginalURL() string { @@ -22500,23 +23524,2194 @@ func (x *UrlTrackingMap_UrlTrackingMapElement) GetCardIndex() uint32 { var File_waE2E_WAWebProtobufsE2E_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsE2E.pb.raw -var file_waE2E_WAWebProtobufsE2E_proto_rawDesc []byte +const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + + "\n" + + "\x1dwaE2E/WAWebProtobufsE2E.proto\x12\x11WAWebProtobufsE2E\x1a\x11waAdv/WAAdv.proto\x1a#waCompanionReg/WACompanionReg.proto\x1a\x1bwaMmsRetry/WAMmsRetry.proto\x1a\x17waCommon/WACommon.proto\"\xdf\t\n" + + "\x12StickerPackMessage\x12$\n" + + "\rstickerPackID\x18\x01 \x01(\tR\rstickerPackID\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x1c\n" + + "\tpublisher\x18\x03 \x01(\tR\tpublisher\x12I\n" + + "\bstickers\x18\x04 \x03(\v2-.WAWebProtobufsE2E.StickerPackMessage.StickerR\bstickers\x12\x1e\n" + + "\n" + + "fileLength\x18\x05 \x01(\x04R\n" + + "fileLength\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x06 \x01(\fR\n" + + "fileSHA256\x12$\n" + + "\rfileEncSHA256\x18\a \x01(\fR\rfileEncSHA256\x12\x1a\n" + + "\bmediaKey\x18\b \x01(\fR\bmediaKey\x12\x1e\n" + + "\n" + + "directPath\x18\t \x01(\tR\n" + + "directPath\x12\x18\n" + + "\acaption\x18\n" + + " \x01(\tR\acaption\x12@\n" + + "\vcontextInfo\x18\v \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12(\n" + + "\x0fpackDescription\x18\f \x01(\tR\x0fpackDescription\x12,\n" + + "\x11mediaKeyTimestamp\x18\r \x01(\x03R\x11mediaKeyTimestamp\x12*\n" + + "\x10trayIconFileName\x18\x0e \x01(\tR\x10trayIconFileName\x120\n" + + "\x13thumbnailDirectPath\x18\x0f \x01(\tR\x13thumbnailDirectPath\x12(\n" + + "\x0fthumbnailSHA256\x18\x10 \x01(\fR\x0fthumbnailSHA256\x12.\n" + + "\x12thumbnailEncSHA256\x18\x11 \x01(\fR\x12thumbnailEncSHA256\x12(\n" + + "\x0fthumbnailHeight\x18\x12 \x01(\rR\x0fthumbnailHeight\x12&\n" + + "\x0ethumbnailWidth\x18\x13 \x01(\rR\x0ethumbnailWidth\x12$\n" + + "\rimageDataHash\x18\x14 \x01(\tR\rimageDataHash\x12(\n" + + "\x0fstickerPackSize\x18\x15 \x01(\x04R\x0fstickerPackSize\x12e\n" + + "\x11stickerPackOrigin\x18\x16 \x01(\x0e27.WAWebProtobufsE2E.StickerPackMessage.StickerPackOriginR\x11stickerPackOrigin\x1a\xc5\x01\n" + + "\aSticker\x12\x1a\n" + + "\bfileName\x18\x01 \x01(\tR\bfileName\x12\x1e\n" + + "\n" + + "isAnimated\x18\x02 \x01(\bR\n" + + "isAnimated\x12\x16\n" + + "\x06emojis\x18\x03 \x03(\tR\x06emojis\x12.\n" + + "\x12accessibilityLabel\x18\x04 \x01(\tR\x12accessibilityLabel\x12\x1a\n" + + "\bisLottie\x18\x05 \x01(\bR\bisLottie\x12\x1a\n" + + "\bmimetype\x18\x06 \x01(\tR\bmimetype\"G\n" + + "\x11StickerPackOrigin\x12\x0f\n" + + "\vFIRST_PARTY\x10\x00\x12\x0f\n" + + "\vTHIRD_PARTY\x10\x01\x12\x10\n" + + "\fUSER_CREATED\x10\x02\"\x8b\x01\n" + + "\x12PlaceholderMessage\x12I\n" + + "\x04type\x18\x01 \x01(\x0e25.WAWebProtobufsE2E.PlaceholderMessage.PlaceholderTypeR\x04type\"*\n" + + "\x0fPlaceholderType\x12\x17\n" + + "\x13MASK_LINKED_DEVICES\x10\x00\"\xdd\x01\n" + + "\fBCallMessage\x12\x1c\n" + + "\tsessionID\x18\x01 \x01(\tR\tsessionID\x12G\n" + + "\tmediaType\x18\x02 \x01(\x0e2).WAWebProtobufsE2E.BCallMessage.MediaTypeR\tmediaType\x12\x1c\n" + + "\tmasterKey\x18\x03 \x01(\fR\tmasterKey\x12\x18\n" + + "\acaption\x18\x04 \x01(\tR\acaption\".\n" + + "\tMediaType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\t\n" + + "\x05AUDIO\x10\x01\x12\t\n" + + "\x05VIDEO\x10\x02\"\x8d\x05\n" + + "\x0eCallLogMessage\x12\x18\n" + + "\aisVideo\x18\x01 \x01(\bR\aisVideo\x12O\n" + + "\vcallOutcome\x18\x02 \x01(\x0e2-.WAWebProtobufsE2E.CallLogMessage.CallOutcomeR\vcallOutcome\x12\"\n" + + "\fdurationSecs\x18\x03 \x01(\x03R\fdurationSecs\x12F\n" + + "\bcallType\x18\x04 \x01(\x0e2*.WAWebProtobufsE2E.CallLogMessage.CallTypeR\bcallType\x12U\n" + + "\fparticipants\x18\x05 \x03(\v21.WAWebProtobufsE2E.CallLogMessage.CallParticipantR\fparticipants\x1at\n" + + "\x0fCallParticipant\x12\x10\n" + + "\x03JID\x18\x01 \x01(\tR\x03JID\x12O\n" + + "\vcallOutcome\x18\x02 \x01(\x0e2-.WAWebProtobufsE2E.CallLogMessage.CallOutcomeR\vcallOutcome\"\x99\x01\n" + + "\vCallOutcome\x12\r\n" + + "\tCONNECTED\x10\x00\x12\n" + + "\n" + + "\x06MISSED\x10\x01\x12\n" + + "\n" + + "\x06FAILED\x10\x02\x12\f\n" + + "\bREJECTED\x10\x03\x12\x16\n" + + "\x12ACCEPTED_ELSEWHERE\x10\x04\x12\v\n" + + "\aONGOING\x10\x05\x12\x13\n" + + "\x0fSILENCED_BY_DND\x10\x06\x12\x1b\n" + + "\x17SILENCED_UNKNOWN_CALLER\x10\a\";\n" + + "\bCallType\x12\v\n" + + "\aREGULAR\x10\x00\x12\x12\n" + + "\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n" + + "\n" + + "VOICE_CHAT\x10\x02\"\xb9\x01\n" + + "\x18ScheduledCallEditMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12P\n" + + "\beditType\x18\x02 \x01(\x0e24.WAWebProtobufsE2E.ScheduledCallEditMessage.EditTypeR\beditType\"#\n" + + "\bEditType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\n" + + "\n" + + "\x06CANCEL\x10\x01\"\xed\x01\n" + + "\x1cScheduledCallCreationMessage\x122\n" + + "\x14scheduledTimestampMS\x18\x01 \x01(\x03R\x14scheduledTimestampMS\x12T\n" + + "\bcallType\x18\x02 \x01(\x0e28.WAWebProtobufsE2E.ScheduledCallCreationMessage.CallTypeR\bcallType\x12\x14\n" + + "\x05title\x18\x03 \x01(\tR\x05title\"-\n" + + "\bCallType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\t\n" + + "\x05VOICE\x10\x01\x12\t\n" + + "\x05VIDEO\x10\x02\"\x80\x02\n" + + "\x14EventResponseMessage\x12U\n" + + "\bresponse\x18\x01 \x01(\x0e29.WAWebProtobufsE2E.EventResponseMessage.EventResponseTypeR\bresponse\x12 \n" + + "\vtimestampMS\x18\x02 \x01(\x03R\vtimestampMS\x12(\n" + + "\x0fextraGuestCount\x18\x03 \x01(\x05R\x0fextraGuestCount\"E\n" + + "\x11EventResponseType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\t\n" + + "\x05GOING\x10\x01\x12\r\n" + + "\tNOT_GOING\x10\x02\x12\t\n" + + "\x05MAYBE\x10\x03\"\xe4\x01\n" + + "\x10PinInChatMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12<\n" + + "\x04type\x18\x02 \x01(\x0e2(.WAWebProtobufsE2E.PinInChatMessage.TypeR\x04type\x12,\n" + + "\x11senderTimestampMS\x18\x03 \x01(\x03R\x11senderTimestampMS\"<\n" + + "\x04Type\x12\x10\n" + + "\fUNKNOWN_TYPE\x10\x00\x12\x0f\n" + + "\vPIN_FOR_ALL\x10\x01\x12\x11\n" + + "\rUNPIN_FOR_ALL\x10\x02\"\xde\x04\n" + + "\x13PollCreationMessage\x12\x16\n" + + "\x06encKey\x18\x01 \x01(\fR\x06encKey\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12G\n" + + "\aoptions\x18\x03 \x03(\v2-.WAWebProtobufsE2E.PollCreationMessage.OptionR\aoptions\x126\n" + + "\x16selectableOptionsCount\x18\x04 \x01(\rR\x16selectableOptionsCount\x12@\n" + + "\vcontextInfo\x18\x05 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12L\n" + + "\x0fpollContentType\x18\x06 \x01(\x0e2\".WAWebProtobufsE2E.PollContentTypeR\x0fpollContentType\x12K\n" + + "\bpollType\x18\a \x01(\x0e2/.WAWebProtobufsE2E.PollCreationMessage.PollTypeR\bpollType\x12S\n" + + "\rcorrectAnswer\x18\b \x01(\v2-.WAWebProtobufsE2E.PollCreationMessage.OptionR\rcorrectAnswer\x1aH\n" + + "\x06Option\x12\x1e\n" + + "\n" + + "optionName\x18\x01 \x01(\tR\n" + + "optionName\x12\x1e\n" + + "\n" + + "optionHash\x18\x02 \x01(\tR\n" + + "optionHash\"\x1e\n" + + "\bPollType\x12\b\n" + + "\x04POLL\x10\x00\x12\b\n" + + "\x04QUIZ\x10\x01\"\xb1\x02\n" + + "\x16ButtonsResponseMessage\x122\n" + + "\x13selectedDisplayText\x18\x02 \x01(\tH\x00R\x13selectedDisplayText\x12*\n" + + "\x10selectedButtonID\x18\x01 \x01(\tR\x10selectedButtonID\x12@\n" + + "\vcontextInfo\x18\x03 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12B\n" + + "\x04type\x18\x04 \x01(\x0e2..WAWebProtobufsE2E.ButtonsResponseMessage.TypeR\x04type\"%\n" + + "\x04Type\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x10\n" + + "\fDISPLAY_TEXT\x10\x01B\n" + + "\n" + + "\bresponse\"\xa0\t\n" + + "\x0eButtonsMessage\x12\x14\n" + + "\x04text\x18\x01 \x01(\tH\x00R\x04text\x12N\n" + + "\x0fdocumentMessage\x18\x02 \x01(\v2\".WAWebProtobufsE2E.DocumentMessageH\x00R\x0fdocumentMessage\x12E\n" + + "\fimageMessage\x18\x03 \x01(\v2\x1f.WAWebProtobufsE2E.ImageMessageH\x00R\fimageMessage\x12E\n" + + "\fvideoMessage\x18\x04 \x01(\v2\x1f.WAWebProtobufsE2E.VideoMessageH\x00R\fvideoMessage\x12N\n" + + "\x0flocationMessage\x18\x05 \x01(\v2\".WAWebProtobufsE2E.LocationMessageH\x00R\x0flocationMessage\x12 \n" + + "\vcontentText\x18\x06 \x01(\tR\vcontentText\x12\x1e\n" + + "\n" + + "footerText\x18\a \x01(\tR\n" + + "footerText\x12@\n" + + "\vcontextInfo\x18\b \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12B\n" + + "\abuttons\x18\t \x03(\v2(.WAWebProtobufsE2E.ButtonsMessage.ButtonR\abuttons\x12L\n" + + "\n" + + "headerType\x18\n" + + " \x01(\x0e2,.WAWebProtobufsE2E.ButtonsMessage.HeaderTypeR\n" + + "headerType\x1a\xc7\x03\n" + + "\x06Button\x12\x1a\n" + + "\bbuttonID\x18\x01 \x01(\tR\bbuttonID\x12S\n" + + "\n" + + "buttonText\x18\x02 \x01(\v23.WAWebProtobufsE2E.ButtonsMessage.Button.ButtonTextR\n" + + "buttonText\x12A\n" + + "\x04type\x18\x03 \x01(\x0e2-.WAWebProtobufsE2E.ButtonsMessage.Button.TypeR\x04type\x12_\n" + + "\x0enativeFlowInfo\x18\x04 \x01(\v27.WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfoR\x0enativeFlowInfo\x1aD\n" + + "\x0eNativeFlowInfo\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n" + + "\n" + + "paramsJSON\x18\x02 \x01(\tR\n" + + "paramsJSON\x1a.\n" + + "\n" + + "ButtonText\x12 \n" + + "\vdisplayText\x18\x01 \x01(\tR\vdisplayText\"2\n" + + "\x04Type\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\f\n" + + "\bRESPONSE\x10\x01\x12\x0f\n" + + "\vNATIVE_FLOW\x10\x02\"`\n" + + "\n" + + "HeaderType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\t\n" + + "\x05EMPTY\x10\x01\x12\b\n" + + "\x04TEXT\x10\x02\x12\f\n" + + "\bDOCUMENT\x10\x03\x12\t\n" + + "\x05IMAGE\x10\x04\x12\t\n" + + "\x05VIDEO\x10\x05\x12\f\n" + + "\bLOCATION\x10\x06B\b\n" + + "\x06header\"\xaf\x02\n" + + "\x16SecretEncryptedMessage\x12@\n" + + "\x10targetMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x10targetMessageKey\x12\x1e\n" + + "\n" + + "encPayload\x18\x02 \x01(\fR\n" + + "encPayload\x12\x14\n" + + "\x05encIV\x18\x03 \x01(\fR\x05encIV\x12]\n" + + "\rsecretEncType\x18\x04 \x01(\x0e27.WAWebProtobufsE2E.SecretEncryptedMessage.SecretEncTypeR\rsecretEncType\">\n" + + "\rSecretEncType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x0e\n" + + "\n" + + "EVENT_EDIT\x10\x01\x12\x10\n" + + "\fMESSAGE_EDIT\x10\x02\"\x91\x03\n" + + "\x12GroupInviteMessage\x12\x1a\n" + + "\bgroupJID\x18\x01 \x01(\tR\bgroupJID\x12\x1e\n" + + "\n" + + "inviteCode\x18\x02 \x01(\tR\n" + + "inviteCode\x12*\n" + + "\x10inviteExpiration\x18\x03 \x01(\x03R\x10inviteExpiration\x12\x1c\n" + + "\tgroupName\x18\x04 \x01(\tR\tgroupName\x12$\n" + + "\rJPEGThumbnail\x18\x05 \x01(\fR\rJPEGThumbnail\x12\x18\n" + + "\acaption\x18\x06 \x01(\tR\acaption\x12@\n" + + "\vcontextInfo\x18\a \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12M\n" + + "\tgroupType\x18\b \x01(\x0e2/.WAWebProtobufsE2E.GroupInviteMessage.GroupTypeR\tgroupType\"$\n" + + "\tGroupType\x12\v\n" + + "\aDEFAULT\x10\x00\x12\n" + + "\n" + + "\x06PARENT\x10\x01\"\xd2\x04\n" + + "\x1aInteractiveResponseMessage\x12\x87\x01\n" + + "\x19nativeFlowResponseMessage\x18\x02 \x01(\v2G.WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessageH\x00R\x19nativeFlowResponseMessage\x12F\n" + + "\x04body\x18\x01 \x01(\v22.WAWebProtobufsE2E.InteractiveResponseMessage.BodyR\x04body\x12@\n" + + "\vcontextInfo\x18\x0f \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x1a\x96\x01\n" + + "\x04Body\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x12Q\n" + + "\x06format\x18\x02 \x01(\x0e29.WAWebProtobufsE2E.InteractiveResponseMessage.Body.FormatR\x06format\"'\n" + + "\x06Format\x12\v\n" + + "\aDEFAULT\x10\x00\x12\x10\n" + + "\fEXTENSIONS_1\x10\x01\x1ai\n" + + "\x19NativeFlowResponseMessage\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n" + + "\n" + + "paramsJSON\x18\x02 \x01(\tR\n" + + "paramsJSON\x12\x18\n" + + "\aversion\x18\x03 \x01(\x05R\aversionB\x1c\n" + + "\x1ainteractiveResponseMessage\"\xcc\x10\n" + + "\x12InteractiveMessage\x12i\n" + + "\x15shopStorefrontMessage\x18\x04 \x01(\v21.WAWebProtobufsE2E.InteractiveMessage.ShopMessageH\x00R\x15shopStorefrontMessage\x12g\n" + + "\x11collectionMessage\x18\x05 \x01(\v27.WAWebProtobufsE2E.InteractiveMessage.CollectionMessageH\x00R\x11collectionMessage\x12g\n" + + "\x11nativeFlowMessage\x18\x06 \x01(\v27.WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessageH\x00R\x11nativeFlowMessage\x12a\n" + + "\x0fcarouselMessage\x18\a \x01(\v25.WAWebProtobufsE2E.InteractiveMessage.CarouselMessageH\x00R\x0fcarouselMessage\x12D\n" + + "\x06header\x18\x01 \x01(\v2,.WAWebProtobufsE2E.InteractiveMessage.HeaderR\x06header\x12>\n" + + "\x04body\x18\x02 \x01(\v2*.WAWebProtobufsE2E.InteractiveMessage.BodyR\x04body\x12D\n" + + "\x06footer\x18\x03 \x01(\v2,.WAWebProtobufsE2E.InteractiveMessage.FooterR\x06footer\x12@\n" + + "\vcontextInfo\x18\x0f \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12I\n" + + "\x0eurlTrackingMap\x18\x10 \x01(\v2!.WAWebProtobufsE2E.UrlTrackingMapR\x0eurlTrackingMap\x1a\xd2\x01\n" + + "\vShopMessage\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12S\n" + + "\asurface\x18\x02 \x01(\x0e29.WAWebProtobufsE2E.InteractiveMessage.ShopMessage.SurfaceR\asurface\x12&\n" + + "\x0emessageVersion\x18\x03 \x01(\x05R\x0emessageVersion\"6\n" + + "\aSurface\x12\x13\n" + + "\x0fUNKNOWN_SURFACE\x10\x00\x12\x06\n" + + "\x02FB\x10\x01\x12\x06\n" + + "\x02IG\x10\x02\x12\x06\n" + + "\x02WA\x10\x03\x1av\n" + + "\x0fCarouselMessage\x12;\n" + + "\x05cards\x18\x01 \x03(\v2%.WAWebProtobufsE2E.InteractiveMessageR\x05cards\x12&\n" + + "\x0emessageVersion\x18\x02 \x01(\x05R\x0emessageVersion\x1a\xa1\x02\n" + + "\x11NativeFlowMessage\x12b\n" + + "\abuttons\x18\x01 \x03(\v2H.WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButtonR\abuttons\x12,\n" + + "\x11messageParamsJSON\x18\x02 \x01(\tR\x11messageParamsJSON\x12&\n" + + "\x0emessageVersion\x18\x03 \x01(\x05R\x0emessageVersion\x1aR\n" + + "\x10NativeFlowButton\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12*\n" + + "\x10buttonParamsJSON\x18\x02 \x01(\tR\x10buttonParamsJSON\x1ac\n" + + "\x11CollectionMessage\x12\x16\n" + + "\x06bizJID\x18\x01 \x01(\tR\x06bizJID\x12\x0e\n" + + "\x02ID\x18\x02 \x01(\tR\x02ID\x12&\n" + + "\x0emessageVersion\x18\x03 \x01(\x05R\x0emessageVersion\x1a\x1c\n" + + "\x06Footer\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x1a\x1a\n" + + "\x04Body\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x1a\x96\x04\n" + + "\x06Header\x12N\n" + + "\x0fdocumentMessage\x18\x03 \x01(\v2\".WAWebProtobufsE2E.DocumentMessageH\x00R\x0fdocumentMessage\x12E\n" + + "\fimageMessage\x18\x04 \x01(\v2\x1f.WAWebProtobufsE2E.ImageMessageH\x00R\fimageMessage\x12&\n" + + "\rJPEGThumbnail\x18\x06 \x01(\fH\x00R\rJPEGThumbnail\x12E\n" + + "\fvideoMessage\x18\a \x01(\v2\x1f.WAWebProtobufsE2E.VideoMessageH\x00R\fvideoMessage\x12N\n" + + "\x0flocationMessage\x18\b \x01(\v2\".WAWebProtobufsE2E.LocationMessageH\x00R\x0flocationMessage\x12K\n" + + "\x0eproductMessage\x18\t \x01(\v2!.WAWebProtobufsE2E.ProductMessageH\x00R\x0eproductMessage\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12\x1a\n" + + "\bsubtitle\x18\x02 \x01(\tR\bsubtitle\x12.\n" + + "\x12hasMediaAttachment\x18\x05 \x01(\bR\x12hasMediaAttachmentB\a\n" + + "\x05mediaB\x14\n" + + "\x12interactiveMessage\"\xab\x03\n" + + "\x13ListResponseMessage\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12K\n" + + "\blistType\x18\x02 \x01(\x0e2/.WAWebProtobufsE2E.ListResponseMessage.ListTypeR\blistType\x12f\n" + + "\x11singleSelectReply\x18\x03 \x01(\v28.WAWebProtobufsE2E.ListResponseMessage.SingleSelectReplyR\x11singleSelectReply\x12@\n" + + "\vcontextInfo\x18\x04 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12 \n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\x1a9\n" + + "\x11SingleSelectReply\x12$\n" + + "\rselectedRowID\x18\x01 \x01(\tR\rselectedRowID\"*\n" + + "\bListType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x11\n" + + "\rSINGLE_SELECT\x10\x01\"\xfb\b\n" + + "\vListMessage\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12\x1e\n" + + "\n" + + "buttonText\x18\x03 \x01(\tR\n" + + "buttonText\x12C\n" + + "\blistType\x18\x04 \x01(\x0e2'.WAWebProtobufsE2E.ListMessage.ListTypeR\blistType\x12B\n" + + "\bsections\x18\x05 \x03(\v2&.WAWebProtobufsE2E.ListMessage.SectionR\bsections\x12X\n" + + "\x0fproductListInfo\x18\x06 \x01(\v2..WAWebProtobufsE2E.ListMessage.ProductListInfoR\x0fproductListInfo\x12\x1e\n" + + "\n" + + "footerText\x18\a \x01(\tR\n" + + "footerText\x12@\n" + + "\vcontextInfo\x18\b \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x1a\xef\x01\n" + + "\x0fProductListInfo\x12W\n" + + "\x0fproductSections\x18\x01 \x03(\v2-.WAWebProtobufsE2E.ListMessage.ProductSectionR\x0fproductSections\x12W\n" + + "\vheaderImage\x18\x02 \x01(\v25.WAWebProtobufsE2E.ListMessage.ProductListHeaderImageR\vheaderImage\x12*\n" + + "\x10businessOwnerJID\x18\x03 \x01(\tR\x10businessOwnerJID\x1a\\\n" + + "\x16ProductListHeaderImage\x12\x1c\n" + + "\tproductID\x18\x01 \x01(\tR\tproductID\x12$\n" + + "\rJPEGThumbnail\x18\x02 \x01(\fR\rJPEGThumbnail\x1aj\n" + + "\x0eProductSection\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12B\n" + + "\bproducts\x18\x02 \x03(\v2&.WAWebProtobufsE2E.ListMessage.ProductR\bproducts\x1a'\n" + + "\aProduct\x12\x1c\n" + + "\tproductID\x18\x01 \x01(\tR\tproductID\x1aW\n" + + "\aSection\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x126\n" + + "\x04rows\x18\x02 \x03(\v2\".WAWebProtobufsE2E.ListMessage.RowR\x04rows\x1aS\n" + + "\x03Row\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12\x14\n" + + "\x05rowID\x18\x03 \x01(\tR\x05rowID\"<\n" + + "\bListType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x11\n" + + "\rSINGLE_SELECT\x10\x01\x12\x10\n" + + "\fPRODUCT_LIST\x10\x02\"\xe4\x05\n" + + "\fOrderMessage\x12\x18\n" + + "\aorderID\x18\x01 \x01(\tR\aorderID\x12\x1c\n" + + "\tthumbnail\x18\x02 \x01(\fR\tthumbnail\x12\x1c\n" + + "\titemCount\x18\x03 \x01(\x05R\titemCount\x12C\n" + + "\x06status\x18\x04 \x01(\x0e2+.WAWebProtobufsE2E.OrderMessage.OrderStatusR\x06status\x12F\n" + + "\asurface\x18\x05 \x01(\x0e2,.WAWebProtobufsE2E.OrderMessage.OrderSurfaceR\asurface\x12\x18\n" + + "\amessage\x18\x06 \x01(\tR\amessage\x12\x1e\n" + + "\n" + + "orderTitle\x18\a \x01(\tR\n" + + "orderTitle\x12\x1c\n" + + "\tsellerJID\x18\b \x01(\tR\tsellerJID\x12\x14\n" + + "\x05token\x18\t \x01(\tR\x05token\x12(\n" + + "\x0ftotalAmount1000\x18\n" + + " \x01(\x03R\x0ftotalAmount1000\x12,\n" + + "\x11totalCurrencyCode\x18\v \x01(\tR\x11totalCurrencyCode\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12&\n" + + "\x0emessageVersion\x18\f \x01(\x05R\x0emessageVersion\x12J\n" + + "\x15orderRequestMessageID\x18\r \x01(\v2\x14.WACommon.MessageKeyR\x15orderRequestMessageID\x12 \n" + + "\vcatalogType\x18\x0f \x01(\tR\vcatalogType\"\x1b\n" + + "\fOrderSurface\x12\v\n" + + "\aCATALOG\x10\x01\"6\n" + + "\vOrderStatus\x12\v\n" + + "\aINQUIRY\x10\x01\x12\f\n" + + "\bACCEPTED\x10\x02\x12\f\n" + + "\bDECLINED\x10\x03\"\xd1\x01\n" + + "\x14PaymentInviteMessage\x12U\n" + + "\vserviceType\x18\x01 \x01(\x0e23.WAWebProtobufsE2E.PaymentInviteMessage.ServiceTypeR\vserviceType\x12(\n" + + "\x0fexpiryTimestamp\x18\x02 \x01(\x03R\x0fexpiryTimestamp\"8\n" + + "\vServiceType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\t\n" + + "\x05FBPAY\x10\x01\x12\b\n" + + "\x04NOVI\x10\x02\x12\a\n" + + "\x03UPI\x10\x03\"\xe0\r\n" + + "\x17HighlyStructuredMessage\x12\x1c\n" + + "\tnamespace\x18\x01 \x01(\tR\tnamespace\x12 \n" + + "\velementName\x18\x02 \x01(\tR\velementName\x12\x16\n" + + "\x06params\x18\x03 \x03(\tR\x06params\x12\x1e\n" + + "\n" + + "fallbackLg\x18\x04 \x01(\tR\n" + + "fallbackLg\x12\x1e\n" + + "\n" + + "fallbackLc\x18\x05 \x01(\tR\n" + + "fallbackLc\x12p\n" + + "\x11localizableParams\x18\x06 \x03(\v2B.WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameterR\x11localizableParams\x12(\n" + + "\x0fdeterministicLg\x18\a \x01(\tR\x0fdeterministicLg\x12(\n" + + "\x0fdeterministicLc\x18\b \x01(\tR\x0fdeterministicLc\x12D\n" + + "\vhydratedHsm\x18\t \x01(\v2\".WAWebProtobufsE2E.TemplateMessageR\vhydratedHsm\x1a\xa0\n" + + "\n" + + "\x17HSMLocalizableParameter\x12l\n" + + "\bcurrency\x18\x02 \x01(\v2N.WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrencyH\x00R\bcurrency\x12l\n" + + "\bdateTime\x18\x03 \x01(\v2N.WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTimeH\x00R\bdateTime\x12\x18\n" + + "\adefault\x18\x01 \x01(\tR\adefault\x1a\xad\a\n" + + "\vHSMDateTime\x12\x83\x01\n" + + "\tcomponent\x18\x01 \x01(\v2c.WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponentH\x00R\tcomponent\x12\x83\x01\n" + + "\tunixEpoch\x18\x02 \x01(\v2c.WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpochH\x00R\tunixEpoch\x1a\xca\x04\n" + + "\x14HSMDateTimeComponent\x12\x8f\x01\n" + + "\tdayOfWeek\x18\x01 \x01(\x0e2q.WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekTypeR\tdayOfWeek\x12\x12\n" + + "\x04year\x18\x02 \x01(\rR\x04year\x12\x14\n" + + "\x05month\x18\x03 \x01(\rR\x05month\x12\x1e\n" + + "\n" + + "dayOfMonth\x18\x04 \x01(\rR\n" + + "dayOfMonth\x12\x12\n" + + "\x04hour\x18\x05 \x01(\rR\x04hour\x12\x16\n" + + "\x06minute\x18\x06 \x01(\rR\x06minute\x12\x8c\x01\n" + + "\bcalendar\x18\a \x01(\x0e2p.WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarTypeR\bcalendar\".\n" + + "\fCalendarType\x12\r\n" + + "\tGREGORIAN\x10\x01\x12\x0f\n" + + "\vSOLAR_HIJRI\x10\x02\"k\n" + + "\rDayOfWeekType\x12\n" + + "\n" + + "\x06MONDAY\x10\x01\x12\v\n" + + "\aTUESDAY\x10\x02\x12\r\n" + + "\tWEDNESDAY\x10\x03\x12\f\n" + + "\bTHURSDAY\x10\x04\x12\n" + + "\n" + + "\x06FRIDAY\x10\x05\x12\f\n" + + "\bSATURDAY\x10\x06\x12\n" + + "\n" + + "\x06SUNDAY\x10\a\x1a4\n" + + "\x14HSMDateTimeUnixEpoch\x12\x1c\n" + + "\ttimestamp\x18\x01 \x01(\x03R\ttimestampB\x0f\n" + + "\rdatetimeOneof\x1aQ\n" + + "\vHSMCurrency\x12\"\n" + + "\fcurrencyCode\x18\x01 \x01(\tR\fcurrencyCode\x12\x1e\n" + + "\n" + + "amount1000\x18\x02 \x01(\x03R\n" + + "amount1000B\f\n" + + "\n" + + "paramOneof\"\x94\x19\n" + + "'PeerDataOperationRequestResponseMessage\x12s\n" + + "\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e2/.WAWebProtobufsE2E.PeerDataOperationRequestTypeR\x1cpeerDataOperationRequestType\x12\x1a\n" + + "\bstanzaID\x18\x02 \x01(\tR\bstanzaID\x12\x8c\x01\n" + + "\x17peerDataOperationResult\x18\x03 \x03(\v2R.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResultR\x17peerDataOperationResult\x1a\xc8\x16\n" + + "\x17PeerDataOperationResult\x12[\n" + + "\x11mediaUploadResult\x18\x01 \x01(\x0e2-.WAMmsRetry.MediaRetryNotification.ResultTypeR\x11mediaUploadResult\x12I\n" + + "\x0estickerMessage\x18\x02 \x01(\v2!.WAWebProtobufsE2E.StickerMessageR\x0estickerMessage\x12\x98\x01\n" + + "\x13linkPreviewResponse\x18\x03 \x01(\v2f.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponseR\x13linkPreviewResponse\x12\xbf\x01\n" + + " placeholderMessageResendResponse\x18\x04 \x01(\v2s.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponseR placeholderMessageResendResponse\x12\xb5\x01\n" + + "\x1fwaffleNonceFetchRequestResponse\x18\x05 \x01(\v2k.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponseR\x1fwaffleNonceFetchRequestResponse\x12\xd1\x01\n" + + "&fullHistorySyncOnDemandRequestResponse\x18\x06 \x01(\v2y.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponseR&fullHistorySyncOnDemandRequestResponse\x12\xca\x01\n" + + "&companionMetaNonceFetchRequestResponse\x18\a \x01(\v2r.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponseR&companionMetaNonceFetchRequestResponse\x12\xc5\x01\n" + + "\"syncdSnapshotFatalRecoveryResponse\x18\b \x01(\v2u.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponseR\"syncdSnapshotFatalRecoveryResponse\x1ax\n" + + "\"SyncDSnapshotFatalRecoveryResponse\x12.\n" + + "\x12collectionSnapshot\x18\x01 \x01(\fR\x12collectionSnapshot\x12\"\n" + + "\fisCompressed\x18\x02 \x01(\bR\fisCompressed\x1a7\n" + + "\x1fCompanionMetaNonceFetchResponse\x12\x14\n" + + "\x05nonce\x18\x01 \x01(\tR\x05nonce\x1aN\n" + + "\x18WaffleNonceFetchResponse\x12\x14\n" + + "\x05nonce\x18\x01 \x01(\tR\x05nonce\x12\x1c\n" + + "\twaEntFbid\x18\x02 \x01(\tR\twaEntFbid\x1a\xaa\x02\n" + + "&FullHistorySyncOnDemandRequestResponse\x12c\n" + + "\x0frequestMetadata\x18\x01 \x01(\v29.WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadataR\x0frequestMetadata\x12\x9a\x01\n" + + "\fresponseCode\x18\x02 \x01(\x0e2v.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCodeR\fresponseCode\x1aT\n" + + " PlaceholderMessageResendResponse\x120\n" + + "\x13webMessageInfoBytes\x18\x01 \x01(\fR\x13webMessageInfoBytes\x1a\xff\x04\n" + + "\x13LinkPreviewResponse\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\x12\x1c\n" + + "\tthumbData\x18\x04 \x01(\fR\tthumbData\x12\x1c\n" + + "\tmatchText\x18\x06 \x01(\tR\tmatchText\x12 \n" + + "\vpreviewType\x18\a \x01(\tR\vpreviewType\x12\xa9\x01\n" + + "\vhqThumbnail\x18\b \x01(\v2\x86\x01.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnailR\vhqThumbnail\x1a\x93\x02\n" + + "\x1fLinkPreviewHighQualityThumbnail\x12\x1e\n" + + "\n" + + "directPath\x18\x01 \x01(\tR\n" + + "directPath\x12\x1c\n" + + "\tthumbHash\x18\x02 \x01(\tR\tthumbHash\x12\"\n" + + "\fencThumbHash\x18\x03 \x01(\tR\fencThumbHash\x12\x1a\n" + + "\bmediaKey\x18\x04 \x01(\fR\bmediaKey\x120\n" + + "\x13mediaKeyTimestampMS\x18\x05 \x01(\x03R\x13mediaKeyTimestampMS\x12\x1e\n" + + "\n" + + "thumbWidth\x18\x06 \x01(\x05R\n" + + "thumbWidth\x12 \n" + + "\vthumbHeight\x18\a \x01(\x05R\vthumbHeight\"\xfe\x01\n" + + "#FullHistorySyncOnDemandResponseCode\x12\x13\n" + + "\x0fREQUEST_SUCCESS\x10\x00\x12\x18\n" + + "\x14REQUEST_TIME_EXPIRED\x10\x01\x12\x1c\n" + + "\x18DECLINED_SHARING_HISTORY\x10\x02\x12\x11\n" + + "\rGENERIC_ERROR\x10\x03\x12$\n" + + " ERROR_REQUEST_ON_NON_SMB_PRIMARY\x10\x04\x12%\n" + + "!ERROR_HOSTED_DEVICE_NOT_CONNECTED\x10\x05\x12*\n" + + "&ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET\x10\x06\"\x9a\a\n" + + "\x17HistorySyncNotification\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x01 \x01(\fR\n" + + "fileSHA256\x12\x1e\n" + + "\n" + + "fileLength\x18\x02 \x01(\x04R\n" + + "fileLength\x12\x1a\n" + + "\bmediaKey\x18\x03 \x01(\fR\bmediaKey\x12$\n" + + "\rfileEncSHA256\x18\x04 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x05 \x01(\tR\n" + + "directPath\x12V\n" + + "\bsyncType\x18\x06 \x01(\x0e2:.WAWebProtobufsE2E.HistorySyncNotification.HistorySyncTypeR\bsyncType\x12\x1e\n" + + "\n" + + "chunkOrder\x18\a \x01(\rR\n" + + "chunkOrder\x12,\n" + + "\x11originalMessageID\x18\b \x01(\tR\x11originalMessageID\x12\x1a\n" + + "\bprogress\x18\t \x01(\rR\bprogress\x12B\n" + + "\x1coldestMsgInChunkTimestampSec\x18\n" + + " \x01(\x03R\x1coldestMsgInChunkTimestampSec\x12L\n" + + "!initialHistBootstrapInlinePayload\x18\v \x01(\fR!initialHistBootstrapInlinePayload\x12:\n" + + "\x18peerDataRequestSessionID\x18\f \x01(\tR\x18peerDataRequestSessionID\x12\x91\x01\n" + + "&fullHistorySyncOnDemandRequestMetadata\x18\r \x01(\v29.WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadataR&fullHistorySyncOnDemandRequestMetadata\x12\x1c\n" + + "\tencHandle\x18\x0e \x01(\tR\tencHandle\"\x9a\x01\n" + + "\x0fHistorySyncType\x12\x15\n" + + "\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n" + + "\x11INITIAL_STATUS_V3\x10\x01\x12\b\n" + + "\x04FULL\x10\x02\x12\n" + + "\n" + + "\x06RECENT\x10\x03\x12\r\n" + + "\tPUSH_NAME\x10\x04\x12\x15\n" + + "\x11NON_BLOCKING_DATA\x10\x05\x12\r\n" + + "\tON_DEMAND\x10\x06\x12\x0e\n" + + "\n" + + "NO_HISTORY\x10\a\"\xb4\x01\n" + + "\x1dRequestWelcomeMessageMetadata\x12g\n" + + "\x0elocalChatState\x18\x01 \x01(\x0e2?.WAWebProtobufsE2E.RequestWelcomeMessageMetadata.LocalChatStateR\x0elocalChatState\"*\n" + + "\x0eLocalChatState\x12\t\n" + + "\x05EMPTY\x10\x00\x12\r\n" + + "\tNON_EMPTY\x10\x01\"\xb4\x16\n" + + "\x0fProtocolMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12;\n" + + "\x04type\x18\x02 \x01(\x0e2'.WAWebProtobufsE2E.ProtocolMessage.TypeR\x04type\x120\n" + + "\x13ephemeralExpiration\x18\x04 \x01(\rR\x13ephemeralExpiration\x12<\n" + + "\x19ephemeralSettingTimestamp\x18\x05 \x01(\x03R\x19ephemeralSettingTimestamp\x12d\n" + + "\x17historySyncNotification\x18\x06 \x01(\v2*.WAWebProtobufsE2E.HistorySyncNotificationR\x17historySyncNotification\x12[\n" + + "\x14appStateSyncKeyShare\x18\a \x01(\v2'.WAWebProtobufsE2E.AppStateSyncKeyShareR\x14appStateSyncKeyShare\x12a\n" + + "\x16appStateSyncKeyRequest\x18\b \x01(\v2).WAWebProtobufsE2E.AppStateSyncKeyRequestR\x16appStateSyncKeyRequest\x12\x91\x01\n" + + "&initialSecurityNotificationSettingSync\x18\t \x01(\v29.WAWebProtobufsE2E.InitialSecurityNotificationSettingSyncR&initialSecurityNotificationSettingSync\x12\x85\x01\n" + + "\"appStateFatalExceptionNotification\x18\n" + + " \x01(\v25.WAWebProtobufsE2E.AppStateFatalExceptionNotificationR\"appStateFatalExceptionNotification\x12O\n" + + "\x10disappearingMode\x18\v \x01(\v2#.WAWebProtobufsE2E.DisappearingModeR\x10disappearingMode\x12@\n" + + "\reditedMessage\x18\x0e \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\reditedMessage\x12 \n" + + "\vtimestampMS\x18\x0f \x01(\x03R\vtimestampMS\x12|\n" + + "\x1fpeerDataOperationRequestMessage\x18\x10 \x01(\v22.WAWebProtobufsE2E.PeerDataOperationRequestMessageR\x1fpeerDataOperationRequestMessage\x12\x94\x01\n" + + "'peerDataOperationRequestResponseMessage\x18\x11 \x01(\v2:.WAWebProtobufsE2E.PeerDataOperationRequestResponseMessageR'peerDataOperationRequestResponseMessage\x12U\n" + + "\x12botFeedbackMessage\x18\x12 \x01(\v2%.WAWebProtobufsE2E.BotFeedbackMessageR\x12botFeedbackMessage\x12\x1e\n" + + "\n" + + "invokerJID\x18\x13 \x01(\tR\n" + + "invokerJID\x12v\n" + + "\x1drequestWelcomeMessageMetadata\x18\x14 \x01(\v20.WAWebProtobufsE2E.RequestWelcomeMessageMetadataR\x1drequestWelcomeMessageMetadata\x12U\n" + + "\x12mediaNotifyMessage\x18\x15 \x01(\v2%.WAWebProtobufsE2E.MediaNotifyMessageR\x12mediaNotifyMessage\x12\x82\x01\n" + + "!cloudApiThreadControlNotification\x18\x16 \x01(\v24.WAWebProtobufsE2E.CloudAPIThreadControlNotificationR!cloudApiThreadControlNotification\x12y\n" + + "\x1elidMigrationMappingSyncMessage\x18\x17 \x01(\v21.WAWebProtobufsE2E.LIDMigrationMappingSyncMessageR\x1elidMigrationMappingSyncMessage\x12:\n" + + "\flimitSharing\x18\x18 \x01(\v2\x16.WACommon.LimitSharingR\flimitSharing\x12$\n" + + "\raiPsiMetadata\x18\x19 \x01(\fR\raiPsiMetadata\x12F\n" + + "\raiQueryFanout\x18\x1a \x01(\v2 .WAWebProtobufsE2E.AIQueryFanoutR\raiQueryFanout\x12@\n" + + "\vmemberLabel\x18\x1b \x01(\v2\x1e.WAWebProtobufsE2E.MemberLabelR\vmemberLabel\"\x8d\x06\n" + + "\x04Type\x12\n" + + "\n" + + "\x06REVOKE\x10\x00\x12\x15\n" + + "\x11EPHEMERAL_SETTING\x10\x03\x12\x1b\n" + + "\x17EPHEMERAL_SYNC_RESPONSE\x10\x04\x12\x1d\n" + + "\x19HISTORY_SYNC_NOTIFICATION\x10\x05\x12\x1c\n" + + "\x18APP_STATE_SYNC_KEY_SHARE\x10\x06\x12\x1e\n" + + "\x1aAPP_STATE_SYNC_KEY_REQUEST\x10\a\x12\x1f\n" + + "\x1bMSG_FANOUT_BACKFILL_REQUEST\x10\b\x12.\n" + + "*INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC\x10\t\x12*\n" + + "&APP_STATE_FATAL_EXCEPTION_NOTIFICATION\x10\n" + + "\x12\x16\n" + + "\x12SHARE_PHONE_NUMBER\x10\v\x12\x10\n" + + "\fMESSAGE_EDIT\x10\x0e\x12'\n" + + "#PEER_DATA_OPERATION_REQUEST_MESSAGE\x10\x10\x120\n" + + ",PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE\x10\x11\x12\x1b\n" + + "\x17REQUEST_WELCOME_MESSAGE\x10\x12\x12\x18\n" + + "\x14BOT_FEEDBACK_MESSAGE\x10\x13\x12\x18\n" + + "\x14MEDIA_NOTIFY_MESSAGE\x10\x14\x12)\n" + + "%CLOUD_API_THREAD_CONTROL_NOTIFICATION\x10\x15\x12\x1e\n" + + "\x1aLID_MIGRATION_MAPPING_SYNC\x10\x16\x12\x14\n" + + "\x10REMINDER_MESSAGE\x10\x17\x12\x1f\n" + + "\x1bBOT_MEMU_ONBOARDING_MESSAGE\x10\x18\x12\x1a\n" + + "\x16STATUS_MENTION_MESSAGE\x10\x19\x12\x1b\n" + + "\x17STOP_GENERATION_MESSAGE\x10\x1a\x12\x11\n" + + "\rLIMIT_SHARING\x10\x1b\x12\x13\n" + + "\x0fAI_PSI_METADATA\x10\x1c\x12\x13\n" + + "\x0fAI_QUERY_FANOUT\x10\x1d\x12\x1d\n" + + "\x19GROUP_MEMBER_LABEL_CHANGE\x10\x1e\"\x85\x05\n" + + "!CloudAPIThreadControlNotification\x12b\n" + + "\x06status\x18\x01 \x01(\x0e2J.WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControlR\x06status\x12D\n" + + "\x1dsenderNotificationTimestampMS\x18\x02 \x01(\x03R\x1dsenderNotificationTimestampMS\x12 \n" + + "\vconsumerLid\x18\x03 \x01(\tR\vconsumerLid\x120\n" + + "\x13consumerPhoneNumber\x18\x04 \x01(\tR\x13consumerPhoneNumber\x12\x8f\x01\n" + + "\x13notificationContent\x18\x05 \x01(\v2].WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContentR\x13notificationContent\x1a\x82\x01\n" + + "(CloudAPIThreadControlNotificationContent\x128\n" + + "\x17handoffNotificationText\x18\x01 \x01(\tR\x17handoffNotificationText\x12\x1c\n" + + "\textraJSON\x18\x02 \x01(\tR\textraJSON\"K\n" + + "\x15CloudAPIThreadControl\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x12\n" + + "\x0eCONTROL_PASSED\x10\x01\x12\x11\n" + + "\rCONTROL_TAKEN\x10\x02\"\x83\v\n" + + "\x12BotFeedbackMessage\x124\n" + + "\n" + + "messageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\n" + + "messageKey\x12I\n" + + "\x04kind\x18\x02 \x01(\x0e25.WAWebProtobufsE2E.BotFeedbackMessage.BotFeedbackKindR\x04kind\x12\x12\n" + + "\x04text\x18\x03 \x01(\tR\x04text\x12\"\n" + + "\fkindNegative\x18\x04 \x01(\x04R\fkindNegative\x12\"\n" + + "\fkindPositive\x18\x05 \x01(\x04R\fkindPositive\x12P\n" + + "\n" + + "kindReport\x18\x06 \x01(\x0e20.WAWebProtobufsE2E.BotFeedbackMessage.ReportKindR\n" + + "kindReport\"\x19\n" + + "\n" + + "ReportKind\x12\v\n" + + "\aGENERIC\x10\x00\"M\n" + + "\x1fBotFeedbackKindMultiplePositive\x12*\n" + + "&BOT_FEEDBACK_MULTIPLE_POSITIVE_GENERIC\x10\x01\"\xcb\x03\n" + + "\x1fBotFeedbackKindMultipleNegative\x12*\n" + + "&BOT_FEEDBACK_MULTIPLE_NEGATIVE_GENERIC\x10\x01\x12*\n" + + "&BOT_FEEDBACK_MULTIPLE_NEGATIVE_HELPFUL\x10\x02\x12.\n" + + "*BOT_FEEDBACK_MULTIPLE_NEGATIVE_INTERESTING\x10\x04\x12+\n" + + "'BOT_FEEDBACK_MULTIPLE_NEGATIVE_ACCURATE\x10\b\x12'\n" + + "#BOT_FEEDBACK_MULTIPLE_NEGATIVE_SAFE\x10\x10\x12(\n" + + "$BOT_FEEDBACK_MULTIPLE_NEGATIVE_OTHER\x10 \x12*\n" + + "&BOT_FEEDBACK_MULTIPLE_NEGATIVE_REFUSED\x10@\x12:\n" + + "5BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_VISUALLY_APPEALING\x10\x80\x01\x128\n" + + "3BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\x80\x02\"\x85\x04\n" + + "\x0fBotFeedbackKind\x12\x19\n" + + "\x15BOT_FEEDBACK_POSITIVE\x10\x00\x12!\n" + + "\x1dBOT_FEEDBACK_NEGATIVE_GENERIC\x10\x01\x12!\n" + + "\x1dBOT_FEEDBACK_NEGATIVE_HELPFUL\x10\x02\x12%\n" + + "!BOT_FEEDBACK_NEGATIVE_INTERESTING\x10\x03\x12\"\n" + + "\x1eBOT_FEEDBACK_NEGATIVE_ACCURATE\x10\x04\x12\x1e\n" + + "\x1aBOT_FEEDBACK_NEGATIVE_SAFE\x10\x05\x12\x1f\n" + + "\x1bBOT_FEEDBACK_NEGATIVE_OTHER\x10\x06\x12!\n" + + "\x1dBOT_FEEDBACK_NEGATIVE_REFUSED\x10\a\x120\n" + + ",BOT_FEEDBACK_NEGATIVE_NOT_VISUALLY_APPEALING\x10\b\x12.\n" + + "*BOT_FEEDBACK_NEGATIVE_NOT_RELEVANT_TO_TEXT\x10\t\x12&\n" + + "\"BOT_FEEDBACK_NEGATIVE_PERSONALIZED\x10\n" + + "\x12!\n" + + "\x1dBOT_FEEDBACK_NEGATIVE_CLARITY\x10\v\x125\n" + + "1BOT_FEEDBACK_NEGATIVE_DOESNT_LOOK_LIKE_THE_PERSON\x10\f\"\xf3\t\n" + + "\fVideoMessage\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12\x1a\n" + + "\bmimetype\x18\x02 \x01(\tR\bmimetype\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x03 \x01(\fR\n" + + "fileSHA256\x12\x1e\n" + + "\n" + + "fileLength\x18\x04 \x01(\x04R\n" + + "fileLength\x12\x18\n" + + "\aseconds\x18\x05 \x01(\rR\aseconds\x12\x1a\n" + + "\bmediaKey\x18\x06 \x01(\fR\bmediaKey\x12\x18\n" + + "\acaption\x18\a \x01(\tR\acaption\x12 \n" + + "\vgifPlayback\x18\b \x01(\bR\vgifPlayback\x12\x16\n" + + "\x06height\x18\t \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\n" + + " \x01(\rR\x05width\x12$\n" + + "\rfileEncSHA256\x18\v \x01(\fR\rfileEncSHA256\x12`\n" + + "\x16interactiveAnnotations\x18\f \x03(\v2(.WAWebProtobufsE2E.InteractiveAnnotationR\x16interactiveAnnotations\x12\x1e\n" + + "\n" + + "directPath\x18\r \x01(\tR\n" + + "directPath\x12,\n" + + "\x11mediaKeyTimestamp\x18\x0e \x01(\x03R\x11mediaKeyTimestamp\x12$\n" + + "\rJPEGThumbnail\x18\x10 \x01(\fR\rJPEGThumbnail\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12*\n" + + "\x10streamingSidecar\x18\x12 \x01(\fR\x10streamingSidecar\x12S\n" + + "\x0egifAttribution\x18\x13 \x01(\x0e2+.WAWebProtobufsE2E.VideoMessage.AttributionR\x0egifAttribution\x12\x1a\n" + + "\bviewOnce\x18\x14 \x01(\bR\bviewOnce\x120\n" + + "\x13thumbnailDirectPath\x18\x15 \x01(\tR\x13thumbnailDirectPath\x12(\n" + + "\x0fthumbnailSHA256\x18\x16 \x01(\fR\x0fthumbnailSHA256\x12.\n" + + "\x12thumbnailEncSHA256\x18\x17 \x01(\fR\x12thumbnailEncSHA256\x12\x1c\n" + + "\tstaticURL\x18\x18 \x01(\tR\tstaticURL\x12J\n" + + "\vannotations\x18\x19 \x03(\v2(.WAWebProtobufsE2E.InteractiveAnnotationR\vannotations\x12.\n" + + "\x12accessibilityLabel\x18\x1a \x01(\tR\x12accessibilityLabel\x12K\n" + + "\x0fprocessedVideos\x18\x1b \x03(\v2!.WAWebProtobufsE2E.ProcessedVideoR\x0fprocessedVideos\x12X\n" + + "'externalShareFullVideoDurationInSeconds\x18\x1c \x01(\rR'externalShareFullVideoDurationInSeconds\"-\n" + + "\vAttribution\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05GIPHY\x10\x01\x12\t\n" + + "\x05TENOR\x10\x02\"\xcc\x0e\n" + + "\x13ExtendedTextMessage\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x12 \n" + + "\vmatchedText\x18\x02 \x01(\tR\vmatchedText\x12 \n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\x12\x14\n" + + "\x05title\x18\x06 \x01(\tR\x05title\x12\x1a\n" + + "\btextArgb\x18\a \x01(\aR\btextArgb\x12&\n" + + "\x0ebackgroundArgb\x18\b \x01(\aR\x0ebackgroundArgb\x12C\n" + + "\x04font\x18\t \x01(\x0e2/.WAWebProtobufsE2E.ExtendedTextMessage.FontTypeR\x04font\x12T\n" + + "\vpreviewType\x18\n" + + " \x01(\x0e22.WAWebProtobufsE2E.ExtendedTextMessage.PreviewTypeR\vpreviewType\x12$\n" + + "\rJPEGThumbnail\x18\x10 \x01(\fR\rJPEGThumbnail\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12(\n" + + "\x0fdoNotPlayInline\x18\x12 \x01(\bR\x0fdoNotPlayInline\x120\n" + + "\x13thumbnailDirectPath\x18\x13 \x01(\tR\x13thumbnailDirectPath\x12(\n" + + "\x0fthumbnailSHA256\x18\x14 \x01(\fR\x0fthumbnailSHA256\x12.\n" + + "\x12thumbnailEncSHA256\x18\x15 \x01(\fR\x12thumbnailEncSHA256\x12\x1a\n" + + "\bmediaKey\x18\x16 \x01(\fR\bmediaKey\x12,\n" + + "\x11mediaKeyTimestamp\x18\x17 \x01(\x03R\x11mediaKeyTimestamp\x12(\n" + + "\x0fthumbnailHeight\x18\x18 \x01(\rR\x0fthumbnailHeight\x12&\n" + + "\x0ethumbnailWidth\x18\x19 \x01(\rR\x0ethumbnailWidth\x12l\n" + + "\x13inviteLinkGroupType\x18\x1a \x01(\x0e2:.WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupTypeR\x13inviteLinkGroupType\x12F\n" + + "\x1einviteLinkParentGroupSubjectV2\x18\x1b \x01(\tR\x1einviteLinkParentGroupSubjectV2\x12J\n" + + " inviteLinkParentGroupThumbnailV2\x18\x1c \x01(\fR inviteLinkParentGroupThumbnailV2\x12p\n" + + "\x15inviteLinkGroupTypeV2\x18\x1d \x01(\x0e2:.WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupTypeR\x15inviteLinkGroupTypeV2\x12\x1a\n" + + "\bviewOnce\x18\x1e \x01(\bR\bviewOnce\x12 \n" + + "\vvideoHeight\x18\x1f \x01(\rR\vvideoHeight\x12\x1e\n" + + "\n" + + "videoWidth\x18 \x01(\rR\n" + + "videoWidth\x12W\n" + + "\x12faviconMMSMetadata\x18! \x01(\v2'.WAWebProtobufsE2E.MMSThumbnailMetadataR\x12faviconMMSMetadata\x12X\n" + + "\x13linkPreviewMetadata\x18\" \x01(\v2&.WAWebProtobufsE2E.LinkPreviewMetadataR\x13linkPreviewMetadata\x12X\n" + + "\x13paymentLinkMetadata\x18# \x01(\v2&.WAWebProtobufsE2E.PaymentLinkMetadataR\x13paymentLinkMetadata\"H\n" + + "\x13InviteLinkGroupType\x12\v\n" + + "\aDEFAULT\x10\x00\x12\n" + + "\n" + + "\x06PARENT\x10\x01\x12\a\n" + + "\x03SUB\x10\x02\x12\x0f\n" + + "\vDEFAULT_SUB\x10\x03\"^\n" + + "\vPreviewType\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05VIDEO\x10\x01\x12\x0f\n" + + "\vPLACEHOLDER\x10\x04\x12\t\n" + + "\x05IMAGE\x10\x05\x12\x11\n" + + "\rPAYMENT_LINKS\x10\x06\x12\v\n" + + "\aPROFILE\x10\a\"\xa4\x01\n" + + "\bFontType\x12\n" + + "\n" + + "\x06SYSTEM\x10\x00\x12\x0f\n" + + "\vSYSTEM_TEXT\x10\x01\x12\r\n" + + "\tFB_SCRIPT\x10\x02\x12\x0f\n" + + "\vSYSTEM_BOLD\x10\x06\x12\x19\n" + + "\x15MORNINGBREEZE_REGULAR\x10\a\x12\x15\n" + + "\x11CALISTOGA_REGULAR\x10\b\x12\x12\n" + + "\x0eEXO2_EXTRABOLD\x10\t\x12\x15\n" + + "\x11COURIERPRIME_BOLD\x10\n" + + "\"\xac\x03\n" + + "\x13PaymentLinkMetadata\x12P\n" + + "\x06button\x18\x01 \x01(\v28.WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButtonR\x06button\x12P\n" + + "\x06header\x18\x02 \x01(\v28.WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeaderR\x06header\x1a\xb9\x01\n" + + "\x11PaymentLinkHeader\x12n\n" + + "\n" + + "headerType\x18\x01 \x01(\x0e2N.WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderTypeR\n" + + "headerType\"4\n" + + "\x15PaymentLinkHeaderType\x12\x10\n" + + "\fLINK_PREVIEW\x10\x00\x12\t\n" + + "\x05ORDER\x10\x01\x1a5\n" + + "\x11PaymentLinkButton\x12 \n" + + "\vdisplayText\x18\x01 \x01(\tR\vdisplayText\"\xd1\x02\n" + + "\x19StatusNotificationMessage\x12D\n" + + "\x12responseMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x12responseMessageKey\x12D\n" + + "\x12originalMessageKey\x18\x02 \x01(\v2\x14.WACommon.MessageKeyR\x12originalMessageKey\x12W\n" + + "\x04type\x18\x03 \x01(\x0e2C.WAWebProtobufsE2E.StatusNotificationMessage.StatusNotificationTypeR\x04type\"O\n" + + "\x16StatusNotificationType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x14\n" + + "\x10STATUS_ADD_YOURS\x10\x01\x12\x12\n" + + "\x0eSTATUS_RESHARE\x10\x02\"\xb8\x04\n" + + "\x0eInvoiceMessage\x12\x12\n" + + "\x04note\x18\x01 \x01(\tR\x04note\x12\x14\n" + + "\x05token\x18\x02 \x01(\tR\x05token\x12X\n" + + "\x0eattachmentType\x18\x03 \x01(\x0e20.WAWebProtobufsE2E.InvoiceMessage.AttachmentTypeR\x0eattachmentType\x12.\n" + + "\x12attachmentMimetype\x18\x04 \x01(\tR\x12attachmentMimetype\x12.\n" + + "\x12attachmentMediaKey\x18\x05 \x01(\fR\x12attachmentMediaKey\x12@\n" + + "\x1battachmentMediaKeyTimestamp\x18\x06 \x01(\x03R\x1battachmentMediaKeyTimestamp\x122\n" + + "\x14attachmentFileSHA256\x18\a \x01(\fR\x14attachmentFileSHA256\x128\n" + + "\x17attachmentFileEncSHA256\x18\b \x01(\fR\x17attachmentFileEncSHA256\x122\n" + + "\x14attachmentDirectPath\x18\t \x01(\tR\x14attachmentDirectPath\x128\n" + + "\x17attachmentJPEGThumbnail\x18\n" + + " \x01(\fR\x17attachmentJPEGThumbnail\"$\n" + + "\x0eAttachmentType\x12\t\n" + + "\x05IMAGE\x10\x00\x12\a\n" + + "\x03PDF\x10\x01\"\xd5\n" + + "\n" + + "\fImageMessage\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12\x1a\n" + + "\bmimetype\x18\x02 \x01(\tR\bmimetype\x12\x18\n" + + "\acaption\x18\x03 \x01(\tR\acaption\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x04 \x01(\fR\n" + + "fileSHA256\x12\x1e\n" + + "\n" + + "fileLength\x18\x05 \x01(\x04R\n" + + "fileLength\x12\x16\n" + + "\x06height\x18\x06 \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\a \x01(\rR\x05width\x12\x1a\n" + + "\bmediaKey\x18\b \x01(\fR\bmediaKey\x12$\n" + + "\rfileEncSHA256\x18\t \x01(\fR\rfileEncSHA256\x12`\n" + + "\x16interactiveAnnotations\x18\n" + + " \x03(\v2(.WAWebProtobufsE2E.InteractiveAnnotationR\x16interactiveAnnotations\x12\x1e\n" + + "\n" + + "directPath\x18\v \x01(\tR\n" + + "directPath\x12,\n" + + "\x11mediaKeyTimestamp\x18\f \x01(\x03R\x11mediaKeyTimestamp\x12$\n" + + "\rJPEGThumbnail\x18\x10 \x01(\fR\rJPEGThumbnail\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12*\n" + + "\x10firstScanSidecar\x18\x12 \x01(\fR\x10firstScanSidecar\x12(\n" + + "\x0ffirstScanLength\x18\x13 \x01(\rR\x0ffirstScanLength\x12,\n" + + "\x11experimentGroupID\x18\x14 \x01(\rR\x11experimentGroupID\x12\"\n" + + "\fscansSidecar\x18\x15 \x01(\fR\fscansSidecar\x12 \n" + + "\vscanLengths\x18\x16 \x03(\rR\vscanLengths\x122\n" + + "\x14midQualityFileSHA256\x18\x17 \x01(\fR\x14midQualityFileSHA256\x128\n" + + "\x17midQualityFileEncSHA256\x18\x18 \x01(\fR\x17midQualityFileEncSHA256\x12\x1a\n" + + "\bviewOnce\x18\x19 \x01(\bR\bviewOnce\x120\n" + + "\x13thumbnailDirectPath\x18\x1a \x01(\tR\x13thumbnailDirectPath\x12(\n" + + "\x0fthumbnailSHA256\x18\x1b \x01(\fR\x0fthumbnailSHA256\x12.\n" + + "\x12thumbnailEncSHA256\x18\x1c \x01(\fR\x12thumbnailEncSHA256\x12\x1c\n" + + "\tstaticURL\x18\x1d \x01(\tR\tstaticURL\x12J\n" + + "\vannotations\x18\x1e \x03(\v2(.WAWebProtobufsE2E.InteractiveAnnotationR\vannotations\x12Y\n" + + "\x0fimageSourceType\x18\x1f \x01(\x0e2/.WAWebProtobufsE2E.ImageMessage.ImageSourceTypeR\x0fimageSourceType\x12.\n" + + "\x12accessibilityLabel\x18 \x01(\tR\x12accessibilityLabel\"`\n" + + "\x0fImageSourceType\x12\x0e\n" + + "\n" + + "USER_IMAGE\x10\x00\x12\x10\n" + + "\fAI_GENERATED\x10\x01\x12\x0f\n" + + "\vAI_MODIFIED\x10\x02\x12\x1a\n" + + "\x16RASTERIZED_TEXT_STATUS\x10\x03\"\xaf.\n" + + "\vContextInfo\x12\x1a\n" + + "\bstanzaID\x18\x01 \x01(\tR\bstanzaID\x12 \n" + + "\vparticipant\x18\x02 \x01(\tR\vparticipant\x12@\n" + + "\rquotedMessage\x18\x03 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\rquotedMessage\x12\x1c\n" + + "\tremoteJID\x18\x04 \x01(\tR\tremoteJID\x12\"\n" + + "\fmentionedJID\x18\x0f \x03(\tR\fmentionedJID\x12*\n" + + "\x10conversionSource\x18\x12 \x01(\tR\x10conversionSource\x12&\n" + + "\x0econversionData\x18\x13 \x01(\fR\x0econversionData\x126\n" + + "\x16conversionDelaySeconds\x18\x14 \x01(\rR\x16conversionDelaySeconds\x12(\n" + + "\x0fforwardingScore\x18\x15 \x01(\rR\x0fforwardingScore\x12 \n" + + "\visForwarded\x18\x16 \x01(\bR\visForwarded\x12F\n" + + "\bquotedAd\x18\x17 \x01(\v2*.WAWebProtobufsE2E.ContextInfo.AdReplyInfoR\bquotedAd\x12<\n" + + "\x0eplaceholderKey\x18\x18 \x01(\v2\x14.WACommon.MessageKeyR\x0eplaceholderKey\x12\x1e\n" + + "\n" + + "expiration\x18\x19 \x01(\rR\n" + + "expiration\x12<\n" + + "\x19ephemeralSettingTimestamp\x18\x1a \x01(\x03R\x19ephemeralSettingTimestamp\x124\n" + + "\x15ephemeralSharedSecret\x18\x1b \x01(\fR\x15ephemeralSharedSecret\x12\\\n" + + "\x0fexternalAdReply\x18\x1c \x01(\v22.WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfoR\x0fexternalAdReply\x12>\n" + + "\x1aentryPointConversionSource\x18\x1d \x01(\tR\x1aentryPointConversionSource\x128\n" + + "\x17entryPointConversionApp\x18\x1e \x01(\tR\x17entryPointConversionApp\x12J\n" + + " entryPointConversionDelaySeconds\x18\x1f \x01(\rR entryPointConversionDelaySeconds\x12O\n" + + "\x10disappearingMode\x18 \x01(\v2#.WAWebProtobufsE2E.DisappearingModeR\x10disappearingMode\x12=\n" + + "\n" + + "actionLink\x18! \x01(\v2\x1d.WAWebProtobufsE2E.ActionLinkR\n" + + "actionLink\x12\"\n" + + "\fgroupSubject\x18\" \x01(\tR\fgroupSubject\x12&\n" + + "\x0eparentGroupJID\x18# \x01(\tR\x0eparentGroupJID\x12(\n" + + "\x0ftrustBannerType\x18% \x01(\tR\x0ftrustBannerType\x12,\n" + + "\x11trustBannerAction\x18& \x01(\rR\x11trustBannerAction\x12\x1c\n" + + "\tisSampled\x18' \x01(\bR\tisSampled\x12E\n" + + "\rgroupMentions\x18( \x03(\v2\x1f.WAWebProtobufsE2E.GroupMentionR\rgroupMentions\x128\n" + + "\x03utm\x18) \x01(\v2&.WAWebProtobufsE2E.ContextInfo.UTMInfoR\x03utm\x12\x85\x01\n" + + "\x1eforwardedNewsletterMessageInfo\x18+ \x01(\v2=.WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfoR\x1eforwardedNewsletterMessageInfo\x12y\n" + + "\x1abusinessMessageForwardInfo\x18, \x01(\v29.WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfoR\x1abusinessMessageForwardInfo\x120\n" + + "\x13smbClientCampaignID\x18- \x01(\tR\x13smbClientCampaignID\x120\n" + + "\x13smbServerCampaignID\x18. \x01(\tR\x13smbServerCampaignID\x12a\n" + + "\x12dataSharingContext\x18/ \x01(\v21.WAWebProtobufsE2E.ContextInfo.DataSharingContextR\x12dataSharingContext\x128\n" + + "\x17alwaysShowAdAttribution\x180 \x01(\bR\x17alwaysShowAdAttribution\x12g\n" + + "\x14featureEligibilities\x181 \x01(\v23.WAWebProtobufsE2E.ContextInfo.FeatureEligibilitiesR\x14featureEligibilities\x12N\n" + + "\"entryPointConversionExternalSource\x182 \x01(\tR\"entryPointConversionExternalSource\x12N\n" + + "\"entryPointConversionExternalMedium\x183 \x01(\tR\"entryPointConversionExternalMedium\x12 \n" + + "\vctwaSignals\x186 \x01(\tR\vctwaSignals\x12 \n" + + "\vctwaPayload\x187 \x01(\fR\vctwaPayload\x12v\n" + + "\x19forwardedAiBotMessageInfo\x188 \x01(\v28.WAWebProtobufsE2E.ContextInfo.ForwardedAIBotMessageInfoR\x19forwardedAiBotMessageInfo\x12j\n" + + "\x15statusAttributionType\x189 \x01(\x0e24.WAWebProtobufsE2E.ContextInfo.StatusAttributionTypeR\x15statusAttributionType\x12I\n" + + "\x0eurlTrackingMap\x18: \x01(\v2!.WAWebProtobufsE2E.UrlTrackingMapR\x0eurlTrackingMap\x12X\n" + + "\x0fpairedMediaType\x18; \x01(\x0e2..WAWebProtobufsE2E.ContextInfo.PairedMediaTypeR\x0fpairedMediaType\x12&\n" + + "\x0erankingVersion\x18< \x01(\rR\x0erankingVersion\x12@\n" + + "\vmemberLabel\x18> \x01(\v2\x1e.WAWebProtobufsE2E.MemberLabelR\vmemberLabel\x12\x1e\n" + + "\n" + + "isQuestion\x18? \x01(\bR\n" + + "isQuestion\x12[\n" + + "\x10statusSourceType\x18@ \x01(\x0e2/.WAWebProtobufsE2E.ContextInfo.StatusSourceTypeR\x10statusSourceType\x1a\xee\x02\n" + + "\x1eForwardedNewsletterMessageInfo\x12$\n" + + "\rnewsletterJID\x18\x01 \x01(\tR\rnewsletterJID\x12(\n" + + "\x0fserverMessageID\x18\x02 \x01(\x05R\x0fserverMessageID\x12&\n" + + "\x0enewsletterName\x18\x03 \x01(\tR\x0enewsletterName\x12k\n" + + "\vcontentType\x18\x04 \x01(\x0e2I.WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentTypeR\vcontentType\x12,\n" + + "\x11accessibilityText\x18\x05 \x01(\tR\x11accessibilityText\"9\n" + + "\vContentType\x12\n" + + "\n" + + "\x06UPDATE\x10\x01\x12\x0f\n" + + "\vUPDATE_CARD\x10\x02\x12\r\n" + + "\tLINK_CARD\x10\x03\x1a\x95\t\n" + + "\x13ExternalAdReplyInfo\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12\x12\n" + + "\x04body\x18\x02 \x01(\tR\x04body\x12Z\n" + + "\tmediaType\x18\x03 \x01(\x0e2<.WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaTypeR\tmediaType\x12\"\n" + + "\fthumbnailURL\x18\x04 \x01(\tR\fthumbnailURL\x12\x1a\n" + + "\bmediaURL\x18\x05 \x01(\tR\bmediaURL\x12\x1c\n" + + "\tthumbnail\x18\x06 \x01(\fR\tthumbnail\x12\x1e\n" + + "\n" + + "sourceType\x18\a \x01(\tR\n" + + "sourceType\x12\x1a\n" + + "\bsourceID\x18\b \x01(\tR\bsourceID\x12\x1c\n" + + "\tsourceURL\x18\t \x01(\tR\tsourceURL\x12,\n" + + "\x11containsAutoReply\x18\n" + + " \x01(\bR\x11containsAutoReply\x124\n" + + "\x15renderLargerThumbnail\x18\v \x01(\bR\x15renderLargerThumbnail\x12,\n" + + "\x11showAdAttribution\x18\f \x01(\bR\x11showAdAttribution\x12\x1a\n" + + "\bctwaClid\x18\r \x01(\tR\bctwaClid\x12\x10\n" + + "\x03ref\x18\x0e \x01(\tR\x03ref\x120\n" + + "\x13clickToWhatsappCall\x18\x0f \x01(\bR\x13clickToWhatsappCall\x12<\n" + + "\x19adContextPreviewDismissed\x18\x10 \x01(\bR\x19adContextPreviewDismissed\x12\x1c\n" + + "\tsourceApp\x18\x11 \x01(\tR\tsourceApp\x12D\n" + + "\x1dautomatedGreetingMessageShown\x18\x12 \x01(\bR\x1dautomatedGreetingMessageShown\x120\n" + + "\x13greetingMessageBody\x18\x13 \x01(\tR\x13greetingMessageBody\x12\x1e\n" + + "\n" + + "ctaPayload\x18\x14 \x01(\tR\n" + + "ctaPayload\x12\"\n" + + "\fdisableNudge\x18\x15 \x01(\bR\fdisableNudge\x12*\n" + + "\x10originalImageURL\x18\x16 \x01(\tR\x10originalImageURL\x12H\n" + + "\x1fautomatedGreetingMessageCtaType\x18\x17 \x01(\tR\x1fautomatedGreetingMessageCtaType\x12\"\n" + + "\fwtwaAdFormat\x18\x18 \x01(\bR\fwtwaAdFormat\x12Q\n" + + "\x06adType\x18\x19 \x01(\x0e29.WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.AdTypeR\x06adType\"\x1c\n" + + "\x06AdType\x12\b\n" + + "\x04CTWA\x10\x00\x12\b\n" + + "\x04CAWC\x10\x01\"+\n" + + "\tMediaType\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05IMAGE\x10\x01\x12\t\n" + + "\x05VIDEO\x10\x02\x1a\xf6\x01\n" + + "\vAdReplyInfo\x12&\n" + + "\x0eadvertiserName\x18\x01 \x01(\tR\x0eadvertiserName\x12R\n" + + "\tmediaType\x18\x02 \x01(\x0e24.WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaTypeR\tmediaType\x12$\n" + + "\rJPEGThumbnail\x18\x10 \x01(\fR\rJPEGThumbnail\x12\x18\n" + + "\acaption\x18\x11 \x01(\tR\acaption\"+\n" + + "\tMediaType\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05IMAGE\x10\x01\x12\t\n" + + "\x05VIDEO\x10\x02\x1a\xc2\x01\n" + + "\x14FeatureEligibilities\x12,\n" + + "\x11cannotBeReactedTo\x18\x01 \x01(\bR\x11cannotBeReactedTo\x12&\n" + + "\x0ecannotBeRanked\x18\x02 \x01(\bR\x0ecannotBeRanked\x12.\n" + + "\x12canRequestFeedback\x18\x03 \x01(\bR\x12canRequestFeedback\x12$\n" + + "\rcanBeReshared\x18\x04 \x01(\bR\rcanBeReshared\x1a\xb7\x03\n" + + "\x12DataSharingContext\x12*\n" + + "\x10showMmDisclosure\x18\x01 \x01(\bR\x10showMmDisclosure\x12D\n" + + "\x1dencryptedSignalTokenConsented\x18\x02 \x01(\tR\x1dencryptedSignalTokenConsented\x12\\\n" + + "\n" + + "parameters\x18\x03 \x03(\v2<.WAWebProtobufsE2E.ContextInfo.DataSharingContext.ParametersR\n" + + "parameters\x1a\xd0\x01\n" + + "\n" + + "Parameters\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x1e\n" + + "\n" + + "stringData\x18\x02 \x01(\tR\n" + + "stringData\x12\x18\n" + + "\aintData\x18\x03 \x01(\x03R\aintData\x12\x1c\n" + + "\tfloatData\x18\x04 \x01(\x02R\tfloatData\x12X\n" + + "\bcontents\x18\x05 \x01(\v2<.WAWebProtobufsE2E.ContextInfo.DataSharingContext.ParametersR\bcontents\x1ao\n" + + "\x19ForwardedAIBotMessageInfo\x12\x18\n" + + "\abotName\x18\x01 \x01(\tR\abotName\x12\x16\n" + + "\x06botJID\x18\x02 \x01(\tR\x06botJID\x12 \n" + + "\vcreatorName\x18\x03 \x01(\tR\vcreatorName\x1aI\n" + + "\aUTMInfo\x12\x1c\n" + + "\tutmSource\x18\x01 \x01(\tR\tutmSource\x12 \n" + + "\vutmCampaign\x18\x02 \x01(\tR\vutmCampaign\x1aH\n" + + "\x1aBusinessMessageForwardInfo\x12*\n" + + "\x10businessOwnerJID\x18\x01 \x01(\tR\x10businessOwnerJID\"\\\n" + + "\x10StatusSourceType\x12\t\n" + + "\x05IMAGE\x10\x00\x12\t\n" + + "\x05VIDEO\x10\x01\x12\a\n" + + "\x03GIF\x10\x02\x12\t\n" + + "\x05AUDIO\x10\x03\x12\b\n" + + "\x04TEXT\x10\x04\x12\x14\n" + + "\x10MUSIC_STANDALONE\x10\x05\"y\n" + + "\x0fPairedMediaType\x12\x14\n" + + "\x10NOT_PAIRED_MEDIA\x10\x00\x12\x13\n" + + "\x0fSD_VIDEO_PARENT\x10\x01\x12\x12\n" + + "\x0eHD_VIDEO_CHILD\x10\x02\x12\x13\n" + + "\x0fSD_IMAGE_PARENT\x10\x03\x12\x12\n" + + "\x0eHD_IMAGE_CHILD\x10\x04\"T\n" + + "\x15StatusAttributionType\x12\b\n" + + "\x04NONE\x10\x00\x12\x19\n" + + "\x15RESHARED_FROM_MENTION\x10\x01\x12\x16\n" + + "\x12RESHARED_FROM_POST\x10\x02\"\xde\x06\n" + + "\x11BotPluginMetadata\x12O\n" + + "\bprovider\x18\x01 \x01(\x0e23.WAWebProtobufsE2E.BotPluginMetadata.SearchProviderR\bprovider\x12O\n" + + "\n" + + "pluginType\x18\x02 \x01(\x0e2/.WAWebProtobufsE2E.BotPluginMetadata.PluginTypeR\n" + + "pluginType\x12(\n" + + "\x0fthumbnailCDNURL\x18\x03 \x01(\tR\x0fthumbnailCDNURL\x12.\n" + + "\x12profilePhotoCDNURL\x18\x04 \x01(\tR\x12profilePhotoCDNURL\x12,\n" + + "\x11searchProviderURL\x18\x05 \x01(\tR\x11searchProviderURL\x12&\n" + + "\x0ereferenceIndex\x18\x06 \x01(\rR\x0ereferenceIndex\x12.\n" + + "\x12expectedLinksCount\x18\a \x01(\rR\x12expectedLinksCount\x12 \n" + + "\vsearchQuery\x18\t \x01(\tR\vsearchQuery\x12L\n" + + "\x16parentPluginMessageKey\x18\n" + + " \x01(\v2\x14.WACommon.MessageKeyR\x16parentPluginMessageKey\x12Y\n" + + "\x0fdeprecatedField\x18\v \x01(\x0e2/.WAWebProtobufsE2E.BotPluginMetadata.PluginTypeR\x0fdeprecatedField\x12[\n" + + "\x10parentPluginType\x18\f \x01(\x0e2/.WAWebProtobufsE2E.BotPluginMetadata.PluginTypeR\x10parentPluginType\x12$\n" + + "\rfaviconCDNURL\x18\r \x01(\tR\rfaviconCDNURL\"7\n" + + "\n" + + "PluginType\x12\x12\n" + + "\x0eUNKNOWN_PLUGIN\x10\x00\x12\t\n" + + "\x05REELS\x10\x01\x12\n" + + "\n" + + "\x06SEARCH\x10\x02\"@\n" + + "\x0eSearchProvider\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\b\n" + + "\x04BING\x10\x01\x12\n" + + "\n" + + "\x06GOOGLE\x10\x02\x12\v\n" + + "\aSUPPORT\x10\x03\"\x98\x01\n" + + "\x10BotLinkedAccount\x12L\n" + + "\x04type\x18\x01 \x01(\x0e28.WAWebProtobufsE2E.BotLinkedAccount.BotLinkedAccountTypeR\x04type\"6\n" + + "\x14BotLinkedAccountType\x12\x1e\n" + + "\x1aBOT_LINKED_ACCOUNT_TYPE_1P\x10\x00\"\x99.\n" + + "\x15AIRichResponseMessage\x12d\n" + + "\vmessageType\x18\x01 \x01(\x0e2B.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMessageTypeR\vmessageType\x12c\n" + + "\vsubmessages\x18\x02 \x03(\v2A.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessageR\vsubmessages\x12p\n" + + "\x0funifiedResponse\x18\x03 \x01(\v2F.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseUnifiedResponseR\x0funifiedResponse\x1a\xbe\x05\n" + + "\"AIRichResponseContentItemsMetadata\x12\x93\x01\n" + + "\ritemsMetadata\x18\x01 \x03(\v2m.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadataR\ritemsMetadata\x12y\n" + + "\vcontentType\x18\x02 \x01(\x0e2W.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.ContentTypeR\vcontentType\x1a\xc3\x01\n" + + "!AIRichResponseContentItemMetadata\x12\x80\x01\n" + + "\breelItem\x18\x01 \x01(\v2b.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseReelItemH\x00R\breelItemB\x1b\n" + + "\x19aIRichResponseContentItem\x1a\x96\x01\n" + + "\x16AIRichResponseReelItem\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12&\n" + + "\x0eprofileIconURL\x18\x02 \x01(\tR\x0eprofileIconURL\x12\"\n" + + "\fthumbnailURL\x18\x03 \x01(\tR\fthumbnailURL\x12\x1a\n" + + "\bvideoURL\x18\x04 \x01(\tR\bvideoURL\"(\n" + + "\vContentType\x12\v\n" + + "\aDEFAULT\x10\x00\x12\f\n" + + "\bCAROUSEL\x10\x01\x1a\xa3\x03\n" + + "\x1dAIRichResponseDynamicMetadata\x12|\n" + + "\x04type\x18\x01 \x01(\x0e2h.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataTypeR\x04type\x12\x18\n" + + "\aversion\x18\x02 \x01(\x04R\aversion\x12\x10\n" + + "\x03URL\x18\x03 \x01(\tR\x03URL\x12\x1c\n" + + "\tloopCount\x18\x04 \x01(\rR\tloopCount\"\xb9\x01\n" + + "!AIRichResponseDynamicMetadataType\x122\n" + + ".AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_UNKNOWN\x10\x00\x120\n" + + ",AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_IMAGE\x10\x01\x12.\n" + + "*AI_RICH_RESPONSE_DYNAMIC_METADATA_TYPE_GIF\x10\x02\x1a\xb6\x05\n" + + "\x1aAIRichResponseCodeMetadata\x12\"\n" + + "\fcodeLanguage\x18\x01 \x01(\tR\fcodeLanguage\x12{\n" + + "\n" + + "codeBlocks\x18\x02 \x03(\v2[.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeBlockR\n" + + "codeBlocks\x1a\xc7\x01\n" + + "\x17AIRichResponseCodeBlock\x12\x89\x01\n" + + "\rhighlightType\x18\x01 \x01(\x0e2c.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightTypeR\rhighlightType\x12 \n" + + "\vcodeContent\x18\x02 \x01(\tR\vcodeContent\"\xac\x02\n" + + "\x1fAIRichResponseCodeHighlightType\x12+\n" + + "'AI_RICH_RESPONSE_CODE_HIGHLIGHT_DEFAULT\x10\x00\x12+\n" + + "'AI_RICH_RESPONSE_CODE_HIGHLIGHT_KEYWORD\x10\x01\x12*\n" + + "&AI_RICH_RESPONSE_CODE_HIGHLIGHT_METHOD\x10\x02\x12*\n" + + "&AI_RICH_RESPONSE_CODE_HIGHLIGHT_STRING\x10\x03\x12*\n" + + "&AI_RICH_RESPONSE_CODE_HIGHLIGHT_NUMBER\x10\x04\x12+\n" + + "'AI_RICH_RESPONSE_CODE_HIGHLIGHT_COMMENT\x10\x05\x1a\x80\x04\n" + + "!AIRichResponseInlineImageMetadata\x12[\n" + + "\bimageURL\x18\x01 \x01(\v2?.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURLR\bimageURL\x12\x1c\n" + + "\timageText\x18\x02 \x01(\tR\timageText\x12\x85\x01\n" + + "\talignment\x18\x03 \x01(\x0e2g.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignmentR\talignment\x12\x1e\n" + + "\n" + + "tapLinkURL\x18\x04 \x01(\tR\n" + + "tapLinkURL\"\xb7\x01\n" + + "\x1cAIRichResponseImageAlignment\x121\n" + + "-AI_RICH_RESPONSE_IMAGE_LAYOUT_LEADING_ALIGNED\x10\x00\x122\n" + + ".AI_RICH_RESPONSE_IMAGE_LAYOUT_TRAILING_ALIGNED\x10\x01\x120\n" + + ",AI_RICH_RESPONSE_IMAGE_LAYOUT_CENTER_ALIGNED\x10\x02\x1a\xa9\b\n" + + "\x18AIRichResponseSubMessage\x12g\n" + + "\vmessageType\x18\x01 \x01(\x0e2E.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessageTypeR\vmessageType\x12v\n" + + "\x11gridImageMetadata\x18\x02 \x01(\v2H.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadataR\x11gridImageMetadata\x12 \n" + + "\vmessageText\x18\x03 \x01(\tR\vmessageText\x12p\n" + + "\rimageMetadata\x18\x04 \x01(\v2J.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadataR\rimageMetadata\x12g\n" + + "\fcodeMetadata\x18\x05 \x01(\v2C.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadataR\fcodeMetadata\x12j\n" + + "\rtableMetadata\x18\x06 \x01(\v2D.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadataR\rtableMetadata\x12p\n" + + "\x0fdynamicMetadata\x18\a \x01(\v2F.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadataR\x0fdynamicMetadata\x12j\n" + + "\rlatexMetadata\x18\b \x01(\v2D.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadataR\rlatexMetadata\x12d\n" + + "\vmapMetadata\x18\t \x01(\v2B.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadataR\vmapMetadata\x12\x7f\n" + + "\x14contentItemsMetadata\x18\n" + + " \x01(\v2K.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadataR\x14contentItemsMetadata\x1a\x92\x04\n" + + "\x19AIRichResponseMapMetadata\x12&\n" + + "\x0ecenterLatitude\x18\x01 \x01(\x01R\x0ecenterLatitude\x12(\n" + + "\x0fcenterLongitude\x18\x02 \x01(\x01R\x0fcenterLongitude\x12$\n" + + "\rlatitudeDelta\x18\x03 \x01(\x01R\rlatitudeDelta\x12&\n" + + "\x0elongitudeDelta\x18\x04 \x01(\x01R\x0elongitudeDelta\x12\x80\x01\n" + + "\vannotations\x18\x05 \x03(\v2^.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata.AIRichResponseMapAnnotationR\vannotations\x12\"\n" + + "\fshowInfoList\x18\x06 \x01(\bR\fshowInfoList\x1a\xad\x01\n" + + "\x1bAIRichResponseMapAnnotation\x12*\n" + + "\x10annotationNumber\x18\x01 \x01(\rR\x10annotationNumber\x12\x1a\n" + + "\blatitude\x18\x02 \x01(\x01R\blatitude\x12\x1c\n" + + "\tlongitude\x18\x03 \x01(\x01R\tlongitude\x12\x14\n" + + "\x05title\x18\x04 \x01(\tR\x05title\x12\x12\n" + + "\x04body\x18\x05 \x01(\tR\x04body\x1a\xa4\x04\n" + + "\x1bAIRichResponseLatexMetadata\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x12\x84\x01\n" + + "\vexpressions\x18\x02 \x03(\v2b.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpressionR\vexpressions\x1a\xe9\x02\n" + + "\x1dAIRichResponseLatexExpression\x12(\n" + + "\x0flatexExpression\x18\x01 \x01(\tR\x0flatexExpression\x12\x10\n" + + "\x03URL\x18\x02 \x01(\tR\x03URL\x12\x14\n" + + "\x05width\x18\x03 \x01(\x01R\x05width\x12\x16\n" + + "\x06height\x18\x04 \x01(\x01R\x06height\x12\x1e\n" + + "\n" + + "fontHeight\x18\x05 \x01(\x01R\n" + + "fontHeight\x12(\n" + + "\x0fimageTopPadding\x18\x06 \x01(\x01R\x0fimageTopPadding\x120\n" + + "\x13imageLeadingPadding\x18\a \x01(\x01R\x13imageLeadingPadding\x12.\n" + + "\x12imageBottomPadding\x18\b \x01(\x01R\x12imageBottomPadding\x122\n" + + "\x14imageTrailingPadding\x18\t \x01(\x01R\x14imageTrailingPadding\x1a3\n" + + "\x1dAIRichResponseUnifiedResponse\x12\x12\n" + + "\x04data\x18\x01 \x01(\fR\x04data\x1a\xdc\x01\n" + + "\x1bAIRichResponseTableMetadata\x12o\n" + + "\x04rows\x18\x01 \x03(\v2[.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata.AIRichResponseTableRowR\x04rows\x1aL\n" + + "\x16AIRichResponseTableRow\x12\x14\n" + + "\x05items\x18\x01 \x03(\tR\x05items\x12\x1c\n" + + "\tisHeading\x18\x02 \x01(\bR\tisHeading\x1a\xe5\x01\n" + + "\x1fAIRichResponseGridImageMetadata\x12c\n" + + "\fgridImageURL\x18\x01 \x01(\v2?.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURLR\fgridImageURL\x12]\n" + + "\timageURLs\x18\x02 \x03(\v2?.WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURLR\timageURLs\x1a\x8a\x01\n" + + "\x16AIRichResponseImageURL\x12(\n" + + "\x0fimagePreviewURL\x18\x01 \x01(\tR\x0fimagePreviewURL\x12(\n" + + "\x0fimageHighResURL\x18\x02 \x01(\tR\x0fimageHighResURL\x12\x1c\n" + + "\tsourceURL\x18\x03 \x01(\tR\tsourceURL\"\xca\x02\n" + + "\x1cAIRichResponseSubMessageType\x12\x1c\n" + + "\x18AI_RICH_RESPONSE_UNKNOWN\x10\x00\x12\x1f\n" + + "\x1bAI_RICH_RESPONSE_GRID_IMAGE\x10\x01\x12\x19\n" + + "\x15AI_RICH_RESPONSE_TEXT\x10\x02\x12!\n" + + "\x1dAI_RICH_RESPONSE_INLINE_IMAGE\x10\x03\x12\x1a\n" + + "\x16AI_RICH_RESPONSE_TABLE\x10\x04\x12\x19\n" + + "\x15AI_RICH_RESPONSE_CODE\x10\x05\x12\x1c\n" + + "\x18AI_RICH_RESPONSE_DYNAMIC\x10\x06\x12\x18\n" + + "\x14AI_RICH_RESPONSE_MAP\x10\a\x12\x1a\n" + + "\x16AI_RICH_RESPONSE_LATEX\x10\b\x12\"\n" + + "\x1eAI_RICH_RESPONSE_CONTENT_ITEMS\x10\t\"b\n" + + "\x19AIRichResponseMessageType\x12!\n" + + "\x1dAI_RICH_RESPONSE_TYPE_UNKNOWN\x10\x00\x12\"\n" + + "\x1eAI_RICH_RESPONSE_TYPE_STANDARD\x10\x01\"\xd5\x01\n" + + "\x1bBotPromotionMessageMetadata\x12e\n" + + "\rpromotionType\x18\x01 \x01(\x0e2?.WAWebProtobufsE2E.BotPromotionMessageMetadata.BotPromotionTypeR\rpromotionType\x12 \n" + + "\vbuttonTitle\x18\x02 \x01(\tR\vbuttonTitle\"-\n" + + "\x10BotPromotionType\x12\x10\n" + + "\fUNKNOWN_TYPE\x10\x00\x12\a\n" + + "\x03C50\x10\x01\"\xf1\x02\n" + + "\x10BotMediaMetadata\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x01 \x01(\tR\n" + + "fileSHA256\x12\x1a\n" + + "\bmediaKey\x18\x02 \x01(\tR\bmediaKey\x12$\n" + + "\rfileEncSHA256\x18\x03 \x01(\tR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x04 \x01(\tR\n" + + "directPath\x12,\n" + + "\x11mediaKeyTimestamp\x18\x05 \x01(\x03R\x11mediaKeyTimestamp\x12\x1a\n" + + "\bmimetype\x18\x06 \x01(\tR\bmimetype\x12]\n" + + "\x0forientationType\x18\a \x01(\x0e23.WAWebProtobufsE2E.BotMediaMetadata.OrientationTypeR\x0forientationType\"2\n" + + "\x0fOrientationType\x12\n" + + "\n" + + "\x06CENTER\x10\x01\x12\b\n" + + "\x04LEFT\x10\x02\x12\t\n" + + "\x05RIGHT\x10\x03\"\xdb\x03\n" + + "\x13BotReminderMetadata\x12B\n" + + "\x11requestMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x11requestMessageKey\x12M\n" + + "\x06action\x18\x02 \x01(\x0e25.WAWebProtobufsE2E.BotReminderMetadata.ReminderActionR\x06action\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x122\n" + + "\x14nextTriggerTimestamp\x18\x04 \x01(\x04R\x14nextTriggerTimestamp\x12V\n" + + "\tfrequency\x18\x05 \x01(\x0e28.WAWebProtobufsE2E.BotReminderMetadata.ReminderFrequencyR\tfrequency\"O\n" + + "\x11ReminderFrequency\x12\b\n" + + "\x04ONCE\x10\x01\x12\t\n" + + "\x05DAILY\x10\x02\x12\n" + + "\n" + + "\x06WEEKLY\x10\x03\x12\f\n" + + "\bBIWEEKLY\x10\x04\x12\v\n" + + "\aMONTHLY\x10\x05\"@\n" + + "\x0eReminderAction\x12\n" + + "\n" + + "\x06NOTIFY\x10\x01\x12\n" + + "\n" + + "\x06CREATE\x10\x02\x12\n" + + "\n" + + "\x06DELETE\x10\x03\x12\n" + + "\n" + + "\x06UPDATE\x10\x04\"\xdf\x02\n" + + "\x10BotModelMetadata\x12K\n" + + "\tmodelType\x18\x01 \x01(\x0e2-.WAWebProtobufsE2E.BotModelMetadata.ModelTypeR\tmodelType\x12f\n" + + "\x12premiumModelStatus\x18\x02 \x01(\x0e26.WAWebProtobufsE2E.BotModelMetadata.PremiumModelStatusR\x12premiumModelStatus\"O\n" + + "\x12PremiumModelStatus\x12\x12\n" + + "\x0eUNKNOWN_STATUS\x10\x00\x12\r\n" + + "\tAVAILABLE\x10\x01\x12\x16\n" + + "\x12QUOTA_EXCEED_LIMIT\x10\x02\"E\n" + + "\tModelType\x12\x10\n" + + "\fUNKNOWN_TYPE\x10\x00\x12\x0e\n" + + "\n" + + "LLAMA_PROD\x10\x01\x12\x16\n" + + "\x12LLAMA_PROD_PREMIUM\x10\x02\"\xe8\r\n" + + "\x1cBotProgressIndicatorMetadata\x120\n" + + "\x13progressDescription\x18\x01 \x01(\tR\x13progressDescription\x12m\n" + + "\rstepsMetadata\x18\x02 \x03(\v2G.WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadataR\rstepsMetadata\x1a\xa6\f\n" + + "\x17BotPlanningStepMetadata\x12 \n" + + "\vstatusTitle\x18\x01 \x01(\tR\vstatusTitle\x12\x1e\n" + + "\n" + + "statusBody\x18\x02 \x01(\tR\n" + + "statusBody\x12\x92\x01\n" + + "\x0fsourcesMetadata\x18\x03 \x03(\v2h.WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadataR\x0fsourcesMetadata\x12r\n" + + "\x06status\x18\x04 \x01(\x0e2Z.WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatusR\x06status\x12 \n" + + "\visReasoning\x18\x05 \x01(\bR\visReasoning\x12*\n" + + "\x10isEnhancedSearch\x18\x06 \x01(\bR\x10isEnhancedSearch\x12\x82\x01\n" + + "\bsections\x18\a \x03(\v2f.WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadataR\bsections\x1a\xdb\x02\n" + + " BotPlanningSearchSourcesMetadata\x12 \n" + + "\vsourceTitle\x18\x01 \x01(\tR\vsourceTitle\x12\xa5\x01\n" + + "\bprovider\x18\x02 \x01(\x0e2\x88\x01.WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProviderR\bprovider\x12\x1c\n" + + "\tsourceURL\x18\x03 \x01(\tR\tsourceURL\"O\n" + + "\x1fBotPlanningSearchSourceProvider\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\t\n" + + "\x05OTHER\x10\x01\x12\n" + + "\n" + + "\x06GOOGLE\x10\x02\x12\b\n" + + "\x04BING\x10\x03\x1a\xfa\x01\n" + + "\x1eBotPlanningStepSectionMetadata\x12\"\n" + + "\fsectionTitle\x18\x01 \x01(\tR\fsectionTitle\x12 \n" + + "\vsectionBody\x18\x02 \x01(\tR\vsectionBody\x12\x91\x01\n" + + "\x0fsourcesMetadata\x18\x03 \x03(\v2g.WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadataR\x0fsourcesMetadata\x1a\xf2\x01\n" + + "\x1fBotPlanningSearchSourceMetadata\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12{\n" + + "\bprovider\x18\x02 \x01(\x0e2_.WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProviderR\bprovider\x12\x1c\n" + + "\tsourceURL\x18\x03 \x01(\tR\tsourceURL\x12\x1e\n" + + "\n" + + "favIconURL\x18\x04 \x01(\tR\n" + + "favIconURL\"P\n" + + "\x17BotSearchSourceProvider\x12\x14\n" + + "\x10UNKNOWN_PROVIDER\x10\x00\x12\t\n" + + "\x05OTHER\x10\x01\x12\n" + + "\n" + + "\x06GOOGLE\x10\x02\x12\b\n" + + "\x04BING\x10\x03\"K\n" + + "\x12PlanningStepStatus\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\v\n" + + "\aPLANNED\x10\x01\x12\r\n" + + "\tEXECUTING\x10\x02\x12\f\n" + + "\bFINISHED\x10\x03\"\xcb\t\n" + + "\x15BotCapabilityMetadata\x12^\n" + + "\fcapabilities\x18\x01 \x03(\x0e2:.WAWebProtobufsE2E.BotCapabilityMetadata.BotCapabilityTypeR\fcapabilities\"\xd1\b\n" + + "\x11BotCapabilityType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x16\n" + + "\x12PROGRESS_INDICATOR\x10\x01\x12\x19\n" + + "\x15RICH_RESPONSE_HEADING\x10\x02\x12\x1d\n" + + "\x19RICH_RESPONSE_NESTED_LIST\x10\x03\x12\r\n" + + "\tAI_MEMORY\x10\x04\x12 \n" + + "\x1cRICH_RESPONSE_THREAD_SURFING\x10\x05\x12\x17\n" + + "\x13RICH_RESPONSE_TABLE\x10\x06\x12\x16\n" + + "\x12RICH_RESPONSE_CODE\x10\a\x12%\n" + + "!RICH_RESPONSE_STRUCTURED_RESPONSE\x10\b\x12\x1e\n" + + "\x1aRICH_RESPONSE_INLINE_IMAGE\x10\t\x12#\n" + + "\x1fWA_IG_1P_PLUGIN_RANKING_CONTROL\x10\n" + + "\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_1\x10\v\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_2\x10\f\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_3\x10\r\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_4\x10\x0e\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_5\x10\x0f\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_6\x10\x10\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_7\x10\x11\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_8\x10\x12\x12$\n" + + " WA_IG_1P_PLUGIN_RANKING_UPDATE_9\x10\x13\x12%\n" + + "!WA_IG_1P_PLUGIN_RANKING_UPDATE_10\x10\x14\x12\x1d\n" + + "\x19RICH_RESPONSE_SUB_HEADING\x10\x15\x12\x1c\n" + + "\x18RICH_RESPONSE_GRID_IMAGE\x10\x16\x12\x18\n" + + "\x14AI_STUDIO_UGC_MEMORY\x10\x17\x12\x17\n" + + "\x13RICH_RESPONSE_LATEX\x10\x18\x12\x16\n" + + "\x12RICH_RESPONSE_MAPS\x10\x19\x12\x1e\n" + + "\x1aRICH_RESPONSE_INLINE_REELS\x10\x1a\x12\x14\n" + + "\x10AGENTIC_PLANNING\x10\x1b\x12\x13\n" + + "\x0fACCOUNT_LINKING\x10\x1c\x12\x1c\n" + + "\x18STREAMING_DISAGGREGATION\x10\x1d\x12\x1f\n" + + "\x1bRICH_RESPONSE_GRID_IMAGE_3P\x10\x1e\x12\x1e\n" + + "\x1aRICH_RESPONSE_LATEX_INLINE\x10\x1f\x12\x0e\n" + + "\n" + + "QUERY_PLAN\x10 \x12\x15\n" + + "\x11PROACTIVE_MESSAGE\x10!\x12\"\n" + + "\x1eRICH_RESPONSE_UNIFIED_RESPONSE\x10\"\x12\x15\n" + + "\x11PROMOTION_MESSAGE\x10#\"\xae\x01\n" + + "\x18BotModeSelectionMetadata\x12T\n" + + "\x04mode\x18\x01 \x03(\x0e2@.WAWebProtobufsE2E.BotModeSelectionMetadata.BotUserSelectionModeR\x04mode\"<\n" + + "\x14BotUserSelectionMode\x12\x10\n" + + "\fUNKNOWN_MODE\x10\x00\x12\x12\n" + + "\x0eREASONING_MODE\x10\x01\"\xab\x03\n" + + "\x10BotQuotaMetadata\x12u\n" + + "\x17botFeatureQuotaMetadata\x18\x01 \x03(\v2;.WAWebProtobufsE2E.BotQuotaMetadata.BotFeatureQuotaMetadataR\x17botFeatureQuotaMetadata\x1a\x9f\x02\n" + + "\x17BotFeatureQuotaMetadata\x12l\n" + + "\vfeatureType\x18\x01 \x01(\x0e2J.WAWebProtobufsE2E.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureTypeR\vfeatureType\x12&\n" + + "\x0eremainingQuota\x18\x02 \x01(\rR\x0eremainingQuota\x120\n" + + "\x13expirationTimestamp\x18\x03 \x01(\x04R\x13expirationTimestamp\"<\n" + + "\x0eBotFeatureType\x12\x13\n" + + "\x0fUNKNOWN_FEATURE\x10\x00\x12\x15\n" + + "\x11REASONING_FEATURE\x10\x01\"\xb1\x01\n" + + "\x12BotImagineMetadata\x12S\n" + + "\vimagineType\x18\x01 \x01(\x0e21.WAWebProtobufsE2E.BotImagineMetadata.ImagineTypeR\vimagineType\"F\n" + + "\vImagineType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\v\n" + + "\aIMAGINE\x10\x01\x12\b\n" + + "\x04MEMU\x10\x02\x12\t\n" + + "\x05FLASH\x10\x03\x12\b\n" + + "\x04EDIT\x10\x04\"\xdf\x03\n" + + "\x12BotSourcesMetadata\x12M\n" + + "\asources\x18\x01 \x03(\v23.WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItemR\asources\x1a\xf9\x02\n" + + "\rBotSourceItem\x12^\n" + + "\bprovider\x18\x01 \x01(\x0e2B.WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem.SourceProviderR\bprovider\x12(\n" + + "\x0fthumbnailCDNURL\x18\x02 \x01(\tR\x0fthumbnailCDNURL\x12,\n" + + "\x11sourceProviderURL\x18\x03 \x01(\tR\x11sourceProviderURL\x12 \n" + + "\vsourceQuery\x18\x04 \x01(\tR\vsourceQuery\x12$\n" + + "\rfaviconCDNURL\x18\x05 \x01(\tR\rfaviconCDNURL\x12&\n" + + "\x0ecitationNumber\x18\x06 \x01(\rR\x0ecitationNumber\"@\n" + + "\x0eSourceProvider\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\b\n" + + "\x04BING\x10\x01\x12\n" + + "\n" + + "\x06GOOGLE\x10\x02\x12\v\n" + + "\aSUPPORT\x10\x03\"\xad\x04\n" + + "\x12MessageAssociation\x12_\n" + + "\x0fassociationType\x18\x01 \x01(\x0e25.WAWebProtobufsE2E.MessageAssociation.AssociationTypeR\x0fassociationType\x12@\n" + + "\x10parentMessageKey\x18\x02 \x01(\v2\x14.WACommon.MessageKeyR\x10parentMessageKey\x12\"\n" + + "\fmessageIndex\x18\x03 \x01(\x05R\fmessageIndex\"\xcf\x02\n" + + "\x0fAssociationType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x0f\n" + + "\vMEDIA_ALBUM\x10\x01\x12\x0e\n" + + "\n" + + "BOT_PLUGIN\x10\x02\x12\x15\n" + + "\x11EVENT_COVER_IMAGE\x10\x03\x12\x0f\n" + + "\vSTATUS_POLL\x10\x04\x12\x18\n" + + "\x14HD_VIDEO_DUAL_UPLOAD\x10\x05\x12\x1b\n" + + "\x17STATUS_EXTERNAL_RESHARE\x10\x06\x12\x0e\n" + + "\n" + + "MEDIA_POLL\x10\a\x12\x14\n" + + "\x10STATUS_ADD_YOURS\x10\b\x12\x17\n" + + "\x13STATUS_NOTIFICATION\x10\t\x12\x18\n" + + "\x14HD_IMAGE_DUAL_UPLOAD\x10\n" + + "\x12\x16\n" + + "\x12STICKER_ANNOTATION\x10\v\x12\x10\n" + + "\fMOTION_PHOTO\x10\f\x12\x16\n" + + "\x12STATUS_LINK_ACTION\x10\r\x12\x14\n" + + "\x10VIEW_ALL_REPLIES\x10\x0e\"\xb3\a\n" + + "\x12MessageContextInfo\x12U\n" + + "\x12deviceListMetadata\x18\x01 \x01(\v2%.WAWebProtobufsE2E.DeviceListMetadataR\x12deviceListMetadata\x12<\n" + + "\x19deviceListMetadataVersion\x18\x02 \x01(\x05R\x19deviceListMetadataVersion\x12$\n" + + "\rmessageSecret\x18\x03 \x01(\fR\rmessageSecret\x12\"\n" + + "\fpaddingBytes\x18\x04 \x01(\fR\fpaddingBytes\x12>\n" + + "\x1amessageAddOnDurationInSecs\x18\x05 \x01(\rR\x1amessageAddOnDurationInSecs\x12*\n" + + "\x10botMessageSecret\x18\x06 \x01(\fR\x10botMessageSecret\x12@\n" + + "\vbotMetadata\x18\a \x01(\v2\x1e.WAWebProtobufsE2E.BotMetadataR\vbotMetadata\x124\n" + + "\x15reportingTokenVersion\x18\b \x01(\x05R\x15reportingTokenVersion\x12t\n" + + "\x16messageAddOnExpiryType\x18\t \x01(\x0e2<.WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryTypeR\x16messageAddOnExpiryType\x12U\n" + + "\x12messageAssociation\x18\n" + + " \x01(\v2%.WAWebProtobufsE2E.MessageAssociationR\x12messageAssociation\x12*\n" + + "\x10capiCreatedGroup\x18\v \x01(\bR\x10capiCreatedGroup\x12&\n" + + "\x0esupportPayload\x18\f \x01(\tR\x0esupportPayload\x12:\n" + + "\flimitSharing\x18\r \x01(\v2\x16.WACommon.LimitSharingR\flimitSharing\x12>\n" + + "\x0elimitSharingV2\x18\x0e \x01(\v2\x16.WACommon.LimitSharingR\x0elimitSharingV2\"=\n" + + "\x16MessageAddonExpiryType\x12\n" + + "\n" + + "\x06STATIC\x10\x01\x12\x17\n" + + "\x13DEPENDENT_ON_PARENT\x10\x02\"\xc0\x05\n" + + "\x15InteractiveAnnotation\x129\n" + + "\blocation\x18\x02 \x01(\v2\x1b.WAWebProtobufsE2E.LocationH\x00R\blocation\x12_\n" + + "\n" + + "newsletter\x18\x03 \x01(\v2=.WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfoH\x00R\n" + + "newsletter\x12(\n" + + "\x0eembeddedAction\x18\x06 \x01(\bH\x00R\x0eembeddedAction\x12@\n" + + "\ttapAction\x18\a \x01(\v2 .WAWebProtobufsE2E.TapLinkActionH\x00R\ttapAction\x12B\n" + + "\x0fpolygonVertices\x18\x01 \x03(\v2\x18.WAWebProtobufsE2E.PointR\x0fpolygonVertices\x126\n" + + "\x16shouldSkipConfirmation\x18\x04 \x01(\bR\x16shouldSkipConfirmation\x12L\n" + + "\x0fembeddedContent\x18\x05 \x01(\v2\".WAWebProtobufsE2E.EmbeddedContentR\x0fembeddedContent\x12_\n" + + "\x0estatusLinkType\x18\b \x01(\x0e27.WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkTypeR\x0estatusLinkType\"j\n" + + "\x0eStatusLinkType\x12\x1b\n" + + "\x17RASTERIZED_LINK_PREVIEW\x10\x01\x12\x1d\n" + + "\x19RASTERIZED_LINK_TRUNCATED\x10\x02\x12\x1c\n" + + "\x18RASTERIZED_LINK_FULL_URL\x10\x03B\b\n" + + "\x06action\"\xd3\x06\n" + + "\x16HydratedTemplateButton\x12p\n" + + "\x10quickReplyButton\x18\x01 \x01(\v2B.WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButtonH\x00R\x10quickReplyButton\x12[\n" + + "\turlButton\x18\x02 \x01(\v2;.WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButtonH\x00R\turlButton\x12^\n" + + "\n" + + "callButton\x18\x03 \x01(\v2<.WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButtonH\x00R\n" + + "callButton\x12\x14\n" + + "\x05index\x18\x04 \x01(\rR\x05index\x1a\xb9\x02\n" + + "\x11HydratedURLButton\x12 \n" + + "\vdisplayText\x18\x01 \x01(\tR\vdisplayText\x12\x10\n" + + "\x03URL\x18\x02 \x01(\tR\x03URL\x12,\n" + + "\x11consentedUsersURL\x18\x03 \x01(\tR\x11consentedUsersURL\x12\x85\x01\n" + + "\x13webviewPresentation\x18\x04 \x01(\x0e2S.WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationTypeR\x13webviewPresentation\":\n" + + "\x17WebviewPresentationType\x12\b\n" + + "\x04FULL\x10\x01\x12\b\n" + + "\x04TALL\x10\x02\x12\v\n" + + "\aCOMPACT\x10\x03\x1aX\n" + + "\x12HydratedCallButton\x12 \n" + + "\vdisplayText\x18\x01 \x01(\tR\vdisplayText\x12 \n" + + "\vphoneNumber\x18\x02 \x01(\tR\vphoneNumber\x1aL\n" + + "\x18HydratedQuickReplyButton\x12 \n" + + "\vdisplayText\x18\x01 \x01(\tR\vdisplayText\x12\x0e\n" + + "\x02ID\x18\x02 \x01(\tR\x02IDB\x10\n" + + "\x0ehydratedButton\"\xe2\x04\n" + + "\x11PaymentBackground\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\x1e\n" + + "\n" + + "fileLength\x18\x02 \x01(\x04R\n" + + "fileLength\x12\x14\n" + + "\x05width\x18\x03 \x01(\rR\x05width\x12\x16\n" + + "\x06height\x18\x04 \x01(\rR\x06height\x12\x1a\n" + + "\bmimetype\x18\x05 \x01(\tR\bmimetype\x12(\n" + + "\x0fplaceholderArgb\x18\x06 \x01(\aR\x0fplaceholderArgb\x12\x1a\n" + + "\btextArgb\x18\a \x01(\aR\btextArgb\x12 \n" + + "\vsubtextArgb\x18\b \x01(\aR\vsubtextArgb\x12L\n" + + "\tmediaData\x18\t \x01(\v2..WAWebProtobufsE2E.PaymentBackground.MediaDataR\tmediaData\x12=\n" + + "\x04type\x18\n" + + " \x01(\x0e2).WAWebProtobufsE2E.PaymentBackground.TypeR\x04type\x1a\xbb\x01\n" + + "\tMediaData\x12\x1a\n" + + "\bmediaKey\x18\x01 \x01(\fR\bmediaKey\x12,\n" + + "\x11mediaKeyTimestamp\x18\x02 \x01(\x03R\x11mediaKeyTimestamp\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x03 \x01(\fR\n" + + "fileSHA256\x12$\n" + + "\rfileEncSHA256\x18\x04 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x05 \x01(\tR\n" + + "directPath\" \n" + + "\x04Type\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\v\n" + + "\aDEFAULT\x10\x01\"\xe8\x03\n" + + "\x10DisappearingMode\x12K\n" + + "\tinitiator\x18\x01 \x01(\x0e2-.WAWebProtobufsE2E.DisappearingMode.InitiatorR\tinitiator\x12E\n" + + "\atrigger\x18\x02 \x01(\x0e2+.WAWebProtobufsE2E.DisappearingMode.TriggerR\atrigger\x12.\n" + + "\x12initiatorDeviceJID\x18\x03 \x01(\tR\x12initiatorDeviceJID\x12$\n" + + "\rinitiatedByMe\x18\x04 \x01(\bR\rinitiatedByMe\"\x7f\n" + + "\aTrigger\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x10\n" + + "\fCHAT_SETTING\x10\x01\x12\x13\n" + + "\x0fACCOUNT_SETTING\x10\x02\x12\x0f\n" + + "\vBULK_CHANGE\x10\x03\x12\x1b\n" + + "\x17BIZ_SUPPORTS_FB_HOSTING\x10\x04\x12\x12\n" + + "\x0eUNKNOWN_GROUPS\x10\x05\"i\n" + + "\tInitiator\x12\x13\n" + + "\x0fCHANGED_IN_CHAT\x10\x00\x12\x13\n" + + "\x0fINITIATED_BY_ME\x10\x01\x12\x16\n" + + "\x12INITIATED_BY_OTHER\x10\x02\x12\x1a\n" + + "\x16BIZ_UPGRADE_FB_HOSTING\x10\x03\"\xe1\x02\n" + + "\x0eProcessedVideo\x12\x1e\n" + + "\n" + + "directPath\x18\x01 \x01(\tR\n" + + "directPath\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x02 \x01(\fR\n" + + "fileSHA256\x12\x16\n" + + "\x06height\x18\x03 \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\x04 \x01(\rR\x05width\x12\x1e\n" + + "\n" + + "fileLength\x18\x05 \x01(\x04R\n" + + "fileLength\x12\x18\n" + + "\abitrate\x18\x06 \x01(\rR\abitrate\x12H\n" + + "\aquality\x18\a \x01(\x0e2..WAWebProtobufsE2E.ProcessedVideo.VideoQualityR\aquality\x12\"\n" + + "\fcapabilities\x18\b \x03(\tR\fcapabilities\"9\n" + + "\fVideoQuality\x12\r\n" + + "\tUNDEFINED\x10\x00\x12\a\n" + + "\x03LOW\x10\x01\x12\a\n" + + "\x03MID\x10\x02\x12\b\n" + + "\x04HIGH\x10\x03\"\x84;\n" + + "\aMessage\x12\"\n" + + "\fconversation\x18\x01 \x01(\tR\fconversation\x12s\n" + + "\x1csenderKeyDistributionMessage\x18\x02 \x01(\v2/.WAWebProtobufsE2E.SenderKeyDistributionMessageR\x1csenderKeyDistributionMessage\x12C\n" + + "\fimageMessage\x18\x03 \x01(\v2\x1f.WAWebProtobufsE2E.ImageMessageR\fimageMessage\x12I\n" + + "\x0econtactMessage\x18\x04 \x01(\v2!.WAWebProtobufsE2E.ContactMessageR\x0econtactMessage\x12L\n" + + "\x0flocationMessage\x18\x05 \x01(\v2\".WAWebProtobufsE2E.LocationMessageR\x0flocationMessage\x12X\n" + + "\x13extendedTextMessage\x18\x06 \x01(\v2&.WAWebProtobufsE2E.ExtendedTextMessageR\x13extendedTextMessage\x12L\n" + + "\x0fdocumentMessage\x18\a \x01(\v2\".WAWebProtobufsE2E.DocumentMessageR\x0fdocumentMessage\x12C\n" + + "\faudioMessage\x18\b \x01(\v2\x1f.WAWebProtobufsE2E.AudioMessageR\faudioMessage\x12C\n" + + "\fvideoMessage\x18\t \x01(\v2\x1f.WAWebProtobufsE2E.VideoMessageR\fvideoMessage\x12+\n" + + "\x04call\x18\n" + + " \x01(\v2\x17.WAWebProtobufsE2E.CallR\x04call\x12+\n" + + "\x04chat\x18\v \x01(\v2\x17.WAWebProtobufsE2E.ChatR\x04chat\x12L\n" + + "\x0fprotocolMessage\x18\f \x01(\v2\".WAWebProtobufsE2E.ProtocolMessageR\x0fprotocolMessage\x12[\n" + + "\x14contactsArrayMessage\x18\r \x01(\v2'.WAWebProtobufsE2E.ContactsArrayMessageR\x14contactsArrayMessage\x12d\n" + + "\x17highlyStructuredMessage\x18\x0e \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageR\x17highlyStructuredMessage\x12\x8f\x01\n" + + "*fastRatchetKeySenderKeyDistributionMessage\x18\x0f \x01(\v2/.WAWebProtobufsE2E.SenderKeyDistributionMessageR*fastRatchetKeySenderKeyDistributionMessage\x12U\n" + + "\x12sendPaymentMessage\x18\x10 \x01(\v2%.WAWebProtobufsE2E.SendPaymentMessageR\x12sendPaymentMessage\x12X\n" + + "\x13liveLocationMessage\x18\x12 \x01(\v2&.WAWebProtobufsE2E.LiveLocationMessageR\x13liveLocationMessage\x12^\n" + + "\x15requestPaymentMessage\x18\x16 \x01(\v2(.WAWebProtobufsE2E.RequestPaymentMessageR\x15requestPaymentMessage\x12s\n" + + "\x1cdeclinePaymentRequestMessage\x18\x17 \x01(\v2/.WAWebProtobufsE2E.DeclinePaymentRequestMessageR\x1cdeclinePaymentRequestMessage\x12p\n" + + "\x1bcancelPaymentRequestMessage\x18\x18 \x01(\v2..WAWebProtobufsE2E.CancelPaymentRequestMessageR\x1bcancelPaymentRequestMessage\x12L\n" + + "\x0ftemplateMessage\x18\x19 \x01(\v2\".WAWebProtobufsE2E.TemplateMessageR\x0ftemplateMessage\x12I\n" + + "\x0estickerMessage\x18\x1a \x01(\v2!.WAWebProtobufsE2E.StickerMessageR\x0estickerMessage\x12U\n" + + "\x12groupInviteMessage\x18\x1c \x01(\v2%.WAWebProtobufsE2E.GroupInviteMessageR\x12groupInviteMessage\x12m\n" + + "\x1atemplateButtonReplyMessage\x18\x1d \x01(\v2-.WAWebProtobufsE2E.TemplateButtonReplyMessageR\x1atemplateButtonReplyMessage\x12I\n" + + "\x0eproductMessage\x18\x1e \x01(\v2!.WAWebProtobufsE2E.ProductMessageR\x0eproductMessage\x12R\n" + + "\x11deviceSentMessage\x18\x1f \x01(\v2$.WAWebProtobufsE2E.DeviceSentMessageR\x11deviceSentMessage\x12U\n" + + "\x12messageContextInfo\x18# \x01(\v2%.WAWebProtobufsE2E.MessageContextInfoR\x12messageContextInfo\x12@\n" + + "\vlistMessage\x18$ \x01(\v2\x1e.WAWebProtobufsE2E.ListMessageR\vlistMessage\x12O\n" + + "\x0fviewOnceMessage\x18% \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x0fviewOnceMessage\x12C\n" + + "\forderMessage\x18& \x01(\v2\x1f.WAWebProtobufsE2E.OrderMessageR\forderMessage\x12X\n" + + "\x13listResponseMessage\x18' \x01(\v2&.WAWebProtobufsE2E.ListResponseMessageR\x13listResponseMessage\x12Q\n" + + "\x10ephemeralMessage\x18( \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x10ephemeralMessage\x12I\n" + + "\x0einvoiceMessage\x18) \x01(\v2!.WAWebProtobufsE2E.InvoiceMessageR\x0einvoiceMessage\x12I\n" + + "\x0ebuttonsMessage\x18* \x01(\v2!.WAWebProtobufsE2E.ButtonsMessageR\x0ebuttonsMessage\x12a\n" + + "\x16buttonsResponseMessage\x18+ \x01(\v2).WAWebProtobufsE2E.ButtonsResponseMessageR\x16buttonsResponseMessage\x12[\n" + + "\x14paymentInviteMessage\x18, \x01(\v2'.WAWebProtobufsE2E.PaymentInviteMessageR\x14paymentInviteMessage\x12U\n" + + "\x12interactiveMessage\x18- \x01(\v2%.WAWebProtobufsE2E.InteractiveMessageR\x12interactiveMessage\x12L\n" + + "\x0freactionMessage\x18. \x01(\v2\".WAWebProtobufsE2E.ReactionMessageR\x0freactionMessage\x12^\n" + + "\x15stickerSyncRmrMessage\x18/ \x01(\v2(.WAWebProtobufsE2E.StickerSyncRMRMessageR\x15stickerSyncRmrMessage\x12m\n" + + "\x1ainteractiveResponseMessage\x180 \x01(\v2-.WAWebProtobufsE2E.InteractiveResponseMessageR\x1ainteractiveResponseMessage\x12X\n" + + "\x13pollCreationMessage\x181 \x01(\v2&.WAWebProtobufsE2E.PollCreationMessageR\x13pollCreationMessage\x12R\n" + + "\x11pollUpdateMessage\x182 \x01(\v2$.WAWebProtobufsE2E.PollUpdateMessageR\x11pollUpdateMessage\x12R\n" + + "\x11keepInChatMessage\x183 \x01(\v2$.WAWebProtobufsE2E.KeepInChatMessageR\x11keepInChatMessage\x12e\n" + + "\x1adocumentWithCaptionMessage\x185 \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x1adocumentWithCaptionMessage\x12j\n" + + "\x19requestPhoneNumberMessage\x186 \x01(\v2,.WAWebProtobufsE2E.RequestPhoneNumberMessageR\x19requestPhoneNumberMessage\x12S\n" + + "\x11viewOnceMessageV2\x187 \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x11viewOnceMessageV2\x12U\n" + + "\x12encReactionMessage\x188 \x01(\v2%.WAWebProtobufsE2E.EncReactionMessageR\x12encReactionMessage\x12K\n" + + "\reditedMessage\x18: \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\reditedMessage\x12e\n" + + "\x1aviewOnceMessageV2Extension\x18; \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x1aviewOnceMessageV2Extension\x12\\\n" + + "\x15pollCreationMessageV2\x18< \x01(\v2&.WAWebProtobufsE2E.PollCreationMessageR\x15pollCreationMessageV2\x12s\n" + + "\x1cscheduledCallCreationMessage\x18= \x01(\v2/.WAWebProtobufsE2E.ScheduledCallCreationMessageR\x1cscheduledCallCreationMessage\x12[\n" + + "\x15groupMentionedMessage\x18> \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x15groupMentionedMessage\x12O\n" + + "\x10pinInChatMessage\x18? \x01(\v2#.WAWebProtobufsE2E.PinInChatMessageR\x10pinInChatMessage\x12\\\n" + + "\x15pollCreationMessageV3\x18@ \x01(\v2&.WAWebProtobufsE2E.PollCreationMessageR\x15pollCreationMessageV3\x12g\n" + + "\x18scheduledCallEditMessage\x18A \x01(\v2+.WAWebProtobufsE2E.ScheduledCallEditMessageR\x18scheduledCallEditMessage\x12?\n" + + "\n" + + "ptvMessage\x18B \x01(\v2\x1f.WAWebProtobufsE2E.VideoMessageR\n" + + "ptvMessage\x12Q\n" + + "\x10botInvokeMessage\x18C \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x10botInvokeMessage\x12K\n" + + "\x0fcallLogMesssage\x18E \x01(\v2!.WAWebProtobufsE2E.CallLogMessageR\x0fcallLogMesssage\x12[\n" + + "\x14messageHistoryBundle\x18F \x01(\v2'.WAWebProtobufsE2E.MessageHistoryBundleR\x14messageHistoryBundle\x12R\n" + + "\x11encCommentMessage\x18G \x01(\v2$.WAWebProtobufsE2E.EncCommentMessageR\x11encCommentMessage\x12C\n" + + "\fbcallMessage\x18H \x01(\v2\x1f.WAWebProtobufsE2E.BCallMessageR\fbcallMessage\x12Y\n" + + "\x14lottieStickerMessage\x18J \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x14lottieStickerMessage\x12C\n" + + "\feventMessage\x18K \x01(\v2\x1f.WAWebProtobufsE2E.EventMessageR\feventMessage\x12d\n" + + "\x17encEventResponseMessage\x18L \x01(\v2*.WAWebProtobufsE2E.EncEventResponseMessageR\x17encEventResponseMessage\x12I\n" + + "\x0ecommentMessage\x18M \x01(\v2!.WAWebProtobufsE2E.CommentMessageR\x0ecommentMessage\x12s\n" + + "\x1cnewsletterAdminInviteMessage\x18N \x01(\v2/.WAWebProtobufsE2E.NewsletterAdminInviteMessageR\x1cnewsletterAdminInviteMessage\x12U\n" + + "\x12placeholderMessage\x18P \x01(\v2%.WAWebProtobufsE2E.PlaceholderMessageR\x12placeholderMessage\x12a\n" + + "\x16secretEncryptedMessage\x18R \x01(\v2).WAWebProtobufsE2E.SecretEncryptedMessageR\x16secretEncryptedMessage\x12C\n" + + "\falbumMessage\x18S \x01(\v2\x1f.WAWebProtobufsE2E.AlbumMessageR\falbumMessage\x12O\n" + + "\x0feventCoverImage\x18U \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x0feventCoverImage\x12U\n" + + "\x12stickerPackMessage\x18V \x01(\v2%.WAWebProtobufsE2E.StickerPackMessageR\x12stickerPackMessage\x12Y\n" + + "\x14statusMentionMessage\x18W \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x14statusMentionMessage\x12j\n" + + "\x19pollResultSnapshotMessage\x18X \x01(\v2,.WAWebProtobufsE2E.PollResultSnapshotMessageR\x19pollResultSnapshotMessage\x12m\n" + + "\x1epollCreationOptionImageMessage\x18Z \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x1epollCreationOptionImageMessage\x12]\n" + + "\x16associatedChildMessage\x18[ \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x16associatedChildMessage\x12c\n" + + "\x19groupStatusMentionMessage\x18\\ \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x19groupStatusMentionMessage\x12[\n" + + "\x15pollCreationMessageV4\x18] \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x15pollCreationMessageV4\x12[\n" + + "\x15pollCreationMessageV5\x18^ \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x15pollCreationMessageV5\x12M\n" + + "\x0estatusAddYours\x18_ \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x0estatusAddYours\x12U\n" + + "\x12groupStatusMessage\x18` \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x12groupStatusMessage\x12Z\n" + + "\x13richResponseMessage\x18a \x01(\v2(.WAWebProtobufsE2E.AIRichResponseMessageR\x13richResponseMessage\x12j\n" + + "\x19statusNotificationMessage\x18b \x01(\v2,.WAWebProtobufsE2E.StatusNotificationMessageR\x19statusNotificationMessage\x12W\n" + + "\x13limitSharingMessage\x18c \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x13limitSharingMessage\x12M\n" + + "\x0ebotTaskMessage\x18d \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x0ebotTaskMessage\x12O\n" + + "\x0fquestionMessage\x18e \x01(\v2%.WAWebProtobufsE2E.FutureProofMessageR\x0fquestionMessage\x12[\n" + + "\x14messageHistoryNotice\x18f \x01(\v2'.WAWebProtobufsE2E.MessageHistoryNoticeR\x14messageHistoryNotice\"\xb0\x01\n" + + "\fAlbumMessage\x12.\n" + + "\x12expectedImageCount\x18\x02 \x01(\rR\x12expectedImageCount\x12.\n" + + "\x12expectedVideoCount\x18\x03 \x01(\rR\x12expectedVideoCount\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"\x9e\x01\n" + + "\x16MessageHistoryMetadata\x12*\n" + + "\x10historyReceivers\x18\x01 \x03(\tR\x10historyReceivers\x124\n" + + "\x15firstMessageTimestamp\x18\x02 \x01(\x03R\x15firstMessageTimestamp\x12\"\n" + + "\fmessageCount\x18\x03 \x01(\x03R\fmessageCount\"\xbb\x01\n" + + "\x14MessageHistoryNotice\x12@\n" + + "\vcontextInfo\x18\x01 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12a\n" + + "\x16messageHistoryMetadata\x18\x02 \x01(\v2).WAWebProtobufsE2E.MessageHistoryMetadataR\x16messageHistoryMetadata\"\x87\x03\n" + + "\x14MessageHistoryBundle\x12\x1a\n" + + "\bmimetype\x18\x01 \x01(\tR\bmimetype\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x02 \x01(\fR\n" + + "fileSHA256\x12\x1a\n" + + "\bmediaKey\x18\x03 \x01(\fR\bmediaKey\x12$\n" + + "\rfileEncSHA256\x18\x04 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x05 \x01(\tR\n" + + "directPath\x12,\n" + + "\x11mediaKeyTimestamp\x18\x06 \x01(\x03R\x11mediaKeyTimestamp\x12@\n" + + "\vcontextInfo\x18\a \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12a\n" + + "\x16messageHistoryMetadata\x18\b \x01(\v2).WAWebProtobufsE2E.MessageHistoryMetadataR\x16messageHistoryMetadata\"\x9f\x01\n" + + "\x17EncEventResponseMessage\x12N\n" + + "\x17eventCreationMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x17eventCreationMessageKey\x12\x1e\n" + + "\n" + + "encPayload\x18\x02 \x01(\fR\n" + + "encPayload\x12\x14\n" + + "\x05encIV\x18\x03 \x01(\fR\x05encIV\"\x92\x03\n" + + "\fEventMessage\x12@\n" + + "\vcontextInfo\x18\x01 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12\x1e\n" + + "\n" + + "isCanceled\x18\x02 \x01(\bR\n" + + "isCanceled\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12 \n" + + "\vdescription\x18\x04 \x01(\tR\vdescription\x12>\n" + + "\blocation\x18\x05 \x01(\v2\".WAWebProtobufsE2E.LocationMessageR\blocation\x12\x1a\n" + + "\bjoinLink\x18\x06 \x01(\tR\bjoinLink\x12\x1c\n" + + "\tstartTime\x18\a \x01(\x03R\tstartTime\x12\x18\n" + + "\aendTime\x18\b \x01(\x03R\aendTime\x12.\n" + + "\x12extraGuestsAllowed\x18\t \x01(\bR\x12extraGuestsAllowed\x12&\n" + + "\x0eisScheduleCall\x18\n" + + " \x01(\bR\x0eisScheduleCall\"\x88\x01\n" + + "\x0eCommentMessage\x124\n" + + "\amessage\x18\x01 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\x12@\n" + + "\x10targetMessageKey\x18\x02 \x01(\v2\x14.WACommon.MessageKeyR\x10targetMessageKey\"\x8b\x01\n" + + "\x11EncCommentMessage\x12@\n" + + "\x10targetMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x10targetMessageKey\x12\x1e\n" + + "\n" + + "encPayload\x18\x02 \x01(\fR\n" + + "encPayload\x12\x14\n" + + "\x05encIV\x18\x03 \x01(\fR\x05encIV\"\x8c\x01\n" + + "\x12EncReactionMessage\x12@\n" + + "\x10targetMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x10targetMessageKey\x12\x1e\n" + + "\n" + + "encPayload\x18\x02 \x01(\fR\n" + + "encPayload\x12\x14\n" + + "\x05encIV\x18\x03 \x01(\fR\x05encIV\"\x96\x01\n" + + "\x11KeepInChatMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x127\n" + + "\bkeepType\x18\x02 \x01(\x0e2\x1b.WAWebProtobufsE2E.KeepTypeR\bkeepType\x12 \n" + + "\vtimestampMS\x18\x03 \x01(\x03R\vtimestampMS\"\x9c\x02\n" + + "\x19PollResultSnapshotMessage\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12S\n" + + "\tpollVotes\x18\x02 \x03(\v25.WAWebProtobufsE2E.PollResultSnapshotMessage.PollVoteR\tpollVotes\x12@\n" + + "\vcontextInfo\x18\x03 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x1aT\n" + + "\bPollVote\x12\x1e\n" + + "\n" + + "optionName\x18\x01 \x01(\tR\n" + + "optionName\x12(\n" + + "\x0foptionVoteCount\x18\x02 \x01(\x03R\x0foptionVoteCount\";\n" + + "\x0fPollVoteMessage\x12(\n" + + "\x0fselectedOptions\x18\x01 \x03(\fR\x0fselectedOptions\"D\n" + + "\fPollEncValue\x12\x1e\n" + + "\n" + + "encPayload\x18\x01 \x01(\fR\n" + + "encPayload\x12\x14\n" + + "\x05encIV\x18\x02 \x01(\fR\x05encIV\"\x1b\n" + + "\x19PollUpdateMessageMetadata\"\x8e\x02\n" + + "\x11PollUpdateMessage\x12L\n" + + "\x16pollCreationMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x16pollCreationMessageKey\x123\n" + + "\x04vote\x18\x02 \x01(\v2\x1f.WAWebProtobufsE2E.PollEncValueR\x04vote\x12H\n" + + "\bmetadata\x18\x03 \x01(\v2,.WAWebProtobufsE2E.PollUpdateMessageMetadataR\bmetadata\x12,\n" + + "\x11senderTimestampMS\x18\x04 \x01(\x03R\x11senderTimestampMS\"}\n" + + "\x15StickerSyncRMRMessage\x12\x1a\n" + + "\bfilehash\x18\x01 \x03(\tR\bfilehash\x12\x1c\n" + + "\trmrSource\x18\x02 \x01(\tR\trmrSource\x12*\n" + + "\x10requestTimestamp\x18\x03 \x01(\x03R\x10requestTimestamp\"\x9d\x01\n" + + "\x0fReactionMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12\x12\n" + + "\x04text\x18\x02 \x01(\tR\x04text\x12 \n" + + "\vgroupingKey\x18\x03 \x01(\tR\vgroupingKey\x12,\n" + + "\x11senderTimestampMS\x18\x04 \x01(\x03R\x11senderTimestampMS\"J\n" + + "\x12FutureProofMessage\x124\n" + + "\amessage\x18\x01 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\"\x87\x01\n" + + "\x11DeviceSentMessage\x12&\n" + + "\x0edestinationJID\x18\x01 \x01(\tR\x0edestinationJID\x124\n" + + "\amessage\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\x12\x14\n" + + "\x05phash\x18\x03 \x01(\tR\x05phash\"]\n" + + "\x19RequestPhoneNumberMessage\x12@\n" + + "\vcontextInfo\x18\x01 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"\x9a\x02\n" + + "\x1cNewsletterAdminInviteMessage\x12$\n" + + "\rnewsletterJID\x18\x01 \x01(\tR\rnewsletterJID\x12&\n" + + "\x0enewsletterName\x18\x02 \x01(\tR\x0enewsletterName\x12$\n" + + "\rJPEGThumbnail\x18\x03 \x01(\fR\rJPEGThumbnail\x12\x18\n" + + "\acaption\x18\x04 \x01(\tR\acaption\x12*\n" + + "\x10inviteExpiration\x18\x05 \x01(\x03R\x10inviteExpiration\x12@\n" + + "\vcontextInfo\x18\x06 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"\xa6\a\n" + + "\x0eProductMessage\x12K\n" + + "\aproduct\x18\x01 \x01(\v21.WAWebProtobufsE2E.ProductMessage.ProductSnapshotR\aproduct\x12*\n" + + "\x10businessOwnerJID\x18\x02 \x01(\tR\x10businessOwnerJID\x12K\n" + + "\acatalog\x18\x04 \x01(\v21.WAWebProtobufsE2E.ProductMessage.CatalogSnapshotR\acatalog\x12\x12\n" + + "\x04body\x18\x05 \x01(\tR\x04body\x12\x16\n" + + "\x06footer\x18\x06 \x01(\tR\x06footer\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x1a\xce\x03\n" + + "\x0fProductSnapshot\x12C\n" + + "\fproductImage\x18\x01 \x01(\v2\x1f.WAWebProtobufsE2E.ImageMessageR\fproductImage\x12\x1c\n" + + "\tproductID\x18\x02 \x01(\tR\tproductID\x12\x14\n" + + "\x05title\x18\x03 \x01(\tR\x05title\x12 \n" + + "\vdescription\x18\x04 \x01(\tR\vdescription\x12\"\n" + + "\fcurrencyCode\x18\x05 \x01(\tR\fcurrencyCode\x12(\n" + + "\x0fpriceAmount1000\x18\x06 \x01(\x03R\x0fpriceAmount1000\x12\x1e\n" + + "\n" + + "retailerID\x18\a \x01(\tR\n" + + "retailerID\x12\x10\n" + + "\x03URL\x18\b \x01(\tR\x03URL\x12,\n" + + "\x11productImageCount\x18\t \x01(\rR\x11productImageCount\x12\"\n" + + "\ffirstImageID\x18\v \x01(\tR\ffirstImageID\x120\n" + + "\x13salePriceAmount1000\x18\f \x01(\x03R\x13salePriceAmount1000\x12\x1c\n" + + "\tsignedURL\x18\r \x01(\tR\tsignedURL\x1a\x8e\x01\n" + + "\x0fCatalogSnapshot\x12C\n" + + "\fcatalogImage\x18\x01 \x01(\v2\x1f.WAWebProtobufsE2E.ImageMessageR\fcatalogImage\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\"\x94\x02\n" + + "\x1aTemplateButtonReplyMessage\x12\x1e\n" + + "\n" + + "selectedID\x18\x01 \x01(\tR\n" + + "selectedID\x120\n" + + "\x13selectedDisplayText\x18\x02 \x01(\tR\x13selectedDisplayText\x12@\n" + + "\vcontextInfo\x18\x03 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12$\n" + + "\rselectedIndex\x18\x04 \x01(\rR\rselectedIndex\x12<\n" + + "\x19selectedCarouselCardIndex\x18\x05 \x01(\rR\x19selectedCarouselCardIndex\"\xa8\x0e\n" + + "\x0fTemplateMessage\x12^\n" + + "\x0ffourRowTemplate\x18\x01 \x01(\v22.WAWebProtobufsE2E.TemplateMessage.FourRowTemplateH\x00R\x0ffourRowTemplate\x12v\n" + + "\x17hydratedFourRowTemplate\x18\x02 \x01(\v2:.WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplateH\x00R\x17hydratedFourRowTemplate\x12g\n" + + "\x1ainteractiveMessageTemplate\x18\x05 \x01(\v2%.WAWebProtobufsE2E.InteractiveMessageH\x00R\x1ainteractiveMessageTemplate\x12@\n" + + "\vcontextInfo\x18\x03 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12f\n" + + "\x10hydratedTemplate\x18\x04 \x01(\v2:.WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplateR\x10hydratedTemplate\x12\x1e\n" + + "\n" + + "templateID\x18\t \x01(\tR\n" + + "templateID\x1a\x85\x05\n" + + "\x17HydratedFourRowTemplate\x12N\n" + + "\x0fdocumentMessage\x18\x01 \x01(\v2\".WAWebProtobufsE2E.DocumentMessageH\x00R\x0fdocumentMessage\x12.\n" + + "\x11hydratedTitleText\x18\x02 \x01(\tH\x00R\x11hydratedTitleText\x12E\n" + + "\fimageMessage\x18\x03 \x01(\v2\x1f.WAWebProtobufsE2E.ImageMessageH\x00R\fimageMessage\x12E\n" + + "\fvideoMessage\x18\x04 \x01(\v2\x1f.WAWebProtobufsE2E.VideoMessageH\x00R\fvideoMessage\x12N\n" + + "\x0flocationMessage\x18\x05 \x01(\v2\".WAWebProtobufsE2E.LocationMessageH\x00R\x0flocationMessage\x120\n" + + "\x13hydratedContentText\x18\x06 \x01(\tR\x13hydratedContentText\x12.\n" + + "\x12hydratedFooterText\x18\a \x01(\tR\x12hydratedFooterText\x12S\n" + + "\x0fhydratedButtons\x18\b \x03(\v2).WAWebProtobufsE2E.HydratedTemplateButtonR\x0fhydratedButtons\x12\x1e\n" + + "\n" + + "templateID\x18\t \x01(\tR\n" + + "templateID\x12,\n" + + "\x11maskLinkedDevices\x18\n" + + " \x01(\bR\x11maskLinkedDevicesB\a\n" + + "\x05title\x1a\xf7\x04\n" + + "\x0fFourRowTemplate\x12N\n" + + "\x0fdocumentMessage\x18\x01 \x01(\v2\".WAWebProtobufsE2E.DocumentMessageH\x00R\x0fdocumentMessage\x12f\n" + + "\x17highlyStructuredMessage\x18\x02 \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageH\x00R\x17highlyStructuredMessage\x12E\n" + + "\fimageMessage\x18\x03 \x01(\v2\x1f.WAWebProtobufsE2E.ImageMessageH\x00R\fimageMessage\x12E\n" + + "\fvideoMessage\x18\x04 \x01(\v2\x1f.WAWebProtobufsE2E.VideoMessageH\x00R\fvideoMessage\x12N\n" + + "\x0flocationMessage\x18\x05 \x01(\v2\".WAWebProtobufsE2E.LocationMessageH\x00R\x0flocationMessage\x12D\n" + + "\acontent\x18\x06 \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageR\acontent\x12B\n" + + "\x06footer\x18\a \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageR\x06footer\x12;\n" + + "\abuttons\x18\b \x03(\v2!.WAWebProtobufsE2E.TemplateButtonR\abuttonsB\a\n" + + "\x05titleB\b\n" + + "\x06format\"\xcc\x05\n" + + "\x0eStickerMessage\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x02 \x01(\fR\n" + + "fileSHA256\x12$\n" + + "\rfileEncSHA256\x18\x03 \x01(\fR\rfileEncSHA256\x12\x1a\n" + + "\bmediaKey\x18\x04 \x01(\fR\bmediaKey\x12\x1a\n" + + "\bmimetype\x18\x05 \x01(\tR\bmimetype\x12\x16\n" + + "\x06height\x18\x06 \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\a \x01(\rR\x05width\x12\x1e\n" + + "\n" + + "directPath\x18\b \x01(\tR\n" + + "directPath\x12\x1e\n" + + "\n" + + "fileLength\x18\t \x01(\x04R\n" + + "fileLength\x12,\n" + + "\x11mediaKeyTimestamp\x18\n" + + " \x01(\x03R\x11mediaKeyTimestamp\x12*\n" + + "\x10firstFrameLength\x18\v \x01(\rR\x10firstFrameLength\x12,\n" + + "\x11firstFrameSidecar\x18\f \x01(\fR\x11firstFrameSidecar\x12\x1e\n" + + "\n" + + "isAnimated\x18\r \x01(\bR\n" + + "isAnimated\x12\"\n" + + "\fpngThumbnail\x18\x10 \x01(\fR\fpngThumbnail\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12$\n" + + "\rstickerSentTS\x18\x12 \x01(\x03R\rstickerSentTS\x12\x1a\n" + + "\bisAvatar\x18\x13 \x01(\bR\bisAvatar\x12 \n" + + "\visAiSticker\x18\x14 \x01(\bR\visAiSticker\x12\x1a\n" + + "\bisLottie\x18\x15 \x01(\bR\bisLottie\x12.\n" + + "\x12accessibilityLabel\x18\x16 \x01(\tR\x12accessibilityLabel\"\xcf\x03\n" + + "\x13LiveLocationMessage\x12(\n" + + "\x0fdegreesLatitude\x18\x01 \x01(\x01R\x0fdegreesLatitude\x12*\n" + + "\x10degreesLongitude\x18\x02 \x01(\x01R\x10degreesLongitude\x12*\n" + + "\x10accuracyInMeters\x18\x03 \x01(\rR\x10accuracyInMeters\x12\x1e\n" + + "\n" + + "speedInMps\x18\x04 \x01(\x02R\n" + + "speedInMps\x12L\n" + + "!degreesClockwiseFromMagneticNorth\x18\x05 \x01(\rR!degreesClockwiseFromMagneticNorth\x12\x18\n" + + "\acaption\x18\x06 \x01(\tR\acaption\x12&\n" + + "\x0esequenceNumber\x18\a \x01(\x03R\x0esequenceNumber\x12\x1e\n" + + "\n" + + "timeOffset\x18\b \x01(\rR\n" + + "timeOffset\x12$\n" + + "\rJPEGThumbnail\x18\x10 \x01(\fR\rJPEGThumbnail\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"E\n" + + "\x1bCancelPaymentRequestMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\"F\n" + + "\x1cDeclinePaymentRequestMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\"\xeb\x02\n" + + "\x15RequestPaymentMessage\x12<\n" + + "\vnoteMessage\x18\x04 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\vnoteMessage\x120\n" + + "\x13currencyCodeIso4217\x18\x01 \x01(\tR\x13currencyCodeIso4217\x12\x1e\n" + + "\n" + + "amount1000\x18\x02 \x01(\x04R\n" + + "amount1000\x12 \n" + + "\vrequestFrom\x18\x03 \x01(\tR\vrequestFrom\x12(\n" + + "\x0fexpiryTimestamp\x18\x05 \x01(\x03R\x0fexpiryTimestamp\x120\n" + + "\x06amount\x18\x06 \x01(\v2\x18.WAWebProtobufsE2E.MoneyR\x06amount\x12D\n" + + "\n" + + "background\x18\a \x01(\v2$.WAWebProtobufsE2E.PaymentBackgroundR\n" + + "background\"\xdc\x01\n" + + "\x12SendPaymentMessage\x12<\n" + + "\vnoteMessage\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\vnoteMessage\x12B\n" + + "\x11requestMessageKey\x18\x03 \x01(\v2\x14.WACommon.MessageKeyR\x11requestMessageKey\x12D\n" + + "\n" + + "background\x18\x04 \x01(\v2$.WAWebProtobufsE2E.PaymentBackgroundR\n" + + "background\"\xb9\x01\n" + + "\x14ContactsArrayMessage\x12 \n" + + "\vdisplayName\x18\x01 \x01(\tR\vdisplayName\x12=\n" + + "\bcontacts\x18\x02 \x03(\v2!.WAWebProtobufsE2E.ContactMessageR\bcontacts\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"j\n" + + "&InitialSecurityNotificationSettingSync\x12@\n" + + "\x1bsecurityNotificationEnabled\x18\x01 \x01(\bR\x1bsecurityNotificationEnabled\"\xc5\x0e\n" + + "\x1fPeerDataOperationRequestMessage\x12s\n" + + "\x1cpeerDataOperationRequestType\x18\x01 \x01(\x0e2/.WAWebProtobufsE2E.PeerDataOperationRequestTypeR\x1cpeerDataOperationRequestType\x12\x81\x01\n" + + "\x16requestStickerReupload\x18\x02 \x03(\v2I.WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReuploadR\x16requestStickerReupload\x12r\n" + + "\x11requestURLPreview\x18\x03 \x03(\v2D.WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreviewR\x11requestURLPreview\x12\x8d\x01\n" + + "\x1ahistorySyncOnDemandRequest\x18\x04 \x01(\v2M.WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequestR\x1ahistorySyncOnDemandRequest\x12\x9c\x01\n" + + "\x1fplaceholderMessageResendRequest\x18\x05 \x03(\v2R.WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequestR\x1fplaceholderMessageResendRequest\x12\x99\x01\n" + + "\x1efullHistorySyncOnDemandRequest\x18\x06 \x01(\v2Q.WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequestR\x1efullHistorySyncOnDemandRequest\x12\xa8\x01\n" + + "#syncdCollectionFatalRecoveryRequest\x18\a \x01(\v2V.WAWebProtobufsE2E.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequestR#syncdCollectionFatalRecoveryRequest\x1ak\n" + + "#SyncDCollectionFatalRecoveryRequest\x12&\n" + + "\x0ecollectionName\x18\x01 \x01(\tR\x0ecollectionName\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x03R\ttimestamp\x1aW\n" + + "\x1fPlaceholderMessageResendRequest\x124\n" + + "\n" + + "messageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\n" + + "messageKey\x1a\xe2\x01\n" + + "\x1eFullHistorySyncOnDemandRequest\x12c\n" + + "\x0frequestMetadata\x18\x01 \x01(\v29.WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadataR\x0frequestMetadata\x12[\n" + + "\x11historySyncConfig\x18\x02 \x01(\v2-.WACompanionReg.DeviceProps.HistorySyncConfigR\x11historySyncConfig\x1a\x82\x02\n" + + "\x1aHistorySyncOnDemandRequest\x12\x18\n" + + "\achatJID\x18\x01 \x01(\tR\achatJID\x12 \n" + + "\voldestMsgID\x18\x02 \x01(\tR\voldestMsgID\x12(\n" + + "\x0foldestMsgFromMe\x18\x03 \x01(\bR\x0foldestMsgFromMe\x12*\n" + + "\x10onDemandMsgCount\x18\x04 \x01(\x05R\x10onDemandMsgCount\x122\n" + + "\x14oldestMsgTimestampMS\x18\x05 \x01(\x03R\x14oldestMsgTimestampMS\x12\x1e\n" + + "\n" + + "accountLid\x18\x06 \x01(\tR\n" + + "accountLid\x1aU\n" + + "\x11RequestUrlPreview\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12.\n" + + "\x12includeHqThumbnail\x18\x02 \x01(\bR\x12includeHqThumbnail\x1a8\n" + + "\x16RequestStickerReupload\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x01 \x01(\tR\n" + + "fileSHA256\"F\n" + + "&FullHistorySyncOnDemandRequestMetadata\x12\x1c\n" + + "\trequestID\x18\x01 \x01(\tR\trequestID\"l\n" + + "\"AppStateFatalExceptionNotification\x12(\n" + + "\x0fcollectionNames\x18\x01 \x03(\tR\x0fcollectionNames\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x03R\ttimestamp\"V\n" + + "\x16AppStateSyncKeyRequest\x12<\n" + + "\x06keyIDs\x18\x01 \x03(\v2$.WAWebProtobufsE2E.AppStateSyncKeyIdR\x06keyIDs\"N\n" + + "\x14AppStateSyncKeyShare\x126\n" + + "\x04keys\x18\x01 \x03(\v2\".WAWebProtobufsE2E.AppStateSyncKeyR\x04keys\"\x9e\x01\n" + + "\x13AppStateSyncKeyData\x12\x18\n" + + "\akeyData\x18\x01 \x01(\fR\akeyData\x12O\n" + + "\vfingerprint\x18\x02 \x01(\v2-.WAWebProtobufsE2E.AppStateSyncKeyFingerprintR\vfingerprint\x12\x1c\n" + + "\ttimestamp\x18\x03 \x01(\x03R\ttimestamp\"\x80\x01\n" + + "\x1aAppStateSyncKeyFingerprint\x12\x14\n" + + "\x05rawID\x18\x01 \x01(\rR\x05rawID\x12\"\n" + + "\fcurrentIndex\x18\x02 \x01(\rR\fcurrentIndex\x12(\n" + + "\rdeviceIndexes\x18\x03 \x03(\rB\x02\x10\x01R\rdeviceIndexes\")\n" + + "\x11AppStateSyncKeyId\x12\x14\n" + + "\x05keyID\x18\x01 \x01(\fR\x05keyID\"\x8f\x01\n" + + "\x0fAppStateSyncKey\x12:\n" + + "\x05keyID\x18\x01 \x01(\v2$.WAWebProtobufsE2E.AppStateSyncKeyIdR\x05keyID\x12@\n" + + "\akeyData\x18\x02 \x01(\v2&.WAWebProtobufsE2E.AppStateSyncKeyDataR\akeyData\"8\n" + + "\x04Chat\x12 \n" + + "\vdisplayName\x18\x01 \x01(\tR\vdisplayName\x12\x0e\n" + + "\x02ID\x18\x02 \x01(\tR\x02ID\"\xb2\x02\n" + + "\x04Call\x12\x18\n" + + "\acallKey\x18\x01 \x01(\fR\acallKey\x12*\n" + + "\x10conversionSource\x18\x02 \x01(\tR\x10conversionSource\x12&\n" + + "\x0econversionData\x18\x03 \x01(\fR\x0econversionData\x126\n" + + "\x16conversionDelaySeconds\x18\x04 \x01(\rR\x16conversionDelaySeconds\x12 \n" + + "\vctwaSignals\x18\x05 \x01(\tR\vctwaSignals\x12 \n" + + "\vctwaPayload\x18\x06 \x01(\fR\vctwaPayload\x12@\n" + + "\vcontextInfo\x18\a \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"\xb6\x04\n" + + "\fAudioMessage\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12\x1a\n" + + "\bmimetype\x18\x02 \x01(\tR\bmimetype\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x03 \x01(\fR\n" + + "fileSHA256\x12\x1e\n" + + "\n" + + "fileLength\x18\x04 \x01(\x04R\n" + + "fileLength\x12\x18\n" + + "\aseconds\x18\x05 \x01(\rR\aseconds\x12\x10\n" + + "\x03PTT\x18\x06 \x01(\bR\x03PTT\x12\x1a\n" + + "\bmediaKey\x18\a \x01(\fR\bmediaKey\x12$\n" + + "\rfileEncSHA256\x18\b \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\t \x01(\tR\n" + + "directPath\x12,\n" + + "\x11mediaKeyTimestamp\x18\n" + + " \x01(\x03R\x11mediaKeyTimestamp\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12*\n" + + "\x10streamingSidecar\x18\x12 \x01(\fR\x10streamingSidecar\x12\x1a\n" + + "\bwaveform\x18\x13 \x01(\fR\bwaveform\x12&\n" + + "\x0ebackgroundArgb\x18\x14 \x01(\aR\x0ebackgroundArgb\x12\x1a\n" + + "\bviewOnce\x18\x15 \x01(\bR\bviewOnce\x12.\n" + + "\x12accessibilityLabel\x18\x16 \x01(\tR\x12accessibilityLabel\"\x93\x06\n" + + "\x0fDocumentMessage\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12\x1a\n" + + "\bmimetype\x18\x02 \x01(\tR\bmimetype\x12\x14\n" + + "\x05title\x18\x03 \x01(\tR\x05title\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x04 \x01(\fR\n" + + "fileSHA256\x12\x1e\n" + + "\n" + + "fileLength\x18\x05 \x01(\x04R\n" + + "fileLength\x12\x1c\n" + + "\tpageCount\x18\x06 \x01(\rR\tpageCount\x12\x1a\n" + + "\bmediaKey\x18\a \x01(\fR\bmediaKey\x12\x1a\n" + + "\bfileName\x18\b \x01(\tR\bfileName\x12$\n" + + "\rfileEncSHA256\x18\t \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\n" + + " \x01(\tR\n" + + "directPath\x12,\n" + + "\x11mediaKeyTimestamp\x18\v \x01(\x03R\x11mediaKeyTimestamp\x12\"\n" + + "\fcontactVcard\x18\f \x01(\bR\fcontactVcard\x120\n" + + "\x13thumbnailDirectPath\x18\r \x01(\tR\x13thumbnailDirectPath\x12(\n" + + "\x0fthumbnailSHA256\x18\x0e \x01(\fR\x0fthumbnailSHA256\x12.\n" + + "\x12thumbnailEncSHA256\x18\x0f \x01(\fR\x12thumbnailEncSHA256\x12$\n" + + "\rJPEGThumbnail\x18\x10 \x01(\fR\rJPEGThumbnail\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12(\n" + + "\x0fthumbnailHeight\x18\x12 \x01(\rR\x0fthumbnailHeight\x12&\n" + + "\x0ethumbnailWidth\x18\x13 \x01(\rR\x0ethumbnailWidth\x12\x18\n" + + "\acaption\x18\x14 \x01(\tR\acaption\x12.\n" + + "\x12accessibilityLabel\x18\x15 \x01(\tR\x12accessibilityLabel\"\xd9\x01\n" + + "\x13LinkPreviewMetadata\x12X\n" + + "\x13paymentLinkMetadata\x18\x01 \x01(\v2&.WAWebProtobufsE2E.PaymentLinkMetadataR\x13paymentLinkMetadata\x12@\n" + + "\vurlMetadata\x18\x02 \x01(\v2\x1e.WAWebProtobufsE2E.URLMetadataR\vurlMetadata\x12&\n" + + "\x0efbExperimentID\x18\x03 \x01(\rR\x0efbExperimentID\"5\n" + + "\vURLMetadata\x12&\n" + + "\x0efbExperimentID\x18\x01 \x01(\rR\x0efbExperimentID\"\xbe\x02\n" + + "\x14MMSThumbnailMetadata\x120\n" + + "\x13thumbnailDirectPath\x18\x01 \x01(\tR\x13thumbnailDirectPath\x12(\n" + + "\x0fthumbnailSHA256\x18\x02 \x01(\fR\x0fthumbnailSHA256\x12.\n" + + "\x12thumbnailEncSHA256\x18\x03 \x01(\fR\x12thumbnailEncSHA256\x12\x1a\n" + + "\bmediaKey\x18\x04 \x01(\fR\bmediaKey\x12,\n" + + "\x11mediaKeyTimestamp\x18\x05 \x01(\x03R\x11mediaKeyTimestamp\x12(\n" + + "\x0fthumbnailHeight\x18\x06 \x01(\rR\x0fthumbnailHeight\x12&\n" + + "\x0ethumbnailWidth\x18\a \x01(\rR\x0ethumbnailWidth\"\xdb\x03\n" + + "\x0fLocationMessage\x12(\n" + + "\x0fdegreesLatitude\x18\x01 \x01(\x01R\x0fdegreesLatitude\x12*\n" + + "\x10degreesLongitude\x18\x02 \x01(\x01R\x10degreesLongitude\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12\x18\n" + + "\aaddress\x18\x04 \x01(\tR\aaddress\x12\x10\n" + + "\x03URL\x18\x05 \x01(\tR\x03URL\x12\x16\n" + + "\x06isLive\x18\x06 \x01(\bR\x06isLive\x12*\n" + + "\x10accuracyInMeters\x18\a \x01(\rR\x10accuracyInMeters\x12\x1e\n" + + "\n" + + "speedInMps\x18\b \x01(\x02R\n" + + "speedInMps\x12L\n" + + "!degreesClockwiseFromMagneticNorth\x18\t \x01(\rR!degreesClockwiseFromMagneticNorth\x12\x18\n" + + "\acomment\x18\v \x01(\tR\acomment\x12$\n" + + "\rJPEGThumbnail\x18\x10 \x01(\fR\rJPEGThumbnail\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"\x8a\x01\n" + + "\x0eContactMessage\x12 \n" + + "\vdisplayName\x18\x01 \x01(\tR\vdisplayName\x12\x14\n" + + "\x05vcard\x18\x10 \x01(\tR\x05vcard\x12@\n" + + "\vcontextInfo\x18\x11 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"\x8a\x01\n" + + "\x1cSenderKeyDistributionMessage\x12\x18\n" + + "\agroupID\x18\x01 \x01(\tR\agroupID\x12P\n" + + "#axolotlSenderKeyDistributionMessage\x18\x02 \x01(\fR#axolotlSenderKeyDistributionMessage\"\xab\x01\n" + + "\x11BotAvatarMetadata\x12\x1c\n" + + "\tsentiment\x18\x01 \x01(\rR\tsentiment\x12$\n" + + "\rbehaviorGraph\x18\x02 \x01(\tR\rbehaviorGraph\x12\x16\n" + + "\x06action\x18\x03 \x01(\rR\x06action\x12\x1c\n" + + "\tintensity\x18\x04 \x01(\rR\tintensity\x12\x1c\n" + + "\twordCount\x18\x05 \x01(\rR\twordCount\"\xfd\x01\n" + + "\x1aBotSuggestedPromptMetadata\x12*\n" + + "\x10suggestedPrompts\x18\x01 \x03(\tR\x10suggestedPrompts\x120\n" + + "\x13selectedPromptIndex\x18\x02 \x01(\rR\x13selectedPromptIndex\x12U\n" + + "\x11promptSuggestions\x18\x03 \x01(\v2'.WAWebProtobufsE2E.BotPromptSuggestionsR\x11promptSuggestions\x12*\n" + + "\x10selectedPromptID\x18\x04 \x01(\tR\x10selectedPromptID\"`\n" + + "\x14BotPromptSuggestions\x12H\n" + + "\vsuggestions\x18\x01 \x03(\v2&.WAWebProtobufsE2E.BotPromptSuggestionR\vsuggestions\"I\n" + + "\x13BotPromptSuggestion\x12\x16\n" + + "\x06prompt\x18\x01 \x01(\tR\x06prompt\x12\x1a\n" + + "\bpromptID\x18\x02 \x01(\tR\bpromptID\"\xa2\x01\n" + + "\x19BotLinkedAccountsMetadata\x12?\n" + + "\baccounts\x18\x01 \x03(\v2#.WAWebProtobufsE2E.BotLinkedAccountR\baccounts\x12\"\n" + + "\facAuthTokens\x18\x02 \x01(\fR\facAuthTokens\x12 \n" + + "\vacErrorCode\x18\x03 \x01(\x05R\vacErrorCode\"\xbb\x01\n" + + "\x11BotMemoryMetadata\x12@\n" + + "\n" + + "addedFacts\x18\x01 \x03(\v2 .WAWebProtobufsE2E.BotMemoryFactR\n" + + "addedFacts\x12D\n" + + "\fremovedFacts\x18\x02 \x03(\v2 .WAWebProtobufsE2E.BotMemoryFactR\fremovedFacts\x12\x1e\n" + + "\n" + + "disclaimer\x18\x03 \x01(\tR\n" + + "disclaimer\";\n" + + "\rBotMemoryFact\x12\x12\n" + + "\x04fact\x18\x01 \x01(\tR\x04fact\x12\x16\n" + + "\x06factID\x18\x02 \x01(\tR\x06factID\"\xb2\x01\n" + + "\x14BotRenderingMetadata\x12K\n" + + "\bkeywords\x18\x01 \x03(\v2/.WAWebProtobufsE2E.BotRenderingMetadata.KeywordR\bkeywords\x1aM\n" + + "\aKeyword\x12\x14\n" + + "\x05value\x18\x01 \x01(\tR\x05value\x12,\n" + + "\x11associatedPrompts\x18\x02 \x03(\tR\x11associatedPrompts\"\xec\x01\n" + + "\x12BotMetricsMetadata\x12$\n" + + "\rdestinationID\x18\x01 \x01(\tR\rdestinationID\x12]\n" + + "\x15destinationEntryPoint\x18\x02 \x01(\x0e2'.WAWebProtobufsE2E.BotMetricsEntryPointR\x15destinationEntryPoint\x12Q\n" + + "\fthreadOrigin\x18\x03 \x01(\x0e2-.WAWebProtobufsE2E.BotMetricsThreadEntryPointR\fthreadOrigin\"}\n" + + "\x12BotSessionMetadata\x12\x1c\n" + + "\tsessionID\x18\x01 \x01(\tR\tsessionID\x12I\n" + + "\rsessionSource\x18\x02 \x01(\x0e2#.WAWebProtobufsE2E.BotSessionSourceR\rsessionSource\"V\n" + + "\x0fBotMemuMetadata\x12C\n" + + "\n" + + "faceImages\x18\x01 \x03(\v2#.WAWebProtobufsE2E.BotMediaMetadataR\n" + + "faceImages\"\xa0\x01\n" + + "\x18BotAgeCollectionMetadata\x124\n" + + "\x15ageCollectionEligible\x18\x01 \x01(\bR\x15ageCollectionEligible\x12N\n" + + "\"shouldTriggerAgeCollectionOnClient\x18\x02 \x01(\bR\"shouldTriggerAgeCollectionOnClient\"\x90\x0f\n" + + "\vBotMetadata\x12L\n" + + "\x0eavatarMetadata\x18\x01 \x01(\v2$.WAWebProtobufsE2E.BotAvatarMetadataR\x0eavatarMetadata\x12\x1c\n" + + "\tpersonaID\x18\x02 \x01(\tR\tpersonaID\x12L\n" + + "\x0epluginMetadata\x18\x03 \x01(\v2$.WAWebProtobufsE2E.BotPluginMetadataR\x0epluginMetadata\x12g\n" + + "\x17suggestedPromptMetadata\x18\x04 \x01(\v2-.WAWebProtobufsE2E.BotSuggestedPromptMetadataR\x17suggestedPromptMetadata\x12\x1e\n" + + "\n" + + "invokerJID\x18\x05 \x01(\tR\n" + + "invokerJID\x12O\n" + + "\x0fsessionMetadata\x18\x06 \x01(\v2%.WAWebProtobufsE2E.BotSessionMetadataR\x0fsessionMetadata\x12F\n" + + "\fmemuMetadata\x18\a \x01(\v2\".WAWebProtobufsE2E.BotMemuMetadataR\fmemuMetadata\x12\x1a\n" + + "\btimezone\x18\b \x01(\tR\btimezone\x12R\n" + + "\x10reminderMetadata\x18\t \x01(\v2&.WAWebProtobufsE2E.BotReminderMetadataR\x10reminderMetadata\x12I\n" + + "\rmodelMetadata\x18\n" + + " \x01(\v2#.WAWebProtobufsE2E.BotModelMetadataR\rmodelMetadata\x124\n" + + "\x15messageDisclaimerText\x18\v \x01(\tR\x15messageDisclaimerText\x12m\n" + + "\x19progressIndicatorMetadata\x18\f \x01(\v2/.WAWebProtobufsE2E.BotProgressIndicatorMetadataR\x19progressIndicatorMetadata\x12X\n" + + "\x12capabilityMetadata\x18\r \x01(\v2(.WAWebProtobufsE2E.BotCapabilityMetadataR\x12capabilityMetadata\x12O\n" + + "\x0fimagineMetadata\x18\x0e \x01(\v2%.WAWebProtobufsE2E.BotImagineMetadataR\x0fimagineMetadata\x12L\n" + + "\x0ememoryMetadata\x18\x0f \x01(\v2$.WAWebProtobufsE2E.BotMemoryMetadataR\x0ememoryMetadata\x12U\n" + + "\x11renderingMetadata\x18\x10 \x01(\v2'.WAWebProtobufsE2E.BotRenderingMetadataR\x11renderingMetadata\x12U\n" + + "\x12botMetricsMetadata\x18\x11 \x01(\v2%.WAWebProtobufsE2E.BotMetricsMetadataR\x12botMetricsMetadata\x12j\n" + + "\x19botLinkedAccountsMetadata\x18\x12 \x01(\v2,.WAWebProtobufsE2E.BotLinkedAccountsMetadataR\x19botLinkedAccountsMetadata\x12g\n" + + "\x1brichResponseSourcesMetadata\x18\x13 \x01(\v2%.WAWebProtobufsE2E.BotSourcesMetadataR\x1brichResponseSourcesMetadata\x124\n" + + "\x15aiConversationContext\x18\x14 \x01(\fR\x15aiConversationContext\x12p\n" + + "\x1bbotPromotionMessageMetadata\x18\x15 \x01(\v2..WAWebProtobufsE2E.BotPromotionMessageMetadataR\x1bbotPromotionMessageMetadata\x12g\n" + + "\x18botModeSelectionMetadata\x18\x16 \x01(\v2+.WAWebProtobufsE2E.BotModeSelectionMetadataR\x18botModeSelectionMetadata\x12O\n" + + "\x10botQuotaMetadata\x18\x17 \x01(\v2#.WAWebProtobufsE2E.BotQuotaMetadataR\x10botQuotaMetadata\x12g\n" + + "\x18botAgeCollectionMetadata\x18\x18 \x01(\v2+.WAWebProtobufsE2E.BotAgeCollectionMetadataR\x18botAgeCollectionMetadata\"\xba\x03\n" + + "\x12DeviceListMetadata\x12$\n" + + "\rsenderKeyHash\x18\x01 \x01(\fR\rsenderKeyHash\x12(\n" + + "\x0fsenderTimestamp\x18\x02 \x01(\x04R\x0fsenderTimestamp\x12.\n" + + "\x10senderKeyIndexes\x18\x03 \x03(\rB\x02\x10\x01R\x10senderKeyIndexes\x12F\n" + + "\x11senderAccountType\x18\x04 \x01(\x0e2\x18.WAAdv.ADVEncryptionTypeR\x11senderAccountType\x12J\n" + + "\x13receiverAccountType\x18\x05 \x01(\x0e2\x18.WAAdv.ADVEncryptionTypeR\x13receiverAccountType\x12*\n" + + "\x10recipientKeyHash\x18\b \x01(\fR\x10recipientKeyHash\x12.\n" + + "\x12recipientTimestamp\x18\t \x01(\x04R\x12recipientTimestamp\x124\n" + + "\x13recipientKeyIndexes\x18\n" + + " \x03(\rB\x02\x10\x01R\x13recipientKeyIndexes\"c\n" + + "\x0fEmbeddedMessage\x12\x1a\n" + + "\bstanzaID\x18\x01 \x01(\tR\bstanzaID\x124\n" + + "\amessage\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\"\xab\x03\n" + + "\rEmbeddedMusic\x120\n" + + "\x13musicContentMediaID\x18\x01 \x01(\tR\x13musicContentMediaID\x12\x16\n" + + "\x06songID\x18\x02 \x01(\tR\x06songID\x12\x16\n" + + "\x06author\x18\x03 \x01(\tR\x06author\x12\x14\n" + + "\x05title\x18\x04 \x01(\tR\x05title\x12,\n" + + "\x11artworkDirectPath\x18\x05 \x01(\tR\x11artworkDirectPath\x12$\n" + + "\rartworkSHA256\x18\x06 \x01(\fR\rartworkSHA256\x12*\n" + + "\x10artworkEncSHA256\x18\a \x01(\fR\x10artworkEncSHA256\x12(\n" + + "\x0fartworkMediaKey\x18\v \x01(\fR\x0fartworkMediaKey\x12,\n" + + "\x11artistAttribution\x18\b \x01(\tR\x11artistAttribution\x12*\n" + + "\x10countryBlocklist\x18\t \x01(\fR\x10countryBlocklist\x12\x1e\n" + + "\n" + + "isExplicit\x18\n" + + " \x01(\bR\n" + + "isExplicit\"\xb6\x01\n" + + "\x0fEmbeddedContent\x12N\n" + + "\x0fembeddedMessage\x18\x01 \x01(\v2\".WAWebProtobufsE2E.EmbeddedMessageH\x00R\x0fembeddedMessage\x12H\n" + + "\rembeddedMusic\x18\x02 \x01(\v2 .WAWebProtobufsE2E.EmbeddedMusicH\x00R\rembeddedMusicB\t\n" + + "\acontent\"=\n" + + "\rTapLinkAction\x12\x14\n" + + "\x05title\x18\x01 \x01(\tR\x05title\x12\x16\n" + + "\x06tapURL\x18\x02 \x01(\tR\x06tapURL\"g\n" + + "\x05Point\x12 \n" + + "\vxDeprecated\x18\x01 \x01(\x05R\vxDeprecated\x12 \n" + + "\vyDeprecated\x18\x02 \x01(\x05R\vyDeprecated\x12\f\n" + + "\x01x\x18\x03 \x01(\x01R\x01x\x12\f\n" + + "\x01y\x18\x04 \x01(\x01R\x01y\"t\n" + + "\bLocation\x12(\n" + + "\x0fdegreesLatitude\x18\x01 \x01(\x01R\x0fdegreesLatitude\x12*\n" + + "\x10degreesLongitude\x18\x02 \x01(\x01R\x10degreesLongitude\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\"\xe6\x05\n" + + "\x0eTemplateButton\x12`\n" + + "\x10quickReplyButton\x18\x01 \x01(\v22.WAWebProtobufsE2E.TemplateButton.QuickReplyButtonH\x00R\x10quickReplyButton\x12K\n" + + "\turlButton\x18\x02 \x01(\v2+.WAWebProtobufsE2E.TemplateButton.URLButtonH\x00R\turlButton\x12N\n" + + "\n" + + "callButton\x18\x03 \x01(\v2,.WAWebProtobufsE2E.TemplateButton.CallButtonH\x00R\n" + + "callButton\x12\x14\n" + + "\x05index\x18\x04 \x01(\rR\x05index\x1a\xa8\x01\n" + + "\n" + + "CallButton\x12L\n" + + "\vdisplayText\x18\x01 \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageR\vdisplayText\x12L\n" + + "\vphoneNumber\x18\x02 \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageR\vphoneNumber\x1a\x97\x01\n" + + "\tURLButton\x12L\n" + + "\vdisplayText\x18\x01 \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageR\vdisplayText\x12<\n" + + "\x03URL\x18\x02 \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageR\x03URL\x1ap\n" + + "\x10QuickReplyButton\x12L\n" + + "\vdisplayText\x18\x01 \x01(\v2*.WAWebProtobufsE2E.HighlyStructuredMessageR\vdisplayText\x12\x0e\n" + + "\x02ID\x18\x02 \x01(\tR\x02IDB\b\n" + + "\x06button\"Y\n" + + "\x05Money\x12\x14\n" + + "\x05value\x18\x01 \x01(\x03R\x05value\x12\x16\n" + + "\x06offset\x18\x02 \x01(\rR\x06offset\x12\"\n" + + "\fcurrencyCode\x18\x03 \x01(\tR\fcurrencyCode\"@\n" + + "\n" + + "ActionLink\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12 \n" + + "\vbuttonTitle\x18\x02 \x01(\tR\vbuttonTitle\"N\n" + + "\fGroupMention\x12\x1a\n" + + "\bgroupJID\x18\x01 \x01(\tR\bgroupJID\x12\"\n" + + "\fgroupSubject\x18\x02 \x01(\tR\fgroupSubject\"f\n" + + "\x14MessageSecretMessage\x12\x18\n" + + "\aversion\x18\x01 \x01(\x0fR\aversion\x12\x14\n" + + "\x05encIV\x18\x02 \x01(\fR\x05encIV\x12\x1e\n" + + "\n" + + "encPayload\x18\x03 \x01(\fR\n" + + "encPayload\"\x82\x01\n" + + "\x12MediaNotifyMessage\x12&\n" + + "\x0eexpressPathURL\x18\x01 \x01(\tR\x0eexpressPathURL\x12$\n" + + "\rfileEncSHA256\x18\x02 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "fileLength\x18\x03 \x01(\x04R\n" + + "fileLength\"V\n" + + "\x1eLIDMigrationMappingSyncMessage\x124\n" + + "\x15encodedMappingPayload\x18\x01 \x01(\fR\x15encodedMappingPayload\"\xbb\x02\n" + + "\x0eUrlTrackingMap\x12o\n" + + "\x16urlTrackingMapElements\x18\x01 \x03(\v27.WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElementR\x16urlTrackingMapElements\x1a\xb7\x01\n" + + "\x15UrlTrackingMapElement\x12 \n" + + "\voriginalURL\x18\x01 \x01(\tR\voriginalURL\x120\n" + + "\x13unconsentedUsersURL\x18\x02 \x01(\tR\x13unconsentedUsersURL\x12,\n" + + "\x11consentedUsersURL\x18\x03 \x01(\tR\x11consentedUsersURL\x12\x1c\n" + + "\tcardIndex\x18\x04 \x01(\rR\tcardIndex\"\x99\x01\n" + + "\rAIQueryFanout\x124\n" + + "\n" + + "messageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\n" + + "messageKey\x124\n" + + "\amessage\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\x12\x1c\n" + + "\ttimestamp\x18\x03 \x01(\x03R\ttimestamp\"K\n" + + "\vMemberLabel\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x12&\n" + + "\x0elabelTimestamp\x18\x02 \x01(\x03R\x0elabelTimestamp*E\n" + + "\x0fPollContentType\x12\x1d\n" + + "\x19UNKNOWN_POLL_CONTENT_TYPE\x10\x00\x12\b\n" + + "\x04TEXT\x10\x01\x12\t\n" + + "\x05IMAGE\x10\x02*\xba\x02\n" + + "\x1cPeerDataOperationRequestType\x12\x12\n" + + "\x0eUPLOAD_STICKER\x10\x00\x12!\n" + + "\x1dSEND_RECENT_STICKER_BOOTSTRAP\x10\x01\x12\x19\n" + + "\x15GENERATE_LINK_PREVIEW\x10\x02\x12\x1a\n" + + "\x16HISTORY_SYNC_ON_DEMAND\x10\x03\x12\x1e\n" + + "\x1aPLACEHOLDER_MESSAGE_RESEND\x10\x04\x12\x1e\n" + + "\x1aWAFFLE_LINKING_NONCE_FETCH\x10\x05\x12\x1f\n" + + "\x1bFULL_HISTORY_SYNC_ON_DEMAND\x10\x06\x12\x1e\n" + + "\x1aCOMPANION_META_NONCE_FETCH\x10\a\x12+\n" + + "'COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY\x10\b*\xdd\x04\n" + + "\x14BotMetricsEntryPoint\x12\v\n" + + "\aFAVICON\x10\x01\x12\f\n" + + "\bCHATLIST\x10\x02\x12#\n" + + "\x1fAISEARCH_NULL_STATE_PAPER_PLANE\x10\x03\x12\"\n" + + "\x1eAISEARCH_NULL_STATE_SUGGESTION\x10\x04\x12\"\n" + + "\x1eAISEARCH_TYPE_AHEAD_SUGGESTION\x10\x05\x12#\n" + + "\x1fAISEARCH_TYPE_AHEAD_PAPER_PLANE\x10\x06\x12'\n" + + "#AISEARCH_TYPE_AHEAD_RESULT_CHATLIST\x10\a\x12'\n" + + "#AISEARCH_TYPE_AHEAD_RESULT_MESSAGES\x10\b\x12\x16\n" + + "\x12AIVOICE_SEARCH_BAR\x10\t\x12\x13\n" + + "\x0fAIVOICE_FAVICON\x10\n" + + "\x12\f\n" + + "\bAISTUDIO\x10\v\x12\f\n" + + "\bDEEPLINK\x10\f\x12\x10\n" + + "\fNOTIFICATION\x10\r\x12\x1a\n" + + "\x16PROFILE_MESSAGE_BUTTON\x10\x0e\x12\v\n" + + "\aFORWARD\x10\x0f\x12\x10\n" + + "\fAPP_SHORTCUT\x10\x10\x12\r\n" + + "\tFF_FAMILY\x10\x11\x12\n" + + "\n" + + "\x06AI_TAB\x10\x12\x12\v\n" + + "\aAI_HOME\x10\x13\x12\x19\n" + + "\x15AI_DEEPLINK_IMMERSIVE\x10\x14\x12\x0f\n" + + "\vAI_DEEPLINK\x10\x15\x12#\n" + + "\x1fMETA_AI_CHAT_SHORTCUT_AI_STUDIO\x10\x16\x12\x1f\n" + + "\x1bUGC_CHAT_SHORTCUT_AI_STUDIO\x10\x17\x12\x16\n" + + "\x12NEW_CHAT_AI_STUDIO\x10\x18*}\n" + + "\x1aBotMetricsThreadEntryPoint\x12\x11\n" + + "\rAI_TAB_THREAD\x10\x01\x12\x12\n" + + "\x0eAI_HOME_THREAD\x10\x02\x12 \n" + + "\x1cAI_DEEPLINK_IMMERSIVE_THREAD\x10\x03\x12\x16\n" + + "\x12AI_DEEPLINK_THREAD\x10\x04*}\n" + + "\x10BotSessionSource\x12\b\n" + + "\x04NONE\x10\x00\x12\x0e\n" + + "\n" + + "NULL_STATE\x10\x01\x12\r\n" + + "\tTYPEAHEAD\x10\x02\x12\x0e\n" + + "\n" + + "USER_INPUT\x10\x03\x12\r\n" + + "\tEMU_FLASH\x10\x04\x12\x16\n" + + "\x12EMU_FLASH_FOLLOWUP\x10\x05\x12\t\n" + + "\x05VOICE\x10\x06*J\n" + + "\bKeepType\x12\x15\n" + + "\x11UNKNOWN_KEEP_TYPE\x10\x00\x12\x10\n" + + "\fKEEP_FOR_ALL\x10\x01\x12\x15\n" + + "\x11UNDO_KEEP_FOR_ALL\x10\x02B!Z\x1fgithub.com/techwiz37/waSocket/proto/waE2E" var ( file_waE2E_WAWebProtobufsE2E_proto_rawDescOnce sync.Once - file_waE2E_WAWebProtobufsE2E_proto_rawDescData = file_waE2E_WAWebProtobufsE2E_proto_rawDesc + file_waE2E_WAWebProtobufsE2E_proto_rawDescData []byte ) func file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP() []byte { file_waE2E_WAWebProtobufsE2E_proto_rawDescOnce.Do(func() { - file_waE2E_WAWebProtobufsE2E_proto_rawDescData = protoimpl.X.CompressGZIP(file_waE2E_WAWebProtobufsE2E_proto_rawDescData) + file_waE2E_WAWebProtobufsE2E_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waE2E_WAWebProtobufsE2E_proto_rawDesc), len(file_waE2E_WAWebProtobufsE2E_proto_rawDesc))) }) return file_waE2E_WAWebProtobufsE2E_proto_rawDescData } -var file_waE2E_WAWebProtobufsE2E_proto_enumTypes = make([]protoimpl.EnumInfo, 80) -var file_waE2E_WAWebProtobufsE2E_proto_msgTypes = make([]protoimpl.MessageInfo, 215) +var file_waE2E_WAWebProtobufsE2E_proto_enumTypes = make([]protoimpl.EnumInfo, 85) +var file_waE2E_WAWebProtobufsE2E_proto_msgTypes = make([]protoimpl.MessageInfo, 226) var file_waE2E_WAWebProtobufsE2E_proto_goTypes = []any{ (PollContentType)(0), // 0: WAWebProtobufsE2E.PollContentType (PeerDataOperationRequestType)(0), // 1: WAWebProtobufsE2E.PeerDataOperationRequestType @@ -22565,700 +25760,738 @@ var file_waE2E_WAWebProtobufsE2E_proto_goTypes = []any{ (StatusNotificationMessage_StatusNotificationType)(0), // 44: WAWebProtobufsE2E.StatusNotificationMessage.StatusNotificationType (InvoiceMessage_AttachmentType)(0), // 45: WAWebProtobufsE2E.InvoiceMessage.AttachmentType (ImageMessage_ImageSourceType)(0), // 46: WAWebProtobufsE2E.ImageMessage.ImageSourceType - (ContextInfo_PairedMediaType)(0), // 47: WAWebProtobufsE2E.ContextInfo.PairedMediaType - (ContextInfo_StatusAttributionType)(0), // 48: WAWebProtobufsE2E.ContextInfo.StatusAttributionType - (ContextInfo_ForwardedNewsletterMessageInfo_ContentType)(0), // 49: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentType - (ContextInfo_ExternalAdReplyInfo_MediaType)(0), // 50: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaType - (ContextInfo_AdReplyInfo_MediaType)(0), // 51: WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaType - (BotPluginMetadata_PluginType)(0), // 52: WAWebProtobufsE2E.BotPluginMetadata.PluginType - (BotPluginMetadata_SearchProvider)(0), // 53: WAWebProtobufsE2E.BotPluginMetadata.SearchProvider - (BotLinkedAccount_BotLinkedAccountType)(0), // 54: WAWebProtobufsE2E.BotLinkedAccount.BotLinkedAccountType - (AIRichResponseMessage_AIRichResponseSubMessageType)(0), // 55: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessageType - (AIRichResponseMessage_AIRichResponseMessageType)(0), // 56: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMessageType - (AIRichResponseMessage_AIRichResponseContentItemsMetadata_ContentType)(0), // 57: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.ContentType - (AIRichResponseMessage_AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType)(0), // 58: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType - (AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType)(0), // 59: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType - (AIRichResponseMessage_AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment)(0), // 60: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment - (BotMediaMetadata_OrientationType)(0), // 61: WAWebProtobufsE2E.BotMediaMetadata.OrientationType - (BotReminderMetadata_ReminderFrequency)(0), // 62: WAWebProtobufsE2E.BotReminderMetadata.ReminderFrequency - (BotReminderMetadata_ReminderAction)(0), // 63: WAWebProtobufsE2E.BotReminderMetadata.ReminderAction - (BotModelMetadata_PremiumModelStatus)(0), // 64: WAWebProtobufsE2E.BotModelMetadata.PremiumModelStatus - (BotModelMetadata_ModelType)(0), // 65: WAWebProtobufsE2E.BotModelMetadata.ModelType - (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider)(0), // 66: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider - (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus)(0), // 67: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus - (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider)(0), // 68: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider - (BotCapabilityMetadata_BotCapabilityType)(0), // 69: WAWebProtobufsE2E.BotCapabilityMetadata.BotCapabilityType - (BotImagineMetadata_ImagineType)(0), // 70: WAWebProtobufsE2E.BotImagineMetadata.ImagineType - (BotSourcesMetadata_BotSourceItem_SourceProvider)(0), // 71: WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem.SourceProvider - (MessageAssociation_AssociationType)(0), // 72: WAWebProtobufsE2E.MessageAssociation.AssociationType - (MessageContextInfo_MessageAddonExpiryType)(0), // 73: WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryType - (InteractiveAnnotation_StatusLinkType)(0), // 74: WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkType - (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType)(0), // 75: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType - (PaymentBackground_Type)(0), // 76: WAWebProtobufsE2E.PaymentBackground.Type - (DisappearingMode_Trigger)(0), // 77: WAWebProtobufsE2E.DisappearingMode.Trigger - (DisappearingMode_Initiator)(0), // 78: WAWebProtobufsE2E.DisappearingMode.Initiator - (ProcessedVideo_VideoQuality)(0), // 79: WAWebProtobufsE2E.ProcessedVideo.VideoQuality - (*StickerPackMessage)(nil), // 80: WAWebProtobufsE2E.StickerPackMessage - (*PlaceholderMessage)(nil), // 81: WAWebProtobufsE2E.PlaceholderMessage - (*BCallMessage)(nil), // 82: WAWebProtobufsE2E.BCallMessage - (*CallLogMessage)(nil), // 83: WAWebProtobufsE2E.CallLogMessage - (*ScheduledCallEditMessage)(nil), // 84: WAWebProtobufsE2E.ScheduledCallEditMessage - (*ScheduledCallCreationMessage)(nil), // 85: WAWebProtobufsE2E.ScheduledCallCreationMessage - (*EventResponseMessage)(nil), // 86: WAWebProtobufsE2E.EventResponseMessage - (*PinInChatMessage)(nil), // 87: WAWebProtobufsE2E.PinInChatMessage - (*PollCreationMessage)(nil), // 88: WAWebProtobufsE2E.PollCreationMessage - (*ButtonsResponseMessage)(nil), // 89: WAWebProtobufsE2E.ButtonsResponseMessage - (*ButtonsMessage)(nil), // 90: WAWebProtobufsE2E.ButtonsMessage - (*SecretEncryptedMessage)(nil), // 91: WAWebProtobufsE2E.SecretEncryptedMessage - (*GroupInviteMessage)(nil), // 92: WAWebProtobufsE2E.GroupInviteMessage - (*InteractiveResponseMessage)(nil), // 93: WAWebProtobufsE2E.InteractiveResponseMessage - (*InteractiveMessage)(nil), // 94: WAWebProtobufsE2E.InteractiveMessage - (*ListResponseMessage)(nil), // 95: WAWebProtobufsE2E.ListResponseMessage - (*ListMessage)(nil), // 96: WAWebProtobufsE2E.ListMessage - (*OrderMessage)(nil), // 97: WAWebProtobufsE2E.OrderMessage - (*PaymentInviteMessage)(nil), // 98: WAWebProtobufsE2E.PaymentInviteMessage - (*HighlyStructuredMessage)(nil), // 99: WAWebProtobufsE2E.HighlyStructuredMessage - (*PeerDataOperationRequestResponseMessage)(nil), // 100: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage - (*HistorySyncNotification)(nil), // 101: WAWebProtobufsE2E.HistorySyncNotification - (*RequestWelcomeMessageMetadata)(nil), // 102: WAWebProtobufsE2E.RequestWelcomeMessageMetadata - (*ProtocolMessage)(nil), // 103: WAWebProtobufsE2E.ProtocolMessage - (*CloudAPIThreadControlNotification)(nil), // 104: WAWebProtobufsE2E.CloudAPIThreadControlNotification - (*BotFeedbackMessage)(nil), // 105: WAWebProtobufsE2E.BotFeedbackMessage - (*VideoMessage)(nil), // 106: WAWebProtobufsE2E.VideoMessage - (*ExtendedTextMessage)(nil), // 107: WAWebProtobufsE2E.ExtendedTextMessage - (*PaymentLinkMetadata)(nil), // 108: WAWebProtobufsE2E.PaymentLinkMetadata - (*StatusNotificationMessage)(nil), // 109: WAWebProtobufsE2E.StatusNotificationMessage - (*InvoiceMessage)(nil), // 110: WAWebProtobufsE2E.InvoiceMessage - (*ImageMessage)(nil), // 111: WAWebProtobufsE2E.ImageMessage - (*ContextInfo)(nil), // 112: WAWebProtobufsE2E.ContextInfo - (*BotPluginMetadata)(nil), // 113: WAWebProtobufsE2E.BotPluginMetadata - (*BotLinkedAccount)(nil), // 114: WAWebProtobufsE2E.BotLinkedAccount - (*AIRichResponseMessage)(nil), // 115: WAWebProtobufsE2E.AIRichResponseMessage - (*BotMediaMetadata)(nil), // 116: WAWebProtobufsE2E.BotMediaMetadata - (*BotReminderMetadata)(nil), // 117: WAWebProtobufsE2E.BotReminderMetadata - (*BotModelMetadata)(nil), // 118: WAWebProtobufsE2E.BotModelMetadata - (*BotProgressIndicatorMetadata)(nil), // 119: WAWebProtobufsE2E.BotProgressIndicatorMetadata - (*BotCapabilityMetadata)(nil), // 120: WAWebProtobufsE2E.BotCapabilityMetadata - (*BotImagineMetadata)(nil), // 121: WAWebProtobufsE2E.BotImagineMetadata - (*BotSourcesMetadata)(nil), // 122: WAWebProtobufsE2E.BotSourcesMetadata - (*MessageAssociation)(nil), // 123: WAWebProtobufsE2E.MessageAssociation - (*MessageContextInfo)(nil), // 124: WAWebProtobufsE2E.MessageContextInfo - (*InteractiveAnnotation)(nil), // 125: WAWebProtobufsE2E.InteractiveAnnotation - (*HydratedTemplateButton)(nil), // 126: WAWebProtobufsE2E.HydratedTemplateButton - (*PaymentBackground)(nil), // 127: WAWebProtobufsE2E.PaymentBackground - (*DisappearingMode)(nil), // 128: WAWebProtobufsE2E.DisappearingMode - (*ProcessedVideo)(nil), // 129: WAWebProtobufsE2E.ProcessedVideo - (*Message)(nil), // 130: WAWebProtobufsE2E.Message - (*AlbumMessage)(nil), // 131: WAWebProtobufsE2E.AlbumMessage - (*MessageHistoryBundle)(nil), // 132: WAWebProtobufsE2E.MessageHistoryBundle - (*EncEventResponseMessage)(nil), // 133: WAWebProtobufsE2E.EncEventResponseMessage - (*EventMessage)(nil), // 134: WAWebProtobufsE2E.EventMessage - (*CommentMessage)(nil), // 135: WAWebProtobufsE2E.CommentMessage - (*EncCommentMessage)(nil), // 136: WAWebProtobufsE2E.EncCommentMessage - (*EncReactionMessage)(nil), // 137: WAWebProtobufsE2E.EncReactionMessage - (*KeepInChatMessage)(nil), // 138: WAWebProtobufsE2E.KeepInChatMessage - (*PollResultSnapshotMessage)(nil), // 139: WAWebProtobufsE2E.PollResultSnapshotMessage - (*PollVoteMessage)(nil), // 140: WAWebProtobufsE2E.PollVoteMessage - (*PollEncValue)(nil), // 141: WAWebProtobufsE2E.PollEncValue - (*PollUpdateMessageMetadata)(nil), // 142: WAWebProtobufsE2E.PollUpdateMessageMetadata - (*PollUpdateMessage)(nil), // 143: WAWebProtobufsE2E.PollUpdateMessage - (*StickerSyncRMRMessage)(nil), // 144: WAWebProtobufsE2E.StickerSyncRMRMessage - (*ReactionMessage)(nil), // 145: WAWebProtobufsE2E.ReactionMessage - (*FutureProofMessage)(nil), // 146: WAWebProtobufsE2E.FutureProofMessage - (*DeviceSentMessage)(nil), // 147: WAWebProtobufsE2E.DeviceSentMessage - (*RequestPhoneNumberMessage)(nil), // 148: WAWebProtobufsE2E.RequestPhoneNumberMessage - (*NewsletterAdminInviteMessage)(nil), // 149: WAWebProtobufsE2E.NewsletterAdminInviteMessage - (*ProductMessage)(nil), // 150: WAWebProtobufsE2E.ProductMessage - (*TemplateButtonReplyMessage)(nil), // 151: WAWebProtobufsE2E.TemplateButtonReplyMessage - (*TemplateMessage)(nil), // 152: WAWebProtobufsE2E.TemplateMessage - (*StickerMessage)(nil), // 153: WAWebProtobufsE2E.StickerMessage - (*LiveLocationMessage)(nil), // 154: WAWebProtobufsE2E.LiveLocationMessage - (*CancelPaymentRequestMessage)(nil), // 155: WAWebProtobufsE2E.CancelPaymentRequestMessage - (*DeclinePaymentRequestMessage)(nil), // 156: WAWebProtobufsE2E.DeclinePaymentRequestMessage - (*RequestPaymentMessage)(nil), // 157: WAWebProtobufsE2E.RequestPaymentMessage - (*SendPaymentMessage)(nil), // 158: WAWebProtobufsE2E.SendPaymentMessage - (*ContactsArrayMessage)(nil), // 159: WAWebProtobufsE2E.ContactsArrayMessage - (*InitialSecurityNotificationSettingSync)(nil), // 160: WAWebProtobufsE2E.InitialSecurityNotificationSettingSync - (*PeerDataOperationRequestMessage)(nil), // 161: WAWebProtobufsE2E.PeerDataOperationRequestMessage - (*FullHistorySyncOnDemandRequestMetadata)(nil), // 162: WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata - (*AppStateFatalExceptionNotification)(nil), // 163: WAWebProtobufsE2E.AppStateFatalExceptionNotification - (*AppStateSyncKeyRequest)(nil), // 164: WAWebProtobufsE2E.AppStateSyncKeyRequest - (*AppStateSyncKeyShare)(nil), // 165: WAWebProtobufsE2E.AppStateSyncKeyShare - (*AppStateSyncKeyData)(nil), // 166: WAWebProtobufsE2E.AppStateSyncKeyData - (*AppStateSyncKeyFingerprint)(nil), // 167: WAWebProtobufsE2E.AppStateSyncKeyFingerprint - (*AppStateSyncKeyId)(nil), // 168: WAWebProtobufsE2E.AppStateSyncKeyId - (*AppStateSyncKey)(nil), // 169: WAWebProtobufsE2E.AppStateSyncKey - (*Chat)(nil), // 170: WAWebProtobufsE2E.Chat - (*Call)(nil), // 171: WAWebProtobufsE2E.Call - (*AudioMessage)(nil), // 172: WAWebProtobufsE2E.AudioMessage - (*DocumentMessage)(nil), // 173: WAWebProtobufsE2E.DocumentMessage - (*LinkPreviewMetadata)(nil), // 174: WAWebProtobufsE2E.LinkPreviewMetadata - (*URLMetadata)(nil), // 175: WAWebProtobufsE2E.URLMetadata - (*MMSThumbnailMetadata)(nil), // 176: WAWebProtobufsE2E.MMSThumbnailMetadata - (*LocationMessage)(nil), // 177: WAWebProtobufsE2E.LocationMessage - (*ContactMessage)(nil), // 178: WAWebProtobufsE2E.ContactMessage - (*SenderKeyDistributionMessage)(nil), // 179: WAWebProtobufsE2E.SenderKeyDistributionMessage - (*BotAvatarMetadata)(nil), // 180: WAWebProtobufsE2E.BotAvatarMetadata - (*BotSuggestedPromptMetadata)(nil), // 181: WAWebProtobufsE2E.BotSuggestedPromptMetadata - (*BotPromptSuggestions)(nil), // 182: WAWebProtobufsE2E.BotPromptSuggestions - (*BotPromptSuggestion)(nil), // 183: WAWebProtobufsE2E.BotPromptSuggestion - (*BotLinkedAccountsMetadata)(nil), // 184: WAWebProtobufsE2E.BotLinkedAccountsMetadata - (*BotMemoryMetadata)(nil), // 185: WAWebProtobufsE2E.BotMemoryMetadata - (*BotMemoryFact)(nil), // 186: WAWebProtobufsE2E.BotMemoryFact - (*BotRenderingMetadata)(nil), // 187: WAWebProtobufsE2E.BotRenderingMetadata - (*BotMetricsMetadata)(nil), // 188: WAWebProtobufsE2E.BotMetricsMetadata - (*BotSessionMetadata)(nil), // 189: WAWebProtobufsE2E.BotSessionMetadata - (*BotMemuMetadata)(nil), // 190: WAWebProtobufsE2E.BotMemuMetadata - (*BotMetadata)(nil), // 191: WAWebProtobufsE2E.BotMetadata - (*DeviceListMetadata)(nil), // 192: WAWebProtobufsE2E.DeviceListMetadata - (*EmbeddedMessage)(nil), // 193: WAWebProtobufsE2E.EmbeddedMessage - (*EmbeddedMusic)(nil), // 194: WAWebProtobufsE2E.EmbeddedMusic - (*EmbeddedContent)(nil), // 195: WAWebProtobufsE2E.EmbeddedContent - (*TapLinkAction)(nil), // 196: WAWebProtobufsE2E.TapLinkAction - (*Point)(nil), // 197: WAWebProtobufsE2E.Point - (*Location)(nil), // 198: WAWebProtobufsE2E.Location - (*TemplateButton)(nil), // 199: WAWebProtobufsE2E.TemplateButton - (*Money)(nil), // 200: WAWebProtobufsE2E.Money - (*ActionLink)(nil), // 201: WAWebProtobufsE2E.ActionLink - (*GroupMention)(nil), // 202: WAWebProtobufsE2E.GroupMention - (*MessageSecretMessage)(nil), // 203: WAWebProtobufsE2E.MessageSecretMessage - (*MediaNotifyMessage)(nil), // 204: WAWebProtobufsE2E.MediaNotifyMessage - (*LIDMigrationMappingSyncMessage)(nil), // 205: WAWebProtobufsE2E.LIDMigrationMappingSyncMessage - (*UrlTrackingMap)(nil), // 206: WAWebProtobufsE2E.UrlTrackingMap - (*AIQueryFanout)(nil), // 207: WAWebProtobufsE2E.AIQueryFanout - (*StickerPackMessage_Sticker)(nil), // 208: WAWebProtobufsE2E.StickerPackMessage.Sticker - (*CallLogMessage_CallParticipant)(nil), // 209: WAWebProtobufsE2E.CallLogMessage.CallParticipant - (*PollCreationMessage_Option)(nil), // 210: WAWebProtobufsE2E.PollCreationMessage.Option - (*ButtonsMessage_Button)(nil), // 211: WAWebProtobufsE2E.ButtonsMessage.Button - (*ButtonsMessage_Button_NativeFlowInfo)(nil), // 212: WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfo - (*ButtonsMessage_Button_ButtonText)(nil), // 213: WAWebProtobufsE2E.ButtonsMessage.Button.ButtonText - (*InteractiveResponseMessage_Body)(nil), // 214: WAWebProtobufsE2E.InteractiveResponseMessage.Body - (*InteractiveResponseMessage_NativeFlowResponseMessage)(nil), // 215: WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessage - (*InteractiveMessage_ShopMessage)(nil), // 216: WAWebProtobufsE2E.InteractiveMessage.ShopMessage - (*InteractiveMessage_CarouselMessage)(nil), // 217: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage - (*InteractiveMessage_NativeFlowMessage)(nil), // 218: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage - (*InteractiveMessage_CollectionMessage)(nil), // 219: WAWebProtobufsE2E.InteractiveMessage.CollectionMessage - (*InteractiveMessage_Footer)(nil), // 220: WAWebProtobufsE2E.InteractiveMessage.Footer - (*InteractiveMessage_Body)(nil), // 221: WAWebProtobufsE2E.InteractiveMessage.Body - (*InteractiveMessage_Header)(nil), // 222: WAWebProtobufsE2E.InteractiveMessage.Header - (*InteractiveMessage_NativeFlowMessage_NativeFlowButton)(nil), // 223: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButton - (*ListResponseMessage_SingleSelectReply)(nil), // 224: WAWebProtobufsE2E.ListResponseMessage.SingleSelectReply - (*ListMessage_ProductListInfo)(nil), // 225: WAWebProtobufsE2E.ListMessage.ProductListInfo - (*ListMessage_ProductListHeaderImage)(nil), // 226: WAWebProtobufsE2E.ListMessage.ProductListHeaderImage - (*ListMessage_ProductSection)(nil), // 227: WAWebProtobufsE2E.ListMessage.ProductSection - (*ListMessage_Product)(nil), // 228: WAWebProtobufsE2E.ListMessage.Product - (*ListMessage_Section)(nil), // 229: WAWebProtobufsE2E.ListMessage.Section - (*ListMessage_Row)(nil), // 230: WAWebProtobufsE2E.ListMessage.Row - (*HighlyStructuredMessage_HSMLocalizableParameter)(nil), // 231: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime)(nil), // 232: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency)(nil), // 233: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent)(nil), // 234: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch)(nil), // 235: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult)(nil), // 236: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse)(nil), // 237: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse)(nil), // 238: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse)(nil), // 239: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse)(nil), // 240: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse)(nil), // 241: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail)(nil), // 242: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail - (*PaymentLinkMetadata_PaymentLinkHeader)(nil), // 243: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader - (*PaymentLinkMetadata_PaymentLinkButton)(nil), // 244: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButton - (*ContextInfo_ForwardedNewsletterMessageInfo)(nil), // 245: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo - (*ContextInfo_ExternalAdReplyInfo)(nil), // 246: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo - (*ContextInfo_AdReplyInfo)(nil), // 247: WAWebProtobufsE2E.ContextInfo.AdReplyInfo - (*ContextInfo_FeatureEligibilities)(nil), // 248: WAWebProtobufsE2E.ContextInfo.FeatureEligibilities - (*ContextInfo_DataSharingContext)(nil), // 249: WAWebProtobufsE2E.ContextInfo.DataSharingContext - (*ContextInfo_ForwardedAIBotMessageInfo)(nil), // 250: WAWebProtobufsE2E.ContextInfo.ForwardedAIBotMessageInfo - (*ContextInfo_UTMInfo)(nil), // 251: WAWebProtobufsE2E.ContextInfo.UTMInfo - (*ContextInfo_BusinessMessageForwardInfo)(nil), // 252: WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfo - (*ContextInfo_DataSharingContext_Parameters)(nil), // 253: WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters - (*AIRichResponseMessage_AIRichResponseContentItemsMetadata)(nil), // 254: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata - (*AIRichResponseMessage_AIRichResponseDynamicMetadata)(nil), // 255: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata - (*AIRichResponseMessage_AIRichResponseCodeMetadata)(nil), // 256: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata - (*AIRichResponseMessage_AIRichResponseInlineImageMetadata)(nil), // 257: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata - (*AIRichResponseMessage_AIRichResponseSubMessage)(nil), // 258: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage - (*AIRichResponseMessage_AIRichResponseMapMetadata)(nil), // 259: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata - (*AIRichResponseMessage_AIRichResponseLatexMetadata)(nil), // 260: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata - (*AIRichResponseMessage_AIRichResponseAbstractData)(nil), // 261: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseAbstractData - (*AIRichResponseMessage_AIRichResponseTableMetadata)(nil), // 262: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata - (*AIRichResponseMessage_AIRichResponseGridImageMetadata)(nil), // 263: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadata - (*AIRichResponseMessage_AIRichResponseImageURL)(nil), // 264: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURL - (*AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata)(nil), // 265: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata - (*AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseReelItem)(nil), // 266: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseReelItem - (*AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeBlock)(nil), // 267: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeBlock - (*AIRichResponseMessage_AIRichResponseMapMetadata_AIRichResponseMapAnnotation)(nil), // 268: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata.AIRichResponseMapAnnotation - (*AIRichResponseMessage_AIRichResponseLatexMetadata_AIRichResponseLatexExpression)(nil), // 269: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpression - (*AIRichResponseMessage_AIRichResponseTableMetadata_AIRichResponseTableRow)(nil), // 270: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata.AIRichResponseTableRow - (*BotProgressIndicatorMetadata_BotPlanningStepMetadata)(nil), // 271: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata - (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata)(nil), // 272: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata - (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata)(nil), // 273: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata - (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata)(nil), // 274: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata - (*BotSourcesMetadata_BotSourceItem)(nil), // 275: WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem - (*HydratedTemplateButton_HydratedURLButton)(nil), // 276: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton - (*HydratedTemplateButton_HydratedCallButton)(nil), // 277: WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButton - (*HydratedTemplateButton_HydratedQuickReplyButton)(nil), // 278: WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButton - (*PaymentBackground_MediaData)(nil), // 279: WAWebProtobufsE2E.PaymentBackground.MediaData - (*PollResultSnapshotMessage_PollVote)(nil), // 280: WAWebProtobufsE2E.PollResultSnapshotMessage.PollVote - (*ProductMessage_ProductSnapshot)(nil), // 281: WAWebProtobufsE2E.ProductMessage.ProductSnapshot - (*ProductMessage_CatalogSnapshot)(nil), // 282: WAWebProtobufsE2E.ProductMessage.CatalogSnapshot - (*TemplateMessage_HydratedFourRowTemplate)(nil), // 283: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate - (*TemplateMessage_FourRowTemplate)(nil), // 284: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate - (*PeerDataOperationRequestMessage_PlaceholderMessageResendRequest)(nil), // 285: WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest - (*PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest)(nil), // 286: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest - (*PeerDataOperationRequestMessage_HistorySyncOnDemandRequest)(nil), // 287: WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest - (*PeerDataOperationRequestMessage_RequestUrlPreview)(nil), // 288: WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreview - (*PeerDataOperationRequestMessage_RequestStickerReupload)(nil), // 289: WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReupload - (*BotRenderingMetadata_Keyword)(nil), // 290: WAWebProtobufsE2E.BotRenderingMetadata.Keyword - (*TemplateButton_CallButton)(nil), // 291: WAWebProtobufsE2E.TemplateButton.CallButton - (*TemplateButton_URLButton)(nil), // 292: WAWebProtobufsE2E.TemplateButton.URLButton - (*TemplateButton_QuickReplyButton)(nil), // 293: WAWebProtobufsE2E.TemplateButton.QuickReplyButton - (*UrlTrackingMap_UrlTrackingMapElement)(nil), // 294: WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElement - (*waCommon.MessageKey)(nil), // 295: WACommon.MessageKey - (*waCommon.LimitSharing)(nil), // 296: WACommon.LimitSharing - (waAdv.ADVEncryptionType)(0), // 297: WAAdv.ADVEncryptionType - (waMmsRetry.MediaRetryNotification_ResultType)(0), // 298: WAMmsRetry.MediaRetryNotification.ResultType - (*waCompanionReg.DeviceProps_HistorySyncConfig)(nil), // 299: WACompanionReg.DeviceProps.HistorySyncConfig + (ContextInfo_StatusSourceType)(0), // 47: WAWebProtobufsE2E.ContextInfo.StatusSourceType + (ContextInfo_PairedMediaType)(0), // 48: WAWebProtobufsE2E.ContextInfo.PairedMediaType + (ContextInfo_StatusAttributionType)(0), // 49: WAWebProtobufsE2E.ContextInfo.StatusAttributionType + (ContextInfo_ForwardedNewsletterMessageInfo_ContentType)(0), // 50: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentType + (ContextInfo_ExternalAdReplyInfo_AdType)(0), // 51: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.AdType + (ContextInfo_ExternalAdReplyInfo_MediaType)(0), // 52: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaType + (ContextInfo_AdReplyInfo_MediaType)(0), // 53: WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaType + (BotPluginMetadata_PluginType)(0), // 54: WAWebProtobufsE2E.BotPluginMetadata.PluginType + (BotPluginMetadata_SearchProvider)(0), // 55: WAWebProtobufsE2E.BotPluginMetadata.SearchProvider + (BotLinkedAccount_BotLinkedAccountType)(0), // 56: WAWebProtobufsE2E.BotLinkedAccount.BotLinkedAccountType + (AIRichResponseMessage_AIRichResponseSubMessageType)(0), // 57: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessageType + (AIRichResponseMessage_AIRichResponseMessageType)(0), // 58: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMessageType + (AIRichResponseMessage_AIRichResponseContentItemsMetadata_ContentType)(0), // 59: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.ContentType + (AIRichResponseMessage_AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType)(0), // 60: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType + (AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType)(0), // 61: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType + (AIRichResponseMessage_AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment)(0), // 62: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment + (BotPromotionMessageMetadata_BotPromotionType)(0), // 63: WAWebProtobufsE2E.BotPromotionMessageMetadata.BotPromotionType + (BotMediaMetadata_OrientationType)(0), // 64: WAWebProtobufsE2E.BotMediaMetadata.OrientationType + (BotReminderMetadata_ReminderFrequency)(0), // 65: WAWebProtobufsE2E.BotReminderMetadata.ReminderFrequency + (BotReminderMetadata_ReminderAction)(0), // 66: WAWebProtobufsE2E.BotReminderMetadata.ReminderAction + (BotModelMetadata_PremiumModelStatus)(0), // 67: WAWebProtobufsE2E.BotModelMetadata.PremiumModelStatus + (BotModelMetadata_ModelType)(0), // 68: WAWebProtobufsE2E.BotModelMetadata.ModelType + (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider)(0), // 69: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider + (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus)(0), // 70: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus + (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider)(0), // 71: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider + (BotCapabilityMetadata_BotCapabilityType)(0), // 72: WAWebProtobufsE2E.BotCapabilityMetadata.BotCapabilityType + (BotModeSelectionMetadata_BotUserSelectionMode)(0), // 73: WAWebProtobufsE2E.BotModeSelectionMetadata.BotUserSelectionMode + (BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType)(0), // 74: WAWebProtobufsE2E.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType + (BotImagineMetadata_ImagineType)(0), // 75: WAWebProtobufsE2E.BotImagineMetadata.ImagineType + (BotSourcesMetadata_BotSourceItem_SourceProvider)(0), // 76: WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem.SourceProvider + (MessageAssociation_AssociationType)(0), // 77: WAWebProtobufsE2E.MessageAssociation.AssociationType + (MessageContextInfo_MessageAddonExpiryType)(0), // 78: WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryType + (InteractiveAnnotation_StatusLinkType)(0), // 79: WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkType + (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType)(0), // 80: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType + (PaymentBackground_Type)(0), // 81: WAWebProtobufsE2E.PaymentBackground.Type + (DisappearingMode_Trigger)(0), // 82: WAWebProtobufsE2E.DisappearingMode.Trigger + (DisappearingMode_Initiator)(0), // 83: WAWebProtobufsE2E.DisappearingMode.Initiator + (ProcessedVideo_VideoQuality)(0), // 84: WAWebProtobufsE2E.ProcessedVideo.VideoQuality + (*StickerPackMessage)(nil), // 85: WAWebProtobufsE2E.StickerPackMessage + (*PlaceholderMessage)(nil), // 86: WAWebProtobufsE2E.PlaceholderMessage + (*BCallMessage)(nil), // 87: WAWebProtobufsE2E.BCallMessage + (*CallLogMessage)(nil), // 88: WAWebProtobufsE2E.CallLogMessage + (*ScheduledCallEditMessage)(nil), // 89: WAWebProtobufsE2E.ScheduledCallEditMessage + (*ScheduledCallCreationMessage)(nil), // 90: WAWebProtobufsE2E.ScheduledCallCreationMessage + (*EventResponseMessage)(nil), // 91: WAWebProtobufsE2E.EventResponseMessage + (*PinInChatMessage)(nil), // 92: WAWebProtobufsE2E.PinInChatMessage + (*PollCreationMessage)(nil), // 93: WAWebProtobufsE2E.PollCreationMessage + (*ButtonsResponseMessage)(nil), // 94: WAWebProtobufsE2E.ButtonsResponseMessage + (*ButtonsMessage)(nil), // 95: WAWebProtobufsE2E.ButtonsMessage + (*SecretEncryptedMessage)(nil), // 96: WAWebProtobufsE2E.SecretEncryptedMessage + (*GroupInviteMessage)(nil), // 97: WAWebProtobufsE2E.GroupInviteMessage + (*InteractiveResponseMessage)(nil), // 98: WAWebProtobufsE2E.InteractiveResponseMessage + (*InteractiveMessage)(nil), // 99: WAWebProtobufsE2E.InteractiveMessage + (*ListResponseMessage)(nil), // 100: WAWebProtobufsE2E.ListResponseMessage + (*ListMessage)(nil), // 101: WAWebProtobufsE2E.ListMessage + (*OrderMessage)(nil), // 102: WAWebProtobufsE2E.OrderMessage + (*PaymentInviteMessage)(nil), // 103: WAWebProtobufsE2E.PaymentInviteMessage + (*HighlyStructuredMessage)(nil), // 104: WAWebProtobufsE2E.HighlyStructuredMessage + (*PeerDataOperationRequestResponseMessage)(nil), // 105: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage + (*HistorySyncNotification)(nil), // 106: WAWebProtobufsE2E.HistorySyncNotification + (*RequestWelcomeMessageMetadata)(nil), // 107: WAWebProtobufsE2E.RequestWelcomeMessageMetadata + (*ProtocolMessage)(nil), // 108: WAWebProtobufsE2E.ProtocolMessage + (*CloudAPIThreadControlNotification)(nil), // 109: WAWebProtobufsE2E.CloudAPIThreadControlNotification + (*BotFeedbackMessage)(nil), // 110: WAWebProtobufsE2E.BotFeedbackMessage + (*VideoMessage)(nil), // 111: WAWebProtobufsE2E.VideoMessage + (*ExtendedTextMessage)(nil), // 112: WAWebProtobufsE2E.ExtendedTextMessage + (*PaymentLinkMetadata)(nil), // 113: WAWebProtobufsE2E.PaymentLinkMetadata + (*StatusNotificationMessage)(nil), // 114: WAWebProtobufsE2E.StatusNotificationMessage + (*InvoiceMessage)(nil), // 115: WAWebProtobufsE2E.InvoiceMessage + (*ImageMessage)(nil), // 116: WAWebProtobufsE2E.ImageMessage + (*ContextInfo)(nil), // 117: WAWebProtobufsE2E.ContextInfo + (*BotPluginMetadata)(nil), // 118: WAWebProtobufsE2E.BotPluginMetadata + (*BotLinkedAccount)(nil), // 119: WAWebProtobufsE2E.BotLinkedAccount + (*AIRichResponseMessage)(nil), // 120: WAWebProtobufsE2E.AIRichResponseMessage + (*BotPromotionMessageMetadata)(nil), // 121: WAWebProtobufsE2E.BotPromotionMessageMetadata + (*BotMediaMetadata)(nil), // 122: WAWebProtobufsE2E.BotMediaMetadata + (*BotReminderMetadata)(nil), // 123: WAWebProtobufsE2E.BotReminderMetadata + (*BotModelMetadata)(nil), // 124: WAWebProtobufsE2E.BotModelMetadata + (*BotProgressIndicatorMetadata)(nil), // 125: WAWebProtobufsE2E.BotProgressIndicatorMetadata + (*BotCapabilityMetadata)(nil), // 126: WAWebProtobufsE2E.BotCapabilityMetadata + (*BotModeSelectionMetadata)(nil), // 127: WAWebProtobufsE2E.BotModeSelectionMetadata + (*BotQuotaMetadata)(nil), // 128: WAWebProtobufsE2E.BotQuotaMetadata + (*BotImagineMetadata)(nil), // 129: WAWebProtobufsE2E.BotImagineMetadata + (*BotSourcesMetadata)(nil), // 130: WAWebProtobufsE2E.BotSourcesMetadata + (*MessageAssociation)(nil), // 131: WAWebProtobufsE2E.MessageAssociation + (*MessageContextInfo)(nil), // 132: WAWebProtobufsE2E.MessageContextInfo + (*InteractiveAnnotation)(nil), // 133: WAWebProtobufsE2E.InteractiveAnnotation + (*HydratedTemplateButton)(nil), // 134: WAWebProtobufsE2E.HydratedTemplateButton + (*PaymentBackground)(nil), // 135: WAWebProtobufsE2E.PaymentBackground + (*DisappearingMode)(nil), // 136: WAWebProtobufsE2E.DisappearingMode + (*ProcessedVideo)(nil), // 137: WAWebProtobufsE2E.ProcessedVideo + (*Message)(nil), // 138: WAWebProtobufsE2E.Message + (*AlbumMessage)(nil), // 139: WAWebProtobufsE2E.AlbumMessage + (*MessageHistoryMetadata)(nil), // 140: WAWebProtobufsE2E.MessageHistoryMetadata + (*MessageHistoryNotice)(nil), // 141: WAWebProtobufsE2E.MessageHistoryNotice + (*MessageHistoryBundle)(nil), // 142: WAWebProtobufsE2E.MessageHistoryBundle + (*EncEventResponseMessage)(nil), // 143: WAWebProtobufsE2E.EncEventResponseMessage + (*EventMessage)(nil), // 144: WAWebProtobufsE2E.EventMessage + (*CommentMessage)(nil), // 145: WAWebProtobufsE2E.CommentMessage + (*EncCommentMessage)(nil), // 146: WAWebProtobufsE2E.EncCommentMessage + (*EncReactionMessage)(nil), // 147: WAWebProtobufsE2E.EncReactionMessage + (*KeepInChatMessage)(nil), // 148: WAWebProtobufsE2E.KeepInChatMessage + (*PollResultSnapshotMessage)(nil), // 149: WAWebProtobufsE2E.PollResultSnapshotMessage + (*PollVoteMessage)(nil), // 150: WAWebProtobufsE2E.PollVoteMessage + (*PollEncValue)(nil), // 151: WAWebProtobufsE2E.PollEncValue + (*PollUpdateMessageMetadata)(nil), // 152: WAWebProtobufsE2E.PollUpdateMessageMetadata + (*PollUpdateMessage)(nil), // 153: WAWebProtobufsE2E.PollUpdateMessage + (*StickerSyncRMRMessage)(nil), // 154: WAWebProtobufsE2E.StickerSyncRMRMessage + (*ReactionMessage)(nil), // 155: WAWebProtobufsE2E.ReactionMessage + (*FutureProofMessage)(nil), // 156: WAWebProtobufsE2E.FutureProofMessage + (*DeviceSentMessage)(nil), // 157: WAWebProtobufsE2E.DeviceSentMessage + (*RequestPhoneNumberMessage)(nil), // 158: WAWebProtobufsE2E.RequestPhoneNumberMessage + (*NewsletterAdminInviteMessage)(nil), // 159: WAWebProtobufsE2E.NewsletterAdminInviteMessage + (*ProductMessage)(nil), // 160: WAWebProtobufsE2E.ProductMessage + (*TemplateButtonReplyMessage)(nil), // 161: WAWebProtobufsE2E.TemplateButtonReplyMessage + (*TemplateMessage)(nil), // 162: WAWebProtobufsE2E.TemplateMessage + (*StickerMessage)(nil), // 163: WAWebProtobufsE2E.StickerMessage + (*LiveLocationMessage)(nil), // 164: WAWebProtobufsE2E.LiveLocationMessage + (*CancelPaymentRequestMessage)(nil), // 165: WAWebProtobufsE2E.CancelPaymentRequestMessage + (*DeclinePaymentRequestMessage)(nil), // 166: WAWebProtobufsE2E.DeclinePaymentRequestMessage + (*RequestPaymentMessage)(nil), // 167: WAWebProtobufsE2E.RequestPaymentMessage + (*SendPaymentMessage)(nil), // 168: WAWebProtobufsE2E.SendPaymentMessage + (*ContactsArrayMessage)(nil), // 169: WAWebProtobufsE2E.ContactsArrayMessage + (*InitialSecurityNotificationSettingSync)(nil), // 170: WAWebProtobufsE2E.InitialSecurityNotificationSettingSync + (*PeerDataOperationRequestMessage)(nil), // 171: WAWebProtobufsE2E.PeerDataOperationRequestMessage + (*FullHistorySyncOnDemandRequestMetadata)(nil), // 172: WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata + (*AppStateFatalExceptionNotification)(nil), // 173: WAWebProtobufsE2E.AppStateFatalExceptionNotification + (*AppStateSyncKeyRequest)(nil), // 174: WAWebProtobufsE2E.AppStateSyncKeyRequest + (*AppStateSyncKeyShare)(nil), // 175: WAWebProtobufsE2E.AppStateSyncKeyShare + (*AppStateSyncKeyData)(nil), // 176: WAWebProtobufsE2E.AppStateSyncKeyData + (*AppStateSyncKeyFingerprint)(nil), // 177: WAWebProtobufsE2E.AppStateSyncKeyFingerprint + (*AppStateSyncKeyId)(nil), // 178: WAWebProtobufsE2E.AppStateSyncKeyId + (*AppStateSyncKey)(nil), // 179: WAWebProtobufsE2E.AppStateSyncKey + (*Chat)(nil), // 180: WAWebProtobufsE2E.Chat + (*Call)(nil), // 181: WAWebProtobufsE2E.Call + (*AudioMessage)(nil), // 182: WAWebProtobufsE2E.AudioMessage + (*DocumentMessage)(nil), // 183: WAWebProtobufsE2E.DocumentMessage + (*LinkPreviewMetadata)(nil), // 184: WAWebProtobufsE2E.LinkPreviewMetadata + (*URLMetadata)(nil), // 185: WAWebProtobufsE2E.URLMetadata + (*MMSThumbnailMetadata)(nil), // 186: WAWebProtobufsE2E.MMSThumbnailMetadata + (*LocationMessage)(nil), // 187: WAWebProtobufsE2E.LocationMessage + (*ContactMessage)(nil), // 188: WAWebProtobufsE2E.ContactMessage + (*SenderKeyDistributionMessage)(nil), // 189: WAWebProtobufsE2E.SenderKeyDistributionMessage + (*BotAvatarMetadata)(nil), // 190: WAWebProtobufsE2E.BotAvatarMetadata + (*BotSuggestedPromptMetadata)(nil), // 191: WAWebProtobufsE2E.BotSuggestedPromptMetadata + (*BotPromptSuggestions)(nil), // 192: WAWebProtobufsE2E.BotPromptSuggestions + (*BotPromptSuggestion)(nil), // 193: WAWebProtobufsE2E.BotPromptSuggestion + (*BotLinkedAccountsMetadata)(nil), // 194: WAWebProtobufsE2E.BotLinkedAccountsMetadata + (*BotMemoryMetadata)(nil), // 195: WAWebProtobufsE2E.BotMemoryMetadata + (*BotMemoryFact)(nil), // 196: WAWebProtobufsE2E.BotMemoryFact + (*BotRenderingMetadata)(nil), // 197: WAWebProtobufsE2E.BotRenderingMetadata + (*BotMetricsMetadata)(nil), // 198: WAWebProtobufsE2E.BotMetricsMetadata + (*BotSessionMetadata)(nil), // 199: WAWebProtobufsE2E.BotSessionMetadata + (*BotMemuMetadata)(nil), // 200: WAWebProtobufsE2E.BotMemuMetadata + (*BotAgeCollectionMetadata)(nil), // 201: WAWebProtobufsE2E.BotAgeCollectionMetadata + (*BotMetadata)(nil), // 202: WAWebProtobufsE2E.BotMetadata + (*DeviceListMetadata)(nil), // 203: WAWebProtobufsE2E.DeviceListMetadata + (*EmbeddedMessage)(nil), // 204: WAWebProtobufsE2E.EmbeddedMessage + (*EmbeddedMusic)(nil), // 205: WAWebProtobufsE2E.EmbeddedMusic + (*EmbeddedContent)(nil), // 206: WAWebProtobufsE2E.EmbeddedContent + (*TapLinkAction)(nil), // 207: WAWebProtobufsE2E.TapLinkAction + (*Point)(nil), // 208: WAWebProtobufsE2E.Point + (*Location)(nil), // 209: WAWebProtobufsE2E.Location + (*TemplateButton)(nil), // 210: WAWebProtobufsE2E.TemplateButton + (*Money)(nil), // 211: WAWebProtobufsE2E.Money + (*ActionLink)(nil), // 212: WAWebProtobufsE2E.ActionLink + (*GroupMention)(nil), // 213: WAWebProtobufsE2E.GroupMention + (*MessageSecretMessage)(nil), // 214: WAWebProtobufsE2E.MessageSecretMessage + (*MediaNotifyMessage)(nil), // 215: WAWebProtobufsE2E.MediaNotifyMessage + (*LIDMigrationMappingSyncMessage)(nil), // 216: WAWebProtobufsE2E.LIDMigrationMappingSyncMessage + (*UrlTrackingMap)(nil), // 217: WAWebProtobufsE2E.UrlTrackingMap + (*AIQueryFanout)(nil), // 218: WAWebProtobufsE2E.AIQueryFanout + (*MemberLabel)(nil), // 219: WAWebProtobufsE2E.MemberLabel + (*StickerPackMessage_Sticker)(nil), // 220: WAWebProtobufsE2E.StickerPackMessage.Sticker + (*CallLogMessage_CallParticipant)(nil), // 221: WAWebProtobufsE2E.CallLogMessage.CallParticipant + (*PollCreationMessage_Option)(nil), // 222: WAWebProtobufsE2E.PollCreationMessage.Option + (*ButtonsMessage_Button)(nil), // 223: WAWebProtobufsE2E.ButtonsMessage.Button + (*ButtonsMessage_Button_NativeFlowInfo)(nil), // 224: WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfo + (*ButtonsMessage_Button_ButtonText)(nil), // 225: WAWebProtobufsE2E.ButtonsMessage.Button.ButtonText + (*InteractiveResponseMessage_Body)(nil), // 226: WAWebProtobufsE2E.InteractiveResponseMessage.Body + (*InteractiveResponseMessage_NativeFlowResponseMessage)(nil), // 227: WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessage + (*InteractiveMessage_ShopMessage)(nil), // 228: WAWebProtobufsE2E.InteractiveMessage.ShopMessage + (*InteractiveMessage_CarouselMessage)(nil), // 229: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage + (*InteractiveMessage_NativeFlowMessage)(nil), // 230: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage + (*InteractiveMessage_CollectionMessage)(nil), // 231: WAWebProtobufsE2E.InteractiveMessage.CollectionMessage + (*InteractiveMessage_Footer)(nil), // 232: WAWebProtobufsE2E.InteractiveMessage.Footer + (*InteractiveMessage_Body)(nil), // 233: WAWebProtobufsE2E.InteractiveMessage.Body + (*InteractiveMessage_Header)(nil), // 234: WAWebProtobufsE2E.InteractiveMessage.Header + (*InteractiveMessage_NativeFlowMessage_NativeFlowButton)(nil), // 235: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButton + (*ListResponseMessage_SingleSelectReply)(nil), // 236: WAWebProtobufsE2E.ListResponseMessage.SingleSelectReply + (*ListMessage_ProductListInfo)(nil), // 237: WAWebProtobufsE2E.ListMessage.ProductListInfo + (*ListMessage_ProductListHeaderImage)(nil), // 238: WAWebProtobufsE2E.ListMessage.ProductListHeaderImage + (*ListMessage_ProductSection)(nil), // 239: WAWebProtobufsE2E.ListMessage.ProductSection + (*ListMessage_Product)(nil), // 240: WAWebProtobufsE2E.ListMessage.Product + (*ListMessage_Section)(nil), // 241: WAWebProtobufsE2E.ListMessage.Section + (*ListMessage_Row)(nil), // 242: WAWebProtobufsE2E.ListMessage.Row + (*HighlyStructuredMessage_HSMLocalizableParameter)(nil), // 243: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime)(nil), // 244: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency)(nil), // 245: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent)(nil), // 246: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch)(nil), // 247: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult)(nil), // 248: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse)(nil), // 249: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse)(nil), // 250: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse)(nil), // 251: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse)(nil), // 252: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse)(nil), // 253: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse)(nil), // 254: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail)(nil), // 255: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail + (*CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent)(nil), // 256: WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + (*PaymentLinkMetadata_PaymentLinkHeader)(nil), // 257: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader + (*PaymentLinkMetadata_PaymentLinkButton)(nil), // 258: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButton + (*ContextInfo_ForwardedNewsletterMessageInfo)(nil), // 259: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo + (*ContextInfo_ExternalAdReplyInfo)(nil), // 260: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo + (*ContextInfo_AdReplyInfo)(nil), // 261: WAWebProtobufsE2E.ContextInfo.AdReplyInfo + (*ContextInfo_FeatureEligibilities)(nil), // 262: WAWebProtobufsE2E.ContextInfo.FeatureEligibilities + (*ContextInfo_DataSharingContext)(nil), // 263: WAWebProtobufsE2E.ContextInfo.DataSharingContext + (*ContextInfo_ForwardedAIBotMessageInfo)(nil), // 264: WAWebProtobufsE2E.ContextInfo.ForwardedAIBotMessageInfo + (*ContextInfo_UTMInfo)(nil), // 265: WAWebProtobufsE2E.ContextInfo.UTMInfo + (*ContextInfo_BusinessMessageForwardInfo)(nil), // 266: WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfo + (*ContextInfo_DataSharingContext_Parameters)(nil), // 267: WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters + (*AIRichResponseMessage_AIRichResponseContentItemsMetadata)(nil), // 268: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata + (*AIRichResponseMessage_AIRichResponseDynamicMetadata)(nil), // 269: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata + (*AIRichResponseMessage_AIRichResponseCodeMetadata)(nil), // 270: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata + (*AIRichResponseMessage_AIRichResponseInlineImageMetadata)(nil), // 271: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata + (*AIRichResponseMessage_AIRichResponseSubMessage)(nil), // 272: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage + (*AIRichResponseMessage_AIRichResponseMapMetadata)(nil), // 273: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata + (*AIRichResponseMessage_AIRichResponseLatexMetadata)(nil), // 274: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata + (*AIRichResponseMessage_AIRichResponseUnifiedResponse)(nil), // 275: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseUnifiedResponse + (*AIRichResponseMessage_AIRichResponseTableMetadata)(nil), // 276: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata + (*AIRichResponseMessage_AIRichResponseGridImageMetadata)(nil), // 277: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadata + (*AIRichResponseMessage_AIRichResponseImageURL)(nil), // 278: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURL + (*AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata)(nil), // 279: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata + (*AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseReelItem)(nil), // 280: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseReelItem + (*AIRichResponseMessage_AIRichResponseCodeMetadata_AIRichResponseCodeBlock)(nil), // 281: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeBlock + (*AIRichResponseMessage_AIRichResponseMapMetadata_AIRichResponseMapAnnotation)(nil), // 282: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata.AIRichResponseMapAnnotation + (*AIRichResponseMessage_AIRichResponseLatexMetadata_AIRichResponseLatexExpression)(nil), // 283: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpression + (*AIRichResponseMessage_AIRichResponseTableMetadata_AIRichResponseTableRow)(nil), // 284: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata.AIRichResponseTableRow + (*BotProgressIndicatorMetadata_BotPlanningStepMetadata)(nil), // 285: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata + (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata)(nil), // 286: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata + (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata)(nil), // 287: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata)(nil), // 288: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + (*BotQuotaMetadata_BotFeatureQuotaMetadata)(nil), // 289: WAWebProtobufsE2E.BotQuotaMetadata.BotFeatureQuotaMetadata + (*BotSourcesMetadata_BotSourceItem)(nil), // 290: WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem + (*HydratedTemplateButton_HydratedURLButton)(nil), // 291: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton + (*HydratedTemplateButton_HydratedCallButton)(nil), // 292: WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButton + (*HydratedTemplateButton_HydratedQuickReplyButton)(nil), // 293: WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButton + (*PaymentBackground_MediaData)(nil), // 294: WAWebProtobufsE2E.PaymentBackground.MediaData + (*PollResultSnapshotMessage_PollVote)(nil), // 295: WAWebProtobufsE2E.PollResultSnapshotMessage.PollVote + (*ProductMessage_ProductSnapshot)(nil), // 296: WAWebProtobufsE2E.ProductMessage.ProductSnapshot + (*ProductMessage_CatalogSnapshot)(nil), // 297: WAWebProtobufsE2E.ProductMessage.CatalogSnapshot + (*TemplateMessage_HydratedFourRowTemplate)(nil), // 298: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate + (*TemplateMessage_FourRowTemplate)(nil), // 299: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate + (*PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest)(nil), // 300: WAWebProtobufsE2E.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + (*PeerDataOperationRequestMessage_PlaceholderMessageResendRequest)(nil), // 301: WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest + (*PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest)(nil), // 302: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest + (*PeerDataOperationRequestMessage_HistorySyncOnDemandRequest)(nil), // 303: WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest + (*PeerDataOperationRequestMessage_RequestUrlPreview)(nil), // 304: WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreview + (*PeerDataOperationRequestMessage_RequestStickerReupload)(nil), // 305: WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReupload + (*BotRenderingMetadata_Keyword)(nil), // 306: WAWebProtobufsE2E.BotRenderingMetadata.Keyword + (*TemplateButton_CallButton)(nil), // 307: WAWebProtobufsE2E.TemplateButton.CallButton + (*TemplateButton_URLButton)(nil), // 308: WAWebProtobufsE2E.TemplateButton.URLButton + (*TemplateButton_QuickReplyButton)(nil), // 309: WAWebProtobufsE2E.TemplateButton.QuickReplyButton + (*UrlTrackingMap_UrlTrackingMapElement)(nil), // 310: WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElement + (*waCommon.MessageKey)(nil), // 311: WACommon.MessageKey + (*waCommon.LimitSharing)(nil), // 312: WACommon.LimitSharing + (waAdv.ADVEncryptionType)(0), // 313: WAAdv.ADVEncryptionType + (waMmsRetry.MediaRetryNotification_ResultType)(0), // 314: WAMmsRetry.MediaRetryNotification.ResultType + (*waCompanionReg.DeviceProps_HistorySyncConfig)(nil), // 315: WACompanionReg.DeviceProps.HistorySyncConfig } var file_waE2E_WAWebProtobufsE2E_proto_depIdxs = []int32{ - 208, // 0: WAWebProtobufsE2E.StickerPackMessage.stickers:type_name -> WAWebProtobufsE2E.StickerPackMessage.Sticker - 112, // 1: WAWebProtobufsE2E.StickerPackMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 220, // 0: WAWebProtobufsE2E.StickerPackMessage.stickers:type_name -> WAWebProtobufsE2E.StickerPackMessage.Sticker + 117, // 1: WAWebProtobufsE2E.StickerPackMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo 6, // 2: WAWebProtobufsE2E.StickerPackMessage.stickerPackOrigin:type_name -> WAWebProtobufsE2E.StickerPackMessage.StickerPackOrigin 7, // 3: WAWebProtobufsE2E.PlaceholderMessage.type:type_name -> WAWebProtobufsE2E.PlaceholderMessage.PlaceholderType 8, // 4: WAWebProtobufsE2E.BCallMessage.mediaType:type_name -> WAWebProtobufsE2E.BCallMessage.MediaType 9, // 5: WAWebProtobufsE2E.CallLogMessage.callOutcome:type_name -> WAWebProtobufsE2E.CallLogMessage.CallOutcome 10, // 6: WAWebProtobufsE2E.CallLogMessage.callType:type_name -> WAWebProtobufsE2E.CallLogMessage.CallType - 209, // 7: WAWebProtobufsE2E.CallLogMessage.participants:type_name -> WAWebProtobufsE2E.CallLogMessage.CallParticipant - 295, // 8: WAWebProtobufsE2E.ScheduledCallEditMessage.key:type_name -> WACommon.MessageKey + 221, // 7: WAWebProtobufsE2E.CallLogMessage.participants:type_name -> WAWebProtobufsE2E.CallLogMessage.CallParticipant + 311, // 8: WAWebProtobufsE2E.ScheduledCallEditMessage.key:type_name -> WACommon.MessageKey 11, // 9: WAWebProtobufsE2E.ScheduledCallEditMessage.editType:type_name -> WAWebProtobufsE2E.ScheduledCallEditMessage.EditType 12, // 10: WAWebProtobufsE2E.ScheduledCallCreationMessage.callType:type_name -> WAWebProtobufsE2E.ScheduledCallCreationMessage.CallType 13, // 11: WAWebProtobufsE2E.EventResponseMessage.response:type_name -> WAWebProtobufsE2E.EventResponseMessage.EventResponseType - 295, // 12: WAWebProtobufsE2E.PinInChatMessage.key:type_name -> WACommon.MessageKey + 311, // 12: WAWebProtobufsE2E.PinInChatMessage.key:type_name -> WACommon.MessageKey 14, // 13: WAWebProtobufsE2E.PinInChatMessage.type:type_name -> WAWebProtobufsE2E.PinInChatMessage.Type - 210, // 14: WAWebProtobufsE2E.PollCreationMessage.options:type_name -> WAWebProtobufsE2E.PollCreationMessage.Option - 112, // 15: WAWebProtobufsE2E.PollCreationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 222, // 14: WAWebProtobufsE2E.PollCreationMessage.options:type_name -> WAWebProtobufsE2E.PollCreationMessage.Option + 117, // 15: WAWebProtobufsE2E.PollCreationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo 0, // 16: WAWebProtobufsE2E.PollCreationMessage.pollContentType:type_name -> WAWebProtobufsE2E.PollContentType 15, // 17: WAWebProtobufsE2E.PollCreationMessage.pollType:type_name -> WAWebProtobufsE2E.PollCreationMessage.PollType - 210, // 18: WAWebProtobufsE2E.PollCreationMessage.correctAnswer:type_name -> WAWebProtobufsE2E.PollCreationMessage.Option - 112, // 19: WAWebProtobufsE2E.ButtonsResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 222, // 18: WAWebProtobufsE2E.PollCreationMessage.correctAnswer:type_name -> WAWebProtobufsE2E.PollCreationMessage.Option + 117, // 19: WAWebProtobufsE2E.ButtonsResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo 16, // 20: WAWebProtobufsE2E.ButtonsResponseMessage.type:type_name -> WAWebProtobufsE2E.ButtonsResponseMessage.Type - 173, // 21: WAWebProtobufsE2E.ButtonsMessage.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 111, // 22: WAWebProtobufsE2E.ButtonsMessage.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 106, // 23: WAWebProtobufsE2E.ButtonsMessage.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 177, // 24: WAWebProtobufsE2E.ButtonsMessage.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 112, // 25: WAWebProtobufsE2E.ButtonsMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 211, // 26: WAWebProtobufsE2E.ButtonsMessage.buttons:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button + 183, // 21: WAWebProtobufsE2E.ButtonsMessage.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 116, // 22: WAWebProtobufsE2E.ButtonsMessage.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 111, // 23: WAWebProtobufsE2E.ButtonsMessage.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 187, // 24: WAWebProtobufsE2E.ButtonsMessage.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 117, // 25: WAWebProtobufsE2E.ButtonsMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 223, // 26: WAWebProtobufsE2E.ButtonsMessage.buttons:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button 17, // 27: WAWebProtobufsE2E.ButtonsMessage.headerType:type_name -> WAWebProtobufsE2E.ButtonsMessage.HeaderType - 295, // 28: WAWebProtobufsE2E.SecretEncryptedMessage.targetMessageKey:type_name -> WACommon.MessageKey + 311, // 28: WAWebProtobufsE2E.SecretEncryptedMessage.targetMessageKey:type_name -> WACommon.MessageKey 19, // 29: WAWebProtobufsE2E.SecretEncryptedMessage.secretEncType:type_name -> WAWebProtobufsE2E.SecretEncryptedMessage.SecretEncType - 112, // 30: WAWebProtobufsE2E.GroupInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 117, // 30: WAWebProtobufsE2E.GroupInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo 20, // 31: WAWebProtobufsE2E.GroupInviteMessage.groupType:type_name -> WAWebProtobufsE2E.GroupInviteMessage.GroupType - 215, // 32: WAWebProtobufsE2E.InteractiveResponseMessage.nativeFlowResponseMessage:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessage - 214, // 33: WAWebProtobufsE2E.InteractiveResponseMessage.body:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.Body - 112, // 34: WAWebProtobufsE2E.InteractiveResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 216, // 35: WAWebProtobufsE2E.InteractiveMessage.shopStorefrontMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.ShopMessage - 219, // 36: WAWebProtobufsE2E.InteractiveMessage.collectionMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.CollectionMessage - 218, // 37: WAWebProtobufsE2E.InteractiveMessage.nativeFlowMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage - 217, // 38: WAWebProtobufsE2E.InteractiveMessage.carouselMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.CarouselMessage - 222, // 39: WAWebProtobufsE2E.InteractiveMessage.header:type_name -> WAWebProtobufsE2E.InteractiveMessage.Header - 221, // 40: WAWebProtobufsE2E.InteractiveMessage.body:type_name -> WAWebProtobufsE2E.InteractiveMessage.Body - 220, // 41: WAWebProtobufsE2E.InteractiveMessage.footer:type_name -> WAWebProtobufsE2E.InteractiveMessage.Footer - 112, // 42: WAWebProtobufsE2E.InteractiveMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 206, // 43: WAWebProtobufsE2E.InteractiveMessage.urlTrackingMap:type_name -> WAWebProtobufsE2E.UrlTrackingMap + 227, // 32: WAWebProtobufsE2E.InteractiveResponseMessage.nativeFlowResponseMessage:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessage + 226, // 33: WAWebProtobufsE2E.InteractiveResponseMessage.body:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.Body + 117, // 34: WAWebProtobufsE2E.InteractiveResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 228, // 35: WAWebProtobufsE2E.InteractiveMessage.shopStorefrontMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.ShopMessage + 231, // 36: WAWebProtobufsE2E.InteractiveMessage.collectionMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.CollectionMessage + 230, // 37: WAWebProtobufsE2E.InteractiveMessage.nativeFlowMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage + 229, // 38: WAWebProtobufsE2E.InteractiveMessage.carouselMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.CarouselMessage + 234, // 39: WAWebProtobufsE2E.InteractiveMessage.header:type_name -> WAWebProtobufsE2E.InteractiveMessage.Header + 233, // 40: WAWebProtobufsE2E.InteractiveMessage.body:type_name -> WAWebProtobufsE2E.InteractiveMessage.Body + 232, // 41: WAWebProtobufsE2E.InteractiveMessage.footer:type_name -> WAWebProtobufsE2E.InteractiveMessage.Footer + 117, // 42: WAWebProtobufsE2E.InteractiveMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 217, // 43: WAWebProtobufsE2E.InteractiveMessage.urlTrackingMap:type_name -> WAWebProtobufsE2E.UrlTrackingMap 23, // 44: WAWebProtobufsE2E.ListResponseMessage.listType:type_name -> WAWebProtobufsE2E.ListResponseMessage.ListType - 224, // 45: WAWebProtobufsE2E.ListResponseMessage.singleSelectReply:type_name -> WAWebProtobufsE2E.ListResponseMessage.SingleSelectReply - 112, // 46: WAWebProtobufsE2E.ListResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 236, // 45: WAWebProtobufsE2E.ListResponseMessage.singleSelectReply:type_name -> WAWebProtobufsE2E.ListResponseMessage.SingleSelectReply + 117, // 46: WAWebProtobufsE2E.ListResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo 24, // 47: WAWebProtobufsE2E.ListMessage.listType:type_name -> WAWebProtobufsE2E.ListMessage.ListType - 229, // 48: WAWebProtobufsE2E.ListMessage.sections:type_name -> WAWebProtobufsE2E.ListMessage.Section - 225, // 49: WAWebProtobufsE2E.ListMessage.productListInfo:type_name -> WAWebProtobufsE2E.ListMessage.ProductListInfo - 112, // 50: WAWebProtobufsE2E.ListMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 241, // 48: WAWebProtobufsE2E.ListMessage.sections:type_name -> WAWebProtobufsE2E.ListMessage.Section + 237, // 49: WAWebProtobufsE2E.ListMessage.productListInfo:type_name -> WAWebProtobufsE2E.ListMessage.ProductListInfo + 117, // 50: WAWebProtobufsE2E.ListMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo 26, // 51: WAWebProtobufsE2E.OrderMessage.status:type_name -> WAWebProtobufsE2E.OrderMessage.OrderStatus 25, // 52: WAWebProtobufsE2E.OrderMessage.surface:type_name -> WAWebProtobufsE2E.OrderMessage.OrderSurface - 112, // 53: WAWebProtobufsE2E.OrderMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 295, // 54: WAWebProtobufsE2E.OrderMessage.orderRequestMessageID:type_name -> WACommon.MessageKey + 117, // 53: WAWebProtobufsE2E.OrderMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 311, // 54: WAWebProtobufsE2E.OrderMessage.orderRequestMessageID:type_name -> WACommon.MessageKey 27, // 55: WAWebProtobufsE2E.PaymentInviteMessage.serviceType:type_name -> WAWebProtobufsE2E.PaymentInviteMessage.ServiceType - 231, // 56: WAWebProtobufsE2E.HighlyStructuredMessage.localizableParams:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter - 152, // 57: WAWebProtobufsE2E.HighlyStructuredMessage.hydratedHsm:type_name -> WAWebProtobufsE2E.TemplateMessage + 243, // 56: WAWebProtobufsE2E.HighlyStructuredMessage.localizableParams:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter + 162, // 57: WAWebProtobufsE2E.HighlyStructuredMessage.hydratedHsm:type_name -> WAWebProtobufsE2E.TemplateMessage 1, // 58: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.peerDataOperationRequestType:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestType - 236, // 59: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.peerDataOperationResult:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + 248, // 59: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.peerDataOperationResult:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult 31, // 60: WAWebProtobufsE2E.HistorySyncNotification.syncType:type_name -> WAWebProtobufsE2E.HistorySyncNotification.HistorySyncType - 162, // 61: WAWebProtobufsE2E.HistorySyncNotification.fullHistorySyncOnDemandRequestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata + 172, // 61: WAWebProtobufsE2E.HistorySyncNotification.fullHistorySyncOnDemandRequestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata 32, // 62: WAWebProtobufsE2E.RequestWelcomeMessageMetadata.localChatState:type_name -> WAWebProtobufsE2E.RequestWelcomeMessageMetadata.LocalChatState - 295, // 63: WAWebProtobufsE2E.ProtocolMessage.key:type_name -> WACommon.MessageKey + 311, // 63: WAWebProtobufsE2E.ProtocolMessage.key:type_name -> WACommon.MessageKey 33, // 64: WAWebProtobufsE2E.ProtocolMessage.type:type_name -> WAWebProtobufsE2E.ProtocolMessage.Type - 101, // 65: WAWebProtobufsE2E.ProtocolMessage.historySyncNotification:type_name -> WAWebProtobufsE2E.HistorySyncNotification - 165, // 66: WAWebProtobufsE2E.ProtocolMessage.appStateSyncKeyShare:type_name -> WAWebProtobufsE2E.AppStateSyncKeyShare - 164, // 67: WAWebProtobufsE2E.ProtocolMessage.appStateSyncKeyRequest:type_name -> WAWebProtobufsE2E.AppStateSyncKeyRequest - 160, // 68: WAWebProtobufsE2E.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> WAWebProtobufsE2E.InitialSecurityNotificationSettingSync - 163, // 69: WAWebProtobufsE2E.ProtocolMessage.appStateFatalExceptionNotification:type_name -> WAWebProtobufsE2E.AppStateFatalExceptionNotification - 128, // 70: WAWebProtobufsE2E.ProtocolMessage.disappearingMode:type_name -> WAWebProtobufsE2E.DisappearingMode - 130, // 71: WAWebProtobufsE2E.ProtocolMessage.editedMessage:type_name -> WAWebProtobufsE2E.Message - 161, // 72: WAWebProtobufsE2E.ProtocolMessage.peerDataOperationRequestMessage:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage - 100, // 73: WAWebProtobufsE2E.ProtocolMessage.peerDataOperationRequestResponseMessage:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage - 105, // 74: WAWebProtobufsE2E.ProtocolMessage.botFeedbackMessage:type_name -> WAWebProtobufsE2E.BotFeedbackMessage - 102, // 75: WAWebProtobufsE2E.ProtocolMessage.requestWelcomeMessageMetadata:type_name -> WAWebProtobufsE2E.RequestWelcomeMessageMetadata - 204, // 76: WAWebProtobufsE2E.ProtocolMessage.mediaNotifyMessage:type_name -> WAWebProtobufsE2E.MediaNotifyMessage - 104, // 77: WAWebProtobufsE2E.ProtocolMessage.cloudApiThreadControlNotification:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification - 205, // 78: WAWebProtobufsE2E.ProtocolMessage.lidMigrationMappingSyncMessage:type_name -> WAWebProtobufsE2E.LIDMigrationMappingSyncMessage - 296, // 79: WAWebProtobufsE2E.ProtocolMessage.limitSharing:type_name -> WACommon.LimitSharing - 207, // 80: WAWebProtobufsE2E.ProtocolMessage.aiQueryFanout:type_name -> WAWebProtobufsE2E.AIQueryFanout - 34, // 81: WAWebProtobufsE2E.CloudAPIThreadControlNotification.status:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControl - 295, // 82: WAWebProtobufsE2E.BotFeedbackMessage.messageKey:type_name -> WACommon.MessageKey - 38, // 83: WAWebProtobufsE2E.BotFeedbackMessage.kind:type_name -> WAWebProtobufsE2E.BotFeedbackMessage.BotFeedbackKind - 35, // 84: WAWebProtobufsE2E.BotFeedbackMessage.kindReport:type_name -> WAWebProtobufsE2E.BotFeedbackMessage.ReportKind - 125, // 85: WAWebProtobufsE2E.VideoMessage.interactiveAnnotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation - 112, // 86: WAWebProtobufsE2E.VideoMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 39, // 87: WAWebProtobufsE2E.VideoMessage.gifAttribution:type_name -> WAWebProtobufsE2E.VideoMessage.Attribution - 125, // 88: WAWebProtobufsE2E.VideoMessage.annotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation - 129, // 89: WAWebProtobufsE2E.VideoMessage.processedVideos:type_name -> WAWebProtobufsE2E.ProcessedVideo - 42, // 90: WAWebProtobufsE2E.ExtendedTextMessage.font:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.FontType - 41, // 91: WAWebProtobufsE2E.ExtendedTextMessage.previewType:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.PreviewType - 112, // 92: WAWebProtobufsE2E.ExtendedTextMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 40, // 93: WAWebProtobufsE2E.ExtendedTextMessage.inviteLinkGroupType:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType - 40, // 94: WAWebProtobufsE2E.ExtendedTextMessage.inviteLinkGroupTypeV2:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType - 176, // 95: WAWebProtobufsE2E.ExtendedTextMessage.faviconMMSMetadata:type_name -> WAWebProtobufsE2E.MMSThumbnailMetadata - 174, // 96: WAWebProtobufsE2E.ExtendedTextMessage.linkPreviewMetadata:type_name -> WAWebProtobufsE2E.LinkPreviewMetadata - 108, // 97: WAWebProtobufsE2E.ExtendedTextMessage.paymentLinkMetadata:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata - 244, // 98: WAWebProtobufsE2E.PaymentLinkMetadata.button:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButton - 243, // 99: WAWebProtobufsE2E.PaymentLinkMetadata.header:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader - 295, // 100: WAWebProtobufsE2E.StatusNotificationMessage.responseMessageKey:type_name -> WACommon.MessageKey - 295, // 101: WAWebProtobufsE2E.StatusNotificationMessage.originalMessageKey:type_name -> WACommon.MessageKey - 44, // 102: WAWebProtobufsE2E.StatusNotificationMessage.type:type_name -> WAWebProtobufsE2E.StatusNotificationMessage.StatusNotificationType - 45, // 103: WAWebProtobufsE2E.InvoiceMessage.attachmentType:type_name -> WAWebProtobufsE2E.InvoiceMessage.AttachmentType - 125, // 104: WAWebProtobufsE2E.ImageMessage.interactiveAnnotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation - 112, // 105: WAWebProtobufsE2E.ImageMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 125, // 106: WAWebProtobufsE2E.ImageMessage.annotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation - 46, // 107: WAWebProtobufsE2E.ImageMessage.imageSourceType:type_name -> WAWebProtobufsE2E.ImageMessage.ImageSourceType - 130, // 108: WAWebProtobufsE2E.ContextInfo.quotedMessage:type_name -> WAWebProtobufsE2E.Message - 247, // 109: WAWebProtobufsE2E.ContextInfo.quotedAd:type_name -> WAWebProtobufsE2E.ContextInfo.AdReplyInfo - 295, // 110: WAWebProtobufsE2E.ContextInfo.placeholderKey:type_name -> WACommon.MessageKey - 246, // 111: WAWebProtobufsE2E.ContextInfo.externalAdReply:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo - 128, // 112: WAWebProtobufsE2E.ContextInfo.disappearingMode:type_name -> WAWebProtobufsE2E.DisappearingMode - 201, // 113: WAWebProtobufsE2E.ContextInfo.actionLink:type_name -> WAWebProtobufsE2E.ActionLink - 202, // 114: WAWebProtobufsE2E.ContextInfo.groupMentions:type_name -> WAWebProtobufsE2E.GroupMention - 251, // 115: WAWebProtobufsE2E.ContextInfo.utm:type_name -> WAWebProtobufsE2E.ContextInfo.UTMInfo - 245, // 116: WAWebProtobufsE2E.ContextInfo.forwardedNewsletterMessageInfo:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo - 252, // 117: WAWebProtobufsE2E.ContextInfo.businessMessageForwardInfo:type_name -> WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfo - 249, // 118: WAWebProtobufsE2E.ContextInfo.dataSharingContext:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext - 248, // 119: WAWebProtobufsE2E.ContextInfo.featureEligibilities:type_name -> WAWebProtobufsE2E.ContextInfo.FeatureEligibilities - 250, // 120: WAWebProtobufsE2E.ContextInfo.forwardedAiBotMessageInfo:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedAIBotMessageInfo - 48, // 121: WAWebProtobufsE2E.ContextInfo.statusAttributionType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusAttributionType - 206, // 122: WAWebProtobufsE2E.ContextInfo.urlTrackingMap:type_name -> WAWebProtobufsE2E.UrlTrackingMap - 47, // 123: WAWebProtobufsE2E.ContextInfo.pairedMediaType:type_name -> WAWebProtobufsE2E.ContextInfo.PairedMediaType - 53, // 124: WAWebProtobufsE2E.BotPluginMetadata.provider:type_name -> WAWebProtobufsE2E.BotPluginMetadata.SearchProvider - 52, // 125: WAWebProtobufsE2E.BotPluginMetadata.pluginType:type_name -> WAWebProtobufsE2E.BotPluginMetadata.PluginType - 295, // 126: WAWebProtobufsE2E.BotPluginMetadata.parentPluginMessageKey:type_name -> WACommon.MessageKey - 52, // 127: WAWebProtobufsE2E.BotPluginMetadata.deprecatedField:type_name -> WAWebProtobufsE2E.BotPluginMetadata.PluginType - 52, // 128: WAWebProtobufsE2E.BotPluginMetadata.parentPluginType:type_name -> WAWebProtobufsE2E.BotPluginMetadata.PluginType - 54, // 129: WAWebProtobufsE2E.BotLinkedAccount.type:type_name -> WAWebProtobufsE2E.BotLinkedAccount.BotLinkedAccountType - 56, // 130: WAWebProtobufsE2E.AIRichResponseMessage.messageType:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMessageType - 258, // 131: WAWebProtobufsE2E.AIRichResponseMessage.submessages:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage - 261, // 132: WAWebProtobufsE2E.AIRichResponseMessage.abstractData:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseAbstractData - 61, // 133: WAWebProtobufsE2E.BotMediaMetadata.orientationType:type_name -> WAWebProtobufsE2E.BotMediaMetadata.OrientationType - 295, // 134: WAWebProtobufsE2E.BotReminderMetadata.requestMessageKey:type_name -> WACommon.MessageKey - 63, // 135: WAWebProtobufsE2E.BotReminderMetadata.action:type_name -> WAWebProtobufsE2E.BotReminderMetadata.ReminderAction - 62, // 136: WAWebProtobufsE2E.BotReminderMetadata.frequency:type_name -> WAWebProtobufsE2E.BotReminderMetadata.ReminderFrequency - 65, // 137: WAWebProtobufsE2E.BotModelMetadata.modelType:type_name -> WAWebProtobufsE2E.BotModelMetadata.ModelType - 64, // 138: WAWebProtobufsE2E.BotModelMetadata.premiumModelStatus:type_name -> WAWebProtobufsE2E.BotModelMetadata.PremiumModelStatus - 271, // 139: WAWebProtobufsE2E.BotProgressIndicatorMetadata.stepsMetadata:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata - 69, // 140: WAWebProtobufsE2E.BotCapabilityMetadata.capabilities:type_name -> WAWebProtobufsE2E.BotCapabilityMetadata.BotCapabilityType - 70, // 141: WAWebProtobufsE2E.BotImagineMetadata.imagineType:type_name -> WAWebProtobufsE2E.BotImagineMetadata.ImagineType - 275, // 142: WAWebProtobufsE2E.BotSourcesMetadata.sources:type_name -> WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem - 72, // 143: WAWebProtobufsE2E.MessageAssociation.associationType:type_name -> WAWebProtobufsE2E.MessageAssociation.AssociationType - 295, // 144: WAWebProtobufsE2E.MessageAssociation.parentMessageKey:type_name -> WACommon.MessageKey - 192, // 145: WAWebProtobufsE2E.MessageContextInfo.deviceListMetadata:type_name -> WAWebProtobufsE2E.DeviceListMetadata - 191, // 146: WAWebProtobufsE2E.MessageContextInfo.botMetadata:type_name -> WAWebProtobufsE2E.BotMetadata - 73, // 147: WAWebProtobufsE2E.MessageContextInfo.messageAddOnExpiryType:type_name -> WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryType - 123, // 148: WAWebProtobufsE2E.MessageContextInfo.messageAssociation:type_name -> WAWebProtobufsE2E.MessageAssociation - 296, // 149: WAWebProtobufsE2E.MessageContextInfo.limitSharing:type_name -> WACommon.LimitSharing - 198, // 150: WAWebProtobufsE2E.InteractiveAnnotation.location:type_name -> WAWebProtobufsE2E.Location - 245, // 151: WAWebProtobufsE2E.InteractiveAnnotation.newsletter:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo - 196, // 152: WAWebProtobufsE2E.InteractiveAnnotation.tapAction:type_name -> WAWebProtobufsE2E.TapLinkAction - 197, // 153: WAWebProtobufsE2E.InteractiveAnnotation.polygonVertices:type_name -> WAWebProtobufsE2E.Point - 195, // 154: WAWebProtobufsE2E.InteractiveAnnotation.embeddedContent:type_name -> WAWebProtobufsE2E.EmbeddedContent - 74, // 155: WAWebProtobufsE2E.InteractiveAnnotation.statusLinkType:type_name -> WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkType - 278, // 156: WAWebProtobufsE2E.HydratedTemplateButton.quickReplyButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButton - 276, // 157: WAWebProtobufsE2E.HydratedTemplateButton.urlButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton - 277, // 158: WAWebProtobufsE2E.HydratedTemplateButton.callButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButton - 279, // 159: WAWebProtobufsE2E.PaymentBackground.mediaData:type_name -> WAWebProtobufsE2E.PaymentBackground.MediaData - 76, // 160: WAWebProtobufsE2E.PaymentBackground.type:type_name -> WAWebProtobufsE2E.PaymentBackground.Type - 78, // 161: WAWebProtobufsE2E.DisappearingMode.initiator:type_name -> WAWebProtobufsE2E.DisappearingMode.Initiator - 77, // 162: WAWebProtobufsE2E.DisappearingMode.trigger:type_name -> WAWebProtobufsE2E.DisappearingMode.Trigger - 79, // 163: WAWebProtobufsE2E.ProcessedVideo.quality:type_name -> WAWebProtobufsE2E.ProcessedVideo.VideoQuality - 179, // 164: WAWebProtobufsE2E.Message.senderKeyDistributionMessage:type_name -> WAWebProtobufsE2E.SenderKeyDistributionMessage - 111, // 165: WAWebProtobufsE2E.Message.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 178, // 166: WAWebProtobufsE2E.Message.contactMessage:type_name -> WAWebProtobufsE2E.ContactMessage - 177, // 167: WAWebProtobufsE2E.Message.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 107, // 168: WAWebProtobufsE2E.Message.extendedTextMessage:type_name -> WAWebProtobufsE2E.ExtendedTextMessage - 173, // 169: WAWebProtobufsE2E.Message.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 172, // 170: WAWebProtobufsE2E.Message.audioMessage:type_name -> WAWebProtobufsE2E.AudioMessage - 106, // 171: WAWebProtobufsE2E.Message.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 171, // 172: WAWebProtobufsE2E.Message.call:type_name -> WAWebProtobufsE2E.Call - 170, // 173: WAWebProtobufsE2E.Message.chat:type_name -> WAWebProtobufsE2E.Chat - 103, // 174: WAWebProtobufsE2E.Message.protocolMessage:type_name -> WAWebProtobufsE2E.ProtocolMessage - 159, // 175: WAWebProtobufsE2E.Message.contactsArrayMessage:type_name -> WAWebProtobufsE2E.ContactsArrayMessage - 99, // 176: WAWebProtobufsE2E.Message.highlyStructuredMessage:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 179, // 177: WAWebProtobufsE2E.Message.fastRatchetKeySenderKeyDistributionMessage:type_name -> WAWebProtobufsE2E.SenderKeyDistributionMessage - 158, // 178: WAWebProtobufsE2E.Message.sendPaymentMessage:type_name -> WAWebProtobufsE2E.SendPaymentMessage - 154, // 179: WAWebProtobufsE2E.Message.liveLocationMessage:type_name -> WAWebProtobufsE2E.LiveLocationMessage - 157, // 180: WAWebProtobufsE2E.Message.requestPaymentMessage:type_name -> WAWebProtobufsE2E.RequestPaymentMessage - 156, // 181: WAWebProtobufsE2E.Message.declinePaymentRequestMessage:type_name -> WAWebProtobufsE2E.DeclinePaymentRequestMessage - 155, // 182: WAWebProtobufsE2E.Message.cancelPaymentRequestMessage:type_name -> WAWebProtobufsE2E.CancelPaymentRequestMessage - 152, // 183: WAWebProtobufsE2E.Message.templateMessage:type_name -> WAWebProtobufsE2E.TemplateMessage - 153, // 184: WAWebProtobufsE2E.Message.stickerMessage:type_name -> WAWebProtobufsE2E.StickerMessage - 92, // 185: WAWebProtobufsE2E.Message.groupInviteMessage:type_name -> WAWebProtobufsE2E.GroupInviteMessage - 151, // 186: WAWebProtobufsE2E.Message.templateButtonReplyMessage:type_name -> WAWebProtobufsE2E.TemplateButtonReplyMessage - 150, // 187: WAWebProtobufsE2E.Message.productMessage:type_name -> WAWebProtobufsE2E.ProductMessage - 147, // 188: WAWebProtobufsE2E.Message.deviceSentMessage:type_name -> WAWebProtobufsE2E.DeviceSentMessage - 124, // 189: WAWebProtobufsE2E.Message.messageContextInfo:type_name -> WAWebProtobufsE2E.MessageContextInfo - 96, // 190: WAWebProtobufsE2E.Message.listMessage:type_name -> WAWebProtobufsE2E.ListMessage - 146, // 191: WAWebProtobufsE2E.Message.viewOnceMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 97, // 192: WAWebProtobufsE2E.Message.orderMessage:type_name -> WAWebProtobufsE2E.OrderMessage - 95, // 193: WAWebProtobufsE2E.Message.listResponseMessage:type_name -> WAWebProtobufsE2E.ListResponseMessage - 146, // 194: WAWebProtobufsE2E.Message.ephemeralMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 110, // 195: WAWebProtobufsE2E.Message.invoiceMessage:type_name -> WAWebProtobufsE2E.InvoiceMessage - 90, // 196: WAWebProtobufsE2E.Message.buttonsMessage:type_name -> WAWebProtobufsE2E.ButtonsMessage - 89, // 197: WAWebProtobufsE2E.Message.buttonsResponseMessage:type_name -> WAWebProtobufsE2E.ButtonsResponseMessage - 98, // 198: WAWebProtobufsE2E.Message.paymentInviteMessage:type_name -> WAWebProtobufsE2E.PaymentInviteMessage - 94, // 199: WAWebProtobufsE2E.Message.interactiveMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage - 145, // 200: WAWebProtobufsE2E.Message.reactionMessage:type_name -> WAWebProtobufsE2E.ReactionMessage - 144, // 201: WAWebProtobufsE2E.Message.stickerSyncRmrMessage:type_name -> WAWebProtobufsE2E.StickerSyncRMRMessage - 93, // 202: WAWebProtobufsE2E.Message.interactiveResponseMessage:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage - 88, // 203: WAWebProtobufsE2E.Message.pollCreationMessage:type_name -> WAWebProtobufsE2E.PollCreationMessage - 143, // 204: WAWebProtobufsE2E.Message.pollUpdateMessage:type_name -> WAWebProtobufsE2E.PollUpdateMessage - 138, // 205: WAWebProtobufsE2E.Message.keepInChatMessage:type_name -> WAWebProtobufsE2E.KeepInChatMessage - 146, // 206: WAWebProtobufsE2E.Message.documentWithCaptionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 148, // 207: WAWebProtobufsE2E.Message.requestPhoneNumberMessage:type_name -> WAWebProtobufsE2E.RequestPhoneNumberMessage - 146, // 208: WAWebProtobufsE2E.Message.viewOnceMessageV2:type_name -> WAWebProtobufsE2E.FutureProofMessage - 137, // 209: WAWebProtobufsE2E.Message.encReactionMessage:type_name -> WAWebProtobufsE2E.EncReactionMessage - 146, // 210: WAWebProtobufsE2E.Message.editedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 146, // 211: WAWebProtobufsE2E.Message.viewOnceMessageV2Extension:type_name -> WAWebProtobufsE2E.FutureProofMessage - 88, // 212: WAWebProtobufsE2E.Message.pollCreationMessageV2:type_name -> WAWebProtobufsE2E.PollCreationMessage - 85, // 213: WAWebProtobufsE2E.Message.scheduledCallCreationMessage:type_name -> WAWebProtobufsE2E.ScheduledCallCreationMessage - 146, // 214: WAWebProtobufsE2E.Message.groupMentionedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 87, // 215: WAWebProtobufsE2E.Message.pinInChatMessage:type_name -> WAWebProtobufsE2E.PinInChatMessage - 88, // 216: WAWebProtobufsE2E.Message.pollCreationMessageV3:type_name -> WAWebProtobufsE2E.PollCreationMessage - 84, // 217: WAWebProtobufsE2E.Message.scheduledCallEditMessage:type_name -> WAWebProtobufsE2E.ScheduledCallEditMessage - 106, // 218: WAWebProtobufsE2E.Message.ptvMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 146, // 219: WAWebProtobufsE2E.Message.botInvokeMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 83, // 220: WAWebProtobufsE2E.Message.callLogMesssage:type_name -> WAWebProtobufsE2E.CallLogMessage - 132, // 221: WAWebProtobufsE2E.Message.messageHistoryBundle:type_name -> WAWebProtobufsE2E.MessageHistoryBundle - 136, // 222: WAWebProtobufsE2E.Message.encCommentMessage:type_name -> WAWebProtobufsE2E.EncCommentMessage - 82, // 223: WAWebProtobufsE2E.Message.bcallMessage:type_name -> WAWebProtobufsE2E.BCallMessage - 146, // 224: WAWebProtobufsE2E.Message.lottieStickerMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 134, // 225: WAWebProtobufsE2E.Message.eventMessage:type_name -> WAWebProtobufsE2E.EventMessage - 133, // 226: WAWebProtobufsE2E.Message.encEventResponseMessage:type_name -> WAWebProtobufsE2E.EncEventResponseMessage - 135, // 227: WAWebProtobufsE2E.Message.commentMessage:type_name -> WAWebProtobufsE2E.CommentMessage - 149, // 228: WAWebProtobufsE2E.Message.newsletterAdminInviteMessage:type_name -> WAWebProtobufsE2E.NewsletterAdminInviteMessage - 81, // 229: WAWebProtobufsE2E.Message.placeholderMessage:type_name -> WAWebProtobufsE2E.PlaceholderMessage - 91, // 230: WAWebProtobufsE2E.Message.secretEncryptedMessage:type_name -> WAWebProtobufsE2E.SecretEncryptedMessage - 131, // 231: WAWebProtobufsE2E.Message.albumMessage:type_name -> WAWebProtobufsE2E.AlbumMessage - 146, // 232: WAWebProtobufsE2E.Message.eventCoverImage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 80, // 233: WAWebProtobufsE2E.Message.stickerPackMessage:type_name -> WAWebProtobufsE2E.StickerPackMessage - 146, // 234: WAWebProtobufsE2E.Message.statusMentionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 139, // 235: WAWebProtobufsE2E.Message.pollResultSnapshotMessage:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage - 146, // 236: WAWebProtobufsE2E.Message.pollCreationOptionImageMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 146, // 237: WAWebProtobufsE2E.Message.associatedChildMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 146, // 238: WAWebProtobufsE2E.Message.groupStatusMentionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 146, // 239: WAWebProtobufsE2E.Message.pollCreationMessageV4:type_name -> WAWebProtobufsE2E.FutureProofMessage - 146, // 240: WAWebProtobufsE2E.Message.pollCreationMessageV5:type_name -> WAWebProtobufsE2E.FutureProofMessage - 146, // 241: WAWebProtobufsE2E.Message.statusAddYours:type_name -> WAWebProtobufsE2E.FutureProofMessage - 146, // 242: WAWebProtobufsE2E.Message.groupStatusMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 115, // 243: WAWebProtobufsE2E.Message.richResponseMessage:type_name -> WAWebProtobufsE2E.AIRichResponseMessage - 109, // 244: WAWebProtobufsE2E.Message.statusNotificationMessage:type_name -> WAWebProtobufsE2E.StatusNotificationMessage - 146, // 245: WAWebProtobufsE2E.Message.limitSharingMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 146, // 246: WAWebProtobufsE2E.Message.botTaskMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 112, // 247: WAWebProtobufsE2E.AlbumMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 112, // 248: WAWebProtobufsE2E.MessageHistoryBundle.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 295, // 249: WAWebProtobufsE2E.EncEventResponseMessage.eventCreationMessageKey:type_name -> WACommon.MessageKey - 112, // 250: WAWebProtobufsE2E.EventMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 177, // 251: WAWebProtobufsE2E.EventMessage.location:type_name -> WAWebProtobufsE2E.LocationMessage - 130, // 252: WAWebProtobufsE2E.CommentMessage.message:type_name -> WAWebProtobufsE2E.Message - 295, // 253: WAWebProtobufsE2E.CommentMessage.targetMessageKey:type_name -> WACommon.MessageKey - 295, // 254: WAWebProtobufsE2E.EncCommentMessage.targetMessageKey:type_name -> WACommon.MessageKey - 295, // 255: WAWebProtobufsE2E.EncReactionMessage.targetMessageKey:type_name -> WACommon.MessageKey - 295, // 256: WAWebProtobufsE2E.KeepInChatMessage.key:type_name -> WACommon.MessageKey - 5, // 257: WAWebProtobufsE2E.KeepInChatMessage.keepType:type_name -> WAWebProtobufsE2E.KeepType - 280, // 258: WAWebProtobufsE2E.PollResultSnapshotMessage.pollVotes:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage.PollVote - 112, // 259: WAWebProtobufsE2E.PollResultSnapshotMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 295, // 260: WAWebProtobufsE2E.PollUpdateMessage.pollCreationMessageKey:type_name -> WACommon.MessageKey - 141, // 261: WAWebProtobufsE2E.PollUpdateMessage.vote:type_name -> WAWebProtobufsE2E.PollEncValue - 142, // 262: WAWebProtobufsE2E.PollUpdateMessage.metadata:type_name -> WAWebProtobufsE2E.PollUpdateMessageMetadata - 295, // 263: WAWebProtobufsE2E.ReactionMessage.key:type_name -> WACommon.MessageKey - 130, // 264: WAWebProtobufsE2E.FutureProofMessage.message:type_name -> WAWebProtobufsE2E.Message - 130, // 265: WAWebProtobufsE2E.DeviceSentMessage.message:type_name -> WAWebProtobufsE2E.Message - 112, // 266: WAWebProtobufsE2E.RequestPhoneNumberMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 112, // 267: WAWebProtobufsE2E.NewsletterAdminInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 281, // 268: WAWebProtobufsE2E.ProductMessage.product:type_name -> WAWebProtobufsE2E.ProductMessage.ProductSnapshot - 282, // 269: WAWebProtobufsE2E.ProductMessage.catalog:type_name -> WAWebProtobufsE2E.ProductMessage.CatalogSnapshot - 112, // 270: WAWebProtobufsE2E.ProductMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 112, // 271: WAWebProtobufsE2E.TemplateButtonReplyMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 284, // 272: WAWebProtobufsE2E.TemplateMessage.fourRowTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.FourRowTemplate - 283, // 273: WAWebProtobufsE2E.TemplateMessage.hydratedFourRowTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate - 94, // 274: WAWebProtobufsE2E.TemplateMessage.interactiveMessageTemplate:type_name -> WAWebProtobufsE2E.InteractiveMessage - 112, // 275: WAWebProtobufsE2E.TemplateMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 283, // 276: WAWebProtobufsE2E.TemplateMessage.hydratedTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate - 112, // 277: WAWebProtobufsE2E.StickerMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 112, // 278: WAWebProtobufsE2E.LiveLocationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 295, // 279: WAWebProtobufsE2E.CancelPaymentRequestMessage.key:type_name -> WACommon.MessageKey - 295, // 280: WAWebProtobufsE2E.DeclinePaymentRequestMessage.key:type_name -> WACommon.MessageKey - 130, // 281: WAWebProtobufsE2E.RequestPaymentMessage.noteMessage:type_name -> WAWebProtobufsE2E.Message - 200, // 282: WAWebProtobufsE2E.RequestPaymentMessage.amount:type_name -> WAWebProtobufsE2E.Money - 127, // 283: WAWebProtobufsE2E.RequestPaymentMessage.background:type_name -> WAWebProtobufsE2E.PaymentBackground - 130, // 284: WAWebProtobufsE2E.SendPaymentMessage.noteMessage:type_name -> WAWebProtobufsE2E.Message - 295, // 285: WAWebProtobufsE2E.SendPaymentMessage.requestMessageKey:type_name -> WACommon.MessageKey - 127, // 286: WAWebProtobufsE2E.SendPaymentMessage.background:type_name -> WAWebProtobufsE2E.PaymentBackground - 178, // 287: WAWebProtobufsE2E.ContactsArrayMessage.contacts:type_name -> WAWebProtobufsE2E.ContactMessage - 112, // 288: WAWebProtobufsE2E.ContactsArrayMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 1, // 289: WAWebProtobufsE2E.PeerDataOperationRequestMessage.peerDataOperationRequestType:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestType - 289, // 290: WAWebProtobufsE2E.PeerDataOperationRequestMessage.requestStickerReupload:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReupload - 288, // 291: WAWebProtobufsE2E.PeerDataOperationRequestMessage.requestURLPreview:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreview - 287, // 292: WAWebProtobufsE2E.PeerDataOperationRequestMessage.historySyncOnDemandRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest - 285, // 293: WAWebProtobufsE2E.PeerDataOperationRequestMessage.placeholderMessageResendRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest - 286, // 294: WAWebProtobufsE2E.PeerDataOperationRequestMessage.fullHistorySyncOnDemandRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest - 168, // 295: WAWebProtobufsE2E.AppStateSyncKeyRequest.keyIDs:type_name -> WAWebProtobufsE2E.AppStateSyncKeyId - 169, // 296: WAWebProtobufsE2E.AppStateSyncKeyShare.keys:type_name -> WAWebProtobufsE2E.AppStateSyncKey - 167, // 297: WAWebProtobufsE2E.AppStateSyncKeyData.fingerprint:type_name -> WAWebProtobufsE2E.AppStateSyncKeyFingerprint - 168, // 298: WAWebProtobufsE2E.AppStateSyncKey.keyID:type_name -> WAWebProtobufsE2E.AppStateSyncKeyId - 166, // 299: WAWebProtobufsE2E.AppStateSyncKey.keyData:type_name -> WAWebProtobufsE2E.AppStateSyncKeyData - 112, // 300: WAWebProtobufsE2E.AudioMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 112, // 301: WAWebProtobufsE2E.DocumentMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 108, // 302: WAWebProtobufsE2E.LinkPreviewMetadata.paymentLinkMetadata:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata - 175, // 303: WAWebProtobufsE2E.LinkPreviewMetadata.urlMetadata:type_name -> WAWebProtobufsE2E.URLMetadata - 112, // 304: WAWebProtobufsE2E.LocationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 112, // 305: WAWebProtobufsE2E.ContactMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 182, // 306: WAWebProtobufsE2E.BotSuggestedPromptMetadata.promptSuggestions:type_name -> WAWebProtobufsE2E.BotPromptSuggestions - 183, // 307: WAWebProtobufsE2E.BotPromptSuggestions.suggestions:type_name -> WAWebProtobufsE2E.BotPromptSuggestion - 114, // 308: WAWebProtobufsE2E.BotLinkedAccountsMetadata.accounts:type_name -> WAWebProtobufsE2E.BotLinkedAccount - 186, // 309: WAWebProtobufsE2E.BotMemoryMetadata.addedFacts:type_name -> WAWebProtobufsE2E.BotMemoryFact - 186, // 310: WAWebProtobufsE2E.BotMemoryMetadata.removedFacts:type_name -> WAWebProtobufsE2E.BotMemoryFact - 290, // 311: WAWebProtobufsE2E.BotRenderingMetadata.keywords:type_name -> WAWebProtobufsE2E.BotRenderingMetadata.Keyword - 2, // 312: WAWebProtobufsE2E.BotMetricsMetadata.destinationEntryPoint:type_name -> WAWebProtobufsE2E.BotMetricsEntryPoint - 3, // 313: WAWebProtobufsE2E.BotMetricsMetadata.threadOrigin:type_name -> WAWebProtobufsE2E.BotMetricsThreadEntryPoint - 4, // 314: WAWebProtobufsE2E.BotSessionMetadata.sessionSource:type_name -> WAWebProtobufsE2E.BotSessionSource - 116, // 315: WAWebProtobufsE2E.BotMemuMetadata.faceImages:type_name -> WAWebProtobufsE2E.BotMediaMetadata - 180, // 316: WAWebProtobufsE2E.BotMetadata.avatarMetadata:type_name -> WAWebProtobufsE2E.BotAvatarMetadata - 113, // 317: WAWebProtobufsE2E.BotMetadata.pluginMetadata:type_name -> WAWebProtobufsE2E.BotPluginMetadata - 181, // 318: WAWebProtobufsE2E.BotMetadata.suggestedPromptMetadata:type_name -> WAWebProtobufsE2E.BotSuggestedPromptMetadata - 189, // 319: WAWebProtobufsE2E.BotMetadata.sessionMetadata:type_name -> WAWebProtobufsE2E.BotSessionMetadata - 190, // 320: WAWebProtobufsE2E.BotMetadata.memuMetadata:type_name -> WAWebProtobufsE2E.BotMemuMetadata - 117, // 321: WAWebProtobufsE2E.BotMetadata.reminderMetadata:type_name -> WAWebProtobufsE2E.BotReminderMetadata - 118, // 322: WAWebProtobufsE2E.BotMetadata.modelMetadata:type_name -> WAWebProtobufsE2E.BotModelMetadata - 119, // 323: WAWebProtobufsE2E.BotMetadata.progressIndicatorMetadata:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata - 120, // 324: WAWebProtobufsE2E.BotMetadata.capabilityMetadata:type_name -> WAWebProtobufsE2E.BotCapabilityMetadata - 121, // 325: WAWebProtobufsE2E.BotMetadata.imagineMetadata:type_name -> WAWebProtobufsE2E.BotImagineMetadata - 185, // 326: WAWebProtobufsE2E.BotMetadata.memoryMetadata:type_name -> WAWebProtobufsE2E.BotMemoryMetadata - 187, // 327: WAWebProtobufsE2E.BotMetadata.renderingMetadata:type_name -> WAWebProtobufsE2E.BotRenderingMetadata - 188, // 328: WAWebProtobufsE2E.BotMetadata.botMetricsMetadata:type_name -> WAWebProtobufsE2E.BotMetricsMetadata - 184, // 329: WAWebProtobufsE2E.BotMetadata.botLinkedAccountsMetadata:type_name -> WAWebProtobufsE2E.BotLinkedAccountsMetadata - 122, // 330: WAWebProtobufsE2E.BotMetadata.richResponseSourcesMetadata:type_name -> WAWebProtobufsE2E.BotSourcesMetadata - 297, // 331: WAWebProtobufsE2E.DeviceListMetadata.senderAccountType:type_name -> WAAdv.ADVEncryptionType - 297, // 332: WAWebProtobufsE2E.DeviceListMetadata.receiverAccountType:type_name -> WAAdv.ADVEncryptionType - 130, // 333: WAWebProtobufsE2E.EmbeddedMessage.message:type_name -> WAWebProtobufsE2E.Message - 193, // 334: WAWebProtobufsE2E.EmbeddedContent.embeddedMessage:type_name -> WAWebProtobufsE2E.EmbeddedMessage - 194, // 335: WAWebProtobufsE2E.EmbeddedContent.embeddedMusic:type_name -> WAWebProtobufsE2E.EmbeddedMusic - 293, // 336: WAWebProtobufsE2E.TemplateButton.quickReplyButton:type_name -> WAWebProtobufsE2E.TemplateButton.QuickReplyButton - 292, // 337: WAWebProtobufsE2E.TemplateButton.urlButton:type_name -> WAWebProtobufsE2E.TemplateButton.URLButton - 291, // 338: WAWebProtobufsE2E.TemplateButton.callButton:type_name -> WAWebProtobufsE2E.TemplateButton.CallButton - 294, // 339: WAWebProtobufsE2E.UrlTrackingMap.urlTrackingMapElements:type_name -> WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElement - 295, // 340: WAWebProtobufsE2E.AIQueryFanout.messageKey:type_name -> WACommon.MessageKey - 130, // 341: WAWebProtobufsE2E.AIQueryFanout.message:type_name -> WAWebProtobufsE2E.Message - 9, // 342: WAWebProtobufsE2E.CallLogMessage.CallParticipant.callOutcome:type_name -> WAWebProtobufsE2E.CallLogMessage.CallOutcome - 213, // 343: WAWebProtobufsE2E.ButtonsMessage.Button.buttonText:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.ButtonText - 18, // 344: WAWebProtobufsE2E.ButtonsMessage.Button.type:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.Type - 212, // 345: WAWebProtobufsE2E.ButtonsMessage.Button.nativeFlowInfo:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfo - 21, // 346: WAWebProtobufsE2E.InteractiveResponseMessage.Body.format:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.Body.Format - 22, // 347: WAWebProtobufsE2E.InteractiveMessage.ShopMessage.surface:type_name -> WAWebProtobufsE2E.InteractiveMessage.ShopMessage.Surface - 94, // 348: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.cards:type_name -> WAWebProtobufsE2E.InteractiveMessage - 223, // 349: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.buttons:type_name -> WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButton - 173, // 350: WAWebProtobufsE2E.InteractiveMessage.Header.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 111, // 351: WAWebProtobufsE2E.InteractiveMessage.Header.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 106, // 352: WAWebProtobufsE2E.InteractiveMessage.Header.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 177, // 353: WAWebProtobufsE2E.InteractiveMessage.Header.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 150, // 354: WAWebProtobufsE2E.InteractiveMessage.Header.productMessage:type_name -> WAWebProtobufsE2E.ProductMessage - 227, // 355: WAWebProtobufsE2E.ListMessage.ProductListInfo.productSections:type_name -> WAWebProtobufsE2E.ListMessage.ProductSection - 226, // 356: WAWebProtobufsE2E.ListMessage.ProductListInfo.headerImage:type_name -> WAWebProtobufsE2E.ListMessage.ProductListHeaderImage - 228, // 357: WAWebProtobufsE2E.ListMessage.ProductSection.products:type_name -> WAWebProtobufsE2E.ListMessage.Product - 230, // 358: WAWebProtobufsE2E.ListMessage.Section.rows:type_name -> WAWebProtobufsE2E.ListMessage.Row - 233, // 359: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.currency:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency - 232, // 360: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.dateTime:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime - 234, // 361: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.component:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent - 235, // 362: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.unixEpoch:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch - 29, // 363: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.dayOfWeek:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType - 28, // 364: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.calendar:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType - 298, // 365: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.mediaUploadResult:type_name -> WAMmsRetry.MediaRetryNotification.ResultType - 153, // 366: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.stickerMessage:type_name -> WAWebProtobufsE2E.StickerMessage - 241, // 367: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.linkPreviewResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse - 240, // 368: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.placeholderMessageResendResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse - 238, // 369: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.waffleNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse - 239, // 370: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.fullHistorySyncOnDemandRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse - 237, // 371: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.companionMetaNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse - 162, // 372: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.requestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata - 30, // 373: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.responseCode:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode - 242, // 374: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.hqThumbnail:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail - 43, // 375: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.headerType:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType - 49, // 376: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.contentType:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentType - 50, // 377: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.mediaType:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaType - 51, // 378: WAWebProtobufsE2E.ContextInfo.AdReplyInfo.mediaType:type_name -> WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaType - 253, // 379: WAWebProtobufsE2E.ContextInfo.DataSharingContext.parameters:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters - 253, // 380: WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters.contents:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters - 265, // 381: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.itemsMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata - 57, // 382: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.contentType:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.ContentType - 58, // 383: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata.type:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType - 267, // 384: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.codeBlocks:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeBlock - 264, // 385: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.imageURL:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURL - 60, // 386: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.alignment:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment - 55, // 387: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.messageType:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessageType - 263, // 388: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.gridImageMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadata - 257, // 389: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.imageMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata - 256, // 390: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.codeMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata - 262, // 391: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.tableMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata - 255, // 392: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.dynamicMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata - 260, // 393: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.latexMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata - 259, // 394: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.mapMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata - 254, // 395: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.contentItemsMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata - 268, // 396: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata.annotations:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata.AIRichResponseMapAnnotation - 269, // 397: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata.expressions:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpression - 270, // 398: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata.rows:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata.AIRichResponseTableRow - 264, // 399: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadata.gridImageURL:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURL - 264, // 400: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadata.imageURLs:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURL - 266, // 401: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata.reelItem:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseReelItem - 59, // 402: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeBlock.highlightType:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType - 272, // 403: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sourcesMetadata:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata - 67, // 404: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.status:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus - 273, // 405: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sections:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata - 68, // 406: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.provider:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider - 274, // 407: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.sourcesMetadata:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata - 66, // 408: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.provider:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider - 71, // 409: WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem.provider:type_name -> WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem.SourceProvider - 75, // 410: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.webviewPresentation:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType - 111, // 411: WAWebProtobufsE2E.ProductMessage.ProductSnapshot.productImage:type_name -> WAWebProtobufsE2E.ImageMessage - 111, // 412: WAWebProtobufsE2E.ProductMessage.CatalogSnapshot.catalogImage:type_name -> WAWebProtobufsE2E.ImageMessage - 173, // 413: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 111, // 414: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 106, // 415: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 177, // 416: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 126, // 417: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.hydratedButtons:type_name -> WAWebProtobufsE2E.HydratedTemplateButton - 173, // 418: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 99, // 419: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.highlyStructuredMessage:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 111, // 420: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 106, // 421: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 177, // 422: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 99, // 423: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.content:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 99, // 424: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.footer:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 199, // 425: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.buttons:type_name -> WAWebProtobufsE2E.TemplateButton - 295, // 426: WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest.messageKey:type_name -> WACommon.MessageKey - 162, // 427: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.requestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata - 299, // 428: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.historySyncConfig:type_name -> WACompanionReg.DeviceProps.HistorySyncConfig - 99, // 429: WAWebProtobufsE2E.TemplateButton.CallButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 99, // 430: WAWebProtobufsE2E.TemplateButton.CallButton.phoneNumber:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 99, // 431: WAWebProtobufsE2E.TemplateButton.URLButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 99, // 432: WAWebProtobufsE2E.TemplateButton.URLButton.URL:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 99, // 433: WAWebProtobufsE2E.TemplateButton.QuickReplyButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 434, // [434:434] is the sub-list for method output_type - 434, // [434:434] is the sub-list for method input_type - 434, // [434:434] is the sub-list for extension type_name - 434, // [434:434] is the sub-list for extension extendee - 0, // [0:434] is the sub-list for field type_name + 106, // 65: WAWebProtobufsE2E.ProtocolMessage.historySyncNotification:type_name -> WAWebProtobufsE2E.HistorySyncNotification + 175, // 66: WAWebProtobufsE2E.ProtocolMessage.appStateSyncKeyShare:type_name -> WAWebProtobufsE2E.AppStateSyncKeyShare + 174, // 67: WAWebProtobufsE2E.ProtocolMessage.appStateSyncKeyRequest:type_name -> WAWebProtobufsE2E.AppStateSyncKeyRequest + 170, // 68: WAWebProtobufsE2E.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> WAWebProtobufsE2E.InitialSecurityNotificationSettingSync + 173, // 69: WAWebProtobufsE2E.ProtocolMessage.appStateFatalExceptionNotification:type_name -> WAWebProtobufsE2E.AppStateFatalExceptionNotification + 136, // 70: WAWebProtobufsE2E.ProtocolMessage.disappearingMode:type_name -> WAWebProtobufsE2E.DisappearingMode + 138, // 71: WAWebProtobufsE2E.ProtocolMessage.editedMessage:type_name -> WAWebProtobufsE2E.Message + 171, // 72: WAWebProtobufsE2E.ProtocolMessage.peerDataOperationRequestMessage:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage + 105, // 73: WAWebProtobufsE2E.ProtocolMessage.peerDataOperationRequestResponseMessage:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage + 110, // 74: WAWebProtobufsE2E.ProtocolMessage.botFeedbackMessage:type_name -> WAWebProtobufsE2E.BotFeedbackMessage + 107, // 75: WAWebProtobufsE2E.ProtocolMessage.requestWelcomeMessageMetadata:type_name -> WAWebProtobufsE2E.RequestWelcomeMessageMetadata + 215, // 76: WAWebProtobufsE2E.ProtocolMessage.mediaNotifyMessage:type_name -> WAWebProtobufsE2E.MediaNotifyMessage + 109, // 77: WAWebProtobufsE2E.ProtocolMessage.cloudApiThreadControlNotification:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification + 216, // 78: WAWebProtobufsE2E.ProtocolMessage.lidMigrationMappingSyncMessage:type_name -> WAWebProtobufsE2E.LIDMigrationMappingSyncMessage + 312, // 79: WAWebProtobufsE2E.ProtocolMessage.limitSharing:type_name -> WACommon.LimitSharing + 218, // 80: WAWebProtobufsE2E.ProtocolMessage.aiQueryFanout:type_name -> WAWebProtobufsE2E.AIQueryFanout + 219, // 81: WAWebProtobufsE2E.ProtocolMessage.memberLabel:type_name -> WAWebProtobufsE2E.MemberLabel + 34, // 82: WAWebProtobufsE2E.CloudAPIThreadControlNotification.status:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControl + 256, // 83: WAWebProtobufsE2E.CloudAPIThreadControlNotification.notificationContent:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + 311, // 84: WAWebProtobufsE2E.BotFeedbackMessage.messageKey:type_name -> WACommon.MessageKey + 38, // 85: WAWebProtobufsE2E.BotFeedbackMessage.kind:type_name -> WAWebProtobufsE2E.BotFeedbackMessage.BotFeedbackKind + 35, // 86: WAWebProtobufsE2E.BotFeedbackMessage.kindReport:type_name -> WAWebProtobufsE2E.BotFeedbackMessage.ReportKind + 133, // 87: WAWebProtobufsE2E.VideoMessage.interactiveAnnotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation + 117, // 88: WAWebProtobufsE2E.VideoMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 39, // 89: WAWebProtobufsE2E.VideoMessage.gifAttribution:type_name -> WAWebProtobufsE2E.VideoMessage.Attribution + 133, // 90: WAWebProtobufsE2E.VideoMessage.annotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation + 137, // 91: WAWebProtobufsE2E.VideoMessage.processedVideos:type_name -> WAWebProtobufsE2E.ProcessedVideo + 42, // 92: WAWebProtobufsE2E.ExtendedTextMessage.font:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.FontType + 41, // 93: WAWebProtobufsE2E.ExtendedTextMessage.previewType:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.PreviewType + 117, // 94: WAWebProtobufsE2E.ExtendedTextMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 40, // 95: WAWebProtobufsE2E.ExtendedTextMessage.inviteLinkGroupType:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType + 40, // 96: WAWebProtobufsE2E.ExtendedTextMessage.inviteLinkGroupTypeV2:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType + 186, // 97: WAWebProtobufsE2E.ExtendedTextMessage.faviconMMSMetadata:type_name -> WAWebProtobufsE2E.MMSThumbnailMetadata + 184, // 98: WAWebProtobufsE2E.ExtendedTextMessage.linkPreviewMetadata:type_name -> WAWebProtobufsE2E.LinkPreviewMetadata + 113, // 99: WAWebProtobufsE2E.ExtendedTextMessage.paymentLinkMetadata:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata + 258, // 100: WAWebProtobufsE2E.PaymentLinkMetadata.button:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButton + 257, // 101: WAWebProtobufsE2E.PaymentLinkMetadata.header:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader + 311, // 102: WAWebProtobufsE2E.StatusNotificationMessage.responseMessageKey:type_name -> WACommon.MessageKey + 311, // 103: WAWebProtobufsE2E.StatusNotificationMessage.originalMessageKey:type_name -> WACommon.MessageKey + 44, // 104: WAWebProtobufsE2E.StatusNotificationMessage.type:type_name -> WAWebProtobufsE2E.StatusNotificationMessage.StatusNotificationType + 45, // 105: WAWebProtobufsE2E.InvoiceMessage.attachmentType:type_name -> WAWebProtobufsE2E.InvoiceMessage.AttachmentType + 133, // 106: WAWebProtobufsE2E.ImageMessage.interactiveAnnotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation + 117, // 107: WAWebProtobufsE2E.ImageMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 133, // 108: WAWebProtobufsE2E.ImageMessage.annotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation + 46, // 109: WAWebProtobufsE2E.ImageMessage.imageSourceType:type_name -> WAWebProtobufsE2E.ImageMessage.ImageSourceType + 138, // 110: WAWebProtobufsE2E.ContextInfo.quotedMessage:type_name -> WAWebProtobufsE2E.Message + 261, // 111: WAWebProtobufsE2E.ContextInfo.quotedAd:type_name -> WAWebProtobufsE2E.ContextInfo.AdReplyInfo + 311, // 112: WAWebProtobufsE2E.ContextInfo.placeholderKey:type_name -> WACommon.MessageKey + 260, // 113: WAWebProtobufsE2E.ContextInfo.externalAdReply:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo + 136, // 114: WAWebProtobufsE2E.ContextInfo.disappearingMode:type_name -> WAWebProtobufsE2E.DisappearingMode + 212, // 115: WAWebProtobufsE2E.ContextInfo.actionLink:type_name -> WAWebProtobufsE2E.ActionLink + 213, // 116: WAWebProtobufsE2E.ContextInfo.groupMentions:type_name -> WAWebProtobufsE2E.GroupMention + 265, // 117: WAWebProtobufsE2E.ContextInfo.utm:type_name -> WAWebProtobufsE2E.ContextInfo.UTMInfo + 259, // 118: WAWebProtobufsE2E.ContextInfo.forwardedNewsletterMessageInfo:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo + 266, // 119: WAWebProtobufsE2E.ContextInfo.businessMessageForwardInfo:type_name -> WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfo + 263, // 120: WAWebProtobufsE2E.ContextInfo.dataSharingContext:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext + 262, // 121: WAWebProtobufsE2E.ContextInfo.featureEligibilities:type_name -> WAWebProtobufsE2E.ContextInfo.FeatureEligibilities + 264, // 122: WAWebProtobufsE2E.ContextInfo.forwardedAiBotMessageInfo:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedAIBotMessageInfo + 49, // 123: WAWebProtobufsE2E.ContextInfo.statusAttributionType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusAttributionType + 217, // 124: WAWebProtobufsE2E.ContextInfo.urlTrackingMap:type_name -> WAWebProtobufsE2E.UrlTrackingMap + 48, // 125: WAWebProtobufsE2E.ContextInfo.pairedMediaType:type_name -> WAWebProtobufsE2E.ContextInfo.PairedMediaType + 219, // 126: WAWebProtobufsE2E.ContextInfo.memberLabel:type_name -> WAWebProtobufsE2E.MemberLabel + 47, // 127: WAWebProtobufsE2E.ContextInfo.statusSourceType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusSourceType + 55, // 128: WAWebProtobufsE2E.BotPluginMetadata.provider:type_name -> WAWebProtobufsE2E.BotPluginMetadata.SearchProvider + 54, // 129: WAWebProtobufsE2E.BotPluginMetadata.pluginType:type_name -> WAWebProtobufsE2E.BotPluginMetadata.PluginType + 311, // 130: WAWebProtobufsE2E.BotPluginMetadata.parentPluginMessageKey:type_name -> WACommon.MessageKey + 54, // 131: WAWebProtobufsE2E.BotPluginMetadata.deprecatedField:type_name -> WAWebProtobufsE2E.BotPluginMetadata.PluginType + 54, // 132: WAWebProtobufsE2E.BotPluginMetadata.parentPluginType:type_name -> WAWebProtobufsE2E.BotPluginMetadata.PluginType + 56, // 133: WAWebProtobufsE2E.BotLinkedAccount.type:type_name -> WAWebProtobufsE2E.BotLinkedAccount.BotLinkedAccountType + 58, // 134: WAWebProtobufsE2E.AIRichResponseMessage.messageType:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMessageType + 272, // 135: WAWebProtobufsE2E.AIRichResponseMessage.submessages:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage + 275, // 136: WAWebProtobufsE2E.AIRichResponseMessage.unifiedResponse:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseUnifiedResponse + 63, // 137: WAWebProtobufsE2E.BotPromotionMessageMetadata.promotionType:type_name -> WAWebProtobufsE2E.BotPromotionMessageMetadata.BotPromotionType + 64, // 138: WAWebProtobufsE2E.BotMediaMetadata.orientationType:type_name -> WAWebProtobufsE2E.BotMediaMetadata.OrientationType + 311, // 139: WAWebProtobufsE2E.BotReminderMetadata.requestMessageKey:type_name -> WACommon.MessageKey + 66, // 140: WAWebProtobufsE2E.BotReminderMetadata.action:type_name -> WAWebProtobufsE2E.BotReminderMetadata.ReminderAction + 65, // 141: WAWebProtobufsE2E.BotReminderMetadata.frequency:type_name -> WAWebProtobufsE2E.BotReminderMetadata.ReminderFrequency + 68, // 142: WAWebProtobufsE2E.BotModelMetadata.modelType:type_name -> WAWebProtobufsE2E.BotModelMetadata.ModelType + 67, // 143: WAWebProtobufsE2E.BotModelMetadata.premiumModelStatus:type_name -> WAWebProtobufsE2E.BotModelMetadata.PremiumModelStatus + 285, // 144: WAWebProtobufsE2E.BotProgressIndicatorMetadata.stepsMetadata:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata + 72, // 145: WAWebProtobufsE2E.BotCapabilityMetadata.capabilities:type_name -> WAWebProtobufsE2E.BotCapabilityMetadata.BotCapabilityType + 73, // 146: WAWebProtobufsE2E.BotModeSelectionMetadata.mode:type_name -> WAWebProtobufsE2E.BotModeSelectionMetadata.BotUserSelectionMode + 289, // 147: WAWebProtobufsE2E.BotQuotaMetadata.botFeatureQuotaMetadata:type_name -> WAWebProtobufsE2E.BotQuotaMetadata.BotFeatureQuotaMetadata + 75, // 148: WAWebProtobufsE2E.BotImagineMetadata.imagineType:type_name -> WAWebProtobufsE2E.BotImagineMetadata.ImagineType + 290, // 149: WAWebProtobufsE2E.BotSourcesMetadata.sources:type_name -> WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem + 77, // 150: WAWebProtobufsE2E.MessageAssociation.associationType:type_name -> WAWebProtobufsE2E.MessageAssociation.AssociationType + 311, // 151: WAWebProtobufsE2E.MessageAssociation.parentMessageKey:type_name -> WACommon.MessageKey + 203, // 152: WAWebProtobufsE2E.MessageContextInfo.deviceListMetadata:type_name -> WAWebProtobufsE2E.DeviceListMetadata + 202, // 153: WAWebProtobufsE2E.MessageContextInfo.botMetadata:type_name -> WAWebProtobufsE2E.BotMetadata + 78, // 154: WAWebProtobufsE2E.MessageContextInfo.messageAddOnExpiryType:type_name -> WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryType + 131, // 155: WAWebProtobufsE2E.MessageContextInfo.messageAssociation:type_name -> WAWebProtobufsE2E.MessageAssociation + 312, // 156: WAWebProtobufsE2E.MessageContextInfo.limitSharing:type_name -> WACommon.LimitSharing + 312, // 157: WAWebProtobufsE2E.MessageContextInfo.limitSharingV2:type_name -> WACommon.LimitSharing + 209, // 158: WAWebProtobufsE2E.InteractiveAnnotation.location:type_name -> WAWebProtobufsE2E.Location + 259, // 159: WAWebProtobufsE2E.InteractiveAnnotation.newsletter:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo + 207, // 160: WAWebProtobufsE2E.InteractiveAnnotation.tapAction:type_name -> WAWebProtobufsE2E.TapLinkAction + 208, // 161: WAWebProtobufsE2E.InteractiveAnnotation.polygonVertices:type_name -> WAWebProtobufsE2E.Point + 206, // 162: WAWebProtobufsE2E.InteractiveAnnotation.embeddedContent:type_name -> WAWebProtobufsE2E.EmbeddedContent + 79, // 163: WAWebProtobufsE2E.InteractiveAnnotation.statusLinkType:type_name -> WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkType + 293, // 164: WAWebProtobufsE2E.HydratedTemplateButton.quickReplyButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButton + 291, // 165: WAWebProtobufsE2E.HydratedTemplateButton.urlButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton + 292, // 166: WAWebProtobufsE2E.HydratedTemplateButton.callButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButton + 294, // 167: WAWebProtobufsE2E.PaymentBackground.mediaData:type_name -> WAWebProtobufsE2E.PaymentBackground.MediaData + 81, // 168: WAWebProtobufsE2E.PaymentBackground.type:type_name -> WAWebProtobufsE2E.PaymentBackground.Type + 83, // 169: WAWebProtobufsE2E.DisappearingMode.initiator:type_name -> WAWebProtobufsE2E.DisappearingMode.Initiator + 82, // 170: WAWebProtobufsE2E.DisappearingMode.trigger:type_name -> WAWebProtobufsE2E.DisappearingMode.Trigger + 84, // 171: WAWebProtobufsE2E.ProcessedVideo.quality:type_name -> WAWebProtobufsE2E.ProcessedVideo.VideoQuality + 189, // 172: WAWebProtobufsE2E.Message.senderKeyDistributionMessage:type_name -> WAWebProtobufsE2E.SenderKeyDistributionMessage + 116, // 173: WAWebProtobufsE2E.Message.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 188, // 174: WAWebProtobufsE2E.Message.contactMessage:type_name -> WAWebProtobufsE2E.ContactMessage + 187, // 175: WAWebProtobufsE2E.Message.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 112, // 176: WAWebProtobufsE2E.Message.extendedTextMessage:type_name -> WAWebProtobufsE2E.ExtendedTextMessage + 183, // 177: WAWebProtobufsE2E.Message.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 182, // 178: WAWebProtobufsE2E.Message.audioMessage:type_name -> WAWebProtobufsE2E.AudioMessage + 111, // 179: WAWebProtobufsE2E.Message.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 181, // 180: WAWebProtobufsE2E.Message.call:type_name -> WAWebProtobufsE2E.Call + 180, // 181: WAWebProtobufsE2E.Message.chat:type_name -> WAWebProtobufsE2E.Chat + 108, // 182: WAWebProtobufsE2E.Message.protocolMessage:type_name -> WAWebProtobufsE2E.ProtocolMessage + 169, // 183: WAWebProtobufsE2E.Message.contactsArrayMessage:type_name -> WAWebProtobufsE2E.ContactsArrayMessage + 104, // 184: WAWebProtobufsE2E.Message.highlyStructuredMessage:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 189, // 185: WAWebProtobufsE2E.Message.fastRatchetKeySenderKeyDistributionMessage:type_name -> WAWebProtobufsE2E.SenderKeyDistributionMessage + 168, // 186: WAWebProtobufsE2E.Message.sendPaymentMessage:type_name -> WAWebProtobufsE2E.SendPaymentMessage + 164, // 187: WAWebProtobufsE2E.Message.liveLocationMessage:type_name -> WAWebProtobufsE2E.LiveLocationMessage + 167, // 188: WAWebProtobufsE2E.Message.requestPaymentMessage:type_name -> WAWebProtobufsE2E.RequestPaymentMessage + 166, // 189: WAWebProtobufsE2E.Message.declinePaymentRequestMessage:type_name -> WAWebProtobufsE2E.DeclinePaymentRequestMessage + 165, // 190: WAWebProtobufsE2E.Message.cancelPaymentRequestMessage:type_name -> WAWebProtobufsE2E.CancelPaymentRequestMessage + 162, // 191: WAWebProtobufsE2E.Message.templateMessage:type_name -> WAWebProtobufsE2E.TemplateMessage + 163, // 192: WAWebProtobufsE2E.Message.stickerMessage:type_name -> WAWebProtobufsE2E.StickerMessage + 97, // 193: WAWebProtobufsE2E.Message.groupInviteMessage:type_name -> WAWebProtobufsE2E.GroupInviteMessage + 161, // 194: WAWebProtobufsE2E.Message.templateButtonReplyMessage:type_name -> WAWebProtobufsE2E.TemplateButtonReplyMessage + 160, // 195: WAWebProtobufsE2E.Message.productMessage:type_name -> WAWebProtobufsE2E.ProductMessage + 157, // 196: WAWebProtobufsE2E.Message.deviceSentMessage:type_name -> WAWebProtobufsE2E.DeviceSentMessage + 132, // 197: WAWebProtobufsE2E.Message.messageContextInfo:type_name -> WAWebProtobufsE2E.MessageContextInfo + 101, // 198: WAWebProtobufsE2E.Message.listMessage:type_name -> WAWebProtobufsE2E.ListMessage + 156, // 199: WAWebProtobufsE2E.Message.viewOnceMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 102, // 200: WAWebProtobufsE2E.Message.orderMessage:type_name -> WAWebProtobufsE2E.OrderMessage + 100, // 201: WAWebProtobufsE2E.Message.listResponseMessage:type_name -> WAWebProtobufsE2E.ListResponseMessage + 156, // 202: WAWebProtobufsE2E.Message.ephemeralMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 115, // 203: WAWebProtobufsE2E.Message.invoiceMessage:type_name -> WAWebProtobufsE2E.InvoiceMessage + 95, // 204: WAWebProtobufsE2E.Message.buttonsMessage:type_name -> WAWebProtobufsE2E.ButtonsMessage + 94, // 205: WAWebProtobufsE2E.Message.buttonsResponseMessage:type_name -> WAWebProtobufsE2E.ButtonsResponseMessage + 103, // 206: WAWebProtobufsE2E.Message.paymentInviteMessage:type_name -> WAWebProtobufsE2E.PaymentInviteMessage + 99, // 207: WAWebProtobufsE2E.Message.interactiveMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage + 155, // 208: WAWebProtobufsE2E.Message.reactionMessage:type_name -> WAWebProtobufsE2E.ReactionMessage + 154, // 209: WAWebProtobufsE2E.Message.stickerSyncRmrMessage:type_name -> WAWebProtobufsE2E.StickerSyncRMRMessage + 98, // 210: WAWebProtobufsE2E.Message.interactiveResponseMessage:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage + 93, // 211: WAWebProtobufsE2E.Message.pollCreationMessage:type_name -> WAWebProtobufsE2E.PollCreationMessage + 153, // 212: WAWebProtobufsE2E.Message.pollUpdateMessage:type_name -> WAWebProtobufsE2E.PollUpdateMessage + 148, // 213: WAWebProtobufsE2E.Message.keepInChatMessage:type_name -> WAWebProtobufsE2E.KeepInChatMessage + 156, // 214: WAWebProtobufsE2E.Message.documentWithCaptionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 158, // 215: WAWebProtobufsE2E.Message.requestPhoneNumberMessage:type_name -> WAWebProtobufsE2E.RequestPhoneNumberMessage + 156, // 216: WAWebProtobufsE2E.Message.viewOnceMessageV2:type_name -> WAWebProtobufsE2E.FutureProofMessage + 147, // 217: WAWebProtobufsE2E.Message.encReactionMessage:type_name -> WAWebProtobufsE2E.EncReactionMessage + 156, // 218: WAWebProtobufsE2E.Message.editedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 219: WAWebProtobufsE2E.Message.viewOnceMessageV2Extension:type_name -> WAWebProtobufsE2E.FutureProofMessage + 93, // 220: WAWebProtobufsE2E.Message.pollCreationMessageV2:type_name -> WAWebProtobufsE2E.PollCreationMessage + 90, // 221: WAWebProtobufsE2E.Message.scheduledCallCreationMessage:type_name -> WAWebProtobufsE2E.ScheduledCallCreationMessage + 156, // 222: WAWebProtobufsE2E.Message.groupMentionedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 92, // 223: WAWebProtobufsE2E.Message.pinInChatMessage:type_name -> WAWebProtobufsE2E.PinInChatMessage + 93, // 224: WAWebProtobufsE2E.Message.pollCreationMessageV3:type_name -> WAWebProtobufsE2E.PollCreationMessage + 89, // 225: WAWebProtobufsE2E.Message.scheduledCallEditMessage:type_name -> WAWebProtobufsE2E.ScheduledCallEditMessage + 111, // 226: WAWebProtobufsE2E.Message.ptvMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 156, // 227: WAWebProtobufsE2E.Message.botInvokeMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 88, // 228: WAWebProtobufsE2E.Message.callLogMesssage:type_name -> WAWebProtobufsE2E.CallLogMessage + 142, // 229: WAWebProtobufsE2E.Message.messageHistoryBundle:type_name -> WAWebProtobufsE2E.MessageHistoryBundle + 146, // 230: WAWebProtobufsE2E.Message.encCommentMessage:type_name -> WAWebProtobufsE2E.EncCommentMessage + 87, // 231: WAWebProtobufsE2E.Message.bcallMessage:type_name -> WAWebProtobufsE2E.BCallMessage + 156, // 232: WAWebProtobufsE2E.Message.lottieStickerMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 144, // 233: WAWebProtobufsE2E.Message.eventMessage:type_name -> WAWebProtobufsE2E.EventMessage + 143, // 234: WAWebProtobufsE2E.Message.encEventResponseMessage:type_name -> WAWebProtobufsE2E.EncEventResponseMessage + 145, // 235: WAWebProtobufsE2E.Message.commentMessage:type_name -> WAWebProtobufsE2E.CommentMessage + 159, // 236: WAWebProtobufsE2E.Message.newsletterAdminInviteMessage:type_name -> WAWebProtobufsE2E.NewsletterAdminInviteMessage + 86, // 237: WAWebProtobufsE2E.Message.placeholderMessage:type_name -> WAWebProtobufsE2E.PlaceholderMessage + 96, // 238: WAWebProtobufsE2E.Message.secretEncryptedMessage:type_name -> WAWebProtobufsE2E.SecretEncryptedMessage + 139, // 239: WAWebProtobufsE2E.Message.albumMessage:type_name -> WAWebProtobufsE2E.AlbumMessage + 156, // 240: WAWebProtobufsE2E.Message.eventCoverImage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 85, // 241: WAWebProtobufsE2E.Message.stickerPackMessage:type_name -> WAWebProtobufsE2E.StickerPackMessage + 156, // 242: WAWebProtobufsE2E.Message.statusMentionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 149, // 243: WAWebProtobufsE2E.Message.pollResultSnapshotMessage:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage + 156, // 244: WAWebProtobufsE2E.Message.pollCreationOptionImageMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 245: WAWebProtobufsE2E.Message.associatedChildMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 246: WAWebProtobufsE2E.Message.groupStatusMentionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 247: WAWebProtobufsE2E.Message.pollCreationMessageV4:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 248: WAWebProtobufsE2E.Message.pollCreationMessageV5:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 249: WAWebProtobufsE2E.Message.statusAddYours:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 250: WAWebProtobufsE2E.Message.groupStatusMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 120, // 251: WAWebProtobufsE2E.Message.richResponseMessage:type_name -> WAWebProtobufsE2E.AIRichResponseMessage + 114, // 252: WAWebProtobufsE2E.Message.statusNotificationMessage:type_name -> WAWebProtobufsE2E.StatusNotificationMessage + 156, // 253: WAWebProtobufsE2E.Message.limitSharingMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 254: WAWebProtobufsE2E.Message.botTaskMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 156, // 255: WAWebProtobufsE2E.Message.questionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 141, // 256: WAWebProtobufsE2E.Message.messageHistoryNotice:type_name -> WAWebProtobufsE2E.MessageHistoryNotice + 117, // 257: WAWebProtobufsE2E.AlbumMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 117, // 258: WAWebProtobufsE2E.MessageHistoryNotice.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 140, // 259: WAWebProtobufsE2E.MessageHistoryNotice.messageHistoryMetadata:type_name -> WAWebProtobufsE2E.MessageHistoryMetadata + 117, // 260: WAWebProtobufsE2E.MessageHistoryBundle.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 140, // 261: WAWebProtobufsE2E.MessageHistoryBundle.messageHistoryMetadata:type_name -> WAWebProtobufsE2E.MessageHistoryMetadata + 311, // 262: WAWebProtobufsE2E.EncEventResponseMessage.eventCreationMessageKey:type_name -> WACommon.MessageKey + 117, // 263: WAWebProtobufsE2E.EventMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 187, // 264: WAWebProtobufsE2E.EventMessage.location:type_name -> WAWebProtobufsE2E.LocationMessage + 138, // 265: WAWebProtobufsE2E.CommentMessage.message:type_name -> WAWebProtobufsE2E.Message + 311, // 266: WAWebProtobufsE2E.CommentMessage.targetMessageKey:type_name -> WACommon.MessageKey + 311, // 267: WAWebProtobufsE2E.EncCommentMessage.targetMessageKey:type_name -> WACommon.MessageKey + 311, // 268: WAWebProtobufsE2E.EncReactionMessage.targetMessageKey:type_name -> WACommon.MessageKey + 311, // 269: WAWebProtobufsE2E.KeepInChatMessage.key:type_name -> WACommon.MessageKey + 5, // 270: WAWebProtobufsE2E.KeepInChatMessage.keepType:type_name -> WAWebProtobufsE2E.KeepType + 295, // 271: WAWebProtobufsE2E.PollResultSnapshotMessage.pollVotes:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage.PollVote + 117, // 272: WAWebProtobufsE2E.PollResultSnapshotMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 311, // 273: WAWebProtobufsE2E.PollUpdateMessage.pollCreationMessageKey:type_name -> WACommon.MessageKey + 151, // 274: WAWebProtobufsE2E.PollUpdateMessage.vote:type_name -> WAWebProtobufsE2E.PollEncValue + 152, // 275: WAWebProtobufsE2E.PollUpdateMessage.metadata:type_name -> WAWebProtobufsE2E.PollUpdateMessageMetadata + 311, // 276: WAWebProtobufsE2E.ReactionMessage.key:type_name -> WACommon.MessageKey + 138, // 277: WAWebProtobufsE2E.FutureProofMessage.message:type_name -> WAWebProtobufsE2E.Message + 138, // 278: WAWebProtobufsE2E.DeviceSentMessage.message:type_name -> WAWebProtobufsE2E.Message + 117, // 279: WAWebProtobufsE2E.RequestPhoneNumberMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 117, // 280: WAWebProtobufsE2E.NewsletterAdminInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 296, // 281: WAWebProtobufsE2E.ProductMessage.product:type_name -> WAWebProtobufsE2E.ProductMessage.ProductSnapshot + 297, // 282: WAWebProtobufsE2E.ProductMessage.catalog:type_name -> WAWebProtobufsE2E.ProductMessage.CatalogSnapshot + 117, // 283: WAWebProtobufsE2E.ProductMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 117, // 284: WAWebProtobufsE2E.TemplateButtonReplyMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 299, // 285: WAWebProtobufsE2E.TemplateMessage.fourRowTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.FourRowTemplate + 298, // 286: WAWebProtobufsE2E.TemplateMessage.hydratedFourRowTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate + 99, // 287: WAWebProtobufsE2E.TemplateMessage.interactiveMessageTemplate:type_name -> WAWebProtobufsE2E.InteractiveMessage + 117, // 288: WAWebProtobufsE2E.TemplateMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 298, // 289: WAWebProtobufsE2E.TemplateMessage.hydratedTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate + 117, // 290: WAWebProtobufsE2E.StickerMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 117, // 291: WAWebProtobufsE2E.LiveLocationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 311, // 292: WAWebProtobufsE2E.CancelPaymentRequestMessage.key:type_name -> WACommon.MessageKey + 311, // 293: WAWebProtobufsE2E.DeclinePaymentRequestMessage.key:type_name -> WACommon.MessageKey + 138, // 294: WAWebProtobufsE2E.RequestPaymentMessage.noteMessage:type_name -> WAWebProtobufsE2E.Message + 211, // 295: WAWebProtobufsE2E.RequestPaymentMessage.amount:type_name -> WAWebProtobufsE2E.Money + 135, // 296: WAWebProtobufsE2E.RequestPaymentMessage.background:type_name -> WAWebProtobufsE2E.PaymentBackground + 138, // 297: WAWebProtobufsE2E.SendPaymentMessage.noteMessage:type_name -> WAWebProtobufsE2E.Message + 311, // 298: WAWebProtobufsE2E.SendPaymentMessage.requestMessageKey:type_name -> WACommon.MessageKey + 135, // 299: WAWebProtobufsE2E.SendPaymentMessage.background:type_name -> WAWebProtobufsE2E.PaymentBackground + 188, // 300: WAWebProtobufsE2E.ContactsArrayMessage.contacts:type_name -> WAWebProtobufsE2E.ContactMessage + 117, // 301: WAWebProtobufsE2E.ContactsArrayMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 1, // 302: WAWebProtobufsE2E.PeerDataOperationRequestMessage.peerDataOperationRequestType:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestType + 305, // 303: WAWebProtobufsE2E.PeerDataOperationRequestMessage.requestStickerReupload:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReupload + 304, // 304: WAWebProtobufsE2E.PeerDataOperationRequestMessage.requestURLPreview:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreview + 303, // 305: WAWebProtobufsE2E.PeerDataOperationRequestMessage.historySyncOnDemandRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest + 301, // 306: WAWebProtobufsE2E.PeerDataOperationRequestMessage.placeholderMessageResendRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest + 302, // 307: WAWebProtobufsE2E.PeerDataOperationRequestMessage.fullHistorySyncOnDemandRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest + 300, // 308: WAWebProtobufsE2E.PeerDataOperationRequestMessage.syncdCollectionFatalRecoveryRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + 178, // 309: WAWebProtobufsE2E.AppStateSyncKeyRequest.keyIDs:type_name -> WAWebProtobufsE2E.AppStateSyncKeyId + 179, // 310: WAWebProtobufsE2E.AppStateSyncKeyShare.keys:type_name -> WAWebProtobufsE2E.AppStateSyncKey + 177, // 311: WAWebProtobufsE2E.AppStateSyncKeyData.fingerprint:type_name -> WAWebProtobufsE2E.AppStateSyncKeyFingerprint + 178, // 312: WAWebProtobufsE2E.AppStateSyncKey.keyID:type_name -> WAWebProtobufsE2E.AppStateSyncKeyId + 176, // 313: WAWebProtobufsE2E.AppStateSyncKey.keyData:type_name -> WAWebProtobufsE2E.AppStateSyncKeyData + 117, // 314: WAWebProtobufsE2E.Call.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 117, // 315: WAWebProtobufsE2E.AudioMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 117, // 316: WAWebProtobufsE2E.DocumentMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 113, // 317: WAWebProtobufsE2E.LinkPreviewMetadata.paymentLinkMetadata:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata + 185, // 318: WAWebProtobufsE2E.LinkPreviewMetadata.urlMetadata:type_name -> WAWebProtobufsE2E.URLMetadata + 117, // 319: WAWebProtobufsE2E.LocationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 117, // 320: WAWebProtobufsE2E.ContactMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 192, // 321: WAWebProtobufsE2E.BotSuggestedPromptMetadata.promptSuggestions:type_name -> WAWebProtobufsE2E.BotPromptSuggestions + 193, // 322: WAWebProtobufsE2E.BotPromptSuggestions.suggestions:type_name -> WAWebProtobufsE2E.BotPromptSuggestion + 119, // 323: WAWebProtobufsE2E.BotLinkedAccountsMetadata.accounts:type_name -> WAWebProtobufsE2E.BotLinkedAccount + 196, // 324: WAWebProtobufsE2E.BotMemoryMetadata.addedFacts:type_name -> WAWebProtobufsE2E.BotMemoryFact + 196, // 325: WAWebProtobufsE2E.BotMemoryMetadata.removedFacts:type_name -> WAWebProtobufsE2E.BotMemoryFact + 306, // 326: WAWebProtobufsE2E.BotRenderingMetadata.keywords:type_name -> WAWebProtobufsE2E.BotRenderingMetadata.Keyword + 2, // 327: WAWebProtobufsE2E.BotMetricsMetadata.destinationEntryPoint:type_name -> WAWebProtobufsE2E.BotMetricsEntryPoint + 3, // 328: WAWebProtobufsE2E.BotMetricsMetadata.threadOrigin:type_name -> WAWebProtobufsE2E.BotMetricsThreadEntryPoint + 4, // 329: WAWebProtobufsE2E.BotSessionMetadata.sessionSource:type_name -> WAWebProtobufsE2E.BotSessionSource + 122, // 330: WAWebProtobufsE2E.BotMemuMetadata.faceImages:type_name -> WAWebProtobufsE2E.BotMediaMetadata + 190, // 331: WAWebProtobufsE2E.BotMetadata.avatarMetadata:type_name -> WAWebProtobufsE2E.BotAvatarMetadata + 118, // 332: WAWebProtobufsE2E.BotMetadata.pluginMetadata:type_name -> WAWebProtobufsE2E.BotPluginMetadata + 191, // 333: WAWebProtobufsE2E.BotMetadata.suggestedPromptMetadata:type_name -> WAWebProtobufsE2E.BotSuggestedPromptMetadata + 199, // 334: WAWebProtobufsE2E.BotMetadata.sessionMetadata:type_name -> WAWebProtobufsE2E.BotSessionMetadata + 200, // 335: WAWebProtobufsE2E.BotMetadata.memuMetadata:type_name -> WAWebProtobufsE2E.BotMemuMetadata + 123, // 336: WAWebProtobufsE2E.BotMetadata.reminderMetadata:type_name -> WAWebProtobufsE2E.BotReminderMetadata + 124, // 337: WAWebProtobufsE2E.BotMetadata.modelMetadata:type_name -> WAWebProtobufsE2E.BotModelMetadata + 125, // 338: WAWebProtobufsE2E.BotMetadata.progressIndicatorMetadata:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata + 126, // 339: WAWebProtobufsE2E.BotMetadata.capabilityMetadata:type_name -> WAWebProtobufsE2E.BotCapabilityMetadata + 129, // 340: WAWebProtobufsE2E.BotMetadata.imagineMetadata:type_name -> WAWebProtobufsE2E.BotImagineMetadata + 195, // 341: WAWebProtobufsE2E.BotMetadata.memoryMetadata:type_name -> WAWebProtobufsE2E.BotMemoryMetadata + 197, // 342: WAWebProtobufsE2E.BotMetadata.renderingMetadata:type_name -> WAWebProtobufsE2E.BotRenderingMetadata + 198, // 343: WAWebProtobufsE2E.BotMetadata.botMetricsMetadata:type_name -> WAWebProtobufsE2E.BotMetricsMetadata + 194, // 344: WAWebProtobufsE2E.BotMetadata.botLinkedAccountsMetadata:type_name -> WAWebProtobufsE2E.BotLinkedAccountsMetadata + 130, // 345: WAWebProtobufsE2E.BotMetadata.richResponseSourcesMetadata:type_name -> WAWebProtobufsE2E.BotSourcesMetadata + 121, // 346: WAWebProtobufsE2E.BotMetadata.botPromotionMessageMetadata:type_name -> WAWebProtobufsE2E.BotPromotionMessageMetadata + 127, // 347: WAWebProtobufsE2E.BotMetadata.botModeSelectionMetadata:type_name -> WAWebProtobufsE2E.BotModeSelectionMetadata + 128, // 348: WAWebProtobufsE2E.BotMetadata.botQuotaMetadata:type_name -> WAWebProtobufsE2E.BotQuotaMetadata + 201, // 349: WAWebProtobufsE2E.BotMetadata.botAgeCollectionMetadata:type_name -> WAWebProtobufsE2E.BotAgeCollectionMetadata + 313, // 350: WAWebProtobufsE2E.DeviceListMetadata.senderAccountType:type_name -> WAAdv.ADVEncryptionType + 313, // 351: WAWebProtobufsE2E.DeviceListMetadata.receiverAccountType:type_name -> WAAdv.ADVEncryptionType + 138, // 352: WAWebProtobufsE2E.EmbeddedMessage.message:type_name -> WAWebProtobufsE2E.Message + 204, // 353: WAWebProtobufsE2E.EmbeddedContent.embeddedMessage:type_name -> WAWebProtobufsE2E.EmbeddedMessage + 205, // 354: WAWebProtobufsE2E.EmbeddedContent.embeddedMusic:type_name -> WAWebProtobufsE2E.EmbeddedMusic + 309, // 355: WAWebProtobufsE2E.TemplateButton.quickReplyButton:type_name -> WAWebProtobufsE2E.TemplateButton.QuickReplyButton + 308, // 356: WAWebProtobufsE2E.TemplateButton.urlButton:type_name -> WAWebProtobufsE2E.TemplateButton.URLButton + 307, // 357: WAWebProtobufsE2E.TemplateButton.callButton:type_name -> WAWebProtobufsE2E.TemplateButton.CallButton + 310, // 358: WAWebProtobufsE2E.UrlTrackingMap.urlTrackingMapElements:type_name -> WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElement + 311, // 359: WAWebProtobufsE2E.AIQueryFanout.messageKey:type_name -> WACommon.MessageKey + 138, // 360: WAWebProtobufsE2E.AIQueryFanout.message:type_name -> WAWebProtobufsE2E.Message + 9, // 361: WAWebProtobufsE2E.CallLogMessage.CallParticipant.callOutcome:type_name -> WAWebProtobufsE2E.CallLogMessage.CallOutcome + 225, // 362: WAWebProtobufsE2E.ButtonsMessage.Button.buttonText:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.ButtonText + 18, // 363: WAWebProtobufsE2E.ButtonsMessage.Button.type:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.Type + 224, // 364: WAWebProtobufsE2E.ButtonsMessage.Button.nativeFlowInfo:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfo + 21, // 365: WAWebProtobufsE2E.InteractiveResponseMessage.Body.format:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.Body.Format + 22, // 366: WAWebProtobufsE2E.InteractiveMessage.ShopMessage.surface:type_name -> WAWebProtobufsE2E.InteractiveMessage.ShopMessage.Surface + 99, // 367: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.cards:type_name -> WAWebProtobufsE2E.InteractiveMessage + 235, // 368: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.buttons:type_name -> WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButton + 183, // 369: WAWebProtobufsE2E.InteractiveMessage.Header.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 116, // 370: WAWebProtobufsE2E.InteractiveMessage.Header.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 111, // 371: WAWebProtobufsE2E.InteractiveMessage.Header.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 187, // 372: WAWebProtobufsE2E.InteractiveMessage.Header.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 160, // 373: WAWebProtobufsE2E.InteractiveMessage.Header.productMessage:type_name -> WAWebProtobufsE2E.ProductMessage + 239, // 374: WAWebProtobufsE2E.ListMessage.ProductListInfo.productSections:type_name -> WAWebProtobufsE2E.ListMessage.ProductSection + 238, // 375: WAWebProtobufsE2E.ListMessage.ProductListInfo.headerImage:type_name -> WAWebProtobufsE2E.ListMessage.ProductListHeaderImage + 240, // 376: WAWebProtobufsE2E.ListMessage.ProductSection.products:type_name -> WAWebProtobufsE2E.ListMessage.Product + 242, // 377: WAWebProtobufsE2E.ListMessage.Section.rows:type_name -> WAWebProtobufsE2E.ListMessage.Row + 245, // 378: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.currency:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency + 244, // 379: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.dateTime:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime + 246, // 380: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.component:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent + 247, // 381: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.unixEpoch:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch + 29, // 382: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.dayOfWeek:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType + 28, // 383: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.calendar:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType + 314, // 384: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.mediaUploadResult:type_name -> WAMmsRetry.MediaRetryNotification.ResultType + 163, // 385: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.stickerMessage:type_name -> WAWebProtobufsE2E.StickerMessage + 254, // 386: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.linkPreviewResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse + 253, // 387: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.placeholderMessageResendResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse + 251, // 388: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.waffleNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse + 252, // 389: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.fullHistorySyncOnDemandRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse + 250, // 390: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.companionMetaNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse + 249, // 391: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.syncdSnapshotFatalRecoveryResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + 172, // 392: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.requestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata + 30, // 393: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.responseCode:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode + 255, // 394: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.hqThumbnail:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail + 43, // 395: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.headerType:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType + 50, // 396: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.contentType:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentType + 52, // 397: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.mediaType:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaType + 51, // 398: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.adType:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.AdType + 53, // 399: WAWebProtobufsE2E.ContextInfo.AdReplyInfo.mediaType:type_name -> WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaType + 267, // 400: WAWebProtobufsE2E.ContextInfo.DataSharingContext.parameters:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters + 267, // 401: WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters.contents:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters + 279, // 402: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.itemsMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata + 59, // 403: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.contentType:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.ContentType + 60, // 404: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata.type:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType + 281, // 405: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.codeBlocks:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeBlock + 278, // 406: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.imageURL:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURL + 62, // 407: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.alignment:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment + 57, // 408: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.messageType:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessageType + 277, // 409: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.gridImageMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadata + 271, // 410: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.imageMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseInlineImageMetadata + 270, // 411: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.codeMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata + 276, // 412: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.tableMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata + 269, // 413: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.dynamicMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseDynamicMetadata + 274, // 414: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.latexMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata + 273, // 415: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.mapMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata + 268, // 416: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseSubMessage.contentItemsMetadata:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata + 282, // 417: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata.annotations:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseMapMetadata.AIRichResponseMapAnnotation + 283, // 418: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata.expressions:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseLatexMetadata.AIRichResponseLatexExpression + 284, // 419: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata.rows:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseTableMetadata.AIRichResponseTableRow + 278, // 420: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadata.gridImageURL:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURL + 278, // 421: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseGridImageMetadata.imageURLs:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseImageURL + 280, // 422: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata.reelItem:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseContentItemsMetadata.AIRichResponseReelItem + 61, // 423: WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeBlock.highlightType:type_name -> WAWebProtobufsE2E.AIRichResponseMessage.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType + 286, // 424: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sourcesMetadata:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata + 70, // 425: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.status:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus + 287, // 426: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sections:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + 71, // 427: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.provider:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider + 288, // 428: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.sourcesMetadata:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + 69, // 429: WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.provider:type_name -> WAWebProtobufsE2E.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider + 74, // 430: WAWebProtobufsE2E.BotQuotaMetadata.BotFeatureQuotaMetadata.featureType:type_name -> WAWebProtobufsE2E.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType + 76, // 431: WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem.provider:type_name -> WAWebProtobufsE2E.BotSourcesMetadata.BotSourceItem.SourceProvider + 80, // 432: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.webviewPresentation:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType + 116, // 433: WAWebProtobufsE2E.ProductMessage.ProductSnapshot.productImage:type_name -> WAWebProtobufsE2E.ImageMessage + 116, // 434: WAWebProtobufsE2E.ProductMessage.CatalogSnapshot.catalogImage:type_name -> WAWebProtobufsE2E.ImageMessage + 183, // 435: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 116, // 436: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 111, // 437: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 187, // 438: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 134, // 439: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.hydratedButtons:type_name -> WAWebProtobufsE2E.HydratedTemplateButton + 183, // 440: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 104, // 441: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.highlyStructuredMessage:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 116, // 442: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 111, // 443: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 187, // 444: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 104, // 445: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.content:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 104, // 446: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.footer:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 210, // 447: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.buttons:type_name -> WAWebProtobufsE2E.TemplateButton + 311, // 448: WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest.messageKey:type_name -> WACommon.MessageKey + 172, // 449: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.requestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata + 315, // 450: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.historySyncConfig:type_name -> WACompanionReg.DeviceProps.HistorySyncConfig + 104, // 451: WAWebProtobufsE2E.TemplateButton.CallButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 104, // 452: WAWebProtobufsE2E.TemplateButton.CallButton.phoneNumber:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 104, // 453: WAWebProtobufsE2E.TemplateButton.URLButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 104, // 454: WAWebProtobufsE2E.TemplateButton.URLButton.URL:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 104, // 455: WAWebProtobufsE2E.TemplateButton.QuickReplyButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 456, // [456:456] is the sub-list for method output_type + 456, // [456:456] is the sub-list for method input_type + 456, // [456:456] is the sub-list for extension type_name + 456, // [456:456] is the sub-list for extension extendee + 0, // [0:456] is the sub-list for field type_name } func init() { file_waE2E_WAWebProtobufsE2E_proto_init() } @@ -23285,32 +26518,32 @@ func file_waE2E_WAWebProtobufsE2E_proto_init() { (*InteractiveMessage_NativeFlowMessage_)(nil), (*InteractiveMessage_CarouselMessage_)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[45].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[48].OneofWrappers = []any{ (*InteractiveAnnotation_Location)(nil), (*InteractiveAnnotation_Newsletter)(nil), (*InteractiveAnnotation_EmbeddedAction)(nil), (*InteractiveAnnotation_TapAction)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[46].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[49].OneofWrappers = []any{ (*HydratedTemplateButton_QuickReplyButton)(nil), (*HydratedTemplateButton_UrlButton)(nil), (*HydratedTemplateButton_CallButton)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77].OneofWrappers = []any{ (*TemplateMessage_FourRowTemplate_)(nil), (*TemplateMessage_HydratedFourRowTemplate_)(nil), (*TemplateMessage_InteractiveMessageTemplate)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[115].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[121].OneofWrappers = []any{ (*EmbeddedContent_EmbeddedMessage)(nil), (*EmbeddedContent_EmbeddedMusic)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[119].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[125].OneofWrappers = []any{ (*TemplateButton_QuickReplyButton_)(nil), (*TemplateButton_UrlButton)(nil), (*TemplateButton_CallButton_)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[142].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[149].OneofWrappers = []any{ (*InteractiveMessage_Header_DocumentMessage)(nil), (*InteractiveMessage_Header_ImageMessage)(nil), (*InteractiveMessage_Header_JPEGThumbnail)(nil), @@ -23318,25 +26551,25 @@ func file_waE2E_WAWebProtobufsE2E_proto_init() { (*InteractiveMessage_Header_LocationMessage)(nil), (*InteractiveMessage_Header_ProductMessage)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[151].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[158].OneofWrappers = []any{ (*HighlyStructuredMessage_HSMLocalizableParameter_Currency)(nil), (*HighlyStructuredMessage_HSMLocalizableParameter_DateTime)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[152].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[159].OneofWrappers = []any{ (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_Component)(nil), (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_UnixEpoch)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[185].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[194].OneofWrappers = []any{ (*AIRichResponseMessage_AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata_ReelItem)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[203].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[213].OneofWrappers = []any{ (*TemplateMessage_HydratedFourRowTemplate_DocumentMessage)(nil), (*TemplateMessage_HydratedFourRowTemplate_HydratedTitleText)(nil), (*TemplateMessage_HydratedFourRowTemplate_ImageMessage)(nil), (*TemplateMessage_HydratedFourRowTemplate_VideoMessage)(nil), (*TemplateMessage_HydratedFourRowTemplate_LocationMessage)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[204].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[214].OneofWrappers = []any{ (*TemplateMessage_FourRowTemplate_DocumentMessage)(nil), (*TemplateMessage_FourRowTemplate_HighlyStructuredMessage)(nil), (*TemplateMessage_FourRowTemplate_ImageMessage)(nil), @@ -23347,9 +26580,9 @@ func file_waE2E_WAWebProtobufsE2E_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waE2E_WAWebProtobufsE2E_proto_rawDesc, - NumEnums: 80, - NumMessages: 215, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waE2E_WAWebProtobufsE2E_proto_rawDesc), len(file_waE2E_WAWebProtobufsE2E_proto_rawDesc)), + NumEnums: 85, + NumMessages: 226, NumExtensions: 0, NumServices: 0, }, @@ -23359,7 +26592,6 @@ func file_waE2E_WAWebProtobufsE2E_proto_init() { MessageInfos: file_waE2E_WAWebProtobufsE2E_proto_msgTypes, }.Build() File_waE2E_WAWebProtobufsE2E_proto = out.File - file_waE2E_WAWebProtobufsE2E_proto_rawDesc = nil file_waE2E_WAWebProtobufsE2E_proto_goTypes = nil file_waE2E_WAWebProtobufsE2E_proto_depIdxs = nil } diff --git a/proto/waE2E/WAWebProtobufsE2E.pb.raw b/proto/waE2E/WAWebProtobufsE2E.pb.raw deleted file mode 100644 index 8d7bebf3..00000000 Binary files a/proto/waE2E/WAWebProtobufsE2E.pb.raw and /dev/null differ diff --git a/proto/waE2E/WAWebProtobufsE2E.proto b/proto/waE2E/WAWebProtobufsE2E.proto index ec055a6a..ae3fa73a 100644 --- a/proto/waE2E/WAWebProtobufsE2E.proto +++ b/proto/waE2E/WAWebProtobufsE2E.proto @@ -22,6 +22,7 @@ enum PeerDataOperationRequestType { WAFFLE_LINKING_NONCE_FETCH = 5; FULL_HISTORY_SYNC_ON_DEMAND = 6; COMPANION_META_NONCE_FETCH = 7; + COMPANION_SYNCD_SNAPSHOT_FATAL_RECOVERY = 8; } enum BotMetricsEntryPoint { @@ -46,6 +47,9 @@ enum BotMetricsEntryPoint { 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; } enum BotMetricsThreadEntryPoint { @@ -297,6 +301,7 @@ message SecretEncryptedMessage { enum SecretEncType { UNKNOWN = 0; EVENT_EDIT = 1; + MESSAGE_EDIT = 2; } optional WACommon.MessageKey targetMessageKey = 1; @@ -509,6 +514,7 @@ message OrderMessage { optional ContextInfo contextInfo = 17; optional int32 messageVersion = 12; optional WACommon.MessageKey orderRequestMessageID = 13; + optional string catalogType = 15; } message PaymentInviteMessage { @@ -597,6 +603,11 @@ message PeerDataOperationRequestResponseMessage { ERROR_HOSTED_DEVICE_LOGIN_TIME_NOT_SET = 6; } + message SyncDSnapshotFatalRecoveryResponse { + optional bytes collectionSnapshot = 1; + optional bool isCompressed = 2; + } + message CompanionMetaNonceFetchResponse { optional string nonce = 1; } @@ -642,6 +653,7 @@ message PeerDataOperationRequestResponseMessage { optional WaffleNonceFetchResponse waffleNonceFetchRequestResponse = 5; optional FullHistorySyncOnDemandRequestResponse fullHistorySyncOnDemandRequestResponse = 6; optional CompanionMetaNonceFetchResponse companionMetaNonceFetchRequestResponse = 7; + optional SyncDSnapshotFatalRecoveryResponse syncdSnapshotFatalRecoveryResponse = 8; } optional PeerDataOperationRequestType peerDataOperationRequestType = 1; @@ -713,6 +725,7 @@ message ProtocolMessage { LIMIT_SHARING = 27; AI_PSI_METADATA = 28; AI_QUERY_FANOUT = 29; + GROUP_MEMBER_LABEL_CHANGE = 30; } optional WACommon.MessageKey key = 1; @@ -738,6 +751,7 @@ message ProtocolMessage { optional WACommon.LimitSharing limitSharing = 24; optional bytes aiPsiMetadata = 25; optional AIQueryFanout aiQueryFanout = 26; + optional MemberLabel memberLabel = 27; } message CloudAPIThreadControlNotification { @@ -747,10 +761,16 @@ message CloudAPIThreadControlNotification { CONTROL_TAKEN = 2; } + message CloudAPIThreadControlNotificationContent { + optional string handoffNotificationText = 1; + optional string extraJSON = 2; + } + optional CloudAPIThreadControl status = 1; optional int64 senderNotificationTimestampMS = 2; optional string consumerLid = 3; optional string consumerPhoneNumber = 4; + optional CloudAPIThreadControlNotificationContent notificationContent = 5; } message BotFeedbackMessage { @@ -980,6 +1000,15 @@ message ImageMessage { } message ContextInfo { + enum StatusSourceType { + IMAGE = 0; + VIDEO = 1; + GIF = 2; + AUDIO = 3; + TEXT = 4; + MUSIC_STANDALONE = 5; + } + enum PairedMediaType { NOT_PAIRED_MEDIA = 0; SD_VIDEO_PARENT = 1; @@ -1009,6 +1038,11 @@ message ContextInfo { } message ExternalAdReplyInfo { + enum AdType { + CTWA = 0; + CAWC = 1; + } + enum MediaType { NONE = 0; IMAGE = 1; @@ -1039,6 +1073,7 @@ message ContextInfo { optional string originalImageURL = 22; optional string automatedGreetingMessageCtaType = 23; optional bool wtwaAdFormat = 24; + optional AdType adType = 25; } message AdReplyInfo { @@ -1134,6 +1169,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 BotPluginMetadata { @@ -1306,7 +1344,7 @@ message AIRichResponseMessage { repeated AIRichResponseLatexExpression expressions = 2; } - message AIRichResponseAbstractData { + message AIRichResponseUnifiedResponse { optional bytes data = 1; } @@ -1332,7 +1370,17 @@ message AIRichResponseMessage { optional AIRichResponseMessageType messageType = 1; repeated AIRichResponseSubMessage submessages = 2; - optional AIRichResponseAbstractData abstractData = 3; + optional AIRichResponseUnifiedResponse unifiedResponse = 3; +} + +message BotPromotionMessageMetadata { + enum BotPromotionType { + UNKNOWN_TYPE = 0; + C50 = 1; + } + + optional BotPromotionType promotionType = 1; + optional string buttonTitle = 2; } message BotMediaMetadata { @@ -1482,11 +1530,37 @@ message BotCapabilityMetadata { RICH_RESPONSE_LATEX_INLINE = 31; QUERY_PLAN = 32; PROACTIVE_MESSAGE = 33; + RICH_RESPONSE_UNIFIED_RESPONSE = 34; + PROMOTION_MESSAGE = 35; } repeated BotCapabilityType capabilities = 1; } +message BotModeSelectionMetadata { + enum BotUserSelectionMode { + UNKNOWN_MODE = 0; + REASONING_MODE = 1; + } + + repeated BotUserSelectionMode mode = 1; +} + +message BotQuotaMetadata { + message BotFeatureQuotaMetadata { + enum BotFeatureType { + UNKNOWN_FEATURE = 0; + REASONING_FEATURE = 1; + } + + optional BotFeatureType featureType = 1; + optional uint32 remainingQuota = 2; + optional uint64 expirationTimestamp = 3; + } + + repeated BotFeatureQuotaMetadata botFeatureQuotaMetadata = 1; +} + message BotImagineMetadata { enum ImagineType { UNKNOWN = 0; @@ -1562,6 +1636,7 @@ message MessageContextInfo { optional bool capiCreatedGroup = 11; optional string supportPayload = 12; optional WACommon.LimitSharing limitSharing = 13; + optional WACommon.LimitSharing limitSharingV2 = 14; } message InteractiveAnnotation { @@ -1769,6 +1844,8 @@ message Message { optional StatusNotificationMessage statusNotificationMessage = 98; optional FutureProofMessage limitSharingMessage = 99; optional FutureProofMessage botTaskMessage = 100; + optional FutureProofMessage questionMessage = 101; + optional MessageHistoryNotice messageHistoryNotice = 102; } message AlbumMessage { @@ -1777,15 +1854,26 @@ message AlbumMessage { optional ContextInfo contextInfo = 17; } +message MessageHistoryMetadata { + repeated string historyReceivers = 1; + optional int64 firstMessageTimestamp = 2; + optional int64 messageCount = 3; +} + +message MessageHistoryNotice { + optional ContextInfo contextInfo = 1; + optional MessageHistoryMetadata messageHistoryMetadata = 2; +} + 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 MessageHistoryMetadata messageHistoryMetadata = 8; } message EncEventResponseMessage { @@ -2047,6 +2135,11 @@ message InitialSecurityNotificationSettingSync { } message PeerDataOperationRequestMessage { + message SyncDCollectionFatalRecoveryRequest { + optional string collectionName = 1; + optional int64 timestamp = 2; + } + message PlaceholderMessageResendRequest { optional WACommon.MessageKey messageKey = 1; } @@ -2080,6 +2173,7 @@ message PeerDataOperationRequestMessage { optional HistorySyncOnDemandRequest historySyncOnDemandRequest = 4; repeated PlaceholderMessageResendRequest placeholderMessageResendRequest = 5; optional FullHistorySyncOnDemandRequest fullHistorySyncOnDemandRequest = 6; + optional SyncDCollectionFatalRecoveryRequest syncdCollectionFatalRecoveryRequest = 7; } message FullHistorySyncOnDemandRequestMetadata { @@ -2132,6 +2226,7 @@ message Call { optional uint32 conversionDelaySeconds = 4; optional string ctwaSignals = 5; optional bytes ctwaPayload = 6; + optional ContextInfo contextInfo = 7; } message AudioMessage { @@ -2288,6 +2383,11 @@ message BotMemuMetadata { repeated BotMediaMetadata faceImages = 1; } +message BotAgeCollectionMetadata { + optional bool ageCollectionEligible = 1; + optional bool shouldTriggerAgeCollectionOnClient = 2; +} + message BotMetadata { optional BotAvatarMetadata avatarMetadata = 1; optional string personaID = 2; @@ -2309,6 +2409,10 @@ message BotMetadata { 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; } message DeviceListMetadata { @@ -2439,3 +2543,8 @@ message AIQueryFanout { optional Message message = 2; optional int64 timestamp = 3; } + +message MemberLabel { + optional string label = 1; + optional int64 labelTimestamp = 2; +} diff --git a/proto/waEphemeral/WAWebProtobufsEphemeral.pb.go b/proto/waEphemeral/WAWebProtobufsEphemeral.pb.go index d45702ef..324ec872 100644 --- a/proto/waEphemeral/WAWebProtobufsEphemeral.pb.go +++ b/proto/waEphemeral/WAWebProtobufsEphemeral.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waEphemeral/WAWebProtobufsEphemeral.proto @@ -9,11 +9,10 @@ package waEphemeral import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -77,17 +76,21 @@ func (x *EphemeralSetting) GetTimestamp() int64 { var File_waEphemeral_WAWebProtobufsEphemeral_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsEphemeral.pb.raw -var file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc []byte +const file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc = "" + + "\n" + + ")waEphemeral/WAWebProtobufsEphemeral.proto\x12\x17WAWebProtobufsEphemeral\"L\n" + + "\x10EphemeralSetting\x12\x1a\n" + + "\bduration\x18\x01 \x01(\x0fR\bduration\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x10R\ttimestampB'Z%github.com/techwiz37/waSocket/proto/waEphemeral" var ( file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescOnce sync.Once - file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescData = file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc + file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescData []byte ) func file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescGZIP() []byte { file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescOnce.Do(func() { - file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescData = protoimpl.X.CompressGZIP(file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescData) + file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc), len(file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc))) }) return file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescData } @@ -113,7 +116,7 @@ func file_waEphemeral_WAWebProtobufsEphemeral_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc), len(file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -124,7 +127,6 @@ func file_waEphemeral_WAWebProtobufsEphemeral_proto_init() { MessageInfos: file_waEphemeral_WAWebProtobufsEphemeral_proto_msgTypes, }.Build() File_waEphemeral_WAWebProtobufsEphemeral_proto = out.File - file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc = nil file_waEphemeral_WAWebProtobufsEphemeral_proto_goTypes = nil file_waEphemeral_WAWebProtobufsEphemeral_proto_depIdxs = nil } diff --git a/proto/waEphemeral/WAWebProtobufsEphemeral.pb.raw b/proto/waEphemeral/WAWebProtobufsEphemeral.pb.raw deleted file mode 100644 index 851ffd9b..00000000 --- a/proto/waEphemeral/WAWebProtobufsEphemeral.pb.raw +++ /dev/null @@ -1,5 +0,0 @@ - -)waEphemeral/WAWebProtobufsEphemeral.protoWAWebProtobufsEphemeral"L -EphemeralSetting -duration (Rduration - timestamp (R timestampB'Z%go.mau.fi/whatsmeow/proto/waEphemeral \ No newline at end of file diff --git a/proto/waFingerprint/WAFingerprint.pb.go b/proto/waFingerprint/WAFingerprint.pb.go index a451a109..9e78ffc5 100644 --- a/proto/waFingerprint/WAFingerprint.pb.go +++ b/proto/waFingerprint/WAFingerprint.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waFingerprint/WAFingerprint.proto @@ -9,11 +9,10 @@ package waFingerprint import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -225,17 +224,33 @@ func (x *CombinedFingerprint) GetRemoteFingerprint() *FingerprintData { var File_waFingerprint_WAFingerprint_proto protoreflect.FileDescriptor -//go:embed WAFingerprint.pb.raw -var file_waFingerprint_WAFingerprint_proto_rawDesc []byte +const file_waFingerprint_WAFingerprint_proto_rawDesc = "" + + "\n" + + "!waFingerprint/WAFingerprint.proto\x12\rWAFingerprint\"\x91\x02\n" + + "\x0fFingerprintData\x12\x1c\n" + + "\tpublicKey\x18\x01 \x01(\fR\tpublicKey\x12\"\n" + + "\fpnIdentifier\x18\x02 \x01(\fR\fpnIdentifier\x12$\n" + + "\rlidIdentifier\x18\x03 \x01(\fR\rlidIdentifier\x12.\n" + + "\x12usernameIdentifier\x18\x04 \x01(\fR\x12usernameIdentifier\x12<\n" + + "\vhostedState\x18\x05 \x01(\x0e2\x1a.WAFingerprint.HostedStateR\vhostedState\x12(\n" + + "\x0fhashedPublicKey\x18\x06 \x01(\fR\x0fhashedPublicKey\"\xc9\x01\n" + + "\x13CombinedFingerprint\x12\x18\n" + + "\aversion\x18\x01 \x01(\rR\aversion\x12J\n" + + "\x10localFingerprint\x18\x02 \x01(\v2\x1e.WAFingerprint.FingerprintDataR\x10localFingerprint\x12L\n" + + "\x11remoteFingerprint\x18\x03 \x01(\v2\x1e.WAFingerprint.FingerprintDataR\x11remoteFingerprint*#\n" + + "\vHostedState\x12\b\n" + + "\x04E2EE\x10\x00\x12\n" + + "\n" + + "\x06HOSTED\x10\x01B)Z'github.com/techwiz37/waSocket/proto/waFingerprint" var ( file_waFingerprint_WAFingerprint_proto_rawDescOnce sync.Once - file_waFingerprint_WAFingerprint_proto_rawDescData = file_waFingerprint_WAFingerprint_proto_rawDesc + file_waFingerprint_WAFingerprint_proto_rawDescData []byte ) func file_waFingerprint_WAFingerprint_proto_rawDescGZIP() []byte { file_waFingerprint_WAFingerprint_proto_rawDescOnce.Do(func() { - file_waFingerprint_WAFingerprint_proto_rawDescData = protoimpl.X.CompressGZIP(file_waFingerprint_WAFingerprint_proto_rawDescData) + file_waFingerprint_WAFingerprint_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waFingerprint_WAFingerprint_proto_rawDesc), len(file_waFingerprint_WAFingerprint_proto_rawDesc))) }) return file_waFingerprint_WAFingerprint_proto_rawDescData } @@ -267,7 +282,7 @@ func file_waFingerprint_WAFingerprint_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waFingerprint_WAFingerprint_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waFingerprint_WAFingerprint_proto_rawDesc), len(file_waFingerprint_WAFingerprint_proto_rawDesc)), NumEnums: 1, NumMessages: 2, NumExtensions: 0, @@ -279,7 +294,6 @@ func file_waFingerprint_WAFingerprint_proto_init() { MessageInfos: file_waFingerprint_WAFingerprint_proto_msgTypes, }.Build() File_waFingerprint_WAFingerprint_proto = out.File - file_waFingerprint_WAFingerprint_proto_rawDesc = nil file_waFingerprint_WAFingerprint_proto_goTypes = nil file_waFingerprint_WAFingerprint_proto_depIdxs = nil } diff --git a/proto/waFingerprint/WAFingerprint.pb.raw b/proto/waFingerprint/WAFingerprint.pb.raw deleted file mode 100644 index 737bff31..00000000 Binary files a/proto/waFingerprint/WAFingerprint.pb.raw and /dev/null differ diff --git a/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go b/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go index ae65017d..6a809b3c 100644 --- a/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go +++ b/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waHistorySync/WAWebProtobufsHistorySync.proto @@ -9,6 +9,7 @@ package waHistorySync import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -18,8 +19,6 @@ import ( waE2E "github.com/techwiz37/waSocket/proto/waE2E" waSyncAction "github.com/techwiz37/waSocket/proto/waSyncAction" waWeb "github.com/techwiz37/waSocket/proto/waWeb" - - _ "embed" ) const ( @@ -1489,6 +1488,7 @@ type GlobalSettings struct { IndividualNotificationSettings *NotificationSettings `protobuf:"bytes,17,opt,name=individualNotificationSettings" json:"individualNotificationSettings,omitempty"` GroupNotificationSettings *NotificationSettings `protobuf:"bytes,18,opt,name=groupNotificationSettings" json:"groupNotificationSettings,omitempty"` ChatLockSettings *waChatLockSettings.ChatLockSettings `protobuf:"bytes,19,opt,name=chatLockSettings" json:"chatLockSettings,omitempty"` + ChatDbLidMigrationTimestamp *int64 `protobuf:"varint,20,opt,name=chatDbLidMigrationTimestamp" json:"chatDbLidMigrationTimestamp,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1656,6 +1656,13 @@ func (x *GlobalSettings) GetChatLockSettings() *waChatLockSettings.ChatLockSetti return nil } +func (x *GlobalSettings) GetChatDbLidMigrationTimestamp() int64 { + if x != nil && x.ChatDbLidMigrationTimestamp != nil { + return *x.ChatDbLidMigrationTimestamp + } + return 0 +} + type AutoDownloadSettings struct { state protoimpl.MessageState `protogen:"open.v1"` DownloadImages *bool `protobuf:"varint,1,opt,name=downloadImages" json:"downloadImages,omitempty"` @@ -2046,17 +2053,219 @@ func (x *NotificationSettings) GetCallVibrate() string { var File_waHistorySync_WAWebProtobufsHistorySync_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsHistorySync.pb.raw -var file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc []byte +const file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc = "" + + "\n" + + "-waHistorySync/WAWebProtobufsHistorySync.proto\x12\x19WAWebProtobufsHistorySync\x1a\x1fwaSyncAction/WASyncAction.proto\x1a4waChatLockSettings/WAProtobufsChatLockSettings.proto\x1a\x1dwaE2E/WAWebProtobufsE2E.proto\x1a\x17waCommon/WACommon.proto\x1a\x1dwaWeb/WAWebProtobufsWeb.proto\"\x8c\v\n" + + "\vHistorySync\x12R\n" + + "\bsyncType\x18\x01 \x02(\x0e26.WAWebProtobufsHistorySync.HistorySync.HistorySyncTypeR\bsyncType\x12M\n" + + "\rconversations\x18\x02 \x03(\v2'.WAWebProtobufsHistorySync.ConversationR\rconversations\x12M\n" + + "\x10statusV3Messages\x18\x03 \x03(\v2!.WAWebProtobufsWeb.WebMessageInfoR\x10statusV3Messages\x12\x1e\n" + + "\n" + + "chunkOrder\x18\x05 \x01(\rR\n" + + "chunkOrder\x12\x1a\n" + + "\bprogress\x18\x06 \x01(\rR\bprogress\x12A\n" + + "\tpushnames\x18\a \x03(\v2#.WAWebProtobufsHistorySync.PushnameR\tpushnames\x12Q\n" + + "\x0eglobalSettings\x18\b \x01(\v2).WAWebProtobufsHistorySync.GlobalSettingsR\x0eglobalSettings\x12.\n" + + "\x12threadIDUserSecret\x18\t \x01(\fR\x12threadIDUserSecret\x128\n" + + "\x17threadDsTimeframeOffset\x18\n" + + " \x01(\rR\x17threadDsTimeframeOffset\x12R\n" + + "\x0erecentStickers\x18\v \x03(\v2*.WAWebProtobufsHistorySync.StickerMetadataR\x0erecentStickers\x12W\n" + + "\x10pastParticipants\x18\f \x03(\v2+.WAWebProtobufsHistorySync.PastParticipantsR\x10pastParticipants\x12C\n" + + "\x0ecallLogRecords\x18\r \x03(\v2\x1b.WASyncAction.CallLogRecordR\x0ecallLogRecords\x12c\n" + + "\x0faiWaitListState\x18\x0e \x01(\x0e29.WAWebProtobufsHistorySync.HistorySync.BotAIWaitListStateR\x0faiWaitListState\x12n\n" + + "\x18phoneNumberToLidMappings\x18\x0f \x03(\v22.WAWebProtobufsHistorySync.PhoneNumberToLIDMappingR\x18phoneNumberToLidMappings\x12.\n" + + "\x12companionMetaNonce\x18\x10 \x01(\tR\x12companionMetaNonce\x12R\n" + + "$shareableChatIdentifierEncryptionKey\x18\x11 \x01(\fR$shareableChatIdentifierEncryptionKey\x12>\n" + + "\baccounts\x18\x12 \x03(\v2\".WAWebProtobufsHistorySync.AccountR\baccounts\"7\n" + + "\x12BotAIWaitListState\x12\x0f\n" + + "\vIN_WAITLIST\x10\x00\x12\x10\n" + + "\fAI_AVAILABLE\x10\x01\"\x8a\x01\n" + + "\x0fHistorySyncType\x12\x15\n" + + "\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n" + + "\x11INITIAL_STATUS_V3\x10\x01\x12\b\n" + + "\x04FULL\x10\x02\x12\n" + + "\n" + + "\x06RECENT\x10\x03\x12\r\n" + + "\tPUSH_NAME\x10\x04\x12\x15\n" + + "\x11NON_BLOCKING_DATA\x10\x05\x12\r\n" + + "\tON_DEMAND\x10\x06\"\x87\x14\n" + + "\fConversation\x12\x0e\n" + + "\x02ID\x18\x01 \x02(\tR\x02ID\x12E\n" + + "\bmessages\x18\x02 \x03(\v2).WAWebProtobufsHistorySync.HistorySyncMsgR\bmessages\x12\x16\n" + + "\x06newJID\x18\x03 \x01(\tR\x06newJID\x12\x16\n" + + "\x06oldJID\x18\x04 \x01(\tR\x06oldJID\x12*\n" + + "\x10lastMsgTimestamp\x18\x05 \x01(\x04R\x10lastMsgTimestamp\x12 \n" + + "\vunreadCount\x18\x06 \x01(\rR\vunreadCount\x12\x1a\n" + + "\breadOnly\x18\a \x01(\bR\breadOnly\x122\n" + + "\x14endOfHistoryTransfer\x18\b \x01(\bR\x14endOfHistoryTransfer\x120\n" + + "\x13ephemeralExpiration\x18\t \x01(\rR\x13ephemeralExpiration\x12<\n" + + "\x19ephemeralSettingTimestamp\x18\n" + + " \x01(\x03R\x19ephemeralSettingTimestamp\x12|\n" + + "\x18endOfHistoryTransferType\x18\v \x01(\x0e2@.WAWebProtobufsHistorySync.Conversation.EndOfHistoryTransferTypeR\x18endOfHistoryTransferType\x124\n" + + "\x15conversationTimestamp\x18\f \x01(\x04R\x15conversationTimestamp\x12\x12\n" + + "\x04name\x18\r \x01(\tR\x04name\x12\x14\n" + + "\x05pHash\x18\x0e \x01(\tR\x05pHash\x12\x18\n" + + "\anotSpam\x18\x0f \x01(\bR\anotSpam\x12\x1a\n" + + "\barchived\x18\x10 \x01(\bR\barchived\x12O\n" + + "\x10disappearingMode\x18\x11 \x01(\v2#.WAWebProtobufsE2E.DisappearingModeR\x10disappearingMode\x12.\n" + + "\x12unreadMentionCount\x18\x12 \x01(\rR\x12unreadMentionCount\x12&\n" + + "\x0emarkedAsUnread\x18\x13 \x01(\bR\x0emarkedAsUnread\x12M\n" + + "\vparticipant\x18\x14 \x03(\v2+.WAWebProtobufsHistorySync.GroupParticipantR\vparticipant\x12\x18\n" + + "\atcToken\x18\x15 \x01(\fR\atcToken\x12*\n" + + "\x10tcTokenTimestamp\x18\x16 \x01(\x04R\x10tcTokenTimestamp\x12<\n" + + "\x19contactPrimaryIdentityKey\x18\x17 \x01(\fR\x19contactPrimaryIdentityKey\x12\x16\n" + + "\x06pinned\x18\x18 \x01(\rR\x06pinned\x12 \n" + + "\vmuteEndTime\x18\x19 \x01(\x04R\vmuteEndTime\x12J\n" + + "\twallpaper\x18\x1a \x01(\v2,.WAWebProtobufsHistorySync.WallpaperSettingsR\twallpaper\x12T\n" + + "\x0fmediaVisibility\x18\x1b \x01(\x0e2*.WAWebProtobufsHistorySync.MediaVisibilityR\x0fmediaVisibility\x126\n" + + "\x16tcTokenSenderTimestamp\x18\x1c \x01(\x04R\x16tcTokenSenderTimestamp\x12\x1c\n" + + "\tsuspended\x18\x1d \x01(\bR\tsuspended\x12\x1e\n" + + "\n" + + "terminated\x18\x1e \x01(\bR\n" + + "terminated\x12\x1c\n" + + "\tcreatedAt\x18\x1f \x01(\x04R\tcreatedAt\x12\x1c\n" + + "\tcreatedBy\x18 \x01(\tR\tcreatedBy\x12 \n" + + "\vdescription\x18! \x01(\tR\vdescription\x12\x18\n" + + "\asupport\x18\" \x01(\bR\asupport\x12$\n" + + "\risParentGroup\x18# \x01(\bR\risParentGroup\x12$\n" + + "\rparentGroupID\x18% \x01(\tR\rparentGroupID\x12,\n" + + "\x11isDefaultSubgroup\x18$ \x01(\bR\x11isDefaultSubgroup\x12 \n" + + "\vdisplayName\x18& \x01(\tR\vdisplayName\x12\x14\n" + + "\x05pnJID\x18' \x01(\tR\x05pnJID\x12\x1e\n" + + "\n" + + "shareOwnPn\x18( \x01(\bR\n" + + "shareOwnPn\x124\n" + + "\x15pnhDuplicateLidThread\x18) \x01(\bR\x15pnhDuplicateLidThread\x12\x16\n" + + "\x06lidJID\x18* \x01(\tR\x06lidJID\x12\x1a\n" + + "\busername\x18+ \x01(\tR\busername\x12$\n" + + "\rlidOriginType\x18, \x01(\tR\rlidOriginType\x12$\n" + + "\rcommentsCount\x18- \x01(\rR\rcommentsCount\x12\x16\n" + + "\x06locked\x18. \x01(\bR\x06locked\x12e\n" + + "\x15systemMessageToInsert\x18/ \x01(\x0e2/.WAWebProtobufsHistorySync.PrivacySystemMessageR\x15systemMessageToInsert\x12*\n" + + "\x10capiCreatedGroup\x180 \x01(\bR\x10capiCreatedGroup\x12\x1e\n" + + "\n" + + "accountLid\x181 \x01(\tR\n" + + "accountLid\x12\"\n" + + "\flimitSharing\x182 \x01(\bR\flimitSharing\x12B\n" + + "\x1climitSharingSettingTimestamp\x183 \x01(\x03R\x1climitSharingSettingTimestamp\x12P\n" + + "\x13limitSharingTrigger\x184 \x01(\x0e2\x1e.WACommon.LimitSharing.TriggerR\x13limitSharingTrigger\x12<\n" + + "\x19limitSharingInitiatedByMe\x185 \x01(\bR\x19limitSharingInitiatedByMe\"\xbc\x01\n" + + "\x18EndOfHistoryTransferType\x120\n" + + ",COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY\x10\x00\x122\n" + + ".COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY\x10\x01\x12:\n" + + "6COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY\x10\x02\"\xa2\x01\n" + + "\x10GroupParticipant\x12\x18\n" + + "\auserJID\x18\x01 \x02(\tR\auserJID\x12D\n" + + "\x04rank\x18\x02 \x01(\x0e20.WAWebProtobufsHistorySync.GroupParticipant.RankR\x04rank\".\n" + + "\x04Rank\x12\v\n" + + "\aREGULAR\x10\x00\x12\t\n" + + "\x05ADMIN\x10\x01\x12\x0e\n" + + "\n" + + "SUPERADMIN\x10\x02\"\xc5\x01\n" + + "\x0fPastParticipant\x12\x18\n" + + "\auserJID\x18\x01 \x01(\tR\auserJID\x12X\n" + + "\vleaveReason\x18\x02 \x01(\x0e26.WAWebProtobufsHistorySync.PastParticipant.LeaveReasonR\vleaveReason\x12\x18\n" + + "\aleaveTS\x18\x03 \x01(\x04R\aleaveTS\"$\n" + + "\vLeaveReason\x12\b\n" + + "\x04LEFT\x10\x00\x12\v\n" + + "\aREMOVED\x10\x01\"G\n" + + "\x17PhoneNumberToLIDMapping\x12\x14\n" + + "\x05pnJID\x18\x01 \x01(\tR\x05pnJID\x12\x16\n" + + "\x06lidJID\x18\x02 \x01(\tR\x06lidJID\"\x87\x01\n" + + "\aAccount\x12\x10\n" + + "\x03lid\x18\x01 \x01(\tR\x03lid\x12\x1a\n" + + "\busername\x18\x02 \x01(\tR\busername\x12 \n" + + "\vcountryCode\x18\x03 \x01(\tR\vcountryCode\x12,\n" + + "\x11isUsernameDeleted\x18\x04 \x01(\bR\x11isUsernameDeleted\"m\n" + + "\x0eHistorySyncMsg\x12;\n" + + "\amessage\x18\x01 \x01(\v2!.WAWebProtobufsWeb.WebMessageInfoR\amessage\x12\x1e\n" + + "\n" + + "msgOrderID\x18\x02 \x01(\x04R\n" + + "msgOrderID\"6\n" + + "\bPushname\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\x1a\n" + + "\bpushname\x18\x02 \x01(\tR\bpushname\"I\n" + + "\x11WallpaperSettings\x12\x1a\n" + + "\bfilename\x18\x01 \x01(\tR\bfilename\x12\x18\n" + + "\aopacity\x18\x02 \x01(\rR\aopacity\"\x97\f\n" + + "\x0eGlobalSettings\x12^\n" + + "\x13lightThemeWallpaper\x18\x01 \x01(\v2,.WAWebProtobufsHistorySync.WallpaperSettingsR\x13lightThemeWallpaper\x12T\n" + + "\x0fmediaVisibility\x18\x02 \x01(\x0e2*.WAWebProtobufsHistorySync.MediaVisibilityR\x0fmediaVisibility\x12\\\n" + + "\x12darkThemeWallpaper\x18\x03 \x01(\v2,.WAWebProtobufsHistorySync.WallpaperSettingsR\x12darkThemeWallpaper\x12[\n" + + "\x10autoDownloadWiFi\x18\x04 \x01(\v2/.WAWebProtobufsHistorySync.AutoDownloadSettingsR\x10autoDownloadWiFi\x12c\n" + + "\x14autoDownloadCellular\x18\x05 \x01(\v2/.WAWebProtobufsHistorySync.AutoDownloadSettingsR\x14autoDownloadCellular\x12a\n" + + "\x13autoDownloadRoaming\x18\x06 \x01(\v2/.WAWebProtobufsHistorySync.AutoDownloadSettingsR\x13autoDownloadRoaming\x12N\n" + + "\"showIndividualNotificationsPreview\x18\a \x01(\bR\"showIndividualNotificationsPreview\x12D\n" + + "\x1dshowGroupNotificationsPreview\x18\b \x01(\bR\x1dshowGroupNotificationsPreview\x12:\n" + + "\x18disappearingModeDuration\x18\t \x01(\x05R\x18disappearingModeDuration\x12<\n" + + "\x19disappearingModeTimestamp\x18\n" + + " \x01(\x03R\x19disappearingModeTimestamp\x12]\n" + + "\x12avatarUserSettings\x18\v \x01(\v2-.WAWebProtobufsHistorySync.AvatarUserSettingsR\x12avatarUserSettings\x12\x1a\n" + + "\bfontSize\x18\f \x01(\x05R\bfontSize\x124\n" + + "\x15securityNotifications\x18\r \x01(\bR\x15securityNotifications\x12.\n" + + "\x12autoUnarchiveChats\x18\x0e \x01(\bR\x12autoUnarchiveChats\x12*\n" + + "\x10videoQualityMode\x18\x0f \x01(\x05R\x10videoQualityMode\x12*\n" + + "\x10photoQualityMode\x18\x10 \x01(\x05R\x10photoQualityMode\x12w\n" + + "\x1eindividualNotificationSettings\x18\x11 \x01(\v2/.WAWebProtobufsHistorySync.NotificationSettingsR\x1eindividualNotificationSettings\x12m\n" + + "\x19groupNotificationSettings\x18\x12 \x01(\v2/.WAWebProtobufsHistorySync.NotificationSettingsR\x19groupNotificationSettings\x12Y\n" + + "\x10chatLockSettings\x18\x13 \x01(\v2-.WAProtobufsChatLockSettings.ChatLockSettingsR\x10chatLockSettings\x12@\n" + + "\x1bchatDbLidMigrationTimestamp\x18\x14 \x01(\x03R\x1bchatDbLidMigrationTimestamp\"\xb8\x01\n" + + "\x14AutoDownloadSettings\x12&\n" + + "\x0edownloadImages\x18\x01 \x01(\bR\x0edownloadImages\x12$\n" + + "\rdownloadAudio\x18\x02 \x01(\bR\rdownloadAudio\x12$\n" + + "\rdownloadVideo\x18\x03 \x01(\bR\rdownloadVideo\x12,\n" + + "\x11downloadDocuments\x18\x04 \x01(\bR\x11downloadDocuments\"\xf1\x02\n" + + "\x0fStickerMetadata\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x02 \x01(\fR\n" + + "fileSHA256\x12$\n" + + "\rfileEncSHA256\x18\x03 \x01(\fR\rfileEncSHA256\x12\x1a\n" + + "\bmediaKey\x18\x04 \x01(\fR\bmediaKey\x12\x1a\n" + + "\bmimetype\x18\x05 \x01(\tR\bmimetype\x12\x16\n" + + "\x06height\x18\x06 \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\a \x01(\rR\x05width\x12\x1e\n" + + "\n" + + "directPath\x18\b \x01(\tR\n" + + "directPath\x12\x1e\n" + + "\n" + + "fileLength\x18\t \x01(\x04R\n" + + "fileLength\x12\x16\n" + + "\x06weight\x18\n" + + " \x01(\x02R\x06weight\x12,\n" + + "\x11lastStickerSentTS\x18\v \x01(\x03R\x11lastStickerSentTS\x12\x1a\n" + + "\bisLottie\x18\f \x01(\bR\bisLottie\"\x86\x01\n" + + "\x10PastParticipants\x12\x1a\n" + + "\bgroupJID\x18\x01 \x01(\tR\bgroupJID\x12V\n" + + "\x10pastParticipants\x18\x02 \x03(\v2*.WAWebProtobufsHistorySync.PastParticipantR\x10pastParticipants\"D\n" + + "\x12AvatarUserSettings\x12\x12\n" + + "\x04FBID\x18\x01 \x01(\tR\x04FBID\x12\x1a\n" + + "\bpassword\x18\x02 \x01(\tR\bpassword\"\x8c\x02\n" + + "\x14NotificationSettings\x12&\n" + + "\x0emessageVibrate\x18\x01 \x01(\tR\x0emessageVibrate\x12\"\n" + + "\fmessagePopup\x18\x02 \x01(\tR\fmessagePopup\x12\"\n" + + "\fmessageLight\x18\x03 \x01(\tR\fmessageLight\x12:\n" + + "\x18lowPriorityNotifications\x18\x04 \x01(\bR\x18lowPriorityNotifications\x12&\n" + + "\x0ereactionsMuted\x18\x05 \x01(\bR\x0ereactionsMuted\x12 \n" + + "\vcallVibrate\x18\x06 \x01(\tR\vcallVibrate*/\n" + + "\x0fMediaVisibility\x12\v\n" + + "\aDEFAULT\x10\x00\x12\a\n" + + "\x03OFF\x10\x01\x12\x06\n" + + "\x02ON\x10\x02*E\n" + + "\x14PrivacySystemMessage\x12\f\n" + + "\bE2EE_MSG\x10\x01\x12\x0e\n" + + "\n" + + "NE2EE_SELF\x10\x02\x12\x0f\n" + + "\vNE2EE_OTHER\x10\x03B)Z'github.com/techwiz37/waSocket/proto/waHistorySync" var ( file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescOnce sync.Once - file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescData = file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc + file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescData []byte ) func file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescGZIP() []byte { file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescOnce.Do(func() { - file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescData = protoimpl.X.CompressGZIP(file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescData) + file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc), len(file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc))) }) return file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDescData } @@ -2142,7 +2351,7 @@ func file_waHistorySync_WAWebProtobufsHistorySync_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc), len(file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc)), NumEnums: 7, NumMessages: 15, NumExtensions: 0, @@ -2154,7 +2363,6 @@ func file_waHistorySync_WAWebProtobufsHistorySync_proto_init() { MessageInfos: file_waHistorySync_WAWebProtobufsHistorySync_proto_msgTypes, }.Build() File_waHistorySync_WAWebProtobufsHistorySync_proto = out.File - file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc = nil file_waHistorySync_WAWebProtobufsHistorySync_proto_goTypes = nil file_waHistorySync_WAWebProtobufsHistorySync_proto_depIdxs = nil } diff --git a/proto/waHistorySync/WAWebProtobufsHistorySync.pb.raw b/proto/waHistorySync/WAWebProtobufsHistorySync.pb.raw deleted file mode 100644 index 8603dc6f..00000000 Binary files a/proto/waHistorySync/WAWebProtobufsHistorySync.pb.raw and /dev/null differ diff --git a/proto/waHistorySync/WAWebProtobufsHistorySync.proto b/proto/waHistorySync/WAWebProtobufsHistorySync.proto index 240ade67..3cf6f29e 100644 --- a/proto/waHistorySync/WAWebProtobufsHistorySync.proto +++ b/proto/waHistorySync/WAWebProtobufsHistorySync.proto @@ -186,6 +186,7 @@ message GlobalSettings { optional NotificationSettings individualNotificationSettings = 17; optional NotificationSettings groupNotificationSettings = 18; optional WAProtobufsChatLockSettings.ChatLockSettings chatLockSettings = 19; + optional int64 chatDbLidMigrationTimestamp = 20; } message AutoDownloadSettings { diff --git a/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go b/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go index 868c89c0..4295ef89 100644 --- a/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go +++ b/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.proto @@ -9,11 +9,10 @@ package waLidMigrationSyncPayload import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -137,17 +136,25 @@ func (x *LIDMigrationMappingSyncPayload) GetChatDbMigrationTimestamp() uint64 { var File_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufLidMigrationSyncPayload.pb.raw -var file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc []byte +const file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc = "" + + "\n" + + "DwaLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.proto\x12$WAWebProtobufLidMigrationSyncPayload\"e\n" + + "\x13LIDMigrationMapping\x12\x0e\n" + + "\x02pn\x18\x01 \x02(\x04R\x02pn\x12 \n" + + "\vassignedLid\x18\x02 \x02(\x04R\vassignedLid\x12\x1c\n" + + "\tlatestLid\x18\x03 \x01(\x04R\tlatestLid\"\xc1\x01\n" + + "\x1eLIDMigrationMappingSyncPayload\x12c\n" + + "\x0fpnToLidMappings\x18\x01 \x03(\v29.WAWebProtobufLidMigrationSyncPayload.LIDMigrationMappingR\x0fpnToLidMappings\x12:\n" + + "\x18chatDbMigrationTimestamp\x18\x02 \x01(\x04R\x18chatDbMigrationTimestampB5Z3github.com/techwiz37/waSocket/proto/waLidMigrationSyncPayload" var ( file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescOnce sync.Once - file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescData = file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc + file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescData []byte ) func file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescGZIP() []byte { file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescOnce.Do(func() { - file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescData = protoimpl.X.CompressGZIP(file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescData) + file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc), len(file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc))) }) return file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDescData } @@ -175,7 +182,7 @@ func file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_i out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc), len(file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, @@ -186,7 +193,6 @@ func file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_i MessageInfos: file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_msgTypes, }.Build() File_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto = out.File - file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_rawDesc = nil file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_goTypes = nil file_waLidMigrationSyncPayload_WAWebProtobufLidMigrationSyncPayload_proto_depIdxs = nil } diff --git a/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.raw b/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.raw deleted file mode 100644 index 288c4961..00000000 --- a/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.raw +++ /dev/null @@ -1,9 +0,0 @@ - -DwaLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.proto$WAWebProtobufLidMigrationSyncPayload"e -LIDMigrationMapping -pn (Rpn - assignedLid (R assignedLid - latestLid (R latestLid"Á -LIDMigrationMappingSyncPayloadc -pnToLidMappings ( 29.WAWebProtobufLidMigrationSyncPayload.LIDMigrationMappingRpnToLidMappings: -chatDbMigrationTimestamp (RchatDbMigrationTimestampB5Z3go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload \ No newline at end of file diff --git a/proto/waMediaEntryData/WAMediaEntryData.pb.go b/proto/waMediaEntryData/WAMediaEntryData.pb.go index 4e966bdb..27e3695b 100644 --- a/proto/waMediaEntryData/WAMediaEntryData.pb.go +++ b/proto/waMediaEntryData/WAMediaEntryData.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waMediaEntryData/WAMediaEntryData.proto @@ -9,11 +9,10 @@ package waMediaEntryData import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -333,17 +332,56 @@ func (x *MediaEntry_DownloadableThumbnail) GetObjectID() string { var File_waMediaEntryData_WAMediaEntryData_proto protoreflect.FileDescriptor -//go:embed WAMediaEntryData.pb.raw -var file_waMediaEntryData_WAMediaEntryData_proto_rawDesc []byte +const file_waMediaEntryData_WAMediaEntryData_proto_rawDesc = "" + + "\n" + + "'waMediaEntryData/WAMediaEntryData.proto\x12\x10WAMediaEntryData\"\xa1\b\n" + + "\n" + + "MediaEntry\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x01 \x01(\fR\n" + + "fileSHA256\x12\x1a\n" + + "\bmediaKey\x18\x02 \x01(\fR\bmediaKey\x12$\n" + + "\rfileEncSHA256\x18\x03 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x04 \x01(\tR\n" + + "directPath\x12,\n" + + "\x11mediaKeyTimestamp\x18\x05 \x01(\x03R\x11mediaKeyTimestamp\x12(\n" + + "\x0fserverMediaType\x18\x06 \x01(\tR\x0fserverMediaType\x12 \n" + + "\vuploadToken\x18\a \x01(\fR\vuploadToken\x12.\n" + + "\x12validatedTimestamp\x18\b \x01(\fR\x12validatedTimestamp\x12\x18\n" + + "\asidecar\x18\t \x01(\fR\asidecar\x12\x1a\n" + + "\bobjectID\x18\n" + + " \x01(\tR\bobjectID\x12\x12\n" + + "\x04FBID\x18\v \x01(\tR\x04FBID\x12h\n" + + "\x15downloadableThumbnail\x18\f \x01(\v22.WAMediaEntryData.MediaEntry.DownloadableThumbnailR\x15downloadableThumbnail\x12\x16\n" + + "\x06handle\x18\r \x01(\tR\x06handle\x12\x1a\n" + + "\bfilename\x18\x0e \x01(\tR\bfilename\x12k\n" + + "\x16progressiveJPEGDetails\x18\x0f \x01(\v23.WAMediaEntryData.MediaEntry.ProgressiveJpegDetailsR\x16progressiveJPEGDetails\x12\x12\n" + + "\x04size\x18\x10 \x01(\x03R\x04size\x12B\n" + + "\x1clastDownloadAttemptTimestamp\x18\x11 \x01(\x03R\x1clastDownloadAttemptTimestamp\x1aT\n" + + "\x16ProgressiveJpegDetails\x12 \n" + + "\vscanLengths\x18\x01 \x03(\rR\vscanLengths\x12\x18\n" + + "\asidecar\x18\x02 \x01(\fR\asidecar\x1a\xe3\x01\n" + + "\x15DownloadableThumbnail\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x01 \x01(\fR\n" + + "fileSHA256\x12$\n" + + "\rfileEncSHA256\x18\x02 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x03 \x01(\tR\n" + + "directPath\x12\x1a\n" + + "\bmediaKey\x18\x04 \x01(\fR\bmediaKey\x12,\n" + + "\x11mediaKeyTimestamp\x18\x05 \x01(\x03R\x11mediaKeyTimestamp\x12\x1a\n" + + "\bobjectID\x18\x06 \x01(\tR\bobjectIDB,Z*github.com/techwiz37/waSocket/proto/waMediaEntryData" var ( file_waMediaEntryData_WAMediaEntryData_proto_rawDescOnce sync.Once - file_waMediaEntryData_WAMediaEntryData_proto_rawDescData = file_waMediaEntryData_WAMediaEntryData_proto_rawDesc + file_waMediaEntryData_WAMediaEntryData_proto_rawDescData []byte ) func file_waMediaEntryData_WAMediaEntryData_proto_rawDescGZIP() []byte { file_waMediaEntryData_WAMediaEntryData_proto_rawDescOnce.Do(func() { - file_waMediaEntryData_WAMediaEntryData_proto_rawDescData = protoimpl.X.CompressGZIP(file_waMediaEntryData_WAMediaEntryData_proto_rawDescData) + file_waMediaEntryData_WAMediaEntryData_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waMediaEntryData_WAMediaEntryData_proto_rawDesc), len(file_waMediaEntryData_WAMediaEntryData_proto_rawDesc))) }) return file_waMediaEntryData_WAMediaEntryData_proto_rawDescData } @@ -373,7 +411,7 @@ func file_waMediaEntryData_WAMediaEntryData_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waMediaEntryData_WAMediaEntryData_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waMediaEntryData_WAMediaEntryData_proto_rawDesc), len(file_waMediaEntryData_WAMediaEntryData_proto_rawDesc)), NumEnums: 0, NumMessages: 3, NumExtensions: 0, @@ -384,7 +422,6 @@ func file_waMediaEntryData_WAMediaEntryData_proto_init() { MessageInfos: file_waMediaEntryData_WAMediaEntryData_proto_msgTypes, }.Build() File_waMediaEntryData_WAMediaEntryData_proto = out.File - file_waMediaEntryData_WAMediaEntryData_proto_rawDesc = nil file_waMediaEntryData_WAMediaEntryData_proto_goTypes = nil file_waMediaEntryData_WAMediaEntryData_proto_depIdxs = nil } diff --git a/proto/waMediaEntryData/WAMediaEntryData.pb.raw b/proto/waMediaEntryData/WAMediaEntryData.pb.raw deleted file mode 100644 index cee62248..00000000 --- a/proto/waMediaEntryData/WAMediaEntryData.pb.raw +++ /dev/null @@ -1,40 +0,0 @@ - -'waMediaEntryData/WAMediaEntryData.protoWAMediaEntryData"¡ - -MediaEntry - -fileSHA256 ( R -fileSHA256 -mediaKey ( RmediaKey$ - fileEncSHA256 ( R fileEncSHA256 - -directPath ( R -directPath, -mediaKeyTimestamp (RmediaKeyTimestamp( -serverMediaType ( RserverMediaType - uploadToken ( R uploadToken. -validatedTimestamp ( RvalidatedTimestamp -sidecar ( Rsidecar -objectID - ( RobjectID -FBID ( RFBIDh -downloadableThumbnail ( 22.WAMediaEntryData.MediaEntry.DownloadableThumbnailRdownloadableThumbnail -handle ( Rhandle -filename ( Rfilenamek -progressiveJPEGDetails ( 23.WAMediaEntryData.MediaEntry.ProgressiveJpegDetailsRprogressiveJPEGDetails -size (RsizeB -lastDownloadAttemptTimestamp (RlastDownloadAttemptTimestampT -ProgressiveJpegDetails - scanLengths ( R scanLengths -sidecar ( Rsidecarã -DownloadableThumbnail - -fileSHA256 ( R -fileSHA256$ - fileEncSHA256 ( R fileEncSHA256 - -directPath ( R -directPath -mediaKey ( RmediaKey, -mediaKeyTimestamp (RmediaKeyTimestamp -objectID ( RobjectIDB,Z*go.mau.fi/whatsmeow/proto/waMediaEntryData \ No newline at end of file diff --git a/proto/waMediaTransport/WAMediaTransport.pb.go b/proto/waMediaTransport/WAMediaTransport.pb.go index efc6afcc..d1cb4dfb 100644 --- a/proto/waMediaTransport/WAMediaTransport.pb.go +++ b/proto/waMediaTransport/WAMediaTransport.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waMediaTransport/WAMediaTransport.proto @@ -9,13 +9,12 @@ package waMediaTransport import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waCommon "github.com/techwiz37/waSocket/proto/waCommon" - - _ "embed" ) const ( @@ -1094,6 +1093,7 @@ type VideoTransport_Ancillary struct { Sidecar []byte `protobuf:"bytes,6,opt,name=sidecar" json:"sidecar,omitempty"` GifAttribution *VideoTransport_Ancillary_Attribution `protobuf:"varint,7,opt,name=gifAttribution,enum=WAMediaTransport.VideoTransport_Ancillary_Attribution" json:"gifAttribution,omitempty"` AccessibilityLabel *string `protobuf:"bytes,8,opt,name=accessibilityLabel" json:"accessibilityLabel,omitempty"` + IsHd *bool `protobuf:"varint,9,opt,name=isHd" json:"isHd,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1184,6 +1184,13 @@ func (x *VideoTransport_Ancillary) GetAccessibilityLabel() string { return "" } +func (x *VideoTransport_Ancillary) GetIsHd() bool { + if x != nil && x.IsHd != nil { + return *x.IsHd + } + return false +} + type VideoTransport_Integral struct { state protoimpl.MessageState `protogen:"open.v1"` Transport *WAMediaTransport `protobuf:"bytes,1,opt,name=transport" json:"transport,omitempty"` @@ -1860,17 +1867,164 @@ func (*ContactTransport_Integral_DownloadableVcard) isContactTransport_Integral_ var File_waMediaTransport_WAMediaTransport_proto protoreflect.FileDescriptor -//go:embed WAMediaTransport.pb.raw -var file_waMediaTransport_WAMediaTransport_proto_rawDesc []byte +const file_waMediaTransport_WAMediaTransport_proto_rawDesc = "" + + "\n" + + "'waMediaTransport/WAMediaTransport.proto\x12\x10WAMediaTransport\x1a\x17waCommon/WACommon.proto\"\xfb\b\n" + + "\x10WAMediaTransport\x12G\n" + + "\bintegral\x18\x01 \x01(\v2+.WAMediaTransport.WAMediaTransport.IntegralR\bintegral\x12J\n" + + "\tancillary\x18\x02 \x01(\v2,.WAMediaTransport.WAMediaTransport.AncillaryR\tancillary\x1a\x94\x06\n" + + "\tAncillary\x12\x1e\n" + + "\n" + + "fileLength\x18\x01 \x01(\x04R\n" + + "fileLength\x12\x1a\n" + + "\bmimetype\x18\x02 \x01(\tR\bmimetype\x12T\n" + + "\tthumbnail\x18\x03 \x01(\v26.WAMediaTransport.WAMediaTransport.Ancillary.ThumbnailR\tthumbnail\x12\x1a\n" + + "\bobjectID\x18\x04 \x01(\tR\bobjectID\x1a\xd8\x04\n" + + "\tThumbnail\x12$\n" + + "\rJPEGThumbnail\x18\x01 \x01(\fR\rJPEGThumbnail\x12\x82\x01\n" + + "\x15downloadableThumbnail\x18\x02 \x01(\v2L.WAMediaTransport.WAMediaTransport.Ancillary.Thumbnail.DownloadableThumbnailR\x15downloadableThumbnail\x12&\n" + + "\x0ethumbnailWidth\x18\x03 \x01(\rR\x0ethumbnailWidth\x12(\n" + + "\x0fthumbnailHeight\x18\x04 \x01(\rR\x0fthumbnailHeight\x1a\xcd\x02\n" + + "\x15DownloadableThumbnail\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x01 \x01(\fR\n" + + "fileSHA256\x12$\n" + + "\rfileEncSHA256\x18\x02 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x03 \x01(\tR\n" + + "directPath\x12\x1a\n" + + "\bmediaKey\x18\x04 \x01(\fR\bmediaKey\x12,\n" + + "\x11mediaKeyTimestamp\x18\x05 \x01(\x03R\x11mediaKeyTimestamp\x12\x1a\n" + + "\bobjectID\x18\x06 \x01(\tR\bobjectID\x124\n" + + "\x15thumbnailScansSidecar\x18\a \x01(\fR\x15thumbnailScansSidecar\x122\n" + + "\x14thumbnailScanLengths\x18\b \x03(\rR\x14thumbnailScanLengths\x1a\xba\x01\n" + + "\bIntegral\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x01 \x01(\fR\n" + + "fileSHA256\x12\x1a\n" + + "\bmediaKey\x18\x02 \x01(\fR\bmediaKey\x12$\n" + + "\rfileEncSHA256\x18\x03 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x04 \x01(\tR\n" + + "directPath\x12,\n" + + "\x11mediaKeyTimestamp\x18\x05 \x01(\x03R\x11mediaKeyTimestamp\"\x88\x05\n" + + "\x0eImageTransport\x12E\n" + + "\bintegral\x18\x01 \x01(\v2).WAMediaTransport.ImageTransport.IntegralR\bintegral\x12H\n" + + "\tancillary\x18\x02 \x01(\v2*.WAMediaTransport.ImageTransport.AncillaryR\tancillary\x1a\x96\x03\n" + + "\tAncillary\x12\x16\n" + + "\x06height\x18\x01 \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\x02 \x01(\rR\x05width\x12\"\n" + + "\fscansSidecar\x18\x03 \x01(\fR\fscansSidecar\x12 \n" + + "\vscanLengths\x18\x04 \x03(\rR\vscanLengths\x122\n" + + "\x14midQualityFileSHA256\x18\x05 \x01(\fR\x14midQualityFileSHA256\x12I\n" + + "\x06hdType\x18\x06 \x01(\x0e21.WAMediaTransport.ImageTransport.Ancillary.HdTypeR\x06hdType\x128\n" + + "\x15memoriesConceptScores\x18\a \x03(\x02B\x02\x10\x01R\x15memoriesConceptScores\x122\n" + + "\x12memoriesConceptIDs\x18\b \x03(\rB\x02\x10\x01R\x12memoriesConceptIDs\"(\n" + + "\x06HdType\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05LQ_4K\x10\x01\x12\t\n" + + "\x05HQ_4K\x10\x02\x1aL\n" + + "\bIntegral\x12@\n" + + "\ttransport\x18\x01 \x01(\v2\".WAMediaTransport.WAMediaTransportR\ttransport\"\x85\x05\n" + + "\x0eVideoTransport\x12E\n" + + "\bintegral\x18\x01 \x01(\v2).WAMediaTransport.VideoTransport.IntegralR\bintegral\x12H\n" + + "\tancillary\x18\x02 \x01(\v2*.WAMediaTransport.VideoTransport.AncillaryR\tancillary\x1a\x93\x03\n" + + "\tAncillary\x12\x18\n" + + "\aseconds\x18\x01 \x01(\rR\aseconds\x12/\n" + + "\acaption\x18\x02 \x01(\v2\x15.WACommon.MessageTextR\acaption\x12 \n" + + "\vgifPlayback\x18\x03 \x01(\bR\vgifPlayback\x12\x16\n" + + "\x06height\x18\x04 \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\x05 \x01(\rR\x05width\x12\x18\n" + + "\asidecar\x18\x06 \x01(\fR\asidecar\x12^\n" + + "\x0egifAttribution\x18\a \x01(\x0e26.WAMediaTransport.VideoTransport.Ancillary.AttributionR\x0egifAttribution\x12.\n" + + "\x12accessibilityLabel\x18\b \x01(\tR\x12accessibilityLabel\x12\x12\n" + + "\x04isHd\x18\t \x01(\bR\x04isHd\"-\n" + + "\vAttribution\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05GIPHY\x10\x01\x12\t\n" + + "\x05TENOR\x10\x02\x1aL\n" + + "\bIntegral\x12@\n" + + "\ttransport\x18\x01 \x01(\v2\".WAMediaTransport.WAMediaTransportR\ttransport\"\xce\b\n" + + "\x0eAudioTransport\x12E\n" + + "\bintegral\x18\x01 \x01(\v2).WAMediaTransport.AudioTransport.IntegralR\bintegral\x12H\n" + + "\tancillary\x18\x02 \x01(\v2*.WAMediaTransport.AudioTransport.AncillaryR\tancillary\x1a\xdc\x05\n" + + "\tAncillary\x12\x18\n" + + "\aseconds\x18\x01 \x01(\rR\aseconds\x12X\n" + + "\vavatarAudio\x18\x02 \x01(\v26.WAMediaTransport.AudioTransport.Ancillary.AvatarAudioR\vavatarAudio\x1a\xda\x04\n" + + "\vAvatarAudio\x12\x16\n" + + "\x06poseID\x18\x01 \x01(\rR\x06poseID\x12\x7f\n" + + "\x10avatarAnimations\x18\x02 \x03(\v2S.WAMediaTransport.AudioTransport.Ancillary.AvatarAudio.DownloadableAvatarAnimationsR\x10avatarAnimations\x1a\xd9\x02\n" + + "\x1cDownloadableAvatarAnimations\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x01 \x01(\fR\n" + + "fileSHA256\x12$\n" + + "\rfileEncSHA256\x18\x02 \x01(\fR\rfileEncSHA256\x12\x1e\n" + + "\n" + + "directPath\x18\x03 \x01(\tR\n" + + "directPath\x12\x1a\n" + + "\bmediaKey\x18\x04 \x01(\fR\bmediaKey\x12,\n" + + "\x11mediaKeyTimestamp\x18\x05 \x01(\x03R\x11mediaKeyTimestamp\x12\x1a\n" + + "\bobjectID\x18\x06 \x01(\tR\bobjectID\x12m\n" + + "\x0eanimationsType\x18\a \x01(\x0e2E.WAMediaTransport.AudioTransport.Ancillary.AvatarAudio.AnimationsTypeR\x0eanimationsType\"V\n" + + "\x0eAnimationsType\x12\r\n" + + "\tTALKING_A\x10\x00\x12\n" + + "\n" + + "\x06IDLE_A\x10\x01\x12\r\n" + + "\tTALKING_B\x10\x02\x12\n" + + "\n" + + "\x06IDLE_B\x10\x03\x12\x0e\n" + + "\n" + + "BACKGROUND\x10\x04\x1a\xcb\x01\n" + + "\bIntegral\x12@\n" + + "\ttransport\x18\x01 \x01(\v2\".WAMediaTransport.WAMediaTransportR\ttransport\x12W\n" + + "\vaudioFormat\x18\x02 \x01(\x0e25.WAMediaTransport.AudioTransport.Integral.AudioFormatR\vaudioFormat\"$\n" + + "\vAudioFormat\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\b\n" + + "\x04OPUS\x10\x01\"\xa3\x02\n" + + "\x11DocumentTransport\x12H\n" + + "\bintegral\x18\x01 \x01(\v2,.WAMediaTransport.DocumentTransport.IntegralR\bintegral\x12K\n" + + "\tancillary\x18\x02 \x01(\v2-.WAMediaTransport.DocumentTransport.AncillaryR\tancillary\x1a)\n" + + "\tAncillary\x12\x1c\n" + + "\tpageCount\x18\x01 \x01(\rR\tpageCount\x1aL\n" + + "\bIntegral\x12@\n" + + "\ttransport\x18\x01 \x01(\v2\".WAMediaTransport.WAMediaTransportR\ttransport\"\x96\x05\n" + + "\x10StickerTransport\x12G\n" + + "\bintegral\x18\x01 \x01(\v2+.WAMediaTransport.StickerTransport.IntegralR\bintegral\x12J\n" + + "\tancillary\x18\x02 \x01(\v2,.WAMediaTransport.StickerTransport.AncillaryR\tancillary\x1a\xd3\x02\n" + + "\tAncillary\x12\x1c\n" + + "\tpageCount\x18\x01 \x01(\rR\tpageCount\x12\x16\n" + + "\x06height\x18\x02 \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\x03 \x01(\rR\x05width\x12*\n" + + "\x10firstFrameLength\x18\x04 \x01(\rR\x10firstFrameLength\x12,\n" + + "\x11firstFrameSidecar\x18\x05 \x01(\fR\x11firstFrameSidecar\x12\"\n" + + "\fmustacheText\x18\x06 \x01(\tR\fmustacheText\x12\"\n" + + "\fisThirdParty\x18\a \x01(\bR\fisThirdParty\x12(\n" + + "\x0freceiverFetchID\x18\b \x01(\tR\x0freceiverFetchID\x12.\n" + + "\x12accessibilityLabel\x18\t \x01(\tR\x12accessibilityLabel\x1a\x96\x01\n" + + "\bIntegral\x12@\n" + + "\ttransport\x18\x01 \x01(\v2\".WAMediaTransport.WAMediaTransportR\ttransport\x12\x1e\n" + + "\n" + + "isAnimated\x18\x02 \x01(\bR\n" + + "isAnimated\x12(\n" + + "\x0freceiverFetchID\x18\x03 \x01(\tR\x0freceiverFetchID\"\xda\x02\n" + + "\x10ContactTransport\x12G\n" + + "\bintegral\x18\x01 \x01(\v2+.WAMediaTransport.ContactTransport.IntegralR\bintegral\x12J\n" + + "\tancillary\x18\x02 \x01(\v2,.WAMediaTransport.ContactTransport.AncillaryR\tancillary\x1a-\n" + + "\tAncillary\x12 \n" + + "\vdisplayName\x18\x01 \x01(\tR\vdisplayName\x1a\x81\x01\n" + + "\bIntegral\x12\x16\n" + + "\x05vcard\x18\x01 \x01(\tH\x00R\x05vcard\x12R\n" + + "\x11downloadableVcard\x18\x02 \x01(\v2\".WAMediaTransport.WAMediaTransportH\x00R\x11downloadableVcardB\t\n" + + "\acontactB,Z*github.com/techwiz37/waSocket/proto/waMediaTransport" var ( file_waMediaTransport_WAMediaTransport_proto_rawDescOnce sync.Once - file_waMediaTransport_WAMediaTransport_proto_rawDescData = file_waMediaTransport_WAMediaTransport_proto_rawDesc + file_waMediaTransport_WAMediaTransport_proto_rawDescData []byte ) func file_waMediaTransport_WAMediaTransport_proto_rawDescGZIP() []byte { file_waMediaTransport_WAMediaTransport_proto_rawDescOnce.Do(func() { - file_waMediaTransport_WAMediaTransport_proto_rawDescData = protoimpl.X.CompressGZIP(file_waMediaTransport_WAMediaTransport_proto_rawDescData) + file_waMediaTransport_WAMediaTransport_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waMediaTransport_WAMediaTransport_proto_rawDesc), len(file_waMediaTransport_WAMediaTransport_proto_rawDesc))) }) return file_waMediaTransport_WAMediaTransport_proto_rawDescData } @@ -1959,7 +2113,7 @@ func file_waMediaTransport_WAMediaTransport_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waMediaTransport_WAMediaTransport_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waMediaTransport_WAMediaTransport_proto_rawDesc), len(file_waMediaTransport_WAMediaTransport_proto_rawDesc)), NumEnums: 4, NumMessages: 25, NumExtensions: 0, @@ -1971,7 +2125,6 @@ func file_waMediaTransport_WAMediaTransport_proto_init() { MessageInfos: file_waMediaTransport_WAMediaTransport_proto_msgTypes, }.Build() File_waMediaTransport_WAMediaTransport_proto = out.File - file_waMediaTransport_WAMediaTransport_proto_rawDesc = nil file_waMediaTransport_WAMediaTransport_proto_goTypes = nil file_waMediaTransport_WAMediaTransport_proto_depIdxs = nil } diff --git a/proto/waMediaTransport/WAMediaTransport.pb.raw b/proto/waMediaTransport/WAMediaTransport.pb.raw deleted file mode 100644 index 5d142f62..00000000 Binary files a/proto/waMediaTransport/WAMediaTransport.pb.raw and /dev/null differ diff --git a/proto/waMediaTransport/WAMediaTransport.proto b/proto/waMediaTransport/WAMediaTransport.proto index 22f782e8..e4a3f0c1 100644 --- a/proto/waMediaTransport/WAMediaTransport.proto +++ b/proto/waMediaTransport/WAMediaTransport.proto @@ -84,6 +84,7 @@ message VideoTransport { optional bytes sidecar = 6; optional Attribution gifAttribution = 7; optional string accessibilityLabel = 8; + optional bool isHd = 9; } message Integral { diff --git a/proto/waMmsRetry/WAMmsRetry.pb.go b/proto/waMmsRetry/WAMmsRetry.pb.go index c1e49d13..2e00002c 100644 --- a/proto/waMmsRetry/WAMmsRetry.pb.go +++ b/proto/waMmsRetry/WAMmsRetry.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waMmsRetry/WAMmsRetry.proto @@ -9,11 +9,10 @@ package waMmsRetry import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -199,17 +198,34 @@ func (x *ServerErrorReceipt) GetStanzaID() string { var File_waMmsRetry_WAMmsRetry_proto protoreflect.FileDescriptor -//go:embed WAMmsRetry.pb.raw -var file_waMmsRetry_WAMmsRetry_proto_rawDesc []byte +const file_waMmsRetry_WAMmsRetry_proto_rawDesc = "" + + "\n" + + "\x1bwaMmsRetry/WAMmsRetry.proto\x12\n" + + "WAMmsRetry\"\x94\x02\n" + + "\x16MediaRetryNotification\x12\x1a\n" + + "\bstanzaID\x18\x01 \x01(\tR\bstanzaID\x12\x1e\n" + + "\n" + + "directPath\x18\x02 \x01(\tR\n" + + "directPath\x12E\n" + + "\x06result\x18\x03 \x01(\x0e2-.WAMmsRetry.MediaRetryNotification.ResultTypeR\x06result\x12$\n" + + "\rmessageSecret\x18\x04 \x01(\fR\rmessageSecret\"Q\n" + + "\n" + + "ResultType\x12\x11\n" + + "\rGENERAL_ERROR\x10\x00\x12\v\n" + + "\aSUCCESS\x10\x01\x12\r\n" + + "\tNOT_FOUND\x10\x02\x12\x14\n" + + "\x10DECRYPTION_ERROR\x10\x03\"0\n" + + "\x12ServerErrorReceipt\x12\x1a\n" + + "\bstanzaID\x18\x01 \x01(\tR\bstanzaIDB&Z$github.com/techwiz37/waSocket/proto/waMmsRetry" var ( file_waMmsRetry_WAMmsRetry_proto_rawDescOnce sync.Once - file_waMmsRetry_WAMmsRetry_proto_rawDescData = file_waMmsRetry_WAMmsRetry_proto_rawDesc + file_waMmsRetry_WAMmsRetry_proto_rawDescData []byte ) func file_waMmsRetry_WAMmsRetry_proto_rawDescGZIP() []byte { file_waMmsRetry_WAMmsRetry_proto_rawDescOnce.Do(func() { - file_waMmsRetry_WAMmsRetry_proto_rawDescData = protoimpl.X.CompressGZIP(file_waMmsRetry_WAMmsRetry_proto_rawDescData) + file_waMmsRetry_WAMmsRetry_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waMmsRetry_WAMmsRetry_proto_rawDesc), len(file_waMmsRetry_WAMmsRetry_proto_rawDesc))) }) return file_waMmsRetry_WAMmsRetry_proto_rawDescData } @@ -239,7 +255,7 @@ func file_waMmsRetry_WAMmsRetry_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waMmsRetry_WAMmsRetry_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waMmsRetry_WAMmsRetry_proto_rawDesc), len(file_waMmsRetry_WAMmsRetry_proto_rawDesc)), NumEnums: 1, NumMessages: 2, NumExtensions: 0, @@ -251,7 +267,6 @@ func file_waMmsRetry_WAMmsRetry_proto_init() { MessageInfos: file_waMmsRetry_WAMmsRetry_proto_msgTypes, }.Build() File_waMmsRetry_WAMmsRetry_proto = out.File - file_waMmsRetry_WAMmsRetry_proto_rawDesc = nil file_waMmsRetry_WAMmsRetry_proto_goTypes = nil file_waMmsRetry_WAMmsRetry_proto_depIdxs = nil } diff --git a/proto/waMmsRetry/WAMmsRetry.pb.raw b/proto/waMmsRetry/WAMmsRetry.pb.raw deleted file mode 100644 index 5b03434f..00000000 Binary files a/proto/waMmsRetry/WAMmsRetry.pb.raw and /dev/null differ diff --git a/proto/waMsgApplication/WAMsgApplication.pb.go b/proto/waMsgApplication/WAMsgApplication.pb.go index 36113f1b..18548e24 100644 --- a/proto/waMsgApplication/WAMsgApplication.pb.go +++ b/proto/waMsgApplication/WAMsgApplication.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waMsgApplication/WAMsgApplication.proto @@ -9,13 +9,12 @@ package waMsgApplication import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waCommon "github.com/techwiz37/waSocket/proto/waCommon" - - _ "embed" ) const ( @@ -980,17 +979,87 @@ func (x *MessageApplication_Metadata_EphemeralSettingMap) GetEphemeralSetting() var File_waMsgApplication_WAMsgApplication_proto protoreflect.FileDescriptor -//go:embed WAMsgApplication.pb.raw -var file_waMsgApplication_WAMsgApplication_proto_rawDesc []byte +const file_waMsgApplication_WAMsgApplication_proto_rawDesc = "" + + "\n" + + "'waMsgApplication/WAMsgApplication.proto\x12\x10WAMsgApplication\x1a\x17waCommon/WACommon.proto\"\x8e\x16\n" + + "\x12MessageApplication\x12F\n" + + "\apayload\x18\x01 \x01(\v2,.WAMsgApplication.MessageApplication.PayloadR\apayload\x12I\n" + + "\bmetadata\x18\x02 \x01(\v2-.WAMsgApplication.MessageApplication.MetadataR\bmetadata\x1a\xe7\n" + + "\n" + + "\bMetadata\x12k\n" + + "\x14chatEphemeralSetting\x18\x01 \x01(\v25.WAMsgApplication.MessageApplication.EphemeralSettingH\x00R\x14chatEphemeralSetting\x12w\n" + + "\x14ephemeralSettingList\x18\x02 \x01(\v2A.WAMsgApplication.MessageApplication.Metadata.EphemeralSettingMapH\x00R\x14ephemeralSettingList\x126\n" + + "\x15ephemeralSharedSecret\x18\x03 \x01(\fH\x00R\x15ephemeralSharedSecret\x12(\n" + + "\x0fforwardingScore\x18\x05 \x01(\rR\x0fforwardingScore\x12 \n" + + "\visForwarded\x18\x06 \x01(\bR\visForwarded\x12A\n" + + "\x10businessMetadata\x18\a \x01(\v2\x15.WACommon.SubProtocolR\x10businessMetadata\x12 \n" + + "\vfrankingKey\x18\b \x01(\fR\vfrankingKey\x12(\n" + + "\x0ffrankingVersion\x18\t \x01(\x05R\x0ffrankingVersion\x12a\n" + + "\rquotedMessage\x18\n" + + " \x01(\v2;.WAMsgApplication.MessageApplication.Metadata.QuotedMessageR\rquotedMessage\x12X\n" + + "\n" + + "threadType\x18\v \x01(\x0e28.WAMsgApplication.MessageApplication.Metadata.ThreadTypeR\n" + + "threadType\x12<\n" + + "\x19readonlyMetadataDataclass\x18\f \x01(\tR\x19readonlyMetadataDataclass\x12\x18\n" + + "\agroupID\x18\r \x01(\tR\agroupID\x12\x1c\n" + + "\tgroupSize\x18\x0e \x01(\rR\tgroupSize\x12\x1e\n" + + "\n" + + "groupIndex\x18\x0f \x01(\rR\n" + + "groupIndex\x12$\n" + + "\rbotResponseID\x18\x10 \x01(\tR\rbotResponseID\x12$\n" + + "\rcollapsibleID\x18\x11 \x01(\tR\rcollapsibleID\x12$\n" + + "\rsecondaryOtid\x18\x12 \x01(\tR\rsecondaryOtid\x1a\xb3\x01\n" + + "\rQuotedMessage\x12\x1a\n" + + "\bstanzaID\x18\x01 \x01(\tR\bstanzaID\x12\x1c\n" + + "\tremoteJID\x18\x02 \x01(\tR\tremoteJID\x12 \n" + + "\vparticipant\x18\x03 \x01(\tR\vparticipant\x12F\n" + + "\apayload\x18\x04 \x01(\v2,.WAMsgApplication.MessageApplication.PayloadR\apayload\x1a\x92\x01\n" + + "\x13EphemeralSettingMap\x12\x18\n" + + "\achatJID\x18\x01 \x01(\tR\achatJID\x12a\n" + + "\x10ephemeralSetting\x18\x02 \x01(\v25.WAMsgApplication.MessageApplication.EphemeralSettingR\x10ephemeralSetting\"E\n" + + "\n" + + "ThreadType\x12\v\n" + + "\aDEFAULT\x10\x00\x12\x0f\n" + + "\vVANISH_MODE\x10\x01\x12\x19\n" + + "\x15DISAPPEARING_MESSAGES\x10\x02B\v\n" + + "\tephemeral\x1a\xec\x02\n" + + "\aPayload\x12P\n" + + "\vcoreContent\x18\x01 \x01(\v2,.WAMsgApplication.MessageApplication.ContentH\x00R\vcoreContent\x12E\n" + + "\x06signal\x18\x02 \x01(\v2+.WAMsgApplication.MessageApplication.SignalH\x00R\x06signal\x12`\n" + + "\x0fapplicationData\x18\x03 \x01(\v24.WAMsgApplication.MessageApplication.ApplicationDataH\x00R\x0fapplicationData\x12[\n" + + "\vsubProtocol\x18\x04 \x01(\v27.WAMsgApplication.MessageApplication.SubProtocolPayloadH\x00R\vsubProtocolB\t\n" + + "\acontent\x1a\xca\x03\n" + + "\x12SubProtocolPayload\x12A\n" + + "\x0fconsumerMessage\x18\x02 \x01(\v2\x15.WACommon.SubProtocolH\x00R\x0fconsumerMessage\x12A\n" + + "\x0fbusinessMessage\x18\x03 \x01(\v2\x15.WACommon.SubProtocolH\x00R\x0fbusinessMessage\x12?\n" + + "\x0epaymentMessage\x18\x04 \x01(\v2\x15.WACommon.SubProtocolH\x00R\x0epaymentMessage\x129\n" + + "\vmultiDevice\x18\x05 \x01(\v2\x15.WACommon.SubProtocolH\x00R\vmultiDevice\x12+\n" + + "\x04voip\x18\x06 \x01(\v2\x15.WACommon.SubProtocolH\x00R\x04voip\x125\n" + + "\tarmadillo\x18\a \x01(\v2\x15.WACommon.SubProtocolH\x00R\tarmadillo\x12?\n" + + "\vfutureProof\x18\x01 \x01(\x0e2\x1d.WACommon.FutureProofBehaviorR\vfutureProofB\r\n" + + "\vsubProtocol\x1a\x11\n" + + "\x0fApplicationData\x1a\b\n" + + "\x06Signal\x1a\t\n" + + "\aContent\x1a\x96\x03\n" + + "\x10EphemeralSetting\x120\n" + + "\x13ephemeralExpiration\x18\x02 \x01(\rR\x13ephemeralExpiration\x12<\n" + + "\x19ephemeralSettingTimestamp\x18\x03 \x01(\x03R\x19ephemeralSettingTimestamp\x12r\n" + + "\x10ephemeralityType\x18\x05 \x01(\x0e2F.WAMsgApplication.MessageApplication.EphemeralSetting.EphemeralityTypeR\x10ephemeralityType\x128\n" + + "\x17isEphemeralSettingReset\x18\x04 \x01(\bR\x17isEphemeralSettingReset\"d\n" + + "\x10EphemeralityType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\r\n" + + "\tSEEN_ONCE\x10\x01\x12\x19\n" + + "\x15SEEN_BASED_WITH_TIMER\x10\x02\x12\x19\n" + + "\x15SEND_BASED_WITH_TIMER\x10\x03B,Z*github.com/techwiz37/waSocket/proto/waMsgApplication" var ( file_waMsgApplication_WAMsgApplication_proto_rawDescOnce sync.Once - file_waMsgApplication_WAMsgApplication_proto_rawDescData = file_waMsgApplication_WAMsgApplication_proto_rawDesc + file_waMsgApplication_WAMsgApplication_proto_rawDescData []byte ) func file_waMsgApplication_WAMsgApplication_proto_rawDescGZIP() []byte { file_waMsgApplication_WAMsgApplication_proto_rawDescOnce.Do(func() { - file_waMsgApplication_WAMsgApplication_proto_rawDescData = protoimpl.X.CompressGZIP(file_waMsgApplication_WAMsgApplication_proto_rawDescData) + file_waMsgApplication_WAMsgApplication_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waMsgApplication_WAMsgApplication_proto_rawDesc), len(file_waMsgApplication_WAMsgApplication_proto_rawDesc))) }) return file_waMsgApplication_WAMsgApplication_proto_rawDescData } @@ -1070,7 +1139,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waMsgApplication_WAMsgApplication_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waMsgApplication_WAMsgApplication_proto_rawDesc), len(file_waMsgApplication_WAMsgApplication_proto_rawDesc)), NumEnums: 2, NumMessages: 10, NumExtensions: 0, @@ -1082,7 +1151,6 @@ func file_waMsgApplication_WAMsgApplication_proto_init() { MessageInfos: file_waMsgApplication_WAMsgApplication_proto_msgTypes, }.Build() File_waMsgApplication_WAMsgApplication_proto = out.File - file_waMsgApplication_WAMsgApplication_proto_rawDesc = nil file_waMsgApplication_WAMsgApplication_proto_goTypes = nil file_waMsgApplication_WAMsgApplication_proto_depIdxs = nil } diff --git a/proto/waMsgApplication/WAMsgApplication.pb.raw b/proto/waMsgApplication/WAMsgApplication.pb.raw deleted file mode 100644 index f0d89b2c..00000000 Binary files a/proto/waMsgApplication/WAMsgApplication.pb.raw and /dev/null differ diff --git a/proto/waMsgTransport/WAMsgTransport.pb.go b/proto/waMsgTransport/WAMsgTransport.pb.go index 07a67371..61f6d084 100644 --- a/proto/waMsgTransport/WAMsgTransport.pb.go +++ b/proto/waMsgTransport/WAMsgTransport.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waMsgTransport/WAMsgTransport.proto @@ -9,13 +9,12 @@ package waMsgTransport import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waCommon "github.com/techwiz37/waSocket/proto/waCommon" - - _ "embed" ) const ( @@ -726,17 +725,70 @@ func (x *MessageTransport_Protocol_Integral_DeviceSentMessage) GetPhash() string var File_waMsgTransport_WAMsgTransport_proto protoreflect.FileDescriptor -//go:embed WAMsgTransport.pb.raw -var file_waMsgTransport_WAMsgTransport_proto_rawDesc []byte +const file_waMsgTransport_WAMsgTransport_proto_rawDesc = "" + + "\n" + + "#waMsgTransport/WAMsgTransport.proto\x12\x0eWAMsgTransport\x1a\x17waCommon/WACommon.proto\"\x8b\x10\n" + + "\x10MessageTransport\x12B\n" + + "\apayload\x18\x01 \x01(\v2(.WAMsgTransport.MessageTransport.PayloadR\apayload\x12E\n" + + "\bprotocol\x18\x02 \x01(\v2).WAMsgTransport.MessageTransport.ProtocolR\bprotocol\x1a\x91\x01\n" + + "\aPayload\x12E\n" + + "\x12applicationPayload\x18\x01 \x01(\v2\x15.WACommon.SubProtocolR\x12applicationPayload\x12?\n" + + "\vfutureProof\x18\x03 \x01(\x0e2\x1d.WACommon.FutureProofBehaviorR\vfutureProof\x1a\xd7\r\n" + + "\bProtocol\x12N\n" + + "\bintegral\x18\x01 \x01(\v22.WAMsgTransport.MessageTransport.Protocol.IntegralR\bintegral\x12Q\n" + + "\tancillary\x18\x02 \x01(\v23.WAMsgTransport.MessageTransport.Protocol.AncillaryR\tancillary\x1a\xd5\n" + + "\n" + + "\tAncillary\x12d\n" + + "\x04skdm\x18\x02 \x01(\v2P.WAMsgTransport.MessageTransport.Protocol.Ancillary.SenderKeyDistributionMessageR\x04skdm\x12R\n" + + "\x12deviceListMetadata\x18\x03 \x01(\v2\".WAMsgTransport.DeviceListMetadataR\x12deviceListMetadata\x12^\n" + + "\x04icdc\x18\x04 \x01(\v2J.WAMsgTransport.MessageTransport.Protocol.Ancillary.ICDCParticipantDevicesR\x04icdc\x12m\n" + + "\x0fbackupDirective\x18\x05 \x01(\v2C.WAMsgTransport.MessageTransport.Protocol.Ancillary.BackupDirectiveR\x0fbackupDirective\x1a\x90\x02\n" + + "\x0fBackupDirective\x12\x1c\n" + + "\tmessageID\x18\x01 \x01(\tR\tmessageID\x12n\n" + + "\n" + + "actionType\x18\x02 \x01(\x0e2N.WAMsgTransport.MessageTransport.Protocol.Ancillary.BackupDirective.ActionTypeR\n" + + "actionType\x12(\n" + + "\x0fsupplementalKey\x18\x03 \x01(\tR\x0fsupplementalKey\"E\n" + + "\n" + + "ActionType\x12\b\n" + + "\x04NOOP\x10\x00\x12\n" + + "\n" + + "\x06UPSERT\x10\x01\x12\n" + + "\n" + + "\x06DELETE\x10\x02\x12\x15\n" + + "\x11UPSERT_AND_DELETE\x10\x03\x1a\x9e\x04\n" + + "\x16ICDCParticipantDevices\x12\x8e\x01\n" + + "\x0esenderIdentity\x18\x01 \x01(\v2f.WAMsgTransport.MessageTransport.Protocol.Ancillary.ICDCParticipantDevices.ICDCIdentityListDescriptionR\x0esenderIdentity\x12\x98\x01\n" + + "\x13recipientIdentities\x18\x02 \x03(\v2f.WAMsgTransport.MessageTransport.Protocol.Ancillary.ICDCParticipantDevices.ICDCIdentityListDescriptionR\x13recipientIdentities\x12,\n" + + "\x11recipientUserJIDs\x18\x03 \x03(\tR\x11recipientUserJIDs\x1a\xa9\x01\n" + + "\x1bICDCIdentityListDescription\x12\x10\n" + + "\x03seq\x18\x01 \x01(\x05R\x03seq\x12$\n" + + "\rsigningDevice\x18\x02 \x01(\fR\rsigningDevice\x12&\n" + + "\x0eunknownDevices\x18\x03 \x03(\fR\x0eunknownDevices\x12*\n" + + "\x10unknownDeviceIDs\x18\x04 \x03(\x05R\x10unknownDeviceIDs\x1a\x8a\x01\n" + + "\x1cSenderKeyDistributionMessage\x12\x18\n" + + "\agroupID\x18\x01 \x01(\tR\agroupID\x12P\n" + + "#axolotlSenderKeyDistributionMessage\x18\x02 \x01(\fR#axolotlSenderKeyDistributionMessage\x1a\xcf\x01\n" + + "\bIntegral\x12\x18\n" + + "\apadding\x18\x01 \x01(\fR\apadding\x12V\n" + + "\x03DSM\x18\x02 \x01(\v2D.WAMsgTransport.MessageTransport.Protocol.Integral.DeviceSentMessageR\x03DSM\x1aQ\n" + + "\x11DeviceSentMessage\x12&\n" + + "\x0edestinationJID\x18\x01 \x01(\tR\x0edestinationJID\x12\x14\n" + + "\x05phash\x18\x02 \x01(\tR\x05phash\"\xc0\x01\n" + + "\x12DeviceListMetadata\x12$\n" + + "\rsenderKeyHash\x18\x01 \x01(\fR\rsenderKeyHash\x12(\n" + + "\x0fsenderTimestamp\x18\x02 \x01(\x04R\x0fsenderTimestamp\x12*\n" + + "\x10recipientKeyHash\x18\b \x01(\fR\x10recipientKeyHash\x12.\n" + + "\x12recipientTimestamp\x18\t \x01(\x04R\x12recipientTimestampB*Z(github.com/techwiz37/waSocket/proto/waMsgTransport" var ( file_waMsgTransport_WAMsgTransport_proto_rawDescOnce sync.Once - file_waMsgTransport_WAMsgTransport_proto_rawDescData = file_waMsgTransport_WAMsgTransport_proto_rawDesc + file_waMsgTransport_WAMsgTransport_proto_rawDescData []byte ) func file_waMsgTransport_WAMsgTransport_proto_rawDescGZIP() []byte { file_waMsgTransport_WAMsgTransport_proto_rawDescOnce.Do(func() { - file_waMsgTransport_WAMsgTransport_proto_rawDescData = protoimpl.X.CompressGZIP(file_waMsgTransport_WAMsgTransport_proto_rawDescData) + file_waMsgTransport_WAMsgTransport_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waMsgTransport_WAMsgTransport_proto_rawDesc), len(file_waMsgTransport_WAMsgTransport_proto_rawDesc))) }) return file_waMsgTransport_WAMsgTransport_proto_rawDescData } @@ -790,7 +842,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waMsgTransport_WAMsgTransport_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waMsgTransport_WAMsgTransport_proto_rawDesc), len(file_waMsgTransport_WAMsgTransport_proto_rawDesc)), NumEnums: 1, NumMessages: 11, NumExtensions: 0, @@ -802,7 +854,6 @@ func file_waMsgTransport_WAMsgTransport_proto_init() { MessageInfos: file_waMsgTransport_WAMsgTransport_proto_msgTypes, }.Build() File_waMsgTransport_WAMsgTransport_proto = out.File - file_waMsgTransport_WAMsgTransport_proto_rawDesc = nil file_waMsgTransport_WAMsgTransport_proto_goTypes = nil file_waMsgTransport_WAMsgTransport_proto_depIdxs = nil } diff --git a/proto/waMsgTransport/WAMsgTransport.pb.raw b/proto/waMsgTransport/WAMsgTransport.pb.raw deleted file mode 100644 index befef488..00000000 Binary files a/proto/waMsgTransport/WAMsgTransport.pb.raw and /dev/null differ diff --git a/proto/waMultiDevice/WAMultiDevice.pb.go b/proto/waMultiDevice/WAMultiDevice.pb.go index beb278b2..c2996ee5 100644 --- a/proto/waMultiDevice/WAMultiDevice.pb.go +++ b/proto/waMultiDevice/WAMultiDevice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waMultiDevice/WAMultiDevice.proto @@ -9,11 +9,10 @@ package waMultiDevice import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -620,17 +619,49 @@ func (x *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStat var File_waMultiDevice_WAMultiDevice_proto protoreflect.FileDescriptor -//go:embed WAMultiDevice.pb.raw -var file_waMultiDevice_WAMultiDevice_proto_rawDesc []byte +const file_waMultiDevice_WAMultiDevice_proto_rawDesc = "" + + "\n" + + "!waMultiDevice/WAMultiDevice.proto\x12\rWAMultiDevice\"\xbc\v\n" + + "\vMultiDevice\x12<\n" + + "\apayload\x18\x01 \x01(\v2\".WAMultiDevice.MultiDevice.PayloadR\apayload\x12?\n" + + "\bmetadata\x18\x02 \x01(\v2#.WAMultiDevice.MultiDevice.MetadataR\bmetadata\x1a\n" + + "\n" + + "\bMetadata\x1a\xa9\x01\n" + + "\aPayload\x12V\n" + + "\x0fapplicationData\x18\x01 \x01(\v2*.WAMultiDevice.MultiDevice.ApplicationDataH\x00R\x0fapplicationData\x12;\n" + + "\x06signal\x18\x02 \x01(\v2!.WAMultiDevice.MultiDevice.SignalH\x00R\x06signalB\t\n" + + "\apayload\x1a\xeb\b\n" + + "\x0fApplicationData\x12|\n" + + "\x14appStateSyncKeyShare\x18\x01 \x01(\v2F.WAMultiDevice.MultiDevice.ApplicationData.AppStateSyncKeyShareMessageH\x00R\x14appStateSyncKeyShare\x12\x82\x01\n" + + "\x16appStateSyncKeyRequest\x18\x02 \x01(\v2H.WAMultiDevice.MultiDevice.ApplicationData.AppStateSyncKeyRequestMessageH\x00R\x16appStateSyncKeyRequest\x1au\n" + + "\x1dAppStateSyncKeyRequestMessage\x12T\n" + + "\x06keyIDs\x18\x01 \x03(\v2<.WAMultiDevice.MultiDevice.ApplicationData.AppStateSyncKeyIdR\x06keyIDs\x1am\n" + + "\x1bAppStateSyncKeyShareMessage\x12N\n" + + "\x04keys\x18\x01 \x03(\v2:.WAMultiDevice.MultiDevice.ApplicationData.AppStateSyncKeyR\x04keys\x1a\xb0\x04\n" + + "\x0fAppStateSyncKey\x12R\n" + + "\x05keyID\x18\x01 \x01(\v2<.WAMultiDevice.MultiDevice.ApplicationData.AppStateSyncKeyIdR\x05keyID\x12h\n" + + "\akeyData\x18\x02 \x01(\v2N.WAMultiDevice.MultiDevice.ApplicationData.AppStateSyncKey.AppStateSyncKeyDataR\akeyData\x1a\xde\x02\n" + + "\x13AppStateSyncKeyData\x12\x18\n" + + "\akeyData\x18\x01 \x01(\fR\akeyData\x12\x8b\x01\n" + + "\vfingerprint\x18\x02 \x01(\v2i.WAMultiDevice.MultiDevice.ApplicationData.AppStateSyncKey.AppStateSyncKeyData.AppStateSyncKeyFingerprintR\vfingerprint\x12\x1c\n" + + "\ttimestamp\x18\x03 \x01(\x03R\ttimestamp\x1a\x80\x01\n" + + "\x1aAppStateSyncKeyFingerprint\x12\x14\n" + + "\x05rawID\x18\x01 \x01(\rR\x05rawID\x12\"\n" + + "\fcurrentIndex\x18\x02 \x01(\rR\fcurrentIndex\x12(\n" + + "\rdeviceIndexes\x18\x03 \x03(\rB\x02\x10\x01R\rdeviceIndexes\x1a)\n" + + "\x11AppStateSyncKeyId\x12\x14\n" + + "\x05keyID\x18\x01 \x01(\fR\x05keyIDB\x11\n" + + "\x0fapplicationData\x1a\b\n" + + "\x06SignalB)Z'github.com/techwiz37/waSocket/proto/waMultiDevice" var ( file_waMultiDevice_WAMultiDevice_proto_rawDescOnce sync.Once - file_waMultiDevice_WAMultiDevice_proto_rawDescData = file_waMultiDevice_WAMultiDevice_proto_rawDesc + file_waMultiDevice_WAMultiDevice_proto_rawDescData []byte ) func file_waMultiDevice_WAMultiDevice_proto_rawDescGZIP() []byte { file_waMultiDevice_WAMultiDevice_proto_rawDescOnce.Do(func() { - file_waMultiDevice_WAMultiDevice_proto_rawDescData = protoimpl.X.CompressGZIP(file_waMultiDevice_WAMultiDevice_proto_rawDescData) + file_waMultiDevice_WAMultiDevice_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waMultiDevice_WAMultiDevice_proto_rawDesc), len(file_waMultiDevice_WAMultiDevice_proto_rawDesc))) }) return file_waMultiDevice_WAMultiDevice_proto_rawDescData } @@ -685,7 +716,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waMultiDevice_WAMultiDevice_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waMultiDevice_WAMultiDevice_proto_rawDesc), len(file_waMultiDevice_WAMultiDevice_proto_rawDesc)), NumEnums: 0, NumMessages: 11, NumExtensions: 0, @@ -696,7 +727,6 @@ func file_waMultiDevice_WAMultiDevice_proto_init() { MessageInfos: file_waMultiDevice_WAMultiDevice_proto_msgTypes, }.Build() File_waMultiDevice_WAMultiDevice_proto = out.File - file_waMultiDevice_WAMultiDevice_proto_rawDesc = nil file_waMultiDevice_WAMultiDevice_proto_goTypes = nil file_waMultiDevice_WAMultiDevice_proto_depIdxs = nil } diff --git a/proto/waMultiDevice/WAMultiDevice.pb.raw b/proto/waMultiDevice/WAMultiDevice.pb.raw deleted file mode 100644 index 41d9cb1c..00000000 Binary files a/proto/waMultiDevice/WAMultiDevice.pb.raw and /dev/null differ diff --git a/proto/waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.pb.go b/proto/waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.pb.go index 41d952dc..6a856a7a 100644 --- a/proto/waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.pb.go +++ b/proto/waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.proto @@ -9,11 +9,10 @@ package waQuickPromotionSurfaces import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -415,17 +414,49 @@ func (x *QP_FilterParameters) GetValue() string { var File_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsQuickPromotionSurfaces.pb.raw -var file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc []byte +const file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc = "" + + "\n" + + "CwaQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.proto\x12$WAWebProtobufsQuickPromotionSurfaces\"\xcf\x06\n" + + "\x02QP\x1a\xff\x01\n" + + "\fFilterClause\x12S\n" + + "\n" + + "clauseType\x18\x01 \x02(\x0e23.WAWebProtobufsQuickPromotionSurfaces.QP.ClauseTypeR\n" + + "clauseType\x12O\n" + + "\aclauses\x18\x02 \x03(\v25.WAWebProtobufsQuickPromotionSurfaces.QP.FilterClauseR\aclauses\x12I\n" + + "\afilters\x18\x03 \x03(\v2/.WAWebProtobufsQuickPromotionSurfaces.QP.FilterR\afilters\x1a\xe4\x02\n" + + "\x06Filter\x12\x1e\n" + + "\n" + + "filterName\x18\x01 \x02(\tR\n" + + "filterName\x12Y\n" + + "\n" + + "parameters\x18\x02 \x03(\v29.WAWebProtobufsQuickPromotionSurfaces.QP.FilterParametersR\n" + + "parameters\x12Y\n" + + "\ffilterResult\x18\x03 \x01(\x0e25.WAWebProtobufsQuickPromotionSurfaces.QP.FilterResultR\ffilterResult\x12\x83\x01\n" + + "\x18clientNotSupportedConfig\x18\x04 \x02(\x0e2G.WAWebProtobufsQuickPromotionSurfaces.QP.FilterClientNotSupportedConfigR\x18clientNotSupportedConfig\x1a:\n" + + "\x10FilterParameters\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"0\n" + + "\fFilterResult\x12\b\n" + + "\x04TRUE\x10\x01\x12\t\n" + + "\x05FALSE\x10\x02\x12\v\n" + + "\aUNKNOWN\x10\x03\"J\n" + + "\x1eFilterClientNotSupportedConfig\x12\x13\n" + + "\x0fPASS_BY_DEFAULT\x10\x01\x12\x13\n" + + "\x0fFAIL_BY_DEFAULT\x10\x02\"&\n" + + "\n" + + "ClauseType\x12\a\n" + + "\x03AND\x10\x01\x12\x06\n" + + "\x02OR\x10\x02\x12\a\n" + + "\x03NOR\x10\x03B4Z2github.com/techwiz37/waSocket/proto/waQuickPromotionSurfaces" var ( file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescOnce sync.Once - file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescData = file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc + file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescData []byte ) func file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescGZIP() []byte { file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescOnce.Do(func() { - file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescData = protoimpl.X.CompressGZIP(file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescData) + file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc), len(file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc))) }) return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescData } @@ -464,7 +495,7 @@ func file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_in out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc), len(file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc)), NumEnums: 3, NumMessages: 4, NumExtensions: 0, @@ -476,7 +507,6 @@ func file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_in MessageInfos: file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes, }.Build() File_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto = out.File - file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc = nil file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_goTypes = nil file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_depIdxs = nil } diff --git a/proto/waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.pb.raw b/proto/waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.pb.raw deleted file mode 100644 index dce06624..00000000 --- a/proto/waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.pb.raw +++ /dev/null @@ -1,33 +0,0 @@ - -CwaQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.proto$WAWebProtobufsQuickPromotionSurfaces"Ï -QPÿ - FilterClauseS - -clauseType (23.WAWebProtobufsQuickPromotionSurfaces.QP.ClauseTypeR -clauseTypeO -clauses ( 25.WAWebProtobufsQuickPromotionSurfaces.QP.FilterClauseRclausesI -filters ( 2/.WAWebProtobufsQuickPromotionSurfaces.QP.FilterRfiltersä -Filter - -filterName ( R -filterNameY - -parameters ( 29.WAWebProtobufsQuickPromotionSurfaces.QP.FilterParametersR -parametersY - filterResult (25.WAWebProtobufsQuickPromotionSurfaces.QP.FilterResultR filterResultƒ -clientNotSupportedConfig (2G.WAWebProtobufsQuickPromotionSurfaces.QP.FilterClientNotSupportedConfigRclientNotSupportedConfig: -FilterParameters -key ( Rkey -value ( Rvalue"0 - FilterResult -TRUE -FALSE -UNKNOWN"J -FilterClientNotSupportedConfig -PASS_BY_DEFAULT -FAIL_BY_DEFAULT"& - -ClauseType -AND -OR -NORB4Z2go.mau.fi/whatsmeow/proto/waQuickPromotionSurfaces \ No newline at end of file diff --git a/proto/waReporting/WAWebProtobufsReporting.pb.go b/proto/waReporting/WAWebProtobufsReporting.pb.go index 3d3d7376..d824d13d 100644 --- a/proto/waReporting/WAWebProtobufsReporting.pb.go +++ b/proto/waReporting/WAWebProtobufsReporting.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waReporting/WAWebProtobufsReporting.proto @@ -9,11 +9,10 @@ package waReporting import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -221,17 +220,48 @@ func (x *Field) GetSubfield() map[uint32]*Field { var File_waReporting_WAWebProtobufsReporting_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsReporting.pb.raw -var file_waReporting_WAWebProtobufsReporting_proto_rawDesc []byte +const file_waReporting_WAWebProtobufsReporting_proto_rawDesc = "" + + "\n" + + ")waReporting/WAWebProtobufsReporting.proto\x12\x17WAWebProtobufsReporting\"\x9c\x01\n" + + "\n" + + "Reportable\x12\x1e\n" + + "\n" + + "minVersion\x18\x01 \x01(\rR\n" + + "minVersion\x12\x1e\n" + + "\n" + + "maxVersion\x18\x02 \x01(\rR\n" + + "maxVersion\x128\n" + + "\x17notReportableMinVersion\x18\x03 \x01(\rR\x17notReportableMinVersion\x12\x14\n" + + "\x05never\x18\x04 \x01(\bR\x05never\"\xbe\x01\n" + + "\x06Config\x12@\n" + + "\x05field\x18\x01 \x03(\v2*.WAWebProtobufsReporting.Config.FieldEntryR\x05field\x12\x18\n" + + "\aversion\x18\x02 \x01(\rR\aversion\x1aX\n" + + "\n" + + "FieldEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\rR\x03key\x124\n" + + "\x05value\x18\x02 \x01(\v2\x1e.WAWebProtobufsReporting.FieldR\x05value:\x028\x01\"\xc6\x02\n" + + "\x05Field\x12\x1e\n" + + "\n" + + "minVersion\x18\x01 \x01(\rR\n" + + "minVersion\x12\x1e\n" + + "\n" + + "maxVersion\x18\x02 \x01(\rR\n" + + "maxVersion\x128\n" + + "\x17notReportableMinVersion\x18\x03 \x01(\rR\x17notReportableMinVersion\x12\x1c\n" + + "\tisMessage\x18\x04 \x01(\bR\tisMessage\x12H\n" + + "\bsubfield\x18\x05 \x03(\v2,.WAWebProtobufsReporting.Field.SubfieldEntryR\bsubfield\x1a[\n" + + "\rSubfieldEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\rR\x03key\x124\n" + + "\x05value\x18\x02 \x01(\v2\x1e.WAWebProtobufsReporting.FieldR\x05value:\x028\x01B'Z%github.com/techwiz37/waSocket/proto/waReportingb\x06proto3" var ( file_waReporting_WAWebProtobufsReporting_proto_rawDescOnce sync.Once - file_waReporting_WAWebProtobufsReporting_proto_rawDescData = file_waReporting_WAWebProtobufsReporting_proto_rawDesc + file_waReporting_WAWebProtobufsReporting_proto_rawDescData []byte ) func file_waReporting_WAWebProtobufsReporting_proto_rawDescGZIP() []byte { file_waReporting_WAWebProtobufsReporting_proto_rawDescOnce.Do(func() { - file_waReporting_WAWebProtobufsReporting_proto_rawDescData = protoimpl.X.CompressGZIP(file_waReporting_WAWebProtobufsReporting_proto_rawDescData) + file_waReporting_WAWebProtobufsReporting_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waReporting_WAWebProtobufsReporting_proto_rawDesc), len(file_waReporting_WAWebProtobufsReporting_proto_rawDesc))) }) return file_waReporting_WAWebProtobufsReporting_proto_rawDescData } @@ -265,7 +295,7 @@ func file_waReporting_WAWebProtobufsReporting_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waReporting_WAWebProtobufsReporting_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waReporting_WAWebProtobufsReporting_proto_rawDesc), len(file_waReporting_WAWebProtobufsReporting_proto_rawDesc)), NumEnums: 0, NumMessages: 5, NumExtensions: 0, @@ -276,7 +306,6 @@ func file_waReporting_WAWebProtobufsReporting_proto_init() { MessageInfos: file_waReporting_WAWebProtobufsReporting_proto_msgTypes, }.Build() File_waReporting_WAWebProtobufsReporting_proto = out.File - file_waReporting_WAWebProtobufsReporting_proto_rawDesc = nil file_waReporting_WAWebProtobufsReporting_proto_goTypes = nil file_waReporting_WAWebProtobufsReporting_proto_depIdxs = nil } diff --git a/proto/waReporting/WAWebProtobufsReporting.pb.raw b/proto/waReporting/WAWebProtobufsReporting.pb.raw deleted file mode 100644 index 57622f0c..00000000 --- a/proto/waReporting/WAWebProtobufsReporting.pb.raw +++ /dev/null @@ -1,32 +0,0 @@ - -)waReporting/WAWebProtobufsReporting.protoWAWebProtobufsReporting"œ - -Reportable - -minVersion ( R -minVersion - -maxVersion ( R -maxVersion8 -notReportableMinVersion ( RnotReportableMinVersion -never (Rnever"¾ -Config@ -field ( 2*.WAWebProtobufsReporting.Config.FieldEntryRfield -version ( RversionX - -FieldEntry -key ( Rkey4 -value ( 2.WAWebProtobufsReporting.FieldRvalue:8"Æ -Field - -minVersion ( R -minVersion - -maxVersion ( R -maxVersion8 -notReportableMinVersion ( RnotReportableMinVersion - isMessage (R isMessageH -subfield ( 2,.WAWebProtobufsReporting.Field.SubfieldEntryRsubfield[ - SubfieldEntry -key ( Rkey4 -value ( 2.WAWebProtobufsReporting.FieldRvalue:8B'Z%go.mau.fi/whatsmeow/proto/waReportingbproto3 \ No newline at end of file diff --git a/proto/waRoutingInfo/WAWebProtobufsRoutingInfo.pb.go b/proto/waRoutingInfo/WAWebProtobufsRoutingInfo.pb.go index f114a4e0..fae56835 100644 --- a/proto/waRoutingInfo/WAWebProtobufsRoutingInfo.pb.go +++ b/proto/waRoutingInfo/WAWebProtobufsRoutingInfo.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waRoutingInfo/WAWebProtobufsRoutingInfo.proto @@ -9,11 +9,10 @@ package waRoutingInfo import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -109,17 +108,25 @@ func (x *RoutingInfo) GetTcpKeepalive() bool { var File_waRoutingInfo_WAWebProtobufsRoutingInfo_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsRoutingInfo.pb.raw -var file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc []byte +const file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc = "" + + "\n" + + "-waRoutingInfo/WAWebProtobufsRoutingInfo.proto\x12\x19WAWebProtobufsRoutingInfo\"\xb1\x01\n" + + "\vRoutingInfo\x12\x1a\n" + + "\bregionID\x18\x01 \x03(\x05R\bregionID\x12\x1c\n" + + "\tclusterID\x18\x02 \x03(\x05R\tclusterID\x12\x16\n" + + "\x06taskID\x18\x03 \x01(\x05R\x06taskID\x12\x14\n" + + "\x05debug\x18\x04 \x01(\bR\x05debug\x12\x16\n" + + "\x06tcpBbr\x18\x05 \x01(\bR\x06tcpBbr\x12\"\n" + + "\ftcpKeepalive\x18\x06 \x01(\bR\ftcpKeepaliveB)Z'github.com/techwiz37/waSocket/proto/waRoutingInfo" var ( file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescOnce sync.Once - file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescData = file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc + file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescData []byte ) func file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescGZIP() []byte { file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescOnce.Do(func() { - file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescData = protoimpl.X.CompressGZIP(file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescData) + file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc), len(file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc))) }) return file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDescData } @@ -145,7 +152,7 @@ func file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc), len(file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -156,7 +163,6 @@ func file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_init() { MessageInfos: file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_msgTypes, }.Build() File_waRoutingInfo_WAWebProtobufsRoutingInfo_proto = out.File - file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_rawDesc = nil file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_goTypes = nil file_waRoutingInfo_WAWebProtobufsRoutingInfo_proto_depIdxs = nil } diff --git a/proto/waRoutingInfo/WAWebProtobufsRoutingInfo.pb.raw b/proto/waRoutingInfo/WAWebProtobufsRoutingInfo.pb.raw deleted file mode 100644 index 43725e32..00000000 --- a/proto/waRoutingInfo/WAWebProtobufsRoutingInfo.pb.raw +++ /dev/null @@ -1,9 +0,0 @@ - --waRoutingInfo/WAWebProtobufsRoutingInfo.protoWAWebProtobufsRoutingInfo"± - RoutingInfo -regionID (RregionID - clusterID (R clusterID -taskID (RtaskID -debug (Rdebug -tcpBbr (RtcpBbr" - tcpKeepalive (R tcpKeepaliveB)Z'go.mau.fi/whatsmeow/proto/waRoutingInfo \ No newline at end of file diff --git a/proto/waServerSync/WAServerSync.pb.go b/proto/waServerSync/WAServerSync.pb.go index f1d16ff4..b2b33306 100644 --- a/proto/waServerSync/WAServerSync.pb.go +++ b/proto/waServerSync/WAServerSync.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waServerSync/WAServerSync.proto @@ -9,11 +9,10 @@ package waServerSync import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -725,17 +724,71 @@ func (x *SyncdPatch) GetClientDebugData() []byte { var File_waServerSync_WAServerSync_proto protoreflect.FileDescriptor -//go:embed WAServerSync.pb.raw -var file_waServerSync_WAServerSync_proto_rawDesc []byte +const file_waServerSync_WAServerSync_proto_rawDesc = "" + + "\n" + + "\x1fwaServerSync/WAServerSync.proto\x12\fWAServerSync\"\xb3\x01\n" + + "\rSyncdMutation\x12H\n" + + "\toperation\x18\x01 \x01(\x0e2*.WAServerSync.SyncdMutation.SyncdOperationR\toperation\x121\n" + + "\x06record\x18\x02 \x01(\v2\x19.WAServerSync.SyncdRecordR\x06record\"%\n" + + "\x0eSyncdOperation\x12\a\n" + + "\x03SET\x10\x00\x12\n" + + "\n" + + "\x06REMOVE\x10\x01\"(\n" + + "\fSyncdVersion\x12\x18\n" + + "\aversion\x18\x01 \x01(\x04R\aversion\"2\n" + + "\bExitCode\x12\x12\n" + + "\x04code\x18\x01 \x01(\x04R\x04code\x12\x12\n" + + "\x04text\x18\x02 \x01(\tR\x04text\" \n" + + "\n" + + "SyncdIndex\x12\x12\n" + + "\x04blob\x18\x01 \x01(\fR\x04blob\" \n" + + "\n" + + "SyncdValue\x12\x12\n" + + "\x04blob\x18\x01 \x01(\fR\x04blob\"\x17\n" + + "\x05KeyId\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\fR\x02ID\"\x98\x01\n" + + "\vSyncdRecord\x12.\n" + + "\x05index\x18\x01 \x01(\v2\x18.WAServerSync.SyncdIndexR\x05index\x12.\n" + + "\x05value\x18\x02 \x01(\v2\x18.WAServerSync.SyncdValueR\x05value\x12)\n" + + "\x05keyID\x18\x03 \x01(\v2\x13.WAServerSync.KeyIdR\x05keyID\"\xd7\x01\n" + + "\x15ExternalBlobReference\x12\x1a\n" + + "\bmediaKey\x18\x01 \x01(\fR\bmediaKey\x12\x1e\n" + + "\n" + + "directPath\x18\x02 \x01(\tR\n" + + "directPath\x12\x16\n" + + "\x06handle\x18\x03 \x01(\tR\x06handle\x12$\n" + + "\rfileSizeBytes\x18\x04 \x01(\x04R\rfileSizeBytes\x12\x1e\n" + + "\n" + + "fileSHA256\x18\x05 \x01(\fR\n" + + "fileSHA256\x12$\n" + + "\rfileEncSHA256\x18\x06 \x01(\fR\rfileEncSHA256\"\xb7\x01\n" + + "\rSyncdSnapshot\x124\n" + + "\aversion\x18\x01 \x01(\v2\x1a.WAServerSync.SyncdVersionR\aversion\x123\n" + + "\arecords\x18\x02 \x03(\v2\x19.WAServerSync.SyncdRecordR\arecords\x12\x10\n" + + "\x03mac\x18\x03 \x01(\fR\x03mac\x12)\n" + + "\x05keyID\x18\x04 \x01(\v2\x13.WAServerSync.KeyIdR\x05keyID\"K\n" + + "\x0eSyncdMutations\x129\n" + + "\tmutations\x18\x01 \x03(\v2\x1b.WAServerSync.SyncdMutationR\tmutations\"\xb9\x03\n" + + "\n" + + "SyncdPatch\x124\n" + + "\aversion\x18\x01 \x01(\v2\x1a.WAServerSync.SyncdVersionR\aversion\x129\n" + + "\tmutations\x18\x02 \x03(\v2\x1b.WAServerSync.SyncdMutationR\tmutations\x12Q\n" + + "\x11externalMutations\x18\x03 \x01(\v2#.WAServerSync.ExternalBlobReferenceR\x11externalMutations\x12 \n" + + "\vsnapshotMAC\x18\x04 \x01(\fR\vsnapshotMAC\x12\x1a\n" + + "\bpatchMAC\x18\x05 \x01(\fR\bpatchMAC\x12)\n" + + "\x05keyID\x18\x06 \x01(\v2\x13.WAServerSync.KeyIdR\x05keyID\x122\n" + + "\bexitCode\x18\a \x01(\v2\x16.WAServerSync.ExitCodeR\bexitCode\x12 \n" + + "\vdeviceIndex\x18\b \x01(\rR\vdeviceIndex\x12(\n" + + "\x0fclientDebugData\x18\t \x01(\fR\x0fclientDebugDataB(Z&github.com/techwiz37/waSocket/proto/waServerSync" var ( file_waServerSync_WAServerSync_proto_rawDescOnce sync.Once - file_waServerSync_WAServerSync_proto_rawDescData = file_waServerSync_WAServerSync_proto_rawDesc + file_waServerSync_WAServerSync_proto_rawDescData []byte ) func file_waServerSync_WAServerSync_proto_rawDescGZIP() []byte { file_waServerSync_WAServerSync_proto_rawDescOnce.Do(func() { - file_waServerSync_WAServerSync_proto_rawDescData = protoimpl.X.CompressGZIP(file_waServerSync_WAServerSync_proto_rawDescData) + file_waServerSync_WAServerSync_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waServerSync_WAServerSync_proto_rawDesc), len(file_waServerSync_WAServerSync_proto_rawDesc))) }) return file_waServerSync_WAServerSync_proto_rawDescData } @@ -787,7 +840,7 @@ func file_waServerSync_WAServerSync_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waServerSync_WAServerSync_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waServerSync_WAServerSync_proto_rawDesc), len(file_waServerSync_WAServerSync_proto_rawDesc)), NumEnums: 1, NumMessages: 11, NumExtensions: 0, @@ -799,7 +852,6 @@ func file_waServerSync_WAServerSync_proto_init() { MessageInfos: file_waServerSync_WAServerSync_proto_msgTypes, }.Build() File_waServerSync_WAServerSync_proto = out.File - file_waServerSync_WAServerSync_proto_rawDesc = nil file_waServerSync_WAServerSync_proto_goTypes = nil file_waServerSync_WAServerSync_proto_depIdxs = nil } diff --git a/proto/waServerSync/WAServerSync.pb.raw b/proto/waServerSync/WAServerSync.pb.raw deleted file mode 100644 index 8e26c95f..00000000 Binary files a/proto/waServerSync/WAServerSync.pb.raw and /dev/null differ diff --git a/proto/waSyncAction/WASyncAction.pb.go b/proto/waSyncAction/WASyncAction.pb.go index b0bb39bd..4683d5ce 100644 --- a/proto/waSyncAction/WASyncAction.pb.go +++ b/proto/waSyncAction/WASyncAction.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waSyncAction/WASyncAction.proto @@ -9,6 +9,7 @@ package waSyncAction import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -16,8 +17,6 @@ import ( waChatLockSettings "github.com/techwiz37/waSocket/proto/waChatLockSettings" waCommon "github.com/techwiz37/waSocket/proto/waCommon" waDeviceCapabilities "github.com/techwiz37/waSocket/proto/waDeviceCapabilities" - - _ "embed" ) const ( @@ -629,12 +628,14 @@ func (UsernameChatStartModeAction_ChatStartMode) EnumDescriptor() ([]byte, []int type LabelEditAction_ListType int32 const ( - LabelEditAction_NONE LabelEditAction_ListType = 0 - LabelEditAction_UNREAD LabelEditAction_ListType = 1 - LabelEditAction_GROUPS LabelEditAction_ListType = 2 - LabelEditAction_FAVORITES LabelEditAction_ListType = 3 - LabelEditAction_PREDEFINED LabelEditAction_ListType = 4 - LabelEditAction_CUSTOM LabelEditAction_ListType = 5 + LabelEditAction_NONE LabelEditAction_ListType = 0 + LabelEditAction_UNREAD LabelEditAction_ListType = 1 + LabelEditAction_GROUPS LabelEditAction_ListType = 2 + LabelEditAction_FAVORITES LabelEditAction_ListType = 3 + LabelEditAction_PREDEFINED LabelEditAction_ListType = 4 + LabelEditAction_CUSTOM LabelEditAction_ListType = 5 + LabelEditAction_COMMUNITY LabelEditAction_ListType = 6 + LabelEditAction_SERVER_ASSIGNED LabelEditAction_ListType = 7 ) // Enum value maps for LabelEditAction_ListType. @@ -646,14 +647,18 @@ var ( 3: "FAVORITES", 4: "PREDEFINED", 5: "CUSTOM", + 6: "COMMUNITY", + 7: "SERVER_ASSIGNED", } LabelEditAction_ListType_value = map[string]int32{ - "NONE": 0, - "UNREAD": 1, - "GROUPS": 2, - "FAVORITES": 3, - "PREDEFINED": 4, - "CUSTOM": 5, + "NONE": 0, + "UNREAD": 1, + "GROUPS": 2, + "FAVORITES": 3, + "PREDEFINED": 4, + "CUSTOM": 5, + "COMMUNITY": 6, + "SERVER_ASSIGNED": 7, } ) @@ -1356,6 +1361,7 @@ type LabelEditAction struct { OrderIndex *int32 `protobuf:"varint,5,opt,name=orderIndex" json:"orderIndex,omitempty"` IsActive *bool `protobuf:"varint,6,opt,name=isActive" json:"isActive,omitempty"` Type *LabelEditAction_ListType `protobuf:"varint,7,opt,name=type,enum=WASyncAction.LabelEditAction_ListType" json:"type,omitempty"` + IsImmutable *bool `protobuf:"varint,8,opt,name=isImmutable" json:"isImmutable,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1439,6 +1445,13 @@ func (x *LabelEditAction) GetType() LabelEditAction_ListType { return LabelEditAction_NONE } +func (x *LabelEditAction) GetIsImmutable() bool { + if x != nil && x.IsImmutable != nil { + return *x.IsImmutable + } + return false +} + type PatchDebugData struct { state protoimpl.MessageState `protogen:"open.v1"` CurrentLthash []byte `protobuf:"bytes,1,opt,name=currentLthash" json:"currentLthash,omitempty"` @@ -1671,6 +1684,8 @@ type SyncActionValue struct { WaffleAccountLinkStateAction *WaffleAccountLinkStateAction `protobuf:"bytes,58,opt,name=waffleAccountLinkStateAction" json:"waffleAccountLinkStateAction,omitempty"` UsernameChatStartMode *UsernameChatStartModeAction `protobuf:"bytes,59,opt,name=usernameChatStartMode" json:"usernameChatStartMode,omitempty"` NotificationActivitySettingAction *NotificationActivitySettingAction `protobuf:"bytes,60,opt,name=notificationActivitySettingAction" json:"notificationActivitySettingAction,omitempty"` + LidContactAction *LidContactAction `protobuf:"bytes,61,opt,name=lidContactAction" json:"lidContactAction,omitempty"` + CtwaPerCustomerDataSharingAction *CtwaPerCustomerDataSharingAction `protobuf:"bytes,62,opt,name=ctwaPerCustomerDataSharingAction" json:"ctwaPerCustomerDataSharingAction,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2083,6 +2098,132 @@ func (x *SyncActionValue) GetNotificationActivitySettingAction() *NotificationAc return nil } +func (x *SyncActionValue) GetLidContactAction() *LidContactAction { + if x != nil { + return x.LidContactAction + } + return nil +} + +func (x *SyncActionValue) GetCtwaPerCustomerDataSharingAction() *CtwaPerCustomerDataSharingAction { + if x != nil { + return x.CtwaPerCustomerDataSharingAction + } + return nil +} + +type CtwaPerCustomerDataSharingAction struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsCtwaPerCustomerDataSharingEnabled *bool `protobuf:"varint,1,opt,name=isCtwaPerCustomerDataSharingEnabled" json:"isCtwaPerCustomerDataSharingEnabled,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CtwaPerCustomerDataSharingAction) Reset() { + *x = CtwaPerCustomerDataSharingAction{} + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CtwaPerCustomerDataSharingAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CtwaPerCustomerDataSharingAction) ProtoMessage() {} + +func (x *CtwaPerCustomerDataSharingAction) ProtoReflect() protoreflect.Message { + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CtwaPerCustomerDataSharingAction.ProtoReflect.Descriptor instead. +func (*CtwaPerCustomerDataSharingAction) Descriptor() ([]byte, []int) { + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{12} +} + +func (x *CtwaPerCustomerDataSharingAction) GetIsCtwaPerCustomerDataSharingEnabled() bool { + if x != nil && x.IsCtwaPerCustomerDataSharingEnabled != nil { + return *x.IsCtwaPerCustomerDataSharingEnabled + } + return false +} + +type LidContactAction struct { + state protoimpl.MessageState `protogen:"open.v1"` + FullName *string `protobuf:"bytes,1,opt,name=fullName" json:"fullName,omitempty"` + FirstName *string `protobuf:"bytes,2,opt,name=firstName" json:"firstName,omitempty"` + Username *string `protobuf:"bytes,3,opt,name=username" json:"username,omitempty"` + SaveOnPrimaryAddressbook *bool `protobuf:"varint,4,opt,name=saveOnPrimaryAddressbook" json:"saveOnPrimaryAddressbook,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LidContactAction) Reset() { + *x = LidContactAction{} + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LidContactAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LidContactAction) ProtoMessage() {} + +func (x *LidContactAction) ProtoReflect() protoreflect.Message { + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LidContactAction.ProtoReflect.Descriptor instead. +func (*LidContactAction) Descriptor() ([]byte, []int) { + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{13} +} + +func (x *LidContactAction) GetFullName() string { + if x != nil && x.FullName != nil { + return *x.FullName + } + return "" +} + +func (x *LidContactAction) GetFirstName() string { + if x != nil && x.FirstName != nil { + return *x.FirstName + } + return "" +} + +func (x *LidContactAction) GetUsername() string { + if x != nil && x.Username != nil { + return *x.Username + } + return "" +} + +func (x *LidContactAction) GetSaveOnPrimaryAddressbook() bool { + if x != nil && x.SaveOnPrimaryAddressbook != nil { + return *x.SaveOnPrimaryAddressbook + } + return false +} + type FavoritesAction struct { state protoimpl.MessageState `protogen:"open.v1"` Favorites []*FavoritesAction_Favorite `protobuf:"bytes,1,rep,name=favorites" json:"favorites,omitempty"` @@ -2092,7 +2233,7 @@ type FavoritesAction struct { func (x *FavoritesAction) Reset() { *x = FavoritesAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[12] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2104,7 +2245,7 @@ func (x *FavoritesAction) String() string { func (*FavoritesAction) ProtoMessage() {} func (x *FavoritesAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[12] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2117,7 +2258,7 @@ func (x *FavoritesAction) ProtoReflect() protoreflect.Message { // Deprecated: Use FavoritesAction.ProtoReflect.Descriptor instead. func (*FavoritesAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{12} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{14} } func (x *FavoritesAction) GetFavorites() []*FavoritesAction_Favorite { @@ -2136,7 +2277,7 @@ type PrivacySettingDisableLinkPreviewsAction struct { func (x *PrivacySettingDisableLinkPreviewsAction) Reset() { *x = PrivacySettingDisableLinkPreviewsAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[13] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2148,7 +2289,7 @@ func (x *PrivacySettingDisableLinkPreviewsAction) String() string { func (*PrivacySettingDisableLinkPreviewsAction) ProtoMessage() {} func (x *PrivacySettingDisableLinkPreviewsAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[13] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2161,7 +2302,7 @@ func (x *PrivacySettingDisableLinkPreviewsAction) ProtoReflect() protoreflect.Me // Deprecated: Use PrivacySettingDisableLinkPreviewsAction.ProtoReflect.Descriptor instead. func (*PrivacySettingDisableLinkPreviewsAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{13} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{15} } func (x *PrivacySettingDisableLinkPreviewsAction) GetIsPreviewsDisabled() bool { @@ -2180,7 +2321,7 @@ type WamoUserIdentifierAction struct { func (x *WamoUserIdentifierAction) Reset() { *x = WamoUserIdentifierAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[14] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2192,7 +2333,7 @@ func (x *WamoUserIdentifierAction) String() string { func (*WamoUserIdentifierAction) ProtoMessage() {} func (x *WamoUserIdentifierAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[14] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2205,7 +2346,7 @@ func (x *WamoUserIdentifierAction) ProtoReflect() protoreflect.Message { // Deprecated: Use WamoUserIdentifierAction.ProtoReflect.Descriptor instead. func (*WamoUserIdentifierAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{14} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{16} } func (x *WamoUserIdentifierAction) GetIdentifier() string { @@ -2224,7 +2365,7 @@ type LockChatAction struct { func (x *LockChatAction) Reset() { *x = LockChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[15] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2236,7 +2377,7 @@ func (x *LockChatAction) String() string { func (*LockChatAction) ProtoMessage() {} func (x *LockChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[15] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2249,7 +2390,7 @@ func (x *LockChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LockChatAction.ProtoReflect.Descriptor instead. func (*LockChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{15} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{17} } func (x *LockChatAction) GetLocked() bool { @@ -2268,7 +2409,7 @@ type CustomPaymentMethodsAction struct { func (x *CustomPaymentMethodsAction) Reset() { *x = CustomPaymentMethodsAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[16] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2280,7 +2421,7 @@ func (x *CustomPaymentMethodsAction) String() string { func (*CustomPaymentMethodsAction) ProtoMessage() {} func (x *CustomPaymentMethodsAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[16] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2293,7 +2434,7 @@ func (x *CustomPaymentMethodsAction) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomPaymentMethodsAction.ProtoReflect.Descriptor instead. func (*CustomPaymentMethodsAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{16} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{18} } func (x *CustomPaymentMethodsAction) GetCustomPaymentMethods() []*CustomPaymentMethod { @@ -2315,7 +2456,7 @@ type CustomPaymentMethod struct { func (x *CustomPaymentMethod) Reset() { *x = CustomPaymentMethod{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[17] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2327,7 +2468,7 @@ func (x *CustomPaymentMethod) String() string { func (*CustomPaymentMethod) ProtoMessage() {} func (x *CustomPaymentMethod) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[17] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2340,7 +2481,7 @@ func (x *CustomPaymentMethod) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomPaymentMethod.ProtoReflect.Descriptor instead. func (*CustomPaymentMethod) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{17} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{19} } func (x *CustomPaymentMethod) GetCredentialID() string { @@ -2381,7 +2522,7 @@ type CustomPaymentMethodMetadata struct { func (x *CustomPaymentMethodMetadata) Reset() { *x = CustomPaymentMethodMetadata{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[18] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2393,7 +2534,7 @@ func (x *CustomPaymentMethodMetadata) String() string { func (*CustomPaymentMethodMetadata) ProtoMessage() {} func (x *CustomPaymentMethodMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[18] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2406,7 +2547,7 @@ func (x *CustomPaymentMethodMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomPaymentMethodMetadata.ProtoReflect.Descriptor instead. func (*CustomPaymentMethodMetadata) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{18} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{20} } func (x *CustomPaymentMethodMetadata) GetKey() string { @@ -2432,7 +2573,7 @@ type PaymentInfoAction struct { func (x *PaymentInfoAction) Reset() { *x = PaymentInfoAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[19] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2444,7 +2585,7 @@ func (x *PaymentInfoAction) String() string { func (*PaymentInfoAction) ProtoMessage() {} func (x *PaymentInfoAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[19] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2457,7 +2598,7 @@ func (x *PaymentInfoAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PaymentInfoAction.ProtoReflect.Descriptor instead. func (*PaymentInfoAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{19} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{21} } func (x *PaymentInfoAction) GetCpi() string { @@ -2476,7 +2617,7 @@ type LabelReorderingAction struct { func (x *LabelReorderingAction) Reset() { *x = LabelReorderingAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[20] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2488,7 +2629,7 @@ func (x *LabelReorderingAction) String() string { func (*LabelReorderingAction) ProtoMessage() {} func (x *LabelReorderingAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[20] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2501,7 +2642,7 @@ func (x *LabelReorderingAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelReorderingAction.ProtoReflect.Descriptor instead. func (*LabelReorderingAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{20} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{22} } func (x *LabelReorderingAction) GetSortedLabelIDs() []int32 { @@ -2521,7 +2662,7 @@ type DeleteIndividualCallLogAction struct { func (x *DeleteIndividualCallLogAction) Reset() { *x = DeleteIndividualCallLogAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[21] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2533,7 +2674,7 @@ func (x *DeleteIndividualCallLogAction) String() string { func (*DeleteIndividualCallLogAction) ProtoMessage() {} func (x *DeleteIndividualCallLogAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[21] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2546,7 +2687,7 @@ func (x *DeleteIndividualCallLogAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteIndividualCallLogAction.ProtoReflect.Descriptor instead. func (*DeleteIndividualCallLogAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{21} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{23} } func (x *DeleteIndividualCallLogAction) GetPeerJID() string { @@ -2572,7 +2713,7 @@ type BotWelcomeRequestAction struct { func (x *BotWelcomeRequestAction) Reset() { *x = BotWelcomeRequestAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[22] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2584,7 +2725,7 @@ func (x *BotWelcomeRequestAction) String() string { func (*BotWelcomeRequestAction) ProtoMessage() {} func (x *BotWelcomeRequestAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[22] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2597,7 +2738,7 @@ func (x *BotWelcomeRequestAction) ProtoReflect() protoreflect.Message { // Deprecated: Use BotWelcomeRequestAction.ProtoReflect.Descriptor instead. func (*BotWelcomeRequestAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{22} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{24} } func (x *BotWelcomeRequestAction) GetIsSent() bool { @@ -2616,7 +2757,7 @@ type CallLogAction struct { func (x *CallLogAction) Reset() { *x = CallLogAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[23] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2628,7 +2769,7 @@ func (x *CallLogAction) String() string { func (*CallLogAction) ProtoMessage() {} func (x *CallLogAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[23] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2641,7 +2782,7 @@ func (x *CallLogAction) ProtoReflect() protoreflect.Message { // Deprecated: Use CallLogAction.ProtoReflect.Descriptor instead. func (*CallLogAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{23} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{25} } func (x *CallLogAction) GetCallLogRecord() *CallLogRecord { @@ -2660,7 +2801,7 @@ type PrivacySettingRelayAllCalls struct { func (x *PrivacySettingRelayAllCalls) Reset() { *x = PrivacySettingRelayAllCalls{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[24] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2672,7 +2813,7 @@ func (x *PrivacySettingRelayAllCalls) String() string { func (*PrivacySettingRelayAllCalls) ProtoMessage() {} func (x *PrivacySettingRelayAllCalls) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[24] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2685,7 +2826,7 @@ func (x *PrivacySettingRelayAllCalls) ProtoReflect() protoreflect.Message { // Deprecated: Use PrivacySettingRelayAllCalls.ProtoReflect.Descriptor instead. func (*PrivacySettingRelayAllCalls) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{24} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{26} } func (x *PrivacySettingRelayAllCalls) GetIsEnabled() bool { @@ -2704,7 +2845,7 @@ type ExternalWebBetaAction struct { func (x *ExternalWebBetaAction) Reset() { *x = ExternalWebBetaAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[25] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2716,7 +2857,7 @@ func (x *ExternalWebBetaAction) String() string { func (*ExternalWebBetaAction) ProtoMessage() {} func (x *ExternalWebBetaAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[25] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2729,7 +2870,7 @@ func (x *ExternalWebBetaAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ExternalWebBetaAction.ProtoReflect.Descriptor instead. func (*ExternalWebBetaAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{25} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{27} } func (x *ExternalWebBetaAction) GetIsOptIn() bool { @@ -2748,7 +2889,7 @@ type MarketingMessageBroadcastAction struct { func (x *MarketingMessageBroadcastAction) Reset() { *x = MarketingMessageBroadcastAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[26] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2760,7 +2901,7 @@ func (x *MarketingMessageBroadcastAction) String() string { func (*MarketingMessageBroadcastAction) ProtoMessage() {} func (x *MarketingMessageBroadcastAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[26] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2773,7 +2914,7 @@ func (x *MarketingMessageBroadcastAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketingMessageBroadcastAction.ProtoReflect.Descriptor instead. func (*MarketingMessageBroadcastAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{26} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{28} } func (x *MarketingMessageBroadcastAction) GetRepliedCount() int32 { @@ -2792,7 +2933,7 @@ type PnForLidChatAction struct { func (x *PnForLidChatAction) Reset() { *x = PnForLidChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[27] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2804,7 +2945,7 @@ func (x *PnForLidChatAction) String() string { func (*PnForLidChatAction) ProtoMessage() {} func (x *PnForLidChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[27] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2817,7 +2958,7 @@ func (x *PnForLidChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PnForLidChatAction.ProtoReflect.Descriptor instead. func (*PnForLidChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{27} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{29} } func (x *PnForLidChatAction) GetPnJID() string { @@ -2836,7 +2977,7 @@ type ChatAssignmentOpenedStatusAction struct { func (x *ChatAssignmentOpenedStatusAction) Reset() { *x = ChatAssignmentOpenedStatusAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[28] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2848,7 +2989,7 @@ func (x *ChatAssignmentOpenedStatusAction) String() string { func (*ChatAssignmentOpenedStatusAction) ProtoMessage() {} func (x *ChatAssignmentOpenedStatusAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[28] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2861,7 +3002,7 @@ func (x *ChatAssignmentOpenedStatusAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatAssignmentOpenedStatusAction.ProtoReflect.Descriptor instead. func (*ChatAssignmentOpenedStatusAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{28} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{30} } func (x *ChatAssignmentOpenedStatusAction) GetChatOpened() bool { @@ -2880,7 +3021,7 @@ type ChatAssignmentAction struct { func (x *ChatAssignmentAction) Reset() { *x = ChatAssignmentAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[29] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2892,7 +3033,7 @@ func (x *ChatAssignmentAction) String() string { func (*ChatAssignmentAction) ProtoMessage() {} func (x *ChatAssignmentAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[29] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2905,7 +3046,7 @@ func (x *ChatAssignmentAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatAssignmentAction.ProtoReflect.Descriptor instead. func (*ChatAssignmentAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{29} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{31} } func (x *ChatAssignmentAction) GetDeviceAgentID() string { @@ -2934,7 +3075,7 @@ type StickerAction struct { func (x *StickerAction) Reset() { *x = StickerAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[30] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2946,7 +3087,7 @@ func (x *StickerAction) String() string { func (*StickerAction) ProtoMessage() {} func (x *StickerAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[30] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2959,7 +3100,7 @@ func (x *StickerAction) ProtoReflect() protoreflect.Message { // Deprecated: Use StickerAction.ProtoReflect.Descriptor instead. func (*StickerAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{30} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{32} } func (x *StickerAction) GetURL() string { @@ -3048,7 +3189,7 @@ type RemoveRecentStickerAction struct { func (x *RemoveRecentStickerAction) Reset() { *x = RemoveRecentStickerAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[31] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3060,7 +3201,7 @@ func (x *RemoveRecentStickerAction) String() string { func (*RemoveRecentStickerAction) ProtoMessage() {} func (x *RemoveRecentStickerAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[31] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3073,7 +3214,7 @@ func (x *RemoveRecentStickerAction) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveRecentStickerAction.ProtoReflect.Descriptor instead. func (*RemoveRecentStickerAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{31} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{33} } func (x *RemoveRecentStickerAction) GetLastStickerSentTS() int64 { @@ -3092,7 +3233,7 @@ type PrimaryVersionAction struct { func (x *PrimaryVersionAction) Reset() { *x = PrimaryVersionAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[32] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3104,7 +3245,7 @@ func (x *PrimaryVersionAction) String() string { func (*PrimaryVersionAction) ProtoMessage() {} func (x *PrimaryVersionAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[32] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3117,7 +3258,7 @@ func (x *PrimaryVersionAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PrimaryVersionAction.ProtoReflect.Descriptor instead. func (*PrimaryVersionAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{32} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{34} } func (x *PrimaryVersionAction) GetVersion() string { @@ -3136,7 +3277,7 @@ type NuxAction struct { func (x *NuxAction) Reset() { *x = NuxAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[33] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3148,7 +3289,7 @@ func (x *NuxAction) String() string { func (*NuxAction) ProtoMessage() {} func (x *NuxAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[33] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3161,7 +3302,7 @@ func (x *NuxAction) ProtoReflect() protoreflect.Message { // Deprecated: Use NuxAction.ProtoReflect.Descriptor instead. func (*NuxAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{33} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{35} } func (x *NuxAction) GetAcknowledged() bool { @@ -3180,7 +3321,7 @@ type TimeFormatAction struct { func (x *TimeFormatAction) Reset() { *x = TimeFormatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[34] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3192,7 +3333,7 @@ func (x *TimeFormatAction) String() string { func (*TimeFormatAction) ProtoMessage() {} func (x *TimeFormatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[34] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3205,7 +3346,7 @@ func (x *TimeFormatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use TimeFormatAction.ProtoReflect.Descriptor instead. func (*TimeFormatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{34} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{36} } func (x *TimeFormatAction) GetIsTwentyFourHourFormatEnabled() bool { @@ -3224,7 +3365,7 @@ type UserStatusMuteAction struct { func (x *UserStatusMuteAction) Reset() { *x = UserStatusMuteAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[35] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3236,7 +3377,7 @@ func (x *UserStatusMuteAction) String() string { func (*UserStatusMuteAction) ProtoMessage() {} func (x *UserStatusMuteAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[35] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3249,7 +3390,7 @@ func (x *UserStatusMuteAction) ProtoReflect() protoreflect.Message { // Deprecated: Use UserStatusMuteAction.ProtoReflect.Descriptor instead. func (*UserStatusMuteAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{35} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{37} } func (x *UserStatusMuteAction) GetMuted() bool { @@ -3270,7 +3411,7 @@ type SubscriptionAction struct { func (x *SubscriptionAction) Reset() { *x = SubscriptionAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[36] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3282,7 +3423,7 @@ func (x *SubscriptionAction) String() string { func (*SubscriptionAction) ProtoMessage() {} func (x *SubscriptionAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[36] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3295,7 +3436,7 @@ func (x *SubscriptionAction) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscriptionAction.ProtoReflect.Descriptor instead. func (*SubscriptionAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{36} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{38} } func (x *SubscriptionAction) GetIsDeactivated() bool { @@ -3330,7 +3471,7 @@ type AgentAction struct { func (x *AgentAction) Reset() { *x = AgentAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[37] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3342,7 +3483,7 @@ func (x *AgentAction) String() string { func (*AgentAction) ProtoMessage() {} func (x *AgentAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[37] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3355,7 +3496,7 @@ func (x *AgentAction) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentAction.ProtoReflect.Descriptor instead. func (*AgentAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{37} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{39} } func (x *AgentAction) GetName() string { @@ -3388,7 +3529,7 @@ type AndroidUnsupportedActions struct { func (x *AndroidUnsupportedActions) Reset() { *x = AndroidUnsupportedActions{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[38] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3400,7 +3541,7 @@ func (x *AndroidUnsupportedActions) String() string { func (*AndroidUnsupportedActions) ProtoMessage() {} func (x *AndroidUnsupportedActions) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[38] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3413,7 +3554,7 @@ func (x *AndroidUnsupportedActions) ProtoReflect() protoreflect.Message { // Deprecated: Use AndroidUnsupportedActions.ProtoReflect.Descriptor instead. func (*AndroidUnsupportedActions) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{38} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{40} } func (x *AndroidUnsupportedActions) GetAllowed() bool { @@ -3432,7 +3573,7 @@ type PrimaryFeature struct { func (x *PrimaryFeature) Reset() { *x = PrimaryFeature{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[39] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3444,7 +3585,7 @@ func (x *PrimaryFeature) String() string { func (*PrimaryFeature) ProtoMessage() {} func (x *PrimaryFeature) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[39] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3457,7 +3598,7 @@ func (x *PrimaryFeature) ProtoReflect() protoreflect.Message { // Deprecated: Use PrimaryFeature.ProtoReflect.Descriptor instead. func (*PrimaryFeature) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{39} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{41} } func (x *PrimaryFeature) GetFlags() []string { @@ -3476,7 +3617,7 @@ type KeyExpiration struct { func (x *KeyExpiration) Reset() { *x = KeyExpiration{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[40] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3488,7 +3629,7 @@ func (x *KeyExpiration) String() string { func (*KeyExpiration) ProtoMessage() {} func (x *KeyExpiration) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[40] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3501,7 +3642,7 @@ func (x *KeyExpiration) ProtoReflect() protoreflect.Message { // Deprecated: Use KeyExpiration.ProtoReflect.Descriptor instead. func (*KeyExpiration) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{40} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{42} } func (x *KeyExpiration) GetExpiredKeyEpoch() int32 { @@ -3521,7 +3662,7 @@ type SyncActionMessage struct { func (x *SyncActionMessage) Reset() { *x = SyncActionMessage{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[41] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3533,7 +3674,7 @@ func (x *SyncActionMessage) String() string { func (*SyncActionMessage) ProtoMessage() {} func (x *SyncActionMessage) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[41] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3546,7 +3687,7 @@ func (x *SyncActionMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActionMessage.ProtoReflect.Descriptor instead. func (*SyncActionMessage) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{41} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{43} } func (x *SyncActionMessage) GetKey() *waCommon.MessageKey { @@ -3574,7 +3715,7 @@ type SyncActionMessageRange struct { func (x *SyncActionMessageRange) Reset() { *x = SyncActionMessageRange{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[42] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3586,7 +3727,7 @@ func (x *SyncActionMessageRange) String() string { func (*SyncActionMessageRange) ProtoMessage() {} func (x *SyncActionMessageRange) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[42] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3599,7 +3740,7 @@ func (x *SyncActionMessageRange) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActionMessageRange.ProtoReflect.Descriptor instead. func (*SyncActionMessageRange) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{42} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{44} } func (x *SyncActionMessageRange) GetLastMessageTimestamp() int64 { @@ -3632,7 +3773,7 @@ type UnarchiveChatsSetting struct { func (x *UnarchiveChatsSetting) Reset() { *x = UnarchiveChatsSetting{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[43] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3644,7 +3785,7 @@ func (x *UnarchiveChatsSetting) String() string { func (*UnarchiveChatsSetting) ProtoMessage() {} func (x *UnarchiveChatsSetting) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[43] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3657,7 +3798,7 @@ func (x *UnarchiveChatsSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use UnarchiveChatsSetting.ProtoReflect.Descriptor instead. func (*UnarchiveChatsSetting) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{43} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{45} } func (x *UnarchiveChatsSetting) GetUnarchiveChats() bool { @@ -3676,7 +3817,7 @@ type DeleteChatAction struct { func (x *DeleteChatAction) Reset() { *x = DeleteChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[44] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3688,7 +3829,7 @@ func (x *DeleteChatAction) String() string { func (*DeleteChatAction) ProtoMessage() {} func (x *DeleteChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[44] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3701,7 +3842,7 @@ func (x *DeleteChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChatAction.ProtoReflect.Descriptor instead. func (*DeleteChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{44} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{46} } func (x *DeleteChatAction) GetMessageRange() *SyncActionMessageRange { @@ -3720,7 +3861,7 @@ type ClearChatAction struct { func (x *ClearChatAction) Reset() { *x = ClearChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[45] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3732,7 +3873,7 @@ func (x *ClearChatAction) String() string { func (*ClearChatAction) ProtoMessage() {} func (x *ClearChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[45] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3745,7 +3886,7 @@ func (x *ClearChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ClearChatAction.ProtoReflect.Descriptor instead. func (*ClearChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{45} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{47} } func (x *ClearChatAction) GetMessageRange() *SyncActionMessageRange { @@ -3765,7 +3906,7 @@ type MarkChatAsReadAction struct { func (x *MarkChatAsReadAction) Reset() { *x = MarkChatAsReadAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[46] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3777,7 +3918,7 @@ func (x *MarkChatAsReadAction) String() string { func (*MarkChatAsReadAction) ProtoMessage() {} func (x *MarkChatAsReadAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[46] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3790,7 +3931,7 @@ func (x *MarkChatAsReadAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MarkChatAsReadAction.ProtoReflect.Descriptor instead. func (*MarkChatAsReadAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{46} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{48} } func (x *MarkChatAsReadAction) GetRead() bool { @@ -3817,7 +3958,7 @@ type DeleteMessageForMeAction struct { func (x *DeleteMessageForMeAction) Reset() { *x = DeleteMessageForMeAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[47] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3829,7 +3970,7 @@ func (x *DeleteMessageForMeAction) String() string { func (*DeleteMessageForMeAction) ProtoMessage() {} func (x *DeleteMessageForMeAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[47] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3842,7 +3983,7 @@ func (x *DeleteMessageForMeAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMessageForMeAction.ProtoReflect.Descriptor instead. func (*DeleteMessageForMeAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{47} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{49} } func (x *DeleteMessageForMeAction) GetDeleteMedia() bool { @@ -3869,7 +4010,7 @@ type ArchiveChatAction struct { func (x *ArchiveChatAction) Reset() { *x = ArchiveChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[48] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3881,7 +4022,7 @@ func (x *ArchiveChatAction) String() string { func (*ArchiveChatAction) ProtoMessage() {} func (x *ArchiveChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[48] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3894,7 +4035,7 @@ func (x *ArchiveChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ArchiveChatAction.ProtoReflect.Descriptor instead. func (*ArchiveChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{48} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{50} } func (x *ArchiveChatAction) GetArchived() bool { @@ -3920,7 +4061,7 @@ type RecentEmojiWeightsAction struct { func (x *RecentEmojiWeightsAction) Reset() { *x = RecentEmojiWeightsAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[49] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3932,7 +4073,7 @@ func (x *RecentEmojiWeightsAction) String() string { func (*RecentEmojiWeightsAction) ProtoMessage() {} func (x *RecentEmojiWeightsAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[49] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3945,7 +4086,7 @@ func (x *RecentEmojiWeightsAction) ProtoReflect() protoreflect.Message { // Deprecated: Use RecentEmojiWeightsAction.ProtoReflect.Descriptor instead. func (*RecentEmojiWeightsAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{49} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{51} } func (x *RecentEmojiWeightsAction) GetWeights() []*RecentEmojiWeight { @@ -3964,7 +4105,7 @@ type LabelAssociationAction struct { func (x *LabelAssociationAction) Reset() { *x = LabelAssociationAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[50] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3976,7 +4117,7 @@ func (x *LabelAssociationAction) String() string { func (*LabelAssociationAction) ProtoMessage() {} func (x *LabelAssociationAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[50] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3989,7 +4130,7 @@ func (x *LabelAssociationAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelAssociationAction.ProtoReflect.Descriptor instead. func (*LabelAssociationAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{50} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{52} } func (x *LabelAssociationAction) GetLabeled() bool { @@ -4012,7 +4153,7 @@ type QuickReplyAction struct { func (x *QuickReplyAction) Reset() { *x = QuickReplyAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[51] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4024,7 +4165,7 @@ func (x *QuickReplyAction) String() string { func (*QuickReplyAction) ProtoMessage() {} func (x *QuickReplyAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[51] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4037,7 +4178,7 @@ func (x *QuickReplyAction) ProtoReflect() protoreflect.Message { // Deprecated: Use QuickReplyAction.ProtoReflect.Descriptor instead. func (*QuickReplyAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{51} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{53} } func (x *QuickReplyAction) GetShortcut() string { @@ -4084,7 +4225,7 @@ type LocaleSetting struct { func (x *LocaleSetting) Reset() { *x = LocaleSetting{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[52] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4096,7 +4237,7 @@ func (x *LocaleSetting) String() string { func (*LocaleSetting) ProtoMessage() {} func (x *LocaleSetting) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[52] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4109,7 +4250,7 @@ func (x *LocaleSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use LocaleSetting.ProtoReflect.Descriptor instead. func (*LocaleSetting) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{52} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{54} } func (x *LocaleSetting) GetLocale() string { @@ -4128,7 +4269,7 @@ type PushNameSetting struct { func (x *PushNameSetting) Reset() { *x = PushNameSetting{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[53] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4140,7 +4281,7 @@ func (x *PushNameSetting) String() string { func (*PushNameSetting) ProtoMessage() {} func (x *PushNameSetting) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[53] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4153,7 +4294,7 @@ func (x *PushNameSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use PushNameSetting.ProtoReflect.Descriptor instead. func (*PushNameSetting) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{53} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{55} } func (x *PushNameSetting) GetName() string { @@ -4172,7 +4313,7 @@ type SecurityNotificationSetting struct { func (x *SecurityNotificationSetting) Reset() { *x = SecurityNotificationSetting{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[54] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4184,7 +4325,7 @@ func (x *SecurityNotificationSetting) String() string { func (*SecurityNotificationSetting) ProtoMessage() {} func (x *SecurityNotificationSetting) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[54] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4197,7 +4338,7 @@ func (x *SecurityNotificationSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use SecurityNotificationSetting.ProtoReflect.Descriptor instead. func (*SecurityNotificationSetting) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{54} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{56} } func (x *SecurityNotificationSetting) GetShowNotification() bool { @@ -4216,7 +4357,7 @@ type PinAction struct { func (x *PinAction) Reset() { *x = PinAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[55] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4228,7 +4369,7 @@ func (x *PinAction) String() string { func (*PinAction) ProtoMessage() {} func (x *PinAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[55] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4241,7 +4382,7 @@ func (x *PinAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PinAction.ProtoReflect.Descriptor instead. func (*PinAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{55} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{57} } func (x *PinAction) GetPinned() bool { @@ -4262,7 +4403,7 @@ type MuteAction struct { func (x *MuteAction) Reset() { *x = MuteAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[56] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4274,7 +4415,7 @@ func (x *MuteAction) String() string { func (*MuteAction) ProtoMessage() {} func (x *MuteAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[56] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4287,7 +4428,7 @@ func (x *MuteAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MuteAction.ProtoReflect.Descriptor instead. func (*MuteAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{56} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{58} } func (x *MuteAction) GetMuted() bool { @@ -4317,13 +4458,15 @@ type ContactAction struct { FirstName *string `protobuf:"bytes,2,opt,name=firstName" json:"firstName,omitempty"` LidJID *string `protobuf:"bytes,3,opt,name=lidJID" json:"lidJID,omitempty"` SaveOnPrimaryAddressbook *bool `protobuf:"varint,4,opt,name=saveOnPrimaryAddressbook" json:"saveOnPrimaryAddressbook,omitempty"` + PnJID *string `protobuf:"bytes,5,opt,name=pnJID" json:"pnJID,omitempty"` + Username *string `protobuf:"bytes,6,opt,name=username" json:"username,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ContactAction) Reset() { *x = ContactAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[57] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4335,7 +4478,7 @@ func (x *ContactAction) String() string { func (*ContactAction) ProtoMessage() {} func (x *ContactAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[57] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4348,7 +4491,7 @@ func (x *ContactAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ContactAction.ProtoReflect.Descriptor instead. func (*ContactAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{57} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{59} } func (x *ContactAction) GetFullName() string { @@ -4379,6 +4522,20 @@ func (x *ContactAction) GetSaveOnPrimaryAddressbook() bool { return false } +func (x *ContactAction) GetPnJID() string { + if x != nil && x.PnJID != nil { + return *x.PnJID + } + return "" +} + +func (x *ContactAction) GetUsername() string { + if x != nil && x.Username != nil { + return *x.Username + } + return "" +} + type StarAction struct { state protoimpl.MessageState `protogen:"open.v1"` Starred *bool `protobuf:"varint,1,opt,name=starred" json:"starred,omitempty"` @@ -4388,7 +4545,7 @@ type StarAction struct { func (x *StarAction) Reset() { *x = StarAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[58] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4400,7 +4557,7 @@ func (x *StarAction) String() string { func (*StarAction) ProtoMessage() {} func (x *StarAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[58] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4413,7 +4570,7 @@ func (x *StarAction) ProtoReflect() protoreflect.Message { // Deprecated: Use StarAction.ProtoReflect.Descriptor instead. func (*StarAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{58} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{60} } func (x *StarAction) GetStarred() bool { @@ -4435,7 +4592,7 @@ type SyncActionData struct { func (x *SyncActionData) Reset() { *x = SyncActionData{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[59] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4447,7 +4604,7 @@ func (x *SyncActionData) String() string { func (*SyncActionData) ProtoMessage() {} func (x *SyncActionData) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[59] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4460,7 +4617,7 @@ func (x *SyncActionData) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActionData.ProtoReflect.Descriptor instead. func (*SyncActionData) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{59} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{61} } func (x *SyncActionData) GetIndex() []byte { @@ -4501,7 +4658,7 @@ type CallLogRecord_ParticipantInfo struct { func (x *CallLogRecord_ParticipantInfo) Reset() { *x = CallLogRecord_ParticipantInfo{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[60] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4513,7 +4670,7 @@ func (x *CallLogRecord_ParticipantInfo) String() string { func (*CallLogRecord_ParticipantInfo) ProtoMessage() {} func (x *CallLogRecord_ParticipantInfo) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[60] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4552,7 +4709,7 @@ type FavoritesAction_Favorite struct { func (x *FavoritesAction_Favorite) Reset() { *x = FavoritesAction_Favorite{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[61] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4564,7 +4721,7 @@ func (x *FavoritesAction_Favorite) String() string { func (*FavoritesAction_Favorite) ProtoMessage() {} func (x *FavoritesAction_Favorite) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[61] + mi := &file_waSyncAction_WASyncAction_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4577,7 +4734,7 @@ func (x *FavoritesAction_Favorite) ProtoReflect() protoreflect.Message { // Deprecated: Use FavoritesAction_Favorite.ProtoReflect.Descriptor instead. func (*FavoritesAction_Favorite) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{12, 0} + return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{14, 0} } func (x *FavoritesAction_Favorite) GetID() string { @@ -4589,23 +4746,408 @@ func (x *FavoritesAction_Favorite) GetID() string { var File_waSyncAction_WASyncAction_proto protoreflect.FileDescriptor -//go:embed WASyncAction.pb.raw -var file_waSyncAction_WASyncAction_proto_rawDesc []byte +const file_waSyncAction_WASyncAction_proto_rawDesc = "" + + "\n" + + "\x1fwaSyncAction/WASyncAction.proto\x12\fWASyncAction\x1a4waChatLockSettings/WAProtobufsChatLockSettings.proto\x1a8waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto\x1a\x17waCommon/WACommon.proto\"\xc5\b\n" + + "\rCallLogRecord\x12F\n" + + "\n" + + "callResult\x18\x01 \x01(\x0e2&.WASyncAction.CallLogRecord.CallResultR\n" + + "callResult\x12\x1c\n" + + "\tisDndMode\x18\x02 \x01(\bR\tisDndMode\x12O\n" + + "\rsilenceReason\x18\x03 \x01(\x0e2).WASyncAction.CallLogRecord.SilenceReasonR\rsilenceReason\x12\x1a\n" + + "\bduration\x18\x04 \x01(\x03R\bduration\x12\x1c\n" + + "\tstartTime\x18\x05 \x01(\x03R\tstartTime\x12\x1e\n" + + "\n" + + "isIncoming\x18\x06 \x01(\bR\n" + + "isIncoming\x12\x18\n" + + "\aisVideo\x18\a \x01(\bR\aisVideo\x12\x1e\n" + + "\n" + + "isCallLink\x18\b \x01(\bR\n" + + "isCallLink\x12$\n" + + "\rcallLinkToken\x18\t \x01(\tR\rcallLinkToken\x12(\n" + + "\x0fscheduledCallID\x18\n" + + " \x01(\tR\x0fscheduledCallID\x12\x16\n" + + "\x06callID\x18\v \x01(\tR\x06callID\x12&\n" + + "\x0ecallCreatorJID\x18\f \x01(\tR\x0ecallCreatorJID\x12\x1a\n" + + "\bgroupJID\x18\r \x01(\tR\bgroupJID\x12O\n" + + "\fparticipants\x18\x0e \x03(\v2+.WASyncAction.CallLogRecord.ParticipantInfoR\fparticipants\x12@\n" + + "\bcallType\x18\x0f \x01(\x0e2$.WASyncAction.CallLogRecord.CallTypeR\bcallType\x1as\n" + + "\x0fParticipantInfo\x12\x18\n" + + "\auserJID\x18\x01 \x01(\tR\auserJID\x12F\n" + + "\n" + + "callResult\x18\x02 \x01(\x0e2&.WASyncAction.CallLogRecord.CallResultR\n" + + "callResult\";\n" + + "\bCallType\x12\v\n" + + "\aREGULAR\x10\x00\x12\x12\n" + + "\x0eSCHEDULED_CALL\x10\x01\x12\x0e\n" + + "\n" + + "VOICE_CHAT\x10\x02\"F\n" + + "\rSilenceReason\x12\b\n" + + "\x04NONE\x10\x00\x12\r\n" + + "\tSCHEDULED\x10\x01\x12\v\n" + + "\aPRIVACY\x10\x02\x12\x0f\n" + + "\vLIGHTWEIGHT\x10\x03\"\xaf\x01\n" + + "\n" + + "CallResult\x12\r\n" + + "\tCONNECTED\x10\x00\x12\f\n" + + "\bREJECTED\x10\x01\x12\r\n" + + "\tCANCELLED\x10\x02\x12\x15\n" + + "\x11ACCEPTEDELSEWHERE\x10\x03\x12\n" + + "\n" + + "\x06MISSED\x10\x04\x12\v\n" + + "\aINVALID\x10\x05\x12\x0f\n" + + "\vUNAVAILABLE\x10\x06\x12\f\n" + + "\bUPCOMING\x10\a\x12\n" + + "\n" + + "\x06FAILED\x10\b\x12\r\n" + + "\tABANDONED\x10\t\x12\v\n" + + "\aONGOING\x10\n" + + "\"\xa6\x02\n" + + "!NotificationActivitySettingAction\x12\x8d\x01\n" + + "\x1bnotificationActivitySetting\x18\x01 \x01(\x0e2K.WASyncAction.NotificationActivitySettingAction.NotificationActivitySettingR\x1bnotificationActivitySetting\"q\n" + + "\x1bNotificationActivitySetting\x12\x18\n" + + "\x14DEFAULT_ALL_MESSAGES\x10\x00\x12\x10\n" + + "\fALL_MESSAGES\x10\x01\x12\x0e\n" + + "\n" + + "HIGHLIGHTS\x10\x02\x12\x16\n" + + "\x12DEFAULT_HIGHLIGHTS\x10\x03\"\x99\x01\n" + + "\x1cWaffleAccountLinkStateAction\x12Y\n" + + "\tlinkState\x18\x02 \x01(\x0e2;.WASyncAction.WaffleAccountLinkStateAction.AccountLinkStateR\tlinkState\"\x1e\n" + + "\x10AccountLinkState\x12\n" + + "\n" + + "\x06ACTIVE\x10\x00\"\xed\x01\n" + + "\x1cMerchantPaymentPartnerAction\x12I\n" + + "\x06status\x18\x01 \x02(\x0e21.WASyncAction.MerchantPaymentPartnerAction.StatusR\x06status\x12\x18\n" + + "\acountry\x18\x02 \x02(\tR\acountry\x12 \n" + + "\vgatewayName\x18\x03 \x01(\tR\vgatewayName\x12\"\n" + + "\fcredentialID\x18\x04 \x01(\tR\fcredentialID\"\"\n" + + "\x06Status\x12\n" + + "\n" + + "\x06ACTIVE\x10\x00\x12\f\n" + + "\bINACTIVE\x10\x01\"\xfd\x01\n" + + "\x0eNoteEditAction\x129\n" + + "\x04type\x18\x01 \x01(\x0e2%.WASyncAction.NoteEditAction.NoteTypeR\x04type\x12\x18\n" + + "\achatJID\x18\x02 \x01(\tR\achatJID\x12\x1c\n" + + "\tcreatedAt\x18\x03 \x01(\x03R\tcreatedAt\x12\x18\n" + + "\adeleted\x18\x04 \x01(\bR\adeleted\x120\n" + + "\x13unstructuredContent\x18\x05 \x01(\tR\x13unstructuredContent\",\n" + + "\bNoteType\x12\x10\n" + + "\fUNSTRUCTURED\x10\x01\x12\x0e\n" + + "\n" + + "STRUCTURED\x10\x02\"\xc4\x01\n" + + "\x13StatusPrivacyAction\x12L\n" + + "\x04mode\x18\x01 \x01(\x0e28.WASyncAction.StatusPrivacyAction.StatusDistributionModeR\x04mode\x12\x18\n" + + "\auserJID\x18\x02 \x03(\tR\auserJID\"E\n" + + "\x16StatusDistributionMode\x12\x0e\n" + + "\n" + + "ALLOW_LIST\x10\x00\x12\r\n" + + "\tDENY_LIST\x10\x01\x12\f\n" + + "\bCONTACTS\x10\x02\"\xc7\x02\n" + + "\x16MarketingMessageAction\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12V\n" + + "\x04type\x18\x03 \x01(\x0e2B.WASyncAction.MarketingMessageAction.MarketingMessagePrototypeTypeR\x04type\x12\x1c\n" + + "\tcreatedAt\x18\x04 \x01(\x03R\tcreatedAt\x12\x1e\n" + + "\n" + + "lastSentAt\x18\x05 \x01(\x03R\n" + + "lastSentAt\x12\x1c\n" + + "\tisDeleted\x18\x06 \x01(\bR\tisDeleted\x12\x18\n" + + "\amediaID\x18\a \x01(\tR\amediaID\"1\n" + + "\x1dMarketingMessagePrototypeType\x12\x10\n" + + "\fPERSONALIZED\x10\x00\"\x9e\x01\n" + + "\x1bUsernameChatStartModeAction\x12]\n" + + "\rchatStartMode\x18\x01 \x01(\x0e27.WASyncAction.UsernameChatStartModeAction.ChatStartModeR\rchatStartMode\" \n" + + "\rChatStartMode\x12\a\n" + + "\x03LID\x10\x01\x12\x06\n" + + "\x02PN\x10\x02\"\x90\x03\n" + + "\x0fLabelEditAction\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05color\x18\x02 \x01(\x05R\x05color\x12\"\n" + + "\fpredefinedID\x18\x03 \x01(\x05R\fpredefinedID\x12\x18\n" + + "\adeleted\x18\x04 \x01(\bR\adeleted\x12\x1e\n" + + "\n" + + "orderIndex\x18\x05 \x01(\x05R\n" + + "orderIndex\x12\x1a\n" + + "\bisActive\x18\x06 \x01(\bR\bisActive\x12:\n" + + "\x04type\x18\a \x01(\x0e2&.WASyncAction.LabelEditAction.ListTypeR\x04type\x12 \n" + + "\visImmutable\x18\b \x01(\bR\visImmutable\"{\n" + + "\bListType\x12\b\n" + + "\x04NONE\x10\x00\x12\n" + + "\n" + + "\x06UNREAD\x10\x01\x12\n" + + "\n" + + "\x06GROUPS\x10\x02\x12\r\n" + + "\tFAVORITES\x10\x03\x12\x0e\n" + + "\n" + + "PREDEFINED\x10\x04\x12\n" + + "\n" + + "\x06CUSTOM\x10\x05\x12\r\n" + + "\tCOMMUNITY\x10\x06\x12\x13\n" + + "\x0fSERVER_ASSIGNED\x10\a\"\xf8\x04\n" + + "\x0ePatchDebugData\x12$\n" + + "\rcurrentLthash\x18\x01 \x01(\fR\rcurrentLthash\x12\x1c\n" + + "\tnewLthash\x18\x02 \x01(\fR\tnewLthash\x12\"\n" + + "\fpatchVersion\x18\x03 \x01(\fR\fpatchVersion\x12&\n" + + "\x0ecollectionName\x18\x04 \x01(\fR\x0ecollectionName\x12X\n" + + "'firstFourBytesFromAHashOfSnapshotMACKey\x18\x05 \x01(\fR'firstFourBytesFromAHashOfSnapshotMACKey\x12,\n" + + "\x11newLthashSubtract\x18\x06 \x01(\fR\x11newLthashSubtract\x12\x1c\n" + + "\tnumberAdd\x18\a \x01(\x05R\tnumberAdd\x12\"\n" + + "\fnumberRemove\x18\b \x01(\x05R\fnumberRemove\x12&\n" + + "\x0enumberOverride\x18\t \x01(\x05R\x0enumberOverride\x12M\n" + + "\x0esenderPlatform\x18\n" + + " \x01(\x0e2%.WASyncAction.PatchDebugData.PlatformR\x0esenderPlatform\x12(\n" + + "\x0fisSenderPrimary\x18\v \x01(\bR\x0fisSenderPrimary\"k\n" + + "\bPlatform\x12\v\n" + + "\aANDROID\x10\x00\x12\b\n" + + "\x04SMBA\x10\x01\x12\n" + + "\n" + + "\x06IPHONE\x10\x02\x12\b\n" + + "\x04SMBI\x10\x03\x12\a\n" + + "\x03WEB\x10\x04\x12\a\n" + + "\x03UWP\x10\x05\x12\n" + + "\n" + + "\x06DARWIN\x10\x06\x12\b\n" + + "\x04IPAD\x10\a\x12\n" + + "\n" + + "\x06WEAROS\x10\b\"A\n" + + "\x11RecentEmojiWeight\x12\x14\n" + + "\x05emoji\x18\x01 \x01(\tR\x05emoji\x12\x16\n" + + "\x06weight\x18\x02 \x01(\x02R\x06weight\"\xea%\n" + + "\x0fSyncActionValue\x12\x1c\n" + + "\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x128\n" + + "\n" + + "starAction\x18\x02 \x01(\v2\x18.WASyncAction.StarActionR\n" + + "starAction\x12A\n" + + "\rcontactAction\x18\x03 \x01(\v2\x1b.WASyncAction.ContactActionR\rcontactAction\x128\n" + + "\n" + + "muteAction\x18\x04 \x01(\v2\x18.WASyncAction.MuteActionR\n" + + "muteAction\x125\n" + + "\tpinAction\x18\x05 \x01(\v2\x17.WASyncAction.PinActionR\tpinAction\x12k\n" + + "\x1bsecurityNotificationSetting\x18\x06 \x01(\v2).WASyncAction.SecurityNotificationSettingR\x1bsecurityNotificationSetting\x12G\n" + + "\x0fpushNameSetting\x18\a \x01(\v2\x1d.WASyncAction.PushNameSettingR\x0fpushNameSetting\x12J\n" + + "\x10quickReplyAction\x18\b \x01(\v2\x1e.WASyncAction.QuickReplyActionR\x10quickReplyAction\x12b\n" + + "\x18recentEmojiWeightsAction\x18\v \x01(\v2&.WASyncAction.RecentEmojiWeightsActionR\x18recentEmojiWeightsAction\x12G\n" + + "\x0flabelEditAction\x18\x0e \x01(\v2\x1d.WASyncAction.LabelEditActionR\x0flabelEditAction\x12\\\n" + + "\x16labelAssociationAction\x18\x0f \x01(\v2$.WASyncAction.LabelAssociationActionR\x16labelAssociationAction\x12A\n" + + "\rlocaleSetting\x18\x10 \x01(\v2\x1b.WASyncAction.LocaleSettingR\rlocaleSetting\x12M\n" + + "\x11archiveChatAction\x18\x11 \x01(\v2\x1f.WASyncAction.ArchiveChatActionR\x11archiveChatAction\x12b\n" + + "\x18deleteMessageForMeAction\x18\x12 \x01(\v2&.WASyncAction.DeleteMessageForMeActionR\x18deleteMessageForMeAction\x12A\n" + + "\rkeyExpiration\x18\x13 \x01(\v2\x1b.WASyncAction.KeyExpirationR\rkeyExpiration\x12V\n" + + "\x14markChatAsReadAction\x18\x14 \x01(\v2\".WASyncAction.MarkChatAsReadActionR\x14markChatAsReadAction\x12G\n" + + "\x0fclearChatAction\x18\x15 \x01(\v2\x1d.WASyncAction.ClearChatActionR\x0fclearChatAction\x12J\n" + + "\x10deleteChatAction\x18\x16 \x01(\v2\x1e.WASyncAction.DeleteChatActionR\x10deleteChatAction\x12Y\n" + + "\x15unarchiveChatsSetting\x18\x17 \x01(\v2#.WASyncAction.UnarchiveChatsSettingR\x15unarchiveChatsSetting\x12D\n" + + "\x0eprimaryFeature\x18\x18 \x01(\v2\x1c.WASyncAction.PrimaryFeatureR\x0eprimaryFeature\x12e\n" + + "\x19androidUnsupportedActions\x18\x1a \x01(\v2'.WASyncAction.AndroidUnsupportedActionsR\x19androidUnsupportedActions\x12;\n" + + "\vagentAction\x18\x1b \x01(\v2\x19.WASyncAction.AgentActionR\vagentAction\x12P\n" + + "\x12subscriptionAction\x18\x1c \x01(\v2 .WASyncAction.SubscriptionActionR\x12subscriptionAction\x12V\n" + + "\x14userStatusMuteAction\x18\x1d \x01(\v2\".WASyncAction.UserStatusMuteActionR\x14userStatusMuteAction\x12J\n" + + "\x10timeFormatAction\x18\x1e \x01(\v2\x1e.WASyncAction.TimeFormatActionR\x10timeFormatAction\x125\n" + + "\tnuxAction\x18\x1f \x01(\v2\x17.WASyncAction.NuxActionR\tnuxAction\x12V\n" + + "\x14primaryVersionAction\x18 \x01(\v2\".WASyncAction.PrimaryVersionActionR\x14primaryVersionAction\x12A\n" + + "\rstickerAction\x18! \x01(\v2\x1b.WASyncAction.StickerActionR\rstickerAction\x12e\n" + + "\x19removeRecentStickerAction\x18\" \x01(\v2'.WASyncAction.RemoveRecentStickerActionR\x19removeRecentStickerAction\x12J\n" + + "\x0echatAssignment\x18# \x01(\v2\".WASyncAction.ChatAssignmentActionR\x0echatAssignment\x12n\n" + + "\x1achatAssignmentOpenedStatus\x18$ \x01(\v2..WASyncAction.ChatAssignmentOpenedStatusActionR\x1achatAssignmentOpenedStatus\x12P\n" + + "\x12pnForLidChatAction\x18% \x01(\v2 .WASyncAction.PnForLidChatActionR\x12pnForLidChatAction\x12\\\n" + + "\x16marketingMessageAction\x18& \x01(\v2$.WASyncAction.MarketingMessageActionR\x16marketingMessageAction\x12w\n" + + "\x1fmarketingMessageBroadcastAction\x18' \x01(\v2-.WASyncAction.MarketingMessageBroadcastActionR\x1fmarketingMessageBroadcastAction\x12Y\n" + + "\x15externalWebBetaAction\x18( \x01(\v2#.WASyncAction.ExternalWebBetaActionR\x15externalWebBetaAction\x12k\n" + + "\x1bprivacySettingRelayAllCalls\x18) \x01(\v2).WASyncAction.PrivacySettingRelayAllCallsR\x1bprivacySettingRelayAllCalls\x12A\n" + + "\rcallLogAction\x18* \x01(\v2\x1b.WASyncAction.CallLogActionR\rcallLogAction\x12G\n" + + "\rstatusPrivacy\x18, \x01(\v2!.WASyncAction.StatusPrivacyActionR\rstatusPrivacy\x12_\n" + + "\x17botWelcomeRequestAction\x18- \x01(\v2%.WASyncAction.BotWelcomeRequestActionR\x17botWelcomeRequestAction\x12e\n" + + "\x17deleteIndividualCallLog\x18. \x01(\v2+.WASyncAction.DeleteIndividualCallLogActionR\x17deleteIndividualCallLog\x12Y\n" + + "\x15labelReorderingAction\x18/ \x01(\v2#.WASyncAction.LabelReorderingActionR\x15labelReorderingAction\x12M\n" + + "\x11paymentInfoAction\x180 \x01(\v2\x1f.WASyncAction.PaymentInfoActionR\x11paymentInfoAction\x12h\n" + + "\x1acustomPaymentMethodsAction\x181 \x01(\v2(.WASyncAction.CustomPaymentMethodsActionR\x1acustomPaymentMethodsAction\x12D\n" + + "\x0elockChatAction\x182 \x01(\v2\x1c.WASyncAction.LockChatActionR\x0elockChatAction\x12Y\n" + + "\x10chatLockSettings\x183 \x01(\v2-.WAProtobufsChatLockSettings.ChatLockSettingsR\x10chatLockSettings\x12b\n" + + "\x18wamoUserIdentifierAction\x184 \x01(\v2&.WASyncAction.WamoUserIdentifierActionR\x18wamoUserIdentifierAction\x12\x8f\x01\n" + + "'privacySettingDisableLinkPreviewsAction\x185 \x01(\v25.WASyncAction.PrivacySettingDisableLinkPreviewsActionR'privacySettingDisableLinkPreviewsAction\x12a\n" + + "\x12deviceCapabilities\x186 \x01(\v21.WAProtobufsDeviceCapabilities.DeviceCapabilitiesR\x12deviceCapabilities\x12D\n" + + "\x0enoteEditAction\x187 \x01(\v2\x1c.WASyncAction.NoteEditActionR\x0enoteEditAction\x12G\n" + + "\x0ffavoritesAction\x188 \x01(\v2\x1d.WASyncAction.FavoritesActionR\x0ffavoritesAction\x12n\n" + + "\x1cmerchantPaymentPartnerAction\x189 \x01(\v2*.WASyncAction.MerchantPaymentPartnerActionR\x1cmerchantPaymentPartnerAction\x12n\n" + + "\x1cwaffleAccountLinkStateAction\x18: \x01(\v2*.WASyncAction.WaffleAccountLinkStateActionR\x1cwaffleAccountLinkStateAction\x12_\n" + + "\x15usernameChatStartMode\x18; \x01(\v2).WASyncAction.UsernameChatStartModeActionR\x15usernameChatStartMode\x12}\n" + + "!notificationActivitySettingAction\x18< \x01(\v2/.WASyncAction.NotificationActivitySettingActionR!notificationActivitySettingAction\x12J\n" + + "\x10lidContactAction\x18= \x01(\v2\x1e.WASyncAction.LidContactActionR\x10lidContactAction\x12z\n" + + " ctwaPerCustomerDataSharingAction\x18> \x01(\v2..WASyncAction.CtwaPerCustomerDataSharingActionR ctwaPerCustomerDataSharingAction\"t\n" + + " CtwaPerCustomerDataSharingAction\x12P\n" + + "#isCtwaPerCustomerDataSharingEnabled\x18\x01 \x01(\bR#isCtwaPerCustomerDataSharingEnabled\"\xa4\x01\n" + + "\x10LidContactAction\x12\x1a\n" + + "\bfullName\x18\x01 \x01(\tR\bfullName\x12\x1c\n" + + "\tfirstName\x18\x02 \x01(\tR\tfirstName\x12\x1a\n" + + "\busername\x18\x03 \x01(\tR\busername\x12:\n" + + "\x18saveOnPrimaryAddressbook\x18\x04 \x01(\bR\x18saveOnPrimaryAddressbook\"s\n" + + "\x0fFavoritesAction\x12D\n" + + "\tfavorites\x18\x01 \x03(\v2&.WASyncAction.FavoritesAction.FavoriteR\tfavorites\x1a\x1a\n" + + "\bFavorite\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\"Y\n" + + "'PrivacySettingDisableLinkPreviewsAction\x12.\n" + + "\x12isPreviewsDisabled\x18\x01 \x01(\bR\x12isPreviewsDisabled\":\n" + + "\x18WamoUserIdentifierAction\x12\x1e\n" + + "\n" + + "identifier\x18\x01 \x01(\tR\n" + + "identifier\"(\n" + + "\x0eLockChatAction\x12\x16\n" + + "\x06locked\x18\x01 \x01(\bR\x06locked\"s\n" + + "\x1aCustomPaymentMethodsAction\x12U\n" + + "\x14customPaymentMethods\x18\x01 \x03(\v2!.WASyncAction.CustomPaymentMethodR\x14customPaymentMethods\"\xae\x01\n" + + "\x13CustomPaymentMethod\x12\"\n" + + "\fcredentialID\x18\x01 \x02(\tR\fcredentialID\x12\x18\n" + + "\acountry\x18\x02 \x02(\tR\acountry\x12\x12\n" + + "\x04type\x18\x03 \x02(\tR\x04type\x12E\n" + + "\bmetadata\x18\x04 \x03(\v2).WASyncAction.CustomPaymentMethodMetadataR\bmetadata\"E\n" + + "\x1bCustomPaymentMethodMetadata\x12\x10\n" + + "\x03key\x18\x01 \x02(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x02(\tR\x05value\"%\n" + + "\x11PaymentInfoAction\x12\x10\n" + + "\x03cpi\x18\x01 \x01(\tR\x03cpi\"?\n" + + "\x15LabelReorderingAction\x12&\n" + + "\x0esortedLabelIDs\x18\x01 \x03(\x05R\x0esortedLabelIDs\"Y\n" + + "\x1dDeleteIndividualCallLogAction\x12\x18\n" + + "\apeerJID\x18\x01 \x01(\tR\apeerJID\x12\x1e\n" + + "\n" + + "isIncoming\x18\x02 \x01(\bR\n" + + "isIncoming\"1\n" + + "\x17BotWelcomeRequestAction\x12\x16\n" + + "\x06isSent\x18\x01 \x01(\bR\x06isSent\"R\n" + + "\rCallLogAction\x12A\n" + + "\rcallLogRecord\x18\x01 \x01(\v2\x1b.WASyncAction.CallLogRecordR\rcallLogRecord\";\n" + + "\x1bPrivacySettingRelayAllCalls\x12\x1c\n" + + "\tisEnabled\x18\x01 \x01(\bR\tisEnabled\"1\n" + + "\x15ExternalWebBetaAction\x12\x18\n" + + "\aisOptIn\x18\x01 \x01(\bR\aisOptIn\"E\n" + + "\x1fMarketingMessageBroadcastAction\x12\"\n" + + "\frepliedCount\x18\x01 \x01(\x05R\frepliedCount\"*\n" + + "\x12PnForLidChatAction\x12\x14\n" + + "\x05pnJID\x18\x01 \x01(\tR\x05pnJID\"B\n" + + " ChatAssignmentOpenedStatusAction\x12\x1e\n" + + "\n" + + "chatOpened\x18\x01 \x01(\bR\n" + + "chatOpened\"<\n" + + "\x14ChatAssignmentAction\x12$\n" + + "\rdeviceAgentID\x18\x01 \x01(\tR\rdeviceAgentID\"\xcd\x02\n" + + "\rStickerAction\x12\x10\n" + + "\x03URL\x18\x01 \x01(\tR\x03URL\x12$\n" + + "\rfileEncSHA256\x18\x02 \x01(\fR\rfileEncSHA256\x12\x1a\n" + + "\bmediaKey\x18\x03 \x01(\fR\bmediaKey\x12\x1a\n" + + "\bmimetype\x18\x04 \x01(\tR\bmimetype\x12\x16\n" + + "\x06height\x18\x05 \x01(\rR\x06height\x12\x14\n" + + "\x05width\x18\x06 \x01(\rR\x05width\x12\x1e\n" + + "\n" + + "directPath\x18\a \x01(\tR\n" + + "directPath\x12\x1e\n" + + "\n" + + "fileLength\x18\b \x01(\x04R\n" + + "fileLength\x12\x1e\n" + + "\n" + + "isFavorite\x18\t \x01(\bR\n" + + "isFavorite\x12\"\n" + + "\fdeviceIDHint\x18\n" + + " \x01(\rR\fdeviceIDHint\x12\x1a\n" + + "\bisLottie\x18\v \x01(\bR\bisLottie\"I\n" + + "\x19RemoveRecentStickerAction\x12,\n" + + "\x11lastStickerSentTS\x18\x01 \x01(\x03R\x11lastStickerSentTS\"0\n" + + "\x14PrimaryVersionAction\x12\x18\n" + + "\aversion\x18\x01 \x01(\tR\aversion\"/\n" + + "\tNuxAction\x12\"\n" + + "\facknowledged\x18\x01 \x01(\bR\facknowledged\"X\n" + + "\x10TimeFormatAction\x12D\n" + + "\x1disTwentyFourHourFormatEnabled\x18\x01 \x01(\bR\x1disTwentyFourHourFormatEnabled\",\n" + + "\x14UserStatusMuteAction\x12\x14\n" + + "\x05muted\x18\x01 \x01(\bR\x05muted\"\x8a\x01\n" + + "\x12SubscriptionAction\x12$\n" + + "\risDeactivated\x18\x01 \x01(\bR\risDeactivated\x12&\n" + + "\x0eisAutoRenewing\x18\x02 \x01(\bR\x0eisAutoRenewing\x12&\n" + + "\x0eexpirationDate\x18\x03 \x01(\x03R\x0eexpirationDate\"[\n" + + "\vAgentAction\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x1a\n" + + "\bdeviceID\x18\x02 \x01(\x05R\bdeviceID\x12\x1c\n" + + "\tisDeleted\x18\x03 \x01(\bR\tisDeleted\"5\n" + + "\x19AndroidUnsupportedActions\x12\x18\n" + + "\aallowed\x18\x01 \x01(\bR\aallowed\"&\n" + + "\x0ePrimaryFeature\x12\x14\n" + + "\x05flags\x18\x01 \x03(\tR\x05flags\"9\n" + + "\rKeyExpiration\x12(\n" + + "\x0fexpiredKeyEpoch\x18\x01 \x01(\x05R\x0fexpiredKeyEpoch\"Y\n" + + "\x11SyncActionMessage\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x03R\ttimestamp\"\xc9\x01\n" + + "\x16SyncActionMessageRange\x122\n" + + "\x14lastMessageTimestamp\x18\x01 \x01(\x03R\x14lastMessageTimestamp\x12>\n" + + "\x1alastSystemMessageTimestamp\x18\x02 \x01(\x03R\x1alastSystemMessageTimestamp\x12;\n" + + "\bmessages\x18\x03 \x03(\v2\x1f.WASyncAction.SyncActionMessageR\bmessages\"?\n" + + "\x15UnarchiveChatsSetting\x12&\n" + + "\x0eunarchiveChats\x18\x01 \x01(\bR\x0eunarchiveChats\"\\\n" + + "\x10DeleteChatAction\x12H\n" + + "\fmessageRange\x18\x01 \x01(\v2$.WASyncAction.SyncActionMessageRangeR\fmessageRange\"[\n" + + "\x0fClearChatAction\x12H\n" + + "\fmessageRange\x18\x01 \x01(\v2$.WASyncAction.SyncActionMessageRangeR\fmessageRange\"t\n" + + "\x14MarkChatAsReadAction\x12\x12\n" + + "\x04read\x18\x01 \x01(\bR\x04read\x12H\n" + + "\fmessageRange\x18\x02 \x01(\v2$.WASyncAction.SyncActionMessageRangeR\fmessageRange\"h\n" + + "\x18DeleteMessageForMeAction\x12 \n" + + "\vdeleteMedia\x18\x01 \x01(\bR\vdeleteMedia\x12*\n" + + "\x10messageTimestamp\x18\x02 \x01(\x03R\x10messageTimestamp\"y\n" + + "\x11ArchiveChatAction\x12\x1a\n" + + "\barchived\x18\x01 \x01(\bR\barchived\x12H\n" + + "\fmessageRange\x18\x02 \x01(\v2$.WASyncAction.SyncActionMessageRangeR\fmessageRange\"U\n" + + "\x18RecentEmojiWeightsAction\x129\n" + + "\aweights\x18\x01 \x03(\v2\x1f.WASyncAction.RecentEmojiWeightR\aweights\"2\n" + + "\x16LabelAssociationAction\x12\x18\n" + + "\alabeled\x18\x01 \x01(\bR\alabeled\"\x94\x01\n" + + "\x10QuickReplyAction\x12\x1a\n" + + "\bshortcut\x18\x01 \x01(\tR\bshortcut\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12\x1a\n" + + "\bkeywords\x18\x03 \x03(\tR\bkeywords\x12\x14\n" + + "\x05count\x18\x04 \x01(\x05R\x05count\x12\x18\n" + + "\adeleted\x18\x05 \x01(\bR\adeleted\"'\n" + + "\rLocaleSetting\x12\x16\n" + + "\x06locale\x18\x01 \x01(\tR\x06locale\"%\n" + + "\x0fPushNameSetting\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"I\n" + + "\x1bSecurityNotificationSetting\x12*\n" + + "\x10showNotification\x18\x01 \x01(\bR\x10showNotification\"#\n" + + "\tPinAction\x12\x16\n" + + "\x06pinned\x18\x01 \x01(\bR\x06pinned\"l\n" + + "\n" + + "MuteAction\x12\x14\n" + + "\x05muted\x18\x01 \x01(\bR\x05muted\x12*\n" + + "\x10muteEndTimestamp\x18\x02 \x01(\x03R\x10muteEndTimestamp\x12\x1c\n" + + "\tautoMuted\x18\x03 \x01(\bR\tautoMuted\"\xcf\x01\n" + + "\rContactAction\x12\x1a\n" + + "\bfullName\x18\x01 \x01(\tR\bfullName\x12\x1c\n" + + "\tfirstName\x18\x02 \x01(\tR\tfirstName\x12\x16\n" + + "\x06lidJID\x18\x03 \x01(\tR\x06lidJID\x12:\n" + + "\x18saveOnPrimaryAddressbook\x18\x04 \x01(\bR\x18saveOnPrimaryAddressbook\x12\x14\n" + + "\x05pnJID\x18\x05 \x01(\tR\x05pnJID\x12\x1a\n" + + "\busername\x18\x06 \x01(\tR\busername\"&\n" + + "\n" + + "StarAction\x12\x18\n" + + "\astarred\x18\x01 \x01(\bR\astarred\"\x8f\x01\n" + + "\x0eSyncActionData\x12\x14\n" + + "\x05index\x18\x01 \x01(\fR\x05index\x123\n" + + "\x05value\x18\x02 \x01(\v2\x1d.WASyncAction.SyncActionValueR\x05value\x12\x18\n" + + "\apadding\x18\x03 \x01(\fR\apadding\x12\x18\n" + + "\aversion\x18\x04 \x01(\x05R\aversionB(Z&github.com/techwiz37/waSocket/proto/waSyncAction" var ( file_waSyncAction_WASyncAction_proto_rawDescOnce sync.Once - file_waSyncAction_WASyncAction_proto_rawDescData = file_waSyncAction_WASyncAction_proto_rawDesc + file_waSyncAction_WASyncAction_proto_rawDescData []byte ) func file_waSyncAction_WASyncAction_proto_rawDescGZIP() []byte { file_waSyncAction_WASyncAction_proto_rawDescOnce.Do(func() { - file_waSyncAction_WASyncAction_proto_rawDescData = protoimpl.X.CompressGZIP(file_waSyncAction_WASyncAction_proto_rawDescData) + file_waSyncAction_WASyncAction_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waSyncAction_WASyncAction_proto_rawDesc), len(file_waSyncAction_WASyncAction_proto_rawDesc))) }) return file_waSyncAction_WASyncAction_proto_rawDescData } var file_waSyncAction_WASyncAction_proto_enumTypes = make([]protoimpl.EnumInfo, 12) -var file_waSyncAction_WASyncAction_proto_msgTypes = make([]protoimpl.MessageInfo, 62) +var file_waSyncAction_WASyncAction_proto_msgTypes = make([]protoimpl.MessageInfo, 64) var file_waSyncAction_WASyncAction_proto_goTypes = []any{ (CallLogRecord_CallType)(0), // 0: WASyncAction.CallLogRecord.CallType (CallLogRecord_SilenceReason)(0), // 1: WASyncAction.CallLogRecord.SilenceReason @@ -4631,64 +5173,66 @@ var file_waSyncAction_WASyncAction_proto_goTypes = []any{ (*PatchDebugData)(nil), // 21: WASyncAction.PatchDebugData (*RecentEmojiWeight)(nil), // 22: WASyncAction.RecentEmojiWeight (*SyncActionValue)(nil), // 23: WASyncAction.SyncActionValue - (*FavoritesAction)(nil), // 24: WASyncAction.FavoritesAction - (*PrivacySettingDisableLinkPreviewsAction)(nil), // 25: WASyncAction.PrivacySettingDisableLinkPreviewsAction - (*WamoUserIdentifierAction)(nil), // 26: WASyncAction.WamoUserIdentifierAction - (*LockChatAction)(nil), // 27: WASyncAction.LockChatAction - (*CustomPaymentMethodsAction)(nil), // 28: WASyncAction.CustomPaymentMethodsAction - (*CustomPaymentMethod)(nil), // 29: WASyncAction.CustomPaymentMethod - (*CustomPaymentMethodMetadata)(nil), // 30: WASyncAction.CustomPaymentMethodMetadata - (*PaymentInfoAction)(nil), // 31: WASyncAction.PaymentInfoAction - (*LabelReorderingAction)(nil), // 32: WASyncAction.LabelReorderingAction - (*DeleteIndividualCallLogAction)(nil), // 33: WASyncAction.DeleteIndividualCallLogAction - (*BotWelcomeRequestAction)(nil), // 34: WASyncAction.BotWelcomeRequestAction - (*CallLogAction)(nil), // 35: WASyncAction.CallLogAction - (*PrivacySettingRelayAllCalls)(nil), // 36: WASyncAction.PrivacySettingRelayAllCalls - (*ExternalWebBetaAction)(nil), // 37: WASyncAction.ExternalWebBetaAction - (*MarketingMessageBroadcastAction)(nil), // 38: WASyncAction.MarketingMessageBroadcastAction - (*PnForLidChatAction)(nil), // 39: WASyncAction.PnForLidChatAction - (*ChatAssignmentOpenedStatusAction)(nil), // 40: WASyncAction.ChatAssignmentOpenedStatusAction - (*ChatAssignmentAction)(nil), // 41: WASyncAction.ChatAssignmentAction - (*StickerAction)(nil), // 42: WASyncAction.StickerAction - (*RemoveRecentStickerAction)(nil), // 43: WASyncAction.RemoveRecentStickerAction - (*PrimaryVersionAction)(nil), // 44: WASyncAction.PrimaryVersionAction - (*NuxAction)(nil), // 45: WASyncAction.NuxAction - (*TimeFormatAction)(nil), // 46: WASyncAction.TimeFormatAction - (*UserStatusMuteAction)(nil), // 47: WASyncAction.UserStatusMuteAction - (*SubscriptionAction)(nil), // 48: WASyncAction.SubscriptionAction - (*AgentAction)(nil), // 49: WASyncAction.AgentAction - (*AndroidUnsupportedActions)(nil), // 50: WASyncAction.AndroidUnsupportedActions - (*PrimaryFeature)(nil), // 51: WASyncAction.PrimaryFeature - (*KeyExpiration)(nil), // 52: WASyncAction.KeyExpiration - (*SyncActionMessage)(nil), // 53: WASyncAction.SyncActionMessage - (*SyncActionMessageRange)(nil), // 54: WASyncAction.SyncActionMessageRange - (*UnarchiveChatsSetting)(nil), // 55: WASyncAction.UnarchiveChatsSetting - (*DeleteChatAction)(nil), // 56: WASyncAction.DeleteChatAction - (*ClearChatAction)(nil), // 57: WASyncAction.ClearChatAction - (*MarkChatAsReadAction)(nil), // 58: WASyncAction.MarkChatAsReadAction - (*DeleteMessageForMeAction)(nil), // 59: WASyncAction.DeleteMessageForMeAction - (*ArchiveChatAction)(nil), // 60: WASyncAction.ArchiveChatAction - (*RecentEmojiWeightsAction)(nil), // 61: WASyncAction.RecentEmojiWeightsAction - (*LabelAssociationAction)(nil), // 62: WASyncAction.LabelAssociationAction - (*QuickReplyAction)(nil), // 63: WASyncAction.QuickReplyAction - (*LocaleSetting)(nil), // 64: WASyncAction.LocaleSetting - (*PushNameSetting)(nil), // 65: WASyncAction.PushNameSetting - (*SecurityNotificationSetting)(nil), // 66: WASyncAction.SecurityNotificationSetting - (*PinAction)(nil), // 67: WASyncAction.PinAction - (*MuteAction)(nil), // 68: WASyncAction.MuteAction - (*ContactAction)(nil), // 69: WASyncAction.ContactAction - (*StarAction)(nil), // 70: WASyncAction.StarAction - (*SyncActionData)(nil), // 71: WASyncAction.SyncActionData - (*CallLogRecord_ParticipantInfo)(nil), // 72: WASyncAction.CallLogRecord.ParticipantInfo - (*FavoritesAction_Favorite)(nil), // 73: WASyncAction.FavoritesAction.Favorite - (*waChatLockSettings.ChatLockSettings)(nil), // 74: WAProtobufsChatLockSettings.ChatLockSettings - (*waDeviceCapabilities.DeviceCapabilities)(nil), // 75: WAProtobufsDeviceCapabilities.DeviceCapabilities - (*waCommon.MessageKey)(nil), // 76: WACommon.MessageKey + (*CtwaPerCustomerDataSharingAction)(nil), // 24: WASyncAction.CtwaPerCustomerDataSharingAction + (*LidContactAction)(nil), // 25: WASyncAction.LidContactAction + (*FavoritesAction)(nil), // 26: WASyncAction.FavoritesAction + (*PrivacySettingDisableLinkPreviewsAction)(nil), // 27: WASyncAction.PrivacySettingDisableLinkPreviewsAction + (*WamoUserIdentifierAction)(nil), // 28: WASyncAction.WamoUserIdentifierAction + (*LockChatAction)(nil), // 29: WASyncAction.LockChatAction + (*CustomPaymentMethodsAction)(nil), // 30: WASyncAction.CustomPaymentMethodsAction + (*CustomPaymentMethod)(nil), // 31: WASyncAction.CustomPaymentMethod + (*CustomPaymentMethodMetadata)(nil), // 32: WASyncAction.CustomPaymentMethodMetadata + (*PaymentInfoAction)(nil), // 33: WASyncAction.PaymentInfoAction + (*LabelReorderingAction)(nil), // 34: WASyncAction.LabelReorderingAction + (*DeleteIndividualCallLogAction)(nil), // 35: WASyncAction.DeleteIndividualCallLogAction + (*BotWelcomeRequestAction)(nil), // 36: WASyncAction.BotWelcomeRequestAction + (*CallLogAction)(nil), // 37: WASyncAction.CallLogAction + (*PrivacySettingRelayAllCalls)(nil), // 38: WASyncAction.PrivacySettingRelayAllCalls + (*ExternalWebBetaAction)(nil), // 39: WASyncAction.ExternalWebBetaAction + (*MarketingMessageBroadcastAction)(nil), // 40: WASyncAction.MarketingMessageBroadcastAction + (*PnForLidChatAction)(nil), // 41: WASyncAction.PnForLidChatAction + (*ChatAssignmentOpenedStatusAction)(nil), // 42: WASyncAction.ChatAssignmentOpenedStatusAction + (*ChatAssignmentAction)(nil), // 43: WASyncAction.ChatAssignmentAction + (*StickerAction)(nil), // 44: WASyncAction.StickerAction + (*RemoveRecentStickerAction)(nil), // 45: WASyncAction.RemoveRecentStickerAction + (*PrimaryVersionAction)(nil), // 46: WASyncAction.PrimaryVersionAction + (*NuxAction)(nil), // 47: WASyncAction.NuxAction + (*TimeFormatAction)(nil), // 48: WASyncAction.TimeFormatAction + (*UserStatusMuteAction)(nil), // 49: WASyncAction.UserStatusMuteAction + (*SubscriptionAction)(nil), // 50: WASyncAction.SubscriptionAction + (*AgentAction)(nil), // 51: WASyncAction.AgentAction + (*AndroidUnsupportedActions)(nil), // 52: WASyncAction.AndroidUnsupportedActions + (*PrimaryFeature)(nil), // 53: WASyncAction.PrimaryFeature + (*KeyExpiration)(nil), // 54: WASyncAction.KeyExpiration + (*SyncActionMessage)(nil), // 55: WASyncAction.SyncActionMessage + (*SyncActionMessageRange)(nil), // 56: WASyncAction.SyncActionMessageRange + (*UnarchiveChatsSetting)(nil), // 57: WASyncAction.UnarchiveChatsSetting + (*DeleteChatAction)(nil), // 58: WASyncAction.DeleteChatAction + (*ClearChatAction)(nil), // 59: WASyncAction.ClearChatAction + (*MarkChatAsReadAction)(nil), // 60: WASyncAction.MarkChatAsReadAction + (*DeleteMessageForMeAction)(nil), // 61: WASyncAction.DeleteMessageForMeAction + (*ArchiveChatAction)(nil), // 62: WASyncAction.ArchiveChatAction + (*RecentEmojiWeightsAction)(nil), // 63: WASyncAction.RecentEmojiWeightsAction + (*LabelAssociationAction)(nil), // 64: WASyncAction.LabelAssociationAction + (*QuickReplyAction)(nil), // 65: WASyncAction.QuickReplyAction + (*LocaleSetting)(nil), // 66: WASyncAction.LocaleSetting + (*PushNameSetting)(nil), // 67: WASyncAction.PushNameSetting + (*SecurityNotificationSetting)(nil), // 68: WASyncAction.SecurityNotificationSetting + (*PinAction)(nil), // 69: WASyncAction.PinAction + (*MuteAction)(nil), // 70: WASyncAction.MuteAction + (*ContactAction)(nil), // 71: WASyncAction.ContactAction + (*StarAction)(nil), // 72: WASyncAction.StarAction + (*SyncActionData)(nil), // 73: WASyncAction.SyncActionData + (*CallLogRecord_ParticipantInfo)(nil), // 74: WASyncAction.CallLogRecord.ParticipantInfo + (*FavoritesAction_Favorite)(nil), // 75: WASyncAction.FavoritesAction.Favorite + (*waChatLockSettings.ChatLockSettings)(nil), // 76: WAProtobufsChatLockSettings.ChatLockSettings + (*waDeviceCapabilities.DeviceCapabilities)(nil), // 77: WAProtobufsDeviceCapabilities.DeviceCapabilities + (*waCommon.MessageKey)(nil), // 78: WACommon.MessageKey } var file_waSyncAction_WASyncAction_proto_depIdxs = []int32{ 2, // 0: WASyncAction.CallLogRecord.callResult:type_name -> WASyncAction.CallLogRecord.CallResult 1, // 1: WASyncAction.CallLogRecord.silenceReason:type_name -> WASyncAction.CallLogRecord.SilenceReason - 72, // 2: WASyncAction.CallLogRecord.participants:type_name -> WASyncAction.CallLogRecord.ParticipantInfo + 74, // 2: WASyncAction.CallLogRecord.participants:type_name -> WASyncAction.CallLogRecord.ParticipantInfo 0, // 3: WASyncAction.CallLogRecord.callType:type_name -> WASyncAction.CallLogRecord.CallType 3, // 4: WASyncAction.NotificationActivitySettingAction.notificationActivitySetting:type_name -> WASyncAction.NotificationActivitySettingAction.NotificationActivitySetting 4, // 5: WASyncAction.WaffleAccountLinkStateAction.linkState:type_name -> WASyncAction.WaffleAccountLinkStateAction.AccountLinkState @@ -4699,77 +5243,79 @@ var file_waSyncAction_WASyncAction_proto_depIdxs = []int32{ 9, // 10: WASyncAction.UsernameChatStartModeAction.chatStartMode:type_name -> WASyncAction.UsernameChatStartModeAction.ChatStartMode 10, // 11: WASyncAction.LabelEditAction.type:type_name -> WASyncAction.LabelEditAction.ListType 11, // 12: WASyncAction.PatchDebugData.senderPlatform:type_name -> WASyncAction.PatchDebugData.Platform - 70, // 13: WASyncAction.SyncActionValue.starAction:type_name -> WASyncAction.StarAction - 69, // 14: WASyncAction.SyncActionValue.contactAction:type_name -> WASyncAction.ContactAction - 68, // 15: WASyncAction.SyncActionValue.muteAction:type_name -> WASyncAction.MuteAction - 67, // 16: WASyncAction.SyncActionValue.pinAction:type_name -> WASyncAction.PinAction - 66, // 17: WASyncAction.SyncActionValue.securityNotificationSetting:type_name -> WASyncAction.SecurityNotificationSetting - 65, // 18: WASyncAction.SyncActionValue.pushNameSetting:type_name -> WASyncAction.PushNameSetting - 63, // 19: WASyncAction.SyncActionValue.quickReplyAction:type_name -> WASyncAction.QuickReplyAction - 61, // 20: WASyncAction.SyncActionValue.recentEmojiWeightsAction:type_name -> WASyncAction.RecentEmojiWeightsAction + 72, // 13: WASyncAction.SyncActionValue.starAction:type_name -> WASyncAction.StarAction + 71, // 14: WASyncAction.SyncActionValue.contactAction:type_name -> WASyncAction.ContactAction + 70, // 15: WASyncAction.SyncActionValue.muteAction:type_name -> WASyncAction.MuteAction + 69, // 16: WASyncAction.SyncActionValue.pinAction:type_name -> WASyncAction.PinAction + 68, // 17: WASyncAction.SyncActionValue.securityNotificationSetting:type_name -> WASyncAction.SecurityNotificationSetting + 67, // 18: WASyncAction.SyncActionValue.pushNameSetting:type_name -> WASyncAction.PushNameSetting + 65, // 19: WASyncAction.SyncActionValue.quickReplyAction:type_name -> WASyncAction.QuickReplyAction + 63, // 20: WASyncAction.SyncActionValue.recentEmojiWeightsAction:type_name -> WASyncAction.RecentEmojiWeightsAction 20, // 21: WASyncAction.SyncActionValue.labelEditAction:type_name -> WASyncAction.LabelEditAction - 62, // 22: WASyncAction.SyncActionValue.labelAssociationAction:type_name -> WASyncAction.LabelAssociationAction - 64, // 23: WASyncAction.SyncActionValue.localeSetting:type_name -> WASyncAction.LocaleSetting - 60, // 24: WASyncAction.SyncActionValue.archiveChatAction:type_name -> WASyncAction.ArchiveChatAction - 59, // 25: WASyncAction.SyncActionValue.deleteMessageForMeAction:type_name -> WASyncAction.DeleteMessageForMeAction - 52, // 26: WASyncAction.SyncActionValue.keyExpiration:type_name -> WASyncAction.KeyExpiration - 58, // 27: WASyncAction.SyncActionValue.markChatAsReadAction:type_name -> WASyncAction.MarkChatAsReadAction - 57, // 28: WASyncAction.SyncActionValue.clearChatAction:type_name -> WASyncAction.ClearChatAction - 56, // 29: WASyncAction.SyncActionValue.deleteChatAction:type_name -> WASyncAction.DeleteChatAction - 55, // 30: WASyncAction.SyncActionValue.unarchiveChatsSetting:type_name -> WASyncAction.UnarchiveChatsSetting - 51, // 31: WASyncAction.SyncActionValue.primaryFeature:type_name -> WASyncAction.PrimaryFeature - 50, // 32: WASyncAction.SyncActionValue.androidUnsupportedActions:type_name -> WASyncAction.AndroidUnsupportedActions - 49, // 33: WASyncAction.SyncActionValue.agentAction:type_name -> WASyncAction.AgentAction - 48, // 34: WASyncAction.SyncActionValue.subscriptionAction:type_name -> WASyncAction.SubscriptionAction - 47, // 35: WASyncAction.SyncActionValue.userStatusMuteAction:type_name -> WASyncAction.UserStatusMuteAction - 46, // 36: WASyncAction.SyncActionValue.timeFormatAction:type_name -> WASyncAction.TimeFormatAction - 45, // 37: WASyncAction.SyncActionValue.nuxAction:type_name -> WASyncAction.NuxAction - 44, // 38: WASyncAction.SyncActionValue.primaryVersionAction:type_name -> WASyncAction.PrimaryVersionAction - 42, // 39: WASyncAction.SyncActionValue.stickerAction:type_name -> WASyncAction.StickerAction - 43, // 40: WASyncAction.SyncActionValue.removeRecentStickerAction:type_name -> WASyncAction.RemoveRecentStickerAction - 41, // 41: WASyncAction.SyncActionValue.chatAssignment:type_name -> WASyncAction.ChatAssignmentAction - 40, // 42: WASyncAction.SyncActionValue.chatAssignmentOpenedStatus:type_name -> WASyncAction.ChatAssignmentOpenedStatusAction - 39, // 43: WASyncAction.SyncActionValue.pnForLidChatAction:type_name -> WASyncAction.PnForLidChatAction + 64, // 22: WASyncAction.SyncActionValue.labelAssociationAction:type_name -> WASyncAction.LabelAssociationAction + 66, // 23: WASyncAction.SyncActionValue.localeSetting:type_name -> WASyncAction.LocaleSetting + 62, // 24: WASyncAction.SyncActionValue.archiveChatAction:type_name -> WASyncAction.ArchiveChatAction + 61, // 25: WASyncAction.SyncActionValue.deleteMessageForMeAction:type_name -> WASyncAction.DeleteMessageForMeAction + 54, // 26: WASyncAction.SyncActionValue.keyExpiration:type_name -> WASyncAction.KeyExpiration + 60, // 27: WASyncAction.SyncActionValue.markChatAsReadAction:type_name -> WASyncAction.MarkChatAsReadAction + 59, // 28: WASyncAction.SyncActionValue.clearChatAction:type_name -> WASyncAction.ClearChatAction + 58, // 29: WASyncAction.SyncActionValue.deleteChatAction:type_name -> WASyncAction.DeleteChatAction + 57, // 30: WASyncAction.SyncActionValue.unarchiveChatsSetting:type_name -> WASyncAction.UnarchiveChatsSetting + 53, // 31: WASyncAction.SyncActionValue.primaryFeature:type_name -> WASyncAction.PrimaryFeature + 52, // 32: WASyncAction.SyncActionValue.androidUnsupportedActions:type_name -> WASyncAction.AndroidUnsupportedActions + 51, // 33: WASyncAction.SyncActionValue.agentAction:type_name -> WASyncAction.AgentAction + 50, // 34: WASyncAction.SyncActionValue.subscriptionAction:type_name -> WASyncAction.SubscriptionAction + 49, // 35: WASyncAction.SyncActionValue.userStatusMuteAction:type_name -> WASyncAction.UserStatusMuteAction + 48, // 36: WASyncAction.SyncActionValue.timeFormatAction:type_name -> WASyncAction.TimeFormatAction + 47, // 37: WASyncAction.SyncActionValue.nuxAction:type_name -> WASyncAction.NuxAction + 46, // 38: WASyncAction.SyncActionValue.primaryVersionAction:type_name -> WASyncAction.PrimaryVersionAction + 44, // 39: WASyncAction.SyncActionValue.stickerAction:type_name -> WASyncAction.StickerAction + 45, // 40: WASyncAction.SyncActionValue.removeRecentStickerAction:type_name -> WASyncAction.RemoveRecentStickerAction + 43, // 41: WASyncAction.SyncActionValue.chatAssignment:type_name -> WASyncAction.ChatAssignmentAction + 42, // 42: WASyncAction.SyncActionValue.chatAssignmentOpenedStatus:type_name -> WASyncAction.ChatAssignmentOpenedStatusAction + 41, // 43: WASyncAction.SyncActionValue.pnForLidChatAction:type_name -> WASyncAction.PnForLidChatAction 18, // 44: WASyncAction.SyncActionValue.marketingMessageAction:type_name -> WASyncAction.MarketingMessageAction - 38, // 45: WASyncAction.SyncActionValue.marketingMessageBroadcastAction:type_name -> WASyncAction.MarketingMessageBroadcastAction - 37, // 46: WASyncAction.SyncActionValue.externalWebBetaAction:type_name -> WASyncAction.ExternalWebBetaAction - 36, // 47: WASyncAction.SyncActionValue.privacySettingRelayAllCalls:type_name -> WASyncAction.PrivacySettingRelayAllCalls - 35, // 48: WASyncAction.SyncActionValue.callLogAction:type_name -> WASyncAction.CallLogAction + 40, // 45: WASyncAction.SyncActionValue.marketingMessageBroadcastAction:type_name -> WASyncAction.MarketingMessageBroadcastAction + 39, // 46: WASyncAction.SyncActionValue.externalWebBetaAction:type_name -> WASyncAction.ExternalWebBetaAction + 38, // 47: WASyncAction.SyncActionValue.privacySettingRelayAllCalls:type_name -> WASyncAction.PrivacySettingRelayAllCalls + 37, // 48: WASyncAction.SyncActionValue.callLogAction:type_name -> WASyncAction.CallLogAction 17, // 49: WASyncAction.SyncActionValue.statusPrivacy:type_name -> WASyncAction.StatusPrivacyAction - 34, // 50: WASyncAction.SyncActionValue.botWelcomeRequestAction:type_name -> WASyncAction.BotWelcomeRequestAction - 33, // 51: WASyncAction.SyncActionValue.deleteIndividualCallLog:type_name -> WASyncAction.DeleteIndividualCallLogAction - 32, // 52: WASyncAction.SyncActionValue.labelReorderingAction:type_name -> WASyncAction.LabelReorderingAction - 31, // 53: WASyncAction.SyncActionValue.paymentInfoAction:type_name -> WASyncAction.PaymentInfoAction - 28, // 54: WASyncAction.SyncActionValue.customPaymentMethodsAction:type_name -> WASyncAction.CustomPaymentMethodsAction - 27, // 55: WASyncAction.SyncActionValue.lockChatAction:type_name -> WASyncAction.LockChatAction - 74, // 56: WASyncAction.SyncActionValue.chatLockSettings:type_name -> WAProtobufsChatLockSettings.ChatLockSettings - 26, // 57: WASyncAction.SyncActionValue.wamoUserIdentifierAction:type_name -> WASyncAction.WamoUserIdentifierAction - 25, // 58: WASyncAction.SyncActionValue.privacySettingDisableLinkPreviewsAction:type_name -> WASyncAction.PrivacySettingDisableLinkPreviewsAction - 75, // 59: WASyncAction.SyncActionValue.deviceCapabilities:type_name -> WAProtobufsDeviceCapabilities.DeviceCapabilities + 36, // 50: WASyncAction.SyncActionValue.botWelcomeRequestAction:type_name -> WASyncAction.BotWelcomeRequestAction + 35, // 51: WASyncAction.SyncActionValue.deleteIndividualCallLog:type_name -> WASyncAction.DeleteIndividualCallLogAction + 34, // 52: WASyncAction.SyncActionValue.labelReorderingAction:type_name -> WASyncAction.LabelReorderingAction + 33, // 53: WASyncAction.SyncActionValue.paymentInfoAction:type_name -> WASyncAction.PaymentInfoAction + 30, // 54: WASyncAction.SyncActionValue.customPaymentMethodsAction:type_name -> WASyncAction.CustomPaymentMethodsAction + 29, // 55: WASyncAction.SyncActionValue.lockChatAction:type_name -> WASyncAction.LockChatAction + 76, // 56: WASyncAction.SyncActionValue.chatLockSettings:type_name -> WAProtobufsChatLockSettings.ChatLockSettings + 28, // 57: WASyncAction.SyncActionValue.wamoUserIdentifierAction:type_name -> WASyncAction.WamoUserIdentifierAction + 27, // 58: WASyncAction.SyncActionValue.privacySettingDisableLinkPreviewsAction:type_name -> WASyncAction.PrivacySettingDisableLinkPreviewsAction + 77, // 59: WASyncAction.SyncActionValue.deviceCapabilities:type_name -> WAProtobufsDeviceCapabilities.DeviceCapabilities 16, // 60: WASyncAction.SyncActionValue.noteEditAction:type_name -> WASyncAction.NoteEditAction - 24, // 61: WASyncAction.SyncActionValue.favoritesAction:type_name -> WASyncAction.FavoritesAction + 26, // 61: WASyncAction.SyncActionValue.favoritesAction:type_name -> WASyncAction.FavoritesAction 15, // 62: WASyncAction.SyncActionValue.merchantPaymentPartnerAction:type_name -> WASyncAction.MerchantPaymentPartnerAction 14, // 63: WASyncAction.SyncActionValue.waffleAccountLinkStateAction:type_name -> WASyncAction.WaffleAccountLinkStateAction 19, // 64: WASyncAction.SyncActionValue.usernameChatStartMode:type_name -> WASyncAction.UsernameChatStartModeAction 13, // 65: WASyncAction.SyncActionValue.notificationActivitySettingAction:type_name -> WASyncAction.NotificationActivitySettingAction - 73, // 66: WASyncAction.FavoritesAction.favorites:type_name -> WASyncAction.FavoritesAction.Favorite - 29, // 67: WASyncAction.CustomPaymentMethodsAction.customPaymentMethods:type_name -> WASyncAction.CustomPaymentMethod - 30, // 68: WASyncAction.CustomPaymentMethod.metadata:type_name -> WASyncAction.CustomPaymentMethodMetadata - 12, // 69: WASyncAction.CallLogAction.callLogRecord:type_name -> WASyncAction.CallLogRecord - 76, // 70: WASyncAction.SyncActionMessage.key:type_name -> WACommon.MessageKey - 53, // 71: WASyncAction.SyncActionMessageRange.messages:type_name -> WASyncAction.SyncActionMessage - 54, // 72: WASyncAction.DeleteChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange - 54, // 73: WASyncAction.ClearChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange - 54, // 74: WASyncAction.MarkChatAsReadAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange - 54, // 75: WASyncAction.ArchiveChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange - 22, // 76: WASyncAction.RecentEmojiWeightsAction.weights:type_name -> WASyncAction.RecentEmojiWeight - 23, // 77: WASyncAction.SyncActionData.value:type_name -> WASyncAction.SyncActionValue - 2, // 78: WASyncAction.CallLogRecord.ParticipantInfo.callResult:type_name -> WASyncAction.CallLogRecord.CallResult - 79, // [79:79] is the sub-list for method output_type - 79, // [79:79] is the sub-list for method input_type - 79, // [79:79] is the sub-list for extension type_name - 79, // [79:79] is the sub-list for extension extendee - 0, // [0:79] is the sub-list for field type_name + 25, // 66: WASyncAction.SyncActionValue.lidContactAction:type_name -> WASyncAction.LidContactAction + 24, // 67: WASyncAction.SyncActionValue.ctwaPerCustomerDataSharingAction:type_name -> WASyncAction.CtwaPerCustomerDataSharingAction + 75, // 68: WASyncAction.FavoritesAction.favorites:type_name -> WASyncAction.FavoritesAction.Favorite + 31, // 69: WASyncAction.CustomPaymentMethodsAction.customPaymentMethods:type_name -> WASyncAction.CustomPaymentMethod + 32, // 70: WASyncAction.CustomPaymentMethod.metadata:type_name -> WASyncAction.CustomPaymentMethodMetadata + 12, // 71: WASyncAction.CallLogAction.callLogRecord:type_name -> WASyncAction.CallLogRecord + 78, // 72: WASyncAction.SyncActionMessage.key:type_name -> WACommon.MessageKey + 55, // 73: WASyncAction.SyncActionMessageRange.messages:type_name -> WASyncAction.SyncActionMessage + 56, // 74: WASyncAction.DeleteChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange + 56, // 75: WASyncAction.ClearChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange + 56, // 76: WASyncAction.MarkChatAsReadAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange + 56, // 77: WASyncAction.ArchiveChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange + 22, // 78: WASyncAction.RecentEmojiWeightsAction.weights:type_name -> WASyncAction.RecentEmojiWeight + 23, // 79: WASyncAction.SyncActionData.value:type_name -> WASyncAction.SyncActionValue + 2, // 80: WASyncAction.CallLogRecord.ParticipantInfo.callResult:type_name -> WASyncAction.CallLogRecord.CallResult + 81, // [81:81] is the sub-list for method output_type + 81, // [81:81] is the sub-list for method input_type + 81, // [81:81] is the sub-list for extension type_name + 81, // [81:81] is the sub-list for extension extendee + 0, // [0:81] is the sub-list for field type_name } func init() { file_waSyncAction_WASyncAction_proto_init() } @@ -4781,9 +5327,9 @@ func file_waSyncAction_WASyncAction_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waSyncAction_WASyncAction_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waSyncAction_WASyncAction_proto_rawDesc), len(file_waSyncAction_WASyncAction_proto_rawDesc)), NumEnums: 12, - NumMessages: 62, + NumMessages: 64, NumExtensions: 0, NumServices: 0, }, @@ -4793,7 +5339,6 @@ func file_waSyncAction_WASyncAction_proto_init() { MessageInfos: file_waSyncAction_WASyncAction_proto_msgTypes, }.Build() File_waSyncAction_WASyncAction_proto = out.File - file_waSyncAction_WASyncAction_proto_rawDesc = nil file_waSyncAction_WASyncAction_proto_goTypes = nil file_waSyncAction_WASyncAction_proto_depIdxs = nil } diff --git a/proto/waSyncAction/WASyncAction.pb.raw b/proto/waSyncAction/WASyncAction.pb.raw deleted file mode 100644 index f0384deb..00000000 Binary files a/proto/waSyncAction/WASyncAction.pb.raw and /dev/null differ diff --git a/proto/waSyncAction/WASyncAction.proto b/proto/waSyncAction/WASyncAction.proto index 4550608d..c02ab1e4 100644 --- a/proto/waSyncAction/WASyncAction.proto +++ b/proto/waSyncAction/WASyncAction.proto @@ -142,6 +142,8 @@ message LabelEditAction { FAVORITES = 3; PREDEFINED = 4; CUSTOM = 5; + COMMUNITY = 6; + SERVER_ASSIGNED = 7; } optional string name = 1; @@ -151,6 +153,7 @@ message LabelEditAction { optional int32 orderIndex = 5; optional bool isActive = 6; optional ListType type = 7; + optional bool isImmutable = 8; } message PatchDebugData { @@ -239,6 +242,19 @@ message SyncActionValue { optional WaffleAccountLinkStateAction waffleAccountLinkStateAction = 58; optional UsernameChatStartModeAction usernameChatStartMode = 59; optional NotificationActivitySettingAction notificationActivitySettingAction = 60; + optional LidContactAction lidContactAction = 61; + optional CtwaPerCustomerDataSharingAction ctwaPerCustomerDataSharingAction = 62; +} + +message CtwaPerCustomerDataSharingAction { + optional bool isCtwaPerCustomerDataSharingEnabled = 1; +} + +message LidContactAction { + optional string fullName = 1; + optional string firstName = 2; + optional string username = 3; + optional bool saveOnPrimaryAddressbook = 4; } message FavoritesAction { @@ -461,6 +477,8 @@ message ContactAction { optional string firstName = 2; optional string lidJID = 3; optional bool saveOnPrimaryAddressbook = 4; + optional string pnJID = 5; + optional string username = 6; } message StarAction { diff --git a/proto/waUserPassword/WAProtobufsUserPassword.pb.go b/proto/waUserPassword/WAProtobufsUserPassword.pb.go index c9a60bf8..5a235980 100644 --- a/proto/waUserPassword/WAProtobufsUserPassword.pb.go +++ b/proto/waUserPassword/WAProtobufsUserPassword.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waUserPassword/WAProtobufsUserPassword.proto @@ -9,11 +9,10 @@ package waUserPassword import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -343,17 +342,37 @@ func (*UserPassword_TransformerArg_Value_AsUnsignedInteger) isUserPassword_Trans var File_waUserPassword_WAProtobufsUserPassword_proto protoreflect.FileDescriptor -//go:embed WAProtobufsUserPassword.pb.raw -var file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc []byte +const file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc = "" + + "\n" + + ",waUserPassword/WAProtobufsUserPassword.proto\x12\x17WAProtobufsUserPassword\"\xfa\x04\n" + + "\fUserPassword\x12J\n" + + "\bencoding\x18\x01 \x01(\x0e2..WAProtobufsUserPassword.UserPassword.EncodingR\bencoding\x12S\n" + + "\vtransformer\x18\x02 \x01(\x0e21.WAProtobufsUserPassword.UserPassword.TransformerR\vtransformer\x12\\\n" + + "\x0etransformerArg\x18\x03 \x03(\v24.WAProtobufsUserPassword.UserPassword.TransformerArgR\x0etransformerArg\x12(\n" + + "\x0ftransformedData\x18\x04 \x01(\fR\x0ftransformedData\x1a\xd0\x01\n" + + "\x0eTransformerArg\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12P\n" + + "\x05value\x18\x02 \x01(\v2:.WAProtobufsUserPassword.UserPassword.TransformerArg.ValueR\x05value\x1aZ\n" + + "\x05Value\x12\x18\n" + + "\x06asBlob\x18\x01 \x01(\fH\x00R\x06asBlob\x12.\n" + + "\x11asUnsignedInteger\x18\x02 \x01(\rH\x00R\x11asUnsignedIntegerB\a\n" + + "\x05value\"G\n" + + "\vTransformer\x12\b\n" + + "\x04NONE\x10\x00\x12\x16\n" + + "\x12PBKDF2_HMAC_SHA512\x10\x01\x12\x16\n" + + "\x12PBKDF2_HMAC_SHA384\x10\x02\"%\n" + + "\bEncoding\x12\b\n" + + "\x04UTF8\x10\x00\x12\x0f\n" + + "\vUTF8_BROKEN\x10\x01B*Z(github.com/techwiz37/waSocket/proto/waUserPassword" var ( file_waUserPassword_WAProtobufsUserPassword_proto_rawDescOnce sync.Once - file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData = file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc + file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData []byte ) func file_waUserPassword_WAProtobufsUserPassword_proto_rawDescGZIP() []byte { file_waUserPassword_WAProtobufsUserPassword_proto_rawDescOnce.Do(func() { - file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData = protoimpl.X.CompressGZIP(file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData) + file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc), len(file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc))) }) return file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData } @@ -392,7 +411,7 @@ func file_waUserPassword_WAProtobufsUserPassword_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc), len(file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc)), NumEnums: 2, NumMessages: 3, NumExtensions: 0, @@ -404,7 +423,6 @@ func file_waUserPassword_WAProtobufsUserPassword_proto_init() { MessageInfos: file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes, }.Build() File_waUserPassword_WAProtobufsUserPassword_proto = out.File - file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc = nil file_waUserPassword_WAProtobufsUserPassword_proto_goTypes = nil file_waUserPassword_WAProtobufsUserPassword_proto_depIdxs = nil } diff --git a/proto/waUserPassword/WAProtobufsUserPassword.pb.raw b/proto/waUserPassword/WAProtobufsUserPassword.pb.raw deleted file mode 100644 index bae794d2..00000000 Binary files a/proto/waUserPassword/WAProtobufsUserPassword.pb.raw and /dev/null differ diff --git a/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go b/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go index fd8bf844..0fec7064 100644 --- a/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go +++ b/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waVnameCert/WAWebProtobufsVnameCert.proto @@ -9,11 +9,10 @@ package waVnameCert import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -729,17 +728,69 @@ func (x *VerifiedNameCertificate_Details) GetIssueTime() uint64 { var File_waVnameCert_WAWebProtobufsVnameCert_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsVnameCert.pb.raw -var file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc []byte +const file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc = "" + + "\n" + + ")waVnameCert/WAWebProtobufsVnameCert.proto\x12\x17WAWebProtobufsVnameCert\"\x9e\x03\n" + + "\x12BizAccountLinkInfo\x120\n" + + "\x13whatsappBizAcctFbid\x18\x01 \x01(\x04R\x13whatsappBizAcctFbid\x12.\n" + + "\x12whatsappAcctNumber\x18\x02 \x01(\tR\x12whatsappAcctNumber\x12\x1c\n" + + "\tissueTime\x18\x03 \x01(\x04R\tissueTime\x12]\n" + + "\vhostStorage\x18\x04 \x01(\x0e2;.WAWebProtobufsVnameCert.BizAccountLinkInfo.HostStorageTypeR\vhostStorage\x12Y\n" + + "\vaccountType\x18\x05 \x01(\x0e27.WAWebProtobufsVnameCert.BizAccountLinkInfo.AccountTypeR\vaccountType\"\x1d\n" + + "\vAccountType\x12\x0e\n" + + "\n" + + "ENTERPRISE\x10\x00\"/\n" + + "\x0fHostStorageType\x12\x0e\n" + + "\n" + + "ON_PREMISE\x10\x00\x12\f\n" + + "\bFACEBOOK\x10\x01\"\x81\x05\n" + + "\x0fBizIdentityInfo\x12S\n" + + "\x06vlevel\x18\x01 \x01(\x0e2;.WAWebProtobufsVnameCert.BizIdentityInfo.VerifiedLevelValueR\x06vlevel\x12N\n" + + "\tvnameCert\x18\x02 \x01(\v20.WAWebProtobufsVnameCert.VerifiedNameCertificateR\tvnameCert\x12\x16\n" + + "\x06signed\x18\x03 \x01(\bR\x06signed\x12\x18\n" + + "\arevoked\x18\x04 \x01(\bR\arevoked\x12Z\n" + + "\vhostStorage\x18\x05 \x01(\x0e28.WAWebProtobufsVnameCert.BizIdentityInfo.HostStorageTypeR\vhostStorage\x12]\n" + + "\factualActors\x18\x06 \x01(\x0e29.WAWebProtobufsVnameCert.BizIdentityInfo.ActualActorsTypeR\factualActors\x12$\n" + + "\rprivacyModeTS\x18\a \x01(\x04R\rprivacyModeTS\x12(\n" + + "\x0ffeatureControls\x18\b \x01(\x04R\x0ffeatureControls\"%\n" + + "\x10ActualActorsType\x12\b\n" + + "\x04SELF\x10\x00\x12\a\n" + + "\x03BSP\x10\x01\"/\n" + + "\x0fHostStorageType\x12\x0e\n" + + "\n" + + "ON_PREMISE\x10\x00\x12\f\n" + + "\bFACEBOOK\x10\x01\"4\n" + + "\x12VerifiedLevelValue\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\a\n" + + "\x03LOW\x10\x01\x12\b\n" + + "\x04HIGH\x10\x02\"S\n" + + "\rLocalizedName\x12\x0e\n" + + "\x02lg\x18\x01 \x01(\tR\x02lg\x12\x0e\n" + + "\x02lc\x18\x02 \x01(\tR\x02lc\x12\"\n" + + "\fverifiedName\x18\x03 \x01(\tR\fverifiedName\"\xc9\x02\n" + + "\x17VerifiedNameCertificate\x12\x18\n" + + "\adetails\x18\x01 \x01(\fR\adetails\x12\x1c\n" + + "\tsignature\x18\x02 \x01(\fR\tsignature\x12(\n" + + "\x0fserverSignature\x18\x03 \x01(\fR\x0fserverSignature\x1a\xcb\x01\n" + + "\aDetails\x12\x16\n" + + "\x06serial\x18\x01 \x01(\x04R\x06serial\x12\x16\n" + + "\x06issuer\x18\x02 \x01(\tR\x06issuer\x12\"\n" + + "\fverifiedName\x18\x04 \x01(\tR\fverifiedName\x12N\n" + + "\x0elocalizedNames\x18\b \x03(\v2&.WAWebProtobufsVnameCert.LocalizedNameR\x0elocalizedNames\x12\x1c\n" + + "\tissueTime\x18\n" + + " \x01(\x04R\tissueTime\"\x8d\x01\n" + + "\x11BizAccountPayload\x12N\n" + + "\tvnameCert\x18\x01 \x01(\v20.WAWebProtobufsVnameCert.VerifiedNameCertificateR\tvnameCert\x12(\n" + + "\x0fbizAcctLinkInfo\x18\x02 \x01(\fR\x0fbizAcctLinkInfoB'Z%github.com/techwiz37/waSocket/proto/waVnameCert" var ( file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescOnce sync.Once - file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescData = file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc + file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescData []byte ) func file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescGZIP() []byte { file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescOnce.Do(func() { - file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescData = protoimpl.X.CompressGZIP(file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescData) + file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc), len(file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc))) }) return file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDescData } @@ -784,7 +835,7 @@ func file_waVnameCert_WAWebProtobufsVnameCert_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc), len(file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc)), NumEnums: 5, NumMessages: 6, NumExtensions: 0, @@ -796,7 +847,6 @@ func file_waVnameCert_WAWebProtobufsVnameCert_proto_init() { MessageInfos: file_waVnameCert_WAWebProtobufsVnameCert_proto_msgTypes, }.Build() File_waVnameCert_WAWebProtobufsVnameCert_proto = out.File - file_waVnameCert_WAWebProtobufsVnameCert_proto_rawDesc = nil file_waVnameCert_WAWebProtobufsVnameCert_proto_goTypes = nil file_waVnameCert_WAWebProtobufsVnameCert_proto_depIdxs = nil } diff --git a/proto/waVnameCert/WAWebProtobufsVnameCert.pb.raw b/proto/waVnameCert/WAWebProtobufsVnameCert.pb.raw deleted file mode 100644 index 0b6c10c1..00000000 Binary files a/proto/waVnameCert/WAWebProtobufsVnameCert.pb.raw and /dev/null differ diff --git a/proto/waWa6/WAWebProtobufsWa6.pb.go b/proto/waWa6/WAWebProtobufsWa6.pb.go index 3496c303..ba11f2c3 100644 --- a/proto/waWa6/WAWebProtobufsWa6.pb.go +++ b/proto/waWa6/WAWebProtobufsWa6.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waWa6/WAWebProtobufsWa6.proto @@ -9,11 +9,10 @@ package waWa6 import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -2000,17 +1999,246 @@ func (x *HandshakeMessage_ClientHello) GetPayload() []byte { var File_waWa6_WAWebProtobufsWa6_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsWa6.pb.raw -var file_waWa6_WAWebProtobufsWa6_proto_rawDesc []byte +const file_waWa6_WAWebProtobufsWa6_proto_rawDesc = "" + + "\n" + + "\x1dwaWa6/WAWebProtobufsWa6.proto\x12\x11WAWebProtobufsWa6\"\xa3)\n" + + "\rClientPayload\x12\x1a\n" + + "\busername\x18\x01 \x01(\x04R\busername\x12\x18\n" + + "\apassive\x18\x03 \x01(\bR\apassive\x12H\n" + + "\tuserAgent\x18\x05 \x01(\v2*.WAWebProtobufsWa6.ClientPayload.UserAgentR\tuserAgent\x12B\n" + + "\awebInfo\x18\x06 \x01(\v2(.WAWebProtobufsWa6.ClientPayload.WebInfoR\awebInfo\x12\x1a\n" + + "\bpushName\x18\a \x01(\tR\bpushName\x12\x1c\n" + + "\tsessionID\x18\t \x01(\x0fR\tsessionID\x12\"\n" + + "\fshortConnect\x18\n" + + " \x01(\bR\fshortConnect\x12N\n" + + "\vconnectType\x18\f \x01(\x0e2,.WAWebProtobufsWa6.ClientPayload.ConnectTypeR\vconnectType\x12T\n" + + "\rconnectReason\x18\r \x01(\x0e2..WAWebProtobufsWa6.ClientPayload.ConnectReasonR\rconnectReason\x12\x16\n" + + "\x06shards\x18\x0e \x03(\x05R\x06shards\x12H\n" + + "\tdnsSource\x18\x0f \x01(\v2*.WAWebProtobufsWa6.ClientPayload.DNSSourceR\tdnsSource\x120\n" + + "\x13connectAttemptCount\x18\x10 \x01(\rR\x13connectAttemptCount\x12\x16\n" + + "\x06device\x18\x12 \x01(\rR\x06device\x12l\n" + + "\x11devicePairingData\x18\x13 \x01(\v2>.WAWebProtobufsWa6.ClientPayload.DevicePairingRegistrationDataR\x11devicePairingData\x12B\n" + + "\aproduct\x18\x14 \x01(\x0e2(.WAWebProtobufsWa6.ClientPayload.ProductR\aproduct\x12\x14\n" + + "\x05fbCat\x18\x15 \x01(\fR\x05fbCat\x12 \n" + + "\vfbUserAgent\x18\x16 \x01(\fR\vfbUserAgent\x12\x0e\n" + + "\x02oc\x18\x17 \x01(\bR\x02oc\x12\x0e\n" + + "\x02lc\x18\x18 \x01(\x05R\x02lc\x12Z\n" + + "\x0fiosAppExtension\x18\x1e \x01(\x0e20.WAWebProtobufsWa6.ClientPayload.IOSAppExtensionR\x0fiosAppExtension\x12\x18\n" + + "\afbAppID\x18\x1f \x01(\x04R\afbAppID\x12\x1e\n" + + "\n" + + "fbDeviceID\x18 \x01(\fR\n" + + "fbDeviceID\x12\x12\n" + + "\x04pull\x18! \x01(\bR\x04pull\x12\"\n" + + "\fpaddingBytes\x18\" \x01(\fR\fpaddingBytes\x12\x1c\n" + + "\tyearClass\x18$ \x01(\x05R\tyearClass\x12\x1a\n" + + "\bmemClass\x18% \x01(\x05R\bmemClass\x12N\n" + + "\vinteropData\x18& \x01(\v2,.WAWebProtobufsWa6.ClientPayload.InteropDataR\vinteropData\x12i\n" + + "\x14trafficAnonymization\x18( \x01(\x0e25.WAWebProtobufsWa6.ClientPayload.TrafficAnonymizationR\x14trafficAnonymization\x12$\n" + + "\rlidDbMigrated\x18) \x01(\bR\rlidDbMigrated\x12N\n" + + "\vaccountType\x18* \x01(\x0e2,.WAWebProtobufsWa6.ClientPayload.AccountTypeR\vaccountType\x1a\xea\x01\n" + + "\tDNSSource\x12\\\n" + + "\tdnsMethod\x18\x0f \x01(\x0e2>.WAWebProtobufsWa6.ClientPayload.DNSSource.DNSResolutionMethodR\tdnsMethod\x12\x1c\n" + + "\tappCached\x18\x10 \x01(\bR\tappCached\"a\n" + + "\x13DNSResolutionMethod\x12\n" + + "\n" + + "\x06SYSTEM\x10\x00\x12\n" + + "\n" + + "\x06GOOGLE\x10\x01\x12\r\n" + + "\tHARDCODED\x10\x02\x12\f\n" + + "\bOVERRIDE\x10\x03\x12\f\n" + + "\bFALLBACK\x10\x04\x12\a\n" + + "\x03MNS\x10\x05\x1a\xf4\x06\n" + + "\aWebInfo\x12\x1a\n" + + "\brefToken\x18\x01 \x01(\tR\brefToken\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\x12V\n" + + "\vwebdPayload\x18\x03 \x01(\v24.WAWebProtobufsWa6.ClientPayload.WebInfo.WebdPayloadR\vwebdPayload\x12_\n" + + "\x0ewebSubPlatform\x18\x04 \x01(\x0e27.WAWebProtobufsWa6.ClientPayload.WebInfo.WebSubPlatformR\x0ewebSubPlatform\x1a\x91\x04\n" + + "\vWebdPayload\x122\n" + + "\x14usesParticipantInKey\x18\x01 \x01(\bR\x14usesParticipantInKey\x128\n" + + "\x17supportsStarredMessages\x18\x02 \x01(\bR\x17supportsStarredMessages\x12:\n" + + "\x18supportsDocumentMessages\x18\x03 \x01(\bR\x18supportsDocumentMessages\x120\n" + + "\x13supportsURLMessages\x18\x04 \x01(\bR\x13supportsURLMessages\x12.\n" + + "\x12supportsMediaRetry\x18\x05 \x01(\bR\x12supportsMediaRetry\x12*\n" + + "\x10supportsE2EImage\x18\x06 \x01(\bR\x10supportsE2EImage\x12*\n" + + "\x10supportsE2EVideo\x18\a \x01(\bR\x10supportsE2EVideo\x12*\n" + + "\x10supportsE2EAudio\x18\b \x01(\bR\x10supportsE2EAudio\x120\n" + + "\x13supportsE2EDocument\x18\t \x01(\bR\x13supportsE2EDocument\x12$\n" + + "\rdocumentTypes\x18\n" + + " \x01(\tR\rdocumentTypes\x12\x1a\n" + + "\bfeatures\x18\v \x01(\fR\bfeatures\"f\n" + + "\x0eWebSubPlatform\x12\x0f\n" + + "\vWEB_BROWSER\x10\x00\x12\r\n" + + "\tAPP_STORE\x10\x01\x12\r\n" + + "\tWIN_STORE\x10\x02\x12\n" + + "\n" + + "\x06DARWIN\x10\x03\x12\t\n" + + "\x05WIN32\x10\x04\x12\x0e\n" + + "\n" + + "WIN_HYBRID\x10\x05\x1a\xc2\f\n" + + "\tUserAgent\x12O\n" + + "\bplatform\x18\x01 \x01(\x0e23.WAWebProtobufsWa6.ClientPayload.UserAgent.PlatformR\bplatform\x12U\n" + + "\n" + + "appVersion\x18\x02 \x01(\v25.WAWebProtobufsWa6.ClientPayload.UserAgent.AppVersionR\n" + + "appVersion\x12\x10\n" + + "\x03mcc\x18\x03 \x01(\tR\x03mcc\x12\x10\n" + + "\x03mnc\x18\x04 \x01(\tR\x03mnc\x12\x1c\n" + + "\tosVersion\x18\x05 \x01(\tR\tosVersion\x12\"\n" + + "\fmanufacturer\x18\x06 \x01(\tR\fmanufacturer\x12\x16\n" + + "\x06device\x18\a \x01(\tR\x06device\x12$\n" + + "\rosBuildNumber\x18\b \x01(\tR\rosBuildNumber\x12\x18\n" + + "\aphoneID\x18\t \x01(\tR\aphoneID\x12a\n" + + "\x0ereleaseChannel\x18\n" + + " \x01(\x0e29.WAWebProtobufsWa6.ClientPayload.UserAgent.ReleaseChannelR\x0ereleaseChannel\x124\n" + + "\x15localeLanguageIso6391\x18\v \x01(\tR\x15localeLanguageIso6391\x12@\n" + + "\x1blocaleCountryIso31661Alpha2\x18\f \x01(\tR\x1blocaleCountryIso31661Alpha2\x12 \n" + + "\vdeviceBoard\x18\r \x01(\tR\vdeviceBoard\x12 \n" + + "\vdeviceExpID\x18\x0e \x01(\tR\vdeviceExpID\x12U\n" + + "\n" + + "deviceType\x18\x0f \x01(\x0e25.WAWebProtobufsWa6.ClientPayload.UserAgent.DeviceTypeR\n" + + "deviceType\x12(\n" + + "\x0fdeviceModelType\x18\x10 \x01(\tR\x0fdeviceModelType\x1a\x9a\x01\n" + + "\n" + + "AppVersion\x12\x18\n" + + "\aprimary\x18\x01 \x01(\rR\aprimary\x12\x1c\n" + + "\tsecondary\x18\x02 \x01(\rR\tsecondary\x12\x1a\n" + + "\btertiary\x18\x03 \x01(\rR\btertiary\x12\x1e\n" + + "\n" + + "quaternary\x18\x04 \x01(\rR\n" + + "quaternary\x12\x18\n" + + "\aquinary\x18\x05 \x01(\rR\aquinary\"F\n" + + "\n" + + "DeviceType\x12\t\n" + + "\x05PHONE\x10\x00\x12\n" + + "\n" + + "\x06TABLET\x10\x01\x12\v\n" + + "\aDESKTOP\x10\x02\x12\f\n" + + "\bWEARABLE\x10\x03\x12\x06\n" + + "\x02VR\x10\x04\"=\n" + + "\x0eReleaseChannel\x12\v\n" + + "\aRELEASE\x10\x00\x12\b\n" + + "\x04BETA\x10\x01\x12\t\n" + + "\x05ALPHA\x10\x02\x12\t\n" + + "\x05DEBUG\x10\x03\"\x8a\x04\n" + + "\bPlatform\x12\v\n" + + "\aANDROID\x10\x00\x12\a\n" + + "\x03IOS\x10\x01\x12\x11\n" + + "\rWINDOWS_PHONE\x10\x02\x12\x0e\n" + + "\n" + + "BLACKBERRY\x10\x03\x12\x0f\n" + + "\vBLACKBERRYX\x10\x04\x12\a\n" + + "\x03S40\x10\x05\x12\a\n" + + "\x03S60\x10\x06\x12\x11\n" + + "\rPYTHON_CLIENT\x10\a\x12\t\n" + + "\x05TIZEN\x10\b\x12\x0e\n" + + "\n" + + "ENTERPRISE\x10\t\x12\x0f\n" + + "\vSMB_ANDROID\x10\n" + + "\x12\t\n" + + "\x05KAIOS\x10\v\x12\v\n" + + "\aSMB_IOS\x10\f\x12\v\n" + + "\aWINDOWS\x10\r\x12\a\n" + + "\x03WEB\x10\x0e\x12\n" + + "\n" + + "\x06PORTAL\x10\x0f\x12\x11\n" + + "\rGREEN_ANDROID\x10\x10\x12\x10\n" + + "\fGREEN_IPHONE\x10\x11\x12\x10\n" + + "\fBLUE_ANDROID\x10\x12\x12\x0f\n" + + "\vBLUE_IPHONE\x10\x13\x12\x12\n" + + "\x0eFBLITE_ANDROID\x10\x14\x12\x11\n" + + "\rMLITE_ANDROID\x10\x15\x12\x12\n" + + "\x0eIGLITE_ANDROID\x10\x16\x12\b\n" + + "\x04PAGE\x10\x17\x12\t\n" + + "\x05MACOS\x10\x18\x12\x0e\n" + + "\n" + + "OCULUS_MSG\x10\x19\x12\x0f\n" + + "\vOCULUS_CALL\x10\x1a\x12\t\n" + + "\x05MILAN\x10\x1b\x12\b\n" + + "\x04CAPI\x10\x1c\x12\n" + + "\n" + + "\x06WEAROS\x10\x1d\x12\f\n" + + "\bARDEVICE\x10\x1e\x12\f\n" + + "\bVRDEVICE\x10\x1f\x12\f\n" + + "\bBLUE_WEB\x10 \x12\b\n" + + "\x04IPAD\x10!\x12\b\n" + + "\x04TEST\x10\"\x12\x11\n" + + "\rSMART_GLASSES\x10#\x1aq\n" + + "\vInteropData\x12\x1c\n" + + "\taccountID\x18\x01 \x01(\x04R\taccountID\x12\x14\n" + + "\x05token\x18\x02 \x01(\fR\x05token\x12.\n" + + "\x12enableReadReceipts\x18\x03 \x01(\bR\x12enableReadReceipts\x1a\xfd\x01\n" + + "\x1dDevicePairingRegistrationData\x12\x16\n" + + "\x06eRegid\x18\x01 \x01(\fR\x06eRegid\x12\x1a\n" + + "\beKeytype\x18\x02 \x01(\fR\beKeytype\x12\x16\n" + + "\x06eIdent\x18\x03 \x01(\fR\x06eIdent\x12\x18\n" + + "\aeSkeyID\x18\x04 \x01(\fR\aeSkeyID\x12\x1a\n" + + "\beSkeyVal\x18\x05 \x01(\fR\beSkeyVal\x12\x1a\n" + + "\beSkeySig\x18\x06 \x01(\fR\beSkeySig\x12\x1c\n" + + "\tbuildHash\x18\a \x01(\fR\tbuildHash\x12 \n" + + "\vdeviceProps\x18\b \x01(\fR\vdeviceProps\"-\n" + + "\x14TrafficAnonymization\x12\a\n" + + "\x03OFF\x10\x00\x12\f\n" + + "\bSTANDARD\x10\x01\"%\n" + + "\vAccountType\x12\v\n" + + "\aDEFAULT\x10\x00\x12\t\n" + + "\x05GUEST\x10\x01\"W\n" + + "\aProduct\x12\f\n" + + "\bWHATSAPP\x10\x00\x12\r\n" + + "\tMESSENGER\x10\x01\x12\v\n" + + "\aINTEROP\x10\x02\x12\x10\n" + + "\fINTEROP_MSGR\x10\x03\x12\x10\n" + + "\fWHATSAPP_LID\x10\x04\"\xb0\x02\n" + + "\vConnectType\x12\x14\n" + + "\x10CELLULAR_UNKNOWN\x10\x00\x12\x10\n" + + "\fWIFI_UNKNOWN\x10\x01\x12\x11\n" + + "\rCELLULAR_EDGE\x10d\x12\x11\n" + + "\rCELLULAR_IDEN\x10e\x12\x11\n" + + "\rCELLULAR_UMTS\x10f\x12\x11\n" + + "\rCELLULAR_EVDO\x10g\x12\x11\n" + + "\rCELLULAR_GPRS\x10h\x12\x12\n" + + "\x0eCELLULAR_HSDPA\x10i\x12\x12\n" + + "\x0eCELLULAR_HSUPA\x10j\x12\x11\n" + + "\rCELLULAR_HSPA\x10k\x12\x11\n" + + "\rCELLULAR_CDMA\x10l\x12\x12\n" + + "\x0eCELLULAR_1XRTT\x10m\x12\x12\n" + + "\x0eCELLULAR_EHRPD\x10n\x12\x10\n" + + "\fCELLULAR_LTE\x10o\x12\x12\n" + + "\x0eCELLULAR_HSPAP\x10p\"\x86\x01\n" + + "\rConnectReason\x12\b\n" + + "\x04PUSH\x10\x00\x12\x12\n" + + "\x0eUSER_ACTIVATED\x10\x01\x12\r\n" + + "\tSCHEDULED\x10\x02\x12\x13\n" + + "\x0fERROR_RECONNECT\x10\x03\x12\x12\n" + + "\x0eNETWORK_SWITCH\x10\x04\x12\x12\n" + + "\x0ePING_RECONNECT\x10\x05\x12\v\n" + + "\aUNKNOWN\x10\x06\"T\n" + + "\x0fIOSAppExtension\x12\x13\n" + + "\x0fSHARE_EXTENSION\x10\x00\x12\x15\n" + + "\x11SERVICE_EXTENSION\x10\x01\x12\x15\n" + + "\x11INTENTS_EXTENSION\x10\x02\"\x8e\x04\n" + + "\x10HandshakeMessage\x12Q\n" + + "\vclientHello\x18\x02 \x01(\v2/.WAWebProtobufsWa6.HandshakeMessage.ClientHelloR\vclientHello\x12Q\n" + + "\vserverHello\x18\x03 \x01(\v2/.WAWebProtobufsWa6.HandshakeMessage.ServerHelloR\vserverHello\x12T\n" + + "\fclientFinish\x18\x04 \x01(\v20.WAWebProtobufsWa6.HandshakeMessage.ClientFinishR\fclientFinish\x1a@\n" + + "\fClientFinish\x12\x16\n" + + "\x06static\x18\x01 \x01(\fR\x06static\x12\x18\n" + + "\apayload\x18\x02 \x01(\fR\apayload\x1a]\n" + + "\vServerHello\x12\x1c\n" + + "\tephemeral\x18\x01 \x01(\fR\tephemeral\x12\x16\n" + + "\x06static\x18\x02 \x01(\fR\x06static\x12\x18\n" + + "\apayload\x18\x03 \x01(\fR\apayload\x1a]\n" + + "\vClientHello\x12\x1c\n" + + "\tephemeral\x18\x01 \x01(\fR\tephemeral\x12\x16\n" + + "\x06static\x18\x02 \x01(\fR\x06static\x12\x18\n" + + "\apayload\x18\x03 \x01(\fR\apayloadB!Z\x1fgithub.com/techwiz37/waSocket/proto/waWa6" var ( file_waWa6_WAWebProtobufsWa6_proto_rawDescOnce sync.Once - file_waWa6_WAWebProtobufsWa6_proto_rawDescData = file_waWa6_WAWebProtobufsWa6_proto_rawDesc + file_waWa6_WAWebProtobufsWa6_proto_rawDescData []byte ) func file_waWa6_WAWebProtobufsWa6_proto_rawDescGZIP() []byte { file_waWa6_WAWebProtobufsWa6_proto_rawDescOnce.Do(func() { - file_waWa6_WAWebProtobufsWa6_proto_rawDescData = protoimpl.X.CompressGZIP(file_waWa6_WAWebProtobufsWa6_proto_rawDescData) + file_waWa6_WAWebProtobufsWa6_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waWa6_WAWebProtobufsWa6_proto_rawDesc), len(file_waWa6_WAWebProtobufsWa6_proto_rawDesc))) }) return file_waWa6_WAWebProtobufsWa6_proto_rawDescData } @@ -2080,7 +2308,7 @@ func file_waWa6_WAWebProtobufsWa6_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waWa6_WAWebProtobufsWa6_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waWa6_WAWebProtobufsWa6_proto_rawDesc), len(file_waWa6_WAWebProtobufsWa6_proto_rawDesc)), NumEnums: 11, NumMessages: 12, NumExtensions: 0, @@ -2092,7 +2320,6 @@ func file_waWa6_WAWebProtobufsWa6_proto_init() { MessageInfos: file_waWa6_WAWebProtobufsWa6_proto_msgTypes, }.Build() File_waWa6_WAWebProtobufsWa6_proto = out.File - file_waWa6_WAWebProtobufsWa6_proto_rawDesc = nil file_waWa6_WAWebProtobufsWa6_proto_goTypes = nil file_waWa6_WAWebProtobufsWa6_proto_depIdxs = nil } diff --git a/proto/waWa6/WAWebProtobufsWa6.pb.raw b/proto/waWa6/WAWebProtobufsWa6.pb.raw deleted file mode 100644 index e4ad8a4a..00000000 Binary files a/proto/waWa6/WAWebProtobufsWa6.pb.raw and /dev/null differ diff --git a/proto/waWeb/WAWebProtobufsWeb.pb.go b/proto/waWeb/WAWebProtobufsWeb.pb.go index 5787f349..3872eefa 100644 --- a/proto/waWeb/WAWebProtobufsWeb.pb.go +++ b/proto/waWeb/WAWebProtobufsWeb.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waWeb/WAWebProtobufsWeb.proto @@ -9,14 +9,13 @@ package waWeb import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" waCommon "github.com/techwiz37/waSocket/proto/waCommon" waE2E "github.com/techwiz37/waSocket/proto/waE2E" - - _ "embed" ) const ( @@ -307,6 +306,8 @@ const ( WebMessageInfo_CHANGE_LID WebMessageInfo_StubType = 213 WebMessageInfo_BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE WebMessageInfo_StubType = 214 WebMessageInfo_BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE WebMessageInfo_StubType = 215 + WebMessageInfo_CHANGE_LIMIT_SHARING WebMessageInfo_StubType = 216 + WebMessageInfo_GROUP_MEMBER_LINK_MODE WebMessageInfo_StubType = 217 ) // Enum value maps for WebMessageInfo_StubType. @@ -528,6 +529,8 @@ var ( 213: "CHANGE_LID", 214: "BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE", 215: "BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE", + 216: "CHANGE_LIMIT_SHARING", + 217: "GROUP_MEMBER_LINK_MODE", } WebMessageInfo_StubType_value = map[string]int32{ "UNKNOWN": 0, @@ -746,6 +749,8 @@ var ( "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, } ) @@ -3698,17 +3703,559 @@ func (x *Citation) GetImageURL() string { var File_waWeb_WAWebProtobufsWeb_proto protoreflect.FileDescriptor -//go:embed WAWebProtobufsWeb.pb.raw -var file_waWeb_WAWebProtobufsWeb_proto_rawDesc []byte +const file_waWeb_WAWebProtobufsWeb_proto_rawDesc = "" + + "\n" + + "\x1dwaWeb/WAWebProtobufsWeb.proto\x12\x11WAWebProtobufsWeb\x1a\x1dwaE2E/WAWebProtobufsE2E.proto\x1a\x17waCommon/WACommon.proto\"\x94V\n" + + "\x0eWebMessageInfo\x12&\n" + + "\x03key\x18\x01 \x02(\v2\x14.WACommon.MessageKeyR\x03key\x124\n" + + "\amessage\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\x12*\n" + + "\x10messageTimestamp\x18\x03 \x01(\x04R\x10messageTimestamp\x12@\n" + + "\x06status\x18\x04 \x01(\x0e2(.WAWebProtobufsWeb.WebMessageInfo.StatusR\x06status\x12 \n" + + "\vparticipant\x18\x05 \x01(\tR\vparticipant\x120\n" + + "\x13messageC2STimestamp\x18\x06 \x01(\x04R\x13messageC2STimestamp\x12\x16\n" + + "\x06ignore\x18\x10 \x01(\bR\x06ignore\x12\x18\n" + + "\astarred\x18\x11 \x01(\bR\astarred\x12\x1c\n" + + "\tbroadcast\x18\x12 \x01(\bR\tbroadcast\x12\x1a\n" + + "\bpushName\x18\x13 \x01(\tR\bpushName\x124\n" + + "\x15mediaCiphertextSHA256\x18\x14 \x01(\fR\x15mediaCiphertextSHA256\x12\x1c\n" + + "\tmulticast\x18\x15 \x01(\bR\tmulticast\x12\x18\n" + + "\aurlText\x18\x16 \x01(\bR\aurlText\x12\x1c\n" + + "\turlNumber\x18\x17 \x01(\bR\turlNumber\x12T\n" + + "\x0fmessageStubType\x18\x18 \x01(\x0e2*.WAWebProtobufsWeb.WebMessageInfo.StubTypeR\x0fmessageStubType\x12\x1e\n" + + "\n" + + "clearMedia\x18\x19 \x01(\bR\n" + + "clearMedia\x124\n" + + "\x15messageStubParameters\x18\x1a \x03(\tR\x15messageStubParameters\x12\x1a\n" + + "\bduration\x18\x1b \x01(\rR\bduration\x12\x16\n" + + "\x06labels\x18\x1c \x03(\tR\x06labels\x12@\n" + + "\vpaymentInfo\x18\x1d \x01(\v2\x1e.WAWebProtobufsWeb.PaymentInfoR\vpaymentInfo\x12T\n" + + "\x11finalLiveLocation\x18\x1e \x01(\v2&.WAWebProtobufsE2E.LiveLocationMessageR\x11finalLiveLocation\x12L\n" + + "\x11quotedPaymentInfo\x18\x1f \x01(\v2\x1e.WAWebProtobufsWeb.PaymentInfoR\x11quotedPaymentInfo\x128\n" + + "\x17ephemeralStartTimestamp\x18 \x01(\x04R\x17ephemeralStartTimestamp\x12,\n" + + "\x11ephemeralDuration\x18! \x01(\rR\x11ephemeralDuration\x12*\n" + + "\x10ephemeralOffToOn\x18\" \x01(\bR\x10ephemeralOffToOn\x12.\n" + + "\x12ephemeralOutOfSync\x18# \x01(\bR\x12ephemeralOutOfSync\x12^\n" + + "\x10bizPrivacyStatus\x18$ \x01(\x0e22.WAWebProtobufsWeb.WebMessageInfo.BizPrivacyStatusR\x10bizPrivacyStatus\x12(\n" + + "\x0fverifiedBizName\x18% \x01(\tR\x0fverifiedBizName\x12:\n" + + "\tmediaData\x18& \x01(\v2\x1c.WAWebProtobufsWeb.MediaDataR\tmediaData\x12@\n" + + "\vphotoChange\x18' \x01(\v2\x1e.WAWebProtobufsWeb.PhotoChangeR\vphotoChange\x12@\n" + + "\vuserReceipt\x18( \x03(\v2\x1e.WAWebProtobufsWeb.UserReceiptR\vuserReceipt\x129\n" + + "\treactions\x18) \x03(\v2\x1b.WAWebProtobufsWeb.ReactionR\treactions\x12J\n" + + "\x11quotedStickerData\x18* \x01(\v2\x1c.WAWebProtobufsWeb.MediaDataR\x11quotedStickerData\x12(\n" + + "\x0ffutureproofData\x18+ \x01(\fR\x0ffutureproofData\x12:\n" + + "\tstatusPsa\x18, \x01(\v2\x1c.WAWebProtobufsWeb.StatusPSAR\tstatusPsa\x12?\n" + + "\vpollUpdates\x18- \x03(\v2\x1d.WAWebProtobufsWeb.PollUpdateR\vpollUpdates\x12a\n" + + "\x16pollAdditionalMetadata\x18. \x01(\v2).WAWebProtobufsWeb.PollAdditionalMetadataR\x16pollAdditionalMetadata\x12\x18\n" + + "\aagentID\x18/ \x01(\tR\aagentID\x120\n" + + "\x13statusAlreadyViewed\x180 \x01(\bR\x13statusAlreadyViewed\x12$\n" + + "\rmessageSecret\x181 \x01(\fR\rmessageSecret\x12=\n" + + "\n" + + "keepInChat\x182 \x01(\v2\x1d.WAWebProtobufsWeb.KeepInChatR\n" + + "keepInChat\x12H\n" + + "\x1foriginalSelfAuthorUserJIDString\x183 \x01(\tR\x1foriginalSelfAuthorUserJIDString\x126\n" + + "\x16revokeMessageTimestamp\x184 \x01(\x04R\x16revokeMessageTimestamp\x12:\n" + + "\tpinInChat\x186 \x01(\v2\x1c.WAWebProtobufsWeb.PinInChatR\tpinInChat\x12U\n" + + "\x12premiumMessageInfo\x187 \x01(\v2%.WAWebProtobufsWeb.PremiumMessageInfoR\x12premiumMessageInfo\x12,\n" + + "\x11is1PBizBotMessage\x188 \x01(\bR\x11is1PBizBotMessage\x124\n" + + "\x15isGroupHistoryMessage\x189 \x01(\bR\x15isGroupHistoryMessage\x122\n" + + "\x14botMessageInvokerJID\x18: \x01(\tR\x14botMessageInvokerJID\x12L\n" + + "\x0fcommentMetadata\x18; \x01(\v2\".WAWebProtobufsWeb.CommentMetadataR\x0fcommentMetadata\x12H\n" + + "\x0eeventResponses\x18= \x03(\v2 .WAWebProtobufsWeb.EventResponseR\x0eeventResponses\x12U\n" + + "\x12reportingTokenInfo\x18> \x01(\v2%.WAWebProtobufsWeb.ReportingTokenInfoR\x12reportingTokenInfo\x12.\n" + + "\x12newsletterServerID\x18? \x01(\x04R\x12newsletterServerID\x12d\n" + + "\x17eventAdditionalMetadata\x18@ \x01(\v2*.WAWebProtobufsWeb.EventAdditionalMetadataR\x17eventAdditionalMetadata\x120\n" + + "\x13isMentionedInStatus\x18A \x01(\bR\x13isMentionedInStatus\x12&\n" + + "\x0estatusMentions\x18B \x03(\tR\x0estatusMentions\x12>\n" + + "\x0ftargetMessageID\x18C \x01(\v2\x14.WACommon.MessageKeyR\x0ftargetMessageID\x12E\n" + + "\rmessageAddOns\x18D \x03(\v2\x1f.WAWebProtobufsWeb.MessageAddOnR\rmessageAddOns\x12c\n" + + "\x18statusMentionMessageInfo\x18E \x01(\v2'.WAWebProtobufsWeb.StatusMentionMessageR\x18statusMentionMessageInfo\x12.\n" + + "\x12isSupportAiMessage\x18F \x01(\bR\x12isSupportAiMessage\x122\n" + + "\x14statusMentionSources\x18G \x03(\tR\x14statusMentionSources\x12K\n" + + "\x12supportAiCitations\x18H \x03(\v2\x1b.WAWebProtobufsWeb.CitationR\x12supportAiCitations\x12 \n" + + "\vbotTargetID\x18I \x01(\tR\vbotTargetID\"=\n" + + "\x10BizPrivacyStatus\x12\b\n" + + "\x04E2EE\x10\x00\x12\x06\n" + + "\x02FB\x10\x02\x12\a\n" + + "\x03BSP\x10\x01\x12\x0e\n" + + "\n" + + "BSP_AND_FB\x10\x03\"\xef9\n" + + "\bStubType\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\n" + + "\n" + + "\x06REVOKE\x10\x01\x12\x0e\n" + + "\n" + + "CIPHERTEXT\x10\x02\x12\x0f\n" + + "\vFUTUREPROOF\x10\x03\x12\x1b\n" + + "\x17NON_VERIFIED_TRANSITION\x10\x04\x12\x19\n" + + "\x15UNVERIFIED_TRANSITION\x10\x05\x12\x17\n" + + "\x13VERIFIED_TRANSITION\x10\x06\x12\x18\n" + + "\x14VERIFIED_LOW_UNKNOWN\x10\a\x12\x11\n" + + "\rVERIFIED_HIGH\x10\b\x12\x1c\n" + + "\x18VERIFIED_INITIAL_UNKNOWN\x10\t\x12\x18\n" + + "\x14VERIFIED_INITIAL_LOW\x10\n" + + "\x12\x19\n" + + "\x15VERIFIED_INITIAL_HIGH\x10\v\x12#\n" + + "\x1fVERIFIED_TRANSITION_ANY_TO_NONE\x10\f\x12#\n" + + "\x1fVERIFIED_TRANSITION_ANY_TO_HIGH\x10\r\x12#\n" + + "\x1fVERIFIED_TRANSITION_HIGH_TO_LOW\x10\x0e\x12'\n" + + "#VERIFIED_TRANSITION_HIGH_TO_UNKNOWN\x10\x0f\x12&\n" + + "\"VERIFIED_TRANSITION_UNKNOWN_TO_LOW\x10\x10\x12&\n" + + "\"VERIFIED_TRANSITION_LOW_TO_UNKNOWN\x10\x11\x12#\n" + + "\x1fVERIFIED_TRANSITION_NONE_TO_LOW\x10\x12\x12'\n" + + "#VERIFIED_TRANSITION_NONE_TO_UNKNOWN\x10\x13\x12\x10\n" + + "\fGROUP_CREATE\x10\x14\x12\x18\n" + + "\x14GROUP_CHANGE_SUBJECT\x10\x15\x12\x15\n" + + "\x11GROUP_CHANGE_ICON\x10\x16\x12\x1c\n" + + "\x18GROUP_CHANGE_INVITE_LINK\x10\x17\x12\x1c\n" + + "\x18GROUP_CHANGE_DESCRIPTION\x10\x18\x12\x19\n" + + "\x15GROUP_CHANGE_RESTRICT\x10\x19\x12\x19\n" + + "\x15GROUP_CHANGE_ANNOUNCE\x10\x1a\x12\x19\n" + + "\x15GROUP_PARTICIPANT_ADD\x10\x1b\x12\x1c\n" + + "\x18GROUP_PARTICIPANT_REMOVE\x10\x1c\x12\x1d\n" + + "\x19GROUP_PARTICIPANT_PROMOTE\x10\x1d\x12\x1c\n" + + "\x18GROUP_PARTICIPANT_DEMOTE\x10\x1e\x12\x1c\n" + + "\x18GROUP_PARTICIPANT_INVITE\x10\x1f\x12\x1b\n" + + "\x17GROUP_PARTICIPANT_LEAVE\x10 \x12#\n" + + "\x1fGROUP_PARTICIPANT_CHANGE_NUMBER\x10!\x12\x14\n" + + "\x10BROADCAST_CREATE\x10\"\x12\x11\n" + + "\rBROADCAST_ADD\x10#\x12\x14\n" + + "\x10BROADCAST_REMOVE\x10$\x12\x18\n" + + "\x14GENERIC_NOTIFICATION\x10%\x12\x18\n" + + "\x14E2E_IDENTITY_CHANGED\x10&\x12\x11\n" + + "\rE2E_ENCRYPTED\x10'\x12\x15\n" + + "\x11CALL_MISSED_VOICE\x10(\x12\x15\n" + + "\x11CALL_MISSED_VIDEO\x10)\x12\x1c\n" + + "\x18INDIVIDUAL_CHANGE_NUMBER\x10*\x12\x10\n" + + "\fGROUP_DELETE\x10+\x12&\n" + + "\"GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE\x10,\x12\x1b\n" + + "\x17CALL_MISSED_GROUP_VOICE\x10-\x12\x1b\n" + + "\x17CALL_MISSED_GROUP_VIDEO\x10.\x12\x16\n" + + "\x12PAYMENT_CIPHERTEXT\x10/\x12\x17\n" + + "\x13PAYMENT_FUTUREPROOF\x100\x12,\n" + + "(PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED\x101\x12.\n" + + "*PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED\x102\x123\n" + + "/PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED\x103\x125\n" + + "1PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP\x104\x12<\n" + + "8PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP\x105\x12)\n" + + "%PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER\x106\x12(\n" + + "$PAYMENT_ACTION_SEND_PAYMENT_REMINDER\x107\x12*\n" + + "&PAYMENT_ACTION_SEND_PAYMENT_INVITATION\x108\x12#\n" + + "\x1fPAYMENT_ACTION_REQUEST_DECLINED\x109\x12\"\n" + + "\x1ePAYMENT_ACTION_REQUEST_EXPIRED\x10:\x12$\n" + + " PAYMENT_ACTION_REQUEST_CANCELLED\x10;\x12)\n" + + "%BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM\x10<\x12)\n" + + "%BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP\x10=\x12\x11\n" + + "\rBIZ_INTRO_TOP\x10>\x12\x14\n" + + "\x10BIZ_INTRO_BOTTOM\x10?\x12\x13\n" + + "\x0fBIZ_NAME_CHANGE\x10@\x12\x1c\n" + + "\x18BIZ_MOVE_TO_CONSUMER_APP\x10A\x12\x1e\n" + + "\x1aBIZ_TWO_TIER_MIGRATION_TOP\x10B\x12!\n" + + "\x1dBIZ_TWO_TIER_MIGRATION_BOTTOM\x10C\x12\r\n" + + "\tOVERSIZED\x10D\x12(\n" + + "$GROUP_CHANGE_NO_FREQUENTLY_FORWARDED\x10E\x12\x1c\n" + + "\x18GROUP_V4_ADD_INVITE_SENT\x10F\x12&\n" + + "\"GROUP_PARTICIPANT_ADD_REQUEST_JOIN\x10G\x12\x1c\n" + + "\x18CHANGE_EPHEMERAL_SETTING\x10H\x12\x16\n" + + "\x12E2E_DEVICE_CHANGED\x10I\x12\x0f\n" + + "\vVIEWED_ONCE\x10J\x12\x15\n" + + "\x11E2E_ENCRYPTED_NOW\x10K\x12\"\n" + + "\x1eBLUE_MSG_BSP_FB_TO_BSP_PREMISE\x10L\x12\x1e\n" + + "\x1aBLUE_MSG_BSP_FB_TO_SELF_FB\x10M\x12#\n" + + "\x1fBLUE_MSG_BSP_FB_TO_SELF_PREMISE\x10N\x12\x1e\n" + + "\x1aBLUE_MSG_BSP_FB_UNVERIFIED\x10O\x127\n" + + "3BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10P\x12\x1c\n" + + "\x18BLUE_MSG_BSP_FB_VERIFIED\x10Q\x127\n" + + "3BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10R\x12(\n" + + "$BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE\x10S\x12#\n" + + "\x1fBLUE_MSG_BSP_PREMISE_UNVERIFIED\x10T\x12<\n" + + "8BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10U\x12!\n" + + "\x1dBLUE_MSG_BSP_PREMISE_VERIFIED\x10V\x12<\n" + + "8BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10W\x12*\n" + + "&BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED\x10X\x12/\n" + + "+BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED\x10Y\x12+\n" + + "'BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED\x10Z\x120\n" + + ",BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED\x10[\x12#\n" + + "\x1fBLUE_MSG_SELF_FB_TO_BSP_PREMISE\x10\\\x12$\n" + + " BLUE_MSG_SELF_FB_TO_SELF_PREMISE\x10]\x12\x1f\n" + + "\x1bBLUE_MSG_SELF_FB_UNVERIFIED\x10^\x128\n" + + "4BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED\x10_\x12\x1d\n" + + "\x19BLUE_MSG_SELF_FB_VERIFIED\x10`\x128\n" + + "4BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED\x10a\x12(\n" + + "$BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE\x10b\x12$\n" + + " BLUE_MSG_SELF_PREMISE_UNVERIFIED\x10c\x12\"\n" + + "\x1eBLUE_MSG_SELF_PREMISE_VERIFIED\x10d\x12\x16\n" + + "\x12BLUE_MSG_TO_BSP_FB\x10e\x12\x18\n" + + "\x14BLUE_MSG_TO_CONSUMER\x10f\x12\x17\n" + + "\x13BLUE_MSG_TO_SELF_FB\x10g\x12*\n" + + "&BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED\x10h\x12/\n" + + "+BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10i\x12+\n" + + "'BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED\x10j\x12#\n" + + "\x1fBLUE_MSG_UNVERIFIED_TO_VERIFIED\x10k\x12*\n" + + "&BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED\x10l\x12/\n" + + "+BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10m\x12+\n" + + "'BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED\x10n\x12#\n" + + "\x1fBLUE_MSG_VERIFIED_TO_UNVERIFIED\x10o\x126\n" + + "2BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10p\x122\n" + + ".BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED\x10q\x126\n" + + "2BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10r\x122\n" + + ".BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED\x10s\x127\n" + + "3BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED\x10t\x127\n" + + "3BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED\x10u\x12\x1c\n" + + "\x18E2E_IDENTITY_UNAVAILABLE\x10v\x12\x12\n" + + "\x0eGROUP_CREATING\x10w\x12\x17\n" + + "\x13GROUP_CREATE_FAILED\x10x\x12\x11\n" + + "\rGROUP_BOUNCED\x10y\x12\x11\n" + + "\rBLOCK_CONTACT\x10z\x12!\n" + + "\x1dEPHEMERAL_SETTING_NOT_APPLIED\x10{\x12\x0f\n" + + "\vSYNC_FAILED\x10|\x12\v\n" + + "\aSYNCING\x10}\x12\x1c\n" + + "\x18BIZ_PRIVACY_MODE_INIT_FB\x10~\x12\x1d\n" + + "\x19BIZ_PRIVACY_MODE_INIT_BSP\x10\x7f\x12\x1b\n" + + "\x16BIZ_PRIVACY_MODE_TO_FB\x10\x80\x01\x12\x1c\n" + + "\x17BIZ_PRIVACY_MODE_TO_BSP\x10\x81\x01\x12\x16\n" + + "\x11DISAPPEARING_MODE\x10\x82\x01\x12\x1c\n" + + "\x17E2E_DEVICE_FETCH_FAILED\x10\x83\x01\x12\x11\n" + + "\fADMIN_REVOKE\x10\x84\x01\x12$\n" + + "\x1fGROUP_INVITE_LINK_GROWTH_LOCKED\x10\x85\x01\x12 \n" + + "\x1bCOMMUNITY_LINK_PARENT_GROUP\x10\x86\x01\x12!\n" + + "\x1cCOMMUNITY_LINK_SIBLING_GROUP\x10\x87\x01\x12\x1d\n" + + "\x18COMMUNITY_LINK_SUB_GROUP\x10\x88\x01\x12\"\n" + + "\x1dCOMMUNITY_UNLINK_PARENT_GROUP\x10\x89\x01\x12#\n" + + "\x1eCOMMUNITY_UNLINK_SIBLING_GROUP\x10\x8a\x01\x12\x1f\n" + + "\x1aCOMMUNITY_UNLINK_SUB_GROUP\x10\x8b\x01\x12\x1d\n" + + "\x18GROUP_PARTICIPANT_ACCEPT\x10\x8c\x01\x12(\n" + + "#GROUP_PARTICIPANT_LINKED_GROUP_JOIN\x10\x8d\x01\x12\x15\n" + + "\x10COMMUNITY_CREATE\x10\x8e\x01\x12\x1b\n" + + "\x16EPHEMERAL_KEEP_IN_CHAT\x10\x8f\x01\x12+\n" + + "&GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST\x10\x90\x01\x12(\n" + + "#GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE\x10\x91\x01\x12\"\n" + + "\x1dINTEGRITY_UNLINK_PARENT_GROUP\x10\x92\x01\x12\"\n" + + "\x1dCOMMUNITY_PARTICIPANT_PROMOTE\x10\x93\x01\x12!\n" + + "\x1cCOMMUNITY_PARTICIPANT_DEMOTE\x10\x94\x01\x12#\n" + + "\x1eCOMMUNITY_PARENT_GROUP_DELETED\x10\x95\x01\x124\n" + + "/COMMUNITY_LINK_PARENT_GROUP_MEMBERSHIP_APPROVAL\x10\x96\x01\x124\n" + + "/GROUP_PARTICIPANT_JOINED_GROUP_AND_PARENT_GROUP\x10\x97\x01\x12\x1a\n" + + "\x15MASKED_THREAD_CREATED\x10\x98\x01\x12\x1b\n" + + "\x16MASKED_THREAD_UNMASKED\x10\x99\x01\x12\x18\n" + + "\x13BIZ_CHAT_ASSIGNMENT\x10\x9a\x01\x12\r\n" + + "\bCHAT_PSA\x10\x9b\x01\x12\x1f\n" + + "\x1aCHAT_POLL_CREATION_MESSAGE\x10\x9c\x01\x12\x1e\n" + + "\x19CAG_MASKED_THREAD_CREATED\x10\x9d\x01\x12+\n" + + "&COMMUNITY_PARENT_GROUP_SUBJECT_CHANGED\x10\x9e\x01\x12\x18\n" + + "\x13CAG_INVITE_AUTO_ADD\x10\x9f\x01\x12!\n" + + "\x1cBIZ_CHAT_ASSIGNMENT_UNASSIGN\x10\xa0\x01\x12\x1b\n" + + "\x16CAG_INVITE_AUTO_JOINED\x10\xa1\x01\x12!\n" + + "\x1cSCHEDULED_CALL_START_MESSAGE\x10\xa2\x01\x12\x1a\n" + + "\x15COMMUNITY_INVITE_RICH\x10\xa3\x01\x12#\n" + + "\x1eCOMMUNITY_INVITE_AUTO_ADD_RICH\x10\xa4\x01\x12\x1a\n" + + "\x15SUB_GROUP_INVITE_RICH\x10\xa5\x01\x12#\n" + + "\x1eSUB_GROUP_PARTICIPANT_ADD_RICH\x10\xa6\x01\x12%\n" + + " COMMUNITY_LINK_PARENT_GROUP_RICH\x10\xa7\x01\x12#\n" + + "\x1eCOMMUNITY_PARTICIPANT_ADD_RICH\x10\xa8\x01\x12\"\n" + + "\x1dSILENCED_UNKNOWN_CALLER_AUDIO\x10\xa9\x01\x12\"\n" + + "\x1dSILENCED_UNKNOWN_CALLER_VIDEO\x10\xaa\x01\x12\x1a\n" + + "\x15GROUP_MEMBER_ADD_MODE\x10\xab\x01\x129\n" + + "4GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD\x10\xac\x01\x12!\n" + + "\x1cCOMMUNITY_CHANGE_DESCRIPTION\x10\xad\x01\x12\x12\n" + + "\rSENDER_INVITE\x10\xae\x01\x12\x14\n" + + "\x0fRECEIVER_INVITE\x10\xaf\x01\x12(\n" + + "#COMMUNITY_ALLOW_MEMBER_ADDED_GROUPS\x10\xb0\x01\x12\x1b\n" + + "\x16PINNED_MESSAGE_IN_CHAT\x10\xb1\x01\x12!\n" + + "\x1cPAYMENT_INVITE_SETUP_INVITER\x10\xb2\x01\x12.\n" + + ")PAYMENT_INVITE_SETUP_INVITEE_RECEIVE_ONLY\x10\xb3\x01\x122\n" + + "-PAYMENT_INVITE_SETUP_INVITEE_SEND_AND_RECEIVE\x10\xb4\x01\x12\x1c\n" + + "\x17LINKED_GROUP_CALL_START\x10\xb5\x01\x12#\n" + + "\x1eREPORT_TO_ADMIN_ENABLED_STATUS\x10\xb6\x01\x12\x1a\n" + + "\x15EMPTY_SUBGROUP_CREATE\x10\xb7\x01\x12\x1a\n" + + "\x15SCHEDULED_CALL_CANCEL\x10\xb8\x01\x12+\n" + + "&SUBGROUP_ADMIN_TRIGGERED_AUTO_ADD_RICH\x10\xb9\x01\x12(\n" + + "#GROUP_CHANGE_RECENT_HISTORY_SHARING\x10\xba\x01\x12$\n" + + "\x1fPAID_MESSAGE_SERVER_CAMPAIGN_ID\x10\xbb\x01\x12\x18\n" + + "\x13GENERAL_CHAT_CREATE\x10\xbc\x01\x12\x15\n" + + "\x10GENERAL_CHAT_ADD\x10\xbd\x01\x12#\n" + + "\x1eGENERAL_CHAT_AUTO_ADD_DISABLED\x10\xbe\x01\x12 \n" + + "\x1bSUGGESTED_SUBGROUP_ANNOUNCE\x10\xbf\x01\x12!\n" + + "\x1cBIZ_BOT_1P_MESSAGING_ENABLED\x10\xc0\x01\x12\x14\n" + + "\x0fCHANGE_USERNAME\x10\xc1\x01\x12\x1f\n" + + "\x1aBIZ_COEX_PRIVACY_INIT_SELF\x10\xc2\x01\x12%\n" + + " BIZ_COEX_PRIVACY_TRANSITION_SELF\x10\xc3\x01\x12\x19\n" + + "\x14SUPPORT_AI_EDUCATION\x10\xc4\x01\x12!\n" + + "\x1cBIZ_BOT_3P_MESSAGING_ENABLED\x10\xc5\x01\x12\x1b\n" + + "\x16REMINDER_SETUP_MESSAGE\x10\xc6\x01\x12\x1a\n" + + "\x15REMINDER_SENT_MESSAGE\x10\xc7\x01\x12\x1c\n" + + "\x17REMINDER_CANCEL_MESSAGE\x10\xc8\x01\x12\x1a\n" + + "\x15BIZ_COEX_PRIVACY_INIT\x10\xc9\x01\x12 \n" + + "\x1bBIZ_COEX_PRIVACY_TRANSITION\x10\xca\x01\x12\x16\n" + + "\x11GROUP_DEACTIVATED\x10\xcb\x01\x12'\n" + + "\"COMMUNITY_DEACTIVATE_SIBLING_GROUP\x10\xcc\x01\x12\x12\n" + + "\rEVENT_UPDATED\x10\xcd\x01\x12\x13\n" + + "\x0eEVENT_CANCELED\x10\xce\x01\x12\x1c\n" + + "\x17COMMUNITY_OWNER_UPDATED\x10\xcf\x01\x12*\n" + + "%COMMUNITY_SUB_GROUP_VISIBILITY_HIDDEN\x10\xd0\x01\x12$\n" + + "\x1fCAPI_GROUP_NE2EE_SYSTEM_MESSAGE\x10\xd1\x01\x12\x13\n" + + "\x0eSTATUS_MENTION\x10\xd2\x01\x12!\n" + + "\x1cUSER_CONTROLS_SYSTEM_MESSAGE\x10\xd3\x01\x12\x1b\n" + + "\x16SUPPORT_SYSTEM_MESSAGE\x10\xd4\x01\x12\x0f\n" + + "\n" + + "CHANGE_LID\x10\xd5\x01\x121\n" + + ",BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_IN_MESSAGE\x10\xd6\x01\x122\n" + + "-BIZ_CUSTOMER_3PD_DATA_SHARING_OPT_OUT_MESSAGE\x10\xd7\x01\x12\x19\n" + + "\x14CHANGE_LIMIT_SHARING\x10\xd8\x01\x12\x1b\n" + + "\x16GROUP_MEMBER_LINK_MODE\x10\xd9\x01\"X\n" + + "\x06Status\x12\t\n" + + "\x05ERROR\x10\x00\x12\v\n" + + "\aPENDING\x10\x01\x12\x0e\n" + + "\n" + + "SERVER_ACK\x10\x02\x12\x10\n" + + "\fDELIVERY_ACK\x10\x03\x12\b\n" + + "\x04READ\x10\x04\x12\n" + + "\n" + + "\x06PLAYED\x10\x05\"\xd9\f\n" + + "\vPaymentInfo\x12W\n" + + "\x12currencyDeprecated\x18\x01 \x01(\x0e2'.WAWebProtobufsWeb.PaymentInfo.CurrencyR\x12currencyDeprecated\x12\x1e\n" + + "\n" + + "amount1000\x18\x02 \x01(\x04R\n" + + "amount1000\x12 \n" + + "\vreceiverJID\x18\x03 \x01(\tR\vreceiverJID\x12=\n" + + "\x06status\x18\x04 \x01(\x0e2%.WAWebProtobufsWeb.PaymentInfo.StatusR\x06status\x122\n" + + "\x14transactionTimestamp\x18\x05 \x01(\x04R\x14transactionTimestamp\x12B\n" + + "\x11requestMessageKey\x18\x06 \x01(\v2\x14.WACommon.MessageKeyR\x11requestMessageKey\x12(\n" + + "\x0fexpiryTimestamp\x18\a \x01(\x04R\x0fexpiryTimestamp\x12$\n" + + "\rfutureproofed\x18\b \x01(\bR\rfutureproofed\x12\x1a\n" + + "\bcurrency\x18\t \x01(\tR\bcurrency\x12F\n" + + "\ttxnStatus\x18\n" + + " \x01(\x0e2(.WAWebProtobufsWeb.PaymentInfo.TxnStatusR\ttxnStatus\x12,\n" + + "\x11useNoviFiatFormat\x18\v \x01(\bR\x11useNoviFiatFormat\x12>\n" + + "\rprimaryAmount\x18\f \x01(\v2\x18.WAWebProtobufsE2E.MoneyR\rprimaryAmount\x12@\n" + + "\x0eexchangeAmount\x18\r \x01(\v2\x18.WAWebProtobufsE2E.MoneyR\x0eexchangeAmount\"\x99\x05\n" + + "\tTxnStatus\x12\v\n" + + "\aUNKNOWN\x10\x00\x12\x11\n" + + "\rPENDING_SETUP\x10\x01\x12\x1a\n" + + "\x16PENDING_RECEIVER_SETUP\x10\x02\x12\b\n" + + "\x04INIT\x10\x03\x12\v\n" + + "\aSUCCESS\x10\x04\x12\r\n" + + "\tCOMPLETED\x10\x05\x12\n" + + "\n" + + "\x06FAILED\x10\x06\x12\x0f\n" + + "\vFAILED_RISK\x10\a\x12\x15\n" + + "\x11FAILED_PROCESSING\x10\b\x12\x1e\n" + + "\x1aFAILED_RECEIVER_PROCESSING\x10\t\x12\r\n" + + "\tFAILED_DA\x10\n" + + "\x12\x13\n" + + "\x0fFAILED_DA_FINAL\x10\v\x12\x10\n" + + "\fREFUNDED_TXN\x10\f\x12\x11\n" + + "\rREFUND_FAILED\x10\r\x12\x1c\n" + + "\x18REFUND_FAILED_PROCESSING\x10\x0e\x12\x14\n" + + "\x10REFUND_FAILED_DA\x10\x0f\x12\x0f\n" + + "\vEXPIRED_TXN\x10\x10\x12\x11\n" + + "\rAUTH_CANCELED\x10\x11\x12!\n" + + "\x1dAUTH_CANCEL_FAILED_PROCESSING\x10\x12\x12\x16\n" + + "\x12AUTH_CANCEL_FAILED\x10\x13\x12\x10\n" + + "\fCOLLECT_INIT\x10\x14\x12\x13\n" + + "\x0fCOLLECT_SUCCESS\x10\x15\x12\x12\n" + + "\x0eCOLLECT_FAILED\x10\x16\x12\x17\n" + + "\x13COLLECT_FAILED_RISK\x10\x17\x12\x14\n" + + "\x10COLLECT_REJECTED\x10\x18\x12\x13\n" + + "\x0fCOLLECT_EXPIRED\x10\x19\x12\x14\n" + + "\x10COLLECT_CANCELED\x10\x1a\x12\x16\n" + + "\x12COLLECT_CANCELLING\x10\x1b\x12\r\n" + + "\tIN_REVIEW\x10\x1c\x12\x14\n" + + "\x10REVERSAL_SUCCESS\x10\x1d\x12\x14\n" + + "\x10REVERSAL_PENDING\x10\x1e\x12\x12\n" + + "\x0eREFUND_PENDING\x10\x1f\"\xcc\x01\n" + + "\x06Status\x12\x12\n" + + "\x0eUNKNOWN_STATUS\x10\x00\x12\x0e\n" + + "\n" + + "PROCESSING\x10\x01\x12\b\n" + + "\x04SENT\x10\x02\x12\x12\n" + + "\x0eNEED_TO_ACCEPT\x10\x03\x12\f\n" + + "\bCOMPLETE\x10\x04\x12\x16\n" + + "\x12COULD_NOT_COMPLETE\x10\x05\x12\f\n" + + "\bREFUNDED\x10\x06\x12\v\n" + + "\aEXPIRED\x10\a\x12\f\n" + + "\bREJECTED\x10\b\x12\r\n" + + "\tCANCELLED\x10\t\x12\x15\n" + + "\x11WAITING_FOR_PAYER\x10\n" + + "\x12\v\n" + + "\aWAITING\x10\v\")\n" + + "\bCurrency\x12\x14\n" + + "\x10UNKNOWN_CURRENCY\x10\x00\x12\a\n" + + "\x03INR\x10\x01\"\xab\x1d\n" + + "\vWebFeatures\x12I\n" + + "\rlabelsDisplay\x18\x01 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\rlabelsDisplay\x12[\n" + + "\x16voipIndividualOutgoing\x18\x02 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x16voipIndividualOutgoing\x12?\n" + + "\bgroupsV3\x18\x03 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\bgroupsV3\x12K\n" + + "\x0egroupsV3Create\x18\x04 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x0egroupsV3Create\x12K\n" + + "\x0echangeNumberV2\x18\x05 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x0echangeNumberV2\x12[\n" + + "\x16queryStatusV3Thumbnail\x18\x06 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x16queryStatusV3Thumbnail\x12I\n" + + "\rliveLocations\x18\a \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\rliveLocations\x12C\n" + + "\n" + + "queryVname\x18\b \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\n" + + "queryVname\x12[\n" + + "\x16voipIndividualIncoming\x18\t \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x16voipIndividualIncoming\x12Q\n" + + "\x11quickRepliesQuery\x18\n" + + " \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x11quickRepliesQuery\x12?\n" + + "\bpayments\x18\v \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\bpayments\x12O\n" + + "\x10stickerPackQuery\x18\f \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x10stickerPackQuery\x12S\n" + + "\x12liveLocationsFinal\x18\r \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x12liveLocationsFinal\x12C\n" + + "\n" + + "labelsEdit\x18\x0e \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\n" + + "labelsEdit\x12E\n" + + "\vmediaUpload\x18\x0f \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\vmediaUpload\x12e\n" + + "\x1bmediaUploadRichQuickReplies\x18\x12 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x1bmediaUploadRichQuickReplies\x12=\n" + + "\avnameV2\x18\x13 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\avnameV2\x12O\n" + + "\x10videoPlaybackURL\x18\x14 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x10videoPlaybackURL\x12I\n" + + "\rstatusRanking\x18\x15 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\rstatusRanking\x12U\n" + + "\x13voipIndividualVideo\x18\x16 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x13voipIndividualVideo\x12S\n" + + "\x12thirdPartyStickers\x18\x17 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x12thirdPartyStickers\x12c\n" + + "\x1afrequentlyForwardedSetting\x18\x18 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x1afrequentlyForwardedSetting\x12[\n" + + "\x16groupsV4JoinPermission\x18\x19 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x16groupsV4JoinPermission\x12K\n" + + "\x0erecentStickers\x18\x1a \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x0erecentStickers\x12=\n" + + "\acatalog\x18\x1b \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\acatalog\x12M\n" + + "\x0fstarredStickers\x18\x1c \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x0fstarredStickers\x12I\n" + + "\rvoipGroupCall\x18\x1d \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\rvoipGroupCall\x12M\n" + + "\x0ftemplateMessage\x18\x1e \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x0ftemplateMessage\x12g\n" + + "\x1ctemplateMessageInteractivity\x18\x1f \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x1ctemplateMessageInteractivity\x12Q\n" + + "\x11ephemeralMessages\x18 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x11ephemeralMessages\x12U\n" + + "\x13e2ENotificationSync\x18! \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x13e2ENotificationSync\x12O\n" + + "\x10recentStickersV2\x18\" \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x10recentStickersV2\x12O\n" + + "\x10recentStickersV3\x18$ \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x10recentStickersV3\x12C\n" + + "\n" + + "userNotice\x18% \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\n" + + "userNotice\x12=\n" + + "\asupport\x18' \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\asupport\x12M\n" + + "\x0fgroupUiiCleanup\x18( \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x0fgroupUiiCleanup\x12e\n" + + "\x1bgroupDogfoodingInternalOnly\x18) \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x1bgroupDogfoodingInternalOnly\x12G\n" + + "\fsettingsSync\x18* \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\fsettingsSync\x12A\n" + + "\tarchiveV2\x18+ \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\tarchiveV2\x12c\n" + + "\x1aephemeralAllowGroupMembers\x18, \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x1aephemeralAllowGroupMembers\x12W\n" + + "\x14ephemeral24HDuration\x18- \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x14ephemeral24HDuration\x12K\n" + + "\x0emdForceUpgrade\x18. \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x0emdForceUpgrade\x12O\n" + + "\x10disappearingMode\x18/ \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x10disappearingMode\x12_\n" + + "\x18externalMdOptInAvailable\x180 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x18externalMdOptInAvailable\x12_\n" + + "\x18noDeleteMessageTimeLimit\x181 \x01(\x0e2#.WAWebProtobufsWeb.WebFeatures.FlagR\x18noDeleteMessageTimeLimit\"K\n" + + "\x04Flag\x12\x0f\n" + + "\vNOT_STARTED\x10\x00\x12\x11\n" + + "\rFORCE_UPGRADE\x10\x01\x12\x0f\n" + + "\vDEVELOPMENT\x10\x02\x12\x0e\n" + + "\n" + + "PRODUCTION\x10\x03\"\xea\x02\n" + + "\tPinInChat\x125\n" + + "\x04type\x18\x01 \x01(\x0e2!.WAWebProtobufsWeb.PinInChat.TypeR\x04type\x12&\n" + + "\x03key\x18\x02 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12,\n" + + "\x11senderTimestampMS\x18\x03 \x01(\x03R\x11senderTimestampMS\x12,\n" + + "\x11serverTimestampMS\x18\x04 \x01(\x03R\x11serverTimestampMS\x12d\n" + + "\x17messageAddOnContextInfo\x18\x05 \x01(\v2*.WAWebProtobufsWeb.MessageAddOnContextInfoR\x17messageAddOnContextInfo\"<\n" + + "\x04Type\x12\x10\n" + + "\fUNKNOWN_TYPE\x10\x00\x12\x0f\n" + + "\vPIN_FOR_ALL\x10\x01\x12\x11\n" + + "\rUNPIN_FOR_ALL\x10\x02\"\x91\x05\n" + + "\fMessageAddOn\x12\\\n" + + "\x10messageAddOnType\x18\x01 \x01(\x0e20.WAWebProtobufsWeb.MessageAddOn.MessageAddOnTypeR\x10messageAddOnType\x12>\n" + + "\fmessageAddOn\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\fmessageAddOn\x12,\n" + + "\x11senderTimestampMS\x18\x03 \x01(\x03R\x11senderTimestampMS\x12,\n" + + "\x11serverTimestampMS\x18\x04 \x01(\x03R\x11serverTimestampMS\x12@\n" + + "\x06status\x18\x05 \x01(\x0e2(.WAWebProtobufsWeb.WebMessageInfo.StatusR\x06status\x12V\n" + + "\x10addOnContextInfo\x18\x06 \x01(\v2*.WAWebProtobufsWeb.MessageAddOnContextInfoR\x10addOnContextInfo\x12>\n" + + "\x0fmessageAddOnKey\x18\a \x01(\v2\x14.WACommon.MessageKeyR\x0fmessageAddOnKey\x12F\n" + + "\rlegacyMessage\x18\b \x01(\v2 .WAWebProtobufsWeb.LegacyMessageR\rlegacyMessage\"e\n" + + "\x10MessageAddOnType\x12\r\n" + + "\tUNDEFINED\x10\x00\x12\f\n" + + "\bREACTION\x10\x01\x12\x12\n" + + "\x0eEVENT_RESPONSE\x10\x02\x12\x0f\n" + + "\vPOLL_UPDATE\x10\x03\x12\x0f\n" + + "\vPIN_IN_CHAT\x10\x04\"s\n" + + "\x0fCommentMetadata\x12@\n" + + "\x10commentParentKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x10commentParentKey\x12\x1e\n" + + "\n" + + "replyCount\x18\x02 \x01(\rR\n" + + "replyCount\"\xd1\x01\n" + + "\x14WebNotificationsInfo\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x04R\ttimestamp\x12 \n" + + "\vunreadChats\x18\x03 \x01(\rR\vunreadChats\x12.\n" + + "\x12notifyMessageCount\x18\x04 \x01(\rR\x12notifyMessageCount\x12I\n" + + "\x0enotifyMessages\x18\x05 \x03(\v2!.WAWebProtobufsWeb.WebMessageInfoR\x0enotifyMessages\"\xc5\x01\n" + + "\x17NotificationMessageInfo\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x124\n" + + "\amessage\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\x12*\n" + + "\x10messageTimestamp\x18\x03 \x01(\x04R\x10messageTimestamp\x12 \n" + + "\vparticipant\x18\x04 \x01(\tR\vparticipant\"8\n" + + "\x12ReportingTokenInfo\x12\"\n" + + "\freportingTag\x18\x01 \x01(\fR\freportingTag\")\n" + + "\tMediaData\x12\x1c\n" + + "\tlocalPath\x18\x01 \x01(\tR\tlocalPath\"e\n" + + "\vPhotoChange\x12\x1a\n" + + "\boldPhoto\x18\x01 \x01(\fR\boldPhoto\x12\x1a\n" + + "\bnewPhoto\x18\x02 \x01(\fR\bnewPhoto\x12\x1e\n" + + "\n" + + "newPhotoID\x18\x03 \x01(\rR\n" + + "newPhotoID\"m\n" + + "\tStatusPSA\x12\x1e\n" + + "\n" + + "campaignID\x18, \x02(\x04R\n" + + "campaignID\x12@\n" + + "\x1bcampaignExpirationTimestamp\x18- \x01(\x04R\x1bcampaignExpirationTimestamp\"\xff\x01\n" + + "\vUserReceipt\x12\x18\n" + + "\auserJID\x18\x01 \x02(\tR\auserJID\x12*\n" + + "\x10receiptTimestamp\x18\x02 \x01(\x03R\x10receiptTimestamp\x12$\n" + + "\rreadTimestamp\x18\x03 \x01(\x03R\rreadTimestamp\x12(\n" + + "\x0fplayedTimestamp\x18\x04 \x01(\x03R\x0fplayedTimestamp\x12*\n" + + "\x10pendingDeviceJID\x18\x05 \x03(\tR\x10pendingDeviceJID\x12.\n" + + "\x12deliveredDeviceJID\x18\x06 \x03(\tR\x12deliveredDeviceJID\"\xae\x01\n" + + "\bReaction\x12&\n" + + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12\x12\n" + + "\x04text\x18\x02 \x01(\tR\x04text\x12 \n" + + "\vgroupingKey\x18\x03 \x01(\tR\vgroupingKey\x12,\n" + + "\x11senderTimestampMS\x18\x04 \x01(\x03R\x11senderTimestampMS\x12\x16\n" + + "\x06unread\x18\x05 \x01(\bR\x06unread\"\x82\x02\n" + + "\n" + + "PollUpdate\x12H\n" + + "\x14pollUpdateMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x14pollUpdateMessageKey\x126\n" + + "\x04vote\x18\x02 \x01(\v2\".WAWebProtobufsE2E.PollVoteMessageR\x04vote\x12,\n" + + "\x11senderTimestampMS\x18\x03 \x01(\x03R\x11senderTimestampMS\x12,\n" + + "\x11serverTimestampMS\x18\x04 \x01(\x03R\x11serverTimestampMS\x12\x16\n" + + "\x06unread\x18\x05 \x01(\bR\x06unread\"B\n" + + "\x16PollAdditionalMetadata\x12(\n" + + "\x0fpollInvalidated\x18\x01 \x01(\bR\x0fpollInvalidated\"3\n" + + "\x17EventAdditionalMetadata\x12\x18\n" + + "\aisStale\x18\x01 \x01(\bR\aisStale\"\x91\x02\n" + + "\n" + + "KeepInChat\x127\n" + + "\bkeepType\x18\x01 \x01(\x0e2\x1b.WAWebProtobufsE2E.KeepTypeR\bkeepType\x12(\n" + + "\x0fserverTimestamp\x18\x02 \x01(\x03R\x0fserverTimestamp\x12&\n" + + "\x03key\x18\x03 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12\x1c\n" + + "\tdeviceJID\x18\x04 \x01(\tR\tdeviceJID\x12,\n" + + "\x11clientTimestampMS\x18\x05 \x01(\x03R\x11clientTimestampMS\x12,\n" + + "\x11serverTimestampMS\x18\x06 \x01(\x03R\x11serverTimestampMS\"\xcf\x01\n" + + "\x17MessageAddOnContextInfo\x12>\n" + + "\x1amessageAddOnDurationInSecs\x18\x01 \x01(\rR\x1amessageAddOnDurationInSecs\x12t\n" + + "\x16messageAddOnExpiryType\x18\x02 \x01(\x0e2<.WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryTypeR\x16messageAddOnExpiryType\"@\n" + + "\x12PremiumMessageInfo\x12*\n" + + "\x10serverCampaignID\x18\x01 \x01(\tR\x10serverCampaignID\"\xf6\x01\n" + + "\rEventResponse\x12N\n" + + "\x17eventResponseMessageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x17eventResponseMessageKey\x12 \n" + + "\vtimestampMS\x18\x02 \x01(\x03R\vtimestampMS\x12[\n" + + "\x14eventResponseMessage\x18\x03 \x01(\v2'.WAWebProtobufsE2E.EventResponseMessageR\x14eventResponseMessage\x12\x16\n" + + "\x06unread\x18\x04 \x01(\bR\x06unread\"\xac\x01\n" + + "\rLegacyMessage\x12[\n" + + "\x14eventResponseMessage\x18\x01 \x01(\v2'.WAWebProtobufsE2E.EventResponseMessageR\x14eventResponseMessage\x12>\n" + + "\bpollVote\x18\x02 \x01(\v2\".WAWebProtobufsE2E.PollVoteMessageR\bpollVote\"V\n" + + "\x14StatusMentionMessage\x12>\n" + + "\fquotedStatus\x18\x01 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\fquotedStatus\"n\n" + + "\bCitation\x12\x14\n" + + "\x05title\x18\x01 \x02(\tR\x05title\x12\x1a\n" + + "\bsubtitle\x18\x02 \x02(\tR\bsubtitle\x12\x14\n" + + "\x05cmsID\x18\x03 \x02(\tR\x05cmsID\x12\x1a\n" + + "\bimageURL\x18\x04 \x02(\tR\bimageURLB!Z\x1fgithub.com/techwiz37/waSocket/proto/waWeb" var ( file_waWeb_WAWebProtobufsWeb_proto_rawDescOnce sync.Once - file_waWeb_WAWebProtobufsWeb_proto_rawDescData = file_waWeb_WAWebProtobufsWeb_proto_rawDesc + file_waWeb_WAWebProtobufsWeb_proto_rawDescData []byte ) func file_waWeb_WAWebProtobufsWeb_proto_rawDescGZIP() []byte { file_waWeb_WAWebProtobufsWeb_proto_rawDescOnce.Do(func() { - file_waWeb_WAWebProtobufsWeb_proto_rawDescData = protoimpl.X.CompressGZIP(file_waWeb_WAWebProtobufsWeb_proto_rawDescData) + file_waWeb_WAWebProtobufsWeb_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waWeb_WAWebProtobufsWeb_proto_rawDesc), len(file_waWeb_WAWebProtobufsWeb_proto_rawDesc))) }) return file_waWeb_WAWebProtobufsWeb_proto_rawDescData } @@ -3877,7 +4424,7 @@ func file_waWeb_WAWebProtobufsWeb_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waWeb_WAWebProtobufsWeb_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waWeb_WAWebProtobufsWeb_proto_rawDesc), len(file_waWeb_WAWebProtobufsWeb_proto_rawDesc)), NumEnums: 9, NumMessages: 24, NumExtensions: 0, @@ -3889,7 +4436,6 @@ func file_waWeb_WAWebProtobufsWeb_proto_init() { MessageInfos: file_waWeb_WAWebProtobufsWeb_proto_msgTypes, }.Build() File_waWeb_WAWebProtobufsWeb_proto = out.File - file_waWeb_WAWebProtobufsWeb_proto_rawDesc = nil file_waWeb_WAWebProtobufsWeb_proto_goTypes = nil file_waWeb_WAWebProtobufsWeb_proto_depIdxs = nil } diff --git a/proto/waWeb/WAWebProtobufsWeb.pb.raw b/proto/waWeb/WAWebProtobufsWeb.pb.raw deleted file mode 100644 index 56955c88..00000000 Binary files a/proto/waWeb/WAWebProtobufsWeb.pb.raw and /dev/null differ diff --git a/proto/waWeb/WAWebProtobufsWeb.proto b/proto/waWeb/WAWebProtobufsWeb.proto index 011b7bf9..09077a9d 100644 --- a/proto/waWeb/WAWebProtobufsWeb.proto +++ b/proto/waWeb/WAWebProtobufsWeb.proto @@ -230,6 +230,8 @@ 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; } enum Status { diff --git a/proto/waWinUIApi/WAWinUIApi.pb.go b/proto/waWinUIApi/WAWinUIApi.pb.go index cd4b74d6..ed159b1b 100644 --- a/proto/waWinUIApi/WAWinUIApi.pb.go +++ b/proto/waWinUIApi/WAWinUIApi.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.1 +// protoc-gen-go v1.36.6 // protoc v3.21.12 // source: waWinUIApi/WAWinUIApi.proto @@ -9,11 +9,10 @@ package waWinUIApi import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - _ "embed" ) const ( @@ -729,17 +728,78 @@ func (x *PositronMessage_WID) GetSerialized() string { var File_waWinUIApi_WAWinUIApi_proto protoreflect.FileDescriptor -//go:embed WAWinUIApi.pb.raw -var file_waWinUIApi_WAWinUIApi_proto_rawDesc []byte +const file_waWinUIApi_WAWinUIApi_proto_rawDesc = "" + + "\n" + + "\x1bwaWinUIApi/WAWinUIApi.proto\x12\n" + + "WAWinUIApi\"\xf5\x02\n" + + "\x0fPositronMessage\x12\x1c\n" + + "\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x12\n" + + "\x04body\x18\x03 \x01(\tR\x04body\x122\n" + + "\x02ID\x18\x04 \x01(\v2\".WAWinUIApi.PositronMessage.MsgKeyR\x02ID\x12\x12\n" + + "\x04JSON\x18c \x01(\tR\x04JSON\x1a\xac\x01\n" + + "\x06MsgKey\x12\x16\n" + + "\x06fromMe\x18\x01 \x01(\bR\x06fromMe\x127\n" + + "\x06remote\x18\x02 \x01(\v2\x1f.WAWinUIApi.PositronMessage.WIDR\x06remote\x12\x0e\n" + + "\x02ID\x18\x03 \x01(\tR\x02ID\x12A\n" + + "\vparticipant\x18\x04 \x01(\v2\x1f.WAWinUIApi.PositronMessage.WIDR\vparticipant\x1a%\n" + + "\x03WID\x12\x1e\n" + + "\n" + + "serialized\x18\x01 \x01(\tR\n" + + "serialized\"\x86\x01\n" + + "\fPositronChat\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x1c\n" + + "\ttimestamp\x18\x03 \x01(\x03R\ttimestamp\x12 \n" + + "\vunreadCount\x18\x04 \x01(\x03R\vunreadCount\x12\x12\n" + + "\x04JSON\x18c \x01(\tR\x04JSON\"\x9f\x01\n" + + "\x0fPositronContact\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12 \n" + + "\vphoneNumber\x18\x02 \x01(\tR\vphoneNumber\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x122\n" + + "\x14isAddressBookContact\x18\x04 \x01(\bR\x14isAddressBookContact\x12\x12\n" + + "\x04JSON\x18c \x01(\tR\x04JSON\"U\n" + + "\x15PositronGroupMetadata\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\x18\n" + + "\asubject\x18\x02 \x01(\tR\asubject\x12\x12\n" + + "\x04JSON\x18c \x01(\tR\x04JSON\"c\n" + + "\x19PositronGroupParticipants\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\"\n" + + "\fparticipants\x18\x02 \x03(\tR\fparticipants\x12\x12\n" + + "\x04JSON\x18c \x01(\tR\x04JSON\"\xc2\x01\n" + + "\x10PositronReaction\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\"\n" + + "\fparentMsgKey\x18\x02 \x01(\tR\fparentMsgKey\x12\"\n" + + "\freactionText\x18\x03 \x01(\tR\freactionText\x12\x1c\n" + + "\ttimestamp\x18\x04 \x01(\x03R\ttimestamp\x12$\n" + + "\rsenderUserJID\x18\x05 \x01(\tR\rsenderUserJID\x12\x12\n" + + "\x04JSON\x18c \x01(\tR\x04JSON\"\xca\x03\n" + + "\fPositronData\x12>\n" + + "\n" + + "dataSource\x18\x01 \x01(\x0e2\x1e.WAWinUIApi.PositronDataSourceR\n" + + "dataSource\x127\n" + + "\bmessages\x18\x02 \x03(\v2\x1b.WAWinUIApi.PositronMessageR\bmessages\x12.\n" + + "\x05chats\x18\x03 \x03(\v2\x18.WAWinUIApi.PositronChatR\x05chats\x127\n" + + "\bcontacts\x18\x04 \x03(\v2\x1b.WAWinUIApi.PositronContactR\bcontacts\x12G\n" + + "\rgroupMetadata\x18\x05 \x03(\v2!.WAWinUIApi.PositronGroupMetadataR\rgroupMetadata\x12S\n" + + "\x11groupParticipants\x18\x06 \x03(\v2%.WAWinUIApi.PositronGroupParticipantsR\x11groupParticipants\x12:\n" + + "\treactions\x18\a \x03(\v2\x1c.WAWinUIApi.PositronReactionR\treactions*v\n" + + "\x12PositronDataSource\x12\f\n" + + "\bMESSAGES\x10\x01\x12\t\n" + + "\x05CHATS\x10\x02\x12\f\n" + + "\bCONTACTS\x10\x03\x12\x12\n" + + "\x0eGROUP_METADATA\x10\x04\x12\x16\n" + + "\x12GROUP_PARTICIPANTS\x10\x05\x12\r\n" + + "\tREACTIONS\x10\x06B&Z$github.com/techwiz37/waSocket/proto/waWinUIApi" var ( file_waWinUIApi_WAWinUIApi_proto_rawDescOnce sync.Once - file_waWinUIApi_WAWinUIApi_proto_rawDescData = file_waWinUIApi_WAWinUIApi_proto_rawDesc + file_waWinUIApi_WAWinUIApi_proto_rawDescData []byte ) func file_waWinUIApi_WAWinUIApi_proto_rawDescGZIP() []byte { file_waWinUIApi_WAWinUIApi_proto_rawDescOnce.Do(func() { - file_waWinUIApi_WAWinUIApi_proto_rawDescData = protoimpl.X.CompressGZIP(file_waWinUIApi_WAWinUIApi_proto_rawDescData) + file_waWinUIApi_WAWinUIApi_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waWinUIApi_WAWinUIApi_proto_rawDesc), len(file_waWinUIApi_WAWinUIApi_proto_rawDesc))) }) return file_waWinUIApi_WAWinUIApi_proto_rawDescData } @@ -785,7 +845,7 @@ func file_waWinUIApi_WAWinUIApi_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_waWinUIApi_WAWinUIApi_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waWinUIApi_WAWinUIApi_proto_rawDesc), len(file_waWinUIApi_WAWinUIApi_proto_rawDesc)), NumEnums: 1, NumMessages: 9, NumExtensions: 0, @@ -797,7 +857,6 @@ func file_waWinUIApi_WAWinUIApi_proto_init() { MessageInfos: file_waWinUIApi_WAWinUIApi_proto_msgTypes, }.Build() File_waWinUIApi_WAWinUIApi_proto = out.File - file_waWinUIApi_WAWinUIApi_proto_rawDesc = nil file_waWinUIApi_WAWinUIApi_proto_goTypes = nil file_waWinUIApi_WAWinUIApi_proto_depIdxs = nil } diff --git a/proto/waWinUIApi/WAWinUIApi.pb.raw b/proto/waWinUIApi/WAWinUIApi.pb.raw deleted file mode 100644 index 23f2c792..00000000 --- a/proto/waWinUIApi/WAWinUIApi.pb.raw +++ /dev/null @@ -1,62 +0,0 @@ - -waWinUIApi/WAWinUIApi.proto -WAWinUIApi"õ -PositronMessage - timestamp (R timestamp -type ( Rtype -body ( Rbody2 -ID ( 2".WAWinUIApi.PositronMessage.MsgKeyRID -JSONc ( RJSON¬ -MsgKey -fromMe (RfromMe7 -remote ( 2.WAWinUIApi.PositronMessage.WIDRremote -ID ( RIDA - participant ( 2.WAWinUIApi.PositronMessage.WIDR participant% -WID - -serialized ( R -serialized"† - PositronChat -ID ( RID -name ( Rname - timestamp (R timestamp - unreadCount (R unreadCount -JSONc ( RJSON"Ÿ -PositronContact -ID ( RID - phoneNumber ( R phoneNumber -name ( Rname2 -isAddressBookContact (RisAddressBookContact -JSONc ( RJSON"U -PositronGroupMetadata -ID ( RID -subject ( Rsubject -JSONc ( RJSON"c -PositronGroupParticipants -ID ( RID" - participants ( R participants -JSONc ( RJSON"Â -PositronReaction -ID ( RID" - parentMsgKey ( R parentMsgKey" - reactionText ( R reactionText - timestamp (R timestamp$ - senderUserJID ( R senderUserJID -JSONc ( RJSON"Ê - PositronData> - -dataSource (2.WAWinUIApi.PositronDataSourceR -dataSource7 -messages ( 2.WAWinUIApi.PositronMessageRmessages. -chats ( 2.WAWinUIApi.PositronChatRchats7 -contacts ( 2.WAWinUIApi.PositronContactRcontactsG - groupMetadata ( 2!.WAWinUIApi.PositronGroupMetadataR groupMetadataS -groupParticipants ( 2%.WAWinUIApi.PositronGroupParticipantsRgroupParticipants: - reactions ( 2.WAWinUIApi.PositronReactionR reactions*v -PositronDataSource -MESSAGES -CHATS -CONTACTS -GROUP_METADATA -GROUP_PARTICIPANTS - REACTIONSB&Z$go.mau.fi/whatsmeow/proto/waWinUIApi \ No newline at end of file diff --git a/receipt.go b/receipt.go index f11c2ddb..1880aa6a 100644 --- a/receipt.go +++ b/receipt.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "fmt" "time" @@ -23,7 +24,7 @@ func (cli *Client) handleReceipt(node *waBinary.Node) { } else if receipt != nil { if receipt.Type == types.ReceiptTypeRetry { go func() { - err := cli.handleRetryReceipt(receipt, node) + err := cli.handleRetryReceipt(context.TODO(), receipt, node) if err != nil { cli.Log.Errorf("Failed to handle retry receipt for %s/%s from %s: %v", receipt.Chat, receipt.MessageIDs[0], receipt.Sender, err) } @@ -122,7 +123,10 @@ func (cli *Client) sendAck(node *waBinary.Node) { // TODO this hack probably needs to be removed at some point recipientJID, ok := recipient.(types.JID) if ok && recipientJID.Server == types.BotServer && node.Tag == "message" { - attrs["recipient"] = types.BotJIDMap[recipientJID] + altRecipient, ok := types.BotJIDMap[recipientJID] + if ok { + attrs["recipient"] = altRecipient + } } } if receiptType, ok := node.Attrs["type"]; node.Tag != "message" && ok { @@ -166,7 +170,7 @@ func (cli *Client) MarkRead(ids []types.MessageID, timestamp time.Time, chat, se "t": timestamp.Unix(), }, } - if chat.Server == types.NewsletterServer || cli.GetPrivacySettings().ReadReceipts == types.PrivacySettingNone { + if chat.Server == types.NewsletterServer || cli.GetPrivacySettings(context.TODO()).ReadReceipts == types.PrivacySettingNone { switch receiptType { case types.ReceiptTypeRead: node.Attrs["type"] = string(types.ReceiptTypeReadSelf) diff --git a/retry.go b/retry.go index 5f87c174..28c99c75 100644 --- a/retry.go +++ b/retry.go @@ -69,7 +69,7 @@ func (cli *Client) getRecentMessage(to types.JID, id types.MessageID) RecentMess return msg } -func (cli *Client) getMessageForRetry(receipt *events.Receipt, messageID types.MessageID) (RecentMessage, error) { +func (cli *Client) getMessageForRetry(ctx context.Context, receipt *events.Receipt, messageID types.MessageID) (RecentMessage, error) { msg := cli.getRecentMessage(receipt.Chat, messageID) if msg.IsEmpty() { waMsg := cli.GetMessageForRetry(receipt.Sender, receipt.Chat, messageID) @@ -87,10 +87,12 @@ func (cli *Client) getMessageForRetry(receipt *events.Receipt, messageID types.M const recreateSessionTimeout = 1 * time.Hour -func (cli *Client) shouldRecreateSession(retryCount int, jid types.JID) (reason string, recreate bool) { +func (cli *Client) shouldRecreateSession(ctx context.Context, retryCount int, jid types.JID) (reason string, recreate bool) { cli.sessionRecreateHistoryLock.Lock() defer cli.sessionRecreateHistoryLock.Unlock() - if !cli.Store.ContainsSession(jid.SignalAddress()) { + if contains, err := cli.Store.ContainsSession(ctx, jid.SignalAddress()); err != nil { + return "", false + } else if !contains { cli.sessionRecreateHistory[jid] = time.Now() return "we don't have a Signal session with them", true } else if retryCount < 2 { @@ -110,7 +112,7 @@ type incomingRetryKey struct { } // handleRetryReceipt handles an incoming retry receipt for an outgoing message. -func (cli *Client) handleRetryReceipt(receipt *events.Receipt, node *waBinary.Node) error { +func (cli *Client) handleRetryReceipt(ctx context.Context, receipt *events.Receipt, node *waBinary.Node) error { retryChild, ok := node.GetOptionalChildByTag("retry") if !ok { return &ElementMissingError{Tag: "retry", In: "retry receipt"} @@ -122,7 +124,7 @@ func (cli *Client) handleRetryReceipt(receipt *events.Receipt, node *waBinary.No if !ag.OK() { return ag.Error() } - msg, err := cli.getMessageForRetry(receipt, messageID) + msg, err := cli.getMessageForRetry(ctx, receipt, messageID) if err != nil { return err } @@ -152,7 +154,7 @@ func (cli *Client) handleRetryReceipt(receipt *events.Receipt, node *waBinary.No if receipt.IsGroup { builder := groups.NewGroupSessionBuilder(cli.Store, pbSerializer) senderKeyName := protocol.NewSenderKeyName(receipt.Chat.String(), cli.getOwnLID().SignalAddress()) - signalSKDMessage, err := builder.Create(senderKeyName) + signalSKDMessage, err := builder.Create(ctx, senderKeyName) if err != nil { cli.Log.Warnf("Failed to create sender key distribution message to include in retry of %s in %s to %s: %v", messageID, receipt.Chat, receipt.Sender, err) } @@ -210,10 +212,10 @@ func (cli *Client) handleRetryReceipt(receipt *events.Receipt, node *waBinary.No if err != nil { return fmt.Errorf("failed to read prekey bundle in retry receipt: %w", err) } - } else if reason, recreate := cli.shouldRecreateSession(retryCount, receipt.Sender); recreate { + } else if reason, recreate := cli.shouldRecreateSession(ctx, retryCount, receipt.Sender); recreate { cli.Log.Debugf("Fetching prekeys for %s for handling retry receipt with no prekey bundle because %s", receipt.Sender, reason) var keys map[types.JID]preKeyResp - keys, err = cli.fetchPreKeys(context.TODO(), []types.JID{receipt.Sender}) + keys, err = cli.fetchPreKeys(ctx, []types.JID{receipt.Sender}) if err != nil { return err } @@ -242,17 +244,17 @@ func (cli *Client) handleRetryReceipt(receipt *events.Receipt, node *waBinary.No if msg.wa != nil { encryptionIdentity := receipt.Sender if receipt.Sender.Server == types.DefaultUserServer { - lidForPN, err := cli.Store.LIDs.GetLIDForPN(context.TODO(), receipt.Sender) + lidForPN, err := cli.Store.LIDs.GetLIDForPN(ctx, receipt.Sender) if err != nil { cli.Log.Warnf("Failed to get LID for %s: %v", receipt.Sender, err) } else if !lidForPN.IsEmpty() { - cli.migrateSessionStore(receipt.Sender, lidForPN) + cli.migrateSessionStore(ctx, receipt.Sender, lidForPN) encryptionIdentity = lidForPN } } - encrypted, includeDeviceIdentity, err = cli.encryptMessageForDevice(plaintext, encryptionIdentity, bundle, encAttrs) + encrypted, includeDeviceIdentity, err = cli.encryptMessageForDevice(ctx, plaintext, encryptionIdentity, bundle, encAttrs) } else { - encrypted, err = cli.encryptMessageForDeviceV3(&waMsgTransport.MessageTransport_Payload{ + encrypted, err = cli.encryptMessageForDeviceV3(ctx, &waMsgTransport.MessageTransport_Payload{ ApplicationPayload: &waCommon.SubProtocol{ Payload: plaintext, Version: proto.Int32(FBMessageApplicationVersion), @@ -359,6 +361,7 @@ func (cli *Client) delayedRequestMessageFromPhone(info *types.MessageInfo) { } else { cli.Log.Debugf("Requested message %s from phone", info.ID) } + return } func (cli *Client) clearDelayedMessageRequests() { @@ -370,7 +373,7 @@ func (cli *Client) clearDelayedMessageRequests() { } // sendRetryReceipt sends a retry receipt for an incoming message. -func (cli *Client) sendRetryReceipt(node *waBinary.Node, info *types.MessageInfo, forceIncludeIdentity bool) { +func (cli *Client) sendRetryReceipt(ctx context.Context, node *waBinary.Node, info *types.MessageInfo, forceIncludeIdentity bool) { id, _ := node.Attrs["id"].(string) children := node.GetChildren() var retryCountInMsg int @@ -422,7 +425,7 @@ func (cli *Client) sendRetryReceipt(node *waBinary.Node, info *types.MessageInfo }, } if retryCount > 1 || forceIncludeIdentity { - if key, err := cli.Store.PreKeys.GenOnePreKey(); err != nil { + if key, err := cli.Store.PreKeys.GenOnePreKey(ctx); err != nil { cli.Log.Errorf("Failed to get prekey for retry receipt: %v", err) } else if deviceIdentity, err := proto.Marshal(cli.Store.Account); err != nil { cli.Log.Errorf("Failed to marshal account info: %v", err) diff --git a/send.go b/send.go index 967f20d7..0c4df636 100644 --- a/send.go +++ b/send.go @@ -36,6 +36,8 @@ import ( "github.com/techwiz37/waSocket/types/events" ) +const WebMessageIDPrefix = "3EB0" + // GenerateMessageID generates a random string that can be used as a message ID on WhatsApp. // // msgID := cli.GenerateMessageID() @@ -53,7 +55,7 @@ func (cli *Client) GenerateMessageID() types.MessageID { } data = append(data, random.Bytes(16)...) hash := sha256.Sum256(data) - return "3EB0" + strings.ToUpper(hex.EncodeToString(hash[:9])) + return WebMessageIDPrefix + strings.ToUpper(hex.EncodeToString(hash[:9])) } func GenerateFacebookMessageID() int64 { @@ -68,7 +70,7 @@ func GenerateFacebookMessageID() int64 { // // Deprecated: WhatsApp web has switched to using a hash of the current timestamp, user id and random bytes. Use Client.GenerateMessageID instead. func GenerateMessageID() types.MessageID { - return "3EB0" + strings.ToUpper(hex.EncodeToString(random.Bytes(8))) + return WebMessageIDPrefix + strings.ToUpper(hex.EncodeToString(random.Bytes(8))) } type MessageDebugTimings struct { @@ -147,6 +149,9 @@ type SendRequestExtra struct { MediaHandle string Meta *types.MsgMetaInfo + + // When sending status message you can specify the recipients + Participants []types.JID } // SendMessage sends the given message. @@ -304,11 +309,14 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E extraParams.addressingMode = types.AddressingModePN } } else { - // TODO use context - groupParticipants, err = cli.getBroadcastListParticipants(to) - if err != nil { - err = fmt.Errorf("failed to get broadcast list members: %w", err) - return + if len(req.Participants) != 0 { + groupParticipants = req.Participants + } else { + groupParticipants, err = cli.getBroadcastListParticipants(ctx, to) + if err != nil { + err = fmt.Errorf("failed to get broadcast list members: %w", err) + return + } } } resp.DebugTimings.GetParticipants = time.Since(start) @@ -349,7 +357,7 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E } if message.GetMessageContextInfo().GetMessageSecret() != nil { - err = cli.Store.MsgSecrets.PutMessageSecret(to, ownID, req.ID, message.GetMessageContextInfo().GetMessageSecret()) + err = cli.Store.MsgSecrets.PutMessageSecret(ctx, to, ownID, req.ID, message.GetMessageContextInfo().GetMessageSecret()) if err != nil { cli.Log.Warnf("Failed to store message secret key for outgoing message %s: %v", req.ID, err) } else { @@ -363,7 +371,7 @@ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E phash, data, err = cli.sendGroup(ctx, to, groupParticipants, req.ID, message, &resp.DebugTimings, extraParams) case types.DefaultUserServer, types.BotServer: if req.Peer { - data, err = cli.sendPeerMessage(to, req.ID, message, &resp.DebugTimings) + data, err = cli.sendPeerMessage(ctx, to, req.ID, message, &resp.DebugTimings) } else { data, err = cli.sendDM(ctx, ownID, to, req.ID, message, &resp.DebugTimings, extraParams) } @@ -704,7 +712,7 @@ func (cli *Client) sendGroup( start = time.Now() builder := groups.NewGroupSessionBuilder(cli.Store, pbSerializer) senderKeyName := protocol.NewSenderKeyName(to.String(), cli.getOwnLID().SignalAddress()) - signalSKDMessage, err := builder.Create(senderKeyName) + signalSKDMessage, err := builder.Create(ctx, senderKeyName) if err != nil { return "", nil, fmt.Errorf("failed to create sender key distribution message to send %s to %s: %w", id, to, err) } @@ -720,7 +728,7 @@ func (cli *Client) sendGroup( } cipher := groups.NewGroupCipher(builder, senderKeyName, cli.Store) - encrypted, err := cipher.Encrypt(padMessage(plaintext)) + encrypted, err := cipher.Encrypt(ctx, padMessage(plaintext)) if err != nil { return "", nil, fmt.Errorf("failed to encrypt group message to send %s to %s: %w", id, to, err) } @@ -755,8 +763,14 @@ func (cli *Client) sendGroup( return phash, data, nil } -func (cli *Client) sendPeerMessage(to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings) ([]byte, error) { - node, err := cli.preparePeerMessageNode(to, id, message, timings) +func (cli *Client) sendPeerMessage( + ctx context.Context, + to types.JID, + id types.MessageID, + message *waE2E.Message, + timings *MessageDebugTimings, +) ([]byte, error) { + node, err := cli.preparePeerMessageNode(ctx, to, id, message, timings) if err != nil { return nil, err } @@ -953,7 +967,13 @@ func getEditAttribute(msg *waE2E.Message) types.EditAttribute { return types.EditAttributeEmpty } -func (cli *Client) preparePeerMessageNode(to types.JID, id types.MessageID, message *waE2E.Message, timings *MessageDebugTimings) (*waBinary.Node, error) { +func (cli *Client) preparePeerMessageNode( + ctx context.Context, + to types.JID, + id types.MessageID, + message *waE2E.Message, + timings *MessageDebugTimings, +) (*waBinary.Node, error) { attrs := waBinary.Attrs{ "id": id, "type": "text", @@ -971,7 +991,7 @@ func (cli *Client) preparePeerMessageNode(to types.JID, id types.MessageID, mess return nil, err } start = time.Now() - encrypted, isPreKey, err := cli.encryptMessageForDevice(plaintext, to, nil, nil) + encrypted, isPreKey, err := cli.encryptMessageForDevice(ctx, plaintext, to, nil, nil) timings.PeerEncrypt = time.Since(start) if err != nil { return nil, fmt.Errorf("failed to encrypt peer message for %s: %v", to, err) @@ -1152,19 +1172,20 @@ func (cli *Client) encryptMessageForDevices( if err != nil { cli.Log.Warnf("Failed to get LID for %s: %v", jid, err) } else if !lidForPN.IsEmpty() { - cli.migrateSessionStore(jid, lidForPN) + cli.migrateSessionStore(ctx, jid, lidForPN) encryptionIdentity = lidForPN } } encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap( - plaintext, jid, encryptionIdentity, nil, encAttrs, + ctx, plaintext, jid, encryptionIdentity, nil, encAttrs, ) if errors.Is(err, ErrNoSession) { retryDevices = append(retryDevices, jid) retryEncryptionIdentities = append(retryEncryptionIdentities, encryptionIdentity) continue } else if err != nil { + // TODO return these errors if it's a fatal one (like context cancellation or database) cli.Log.Warnf("Failed to encrypt %s for %s: %v", id, jid, err) continue } @@ -1190,9 +1211,10 @@ func (cli *Client) encryptMessageForDevices( plaintext = dsmPlaintext } encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap( - plaintext, jid, retryEncryptionIdentities[i], resp.bundle, encAttrs, + ctx, plaintext, jid, retryEncryptionIdentities[i], resp.bundle, encAttrs, ) if err != nil { + // TODO return these errors if it's a fatal one (like context cancellation or database) cli.Log.Warnf("Failed to encrypt %s for %s (retry): %v", id, jid, err) continue } @@ -1207,6 +1229,7 @@ func (cli *Client) encryptMessageForDevices( } func (cli *Client) encryptMessageForDeviceAndWrap( + ctx context.Context, plaintext []byte, wireIdentity, encryptionIdentity types.JID, @@ -1214,7 +1237,7 @@ func (cli *Client) encryptMessageForDeviceAndWrap( encAttrs waBinary.Attrs, ) (*waBinary.Node, bool, error) { node, includeDeviceIdentity, err := cli.encryptMessageForDevice( - plaintext, encryptionIdentity, bundle, encAttrs, + ctx, plaintext, encryptionIdentity, bundle, encAttrs, ) if err != nil { return nil, false, err @@ -1233,6 +1256,7 @@ func copyAttrs(from, to waBinary.Attrs) { } func (cli *Client) encryptMessageForDevice( + ctx context.Context, plaintext []byte, to types.JID, bundle *prekey.Bundle, @@ -1241,20 +1265,25 @@ func (cli *Client) encryptMessageForDevice( builder := session.NewBuilderFromSignal(cli.Store, to.SignalAddress(), pbSerializer) if bundle != nil { cli.Log.Debugf("Processing prekey bundle for %s", to) - err := builder.ProcessBundle(bundle) + err := builder.ProcessBundle(ctx, bundle) if cli.AutoTrustIdentity && errors.Is(err, signalerror.ErrUntrustedIdentity) { cli.Log.Warnf("Got %v error while trying to process prekey bundle for %s, clearing stored identity and retrying", err, to) - cli.clearUntrustedIdentity(to) - err = builder.ProcessBundle(bundle) + err = cli.clearUntrustedIdentity(ctx, to) + if err != nil { + return nil, false, fmt.Errorf("failed to clear untrusted identity: %w", err) + } + err = builder.ProcessBundle(ctx, bundle) } if err != nil { return nil, false, fmt.Errorf("failed to process prekey bundle: %w", err) } - } else if !cli.Store.ContainsSession(to.SignalAddress()) { + } else if contains, err := cli.Store.ContainsSession(ctx, to.SignalAddress()); err != nil { + return nil, false, err + } else if !contains { return nil, false, ErrNoSession } cipher := session.NewCipher(builder, to.SignalAddress()) - ciphertext, err := cipher.Encrypt(padMessage(plaintext)) + ciphertext, err := cipher.Encrypt(ctx, padMessage(plaintext)) if err != nil { return nil, false, fmt.Errorf("cipher encryption failed: %w", err) } diff --git a/sendfb.go b/sendfb.go index e29dbd2b..8950c271 100644 --- a/sendfb.go +++ b/sendfb.go @@ -228,7 +228,7 @@ func (cli *Client) sendGroupV3( start = time.Now() builder := groups.NewGroupSessionBuilder(cli.Store, pbSerializer) senderKeyName := protocol.NewSenderKeyName(to.String(), ownID.SignalAddress()) - signalSKDMessage, err := builder.Create(senderKeyName) + signalSKDMessage, err := builder.Create(ctx, senderKeyName) if err != nil { return "", nil, fmt.Errorf("failed to create sender key distribution message to send %s to %s: %w", id, to, err) } @@ -265,7 +265,7 @@ func (cli *Client) sendGroupV3( if err != nil { return "", nil, fmt.Errorf("failed to marshal message transport: %w", err) } - encrypted, err := cipher.Encrypt(plaintext) + encrypted, err := cipher.Encrypt(ctx, plaintext) if err != nil { return "", nil, fmt.Errorf("failed to encrypt group message to send %s to %s: %w", id, to, err) } @@ -528,11 +528,12 @@ func (cli *Client) encryptMessageForDevicesV3( } dsmForDevice = dsm } - encrypted, err := cli.encryptMessageForDeviceAndWrapV3(payload, skdm, dsmForDevice, jid, nil, encAttrs) + encrypted, err := cli.encryptMessageForDeviceAndWrapV3(ctx, payload, skdm, dsmForDevice, jid, nil, encAttrs) if errors.Is(err, ErrNoSession) { retryDevices = append(retryDevices, jid) continue } else if err != nil { + // TODO return these errors if it's a fatal one (like context cancellation or database) cli.Log.Warnf("Failed to encrypt %s for %s: %v", id, jid, err) continue } @@ -553,8 +554,9 @@ func (cli *Client) encryptMessageForDevicesV3( if jid.User == ownID.User { dsmForDevice = dsm } - encrypted, err := cli.encryptMessageForDeviceAndWrapV3(payload, skdm, dsmForDevice, jid, resp.bundle, encAttrs) + encrypted, err := cli.encryptMessageForDeviceAndWrapV3(ctx, payload, skdm, dsmForDevice, jid, resp.bundle, encAttrs) if err != nil { + // TODO return these errors if it's a fatal one (like context cancellation or database) cli.Log.Warnf("Failed to encrypt %s for %s (retry): %v", id, jid, err) continue } @@ -566,6 +568,7 @@ func (cli *Client) encryptMessageForDevicesV3( } func (cli *Client) encryptMessageForDeviceAndWrapV3( + ctx context.Context, payload *waMsgTransport.MessageTransport_Payload, skdm *waMsgTransport.MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage, dsm *waMsgTransport.MessageTransport_Protocol_Integral_DeviceSentMessage, @@ -573,7 +576,7 @@ func (cli *Client) encryptMessageForDeviceAndWrapV3( bundle *prekey.Bundle, encAttrs waBinary.Attrs, ) (*waBinary.Node, error) { - node, err := cli.encryptMessageForDeviceV3(payload, skdm, dsm, to, bundle, encAttrs) + node, err := cli.encryptMessageForDeviceV3(ctx, payload, skdm, dsm, to, bundle, encAttrs) if err != nil { return nil, err } @@ -585,6 +588,7 @@ func (cli *Client) encryptMessageForDeviceAndWrapV3( } func (cli *Client) encryptMessageForDeviceV3( + ctx context.Context, payload *waMsgTransport.MessageTransport_Payload, skdm *waMsgTransport.MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage, dsm *waMsgTransport.MessageTransport_Protocol_Integral_DeviceSentMessage, @@ -595,16 +599,21 @@ func (cli *Client) encryptMessageForDeviceV3( builder := session.NewBuilderFromSignal(cli.Store, to.SignalAddress(), pbSerializer) if bundle != nil { cli.Log.Debugf("Processing prekey bundle for %s", to) - err := builder.ProcessBundle(bundle) + err := builder.ProcessBundle(ctx, bundle) if cli.AutoTrustIdentity && errors.Is(err, signalerror.ErrUntrustedIdentity) { cli.Log.Warnf("Got %v error while trying to process prekey bundle for %s, clearing stored identity and retrying", err, to) - cli.clearUntrustedIdentity(to) - err = builder.ProcessBundle(bundle) + err = cli.clearUntrustedIdentity(ctx, to) + if err != nil { + return nil, fmt.Errorf("failed to clear untrusted identity: %w", err) + } + err = builder.ProcessBundle(ctx, bundle) } if err != nil { return nil, fmt.Errorf("failed to process prekey bundle: %w", err) } - } else if !cli.Store.ContainsSession(to.SignalAddress()) { + } else if contains, err := cli.Store.ContainsSession(ctx, to.SignalAddress()); err != nil { + return nil, err + } else if !contains { return nil, ErrNoSession } cipher := session.NewCipher(builder, to.SignalAddress()) @@ -626,7 +635,7 @@ func (cli *Client) encryptMessageForDeviceV3( if err != nil { return nil, fmt.Errorf("failed to marshal message transport: %w", err) } - ciphertext, err := cipher.Encrypt(plaintext) + ciphertext, err := cipher.Encrypt(ctx, plaintext) if err != nil { return nil, fmt.Errorf("cipher encryption failed: %w", err) } diff --git a/store/clientpayload.go b/store/clientpayload.go index f94a8108..f190036a 100644 --- a/store/clientpayload.go +++ b/store/clientpayload.go @@ -76,7 +76,7 @@ func (vc WAVersionContainer) ProtoAppVersion() *waWa6.ClientPayload_UserAgent_Ap } // waVersion is the WhatsApp web client version -var waVersion = WAVersionContainer{2, 3000, 1021636778} +var waVersion = WAVersionContainer{2, 3000, 1022781640} // waVersionHash is the md5 hash of a dot-separated waVersion var waVersionHash [16]byte diff --git a/store/noop.go b/store/noop.go index 80929a59..8f42f930 100644 --- a/store/noop.go +++ b/store/noop.go @@ -36,45 +36,46 @@ var NoopDevice = &Device{ ChatSettings: nilStore, MsgSecrets: nilStore, PrivacyTokens: nilStore, + EventBuffer: nilStore, Container: nilStore, } var _ AllStores = (*NoopStore)(nil) var _ DeviceContainer = (*NoopStore)(nil) -func (n *NoopStore) PutIdentity(address string, key [32]byte) error { +func (n *NoopStore) PutIdentity(ctx context.Context, address string, key [32]byte) error { return n.Error } -func (n *NoopStore) DeleteAllIdentities(phone string) error { +func (n *NoopStore) DeleteAllIdentities(ctx context.Context, phone string) error { return n.Error } -func (n *NoopStore) DeleteIdentity(address string) error { +func (n *NoopStore) DeleteIdentity(ctx context.Context, address string) error { return n.Error } -func (n *NoopStore) IsTrustedIdentity(address string, key [32]byte) (bool, error) { +func (n *NoopStore) IsTrustedIdentity(ctx context.Context, address string, key [32]byte) (bool, error) { return false, n.Error } -func (n *NoopStore) GetSession(address string) ([]byte, error) { +func (n *NoopStore) GetSession(ctx context.Context, address string) ([]byte, error) { return nil, n.Error } -func (n *NoopStore) HasSession(address string) (bool, error) { +func (n *NoopStore) HasSession(ctx context.Context, address string) (bool, error) { return false, n.Error } -func (n *NoopStore) PutSession(address string, session []byte) error { +func (n *NoopStore) PutSession(ctx context.Context, address string, session []byte) error { return n.Error } -func (n *NoopStore) DeleteAllSessions(phone string) error { +func (n *NoopStore) DeleteAllSessions(ctx context.Context, phone string) error { return n.Error } -func (n *NoopStore) DeleteSession(address string) error { +func (n *NoopStore) DeleteSession(ctx context.Context, address string) error { return n.Error } @@ -82,142 +83,162 @@ func (n *NoopStore) MigratePNToLID(ctx context.Context, pn, lid types.JID) error return n.Error } -func (n *NoopStore) GetOrGenPreKeys(count uint32) ([]*keys.PreKey, error) { +func (n *NoopStore) GetOrGenPreKeys(ctx context.Context, count uint32) ([]*keys.PreKey, error) { return nil, n.Error } -func (n *NoopStore) GenOnePreKey() (*keys.PreKey, error) { +func (n *NoopStore) GenOnePreKey(ctx context.Context) (*keys.PreKey, error) { return nil, n.Error } -func (n *NoopStore) GetPreKey(id uint32) (*keys.PreKey, error) { +func (n *NoopStore) GetPreKey(ctx context.Context, id uint32) (*keys.PreKey, error) { return nil, n.Error } -func (n *NoopStore) RemovePreKey(id uint32) error { +func (n *NoopStore) RemovePreKey(ctx context.Context, id uint32) error { return n.Error } -func (n *NoopStore) MarkPreKeysAsUploaded(upToID uint32) error { +func (n *NoopStore) MarkPreKeysAsUploaded(ctx context.Context, upToID uint32) error { return n.Error } -func (n *NoopStore) UploadedPreKeyCount() (int, error) { +func (n *NoopStore) UploadedPreKeyCount(ctx context.Context) (int, error) { return 0, n.Error } -func (n *NoopStore) PutSenderKey(group, user string, session []byte) error { +func (n *NoopStore) PutSenderKey(ctx context.Context, group, user string, session []byte) error { return n.Error } -func (n *NoopStore) GetSenderKey(group, user string) ([]byte, error) { +func (n *NoopStore) GetSenderKey(ctx context.Context, group, user string) ([]byte, error) { return nil, n.Error } -func (n *NoopStore) PutAppStateSyncKey(id []byte, key AppStateSyncKey) error { +func (n *NoopStore) PutAppStateSyncKey(ctx context.Context, id []byte, key AppStateSyncKey) error { return n.Error } -func (n *NoopStore) GetAppStateSyncKey(id []byte) (*AppStateSyncKey, error) { +func (n *NoopStore) GetAppStateSyncKey(ctx context.Context, id []byte) (*AppStateSyncKey, error) { return nil, n.Error } -func (n *NoopStore) GetLatestAppStateSyncKeyID() ([]byte, error) { +func (n *NoopStore) GetLatestAppStateSyncKeyID(ctx context.Context) ([]byte, error) { return nil, n.Error } -func (n *NoopStore) PutAppStateVersion(name string, version uint64, hash [128]byte) error { +func (n *NoopStore) PutAppStateVersion(ctx context.Context, name string, version uint64, hash [128]byte) error { return n.Error } -func (n *NoopStore) GetAppStateVersion(name string) (uint64, [128]byte, error) { +func (n *NoopStore) GetAppStateVersion(ctx context.Context, name string) (uint64, [128]byte, error) { return 0, [128]byte{}, n.Error } -func (n *NoopStore) DeleteAppStateVersion(name string) error { +func (n *NoopStore) DeleteAppStateVersion(ctx context.Context, name string) error { return n.Error } -func (n *NoopStore) PutAppStateMutationMACs(name string, version uint64, mutations []AppStateMutationMAC) error { +func (n *NoopStore) PutAppStateMutationMACs(ctx context.Context, name string, version uint64, mutations []AppStateMutationMAC) error { return n.Error } -func (n *NoopStore) DeleteAppStateMutationMACs(name string, indexMACs [][]byte) error { +func (n *NoopStore) DeleteAppStateMutationMACs(ctx context.Context, name string, indexMACs [][]byte) error { return n.Error } -func (n *NoopStore) GetAppStateMutationMAC(name string, indexMAC []byte) (valueMAC []byte, err error) { +func (n *NoopStore) GetAppStateMutationMAC(ctx context.Context, name string, indexMAC []byte) (valueMAC []byte, err error) { return nil, n.Error } -func (n *NoopStore) PutPushName(user types.JID, pushName string) (bool, string, error) { +func (n *NoopStore) PutPushName(ctx context.Context, user types.JID, pushName string) (bool, string, error) { return false, "", n.Error } -func (n *NoopStore) PutBusinessName(user types.JID, businessName string) (bool, string, error) { +func (n *NoopStore) PutBusinessName(ctx context.Context, user types.JID, businessName string) (bool, string, error) { return false, "", n.Error } -func (n *NoopStore) PutContactName(user types.JID, fullName, firstName string) error { +func (n *NoopStore) PutContactName(ctx context.Context, user types.JID, fullName, firstName string) error { return n.Error } -func (n *NoopStore) PutAllContactNames(contacts []ContactEntry) error { +func (n *NoopStore) PutAllContactNames(ctx context.Context, contacts []ContactEntry) error { return n.Error } -func (n *NoopStore) GetContact(user types.JID) (types.ContactInfo, error) { +func (n *NoopStore) GetContact(ctx context.Context, user types.JID) (types.ContactInfo, error) { return types.ContactInfo{}, n.Error } -func (n *NoopStore) GetAllContacts() (map[types.JID]types.ContactInfo, error) { +func (n *NoopStore) GetAllContacts(ctx context.Context) (map[types.JID]types.ContactInfo, error) { return nil, n.Error } -func (n *NoopStore) PutMutedUntil(chat types.JID, mutedUntil time.Time) error { +func (n *NoopStore) PutMutedUntil(ctx context.Context, chat types.JID, mutedUntil time.Time) error { return n.Error } -func (n *NoopStore) PutPinned(chat types.JID, pinned bool) error { +func (n *NoopStore) PutPinned(ctx context.Context, chat types.JID, pinned bool) error { return n.Error } -func (n *NoopStore) PutArchived(chat types.JID, archived bool) error { +func (n *NoopStore) PutArchived(ctx context.Context, chat types.JID, archived bool) error { return n.Error } -func (n *NoopStore) GetChatSettings(chat types.JID) (types.LocalChatSettings, error) { +func (n *NoopStore) GetChatSettings(ctx context.Context, chat types.JID) (types.LocalChatSettings, error) { return types.LocalChatSettings{}, n.Error } -func (n *NoopStore) PutMessageSecrets(inserts []MessageSecretInsert) error { +func (n *NoopStore) PutMessageSecrets(ctx context.Context, inserts []MessageSecretInsert) error { return n.Error } -func (n *NoopStore) PutMessageSecret(chat, sender types.JID, id types.MessageID, secret []byte) error { +func (n *NoopStore) PutMessageSecret(ctx context.Context, chat, sender types.JID, id types.MessageID, secret []byte) error { return n.Error } -func (n *NoopStore) GetMessageSecret(chat, sender types.JID, id types.MessageID) ([]byte, error) { +func (n *NoopStore) GetMessageSecret(ctx context.Context, chat, sender types.JID, id types.MessageID) ([]byte, error) { return nil, n.Error } -func (n *NoopStore) PutPrivacyTokens(tokens ...PrivacyToken) error { +func (n *NoopStore) PutPrivacyTokens(ctx context.Context, tokens ...PrivacyToken) error { return n.Error } -func (n *NoopStore) GetPrivacyToken(user types.JID) (*PrivacyToken, error) { +func (n *NoopStore) GetPrivacyToken(ctx context.Context, user types.JID) (*PrivacyToken, error) { return nil, n.Error } -func (n *NoopStore) PutDevice(store *Device) error { +func (n *NoopStore) PutDevice(ctx context.Context, store *Device) error { return n.Error } -func (n *NoopStore) DeleteDevice(store *Device) error { +func (n *NoopStore) DeleteDevice(ctx context.Context, store *Device) error { return n.Error } +func (n *NoopStore) GetBufferedEvent(ctx context.Context, ciphertextHash [32]byte) (*BufferedEvent, error) { + return nil, nil +} + +func (n *NoopStore) PutBufferedEvent(ctx context.Context, ciphertextHash [32]byte, plaintext []byte, serverTimestamp time.Time) error { + return nil +} + +func (n *NoopStore) DoDecryptionTxn(ctx context.Context, fn func(context.Context) error) error { + return fn(ctx) +} + +func (n *NoopStore) ClearBufferedEventPlaintext(ctx context.Context, ciphertextHash [32]byte) error { + return nil +} + +func (n *NoopStore) DeleteOldBufferedHashes(ctx context.Context) error { + return nil +} + func (n *NoopStore) GetLIDForPN(ctx context.Context, pn types.JID) (types.JID, error) { return types.JID{}, n.Error } diff --git a/store/signal.go b/store/signal.go index dbee709b..f002e604 100644 --- a/store/signal.go +++ b/store/signal.go @@ -7,6 +7,9 @@ package store import ( + "context" + "fmt" + "go.mau.fi/libsignal/ecc" groupRecord "go.mau.fi/libsignal/groups/state/record" "go.mau.fi/libsignal/keys/identity" @@ -14,8 +17,6 @@ import ( "go.mau.fi/libsignal/serialize" "go.mau.fi/libsignal/state/record" "go.mau.fi/libsignal/state/store" - - "github.com/techwiz37/waSocket/util/keys" ) var SignalProtobufSerializer = serialize.NewProtoBufSerializer() @@ -29,167 +30,153 @@ func (device *Device) GetIdentityKeyPair() *identity.KeyPair { ) } -func (device *Device) GetLocalRegistrationId() uint32 { +func (device *Device) GetLocalRegistrationID() uint32 { return device.RegistrationID } -func (device *Device) SaveIdentity(address *protocol.SignalAddress, identityKey *identity.Key) { - for i := 0; ; i++ { - err := device.Identities.PutIdentity(address.String(), identityKey.PublicKey().PublicKey()) - if err == nil || !device.handleDatabaseError(i, err, "save identity of %s", address.String()) { - break - } +func (device *Device) SaveIdentity(ctx context.Context, address *protocol.SignalAddress, identityKey *identity.Key) error { + addrString := address.String() + err := device.Identities.PutIdentity(ctx, addrString, identityKey.PublicKey().PublicKey()) + if err != nil { + return fmt.Errorf("failed to save identity of %s: %w", addrString, err) } + return nil } -func (device *Device) IsTrustedIdentity(address *protocol.SignalAddress, identityKey *identity.Key) bool { - for i := 0; ; i++ { - isTrusted, err := device.Identities.IsTrustedIdentity(address.String(), identityKey.PublicKey().PublicKey()) - if err == nil || !device.handleDatabaseError(i, err, "check if %s's identity is trusted", address.String()) { - return isTrusted - } +func (device *Device) IsTrustedIdentity(ctx context.Context, address *protocol.SignalAddress, identityKey *identity.Key) (bool, error) { + addrString := address.String() + isTrusted, err := device.Identities.IsTrustedIdentity(ctx, addrString, identityKey.PublicKey().PublicKey()) + if err != nil { + return false, fmt.Errorf("failed to check if %s's identity is trusted: %w", addrString, err) } + return isTrusted, nil } -func (device *Device) LoadPreKey(id uint32) *record.PreKey { - var preKey *keys.PreKey - for i := 0; ; i++ { - var err error - preKey, err = device.PreKeys.GetPreKey(id) - if err == nil || !device.handleDatabaseError(i, err, "load prekey %d", id) { - break - } +func (device *Device) LoadPreKey(ctx context.Context, id uint32) (*record.PreKey, error) { + preKey, err := device.PreKeys.GetPreKey(ctx, id) + if err != nil { + return nil, fmt.Errorf("failed to load prekey %d: %w", id, err) } if preKey == nil { - return nil + return nil, nil } return record.NewPreKey(preKey.KeyID, ecc.NewECKeyPair( ecc.NewDjbECPublicKey(*preKey.Pub), ecc.NewDjbECPrivateKey(*preKey.Priv), - ), nil) + ), nil), nil } -func (device *Device) RemovePreKey(id uint32) { - for i := 0; ; i++ { - err := device.PreKeys.RemovePreKey(id) - if err == nil || !device.handleDatabaseError(i, err, "remove prekey %d", id) { - break - } +func (device *Device) RemovePreKey(ctx context.Context, id uint32) error { + err := device.PreKeys.RemovePreKey(ctx, id) + if err != nil { + return fmt.Errorf("failed to remove prekey %d: %w", id, err) } + return nil } -func (device *Device) StorePreKey(preKeyID uint32, preKeyRecord *record.PreKey) { +func (device *Device) StorePreKey(ctx context.Context, preKeyID uint32, preKeyRecord *record.PreKey) error { panic("not implemented") } -func (device *Device) ContainsPreKey(preKeyID uint32) bool { +func (device *Device) ContainsPreKey(ctx context.Context, preKeyID uint32) (bool, error) { panic("not implemented") } -func (device *Device) LoadSession(address *protocol.SignalAddress) *record.Session { - var rawSess []byte - var err error - for i := 0; ; i++ { - rawSess, err = device.Sessions.GetSession(address.String()) - if err == nil || !device.handleDatabaseError(i, err, "load session with %s", address.String()) { - break - } +func (device *Device) LoadSession(ctx context.Context, address *protocol.SignalAddress) (*record.Session, error) { + addrString := address.String() + rawSess, err := device.Sessions.GetSession(ctx, addrString) + if err != nil { + return nil, fmt.Errorf("failed to load session with %s: %w", addrString, err) } if rawSess == nil { - if err != nil { - return nil - } - return record.NewSession(SignalProtobufSerializer.Session, SignalProtobufSerializer.State) + return record.NewSession(SignalProtobufSerializer.Session, SignalProtobufSerializer.State), nil } sess, err := record.NewSessionFromBytes(rawSess, SignalProtobufSerializer.Session, SignalProtobufSerializer.State) if err != nil { - device.Log.Errorf("Failed to deserialize session with %s: %v", address.String(), err) - return nil + return nil, fmt.Errorf("failed to deserialize session with %s: %w", addrString, err) } - return sess + return sess, nil } -func (device *Device) GetSubDeviceSessions(name string) []uint32 { +func (device *Device) GetSubDeviceSessions(ctx context.Context, name string) ([]uint32, error) { panic("not implemented") } -func (device *Device) StoreSession(address *protocol.SignalAddress, record *record.Session) { - for i := 0; ; i++ { - err := device.Sessions.PutSession(address.String(), record.Serialize()) - if err == nil || !device.handleDatabaseError(i, err, "store session with %s", address.String()) { - return - } +func (device *Device) StoreSession(ctx context.Context, address *protocol.SignalAddress, record *record.Session) error { + addrString := address.String() + err := device.Sessions.PutSession(ctx, addrString, record.Serialize()) + if err != nil { + return fmt.Errorf("failed to store session with %s: %w", addrString, err) } + return nil } -func (device *Device) ContainsSession(remoteAddress *protocol.SignalAddress) bool { - for i := 0; ; i++ { - hasSession, err := device.Sessions.HasSession(remoteAddress.String()) - if err == nil || !device.handleDatabaseError(i, err, "check if store has session for %s", remoteAddress.String()) { - return hasSession - } +func (device *Device) ContainsSession(ctx context.Context, remoteAddress *protocol.SignalAddress) (bool, error) { + addrString := remoteAddress.String() + hasSession, err := device.Sessions.HasSession(ctx, addrString) + if err != nil { + return false, fmt.Errorf("failed to check if store has session for %s: %w", addrString, err) } + return hasSession, nil } -func (device *Device) DeleteSession(remoteAddress *protocol.SignalAddress) { +func (device *Device) DeleteSession(ctx context.Context, remoteAddress *protocol.SignalAddress) error { panic("not implemented") } -func (device *Device) DeleteAllSessions() { +func (device *Device) DeleteAllSessions(ctx context.Context) error { panic("not implemented") } -func (device *Device) LoadSignedPreKey(signedPreKeyID uint32) *record.SignedPreKey { +func (device *Device) LoadSignedPreKey(ctx context.Context, signedPreKeyID uint32) (*record.SignedPreKey, error) { if signedPreKeyID == device.SignedPreKey.KeyID { return record.NewSignedPreKey(signedPreKeyID, 0, ecc.NewECKeyPair( ecc.NewDjbECPublicKey(*device.SignedPreKey.Pub), ecc.NewDjbECPrivateKey(*device.SignedPreKey.Priv), - ), *device.SignedPreKey.Signature, nil) + ), *device.SignedPreKey.Signature, nil), nil } - return nil + return nil, nil } -func (device *Device) LoadSignedPreKeys() []*record.SignedPreKey { +func (device *Device) LoadSignedPreKeys(ctx context.Context) ([]*record.SignedPreKey, error) { panic("not implemented") } -func (device *Device) StoreSignedPreKey(signedPreKeyID uint32, record *record.SignedPreKey) { +func (device *Device) StoreSignedPreKey(ctx context.Context, signedPreKeyID uint32, record *record.SignedPreKey) error { panic("not implemented") } -func (device *Device) ContainsSignedPreKey(signedPreKeyID uint32) bool { +func (device *Device) ContainsSignedPreKey(ctx context.Context, signedPreKeyID uint32) (bool, error) { panic("not implemented") } -func (device *Device) RemoveSignedPreKey(signedPreKeyID uint32) { +func (device *Device) RemoveSignedPreKey(ctx context.Context, signedPreKeyID uint32) error { panic("not implemented") } -func (device *Device) StoreSenderKey(senderKeyName *protocol.SenderKeyName, keyRecord *groupRecord.SenderKey) { - for i := 0; ; i++ { - err := device.SenderKeys.PutSenderKey(senderKeyName.GroupID(), senderKeyName.Sender().String(), keyRecord.Serialize()) - if err == nil || !device.handleDatabaseError(i, err, "store sender key from %s", senderKeyName.Sender().String()) { - return - } +func (device *Device) StoreSenderKey(ctx context.Context, senderKeyName *protocol.SenderKeyName, keyRecord *groupRecord.SenderKey) error { + groupID := senderKeyName.GroupID() + senderString := senderKeyName.Sender().String() + err := device.SenderKeys.PutSenderKey(ctx, groupID, senderString, keyRecord.Serialize()) + if err != nil { + return fmt.Errorf("failed to store sender key from %s for %s: %w", senderString, groupID, err) } + return nil } -func (device *Device) LoadSenderKey(senderKeyName *protocol.SenderKeyName) *groupRecord.SenderKey { - var rawKey []byte - for i := 0; ; i++ { - var err error - rawKey, err = device.SenderKeys.GetSenderKey(senderKeyName.GroupID(), senderKeyName.Sender().String()) - if err == nil || !device.handleDatabaseError(i, err, "load sender key from %s for %s", senderKeyName.Sender().String(), senderKeyName.GroupID()) { - break - } +func (device *Device) LoadSenderKey(ctx context.Context, senderKeyName *protocol.SenderKeyName) (*groupRecord.SenderKey, error) { + groupID := senderKeyName.GroupID() + senderString := senderKeyName.Sender().String() + rawKey, err := device.SenderKeys.GetSenderKey(ctx, groupID, senderString) + if err != nil { + return nil, fmt.Errorf("failed to load sender key from %s for %s: %w", senderString, groupID, err) } if rawKey == nil { - return groupRecord.NewSenderKey(SignalProtobufSerializer.SenderKeyRecord, SignalProtobufSerializer.SenderKeyState) + return groupRecord.NewSenderKey(SignalProtobufSerializer.SenderKeyRecord, SignalProtobufSerializer.SenderKeyState), nil } key, err := groupRecord.NewSenderKeyFromBytes(rawKey, SignalProtobufSerializer.SenderKeyRecord, SignalProtobufSerializer.SenderKeyState) if err != nil { - device.Log.Errorf("Failed to deserialize sender key from %s for %s: %v", senderKeyName.Sender().String(), senderKeyName.GroupID(), err) - return groupRecord.NewSenderKey(SignalProtobufSerializer.SenderKeyRecord, SignalProtobufSerializer.SenderKeyState) + return nil, fmt.Errorf("failed to deserialize sender key from %s for %s: %w", senderString, groupID, err) } - return key + return key, nil } diff --git a/store/sqlstore/container.go b/store/sqlstore/container.go index 009abe82..da448443 100644 --- a/store/sqlstore/container.go +++ b/store/sqlstore/container.go @@ -30,8 +30,6 @@ type Container struct { db *dbutil.Database log waLog.Logger LIDMap *CachedLIDMap - - DatabaseErrorHandler func(device *store.Device, action string, attemptIndex int, err error) (retry bool) } var _ store.DeviceContainer = (*Container)(nil) @@ -44,14 +42,14 @@ var _ store.DeviceContainer = (*Container)(nil) // // When using SQLite, it's strongly recommended to enable foreign keys by adding `?_foreign_keys=true`: // -// container, err := sqlstore.New("sqlite3", "file:yoursqlitefile.db?_foreign_keys=on", nil) -func New(dialect, address string, log waLog.Logger) (*Container, error) { +// container, err := sqlstore.New(context.Background(), "sqlite3", "file:yoursqlitefile.db?_foreign_keys=on", nil) +func New(ctx context.Context, dialect, address string, log waLog.Logger) (*Container, error) { db, err := sql.Open(dialect, address) if err != nil { return nil, fmt.Errorf("failed to open database: %w", err) } container := NewWithDB(db, dialect, log) - err = container.Upgrade() + err = container.Upgrade(ctx) if err != nil { return nil, fmt.Errorf("failed to upgrade database: %w", err) } @@ -99,10 +97,10 @@ func NewWithWrappedDB(wrapped *dbutil.Database, log waLog.Logger) *Container { } // Upgrade upgrades the database from the current to the latest version available. -func (c *Container) Upgrade() error { +func (c *Container) Upgrade(ctx context.Context) error { if c.db.Dialect == dbutil.SQLite { var foreignKeysEnabled bool - err := c.db.QueryRow(context.TODO(), "PRAGMA foreign_keys").Scan(&foreignKeysEnabled) + err := c.db.QueryRow(ctx, "PRAGMA foreign_keys").Scan(&foreignKeysEnabled) if err != nil { return fmt.Errorf("failed to check if foreign keys are enabled: %w", err) } else if !foreignKeysEnabled { @@ -110,7 +108,7 @@ func (c *Container) Upgrade() error { } } - return c.db.Upgrade(context.TODO()) + return c.db.Upgrade(ctx) } const getAllDevicesQuery = ` @@ -125,7 +123,6 @@ const getDeviceQuery = getAllDevicesQuery + " WHERE jid=$1" func (c *Container) scanDevice(row dbutil.Scannable) (*store.Device, error) { var device store.Device - device.DatabaseErrorHandler = c.DatabaseErrorHandler device.Log = c.log device.SignedPreKey = &keys.PreKey{} var noisePriv, identityPriv, preKeyPriv, preKeySig []byte @@ -156,8 +153,8 @@ func (c *Container) scanDevice(row dbutil.Scannable) (*store.Device, error) { } // GetAllDevices finds all the devices in the database. -func (c *Container) GetAllDevices() ([]*store.Device, error) { - res, err := c.db.Query(context.TODO(), getAllDevicesQuery) +func (c *Container) GetAllDevices(ctx context.Context) ([]*store.Device, error) { + res, err := c.db.Query(ctx, getAllDevicesQuery) if err != nil { return nil, fmt.Errorf("failed to query sessions: %w", err) } @@ -175,8 +172,8 @@ func (c *Container) GetAllDevices() ([]*store.Device, error) { // GetFirstDevice is a convenience method for getting the first device in the store. If there are // no devices, then a new device will be created. You should only use this if you don't want to // have multiple sessions simultaneously. -func (c *Container) GetFirstDevice() (*store.Device, error) { - devices, err := c.GetAllDevices() +func (c *Container) GetFirstDevice(ctx context.Context) (*store.Device, error) { + devices, err := c.GetAllDevices(ctx) if err != nil { return nil, err } @@ -192,8 +189,8 @@ func (c *Container) GetFirstDevice() (*store.Device, error) { // If the device is not found, nil is returned instead. // // Note that the parameter usually must be an AD-JID. -func (c *Container) GetDevice(jid types.JID) (*store.Device, error) { - sess, err := c.scanDevice(c.db.QueryRow(context.TODO(), getDeviceQuery, jid)) +func (c *Container) GetDevice(ctx context.Context, jid types.JID) (*store.Device, error) { + sess, err := c.scanDevice(c.db.QueryRow(ctx, getDeviceQuery, jid)) if errors.Is(err, sql.ErrNoRows) { return nil, nil } @@ -225,8 +222,6 @@ func (c *Container) NewDevice() *store.Device { Log: c.log, Container: c, - DatabaseErrorHandler: c.DatabaseErrorHandler, - NoiseKey: keys.NewKeyPair(), IdentityKey: keys.NewKeyPair(), RegistrationID: mathRand.Uint32(), @@ -249,11 +244,11 @@ func (c *Container) Close() error { // PutDevice stores the given device in this database. This should be called through Device.Save() // (which usually doesn't need to be called manually, as the library does that automatically when relevant). -func (c *Container) PutDevice(device *store.Device) error { +func (c *Container) PutDevice(ctx context.Context, device *store.Device) error { if device.ID == nil { return ErrDeviceIDMustBeSet } - _, err := c.db.Exec(context.TODO(), insertDeviceQuery, + _, err := c.db.Exec(ctx, insertDeviceQuery, device.ID, device.LID, device.RegistrationID, device.NoiseKey.Priv[:], device.IdentityKey.Priv[:], device.SignedPreKey.Priv[:], device.SignedPreKey.KeyID, device.SignedPreKey.Signature[:], device.AdvSecretKey, device.Account.Details, device.Account.AccountSignature, device.Account.AccountSignatureKey, device.Account.DeviceSignature, @@ -277,16 +272,17 @@ func (c *Container) initializeDevice(device *store.Device) { device.ChatSettings = innerStore device.MsgSecrets = innerStore device.PrivacyTokens = innerStore + device.EventBuffer = innerStore device.LIDs = c.LIDMap device.Container = c device.Initialized = true } // DeleteDevice deletes the given device from this database. This should be called through Device.Delete() -func (c *Container) DeleteDevice(store *store.Device) error { +func (c *Container) DeleteDevice(ctx context.Context, store *store.Device) error { if store.ID == nil { return ErrDeviceIDMustBeSet } - _, err := c.db.Exec(context.TODO(), deleteDeviceQuery, store.ID) + _, err := c.db.Exec(ctx, deleteDeviceQuery, store.ID) return err } diff --git a/store/sqlstore/lidmap.go b/store/sqlstore/lidmap.go index 6992805f..a337c15b 100644 --- a/store/sqlstore/lidmap.go +++ b/store/sqlstore/lidmap.go @@ -11,9 +11,11 @@ import ( "context" "database/sql" "errors" + "fmt" "slices" "sync" + "github.com/rs/zerolog" "go.mau.fi/util/dbutil" "github.com/techwiz37/waSocket/store" @@ -86,21 +88,24 @@ func (s *CachedLIDMap) getLIDMapping(ctx context.Context, source types.JID, targ } s.lidCacheLock.Lock() defer s.lidCacheLock.Unlock() - err := s.db.QueryRow(ctx, query, source.User).Scan(&targetServer) + err := s.db.QueryRow(ctx, query, source.User).Scan(&targetUser) if errors.Is(err, sql.ErrNoRows) { // continue with empty result } else if err != nil { return types.JID{}, err } - sourceToTarget[source.User] = targetServer - if targetServer != "" { - targetToSource[targetServer] = source.User - return types.JID{User: targetServer, Device: source.Device, Server: targetServer}, nil + sourceToTarget[source.User] = targetUser + if targetUser != "" { + targetToSource[targetUser] = source.User + return types.JID{User: targetUser, Device: source.Device, Server: targetServer}, nil } return types.JID{}, nil } func (s *CachedLIDMap) GetLIDForPN(ctx context.Context, pn types.JID) (types.JID, error) { + if pn.Server != types.DefaultUserServer { + return types.JID{}, fmt.Errorf("invalid GetLIDForPN call with non-PN JID %s", pn) + } return s.getLIDMapping( ctx, pn, types.HiddenUserServer, getLIDForPNQuery, s.pnToLIDCache, s.lidToPNCache, @@ -108,6 +113,9 @@ func (s *CachedLIDMap) GetLIDForPN(ctx context.Context, pn types.JID) (types.JID } func (s *CachedLIDMap) GetPNForLID(ctx context.Context, lid types.JID) (types.JID, error) { + if lid.Server != types.HiddenUserServer { + return types.JID{}, fmt.Errorf("invalid GetPNForLID call with non-LID JID %s", lid) + } return s.getLIDMapping( ctx, lid, types.DefaultUserServer, getPNForLIDQuery, s.lidToPNCache, s.pnToLIDCache, @@ -115,6 +123,9 @@ func (s *CachedLIDMap) GetPNForLID(ctx context.Context, lid types.JID) (types.JI } func (s *CachedLIDMap) PutLIDMapping(ctx context.Context, lid, pn types.JID) error { + if lid.Server != types.HiddenUserServer || pn.Server != types.DefaultUserServer { + return fmt.Errorf("invalid PutLIDMapping call %s/%s", lid, pn) + } s.lidCacheLock.Lock() defer s.lidCacheLock.Unlock() cachedLID, ok := s.pnToLIDCache[pn.User] @@ -130,6 +141,13 @@ func (s *CachedLIDMap) PutManyLIDMappings(ctx context.Context, mappings []store. s.lidCacheLock.Lock() defer s.lidCacheLock.Unlock() mappings = slices.DeleteFunc(mappings, func(mapping store.LIDMapping) bool { + if mapping.LID.Server != types.HiddenUserServer || mapping.PN.Server != types.DefaultUserServer { + zerolog.Ctx(ctx).Debug(). + Stringer("entry_lid", mapping.LID). + Stringer("entry_pn", mapping.PN). + Msg("Ignoring invalid entry in PutManyLIDMappings") + return true + } cachedLID, ok := s.pnToLIDCache[mapping.PN.User] if ok && cachedLID == mapping.LID.User { return true @@ -151,6 +169,9 @@ func (s *CachedLIDMap) PutManyLIDMappings(ctx context.Context, mappings []store. } func (s *CachedLIDMap) unlockedPutLIDMapping(ctx context.Context, lid, pn types.JID) error { + if lid.Server != types.HiddenUserServer || pn.Server != types.DefaultUserServer { + return fmt.Errorf("invalid PutLIDMapping call %s/%s", lid, pn) + } _, err := s.db.Exec(ctx, deleteExistingLIDMappingQuery, lid.User, pn.User) if err != nil { return err diff --git a/store/sqlstore/store.go b/store/sqlstore/store.go index c7b64e51..03e8f0d6 100644 --- a/store/sqlstore/store.go +++ b/store/sqlstore/store.go @@ -78,24 +78,24 @@ const ( getIdentityQuery = `SELECT identity FROM waSocket_identity_keys WHERE our_jid=$1 AND their_id=$2` ) -func (s *SQLStore) PutIdentity(address string, key [32]byte) error { - _, err := s.db.Exec(context.TODO(), putIdentityQuery, s.JID, address, key[:]) +func (s *SQLStore) PutIdentity(ctx context.Context, address string, key [32]byte) error { + _, err := s.db.Exec(ctx, putIdentityQuery, s.JID, address, key[:]) return err } -func (s *SQLStore) DeleteAllIdentities(phone string) error { - _, err := s.db.Exec(context.TODO(), deleteAllIdentitiesQuery, s.JID, phone+":%") +func (s *SQLStore) DeleteAllIdentities(ctx context.Context, phone string) error { + _, err := s.db.Exec(ctx, deleteAllIdentitiesQuery, s.JID, phone+":%") return err } -func (s *SQLStore) DeleteIdentity(address string) error { - _, err := s.db.Exec(context.TODO(), deleteAllIdentitiesQuery, s.JID, address) +func (s *SQLStore) DeleteIdentity(ctx context.Context, address string) error { + _, err := s.db.Exec(ctx, deleteAllIdentitiesQuery, s.JID, address) return err } -func (s *SQLStore) IsTrustedIdentity(address string, key [32]byte) (bool, error) { +func (s *SQLStore) IsTrustedIdentity(ctx context.Context, address string, key [32]byte) (bool, error) { var existingIdentity []byte - err := s.db.QueryRow(context.TODO(), getIdentityQuery, s.JID, address).Scan(&existingIdentity) + err := s.db.QueryRow(ctx, getIdentityQuery, s.JID, address).Scan(&existingIdentity) if errors.Is(err, sql.ErrNoRows) { // Trust if not known, it'll be saved automatically later return true, nil @@ -119,44 +119,52 @@ const ( migratePNToLIDSessionsQuery = ` INSERT INTO waSocket_sessions (our_jid, their_id, session) - SELECT $1, replace(their_id, $2, $3), session + SELECT our_jid, replace(their_id, $2, $3), session FROM waSocket_sessions WHERE our_jid=$1 AND their_id LIKE $2 || ':%' ON CONFLICT (our_jid, their_id) DO UPDATE SET session=excluded.session ` + deleteAllIdentityKeysQuery = `DELETE FROM waSocket_identity_keys WHERE our_jid=$1 AND their_id LIKE $2` + migratePNToLIDIdentityKeysQuery = ` + INSERT INTO waSocket_identity_keys (our_jid, their_id, identity) + SELECT our_jid, replace(their_id, $2, $3), identity + FROM waSocket_identity_keys + WHERE our_jid=$1 AND their_id LIKE $2 || ':%' + ON CONFLICT (our_jid, their_id) DO UPDATE SET identity=excluded.identity + ` deleteAllSenderKeysQuery = `DELETE FROM waSocket_sender_keys WHERE our_jid=$1 AND sender_id LIKE $2` migratePNToLIDSenderKeysQuery = ` INSERT INTO waSocket_sender_keys (our_jid, chat_id, sender_id, sender_key) - SELECT $1, chat_id, replace(sender_id, $2, $3), sender_key + SELECT our_jid, chat_id, replace(sender_id, $2, $3), sender_key FROM waSocket_sender_keys WHERE our_jid=$1 AND sender_id LIKE $2 || ':%' ON CONFLICT (our_jid, chat_id, sender_id) DO UPDATE SET sender_key=excluded.sender_key ` ) -func (s *SQLStore) GetSession(address string) (session []byte, err error) { - err = s.db.QueryRow(context.TODO(), getSessionQuery, s.JID, address).Scan(&session) +func (s *SQLStore) GetSession(ctx context.Context, address string) (session []byte, err error) { + err = s.db.QueryRow(ctx, getSessionQuery, s.JID, address).Scan(&session) if errors.Is(err, sql.ErrNoRows) { err = nil } return } -func (s *SQLStore) HasSession(address string) (has bool, err error) { - err = s.db.QueryRow(context.TODO(), hasSessionQuery, s.JID, address).Scan(&has) +func (s *SQLStore) HasSession(ctx context.Context, address string) (has bool, err error) { + err = s.db.QueryRow(ctx, hasSessionQuery, s.JID, address).Scan(&has) if errors.Is(err, sql.ErrNoRows) { err = nil } return } -func (s *SQLStore) PutSession(address string, session []byte) error { - _, err := s.db.Exec(context.TODO(), putSessionQuery, s.JID, address, session) +func (s *SQLStore) PutSession(ctx context.Context, address string, session []byte) error { + _, err := s.db.Exec(ctx, putSessionQuery, s.JID, address, session) return err } -func (s *SQLStore) DeleteAllSessions(phone string) error { - return s.deleteAllSessions(context.TODO(), phone) +func (s *SQLStore) DeleteAllSessions(ctx context.Context, phone string) error { + return s.deleteAllSessions(ctx, phone) } func (s *SQLStore) deleteAllSessions(ctx context.Context, phone string) error { @@ -169,8 +177,13 @@ func (s *SQLStore) deleteAllSenderKeys(ctx context.Context, phone string) error return err } -func (s *SQLStore) DeleteSession(address string) error { - _, err := s.db.Exec(context.TODO(), deleteSessionQuery, s.JID, address) +func (s *SQLStore) deleteAllIdentityKeys(ctx context.Context, phone string) error { + _, err := s.db.Exec(ctx, deleteAllIdentityKeysQuery, s.JID, phone+":%") + return err +} + +func (s *SQLStore) DeleteSession(ctx context.Context, address string) error { + _, err := s.db.Exec(ctx, deleteSessionQuery, s.JID, address) return err } @@ -179,7 +192,7 @@ func (s *SQLStore) MigratePNToLID(ctx context.Context, pn, lid types.JID) error if !s.migratedPNSessionsCache.Add(pnSignal) { return nil } - var sessionsUpdated, senderKeysUpdated int64 + var sessionsUpdated, identityKeysUpdated, senderKeysUpdated int64 lidSignal := lid.SignalAddressUser() err := s.db.DoTxn(ctx, nil, func(ctx context.Context) error { res, err := s.db.Exec(ctx, migratePNToLIDSessionsQuery, s.JID, pnSignal, lidSignal) @@ -194,6 +207,20 @@ func (s *SQLStore) MigratePNToLID(ctx context.Context, pn, lid types.JID) error if err != nil { return fmt.Errorf("failed to delete extra sessions: %w", err) } + + res, err = s.db.Exec(ctx, migratePNToLIDIdentityKeysQuery, s.JID, pnSignal, lidSignal) + if err != nil { + return fmt.Errorf("failed to migrate identity keys: %w", err) + } + identityKeysUpdated, err = res.RowsAffected() + if err != nil { + return fmt.Errorf("failed to get rows affected for identity keys: %w", err) + } + err = s.deleteAllIdentityKeys(ctx, pnSignal) + if err != nil { + return fmt.Errorf("failed to delete extra identity keys: %w", err) + } + res, err = s.db.Exec(ctx, migratePNToLIDSenderKeysQuery, s.JID, pnSignal, lidSignal) if err != nil { return fmt.Errorf("failed to migrate sender keys: %w", err) @@ -211,8 +238,8 @@ func (s *SQLStore) MigratePNToLID(ctx context.Context, pn, lid types.JID) error if err != nil { return err } - if sessionsUpdated > 0 || senderKeysUpdated > 0 { - s.log.Infof("Migrated %d sessions and %d sender keys from %s to %s", sessionsUpdated, senderKeysUpdated, pnSignal, lidSignal) + if sessionsUpdated > 0 || senderKeysUpdated > 0 || identityKeysUpdated > 0 { + s.log.Infof("Migrated %d sessions, %d identity keys and %d sender keys from %s to %s", sessionsUpdated, identityKeysUpdated, senderKeysUpdated, pnSignal, lidSignal) } else { s.log.Debugf("No sessions or sender keys found to migrate from %s to %s", pnSignal, lidSignal) } @@ -229,36 +256,36 @@ const ( getUploadedPreKeyCountQuery = `SELECT COUNT(*) FROM waSocket_pre_keys WHERE jid=$1 AND uploaded=true` ) -func (s *SQLStore) genOnePreKey(id uint32, markUploaded bool) (*keys.PreKey, error) { +func (s *SQLStore) genOnePreKey(ctx context.Context, id uint32, markUploaded bool) (*keys.PreKey, error) { key := keys.NewPreKey(id) - _, err := s.db.Exec(context.TODO(), insertPreKeyQuery, s.JID, key.KeyID, key.Priv[:], markUploaded) + _, err := s.db.Exec(ctx, insertPreKeyQuery, s.JID, key.KeyID, key.Priv[:], markUploaded) return key, err } -func (s *SQLStore) getNextPreKeyID() (uint32, error) { +func (s *SQLStore) getNextPreKeyID(ctx context.Context) (uint32, error) { var lastKeyID sql.NullInt32 - err := s.db.QueryRow(context.TODO(), getLastPreKeyIDQuery, s.JID).Scan(&lastKeyID) + err := s.db.QueryRow(ctx, getLastPreKeyIDQuery, s.JID).Scan(&lastKeyID) if err != nil { return 0, fmt.Errorf("failed to query next prekey ID: %w", err) } return uint32(lastKeyID.Int32) + 1, nil } -func (s *SQLStore) GenOnePreKey() (*keys.PreKey, error) { +func (s *SQLStore) GenOnePreKey(ctx context.Context) (*keys.PreKey, error) { s.preKeyLock.Lock() defer s.preKeyLock.Unlock() - nextKeyID, err := s.getNextPreKeyID() + nextKeyID, err := s.getNextPreKeyID(ctx) if err != nil { return nil, err } - return s.genOnePreKey(nextKeyID, true) + return s.genOnePreKey(ctx, nextKeyID, true) } -func (s *SQLStore) GetOrGenPreKeys(count uint32) ([]*keys.PreKey, error) { +func (s *SQLStore) GetOrGenPreKeys(ctx context.Context, count uint32) ([]*keys.PreKey, error) { s.preKeyLock.Lock() defer s.preKeyLock.Unlock() - res, err := s.db.Query(context.TODO(), getUnuploadedPreKeysQuery, s.JID, count) + res, err := s.db.Query(ctx, getUnuploadedPreKeysQuery, s.JID, count) if err != nil { return nil, fmt.Errorf("failed to query existing prekeys: %w", err) } @@ -277,12 +304,12 @@ func (s *SQLStore) GetOrGenPreKeys(count uint32) ([]*keys.PreKey, error) { if existingCount < uint32(len(newKeys)) { var nextKeyID uint32 - nextKeyID, err = s.getNextPreKeyID() + nextKeyID, err = s.getNextPreKeyID(ctx) if err != nil { return nil, err } for i := existingCount; i < count; i++ { - newKeys[i], err = s.genOnePreKey(nextKeyID, false) + newKeys[i], err = s.genOnePreKey(ctx, nextKeyID, false) if err != nil { return nil, fmt.Errorf("failed to generate prekey: %w", err) } @@ -310,22 +337,22 @@ func scanPreKey(row dbutil.Scannable) (*keys.PreKey, error) { }, nil } -func (s *SQLStore) GetPreKey(id uint32) (*keys.PreKey, error) { - return scanPreKey(s.db.QueryRow(context.TODO(), getPreKeyQuery, s.JID, id)) +func (s *SQLStore) GetPreKey(ctx context.Context, id uint32) (*keys.PreKey, error) { + return scanPreKey(s.db.QueryRow(ctx, getPreKeyQuery, s.JID, id)) } -func (s *SQLStore) RemovePreKey(id uint32) error { - _, err := s.db.Exec(context.TODO(), deletePreKeyQuery, s.JID, id) +func (s *SQLStore) RemovePreKey(ctx context.Context, id uint32) error { + _, err := s.db.Exec(ctx, deletePreKeyQuery, s.JID, id) return err } -func (s *SQLStore) MarkPreKeysAsUploaded(upToID uint32) error { - _, err := s.db.Exec(context.TODO(), markPreKeysAsUploadedQuery, s.JID, upToID) +func (s *SQLStore) MarkPreKeysAsUploaded(ctx context.Context, upToID uint32) error { + _, err := s.db.Exec(ctx, markPreKeysAsUploadedQuery, s.JID, upToID) return err } -func (s *SQLStore) UploadedPreKeyCount() (count int, err error) { - err = s.db.QueryRow(context.TODO(), getUploadedPreKeyCountQuery, s.JID).Scan(&count) +func (s *SQLStore) UploadedPreKeyCount(ctx context.Context) (count int, err error) { + err = s.db.QueryRow(ctx, getUploadedPreKeyCountQuery, s.JID).Scan(&count) return } @@ -337,13 +364,13 @@ const ( ` ) -func (s *SQLStore) PutSenderKey(group, user string, session []byte) error { - _, err := s.db.Exec(context.TODO(), putSenderKeyQuery, s.JID, group, user, session) +func (s *SQLStore) PutSenderKey(ctx context.Context, group, user string, session []byte) error { + _, err := s.db.Exec(ctx, putSenderKeyQuery, s.JID, group, user, session) return err } -func (s *SQLStore) GetSenderKey(group, user string) (key []byte, err error) { - err = s.db.QueryRow(context.TODO(), getSenderKeyQuery, s.JID, group, user).Scan(&key) +func (s *SQLStore) GetSenderKey(ctx context.Context, group, user string) (key []byte, err error) { + err = s.db.QueryRow(ctx, getSenderKeyQuery, s.JID, group, user).Scan(&key) if errors.Is(err, sql.ErrNoRows) { err = nil } @@ -361,23 +388,23 @@ const ( getLatestAppStateSyncKeyIDQuery = `SELECT key_id FROM waSocket_app_state_sync_keys WHERE jid=$1 ORDER BY timestamp DESC LIMIT 1` ) -func (s *SQLStore) PutAppStateSyncKey(id []byte, key store.AppStateSyncKey) error { - _, err := s.db.Exec(context.TODO(), putAppStateSyncKeyQuery, s.JID, id, key.Data, key.Timestamp, key.Fingerprint) +func (s *SQLStore) PutAppStateSyncKey(ctx context.Context, id []byte, key store.AppStateSyncKey) error { + _, err := s.db.Exec(ctx, putAppStateSyncKeyQuery, s.JID, id, key.Data, key.Timestamp, key.Fingerprint) return err } -func (s *SQLStore) GetAppStateSyncKey(id []byte) (*store.AppStateSyncKey, error) { +func (s *SQLStore) GetAppStateSyncKey(ctx context.Context, id []byte) (*store.AppStateSyncKey, error) { var key store.AppStateSyncKey - err := s.db.QueryRow(context.TODO(), getAppStateSyncKeyQuery, s.JID, id).Scan(&key.Data, &key.Timestamp, &key.Fingerprint) + err := s.db.QueryRow(ctx, getAppStateSyncKeyQuery, s.JID, id).Scan(&key.Data, &key.Timestamp, &key.Fingerprint) if errors.Is(err, sql.ErrNoRows) { return nil, nil } return &key, err } -func (s *SQLStore) GetLatestAppStateSyncKeyID() ([]byte, error) { +func (s *SQLStore) GetLatestAppStateSyncKeyID(ctx context.Context) ([]byte, error) { var keyID []byte - err := s.db.QueryRow(context.TODO(), getLatestAppStateSyncKeyIDQuery, s.JID).Scan(&keyID) + err := s.db.QueryRow(ctx, getLatestAppStateSyncKeyIDQuery, s.JID).Scan(&keyID) if errors.Is(err, sql.ErrNoRows) { return nil, nil } @@ -397,14 +424,14 @@ const ( getAppStateMutationMACQuery = `SELECT value_mac FROM waSocket_app_state_mutation_macs WHERE jid=$1 AND name=$2 AND index_mac=$3 ORDER BY version DESC LIMIT 1` ) -func (s *SQLStore) PutAppStateVersion(name string, version uint64, hash [128]byte) error { - _, err := s.db.Exec(context.TODO(), putAppStateVersionQuery, s.JID, name, version, hash[:]) +func (s *SQLStore) PutAppStateVersion(ctx context.Context, name string, version uint64, hash [128]byte) error { + _, err := s.db.Exec(ctx, putAppStateVersionQuery, s.JID, name, version, hash[:]) return err } -func (s *SQLStore) GetAppStateVersion(name string) (version uint64, hash [128]byte, err error) { +func (s *SQLStore) GetAppStateVersion(ctx context.Context, name string) (version uint64, hash [128]byte, err error) { var uncheckedHash []byte - err = s.db.QueryRow(context.TODO(), getAppStateVersionQuery, s.JID, name).Scan(&version, &uncheckedHash) + err = s.db.QueryRow(ctx, getAppStateVersionQuery, s.JID, name).Scan(&version, &uncheckedHash) if errors.Is(err, sql.ErrNoRows) { // version will be 0 and hash will be an empty array, which is the correct initial state err = nil @@ -420,8 +447,8 @@ func (s *SQLStore) GetAppStateVersion(name string) (version uint64, hash [128]by return } -func (s *SQLStore) DeleteAppStateVersion(name string) error { - _, err := s.db.Exec(context.TODO(), deleteAppStateVersionQuery, s.JID, name) +func (s *SQLStore) DeleteAppStateVersion(ctx context.Context, name string) error { + _, err := s.db.Exec(ctx, deleteAppStateVersionQuery, s.JID, name) return err } @@ -447,11 +474,11 @@ func (s *SQLStore) putAppStateMutationMACs(ctx context.Context, name string, ver const mutationBatchSize = 400 -func (s *SQLStore) PutAppStateMutationMACs(name string, version uint64, mutations []store.AppStateMutationMAC) error { +func (s *SQLStore) PutAppStateMutationMACs(ctx context.Context, name string, version uint64, mutations []store.AppStateMutationMAC) error { if len(mutations) == 0 { return nil } - return s.db.DoTxn(context.TODO(), nil, func(ctx context.Context) error { + return s.db.DoTxn(ctx, nil, func(ctx context.Context) error { for slice := range slices.Chunk(mutations, mutationBatchSize) { err := s.putAppStateMutationMACs(ctx, name, version, slice) if err != nil { @@ -462,12 +489,12 @@ func (s *SQLStore) PutAppStateMutationMACs(name string, version uint64, mutation }) } -func (s *SQLStore) DeleteAppStateMutationMACs(name string, indexMACs [][]byte) (err error) { +func (s *SQLStore) DeleteAppStateMutationMACs(ctx context.Context, name string, indexMACs [][]byte) (err error) { if len(indexMACs) == 0 { return } if s.db.Dialect == dbutil.Postgres && PostgresArrayWrapper != nil { - _, err = s.db.Exec(context.TODO(), deleteAppStateMutationMACsQueryPostgres, s.JID, name, PostgresArrayWrapper(indexMACs)) + _, err = s.db.Exec(ctx, deleteAppStateMutationMACsQueryPostgres, s.JID, name, PostgresArrayWrapper(indexMACs)) } else { args := make([]any, 2+len(indexMACs)) args[0] = s.JID @@ -477,13 +504,13 @@ func (s *SQLStore) DeleteAppStateMutationMACs(name string, indexMACs [][]byte) ( args[2+i] = item queryParts[i] = fmt.Sprintf("$%d", i+3) } - _, err = s.db.Exec(context.TODO(), deleteAppStateMutationMACsQueryGeneric+"("+strings.Join(queryParts, ",")+")", args...) + _, err = s.db.Exec(ctx, deleteAppStateMutationMACsQueryGeneric+"("+strings.Join(queryParts, ",")+")", args...) } return } -func (s *SQLStore) GetAppStateMutationMAC(name string, indexMAC []byte) (valueMAC []byte, err error) { - err = s.db.QueryRow(context.TODO(), getAppStateMutationMACQuery, s.JID, name, indexMAC).Scan(&valueMAC) +func (s *SQLStore) GetAppStateMutationMAC(ctx context.Context, name string, indexMAC []byte) (valueMAC []byte, err error) { + err = s.db.QueryRow(ctx, getAppStateMutationMACQuery, s.JID, name, indexMAC).Scan(&valueMAC) if errors.Is(err, sql.ErrNoRows) { err = nil } @@ -516,16 +543,16 @@ const ( ` ) -func (s *SQLStore) PutPushName(user types.JID, pushName string) (bool, string, error) { +func (s *SQLStore) PutPushName(ctx context.Context, user types.JID, pushName string) (bool, string, error) { s.contactCacheLock.Lock() defer s.contactCacheLock.Unlock() - cached, err := s.getContact(user) + cached, err := s.getContact(ctx, user) if err != nil { return false, "", err } if cached.PushName != pushName { - _, err = s.db.Exec(context.TODO(), putPushNameQuery, s.JID, user, pushName) + _, err = s.db.Exec(ctx, putPushNameQuery, s.JID, user, pushName) if err != nil { return false, "", err } @@ -537,16 +564,16 @@ func (s *SQLStore) PutPushName(user types.JID, pushName string) (bool, string, e return false, "", nil } -func (s *SQLStore) PutBusinessName(user types.JID, businessName string) (bool, string, error) { +func (s *SQLStore) PutBusinessName(ctx context.Context, user types.JID, businessName string) (bool, string, error) { s.contactCacheLock.Lock() defer s.contactCacheLock.Unlock() - cached, err := s.getContact(user) + cached, err := s.getContact(ctx, user) if err != nil { return false, "", err } if cached.BusinessName != businessName { - _, err = s.db.Exec(context.TODO(), putBusinessNameQuery, s.JID, user, businessName) + _, err = s.db.Exec(ctx, putBusinessNameQuery, s.JID, user, businessName) if err != nil { return false, "", err } @@ -558,16 +585,16 @@ func (s *SQLStore) PutBusinessName(user types.JID, businessName string) (bool, s return false, "", nil } -func (s *SQLStore) PutContactName(user types.JID, firstName, fullName string) error { +func (s *SQLStore) PutContactName(ctx context.Context, user types.JID, firstName, fullName string) error { s.contactCacheLock.Lock() defer s.contactCacheLock.Unlock() - cached, err := s.getContact(user) + cached, err := s.getContact(ctx, user) if err != nil { return err } if cached.FirstName != firstName || cached.FullName != fullName { - _, err = s.db.Exec(context.TODO(), putContactNameQuery, s.JID, user, firstName, fullName) + _, err = s.db.Exec(ctx, putContactNameQuery, s.JID, user, firstName, fullName) if err != nil { return err } @@ -611,11 +638,11 @@ func (s *SQLStore) putContactNamesBatch(ctx context.Context, contacts []store.Co return err } -func (s *SQLStore) PutAllContactNames(contacts []store.ContactEntry) error { +func (s *SQLStore) PutAllContactNames(ctx context.Context, contacts []store.ContactEntry) error { if len(contacts) == 0 { return nil } - err := s.db.DoTxn(context.TODO(), nil, func(ctx context.Context) error { + err := s.db.DoTxn(ctx, nil, func(ctx context.Context) error { for slice := range slices.Chunk(contacts, contactBatchSize) { err := s.putContactNamesBatch(ctx, slice) if err != nil { @@ -634,14 +661,14 @@ func (s *SQLStore) PutAllContactNames(contacts []store.ContactEntry) error { return nil } -func (s *SQLStore) getContact(user types.JID) (*types.ContactInfo, error) { +func (s *SQLStore) getContact(ctx context.Context, user types.JID) (*types.ContactInfo, error) { cached, ok := s.contactCache[user] if ok { return cached, nil } var first, full, push, business sql.NullString - err := s.db.QueryRow(context.TODO(), getContactQuery, s.JID, user).Scan(&first, &full, &push, &business) + err := s.db.QueryRow(ctx, getContactQuery, s.JID, user).Scan(&first, &full, &push, &business) if err != nil && !errors.Is(err, sql.ErrNoRows) { return nil, err } @@ -656,9 +683,9 @@ func (s *SQLStore) getContact(user types.JID) (*types.ContactInfo, error) { return info, nil } -func (s *SQLStore) GetContact(user types.JID) (types.ContactInfo, error) { +func (s *SQLStore) GetContact(ctx context.Context, user types.JID) (types.ContactInfo, error) { s.contactCacheLock.Lock() - info, err := s.getContact(user) + info, err := s.getContact(ctx, user) s.contactCacheLock.Unlock() if err != nil { return types.ContactInfo{}, err @@ -666,10 +693,10 @@ func (s *SQLStore) GetContact(user types.JID) (types.ContactInfo, error) { return *info, nil } -func (s *SQLStore) GetAllContacts() (map[types.JID]types.ContactInfo, error) { +func (s *SQLStore) GetAllContacts(ctx context.Context) (map[types.JID]types.ContactInfo, error) { s.contactCacheLock.Lock() defer s.contactCacheLock.Unlock() - rows, err := s.db.Query(context.TODO(), getAllContactsQuery, s.JID) + rows, err := s.db.Query(ctx, getAllContactsQuery, s.JID) if err != nil { return nil, err } @@ -704,28 +731,28 @@ const ( ` ) -func (s *SQLStore) PutMutedUntil(chat types.JID, mutedUntil time.Time) error { +func (s *SQLStore) PutMutedUntil(ctx context.Context, chat types.JID, mutedUntil time.Time) error { var val int64 if !mutedUntil.IsZero() { val = mutedUntil.Unix() } - _, err := s.db.Exec(context.TODO(), fmt.Sprintf(putChatSettingQuery, "muted_until"), s.JID, chat, val) + _, err := s.db.Exec(ctx, fmt.Sprintf(putChatSettingQuery, "muted_until"), s.JID, chat, val) return err } -func (s *SQLStore) PutPinned(chat types.JID, pinned bool) error { - _, err := s.db.Exec(context.TODO(), fmt.Sprintf(putChatSettingQuery, "pinned"), s.JID, chat, pinned) +func (s *SQLStore) PutPinned(ctx context.Context, chat types.JID, pinned bool) error { + _, err := s.db.Exec(ctx, fmt.Sprintf(putChatSettingQuery, "pinned"), s.JID, chat, pinned) return err } -func (s *SQLStore) PutArchived(chat types.JID, archived bool) error { - _, err := s.db.Exec(context.TODO(), fmt.Sprintf(putChatSettingQuery, "archived"), s.JID, chat, archived) +func (s *SQLStore) PutArchived(ctx context.Context, chat types.JID, archived bool) error { + _, err := s.db.Exec(ctx, fmt.Sprintf(putChatSettingQuery, "archived"), s.JID, chat, archived) return err } -func (s *SQLStore) GetChatSettings(chat types.JID) (settings types.LocalChatSettings, err error) { +func (s *SQLStore) GetChatSettings(ctx context.Context, chat types.JID) (settings types.LocalChatSettings, err error) { var mutedUntil int64 - err = s.db.QueryRow(context.TODO(), getChatSettingsQuery, s.JID, chat).Scan(&mutedUntil, &settings.Pinned, &settings.Archived) + err = s.db.QueryRow(ctx, getChatSettingsQuery, s.JID, chat).Scan(&mutedUntil, &settings.Pinned, &settings.Archived) if errors.Is(err, sql.ErrNoRows) { err = nil } else if err != nil { @@ -750,11 +777,11 @@ const ( ` ) -func (s *SQLStore) PutMessageSecrets(inserts []store.MessageSecretInsert) (err error) { +func (s *SQLStore) PutMessageSecrets(ctx context.Context, inserts []store.MessageSecretInsert) (err error) { if len(inserts) == 0 { return nil } - return s.db.DoTxn(context.TODO(), nil, func(ctx context.Context) error { + return s.db.DoTxn(ctx, nil, func(ctx context.Context) error { for _, insert := range inserts { _, err = s.db.Exec(ctx, putMsgSecret, s.JID, insert.Chat.ToNonAD(), insert.Sender.ToNonAD(), insert.ID, insert.Secret) if err != nil { @@ -765,13 +792,13 @@ func (s *SQLStore) PutMessageSecrets(inserts []store.MessageSecretInsert) (err e }) } -func (s *SQLStore) PutMessageSecret(chat, sender types.JID, id types.MessageID, secret []byte) (err error) { - _, err = s.db.Exec(context.TODO(), putMsgSecret, s.JID, chat.ToNonAD(), sender.ToNonAD(), id, secret) +func (s *SQLStore) PutMessageSecret(ctx context.Context, chat, sender types.JID, id types.MessageID, secret []byte) (err error) { + _, err = s.db.Exec(ctx, putMsgSecret, s.JID, chat.ToNonAD(), sender.ToNonAD(), id, secret) return } -func (s *SQLStore) GetMessageSecret(chat, sender types.JID, id types.MessageID) (secret []byte, err error) { - err = s.db.QueryRow(context.TODO(), getMsgSecret, s.JID, chat.ToNonAD(), sender.ToNonAD(), id).Scan(&secret) +func (s *SQLStore) GetMessageSecret(ctx context.Context, chat, sender types.JID, id types.MessageID) (secret []byte, err error) { + err = s.db.QueryRow(ctx, getMsgSecret, s.JID, chat.ToNonAD(), sender.ToNonAD(), id).Scan(&secret) if errors.Is(err, sql.ErrNoRows) { err = nil } @@ -787,7 +814,7 @@ const ( getPrivacyToken = `SELECT token, timestamp FROM waSocket_privacy_tokens WHERE our_jid=$1 AND their_jid=$2` ) -func (s *SQLStore) PutPrivacyTokens(tokens ...store.PrivacyToken) error { +func (s *SQLStore) PutPrivacyTokens(ctx context.Context, tokens ...store.PrivacyToken) error { args := make([]any, 1+len(tokens)*3) placeholders := make([]string, len(tokens)) args[0] = s.JID @@ -798,15 +825,15 @@ func (s *SQLStore) PutPrivacyTokens(tokens ...store.PrivacyToken) error { placeholders[i] = fmt.Sprintf("($1, $%d, $%d, $%d)", i*3+2, i*3+3, i*3+4) } query := strings.ReplaceAll(putPrivacyTokens, "($1, $2, $3, $4)", strings.Join(placeholders, ",")) - _, err := s.db.Exec(context.TODO(), query, args...) + _, err := s.db.Exec(ctx, query, args...) return err } -func (s *SQLStore) GetPrivacyToken(user types.JID) (*store.PrivacyToken, error) { +func (s *SQLStore) GetPrivacyToken(ctx context.Context, user types.JID) (*store.PrivacyToken, error) { var token store.PrivacyToken token.User = user.ToNonAD() var ts int64 - err := s.db.QueryRow(context.TODO(), getPrivacyToken, s.JID, token.User).Scan(&token.Token, &ts) + err := s.db.QueryRow(ctx, getPrivacyToken, s.JID, token.User).Scan(&token.Token, &ts) if errors.Is(err, sql.ErrNoRows) { return nil, nil } else if err != nil { @@ -816,3 +843,55 @@ func (s *SQLStore) GetPrivacyToken(user types.JID) (*store.PrivacyToken, error) return &token, nil } } + +const ( + getBufferedEventQuery = ` + SELECT plaintext, server_timestamp, insert_timestamp FROM waSocket_event_buffer WHERE our_jid = $1 AND ciphertext_hash = $2 + ` + putBufferedEventQuery = ` + INSERT INTO waSocket_event_buffer (our_jid, ciphertext_hash, plaintext, server_timestamp, insert_timestamp) + VALUES ($1, $2, $3, $4, $5) + ` + clearBufferedEventPlaintextQuery = ` + UPDATE waSocket_event_buffer SET plaintext = NULL WHERE our_jid = $1 AND ciphertext_hash = $2 + ` + deleteOldBufferedHashesQuery = ` + DELETE FROM waSocket_event_buffer WHERE insert_timestamp < $1 + ` +) + +func (s *SQLStore) GetBufferedEvent(ctx context.Context, ciphertextHash [32]byte) (*store.BufferedEvent, error) { + var insertTimeMS, serverTimeSeconds int64 + var buf store.BufferedEvent + err := s.db.QueryRow(ctx, getBufferedEventQuery, s.JID, ciphertextHash[:]).Scan(&buf.Plaintext, &serverTimeSeconds, &insertTimeMS) + if errors.Is(err, sql.ErrNoRows) { + return nil, nil + } else if err != nil { + return nil, err + } + buf.ServerTime = time.Unix(serverTimeSeconds, 0) + buf.InsertTime = time.UnixMilli(insertTimeMS) + return &buf, nil +} + +func (s *SQLStore) PutBufferedEvent(ctx context.Context, ciphertextHash [32]byte, plaintext []byte, serverTimestamp time.Time) error { + _, err := s.db.Exec(ctx, putBufferedEventQuery, s.JID, ciphertextHash[:], plaintext, serverTimestamp.Unix(), time.Now().UnixMilli()) + return err +} + +func (s *SQLStore) DoDecryptionTxn(ctx context.Context, fn func(context.Context) error) error { + ctx = context.WithValue(ctx, dbutil.ContextKeyDoTxnCallerSkip, 2) + return s.db.DoTxn(ctx, nil, fn) +} + +func (s *SQLStore) ClearBufferedEventPlaintext(ctx context.Context, ciphertextHash [32]byte) error { + _, err := s.db.Exec(ctx, clearBufferedEventPlaintextQuery, s.JID, ciphertextHash[:]) + return err +} + +func (s *SQLStore) DeleteOldBufferedHashes(ctx context.Context) error { + // The WhatsApp servers only buffer events for 14 days, + // so we can safely delete anything older than that. + _, err := s.db.Exec(ctx, deleteOldBufferedHashesQuery, time.Now().Add(-14*24*time.Hour).UnixMilli()) + return err +} diff --git a/store/sqlstore/upgrades/00-latest-schema.sql b/store/sqlstore/upgrades/00-latest-schema.sql index 3a0f5f3b..0239fd3f 100644 --- a/store/sqlstore/upgrades/00-latest-schema.sql +++ b/store/sqlstore/upgrades/00-latest-schema.sql @@ -1,4 +1,4 @@ --- v0 -> v8 (compatible with v8+): Latest schema +-- v0 -> v9 (compatible with v8+): Latest schema CREATE TABLE waSocket_device ( jid TEXT PRIMARY KEY, lid TEXT, @@ -141,3 +141,13 @@ CREATE TABLE waSocket_lid_map ( lid TEXT PRIMARY KEY, pn TEXT UNIQUE NOT NULL ); + +CREATE TABLE waSocket_event_buffer ( + our_jid TEXT NOT NULL, + ciphertext_hash bytea NOT NULL CHECK ( length(ciphertext_hash) = 32 ), + plaintext bytea, + server_timestamp BIGINT NOT NULL, + insert_timestamp BIGINT NOT NULL, + PRIMARY KEY (our_jid, ciphertext_hash), + FOREIGN KEY (our_jid) REFERENCES waSocket_device(jid) ON DELETE CASCADE ON UPDATE CASCADE +); diff --git a/store/sqlstore/upgrades/09-decryption-buffer.sql b/store/sqlstore/upgrades/09-decryption-buffer.sql new file mode 100644 index 00000000..d9ea5f03 --- /dev/null +++ b/store/sqlstore/upgrades/09-decryption-buffer.sql @@ -0,0 +1,10 @@ +-- v9 (compatible with v8+): Add decrypted event buffer +CREATE TABLE waSocket_event_buffer ( + our_jid TEXT NOT NULL, + ciphertext_hash bytea NOT NULL CHECK ( length(ciphertext_hash) = 32 ), + plaintext bytea, + server_timestamp BIGINT NOT NULL, + insert_timestamp BIGINT NOT NULL, + PRIMARY KEY (our_jid, ciphertext_hash), + FOREIGN KEY (our_jid) REFERENCES waSocket_device(jid) ON DELETE CASCADE ON UPDATE CASCADE +); diff --git a/store/store.go b/store/store.go index a130e619..cc38c61d 100644 --- a/store/store.go +++ b/store/store.go @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Tulir Asokan +// Copyright (c) 2025 Tulir Asokan // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this @@ -9,7 +9,6 @@ package store import ( "context" - "fmt" "time" "github.com/google/uuid" @@ -21,33 +20,33 @@ import ( ) type IdentityStore interface { - PutIdentity(address string, key [32]byte) error - DeleteAllIdentities(phone string) error - DeleteIdentity(address string) error - IsTrustedIdentity(address string, key [32]byte) (bool, error) + PutIdentity(ctx context.Context, address string, key [32]byte) error + DeleteAllIdentities(ctx context.Context, phone string) error + DeleteIdentity(ctx context.Context, address string) error + IsTrustedIdentity(ctx context.Context, address string, key [32]byte) (bool, error) } type SessionStore interface { - GetSession(address string) ([]byte, error) - HasSession(address string) (bool, error) - PutSession(address string, session []byte) error - DeleteAllSessions(phone string) error - DeleteSession(address string) error + GetSession(ctx context.Context, address string) ([]byte, error) + HasSession(ctx context.Context, address string) (bool, error) + PutSession(ctx context.Context, address string, session []byte) error + DeleteAllSessions(ctx context.Context, phone string) error + DeleteSession(ctx context.Context, address string) error MigratePNToLID(ctx context.Context, pn, lid types.JID) error } type PreKeyStore interface { - GetOrGenPreKeys(count uint32) ([]*keys.PreKey, error) - GenOnePreKey() (*keys.PreKey, error) - GetPreKey(id uint32) (*keys.PreKey, error) - RemovePreKey(id uint32) error - MarkPreKeysAsUploaded(upToID uint32) error - UploadedPreKeyCount() (int, error) + GetOrGenPreKeys(ctx context.Context, count uint32) ([]*keys.PreKey, error) + GenOnePreKey(ctx context.Context) (*keys.PreKey, error) + GetPreKey(ctx context.Context, id uint32) (*keys.PreKey, error) + RemovePreKey(ctx context.Context, id uint32) error + MarkPreKeysAsUploaded(ctx context.Context, upToID uint32) error + UploadedPreKeyCount(ctx context.Context) (int, error) } type SenderKeyStore interface { - PutSenderKey(group, user string, session []byte) error - GetSenderKey(group, user string) ([]byte, error) + PutSenderKey(ctx context.Context, group, user string, session []byte) error + GetSenderKey(ctx context.Context, group, user string) ([]byte, error) } type AppStateSyncKey struct { @@ -57,9 +56,9 @@ type AppStateSyncKey struct { } type AppStateSyncKeyStore interface { - PutAppStateSyncKey(id []byte, key AppStateSyncKey) error - GetAppStateSyncKey(id []byte) (*AppStateSyncKey, error) - GetLatestAppStateSyncKeyID() ([]byte, error) + PutAppStateSyncKey(ctx context.Context, id []byte, key AppStateSyncKey) error + GetAppStateSyncKey(ctx context.Context, id []byte) (*AppStateSyncKey, error) + GetLatestAppStateSyncKeyID(ctx context.Context) ([]byte, error) } type AppStateMutationMAC struct { @@ -68,13 +67,13 @@ type AppStateMutationMAC struct { } type AppStateStore interface { - PutAppStateVersion(name string, version uint64, hash [128]byte) error - GetAppStateVersion(name string) (uint64, [128]byte, error) - DeleteAppStateVersion(name string) error + PutAppStateVersion(ctx context.Context, name string, version uint64, hash [128]byte) error + GetAppStateVersion(ctx context.Context, name string) (uint64, [128]byte, error) + DeleteAppStateVersion(ctx context.Context, name string) error - PutAppStateMutationMACs(name string, version uint64, mutations []AppStateMutationMAC) error - DeleteAppStateMutationMACs(name string, indexMACs [][]byte) error - GetAppStateMutationMAC(name string, indexMAC []byte) (valueMAC []byte, err error) + PutAppStateMutationMACs(ctx context.Context, name string, version uint64, mutations []AppStateMutationMAC) error + DeleteAppStateMutationMACs(ctx context.Context, name string, indexMACs [][]byte) error + GetAppStateMutationMAC(ctx context.Context, name string, indexMAC []byte) (valueMAC []byte, err error) } type ContactEntry struct { @@ -84,24 +83,24 @@ type ContactEntry struct { } type ContactStore interface { - PutPushName(user types.JID, pushName string) (bool, string, error) - PutBusinessName(user types.JID, businessName string) (bool, string, error) - PutContactName(user types.JID, fullName, firstName string) error - PutAllContactNames(contacts []ContactEntry) error - GetContact(user types.JID) (types.ContactInfo, error) - GetAllContacts() (map[types.JID]types.ContactInfo, error) + PutPushName(ctx context.Context, user types.JID, pushName string) (bool, string, error) + PutBusinessName(ctx context.Context, user types.JID, businessName string) (bool, string, error) + PutContactName(ctx context.Context, user types.JID, fullName, firstName string) error + PutAllContactNames(ctx context.Context, contacts []ContactEntry) error + GetContact(ctx context.Context, user types.JID) (types.ContactInfo, error) + GetAllContacts(ctx context.Context) (map[types.JID]types.ContactInfo, error) } type ChatSettingsStore interface { - PutMutedUntil(chat types.JID, mutedUntil time.Time) error - PutPinned(chat types.JID, pinned bool) error - PutArchived(chat types.JID, archived bool) error - GetChatSettings(chat types.JID) (types.LocalChatSettings, error) + PutMutedUntil(ctx context.Context, chat types.JID, mutedUntil time.Time) error + PutPinned(ctx context.Context, chat types.JID, pinned bool) error + PutArchived(ctx context.Context, chat types.JID, archived bool) error + GetChatSettings(ctx context.Context, chat types.JID) (types.LocalChatSettings, error) } type DeviceContainer interface { - PutDevice(store *Device) error - DeleteDevice(store *Device) error + PutDevice(ctx context.Context, store *Device) error + DeleteDevice(ctx context.Context, store *Device) error } type MessageSecretInsert struct { @@ -112,9 +111,9 @@ type MessageSecretInsert struct { } type MsgSecretStore interface { - PutMessageSecrets([]MessageSecretInsert) error - PutMessageSecret(chat, sender types.JID, id types.MessageID, secret []byte) error - GetMessageSecret(chat, sender types.JID, id types.MessageID) ([]byte, error) + PutMessageSecrets(ctx context.Context, inserts []MessageSecretInsert) error + PutMessageSecret(ctx context.Context, chat, sender types.JID, id types.MessageID, secret []byte) error + GetMessageSecret(ctx context.Context, chat, sender types.JID, id types.MessageID) ([]byte, error) } type PrivacyToken struct { @@ -124,8 +123,22 @@ type PrivacyToken struct { } type PrivacyTokenStore interface { - PutPrivacyTokens(tokens ...PrivacyToken) error - GetPrivacyToken(user types.JID) (*PrivacyToken, error) + PutPrivacyTokens(ctx context.Context, tokens ...PrivacyToken) error + GetPrivacyToken(ctx context.Context, user types.JID) (*PrivacyToken, error) +} + +type BufferedEvent struct { + Plaintext []byte + InsertTime time.Time + ServerTime time.Time +} + +type EventBuffer interface { + GetBufferedEvent(ctx context.Context, ciphertextHash [32]byte) (*BufferedEvent, error) + PutBufferedEvent(ctx context.Context, ciphertextHash [32]byte, plaintext []byte, serverTimestamp time.Time) error + DoDecryptionTxn(ctx context.Context, fn func(context.Context) error) error + ClearBufferedEventPlaintext(ctx context.Context, ciphertextHash [32]byte) error + DeleteOldBufferedHashes(ctx context.Context) error } type LIDMapping struct { @@ -151,6 +164,7 @@ type AllSessionSpecificStores interface { ChatSettingsStore MsgSecretStore PrivacyTokenStore + EventBuffer } type AllGlobalStores interface { @@ -191,18 +205,9 @@ type Device struct { ChatSettings ChatSettingsStore MsgSecrets MsgSecretStore PrivacyTokens PrivacyTokenStore + EventBuffer EventBuffer LIDs LIDStore Container DeviceContainer - - DatabaseErrorHandler func(device *Device, action string, attemptIndex int, err error) (retry bool) -} - -func (device *Device) handleDatabaseError(attemptIndex int, err error, action string, args ...interface{}) bool { - if device.DatabaseErrorHandler != nil { - return device.DatabaseErrorHandler(device, fmt.Sprintf(action, args...), attemptIndex, err) - } - device.Log.Errorf("Failed to %s: %v", fmt.Sprintf(action, args...), err) - return false } func (device *Device) GetJID() types.JID { @@ -223,12 +228,12 @@ func (device *Device) GetLID() types.JID { return device.LID } -func (device *Device) Save() error { - return device.Container.PutDevice(device) +func (device *Device) Save(ctx context.Context) error { + return device.Container.PutDevice(ctx, device) } -func (device *Device) Delete() error { - err := device.Container.DeleteDevice(device) +func (device *Device) Delete(ctx context.Context) error { + err := device.Container.DeleteDevice(ctx, device) if err != nil { return err } diff --git a/update.go b/update.go index f0a77a57..e9f92449 100644 --- a/update.go +++ b/update.go @@ -7,6 +7,7 @@ package waSocket import ( + "context" "fmt" "io" "net/http" @@ -28,8 +29,8 @@ var clientVersionRegex = regexp.MustCompile(`"client_revision":(\d+),`) // return err // } // store.SetWAVersion(*latestVer) -func GetLatestVersion(httpClient *http.Client) (*store.WAVersionContainer, error) { - req, err := http.NewRequest(http.MethodGet, socket.Origin, nil) +func GetLatestVersion(ctx context.Context, httpClient *http.Client) (*store.WAVersionContainer, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, socket.Origin, nil) if err != nil { return nil, fmt.Errorf("failed to prepare request: %w", err) } diff --git a/upload.go b/upload.go index 9b83a79f..9c5fc0b6 100644 --- a/upload.go +++ b/upload.go @@ -189,7 +189,7 @@ func (cli *Client) UploadNewsletterReader(ctx context.Context, data io.ReadSeeke } func (cli *Client) rawUpload(ctx context.Context, dataToUpload io.Reader, uploadSize uint64, fileHash []byte, appInfo MediaType, newsletter bool, resp *UploadResponse) error { - mediaConn, err := cli.refreshMediaConn(false) + mediaConn, err := cli.refreshMediaConn(ctx, false) if err != nil { return fmt.Errorf("failed to refresh media connections: %w", err) } diff --git a/user.go b/user.go index d64d073e..5aab75a4 100644 --- a/user.go +++ b/user.go @@ -224,7 +224,7 @@ func (cli *Client) GetUserInfo(jids []types.JID) (map[types.JID]types.UserInfo, info.PictureID, _ = child.GetChildByTag("picture").Attrs["id"].(string) info.Devices = parseDeviceList(jid, child.GetChildByTag("devices")) if verifiedName != nil { - cli.updateBusinessName(jid, nil, verifiedName.Details.GetVerifiedName()) + cli.updateBusinessName(context.TODO(), jid, nil, verifiedName.Details.GetVerifiedName()) } respData[jid] = info } @@ -420,6 +420,8 @@ func (cli *Client) GetBusinessProfile(jid types.JID) (*types.BusinessProfile, er // GetUserDevices gets the list of devices that the given user has. The input should be a list of // regular JIDs, and the output will be a list of AD JIDs. The local device will not be included in // the output even if the user's JID is included in the input. All other devices will be included. +// +// Deprecated: use GetUserDevicesContext instead. func (cli *Client) GetUserDevices(jids []types.JID) ([]types.JID, error) { return cli.GetUserDevicesContext(context.Background(), jids) } @@ -570,7 +572,7 @@ func (cli *Client) GetProfilePictureInfo(jid types.JID, params *GetProfilePictur return &info, nil } -func (cli *Client) handleHistoricalPushNames(names []*waHistorySync.Pushname) { +func (cli *Client) handleHistoricalPushNames(ctx context.Context, names []*waHistorySync.Pushname) { if cli.Store.Contacts == nil { return } @@ -580,22 +582,22 @@ func (cli *Client) handleHistoricalPushNames(names []*waHistorySync.Pushname) { continue } var changed bool - if jid, err := types.ParseJID(user.GetId()); err != nil { - cli.Log.Warnf("Failed to parse user ID '%s' in push name history sync: %v", user.GetId(), err) - } else if changed, _, err = cli.Store.Contacts.PutPushName(jid, user.GetPushname()); err != nil { - cli.Log.Warnf("Failed to store push name of %s from history sync: %v", err) + if jid, err := types.ParseJID(user.GetID()); err != nil { + cli.Log.Warnf("Failed to parse user ID '%s' in push name history sync: %v", user.GetID(), err) + } else if changed, _, err = cli.Store.Contacts.PutPushName(ctx, jid, user.GetPushname()); err != nil { + cli.Log.Warnf("Failed to store push name of %s from history sync: %v", jid, err) } else if changed { cli.Log.Debugf("Got push name %s for %s in history sync", user.GetPushname(), jid) } } } -func (cli *Client) updatePushName(user types.JID, messageInfo *types.MessageInfo, name string) { +func (cli *Client) updatePushName(ctx context.Context, user types.JID, messageInfo *types.MessageInfo, name string) { if cli.Store.Contacts == nil { return } user = user.ToNonAD() - changed, previousName, err := cli.Store.Contacts.PutPushName(user, name) + changed, previousName, err := cli.Store.Contacts.PutPushName(ctx, user, name) if err != nil { cli.Log.Errorf("Failed to save push name of %s in device store: %v", user, err) } else if changed { @@ -609,11 +611,11 @@ func (cli *Client) updatePushName(user types.JID, messageInfo *types.MessageInfo } } -func (cli *Client) updateBusinessName(user types.JID, messageInfo *types.MessageInfo, name string) { +func (cli *Client) updateBusinessName(ctx context.Context, user types.JID, messageInfo *types.MessageInfo, name string) { if cli.Store.Contacts == nil { return } - changed, previousName, err := cli.Store.Contacts.PutBusinessName(user, name) + changed, previousName, err := cli.Store.Contacts.PutBusinessName(ctx, user, name) if err != nil { cli.Log.Errorf("Failed to save business name of %s in device store: %v", user, err) } else if changed {