Update dependencies (#2180)
Some checks failed
Development / golangci-lint (push) Has been cancelled
Development / test-build-upload (1.22.x, ubuntu-latest) (push) Has been cancelled

* Update dependencies

* Fix whatsmeow API changes
This commit is contained in:
Wim
2024-08-27 19:04:05 +02:00
committed by GitHub
parent d16645c952
commit c4157a4d5b
589 changed files with 681707 additions and 198856 deletions

View File

@@ -14,9 +14,7 @@ discussions.
## Usage
The [godoc](https://pkg.go.dev/go.mau.fi/whatsmeow) includes docs for all methods and event types.
There's also a [simple example](https://godocs.io/go.mau.fi/whatsmeow#example-package) at the top.
Also see [mdtest](./mdtest) for a CLI tool you can easily try out whatsmeow with.
There's also a [simple example](https://pkg.go.dev/go.mau.fi/whatsmeow#example-package) at the top.
## Features
Most core features are already present:

View File

@@ -318,14 +318,14 @@ func (cli *Client) requestAppStateKeys(ctx context.Context, rawKeyIDs [][]byte)
keyIDs := make([]*waProto.AppStateSyncKeyId, len(rawKeyIDs))
debugKeyIDs := make([]string, len(rawKeyIDs))
for i, keyID := range rawKeyIDs {
keyIDs[i] = &waProto.AppStateSyncKeyId{KeyId: keyID}
keyIDs[i] = &waProto.AppStateSyncKeyId{KeyID: keyID}
debugKeyIDs[i] = hex.EncodeToString(keyID)
}
msg := &waProto.Message{
ProtocolMessage: &waProto.ProtocolMessage{
Type: waProto.ProtocolMessage_APP_STATE_SYNC_KEY_REQUEST.Enum(),
AppStateSyncKeyRequest: &waProto.AppStateSyncKeyRequest{
KeyIds: keyIDs,
KeyIDs: keyIDs,
},
},
}

View File

@@ -257,7 +257,7 @@ func (proc *Processor) EncodePatch(keyID []byte, state HashState, patchInfo Patc
Record: &waProto.SyncdRecord{
Index: &waProto.SyncdIndex{Blob: indexMac},
Value: &waProto.SyncdValue{Blob: append(encryptedContent, valueMac...)},
KeyId: &waProto.KeyId{Id: keyID},
KeyID: &waProto.KeyId{ID: keyID},
},
})
}
@@ -275,11 +275,11 @@ func (proc *Processor) EncodePatch(keyID []byte, state HashState, patchInfo Patc
state.Version += 1
syncdPatch := &waProto.SyncdPatch{
SnapshotMac: state.generateSnapshotMAC(patchInfo.Type, keys.SnapshotMAC),
KeyId: &waProto.KeyId{Id: keyID},
SnapshotMAC: state.generateSnapshotMAC(patchInfo.Type, keys.SnapshotMAC),
KeyID: &waProto.KeyId{ID: keyID},
Mutations: mutations,
}
syncdPatch.PatchMac = generatePatchMAC(syncdPatch, patchInfo.Type, keys.PatchMAC, state.Version)
syncdPatch.PatchMAC = generatePatchMAC(syncdPatch, patchInfo.Type, keys.PatchMAC, state.Version)
result, err := proto.Marshal(syncdPatch)
if err != nil {

View File

@@ -11,10 +11,10 @@ import (
"google.golang.org/protobuf/proto"
"go.mau.fi/whatsmeow/binary/armadillo"
"go.mau.fi/whatsmeow/binary/armadillo/waCommon"
"go.mau.fi/whatsmeow/binary/armadillo/waMsgApplication"
"go.mau.fi/whatsmeow/binary/armadillo/waMsgTransport"
armadillo "go.mau.fi/whatsmeow/proto"
"go.mau.fi/whatsmeow/proto/waCommon"
"go.mau.fi/whatsmeow/proto/waMsgApplication"
"go.mau.fi/whatsmeow/proto/waMsgTransport"
"go.mau.fi/whatsmeow/types"
"go.mau.fi/whatsmeow/types/events"
)

View File

@@ -1 +0,0 @@
e2ee.js

View File

@@ -1,9 +0,0 @@
#!/bin/bash
cd $(dirname $0)
set -euo pipefail
if [[ ! -f "e2ee.js" ]]; then
echo "Please download the encryption javascript file and save it to e2ee.js first"
exit 1
fi
node parse-proto.js
protoc --go_out=. --go_opt=paths=source_relative --go_opt=embed_raw=true */*.proto

View File

@@ -1,351 +0,0 @@
///////////////////
// JS EVALUATION //
///////////////////
const protos = []
const modules = {
"$InternalEnum": {
exports: {
exports: function (data) {
data.__enum__ = true
return data
}
}
},
}
function requireModule(name) {
if (!modules[name]) {
throw new Error(`Unknown requirement ${name}`)
}
return modules[name].exports
}
function requireDefault(name) {
return requireModule(name).exports
}
function ignoreModule(name) {
if (name === "WAProtoConst") {
return false
} else if (!name.endsWith(".pb")) {
// Ignore any non-protobuf modules, except WAProtoConst above
return true
} else if (name.startsWith("MAWArmadillo") && (name.endsWith("TableSchema.pb") || name.endsWith("TablesSchema.pb"))) {
// Ignore internal table schemas
return true
} else if (name === "WASignalLocalStorageProtocol.pb" || name === "WASignalWhisperTextProtocol.pb") {
// Ignore standard signal protocol stuff
return true
} else {
return false
}
}
function defineModule(name, dependencies, callback, unknownIntOrNull) {
if (ignoreModule(name)) {
return
}
const exports = {}
if (dependencies.length > 0) {
callback(null, requireDefault, null, requireModule, null, null, exports)
} else {
callback(null, requireDefault, null, requireModule, exports, exports)
}
modules[name] = {exports, dependencies}
}
global.self = global
global.__d = defineModule
require("./e2ee.js")
function dereference(obj, module, currentPath, next, ...remainder) {
if (!next) {
return obj
}
if (!obj.messages[next]) {
obj.messages[next] = {messages: {}, enums: {}, __module__: module, __path__: currentPath, __name__: next}
}
return dereference(obj.messages[next], module, currentPath.concat([next]), ...remainder)
}
function dereferenceSnake(obj, currentPath, path) {
let next = path[0]
path = path.slice(1)
while (!obj.messages[next]) {
if (path.length === 0) {
return [obj, currentPath, next]
}
next += path[0]
path = path.slice(1)
}
return dereferenceSnake(obj.messages[next], currentPath.concat([next]), path)
}
function renameModule(name) {
return name.replace(".pb", "")
}
function renameDependencies(dependencies) {
return dependencies
.filter(name => name.endsWith(".pb"))
.map(renameModule)
.map(name => name === "WAProtocol" ? "WACommon" : name)
}
function renameType(protoName, fieldName, field) {
return fieldName
}
for (const [name, module] of Object.entries(modules)) {
if (!name.endsWith(".pb")) {
continue
} else if (!module.exports) {
console.warn(name, "has no exports")
continue
}
// Slightly hacky way to get rid of WAProtocol.pb and just use the MessageKey in WACommon
if (name === "WAProtocol.pb") {
if (Object.entries(module.exports).length > 1) {
console.warn("WAProtocol.pb has more than one export")
}
module.exports["MessageKeySpec"].__name__ = "MessageKey"
module.exports["MessageKeySpec"].__module__ = "WACommon"
module.exports["MessageKeySpec"].__path__ = []
continue
}
const proto = {
__protobuf__: true,
messages: {},
enums: {},
__name__: renameModule(name),
dependencies: renameDependencies(module.dependencies),
}
const upperSnakeEnums = []
for (const [name, field] of Object.entries(module.exports)) {
const namePath = name.replace(/Spec$/, "").split("$")
field.__name__ = renameType(proto.__name__, namePath[namePath.length - 1], field)
namePath[namePath.length - 1] = field.__name__
field.__path__ = namePath.slice(0, -1)
field.__module__ = proto.__name__
if (field.internalSpec) {
dereference(proto, proto.__name__, [], ...namePath).message = field.internalSpec
} else if (namePath.length === 1 && name.toUpperCase() === name) {
upperSnakeEnums.push(field)
} else {
dereference(proto, proto.__name__, [], ...namePath.slice(0, -1)).enums[field.__name__] = field
}
}
// Some enums have uppercase names, instead of capital case with $ separators.
// For those, we need to find the right nesting location.
for (const field of upperSnakeEnums) {
field.__enum__ = true
const [obj, path, name] = dereferenceSnake(proto, [], field.__name__.split("_").map(part => part[0] + part.slice(1).toLowerCase()))
field.__path__ = path
field.__name__ = name
field.__module__ = proto.__name__
obj.enums[name] = field
}
protos.push(proto)
}
////////////////////////////////
// PROTOBUF SCHEMA GENERATION //
////////////////////////////////
function indent(lines, indent = "\t") {
return lines.map(line => line ? `${indent}${line}` : "")
}
function flattenWithBlankLines(...items) {
return items
.flatMap(item => item.length > 0 ? [item, [""]] : [])
.slice(0, -1)
.flatMap(item => item)
}
function protoifyChildren(container) {
return flattenWithBlankLines(
...Object.values(container.enums).map(protoifyEnum),
...Object.values(container.messages).map(protoifyMessage),
)
}
function protoifyEnum(enumDef) {
const values = []
const names = Object.fromEntries(Object.entries(enumDef).map(([name, value]) => [value, name]))
if (!names["0"]) {
if (names["-1"]) {
enumDef[names["-1"]] = 0
} else {
// TODO add snake case
values.push(`${enumDef.__name__.toUpperCase()}_UNKNOWN = 0;`)
}
}
for (const [name, value] of Object.entries(enumDef)) {
if (name.startsWith("__") && name.endsWith("__")) {
continue
}
values.push(`${name} = ${value};`)
}
return [`enum ${enumDef.__name__} ` + "{", ...indent(values), "}"]
}
const {TYPES, TYPE_MASK, FLAGS} = requireModule("WAProtoConst")
function fieldTypeName(typeID, typeRef, parentModule, parentPath) {
switch (typeID) {
case TYPES.INT32:
return "int32"
case TYPES.INT64:
return "int64"
case TYPES.UINT32:
return "uint32"
case TYPES.UINT64:
return "uint64"
case TYPES.SINT32:
return "sint32"
case TYPES.SINT64:
return "sint64"
case TYPES.BOOL:
return "bool"
case TYPES.ENUM:
case TYPES.MESSAGE:
let pathStartIndex = 0
for (let i = 0; i < parentPath.length && i < typeRef.__path__.length; i++) {
if (typeRef.__path__[i] === parentPath[i]) {
pathStartIndex++
} else {
break
}
}
const namePath = []
if (typeRef.__module__ !== parentModule) {
namePath.push(typeRef.__module__)
pathStartIndex = 0
}
namePath.push(...typeRef.__path__.slice(pathStartIndex))
namePath.push(typeRef.__name__)
return namePath.join(".")
case TYPES.FIXED64:
return "fixed64"
case TYPES.SFIXED64:
return "sfixed64"
case TYPES.DOUBLE:
return "double"
case TYPES.STRING:
return "string"
case TYPES.BYTES:
return "bytes"
case TYPES.FIXED32:
return "fixed32"
case TYPES.SFIXED32:
return "sfixed32"
case TYPES.FLOAT:
return "float"
}
}
const staticRenames = {
id: "ID",
jid: "JID",
encIv: "encIV",
iv: "IV",
ptt: "PTT",
hmac: "HMAC",
url: "URL",
fbid: "FBID",
jpegThumbnail: "JPEGThumbnail",
dsm: "DSM",
}
function fixFieldName(name) {
if (name === "id") {
return "ID"
} else if (name === "encIv") {
return "encIV"
}
return staticRenames[name] ?? name
.replace(/Id([A-Zs]|$)/, "ID$1")
.replace("Jid", "JID")
.replace(/Ms([A-Z]|$)/, "MS$1")
.replace(/Ts([A-Z]|$)/, "TS$1")
.replace(/Mac([A-Z]|$)/, "MAC$1")
.replace("Url", "URL")
.replace("Cdn", "CDN")
.replace("Json", "JSON")
.replace("Jpeg", "JPEG")
.replace("Sha256", "SHA256")
}
function protoifyField(name, [index, flags, typeRef], parentModule, parentPath) {
const preflags = []
const postflags = [""]
if ((flags & FLAGS.REPEATED) !== 0) {
preflags.push("repeated")
}
// if ((flags & FLAGS.REQUIRED) === 0) {
// preflags.push("optional")
// } else {
// preflags.push("required")
// }
preflags.push(fieldTypeName(flags & TYPE_MASK, typeRef, parentModule, parentPath))
if ((flags & FLAGS.PACKED) !== 0) {
postflags.push(`[packed=true]`)
}
return `${preflags.join(" ")} ${fixFieldName(name)} = ${index}${postflags.join(" ")};`
}
function protoifyFields(fields, parentModule, parentPath) {
return Object.entries(fields).map(([name, definition]) => protoifyField(name, definition, parentModule, parentPath))
}
function protoifyMessage(message) {
const sections = [protoifyChildren(message)]
const spec = message.message
const fullMessagePath = message.__path__.concat([message.__name__])
for (const [name, fieldNames] of Object.entries(spec.__oneofs__ ?? {})) {
const fields = Object.fromEntries(fieldNames.map(fieldName => {
const def = spec[fieldName]
delete spec[fieldName]
return [fieldName, def]
}))
sections.push([`oneof ${name} ` + "{", ...indent(protoifyFields(fields, message.__module__, fullMessagePath)), "}"])
}
if (spec.__reserved__) {
console.warn("Found reserved keys:", message.__name__, spec.__reserved__)
}
delete spec.__oneofs__
delete spec.__reserved__
sections.push(protoifyFields(spec, message.__module__, fullMessagePath))
return [`message ${message.__name__} ` + "{", ...indent(flattenWithBlankLines(...sections)), "}"]
}
function goPackageName(name) {
return name.replace(/^WA/, "wa")
}
function protoifyModule(module) {
const output = []
output.push(`syntax = "proto3";`)
output.push(`package ${module.__name__};`)
output.push(`option go_package = "go.mau.fi/whatsmeow/binary/armadillo/${goPackageName(module.__name__)}";`)
output.push("")
if (module.dependencies.length > 0) {
for (const dependency of module.dependencies) {
output.push(`import "${goPackageName(dependency)}/${dependency}.proto";`)
}
output.push("")
}
const children = protoifyChildren(module)
children.push("")
return output.concat(children)
}
const fs = require("fs")
for (const proto of protos) {
fs.mkdirSync(goPackageName(proto.__name__), {recursive: true})
fs.writeFileSync(`${goPackageName(proto.__name__)}/${proto.__name__}.proto`, protoifyModule(proto).join("\n"))
}

View File

@@ -1,41 +0,0 @@
syntax = "proto3";
package WACommon;
option go_package = "go.mau.fi/whatsmeow/binary/armadillo/waCommon";
enum FutureProofBehavior {
PLACEHOLDER = 0;
NO_PLACEHOLDER = 1;
IGNORE = 2;
}
message MessageKey {
string remoteJID = 1;
bool fromMe = 2;
string ID = 3;
string participant = 4;
}
message Command {
enum CommandType {
COMMANDTYPE_UNKNOWN = 0;
EVERYONE = 1;
SILENT = 2;
AI = 3;
}
CommandType commandType = 1;
uint32 offset = 2;
uint32 length = 3;
string validationToken = 4;
}
message MessageText {
string text = 1;
repeated string mentionedJID = 2;
repeated Command commands = 3;
}
message SubProtocol {
bytes payload = 1;
int32 version = 2;
}

View File

@@ -1,234 +0,0 @@
syntax = "proto3";
package WAConsumerApplication;
option go_package = "go.mau.fi/whatsmeow/binary/armadillo/waConsumerApplication";
import "waCommon/WACommon.proto";
message ConsumerApplication {
message Payload {
oneof payload {
Content content = 1;
ApplicationData applicationData = 2;
Signal signal = 3;
SubProtocolPayload subProtocol = 4;
}
}
message SubProtocolPayload {
WACommon.FutureProofBehavior futureProof = 1;
}
message Metadata {
enum SpecialTextSize {
SPECIALTEXTSIZE_UNKNOWN = 0;
SMALL = 1;
MEDIUM = 2;
LARGE = 3;
}
SpecialTextSize specialTextSize = 1;
}
message Signal {
}
message ApplicationData {
oneof applicationContent {
RevokeMessage revoke = 1;
}
}
message Content {
oneof content {
WACommon.MessageText messageText = 1;
ImageMessage imageMessage = 2;
ContactMessage contactMessage = 3;
LocationMessage locationMessage = 4;
ExtendedTextMessage extendedTextMessage = 5;
StatusTextMesage statusTextMessage = 6;
DocumentMessage documentMessage = 7;
AudioMessage audioMessage = 8;
VideoMessage videoMessage = 9;
ContactsArrayMessage contactsArrayMessage = 10;
LiveLocationMessage liveLocationMessage = 11;
StickerMessage stickerMessage = 12;
GroupInviteMessage groupInviteMessage = 13;
ViewOnceMessage viewOnceMessage = 14;
ReactionMessage reactionMessage = 16;
PollCreationMessage pollCreationMessage = 17;
PollUpdateMessage pollUpdateMessage = 18;
EditMessage editMessage = 19;
}
}
message EditMessage {
WACommon.MessageKey key = 1;
WACommon.MessageText message = 2;
int64 timestampMS = 3;
}
message PollAddOptionMessage {
repeated Option pollOption = 1;
}
message PollVoteMessage {
repeated bytes selectedOptions = 1;
int64 senderTimestampMS = 2;
}
message PollEncValue {
bytes encPayload = 1;
bytes encIV = 2;
}
message PollUpdateMessage {
WACommon.MessageKey pollCreationMessageKey = 1;
PollEncValue vote = 2;
PollEncValue addOption = 3;
}
message PollCreationMessage {
bytes encKey = 1;
string name = 2;
repeated Option options = 3;
uint32 selectableOptionsCount = 4;
}
message Option {
string optionName = 1;
}
message ReactionMessage {
WACommon.MessageKey key = 1;
string text = 2;
string groupingKey = 3;
int64 senderTimestampMS = 4;
string reactionMetadataDataclassData = 5;
int32 style = 6;
}
message RevokeMessage {
WACommon.MessageKey key = 1;
}
message ViewOnceMessage {
oneof viewOnceContent {
ImageMessage imageMessage = 1;
VideoMessage videoMessage = 2;
}
}
message GroupInviteMessage {
string groupJID = 1;
string inviteCode = 2;
int64 inviteExpiration = 3;
string groupName = 4;
bytes JPEGThumbnail = 5;
WACommon.MessageText caption = 6;
}
message LiveLocationMessage {
Location location = 1;
uint32 accuracyInMeters = 2;
float speedInMps = 3;
uint32 degreesClockwiseFromMagneticNorth = 4;
WACommon.MessageText caption = 5;
int64 sequenceNumber = 6;
uint32 timeOffset = 7;
}
message ContactsArrayMessage {
string displayName = 1;
repeated ContactMessage contacts = 2;
}
message ContactMessage {
WACommon.SubProtocol contact = 1;
}
message StatusTextMesage {
enum FontType {
SANS_SERIF = 0;
SERIF = 1;
NORICAN_REGULAR = 2;
BRYNDAN_WRITE = 3;
BEBASNEUE_REGULAR = 4;
OSWALD_HEAVY = 5;
}
ExtendedTextMessage text = 1;
fixed32 textArgb = 6;
fixed32 backgroundArgb = 7;
FontType font = 8;
}
message ExtendedTextMessage {
enum PreviewType {
NONE = 0;
VIDEO = 1;
}
WACommon.MessageText text = 1;
string matchedText = 2;
string canonicalURL = 3;
string description = 4;
string title = 5;
WACommon.SubProtocol thumbnail = 6;
PreviewType previewType = 7;
}
message LocationMessage {
Location location = 1;
string address = 2;
}
message StickerMessage {
WACommon.SubProtocol sticker = 1;
}
message DocumentMessage {
WACommon.SubProtocol document = 1;
string fileName = 2;
}
message VideoMessage {
WACommon.SubProtocol video = 1;
WACommon.MessageText caption = 2;
}
message AudioMessage {
WACommon.SubProtocol audio = 1;
bool PTT = 2;
}
message ImageMessage {
WACommon.SubProtocol image = 1;
WACommon.MessageText caption = 2;
}
message InteractiveAnnotation {
oneof action {
Location location = 2;
}
repeated Point polygonVertices = 1;
}
message Point {
double x = 1;
double y = 2;
}
message Location {
double degreesLatitude = 1;
double degreesLongitude = 2;
string name = 3;
}
message MediaPayload {
WACommon.SubProtocol protocol = 1;
}
Payload payload = 1;
Metadata metadata = 2;
}

View File

@@ -1,154 +0,0 @@
syntax = "proto3";
package WAMediaTransport;
option go_package = "go.mau.fi/whatsmeow/binary/armadillo/waMediaTransport";
import "waCommon/WACommon.proto";
message WAMediaTransport {
message Ancillary {
message Thumbnail {
message DownloadableThumbnail {
bytes fileSHA256 = 1;
bytes fileEncSHA256 = 2;
string directPath = 3;
bytes mediaKey = 4;
int64 mediaKeyTimestamp = 5;
string objectID = 6;
}
bytes JPEGThumbnail = 1;
DownloadableThumbnail downloadableThumbnail = 2;
uint32 thumbnailWidth = 3;
uint32 thumbnailHeight = 4;
}
uint64 fileLength = 1;
string mimetype = 2;
Thumbnail thumbnail = 3;
string objectID = 4;
}
message Integral {
bytes fileSHA256 = 1;
bytes mediaKey = 2;
bytes fileEncSHA256 = 3;
string directPath = 4;
int64 mediaKeyTimestamp = 5;
}
Integral integral = 1;
Ancillary ancillary = 2;
}
message ImageTransport {
message Ancillary {
enum HdType {
NONE = 0;
LQ_4K = 1;
HQ_4K = 2;
}
uint32 height = 1;
uint32 width = 2;
bytes scansSidecar = 3;
repeated uint32 scanLengths = 4;
bytes midQualityFileSHA256 = 5;
HdType hdType = 6;
}
message Integral {
WAMediaTransport transport = 1;
}
Integral integral = 1;
Ancillary ancillary = 2;
}
message VideoTransport {
message Ancillary {
enum Attribution {
NONE = 0;
GIPHY = 1;
TENOR = 2;
}
uint32 seconds = 1;
WACommon.MessageText caption = 2;
bool gifPlayback = 3;
uint32 height = 4;
uint32 width = 5;
bytes sidecar = 6;
Attribution gifAttribution = 7;
}
message Integral {
WAMediaTransport transport = 1;
}
Integral integral = 1;
Ancillary ancillary = 2;
}
message AudioTransport {
message Ancillary {
uint32 seconds = 1;
}
message Integral {
WAMediaTransport transport = 1;
}
Integral integral = 1;
Ancillary ancillary = 2;
}
message DocumentTransport {
message Ancillary {
uint32 pageCount = 1;
}
message Integral {
WAMediaTransport transport = 1;
}
Integral integral = 1;
Ancillary ancillary = 2;
}
message StickerTransport {
message Ancillary {
uint32 pageCount = 1;
uint32 height = 2;
uint32 width = 3;
uint32 firstFrameLength = 4;
bytes firstFrameSidecar = 5;
string mustacheText = 6;
bool isThirdParty = 7;
string receiverFetchID = 8;
}
message Integral {
WAMediaTransport transport = 1;
bool isAnimated = 2;
string receiverFetchID = 3;
}
Integral integral = 1;
Ancillary ancillary = 2;
}
message ContactTransport {
message Ancillary {
string displayName = 1;
}
message Integral {
oneof contact {
string vcard = 1;
WAMediaTransport downloadableVcard = 2;
}
}
Integral integral = 1;
Ancillary ancillary = 2;
}

View File

@@ -1,87 +0,0 @@
syntax = "proto3";
package WAMsgApplication;
option go_package = "go.mau.fi/whatsmeow/binary/armadillo/waMsgApplication";
import "waCommon/WACommon.proto";
message MessageApplication {
message Metadata {
enum ThreadType {
DEFAULT = 0;
VANISH_MODE = 1;
DISAPPEARING_MESSAGES = 2;
}
message QuotedMessage {
string stanzaID = 1;
string remoteJID = 2;
string participant = 3;
Payload payload = 4;
}
message EphemeralSettingMap {
string chatJID = 1;
EphemeralSetting ephemeralSetting = 2;
}
oneof ephemeral {
EphemeralSetting chatEphemeralSetting = 1;
EphemeralSettingMap ephemeralSettingList = 2;
bytes ephemeralSharedSecret = 3;
}
uint32 forwardingScore = 5;
bool isForwarded = 6;
WACommon.SubProtocol businessMetadata = 7;
bytes frankingKey = 8;
int32 frankingVersion = 9;
QuotedMessage quotedMessage = 10;
ThreadType threadType = 11;
string readonlyMetadataDataclass = 12;
string groupID = 13;
uint32 groupSize = 14;
uint32 groupIndex = 15;
string botResponseID = 16;
string collapsibleID = 17;
}
message Payload {
oneof content {
Content coreContent = 1;
Signal signal = 2;
ApplicationData applicationData = 3;
SubProtocolPayload subProtocol = 4;
}
}
message SubProtocolPayload {
oneof subProtocol {
WACommon.SubProtocol consumerMessage = 2;
WACommon.SubProtocol businessMessage = 3;
WACommon.SubProtocol paymentMessage = 4;
WACommon.SubProtocol multiDevice = 5;
WACommon.SubProtocol voip = 6;
WACommon.SubProtocol armadillo = 7;
}
WACommon.FutureProofBehavior futureProof = 1;
}
message ApplicationData {
}
message Signal {
}
message Content {
}
message EphemeralSetting {
uint32 ephemeralExpiration = 2;
int64 ephemeralSettingTimestamp = 3;
bool isEphemeralSettingReset = 4;
}
Payload payload = 1;
Metadata metadata = 2;
}

View File

@@ -1,75 +0,0 @@
syntax = "proto3";
package WAMsgTransport;
option go_package = "go.mau.fi/whatsmeow/binary/armadillo/waMsgTransport";
import "waCommon/WACommon.proto";
message MessageTransport {
message Payload {
WACommon.SubProtocol applicationPayload = 1;
WACommon.FutureProofBehavior futureProof = 3;
}
message Protocol {
message Ancillary {
message BackupDirective {
enum ActionType {
NOOP = 0;
UPSERT = 1;
DELETE = 2;
UPSERT_AND_DELETE = 3;
}
string messageID = 1;
ActionType actionType = 2;
string supplementalKey = 3;
}
message ICDCParticipantDevices {
message ICDCIdentityListDescription {
int32 seq = 1;
bytes signingDevice = 2;
repeated bytes unknownDevices = 3;
repeated int32 unknownDeviceIDs = 4;
}
ICDCIdentityListDescription senderIdentity = 1;
repeated ICDCIdentityListDescription recipientIdentities = 2;
repeated string recipientUserJIDs = 3;
}
message SenderKeyDistributionMessage {
string groupID = 1;
bytes axolotlSenderKeyDistributionMessage = 2;
}
SenderKeyDistributionMessage skdm = 2;
DeviceListMetadata deviceListMetadata = 3;
ICDCParticipantDevices icdc = 4;
BackupDirective backupDirective = 5;
}
message Integral {
message DeviceSentMessage {
string destinationJID = 1;
string phash = 2;
}
bytes padding = 1;
DeviceSentMessage DSM = 2;
}
Integral integral = 1;
Ancillary ancillary = 2;
}
Payload payload = 1;
Protocol protocol = 2;
}
message DeviceListMetadata {
bytes senderKeyHash = 1;
uint64 senderTimestamp = 2;
bytes recipientKeyHash = 8;
uint64 recipientTimestamp = 9;
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,6 @@
// Package proto contains the compiled protobuf structs from WhatsApp's protobuf schema.
// Package proto contains type aliases for backwards compatibility.
//
// Deprecated: New code should reference the protobuf types in the go.mau.fi/whatsmeow/proto/wa* packages directly.
package proto
//go:generate ./generatelegacy.sh

View File

@@ -0,0 +1,69 @@
#!/usr/bin/env python3
import os
import sys
with open("old-types.txt") as f:
old_types = [line.rstrip("\n") for line in f]
with open("old-enums.txt") as f:
old_enums = [line.rstrip("\n") for line in f]
os.chdir("../../proto")
new_protos = {}
for dir in os.listdir("."):
if not dir.startswith("wa"):
continue
for file in os.listdir(dir):
if file.endswith(".pb.go"):
with open(f"{dir}/{file}") as f:
new_protos[dir] = f.read()
break
match_type_map = {
"HandshakeServerHello": "HandshakeMessage_ServerHello",
"HandshakeClientHello": "HandshakeMessage_ClientHello",
"HandshakeClientFinish": "HandshakeMessage_ClientFinish",
"InteractiveMessage_Header_JpegThumbnail": "InteractiveMessage_Header_JPEGThumbnail",
}
print("// DO NOT MODIFY: Generated by generatelegacy.sh")
print()
print("package proto")
print()
print("import (")
for proto in new_protos.keys():
print(f'\t"go.mau.fi/whatsmeow/proto/{proto}"')
print(")")
print()
print("// Deprecated: use new packages directly")
print("type (")
for type in old_types:
match_type = match_type_map.get(type, type)
for mod, proto in new_protos.items():
if f"type {match_type} " in proto:
print(f"\t{type} = {mod}.{match_type}")
break
elif f"type ContextInfo_{match_type} " in proto:
print(f"\t{type} = {mod}.ContextInfo_{match_type}")
break
else:
print(f"{type} not found")
sys.exit(1)
print(")")
print()
print("// Deprecated: use new packages directly")
print("const (")
for type in old_enums:
for mod, proto in new_protos.items():
if f"\t{type} " in proto:
print(f"\t{type} = {mod}.{type}")
break
elif f"\tContextInfo_{type} " in proto:
print(f"\t{type} = {mod}.ContextInfo_{type}")
break
else:
print(f"{type} not found")
sys.exit(1)
print(")")

View File

@@ -0,0 +1,4 @@
#!/bin/sh
cd $(dirname $0)
python3 generatelegacy.py > legacy.go
goimports -w legacy.go

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,631 @@
ADVEncryptionType_E2EE
ADVEncryptionType_HOSTED
KeepType_UNKNOWN
KeepType_KEEP_FOR_ALL
KeepType_UNDO_KEEP_FOR_ALL
PeerDataOperationRequestType_UPLOAD_STICKER
PeerDataOperationRequestType_SEND_RECENT_STICKER_BOOTSTRAP
PeerDataOperationRequestType_GENERATE_LINK_PREVIEW
PeerDataOperationRequestType_HISTORY_SYNC_ON_DEMAND
PeerDataOperationRequestType_PLACEHOLDER_MESSAGE_RESEND
MediaVisibility_DEFAULT
MediaVisibility_OFF
MediaVisibility_ON
DeviceProps_UNKNOWN
DeviceProps_CHROME
DeviceProps_FIREFOX
DeviceProps_IE
DeviceProps_OPERA
DeviceProps_SAFARI
DeviceProps_EDGE
DeviceProps_DESKTOP
DeviceProps_IPAD
DeviceProps_ANDROID_TABLET
DeviceProps_OHANA
DeviceProps_ALOHA
DeviceProps_CATALINA
DeviceProps_TCL_TV
DeviceProps_IOS_PHONE
DeviceProps_IOS_CATALYST
DeviceProps_ANDROID_PHONE
DeviceProps_ANDROID_AMBIGUOUS
DeviceProps_WEAR_OS
DeviceProps_AR_WRIST
DeviceProps_AR_DEVICE
DeviceProps_UWP
DeviceProps_VR
ImageMessage_USER_IMAGE
ImageMessage_AI_GENERATED
ImageMessage_AI_MODIFIED
HistorySyncNotification_INITIAL_BOOTSTRAP
HistorySyncNotification_INITIAL_STATUS_V3
HistorySyncNotification_FULL
HistorySyncNotification_RECENT
HistorySyncNotification_PUSH_NAME
HistorySyncNotification_NON_BLOCKING_DATA
HistorySyncNotification_ON_DEMAND
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_MONDAY
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_TUESDAY
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_WEDNESDAY
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_THURSDAY
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_FRIDAY
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_SATURDAY
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_SUNDAY
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_GREGORIAN
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_SOLAR_HIJRI
GroupInviteMessage_DEFAULT
GroupInviteMessage_PARENT
ExtendedTextMessage_NONE
ExtendedTextMessage_VIDEO
ExtendedTextMessage_PLACEHOLDER
ExtendedTextMessage_IMAGE
ExtendedTextMessage_DEFAULT
ExtendedTextMessage_PARENT
ExtendedTextMessage_SUB
ExtendedTextMessage_DEFAULT_SUB
ExtendedTextMessage_SYSTEM
ExtendedTextMessage_SYSTEM_TEXT
ExtendedTextMessage_FB_SCRIPT
ExtendedTextMessage_SYSTEM_BOLD
ExtendedTextMessage_MORNINGBREEZE_REGULAR
ExtendedTextMessage_CALISTOGA_REGULAR
ExtendedTextMessage_EXO2_EXTRABOLD
ExtendedTextMessage_COURIERPRIME_BOLD
EventResponseMessage_UNKNOWN
EventResponseMessage_GOING
EventResponseMessage_NOT_GOING
CallLogMessage_REGULAR
CallLogMessage_SCHEDULED_CALL
CallLogMessage_VOICE_CHAT
CallLogMessage_CONNECTED
CallLogMessage_MISSED
CallLogMessage_FAILED
CallLogMessage_REJECTED
CallLogMessage_ACCEPTED_ELSEWHERE
CallLogMessage_ONGOING
CallLogMessage_SILENCED_BY_DND
CallLogMessage_SILENCED_UNKNOWN_CALLER
ButtonsResponseMessage_UNKNOWN
ButtonsResponseMessage_DISPLAY_TEXT
ButtonsMessage_UNKNOWN
ButtonsMessage_EMPTY
ButtonsMessage_TEXT
ButtonsMessage_DOCUMENT
ButtonsMessage_IMAGE
ButtonsMessage_VIDEO
ButtonsMessage_LOCATION
ButtonsMessage_Button_UNKNOWN
ButtonsMessage_Button_RESPONSE
ButtonsMessage_Button_NATIVE_FLOW
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_POSITIVE_GENERIC
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_GENERIC
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_HELPFUL
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_INTERESTING
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_ACCURATE
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_SAFE
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_OTHER
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_REFUSED
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_VISUALLY_APPEALING
BotFeedbackMessage_BOT_FEEDBACK_MULTIPLE_NEGATIVE_NOT_RELEVANT_TO_TEXT
BotFeedbackMessage_BOT_FEEDBACK_POSITIVE
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_GENERIC
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_HELPFUL
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_INTERESTING
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_ACCURATE
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_SAFE
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_OTHER
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_REFUSED
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_NOT_VISUALLY_APPEALING
BotFeedbackMessage_BOT_FEEDBACK_NEGATIVE_NOT_RELEVANT_TO_TEXT
BCallMessage_UNKNOWN
BCallMessage_AUDIO
BCallMessage_VIDEO
HydratedTemplateButton_HydratedURLButton_FULL
HydratedTemplateButton_HydratedURLButton_TALL
HydratedTemplateButton_HydratedURLButton_COMPACT
DisappearingMode_UNKNOWN
DisappearingMode_CHAT_SETTING
DisappearingMode_ACCOUNT_SETTING
DisappearingMode_BULK_CHANGE
DisappearingMode_BIZ_SUPPORTS_FB_HOSTING
DisappearingMode_CHANGED_IN_CHAT
DisappearingMode_INITIATED_BY_ME
DisappearingMode_INITIATED_BY_OTHER
DisappearingMode_BIZ_UPGRADE_FB_HOSTING
ContextInfo_ExternalAdReplyInfo_NONE
ContextInfo_ExternalAdReplyInfo_IMAGE
ContextInfo_ExternalAdReplyInfo_VIDEO
ContextInfo_AdReplyInfo_NONE
ContextInfo_AdReplyInfo_IMAGE
ContextInfo_AdReplyInfo_VIDEO
ForwardedNewsletterMessageInfo_UPDATE
ForwardedNewsletterMessageInfo_UPDATE_CARD
ForwardedNewsletterMessageInfo_LINK_CARD
BotPluginMetadata_BING
BotPluginMetadata_GOOGLE
BotPluginMetadata_REELS
BotPluginMetadata_SEARCH
PaymentBackground_UNKNOWN
PaymentBackground_DEFAULT
VideoMessage_NONE
VideoMessage_GIPHY
VideoMessage_TENOR
SecretEncryptedMessage_UNKNOWN
SecretEncryptedMessage_EVENT_EDIT
ScheduledCallEditMessage_UNKNOWN
ScheduledCallEditMessage_CANCEL
ScheduledCallCreationMessage_UNKNOWN
ScheduledCallCreationMessage_VOICE
ScheduledCallCreationMessage_VIDEO
RequestWelcomeMessageMetadata_EMPTY
RequestWelcomeMessageMetadata_NON_EMPTY
ProtocolMessage_REVOKE
ProtocolMessage_EPHEMERAL_SETTING
ProtocolMessage_EPHEMERAL_SYNC_RESPONSE
ProtocolMessage_HISTORY_SYNC_NOTIFICATION
ProtocolMessage_APP_STATE_SYNC_KEY_SHARE
ProtocolMessage_APP_STATE_SYNC_KEY_REQUEST
ProtocolMessage_MSG_FANOUT_BACKFILL_REQUEST
ProtocolMessage_INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC
ProtocolMessage_APP_STATE_FATAL_EXCEPTION_NOTIFICATION
ProtocolMessage_SHARE_PHONE_NUMBER
ProtocolMessage_MESSAGE_EDIT
ProtocolMessage_PEER_DATA_OPERATION_REQUEST_MESSAGE
ProtocolMessage_PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE
ProtocolMessage_REQUEST_WELCOME_MESSAGE
ProtocolMessage_BOT_FEEDBACK_MESSAGE
ProtocolMessage_MEDIA_NOTIFY_MESSAGE
PlaceholderMessage_MASK_LINKED_DEVICES
PinInChatMessage_UNKNOWN_TYPE
PinInChatMessage_PIN_FOR_ALL
PinInChatMessage_UNPIN_FOR_ALL
PaymentInviteMessage_UNKNOWN
PaymentInviteMessage_FBPAY
PaymentInviteMessage_NOVI
PaymentInviteMessage_UPI
OrderMessage_CATALOG
OrderMessage_INQUIRY
OrderMessage_ACCEPTED
OrderMessage_DECLINED
ListResponseMessage_UNKNOWN
ListResponseMessage_SINGLE_SELECT
ListMessage_UNKNOWN
ListMessage_SINGLE_SELECT
ListMessage_PRODUCT_LIST
InvoiceMessage_IMAGE
InvoiceMessage_PDF
InteractiveResponseMessage_Body_DEFAULT
InteractiveResponseMessage_Body_EXTENSIONS_1
InteractiveMessage_ShopMessage_UNKNOWN_SURFACE
InteractiveMessage_ShopMessage_FB
InteractiveMessage_ShopMessage_IG
InteractiveMessage_ShopMessage_WA
PastParticipant_LEFT
PastParticipant_REMOVED
HistorySync_INITIAL_BOOTSTRAP
HistorySync_INITIAL_STATUS_V3
HistorySync_FULL
HistorySync_RECENT
HistorySync_PUSH_NAME
HistorySync_NON_BLOCKING_DATA
HistorySync_ON_DEMAND
HistorySync_IN_WAITLIST
HistorySync_AI_AVAILABLE
GroupParticipant_REGULAR
GroupParticipant_ADMIN
GroupParticipant_SUPERADMIN
Conversation_COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY
Conversation_COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY
Conversation_COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY
MediaRetryNotification_GENERAL_ERROR
MediaRetryNotification_SUCCESS
MediaRetryNotification_NOT_FOUND
MediaRetryNotification_DECRYPTION_ERROR
SyncdMutation_SET
SyncdMutation_REMOVE
StatusPrivacyAction_ALLOW_LIST
StatusPrivacyAction_DENY_LIST
StatusPrivacyAction_CONTACTS
MarketingMessageAction_PERSONALIZED
PatchDebugData_ANDROID
PatchDebugData_SMBA
PatchDebugData_IPHONE
PatchDebugData_SMBI
PatchDebugData_WEB
PatchDebugData_UWP
PatchDebugData_DARWIN
CallLogRecord_NONE
CallLogRecord_SCHEDULED
CallLogRecord_PRIVACY
CallLogRecord_LIGHTWEIGHT
CallLogRecord_REGULAR
CallLogRecord_SCHEDULED_CALL
CallLogRecord_VOICE_CHAT
CallLogRecord_CONNECTED
CallLogRecord_REJECTED
CallLogRecord_CANCELLED
CallLogRecord_ACCEPTEDELSEWHERE
CallLogRecord_MISSED
CallLogRecord_INVALID
CallLogRecord_UNAVAILABLE
CallLogRecord_UPCOMING
CallLogRecord_FAILED
CallLogRecord_ABANDONED
CallLogRecord_ONGOING
BizIdentityInfo_UNKNOWN
BizIdentityInfo_LOW
BizIdentityInfo_HIGH
BizIdentityInfo_ON_PREMISE
BizIdentityInfo_FACEBOOK
BizIdentityInfo_SELF
BizIdentityInfo_BSP
BizAccountLinkInfo_ON_PREMISE
BizAccountLinkInfo_FACEBOOK
BizAccountLinkInfo_ENTERPRISE
ClientPayload_WHATSAPP
ClientPayload_MESSENGER
ClientPayload_INTEROP
ClientPayload_INTEROP_MSGR
ClientPayload_SHARE_EXTENSION
ClientPayload_SERVICE_EXTENSION
ClientPayload_INTENTS_EXTENSION
ClientPayload_CELLULAR_UNKNOWN
ClientPayload_WIFI_UNKNOWN
ClientPayload_CELLULAR_EDGE
ClientPayload_CELLULAR_IDEN
ClientPayload_CELLULAR_UMTS
ClientPayload_CELLULAR_EVDO
ClientPayload_CELLULAR_GPRS
ClientPayload_CELLULAR_HSDPA
ClientPayload_CELLULAR_HSUPA
ClientPayload_CELLULAR_HSPA
ClientPayload_CELLULAR_CDMA
ClientPayload_CELLULAR_1XRTT
ClientPayload_CELLULAR_EHRPD
ClientPayload_CELLULAR_LTE
ClientPayload_CELLULAR_HSPAP
ClientPayload_PUSH
ClientPayload_USER_ACTIVATED
ClientPayload_SCHEDULED
ClientPayload_ERROR_RECONNECT
ClientPayload_NETWORK_SWITCH
ClientPayload_PING_RECONNECT
ClientPayload_UNKNOWN
ClientPayload_WebInfo_WEB_BROWSER
ClientPayload_WebInfo_APP_STORE
ClientPayload_WebInfo_WIN_STORE
ClientPayload_WebInfo_DARWIN
ClientPayload_WebInfo_WIN32
ClientPayload_UserAgent_RELEASE
ClientPayload_UserAgent_BETA
ClientPayload_UserAgent_ALPHA
ClientPayload_UserAgent_DEBUG
ClientPayload_UserAgent_ANDROID
ClientPayload_UserAgent_IOS
ClientPayload_UserAgent_WINDOWS_PHONE
ClientPayload_UserAgent_BLACKBERRY
ClientPayload_UserAgent_BLACKBERRYX
ClientPayload_UserAgent_S40
ClientPayload_UserAgent_S60
ClientPayload_UserAgent_PYTHON_CLIENT
ClientPayload_UserAgent_TIZEN
ClientPayload_UserAgent_ENTERPRISE
ClientPayload_UserAgent_SMB_ANDROID
ClientPayload_UserAgent_KAIOS
ClientPayload_UserAgent_SMB_IOS
ClientPayload_UserAgent_WINDOWS
ClientPayload_UserAgent_WEB
ClientPayload_UserAgent_PORTAL
ClientPayload_UserAgent_GREEN_ANDROID
ClientPayload_UserAgent_GREEN_IPHONE
ClientPayload_UserAgent_BLUE_ANDROID
ClientPayload_UserAgent_BLUE_IPHONE
ClientPayload_UserAgent_FBLITE_ANDROID
ClientPayload_UserAgent_MLITE_ANDROID
ClientPayload_UserAgent_IGLITE_ANDROID
ClientPayload_UserAgent_PAGE
ClientPayload_UserAgent_MACOS
ClientPayload_UserAgent_OCULUS_MSG
ClientPayload_UserAgent_OCULUS_CALL
ClientPayload_UserAgent_MILAN
ClientPayload_UserAgent_CAPI
ClientPayload_UserAgent_WEAROS
ClientPayload_UserAgent_ARDEVICE
ClientPayload_UserAgent_VRDEVICE
ClientPayload_UserAgent_BLUE_WEB
ClientPayload_UserAgent_IPAD
ClientPayload_UserAgent_TEST
ClientPayload_UserAgent_SMART_GLASSES
ClientPayload_UserAgent_PHONE
ClientPayload_UserAgent_TABLET
ClientPayload_UserAgent_DESKTOP
ClientPayload_UserAgent_WEARABLE
ClientPayload_UserAgent_VR
ClientPayload_DNSSource_SYSTEM
ClientPayload_DNSSource_GOOGLE
ClientPayload_DNSSource_HARDCODED
ClientPayload_DNSSource_OVERRIDE
ClientPayload_DNSSource_FALLBACK
WebMessageInfo_UNKNOWN
WebMessageInfo_REVOKE
WebMessageInfo_CIPHERTEXT
WebMessageInfo_FUTUREPROOF
WebMessageInfo_NON_VERIFIED_TRANSITION
WebMessageInfo_UNVERIFIED_TRANSITION
WebMessageInfo_VERIFIED_TRANSITION
WebMessageInfo_VERIFIED_LOW_UNKNOWN
WebMessageInfo_VERIFIED_HIGH
WebMessageInfo_VERIFIED_INITIAL_UNKNOWN
WebMessageInfo_VERIFIED_INITIAL_LOW
WebMessageInfo_VERIFIED_INITIAL_HIGH
WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_NONE
WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_HIGH
WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_LOW
WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_UNKNOWN
WebMessageInfo_VERIFIED_TRANSITION_UNKNOWN_TO_LOW
WebMessageInfo_VERIFIED_TRANSITION_LOW_TO_UNKNOWN
WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_LOW
WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_UNKNOWN
WebMessageInfo_GROUP_CREATE
WebMessageInfo_GROUP_CHANGE_SUBJECT
WebMessageInfo_GROUP_CHANGE_ICON
WebMessageInfo_GROUP_CHANGE_INVITE_LINK
WebMessageInfo_GROUP_CHANGE_DESCRIPTION
WebMessageInfo_GROUP_CHANGE_RESTRICT
WebMessageInfo_GROUP_CHANGE_ANNOUNCE
WebMessageInfo_GROUP_PARTICIPANT_ADD
WebMessageInfo_GROUP_PARTICIPANT_REMOVE
WebMessageInfo_GROUP_PARTICIPANT_PROMOTE
WebMessageInfo_GROUP_PARTICIPANT_DEMOTE
WebMessageInfo_GROUP_PARTICIPANT_INVITE
WebMessageInfo_GROUP_PARTICIPANT_LEAVE
WebMessageInfo_GROUP_PARTICIPANT_CHANGE_NUMBER
WebMessageInfo_BROADCAST_CREATE
WebMessageInfo_BROADCAST_ADD
WebMessageInfo_BROADCAST_REMOVE
WebMessageInfo_GENERIC_NOTIFICATION
WebMessageInfo_E2E_IDENTITY_CHANGED
WebMessageInfo_E2E_ENCRYPTED
WebMessageInfo_CALL_MISSED_VOICE
WebMessageInfo_CALL_MISSED_VIDEO
WebMessageInfo_INDIVIDUAL_CHANGE_NUMBER
WebMessageInfo_GROUP_DELETE
WebMessageInfo_GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE
WebMessageInfo_CALL_MISSED_GROUP_VOICE
WebMessageInfo_CALL_MISSED_GROUP_VIDEO
WebMessageInfo_PAYMENT_CIPHERTEXT
WebMessageInfo_PAYMENT_FUTUREPROOF
WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED
WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED
WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED
WebMessageInfo_PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP
WebMessageInfo_PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP
WebMessageInfo_PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER
WebMessageInfo_PAYMENT_ACTION_SEND_PAYMENT_REMINDER
WebMessageInfo_PAYMENT_ACTION_SEND_PAYMENT_INVITATION
WebMessageInfo_PAYMENT_ACTION_REQUEST_DECLINED
WebMessageInfo_PAYMENT_ACTION_REQUEST_EXPIRED
WebMessageInfo_PAYMENT_ACTION_REQUEST_CANCELLED
WebMessageInfo_BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM
WebMessageInfo_BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP
WebMessageInfo_BIZ_INTRO_TOP
WebMessageInfo_BIZ_INTRO_BOTTOM
WebMessageInfo_BIZ_NAME_CHANGE
WebMessageInfo_BIZ_MOVE_TO_CONSUMER_APP
WebMessageInfo_BIZ_TWO_TIER_MIGRATION_TOP
WebMessageInfo_BIZ_TWO_TIER_MIGRATION_BOTTOM
WebMessageInfo_OVERSIZED
WebMessageInfo_GROUP_CHANGE_NO_FREQUENTLY_FORWARDED
WebMessageInfo_GROUP_V4_ADD_INVITE_SENT
WebMessageInfo_GROUP_PARTICIPANT_ADD_REQUEST_JOIN
WebMessageInfo_CHANGE_EPHEMERAL_SETTING
WebMessageInfo_E2E_DEVICE_CHANGED
WebMessageInfo_VIEWED_ONCE
WebMessageInfo_E2E_ENCRYPTED_NOW
WebMessageInfo_BLUE_MSG_BSP_FB_TO_BSP_PREMISE
WebMessageInfo_BLUE_MSG_BSP_FB_TO_SELF_FB
WebMessageInfo_BLUE_MSG_BSP_FB_TO_SELF_PREMISE
WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED
WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED
WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED
WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE
WebMessageInfo_BLUE_MSG_BSP_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED
WebMessageInfo_BLUE_MSG_BSP_PREMISE_VERIFIED
WebMessageInfo_BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED
WebMessageInfo_BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED
WebMessageInfo_BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_SELF_FB_TO_BSP_PREMISE
WebMessageInfo_BLUE_MSG_SELF_FB_TO_SELF_PREMISE
WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED
WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED
WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED
WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE
WebMessageInfo_BLUE_MSG_SELF_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_SELF_PREMISE_VERIFIED
WebMessageInfo_BLUE_MSG_TO_BSP_FB
WebMessageInfo_BLUE_MSG_TO_CONSUMER
WebMessageInfo_BLUE_MSG_TO_SELF_FB
WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED
WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED
WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED
WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_VERIFIED
WebMessageInfo_BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED
WebMessageInfo_BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED
WebMessageInfo_BLUE_MSG_VERIFIED_TO_UNVERIFIED
WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED
WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED
WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED
WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED
WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED
WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED
WebMessageInfo_E2E_IDENTITY_UNAVAILABLE
WebMessageInfo_GROUP_CREATING
WebMessageInfo_GROUP_CREATE_FAILED
WebMessageInfo_GROUP_BOUNCED
WebMessageInfo_BLOCK_CONTACT
WebMessageInfo_EPHEMERAL_SETTING_NOT_APPLIED
WebMessageInfo_SYNC_FAILED
WebMessageInfo_SYNCING
WebMessageInfo_BIZ_PRIVACY_MODE_INIT_FB
WebMessageInfo_BIZ_PRIVACY_MODE_INIT_BSP
WebMessageInfo_BIZ_PRIVACY_MODE_TO_FB
WebMessageInfo_BIZ_PRIVACY_MODE_TO_BSP
WebMessageInfo_DISAPPEARING_MODE
WebMessageInfo_E2E_DEVICE_FETCH_FAILED
WebMessageInfo_ADMIN_REVOKE
WebMessageInfo_GROUP_INVITE_LINK_GROWTH_LOCKED
WebMessageInfo_COMMUNITY_LINK_PARENT_GROUP
WebMessageInfo_COMMUNITY_LINK_SIBLING_GROUP
WebMessageInfo_COMMUNITY_LINK_SUB_GROUP
WebMessageInfo_COMMUNITY_UNLINK_PARENT_GROUP
WebMessageInfo_COMMUNITY_UNLINK_SIBLING_GROUP
WebMessageInfo_COMMUNITY_UNLINK_SUB_GROUP
WebMessageInfo_GROUP_PARTICIPANT_ACCEPT
WebMessageInfo_GROUP_PARTICIPANT_LINKED_GROUP_JOIN
WebMessageInfo_COMMUNITY_CREATE
WebMessageInfo_EPHEMERAL_KEEP_IN_CHAT
WebMessageInfo_GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST
WebMessageInfo_GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE
WebMessageInfo_INTEGRITY_UNLINK_PARENT_GROUP
WebMessageInfo_COMMUNITY_PARTICIPANT_PROMOTE
WebMessageInfo_COMMUNITY_PARTICIPANT_DEMOTE
WebMessageInfo_COMMUNITY_PARENT_GROUP_DELETED
WebMessageInfo_COMMUNITY_LINK_PARENT_GROUP_MEMBERSHIP_APPROVAL
WebMessageInfo_GROUP_PARTICIPANT_JOINED_GROUP_AND_PARENT_GROUP
WebMessageInfo_MASKED_THREAD_CREATED
WebMessageInfo_MASKED_THREAD_UNMASKED
WebMessageInfo_BIZ_CHAT_ASSIGNMENT
WebMessageInfo_CHAT_PSA
WebMessageInfo_CHAT_POLL_CREATION_MESSAGE
WebMessageInfo_CAG_MASKED_THREAD_CREATED
WebMessageInfo_COMMUNITY_PARENT_GROUP_SUBJECT_CHANGED
WebMessageInfo_CAG_INVITE_AUTO_ADD
WebMessageInfo_BIZ_CHAT_ASSIGNMENT_UNASSIGN
WebMessageInfo_CAG_INVITE_AUTO_JOINED
WebMessageInfo_SCHEDULED_CALL_START_MESSAGE
WebMessageInfo_COMMUNITY_INVITE_RICH
WebMessageInfo_COMMUNITY_INVITE_AUTO_ADD_RICH
WebMessageInfo_SUB_GROUP_INVITE_RICH
WebMessageInfo_SUB_GROUP_PARTICIPANT_ADD_RICH
WebMessageInfo_COMMUNITY_LINK_PARENT_GROUP_RICH
WebMessageInfo_COMMUNITY_PARTICIPANT_ADD_RICH
WebMessageInfo_SILENCED_UNKNOWN_CALLER_AUDIO
WebMessageInfo_SILENCED_UNKNOWN_CALLER_VIDEO
WebMessageInfo_GROUP_MEMBER_ADD_MODE
WebMessageInfo_GROUP_MEMBERSHIP_JOIN_APPROVAL_REQUEST_NON_ADMIN_ADD
WebMessageInfo_COMMUNITY_CHANGE_DESCRIPTION
WebMessageInfo_SENDER_INVITE
WebMessageInfo_RECEIVER_INVITE
WebMessageInfo_COMMUNITY_ALLOW_MEMBER_ADDED_GROUPS
WebMessageInfo_PINNED_MESSAGE_IN_CHAT
WebMessageInfo_PAYMENT_INVITE_SETUP_INVITER
WebMessageInfo_PAYMENT_INVITE_SETUP_INVITEE_RECEIVE_ONLY
WebMessageInfo_PAYMENT_INVITE_SETUP_INVITEE_SEND_AND_RECEIVE
WebMessageInfo_LINKED_GROUP_CALL_START
WebMessageInfo_REPORT_TO_ADMIN_ENABLED_STATUS
WebMessageInfo_EMPTY_SUBGROUP_CREATE
WebMessageInfo_SCHEDULED_CALL_CANCEL
WebMessageInfo_SUBGROUP_ADMIN_TRIGGERED_AUTO_ADD_RICH
WebMessageInfo_GROUP_CHANGE_RECENT_HISTORY_SHARING
WebMessageInfo_PAID_MESSAGE_SERVER_CAMPAIGN_ID
WebMessageInfo_GENERAL_CHAT_CREATE
WebMessageInfo_GENERAL_CHAT_ADD
WebMessageInfo_GENERAL_CHAT_AUTO_ADD_DISABLED
WebMessageInfo_SUGGESTED_SUBGROUP_ANNOUNCE
WebMessageInfo_BIZ_BOT_1P_MESSAGING_ENABLED
WebMessageInfo_CHANGE_USERNAME
WebMessageInfo_BIZ_COEX_PRIVACY_INIT_SELF
WebMessageInfo_BIZ_COEX_PRIVACY_TRANSITION_SELF
WebMessageInfo_SUPPORT_AI_EDUCATION
WebMessageInfo_BIZ_BOT_3P_MESSAGING_ENABLED
WebMessageInfo_REMINDER_SETUP_MESSAGE
WebMessageInfo_REMINDER_SENT_MESSAGE
WebMessageInfo_REMINDER_CANCEL_MESSAGE
WebMessageInfo_BIZ_COEX_PRIVACY_INIT
WebMessageInfo_BIZ_COEX_PRIVACY_TRANSITION
WebMessageInfo_GROUP_DEACTIVATED
WebMessageInfo_COMMUNITY_DEACTIVATE_SIBLING_GROUP
WebMessageInfo_ERROR
WebMessageInfo_PENDING
WebMessageInfo_SERVER_ACK
WebMessageInfo_DELIVERY_ACK
WebMessageInfo_READ
WebMessageInfo_PLAYED
WebMessageInfo_E2EE
WebMessageInfo_FB
WebMessageInfo_BSP
WebMessageInfo_BSP_AND_FB
WebFeatures_NOT_STARTED
WebFeatures_FORCE_UPGRADE
WebFeatures_DEVELOPMENT
WebFeatures_PRODUCTION
PinInChat_UNKNOWN_TYPE
PinInChat_PIN_FOR_ALL
PinInChat_UNPIN_FOR_ALL
PaymentInfo_UNKNOWN
PaymentInfo_PENDING_SETUP
PaymentInfo_PENDING_RECEIVER_SETUP
PaymentInfo_INIT
PaymentInfo_SUCCESS
PaymentInfo_COMPLETED
PaymentInfo_FAILED
PaymentInfo_FAILED_RISK
PaymentInfo_FAILED_PROCESSING
PaymentInfo_FAILED_RECEIVER_PROCESSING
PaymentInfo_FAILED_DA
PaymentInfo_FAILED_DA_FINAL
PaymentInfo_REFUNDED_TXN
PaymentInfo_REFUND_FAILED
PaymentInfo_REFUND_FAILED_PROCESSING
PaymentInfo_REFUND_FAILED_DA
PaymentInfo_EXPIRED_TXN
PaymentInfo_AUTH_CANCELED
PaymentInfo_AUTH_CANCEL_FAILED_PROCESSING
PaymentInfo_AUTH_CANCEL_FAILED
PaymentInfo_COLLECT_INIT
PaymentInfo_COLLECT_SUCCESS
PaymentInfo_COLLECT_FAILED
PaymentInfo_COLLECT_FAILED_RISK
PaymentInfo_COLLECT_REJECTED
PaymentInfo_COLLECT_EXPIRED
PaymentInfo_COLLECT_CANCELED
PaymentInfo_COLLECT_CANCELLING
PaymentInfo_IN_REVIEW
PaymentInfo_REVERSAL_SUCCESS
PaymentInfo_REVERSAL_PENDING
PaymentInfo_REFUND_PENDING
PaymentInfo_UNKNOWN_STATUS
PaymentInfo_PROCESSING
PaymentInfo_SENT
PaymentInfo_NEED_TO_ACCEPT
PaymentInfo_COMPLETE
PaymentInfo_COULD_NOT_COMPLETE
PaymentInfo_REFUNDED
PaymentInfo_EXPIRED
PaymentInfo_REJECTED
PaymentInfo_CANCELLED
PaymentInfo_WAITING_FOR_PAYER
PaymentInfo_WAITING
PaymentInfo_UNKNOWN_CURRENCY
PaymentInfo_INR
QP_TRUE
QP_FALSE
QP_UNKNOWN
QP_PASS_BY_DEFAULT
QP_FAIL_BY_DEFAULT
QP_AND
QP_OR
QP_NOR
DeviceCapabilities_NONE
DeviceCapabilities_MINIMAL
DeviceCapabilities_FULL
UserPassword_NONE
UserPassword_PBKDF2_HMAC_SHA512
UserPassword_PBKDF2_HMAC_SHA384
UserPassword_UTF8

View File

@@ -0,0 +1,421 @@
ADVEncryptionType
KeepType
PeerDataOperationRequestType
MediaVisibility
DeviceProps_PlatformType
ImageMessage_ImageSourceType
HistorySyncNotification_HistorySyncType
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_DayOfWeekType
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_CalendarType
GroupInviteMessage_GroupType
ExtendedTextMessage_PreviewType
ExtendedTextMessage_InviteLinkGroupType
ExtendedTextMessage_FontType
EventResponseMessage_EventResponseType
CallLogMessage_CallType
CallLogMessage_CallOutcome
ButtonsResponseMessage_Type
ButtonsMessage_HeaderType
ButtonsMessage_Button_Type
BotFeedbackMessage_BotFeedbackKindMultiplePositive
BotFeedbackMessage_BotFeedbackKindMultipleNegative
BotFeedbackMessage_BotFeedbackKind
BCallMessage_MediaType
HydratedTemplateButton_HydratedURLButton_WebviewPresentationType
DisappearingMode_Trigger
DisappearingMode_Initiator
ContextInfo_ExternalAdReplyInfo_MediaType
ContextInfo_AdReplyInfo_MediaType
ForwardedNewsletterMessageInfo_ContentType
BotPluginMetadata_SearchProvider
BotPluginMetadata_PluginType
PaymentBackground_Type
VideoMessage_Attribution
SecretEncryptedMessage_SecretEncType
ScheduledCallEditMessage_EditType
ScheduledCallCreationMessage_CallType
RequestWelcomeMessageMetadata_LocalChatState
ProtocolMessage_Type
PlaceholderMessage_PlaceholderType
PinInChatMessage_Type
PaymentInviteMessage_ServiceType
OrderMessage_OrderSurface
OrderMessage_OrderStatus
ListResponseMessage_ListType
ListMessage_ListType
InvoiceMessage_AttachmentType
InteractiveResponseMessage_Body_Format
InteractiveMessage_ShopMessage_Surface
PastParticipant_LeaveReason
HistorySync_HistorySyncType
HistorySync_BotAIWaitListState
GroupParticipant_Rank
Conversation_EndOfHistoryTransferType
MediaRetryNotification_ResultType
SyncdMutation_SyncdOperation
StatusPrivacyAction_StatusDistributionMode
MarketingMessageAction_MarketingMessagePrototypeType
PatchDebugData_Platform
CallLogRecord_SilenceReason
CallLogRecord_CallType
CallLogRecord_CallResult
BizIdentityInfo_VerifiedLevelValue
BizIdentityInfo_HostStorageType
BizIdentityInfo_ActualActorsType
BizAccountLinkInfo_HostStorageType
BizAccountLinkInfo_AccountType
ClientPayload_Product
ClientPayload_IOSAppExtension
ClientPayload_ConnectType
ClientPayload_ConnectReason
ClientPayload_WebInfo_WebSubPlatform
ClientPayload_UserAgent_ReleaseChannel
ClientPayload_UserAgent_Platform
ClientPayload_UserAgent_DeviceType
ClientPayload_DNSSource_DNSResolutionMethod
WebMessageInfo_StubType
WebMessageInfo_Status
WebMessageInfo_BizPrivacyStatus
WebFeatures_Flag
PinInChat_Type
PaymentInfo_TxnStatus
PaymentInfo_Status
PaymentInfo_Currency
QP_FilterResult
QP_FilterClientNotSupportedConfig
QP_ClauseType
DeviceCapabilities_ChatLockSupportLevel
UserPassword_Transformer
UserPassword_Encoding
ADVSignedKeyIndexList
ADVSignedDeviceIdentity
ADVSignedDeviceIdentityHMAC
ADVKeyIndexList
ADVDeviceIdentity
DeviceProps
InitialSecurityNotificationSettingSync
ImageMessage
HistorySyncNotification
HighlyStructuredMessage
GroupInviteMessage
FutureProofMessage
ExtendedTextMessage
EventResponseMessage
EventMessage
EncReactionMessage
EncEventResponseMessage
EncCommentMessage
DocumentMessage
DeviceSentMessage
DeclinePaymentRequestMessage
ContactsArrayMessage
ContactMessage
CommentMessage
Chat
CancelPaymentRequestMessage
Call
CallLogMessage
ButtonsResponseMessage
ButtonsResponseMessage_SelectedDisplayText
ButtonsMessage
ButtonsMessage_Text
ButtonsMessage_DocumentMessage
ButtonsMessage_ImageMessage
ButtonsMessage_VideoMessage
ButtonsMessage_LocationMessage
BotFeedbackMessage
BCallMessage
AudioMessage
AppStateSyncKey
AppStateSyncKeyShare
AppStateSyncKeyRequest
AppStateSyncKeyId
AppStateSyncKeyFingerprint
AppStateSyncKeyData
AppStateFatalExceptionNotification
MediaNotifyMessage
Location
InteractiveAnnotation
InteractiveAnnotation_Location
InteractiveAnnotation_Newsletter
HydratedTemplateButton
HydratedTemplateButton_QuickReplyButton
HydratedTemplateButton_UrlButton
HydratedTemplateButton_CallButton
GroupMention
DisappearingMode
DeviceListMetadata
ContextInfo
ForwardedNewsletterMessageInfo
BotSuggestedPromptMetadata
BotSearchMetadata
BotPluginMetadata
BotMetadata
BotAvatarMetadata
ActionLink
TemplateButton
TemplateButton_QuickReplyButton_
TemplateButton_UrlButton
TemplateButton_CallButton_
Point
PaymentBackground
Money
Message
MessageSecretMessage
MessageContextInfo
VideoMessage
TemplateMessage
TemplateMessage_FourRowTemplate_
TemplateMessage_HydratedFourRowTemplate_
TemplateMessage_InteractiveMessageTemplate
TemplateButtonReplyMessage
StickerSyncRMRMessage
StickerMessage
SenderKeyDistributionMessage
SendPaymentMessage
SecretEncryptedMessage
ScheduledCallEditMessage
ScheduledCallCreationMessage
RequestWelcomeMessageMetadata
RequestPhoneNumberMessage
RequestPaymentMessage
ReactionMessage
ProtocolMessage
ProductMessage
PollVoteMessage
PollUpdateMessage
PollUpdateMessageMetadata
PollEncValue
PollCreationMessage
PlaceholderMessage
PinInChatMessage
PeerDataOperationRequestResponseMessage
PeerDataOperationRequestMessage
PaymentInviteMessage
OrderMessage
NewsletterAdminInviteMessage
MessageHistoryBundle
LocationMessage
LiveLocationMessage
ListResponseMessage
ListMessage
KeepInChatMessage
InvoiceMessage
InteractiveResponseMessage
InteractiveResponseMessage_NativeFlowResponseMessage_
InteractiveMessage
InteractiveMessage_ShopStorefrontMessage
InteractiveMessage_CollectionMessage_
InteractiveMessage_NativeFlowMessage_
InteractiveMessage_CarouselMessage_
EphemeralSetting
WallpaperSettings
StickerMetadata
Pushname
PhoneNumberToLIDMapping
PastParticipants
PastParticipant
NotificationSettings
HistorySync
HistorySyncMsg
GroupParticipant
GlobalSettings
Conversation
AvatarUserSettings
AutoDownloadSettings
ServerErrorReceipt
MediaRetryNotification
MessageKey
SyncdVersion
SyncdValue
SyncdSnapshot
SyncdRecord
SyncdPatch
SyncdMutations
SyncdMutation
SyncdIndex
KeyId
ExternalBlobReference
ExitCode
SyncActionValue
WamoUserIdentifierAction
UserStatusMuteAction
UnarchiveChatsSetting
TimeFormatAction
SyncActionMessage
SyncActionMessageRange
SubscriptionAction
StickerAction
StatusPrivacyAction
StarAction
SecurityNotificationSetting
RemoveRecentStickerAction
RecentEmojiWeightsAction
QuickReplyAction
PushNameSetting
PrivacySettingRelayAllCalls
PrivacySettingDisableLinkPreviewsAction
PrimaryVersionAction
PrimaryFeature
PnForLidChatAction
PinAction
PaymentInfoAction
NuxAction
MuteAction
MarketingMessageBroadcastAction
MarketingMessageAction
MarkChatAsReadAction
LockChatAction
LocaleSetting
LabelReorderingAction
LabelEditAction
LabelAssociationAction
KeyExpiration
ExternalWebBetaAction
DeleteMessageForMeAction
DeleteIndividualCallLogAction
DeleteChatAction
CustomPaymentMethodsAction
CustomPaymentMethod
CustomPaymentMethodMetadata
ContactAction
ClearChatAction
ChatAssignmentOpenedStatusAction
ChatAssignmentAction
CallLogAction
BotWelcomeRequestAction
ArchiveChatAction
AndroidUnsupportedActions
AgentAction
SyncActionData
RecentEmojiWeight
PatchDebugData
CallLogRecord
VerifiedNameCertificate
LocalizedName
BizIdentityInfo
BizAccountPayload
BizAccountLinkInfo
HandshakeMessage
HandshakeServerHello
HandshakeClientHello
HandshakeClientFinish
ClientPayload
WebNotificationsInfo
WebMessageInfo
WebFeatures
UserReceipt
StatusPSA
ReportingTokenInfo
Reaction
PremiumMessageInfo
PollUpdate
PollAdditionalMetadata
PinInChat
PhotoChange
PaymentInfo
NotificationMessageInfo
MessageAddOnContextInfo
MediaData
KeepInChat
EventResponse
EventAdditionalMetadata
CommentMetadata
NoiseCertificate
CertChain
QP
ChatLockSettings
DeviceCapabilities
UserPassword
DeviceProps_HistorySyncConfig
DeviceProps_AppVersion
HighlyStructuredMessage_HSMLocalizableParameter
HighlyStructuredMessage_HSMLocalizableParameter_Currency
HighlyStructuredMessage_HSMLocalizableParameter_DateTime
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_Component
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_UnixEpoch
HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch
HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent
CallLogMessage_CallParticipant
ButtonsMessage_Button
ButtonsMessage_Button_NativeFlowInfo
ButtonsMessage_Button_ButtonText
HydratedTemplateButton_HydratedURLButton
HydratedTemplateButton_HydratedQuickReplyButton
HydratedTemplateButton_HydratedCallButton
ContextInfo_UTMInfo
ContextInfo_ExternalAdReplyInfo
ContextInfo_DataSharingContext
ContextInfo_BusinessMessageForwardInfo
ContextInfo_AdReplyInfo
TemplateButton_URLButton
TemplateButton_QuickReplyButton
TemplateButton_CallButton
PaymentBackground_MediaData
TemplateMessage_HydratedFourRowTemplate
TemplateMessage_HydratedFourRowTemplate_DocumentMessage
TemplateMessage_HydratedFourRowTemplate_HydratedTitleText
TemplateMessage_HydratedFourRowTemplate_ImageMessage
TemplateMessage_HydratedFourRowTemplate_VideoMessage
TemplateMessage_HydratedFourRowTemplate_LocationMessage
TemplateMessage_FourRowTemplate
TemplateMessage_FourRowTemplate_DocumentMessage
TemplateMessage_FourRowTemplate_HighlyStructuredMessage
TemplateMessage_FourRowTemplate_ImageMessage
TemplateMessage_FourRowTemplate_VideoMessage
TemplateMessage_FourRowTemplate_LocationMessage
ProductMessage_ProductSnapshot
ProductMessage_CatalogSnapshot
PollCreationMessage_Option
PeerDataOperationRequestResponseMessage_PeerDataOperationResult
PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse
PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse
PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail
PeerDataOperationRequestMessage_RequestUrlPreview
PeerDataOperationRequestMessage_RequestStickerReupload
PeerDataOperationRequestMessage_PlaceholderMessageResendRequest
PeerDataOperationRequestMessage_HistorySyncOnDemandRequest
ListResponseMessage_SingleSelectReply
ListMessage_Section
ListMessage_Row
ListMessage_Product
ListMessage_ProductSection
ListMessage_ProductListInfo
ListMessage_ProductListHeaderImage
InteractiveResponseMessage_NativeFlowResponseMessage
InteractiveResponseMessage_Body
InteractiveMessage_NativeFlowMessage
InteractiveMessage_Header
InteractiveMessage_Header_DocumentMessage
InteractiveMessage_Header_ImageMessage
InteractiveMessage_Header_JpegThumbnail
InteractiveMessage_Header_VideoMessage
InteractiveMessage_Header_LocationMessage
InteractiveMessage_Header_ProductMessage
InteractiveMessage_Footer
InteractiveMessage_CollectionMessage
InteractiveMessage_CarouselMessage
InteractiveMessage_Body
InteractiveMessage_ShopMessage
InteractiveMessage_NativeFlowMessage_NativeFlowButton
CallLogRecord_ParticipantInfo
VerifiedNameCertificate_Details
ClientPayload_WebInfo
ClientPayload_UserAgent
ClientPayload_InteropData
ClientPayload_DevicePairingRegistrationData
ClientPayload_DNSSource
ClientPayload_WebInfo_WebdPayload
ClientPayload_UserAgent_AppVersion
NoiseCertificate_Details
CertChain_NoiseCertificate
CertChain_NoiseCertificate_Details
QP_Filter
QP_FilterParameters
QP_FilterClause
UserPassword_TransformerArg
UserPassword_TransformerArg_Value
UserPassword_TransformerArg_Value_AsBlob
UserPassword_TransformerArg_Value_AsUnsignedInteger

View File

@@ -238,6 +238,7 @@ func NewClient(deviceStore *store.Device, log waLog.Logger) *Client {
}
cli.nodeHandlers = map[string]nodeHandler{
"message": cli.handleEncryptedMessage,
"appdata": cli.handleEncryptedMessage,
"receipt": cli.handleReceipt,
"call": cli.handleCallEvent,
"chatstate": cli.handleChatState,

View File

@@ -28,7 +28,7 @@ func (cli *Client) handleStreamError(node *waBinary.Node) {
cli.Disconnect()
err := cli.Connect()
if err != nil {
cli.Log.Errorf("Failed to reconnect after 515 code:", err)
cli.Log.Errorf("Failed to reconnect after 515 code: %v", err)
}
}()
case code == "401" && conflictType == "device_removed":

View File

@@ -22,8 +22,8 @@ import (
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/reflect/protoreflect"
"go.mau.fi/whatsmeow/binary/armadillo/waMediaTransport"
waProto "go.mau.fi/whatsmeow/binary/proto"
"go.mau.fi/whatsmeow/proto/waMediaTransport"
"go.mau.fi/whatsmeow/socket"
"go.mau.fi/whatsmeow/util/cbcutil"
"go.mau.fi/whatsmeow/util/hkdfutil"
@@ -53,8 +53,8 @@ type DownloadableMessage interface {
proto.Message
GetDirectPath() string
GetMediaKey() []byte
GetFileSha256() []byte
GetFileEncSha256() []byte
GetFileSHA256() []byte
GetFileEncSHA256() []byte
}
// DownloadableThumbnail represents a protobuf message that contains a thumbnail attachment.
@@ -63,8 +63,8 @@ type DownloadableMessage interface {
type DownloadableThumbnail interface {
proto.Message
GetThumbnailDirectPath() string
GetThumbnailSha256() []byte
GetThumbnailEncSha256() []byte
GetThumbnailSHA256() []byte
GetThumbnailEncSHA256() []byte
GetMediaKey() []byte
}
@@ -167,7 +167,7 @@ func (cli *Client) DownloadThumbnail(msg DownloadableThumbnail) ([]byte, error)
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(msg.GetThumbnailDirectPath(), msg.GetThumbnailEncSHA256(), msg.GetThumbnailSHA256(), msg.GetMediaKey(), -1, mediaType, mediaTypeToMMSType[mediaType])
} else {
return nil, ErrNoURLPresent
}
@@ -200,9 +200,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(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(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)
@@ -229,7 +229,7 @@ func (cli *Client) DownloadMediaWithPath(directPath string, encFileHash, fileHas
// 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)
if err == nil {
if err == nil || errors.Is(err, ErrFileLengthMismatch) || errors.Is(err, ErrInvalidMediaSHA256) {
return
} else if i >= len(mediaConn.Hosts)-1 {
return nil, fmt.Errorf("failed to download media from last host: %w", err)
@@ -240,12 +240,12 @@ 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(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(url, fileEncSHA256); err != nil {
} else if mediaKey == nil && fileEncSha256 == nil && mac == nil {
} else if mediaKey == nil && fileEncSHA256 == nil && mac == nil {
// Unencrypted media, just return the downloaded data
data = ciphertext
} else if err = validateMedia(iv, ciphertext, macKey, mac); err != nil {
@@ -254,7 +254,7 @@ func (cli *Client) downloadAndDecrypt(url string, mediaKey []byte, appInfo Media
err = fmt.Errorf("failed to decrypt file: %w", err)
} else if fileLength >= 0 && len(data) != fileLength {
err = fmt.Errorf("%w: expected %d, got %d", ErrFileLengthMismatch, fileLength, len(data))
} else if len(fileSha256) == 32 && sha256.Sum256(data) != *(*[32]byte)(fileSha256) {
} else if len(fileSHA256) == 32 && sha256.Sum256(data) != *(*[32]byte)(fileSHA256) {
err = ErrInvalidMediaSHA256
}
return

View File

@@ -106,6 +106,7 @@ var (
ErrUnknownServer = errors.New("can't send message to unknown server")
ErrRecipientADJID = errors.New("message recipient must be a user JID with no device part")
ErrServerReturnedError = errors.New("server returned error")
ErrInvalidInlineBotID = errors.New("invalid inline bot ID")
)
type DownloadHTTPError struct {

View File

@@ -26,7 +26,7 @@ func getMediaRetryKey(mediaKey []byte) (cipherKey []byte) {
func encryptMediaRetryReceipt(messageID types.MessageID, mediaKey []byte) (ciphertext, iv []byte, err error) {
receipt := &waProto.ServerErrorReceipt{
StanzaId: proto.String(messageID),
StanzaID: proto.String(messageID),
}
var plaintext []byte
plaintext, err = proto.Marshal(receipt)

View File

@@ -16,6 +16,8 @@ import (
"runtime/debug"
"time"
"go.mau.fi/whatsmeow/proto/waE2E"
"go.mau.fi/libsignal/groups"
"go.mau.fi/libsignal/protocol"
"go.mau.fi/libsignal/session"
@@ -88,6 +90,16 @@ func (cli *Client) parseMessageSource(node *waBinary.Node, requireParticipant bo
} else {
source.Chat = from.ToNonAD()
}
} else if from.IsBot() {
source.Sender = from
meta := node.GetChildByTag("meta")
ag = meta.AttrGetter()
targetChatJID := ag.OptionalJID("target_chat_jid")
if targetChatJID != nil {
source.Chat = targetChatJID.ToNonAD()
} else {
source.Chat = from
}
} else {
source.Chat = from.ToNonAD()
source.Sender = from
@@ -96,6 +108,32 @@ func (cli *Client) parseMessageSource(node *waBinary.Node, requireParticipant bo
return
}
func (cli *Client) parseMsgBotInfo(node waBinary.Node) (botInfo types.MsgBotInfo, err error) {
botNode := node.GetChildByTag("bot")
ag := botNode.AttrGetter()
botInfo.EditType = types.BotEditType(ag.String("edit"))
if botInfo.EditType == types.EditTypeInner || botInfo.EditType == types.EditTypeLast {
botInfo.EditTargetID = types.MessageID(ag.String("edit_target_id"))
botInfo.EditSenderTimestampMS = ag.UnixMilli("sender_timestamp_ms")
}
err = ag.Error()
return
}
func (cli *Client) parseMsgMetaInfo(node waBinary.Node) (metaInfo types.MsgMetaInfo, err error) {
metaNode := node.GetChildByTag("meta")
ag := metaNode.AttrGetter()
metaInfo.TargetID = types.MessageID(ag.String("target_id"))
targetSenderJID := ag.OptionalJIDOrEmpty("target_sender_jid")
if targetSenderJID.User != "" {
metaInfo.TargetSender = targetSenderJID
}
err = ag.Error()
return
}
func (cli *Client) parseMessageInfo(node *waBinary.Node) (*types.MessageInfo, error) {
var info types.MessageInfo
var err error
@@ -124,6 +162,16 @@ func (cli *Client) parseMessageInfo(node *waBinary.Node) (*types.MessageInfo, er
if err != nil {
cli.Log.Warnf("Failed to parse verified_name node in %s: %v", info.ID, err)
}
case "bot":
info.MsgBotInfo, err = cli.parseMsgBotInfo(child)
if err != nil {
cli.Log.Warnf("Failed to parse <bot> node in %s: %v", info.ID, err)
}
case "meta":
info.MsgMetaInfo, err = cli.parseMsgMetaInfo(child)
if err != nil {
cli.Log.Warnf("Failed to parse <meta> node in %s: %v", info.ID, err)
}
case "franking":
// TODO
case "trace":
@@ -175,7 +223,7 @@ func (cli *Client) handlePlaintextMessage(info *types.MessageInfo, node *waBinar
func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node) {
if len(node.GetChildrenByTag("unavailable")) > 0 && len(node.GetChildrenByTag("enc")) == 0 {
cli.Log.Warnf("Unavailable message %s from %s", info.ID, info.SourceString())
go cli.sendRetryReceipt(node, info, true)
go cli.delayedRequestMessageFromPhone(info)
cli.dispatchEvent(&events.UndecryptableMessage{Info: *info, IsUnavailable: true})
return
}
@@ -200,10 +248,47 @@ func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node)
containsDirectMsg = true
} else if info.IsGroup && encType == "skmsg" {
decrypted, err = cli.decryptGroupMsg(&child, info.Sender, info.Chat)
} else if encType == "msmsg" && info.Sender.IsBot() {
// Meta AI / other bots (biz?):
// step 1: get message secret
targetSenderJID := info.MsgMetaInfo.TargetSender
if targetSenderJID.User == "" {
// if no targetSenderJID in <meta> this must be ourselves (one-one-one mode)
targetSenderJID = cli.getOwnID()
}
messageSecret, err := cli.Store.MsgSecrets.GetMessageSecret(info.Chat, targetSenderJID, info.MsgMetaInfo.TargetID)
if err != nil || messageSecret == nil {
cli.Log.Warnf("Error getting message secret for bot msg with id %s", node.AttrGetter().String("id"))
continue
}
// step 2: get MessageSecretMessage
byteContents := child.Content.([]byte) // <enc> contents
var msMsg waE2E.MessageSecretMessage
err = proto.Unmarshal(byteContents, &msMsg)
if err != nil {
cli.Log.Warnf("Error decoding MessageSecretMesage protobuf %v", err)
continue
}
// step 3: determine best message id for decryption
var messageID string
if info.MsgBotInfo.EditType == types.EditTypeInner || info.MsgBotInfo.EditType == types.EditTypeLast {
messageID = info.MsgBotInfo.EditTargetID
} else {
messageID = info.ID
}
// step 4: decrypt and voila
decrypted, err = cli.decryptBotMessage(messageSecret, &msMsg, messageID, targetSenderJID, info)
} else {
cli.Log.Warnf("Unhandled encrypted message (type %s) from %s", encType, info.SourceString())
continue
}
if err != nil {
cli.Log.Warnf("Error decrypting message from %s: %v", info.SourceString(), err)
isUnavailable := encType == "skmsg" && !containsDirectMsg && errors.Is(err, signalerror.ErrNoSenderKeyForUser)
@@ -216,11 +301,9 @@ func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node)
return
}
retryCount := ag.OptionalInt("count")
if retryCount > 0 {
cli.cancelDelayedRequestFromPhone(info.ID)
}
cli.cancelDelayedRequestFromPhone(info.ID)
var msg waProto.Message
var msg waE2E.Message
switch ag.Int("v") {
case 2:
err = proto.Unmarshal(decrypted, &msg)

View File

@@ -11,6 +11,9 @@ import (
"fmt"
"time"
"go.mau.fi/whatsmeow/proto/waCommon"
"go.mau.fi/whatsmeow/proto/waE2E"
"go.mau.fi/util/random"
"google.golang.org/protobuf/proto"
@@ -26,8 +29,13 @@ type MsgSecretType string
const (
EncSecretPollVote MsgSecretType = "Poll Vote"
EncSecretReaction MsgSecretType = "Enc Reaction"
EncSecretBotMsg MsgSecretType = "Bot Message"
)
func applyBotMessageHKDF(messageSecret []byte) []byte {
return hkdfutil.SHA256(messageSecret, nil, []byte(EncSecretBotMsg), 32)
}
func generateMsgSecretKey(
modificationType MsgSecretType, modificationSender types.JID,
origMsgID types.MessageID, origMsgSender types.JID, origMsgSecret []byte,
@@ -47,7 +55,7 @@ func generateMsgSecretKey(
return secretKey, additionalData
}
func getOrigSenderFromKey(msg *events.Message, key *waProto.MessageKey) (types.JID, error) {
func getOrigSenderFromKey(msg *events.Message, key *waCommon.MessageKey) (types.JID, error) {
if key.GetFromMe() {
// fromMe always means the poll and vote were sent by the same user
return msg.Info.Sender, nil
@@ -70,23 +78,23 @@ func getOrigSenderFromKey(msg *events.Message, key *waProto.MessageKey) (types.J
}
type messageEncryptedSecret interface {
GetEncIv() []byte
GetEncIV() []byte
GetEncPayload() []byte
}
func (cli *Client) decryptMsgSecret(msg *events.Message, useCase MsgSecretType, encrypted messageEncryptedSecret, origMsgKey *waProto.MessageKey) ([]byte, error) {
func (cli *Client) decryptMsgSecret(msg *events.Message, useCase MsgSecretType, encrypted messageEncryptedSecret, origMsgKey *waCommon.MessageKey) ([]byte, error) {
pollSender, err := getOrigSenderFromKey(msg, origMsgKey)
if err != nil {
return nil, err
}
baseEncKey, err := cli.Store.MsgSecrets.GetMessageSecret(msg.Info.Chat, pollSender, origMsgKey.GetId())
baseEncKey, err := cli.Store.MsgSecrets.GetMessageSecret(msg.Info.Chat, pollSender, origMsgKey.GetID())
if err != nil {
return nil, fmt.Errorf("failed to get original message secret key: %w", err)
} else if baseEncKey == nil {
return nil, ErrOriginalMessageSecretNotFound
}
secretKey, additionalData := generateMsgSecretKey(useCase, msg.Info.Sender, origMsgKey.GetId(), pollSender, baseEncKey)
plaintext, err := gcmutil.Decrypt(secretKey, encrypted.GetEncIv(), encrypted.GetEncPayload(), additionalData)
secretKey, additionalData := generateMsgSecretKey(useCase, msg.Info.Sender, origMsgKey.GetID(), pollSender, baseEncKey)
plaintext, err := gcmutil.Decrypt(secretKey, encrypted.GetEncIV(), encrypted.GetEncPayload(), additionalData)
if err != nil {
return nil, fmt.Errorf("failed to decrypt secret message: %w", err)
}
@@ -115,6 +123,18 @@ func (cli *Client) encryptMsgSecret(chat, origSender types.JID, origMsgID types.
return ciphertext, iv, nil
}
func (cli *Client) decryptBotMessage(messageSecret []byte, msMsg messageEncryptedSecret, messageID types.MessageID, targetSenderJID types.JID, info *types.MessageInfo) ([]byte, error) {
// gcm decrypt key generation
newKey, additionalData := generateMsgSecretKey("", info.Sender, messageID, targetSenderJID, applyBotMessageHKDF(messageSecret))
plaintext, err := gcmutil.Decrypt(newKey, msMsg.GetEncIV(), msMsg.GetEncPayload(), additionalData)
if err != nil {
return nil, fmt.Errorf("failed to decrypt secret message: %w", err)
}
return plaintext, nil
}
// DecryptReaction decrypts a reaction update message. This form of reactions hasn't been rolled out yet,
// so this function is likely not of much use.
//
@@ -126,7 +146,7 @@ func (cli *Client) encryptMsgSecret(chat, origSender types.JID, origMsgID types.
// }
// fmt.Printf("Reaction message: %+v\n", reaction)
// }
func (cli *Client) DecryptReaction(reaction *events.Message) (*waProto.ReactionMessage, error) {
func (cli *Client) DecryptReaction(reaction *events.Message) (*waE2E.ReactionMessage, error) {
encReaction := reaction.Message.GetEncReactionMessage()
if encReaction == nil {
return nil, ErrNotEncryptedReactionMessage
@@ -135,7 +155,7 @@ func (cli *Client) DecryptReaction(reaction *events.Message) (*waProto.ReactionM
if err != nil {
return nil, fmt.Errorf("failed to decrypt reaction: %w", err)
}
var msg waProto.ReactionMessage
var msg waE2E.ReactionMessage
err = proto.Unmarshal(plaintext, &msg)
if err != nil {
return nil, fmt.Errorf("failed to decode reaction protobuf: %w", err)
@@ -156,7 +176,7 @@ func (cli *Client) DecryptReaction(reaction *events.Message) (*waProto.ReactionM
// fmt.Printf("- %X\n", hash)
// }
// }
func (cli *Client) DecryptPollVote(vote *events.Message) (*waProto.PollVoteMessage, error) {
func (cli *Client) DecryptPollVote(vote *events.Message) (*waE2E.PollVoteMessage, error) {
pollUpdate := vote.Message.GetPollUpdateMessage()
if pollUpdate == nil {
return nil, ErrNotPollUpdateMessage
@@ -165,7 +185,7 @@ func (cli *Client) DecryptPollVote(vote *events.Message) (*waProto.PollVoteMessa
if err != nil {
return nil, fmt.Errorf("failed to decrypt poll vote: %w", err)
}
var msg waProto.PollVoteMessage
var msg waE2E.PollVoteMessage
err = proto.Unmarshal(plaintext, &msg)
if err != nil {
return nil, fmt.Errorf("failed to decode poll vote protobuf: %w", err)
@@ -173,11 +193,11 @@ func (cli *Client) DecryptPollVote(vote *events.Message) (*waProto.PollVoteMessa
return &msg, nil
}
func getKeyFromInfo(msgInfo *types.MessageInfo) *waProto.MessageKey {
creationKey := &waProto.MessageKey{
RemoteJid: proto.String(msgInfo.Chat.String()),
func getKeyFromInfo(msgInfo *types.MessageInfo) *waCommon.MessageKey {
creationKey := &waCommon.MessageKey{
RemoteJID: proto.String(msgInfo.Chat.String()),
FromMe: proto.Bool(msgInfo.IsFromMe),
Id: proto.String(msgInfo.ID),
ID: proto.String(msgInfo.ID),
}
if msgInfo.IsGroup {
creationKey.Participant = proto.String(msgInfo.Sender.String())
@@ -255,8 +275,8 @@ func (cli *Client) EncryptPollVote(pollInfo *types.MessageInfo, vote *waProto.Po
PollCreationMessageKey: getKeyFromInfo(pollInfo),
Vote: &waProto.PollEncValue{
EncPayload: ciphertext,
EncIv: iv,
EncIV: iv,
},
SenderTimestampMs: proto.Int64(time.Now().UnixMilli()),
SenderTimestampMS: proto.Int64(time.Now().UnixMilli()),
}, nil
}

View File

@@ -107,7 +107,7 @@ func (cli *Client) handlePair(deviceIdentityBytes []byte, reqID, businessName, p
h := hmac.New(sha256.New, cli.Store.AdvSecretKey)
h.Write(deviceIdentityContainer.Details)
if !bytes.Equal(h.Sum(nil), deviceIdentityContainer.Hmac) {
if !bytes.Equal(h.Sum(nil), deviceIdentityContainer.HMAC) {
cli.Log.Warnf("Invalid HMAC from pair success message")
cli.sendPairError(reqID, 401, "not-authorized")
return ErrPairInvalidDeviceIdentityHMAC

View File

@@ -174,19 +174,34 @@ func nodeToPreKeyBundle(deviceID uint32, node waBinary.Node) (*prekey.Bundle, er
}
identityKeyPub := *(*[32]byte)(identityKeyRaw)
preKey, err := nodeToPreKey(keysNode.GetChildByTag("key"))
if err != nil {
return nil, fmt.Errorf("invalid prekey in prekey response: %w", err)
preKeyNode, ok := keysNode.GetOptionalChildByTag("key")
preKey := &keys.PreKey{}
if ok {
var err error
preKey, err = nodeToPreKey(preKeyNode)
if err != nil {
return nil, fmt.Errorf("invalid prekey in prekey response: %w", err)
}
}
signedPreKey, err := nodeToPreKey(keysNode.GetChildByTag("skey"))
if err != nil {
return nil, fmt.Errorf("invalid signed prekey in prekey response: %w", err)
}
return prekey.NewBundle(registrationID, deviceID,
optional.NewOptionalUint32(preKey.KeyID), signedPreKey.KeyID,
ecc.NewDjbECPublicKey(*preKey.Pub), ecc.NewDjbECPublicKey(*signedPreKey.Pub), *signedPreKey.Signature,
identity.NewKey(ecc.NewDjbECPublicKey(identityKeyPub))), nil
var bundle *prekey.Bundle
if ok {
bundle = prekey.NewBundle(registrationID, deviceID,
optional.NewOptionalUint32(preKey.KeyID), signedPreKey.KeyID,
ecc.NewDjbECPublicKey(*preKey.Pub), ecc.NewDjbECPublicKey(*signedPreKey.Pub), *signedPreKey.Signature,
identity.NewKey(ecc.NewDjbECPublicKey(identityKeyPub)))
} else {
bundle = prekey.NewBundle(registrationID, deviceID, optional.NewEmptyUint32(), signedPreKey.KeyID,
nil, ecc.NewDjbECPublicKey(*signedPreKey.Pub), *signedPreKey.Signature,
identity.NewKey(ecc.NewDjbECPublicKey(identityKeyPub)))
}
return bundle, nil
}
func nodeToPreKey(node waBinary.Node) (*keys.PreKey, error) {

View File

@@ -0,0 +1 @@
protos.js

View File

@@ -6,7 +6,7 @@ import (
"google.golang.org/protobuf/proto"
"go.mau.fi/whatsmeow/binary/armadillo/waCommon"
"go.mau.fi/whatsmeow/proto/waCommon"
)
var ErrUnsupportedVersion = errors.New("unsupported subprotocol version")
@@ -27,6 +27,6 @@ func Marshal[T proto.Message](msg T, version int32) (*waCommon.SubProtocol, erro
}
return &waCommon.SubProtocol{
Payload: payload,
Version: version,
Version: &version,
}, nil
}

View File

@@ -1,16 +1,23 @@
package armadillo
import (
"go.mau.fi/whatsmeow/binary/armadillo/waArmadilloApplication"
"go.mau.fi/whatsmeow/binary/armadillo/waCommon"
"go.mau.fi/whatsmeow/binary/armadillo/waConsumerApplication"
"go.mau.fi/whatsmeow/binary/armadillo/waMultiDevice"
"google.golang.org/protobuf/proto"
"go.mau.fi/whatsmeow/proto/waArmadilloApplication"
"go.mau.fi/whatsmeow/proto/waCommon"
"go.mau.fi/whatsmeow/proto/waConsumerApplication"
"go.mau.fi/whatsmeow/proto/waMultiDevice"
)
type MessageApplicationSub interface {
IsMessageApplicationSub()
}
type RealMessageApplicationSub interface {
MessageApplicationSub
proto.Message
}
type Unsupported_BusinessApplication waCommon.SubProtocol
type Unsupported_PaymentApplication waCommon.SubProtocol
type Unsupported_Voip waCommon.SubProtocol

562
vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.go generated vendored Normal file
View File

@@ -0,0 +1,562 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waAdv/WAAdv.proto
package waAdv
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 ADVEncryptionType int32
const (
ADVEncryptionType_E2EE ADVEncryptionType = 0
ADVEncryptionType_HOSTED ADVEncryptionType = 1
)
// Enum value maps for ADVEncryptionType.
var (
ADVEncryptionType_name = map[int32]string{
0: "E2EE",
1: "HOSTED",
}
ADVEncryptionType_value = map[string]int32{
"E2EE": 0,
"HOSTED": 1,
}
)
func (x ADVEncryptionType) Enum() *ADVEncryptionType {
p := new(ADVEncryptionType)
*p = x
return p
}
func (x ADVEncryptionType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ADVEncryptionType) Descriptor() protoreflect.EnumDescriptor {
return file_waAdv_WAAdv_proto_enumTypes[0].Descriptor()
}
func (ADVEncryptionType) Type() protoreflect.EnumType {
return &file_waAdv_WAAdv_proto_enumTypes[0]
}
func (x ADVEncryptionType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *ADVEncryptionType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = ADVEncryptionType(num)
return nil
}
// Deprecated: Use ADVEncryptionType.Descriptor instead.
func (ADVEncryptionType) EnumDescriptor() ([]byte, []int) {
return file_waAdv_WAAdv_proto_rawDescGZIP(), []int{0}
}
type ADVKeyIndexList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RawID *uint32 `protobuf:"varint,1,opt,name=rawID" json:"rawID,omitempty"`
Timestamp *uint64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"`
CurrentIndex *uint32 `protobuf:"varint,3,opt,name=currentIndex" json:"currentIndex,omitempty"`
ValidIndexes []uint32 `protobuf:"varint,4,rep,packed,name=validIndexes" json:"validIndexes,omitempty"`
AccountType *ADVEncryptionType `protobuf:"varint,5,opt,name=accountType,enum=WAAdv.ADVEncryptionType" json:"accountType,omitempty"`
}
func (x *ADVKeyIndexList) Reset() {
*x = ADVKeyIndexList{}
if protoimpl.UnsafeEnabled {
mi := &file_waAdv_WAAdv_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ADVKeyIndexList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ADVKeyIndexList) ProtoMessage() {}
func (x *ADVKeyIndexList) ProtoReflect() protoreflect.Message {
mi := &file_waAdv_WAAdv_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ADVKeyIndexList.ProtoReflect.Descriptor instead.
func (*ADVKeyIndexList) Descriptor() ([]byte, []int) {
return file_waAdv_WAAdv_proto_rawDescGZIP(), []int{0}
}
func (x *ADVKeyIndexList) GetRawID() uint32 {
if x != nil && x.RawID != nil {
return *x.RawID
}
return 0
}
func (x *ADVKeyIndexList) GetTimestamp() uint64 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
func (x *ADVKeyIndexList) GetCurrentIndex() uint32 {
if x != nil && x.CurrentIndex != nil {
return *x.CurrentIndex
}
return 0
}
func (x *ADVKeyIndexList) GetValidIndexes() []uint32 {
if x != nil {
return x.ValidIndexes
}
return nil
}
func (x *ADVKeyIndexList) GetAccountType() ADVEncryptionType {
if x != nil && x.AccountType != nil {
return *x.AccountType
}
return ADVEncryptionType_E2EE
}
type ADVSignedKeyIndexList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Details []byte `protobuf:"bytes,1,opt,name=details" json:"details,omitempty"`
AccountSignature []byte `protobuf:"bytes,2,opt,name=accountSignature" json:"accountSignature,omitempty"`
AccountSignatureKey []byte `protobuf:"bytes,3,opt,name=accountSignatureKey" json:"accountSignatureKey,omitempty"`
}
func (x *ADVSignedKeyIndexList) Reset() {
*x = ADVSignedKeyIndexList{}
if protoimpl.UnsafeEnabled {
mi := &file_waAdv_WAAdv_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ADVSignedKeyIndexList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ADVSignedKeyIndexList) ProtoMessage() {}
func (x *ADVSignedKeyIndexList) ProtoReflect() protoreflect.Message {
mi := &file_waAdv_WAAdv_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ADVSignedKeyIndexList.ProtoReflect.Descriptor instead.
func (*ADVSignedKeyIndexList) Descriptor() ([]byte, []int) {
return file_waAdv_WAAdv_proto_rawDescGZIP(), []int{1}
}
func (x *ADVSignedKeyIndexList) GetDetails() []byte {
if x != nil {
return x.Details
}
return nil
}
func (x *ADVSignedKeyIndexList) GetAccountSignature() []byte {
if x != nil {
return x.AccountSignature
}
return nil
}
func (x *ADVSignedKeyIndexList) GetAccountSignatureKey() []byte {
if x != nil {
return x.AccountSignatureKey
}
return nil
}
type ADVDeviceIdentity struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RawID *uint32 `protobuf:"varint,1,opt,name=rawID" json:"rawID,omitempty"`
Timestamp *uint64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"`
KeyIndex *uint32 `protobuf:"varint,3,opt,name=keyIndex" json:"keyIndex,omitempty"`
AccountType *ADVEncryptionType `protobuf:"varint,4,opt,name=accountType,enum=WAAdv.ADVEncryptionType" json:"accountType,omitempty"`
DeviceType *ADVEncryptionType `protobuf:"varint,5,opt,name=deviceType,enum=WAAdv.ADVEncryptionType" json:"deviceType,omitempty"`
}
func (x *ADVDeviceIdentity) Reset() {
*x = ADVDeviceIdentity{}
if protoimpl.UnsafeEnabled {
mi := &file_waAdv_WAAdv_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ADVDeviceIdentity) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ADVDeviceIdentity) ProtoMessage() {}
func (x *ADVDeviceIdentity) ProtoReflect() protoreflect.Message {
mi := &file_waAdv_WAAdv_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ADVDeviceIdentity.ProtoReflect.Descriptor instead.
func (*ADVDeviceIdentity) Descriptor() ([]byte, []int) {
return file_waAdv_WAAdv_proto_rawDescGZIP(), []int{2}
}
func (x *ADVDeviceIdentity) GetRawID() uint32 {
if x != nil && x.RawID != nil {
return *x.RawID
}
return 0
}
func (x *ADVDeviceIdentity) GetTimestamp() uint64 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
func (x *ADVDeviceIdentity) GetKeyIndex() uint32 {
if x != nil && x.KeyIndex != nil {
return *x.KeyIndex
}
return 0
}
func (x *ADVDeviceIdentity) GetAccountType() ADVEncryptionType {
if x != nil && x.AccountType != nil {
return *x.AccountType
}
return ADVEncryptionType_E2EE
}
func (x *ADVDeviceIdentity) GetDeviceType() ADVEncryptionType {
if x != nil && x.DeviceType != nil {
return *x.DeviceType
}
return ADVEncryptionType_E2EE
}
type ADVSignedDeviceIdentity struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Details []byte `protobuf:"bytes,1,opt,name=details" json:"details,omitempty"`
AccountSignatureKey []byte `protobuf:"bytes,2,opt,name=accountSignatureKey" json:"accountSignatureKey,omitempty"`
AccountSignature []byte `protobuf:"bytes,3,opt,name=accountSignature" json:"accountSignature,omitempty"`
DeviceSignature []byte `protobuf:"bytes,4,opt,name=deviceSignature" json:"deviceSignature,omitempty"`
}
func (x *ADVSignedDeviceIdentity) Reset() {
*x = ADVSignedDeviceIdentity{}
if protoimpl.UnsafeEnabled {
mi := &file_waAdv_WAAdv_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ADVSignedDeviceIdentity) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ADVSignedDeviceIdentity) ProtoMessage() {}
func (x *ADVSignedDeviceIdentity) ProtoReflect() protoreflect.Message {
mi := &file_waAdv_WAAdv_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ADVSignedDeviceIdentity.ProtoReflect.Descriptor instead.
func (*ADVSignedDeviceIdentity) Descriptor() ([]byte, []int) {
return file_waAdv_WAAdv_proto_rawDescGZIP(), []int{3}
}
func (x *ADVSignedDeviceIdentity) GetDetails() []byte {
if x != nil {
return x.Details
}
return nil
}
func (x *ADVSignedDeviceIdentity) GetAccountSignatureKey() []byte {
if x != nil {
return x.AccountSignatureKey
}
return nil
}
func (x *ADVSignedDeviceIdentity) GetAccountSignature() []byte {
if x != nil {
return x.AccountSignature
}
return nil
}
func (x *ADVSignedDeviceIdentity) GetDeviceSignature() []byte {
if x != nil {
return x.DeviceSignature
}
return nil
}
type ADVSignedDeviceIdentityHMAC struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Details []byte `protobuf:"bytes,1,opt,name=details" json:"details,omitempty"`
HMAC []byte `protobuf:"bytes,2,opt,name=HMAC" json:"HMAC,omitempty"`
AccountType *ADVEncryptionType `protobuf:"varint,3,opt,name=accountType,enum=WAAdv.ADVEncryptionType" json:"accountType,omitempty"`
}
func (x *ADVSignedDeviceIdentityHMAC) Reset() {
*x = ADVSignedDeviceIdentityHMAC{}
if protoimpl.UnsafeEnabled {
mi := &file_waAdv_WAAdv_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ADVSignedDeviceIdentityHMAC) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ADVSignedDeviceIdentityHMAC) ProtoMessage() {}
func (x *ADVSignedDeviceIdentityHMAC) ProtoReflect() protoreflect.Message {
mi := &file_waAdv_WAAdv_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ADVSignedDeviceIdentityHMAC.ProtoReflect.Descriptor instead.
func (*ADVSignedDeviceIdentityHMAC) Descriptor() ([]byte, []int) {
return file_waAdv_WAAdv_proto_rawDescGZIP(), []int{4}
}
func (x *ADVSignedDeviceIdentityHMAC) GetDetails() []byte {
if x != nil {
return x.Details
}
return nil
}
func (x *ADVSignedDeviceIdentityHMAC) GetHMAC() []byte {
if x != nil {
return x.HMAC
}
return nil
}
func (x *ADVSignedDeviceIdentityHMAC) GetAccountType() ADVEncryptionType {
if x != nil && x.AccountType != nil {
return *x.AccountType
}
return ADVEncryptionType_E2EE
}
var File_waAdv_WAAdv_proto protoreflect.FileDescriptor
//go:embed WAAdv.pb.raw
var file_waAdv_WAAdv_proto_rawDesc []byte
var (
file_waAdv_WAAdv_proto_rawDescOnce sync.Once
file_waAdv_WAAdv_proto_rawDescData = file_waAdv_WAAdv_proto_rawDesc
)
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)
})
return file_waAdv_WAAdv_proto_rawDescData
}
var file_waAdv_WAAdv_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_waAdv_WAAdv_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_waAdv_WAAdv_proto_goTypes = []any{
(ADVEncryptionType)(0), // 0: WAAdv.ADVEncryptionType
(*ADVKeyIndexList)(nil), // 1: WAAdv.ADVKeyIndexList
(*ADVSignedKeyIndexList)(nil), // 2: WAAdv.ADVSignedKeyIndexList
(*ADVDeviceIdentity)(nil), // 3: WAAdv.ADVDeviceIdentity
(*ADVSignedDeviceIdentity)(nil), // 4: WAAdv.ADVSignedDeviceIdentity
(*ADVSignedDeviceIdentityHMAC)(nil), // 5: WAAdv.ADVSignedDeviceIdentityHMAC
}
var file_waAdv_WAAdv_proto_depIdxs = []int32{
0, // 0: WAAdv.ADVKeyIndexList.accountType:type_name -> WAAdv.ADVEncryptionType
0, // 1: WAAdv.ADVDeviceIdentity.accountType:type_name -> WAAdv.ADVEncryptionType
0, // 2: WAAdv.ADVDeviceIdentity.deviceType:type_name -> WAAdv.ADVEncryptionType
0, // 3: WAAdv.ADVSignedDeviceIdentityHMAC.accountType:type_name -> WAAdv.ADVEncryptionType
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
}
func init() { file_waAdv_WAAdv_proto_init() }
func file_waAdv_WAAdv_proto_init() {
if File_waAdv_WAAdv_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waAdv_WAAdv_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*ADVKeyIndexList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waAdv_WAAdv_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*ADVSignedKeyIndexList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waAdv_WAAdv_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*ADVDeviceIdentity); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waAdv_WAAdv_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*ADVSignedDeviceIdentity); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waAdv_WAAdv_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*ADVSignedDeviceIdentityHMAC); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waAdv_WAAdv_proto_rawDesc,
NumEnums: 1,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waAdv_WAAdv_proto_goTypes,
DependencyIndexes: file_waAdv_WAAdv_proto_depIdxs,
EnumInfos: file_waAdv_WAAdv_proto_enumTypes,
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
}

BIN
vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.raw generated vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,43 @@
syntax = "proto2";
package WAAdv;
option go_package = "go.mau.fi/whatsmeow/proto/waAdv";
enum ADVEncryptionType {
E2EE = 0;
HOSTED = 1;
}
message ADVKeyIndexList {
optional uint32 rawID = 1;
optional uint64 timestamp = 2;
optional uint32 currentIndex = 3;
repeated uint32 validIndexes = 4 [packed=true];
optional ADVEncryptionType accountType = 5;
}
message ADVSignedKeyIndexList {
optional bytes details = 1;
optional bytes accountSignature = 2;
optional bytes accountSignatureKey = 3;
}
message ADVDeviceIdentity {
optional uint32 rawID = 1;
optional uint64 timestamp = 2;
optional uint32 keyIndex = 3;
optional ADVEncryptionType accountType = 4;
optional ADVEncryptionType deviceType = 5;
}
message ADVSignedDeviceIdentity {
optional bytes details = 1;
optional bytes accountSignatureKey = 2;
optional bytes accountSignature = 3;
optional bytes deviceSignature = 4;
}
message ADVSignedDeviceIdentityHMAC {
optional bytes details = 1;
optional bytes HMAC = 2;
optional ADVEncryptionType accountType = 3;
}

View File

@@ -1,6 +1,6 @@
syntax = "proto3";
syntax = "proto2";
package WAArmadilloApplication;
option go_package = "go.mau.fi/whatsmeow/binary/armadillo/waArmadilloApplication";
option go_package = "go.mau.fi/whatsmeow/proto/waArmadilloApplication";
import "waArmadilloXMA/WAArmadilloXMA.proto";
import "waCommon/WACommon.proto";
@@ -19,30 +19,29 @@ message Armadillo {
}
message SubProtocolPayload {
WACommon.FutureProofBehavior futureProof = 1;
optional WACommon.FutureProofBehavior futureProof = 1;
}
message Signal {
message EncryptedBackupsSecrets {
message Epoch {
enum EpochStatus {
EPOCHSTATUS_UNKNOWN = 0;
ES_OPEN = 1;
ES_CLOSE = 2;
}
uint64 ID = 1;
bytes anonID = 2;
bytes rootKey = 3;
EpochStatus status = 4;
optional uint64 ID = 1;
optional bytes anonID = 2;
optional bytes rootKey = 3;
optional EpochStatus status = 4;
}
uint64 backupID = 1;
uint64 serverDataID = 2;
optional uint64 backupID = 1;
optional uint64 serverDataID = 2;
repeated Epoch epoch = 3;
bytes tempOcmfClientState = 4;
bytes mailboxRootKey = 5;
bytes obliviousValidationToken = 6;
optional bytes tempOcmfClientState = 4;
optional bytes mailboxRootKey = 5;
optional bytes obliviousValidationToken = 6;
}
oneof signal {
@@ -52,9 +51,9 @@ message Armadillo {
message ApplicationData {
message AIBotResponseMessage {
string summonToken = 1;
string messageText = 2;
string serializedExtras = 3;
optional string summonToken = 1;
optional string messageText = 2;
optional string serializedExtras = 3;
}
message MetadataSyncAction {
@@ -66,22 +65,22 @@ message Armadillo {
ActionMessageDelete messageDelete = 101;
}
WACommon.MessageKey key = 1;
optional WACommon.MessageKey key = 1;
}
message SyncChatAction {
message ActionChatRead {
SyncActionMessageRange messageRange = 1;
bool read = 2;
optional SyncActionMessageRange messageRange = 1;
optional bool read = 2;
}
message ActionChatDelete {
SyncActionMessageRange messageRange = 1;
optional SyncActionMessageRange messageRange = 1;
}
message ActionChatArchive {
SyncActionMessageRange messageRange = 1;
bool archived = 2;
optional SyncActionMessageRange messageRange = 1;
optional bool archived = 2;
}
oneof action {
@@ -90,17 +89,17 @@ message Armadillo {
ActionChatRead chatRead = 103;
}
string chatID = 1;
optional string chatID = 1;
}
message SyncActionMessage {
WACommon.MessageKey key = 1;
int64 timestamp = 2;
optional WACommon.MessageKey key = 1;
optional int64 timestamp = 2;
}
message SyncActionMessageRange {
int64 lastMessageTimestamp = 1;
int64 lastSystemMessageTimestamp = 2;
optional int64 lastMessageTimestamp = 1;
optional int64 lastSystemMessageTimestamp = 2;
repeated SyncActionMessage messages = 3;
}
@@ -109,7 +108,7 @@ message Armadillo {
SyncMessageAction messageAction = 102;
}
int64 actionTimestamp = 1;
optional int64 actionTimestamp = 1;
}
message MetadataSyncNotification {
@@ -148,22 +147,27 @@ message Armadillo {
TRANSFER_UNAVAILABLE = 23;
}
uint64 transactionID = 1;
string amount = 2;
string currency = 3;
PaymentStatus paymentStatus = 4;
WAArmadilloXMA.ExtendedContentMessage extendedContentMessage = 5;
optional uint64 transactionID = 1;
optional string amount = 2;
optional string currency = 3;
optional PaymentStatus paymentStatus = 4;
optional WAArmadilloXMA.ExtendedContentMessage extendedContentMessage = 5;
}
message NoteReplyMessage {
string noteID = 1;
WACommon.MessageText noteText = 2;
int64 noteTimestampMS = 3;
WACommon.MessageText noteReplyText = 4;
oneof noteReplyContent {
WACommon.MessageText textContent = 4;
WACommon.SubProtocol stickerContent = 5;
WACommon.SubProtocol videoContent = 6;
}
optional string noteID = 1;
optional WACommon.MessageText noteText = 2;
optional int64 noteTimestampMS = 3;
}
message BumpExistingMessage {
WACommon.MessageKey key = 1;
optional WACommon.MessageKey key = 1;
}
message ImageGalleryMessage {
@@ -172,20 +176,19 @@ message Armadillo {
message ScreenshotAction {
enum ScreenshotType {
SCREENSHOTTYPE_UNKNOWN = 0;
SCREENSHOT_IMAGE = 1;
SCREEN_RECORDING = 2;
}
ScreenshotType screenshotType = 1;
optional ScreenshotType screenshotType = 1;
}
message ExtendedContentMessageWithSear {
string searID = 1;
bytes payload = 2;
string nativeURL = 3;
WACommon.SubProtocol searAssociatedMessage = 4;
string searSentWithMessageID = 5;
optional string searID = 1;
optional bytes payload = 2;
optional string nativeURL = 3;
optional WACommon.SubProtocol searAssociatedMessage = 4;
optional string searSentWithMessageID = 5;
}
message RavenActionNotifMessage {
@@ -195,9 +198,9 @@ message Armadillo {
FORCE_DISABLE = 2;
}
WACommon.MessageKey key = 1;
int64 actionTimestamp = 2;
ActionType actionType = 3;
optional WACommon.MessageKey key = 1;
optional int64 actionTimestamp = 2;
optional ActionType actionType = 3;
}
message RavenMessage {
@@ -212,18 +215,17 @@ message Armadillo {
WACommon.SubProtocol videoMessage = 3;
}
EphemeralType ephemeralType = 1;
optional EphemeralType ephemeralType = 1;
}
message CommonSticker {
enum StickerType {
STICKERTYPE_UNKNOWN = 0;
SMALL_LIKE = 1;
MEDIUM_LIKE = 2;
LARGE_LIKE = 3;
}
StickerType stickerType = 1;
optional StickerType stickerType = 1;
}
oneof content {
@@ -237,9 +239,10 @@ message Armadillo {
PaymentsTransactionMessage paymentsTransactionMessage = 10;
BumpExistingMessage bumpExistingMessage = 11;
NoteReplyMessage noteReplyMessage = 13;
RavenMessage ravenMessageMsgr = 14;
}
}
Payload payload = 1;
Metadata metadata = 2;
optional Payload payload = 1;
optional Metadata metadata = 2;
}

View File

@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waArmadilloXMA/WAArmadilloXMA.proto
@@ -10,7 +10,7 @@ import (
reflect "reflect"
sync "sync"
waCommon "go.mau.fi/whatsmeow/binary/armadillo/waCommon"
waCommon "go.mau.fi/whatsmeow/proto/waCommon"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
@@ -89,6 +89,16 @@ func (x ExtendedContentMessage_OverlayIconGlyph) Number() protoreflect.EnumNumbe
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *ExtendedContentMessage_OverlayIconGlyph) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = ExtendedContentMessage_OverlayIconGlyph(num)
return nil
}
// Deprecated: Use ExtendedContentMessage_OverlayIconGlyph.Descriptor instead.
func (ExtendedContentMessage_OverlayIconGlyph) EnumDescriptor() ([]byte, []int) {
return file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescGZIP(), []int{0, 0}
@@ -97,19 +107,16 @@ func (ExtendedContentMessage_OverlayIconGlyph) EnumDescriptor() ([]byte, []int)
type ExtendedContentMessage_CtaButtonType int32
const (
ExtendedContentMessage_CTABUTTONTYPE_UNKNOWN ExtendedContentMessage_CtaButtonType = 0
ExtendedContentMessage_OPEN_NATIVE ExtendedContentMessage_CtaButtonType = 11
ExtendedContentMessage_OPEN_NATIVE ExtendedContentMessage_CtaButtonType = 11
)
// Enum value maps for ExtendedContentMessage_CtaButtonType.
var (
ExtendedContentMessage_CtaButtonType_name = map[int32]string{
0: "CTABUTTONTYPE_UNKNOWN",
11: "OPEN_NATIVE",
}
ExtendedContentMessage_CtaButtonType_value = map[string]int32{
"CTABUTTONTYPE_UNKNOWN": 0,
"OPEN_NATIVE": 11,
"OPEN_NATIVE": 11,
}
)
@@ -135,6 +142,16 @@ func (x ExtendedContentMessage_CtaButtonType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *ExtendedContentMessage_CtaButtonType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = ExtendedContentMessage_CtaButtonType(num)
return nil
}
// Deprecated: Use ExtendedContentMessage_CtaButtonType.Descriptor instead.
func (ExtendedContentMessage_CtaButtonType) EnumDescriptor() ([]byte, []int) {
return file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescGZIP(), []int{0, 1}
@@ -144,24 +161,30 @@ type ExtendedContentMessage_XmaLayoutType int32
const (
ExtendedContentMessage_SINGLE ExtendedContentMessage_XmaLayoutType = 0
ExtendedContentMessage_HSCROLL ExtendedContentMessage_XmaLayoutType = 1
ExtendedContentMessage_PORTRAIT ExtendedContentMessage_XmaLayoutType = 3
ExtendedContentMessage_STANDARD_DXMA ExtendedContentMessage_XmaLayoutType = 12
ExtendedContentMessage_LIST_DXMA ExtendedContentMessage_XmaLayoutType = 15
ExtendedContentMessage_GRID ExtendedContentMessage_XmaLayoutType = 16
)
// Enum value maps for ExtendedContentMessage_XmaLayoutType.
var (
ExtendedContentMessage_XmaLayoutType_name = map[int32]string{
0: "SINGLE",
1: "HSCROLL",
3: "PORTRAIT",
12: "STANDARD_DXMA",
15: "LIST_DXMA",
16: "GRID",
}
ExtendedContentMessage_XmaLayoutType_value = map[string]int32{
"SINGLE": 0,
"HSCROLL": 1,
"PORTRAIT": 3,
"STANDARD_DXMA": 12,
"LIST_DXMA": 15,
"GRID": 16,
}
)
@@ -187,6 +210,16 @@ func (x ExtendedContentMessage_XmaLayoutType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *ExtendedContentMessage_XmaLayoutType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = ExtendedContentMessage_XmaLayoutType(num)
return nil
}
// Deprecated: Use ExtendedContentMessage_XmaLayoutType.Descriptor instead.
func (ExtendedContentMessage_XmaLayoutType) EnumDescriptor() ([]byte, []int) {
return file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescGZIP(), []int{0, 2}
@@ -195,7 +228,6 @@ func (ExtendedContentMessage_XmaLayoutType) EnumDescriptor() ([]byte, []int) {
type ExtendedContentMessage_ExtendedContentType int32
const (
ExtendedContentMessage_EXTENDEDCONTENTTYPE_UNKNOWN ExtendedContentMessage_ExtendedContentType = 0
ExtendedContentMessage_IG_STORY_PHOTO_MENTION ExtendedContentMessage_ExtendedContentType = 4
ExtendedContentMessage_IG_SINGLE_IMAGE_POST_SHARE ExtendedContentMessage_ExtendedContentType = 9
ExtendedContentMessage_IG_MULTIPOST_SHARE ExtendedContentMessage_ExtendedContentType = 10
@@ -237,6 +269,12 @@ const (
ExtendedContentMessage_MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE ExtendedContentMessage_ExtendedContentType = 2008
ExtendedContentMessage_MSG_REELS_LIST ExtendedContentMessage_ExtendedContentType = 2009
ExtendedContentMessage_MSG_CONTACT ExtendedContentMessage_ExtendedContentType = 2010
ExtendedContentMessage_MSG_THREADS_POST_SHARE ExtendedContentMessage_ExtendedContentType = 2011
ExtendedContentMessage_MSG_FILE ExtendedContentMessage_ExtendedContentType = 2012
ExtendedContentMessage_MSG_AVATAR_DETAILS ExtendedContentMessage_ExtendedContentType = 2013
ExtendedContentMessage_MSG_AI_CONTACT ExtendedContentMessage_ExtendedContentType = 2014
ExtendedContentMessage_MSG_MEMORIES_SHARE ExtendedContentMessage_ExtendedContentType = 2015
ExtendedContentMessage_MSG_SHARED_ALBUM_REPLY ExtendedContentMessage_ExtendedContentType = 2016
ExtendedContentMessage_RTC_AUDIO_CALL ExtendedContentMessage_ExtendedContentType = 3000
ExtendedContentMessage_RTC_VIDEO_CALL ExtendedContentMessage_ExtendedContentType = 3001
ExtendedContentMessage_RTC_MISSED_AUDIO_CALL ExtendedContentMessage_ExtendedContentType = 3002
@@ -251,7 +289,6 @@ const (
// Enum value maps for ExtendedContentMessage_ExtendedContentType.
var (
ExtendedContentMessage_ExtendedContentType_name = map[int32]string{
0: "EXTENDEDCONTENTTYPE_UNKNOWN",
4: "IG_STORY_PHOTO_MENTION",
9: "IG_SINGLE_IMAGE_POST_SHARE",
10: "IG_MULTIPOST_SHARE",
@@ -293,6 +330,12 @@ var (
2008: "MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE",
2009: "MSG_REELS_LIST",
2010: "MSG_CONTACT",
2011: "MSG_THREADS_POST_SHARE",
2012: "MSG_FILE",
2013: "MSG_AVATAR_DETAILS",
2014: "MSG_AI_CONTACT",
2015: "MSG_MEMORIES_SHARE",
2016: "MSG_SHARED_ALBUM_REPLY",
3000: "RTC_AUDIO_CALL",
3001: "RTC_VIDEO_CALL",
3002: "RTC_MISSED_AUDIO_CALL",
@@ -304,7 +347,6 @@ var (
4000: "DATACLASS_SENDER_COPY",
}
ExtendedContentMessage_ExtendedContentType_value = map[string]int32{
"EXTENDEDCONTENTTYPE_UNKNOWN": 0,
"IG_STORY_PHOTO_MENTION": 4,
"IG_SINGLE_IMAGE_POST_SHARE": 9,
"IG_MULTIPOST_SHARE": 10,
@@ -346,6 +388,12 @@ var (
"MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE": 2008,
"MSG_REELS_LIST": 2009,
"MSG_CONTACT": 2010,
"MSG_THREADS_POST_SHARE": 2011,
"MSG_FILE": 2012,
"MSG_AVATAR_DETAILS": 2013,
"MSG_AI_CONTACT": 2014,
"MSG_MEMORIES_SHARE": 2015,
"MSG_SHARED_ALBUM_REPLY": 2016,
"RTC_AUDIO_CALL": 3000,
"RTC_VIDEO_CALL": 3001,
"RTC_MISSED_AUDIO_CALL": 3002,
@@ -380,6 +428,16 @@ func (x ExtendedContentMessage_ExtendedContentType) Number() protoreflect.EnumNu
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *ExtendedContentMessage_ExtendedContentType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = ExtendedContentMessage_ExtendedContentType(num)
return nil
}
// Deprecated: Use ExtendedContentMessage_ExtendedContentType.Descriptor instead.
func (ExtendedContentMessage_ExtendedContentType) EnumDescriptor() ([]byte, []int) {
return file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescGZIP(), []int{0, 3}
@@ -390,29 +448,29 @@ type ExtendedContentMessage struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
AssociatedMessage *waCommon.SubProtocol `protobuf:"bytes,1,opt,name=associatedMessage,proto3" json:"associatedMessage,omitempty"`
TargetType ExtendedContentMessage_ExtendedContentType `protobuf:"varint,2,opt,name=targetType,proto3,enum=WAArmadilloXMA.ExtendedContentMessage_ExtendedContentType" json:"targetType,omitempty"`
TargetUsername string `protobuf:"bytes,3,opt,name=targetUsername,proto3" json:"targetUsername,omitempty"`
TargetID string `protobuf:"bytes,4,opt,name=targetID,proto3" json:"targetID,omitempty"`
TargetExpiringAtSec int64 `protobuf:"varint,5,opt,name=targetExpiringAtSec,proto3" json:"targetExpiringAtSec,omitempty"`
XmaLayoutType ExtendedContentMessage_XmaLayoutType `protobuf:"varint,6,opt,name=xmaLayoutType,proto3,enum=WAArmadilloXMA.ExtendedContentMessage_XmaLayoutType" json:"xmaLayoutType,omitempty"`
Ctas []*ExtendedContentMessage_CTA `protobuf:"bytes,7,rep,name=ctas,proto3" json:"ctas,omitempty"`
Previews []*waCommon.SubProtocol `protobuf:"bytes,8,rep,name=previews,proto3" json:"previews,omitempty"`
TitleText string `protobuf:"bytes,9,opt,name=titleText,proto3" json:"titleText,omitempty"`
SubtitleText string `protobuf:"bytes,10,opt,name=subtitleText,proto3" json:"subtitleText,omitempty"`
MaxTitleNumOfLines uint32 `protobuf:"varint,11,opt,name=maxTitleNumOfLines,proto3" json:"maxTitleNumOfLines,omitempty"`
MaxSubtitleNumOfLines uint32 `protobuf:"varint,12,opt,name=maxSubtitleNumOfLines,proto3" json:"maxSubtitleNumOfLines,omitempty"`
Favicon *waCommon.SubProtocol `protobuf:"bytes,13,opt,name=favicon,proto3" json:"favicon,omitempty"`
HeaderImage *waCommon.SubProtocol `protobuf:"bytes,14,opt,name=headerImage,proto3" json:"headerImage,omitempty"`
HeaderTitle string `protobuf:"bytes,15,opt,name=headerTitle,proto3" json:"headerTitle,omitempty"`
OverlayIconGlyph ExtendedContentMessage_OverlayIconGlyph `protobuf:"varint,16,opt,name=overlayIconGlyph,proto3,enum=WAArmadilloXMA.ExtendedContentMessage_OverlayIconGlyph" json:"overlayIconGlyph,omitempty"`
OverlayTitle string `protobuf:"bytes,17,opt,name=overlayTitle,proto3" json:"overlayTitle,omitempty"`
OverlayDescription string `protobuf:"bytes,18,opt,name=overlayDescription,proto3" json:"overlayDescription,omitempty"`
SentWithMessageID string `protobuf:"bytes,19,opt,name=sentWithMessageID,proto3" json:"sentWithMessageID,omitempty"`
MessageText string `protobuf:"bytes,20,opt,name=messageText,proto3" json:"messageText,omitempty"`
HeaderSubtitle string `protobuf:"bytes,21,opt,name=headerSubtitle,proto3" json:"headerSubtitle,omitempty"`
XmaDataclass string `protobuf:"bytes,22,opt,name=xmaDataclass,proto3" json:"xmaDataclass,omitempty"`
ContentRef string `protobuf:"bytes,23,opt,name=contentRef,proto3" json:"contentRef,omitempty"`
AssociatedMessage *waCommon.SubProtocol `protobuf:"bytes,1,opt,name=associatedMessage" json:"associatedMessage,omitempty"`
TargetType *ExtendedContentMessage_ExtendedContentType `protobuf:"varint,2,opt,name=targetType,enum=WAArmadilloXMA.ExtendedContentMessage_ExtendedContentType" json:"targetType,omitempty"`
TargetUsername *string `protobuf:"bytes,3,opt,name=targetUsername" json:"targetUsername,omitempty"`
TargetID *string `protobuf:"bytes,4,opt,name=targetID" json:"targetID,omitempty"`
TargetExpiringAtSec *int64 `protobuf:"varint,5,opt,name=targetExpiringAtSec" json:"targetExpiringAtSec,omitempty"`
XmaLayoutType *ExtendedContentMessage_XmaLayoutType `protobuf:"varint,6,opt,name=xmaLayoutType,enum=WAArmadilloXMA.ExtendedContentMessage_XmaLayoutType" json:"xmaLayoutType,omitempty"`
Ctas []*ExtendedContentMessage_CTA `protobuf:"bytes,7,rep,name=ctas" json:"ctas,omitempty"`
Previews []*waCommon.SubProtocol `protobuf:"bytes,8,rep,name=previews" json:"previews,omitempty"`
TitleText *string `protobuf:"bytes,9,opt,name=titleText" json:"titleText,omitempty"`
SubtitleText *string `protobuf:"bytes,10,opt,name=subtitleText" json:"subtitleText,omitempty"`
MaxTitleNumOfLines *uint32 `protobuf:"varint,11,opt,name=maxTitleNumOfLines" json:"maxTitleNumOfLines,omitempty"`
MaxSubtitleNumOfLines *uint32 `protobuf:"varint,12,opt,name=maxSubtitleNumOfLines" json:"maxSubtitleNumOfLines,omitempty"`
Favicon *waCommon.SubProtocol `protobuf:"bytes,13,opt,name=favicon" json:"favicon,omitempty"`
HeaderImage *waCommon.SubProtocol `protobuf:"bytes,14,opt,name=headerImage" json:"headerImage,omitempty"`
HeaderTitle *string `protobuf:"bytes,15,opt,name=headerTitle" json:"headerTitle,omitempty"`
OverlayIconGlyph *ExtendedContentMessage_OverlayIconGlyph `protobuf:"varint,16,opt,name=overlayIconGlyph,enum=WAArmadilloXMA.ExtendedContentMessage_OverlayIconGlyph" json:"overlayIconGlyph,omitempty"`
OverlayTitle *string `protobuf:"bytes,17,opt,name=overlayTitle" json:"overlayTitle,omitempty"`
OverlayDescription *string `protobuf:"bytes,18,opt,name=overlayDescription" json:"overlayDescription,omitempty"`
SentWithMessageID *string `protobuf:"bytes,19,opt,name=sentWithMessageID" json:"sentWithMessageID,omitempty"`
MessageText *string `protobuf:"bytes,20,opt,name=messageText" json:"messageText,omitempty"`
HeaderSubtitle *string `protobuf:"bytes,21,opt,name=headerSubtitle" json:"headerSubtitle,omitempty"`
XmaDataclass *string `protobuf:"bytes,22,opt,name=xmaDataclass" json:"xmaDataclass,omitempty"`
ContentRef *string `protobuf:"bytes,23,opt,name=contentRef" json:"contentRef,omitempty"`
}
func (x *ExtendedContentMessage) Reset() {
@@ -455,36 +513,36 @@ func (x *ExtendedContentMessage) GetAssociatedMessage() *waCommon.SubProtocol {
}
func (x *ExtendedContentMessage) GetTargetType() ExtendedContentMessage_ExtendedContentType {
if x != nil {
return x.TargetType
if x != nil && x.TargetType != nil {
return *x.TargetType
}
return ExtendedContentMessage_EXTENDEDCONTENTTYPE_UNKNOWN
return ExtendedContentMessage_IG_STORY_PHOTO_MENTION
}
func (x *ExtendedContentMessage) GetTargetUsername() string {
if x != nil {
return x.TargetUsername
if x != nil && x.TargetUsername != nil {
return *x.TargetUsername
}
return ""
}
func (x *ExtendedContentMessage) GetTargetID() string {
if x != nil {
return x.TargetID
if x != nil && x.TargetID != nil {
return *x.TargetID
}
return ""
}
func (x *ExtendedContentMessage) GetTargetExpiringAtSec() int64 {
if x != nil {
return x.TargetExpiringAtSec
if x != nil && x.TargetExpiringAtSec != nil {
return *x.TargetExpiringAtSec
}
return 0
}
func (x *ExtendedContentMessage) GetXmaLayoutType() ExtendedContentMessage_XmaLayoutType {
if x != nil {
return x.XmaLayoutType
if x != nil && x.XmaLayoutType != nil {
return *x.XmaLayoutType
}
return ExtendedContentMessage_SINGLE
}
@@ -504,29 +562,29 @@ func (x *ExtendedContentMessage) GetPreviews() []*waCommon.SubProtocol {
}
func (x *ExtendedContentMessage) GetTitleText() string {
if x != nil {
return x.TitleText
if x != nil && x.TitleText != nil {
return *x.TitleText
}
return ""
}
func (x *ExtendedContentMessage) GetSubtitleText() string {
if x != nil {
return x.SubtitleText
if x != nil && x.SubtitleText != nil {
return *x.SubtitleText
}
return ""
}
func (x *ExtendedContentMessage) GetMaxTitleNumOfLines() uint32 {
if x != nil {
return x.MaxTitleNumOfLines
if x != nil && x.MaxTitleNumOfLines != nil {
return *x.MaxTitleNumOfLines
}
return 0
}
func (x *ExtendedContentMessage) GetMaxSubtitleNumOfLines() uint32 {
if x != nil {
return x.MaxSubtitleNumOfLines
if x != nil && x.MaxSubtitleNumOfLines != nil {
return *x.MaxSubtitleNumOfLines
}
return 0
}
@@ -546,64 +604,64 @@ func (x *ExtendedContentMessage) GetHeaderImage() *waCommon.SubProtocol {
}
func (x *ExtendedContentMessage) GetHeaderTitle() string {
if x != nil {
return x.HeaderTitle
if x != nil && x.HeaderTitle != nil {
return *x.HeaderTitle
}
return ""
}
func (x *ExtendedContentMessage) GetOverlayIconGlyph() ExtendedContentMessage_OverlayIconGlyph {
if x != nil {
return x.OverlayIconGlyph
if x != nil && x.OverlayIconGlyph != nil {
return *x.OverlayIconGlyph
}
return ExtendedContentMessage_INFO
}
func (x *ExtendedContentMessage) GetOverlayTitle() string {
if x != nil {
return x.OverlayTitle
if x != nil && x.OverlayTitle != nil {
return *x.OverlayTitle
}
return ""
}
func (x *ExtendedContentMessage) GetOverlayDescription() string {
if x != nil {
return x.OverlayDescription
if x != nil && x.OverlayDescription != nil {
return *x.OverlayDescription
}
return ""
}
func (x *ExtendedContentMessage) GetSentWithMessageID() string {
if x != nil {
return x.SentWithMessageID
if x != nil && x.SentWithMessageID != nil {
return *x.SentWithMessageID
}
return ""
}
func (x *ExtendedContentMessage) GetMessageText() string {
if x != nil {
return x.MessageText
if x != nil && x.MessageText != nil {
return *x.MessageText
}
return ""
}
func (x *ExtendedContentMessage) GetHeaderSubtitle() string {
if x != nil {
return x.HeaderSubtitle
if x != nil && x.HeaderSubtitle != nil {
return *x.HeaderSubtitle
}
return ""
}
func (x *ExtendedContentMessage) GetXmaDataclass() string {
if x != nil {
return x.XmaDataclass
if x != nil && x.XmaDataclass != nil {
return *x.XmaDataclass
}
return ""
}
func (x *ExtendedContentMessage) GetContentRef() string {
if x != nil {
return x.ContentRef
if x != nil && x.ContentRef != nil {
return *x.ContentRef
}
return ""
}
@@ -613,11 +671,12 @@ type ExtendedContentMessage_CTA struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ButtonType ExtendedContentMessage_CtaButtonType `protobuf:"varint,1,opt,name=buttonType,proto3,enum=WAArmadilloXMA.ExtendedContentMessage_CtaButtonType" json:"buttonType,omitempty"`
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
ActionURL string `protobuf:"bytes,3,opt,name=actionURL,proto3" json:"actionURL,omitempty"`
NativeURL string `protobuf:"bytes,4,opt,name=nativeURL,proto3" json:"nativeURL,omitempty"`
CtaType string `protobuf:"bytes,5,opt,name=ctaType,proto3" json:"ctaType,omitempty"`
ButtonType *ExtendedContentMessage_CtaButtonType `protobuf:"varint,1,opt,name=buttonType,enum=WAArmadilloXMA.ExtendedContentMessage_CtaButtonType" json:"buttonType,omitempty"`
Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
ActionURL *string `protobuf:"bytes,3,opt,name=actionURL" json:"actionURL,omitempty"`
NativeURL *string `protobuf:"bytes,4,opt,name=nativeURL" json:"nativeURL,omitempty"`
CtaType *string `protobuf:"bytes,5,opt,name=ctaType" json:"ctaType,omitempty"`
ActionContentBlob *string `protobuf:"bytes,6,opt,name=actionContentBlob" json:"actionContentBlob,omitempty"`
}
func (x *ExtendedContentMessage_CTA) Reset() {
@@ -653,36 +712,43 @@ func (*ExtendedContentMessage_CTA) Descriptor() ([]byte, []int) {
}
func (x *ExtendedContentMessage_CTA) GetButtonType() ExtendedContentMessage_CtaButtonType {
if x != nil {
return x.ButtonType
if x != nil && x.ButtonType != nil {
return *x.ButtonType
}
return ExtendedContentMessage_CTABUTTONTYPE_UNKNOWN
return ExtendedContentMessage_OPEN_NATIVE
}
func (x *ExtendedContentMessage_CTA) GetTitle() string {
if x != nil {
return x.Title
if x != nil && x.Title != nil {
return *x.Title
}
return ""
}
func (x *ExtendedContentMessage_CTA) GetActionURL() string {
if x != nil {
return x.ActionURL
if x != nil && x.ActionURL != nil {
return *x.ActionURL
}
return ""
}
func (x *ExtendedContentMessage_CTA) GetNativeURL() string {
if x != nil {
return x.NativeURL
if x != nil && x.NativeURL != nil {
return *x.NativeURL
}
return ""
}
func (x *ExtendedContentMessage_CTA) GetCtaType() string {
if x != nil {
return x.CtaType
if x != nil && x.CtaType != nil {
return *x.CtaType
}
return ""
}
func (x *ExtendedContentMessage_CTA) GetActionContentBlob() string {
if x != nil && x.ActionContentBlob != nil {
return *x.ActionContentBlob
}
return ""
}
@@ -706,7 +772,7 @@ func file_waArmadilloXMA_WAArmadilloXMA_proto_rawDescGZIP() []byte {
var file_waArmadilloXMA_WAArmadilloXMA_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_waArmadilloXMA_WAArmadilloXMA_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_waArmadilloXMA_WAArmadilloXMA_proto_goTypes = []interface{}{
var file_waArmadilloXMA_WAArmadilloXMA_proto_goTypes = []any{
(ExtendedContentMessage_OverlayIconGlyph)(0), // 0: WAArmadilloXMA.ExtendedContentMessage.OverlayIconGlyph
(ExtendedContentMessage_CtaButtonType)(0), // 1: WAArmadilloXMA.ExtendedContentMessage.CtaButtonType
(ExtendedContentMessage_XmaLayoutType)(0), // 2: WAArmadilloXMA.ExtendedContentMessage.XmaLayoutType
@@ -738,7 +804,7 @@ func file_waArmadilloXMA_WAArmadilloXMA_proto_init() {
return
}
if !protoimpl.UnsafeEnabled {
file_waArmadilloXMA_WAArmadilloXMA_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_waArmadilloXMA_WAArmadilloXMA_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*ExtendedContentMessage); i {
case 0:
return &v.state
@@ -750,7 +816,7 @@ func file_waArmadilloXMA_WAArmadilloXMA_proto_init() {
return nil
}
}
file_waArmadilloXMA_WAArmadilloXMA_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_waArmadilloXMA_WAArmadilloXMA_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*ExtendedContentMessage_CTA); i {
case 0:
return &v.state

View File

@@ -1,6 +1,6 @@
syntax = "proto3";
syntax = "proto2";
package WAArmadilloXMA;
option go_package = "go.mau.fi/whatsmeow/binary/armadillo/waArmadilloXMA";
option go_package = "go.mau.fi/whatsmeow/proto/waArmadilloXMA";
import "waCommon/WACommon.proto";
@@ -19,19 +19,19 @@ message ExtendedContentMessage {
}
enum CtaButtonType {
CTABUTTONTYPE_UNKNOWN = 0;
OPEN_NATIVE = 11;
}
enum XmaLayoutType {
SINGLE = 0;
HSCROLL = 1;
PORTRAIT = 3;
STANDARD_DXMA = 12;
LIST_DXMA = 15;
GRID = 16;
}
enum ExtendedContentType {
EXTENDEDCONTENTTYPE_UNKNOWN = 0;
IG_STORY_PHOTO_MENTION = 4;
IG_SINGLE_IMAGE_POST_SHARE = 9;
IG_MULTIPOST_SHARE = 10;
@@ -73,6 +73,12 @@ message ExtendedContentMessage {
MSG_GEN_AI_SEARCH_PLUGIN_RESPONSE = 2008;
MSG_REELS_LIST = 2009;
MSG_CONTACT = 2010;
MSG_THREADS_POST_SHARE = 2011;
MSG_FILE = 2012;
MSG_AVATAR_DETAILS = 2013;
MSG_AI_CONTACT = 2014;
MSG_MEMORIES_SHARE = 2015;
MSG_SHARED_ALBUM_REPLY = 2016;
RTC_AUDIO_CALL = 3000;
RTC_VIDEO_CALL = 3001;
RTC_MISSED_AUDIO_CALL = 3002;
@@ -85,34 +91,35 @@ message ExtendedContentMessage {
}
message CTA {
CtaButtonType buttonType = 1;
string title = 2;
string actionURL = 3;
string nativeURL = 4;
string ctaType = 5;
optional CtaButtonType buttonType = 1;
optional string title = 2;
optional string actionURL = 3;
optional string nativeURL = 4;
optional string ctaType = 5;
optional string actionContentBlob = 6;
}
WACommon.SubProtocol associatedMessage = 1;
ExtendedContentType targetType = 2;
string targetUsername = 3;
string targetID = 4;
int64 targetExpiringAtSec = 5;
XmaLayoutType xmaLayoutType = 6;
optional WACommon.SubProtocol associatedMessage = 1;
optional ExtendedContentType targetType = 2;
optional string targetUsername = 3;
optional string targetID = 4;
optional int64 targetExpiringAtSec = 5;
optional XmaLayoutType xmaLayoutType = 6;
repeated CTA ctas = 7;
repeated WACommon.SubProtocol previews = 8;
string titleText = 9;
string subtitleText = 10;
uint32 maxTitleNumOfLines = 11;
uint32 maxSubtitleNumOfLines = 12;
WACommon.SubProtocol favicon = 13;
WACommon.SubProtocol headerImage = 14;
string headerTitle = 15;
OverlayIconGlyph overlayIconGlyph = 16;
string overlayTitle = 17;
string overlayDescription = 18;
string sentWithMessageID = 19;
string messageText = 20;
string headerSubtitle = 21;
string xmaDataclass = 22;
string contentRef = 23;
optional string titleText = 9;
optional string subtitleText = 10;
optional uint32 maxTitleNumOfLines = 11;
optional uint32 maxSubtitleNumOfLines = 12;
optional WACommon.SubProtocol favicon = 13;
optional WACommon.SubProtocol headerImage = 14;
optional string headerTitle = 15;
optional OverlayIconGlyph overlayIconGlyph = 16;
optional string overlayTitle = 17;
optional string overlayDescription = 18;
optional string sentWithMessageID = 19;
optional string messageText = 20;
optional string headerSubtitle = 21;
optional string xmaDataclass = 22;
optional string contentRef = 23;
}

469
vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.go generated vendored Normal file
View File

@@ -0,0 +1,469 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waCert/WACert.proto
package waCert
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 NoiseCertificate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Details []byte `protobuf:"bytes,1,opt,name=details" json:"details,omitempty"`
Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
}
func (x *NoiseCertificate) Reset() {
*x = NoiseCertificate{}
if protoimpl.UnsafeEnabled {
mi := &file_waCert_WACert_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NoiseCertificate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NoiseCertificate) ProtoMessage() {}
func (x *NoiseCertificate) ProtoReflect() protoreflect.Message {
mi := &file_waCert_WACert_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NoiseCertificate.ProtoReflect.Descriptor instead.
func (*NoiseCertificate) Descriptor() ([]byte, []int) {
return file_waCert_WACert_proto_rawDescGZIP(), []int{0}
}
func (x *NoiseCertificate) GetDetails() []byte {
if x != nil {
return x.Details
}
return nil
}
func (x *NoiseCertificate) GetSignature() []byte {
if x != nil {
return x.Signature
}
return nil
}
type CertChain struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Leaf *CertChain_NoiseCertificate `protobuf:"bytes,1,opt,name=leaf" json:"leaf,omitempty"`
Intermediate *CertChain_NoiseCertificate `protobuf:"bytes,2,opt,name=intermediate" json:"intermediate,omitempty"`
}
func (x *CertChain) Reset() {
*x = CertChain{}
if protoimpl.UnsafeEnabled {
mi := &file_waCert_WACert_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CertChain) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CertChain) ProtoMessage() {}
func (x *CertChain) ProtoReflect() protoreflect.Message {
mi := &file_waCert_WACert_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CertChain.ProtoReflect.Descriptor instead.
func (*CertChain) Descriptor() ([]byte, []int) {
return file_waCert_WACert_proto_rawDescGZIP(), []int{1}
}
func (x *CertChain) GetLeaf() *CertChain_NoiseCertificate {
if x != nil {
return x.Leaf
}
return nil
}
func (x *CertChain) GetIntermediate() *CertChain_NoiseCertificate {
if x != nil {
return x.Intermediate
}
return nil
}
type NoiseCertificate_Details struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Serial *uint32 `protobuf:"varint,1,opt,name=serial" json:"serial,omitempty"`
Issuer *string `protobuf:"bytes,2,opt,name=issuer" json:"issuer,omitempty"`
Expires *uint64 `protobuf:"varint,3,opt,name=expires" json:"expires,omitempty"`
Subject *string `protobuf:"bytes,4,opt,name=subject" json:"subject,omitempty"`
Key []byte `protobuf:"bytes,5,opt,name=key" json:"key,omitempty"`
}
func (x *NoiseCertificate_Details) Reset() {
*x = NoiseCertificate_Details{}
if protoimpl.UnsafeEnabled {
mi := &file_waCert_WACert_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NoiseCertificate_Details) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NoiseCertificate_Details) ProtoMessage() {}
func (x *NoiseCertificate_Details) ProtoReflect() protoreflect.Message {
mi := &file_waCert_WACert_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NoiseCertificate_Details.ProtoReflect.Descriptor instead.
func (*NoiseCertificate_Details) Descriptor() ([]byte, []int) {
return file_waCert_WACert_proto_rawDescGZIP(), []int{0, 0}
}
func (x *NoiseCertificate_Details) GetSerial() uint32 {
if x != nil && x.Serial != nil {
return *x.Serial
}
return 0
}
func (x *NoiseCertificate_Details) GetIssuer() string {
if x != nil && x.Issuer != nil {
return *x.Issuer
}
return ""
}
func (x *NoiseCertificate_Details) GetExpires() uint64 {
if x != nil && x.Expires != nil {
return *x.Expires
}
return 0
}
func (x *NoiseCertificate_Details) GetSubject() string {
if x != nil && x.Subject != nil {
return *x.Subject
}
return ""
}
func (x *NoiseCertificate_Details) GetKey() []byte {
if x != nil {
return x.Key
}
return nil
}
type CertChain_NoiseCertificate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Details []byte `protobuf:"bytes,1,opt,name=details" json:"details,omitempty"`
Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
}
func (x *CertChain_NoiseCertificate) Reset() {
*x = CertChain_NoiseCertificate{}
if protoimpl.UnsafeEnabled {
mi := &file_waCert_WACert_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CertChain_NoiseCertificate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CertChain_NoiseCertificate) ProtoMessage() {}
func (x *CertChain_NoiseCertificate) ProtoReflect() protoreflect.Message {
mi := &file_waCert_WACert_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CertChain_NoiseCertificate.ProtoReflect.Descriptor instead.
func (*CertChain_NoiseCertificate) Descriptor() ([]byte, []int) {
return file_waCert_WACert_proto_rawDescGZIP(), []int{1, 0}
}
func (x *CertChain_NoiseCertificate) GetDetails() []byte {
if x != nil {
return x.Details
}
return nil
}
func (x *CertChain_NoiseCertificate) GetSignature() []byte {
if x != nil {
return x.Signature
}
return nil
}
type CertChain_NoiseCertificate_Details struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Serial *uint32 `protobuf:"varint,1,opt,name=serial" json:"serial,omitempty"`
IssuerSerial *uint32 `protobuf:"varint,2,opt,name=issuerSerial" json:"issuerSerial,omitempty"`
Key []byte `protobuf:"bytes,3,opt,name=key" json:"key,omitempty"`
NotBefore *uint64 `protobuf:"varint,4,opt,name=notBefore" json:"notBefore,omitempty"`
NotAfter *uint64 `protobuf:"varint,5,opt,name=notAfter" json:"notAfter,omitempty"`
}
func (x *CertChain_NoiseCertificate_Details) Reset() {
*x = CertChain_NoiseCertificate_Details{}
if protoimpl.UnsafeEnabled {
mi := &file_waCert_WACert_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CertChain_NoiseCertificate_Details) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CertChain_NoiseCertificate_Details) ProtoMessage() {}
func (x *CertChain_NoiseCertificate_Details) ProtoReflect() protoreflect.Message {
mi := &file_waCert_WACert_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CertChain_NoiseCertificate_Details.ProtoReflect.Descriptor instead.
func (*CertChain_NoiseCertificate_Details) Descriptor() ([]byte, []int) {
return file_waCert_WACert_proto_rawDescGZIP(), []int{1, 0, 0}
}
func (x *CertChain_NoiseCertificate_Details) GetSerial() uint32 {
if x != nil && x.Serial != nil {
return *x.Serial
}
return 0
}
func (x *CertChain_NoiseCertificate_Details) GetIssuerSerial() uint32 {
if x != nil && x.IssuerSerial != nil {
return *x.IssuerSerial
}
return 0
}
func (x *CertChain_NoiseCertificate_Details) GetKey() []byte {
if x != nil {
return x.Key
}
return nil
}
func (x *CertChain_NoiseCertificate_Details) GetNotBefore() uint64 {
if x != nil && x.NotBefore != nil {
return *x.NotBefore
}
return 0
}
func (x *CertChain_NoiseCertificate_Details) GetNotAfter() uint64 {
if x != nil && x.NotAfter != nil {
return *x.NotAfter
}
return 0
}
var File_waCert_WACert_proto protoreflect.FileDescriptor
//go:embed WACert.pb.raw
var file_waCert_WACert_proto_rawDesc []byte
var (
file_waCert_WACert_proto_rawDescOnce sync.Once
file_waCert_WACert_proto_rawDescData = file_waCert_WACert_proto_rawDesc
)
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)
})
return file_waCert_WACert_proto_rawDescData
}
var file_waCert_WACert_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_waCert_WACert_proto_goTypes = []any{
(*NoiseCertificate)(nil), // 0: WACert.NoiseCertificate
(*CertChain)(nil), // 1: WACert.CertChain
(*NoiseCertificate_Details)(nil), // 2: WACert.NoiseCertificate.Details
(*CertChain_NoiseCertificate)(nil), // 3: WACert.CertChain.NoiseCertificate
(*CertChain_NoiseCertificate_Details)(nil), // 4: WACert.CertChain.NoiseCertificate.Details
}
var file_waCert_WACert_proto_depIdxs = []int32{
3, // 0: WACert.CertChain.leaf:type_name -> WACert.CertChain.NoiseCertificate
3, // 1: WACert.CertChain.intermediate:type_name -> WACert.CertChain.NoiseCertificate
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_waCert_WACert_proto_init() }
func file_waCert_WACert_proto_init() {
if File_waCert_WACert_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waCert_WACert_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*NoiseCertificate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCert_WACert_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*CertChain); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCert_WACert_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*NoiseCertificate_Details); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCert_WACert_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*CertChain_NoiseCertificate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCert_WACert_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*CertChain_NoiseCertificate_Details); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waCert_WACert_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waCert_WACert_proto_goTypes,
DependencyIndexes: file_waCert_WACert_proto_depIdxs,
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
}

23
vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.raw generated vendored Normal file
View File

@@ -0,0 +1,23 @@
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

View File

@@ -0,0 +1,34 @@
syntax = "proto2";
package WACert;
option go_package = "go.mau.fi/whatsmeow/proto/waCert";
message NoiseCertificate {
message Details {
optional uint32 serial = 1;
optional string issuer = 2;
optional uint64 expires = 3;
optional string subject = 4;
optional bytes key = 5;
}
optional bytes details = 1;
optional bytes signature = 2;
}
message CertChain {
message NoiseCertificate {
message Details {
optional uint32 serial = 1;
optional uint32 issuerSerial = 2;
optional bytes key = 3;
optional uint64 notBefore = 4;
optional uint64 notAfter = 5;
}
optional bytes details = 1;
optional bytes signature = 2;
}
optional NoiseCertificate leaf = 1;
optional NoiseCertificate intermediate = 2;
}

View File

@@ -0,0 +1,150 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waChatLockSettings/WAProtobufsChatLockSettings.proto
package waChatLockSettings
import (
reflect "reflect"
sync "sync"
waUserPassword "go.mau.fi/whatsmeow/proto/waUserPassword"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 ChatLockSettings struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
HideLockedChats *bool `protobuf:"varint,1,opt,name=hideLockedChats" json:"hideLockedChats,omitempty"`
SecretCode *waUserPassword.UserPassword `protobuf:"bytes,2,opt,name=secretCode" json:"secretCode,omitempty"`
}
func (x *ChatLockSettings) Reset() {
*x = ChatLockSettings{}
if protoimpl.UnsafeEnabled {
mi := &file_waChatLockSettings_WAProtobufsChatLockSettings_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChatLockSettings) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChatLockSettings) ProtoMessage() {}
func (x *ChatLockSettings) ProtoReflect() protoreflect.Message {
mi := &file_waChatLockSettings_WAProtobufsChatLockSettings_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChatLockSettings.ProtoReflect.Descriptor instead.
func (*ChatLockSettings) Descriptor() ([]byte, []int) {
return file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescGZIP(), []int{0}
}
func (x *ChatLockSettings) GetHideLockedChats() bool {
if x != nil && x.HideLockedChats != nil {
return *x.HideLockedChats
}
return false
}
func (x *ChatLockSettings) GetSecretCode() *waUserPassword.UserPassword {
if x != nil {
return x.SecretCode
}
return nil
}
var File_waChatLockSettings_WAProtobufsChatLockSettings_proto protoreflect.FileDescriptor
//go:embed WAProtobufsChatLockSettings.pb.raw
var file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc []byte
var (
file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescOnce sync.Once
file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData = file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc
)
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)
})
return file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData
}
var file_waChatLockSettings_WAProtobufsChatLockSettings_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_waChatLockSettings_WAProtobufsChatLockSettings_proto_goTypes = []any{
(*ChatLockSettings)(nil), // 0: WAProtobufsChatLockSettings.ChatLockSettings
(*waUserPassword.UserPassword)(nil), // 1: WAProtobufsUserPassword.UserPassword
}
var file_waChatLockSettings_WAProtobufsChatLockSettings_proto_depIdxs = []int32{
1, // 0: WAProtobufsChatLockSettings.ChatLockSettings.secretCode:type_name -> WAProtobufsUserPassword.UserPassword
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_waChatLockSettings_WAProtobufsChatLockSettings_proto_init() }
func file_waChatLockSettings_WAProtobufsChatLockSettings_proto_init() {
if File_waChatLockSettings_WAProtobufsChatLockSettings_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waChatLockSettings_WAProtobufsChatLockSettings_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*ChatLockSettings); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waChatLockSettings_WAProtobufsChatLockSettings_proto_goTypes,
DependencyIndexes: file_waChatLockSettings_WAProtobufsChatLockSettings_proto_depIdxs,
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
}

View File

@@ -0,0 +1,7 @@
4waChatLockSettings/WAProtobufsChatLockSettings.protoWAProtobufsChatLockSettings,waUserPassword/WAProtobufsUserPassword.proto"ƒ
ChatLockSettings(
hideLockedChats (RhideLockedChatsE
secretCode ( 2%.WAProtobufsUserPassword.UserPasswordR
secretCodeB.Z,go.mau.fi/whatsmeow/proto/waChatLockSettings

View File

@@ -0,0 +1,10 @@
syntax = "proto2";
package WAProtobufsChatLockSettings;
option go_package = "go.mau.fi/whatsmeow/proto/waChatLockSettings";
import "waUserPassword/WAProtobufsUserPassword.proto";
message ChatLockSettings {
optional bool hideLockedChats = 1;
optional WAProtobufsUserPassword.UserPassword secretCode = 2;
}

View File

@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waCommon/WACommon.proto
@@ -67,6 +67,16 @@ func (x FutureProofBehavior) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *FutureProofBehavior) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = FutureProofBehavior(num)
return nil
}
// Deprecated: Use FutureProofBehavior.Descriptor instead.
func (FutureProofBehavior) EnumDescriptor() ([]byte, []int) {
return file_waCommon_WACommon_proto_rawDescGZIP(), []int{0}
@@ -75,25 +85,25 @@ func (FutureProofBehavior) EnumDescriptor() ([]byte, []int) {
type Command_CommandType int32
const (
Command_COMMANDTYPE_UNKNOWN Command_CommandType = 0
Command_EVERYONE Command_CommandType = 1
Command_SILENT Command_CommandType = 2
Command_AI Command_CommandType = 3
Command_EVERYONE Command_CommandType = 1
Command_SILENT Command_CommandType = 2
Command_AI Command_CommandType = 3
Command_AI_IMAGINE Command_CommandType = 4
)
// Enum value maps for Command_CommandType.
var (
Command_CommandType_name = map[int32]string{
0: "COMMANDTYPE_UNKNOWN",
1: "EVERYONE",
2: "SILENT",
3: "AI",
4: "AI_IMAGINE",
}
Command_CommandType_value = map[string]int32{
"COMMANDTYPE_UNKNOWN": 0,
"EVERYONE": 1,
"SILENT": 2,
"AI": 3,
"EVERYONE": 1,
"SILENT": 2,
"AI": 3,
"AI_IMAGINE": 4,
}
)
@@ -119,6 +129,16 @@ func (x Command_CommandType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *Command_CommandType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = Command_CommandType(num)
return nil
}
// Deprecated: Use Command_CommandType.Descriptor instead.
func (Command_CommandType) EnumDescriptor() ([]byte, []int) {
return file_waCommon_WACommon_proto_rawDescGZIP(), []int{1, 0}
@@ -129,10 +149,10 @@ type MessageKey struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RemoteJID string `protobuf:"bytes,1,opt,name=remoteJID,proto3" json:"remoteJID,omitempty"`
FromMe bool `protobuf:"varint,2,opt,name=fromMe,proto3" json:"fromMe,omitempty"`
ID string `protobuf:"bytes,3,opt,name=ID,proto3" json:"ID,omitempty"`
Participant string `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"`
RemoteJID *string `protobuf:"bytes,1,opt,name=remoteJID" json:"remoteJID,omitempty"`
FromMe *bool `protobuf:"varint,2,opt,name=fromMe" json:"fromMe,omitempty"`
ID *string `protobuf:"bytes,3,opt,name=ID" json:"ID,omitempty"`
Participant *string `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"`
}
func (x *MessageKey) Reset() {
@@ -168,29 +188,29 @@ func (*MessageKey) Descriptor() ([]byte, []int) {
}
func (x *MessageKey) GetRemoteJID() string {
if x != nil {
return x.RemoteJID
if x != nil && x.RemoteJID != nil {
return *x.RemoteJID
}
return ""
}
func (x *MessageKey) GetFromMe() bool {
if x != nil {
return x.FromMe
if x != nil && x.FromMe != nil {
return *x.FromMe
}
return false
}
func (x *MessageKey) GetID() string {
if x != nil {
return x.ID
if x != nil && x.ID != nil {
return *x.ID
}
return ""
}
func (x *MessageKey) GetParticipant() string {
if x != nil {
return x.Participant
if x != nil && x.Participant != nil {
return *x.Participant
}
return ""
}
@@ -200,10 +220,10 @@ type Command struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CommandType Command_CommandType `protobuf:"varint,1,opt,name=commandType,proto3,enum=WACommon.Command_CommandType" json:"commandType,omitempty"`
Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
Length uint32 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"`
ValidationToken string `protobuf:"bytes,4,opt,name=validationToken,proto3" json:"validationToken,omitempty"`
CommandType *Command_CommandType `protobuf:"varint,1,opt,name=commandType,enum=WACommon.Command_CommandType" json:"commandType,omitempty"`
Offset *uint32 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
Length *uint32 `protobuf:"varint,3,opt,name=length" json:"length,omitempty"`
ValidationToken *string `protobuf:"bytes,4,opt,name=validationToken" json:"validationToken,omitempty"`
}
func (x *Command) Reset() {
@@ -239,29 +259,29 @@ func (*Command) Descriptor() ([]byte, []int) {
}
func (x *Command) GetCommandType() Command_CommandType {
if x != nil {
return x.CommandType
if x != nil && x.CommandType != nil {
return *x.CommandType
}
return Command_COMMANDTYPE_UNKNOWN
return Command_EVERYONE
}
func (x *Command) GetOffset() uint32 {
if x != nil {
return x.Offset
if x != nil && x.Offset != nil {
return *x.Offset
}
return 0
}
func (x *Command) GetLength() uint32 {
if x != nil {
return x.Length
if x != nil && x.Length != nil {
return *x.Length
}
return 0
}
func (x *Command) GetValidationToken() string {
if x != nil {
return x.ValidationToken
if x != nil && x.ValidationToken != nil {
return *x.ValidationToken
}
return ""
}
@@ -271,9 +291,9 @@ type MessageText struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
MentionedJID []string `protobuf:"bytes,2,rep,name=mentionedJID,proto3" json:"mentionedJID,omitempty"`
Commands []*Command `protobuf:"bytes,3,rep,name=commands,proto3" json:"commands,omitempty"`
Text *string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
MentionedJID []string `protobuf:"bytes,2,rep,name=mentionedJID" json:"mentionedJID,omitempty"`
Commands []*Command `protobuf:"bytes,3,rep,name=commands" json:"commands,omitempty"`
}
func (x *MessageText) Reset() {
@@ -309,8 +329,8 @@ func (*MessageText) Descriptor() ([]byte, []int) {
}
func (x *MessageText) GetText() string {
if x != nil {
return x.Text
if x != nil && x.Text != nil {
return *x.Text
}
return ""
}
@@ -334,8 +354,8 @@ type SubProtocol struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
Payload []byte `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"`
Version *int32 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"`
}
func (x *SubProtocol) Reset() {
@@ -378,8 +398,8 @@ func (x *SubProtocol) GetPayload() []byte {
}
func (x *SubProtocol) GetVersion() int32 {
if x != nil {
return x.Version
if x != nil && x.Version != nil {
return *x.Version
}
return 0
}
@@ -403,7 +423,7 @@ func file_waCommon_WACommon_proto_rawDescGZIP() []byte {
var file_waCommon_WACommon_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_waCommon_WACommon_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_waCommon_WACommon_proto_goTypes = []interface{}{
var file_waCommon_WACommon_proto_goTypes = []any{
(FutureProofBehavior)(0), // 0: WACommon.FutureProofBehavior
(Command_CommandType)(0), // 1: WACommon.Command.CommandType
(*MessageKey)(nil), // 2: WACommon.MessageKey
@@ -427,7 +447,7 @@ func file_waCommon_WACommon_proto_init() {
return
}
if !protoimpl.UnsafeEnabled {
file_waCommon_WACommon_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_waCommon_WACommon_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*MessageKey); i {
case 0:
return &v.state
@@ -439,7 +459,7 @@ func file_waCommon_WACommon_proto_init() {
return nil
}
}
file_waCommon_WACommon_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_waCommon_WACommon_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*Command); i {
case 0:
return &v.state
@@ -451,7 +471,7 @@ func file_waCommon_WACommon_proto_init() {
return nil
}
}
file_waCommon_WACommon_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_waCommon_WACommon_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*MessageText); i {
case 0:
return &v.state
@@ -463,7 +483,7 @@ func file_waCommon_WACommon_proto_init() {
return nil
}
}
file_waCommon_WACommon_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_waCommon_WACommon_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*SubProtocol); i {
case 0:
return &v.state

View File

@@ -0,0 +1,41 @@
syntax = "proto2";
package WACommon;
option go_package = "go.mau.fi/whatsmeow/proto/waCommon";
enum FutureProofBehavior {
PLACEHOLDER = 0;
NO_PLACEHOLDER = 1;
IGNORE = 2;
}
message MessageKey {
optional string remoteJID = 1;
optional bool fromMe = 2;
optional string ID = 3;
optional string participant = 4;
}
message Command {
enum CommandType {
EVERYONE = 1;
SILENT = 2;
AI = 3;
AI_IMAGINE = 4;
}
optional CommandType commandType = 1;
optional uint32 offset = 2;
optional uint32 length = 3;
optional string validationToken = 4;
}
message MessageText {
optional string text = 1;
repeated string mentionedJID = 2;
repeated Command commands = 3;
}
message SubProtocol {
optional bytes payload = 1;
optional int32 version = 2;
}

View File

@@ -0,0 +1,11 @@
package waCommon
// Deprecated: Use GetID
func (x *MessageKey) GetId() string {
return x.GetID()
}
// Deprecated: Use GetRemoteJID
func (x *MessageKey) GetRemoteJid() string {
return x.GetRemoteJID()
}

View File

@@ -0,0 +1,804 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waCompanionReg/WAWebProtobufsCompanionReg.proto
package waCompanionReg
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 DeviceProps_PlatformType int32
const (
DeviceProps_UNKNOWN DeviceProps_PlatformType = 0
DeviceProps_CHROME DeviceProps_PlatformType = 1
DeviceProps_FIREFOX DeviceProps_PlatformType = 2
DeviceProps_IE DeviceProps_PlatformType = 3
DeviceProps_OPERA DeviceProps_PlatformType = 4
DeviceProps_SAFARI DeviceProps_PlatformType = 5
DeviceProps_EDGE DeviceProps_PlatformType = 6
DeviceProps_DESKTOP DeviceProps_PlatformType = 7
DeviceProps_IPAD DeviceProps_PlatformType = 8
DeviceProps_ANDROID_TABLET DeviceProps_PlatformType = 9
DeviceProps_OHANA DeviceProps_PlatformType = 10
DeviceProps_ALOHA DeviceProps_PlatformType = 11
DeviceProps_CATALINA DeviceProps_PlatformType = 12
DeviceProps_TCL_TV DeviceProps_PlatformType = 13
DeviceProps_IOS_PHONE DeviceProps_PlatformType = 14
DeviceProps_IOS_CATALYST DeviceProps_PlatformType = 15
DeviceProps_ANDROID_PHONE DeviceProps_PlatformType = 16
DeviceProps_ANDROID_AMBIGUOUS DeviceProps_PlatformType = 17
DeviceProps_WEAR_OS DeviceProps_PlatformType = 18
DeviceProps_AR_WRIST DeviceProps_PlatformType = 19
DeviceProps_AR_DEVICE DeviceProps_PlatformType = 20
DeviceProps_UWP DeviceProps_PlatformType = 21
DeviceProps_VR DeviceProps_PlatformType = 22
DeviceProps_CLOUD_API DeviceProps_PlatformType = 23
)
// Enum value maps for DeviceProps_PlatformType.
var (
DeviceProps_PlatformType_name = map[int32]string{
0: "UNKNOWN",
1: "CHROME",
2: "FIREFOX",
3: "IE",
4: "OPERA",
5: "SAFARI",
6: "EDGE",
7: "DESKTOP",
8: "IPAD",
9: "ANDROID_TABLET",
10: "OHANA",
11: "ALOHA",
12: "CATALINA",
13: "TCL_TV",
14: "IOS_PHONE",
15: "IOS_CATALYST",
16: "ANDROID_PHONE",
17: "ANDROID_AMBIGUOUS",
18: "WEAR_OS",
19: "AR_WRIST",
20: "AR_DEVICE",
21: "UWP",
22: "VR",
23: "CLOUD_API",
}
DeviceProps_PlatformType_value = map[string]int32{
"UNKNOWN": 0,
"CHROME": 1,
"FIREFOX": 2,
"IE": 3,
"OPERA": 4,
"SAFARI": 5,
"EDGE": 6,
"DESKTOP": 7,
"IPAD": 8,
"ANDROID_TABLET": 9,
"OHANA": 10,
"ALOHA": 11,
"CATALINA": 12,
"TCL_TV": 13,
"IOS_PHONE": 14,
"IOS_CATALYST": 15,
"ANDROID_PHONE": 16,
"ANDROID_AMBIGUOUS": 17,
"WEAR_OS": 18,
"AR_WRIST": 19,
"AR_DEVICE": 20,
"UWP": 21,
"VR": 22,
"CLOUD_API": 23,
}
)
func (x DeviceProps_PlatformType) Enum() *DeviceProps_PlatformType {
p := new(DeviceProps_PlatformType)
*p = x
return p
}
func (x DeviceProps_PlatformType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (DeviceProps_PlatformType) Descriptor() protoreflect.EnumDescriptor {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_enumTypes[0].Descriptor()
}
func (DeviceProps_PlatformType) Type() protoreflect.EnumType {
return &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_enumTypes[0]
}
func (x DeviceProps_PlatformType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *DeviceProps_PlatformType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = DeviceProps_PlatformType(num)
return nil
}
// Deprecated: Use DeviceProps_PlatformType.Descriptor instead.
func (DeviceProps_PlatformType) EnumDescriptor() ([]byte, []int) {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP(), []int{0, 0}
}
type DeviceProps struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Os *string `protobuf:"bytes,1,opt,name=os" json:"os,omitempty"`
Version *DeviceProps_AppVersion `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
PlatformType *DeviceProps_PlatformType `protobuf:"varint,3,opt,name=platformType,enum=WAWebProtobufsCompanionReg.DeviceProps_PlatformType" json:"platformType,omitempty"`
RequireFullSync *bool `protobuf:"varint,4,opt,name=requireFullSync" json:"requireFullSync,omitempty"`
HistorySyncConfig *DeviceProps_HistorySyncConfig `protobuf:"bytes,5,opt,name=historySyncConfig" json:"historySyncConfig,omitempty"`
}
func (x *DeviceProps) Reset() {
*x = DeviceProps{}
if protoimpl.UnsafeEnabled {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceProps) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeviceProps) ProtoMessage() {}
func (x *DeviceProps) ProtoReflect() protoreflect.Message {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeviceProps.ProtoReflect.Descriptor instead.
func (*DeviceProps) Descriptor() ([]byte, []int) {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP(), []int{0}
}
func (x *DeviceProps) GetOs() string {
if x != nil && x.Os != nil {
return *x.Os
}
return ""
}
func (x *DeviceProps) GetVersion() *DeviceProps_AppVersion {
if x != nil {
return x.Version
}
return nil
}
func (x *DeviceProps) GetPlatformType() DeviceProps_PlatformType {
if x != nil && x.PlatformType != nil {
return *x.PlatformType
}
return DeviceProps_UNKNOWN
}
func (x *DeviceProps) GetRequireFullSync() bool {
if x != nil && x.RequireFullSync != nil {
return *x.RequireFullSync
}
return false
}
func (x *DeviceProps) GetHistorySyncConfig() *DeviceProps_HistorySyncConfig {
if x != nil {
return x.HistorySyncConfig
}
return nil
}
type CompanionEphemeralIdentity struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PublicKey []byte `protobuf:"bytes,1,opt,name=publicKey" json:"publicKey,omitempty"`
DeviceType *DeviceProps_PlatformType `protobuf:"varint,2,opt,name=deviceType,enum=WAWebProtobufsCompanionReg.DeviceProps_PlatformType" json:"deviceType,omitempty"`
Ref *string `protobuf:"bytes,3,opt,name=ref" json:"ref,omitempty"`
}
func (x *CompanionEphemeralIdentity) Reset() {
*x = CompanionEphemeralIdentity{}
if protoimpl.UnsafeEnabled {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CompanionEphemeralIdentity) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CompanionEphemeralIdentity) ProtoMessage() {}
func (x *CompanionEphemeralIdentity) ProtoReflect() protoreflect.Message {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CompanionEphemeralIdentity.ProtoReflect.Descriptor instead.
func (*CompanionEphemeralIdentity) Descriptor() ([]byte, []int) {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP(), []int{1}
}
func (x *CompanionEphemeralIdentity) GetPublicKey() []byte {
if x != nil {
return x.PublicKey
}
return nil
}
func (x *CompanionEphemeralIdentity) GetDeviceType() DeviceProps_PlatformType {
if x != nil && x.DeviceType != nil {
return *x.DeviceType
}
return DeviceProps_UNKNOWN
}
func (x *CompanionEphemeralIdentity) GetRef() string {
if x != nil && x.Ref != nil {
return *x.Ref
}
return ""
}
type PrimaryEphemeralIdentity struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PublicKey []byte `protobuf:"bytes,1,opt,name=publicKey" json:"publicKey,omitempty"`
}
func (x *PrimaryEphemeralIdentity) Reset() {
*x = PrimaryEphemeralIdentity{}
if protoimpl.UnsafeEnabled {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PrimaryEphemeralIdentity) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PrimaryEphemeralIdentity) ProtoMessage() {}
func (x *PrimaryEphemeralIdentity) ProtoReflect() protoreflect.Message {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PrimaryEphemeralIdentity.ProtoReflect.Descriptor instead.
func (*PrimaryEphemeralIdentity) Descriptor() ([]byte, []int) {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP(), []int{2}
}
func (x *PrimaryEphemeralIdentity) GetPublicKey() []byte {
if x != nil {
return x.PublicKey
}
return nil
}
type EncryptedPairingRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
EncryptedPayload []byte `protobuf:"bytes,1,opt,name=encryptedPayload" json:"encryptedPayload,omitempty"`
IV []byte `protobuf:"bytes,2,opt,name=IV" json:"IV,omitempty"`
}
func (x *EncryptedPairingRequest) Reset() {
*x = EncryptedPairingRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EncryptedPairingRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EncryptedPairingRequest) ProtoMessage() {}
func (x *EncryptedPairingRequest) ProtoReflect() protoreflect.Message {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EncryptedPairingRequest.ProtoReflect.Descriptor instead.
func (*EncryptedPairingRequest) Descriptor() ([]byte, []int) {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP(), []int{3}
}
func (x *EncryptedPairingRequest) GetEncryptedPayload() []byte {
if x != nil {
return x.EncryptedPayload
}
return nil
}
func (x *EncryptedPairingRequest) GetIV() []byte {
if x != nil {
return x.IV
}
return nil
}
type ClientPairingProps struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
IsChatDbLidMigrated *bool `protobuf:"varint,1,opt,name=isChatDbLidMigrated" json:"isChatDbLidMigrated,omitempty"`
}
func (x *ClientPairingProps) Reset() {
*x = ClientPairingProps{}
if protoimpl.UnsafeEnabled {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClientPairingProps) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClientPairingProps) ProtoMessage() {}
func (x *ClientPairingProps) ProtoReflect() protoreflect.Message {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClientPairingProps.ProtoReflect.Descriptor instead.
func (*ClientPairingProps) Descriptor() ([]byte, []int) {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP(), []int{4}
}
func (x *ClientPairingProps) GetIsChatDbLidMigrated() bool {
if x != nil && x.IsChatDbLidMigrated != nil {
return *x.IsChatDbLidMigrated
}
return false
}
type DeviceProps_HistorySyncConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FullSyncDaysLimit *uint32 `protobuf:"varint,1,opt,name=fullSyncDaysLimit" json:"fullSyncDaysLimit,omitempty"`
FullSyncSizeMbLimit *uint32 `protobuf:"varint,2,opt,name=fullSyncSizeMbLimit" json:"fullSyncSizeMbLimit,omitempty"`
StorageQuotaMb *uint32 `protobuf:"varint,3,opt,name=storageQuotaMb" json:"storageQuotaMb,omitempty"`
InlineInitialPayloadInE2EeMsg *bool `protobuf:"varint,4,opt,name=inlineInitialPayloadInE2EeMsg" json:"inlineInitialPayloadInE2EeMsg,omitempty"`
RecentSyncDaysLimit *uint32 `protobuf:"varint,5,opt,name=recentSyncDaysLimit" json:"recentSyncDaysLimit,omitempty"`
SupportCallLogHistory *bool `protobuf:"varint,6,opt,name=supportCallLogHistory" json:"supportCallLogHistory,omitempty"`
SupportBotUserAgentChatHistory *bool `protobuf:"varint,7,opt,name=supportBotUserAgentChatHistory" json:"supportBotUserAgentChatHistory,omitempty"`
SupportCagReactionsAndPolls *bool `protobuf:"varint,8,opt,name=supportCagReactionsAndPolls" json:"supportCagReactionsAndPolls,omitempty"`
SupportBizHostedMsg *bool `protobuf:"varint,9,opt,name=supportBizHostedMsg" json:"supportBizHostedMsg,omitempty"`
SupportRecentSyncChunkMessageCountTuning *bool `protobuf:"varint,10,opt,name=supportRecentSyncChunkMessageCountTuning" json:"supportRecentSyncChunkMessageCountTuning,omitempty"`
SupportHostedGroupMsg *bool `protobuf:"varint,11,opt,name=supportHostedGroupMsg" json:"supportHostedGroupMsg,omitempty"`
SupportFbidBotChatHistory *bool `protobuf:"varint,12,opt,name=supportFbidBotChatHistory" json:"supportFbidBotChatHistory,omitempty"`
}
func (x *DeviceProps_HistorySyncConfig) Reset() {
*x = DeviceProps_HistorySyncConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceProps_HistorySyncConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeviceProps_HistorySyncConfig) ProtoMessage() {}
func (x *DeviceProps_HistorySyncConfig) ProtoReflect() protoreflect.Message {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeviceProps_HistorySyncConfig.ProtoReflect.Descriptor instead.
func (*DeviceProps_HistorySyncConfig) Descriptor() ([]byte, []int) {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP(), []int{0, 0}
}
func (x *DeviceProps_HistorySyncConfig) GetFullSyncDaysLimit() uint32 {
if x != nil && x.FullSyncDaysLimit != nil {
return *x.FullSyncDaysLimit
}
return 0
}
func (x *DeviceProps_HistorySyncConfig) GetFullSyncSizeMbLimit() uint32 {
if x != nil && x.FullSyncSizeMbLimit != nil {
return *x.FullSyncSizeMbLimit
}
return 0
}
func (x *DeviceProps_HistorySyncConfig) GetStorageQuotaMb() uint32 {
if x != nil && x.StorageQuotaMb != nil {
return *x.StorageQuotaMb
}
return 0
}
func (x *DeviceProps_HistorySyncConfig) GetInlineInitialPayloadInE2EeMsg() bool {
if x != nil && x.InlineInitialPayloadInE2EeMsg != nil {
return *x.InlineInitialPayloadInE2EeMsg
}
return false
}
func (x *DeviceProps_HistorySyncConfig) GetRecentSyncDaysLimit() uint32 {
if x != nil && x.RecentSyncDaysLimit != nil {
return *x.RecentSyncDaysLimit
}
return 0
}
func (x *DeviceProps_HistorySyncConfig) GetSupportCallLogHistory() bool {
if x != nil && x.SupportCallLogHistory != nil {
return *x.SupportCallLogHistory
}
return false
}
func (x *DeviceProps_HistorySyncConfig) GetSupportBotUserAgentChatHistory() bool {
if x != nil && x.SupportBotUserAgentChatHistory != nil {
return *x.SupportBotUserAgentChatHistory
}
return false
}
func (x *DeviceProps_HistorySyncConfig) GetSupportCagReactionsAndPolls() bool {
if x != nil && x.SupportCagReactionsAndPolls != nil {
return *x.SupportCagReactionsAndPolls
}
return false
}
func (x *DeviceProps_HistorySyncConfig) GetSupportBizHostedMsg() bool {
if x != nil && x.SupportBizHostedMsg != nil {
return *x.SupportBizHostedMsg
}
return false
}
func (x *DeviceProps_HistorySyncConfig) GetSupportRecentSyncChunkMessageCountTuning() bool {
if x != nil && x.SupportRecentSyncChunkMessageCountTuning != nil {
return *x.SupportRecentSyncChunkMessageCountTuning
}
return false
}
func (x *DeviceProps_HistorySyncConfig) GetSupportHostedGroupMsg() bool {
if x != nil && x.SupportHostedGroupMsg != nil {
return *x.SupportHostedGroupMsg
}
return false
}
func (x *DeviceProps_HistorySyncConfig) GetSupportFbidBotChatHistory() bool {
if x != nil && x.SupportFbidBotChatHistory != nil {
return *x.SupportFbidBotChatHistory
}
return false
}
type DeviceProps_AppVersion struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Primary *uint32 `protobuf:"varint,1,opt,name=primary" json:"primary,omitempty"`
Secondary *uint32 `protobuf:"varint,2,opt,name=secondary" json:"secondary,omitempty"`
Tertiary *uint32 `protobuf:"varint,3,opt,name=tertiary" json:"tertiary,omitempty"`
Quaternary *uint32 `protobuf:"varint,4,opt,name=quaternary" json:"quaternary,omitempty"`
Quinary *uint32 `protobuf:"varint,5,opt,name=quinary" json:"quinary,omitempty"`
}
func (x *DeviceProps_AppVersion) Reset() {
*x = DeviceProps_AppVersion{}
if protoimpl.UnsafeEnabled {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceProps_AppVersion) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeviceProps_AppVersion) ProtoMessage() {}
func (x *DeviceProps_AppVersion) ProtoReflect() protoreflect.Message {
mi := &file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeviceProps_AppVersion.ProtoReflect.Descriptor instead.
func (*DeviceProps_AppVersion) Descriptor() ([]byte, []int) {
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP(), []int{0, 1}
}
func (x *DeviceProps_AppVersion) GetPrimary() uint32 {
if x != nil && x.Primary != nil {
return *x.Primary
}
return 0
}
func (x *DeviceProps_AppVersion) GetSecondary() uint32 {
if x != nil && x.Secondary != nil {
return *x.Secondary
}
return 0
}
func (x *DeviceProps_AppVersion) GetTertiary() uint32 {
if x != nil && x.Tertiary != nil {
return *x.Tertiary
}
return 0
}
func (x *DeviceProps_AppVersion) GetQuaternary() uint32 {
if x != nil && x.Quaternary != nil {
return *x.Quaternary
}
return 0
}
func (x *DeviceProps_AppVersion) GetQuinary() uint32 {
if x != nil && x.Quinary != nil {
return *x.Quinary
}
return 0
}
var File_waCompanionReg_WAWebProtobufsCompanionReg_proto protoreflect.FileDescriptor
//go:embed WAWebProtobufsCompanionReg.pb.raw
var file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDesc []byte
var (
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescOnce sync.Once
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescData = file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDesc
)
func file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescGZIP() []byte {
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescOnce.Do(func() {
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescData = protoimpl.X.CompressGZIP(file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescData)
})
return file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDescData
}
var file_waCompanionReg_WAWebProtobufsCompanionReg_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_waCompanionReg_WAWebProtobufsCompanionReg_proto_goTypes = []any{
(DeviceProps_PlatformType)(0), // 0: WAWebProtobufsCompanionReg.DeviceProps.PlatformType
(*DeviceProps)(nil), // 1: WAWebProtobufsCompanionReg.DeviceProps
(*CompanionEphemeralIdentity)(nil), // 2: WAWebProtobufsCompanionReg.CompanionEphemeralIdentity
(*PrimaryEphemeralIdentity)(nil), // 3: WAWebProtobufsCompanionReg.PrimaryEphemeralIdentity
(*EncryptedPairingRequest)(nil), // 4: WAWebProtobufsCompanionReg.EncryptedPairingRequest
(*ClientPairingProps)(nil), // 5: WAWebProtobufsCompanionReg.ClientPairingProps
(*DeviceProps_HistorySyncConfig)(nil), // 6: WAWebProtobufsCompanionReg.DeviceProps.HistorySyncConfig
(*DeviceProps_AppVersion)(nil), // 7: WAWebProtobufsCompanionReg.DeviceProps.AppVersion
}
var file_waCompanionReg_WAWebProtobufsCompanionReg_proto_depIdxs = []int32{
7, // 0: WAWebProtobufsCompanionReg.DeviceProps.version:type_name -> WAWebProtobufsCompanionReg.DeviceProps.AppVersion
0, // 1: WAWebProtobufsCompanionReg.DeviceProps.platformType:type_name -> WAWebProtobufsCompanionReg.DeviceProps.PlatformType
6, // 2: WAWebProtobufsCompanionReg.DeviceProps.historySyncConfig:type_name -> WAWebProtobufsCompanionReg.DeviceProps.HistorySyncConfig
0, // 3: WAWebProtobufsCompanionReg.CompanionEphemeralIdentity.deviceType:type_name -> WAWebProtobufsCompanionReg.DeviceProps.PlatformType
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
}
func init() { file_waCompanionReg_WAWebProtobufsCompanionReg_proto_init() }
func file_waCompanionReg_WAWebProtobufsCompanionReg_proto_init() {
if File_waCompanionReg_WAWebProtobufsCompanionReg_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*DeviceProps); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*CompanionEphemeralIdentity); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*PrimaryEphemeralIdentity); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*EncryptedPairingRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*ClientPairingProps); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[5].Exporter = func(v any, i int) any {
switch v := v.(*DeviceProps_HistorySyncConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes[6].Exporter = func(v any, i int) any {
switch v := v.(*DeviceProps_AppVersion); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDesc,
NumEnums: 1,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waCompanionReg_WAWebProtobufsCompanionReg_proto_goTypes,
DependencyIndexes: file_waCompanionReg_WAWebProtobufsCompanionReg_proto_depIdxs,
EnumInfos: file_waCompanionReg_WAWebProtobufsCompanionReg_proto_enumTypes,
MessageInfos: file_waCompanionReg_WAWebProtobufsCompanionReg_proto_msgTypes,
}.Build()
File_waCompanionReg_WAWebProtobufsCompanionReg_proto = out.File
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_rawDesc = nil
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_goTypes = nil
file_waCompanionReg_WAWebProtobufsCompanionReg_proto_depIdxs = nil
}

Binary file not shown.

View File

@@ -0,0 +1,80 @@
syntax = "proto2";
package WAWebProtobufsCompanionReg;
option go_package = "go.mau.fi/whatsmeow/proto/waCompanionReg";
message DeviceProps {
enum PlatformType {
UNKNOWN = 0;
CHROME = 1;
FIREFOX = 2;
IE = 3;
OPERA = 4;
SAFARI = 5;
EDGE = 6;
DESKTOP = 7;
IPAD = 8;
ANDROID_TABLET = 9;
OHANA = 10;
ALOHA = 11;
CATALINA = 12;
TCL_TV = 13;
IOS_PHONE = 14;
IOS_CATALYST = 15;
ANDROID_PHONE = 16;
ANDROID_AMBIGUOUS = 17;
WEAR_OS = 18;
AR_WRIST = 19;
AR_DEVICE = 20;
UWP = 21;
VR = 22;
CLOUD_API = 23;
}
message HistorySyncConfig {
optional uint32 fullSyncDaysLimit = 1;
optional uint32 fullSyncSizeMbLimit = 2;
optional uint32 storageQuotaMb = 3;
optional bool inlineInitialPayloadInE2EeMsg = 4;
optional uint32 recentSyncDaysLimit = 5;
optional bool supportCallLogHistory = 6;
optional bool supportBotUserAgentChatHistory = 7;
optional bool supportCagReactionsAndPolls = 8;
optional bool supportBizHostedMsg = 9;
optional bool supportRecentSyncChunkMessageCountTuning = 10;
optional bool supportHostedGroupMsg = 11;
optional bool supportFbidBotChatHistory = 12;
}
message AppVersion {
optional uint32 primary = 1;
optional uint32 secondary = 2;
optional uint32 tertiary = 3;
optional uint32 quaternary = 4;
optional uint32 quinary = 5;
}
optional string os = 1;
optional AppVersion version = 2;
optional PlatformType platformType = 3;
optional bool requireFullSync = 4;
optional HistorySyncConfig historySyncConfig = 5;
}
message CompanionEphemeralIdentity {
optional bytes publicKey = 1;
optional DeviceProps.PlatformType deviceType = 2;
optional string ref = 3;
}
message PrimaryEphemeralIdentity {
optional bytes publicKey = 1;
}
message EncryptedPairingRequest {
optional bytes encryptedPayload = 1;
optional bytes IV = 2;
}
message ClientPairingProps {
optional bool isChatDbLidMigrated = 1;
}

View File

@@ -0,0 +1,233 @@
syntax = "proto2";
package WAConsumerApplication;
option go_package = "go.mau.fi/whatsmeow/proto/waConsumerApplication";
import "waCommon/WACommon.proto";
message ConsumerApplication {
message Payload {
oneof payload {
Content content = 1;
ApplicationData applicationData = 2;
Signal signal = 3;
SubProtocolPayload subProtocol = 4;
}
}
message SubProtocolPayload {
optional WACommon.FutureProofBehavior futureProof = 1;
}
message Metadata {
enum SpecialTextSize {
SMALL = 1;
MEDIUM = 2;
LARGE = 3;
}
optional SpecialTextSize specialTextSize = 1;
}
message Signal {
}
message ApplicationData {
oneof applicationContent {
RevokeMessage revoke = 1;
}
}
message Content {
oneof content {
WACommon.MessageText messageText = 1;
ImageMessage imageMessage = 2;
ContactMessage contactMessage = 3;
LocationMessage locationMessage = 4;
ExtendedTextMessage extendedTextMessage = 5;
StatusTextMesage statusTextMessage = 6;
DocumentMessage documentMessage = 7;
AudioMessage audioMessage = 8;
VideoMessage videoMessage = 9;
ContactsArrayMessage contactsArrayMessage = 10;
LiveLocationMessage liveLocationMessage = 11;
StickerMessage stickerMessage = 12;
GroupInviteMessage groupInviteMessage = 13;
ViewOnceMessage viewOnceMessage = 14;
ReactionMessage reactionMessage = 16;
PollCreationMessage pollCreationMessage = 17;
PollUpdateMessage pollUpdateMessage = 18;
EditMessage editMessage = 19;
}
}
message EditMessage {
optional WACommon.MessageKey key = 1;
optional WACommon.MessageText message = 2;
optional int64 timestampMS = 3;
}
message PollAddOptionMessage {
repeated Option pollOption = 1;
}
message PollVoteMessage {
repeated bytes selectedOptions = 1;
optional int64 senderTimestampMS = 2;
}
message PollEncValue {
optional bytes encPayload = 1;
optional bytes encIV = 2;
}
message PollUpdateMessage {
optional WACommon.MessageKey pollCreationMessageKey = 1;
optional PollEncValue vote = 2;
optional PollEncValue addOption = 3;
}
message PollCreationMessage {
optional bytes encKey = 1;
optional string name = 2;
repeated Option options = 3;
optional uint32 selectableOptionsCount = 4;
}
message Option {
optional string optionName = 1;
}
message ReactionMessage {
optional WACommon.MessageKey key = 1;
optional string text = 2;
optional string groupingKey = 3;
optional int64 senderTimestampMS = 4;
optional string reactionMetadataDataclassData = 5;
optional int32 style = 6;
}
message RevokeMessage {
optional WACommon.MessageKey key = 1;
}
message ViewOnceMessage {
oneof viewOnceContent {
ImageMessage imageMessage = 1;
VideoMessage videoMessage = 2;
}
}
message GroupInviteMessage {
optional string groupJID = 1;
optional string inviteCode = 2;
optional int64 inviteExpiration = 3;
optional string groupName = 4;
optional bytes JPEGThumbnail = 5;
optional WACommon.MessageText caption = 6;
}
message LiveLocationMessage {
optional Location location = 1;
optional uint32 accuracyInMeters = 2;
optional float speedInMps = 3;
optional uint32 degreesClockwiseFromMagneticNorth = 4;
optional WACommon.MessageText caption = 5;
optional int64 sequenceNumber = 6;
optional uint32 timeOffset = 7;
}
message ContactsArrayMessage {
optional string displayName = 1;
repeated ContactMessage contacts = 2;
}
message ContactMessage {
optional WACommon.SubProtocol contact = 1;
}
message StatusTextMesage {
enum FontType {
SANS_SERIF = 0;
SERIF = 1;
NORICAN_REGULAR = 2;
BRYNDAN_WRITE = 3;
BEBASNEUE_REGULAR = 4;
OSWALD_HEAVY = 5;
}
optional ExtendedTextMessage text = 1;
optional fixed32 textArgb = 6;
optional fixed32 backgroundArgb = 7;
optional FontType font = 8;
}
message ExtendedTextMessage {
enum PreviewType {
NONE = 0;
VIDEO = 1;
}
optional WACommon.MessageText text = 1;
optional string matchedText = 2;
optional string canonicalURL = 3;
optional string description = 4;
optional string title = 5;
optional WACommon.SubProtocol thumbnail = 6;
optional PreviewType previewType = 7;
}
message LocationMessage {
optional Location location = 1;
optional string address = 2;
}
message StickerMessage {
optional WACommon.SubProtocol sticker = 1;
}
message DocumentMessage {
optional WACommon.SubProtocol document = 1;
optional string fileName = 2;
}
message VideoMessage {
optional WACommon.SubProtocol video = 1;
optional WACommon.MessageText caption = 2;
}
message AudioMessage {
optional WACommon.SubProtocol audio = 1;
optional bool PTT = 2;
}
message ImageMessage {
optional WACommon.SubProtocol image = 1;
optional WACommon.MessageText caption = 2;
}
message InteractiveAnnotation {
oneof action {
Location location = 2;
}
repeated Point polygonVertices = 1;
}
message Point {
optional double x = 1;
optional double y = 2;
}
message Location {
optional double degreesLatitude = 1;
optional double degreesLongitude = 2;
optional string name = 3;
}
message MediaPayload {
optional WACommon.SubProtocol protocol = 1;
}
optional Payload payload = 1;
optional Metadata metadata = 2;
}

View File

@@ -1,8 +1,8 @@
package waConsumerApplication
import (
"go.mau.fi/whatsmeow/binary/armadillo/armadilloutil"
"go.mau.fi/whatsmeow/binary/armadillo/waMediaTransport"
"go.mau.fi/whatsmeow/proto/armadilloutil"
"go.mau.fi/whatsmeow/proto/waMediaTransport"
)
type ConsumerApplication_Content_Content = isConsumerApplication_Content_Content

View File

@@ -0,0 +1,202 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto
package waDeviceCapabilities
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 DeviceCapabilities_ChatLockSupportLevel int32
const (
DeviceCapabilities_NONE DeviceCapabilities_ChatLockSupportLevel = 0
DeviceCapabilities_MINIMAL DeviceCapabilities_ChatLockSupportLevel = 1
DeviceCapabilities_FULL DeviceCapabilities_ChatLockSupportLevel = 2
)
// Enum value maps for DeviceCapabilities_ChatLockSupportLevel.
var (
DeviceCapabilities_ChatLockSupportLevel_name = map[int32]string{
0: "NONE",
1: "MINIMAL",
2: "FULL",
}
DeviceCapabilities_ChatLockSupportLevel_value = map[string]int32{
"NONE": 0,
"MINIMAL": 1,
"FULL": 2,
}
)
func (x DeviceCapabilities_ChatLockSupportLevel) Enum() *DeviceCapabilities_ChatLockSupportLevel {
p := new(DeviceCapabilities_ChatLockSupportLevel)
*p = x
return p
}
func (x DeviceCapabilities_ChatLockSupportLevel) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (DeviceCapabilities_ChatLockSupportLevel) Descriptor() protoreflect.EnumDescriptor {
return file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_enumTypes[0].Descriptor()
}
func (DeviceCapabilities_ChatLockSupportLevel) Type() protoreflect.EnumType {
return &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_enumTypes[0]
}
func (x DeviceCapabilities_ChatLockSupportLevel) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *DeviceCapabilities_ChatLockSupportLevel) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = DeviceCapabilities_ChatLockSupportLevel(num)
return nil
}
// Deprecated: Use DeviceCapabilities_ChatLockSupportLevel.Descriptor instead.
func (DeviceCapabilities_ChatLockSupportLevel) EnumDescriptor() ([]byte, []int) {
return file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 0}
}
type DeviceCapabilities struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChatLockSupportLevel *DeviceCapabilities_ChatLockSupportLevel `protobuf:"varint,1,opt,name=chatLockSupportLevel,enum=WAProtobufsDeviceCapabilities.DeviceCapabilities_ChatLockSupportLevel" json:"chatLockSupportLevel,omitempty"`
}
func (x *DeviceCapabilities) Reset() {
*x = DeviceCapabilities{}
if protoimpl.UnsafeEnabled {
mi := &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceCapabilities) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeviceCapabilities) ProtoMessage() {}
func (x *DeviceCapabilities) ProtoReflect() protoreflect.Message {
mi := &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeviceCapabilities.ProtoReflect.Descriptor instead.
func (*DeviceCapabilities) Descriptor() ([]byte, []int) {
return file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0}
}
func (x *DeviceCapabilities) GetChatLockSupportLevel() DeviceCapabilities_ChatLockSupportLevel {
if x != nil && x.ChatLockSupportLevel != nil {
return *x.ChatLockSupportLevel
}
return DeviceCapabilities_NONE
}
var File_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto protoreflect.FileDescriptor
//go:embed WAProtobufsDeviceCapabilities.pb.raw
var file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc []byte
var (
file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescOnce sync.Once
file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData = file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc
)
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)
})
return file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData
}
var file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_goTypes = []any{
(DeviceCapabilities_ChatLockSupportLevel)(0), // 0: WAProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevel
(*DeviceCapabilities)(nil), // 1: WAProtobufsDeviceCapabilities.DeviceCapabilities
}
var file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_depIdxs = []int32{
0, // 0: WAProtobufsDeviceCapabilities.DeviceCapabilities.chatLockSupportLevel:type_name -> WAProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevel
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_init() }
func file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_init() {
if File_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*DeviceCapabilities); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc,
NumEnums: 1,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_goTypes,
DependencyIndexes: file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_depIdxs,
EnumInfos: file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_enumTypes,
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
}

View File

@@ -0,0 +1,13 @@
syntax = "proto2";
package WAProtobufsDeviceCapabilities;
option go_package = "go.mau.fi/whatsmeow/proto/waDeviceCapabilities";
message DeviceCapabilities {
enum ChatLockSupportLevel {
NONE = 0;
MINIMAL = 1;
FULL = 2;
}
optional ChatLockSupportLevel chatLockSupportLevel = 1;
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,31 @@
package waE2E
// Deprecated: Use GetKeyID
func (x *AppStateSyncKey) GetKeyId() *AppStateSyncKeyId {
return x.GetKeyID()
}
// Deprecated: Use GetKeyID
func (x *AppStateSyncKeyId) GetKeyId() []byte {
return x.GetKeyID()
}
// Deprecated: Use GetStanzaID
func (x *PeerDataOperationRequestResponseMessage) GetStanzaId() string {
return x.GetStanzaID()
}
// Deprecated: Use GetMentionedJID
func (x *ContextInfo) GetMentionedJid() []string {
return x.GetMentionedJID()
}
// Deprecated: Use GetRemoteJID
func (x *ContextInfo) GetRemoteJid() string {
return x.GetRemoteJID()
}
// Deprecated: Use GetStanzaID
func (x *ContextInfo) GetStanzaId() string {
return x.GetStanzaID()
}

View File

@@ -0,0 +1,147 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waEphemeral/WAWebProtobufsEphemeral.proto
package waEphemeral
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 EphemeralSetting struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Duration *int32 `protobuf:"fixed32,1,opt,name=duration" json:"duration,omitempty"`
Timestamp *int64 `protobuf:"fixed64,2,opt,name=timestamp" json:"timestamp,omitempty"`
}
func (x *EphemeralSetting) Reset() {
*x = EphemeralSetting{}
if protoimpl.UnsafeEnabled {
mi := &file_waEphemeral_WAWebProtobufsEphemeral_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EphemeralSetting) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EphemeralSetting) ProtoMessage() {}
func (x *EphemeralSetting) ProtoReflect() protoreflect.Message {
mi := &file_waEphemeral_WAWebProtobufsEphemeral_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EphemeralSetting.ProtoReflect.Descriptor instead.
func (*EphemeralSetting) Descriptor() ([]byte, []int) {
return file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescGZIP(), []int{0}
}
func (x *EphemeralSetting) GetDuration() int32 {
if x != nil && x.Duration != nil {
return *x.Duration
}
return 0
}
func (x *EphemeralSetting) GetTimestamp() int64 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
var File_waEphemeral_WAWebProtobufsEphemeral_proto protoreflect.FileDescriptor
//go:embed WAWebProtobufsEphemeral.pb.raw
var file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc []byte
var (
file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescOnce sync.Once
file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescData = file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc
)
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)
})
return file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDescData
}
var file_waEphemeral_WAWebProtobufsEphemeral_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_waEphemeral_WAWebProtobufsEphemeral_proto_goTypes = []any{
(*EphemeralSetting)(nil), // 0: WAWebProtobufsEphemeral.EphemeralSetting
}
var file_waEphemeral_WAWebProtobufsEphemeral_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_waEphemeral_WAWebProtobufsEphemeral_proto_init() }
func file_waEphemeral_WAWebProtobufsEphemeral_proto_init() {
if File_waEphemeral_WAWebProtobufsEphemeral_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waEphemeral_WAWebProtobufsEphemeral_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*EphemeralSetting); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waEphemeral_WAWebProtobufsEphemeral_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waEphemeral_WAWebProtobufsEphemeral_proto_goTypes,
DependencyIndexes: file_waEphemeral_WAWebProtobufsEphemeral_proto_depIdxs,
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
}

View File

@@ -0,0 +1,5 @@
)waEphemeral/WAWebProtobufsEphemeral.protoWAWebProtobufsEphemeral"L
EphemeralSetting
duration (Rduration
timestamp (R timestampB'Z%go.mau.fi/whatsmeow/proto/waEphemeral

View File

@@ -0,0 +1,8 @@
syntax = "proto2";
package WAWebProtobufsEphemeral;
option go_package = "go.mau.fi/whatsmeow/proto/waEphemeral";
message EphemeralSetting {
optional sfixed32 duration = 1;
optional sfixed64 timestamp = 2;
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,215 @@
syntax = "proto2";
package WAWebProtobufsHistorySync;
option go_package = "go.mau.fi/whatsmeow/proto/waHistorySync";
import "waSyncAction/WASyncAction.proto";
import "waChatLockSettings/WAProtobufsChatLockSettings.proto";
import "waE2E/WAWebProtobufsE2E.proto";
import "waWeb/WAWebProtobufsWeb.proto";
enum MediaVisibility {
DEFAULT = 0;
OFF = 1;
ON = 2;
}
enum PrivacySystemMessage {
E2EE_MSG = 1;
NE2EE_SELF = 2;
NE2EE_OTHER = 3;
}
message HistorySync {
enum BotAIWaitListState {
IN_WAITLIST = 0;
AI_AVAILABLE = 1;
}
enum HistorySyncType {
INITIAL_BOOTSTRAP = 0;
INITIAL_STATUS_V3 = 1;
FULL = 2;
RECENT = 3;
PUSH_NAME = 4;
NON_BLOCKING_DATA = 5;
ON_DEMAND = 6;
}
required HistorySyncType syncType = 1;
repeated Conversation conversations = 2;
repeated WAWebProtobufsWeb.WebMessageInfo statusV3Messages = 3;
optional uint32 chunkOrder = 5;
optional uint32 progress = 6;
repeated Pushname pushnames = 7;
optional GlobalSettings globalSettings = 8;
optional bytes threadIDUserSecret = 9;
optional uint32 threadDsTimeframeOffset = 10;
repeated StickerMetadata recentStickers = 11;
repeated PastParticipants pastParticipants = 12;
repeated WASyncAction.CallLogRecord callLogRecords = 13;
optional BotAIWaitListState aiWaitListState = 14;
repeated PhoneNumberToLIDMapping phoneNumberToLidMappings = 15;
optional string companionMetaNonce = 16;
}
message Conversation {
enum EndOfHistoryTransferType {
COMPLETE_BUT_MORE_MESSAGES_REMAIN_ON_PRIMARY = 0;
COMPLETE_AND_NO_MORE_MESSAGE_REMAIN_ON_PRIMARY = 1;
COMPLETE_ON_DEMAND_SYNC_BUT_MORE_MSG_REMAIN_ON_PRIMARY = 2;
}
required string ID = 1;
repeated HistorySyncMsg messages = 2;
optional string newJID = 3;
optional string oldJID = 4;
optional uint64 lastMsgTimestamp = 5;
optional uint32 unreadCount = 6;
optional bool readOnly = 7;
optional bool endOfHistoryTransfer = 8;
optional uint32 ephemeralExpiration = 9;
optional int64 ephemeralSettingTimestamp = 10;
optional EndOfHistoryTransferType endOfHistoryTransferType = 11;
optional uint64 conversationTimestamp = 12;
optional string name = 13;
optional string pHash = 14;
optional bool notSpam = 15;
optional bool archived = 16;
optional WAWebProtobufsE2E.DisappearingMode disappearingMode = 17;
optional uint32 unreadMentionCount = 18;
optional bool markedAsUnread = 19;
repeated GroupParticipant participant = 20;
optional bytes tcToken = 21;
optional uint64 tcTokenTimestamp = 22;
optional bytes contactPrimaryIdentityKey = 23;
optional uint32 pinned = 24;
optional uint64 muteEndTime = 25;
optional WallpaperSettings wallpaper = 26;
optional MediaVisibility mediaVisibility = 27;
optional uint64 tcTokenSenderTimestamp = 28;
optional bool suspended = 29;
optional bool terminated = 30;
optional uint64 createdAt = 31;
optional string createdBy = 32;
optional string description = 33;
optional bool support = 34;
optional bool isParentGroup = 35;
optional string parentGroupID = 37;
optional bool isDefaultSubgroup = 36;
optional string displayName = 38;
optional string pnJID = 39;
optional bool shareOwnPn = 40;
optional bool pnhDuplicateLidThread = 41;
optional string lidJID = 42;
optional string username = 43;
optional string lidOriginType = 44;
optional uint32 commentsCount = 45;
optional bool locked = 46;
optional PrivacySystemMessage systemMessageToInsert = 47;
optional bool capiCreatedGroup = 48;
}
message GroupParticipant {
enum Rank {
REGULAR = 0;
ADMIN = 1;
SUPERADMIN = 2;
}
required string userJID = 1;
optional Rank rank = 2;
}
message PastParticipant {
enum LeaveReason {
LEFT = 0;
REMOVED = 1;
}
optional string userJID = 1;
optional LeaveReason leaveReason = 2;
optional uint64 leaveTS = 3;
}
message PhoneNumberToLIDMapping {
optional string pnJID = 1;
optional string lidJID = 2;
}
message HistorySyncMsg {
optional WAWebProtobufsWeb.WebMessageInfo message = 1;
optional uint64 msgOrderID = 2;
}
message Pushname {
optional string ID = 1;
optional string pushname = 2;
}
message WallpaperSettings {
optional string filename = 1;
optional uint32 opacity = 2;
}
message GlobalSettings {
optional WallpaperSettings lightThemeWallpaper = 1;
optional MediaVisibility mediaVisibility = 2;
optional WallpaperSettings darkThemeWallpaper = 3;
optional AutoDownloadSettings autoDownloadWiFi = 4;
optional AutoDownloadSettings autoDownloadCellular = 5;
optional AutoDownloadSettings autoDownloadRoaming = 6;
optional bool showIndividualNotificationsPreview = 7;
optional bool showGroupNotificationsPreview = 8;
optional int32 disappearingModeDuration = 9;
optional int64 disappearingModeTimestamp = 10;
optional AvatarUserSettings avatarUserSettings = 11;
optional int32 fontSize = 12;
optional bool securityNotifications = 13;
optional bool autoUnarchiveChats = 14;
optional int32 videoQualityMode = 15;
optional int32 photoQualityMode = 16;
optional NotificationSettings individualNotificationSettings = 17;
optional NotificationSettings groupNotificationSettings = 18;
optional WAProtobufsChatLockSettings.ChatLockSettings chatLockSettings = 19;
}
message AutoDownloadSettings {
optional bool downloadImages = 1;
optional bool downloadAudio = 2;
optional bool downloadVideo = 3;
optional bool downloadDocuments = 4;
}
message StickerMetadata {
optional string URL = 1;
optional bytes fileSHA256 = 2;
optional bytes fileEncSHA256 = 3;
optional bytes mediaKey = 4;
optional string mimetype = 5;
optional uint32 height = 6;
optional uint32 width = 7;
optional string directPath = 8;
optional uint64 fileLength = 9;
optional float weight = 10;
optional int64 lastStickerSentTS = 11;
optional bool isLottie = 12;
}
message PastParticipants {
optional string groupJID = 1;
repeated PastParticipant pastParticipants = 2;
}
message AvatarUserSettings {
optional string FBID = 1;
optional string password = 2;
}
message NotificationSettings {
optional string messageVibrate = 1;
optional string messagePopup = 2;
optional string messageLight = 3;
optional bool lowPriorityNotifications = 4;
optional bool reactionsMuted = 5;
optional string callVibrate = 6;
}

View File

@@ -0,0 +1,11 @@
package waHistorySync
// Deprecated: Use GetID
func (x *Conversation) GetId() string {
return x.GetID()
}
// Deprecated: Use GetID
func (x *Pushname) GetId() string {
return x.GetID()
}

View File

@@ -0,0 +1,186 @@
syntax = "proto2";
package WAMediaTransport;
option go_package = "go.mau.fi/whatsmeow/proto/waMediaTransport";
import "waCommon/WACommon.proto";
message WAMediaTransport {
message Ancillary {
message Thumbnail {
message DownloadableThumbnail {
optional bytes fileSHA256 = 1;
optional bytes fileEncSHA256 = 2;
optional string directPath = 3;
optional bytes mediaKey = 4;
optional int64 mediaKeyTimestamp = 5;
optional string objectID = 6;
optional bytes thumbnailScansSidecar = 7;
repeated uint32 thumbnailScanLengths = 8;
}
optional bytes JPEGThumbnail = 1;
optional DownloadableThumbnail downloadableThumbnail = 2;
optional uint32 thumbnailWidth = 3;
optional uint32 thumbnailHeight = 4;
}
optional uint64 fileLength = 1;
optional string mimetype = 2;
optional Thumbnail thumbnail = 3;
optional string objectID = 4;
}
message Integral {
optional bytes fileSHA256 = 1;
optional bytes mediaKey = 2;
optional bytes fileEncSHA256 = 3;
optional string directPath = 4;
optional int64 mediaKeyTimestamp = 5;
}
optional Integral integral = 1;
optional Ancillary ancillary = 2;
}
message ImageTransport {
message Ancillary {
enum HdType {
NONE = 0;
LQ_4K = 1;
HQ_4K = 2;
}
optional uint32 height = 1;
optional uint32 width = 2;
optional bytes scansSidecar = 3;
repeated uint32 scanLengths = 4;
optional bytes midQualityFileSHA256 = 5;
optional HdType hdType = 6;
}
message Integral {
optional WAMediaTransport transport = 1;
}
optional Integral integral = 1;
optional Ancillary ancillary = 2;
}
message VideoTransport {
message Ancillary {
enum Attribution {
NONE = 0;
GIPHY = 1;
TENOR = 2;
}
optional uint32 seconds = 1;
optional WACommon.MessageText caption = 2;
optional bool gifPlayback = 3;
optional uint32 height = 4;
optional uint32 width = 5;
optional bytes sidecar = 6;
optional Attribution gifAttribution = 7;
}
message Integral {
optional WAMediaTransport transport = 1;
}
optional Integral integral = 1;
optional Ancillary ancillary = 2;
}
message AudioTransport {
message Ancillary {
message AvatarAudio {
enum AnimationsType {
TALKING_A = 0;
IDLE_A = 1;
TALKING_B = 2;
IDLE_B = 3;
BACKGROUND = 4;
}
message DownloadableAvatarAnimations {
optional bytes fileSHA256 = 1;
optional bytes fileEncSHA256 = 2;
optional string directPath = 3;
optional bytes mediaKey = 4;
optional int64 mediaKeyTimestamp = 5;
optional string objectID = 6;
optional AnimationsType animationsType = 7;
}
optional uint32 poseID = 1;
repeated DownloadableAvatarAnimations avatarAnimations = 2;
}
optional uint32 seconds = 1;
optional AvatarAudio avatarAudio = 2;
}
message Integral {
enum AudioFormat {
UNKNOWN = 0;
OPUS = 1;
}
optional WAMediaTransport transport = 1;
optional AudioFormat audioFormat = 2;
}
optional Integral integral = 1;
optional Ancillary ancillary = 2;
}
message DocumentTransport {
message Ancillary {
optional uint32 pageCount = 1;
}
message Integral {
optional WAMediaTransport transport = 1;
}
optional Integral integral = 1;
optional Ancillary ancillary = 2;
}
message StickerTransport {
message Ancillary {
optional uint32 pageCount = 1;
optional uint32 height = 2;
optional uint32 width = 3;
optional uint32 firstFrameLength = 4;
optional bytes firstFrameSidecar = 5;
optional string mustacheText = 6;
optional bool isThirdParty = 7;
optional string receiverFetchID = 8;
}
message Integral {
optional WAMediaTransport transport = 1;
optional bool isAnimated = 2;
optional string receiverFetchID = 3;
}
optional Integral integral = 1;
optional Ancillary ancillary = 2;
}
message ContactTransport {
message Ancillary {
optional string displayName = 1;
}
message Integral {
oneof contact {
string vcard = 1;
WAMediaTransport downloadableVcard = 2;
}
}
optional Integral integral = 1;
optional Ancillary ancillary = 2;
}

View File

@@ -0,0 +1,281 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waMmsRetry/WAMmsRetry.proto
package waMmsRetry
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 MediaRetryNotification_ResultType int32
const (
MediaRetryNotification_GENERAL_ERROR MediaRetryNotification_ResultType = 0
MediaRetryNotification_SUCCESS MediaRetryNotification_ResultType = 1
MediaRetryNotification_NOT_FOUND MediaRetryNotification_ResultType = 2
MediaRetryNotification_DECRYPTION_ERROR MediaRetryNotification_ResultType = 3
)
// Enum value maps for MediaRetryNotification_ResultType.
var (
MediaRetryNotification_ResultType_name = map[int32]string{
0: "GENERAL_ERROR",
1: "SUCCESS",
2: "NOT_FOUND",
3: "DECRYPTION_ERROR",
}
MediaRetryNotification_ResultType_value = map[string]int32{
"GENERAL_ERROR": 0,
"SUCCESS": 1,
"NOT_FOUND": 2,
"DECRYPTION_ERROR": 3,
}
)
func (x MediaRetryNotification_ResultType) Enum() *MediaRetryNotification_ResultType {
p := new(MediaRetryNotification_ResultType)
*p = x
return p
}
func (x MediaRetryNotification_ResultType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MediaRetryNotification_ResultType) Descriptor() protoreflect.EnumDescriptor {
return file_waMmsRetry_WAMmsRetry_proto_enumTypes[0].Descriptor()
}
func (MediaRetryNotification_ResultType) Type() protoreflect.EnumType {
return &file_waMmsRetry_WAMmsRetry_proto_enumTypes[0]
}
func (x MediaRetryNotification_ResultType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *MediaRetryNotification_ResultType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = MediaRetryNotification_ResultType(num)
return nil
}
// Deprecated: Use MediaRetryNotification_ResultType.Descriptor instead.
func (MediaRetryNotification_ResultType) EnumDescriptor() ([]byte, []int) {
return file_waMmsRetry_WAMmsRetry_proto_rawDescGZIP(), []int{0, 0}
}
type MediaRetryNotification struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StanzaID *string `protobuf:"bytes,1,opt,name=stanzaID" json:"stanzaID,omitempty"`
DirectPath *string `protobuf:"bytes,2,opt,name=directPath" json:"directPath,omitempty"`
Result *MediaRetryNotification_ResultType `protobuf:"varint,3,opt,name=result,enum=WAMmsRetry.MediaRetryNotification_ResultType" json:"result,omitempty"`
}
func (x *MediaRetryNotification) Reset() {
*x = MediaRetryNotification{}
if protoimpl.UnsafeEnabled {
mi := &file_waMmsRetry_WAMmsRetry_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MediaRetryNotification) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MediaRetryNotification) ProtoMessage() {}
func (x *MediaRetryNotification) ProtoReflect() protoreflect.Message {
mi := &file_waMmsRetry_WAMmsRetry_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MediaRetryNotification.ProtoReflect.Descriptor instead.
func (*MediaRetryNotification) Descriptor() ([]byte, []int) {
return file_waMmsRetry_WAMmsRetry_proto_rawDescGZIP(), []int{0}
}
func (x *MediaRetryNotification) GetStanzaID() string {
if x != nil && x.StanzaID != nil {
return *x.StanzaID
}
return ""
}
func (x *MediaRetryNotification) GetDirectPath() string {
if x != nil && x.DirectPath != nil {
return *x.DirectPath
}
return ""
}
func (x *MediaRetryNotification) GetResult() MediaRetryNotification_ResultType {
if x != nil && x.Result != nil {
return *x.Result
}
return MediaRetryNotification_GENERAL_ERROR
}
type ServerErrorReceipt struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StanzaID *string `protobuf:"bytes,1,opt,name=stanzaID" json:"stanzaID,omitempty"`
}
func (x *ServerErrorReceipt) Reset() {
*x = ServerErrorReceipt{}
if protoimpl.UnsafeEnabled {
mi := &file_waMmsRetry_WAMmsRetry_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ServerErrorReceipt) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ServerErrorReceipt) ProtoMessage() {}
func (x *ServerErrorReceipt) ProtoReflect() protoreflect.Message {
mi := &file_waMmsRetry_WAMmsRetry_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ServerErrorReceipt.ProtoReflect.Descriptor instead.
func (*ServerErrorReceipt) Descriptor() ([]byte, []int) {
return file_waMmsRetry_WAMmsRetry_proto_rawDescGZIP(), []int{1}
}
func (x *ServerErrorReceipt) GetStanzaID() string {
if x != nil && x.StanzaID != nil {
return *x.StanzaID
}
return ""
}
var File_waMmsRetry_WAMmsRetry_proto protoreflect.FileDescriptor
//go:embed WAMmsRetry.pb.raw
var file_waMmsRetry_WAMmsRetry_proto_rawDesc []byte
var (
file_waMmsRetry_WAMmsRetry_proto_rawDescOnce sync.Once
file_waMmsRetry_WAMmsRetry_proto_rawDescData = file_waMmsRetry_WAMmsRetry_proto_rawDesc
)
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)
})
return file_waMmsRetry_WAMmsRetry_proto_rawDescData
}
var file_waMmsRetry_WAMmsRetry_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_waMmsRetry_WAMmsRetry_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_waMmsRetry_WAMmsRetry_proto_goTypes = []any{
(MediaRetryNotification_ResultType)(0), // 0: WAMmsRetry.MediaRetryNotification.ResultType
(*MediaRetryNotification)(nil), // 1: WAMmsRetry.MediaRetryNotification
(*ServerErrorReceipt)(nil), // 2: WAMmsRetry.ServerErrorReceipt
}
var file_waMmsRetry_WAMmsRetry_proto_depIdxs = []int32{
0, // 0: WAMmsRetry.MediaRetryNotification.result:type_name -> WAMmsRetry.MediaRetryNotification.ResultType
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_waMmsRetry_WAMmsRetry_proto_init() }
func file_waMmsRetry_WAMmsRetry_proto_init() {
if File_waMmsRetry_WAMmsRetry_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waMmsRetry_WAMmsRetry_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*MediaRetryNotification); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waMmsRetry_WAMmsRetry_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*ServerErrorReceipt); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waMmsRetry_WAMmsRetry_proto_rawDesc,
NumEnums: 1,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waMmsRetry_WAMmsRetry_proto_goTypes,
DependencyIndexes: file_waMmsRetry_WAMmsRetry_proto_depIdxs,
EnumInfos: file_waMmsRetry_WAMmsRetry_proto_enumTypes,
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
}

Binary file not shown.

View File

@@ -0,0 +1,20 @@
syntax = "proto2";
package WAMmsRetry;
option go_package = "go.mau.fi/whatsmeow/proto/waMmsRetry";
message MediaRetryNotification {
enum ResultType {
GENERAL_ERROR = 0;
SUCCESS = 1;
NOT_FOUND = 2;
DECRYPTION_ERROR = 3;
}
optional string stanzaID = 1;
optional string directPath = 2;
optional ResultType result = 3;
}
message ServerErrorReceipt {
optional string stanzaID = 1;
}

View File

@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waMsgApplication/WAMsgApplication.proto
@@ -10,7 +10,7 @@ import (
reflect "reflect"
sync "sync"
waCommon "go.mau.fi/whatsmeow/binary/armadillo/waCommon"
waCommon "go.mau.fi/whatsmeow/proto/waCommon"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
@@ -68,6 +68,16 @@ func (x MessageApplication_Metadata_ThreadType) Number() protoreflect.EnumNumber
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *MessageApplication_Metadata_ThreadType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = MessageApplication_Metadata_ThreadType(num)
return nil
}
// Deprecated: Use MessageApplication_Metadata_ThreadType.Descriptor instead.
func (MessageApplication_Metadata_ThreadType) EnumDescriptor() ([]byte, []int) {
return file_waMsgApplication_WAMsgApplication_proto_rawDescGZIP(), []int{0, 0, 0}
@@ -78,8 +88,8 @@ type MessageApplication struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Payload *MessageApplication_Payload `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Metadata *MessageApplication_Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
Payload *MessageApplication_Payload `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"`
Metadata *MessageApplication_Metadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"`
}
func (x *MessageApplication) Reset() {
@@ -139,19 +149,19 @@ type MessageApplication_Metadata struct {
// *MessageApplication_Metadata_EphemeralSettingList
// *MessageApplication_Metadata_EphemeralSharedSecret
Ephemeral isMessageApplication_Metadata_Ephemeral `protobuf_oneof:"ephemeral"`
ForwardingScore uint32 `protobuf:"varint,5,opt,name=forwardingScore,proto3" json:"forwardingScore,omitempty"`
IsForwarded bool `protobuf:"varint,6,opt,name=isForwarded,proto3" json:"isForwarded,omitempty"`
BusinessMetadata *waCommon.SubProtocol `protobuf:"bytes,7,opt,name=businessMetadata,proto3" json:"businessMetadata,omitempty"`
FrankingKey []byte `protobuf:"bytes,8,opt,name=frankingKey,proto3" json:"frankingKey,omitempty"`
FrankingVersion int32 `protobuf:"varint,9,opt,name=frankingVersion,proto3" json:"frankingVersion,omitempty"`
QuotedMessage *MessageApplication_Metadata_QuotedMessage `protobuf:"bytes,10,opt,name=quotedMessage,proto3" json:"quotedMessage,omitempty"`
ThreadType MessageApplication_Metadata_ThreadType `protobuf:"varint,11,opt,name=threadType,proto3,enum=WAMsgApplication.MessageApplication_Metadata_ThreadType" json:"threadType,omitempty"`
ReadonlyMetadataDataclass string `protobuf:"bytes,12,opt,name=readonlyMetadataDataclass,proto3" json:"readonlyMetadataDataclass,omitempty"`
GroupID string `protobuf:"bytes,13,opt,name=groupID,proto3" json:"groupID,omitempty"`
GroupSize uint32 `protobuf:"varint,14,opt,name=groupSize,proto3" json:"groupSize,omitempty"`
GroupIndex uint32 `protobuf:"varint,15,opt,name=groupIndex,proto3" json:"groupIndex,omitempty"`
BotResponseID string `protobuf:"bytes,16,opt,name=botResponseID,proto3" json:"botResponseID,omitempty"`
CollapsibleID string `protobuf:"bytes,17,opt,name=collapsibleID,proto3" json:"collapsibleID,omitempty"`
ForwardingScore *uint32 `protobuf:"varint,5,opt,name=forwardingScore" json:"forwardingScore,omitempty"`
IsForwarded *bool `protobuf:"varint,6,opt,name=isForwarded" json:"isForwarded,omitempty"`
BusinessMetadata *waCommon.SubProtocol `protobuf:"bytes,7,opt,name=businessMetadata" json:"businessMetadata,omitempty"`
FrankingKey []byte `protobuf:"bytes,8,opt,name=frankingKey" json:"frankingKey,omitempty"`
FrankingVersion *int32 `protobuf:"varint,9,opt,name=frankingVersion" json:"frankingVersion,omitempty"`
QuotedMessage *MessageApplication_Metadata_QuotedMessage `protobuf:"bytes,10,opt,name=quotedMessage" json:"quotedMessage,omitempty"`
ThreadType *MessageApplication_Metadata_ThreadType `protobuf:"varint,11,opt,name=threadType,enum=WAMsgApplication.MessageApplication_Metadata_ThreadType" json:"threadType,omitempty"`
ReadonlyMetadataDataclass *string `protobuf:"bytes,12,opt,name=readonlyMetadataDataclass" json:"readonlyMetadataDataclass,omitempty"`
GroupID *string `protobuf:"bytes,13,opt,name=groupID" json:"groupID,omitempty"`
GroupSize *uint32 `protobuf:"varint,14,opt,name=groupSize" json:"groupSize,omitempty"`
GroupIndex *uint32 `protobuf:"varint,15,opt,name=groupIndex" json:"groupIndex,omitempty"`
BotResponseID *string `protobuf:"bytes,16,opt,name=botResponseID" json:"botResponseID,omitempty"`
CollapsibleID *string `protobuf:"bytes,17,opt,name=collapsibleID" json:"collapsibleID,omitempty"`
}
func (x *MessageApplication_Metadata) Reset() {
@@ -215,15 +225,15 @@ func (x *MessageApplication_Metadata) GetEphemeralSharedSecret() []byte {
}
func (x *MessageApplication_Metadata) GetForwardingScore() uint32 {
if x != nil {
return x.ForwardingScore
if x != nil && x.ForwardingScore != nil {
return *x.ForwardingScore
}
return 0
}
func (x *MessageApplication_Metadata) GetIsForwarded() bool {
if x != nil {
return x.IsForwarded
if x != nil && x.IsForwarded != nil {
return *x.IsForwarded
}
return false
}
@@ -243,8 +253,8 @@ func (x *MessageApplication_Metadata) GetFrankingKey() []byte {
}
func (x *MessageApplication_Metadata) GetFrankingVersion() int32 {
if x != nil {
return x.FrankingVersion
if x != nil && x.FrankingVersion != nil {
return *x.FrankingVersion
}
return 0
}
@@ -257,50 +267,50 @@ func (x *MessageApplication_Metadata) GetQuotedMessage() *MessageApplication_Met
}
func (x *MessageApplication_Metadata) GetThreadType() MessageApplication_Metadata_ThreadType {
if x != nil {
return x.ThreadType
if x != nil && x.ThreadType != nil {
return *x.ThreadType
}
return MessageApplication_Metadata_DEFAULT
}
func (x *MessageApplication_Metadata) GetReadonlyMetadataDataclass() string {
if x != nil {
return x.ReadonlyMetadataDataclass
if x != nil && x.ReadonlyMetadataDataclass != nil {
return *x.ReadonlyMetadataDataclass
}
return ""
}
func (x *MessageApplication_Metadata) GetGroupID() string {
if x != nil {
return x.GroupID
if x != nil && x.GroupID != nil {
return *x.GroupID
}
return ""
}
func (x *MessageApplication_Metadata) GetGroupSize() uint32 {
if x != nil {
return x.GroupSize
if x != nil && x.GroupSize != nil {
return *x.GroupSize
}
return 0
}
func (x *MessageApplication_Metadata) GetGroupIndex() uint32 {
if x != nil {
return x.GroupIndex
if x != nil && x.GroupIndex != nil {
return *x.GroupIndex
}
return 0
}
func (x *MessageApplication_Metadata) GetBotResponseID() string {
if x != nil {
return x.BotResponseID
if x != nil && x.BotResponseID != nil {
return *x.BotResponseID
}
return ""
}
func (x *MessageApplication_Metadata) GetCollapsibleID() string {
if x != nil {
return x.CollapsibleID
if x != nil && x.CollapsibleID != nil {
return *x.CollapsibleID
}
return ""
}
@@ -310,15 +320,15 @@ type isMessageApplication_Metadata_Ephemeral interface {
}
type MessageApplication_Metadata_ChatEphemeralSetting struct {
ChatEphemeralSetting *MessageApplication_EphemeralSetting `protobuf:"bytes,1,opt,name=chatEphemeralSetting,proto3,oneof"`
ChatEphemeralSetting *MessageApplication_EphemeralSetting `protobuf:"bytes,1,opt,name=chatEphemeralSetting,oneof"`
}
type MessageApplication_Metadata_EphemeralSettingList struct {
EphemeralSettingList *MessageApplication_Metadata_EphemeralSettingMap `protobuf:"bytes,2,opt,name=ephemeralSettingList,proto3,oneof"`
EphemeralSettingList *MessageApplication_Metadata_EphemeralSettingMap `protobuf:"bytes,2,opt,name=ephemeralSettingList,oneof"`
}
type MessageApplication_Metadata_EphemeralSharedSecret struct {
EphemeralSharedSecret []byte `protobuf:"bytes,3,opt,name=ephemeralSharedSecret,proto3,oneof"`
EphemeralSharedSecret []byte `protobuf:"bytes,3,opt,name=ephemeralSharedSecret,oneof"`
}
func (*MessageApplication_Metadata_ChatEphemeralSetting) isMessageApplication_Metadata_Ephemeral() {}
@@ -413,19 +423,19 @@ type isMessageApplication_Payload_Content interface {
}
type MessageApplication_Payload_CoreContent struct {
CoreContent *MessageApplication_Content `protobuf:"bytes,1,opt,name=coreContent,proto3,oneof"`
CoreContent *MessageApplication_Content `protobuf:"bytes,1,opt,name=coreContent,oneof"`
}
type MessageApplication_Payload_Signal struct {
Signal *MessageApplication_Signal `protobuf:"bytes,2,opt,name=signal,proto3,oneof"`
Signal *MessageApplication_Signal `protobuf:"bytes,2,opt,name=signal,oneof"`
}
type MessageApplication_Payload_ApplicationData struct {
ApplicationData *MessageApplication_ApplicationData `protobuf:"bytes,3,opt,name=applicationData,proto3,oneof"`
ApplicationData *MessageApplication_ApplicationData `protobuf:"bytes,3,opt,name=applicationData,oneof"`
}
type MessageApplication_Payload_SubProtocol struct {
SubProtocol *MessageApplication_SubProtocolPayload `protobuf:"bytes,4,opt,name=subProtocol,proto3,oneof"`
SubProtocol *MessageApplication_SubProtocolPayload `protobuf:"bytes,4,opt,name=subProtocol,oneof"`
}
func (*MessageApplication_Payload_CoreContent) isMessageApplication_Payload_Content() {}
@@ -450,7 +460,7 @@ type MessageApplication_SubProtocolPayload struct {
// *MessageApplication_SubProtocolPayload_Voip
// *MessageApplication_SubProtocolPayload_Armadillo
SubProtocol isMessageApplication_SubProtocolPayload_SubProtocol `protobuf_oneof:"subProtocol"`
FutureProof waCommon.FutureProofBehavior `protobuf:"varint,1,opt,name=futureProof,proto3,enum=WACommon.FutureProofBehavior" json:"futureProof,omitempty"`
FutureProof *waCommon.FutureProofBehavior `protobuf:"varint,1,opt,name=futureProof,enum=WACommon.FutureProofBehavior" json:"futureProof,omitempty"`
}
func (x *MessageApplication_SubProtocolPayload) Reset() {
@@ -535,8 +545,8 @@ func (x *MessageApplication_SubProtocolPayload) GetArmadillo() *waCommon.SubProt
}
func (x *MessageApplication_SubProtocolPayload) GetFutureProof() waCommon.FutureProofBehavior {
if x != nil {
return x.FutureProof
if x != nil && x.FutureProof != nil {
return *x.FutureProof
}
return waCommon.FutureProofBehavior(0)
}
@@ -546,27 +556,27 @@ type isMessageApplication_SubProtocolPayload_SubProtocol interface {
}
type MessageApplication_SubProtocolPayload_ConsumerMessage struct {
ConsumerMessage *waCommon.SubProtocol `protobuf:"bytes,2,opt,name=consumerMessage,proto3,oneof"`
ConsumerMessage *waCommon.SubProtocol `protobuf:"bytes,2,opt,name=consumerMessage,oneof"`
}
type MessageApplication_SubProtocolPayload_BusinessMessage struct {
BusinessMessage *waCommon.SubProtocol `protobuf:"bytes,3,opt,name=businessMessage,proto3,oneof"`
BusinessMessage *waCommon.SubProtocol `protobuf:"bytes,3,opt,name=businessMessage,oneof"`
}
type MessageApplication_SubProtocolPayload_PaymentMessage struct {
PaymentMessage *waCommon.SubProtocol `protobuf:"bytes,4,opt,name=paymentMessage,proto3,oneof"`
PaymentMessage *waCommon.SubProtocol `protobuf:"bytes,4,opt,name=paymentMessage,oneof"`
}
type MessageApplication_SubProtocolPayload_MultiDevice struct {
MultiDevice *waCommon.SubProtocol `protobuf:"bytes,5,opt,name=multiDevice,proto3,oneof"`
MultiDevice *waCommon.SubProtocol `protobuf:"bytes,5,opt,name=multiDevice,oneof"`
}
type MessageApplication_SubProtocolPayload_Voip struct {
Voip *waCommon.SubProtocol `protobuf:"bytes,6,opt,name=voip,proto3,oneof"`
Voip *waCommon.SubProtocol `protobuf:"bytes,6,opt,name=voip,oneof"`
}
type MessageApplication_SubProtocolPayload_Armadillo struct {
Armadillo *waCommon.SubProtocol `protobuf:"bytes,7,opt,name=armadillo,proto3,oneof"`
Armadillo *waCommon.SubProtocol `protobuf:"bytes,7,opt,name=armadillo,oneof"`
}
func (*MessageApplication_SubProtocolPayload_ConsumerMessage) isMessageApplication_SubProtocolPayload_SubProtocol() {
@@ -706,9 +716,9 @@ type MessageApplication_EphemeralSetting struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
EphemeralExpiration uint32 `protobuf:"varint,2,opt,name=ephemeralExpiration,proto3" json:"ephemeralExpiration,omitempty"`
EphemeralSettingTimestamp int64 `protobuf:"varint,3,opt,name=ephemeralSettingTimestamp,proto3" json:"ephemeralSettingTimestamp,omitempty"`
IsEphemeralSettingReset bool `protobuf:"varint,4,opt,name=isEphemeralSettingReset,proto3" json:"isEphemeralSettingReset,omitempty"`
EphemeralExpiration *uint32 `protobuf:"varint,2,opt,name=ephemeralExpiration" json:"ephemeralExpiration,omitempty"`
EphemeralSettingTimestamp *int64 `protobuf:"varint,3,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"`
IsEphemeralSettingReset *bool `protobuf:"varint,4,opt,name=isEphemeralSettingReset" json:"isEphemeralSettingReset,omitempty"`
}
func (x *MessageApplication_EphemeralSetting) Reset() {
@@ -744,22 +754,22 @@ func (*MessageApplication_EphemeralSetting) Descriptor() ([]byte, []int) {
}
func (x *MessageApplication_EphemeralSetting) GetEphemeralExpiration() uint32 {
if x != nil {
return x.EphemeralExpiration
if x != nil && x.EphemeralExpiration != nil {
return *x.EphemeralExpiration
}
return 0
}
func (x *MessageApplication_EphemeralSetting) GetEphemeralSettingTimestamp() int64 {
if x != nil {
return x.EphemeralSettingTimestamp
if x != nil && x.EphemeralSettingTimestamp != nil {
return *x.EphemeralSettingTimestamp
}
return 0
}
func (x *MessageApplication_EphemeralSetting) GetIsEphemeralSettingReset() bool {
if x != nil {
return x.IsEphemeralSettingReset
if x != nil && x.IsEphemeralSettingReset != nil {
return *x.IsEphemeralSettingReset
}
return false
}
@@ -769,10 +779,10 @@ type MessageApplication_Metadata_QuotedMessage struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StanzaID string `protobuf:"bytes,1,opt,name=stanzaID,proto3" json:"stanzaID,omitempty"`
RemoteJID string `protobuf:"bytes,2,opt,name=remoteJID,proto3" json:"remoteJID,omitempty"`
Participant string `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"`
Payload *MessageApplication_Payload `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
StanzaID *string `protobuf:"bytes,1,opt,name=stanzaID" json:"stanzaID,omitempty"`
RemoteJID *string `protobuf:"bytes,2,opt,name=remoteJID" json:"remoteJID,omitempty"`
Participant *string `protobuf:"bytes,3,opt,name=participant" json:"participant,omitempty"`
Payload *MessageApplication_Payload `protobuf:"bytes,4,opt,name=payload" json:"payload,omitempty"`
}
func (x *MessageApplication_Metadata_QuotedMessage) Reset() {
@@ -808,22 +818,22 @@ func (*MessageApplication_Metadata_QuotedMessage) Descriptor() ([]byte, []int) {
}
func (x *MessageApplication_Metadata_QuotedMessage) GetStanzaID() string {
if x != nil {
return x.StanzaID
if x != nil && x.StanzaID != nil {
return *x.StanzaID
}
return ""
}
func (x *MessageApplication_Metadata_QuotedMessage) GetRemoteJID() string {
if x != nil {
return x.RemoteJID
if x != nil && x.RemoteJID != nil {
return *x.RemoteJID
}
return ""
}
func (x *MessageApplication_Metadata_QuotedMessage) GetParticipant() string {
if x != nil {
return x.Participant
if x != nil && x.Participant != nil {
return *x.Participant
}
return ""
}
@@ -840,8 +850,8 @@ type MessageApplication_Metadata_EphemeralSettingMap struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChatJID string `protobuf:"bytes,1,opt,name=chatJID,proto3" json:"chatJID,omitempty"`
EphemeralSetting *MessageApplication_EphemeralSetting `protobuf:"bytes,2,opt,name=ephemeralSetting,proto3" json:"ephemeralSetting,omitempty"`
ChatJID *string `protobuf:"bytes,1,opt,name=chatJID" json:"chatJID,omitempty"`
EphemeralSetting *MessageApplication_EphemeralSetting `protobuf:"bytes,2,opt,name=ephemeralSetting" json:"ephemeralSetting,omitempty"`
}
func (x *MessageApplication_Metadata_EphemeralSettingMap) Reset() {
@@ -877,8 +887,8 @@ func (*MessageApplication_Metadata_EphemeralSettingMap) Descriptor() ([]byte, []
}
func (x *MessageApplication_Metadata_EphemeralSettingMap) GetChatJID() string {
if x != nil {
return x.ChatJID
if x != nil && x.ChatJID != nil {
return *x.ChatJID
}
return ""
}
@@ -909,7 +919,7 @@ func file_waMsgApplication_WAMsgApplication_proto_rawDescGZIP() []byte {
var file_waMsgApplication_WAMsgApplication_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_waMsgApplication_WAMsgApplication_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_waMsgApplication_WAMsgApplication_proto_goTypes = []interface{}{
var file_waMsgApplication_WAMsgApplication_proto_goTypes = []any{
(MessageApplication_Metadata_ThreadType)(0), // 0: WAMsgApplication.MessageApplication.Metadata.ThreadType
(*MessageApplication)(nil), // 1: WAMsgApplication.MessageApplication
(*MessageApplication_Metadata)(nil), // 2: WAMsgApplication.MessageApplication.Metadata
@@ -958,7 +968,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return
}
if !protoimpl.UnsafeEnabled {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication); i {
case 0:
return &v.state
@@ -970,7 +980,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_Metadata); i {
case 0:
return &v.state
@@ -982,7 +992,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_Payload); i {
case 0:
return &v.state
@@ -994,7 +1004,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_SubProtocolPayload); i {
case 0:
return &v.state
@@ -1006,7 +1016,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_ApplicationData); i {
case 0:
return &v.state
@@ -1018,7 +1028,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[5].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_Signal); i {
case 0:
return &v.state
@@ -1030,7 +1040,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[6].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_Content); i {
case 0:
return &v.state
@@ -1042,7 +1052,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[7].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_EphemeralSetting); i {
case 0:
return &v.state
@@ -1054,7 +1064,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[8].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_Metadata_QuotedMessage); i {
case 0:
return &v.state
@@ -1066,7 +1076,7 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
return nil
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
file_waMsgApplication_WAMsgApplication_proto_msgTypes[9].Exporter = func(v any, i int) any {
switch v := v.(*MessageApplication_Metadata_EphemeralSettingMap); i {
case 0:
return &v.state
@@ -1079,18 +1089,18 @@ func file_waMsgApplication_WAMsgApplication_proto_init() {
}
}
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[1].OneofWrappers = []interface{}{
file_waMsgApplication_WAMsgApplication_proto_msgTypes[1].OneofWrappers = []any{
(*MessageApplication_Metadata_ChatEphemeralSetting)(nil),
(*MessageApplication_Metadata_EphemeralSettingList)(nil),
(*MessageApplication_Metadata_EphemeralSharedSecret)(nil),
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[2].OneofWrappers = []interface{}{
file_waMsgApplication_WAMsgApplication_proto_msgTypes[2].OneofWrappers = []any{
(*MessageApplication_Payload_CoreContent)(nil),
(*MessageApplication_Payload_Signal)(nil),
(*MessageApplication_Payload_ApplicationData)(nil),
(*MessageApplication_Payload_SubProtocol)(nil),
}
file_waMsgApplication_WAMsgApplication_proto_msgTypes[3].OneofWrappers = []interface{}{
file_waMsgApplication_WAMsgApplication_proto_msgTypes[3].OneofWrappers = []any{
(*MessageApplication_SubProtocolPayload_ConsumerMessage)(nil),
(*MessageApplication_SubProtocolPayload_BusinessMessage)(nil),
(*MessageApplication_SubProtocolPayload_PaymentMessage)(nil),

View File

@@ -0,0 +1,87 @@
syntax = "proto2";
package WAMsgApplication;
option go_package = "go.mau.fi/whatsmeow/proto/waMsgApplication";
import "waCommon/WACommon.proto";
message MessageApplication {
message Metadata {
enum ThreadType {
DEFAULT = 0;
VANISH_MODE = 1;
DISAPPEARING_MESSAGES = 2;
}
message QuotedMessage {
optional string stanzaID = 1;
optional string remoteJID = 2;
optional string participant = 3;
optional Payload payload = 4;
}
message EphemeralSettingMap {
optional string chatJID = 1;
optional EphemeralSetting ephemeralSetting = 2;
}
oneof ephemeral {
EphemeralSetting chatEphemeralSetting = 1;
EphemeralSettingMap ephemeralSettingList = 2;
bytes ephemeralSharedSecret = 3;
}
optional uint32 forwardingScore = 5;
optional bool isForwarded = 6;
optional WACommon.SubProtocol businessMetadata = 7;
optional bytes frankingKey = 8;
optional int32 frankingVersion = 9;
optional QuotedMessage quotedMessage = 10;
optional ThreadType threadType = 11;
optional string readonlyMetadataDataclass = 12;
optional string groupID = 13;
optional uint32 groupSize = 14;
optional uint32 groupIndex = 15;
optional string botResponseID = 16;
optional string collapsibleID = 17;
}
message Payload {
oneof content {
Content coreContent = 1;
Signal signal = 2;
ApplicationData applicationData = 3;
SubProtocolPayload subProtocol = 4;
}
}
message SubProtocolPayload {
oneof subProtocol {
WACommon.SubProtocol consumerMessage = 2;
WACommon.SubProtocol businessMessage = 3;
WACommon.SubProtocol paymentMessage = 4;
WACommon.SubProtocol multiDevice = 5;
WACommon.SubProtocol voip = 6;
WACommon.SubProtocol armadillo = 7;
}
optional WACommon.FutureProofBehavior futureProof = 1;
}
message ApplicationData {
}
message Signal {
}
message Content {
}
message EphemeralSetting {
optional uint32 ephemeralExpiration = 2;
optional int64 ephemeralSettingTimestamp = 3;
optional bool isEphemeralSettingReset = 4;
}
optional Payload payload = 1;
optional Metadata metadata = 2;
}

View File

@@ -1,10 +1,10 @@
package waMsgApplication
import (
"go.mau.fi/whatsmeow/binary/armadillo/armadilloutil"
"go.mau.fi/whatsmeow/binary/armadillo/waArmadilloApplication"
"go.mau.fi/whatsmeow/binary/armadillo/waConsumerApplication"
"go.mau.fi/whatsmeow/binary/armadillo/waMultiDevice"
"go.mau.fi/whatsmeow/proto/armadilloutil"
"go.mau.fi/whatsmeow/proto/waArmadilloApplication"
"go.mau.fi/whatsmeow/proto/waConsumerApplication"
"go.mau.fi/whatsmeow/proto/waMultiDevice"
)
const (

View File

@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waMsgTransport/WAMsgTransport.proto
@@ -10,7 +10,7 @@ import (
reflect "reflect"
sync "sync"
waCommon "go.mau.fi/whatsmeow/binary/armadillo/waCommon"
waCommon "go.mau.fi/whatsmeow/proto/waCommon"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
@@ -71,6 +71,16 @@ func (x MessageTransport_Protocol_Ancillary_BackupDirective_ActionType) Number()
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *MessageTransport_Protocol_Ancillary_BackupDirective_ActionType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = MessageTransport_Protocol_Ancillary_BackupDirective_ActionType(num)
return nil
}
// Deprecated: Use MessageTransport_Protocol_Ancillary_BackupDirective_ActionType.Descriptor instead.
func (MessageTransport_Protocol_Ancillary_BackupDirective_ActionType) EnumDescriptor() ([]byte, []int) {
return file_waMsgTransport_WAMsgTransport_proto_rawDescGZIP(), []int{0, 1, 0, 0, 0}
@@ -81,8 +91,8 @@ type MessageTransport struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Payload *MessageTransport_Payload `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Protocol *MessageTransport_Protocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"`
Payload *MessageTransport_Payload `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"`
Protocol *MessageTransport_Protocol `protobuf:"bytes,2,opt,name=protocol" json:"protocol,omitempty"`
}
func (x *MessageTransport) Reset() {
@@ -136,10 +146,10 @@ type DeviceListMetadata struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SenderKeyHash []byte `protobuf:"bytes,1,opt,name=senderKeyHash,proto3" json:"senderKeyHash,omitempty"`
SenderTimestamp uint64 `protobuf:"varint,2,opt,name=senderTimestamp,proto3" json:"senderTimestamp,omitempty"`
RecipientKeyHash []byte `protobuf:"bytes,8,opt,name=recipientKeyHash,proto3" json:"recipientKeyHash,omitempty"`
RecipientTimestamp uint64 `protobuf:"varint,9,opt,name=recipientTimestamp,proto3" json:"recipientTimestamp,omitempty"`
SenderKeyHash []byte `protobuf:"bytes,1,opt,name=senderKeyHash" json:"senderKeyHash,omitempty"`
SenderTimestamp *uint64 `protobuf:"varint,2,opt,name=senderTimestamp" json:"senderTimestamp,omitempty"`
RecipientKeyHash []byte `protobuf:"bytes,8,opt,name=recipientKeyHash" json:"recipientKeyHash,omitempty"`
RecipientTimestamp *uint64 `protobuf:"varint,9,opt,name=recipientTimestamp" json:"recipientTimestamp,omitempty"`
}
func (x *DeviceListMetadata) Reset() {
@@ -182,8 +192,8 @@ func (x *DeviceListMetadata) GetSenderKeyHash() []byte {
}
func (x *DeviceListMetadata) GetSenderTimestamp() uint64 {
if x != nil {
return x.SenderTimestamp
if x != nil && x.SenderTimestamp != nil {
return *x.SenderTimestamp
}
return 0
}
@@ -196,8 +206,8 @@ func (x *DeviceListMetadata) GetRecipientKeyHash() []byte {
}
func (x *DeviceListMetadata) GetRecipientTimestamp() uint64 {
if x != nil {
return x.RecipientTimestamp
if x != nil && x.RecipientTimestamp != nil {
return *x.RecipientTimestamp
}
return 0
}
@@ -207,8 +217,8 @@ type MessageTransport_Payload struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ApplicationPayload *waCommon.SubProtocol `protobuf:"bytes,1,opt,name=applicationPayload,proto3" json:"applicationPayload,omitempty"`
FutureProof waCommon.FutureProofBehavior `protobuf:"varint,3,opt,name=futureProof,proto3,enum=WACommon.FutureProofBehavior" json:"futureProof,omitempty"`
ApplicationPayload *waCommon.SubProtocol `protobuf:"bytes,1,opt,name=applicationPayload" json:"applicationPayload,omitempty"`
FutureProof *waCommon.FutureProofBehavior `protobuf:"varint,3,opt,name=futureProof,enum=WACommon.FutureProofBehavior" json:"futureProof,omitempty"`
}
func (x *MessageTransport_Payload) Reset() {
@@ -251,8 +261,8 @@ func (x *MessageTransport_Payload) GetApplicationPayload() *waCommon.SubProtocol
}
func (x *MessageTransport_Payload) GetFutureProof() waCommon.FutureProofBehavior {
if x != nil {
return x.FutureProof
if x != nil && x.FutureProof != nil {
return *x.FutureProof
}
return waCommon.FutureProofBehavior(0)
}
@@ -262,8 +272,8 @@ type MessageTransport_Protocol struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Integral *MessageTransport_Protocol_Integral `protobuf:"bytes,1,opt,name=integral,proto3" json:"integral,omitempty"`
Ancillary *MessageTransport_Protocol_Ancillary `protobuf:"bytes,2,opt,name=ancillary,proto3" json:"ancillary,omitempty"`
Integral *MessageTransport_Protocol_Integral `protobuf:"bytes,1,opt,name=integral" json:"integral,omitempty"`
Ancillary *MessageTransport_Protocol_Ancillary `protobuf:"bytes,2,opt,name=ancillary" json:"ancillary,omitempty"`
}
func (x *MessageTransport_Protocol) Reset() {
@@ -317,10 +327,10 @@ type MessageTransport_Protocol_Ancillary struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Skdm *MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage `protobuf:"bytes,2,opt,name=skdm,proto3" json:"skdm,omitempty"`
DeviceListMetadata *DeviceListMetadata `protobuf:"bytes,3,opt,name=deviceListMetadata,proto3" json:"deviceListMetadata,omitempty"`
Icdc *MessageTransport_Protocol_Ancillary_ICDCParticipantDevices `protobuf:"bytes,4,opt,name=icdc,proto3" json:"icdc,omitempty"`
BackupDirective *MessageTransport_Protocol_Ancillary_BackupDirective `protobuf:"bytes,5,opt,name=backupDirective,proto3" json:"backupDirective,omitempty"`
Skdm *MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage `protobuf:"bytes,2,opt,name=skdm" json:"skdm,omitempty"`
DeviceListMetadata *DeviceListMetadata `protobuf:"bytes,3,opt,name=deviceListMetadata" json:"deviceListMetadata,omitempty"`
Icdc *MessageTransport_Protocol_Ancillary_ICDCParticipantDevices `protobuf:"bytes,4,opt,name=icdc" json:"icdc,omitempty"`
BackupDirective *MessageTransport_Protocol_Ancillary_BackupDirective `protobuf:"bytes,5,opt,name=backupDirective" json:"backupDirective,omitempty"`
}
func (x *MessageTransport_Protocol_Ancillary) Reset() {
@@ -388,8 +398,8 @@ type MessageTransport_Protocol_Integral struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Padding []byte `protobuf:"bytes,1,opt,name=padding,proto3" json:"padding,omitempty"`
DSM *MessageTransport_Protocol_Integral_DeviceSentMessage `protobuf:"bytes,2,opt,name=DSM,proto3" json:"DSM,omitempty"`
Padding []byte `protobuf:"bytes,1,opt,name=padding" json:"padding,omitempty"`
DSM *MessageTransport_Protocol_Integral_DeviceSentMessage `protobuf:"bytes,2,opt,name=DSM" json:"DSM,omitempty"`
}
func (x *MessageTransport_Protocol_Integral) Reset() {
@@ -443,9 +453,9 @@ type MessageTransport_Protocol_Ancillary_BackupDirective struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MessageID string `protobuf:"bytes,1,opt,name=messageID,proto3" json:"messageID,omitempty"`
ActionType MessageTransport_Protocol_Ancillary_BackupDirective_ActionType `protobuf:"varint,2,opt,name=actionType,proto3,enum=WAMsgTransport.MessageTransport_Protocol_Ancillary_BackupDirective_ActionType" json:"actionType,omitempty"`
SupplementalKey string `protobuf:"bytes,3,opt,name=supplementalKey,proto3" json:"supplementalKey,omitempty"`
MessageID *string `protobuf:"bytes,1,opt,name=messageID" json:"messageID,omitempty"`
ActionType *MessageTransport_Protocol_Ancillary_BackupDirective_ActionType `protobuf:"varint,2,opt,name=actionType,enum=WAMsgTransport.MessageTransport_Protocol_Ancillary_BackupDirective_ActionType" json:"actionType,omitempty"`
SupplementalKey *string `protobuf:"bytes,3,opt,name=supplementalKey" json:"supplementalKey,omitempty"`
}
func (x *MessageTransport_Protocol_Ancillary_BackupDirective) Reset() {
@@ -481,22 +491,22 @@ func (*MessageTransport_Protocol_Ancillary_BackupDirective) Descriptor() ([]byte
}
func (x *MessageTransport_Protocol_Ancillary_BackupDirective) GetMessageID() string {
if x != nil {
return x.MessageID
if x != nil && x.MessageID != nil {
return *x.MessageID
}
return ""
}
func (x *MessageTransport_Protocol_Ancillary_BackupDirective) GetActionType() MessageTransport_Protocol_Ancillary_BackupDirective_ActionType {
if x != nil {
return x.ActionType
if x != nil && x.ActionType != nil {
return *x.ActionType
}
return MessageTransport_Protocol_Ancillary_BackupDirective_NOOP
}
func (x *MessageTransport_Protocol_Ancillary_BackupDirective) GetSupplementalKey() string {
if x != nil {
return x.SupplementalKey
if x != nil && x.SupplementalKey != nil {
return *x.SupplementalKey
}
return ""
}
@@ -506,9 +516,9 @@ type MessageTransport_Protocol_Ancillary_ICDCParticipantDevices struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SenderIdentity *MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityListDescription `protobuf:"bytes,1,opt,name=senderIdentity,proto3" json:"senderIdentity,omitempty"`
RecipientIdentities []*MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityListDescription `protobuf:"bytes,2,rep,name=recipientIdentities,proto3" json:"recipientIdentities,omitempty"`
RecipientUserJIDs []string `protobuf:"bytes,3,rep,name=recipientUserJIDs,proto3" json:"recipientUserJIDs,omitempty"`
SenderIdentity *MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityListDescription `protobuf:"bytes,1,opt,name=senderIdentity" json:"senderIdentity,omitempty"`
RecipientIdentities []*MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityListDescription `protobuf:"bytes,2,rep,name=recipientIdentities" json:"recipientIdentities,omitempty"`
RecipientUserJIDs []string `protobuf:"bytes,3,rep,name=recipientUserJIDs" json:"recipientUserJIDs,omitempty"`
}
func (x *MessageTransport_Protocol_Ancillary_ICDCParticipantDevices) Reset() {
@@ -569,8 +579,8 @@ type MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
AxolotlSenderKeyDistributionMessage []byte `protobuf:"bytes,2,opt,name=axolotlSenderKeyDistributionMessage,proto3" json:"axolotlSenderKeyDistributionMessage,omitempty"`
GroupID *string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
AxolotlSenderKeyDistributionMessage []byte `protobuf:"bytes,2,opt,name=axolotlSenderKeyDistributionMessage" json:"axolotlSenderKeyDistributionMessage,omitempty"`
}
func (x *MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage) Reset() {
@@ -606,8 +616,8 @@ func (*MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage) Descrip
}
func (x *MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage) GetGroupID() string {
if x != nil {
return x.GroupID
if x != nil && x.GroupID != nil {
return *x.GroupID
}
return ""
}
@@ -624,10 +634,10 @@ type MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityList
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Seq int32 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"`
SigningDevice []byte `protobuf:"bytes,2,opt,name=signingDevice,proto3" json:"signingDevice,omitempty"`
UnknownDevices [][]byte `protobuf:"bytes,3,rep,name=unknownDevices,proto3" json:"unknownDevices,omitempty"`
UnknownDeviceIDs []int32 `protobuf:"varint,4,rep,packed,name=unknownDeviceIDs,proto3" json:"unknownDeviceIDs,omitempty"`
Seq *int32 `protobuf:"varint,1,opt,name=seq" json:"seq,omitempty"`
SigningDevice []byte `protobuf:"bytes,2,opt,name=signingDevice" json:"signingDevice,omitempty"`
UnknownDevices [][]byte `protobuf:"bytes,3,rep,name=unknownDevices" json:"unknownDevices,omitempty"`
UnknownDeviceIDs []int32 `protobuf:"varint,4,rep,name=unknownDeviceIDs" json:"unknownDeviceIDs,omitempty"`
}
func (x *MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityListDescription) Reset() {
@@ -664,8 +674,8 @@ func (*MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityLi
}
func (x *MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityListDescription) GetSeq() int32 {
if x != nil {
return x.Seq
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
@@ -696,8 +706,8 @@ type MessageTransport_Protocol_Integral_DeviceSentMessage struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DestinationJID string `protobuf:"bytes,1,opt,name=destinationJID,proto3" json:"destinationJID,omitempty"`
Phash string `protobuf:"bytes,2,opt,name=phash,proto3" json:"phash,omitempty"`
DestinationJID *string `protobuf:"bytes,1,opt,name=destinationJID" json:"destinationJID,omitempty"`
Phash *string `protobuf:"bytes,2,opt,name=phash" json:"phash,omitempty"`
}
func (x *MessageTransport_Protocol_Integral_DeviceSentMessage) Reset() {
@@ -733,15 +743,15 @@ func (*MessageTransport_Protocol_Integral_DeviceSentMessage) Descriptor() ([]byt
}
func (x *MessageTransport_Protocol_Integral_DeviceSentMessage) GetDestinationJID() string {
if x != nil {
return x.DestinationJID
if x != nil && x.DestinationJID != nil {
return *x.DestinationJID
}
return ""
}
func (x *MessageTransport_Protocol_Integral_DeviceSentMessage) GetPhash() string {
if x != nil {
return x.Phash
if x != nil && x.Phash != nil {
return *x.Phash
}
return ""
}
@@ -765,7 +775,7 @@ func file_waMsgTransport_WAMsgTransport_proto_rawDescGZIP() []byte {
var file_waMsgTransport_WAMsgTransport_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_waMsgTransport_WAMsgTransport_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_waMsgTransport_WAMsgTransport_proto_goTypes = []interface{}{
var file_waMsgTransport_WAMsgTransport_proto_goTypes = []any{
(MessageTransport_Protocol_Ancillary_BackupDirective_ActionType)(0), // 0: WAMsgTransport.MessageTransport.Protocol.Ancillary.BackupDirective.ActionType
(*MessageTransport)(nil), // 1: WAMsgTransport.MessageTransport
(*DeviceListMetadata)(nil), // 2: WAMsgTransport.DeviceListMetadata
@@ -809,7 +819,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return
}
if !protoimpl.UnsafeEnabled {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport); i {
case 0:
return &v.state
@@ -821,7 +831,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*DeviceListMetadata); i {
case 0:
return &v.state
@@ -833,7 +843,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Payload); i {
case 0:
return &v.state
@@ -845,7 +855,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Protocol); i {
case 0:
return &v.state
@@ -857,7 +867,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Protocol_Ancillary); i {
case 0:
return &v.state
@@ -869,7 +879,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[5].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Protocol_Integral); i {
case 0:
return &v.state
@@ -881,7 +891,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[6].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Protocol_Ancillary_BackupDirective); i {
case 0:
return &v.state
@@ -893,7 +903,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[7].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Protocol_Ancillary_ICDCParticipantDevices); i {
case 0:
return &v.state
@@ -905,7 +915,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[8].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Protocol_Ancillary_SenderKeyDistributionMessage); i {
case 0:
return &v.state
@@ -917,7 +927,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[9].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Protocol_Ancillary_ICDCParticipantDevices_ICDCIdentityListDescription); i {
case 0:
return &v.state
@@ -929,7 +939,7 @@ func file_waMsgTransport_WAMsgTransport_proto_init() {
return nil
}
}
file_waMsgTransport_WAMsgTransport_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
file_waMsgTransport_WAMsgTransport_proto_msgTypes[10].Exporter = func(v any, i int) any {
switch v := v.(*MessageTransport_Protocol_Integral_DeviceSentMessage); i {
case 0:
return &v.state

View File

@@ -0,0 +1,75 @@
syntax = "proto2";
package WAMsgTransport;
option go_package = "go.mau.fi/whatsmeow/proto/waMsgTransport";
import "waCommon/WACommon.proto";
message MessageTransport {
message Payload {
optional WACommon.SubProtocol applicationPayload = 1;
optional WACommon.FutureProofBehavior futureProof = 3;
}
message Protocol {
message Ancillary {
message BackupDirective {
enum ActionType {
NOOP = 0;
UPSERT = 1;
DELETE = 2;
UPSERT_AND_DELETE = 3;
}
optional string messageID = 1;
optional ActionType actionType = 2;
optional string supplementalKey = 3;
}
message ICDCParticipantDevices {
message ICDCIdentityListDescription {
optional int32 seq = 1;
optional bytes signingDevice = 2;
repeated bytes unknownDevices = 3;
repeated int32 unknownDeviceIDs = 4;
}
optional ICDCIdentityListDescription senderIdentity = 1;
repeated ICDCIdentityListDescription recipientIdentities = 2;
repeated string recipientUserJIDs = 3;
}
message SenderKeyDistributionMessage {
optional string groupID = 1;
optional bytes axolotlSenderKeyDistributionMessage = 2;
}
optional SenderKeyDistributionMessage skdm = 2;
optional DeviceListMetadata deviceListMetadata = 3;
optional ICDCParticipantDevices icdc = 4;
optional BackupDirective backupDirective = 5;
}
message Integral {
message DeviceSentMessage {
optional string destinationJID = 1;
optional string phash = 2;
}
optional bytes padding = 1;
optional DeviceSentMessage DSM = 2;
}
optional Integral integral = 1;
optional Ancillary ancillary = 2;
}
optional Payload payload = 1;
optional Protocol protocol = 2;
}
message DeviceListMetadata {
optional bytes senderKeyHash = 1;
optional uint64 senderTimestamp = 2;
optional bytes recipientKeyHash = 8;
optional uint64 recipientTimestamp = 9;
}

View File

@@ -1,8 +1,8 @@
package waMsgTransport
import (
"go.mau.fi/whatsmeow/binary/armadillo/armadilloutil"
"go.mau.fi/whatsmeow/binary/armadillo/waMsgApplication"
"go.mau.fi/whatsmeow/proto/armadilloutil"
"go.mau.fi/whatsmeow/proto/waMsgApplication"
)
const (

View File

@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waMultiDevice/WAMultiDevice.proto
@@ -28,8 +28,8 @@ type MultiDevice struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Payload *MultiDevice_Payload `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
Metadata *MultiDevice_Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
Payload *MultiDevice_Payload `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"`
Metadata *MultiDevice_Metadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"`
}
func (x *MultiDevice) Reset() {
@@ -186,11 +186,11 @@ type isMultiDevice_Payload_Payload interface {
}
type MultiDevice_Payload_ApplicationData struct {
ApplicationData *MultiDevice_ApplicationData `protobuf:"bytes,1,opt,name=applicationData,proto3,oneof"`
ApplicationData *MultiDevice_ApplicationData `protobuf:"bytes,1,opt,name=applicationData,oneof"`
}
type MultiDevice_Payload_Signal struct {
Signal *MultiDevice_Signal `protobuf:"bytes,2,opt,name=signal,proto3,oneof"`
Signal *MultiDevice_Signal `protobuf:"bytes,2,opt,name=signal,oneof"`
}
func (*MultiDevice_Payload_ApplicationData) isMultiDevice_Payload_Payload() {}
@@ -267,11 +267,11 @@ type isMultiDevice_ApplicationData_ApplicationData interface {
}
type MultiDevice_ApplicationData_AppStateSyncKeyShare struct {
AppStateSyncKeyShare *MultiDevice_ApplicationData_AppStateSyncKeyShareMessage `protobuf:"bytes,1,opt,name=appStateSyncKeyShare,proto3,oneof"`
AppStateSyncKeyShare *MultiDevice_ApplicationData_AppStateSyncKeyShareMessage `protobuf:"bytes,1,opt,name=appStateSyncKeyShare,oneof"`
}
type MultiDevice_ApplicationData_AppStateSyncKeyRequest struct {
AppStateSyncKeyRequest *MultiDevice_ApplicationData_AppStateSyncKeyRequestMessage `protobuf:"bytes,2,opt,name=appStateSyncKeyRequest,proto3,oneof"`
AppStateSyncKeyRequest *MultiDevice_ApplicationData_AppStateSyncKeyRequestMessage `protobuf:"bytes,2,opt,name=appStateSyncKeyRequest,oneof"`
}
func (*MultiDevice_ApplicationData_AppStateSyncKeyShare) isMultiDevice_ApplicationData_ApplicationData() {
@@ -323,7 +323,7 @@ type MultiDevice_ApplicationData_AppStateSyncKeyRequestMessage struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
KeyIDs []*MultiDevice_ApplicationData_AppStateSyncKeyId `protobuf:"bytes,1,rep,name=keyIDs,proto3" json:"keyIDs,omitempty"`
KeyIDs []*MultiDevice_ApplicationData_AppStateSyncKeyId `protobuf:"bytes,1,rep,name=keyIDs" json:"keyIDs,omitempty"`
}
func (x *MultiDevice_ApplicationData_AppStateSyncKeyRequestMessage) Reset() {
@@ -370,7 +370,7 @@ type MultiDevice_ApplicationData_AppStateSyncKeyShareMessage struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Keys []*MultiDevice_ApplicationData_AppStateSyncKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
Keys []*MultiDevice_ApplicationData_AppStateSyncKey `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
}
func (x *MultiDevice_ApplicationData_AppStateSyncKeyShareMessage) Reset() {
@@ -417,8 +417,8 @@ type MultiDevice_ApplicationData_AppStateSyncKey struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
KeyID *MultiDevice_ApplicationData_AppStateSyncKeyId `protobuf:"bytes,1,opt,name=keyID,proto3" json:"keyID,omitempty"`
KeyData *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData `protobuf:"bytes,2,opt,name=keyData,proto3" json:"keyData,omitempty"`
KeyID *MultiDevice_ApplicationData_AppStateSyncKeyId `protobuf:"bytes,1,opt,name=keyID" json:"keyID,omitempty"`
KeyData *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData `protobuf:"bytes,2,opt,name=keyData" json:"keyData,omitempty"`
}
func (x *MultiDevice_ApplicationData_AppStateSyncKey) Reset() {
@@ -472,7 +472,7 @@ type MultiDevice_ApplicationData_AppStateSyncKeyId struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
KeyID []byte `protobuf:"bytes,1,opt,name=keyID,proto3" json:"keyID,omitempty"`
KeyID []byte `protobuf:"bytes,1,opt,name=keyID" json:"keyID,omitempty"`
}
func (x *MultiDevice_ApplicationData_AppStateSyncKeyId) Reset() {
@@ -519,9 +519,9 @@ type MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
KeyData []byte `protobuf:"bytes,1,opt,name=keyData,proto3" json:"keyData,omitempty"`
Fingerprint *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStateSyncKeyFingerprint `protobuf:"bytes,2,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"`
Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
KeyData []byte `protobuf:"bytes,1,opt,name=keyData" json:"keyData,omitempty"`
Fingerprint *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStateSyncKeyFingerprint `protobuf:"bytes,2,opt,name=fingerprint" json:"fingerprint,omitempty"`
Timestamp *int64 `protobuf:"varint,3,opt,name=timestamp" json:"timestamp,omitempty"`
}
func (x *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData) Reset() {
@@ -571,8 +571,8 @@ func (x *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData) GetFin
}
func (x *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData) GetTimestamp() int64 {
if x != nil {
return x.Timestamp
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
@@ -582,9 +582,9 @@ type MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStateSyn
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RawID uint32 `protobuf:"varint,1,opt,name=rawID,proto3" json:"rawID,omitempty"`
CurrentIndex uint32 `protobuf:"varint,2,opt,name=currentIndex,proto3" json:"currentIndex,omitempty"`
DeviceIndexes []uint32 `protobuf:"varint,3,rep,packed,name=deviceIndexes,proto3" json:"deviceIndexes,omitempty"`
RawID *uint32 `protobuf:"varint,1,opt,name=rawID" json:"rawID,omitempty"`
CurrentIndex *uint32 `protobuf:"varint,2,opt,name=currentIndex" json:"currentIndex,omitempty"`
DeviceIndexes []uint32 `protobuf:"varint,3,rep,packed,name=deviceIndexes" json:"deviceIndexes,omitempty"`
}
func (x *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStateSyncKeyFingerprint) Reset() {
@@ -621,15 +621,15 @@ func (*MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStateS
}
func (x *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStateSyncKeyFingerprint) GetRawID() uint32 {
if x != nil {
return x.RawID
if x != nil && x.RawID != nil {
return *x.RawID
}
return 0
}
func (x *MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStateSyncKeyFingerprint) GetCurrentIndex() uint32 {
if x != nil {
return x.CurrentIndex
if x != nil && x.CurrentIndex != nil {
return *x.CurrentIndex
}
return 0
}
@@ -659,7 +659,7 @@ func file_waMultiDevice_WAMultiDevice_proto_rawDescGZIP() []byte {
}
var file_waMultiDevice_WAMultiDevice_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_waMultiDevice_WAMultiDevice_proto_goTypes = []interface{}{
var file_waMultiDevice_WAMultiDevice_proto_goTypes = []any{
(*MultiDevice)(nil), // 0: WAMultiDevice.MultiDevice
(*MultiDevice_Metadata)(nil), // 1: WAMultiDevice.MultiDevice.Metadata
(*MultiDevice_Payload)(nil), // 2: WAMultiDevice.MultiDevice.Payload
@@ -697,7 +697,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return
}
if !protoimpl.UnsafeEnabled {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice); i {
case 0:
return &v.state
@@ -709,7 +709,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_Metadata); i {
case 0:
return &v.state
@@ -721,7 +721,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_Payload); i {
case 0:
return &v.state
@@ -733,7 +733,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_ApplicationData); i {
case 0:
return &v.state
@@ -745,7 +745,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_Signal); i {
case 0:
return &v.state
@@ -757,7 +757,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[5].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_ApplicationData_AppStateSyncKeyRequestMessage); i {
case 0:
return &v.state
@@ -769,7 +769,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[6].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_ApplicationData_AppStateSyncKeyShareMessage); i {
case 0:
return &v.state
@@ -781,7 +781,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[7].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_ApplicationData_AppStateSyncKey); i {
case 0:
return &v.state
@@ -793,7 +793,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[8].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_ApplicationData_AppStateSyncKeyId); i {
case 0:
return &v.state
@@ -805,7 +805,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[9].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData); i {
case 0:
return &v.state
@@ -817,7 +817,7 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
return nil
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
file_waMultiDevice_WAMultiDevice_proto_msgTypes[10].Exporter = func(v any, i int) any {
switch v := v.(*MultiDevice_ApplicationData_AppStateSyncKey_AppStateSyncKeyData_AppStateSyncKeyFingerprint); i {
case 0:
return &v.state
@@ -830,11 +830,11 @@ func file_waMultiDevice_WAMultiDevice_proto_init() {
}
}
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[2].OneofWrappers = []interface{}{
file_waMultiDevice_WAMultiDevice_proto_msgTypes[2].OneofWrappers = []any{
(*MultiDevice_Payload_ApplicationData)(nil),
(*MultiDevice_Payload_Signal)(nil),
}
file_waMultiDevice_WAMultiDevice_proto_msgTypes[3].OneofWrappers = []interface{}{
file_waMultiDevice_WAMultiDevice_proto_msgTypes[3].OneofWrappers = []any{
(*MultiDevice_ApplicationData_AppStateSyncKeyShare)(nil),
(*MultiDevice_ApplicationData_AppStateSyncKeyRequest)(nil),
}

View File

@@ -1,6 +1,6 @@
syntax = "proto3";
syntax = "proto2";
package WAMultiDevice;
option go_package = "go.mau.fi/whatsmeow/binary/armadillo/waMultiDevice";
option go_package = "go.mau.fi/whatsmeow/proto/waMultiDevice";
message MultiDevice {
message Metadata {
@@ -25,22 +25,22 @@ message MultiDevice {
message AppStateSyncKey {
message AppStateSyncKeyData {
message AppStateSyncKeyFingerprint {
uint32 rawID = 1;
uint32 currentIndex = 2;
optional uint32 rawID = 1;
optional uint32 currentIndex = 2;
repeated uint32 deviceIndexes = 3 [packed=true];
}
bytes keyData = 1;
AppStateSyncKeyFingerprint fingerprint = 2;
int64 timestamp = 3;
optional bytes keyData = 1;
optional AppStateSyncKeyFingerprint fingerprint = 2;
optional int64 timestamp = 3;
}
AppStateSyncKeyId keyID = 1;
AppStateSyncKeyData keyData = 2;
optional AppStateSyncKeyId keyID = 1;
optional AppStateSyncKeyData keyData = 2;
}
message AppStateSyncKeyId {
bytes keyID = 1;
optional bytes keyID = 1;
}
oneof applicationData {
@@ -52,6 +52,6 @@ message MultiDevice {
message Signal {
}
Payload payload = 1;
Metadata metadata = 2;
optional Payload payload = 1;
optional Metadata metadata = 2;
}

View File

@@ -0,0 +1,543 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waQuickPromotionSurfaces/WAWebProtobufsQuickPromotionSurfaces.proto
package waQuickPromotionSurfaces
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 QP_FilterResult int32
const (
QP_TRUE QP_FilterResult = 1
QP_FALSE QP_FilterResult = 2
QP_UNKNOWN QP_FilterResult = 3
)
// Enum value maps for QP_FilterResult.
var (
QP_FilterResult_name = map[int32]string{
1: "TRUE",
2: "FALSE",
3: "UNKNOWN",
}
QP_FilterResult_value = map[string]int32{
"TRUE": 1,
"FALSE": 2,
"UNKNOWN": 3,
}
)
func (x QP_FilterResult) Enum() *QP_FilterResult {
p := new(QP_FilterResult)
*p = x
return p
}
func (x QP_FilterResult) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (QP_FilterResult) Descriptor() protoreflect.EnumDescriptor {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_enumTypes[0].Descriptor()
}
func (QP_FilterResult) Type() protoreflect.EnumType {
return &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_enumTypes[0]
}
func (x QP_FilterResult) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *QP_FilterResult) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = QP_FilterResult(num)
return nil
}
// Deprecated: Use QP_FilterResult.Descriptor instead.
func (QP_FilterResult) EnumDescriptor() ([]byte, []int) {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescGZIP(), []int{0, 0}
}
type QP_FilterClientNotSupportedConfig int32
const (
QP_PASS_BY_DEFAULT QP_FilterClientNotSupportedConfig = 1
QP_FAIL_BY_DEFAULT QP_FilterClientNotSupportedConfig = 2
)
// Enum value maps for QP_FilterClientNotSupportedConfig.
var (
QP_FilterClientNotSupportedConfig_name = map[int32]string{
1: "PASS_BY_DEFAULT",
2: "FAIL_BY_DEFAULT",
}
QP_FilterClientNotSupportedConfig_value = map[string]int32{
"PASS_BY_DEFAULT": 1,
"FAIL_BY_DEFAULT": 2,
}
)
func (x QP_FilterClientNotSupportedConfig) Enum() *QP_FilterClientNotSupportedConfig {
p := new(QP_FilterClientNotSupportedConfig)
*p = x
return p
}
func (x QP_FilterClientNotSupportedConfig) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (QP_FilterClientNotSupportedConfig) Descriptor() protoreflect.EnumDescriptor {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_enumTypes[1].Descriptor()
}
func (QP_FilterClientNotSupportedConfig) Type() protoreflect.EnumType {
return &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_enumTypes[1]
}
func (x QP_FilterClientNotSupportedConfig) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *QP_FilterClientNotSupportedConfig) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = QP_FilterClientNotSupportedConfig(num)
return nil
}
// Deprecated: Use QP_FilterClientNotSupportedConfig.Descriptor instead.
func (QP_FilterClientNotSupportedConfig) EnumDescriptor() ([]byte, []int) {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescGZIP(), []int{0, 1}
}
type QP_ClauseType int32
const (
QP_AND QP_ClauseType = 1
QP_OR QP_ClauseType = 2
QP_NOR QP_ClauseType = 3
)
// Enum value maps for QP_ClauseType.
var (
QP_ClauseType_name = map[int32]string{
1: "AND",
2: "OR",
3: "NOR",
}
QP_ClauseType_value = map[string]int32{
"AND": 1,
"OR": 2,
"NOR": 3,
}
)
func (x QP_ClauseType) Enum() *QP_ClauseType {
p := new(QP_ClauseType)
*p = x
return p
}
func (x QP_ClauseType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (QP_ClauseType) Descriptor() protoreflect.EnumDescriptor {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_enumTypes[2].Descriptor()
}
func (QP_ClauseType) Type() protoreflect.EnumType {
return &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_enumTypes[2]
}
func (x QP_ClauseType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *QP_ClauseType) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = QP_ClauseType(num)
return nil
}
// Deprecated: Use QP_ClauseType.Descriptor instead.
func (QP_ClauseType) EnumDescriptor() ([]byte, []int) {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescGZIP(), []int{0, 2}
}
type QP struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *QP) Reset() {
*x = QP{}
if protoimpl.UnsafeEnabled {
mi := &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QP) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QP) ProtoMessage() {}
func (x *QP) ProtoReflect() protoreflect.Message {
mi := &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QP.ProtoReflect.Descriptor instead.
func (*QP) Descriptor() ([]byte, []int) {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescGZIP(), []int{0}
}
type QP_FilterClause struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ClauseType *QP_ClauseType `protobuf:"varint,1,req,name=clauseType,enum=WAWebProtobufsQuickPromotionSurfaces.QP_ClauseType" json:"clauseType,omitempty"`
Clauses []*QP_FilterClause `protobuf:"bytes,2,rep,name=clauses" json:"clauses,omitempty"`
Filters []*QP_Filter `protobuf:"bytes,3,rep,name=filters" json:"filters,omitempty"`
}
func (x *QP_FilterClause) Reset() {
*x = QP_FilterClause{}
if protoimpl.UnsafeEnabled {
mi := &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QP_FilterClause) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QP_FilterClause) ProtoMessage() {}
func (x *QP_FilterClause) ProtoReflect() protoreflect.Message {
mi := &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QP_FilterClause.ProtoReflect.Descriptor instead.
func (*QP_FilterClause) Descriptor() ([]byte, []int) {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescGZIP(), []int{0, 0}
}
func (x *QP_FilterClause) GetClauseType() QP_ClauseType {
if x != nil && x.ClauseType != nil {
return *x.ClauseType
}
return QP_AND
}
func (x *QP_FilterClause) GetClauses() []*QP_FilterClause {
if x != nil {
return x.Clauses
}
return nil
}
func (x *QP_FilterClause) GetFilters() []*QP_Filter {
if x != nil {
return x.Filters
}
return nil
}
type QP_Filter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FilterName *string `protobuf:"bytes,1,req,name=filterName" json:"filterName,omitempty"`
Parameters []*QP_FilterParameters `protobuf:"bytes,2,rep,name=parameters" json:"parameters,omitempty"`
FilterResult *QP_FilterResult `protobuf:"varint,3,opt,name=filterResult,enum=WAWebProtobufsQuickPromotionSurfaces.QP_FilterResult" json:"filterResult,omitempty"`
ClientNotSupportedConfig *QP_FilterClientNotSupportedConfig `protobuf:"varint,4,req,name=clientNotSupportedConfig,enum=WAWebProtobufsQuickPromotionSurfaces.QP_FilterClientNotSupportedConfig" json:"clientNotSupportedConfig,omitempty"`
}
func (x *QP_Filter) Reset() {
*x = QP_Filter{}
if protoimpl.UnsafeEnabled {
mi := &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QP_Filter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QP_Filter) ProtoMessage() {}
func (x *QP_Filter) ProtoReflect() protoreflect.Message {
mi := &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QP_Filter.ProtoReflect.Descriptor instead.
func (*QP_Filter) Descriptor() ([]byte, []int) {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescGZIP(), []int{0, 1}
}
func (x *QP_Filter) GetFilterName() string {
if x != nil && x.FilterName != nil {
return *x.FilterName
}
return ""
}
func (x *QP_Filter) GetParameters() []*QP_FilterParameters {
if x != nil {
return x.Parameters
}
return nil
}
func (x *QP_Filter) GetFilterResult() QP_FilterResult {
if x != nil && x.FilterResult != nil {
return *x.FilterResult
}
return QP_TRUE
}
func (x *QP_Filter) GetClientNotSupportedConfig() QP_FilterClientNotSupportedConfig {
if x != nil && x.ClientNotSupportedConfig != nil {
return *x.ClientNotSupportedConfig
}
return QP_PASS_BY_DEFAULT
}
type QP_FilterParameters struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}
func (x *QP_FilterParameters) Reset() {
*x = QP_FilterParameters{}
if protoimpl.UnsafeEnabled {
mi := &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QP_FilterParameters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QP_FilterParameters) ProtoMessage() {}
func (x *QP_FilterParameters) ProtoReflect() protoreflect.Message {
mi := &file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QP_FilterParameters.ProtoReflect.Descriptor instead.
func (*QP_FilterParameters) Descriptor() ([]byte, []int) {
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescGZIP(), []int{0, 2}
}
func (x *QP_FilterParameters) GetKey() string {
if x != nil && x.Key != nil {
return *x.Key
}
return ""
}
func (x *QP_FilterParameters) GetValue() string {
if x != nil && x.Value != nil {
return *x.Value
}
return ""
}
var File_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto protoreflect.FileDescriptor
//go:embed WAWebProtobufsQuickPromotionSurfaces.pb.raw
var file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc []byte
var (
file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescOnce sync.Once
file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescData = file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc
)
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)
})
return file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDescData
}
var file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_goTypes = []any{
(QP_FilterResult)(0), // 0: WAWebProtobufsQuickPromotionSurfaces.QP.FilterResult
(QP_FilterClientNotSupportedConfig)(0), // 1: WAWebProtobufsQuickPromotionSurfaces.QP.FilterClientNotSupportedConfig
(QP_ClauseType)(0), // 2: WAWebProtobufsQuickPromotionSurfaces.QP.ClauseType
(*QP)(nil), // 3: WAWebProtobufsQuickPromotionSurfaces.QP
(*QP_FilterClause)(nil), // 4: WAWebProtobufsQuickPromotionSurfaces.QP.FilterClause
(*QP_Filter)(nil), // 5: WAWebProtobufsQuickPromotionSurfaces.QP.Filter
(*QP_FilterParameters)(nil), // 6: WAWebProtobufsQuickPromotionSurfaces.QP.FilterParameters
}
var file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_depIdxs = []int32{
2, // 0: WAWebProtobufsQuickPromotionSurfaces.QP.FilterClause.clauseType:type_name -> WAWebProtobufsQuickPromotionSurfaces.QP.ClauseType
4, // 1: WAWebProtobufsQuickPromotionSurfaces.QP.FilterClause.clauses:type_name -> WAWebProtobufsQuickPromotionSurfaces.QP.FilterClause
5, // 2: WAWebProtobufsQuickPromotionSurfaces.QP.FilterClause.filters:type_name -> WAWebProtobufsQuickPromotionSurfaces.QP.Filter
6, // 3: WAWebProtobufsQuickPromotionSurfaces.QP.Filter.parameters:type_name -> WAWebProtobufsQuickPromotionSurfaces.QP.FilterParameters
0, // 4: WAWebProtobufsQuickPromotionSurfaces.QP.Filter.filterResult:type_name -> WAWebProtobufsQuickPromotionSurfaces.QP.FilterResult
1, // 5: WAWebProtobufsQuickPromotionSurfaces.QP.Filter.clientNotSupportedConfig:type_name -> WAWebProtobufsQuickPromotionSurfaces.QP.FilterClientNotSupportedConfig
6, // [6:6] is the sub-list for method output_type
6, // [6:6] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
}
func init() { file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_init() }
func file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_init() {
if File_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*QP); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*QP_FilterClause); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*QP_Filter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*QP_FilterParameters); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_rawDesc,
NumEnums: 3,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_goTypes,
DependencyIndexes: file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_depIdxs,
EnumInfos: file_waQuickPromotionSurfaces_WAWebProtobufsQuickPromotionSurfaces_proto_enumTypes,
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
}

View File

@@ -0,0 +1,33 @@
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

View File

@@ -0,0 +1,40 @@
syntax = "proto2";
package WAWebProtobufsQuickPromotionSurfaces;
option go_package = "go.mau.fi/whatsmeow/proto/waQuickPromotionSurfaces";
message QP {
enum FilterResult {
TRUE = 1;
FALSE = 2;
UNKNOWN = 3;
}
enum FilterClientNotSupportedConfig {
PASS_BY_DEFAULT = 1;
FAIL_BY_DEFAULT = 2;
}
enum ClauseType {
AND = 1;
OR = 2;
NOR = 3;
}
message FilterClause {
required ClauseType clauseType = 1;
repeated FilterClause clauses = 2;
repeated Filter filters = 3;
}
message Filter {
required string filterName = 1;
repeated FilterParameters parameters = 2;
optional FilterResult filterResult = 3;
required FilterClientNotSupportedConfig clientNotSupportedConfig = 4;
}
message FilterParameters {
optional string key = 1;
optional string value = 2;
}
}

View File

@@ -0,0 +1,972 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.34.2
// protoc v3.21.12
// source: waServerSync/WAServerSync.proto
package waServerSync
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "embed"
)
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 SyncdMutation_SyncdOperation int32
const (
SyncdMutation_SET SyncdMutation_SyncdOperation = 0
SyncdMutation_REMOVE SyncdMutation_SyncdOperation = 1
)
// Enum value maps for SyncdMutation_SyncdOperation.
var (
SyncdMutation_SyncdOperation_name = map[int32]string{
0: "SET",
1: "REMOVE",
}
SyncdMutation_SyncdOperation_value = map[string]int32{
"SET": 0,
"REMOVE": 1,
}
)
func (x SyncdMutation_SyncdOperation) Enum() *SyncdMutation_SyncdOperation {
p := new(SyncdMutation_SyncdOperation)
*p = x
return p
}
func (x SyncdMutation_SyncdOperation) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SyncdMutation_SyncdOperation) Descriptor() protoreflect.EnumDescriptor {
return file_waServerSync_WAServerSync_proto_enumTypes[0].Descriptor()
}
func (SyncdMutation_SyncdOperation) Type() protoreflect.EnumType {
return &file_waServerSync_WAServerSync_proto_enumTypes[0]
}
func (x SyncdMutation_SyncdOperation) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Do not use.
func (x *SyncdMutation_SyncdOperation) UnmarshalJSON(b []byte) error {
num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
if err != nil {
return err
}
*x = SyncdMutation_SyncdOperation(num)
return nil
}
// Deprecated: Use SyncdMutation_SyncdOperation.Descriptor instead.
func (SyncdMutation_SyncdOperation) EnumDescriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{0, 0}
}
type SyncdMutation struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Operation *SyncdMutation_SyncdOperation `protobuf:"varint,1,opt,name=operation,enum=WAServerSync.SyncdMutation_SyncdOperation" json:"operation,omitempty"`
Record *SyncdRecord `protobuf:"bytes,2,opt,name=record" json:"record,omitempty"`
}
func (x *SyncdMutation) Reset() {
*x = SyncdMutation{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncdMutation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncdMutation) ProtoMessage() {}
func (x *SyncdMutation) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncdMutation.ProtoReflect.Descriptor instead.
func (*SyncdMutation) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{0}
}
func (x *SyncdMutation) GetOperation() SyncdMutation_SyncdOperation {
if x != nil && x.Operation != nil {
return *x.Operation
}
return SyncdMutation_SET
}
func (x *SyncdMutation) GetRecord() *SyncdRecord {
if x != nil {
return x.Record
}
return nil
}
type SyncdVersion struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Version *uint64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
}
func (x *SyncdVersion) Reset() {
*x = SyncdVersion{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncdVersion) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncdVersion) ProtoMessage() {}
func (x *SyncdVersion) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncdVersion.ProtoReflect.Descriptor instead.
func (*SyncdVersion) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{1}
}
func (x *SyncdVersion) GetVersion() uint64 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
}
type ExitCode struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code *uint64 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"`
Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
}
func (x *ExitCode) Reset() {
*x = ExitCode{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExitCode) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExitCode) ProtoMessage() {}
func (x *ExitCode) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ExitCode.ProtoReflect.Descriptor instead.
func (*ExitCode) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{2}
}
func (x *ExitCode) GetCode() uint64 {
if x != nil && x.Code != nil {
return *x.Code
}
return 0
}
func (x *ExitCode) GetText() string {
if x != nil && x.Text != nil {
return *x.Text
}
return ""
}
type SyncdIndex struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Blob []byte `protobuf:"bytes,1,opt,name=blob" json:"blob,omitempty"`
}
func (x *SyncdIndex) Reset() {
*x = SyncdIndex{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncdIndex) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncdIndex) ProtoMessage() {}
func (x *SyncdIndex) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncdIndex.ProtoReflect.Descriptor instead.
func (*SyncdIndex) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{3}
}
func (x *SyncdIndex) GetBlob() []byte {
if x != nil {
return x.Blob
}
return nil
}
type SyncdValue struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Blob []byte `protobuf:"bytes,1,opt,name=blob" json:"blob,omitempty"`
}
func (x *SyncdValue) Reset() {
*x = SyncdValue{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncdValue) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncdValue) ProtoMessage() {}
func (x *SyncdValue) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncdValue.ProtoReflect.Descriptor instead.
func (*SyncdValue) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{4}
}
func (x *SyncdValue) GetBlob() []byte {
if x != nil {
return x.Blob
}
return nil
}
type KeyId struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ID []byte `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"`
}
func (x *KeyId) Reset() {
*x = KeyId{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KeyId) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KeyId) ProtoMessage() {}
func (x *KeyId) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KeyId.ProtoReflect.Descriptor instead.
func (*KeyId) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{5}
}
func (x *KeyId) GetID() []byte {
if x != nil {
return x.ID
}
return nil
}
type SyncdRecord struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Index *SyncdIndex `protobuf:"bytes,1,opt,name=index" json:"index,omitempty"`
Value *SyncdValue `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
KeyID *KeyId `protobuf:"bytes,3,opt,name=keyID" json:"keyID,omitempty"`
}
func (x *SyncdRecord) Reset() {
*x = SyncdRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncdRecord) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncdRecord) ProtoMessage() {}
func (x *SyncdRecord) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncdRecord.ProtoReflect.Descriptor instead.
func (*SyncdRecord) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{6}
}
func (x *SyncdRecord) GetIndex() *SyncdIndex {
if x != nil {
return x.Index
}
return nil
}
func (x *SyncdRecord) GetValue() *SyncdValue {
if x != nil {
return x.Value
}
return nil
}
func (x *SyncdRecord) GetKeyID() *KeyId {
if x != nil {
return x.KeyID
}
return nil
}
type ExternalBlobReference struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MediaKey []byte `protobuf:"bytes,1,opt,name=mediaKey" json:"mediaKey,omitempty"`
DirectPath *string `protobuf:"bytes,2,opt,name=directPath" json:"directPath,omitempty"`
Handle *string `protobuf:"bytes,3,opt,name=handle" json:"handle,omitempty"`
FileSizeBytes *uint64 `protobuf:"varint,4,opt,name=fileSizeBytes" json:"fileSizeBytes,omitempty"`
FileSHA256 []byte `protobuf:"bytes,5,opt,name=fileSHA256" json:"fileSHA256,omitempty"`
FileEncSHA256 []byte `protobuf:"bytes,6,opt,name=fileEncSHA256" json:"fileEncSHA256,omitempty"`
}
func (x *ExternalBlobReference) Reset() {
*x = ExternalBlobReference{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExternalBlobReference) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExternalBlobReference) ProtoMessage() {}
func (x *ExternalBlobReference) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ExternalBlobReference.ProtoReflect.Descriptor instead.
func (*ExternalBlobReference) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{7}
}
func (x *ExternalBlobReference) GetMediaKey() []byte {
if x != nil {
return x.MediaKey
}
return nil
}
func (x *ExternalBlobReference) GetDirectPath() string {
if x != nil && x.DirectPath != nil {
return *x.DirectPath
}
return ""
}
func (x *ExternalBlobReference) GetHandle() string {
if x != nil && x.Handle != nil {
return *x.Handle
}
return ""
}
func (x *ExternalBlobReference) GetFileSizeBytes() uint64 {
if x != nil && x.FileSizeBytes != nil {
return *x.FileSizeBytes
}
return 0
}
func (x *ExternalBlobReference) GetFileSHA256() []byte {
if x != nil {
return x.FileSHA256
}
return nil
}
func (x *ExternalBlobReference) GetFileEncSHA256() []byte {
if x != nil {
return x.FileEncSHA256
}
return nil
}
type SyncdSnapshot struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Version *SyncdVersion `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"`
Records []*SyncdRecord `protobuf:"bytes,2,rep,name=records" json:"records,omitempty"`
Mac []byte `protobuf:"bytes,3,opt,name=mac" json:"mac,omitempty"`
KeyID *KeyId `protobuf:"bytes,4,opt,name=keyID" json:"keyID,omitempty"`
}
func (x *SyncdSnapshot) Reset() {
*x = SyncdSnapshot{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncdSnapshot) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncdSnapshot) ProtoMessage() {}
func (x *SyncdSnapshot) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncdSnapshot.ProtoReflect.Descriptor instead.
func (*SyncdSnapshot) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{8}
}
func (x *SyncdSnapshot) GetVersion() *SyncdVersion {
if x != nil {
return x.Version
}
return nil
}
func (x *SyncdSnapshot) GetRecords() []*SyncdRecord {
if x != nil {
return x.Records
}
return nil
}
func (x *SyncdSnapshot) GetMac() []byte {
if x != nil {
return x.Mac
}
return nil
}
func (x *SyncdSnapshot) GetKeyID() *KeyId {
if x != nil {
return x.KeyID
}
return nil
}
type SyncdMutations struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Mutations []*SyncdMutation `protobuf:"bytes,1,rep,name=mutations" json:"mutations,omitempty"`
}
func (x *SyncdMutations) Reset() {
*x = SyncdMutations{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncdMutations) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncdMutations) ProtoMessage() {}
func (x *SyncdMutations) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncdMutations.ProtoReflect.Descriptor instead.
func (*SyncdMutations) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{9}
}
func (x *SyncdMutations) GetMutations() []*SyncdMutation {
if x != nil {
return x.Mutations
}
return nil
}
type SyncdPatch struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Version *SyncdVersion `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"`
Mutations []*SyncdMutation `protobuf:"bytes,2,rep,name=mutations" json:"mutations,omitempty"`
ExternalMutations *ExternalBlobReference `protobuf:"bytes,3,opt,name=externalMutations" json:"externalMutations,omitempty"`
SnapshotMAC []byte `protobuf:"bytes,4,opt,name=snapshotMAC" json:"snapshotMAC,omitempty"`
PatchMAC []byte `protobuf:"bytes,5,opt,name=patchMAC" json:"patchMAC,omitempty"`
KeyID *KeyId `protobuf:"bytes,6,opt,name=keyID" json:"keyID,omitempty"`
ExitCode *ExitCode `protobuf:"bytes,7,opt,name=exitCode" json:"exitCode,omitempty"`
DeviceIndex *uint32 `protobuf:"varint,8,opt,name=deviceIndex" json:"deviceIndex,omitempty"`
ClientDebugData []byte `protobuf:"bytes,9,opt,name=clientDebugData" json:"clientDebugData,omitempty"`
}
func (x *SyncdPatch) Reset() {
*x = SyncdPatch{}
if protoimpl.UnsafeEnabled {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SyncdPatch) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SyncdPatch) ProtoMessage() {}
func (x *SyncdPatch) ProtoReflect() protoreflect.Message {
mi := &file_waServerSync_WAServerSync_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SyncdPatch.ProtoReflect.Descriptor instead.
func (*SyncdPatch) Descriptor() ([]byte, []int) {
return file_waServerSync_WAServerSync_proto_rawDescGZIP(), []int{10}
}
func (x *SyncdPatch) GetVersion() *SyncdVersion {
if x != nil {
return x.Version
}
return nil
}
func (x *SyncdPatch) GetMutations() []*SyncdMutation {
if x != nil {
return x.Mutations
}
return nil
}
func (x *SyncdPatch) GetExternalMutations() *ExternalBlobReference {
if x != nil {
return x.ExternalMutations
}
return nil
}
func (x *SyncdPatch) GetSnapshotMAC() []byte {
if x != nil {
return x.SnapshotMAC
}
return nil
}
func (x *SyncdPatch) GetPatchMAC() []byte {
if x != nil {
return x.PatchMAC
}
return nil
}
func (x *SyncdPatch) GetKeyID() *KeyId {
if x != nil {
return x.KeyID
}
return nil
}
func (x *SyncdPatch) GetExitCode() *ExitCode {
if x != nil {
return x.ExitCode
}
return nil
}
func (x *SyncdPatch) GetDeviceIndex() uint32 {
if x != nil && x.DeviceIndex != nil {
return *x.DeviceIndex
}
return 0
}
func (x *SyncdPatch) GetClientDebugData() []byte {
if x != nil {
return x.ClientDebugData
}
return nil
}
var File_waServerSync_WAServerSync_proto protoreflect.FileDescriptor
//go:embed WAServerSync.pb.raw
var file_waServerSync_WAServerSync_proto_rawDesc []byte
var (
file_waServerSync_WAServerSync_proto_rawDescOnce sync.Once
file_waServerSync_WAServerSync_proto_rawDescData = file_waServerSync_WAServerSync_proto_rawDesc
)
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)
})
return file_waServerSync_WAServerSync_proto_rawDescData
}
var file_waServerSync_WAServerSync_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_waServerSync_WAServerSync_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_waServerSync_WAServerSync_proto_goTypes = []any{
(SyncdMutation_SyncdOperation)(0), // 0: WAServerSync.SyncdMutation.SyncdOperation
(*SyncdMutation)(nil), // 1: WAServerSync.SyncdMutation
(*SyncdVersion)(nil), // 2: WAServerSync.SyncdVersion
(*ExitCode)(nil), // 3: WAServerSync.ExitCode
(*SyncdIndex)(nil), // 4: WAServerSync.SyncdIndex
(*SyncdValue)(nil), // 5: WAServerSync.SyncdValue
(*KeyId)(nil), // 6: WAServerSync.KeyId
(*SyncdRecord)(nil), // 7: WAServerSync.SyncdRecord
(*ExternalBlobReference)(nil), // 8: WAServerSync.ExternalBlobReference
(*SyncdSnapshot)(nil), // 9: WAServerSync.SyncdSnapshot
(*SyncdMutations)(nil), // 10: WAServerSync.SyncdMutations
(*SyncdPatch)(nil), // 11: WAServerSync.SyncdPatch
}
var file_waServerSync_WAServerSync_proto_depIdxs = []int32{
0, // 0: WAServerSync.SyncdMutation.operation:type_name -> WAServerSync.SyncdMutation.SyncdOperation
7, // 1: WAServerSync.SyncdMutation.record:type_name -> WAServerSync.SyncdRecord
4, // 2: WAServerSync.SyncdRecord.index:type_name -> WAServerSync.SyncdIndex
5, // 3: WAServerSync.SyncdRecord.value:type_name -> WAServerSync.SyncdValue
6, // 4: WAServerSync.SyncdRecord.keyID:type_name -> WAServerSync.KeyId
2, // 5: WAServerSync.SyncdSnapshot.version:type_name -> WAServerSync.SyncdVersion
7, // 6: WAServerSync.SyncdSnapshot.records:type_name -> WAServerSync.SyncdRecord
6, // 7: WAServerSync.SyncdSnapshot.keyID:type_name -> WAServerSync.KeyId
1, // 8: WAServerSync.SyncdMutations.mutations:type_name -> WAServerSync.SyncdMutation
2, // 9: WAServerSync.SyncdPatch.version:type_name -> WAServerSync.SyncdVersion
1, // 10: WAServerSync.SyncdPatch.mutations:type_name -> WAServerSync.SyncdMutation
8, // 11: WAServerSync.SyncdPatch.externalMutations:type_name -> WAServerSync.ExternalBlobReference
6, // 12: WAServerSync.SyncdPatch.keyID:type_name -> WAServerSync.KeyId
3, // 13: WAServerSync.SyncdPatch.exitCode:type_name -> WAServerSync.ExitCode
14, // [14:14] is the sub-list for method output_type
14, // [14:14] is the sub-list for method input_type
14, // [14:14] is the sub-list for extension type_name
14, // [14:14] is the sub-list for extension extendee
0, // [0:14] is the sub-list for field type_name
}
func init() { file_waServerSync_WAServerSync_proto_init() }
func file_waServerSync_WAServerSync_proto_init() {
if File_waServerSync_WAServerSync_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_waServerSync_WAServerSync_proto_msgTypes[0].Exporter = func(v any, i int) any {
switch v := v.(*SyncdMutation); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[1].Exporter = func(v any, i int) any {
switch v := v.(*SyncdVersion); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[2].Exporter = func(v any, i int) any {
switch v := v.(*ExitCode); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[3].Exporter = func(v any, i int) any {
switch v := v.(*SyncdIndex); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[4].Exporter = func(v any, i int) any {
switch v := v.(*SyncdValue); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[5].Exporter = func(v any, i int) any {
switch v := v.(*KeyId); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[6].Exporter = func(v any, i int) any {
switch v := v.(*SyncdRecord); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[7].Exporter = func(v any, i int) any {
switch v := v.(*ExternalBlobReference); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[8].Exporter = func(v any, i int) any {
switch v := v.(*SyncdSnapshot); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[9].Exporter = func(v any, i int) any {
switch v := v.(*SyncdMutations); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_waServerSync_WAServerSync_proto_msgTypes[10].Exporter = func(v any, i int) any {
switch v := v.(*SyncdPatch); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_waServerSync_WAServerSync_proto_rawDesc,
NumEnums: 1,
NumMessages: 11,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_waServerSync_WAServerSync_proto_goTypes,
DependencyIndexes: file_waServerSync_WAServerSync_proto_depIdxs,
EnumInfos: file_waServerSync_WAServerSync_proto_enumTypes,
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
}

Binary file not shown.

View File

@@ -0,0 +1,72 @@
syntax = "proto2";
package WAServerSync;
option go_package = "go.mau.fi/whatsmeow/proto/waServerSync";
message SyncdMutation {
enum SyncdOperation {
SET = 0;
REMOVE = 1;
}
optional SyncdOperation operation = 1;
optional SyncdRecord record = 2;
}
message SyncdVersion {
optional uint64 version = 1;
}
message ExitCode {
optional uint64 code = 1;
optional string text = 2;
}
message SyncdIndex {
optional bytes blob = 1;
}
message SyncdValue {
optional bytes blob = 1;
}
message KeyId {
optional bytes ID = 1;
}
message SyncdRecord {
optional SyncdIndex index = 1;
optional SyncdValue value = 2;
optional KeyId keyID = 3;
}
message ExternalBlobReference {
optional bytes mediaKey = 1;
optional string directPath = 2;
optional string handle = 3;
optional uint64 fileSizeBytes = 4;
optional bytes fileSHA256 = 5;
optional bytes fileEncSHA256 = 6;
}
message SyncdSnapshot {
optional SyncdVersion version = 1;
repeated SyncdRecord records = 2;
optional bytes mac = 3;
optional KeyId keyID = 4;
}
message SyncdMutations {
repeated SyncdMutation mutations = 1;
}
message SyncdPatch {
optional SyncdVersion version = 1;
repeated SyncdMutation mutations = 2;
optional ExternalBlobReference externalMutations = 3;
optional bytes snapshotMAC = 4;
optional bytes patchMAC = 5;
optional KeyId keyID = 6;
optional ExitCode exitCode = 7;
optional uint32 deviceIndex = 8;
optional bytes clientDebugData = 9;
}

View File

@@ -0,0 +1,31 @@
package waServerSync
// Deprecated: Use GetKeyID
func (x *SyncdRecord) GetKeyId() *KeyId {
return x.GetKeyID()
}
// Deprecated: Use GetKeyID
func (x *SyncdSnapshot) GetKeyId() *KeyId {
return x.GetKeyID()
}
// Deprecated: Use GetKeyID
func (x *SyncdPatch) GetKeyId() *KeyId {
return x.GetKeyID()
}
// Deprecated: Use GetSnapshotMAC
func (x *SyncdPatch) GetSnapshotMac() []byte {
return x.GetSnapshotMAC()
}
// Deprecated: Use GetPatchMAC
func (x *SyncdPatch) GetPatchMac() []byte {
return x.GetPatchMAC()
}
// Deprecated: Use GetID
func (x *KeyId) GetId() []byte {
return x.GetID()
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More