diff --git a/go.mod b/go.mod index 2939e31c..4cd5f436 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/camunda/zeebe/clients/go/v8 v8.5.25 github.com/cockroachdb/pebble v1.1.5 github.com/denisenkom/go-mssqldb v0.12.3 - github.com/dromara/carbon/v2 v2.6.14 + github.com/dromara/carbon/v2 v2.6.15 github.com/dustin/go-humanize v1.0.1 github.com/emersion/go-imap v1.2.1 github.com/emersion/go-message v0.18.2 @@ -18,11 +18,10 @@ require ( github.com/gofiber/fiber/v2 v2.52.9 github.com/google/uuid v1.6.0 github.com/gotd/contrib v0.21.1 - github.com/gotd/td v0.132.0 + github.com/gotd/td v0.133.0 github.com/jackc/pgx/v5 v5.7.6 github.com/jmoiron/sqlx v1.4.0 github.com/joho/godotenv v1.5.1 - github.com/klauspost/compress v1.18.1 github.com/lib/pq v1.10.9 github.com/mattn/go-sqlite3 v1.14.32 github.com/mdp/qrterminal/v3 v3.2.1 @@ -33,17 +32,15 @@ require ( github.com/segmentio/kafka-go v0.4.49 github.com/tinkoff/invest-api-go-sdk v1.4.6 github.com/xhit/go-simple-mail/v2 v2.16.0 - gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange v1.0.36 go.etcd.io/bbolt v1.4.3 - go.mau.fi/whatsmeow v0.0.0-20251028165006-ad7a618ba42f + go.mau.fi/whatsmeow v0.0.0-20251116104239-3aca43070cd4 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.43.0 - golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 - golang.org/x/net v0.46.0 + golang.org/x/crypto v0.44.0 + golang.org/x/net v0.47.0 google.golang.org/protobuf v1.36.10 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gorm.io/driver/postgres v1.6.0 - gorm.io/driver/sqlserver v1.6.1 + gorm.io/driver/sqlserver v1.6.3 gorm.io/gorm v1.31.1 ) @@ -70,7 +67,7 @@ require ( github.com/elliotchance/orderedmap/v3 v3.1.0 // indirect github.com/emersion/go-sasl v0.0.0-20241020182733-b788ff22d5a6 // indirect github.com/fatih/color v1.18.0 // indirect - github.com/getsentry/sentry-go v0.36.2 // indirect + github.com/getsentry/sentry-go v0.37.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/go-faster/jx v1.1.0 // indirect github.com/go-faster/xor v1.0.0 // indirect @@ -91,6 +88,7 @@ require ( github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect + github.com/klauspost/compress v1.18.1 // indirect github.com/klauspost/cpuid/v2 v2.3.0 // indirect github.com/klauspost/crc32 v1.3.0 // indirect github.com/kr/pretty v0.3.1 // indirect @@ -98,7 +96,7 @@ require ( github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.19 // indirect - github.com/microsoft/go-mssqldb v1.9.3 // indirect + github.com/microsoft/go-mssqldb v1.9.4 // indirect github.com/minio/crc64nvme v1.1.1 // indirect github.com/minio/md5-simd v1.1.2 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -121,28 +119,28 @@ require ( github.com/segmentio/asm v1.2.1 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/stretchr/testify v1.11.1 // indirect - github.com/syndtr/goleveldb v1.0.0 // indirect github.com/tinylib/msgp v1.5.0 // indirect github.com/toorop/go-dkim v0.0.0-20250226130143-9025cce95817 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.68.0 // indirect github.com/vektah/gqlparser/v2 v2.5.31 // indirect go.mau.fi/libsignal v0.2.1 // indirect - go.mau.fi/util v0.9.2 // indirect + go.mau.fi/util v0.9.3 // indirect go.opentelemetry.io/otel v1.38.0 // indirect go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/trace v1.38.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect - golang.org/x/mod v0.29.0 // indirect - golang.org/x/oauth2 v0.32.0 // indirect - golang.org/x/sync v0.17.0 // indirect - golang.org/x/sys v0.37.0 // indirect - golang.org/x/term v0.36.0 // indirect - golang.org/x/text v0.30.0 // indirect - golang.org/x/tools v0.38.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 // indirect + golang.org/x/exp v0.0.0-20251113190631-e25ba8c21ef6 // indirect + golang.org/x/mod v0.30.0 // indirect + golang.org/x/oauth2 v0.33.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect + golang.org/x/tools v0.39.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba // indirect google.golang.org/grpc v1.76.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index 2c5683a1..83f081d4 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,8 @@ github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZ github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/dromara/carbon/v2 v2.6.14 h1:U4mN6eH/E5GqPI67MSro8aJ5yg1DbenKItKTFwr5Fqg= -github.com/dromara/carbon/v2 v2.6.14/go.mod h1:NGo3reeV5vhWCYWcSqbJRZm46MEwyfYI5EJRdVFoLJo= +github.com/dromara/carbon/v2 v2.6.15 h1:3HuC3XcWczIHUTbg/f0CSVydtKEdM+P0GM1sdsbwXmI= +github.com/dromara/carbon/v2 v2.6.15/go.mod h1:NGo3reeV5vhWCYWcSqbJRZm46MEwyfYI5EJRdVFoLJo= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/elliotchance/orderedmap/v3 v3.1.0 h1:j4DJ5ObEmMBt/lcwIecKcoRxIQUEnw0L804lXYDt/pg= @@ -102,9 +102,8 @@ github.com/emersion/go-sasl v0.0.0-20241020182733-b788ff22d5a6/go.mod h1:iL2twTe github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/getsentry/sentry-go v0.36.2 h1:uhuxRPTrUy0dnSzTd0LrYXlBYygLkKY0hhlG5LXarzM= -github.com/getsentry/sentry-go v0.36.2/go.mod h1:p5Im24mJBeruET8Q4bbcMfCQ+F+Iadc4L48tB1apo2c= +github.com/getsentry/sentry-go v0.37.0 h1:5bavywHxVkU/9aOIF4fn3s5RTJX5Hdw6K2W6jLYtM98= +github.com/getsentry/sentry-go v0.37.0/go.mod h1:eRXCoh3uvmjQLY6qu63BjUZnaBu5L5WhMV1RwYO8W5s= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= @@ -148,10 +147,8 @@ github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -168,14 +165,12 @@ github.com/gotd/ige v0.2.2 h1:XQ9dJZwBfDnOGSTxKXBGP4gMud3Qku2ekScRjDWWfEk= github.com/gotd/ige v0.2.2/go.mod h1:tuCRb+Y5Y3eNTo3ypIfNpQ4MFjrnONiL2jN2AKZXmb0= github.com/gotd/neo v0.1.5 h1:oj0iQfMbGClP8xI59x7fE/uHoTJD7NZH9oV1WNuPukQ= github.com/gotd/neo v0.1.5/go.mod h1:9A2a4bn9zL6FADufBdt7tZt+WMhvZoc5gWXihOPoiBQ= -github.com/gotd/td v0.132.0 h1:Iqm3S2b+8kDgA9237IDXRxj7sryUpvy+4Cr50/0tpx4= -github.com/gotd/td v0.132.0/go.mod h1:4CDGYS+rDtOqotRheGaF9MS5g6jaUewvSXqBNJnx8SQ= +github.com/gotd/td v0.133.0 h1:4wBM590McSUg6ooGjd+k4taAN8R50cyrOOkPV5cELa0= +github.com/gotd/td v0.133.0/go.mod h1:SEgKTinqT8UPQDbcvjqk2iflcUvmv4uKsIgpZKe/788= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 h1:B+8ClL/kCQkRiU82d9xajRPKYMrB7E0MbtzWVi1K4ns= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3/go.mod h1:NbCUVmiS4foBGBHOYlCT25+YmGpJ32dZPi75pGEUpj4= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= @@ -233,8 +228,8 @@ github.com/mattn/go-sqlite3 v1.14.32/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxU github.com/mdp/qrterminal/v3 v3.2.1 h1:6+yQjiiOsSuXT5n9/m60E54vdgFsw0zhADHhHLrFet4= github.com/mdp/qrterminal/v3 v3.2.1/go.mod h1:jOTmXvnBsMy5xqLniO0R++Jmjs2sTm9dFSuQ5kpz/SU= github.com/microsoft/go-mssqldb v1.8.2/go.mod h1:vp38dT33FGfVotRiTmDo3bFyaHq+p3LektQrjTULowo= -github.com/microsoft/go-mssqldb v1.9.3 h1:hy4p+LDC8LIGvI3JATnLVmBOLMJbmn5X400mr5j0lPs= -github.com/microsoft/go-mssqldb v1.9.3/go.mod h1:GBbW9ASTiDC+mpgWDGKdm3FnFLTUsLYN3iFL90lQ+PA= +github.com/microsoft/go-mssqldb v1.9.4 h1:sHrj3GcdgkxytZ09aZ3+ys72pMeyEXJowT44j74pNgs= +github.com/microsoft/go-mssqldb v1.9.4/go.mod h1:GBbW9ASTiDC+mpgWDGKdm3FnFLTUsLYN3iFL90lQ+PA= github.com/minio/crc64nvme v1.1.1 h1:8dwx/Pz49suywbO+auHCBpCtlW1OfpcLN7wYgVR6wAI= github.com/minio/crc64nvme v1.1.1/go.mod h1:eVfm2fAzLlxMdUGc0EEBGSMmPwmXD5XiNRpnu9J3bvg= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= @@ -255,11 +250,6 @@ github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/ogen-go/ogen v1.16.0 h1:fKHEYokW/QrMzVNXId74/6RObRIUs9T2oroGKtR25Iw= github.com/ogen-go/ogen v1.16.0/go.mod h1:s3nWiMzybSf8fhxckyO+wtto92+QHpEL8FmkPnhL3jI= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/petermattis/goid v0.0.0-20250904145737-900bdf8bb490 h1:QTvNkZ5ylY0PGgA+Lih+GdboMLY/G9SEGLMEGVjTVA4= github.com/petermattis/goid v0.0.0-20250904145737-900bdf8bb490/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM= @@ -319,8 +309,6 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= -github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/tinkoff/invest-api-go-sdk v1.4.6 h1:A/HJ/azi3zC6qnPADIqsmHgfZcl+RSK/iDksxhZTQOI= github.com/tinkoff/invest-api-go-sdk v1.4.6/go.mod h1:Wx/BIiJ1AAGa4vKyADDlPEWQTdv23mxYsTcj4TREvN0= github.com/tinylib/msgp v1.5.0 h1:GWnqAE54wmnlFazjq2+vgr736Akg58iiHImh+kPY2pc= @@ -347,16 +335,14 @@ github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3i github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange v1.0.36 h1:H817fXKn2fHCHv3GcR9hci54d2srGhhVEADDrWyJhXU= -gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange v1.0.36/go.mod h1:+ZbwpurumFpi0GbiahOY4shV6WB2kguFxN486+76prs= go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo= go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E= go.mau.fi/libsignal v0.2.1 h1:vRZG4EzTn70XY6Oh/pVKrQGuMHBkAWlGRC22/85m9L0= go.mau.fi/libsignal v0.2.1/go.mod h1:iVvjrHyfQqWajOUaMEsIfo3IqgVMrhWcPiiEzk7NgoU= -go.mau.fi/util v0.9.2 h1:+S4Z03iCsGqU2WY8X2gySFsFjaLlUHFRDVCYvVwynKM= -go.mau.fi/util v0.9.2/go.mod h1:055elBBCJSdhRsmub7ci9hXZPgGr1U6dYg44cSgRgoU= -go.mau.fi/whatsmeow v0.0.0-20251028165006-ad7a618ba42f h1:UfzKgeEBRlDj3E2B/z+no17BstkAxO4kIUNSgR6Cwrw= -go.mau.fi/whatsmeow v0.0.0-20251028165006-ad7a618ba42f/go.mod h1:RwBrMQAWCHGzMdDZ6EwjcY4Aj3g8Efx8c7GACTdiAME= +go.mau.fi/util v0.9.3 h1:aqNF8KDIN8bFpFbybSk+mEBil7IHeBwlujfyTnvP0uU= +go.mau.fi/util v0.9.3/go.mod h1:krWWfBM1jWTb5f8NCa2TLqWMQuM81X7TGQjhMjBeXmQ= +go.mau.fi/whatsmeow v0.0.0-20251116104239-3aca43070cd4 h1:7hXdxCFs2Me4nypiWjdBNonaFrPfmYJvEtTOwLctSHU= +go.mau.fi/whatsmeow v0.0.0-20251116104239-3aca43070cd4/go.mod h1:5aYaEa3FF5e5XWsA8Xa80ttUXZvb6HyaBGgo2SfzUkE= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= @@ -395,10 +381,10 @@ golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOM golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= -golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= -golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= -golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 h1:mgKeJMpvi0yx/sU5GsxQ7p6s2wtOnGAHZWCHUM4KGzY= -golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70= +golang.org/x/crypto v0.44.0 h1:A97SsFvM3AIwEEmTBiaxPPTYpDC47w720rdiiUvgoAU= +golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc= +golang.org/x/exp v0.0.0-20251113190631-e25ba8c21ef6 h1:zfMcR1Cs4KNuomFFgGefv5N0czO2XZpUbxGUy8i8ug0= +golang.org/x/exp v0.0.0-20251113190631-e25ba8c21ef6/go.mod h1:46edojNIoXTNOhySWIWdix628clX9ODXwPsQuG6hsK0= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -407,9 +393,8 @@ golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= -golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= +golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -432,11 +417,10 @@ golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4= -golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= -golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= -golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo= +golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -447,9 +431,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -474,8 +457,8 @@ golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= -golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -491,8 +474,8 @@ golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= -golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q= -golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -507,8 +490,8 @@ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= -golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= -golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -517,16 +500,16 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= -golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= +golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 h1:tRPGkdGHuewF4UisLzzHHr1spKw92qLM98nIzxbC0wY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba h1:UKgtfRM7Yh93Sya0Fo8ZzhDP4qBckrrxEr2oF5UIVb8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= @@ -534,12 +517,8 @@ google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -551,8 +530,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/postgres v1.6.0 h1:2dxzU8xJ+ivvqTRph34QX+WrRaJlmfyPqXmoGVjMBa4= gorm.io/driver/postgres v1.6.0/go.mod h1:vUw0mrGgrTK+uPHEhAdV4sfFELrByKVGnaVRkXDhtWo= -gorm.io/driver/sqlserver v1.6.1 h1:XWISFsu2I2pqd1KJhhTZNJMx1jNQ+zVL/Q8ovDcUjtY= -gorm.io/driver/sqlserver v1.6.1/go.mod h1:VZeNn7hqX1aXoN5TPAFGWvxWG90xtA8erGn2gQmpc6U= +gorm.io/driver/sqlserver v1.6.3 h1:UR+nWCuphPnq7UxnL57PSrlYjuvs+sf1N59GgFX7uAI= +gorm.io/driver/sqlserver v1.6.3/go.mod h1:VZeNn7hqX1aXoN5TPAFGWvxWG90xtA8erGn2gQmpc6U= gorm.io/gorm v1.25.4/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gorm.io/gorm v1.31.1 h1:7CA8FTFz/gRfgqgpeKIBcervUn3xSyPUmr6B2WXJ7kg= diff --git a/pkg/version/version.txt b/pkg/version/version.txt index e959aa25..2be74d05 100644 --- a/pkg/version/version.txt +++ b/pkg/version/version.txt @@ -1 +1 @@ -v1.0.226-2-gf48a50b5 2025-10-15 17:32:50 +0300 +v1.0.231 2025-11-11 14:55:39 +0300 diff --git a/sync_exchange_connect/sync_exchange_connect.go b/sync_exchange_connect/sync_exchange_connect.go deleted file mode 100644 index bcb6f8c4..00000000 --- a/sync_exchange_connect/sync_exchange_connect.go +++ /dev/null @@ -1,277 +0,0 @@ -// модуль для обмена с сервисом NATS через sync_exchange -package sync_exchange_connect - -import ( - "bytes" - "context" - "fmt" - "github.com/ManyakRus/starter/contextmain" - "github.com/ManyakRus/starter/log" - "github.com/ManyakRus/starter/nats_connect" - "github.com/ManyakRus/starter/stopapp" - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange" - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_types" - "os" - "runtime/pprof" - "sync" - "time" -) - -// TopicNamePprof_Heap_Suffix - имя суффикса топика с профилем памяти -const TopicNamePprof_Heap_Suffix = ".heap_profile" - -// TopicNamePprof_Goroutine_Suffix - имя суффикса топика с профилем памяти -const TopicNamePprof_Goroutine_Suffix = ".goroutine_profile" - -// serviceName - имя сервиса который подключается -var serviceName string - -// Connect - подключение к NATS SyncExchange -func Connect(ServiceName, ServiceVersion string) { - err := Connect_err(ServiceName, ServiceVersion) - LogInfo_Connected(err) -} - -// LogInfo_Connected - выводит сообщение в Лог, или паника при ошибке -func LogInfo_Connected(err error) { - if err != nil { - log.Panicln("Can not start NATS, server: ", nats_connect.Settings.NATS_HOST, " error: ", err) - } else { - log.Info("NATS connected. OK., server: ", nats_connect.Settings.NATS_HOST, ":", nats_connect.Settings.NATS_PORT) - } - -} - -// Connect_err - подключение к NATS SyncExchange -func Connect_err(ServiceName, ServiceVersion string) error { - var err error - - //запомним ServiceName - if serviceName == "" { - serviceName = ServiceName - } - - // - nats_connect.FillSettings() - sNATS_PORT := (nats_connect.Settings.NATS_PORT) - url := "nats://" + nats_connect.Settings.NATS_HOST + ":" + sNATS_PORT - - err = sync_exchange.InitSyncExchange(url, ServiceName, ServiceVersion) - - return err -} - -// Start - необходимые процедуры для подключения к серверу Nats SyncExchange -func Start(ServiceName, ServiceVersion string) { - var err error - - ctx := contextmain.GetContext() - WaitGroup := stopapp.GetWaitGroup_Main() - err = Start_ctx(&ctx, WaitGroup, ServiceName, ServiceVersion) - LogInfo_Connected(err) - -} - -// Start_ctx - необходимые процедуры для подключения к NATS с библиотекой SyncExchange -// Свой контекст и WaitGroup нужны для остановки работы сервиса Graceful shutdown -// Для тех кто пользуется этим репозиторием для старта и останова сервиса можно просто Start() -func Start_ctx(ctx *context.Context, WaitGroup *sync.WaitGroup, ServiceName, ServiceVersion string) error { - var err error - - //запомним к себе контекст - if contextmain.Ctx != ctx { - contextmain.SetContext(ctx) - } - //contextmain.Ctx = ctx - if ctx == nil { - contextmain.GetContext() - } - - //запомним к себе WaitGroup - stopapp.SetWaitGroup_Main(WaitGroup) - if WaitGroup == nil { - stopapp.StartWaitStop() - } - - // - err = Connect_err(ServiceName, ServiceVersion) - if err != nil { - return err - } - - stopapp.GetWaitGroup_Main().Add(1) - go WaitStop() - - return err -} - -// CloseConnection - закрывает соединение с NATS -func CloseConnection() { - err := sync_exchange.DeInitSyncExchange() - if err != nil { - log.Warn("CloseConnection() warning: ", err) - } else { - log.Info("NATS stopped") - } - - //return err -} - -// WaitStop - ожидает отмену глобального контекста или сигнала завершения приложения -func WaitStop() { - defer stopapp.GetWaitGroup_Main().Done() - - select { - case <-contextmain.GetContext().Done(): - log.Warn("Context app is canceled. sync_exchange_connect") - } - - //ждём пока отправляемых сейчас сообщений будет =0 - stopapp.WaitTotalMessagesSendingNow("sync_exchange_connect") - - //закрываем соединение - CloseConnection() -} - -// SendResponseError - Отправляет ответ в NATS SyncExchange -func SendResponseError(sp *sync_types.SyncPackage, err error) { - - if err == nil { - return - } - - sp_otvet := sync_types.MakeSyncError("", 0, err.Error()) - - err = sync_exchange.SendResponse(sp, sp_otvet) - if err != nil { - log.Error("SendResponse() Error: ", err) - } - -} - -// Start_PprofNats - профилирование памяти отправляет в NATS, бесконечно + WaitGroup -func Start_PprofNats() { - TextTest := TextTestOrEmpty() - topicHeapProfile := serviceName + TextTest + TopicNamePprof_Heap_Suffix - log.Info("Start_PprofNats(), topic: ", topicHeapProfile) - - stopapp.GetWaitGroup_Main().Add(1) - go pprofNats_forever_go() -} - -// pprofNats_forever_go - профилирование памяти отправляет в NATS, бесконечно + WaitGroup -func pprofNats_forever_go() { - defer stopapp.GetWaitGroup_Main().Done() - PprofNats_forever() -} - -// PprofNats_forever - профилирование памяти отправляет в NATS, бесконечно -func PprofNats_forever() { - var err error - - ticker := time.NewTicker(60 * time.Second) - defer ticker.Stop() - -loop: - for { - select { - case <-contextmain.GetContext().Done(): - log.Warn("Context app is canceled. sync_exchange_connect.ping") - break loop - case <-ticker.C: - err = PprofNats1() - if err != nil { - err = fmt.Errorf("PprofNats1(), error: %w", err) - log.Error(err) - time.Sleep(60 * time.Second) - } - } - } -} - -// PprofNats1 - профилирование памяти отправляет в NATS 1 раз -func PprofNats1() error { - var err error - - //память - err = PprofMemoryProfile1() - if err != nil { - err = fmt.Errorf("PprofMemoryProfile1(), error: %w", err) - log.Error(err) - return err - } - - //горутины - err = PprofGoroutines1() - if err != nil { - err = fmt.Errorf("PprofMemoryProfile1(), error: %w", err) - log.Error(err) - return err - } - - return err -} - -// PprofMemoryProfile1 - профилирование памяти отправляет в NATS 1 раз -func PprofMemoryProfile1() error { - var err error - - TextTest := TextTestOrEmpty() - topicHeapProfile := serviceName + TextTest + TopicNamePprof_Heap_Suffix - var buf bytes.Buffer - err = pprof.WriteHeapProfile(&buf) - if err != nil { - err = fmt.Errorf("pprof.WriteHeapProfile(), topic: %v, error: %w", topicHeapProfile, err) - log.Error(err) - time.Sleep(10 * time.Second) - return err - } - err = sync_exchange.SendRawMessage(topicHeapProfile, buf.Bytes()) - if err != nil { - err = fmt.Errorf("sync_exchange.SendRawMessage(), topic: %v, error: %w", topicHeapProfile, err) - log.Error(err) - time.Sleep(10 * time.Second) - return err - } - - return err -} - -// PprofGoroutines1 - профилирование горутин отправляет в NATS 1 раз -func PprofGoroutines1() error { - var err error - - TextTest := TextTestOrEmpty() - topicHeapProfile := serviceName + TextTest + TopicNamePprof_Goroutine_Suffix - var buf bytes.Buffer - err = pprof.Lookup("goroutine").WriteTo(&buf, 2) - if err != nil { - err = fmt.Errorf("pprof.WriteHeapProfile(), topic: %v, error: %w", topicHeapProfile, err) - log.Error(err) - time.Sleep(10 * time.Second) - return err - } - err = sync_exchange.SendRawMessage(topicHeapProfile, buf.Bytes()) - if err != nil { - err = fmt.Errorf("sync_exchange.SendRawMessage(), topic: %v, error: %w", topicHeapProfile, err) - log.Error(err) - time.Sleep(10 * time.Second) - return err - } - - return err -} - -// TextTestOrEmpty - возвращает "_test" или "" -func TextTestOrEmpty() string { - Otvet := "_test" - stage := os.Getenv("STAGE") - switch stage { - case "dev": - Otvet = "" - case "prod": - Otvet = "" - } - - return Otvet -} diff --git a/sync_exchange_connect/sync_exchange_connect.zip b/sync_exchange_connect/sync_exchange_connect.zip new file mode 100644 index 00000000..8643f11f Binary files /dev/null and b/sync_exchange_connect/sync_exchange_connect.zip differ diff --git a/sync_exchange_connect/sync_exchange_connect_test.go b/sync_exchange_connect/sync_exchange_connect_test.go deleted file mode 100644 index 23f28369..00000000 --- a/sync_exchange_connect/sync_exchange_connect_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package sync_exchange_connect - -import ( - "github.com/ManyakRus/starter/config_main" - "github.com/ManyakRus/starter/contextmain" - "github.com/ManyakRus/starter/micro" - "github.com/ManyakRus/starter/pkg/version" - "github.com/ManyakRus/starter/stopapp" - "testing" -) - -var SERVICE_NAME_TEST = "starter_test" - -func TestConnect(t *testing.T) { - config_main.LoadEnv() - Connect(SERVICE_NAME_TEST, version.Version) - defer CloseConnection() - - micro.Pause(100) - -} - -func TestStartNats(t *testing.T) { - config_main.LoadEnv() - Start(SERVICE_NAME_TEST, version.Version) - defer CloseConnection() - - micro.Pause(100) - - contextmain.CancelContext() - contextmain.GetNewContext() -} - -func TestCloseConnection(t *testing.T) { - config_main.LoadEnv() - Connect(SERVICE_NAME_TEST, version.Version) - defer CloseConnection() -} - -func TestWaitStop(t *testing.T) { - - stopapp.GetWaitGroup_Main().Add(1) - go WaitStop() - - _ = contextmain.GetContext() - contextmain.CancelContext() - - stopapp.GetWaitGroup_Main().Wait() - - contextmain.GetNewContext() -} - -func TestPprofNats1(t *testing.T) { - config_main.LoadEnvTest() - Connect(SERVICE_NAME_TEST, version.Version) - defer CloseConnection() - - PprofNats1() -} - -func TestTextTestOrEmpty(t *testing.T) { - Otvet := TextTestOrEmpty() - if Otvet != "" && Otvet != "_test" { - t.Errorf("TextTestOrEmpty() error: Otvet=%v", Otvet) - } -} diff --git a/vendor/github.com/dromara/carbon/v2/README.cn.md b/vendor/github.com/dromara/carbon/v2/README.cn.md index 112b9fe9..8e354907 100644 --- a/vendor/github.com/dromara/carbon/v2/README.cn.md +++ b/vendor/github.com/dromara/carbon/v2/README.cn.md @@ -13,11 +13,12 @@ ## 项目简介 -`Carbon` 是一个轻量级、语义化、对开发者友好的 `golang` 时间处理库,不依赖于 `任何` 第三方库, `100%` 单元测试覆盖率,已被 [awesome-go](https://github.com/yinggaozhen/awesome-go-cn#日期和时间 "awesome-go-cn") 和 [hello-github](https://hellogithub.com/repository/dromara/carbon "hello-github") 收录,并获得 +`Carbon` 是一个轻量级、语义化、对开发者友好的 `golang` 时间处理库,不依赖于 `任何` 第三方库, `100%` 单元测试覆盖率,已被 [docker](https://github.com/docker/docker-language-server/blob/main/go.mod#L10 "docker") 组织使用以及被 [awesome-go](https://github.com/yinggaozhen/awesome-go-cn#日期和时间 "awesome-go-cn") 和 [hello-github](https://hellogithub.com/repository/dromara/carbon "hello-github") 收录,并获得 `gitee` 2024 年最有价值项目(`GVP`)和 `gitcode` 2024 年度开源摘星计划 (`G-Star`) 项目 -gvp -g-star +docker +gvp +g-star ## 仓库地址 @@ -31,7 +32,7 @@ ### 安装使用 -> go version >= 1.18 +> go version >= 1.19 ```go // 使用 github 库 @@ -102,9 +103,12 @@ carbon.IsTestNow() // false -[如何为 carbon 添加新的本地化语言支持](docs/CONTRIBUTING.cn.md) -## 赞助 +## 翻译者 +欢迎帮助将 `Carbon` 翻译为更多本地化语言 +[如何为 carbon 添加新的本地化语言支持](https://carbon.go-pkg.com/zh/appendix/contribution-guide.html) + +## 赞助 `Carbon` 是一个非商业开源项目, 如果你想支持 `Carbon`, 你可以为开发者 [购买一杯咖啡](https://carbon.go-pkg.com/zh/sponsor.html) diff --git a/vendor/github.com/dromara/carbon/v2/README.ja.md b/vendor/github.com/dromara/carbon/v2/README.ja.md index f5846618..6a5a73e0 100644 --- a/vendor/github.com/dromara/carbon/v2/README.ja.md +++ b/vendor/github.com/dromara/carbon/v2/README.ja.md @@ -13,7 +13,9 @@ ## イントロ -`Carbon` は軽量、セマンティック、開発者に優しい `golang` 時間処理ライブラリ, `いかなる`第三者ライブラリにも依存せず、`100%`ユニットテストカバレッジ率は、[awesome-go](https://github.com/avelino/awesome-go#date-and-time "awesome-go") と [hello-github](https://hellogithub.com/en/repository/dromara/carbon "hello-github") 収録 +`Carbon` は軽量でセマンティックで開発者に優しい `golang` 時間処理ライブラリで、サードパーティ製ライブラリに依存せず、ユニットテストのカバー率は `100%` で、[docker](https://github.com/docker/docker-language-server/blob/main/go.mod#L10 "docker") に公式採用され、[awesome-go](https://github.com/yinggaozhen/awesome-go-cn#日期和时间 "awesome-go-cn") と [hello-github](https://hellogithub.com/repository/dromara/carbon "hello-github") にも収録されています。 + +docker ## リポジトリ @@ -26,7 +28,7 @@ ## クイックスタート ### インストール -> go version >= 1.18 +> go version >= 1.19 ```go // github から使う @@ -39,13 +41,13 @@ import "gitee.com/dromara/carbon/v2" // gitcode から使う go get -u gitcode.com/dromara/carbon/v2 -import "gitcode.com/dromara/carbon/v2" +import "gitcode.com/dromara/gitcode/v2" ``` `Carbon` は [dromara](https://dromara.org/ "dromara") 組織に寄付されたためリポジトリのURLが変更されました。以前のリポジトリ `golang-module/carbon` を使用している場合は`go.mod`で新しいリポジトリURLに変更するか下記コマンドを実行します ```go -go mod edit -replace github.com/golang-module/carbon/v2=github.com/dromara/carbon/v2 +go mod edit -replace github.com/golang-module/carbon/v2 = github.com/dromara/carbon/v2 ``` ### 使い方と例 @@ -71,14 +73,14 @@ carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15).ToString() // 2020-08-05 13:14 carbon.CreateFromTimestamp(1596633255).ToString() // 2020-08-05 13:14:15 +0000 UTC carbon.Parse("2020-07-05 13:14:15").DiffForHumans() // 1 month before -carbon.Parse("2020-07-05 13:14:15").SetLocale("jp").DiffForHumans() // 1 ヶ月前 +carbon.Parse("2020-07-05 13:14:15").SetLocale("zh-CN").DiffForHumans() // 1 月前 carbon.ClearTestNow() carbon.IsTestNow() // false ``` -詳細については 公式ドキュメント +より多くの使用例については、公式ドキュメントをご覧ください。 -より多くの使用例については、公式ドキュメントをご覧ください。性能テストレポートについては、[分析レポート](docs/BENCHMARK.ja.md)をご参照ください +性能テストレポートについては、[ベンチマークレポート](docs/BENCHMARK.ja.md)をご参照ください ## リファレンス @@ -96,7 +98,10 @@ carbon.IsTestNow() // false -[Carbon に新しいローカライズ言語サポートを追加する方法](docs/CONTRIBUTING.ja.md) +## 翻訳者 +`Carbon` を他のローカライズ言語に翻訳してくださる方を募集しています + +[Carbon に新しいローカライズ言語サポートを追加する方法](https://carbon.go-pkg.com/ja/appendix/contribution-guide.html) ## スポンサー diff --git a/vendor/github.com/dromara/carbon/v2/README.ko.md b/vendor/github.com/dromara/carbon/v2/README.ko.md index e6090b42..4a9c2c33 100644 --- a/vendor/github.com/dromara/carbon/v2/README.ko.md +++ b/vendor/github.com/dromara/carbon/v2/README.ko.md @@ -9,11 +9,13 @@ [![HelloGitHub](https://api.hellogithub.com/v1/widgets/recommend.svg?rid=0eddd8c3469549b7b246f85a83d1c42e&claim_uid=kKBvMpyxSgLhmJO&theme=small)](https://hellogithub.com/en/repository/dromara/carbon) [![License](https://img.shields.io/github/license/dromara/carbon)](https://github.com/dromara/carbon/blob/master/LICENSE) -한국어 | [English](README.md) | [简体中文](README.zh.md) | [日本語](README.ja.md) +한국어 | [English](README.md) | [简体中文](README.cn.md) | [日本語](README.ja.md) ## 소개 -`Carbon`은 `golang`을 위한 간단하고, 의미론적이며, 개발자 친화적인 시간 패키지입니다. `100%` 단위 테스트 커버리지를 제공하며, `어떤` 서드파티 패키지에도 의존하지 않으며, [awesome-go](https://github.com/avelino/awesome-go#date-and-time "awesome-go")와 [hello-github](https://hellogithub.com/en/repository/dromara/carbon "hello-github")에 포함되어 있습니다. +`Carbon` 은 가벼우면서도 의미론적이고 개발자 친화적인 `golang` 시간 처리 라이브러리로, `어떤` 서드파티 라이브러리에도 의존하지 않으며, `100%` 단위 테스트 커버리지를 가지고 있으며, [docker](https://github.com/docker/docker-language-server/blob/main/go.mod#L10 "docker")에 공식적으로 사용되고 있고 [awesome-go](https://github.com/yinggaozhen/awesome-go-cn#日期和时间 "awesome-go-cn") 와 [hello-github](https://hellogithub.com/repository/dromara/carbon "hello-github")에도 수록되어 있습니다. + +docker ## 저장소 @@ -26,7 +28,7 @@ ## 빠른 시작 ### 설치 -> go version >= 1.18 +> go version >= 1.19 ```go // GitHub를 통해 @@ -39,7 +41,7 @@ import "gitee.com/dromara/carbon/v2" // GitCode를 통해 go get -u gitcode.com/dromara/carbon/v2 -import "gitee.com/dromara/gitcode/v2" +import "gitcode.com/dromara/gitcode/v2" ``` `Carbon`은 [dromara](https://dromara.org/ "dromara") 조직에 기부되었으며, 저장소 URL이 변경되었습니다. 이전에 사용하던 저장소가 `golang-module/carbon`이었다면, `go.mod`에서 원래 저장소를 새 저장소로 교체하거나 다음 명령을 실행하세요: @@ -77,7 +79,9 @@ carbon.ClearTestNow() carbon.IsTestNow() // false ``` -더 많은 사용 예시는 공식 문서를 참조하세요. 성능 테스트 보고서는 [분석 보고서](docs/BENCHMARK.ko.md)를 참조하세요. +더 많은 사용 예시는 공식 문서를 참조하세요. + +성능 테스트 보고서는 [벤치마크 보고서](docs/BENCHMARK.ko.md)를 참조하세요. ## 참고 자료 @@ -95,7 +99,10 @@ carbon.IsTestNow() // false -[Carbon에 새로운 로컬라이즈드 언어 지원을 추가하는 방법](docs/CONTRIBUTING.ko.md) +## 번역자 +`Carbon` 을 더 많은 로컬라이즈드 언어로 번역하는 데 도움을 요청드립니다 + +[Carbon에 새로운 로컬라이즈드 언어 지원을 추가하는 방법](https://carbon.go-pkg.com/ko/appendix/contribution-guide.html) ## 스폰서 diff --git a/vendor/github.com/dromara/carbon/v2/README.md b/vendor/github.com/dromara/carbon/v2/README.md index 1f76c37b..8f5ecb04 100644 --- a/vendor/github.com/dromara/carbon/v2/README.md +++ b/vendor/github.com/dromara/carbon/v2/README.md @@ -13,7 +13,9 @@ English | [简体中文](README.cn.md) | [日本語](README.ja.md) | [한국어] ## Introduction -`Carbon` is a simple, semantic and developer-friendly time package for `golang`, `100%` unit test coverage, doesn't depend on `any` third-party package and has been included by [awesome-go](https://github.com/avelino/awesome-go#date-and-time "awesome-go") and [hello-github](https://hellogithub.com/en/repository/dromara/carbon "hello-github") +`Carbon` is a lightweight, semantic, and developer-friendly `golang` time package that doesn't depend on `any` third-party package, has `100%` unit test coverage, and has been used by [docker](https://github.com/docker/docker-language-server/blob/main/go.mod#L10 "docker") organization as well as included by [awesome-go](https://github.com/yinggaozhen/awesome-go-cn#日期和时间 "awesome-go-cn") and [hello-github](https://hellogithub.com/repository/dromara/carbon "hello-github"). + +docker ## Repository @@ -26,20 +28,20 @@ English | [简体中文](README.cn.md) | [日本語](README.ja.md) | [한국어] ## Quick Start ### Installation -> go version >= 1.18 +> go version >= 1.19 ```go -// By github +// Via github go get -u github.com/dromara/carbon/v2 import "github.com/dromara/carbon/v2" -// By gitee +// Via gitee go get -u gitee.com/dromara/carbon/v2 import "gitee.com/dromara/carbon/v2" -// By gitcode +// Via gitcode go get -u gitcode.com/dromara/carbon/v2 -import "gitee.com/dromara/gitcode/v2" +import "gitcode.com/dromara/gitcode/v2" ``` `Carbon` was donated to the [dromara](https://dromara.org/ "dromara") organization, the repository URL has changed. If @@ -100,7 +102,10 @@ Thanks to all the following who contributed to `Carbon`: -[How to add new localized language support to carbon](docs/CONTRIBUTING.en.md) +## Translators +Ask for help to translate `Carbon` in other localized languages + +[How to add new localized language support to carbon](https://carbon.go-pkg.com/appendix/contribution-guide.html) ## Sponsors diff --git a/vendor/github.com/dromara/carbon/v2/constants.go b/vendor/github.com/dromara/carbon/v2/constants.go index 11092784..aa5b9df7 100644 --- a/vendor/github.com/dromara/carbon/v2/constants.go +++ b/vendor/github.com/dromara/carbon/v2/constants.go @@ -5,7 +5,7 @@ import ( ) // Version current version -const Version = "2.6.14" +const Version = "2.6.15" // timezone constants const ( @@ -180,6 +180,7 @@ const ( RubyDateLayout = time.RubyDate UnixDateLayout = time.UnixDate W3cLayout = RFC3339Layout + HttpLayout = "Mon, 02 Jan 2006 15:04:05 GMT" RFC1036Layout = "Mon, 02 Jan 06 15:04:05 -0700" RFC1123Layout = time.RFC1123 @@ -250,6 +251,8 @@ const ( RssFormat = "D, d M Y H:i:s O" RubyDateFormat = "D M d H:i:s O Y" UnixDateFormat = "D M j H:i:s Z Y" + W3cFormat = RFC3339Format + HttpFormat = "D, d M Y H:i:s \\G\\M\\T" RFC1036Format = "D, d M y H:i:s O" RFC1123Format = "D, d M Y H:i:s Z" diff --git a/vendor/github.com/dromara/carbon/v2/creator.go b/vendor/github.com/dromara/carbon/v2/creator.go index 580b130d..b5663370 100644 --- a/vendor/github.com/dromara/carbon/v2/creator.go +++ b/vendor/github.com/dromara/carbon/v2/creator.go @@ -13,7 +13,7 @@ func CreateFromStdTime(stdTime StdTime, timezone ...string) *Carbon { loc *Location err error ) - if loc, err = parseTimezone(timezone[0]); err != nil { + if loc, err = parseTimezone(timezone...); err != nil { return &Carbon{Error: err} } return NewCarbon(stdTime.In(loc)) @@ -22,16 +22,10 @@ func CreateFromStdTime(stdTime StdTime, timezone ...string) *Carbon { // CreateFromTimestamp creates a Carbon instance from a given timestamp with second precision. func CreateFromTimestamp(timestamp int64, timezone ...string) *Carbon { var ( - tz string loc *Location err error ) - if len(timezone) > 0 { - tz = timezone[0] - } else { - tz = DefaultTimezone - } - if loc, err = parseTimezone(tz); err != nil { + if loc, err = parseTimezone(timezone...); err != nil { return &Carbon{Error: err} } return NewCarbon(time.Unix(timestamp, MinNanosecond).In(loc)) @@ -40,16 +34,10 @@ func CreateFromTimestamp(timestamp int64, timezone ...string) *Carbon { // CreateFromTimestampMilli creates a Carbon instance from a given timestamp with millisecond precision. func CreateFromTimestampMilli(timestampMilli int64, timezone ...string) *Carbon { var ( - tz string loc *Location err error ) - if len(timezone) > 0 { - tz = timezone[0] - } else { - tz = DefaultTimezone - } - if loc, err = parseTimezone(tz); err != nil { + if loc, err = parseTimezone(timezone...); err != nil { return &Carbon{Error: err} } return NewCarbon(time.Unix(timestampMilli/1e3, (timestampMilli%1e3)*1e6).In(loc)) @@ -58,16 +46,10 @@ func CreateFromTimestampMilli(timestampMilli int64, timezone ...string) *Carbon // CreateFromTimestampMicro creates a Carbon instance from a given timestamp with microsecond precision. func CreateFromTimestampMicro(timestampMicro int64, timezone ...string) *Carbon { var ( - tz string loc *Location err error ) - if len(timezone) > 0 { - tz = timezone[0] - } else { - tz = DefaultTimezone - } - if loc, err = parseTimezone(tz); err != nil { + if loc, err = parseTimezone(timezone...); err != nil { return &Carbon{Error: err} } return NewCarbon(time.Unix(timestampMicro/1e6, (timestampMicro%1e6)*1e3).In(loc)) @@ -76,16 +58,10 @@ func CreateFromTimestampMicro(timestampMicro int64, timezone ...string) *Carbon // CreateFromTimestampNano creates a Carbon instance from a given timestamp with nanosecond precision. func CreateFromTimestampNano(timestampNano int64, timezone ...string) *Carbon { var ( - tz string loc *Location err error ) - if len(timezone) > 0 { - tz = timezone[0] - } else { - tz = DefaultTimezone - } - if loc, err = parseTimezone(tz); err != nil { + if loc, err = parseTimezone(timezone...); err != nil { return &Carbon{Error: err} } return NewCarbon(time.Unix(timestampNano/1e9, timestampNano%1e9).In(loc)) @@ -158,16 +134,10 @@ func CreateFromTimeNano(hour, minute, second, nanosecond int, timezone ...string // creates a new Carbon instance from a given date, time and nanosecond. func create(year, month, day, hour, minute, second, nanosecond int, timezone ...string) *Carbon { var ( - tz string loc *Location err error ) - if len(timezone) > 0 { - tz = timezone[0] - } else { - tz = DefaultTimezone - } - if loc, err = parseTimezone(tz); err != nil { + if loc, err = parseTimezone(timezone...); err != nil { return &Carbon{Error: err} } return NewCarbon(time.Date(year, time.Month(month), day, hour, minute, second, nanosecond, loc)) diff --git a/vendor/github.com/dromara/carbon/v2/difference.go b/vendor/github.com/dromara/carbon/v2/difference.go index 1fa64693..2cc960fa 100644 --- a/vendor/github.com/dromara/carbon/v2/difference.go +++ b/vendor/github.com/dromara/carbon/v2/difference.go @@ -235,7 +235,15 @@ func (c *Carbon) DiffInDuration(carbon ...*Carbon) Duration { // DiffAbsInDuration gets the difference in duration with absolute value. func (c *Carbon) DiffAbsInDuration(carbon ...*Carbon) Duration { - return c.DiffInDuration(carbon...).Abs() + d := c.DiffInDuration(carbon...) + switch { + case d >= 0: + return d + case d == minDuration: + return maxDuration + default: + return -d + } } // DiffForHumans gets the difference in a human-readable format, i18n is supported. diff --git a/vendor/github.com/dromara/carbon/v2/helper.go b/vendor/github.com/dromara/carbon/v2/helper.go index 16a00e20..94c4b427 100644 --- a/vendor/github.com/dromara/carbon/v2/helper.go +++ b/vendor/github.com/dromara/carbon/v2/helper.go @@ -131,24 +131,30 @@ func format2layout(format string) string { // timezoneCache caches parsed timezone locations to avoid repeated parsing var timezoneCache sync.Map -// parses a timezone string as a time.Location instance. -func parseTimezone(timezone string) (loc *Location, err error) { - if timezone == "" { +// parses timezone strings as a time.Location instance. +func parseTimezone(timezone ...string) (loc *Location, err error) { + var tz string + if len(timezone) > 0 { + tz = timezone[0] + } else { + tz = DefaultTimezone + } + if tz == "" { return nil, ErrEmptyTimezone() } // Check cache first - if cached, exists := timezoneCache.Load(timezone); exists { + if cached, exists := timezoneCache.Load(tz); exists { return cached.(*Location), nil } - if loc, err = time.LoadLocation(timezone); err != nil { - err = fmt.Errorf("%w: %w", ErrInvalidTimezone(timezone), err) + if loc, err = time.LoadLocation(tz); err != nil { + err = fmt.Errorf("%w: %w", ErrInvalidTimezone(tz), err) return } // Cache the successful result - timezoneCache.Store(timezone, loc) + timezoneCache.Store(tz, loc) return } diff --git a/vendor/github.com/dromara/carbon/v2/lang/af.json b/vendor/github.com/dromara/carbon/v2/lang/af.json new file mode 100644 index 00000000..618e54e0 --- /dev/null +++ b/vendor/github.com/dromara/carbon/v2/lang/af.json @@ -0,0 +1,22 @@ +{ + "name": "Afrikaans", + "author": "https://cursor.com/", + "months": "Januarie|Februarie|Maart|April|Mei|Junie|Julie|Augustus|September|Oktober|November|Desember", + "short_months": "Jan|Feb|Mrt|Apr|Mei|Jun|Jul|Aug|Sep|Okt|Nov|Des", + "weeks": "Sondag|Maandag|Dinsdag|Woensdag|Donderdag|Vrydag|Saterdag", + "short_weeks": "So|Ma|Di|Wo|Do|Vr|Sa", + "seasons": "Lente|Somer|Herfs|Winter", + "constellations": "Ram|Bul|Tweelinge|Kreef|Leeu|Maagd|Weegskaal|Skerpioen|Boogskutter|Steenbok|Waterdraer|Visse", + "year": "1 jaar|%d jare", + "month": "1 maand|%d maande", + "week": "1 week|%d weke", + "day": "1 dag|%d dae", + "hour": "1 uur|%d ure", + "minute": "1 minuut|%d minute", + "second": "1 sekonde|%d sekondes", + "now": "nou net", + "ago": "%s gelede", + "from_now": "%s van nou af", + "before": "%s voor", + "after": "%s na" +} diff --git a/vendor/github.com/dromara/carbon/v2/lang/mn.json b/vendor/github.com/dromara/carbon/v2/lang/mn.json new file mode 100644 index 00000000..88022af3 --- /dev/null +++ b/vendor/github.com/dromara/carbon/v2/lang/mn.json @@ -0,0 +1,22 @@ +{ + "name": "Mongolian", + "author": "https://cursor.com/", + "months": "Нэгдүгээр сар|Хоёрдугаар сар|Гуравдугаар сар|Дөрөвдүгээр сар|Тавдугаар сар|Зургадугаар сар|Долдугаар сар|Наймдугаар сар|Есдүгээр сар|Аравдугаар сар|Арван нэгдүгээр сар|Арван хоёрдугаар сар", + "short_months": "1-р сар|2-р сар|3-р сар|4-р сар|5-р сар|6-р сар|7-р сар|8-р сар|9-р сар|10-р сар|11-р сар|12-р сар", + "weeks": "Ням|Даваа|Мягмар|Лхагва|Пүрэв|Баасан|Бямба", + "short_weeks": "Ня|Да|Мя|Лх|Пү|Ба|Бя", + "seasons": "Хавар|Зун|Намар|Өвөл", + "constellations": "Хуч|Үхэр|Ихэр|Хавч|Арслан|Охин|Жин|Хилэнцэт|Нум|Матар|Хүмхэн|Загас", + "year": "%d жил", + "month": "%d сар", + "week": "%d долоо хоног", + "day": "%d өдөр", + "hour": "%d цаг", + "minute": "%d минут", + "second": "%d секунд", + "now": "яг одоо", + "ago": "%s өмнө", + "from_now": "%s дараа", + "before": "%s өмнө", + "after": "%s дараа" +} diff --git a/vendor/github.com/dromara/carbon/v2/lang/nb.json b/vendor/github.com/dromara/carbon/v2/lang/nb.json index 0da803b8..9ec0ea5b 100644 --- a/vendor/github.com/dromara/carbon/v2/lang/nb.json +++ b/vendor/github.com/dromara/carbon/v2/lang/nb.json @@ -1,5 +1,5 @@ { - "name": "Norsk bokmål", + "name": "Norwegian", "author": "https://github.com/bendikrb ", "months": "januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember", "short_months": "jan|feb|mar|apr|mai|jun|jul|aug|sep|okt|nov|des", diff --git a/vendor/github.com/dromara/carbon/v2/lang/nl.json b/vendor/github.com/dromara/carbon/v2/lang/nl.json index e9df4408..bde46306 100644 --- a/vendor/github.com/dromara/carbon/v2/lang/nl.json +++ b/vendor/github.com/dromara/carbon/v2/lang/nl.json @@ -3,7 +3,7 @@ "author": "https://github.com/RemcoE33", "months": "januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december", "short_months": "jan|feb|mrt|apr|mei|jun|jul|aug|sep|okt|nov|dec", - "weeks": "Zondag|Maandag|Dinsdag|Woensdag|Donderdag|Vrijdag|Zaterdag|Zondag", + "weeks": "Zondag|Maandag|Dinsdag|Woensdag|Donderdag|Vrijdag|Zaterdag", "short_weeks": "zo|ma|di|wo|do|vr|za", "seasons": "Lente|Zomer|Herfst|Winter", "constellations": "Ram|Stier|Tweelingen|Kreeft|Leeuw|Maagd|Weegschaal|Schorpioen|Boogschutter|Steenbok|Waterman|Vissen", diff --git a/vendor/github.com/dromara/carbon/v2/outputer.go b/vendor/github.com/dromara/carbon/v2/outputer.go index 4fa252f0..a09dfd67 100644 --- a/vendor/github.com/dromara/carbon/v2/outputer.go +++ b/vendor/github.com/dromara/carbon/v2/outputer.go @@ -18,7 +18,7 @@ func (c *Carbon) GoString() string { // ToString outputs a string in "2006-01-02 15:04:05.999999999 -0700 MST" layout. func (c *Carbon) ToString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -29,7 +29,7 @@ func (c *Carbon) ToString(timezone ...string) string { // ToMonthString outputs a string in month layout like "January", i18n is supported. func (c *Carbon) ToMonthString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -55,7 +55,7 @@ func (c *Carbon) ToMonthString(timezone ...string) string { // ToShortMonthString outputs a string in short month layout like "Jan", i18n is supported. func (c *Carbon) ToShortMonthString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -81,7 +81,7 @@ func (c *Carbon) ToShortMonthString(timezone ...string) string { // ToWeekString outputs a string in week layout like "Sunday", i18n is supported. func (c *Carbon) ToWeekString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -107,7 +107,7 @@ func (c *Carbon) ToWeekString(timezone ...string) string { // ToShortWeekString outputs a string in short week layout like "Sun", i18n is supported. func (c *Carbon) ToShortWeekString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -133,7 +133,7 @@ func (c *Carbon) ToShortWeekString(timezone ...string) string { // ToDayDateTimeString outputs a string in "Mon, Jan 2, 2006 3:04 PM" layout. func (c *Carbon) ToDayDateTimeString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -144,7 +144,7 @@ func (c *Carbon) ToDayDateTimeString(timezone ...string) string { // ToDateTimeString outputs a string in "2006-01-02 15:04:05" layout. func (c *Carbon) ToDateTimeString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -155,7 +155,7 @@ func (c *Carbon) ToDateTimeString(timezone ...string) string { // ToDateTimeMilliString outputs a string in "2006-01-02 15:04:05.999" layout. func (c *Carbon) ToDateTimeMilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -166,7 +166,7 @@ func (c *Carbon) ToDateTimeMilliString(timezone ...string) string { // ToDateTimeMicroString outputs a string in "2006-01-02 15:04:05.999999" layout. func (c *Carbon) ToDateTimeMicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -177,7 +177,7 @@ func (c *Carbon) ToDateTimeMicroString(timezone ...string) string { // ToDateTimeNanoString outputs a string in "2006-01-02 15:04:05.999999999" layout. func (c *Carbon) ToDateTimeNanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -188,7 +188,7 @@ func (c *Carbon) ToDateTimeNanoString(timezone ...string) string { // ToShortDateTimeString outputs a string in "20060102150405" layout. func (c *Carbon) ToShortDateTimeString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -200,7 +200,7 @@ func (c *Carbon) ToShortDateTimeString(timezone ...string) string { // 输出 "20060102150405.999" 格式字符串 func (c *Carbon) ToShortDateTimeMilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -211,7 +211,7 @@ func (c *Carbon) ToShortDateTimeMilliString(timezone ...string) string { // ToShortDateTimeMicroString outputs a string in "20060102150405.999999" layout. func (c *Carbon) ToShortDateTimeMicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -222,7 +222,7 @@ func (c *Carbon) ToShortDateTimeMicroString(timezone ...string) string { // ToShortDateTimeNanoString outputs a string in "20060102150405.999999999" layout. func (c *Carbon) ToShortDateTimeNanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -233,7 +233,7 @@ func (c *Carbon) ToShortDateTimeNanoString(timezone ...string) string { // ToDateString outputs a string in "2006-01-02" layout. func (c *Carbon) ToDateString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -244,7 +244,7 @@ func (c *Carbon) ToDateString(timezone ...string) string { // ToDateMilliString outputs a string in "2006-01-02.999" layout. func (c *Carbon) ToDateMilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -255,7 +255,7 @@ func (c *Carbon) ToDateMilliString(timezone ...string) string { // ToDateMicroString outputs a string in "2006-01-02.999999" layout. func (c *Carbon) ToDateMicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -266,7 +266,7 @@ func (c *Carbon) ToDateMicroString(timezone ...string) string { // ToDateNanoString outputs a string in "2006-01-02.999999999" layout. func (c *Carbon) ToDateNanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -277,7 +277,7 @@ func (c *Carbon) ToDateNanoString(timezone ...string) string { // ToShortDateString outputs a string in "20060102" layout. func (c *Carbon) ToShortDateString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -288,7 +288,7 @@ func (c *Carbon) ToShortDateString(timezone ...string) string { // ToShortDateMilliString outputs a string in "20060102.999" layout. func (c *Carbon) ToShortDateMilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -299,7 +299,7 @@ func (c *Carbon) ToShortDateMilliString(timezone ...string) string { // ToShortDateMicroString outputs a string in "20060102.999999" layout. func (c *Carbon) ToShortDateMicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -310,7 +310,7 @@ func (c *Carbon) ToShortDateMicroString(timezone ...string) string { // ToShortDateNanoString outputs a string in "20060102.999999999" layout. func (c *Carbon) ToShortDateNanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -321,7 +321,7 @@ func (c *Carbon) ToShortDateNanoString(timezone ...string) string { // ToTimeString outputs a string in "15:04:05" layout. func (c *Carbon) ToTimeString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -332,7 +332,7 @@ func (c *Carbon) ToTimeString(timezone ...string) string { // ToTimeMilliString outputs a string in "15:04:05.999" layout. func (c *Carbon) ToTimeMilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -343,7 +343,7 @@ func (c *Carbon) ToTimeMilliString(timezone ...string) string { // ToTimeMicroString outputs a string in "15:04:05.999999" layout. func (c *Carbon) ToTimeMicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -354,7 +354,7 @@ func (c *Carbon) ToTimeMicroString(timezone ...string) string { // ToTimeNanoString outputs a string in "15:04:05.999999999" layout. func (c *Carbon) ToTimeNanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -365,7 +365,7 @@ func (c *Carbon) ToTimeNanoString(timezone ...string) string { // ToShortTimeString outputs a string in "150405" layout. func (c *Carbon) ToShortTimeString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -376,7 +376,7 @@ func (c *Carbon) ToShortTimeString(timezone ...string) string { // ToShortTimeMilliString outputs a string in "150405.999" layout. func (c *Carbon) ToShortTimeMilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -387,7 +387,7 @@ func (c *Carbon) ToShortTimeMilliString(timezone ...string) string { // ToShortTimeMicroString outputs a string in "150405.999999" layout. func (c *Carbon) ToShortTimeMicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -398,7 +398,7 @@ func (c *Carbon) ToShortTimeMicroString(timezone ...string) string { // ToShortTimeNanoString outputs a string in "150405.999999999" layout. func (c *Carbon) ToShortTimeNanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -409,7 +409,7 @@ func (c *Carbon) ToShortTimeNanoString(timezone ...string) string { // ToAtomString outputs a string in "2006-01-02T15:04:05Z07:00" layout. func (c *Carbon) ToAtomString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -420,7 +420,7 @@ func (c *Carbon) ToAtomString(timezone ...string) string { // ToAnsicString outputs a string in "Mon Jan _2 15:04:05 2006" layout. func (c *Carbon) ToAnsicString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -431,7 +431,7 @@ func (c *Carbon) ToAnsicString(timezone ...string) string { // ToCookieString outputs a string in "Monday, 02-Jan-2006 15:04:05 MST" layout. func (c *Carbon) ToCookieString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -442,7 +442,7 @@ func (c *Carbon) ToCookieString(timezone ...string) string { // ToRssString outputs a string in "Mon, 02 Jan 2006 15:04:05 -0700" format. func (c *Carbon) ToRssString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -453,7 +453,7 @@ func (c *Carbon) ToRssString(timezone ...string) string { // ToW3cString outputs a string in "2006-01-02T15:04:05Z07:00" layout. func (c *Carbon) ToW3cString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -464,7 +464,7 @@ func (c *Carbon) ToW3cString(timezone ...string) string { // ToUnixDateString outputs a string in "Mon Jan _2 15:04:05 MST 2006" layout. func (c *Carbon) ToUnixDateString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -475,7 +475,7 @@ func (c *Carbon) ToUnixDateString(timezone ...string) string { // ToRubyDateString outputs a string in "Mon Jan 02 15:04:05 -0700 2006" layout. func (c *Carbon) ToRubyDateString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -486,7 +486,7 @@ func (c *Carbon) ToRubyDateString(timezone ...string) string { // ToKitchenString outputs a string in "3:04PM" layout. func (c *Carbon) ToKitchenString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -494,10 +494,21 @@ func (c *Carbon) ToKitchenString(timezone ...string) string { return c.StdTime().Format(KitchenLayout) } +// ToHttpString outputs a string in "Mon, 02 Jan 2006 15:04:05 GMT" layout. +func (c *Carbon) ToHttpString(timezone ...string) string { + if len(timezone) > 0 { + c.loc, c.Error = parseTimezone(timezone...) + } + if c.IsInvalid() { + return "" + } + return c.StdTime().Format(HttpLayout) +} + // ToIso8601String outputs a string in "2006-01-02T15:04:05-07:00" layout. func (c *Carbon) ToIso8601String(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -508,7 +519,7 @@ func (c *Carbon) ToIso8601String(timezone ...string) string { // ToIso8601MilliString outputs a string in "2006-01-02T15:04:05.999-07:00" layout. func (c *Carbon) ToIso8601MilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -519,7 +530,7 @@ func (c *Carbon) ToIso8601MilliString(timezone ...string) string { // ToIso8601MicroString outputs a string in "2006-01-02T15:04:05.999999-07:00" layout. func (c *Carbon) ToIso8601MicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -530,7 +541,7 @@ func (c *Carbon) ToIso8601MicroString(timezone ...string) string { // ToIso8601NanoString outputs a string in "2006-01-02T15:04:05.999999999-07:00" layout. func (c *Carbon) ToIso8601NanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -541,7 +552,7 @@ func (c *Carbon) ToIso8601NanoString(timezone ...string) string { // ToIso8601ZuluString outputs a string in "2006-01-02T15:04:05Z" layout. func (c *Carbon) ToIso8601ZuluString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -552,7 +563,7 @@ func (c *Carbon) ToIso8601ZuluString(timezone ...string) string { // ToIso8601ZuluMilliString outputs a string in "2006-01-02T15:04:05.999Z" layout. func (c *Carbon) ToIso8601ZuluMilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -563,7 +574,7 @@ func (c *Carbon) ToIso8601ZuluMilliString(timezone ...string) string { // ToIso8601ZuluMicroString outputs a string in "2006-01-02T15:04:05.999999Z" layout. func (c *Carbon) ToIso8601ZuluMicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -574,7 +585,7 @@ func (c *Carbon) ToIso8601ZuluMicroString(timezone ...string) string { // ToIso8601ZuluNanoString outputs a string in "2006-01-02T15:04:05.999999999Z" layout. func (c *Carbon) ToIso8601ZuluNanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -585,7 +596,7 @@ func (c *Carbon) ToIso8601ZuluNanoString(timezone ...string) string { // ToRfc822String outputs a string in "02 Jan 06 15:04 MST" layout. func (c *Carbon) ToRfc822String(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -596,7 +607,7 @@ func (c *Carbon) ToRfc822String(timezone ...string) string { // ToRfc822zString outputs a string in "02 Jan 06 15:04 -0700" layout. func (c *Carbon) ToRfc822zString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -607,7 +618,7 @@ func (c *Carbon) ToRfc822zString(timezone ...string) string { // ToRfc850String outputs a string in "Monday, 02-Jan-06 15:04:05 MST" layout. func (c *Carbon) ToRfc850String(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -618,7 +629,7 @@ func (c *Carbon) ToRfc850String(timezone ...string) string { // ToRfc1036String outputs a string in "Mon, 02 Jan 06 15:04:05 -0700" layout. func (c *Carbon) ToRfc1036String(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -629,7 +640,7 @@ func (c *Carbon) ToRfc1036String(timezone ...string) string { // ToRfc1123String outputs a string in "Mon, 02 Jan 2006 15:04:05 MST" layout. func (c *Carbon) ToRfc1123String(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -640,7 +651,7 @@ func (c *Carbon) ToRfc1123String(timezone ...string) string { // ToRfc1123zString outputs a string in "Mon, 02 Jan 2006 15:04:05 -0700" layout. func (c *Carbon) ToRfc1123zString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -651,7 +662,7 @@ func (c *Carbon) ToRfc1123zString(timezone ...string) string { // ToRfc2822String outputs a string in "Mon, 02 Jan 2006 15:04:05 -0700" layout. func (c *Carbon) ToRfc2822String(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -662,7 +673,7 @@ func (c *Carbon) ToRfc2822String(timezone ...string) string { // ToRfc3339String outputs a string in "2006-01-02T15:04:05Z07:00" layout. func (c *Carbon) ToRfc3339String(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -673,7 +684,7 @@ func (c *Carbon) ToRfc3339String(timezone ...string) string { // ToRfc3339MilliString outputs a string in "2006-01-02T15:04:05.999Z07:00" layout. func (c *Carbon) ToRfc3339MilliString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -684,7 +695,7 @@ func (c *Carbon) ToRfc3339MilliString(timezone ...string) string { // ToRfc3339MicroString outputs a string in "2006-01-02T15:04:05.999999Z07:00" layout. func (c *Carbon) ToRfc3339MicroString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -695,7 +706,7 @@ func (c *Carbon) ToRfc3339MicroString(timezone ...string) string { // ToRfc3339NanoString outputs a string in "2006-01-02T15:04:05.999999999Z07:00" layout. func (c *Carbon) ToRfc3339NanoString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -706,7 +717,7 @@ func (c *Carbon) ToRfc3339NanoString(timezone ...string) string { // ToRfc7231String outputs a string in "Mon, 02 Jan 2006 15:04:05 GMT" layout. func (c *Carbon) ToRfc7231String(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -717,7 +728,7 @@ func (c *Carbon) ToRfc7231String(timezone ...string) string { // ToFormattedDateString outputs a string in "Jan 2, 2006" layout. func (c *Carbon) ToFormattedDateString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -728,7 +739,7 @@ func (c *Carbon) ToFormattedDateString(timezone ...string) string { // ToFormattedDayDateString outputs a string in "Mon, Jan 2, 2006" layout. func (c *Carbon) ToFormattedDayDateString(timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -739,7 +750,7 @@ func (c *Carbon) ToFormattedDayDateString(timezone ...string) string { // Layout outputs a string by layout. func (c *Carbon) Layout(layout string, timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" @@ -760,7 +771,7 @@ func (c *Carbon) Layout(layout string, timezone ...string) string { // Format outputs a string by format. func (c *Carbon) Format(format string, timezone ...string) string { if len(timezone) > 0 { - c.loc, c.Error = parseTimezone(timezone[0]) + c.loc, c.Error = parseTimezone(timezone...) } if c.IsInvalid() { return "" diff --git a/vendor/github.com/dromara/carbon/v2/parser.go b/vendor/github.com/dromara/carbon/v2/parser.go index 6b799db9..57306f23 100644 --- a/vendor/github.com/dromara/carbon/v2/parser.go +++ b/vendor/github.com/dromara/carbon/v2/parser.go @@ -12,7 +12,7 @@ func Parse(value string, timezone ...string) *Carbon { if value == "" { return &Carbon{isEmpty: true} } - loc, err := getLocation(timezone...) + loc, err := parseTimezone(timezone...) if err != nil { return &Carbon{Error: err} } @@ -49,7 +49,7 @@ func ParseByLayout(value, layout string, timezone ...string) *Carbon { return &Carbon{Error: ErrEmptyLayout()} } - loc, err := getLocation(timezone...) + loc, err := parseTimezone(timezone...) if err != nil { return &Carbon{Error: err} } @@ -76,7 +76,7 @@ func ParseByFormat(value, format string, timezone ...string) *Carbon { if format == "" { return &Carbon{Error: ErrEmptyFormat()} } - loc, err := getLocation(timezone...) + loc, err := parseTimezone(timezone...) if err != nil { return &Carbon{Error: err} } @@ -105,7 +105,7 @@ func ParseByLayouts(value string, layouts []string, timezone ...string) *Carbon return &Carbon{Error: ErrEmptyLayout()} } - loc, err := getLocation(timezone...) + loc, err := parseTimezone(timezone...) if err != nil { return &Carbon{Error: err} } @@ -133,7 +133,7 @@ func ParseByFormats(value string, formats []string, timezone ...string) *Carbon return &Carbon{Error: ErrEmptyFormat()} } - loc, err := getLocation(timezone...) + loc, err := parseTimezone(timezone...) if err != nil { return &Carbon{Error: err} } @@ -150,14 +150,3 @@ func ParseByFormats(value string, formats []string, timezone ...string) *Carbon c.Error = ErrFailedParse(value) return c } - -// getLocation parses and returns location from timezone parameter with fallback to default. -func getLocation(timezone ...string) (*Location, error) { - var tz string - if len(timezone) > 0 { - tz = timezone[0] - } else { - tz = DefaultTimezone - } - return parseTimezone(tz) -} diff --git a/vendor/github.com/dromara/carbon/v2/traveler.go b/vendor/github.com/dromara/carbon/v2/traveler.go index 7f9c6cfe..c36a266b 100644 --- a/vendor/github.com/dromara/carbon/v2/traveler.go +++ b/vendor/github.com/dromara/carbon/v2/traveler.go @@ -7,16 +7,10 @@ import ( // Now returns a Carbon instance for now. func Now(timezone ...string) *Carbon { var ( - tz string loc *Location err error ) - if len(timezone) > 0 { - tz = timezone[0] - } else { - tz = DefaultTimezone - } - if loc, err = parseTimezone(tz); err != nil { + if loc, err = parseTimezone(timezone...); err != nil { return &Carbon{Error: err} } if IsTestNow() { diff --git a/vendor/github.com/dromara/carbon/v2/interfaces.go b/vendor/github.com/dromara/carbon/v2/type_interface.go similarity index 100% rename from vendor/github.com/dromara/carbon/v2/interfaces.go rename to vendor/github.com/dromara/carbon/v2/type_interface.go diff --git a/vendor/github.com/getsentry/sentry-go/.codecov.yml b/vendor/github.com/getsentry/sentry-go/.codecov.yml index 557e1aa1..0acb2e27 100644 --- a/vendor/github.com/getsentry/sentry-go/.codecov.yml +++ b/vendor/github.com/getsentry/sentry-go/.codecov.yml @@ -11,5 +11,8 @@ coverage: default: # Do not fail the commit status if the coverage was reduced up to this value threshold: 0.5% + patch: + default: + informational: true ignore: - "log_fallback.go" diff --git a/vendor/github.com/getsentry/sentry-go/CHANGELOG.md b/vendor/github.com/getsentry/sentry-go/CHANGELOG.md index d8beaa05..9e811615 100644 --- a/vendor/github.com/getsentry/sentry-go/CHANGELOG.md +++ b/vendor/github.com/getsentry/sentry-go/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## Unreleased Changes + +### Breaking Changes + +## 0.37.0 + +The Sentry SDK team is happy to announce the immediate availability of Sentry Go SDK v0.37.0. + +### Breaking Changes + +- Behavioral change for the `TraceIgnoreStatusCodes` option. The option now defaults to ignoring 404 status codes ([#1122](https://github.com/getsentry/sentry-go/pull/1122)). + +### Features + +- Add `sentry.origin` attribute to structured logs to identify log origin for `slog` and `logrus` integrations (`auto.log.slog`, `auto.log.logrus`) ([#1121](https://github.com/getsentry/sentry-go/pull/1121)). + +### Bug Fixes + +- Fix `slog` event handler to use the initial context, ensuring events use the correct hub/span when the emission context lacks one ([#1133](https://github.com/getsentry/sentry-go/pull/1133)). +- Improve exception chain processing by checking pointer values when tracking visited errors, avoiding instability for certain wrapped errors ([#1132](https://github.com/getsentry/sentry-go/pull/1132)). + +### Misc + +- Bump `golang.org/x/net` to v0.38.0 ([#1126](https://github.com/getsentry/sentry-go/pull/1126)). + ## 0.36.2 The Sentry SDK team is happy to announce the immediate availability of Sentry Go SDK v0.36.2. diff --git a/vendor/github.com/getsentry/sentry-go/Makefile b/vendor/github.com/getsentry/sentry-go/Makefile index 26d993e9..6b98f509 100644 --- a/vendor/github.com/getsentry/sentry-go/Makefile +++ b/vendor/github.com/getsentry/sentry-go/Makefile @@ -70,7 +70,7 @@ mod-tidy: ## Check go.mod tidiness set -e ; \ for dir in $(ALL_GO_MOD_DIRS); do \ echo ">>> Running 'go mod tidy' for module: $${dir}"; \ - (cd "$${dir}" && go mod tidy -go=1.23 -compat=1.23); \ + (cd "$${dir}" && GOTOOLCHAIN=local go mod tidy -go=1.23.0 -compat=1.23); \ done; \ git diff --exit-code; .PHONY: mod-tidy diff --git a/vendor/github.com/getsentry/sentry-go/README.md b/vendor/github.com/getsentry/sentry-go/README.md index 59a989d8..1941fa06 100644 --- a/vendor/github.com/getsentry/sentry-go/README.md +++ b/vendor/github.com/getsentry/sentry-go/README.md @@ -13,6 +13,7 @@ [![Build Status](https://github.com/getsentry/sentry-go/actions/workflows/test.yml/badge.svg)](https://github.com/getsentry/sentry-go/actions/workflows/test.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/getsentry/sentry-go)](https://goreportcard.com/report/github.com/getsentry/sentry-go) [![Discord](https://img.shields.io/discord/621778831602221064)](https://discord.gg/Ww9hbqr) +[![X Follow](https://img.shields.io/twitter/follow/sentry?label=sentry&style=social)](https://x.com/intent/follow?screen_name=sentry) [![go.dev](https://img.shields.io/badge/go.dev-pkg-007d9c.svg?style=flat)](https://pkg.go.dev/github.com/getsentry/sentry-go) `sentry-go` provides a Sentry client implementation for the Go programming diff --git a/vendor/github.com/getsentry/sentry-go/client.go b/vendor/github.com/getsentry/sentry-go/client.go index 34623022..03800f81 100644 --- a/vendor/github.com/getsentry/sentry-go/client.go +++ b/vendor/github.com/getsentry/sentry-go/client.go @@ -247,7 +247,10 @@ type ClientOptions struct { // [][]int{{404}, {500}} // ignore status codes 404 and 500 // [][]int{{404}, {400, 405}, {500, 599}} // ignore 404, range 400-405, and range 500-599 // - // By default, this is empty and all status codes are traced. + // By default, this ignores 404 status codes. + // + // IMPORTANT: to not ignore any status codes, the option should be an empty slice and not nil. The nil option is + // used for defaulting to 404 ignores. TraceIgnoreStatusCodes [][]int } @@ -325,6 +328,10 @@ func NewClient(options ClientOptions) (*Client, error) { options.MaxSpans = defaultMaxSpans } + if options.TraceIgnoreStatusCodes == nil { + options.TraceIgnoreStatusCodes = [][]int{{404}} + } + // SENTRYGODEBUG is a comma-separated list of key=value pairs (similar // to GODEBUG). It is not a supported feature: recognized debug options // may change any time. diff --git a/vendor/github.com/getsentry/sentry-go/exception.go b/vendor/github.com/getsentry/sentry-go/exception.go index 9505c990..f7ef4a00 100644 --- a/vendor/github.com/getsentry/sentry-go/exception.go +++ b/vendor/github.com/getsentry/sentry-go/exception.go @@ -14,21 +14,18 @@ const ( ) type visited struct { - comparable map[error]struct{} - msgs map[string]struct{} + ptrs map[uintptr]struct{} + msgs map[string]struct{} } func (v *visited) seenError(err error) bool { - t := reflect.TypeOf(err) - if t == nil { - return false - } - - if t.Comparable() { - if _, ok := v.comparable[err]; ok { + t := reflect.ValueOf(err) + if t.Kind() == reflect.Ptr && !t.IsNil() { + ptr := t.Pointer() + if _, ok := v.ptrs[ptr]; ok { return true } - v.comparable[err] = struct{}{} + v.ptrs[ptr] = struct{}{} return false } @@ -43,8 +40,8 @@ func (v *visited) seenError(err error) bool { func convertErrorToExceptions(err error, maxErrorDepth int) []Exception { var exceptions []Exception vis := &visited{ - make(map[error]struct{}), - make(map[string]struct{}), + ptrs: make(map[uintptr]struct{}), + msgs: make(map[string]struct{}), } convertErrorDFS(err, &exceptions, nil, "", vis, maxErrorDepth, 0) diff --git a/vendor/github.com/getsentry/sentry-go/sentry.go b/vendor/github.com/getsentry/sentry-go/sentry.go index b349944f..9f17cbc5 100644 --- a/vendor/github.com/getsentry/sentry-go/sentry.go +++ b/vendor/github.com/getsentry/sentry-go/sentry.go @@ -6,7 +6,7 @@ import ( ) // The version of the SDK. -const SDKVersion = "0.36.2" +const SDKVersion = "0.37.0" // apiVersion is the minimum version of the Sentry API compatible with the // sentry-go SDK. diff --git a/vendor/github.com/gotd/td/telegram/auth/qrlogin/qrlogin.go b/vendor/github.com/gotd/td/telegram/auth/qrlogin/qrlogin.go index e306f3ee..09e1c992 100644 --- a/vendor/github.com/gotd/td/telegram/auth/qrlogin/qrlogin.go +++ b/vendor/github.com/gotd/td/telegram/auth/qrlogin/qrlogin.go @@ -47,11 +47,21 @@ func (q QR) Export(ctx context.Context, exceptIDs ...int64) (Token, error) { return Token{}, errors.Wrap(err, "export") } - t, ok := result.(*tg.AuthLoginToken) - if !ok { + switch t := result.(type) { + case *tg.AuthLoginToken: + return NewToken(t.Token, t.Expires), nil + case *tg.AuthLoginTokenSuccess: + // Token was already accepted, authentication successful + // Return empty token since no new token is needed + return Token{}, nil + case *tg.AuthLoginTokenMigrateTo: + // Migration needed + return Token{}, &MigrationNeededError{ + MigrateTo: t, + } + default: return Token{}, errors.Errorf("unexpected type %T", result) } - return NewToken(t.Token, t.Expires), nil } // Accept accepts given token. @@ -147,6 +157,18 @@ func (q QR) Auth( if err != nil { return nil, err } + + // If token is empty, it means AuthLoginTokenSuccess was returned + // and authentication is already complete, but we should wait for the signal. + if token.Empty() { + select { + case <-ctx.Done(): + return nil, ctx.Err() + case <-loggedIn: + return q.Import(ctx) + } + } + timer := q.clock.Timer(until(token)) defer clock.StopTimer(timer) @@ -163,6 +185,13 @@ func (q QR) Auth( if err != nil { return nil, err } + + if t.Empty() { + // If empty token, it means AuthLoginTokenSuccess was returned. + // QR was scanned and accepted, break to import. + break + } + token = t timer.Reset(until(token)) diff --git a/vendor/github.com/gotd/td/telegram/auth/qrlogin/token.go b/vendor/github.com/gotd/td/telegram/auth/qrlogin/token.go index 0107526f..f79b4af9 100644 --- a/vendor/github.com/gotd/td/telegram/auth/qrlogin/token.go +++ b/vendor/github.com/gotd/td/telegram/auth/qrlogin/token.go @@ -59,6 +59,11 @@ func (t Token) String() string { return base64.URLEncoding.EncodeToString(t.token) } +// Empty reports whether token is empty. +func (t Token) Empty() bool { + return len(t.token) == 0 +} + // URL returns login URL. // // See https://core.telegram.org/api/qr-login#exporting-a-login-token. diff --git a/vendor/github.com/microsoft/go-mssqldb/mssql.go b/vendor/github.com/microsoft/go-mssqldb/mssql.go index eae193eb..42714da3 100644 --- a/vendor/github.com/microsoft/go-mssqldb/mssql.go +++ b/vendor/github.com/microsoft/go-mssqldb/mssql.go @@ -292,8 +292,9 @@ func (c *Conn) clearOuts() { c.outs = outputs{} } -func (c *Conn) simpleProcessResp(ctx context.Context) error { +func (c *Conn) simpleProcessResp(ctx context.Context, isRollback bool) error { reader := startReading(c.sess, ctx, c.outs) + reader.noAttn = isRollback c.clearOuts() var resultError error @@ -311,7 +312,7 @@ func (c *Conn) Commit() error { if err := c.sendCommitRequest(); err != nil { return c.checkBadConn(c.transactionCtx, err, true) } - return c.simpleProcessResp(c.transactionCtx) + return c.simpleProcessResp(c.transactionCtx, false) } func (c *Conn) sendCommitRequest() error { @@ -336,7 +337,7 @@ func (c *Conn) Rollback() error { if err := c.sendRollbackRequest(); err != nil { return c.checkBadConn(c.transactionCtx, err, true) } - return c.simpleProcessResp(c.transactionCtx) + return c.simpleProcessResp(c.transactionCtx, true) } func (c *Conn) sendRollbackRequest() error { @@ -390,7 +391,7 @@ func (c *Conn) sendBeginRequest(ctx context.Context, tdsIsolation isoLevel) erro } func (c *Conn) processBeginResponse(ctx context.Context) (driver.Tx, error) { - if err := c.simpleProcessResp(ctx); err != nil { + if err := c.simpleProcessResp(ctx, false); err != nil { return nil, err } // successful BEGINXACT request will return sess.tranid diff --git a/vendor/github.com/microsoft/go-mssqldb/version.go b/vendor/github.com/microsoft/go-mssqldb/version.go index ee43245e..19f8b16c 100644 --- a/vendor/github.com/microsoft/go-mssqldb/version.go +++ b/vendor/github.com/microsoft/go-mssqldb/version.go @@ -4,7 +4,7 @@ import "fmt" // Update this variable with the release tag before pushing the tag // This value is written to the prelogin and login7 packets during a new connection -const driverVersion = "v1.9.3" +const driverVersion = "v1.9.4" func getDriverVersion(ver string) uint32 { var majorVersion uint32 diff --git a/vendor/github.com/syndtr/goleveldb/LICENSE b/vendor/github.com/syndtr/goleveldb/LICENSE deleted file mode 100644 index 4a772d1a..00000000 --- a/vendor/github.com/syndtr/goleveldb/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Copyright 2012 Suryandaru Triandana -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/batch.go b/vendor/github.com/syndtr/goleveldb/leveldb/batch.go deleted file mode 100644 index 22592000..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/batch.go +++ /dev/null @@ -1,349 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "encoding/binary" - "fmt" - "io" - - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/memdb" - "github.com/syndtr/goleveldb/leveldb/storage" -) - -// ErrBatchCorrupted records reason of batch corruption. This error will be -// wrapped with errors.ErrCorrupted. -type ErrBatchCorrupted struct { - Reason string -} - -func (e *ErrBatchCorrupted) Error() string { - return fmt.Sprintf("leveldb: batch corrupted: %s", e.Reason) -} - -func newErrBatchCorrupted(reason string) error { - return errors.NewErrCorrupted(storage.FileDesc{}, &ErrBatchCorrupted{reason}) -} - -const ( - batchHeaderLen = 8 + 4 - batchGrowRec = 3000 - batchBufioSize = 16 -) - -// BatchReplay wraps basic batch operations. -type BatchReplay interface { - Put(key, value []byte) - Delete(key []byte) -} - -type batchIndex struct { - keyType keyType - keyPos, keyLen int - valuePos, valueLen int -} - -func (index batchIndex) k(data []byte) []byte { - return data[index.keyPos : index.keyPos+index.keyLen] -} - -func (index batchIndex) v(data []byte) []byte { - if index.valueLen != 0 { - return data[index.valuePos : index.valuePos+index.valueLen] - } - return nil -} - -func (index batchIndex) kv(data []byte) (key, value []byte) { - return index.k(data), index.v(data) -} - -// Batch is a write batch. -type Batch struct { - data []byte - index []batchIndex - - // internalLen is sums of key/value pair length plus 8-bytes internal key. - internalLen int -} - -func (b *Batch) grow(n int) { - o := len(b.data) - if cap(b.data)-o < n { - div := 1 - if len(b.index) > batchGrowRec { - div = len(b.index) / batchGrowRec - } - ndata := make([]byte, o, o+n+o/div) - copy(ndata, b.data) - b.data = ndata - } -} - -func (b *Batch) appendRec(kt keyType, key, value []byte) { - n := 1 + binary.MaxVarintLen32 + len(key) - if kt == keyTypeVal { - n += binary.MaxVarintLen32 + len(value) - } - b.grow(n) - index := batchIndex{keyType: kt} - o := len(b.data) - data := b.data[:o+n] - data[o] = byte(kt) - o++ - o += binary.PutUvarint(data[o:], uint64(len(key))) - index.keyPos = o - index.keyLen = len(key) - o += copy(data[o:], key) - if kt == keyTypeVal { - o += binary.PutUvarint(data[o:], uint64(len(value))) - index.valuePos = o - index.valueLen = len(value) - o += copy(data[o:], value) - } - b.data = data[:o] - b.index = append(b.index, index) - b.internalLen += index.keyLen + index.valueLen + 8 -} - -// Put appends 'put operation' of the given key/value pair to the batch. -// It is safe to modify the contents of the argument after Put returns but not -// before. -func (b *Batch) Put(key, value []byte) { - b.appendRec(keyTypeVal, key, value) -} - -// Delete appends 'delete operation' of the given key to the batch. -// It is safe to modify the contents of the argument after Delete returns but -// not before. -func (b *Batch) Delete(key []byte) { - b.appendRec(keyTypeDel, key, nil) -} - -// Dump dumps batch contents. The returned slice can be loaded into the -// batch using Load method. -// The returned slice is not its own copy, so the contents should not be -// modified. -func (b *Batch) Dump() []byte { - return b.data -} - -// Load loads given slice into the batch. Previous contents of the batch -// will be discarded. -// The given slice will not be copied and will be used as batch buffer, so -// it is not safe to modify the contents of the slice. -func (b *Batch) Load(data []byte) error { - return b.decode(data, -1) -} - -// Replay replays batch contents. -func (b *Batch) Replay(r BatchReplay) error { - for _, index := range b.index { - switch index.keyType { - case keyTypeVal: - r.Put(index.k(b.data), index.v(b.data)) - case keyTypeDel: - r.Delete(index.k(b.data)) - } - } - return nil -} - -// Len returns number of records in the batch. -func (b *Batch) Len() int { - return len(b.index) -} - -// Reset resets the batch. -func (b *Batch) Reset() { - b.data = b.data[:0] - b.index = b.index[:0] - b.internalLen = 0 -} - -func (b *Batch) replayInternal(fn func(i int, kt keyType, k, v []byte) error) error { - for i, index := range b.index { - if err := fn(i, index.keyType, index.k(b.data), index.v(b.data)); err != nil { - return err - } - } - return nil -} - -func (b *Batch) append(p *Batch) { - ob := len(b.data) - oi := len(b.index) - b.data = append(b.data, p.data...) - b.index = append(b.index, p.index...) - b.internalLen += p.internalLen - - // Updating index offset. - if ob != 0 { - for ; oi < len(b.index); oi++ { - index := &b.index[oi] - index.keyPos += ob - if index.valueLen != 0 { - index.valuePos += ob - } - } - } -} - -func (b *Batch) decode(data []byte, expectedLen int) error { - b.data = data - b.index = b.index[:0] - b.internalLen = 0 - err := decodeBatch(data, func(i int, index batchIndex) error { - b.index = append(b.index, index) - b.internalLen += index.keyLen + index.valueLen + 8 - return nil - }) - if err != nil { - return err - } - if expectedLen >= 0 && len(b.index) != expectedLen { - return newErrBatchCorrupted(fmt.Sprintf("invalid records length: %d vs %d", expectedLen, len(b.index))) - } - return nil -} - -func (b *Batch) putMem(seq uint64, mdb *memdb.DB) error { - var ik []byte - for i, index := range b.index { - ik = makeInternalKey(ik, index.k(b.data), seq+uint64(i), index.keyType) - if err := mdb.Put(ik, index.v(b.data)); err != nil { - return err - } - } - return nil -} - -func (b *Batch) revertMem(seq uint64, mdb *memdb.DB) error { - var ik []byte - for i, index := range b.index { - ik = makeInternalKey(ik, index.k(b.data), seq+uint64(i), index.keyType) - if err := mdb.Delete(ik); err != nil { - return err - } - } - return nil -} - -func newBatch() interface{} { - return &Batch{} -} - -func decodeBatch(data []byte, fn func(i int, index batchIndex) error) error { - var index batchIndex - for i, o := 0, 0; o < len(data); i++ { - // Key type. - index.keyType = keyType(data[o]) - if index.keyType > keyTypeVal { - return newErrBatchCorrupted(fmt.Sprintf("bad record: invalid type %#x", uint(index.keyType))) - } - o++ - - // Key. - x, n := binary.Uvarint(data[o:]) - o += n - if n <= 0 || o+int(x) > len(data) { - return newErrBatchCorrupted("bad record: invalid key length") - } - index.keyPos = o - index.keyLen = int(x) - o += index.keyLen - - // Value. - if index.keyType == keyTypeVal { - x, n = binary.Uvarint(data[o:]) - o += n - if n <= 0 || o+int(x) > len(data) { - return newErrBatchCorrupted("bad record: invalid value length") - } - index.valuePos = o - index.valueLen = int(x) - o += index.valueLen - } else { - index.valuePos = 0 - index.valueLen = 0 - } - - if err := fn(i, index); err != nil { - return err - } - } - return nil -} - -func decodeBatchToMem(data []byte, expectSeq uint64, mdb *memdb.DB) (seq uint64, batchLen int, err error) { - seq, batchLen, err = decodeBatchHeader(data) - if err != nil { - return 0, 0, err - } - if seq < expectSeq { - return 0, 0, newErrBatchCorrupted("invalid sequence number") - } - data = data[batchHeaderLen:] - var ik []byte - var decodedLen int - err = decodeBatch(data, func(i int, index batchIndex) error { - if i >= batchLen { - return newErrBatchCorrupted("invalid records length") - } - ik = makeInternalKey(ik, index.k(data), seq+uint64(i), index.keyType) - if err := mdb.Put(ik, index.v(data)); err != nil { - return err - } - decodedLen++ - return nil - }) - if err == nil && decodedLen != batchLen { - err = newErrBatchCorrupted(fmt.Sprintf("invalid records length: %d vs %d", batchLen, decodedLen)) - } - return -} - -func encodeBatchHeader(dst []byte, seq uint64, batchLen int) []byte { - dst = ensureBuffer(dst, batchHeaderLen) - binary.LittleEndian.PutUint64(dst, seq) - binary.LittleEndian.PutUint32(dst[8:], uint32(batchLen)) - return dst -} - -func decodeBatchHeader(data []byte) (seq uint64, batchLen int, err error) { - if len(data) < batchHeaderLen { - return 0, 0, newErrBatchCorrupted("too short") - } - - seq = binary.LittleEndian.Uint64(data) - batchLen = int(binary.LittleEndian.Uint32(data[8:])) - if batchLen < 0 { - return 0, 0, newErrBatchCorrupted("invalid records length") - } - return -} - -func batchesLen(batches []*Batch) int { - batchLen := 0 - for _, batch := range batches { - batchLen += batch.Len() - } - return batchLen -} - -func writeBatchesWithHeader(wr io.Writer, batches []*Batch, seq uint64) error { - if _, err := wr.Write(encodeBatchHeader(nil, seq, batchesLen(batches))); err != nil { - return err - } - for _, batch := range batches { - if _, err := wr.Write(batch.data); err != nil { - return err - } - } - return nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/cache/cache.go b/vendor/github.com/syndtr/goleveldb/leveldb/cache/cache.go deleted file mode 100644 index c36ad323..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/cache/cache.go +++ /dev/null @@ -1,704 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package cache provides interface and implementation of a cache algorithms. -package cache - -import ( - "sync" - "sync/atomic" - "unsafe" - - "github.com/syndtr/goleveldb/leveldb/util" -) - -// Cacher provides interface to implements a caching functionality. -// An implementation must be safe for concurrent use. -type Cacher interface { - // Capacity returns cache capacity. - Capacity() int - - // SetCapacity sets cache capacity. - SetCapacity(capacity int) - - // Promote promotes the 'cache node'. - Promote(n *Node) - - // Ban evicts the 'cache node' and prevent subsequent 'promote'. - Ban(n *Node) - - // Evict evicts the 'cache node'. - Evict(n *Node) - - // EvictNS evicts 'cache node' with the given namespace. - EvictNS(ns uint64) - - // EvictAll evicts all 'cache node'. - EvictAll() - - // Close closes the 'cache tree' - Close() error -} - -// Value is a 'cacheable object'. It may implements util.Releaser, if -// so the the Release method will be called once object is released. -type Value interface{} - -// NamespaceGetter provides convenient wrapper for namespace. -type NamespaceGetter struct { - Cache *Cache - NS uint64 -} - -// Get simply calls Cache.Get() method. -func (g *NamespaceGetter) Get(key uint64, setFunc func() (size int, value Value)) *Handle { - return g.Cache.Get(g.NS, key, setFunc) -} - -// The hash tables implementation is based on: -// "Dynamic-Sized Nonblocking Hash Tables", by Yujie Liu, -// Kunlong Zhang, and Michael Spear. -// ACM Symposium on Principles of Distributed Computing, Jul 2014. - -const ( - mInitialSize = 1 << 4 - mOverflowThreshold = 1 << 5 - mOverflowGrowThreshold = 1 << 7 -) - -type mBucket struct { - mu sync.Mutex - node []*Node - frozen bool -} - -func (b *mBucket) freeze() []*Node { - b.mu.Lock() - defer b.mu.Unlock() - if !b.frozen { - b.frozen = true - } - return b.node -} - -func (b *mBucket) get(r *Cache, h *mNode, hash uint32, ns, key uint64, noset bool) (done, added bool, n *Node) { - b.mu.Lock() - - if b.frozen { - b.mu.Unlock() - return - } - - // Scan the node. - for _, n := range b.node { - if n.hash == hash && n.ns == ns && n.key == key { - atomic.AddInt32(&n.ref, 1) - b.mu.Unlock() - return true, false, n - } - } - - // Get only. - if noset { - b.mu.Unlock() - return true, false, nil - } - - // Create node. - n = &Node{ - r: r, - hash: hash, - ns: ns, - key: key, - ref: 1, - } - // Add node to bucket. - b.node = append(b.node, n) - bLen := len(b.node) - b.mu.Unlock() - - // Update counter. - grow := atomic.AddInt32(&r.nodes, 1) >= h.growThreshold - if bLen > mOverflowThreshold { - grow = grow || atomic.AddInt32(&h.overflow, 1) >= mOverflowGrowThreshold - } - - // Grow. - if grow && atomic.CompareAndSwapInt32(&h.resizeInProgess, 0, 1) { - nhLen := len(h.buckets) << 1 - nh := &mNode{ - buckets: make([]unsafe.Pointer, nhLen), - mask: uint32(nhLen) - 1, - pred: unsafe.Pointer(h), - growThreshold: int32(nhLen * mOverflowThreshold), - shrinkThreshold: int32(nhLen >> 1), - } - ok := atomic.CompareAndSwapPointer(&r.mHead, unsafe.Pointer(h), unsafe.Pointer(nh)) - if !ok { - panic("BUG: failed swapping head") - } - go nh.initBuckets() - } - - return true, true, n -} - -func (b *mBucket) delete(r *Cache, h *mNode, hash uint32, ns, key uint64) (done, deleted bool) { - b.mu.Lock() - - if b.frozen { - b.mu.Unlock() - return - } - - // Scan the node. - var ( - n *Node - bLen int - ) - for i := range b.node { - n = b.node[i] - if n.ns == ns && n.key == key { - if atomic.LoadInt32(&n.ref) == 0 { - deleted = true - - // Call releaser. - if n.value != nil { - if r, ok := n.value.(util.Releaser); ok { - r.Release() - } - n.value = nil - } - - // Remove node from bucket. - b.node = append(b.node[:i], b.node[i+1:]...) - bLen = len(b.node) - } - break - } - } - b.mu.Unlock() - - if deleted { - // Call OnDel. - for _, f := range n.onDel { - f() - } - - // Update counter. - atomic.AddInt32(&r.size, int32(n.size)*-1) - shrink := atomic.AddInt32(&r.nodes, -1) < h.shrinkThreshold - if bLen >= mOverflowThreshold { - atomic.AddInt32(&h.overflow, -1) - } - - // Shrink. - if shrink && len(h.buckets) > mInitialSize && atomic.CompareAndSwapInt32(&h.resizeInProgess, 0, 1) { - nhLen := len(h.buckets) >> 1 - nh := &mNode{ - buckets: make([]unsafe.Pointer, nhLen), - mask: uint32(nhLen) - 1, - pred: unsafe.Pointer(h), - growThreshold: int32(nhLen * mOverflowThreshold), - shrinkThreshold: int32(nhLen >> 1), - } - ok := atomic.CompareAndSwapPointer(&r.mHead, unsafe.Pointer(h), unsafe.Pointer(nh)) - if !ok { - panic("BUG: failed swapping head") - } - go nh.initBuckets() - } - } - - return true, deleted -} - -type mNode struct { - buckets []unsafe.Pointer // []*mBucket - mask uint32 - pred unsafe.Pointer // *mNode - resizeInProgess int32 - - overflow int32 - growThreshold int32 - shrinkThreshold int32 -} - -func (n *mNode) initBucket(i uint32) *mBucket { - if b := (*mBucket)(atomic.LoadPointer(&n.buckets[i])); b != nil { - return b - } - - p := (*mNode)(atomic.LoadPointer(&n.pred)) - if p != nil { - var node []*Node - if n.mask > p.mask { - // Grow. - pb := (*mBucket)(atomic.LoadPointer(&p.buckets[i&p.mask])) - if pb == nil { - pb = p.initBucket(i & p.mask) - } - m := pb.freeze() - // Split nodes. - for _, x := range m { - if x.hash&n.mask == i { - node = append(node, x) - } - } - } else { - // Shrink. - pb0 := (*mBucket)(atomic.LoadPointer(&p.buckets[i])) - if pb0 == nil { - pb0 = p.initBucket(i) - } - pb1 := (*mBucket)(atomic.LoadPointer(&p.buckets[i+uint32(len(n.buckets))])) - if pb1 == nil { - pb1 = p.initBucket(i + uint32(len(n.buckets))) - } - m0 := pb0.freeze() - m1 := pb1.freeze() - // Merge nodes. - node = make([]*Node, 0, len(m0)+len(m1)) - node = append(node, m0...) - node = append(node, m1...) - } - b := &mBucket{node: node} - if atomic.CompareAndSwapPointer(&n.buckets[i], nil, unsafe.Pointer(b)) { - if len(node) > mOverflowThreshold { - atomic.AddInt32(&n.overflow, int32(len(node)-mOverflowThreshold)) - } - return b - } - } - - return (*mBucket)(atomic.LoadPointer(&n.buckets[i])) -} - -func (n *mNode) initBuckets() { - for i := range n.buckets { - n.initBucket(uint32(i)) - } - atomic.StorePointer(&n.pred, nil) -} - -// Cache is a 'cache map'. -type Cache struct { - mu sync.RWMutex - mHead unsafe.Pointer // *mNode - nodes int32 - size int32 - cacher Cacher - closed bool -} - -// NewCache creates a new 'cache map'. The cacher is optional and -// may be nil. -func NewCache(cacher Cacher) *Cache { - h := &mNode{ - buckets: make([]unsafe.Pointer, mInitialSize), - mask: mInitialSize - 1, - growThreshold: int32(mInitialSize * mOverflowThreshold), - shrinkThreshold: 0, - } - for i := range h.buckets { - h.buckets[i] = unsafe.Pointer(&mBucket{}) - } - r := &Cache{ - mHead: unsafe.Pointer(h), - cacher: cacher, - } - return r -} - -func (r *Cache) getBucket(hash uint32) (*mNode, *mBucket) { - h := (*mNode)(atomic.LoadPointer(&r.mHead)) - i := hash & h.mask - b := (*mBucket)(atomic.LoadPointer(&h.buckets[i])) - if b == nil { - b = h.initBucket(i) - } - return h, b -} - -func (r *Cache) delete(n *Node) bool { - for { - h, b := r.getBucket(n.hash) - done, deleted := b.delete(r, h, n.hash, n.ns, n.key) - if done { - return deleted - } - } -} - -// Nodes returns number of 'cache node' in the map. -func (r *Cache) Nodes() int { - return int(atomic.LoadInt32(&r.nodes)) -} - -// Size returns sums of 'cache node' size in the map. -func (r *Cache) Size() int { - return int(atomic.LoadInt32(&r.size)) -} - -// Capacity returns cache capacity. -func (r *Cache) Capacity() int { - if r.cacher == nil { - return 0 - } - return r.cacher.Capacity() -} - -// SetCapacity sets cache capacity. -func (r *Cache) SetCapacity(capacity int) { - if r.cacher != nil { - r.cacher.SetCapacity(capacity) - } -} - -// Get gets 'cache node' with the given namespace and key. -// If cache node is not found and setFunc is not nil, Get will atomically creates -// the 'cache node' by calling setFunc. Otherwise Get will returns nil. -// -// The returned 'cache handle' should be released after use by calling Release -// method. -func (r *Cache) Get(ns, key uint64, setFunc func() (size int, value Value)) *Handle { - r.mu.RLock() - defer r.mu.RUnlock() - if r.closed { - return nil - } - - hash := murmur32(ns, key, 0xf00) - for { - h, b := r.getBucket(hash) - done, _, n := b.get(r, h, hash, ns, key, setFunc == nil) - if done { - if n != nil { - n.mu.Lock() - if n.value == nil { - if setFunc == nil { - n.mu.Unlock() - n.unref() - return nil - } - - n.size, n.value = setFunc() - if n.value == nil { - n.size = 0 - n.mu.Unlock() - n.unref() - return nil - } - atomic.AddInt32(&r.size, int32(n.size)) - } - n.mu.Unlock() - if r.cacher != nil { - r.cacher.Promote(n) - } - return &Handle{unsafe.Pointer(n)} - } - - break - } - } - return nil -} - -// Delete removes and ban 'cache node' with the given namespace and key. -// A banned 'cache node' will never inserted into the 'cache tree'. Ban -// only attributed to the particular 'cache node', so when a 'cache node' -// is recreated it will not be banned. -// -// If onDel is not nil, then it will be executed if such 'cache node' -// doesn't exist or once the 'cache node' is released. -// -// Delete return true is such 'cache node' exist. -func (r *Cache) Delete(ns, key uint64, onDel func()) bool { - r.mu.RLock() - defer r.mu.RUnlock() - if r.closed { - return false - } - - hash := murmur32(ns, key, 0xf00) - for { - h, b := r.getBucket(hash) - done, _, n := b.get(r, h, hash, ns, key, true) - if done { - if n != nil { - if onDel != nil { - n.mu.Lock() - n.onDel = append(n.onDel, onDel) - n.mu.Unlock() - } - if r.cacher != nil { - r.cacher.Ban(n) - } - n.unref() - return true - } - - break - } - } - - if onDel != nil { - onDel() - } - - return false -} - -// Evict evicts 'cache node' with the given namespace and key. This will -// simply call Cacher.Evict. -// -// Evict return true is such 'cache node' exist. -func (r *Cache) Evict(ns, key uint64) bool { - r.mu.RLock() - defer r.mu.RUnlock() - if r.closed { - return false - } - - hash := murmur32(ns, key, 0xf00) - for { - h, b := r.getBucket(hash) - done, _, n := b.get(r, h, hash, ns, key, true) - if done { - if n != nil { - if r.cacher != nil { - r.cacher.Evict(n) - } - n.unref() - return true - } - - break - } - } - - return false -} - -// EvictNS evicts 'cache node' with the given namespace. This will -// simply call Cacher.EvictNS. -func (r *Cache) EvictNS(ns uint64) { - r.mu.RLock() - defer r.mu.RUnlock() - if r.closed { - return - } - - if r.cacher != nil { - r.cacher.EvictNS(ns) - } -} - -// EvictAll evicts all 'cache node'. This will simply call Cacher.EvictAll. -func (r *Cache) EvictAll() { - r.mu.RLock() - defer r.mu.RUnlock() - if r.closed { - return - } - - if r.cacher != nil { - r.cacher.EvictAll() - } -} - -// Close closes the 'cache map' and forcefully releases all 'cache node'. -func (r *Cache) Close() error { - r.mu.Lock() - if !r.closed { - r.closed = true - - h := (*mNode)(r.mHead) - h.initBuckets() - - for i := range h.buckets { - b := (*mBucket)(h.buckets[i]) - for _, n := range b.node { - // Call releaser. - if n.value != nil { - if r, ok := n.value.(util.Releaser); ok { - r.Release() - } - n.value = nil - } - - // Call OnDel. - for _, f := range n.onDel { - f() - } - n.onDel = nil - } - } - } - r.mu.Unlock() - - // Avoid deadlock. - if r.cacher != nil { - if err := r.cacher.Close(); err != nil { - return err - } - } - return nil -} - -// CloseWeak closes the 'cache map' and evict all 'cache node' from cacher, but -// unlike Close it doesn't forcefully releases 'cache node'. -func (r *Cache) CloseWeak() error { - r.mu.Lock() - if !r.closed { - r.closed = true - } - r.mu.Unlock() - - // Avoid deadlock. - if r.cacher != nil { - r.cacher.EvictAll() - if err := r.cacher.Close(); err != nil { - return err - } - } - return nil -} - -// Node is a 'cache node'. -type Node struct { - r *Cache - - hash uint32 - ns, key uint64 - - mu sync.Mutex - size int - value Value - - ref int32 - onDel []func() - - CacheData unsafe.Pointer -} - -// NS returns this 'cache node' namespace. -func (n *Node) NS() uint64 { - return n.ns -} - -// Key returns this 'cache node' key. -func (n *Node) Key() uint64 { - return n.key -} - -// Size returns this 'cache node' size. -func (n *Node) Size() int { - return n.size -} - -// Value returns this 'cache node' value. -func (n *Node) Value() Value { - return n.value -} - -// Ref returns this 'cache node' ref counter. -func (n *Node) Ref() int32 { - return atomic.LoadInt32(&n.ref) -} - -// GetHandle returns an handle for this 'cache node'. -func (n *Node) GetHandle() *Handle { - if atomic.AddInt32(&n.ref, 1) <= 1 { - panic("BUG: Node.GetHandle on zero ref") - } - return &Handle{unsafe.Pointer(n)} -} - -func (n *Node) unref() { - if atomic.AddInt32(&n.ref, -1) == 0 { - n.r.delete(n) - } -} - -func (n *Node) unrefLocked() { - if atomic.AddInt32(&n.ref, -1) == 0 { - n.r.mu.RLock() - if !n.r.closed { - n.r.delete(n) - } - n.r.mu.RUnlock() - } -} - -// Handle is a 'cache handle' of a 'cache node'. -type Handle struct { - n unsafe.Pointer // *Node -} - -// Value returns the value of the 'cache node'. -func (h *Handle) Value() Value { - n := (*Node)(atomic.LoadPointer(&h.n)) - if n != nil { - return n.value - } - return nil -} - -// Release releases this 'cache handle'. -// It is safe to call release multiple times. -func (h *Handle) Release() { - nPtr := atomic.LoadPointer(&h.n) - if nPtr != nil && atomic.CompareAndSwapPointer(&h.n, nPtr, nil) { - n := (*Node)(nPtr) - n.unrefLocked() - } -} - -func murmur32(ns, key uint64, seed uint32) uint32 { - const ( - m = uint32(0x5bd1e995) - r = 24 - ) - - k1 := uint32(ns >> 32) - k2 := uint32(ns) - k3 := uint32(key >> 32) - k4 := uint32(key) - - k1 *= m - k1 ^= k1 >> r - k1 *= m - - k2 *= m - k2 ^= k2 >> r - k2 *= m - - k3 *= m - k3 ^= k3 >> r - k3 *= m - - k4 *= m - k4 ^= k4 >> r - k4 *= m - - h := seed - - h *= m - h ^= k1 - h *= m - h ^= k2 - h *= m - h ^= k3 - h *= m - h ^= k4 - - h ^= h >> 13 - h *= m - h ^= h >> 15 - - return h -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/cache/lru.go b/vendor/github.com/syndtr/goleveldb/leveldb/cache/lru.go deleted file mode 100644 index d9a84cde..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/cache/lru.go +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package cache - -import ( - "sync" - "unsafe" -) - -type lruNode struct { - n *Node - h *Handle - ban bool - - next, prev *lruNode -} - -func (n *lruNode) insert(at *lruNode) { - x := at.next - at.next = n - n.prev = at - n.next = x - x.prev = n -} - -func (n *lruNode) remove() { - if n.prev != nil { - n.prev.next = n.next - n.next.prev = n.prev - n.prev = nil - n.next = nil - } else { - panic("BUG: removing removed node") - } -} - -type lru struct { - mu sync.Mutex - capacity int - used int - recent lruNode -} - -func (r *lru) reset() { - r.recent.next = &r.recent - r.recent.prev = &r.recent - r.used = 0 -} - -func (r *lru) Capacity() int { - r.mu.Lock() - defer r.mu.Unlock() - return r.capacity -} - -func (r *lru) SetCapacity(capacity int) { - var evicted []*lruNode - - r.mu.Lock() - r.capacity = capacity - for r.used > r.capacity { - rn := r.recent.prev - if rn == nil { - panic("BUG: invalid LRU used or capacity counter") - } - rn.remove() - rn.n.CacheData = nil - r.used -= rn.n.Size() - evicted = append(evicted, rn) - } - r.mu.Unlock() - - for _, rn := range evicted { - rn.h.Release() - } -} - -func (r *lru) Promote(n *Node) { - var evicted []*lruNode - - r.mu.Lock() - if n.CacheData == nil { - if n.Size() <= r.capacity { - rn := &lruNode{n: n, h: n.GetHandle()} - rn.insert(&r.recent) - n.CacheData = unsafe.Pointer(rn) - r.used += n.Size() - - for r.used > r.capacity { - rn := r.recent.prev - if rn == nil { - panic("BUG: invalid LRU used or capacity counter") - } - rn.remove() - rn.n.CacheData = nil - r.used -= rn.n.Size() - evicted = append(evicted, rn) - } - } - } else { - rn := (*lruNode)(n.CacheData) - if !rn.ban { - rn.remove() - rn.insert(&r.recent) - } - } - r.mu.Unlock() - - for _, rn := range evicted { - rn.h.Release() - } -} - -func (r *lru) Ban(n *Node) { - r.mu.Lock() - if n.CacheData == nil { - n.CacheData = unsafe.Pointer(&lruNode{n: n, ban: true}) - } else { - rn := (*lruNode)(n.CacheData) - if !rn.ban { - rn.remove() - rn.ban = true - r.used -= rn.n.Size() - r.mu.Unlock() - - rn.h.Release() - rn.h = nil - return - } - } - r.mu.Unlock() -} - -func (r *lru) Evict(n *Node) { - r.mu.Lock() - rn := (*lruNode)(n.CacheData) - if rn == nil || rn.ban { - r.mu.Unlock() - return - } - n.CacheData = nil - r.mu.Unlock() - - rn.h.Release() -} - -func (r *lru) EvictNS(ns uint64) { - var evicted []*lruNode - - r.mu.Lock() - for e := r.recent.prev; e != &r.recent; { - rn := e - e = e.prev - if rn.n.NS() == ns { - rn.remove() - rn.n.CacheData = nil - r.used -= rn.n.Size() - evicted = append(evicted, rn) - } - } - r.mu.Unlock() - - for _, rn := range evicted { - rn.h.Release() - } -} - -func (r *lru) EvictAll() { - r.mu.Lock() - back := r.recent.prev - for rn := back; rn != &r.recent; rn = rn.prev { - rn.n.CacheData = nil - } - r.reset() - r.mu.Unlock() - - for rn := back; rn != &r.recent; rn = rn.prev { - rn.h.Release() - } -} - -func (r *lru) Close() error { - return nil -} - -// NewLRU create a new LRU-cache. -func NewLRU(capacity int) Cacher { - r := &lru{capacity: capacity} - r.reset() - return r -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/comparer.go b/vendor/github.com/syndtr/goleveldb/leveldb/comparer.go deleted file mode 100644 index 448402b8..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/comparer.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "github.com/syndtr/goleveldb/leveldb/comparer" -) - -type iComparer struct { - ucmp comparer.Comparer -} - -func (icmp *iComparer) uName() string { - return icmp.ucmp.Name() -} - -func (icmp *iComparer) uCompare(a, b []byte) int { - return icmp.ucmp.Compare(a, b) -} - -func (icmp *iComparer) uSeparator(dst, a, b []byte) []byte { - return icmp.ucmp.Separator(dst, a, b) -} - -func (icmp *iComparer) uSuccessor(dst, b []byte) []byte { - return icmp.ucmp.Successor(dst, b) -} - -func (icmp *iComparer) Name() string { - return icmp.uName() -} - -func (icmp *iComparer) Compare(a, b []byte) int { - x := icmp.uCompare(internalKey(a).ukey(), internalKey(b).ukey()) - if x == 0 { - if m, n := internalKey(a).num(), internalKey(b).num(); m > n { - return -1 - } else if m < n { - return 1 - } - } - return x -} - -func (icmp *iComparer) Separator(dst, a, b []byte) []byte { - ua, ub := internalKey(a).ukey(), internalKey(b).ukey() - dst = icmp.uSeparator(dst, ua, ub) - if dst != nil && len(dst) < len(ua) && icmp.uCompare(ua, dst) < 0 { - // Append earliest possible number. - return append(dst, keyMaxNumBytes...) - } - return nil -} - -func (icmp *iComparer) Successor(dst, b []byte) []byte { - ub := internalKey(b).ukey() - dst = icmp.uSuccessor(dst, ub) - if dst != nil && len(dst) < len(ub) && icmp.uCompare(ub, dst) < 0 { - // Append earliest possible number. - return append(dst, keyMaxNumBytes...) - } - return nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/comparer/bytes_comparer.go b/vendor/github.com/syndtr/goleveldb/leveldb/comparer/bytes_comparer.go deleted file mode 100644 index abf9fb65..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/comparer/bytes_comparer.go +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package comparer - -import "bytes" - -type bytesComparer struct{} - -func (bytesComparer) Compare(a, b []byte) int { - return bytes.Compare(a, b) -} - -func (bytesComparer) Name() string { - return "leveldb.BytewiseComparator" -} - -func (bytesComparer) Separator(dst, a, b []byte) []byte { - i, n := 0, len(a) - if n > len(b) { - n = len(b) - } - for ; i < n && a[i] == b[i]; i++ { - } - if i >= n { - // Do not shorten if one string is a prefix of the other - } else if c := a[i]; c < 0xff && c+1 < b[i] { - dst = append(dst, a[:i+1]...) - dst[len(dst)-1]++ - return dst - } - return nil -} - -func (bytesComparer) Successor(dst, b []byte) []byte { - for i, c := range b { - if c != 0xff { - dst = append(dst, b[:i+1]...) - dst[len(dst)-1]++ - return dst - } - } - return nil -} - -// DefaultComparer are default implementation of the Comparer interface. -// It uses the natural ordering, consistent with bytes.Compare. -var DefaultComparer = bytesComparer{} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/comparer/comparer.go b/vendor/github.com/syndtr/goleveldb/leveldb/comparer/comparer.go deleted file mode 100644 index 2c522db2..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/comparer/comparer.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package comparer provides interface and implementation for ordering -// sets of data. -package comparer - -// BasicComparer is the interface that wraps the basic Compare method. -type BasicComparer interface { - // Compare returns -1, 0, or +1 depending on whether a is 'less than', - // 'equal to' or 'greater than' b. The two arguments can only be 'equal' - // if their contents are exactly equal. Furthermore, the empty slice - // must be 'less than' any non-empty slice. - Compare(a, b []byte) int -} - -// Comparer defines a total ordering over the space of []byte keys: a 'less -// than' relationship. -type Comparer interface { - BasicComparer - - // Name returns name of the comparer. - // - // The Level-DB on-disk format stores the comparer name, and opening a - // database with a different comparer from the one it was created with - // will result in an error. - // - // An implementation to a new name whenever the comparer implementation - // changes in a way that will cause the relative ordering of any two keys - // to change. - // - // Names starting with "leveldb." are reserved and should not be used - // by any users of this package. - Name() string - - // Bellow are advanced functions used to reduce the space requirements - // for internal data structures such as index blocks. - - // Separator appends a sequence of bytes x to dst such that a <= x && x < b, - // where 'less than' is consistent with Compare. An implementation should - // return nil if x equal to a. - // - // Either contents of a or b should not by any means modified. Doing so - // may cause corruption on the internal state. - Separator(dst, a, b []byte) []byte - - // Successor appends a sequence of bytes x to dst such that x >= b, where - // 'less than' is consistent with Compare. An implementation should return - // nil if x equal to b. - // - // Contents of b should not by any means modified. Doing so may cause - // corruption on the internal state. - Successor(dst, b []byte) []byte -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db.go b/vendor/github.com/syndtr/goleveldb/leveldb/db.go deleted file mode 100644 index 90fedf7b..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db.go +++ /dev/null @@ -1,1179 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "container/list" - "fmt" - "io" - "os" - "runtime" - "strings" - "sync" - "sync/atomic" - "time" - - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/journal" - "github.com/syndtr/goleveldb/leveldb/memdb" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/storage" - "github.com/syndtr/goleveldb/leveldb/table" - "github.com/syndtr/goleveldb/leveldb/util" -) - -// DB is a LevelDB database. -type DB struct { - // Need 64-bit alignment. - seq uint64 - - // Stats. Need 64-bit alignment. - cWriteDelay int64 // The cumulative duration of write delays - cWriteDelayN int32 // The cumulative number of write delays - inWritePaused int32 // The indicator whether write operation is paused by compaction - aliveSnaps, aliveIters int32 - - // Session. - s *session - - // MemDB. - memMu sync.RWMutex - memPool chan *memdb.DB - mem, frozenMem *memDB - journal *journal.Writer - journalWriter storage.Writer - journalFd storage.FileDesc - frozenJournalFd storage.FileDesc - frozenSeq uint64 - - // Snapshot. - snapsMu sync.Mutex - snapsList *list.List - - // Write. - batchPool sync.Pool - writeMergeC chan writeMerge - writeMergedC chan bool - writeLockC chan struct{} - writeAckC chan error - writeDelay time.Duration - writeDelayN int - tr *Transaction - - // Compaction. - compCommitLk sync.Mutex - tcompCmdC chan cCmd - tcompPauseC chan chan<- struct{} - mcompCmdC chan cCmd - compErrC chan error - compPerErrC chan error - compErrSetC chan error - compWriteLocking bool - compStats cStats - memdbMaxLevel int // For testing. - - // Close. - closeW sync.WaitGroup - closeC chan struct{} - closed uint32 - closer io.Closer -} - -func openDB(s *session) (*DB, error) { - s.log("db@open opening") - start := time.Now() - db := &DB{ - s: s, - // Initial sequence - seq: s.stSeqNum, - // MemDB - memPool: make(chan *memdb.DB, 1), - // Snapshot - snapsList: list.New(), - // Write - batchPool: sync.Pool{New: newBatch}, - writeMergeC: make(chan writeMerge), - writeMergedC: make(chan bool), - writeLockC: make(chan struct{}, 1), - writeAckC: make(chan error), - // Compaction - tcompCmdC: make(chan cCmd), - tcompPauseC: make(chan chan<- struct{}), - mcompCmdC: make(chan cCmd), - compErrC: make(chan error), - compPerErrC: make(chan error), - compErrSetC: make(chan error), - // Close - closeC: make(chan struct{}), - } - - // Read-only mode. - readOnly := s.o.GetReadOnly() - - if readOnly { - // Recover journals (read-only mode). - if err := db.recoverJournalRO(); err != nil { - return nil, err - } - } else { - // Recover journals. - if err := db.recoverJournal(); err != nil { - return nil, err - } - - // Remove any obsolete files. - if err := db.checkAndCleanFiles(); err != nil { - // Close journal. - if db.journal != nil { - db.journal.Close() - db.journalWriter.Close() - } - return nil, err - } - - } - - // Doesn't need to be included in the wait group. - go db.compactionError() - go db.mpoolDrain() - - if readOnly { - db.SetReadOnly() - } else { - db.closeW.Add(2) - go db.tCompaction() - go db.mCompaction() - // go db.jWriter() - } - - s.logf("db@open done T·%v", time.Since(start)) - - runtime.SetFinalizer(db, (*DB).Close) - return db, nil -} - -// Open opens or creates a DB for the given storage. -// The DB will be created if not exist, unless ErrorIfMissing is true. -// Also, if ErrorIfExist is true and the DB exist Open will returns -// os.ErrExist error. -// -// Open will return an error with type of ErrCorrupted if corruption -// detected in the DB. Use errors.IsCorrupted to test whether an error is -// due to corruption. Corrupted DB can be recovered with Recover function. -// -// The returned DB instance is safe for concurrent use. -// The DB must be closed after use, by calling Close method. -func Open(stor storage.Storage, o *opt.Options) (db *DB, err error) { - s, err := newSession(stor, o) - if err != nil { - return - } - defer func() { - if err != nil { - s.close() - s.release() - } - }() - - err = s.recover() - if err != nil { - if !os.IsNotExist(err) || s.o.GetErrorIfMissing() || s.o.GetReadOnly() { - return - } - err = s.create() - if err != nil { - return - } - } else if s.o.GetErrorIfExist() { - err = os.ErrExist - return - } - - return openDB(s) -} - -// OpenFile opens or creates a DB for the given path. -// The DB will be created if not exist, unless ErrorIfMissing is true. -// Also, if ErrorIfExist is true and the DB exist OpenFile will returns -// os.ErrExist error. -// -// OpenFile uses standard file-system backed storage implementation as -// described in the leveldb/storage package. -// -// OpenFile will return an error with type of ErrCorrupted if corruption -// detected in the DB. Use errors.IsCorrupted to test whether an error is -// due to corruption. Corrupted DB can be recovered with Recover function. -// -// The returned DB instance is safe for concurrent use. -// The DB must be closed after use, by calling Close method. -func OpenFile(path string, o *opt.Options) (db *DB, err error) { - stor, err := storage.OpenFile(path, o.GetReadOnly()) - if err != nil { - return - } - db, err = Open(stor, o) - if err != nil { - stor.Close() - } else { - db.closer = stor - } - return -} - -// Recover recovers and opens a DB with missing or corrupted manifest files -// for the given storage. It will ignore any manifest files, valid or not. -// The DB must already exist or it will returns an error. -// Also, Recover will ignore ErrorIfMissing and ErrorIfExist options. -// -// The returned DB instance is safe for concurrent use. -// The DB must be closed after use, by calling Close method. -func Recover(stor storage.Storage, o *opt.Options) (db *DB, err error) { - s, err := newSession(stor, o) - if err != nil { - return - } - defer func() { - if err != nil { - s.close() - s.release() - } - }() - - err = recoverTable(s, o) - if err != nil { - return - } - return openDB(s) -} - -// RecoverFile recovers and opens a DB with missing or corrupted manifest files -// for the given path. It will ignore any manifest files, valid or not. -// The DB must already exist or it will returns an error. -// Also, Recover will ignore ErrorIfMissing and ErrorIfExist options. -// -// RecoverFile uses standard file-system backed storage implementation as described -// in the leveldb/storage package. -// -// The returned DB instance is safe for concurrent use. -// The DB must be closed after use, by calling Close method. -func RecoverFile(path string, o *opt.Options) (db *DB, err error) { - stor, err := storage.OpenFile(path, false) - if err != nil { - return - } - db, err = Recover(stor, o) - if err != nil { - stor.Close() - } else { - db.closer = stor - } - return -} - -func recoverTable(s *session, o *opt.Options) error { - o = dupOptions(o) - // Mask StrictReader, lets StrictRecovery doing its job. - o.Strict &= ^opt.StrictReader - - // Get all tables and sort it by file number. - fds, err := s.stor.List(storage.TypeTable) - if err != nil { - return err - } - sortFds(fds) - - var ( - maxSeq uint64 - recoveredKey, goodKey, corruptedKey, corruptedBlock, droppedTable int - - // We will drop corrupted table. - strict = o.GetStrict(opt.StrictRecovery) - noSync = o.GetNoSync() - - rec = &sessionRecord{} - bpool = util.NewBufferPool(o.GetBlockSize() + 5) - ) - buildTable := func(iter iterator.Iterator) (tmpFd storage.FileDesc, size int64, err error) { - tmpFd = s.newTemp() - writer, err := s.stor.Create(tmpFd) - if err != nil { - return - } - defer func() { - writer.Close() - if err != nil { - s.stor.Remove(tmpFd) - tmpFd = storage.FileDesc{} - } - }() - - // Copy entries. - tw := table.NewWriter(writer, o) - for iter.Next() { - key := iter.Key() - if validInternalKey(key) { - err = tw.Append(key, iter.Value()) - if err != nil { - return - } - } - } - err = iter.Error() - if err != nil && !errors.IsCorrupted(err) { - return - } - err = tw.Close() - if err != nil { - return - } - if !noSync { - err = writer.Sync() - if err != nil { - return - } - } - size = int64(tw.BytesLen()) - return - } - recoverTable := func(fd storage.FileDesc) error { - s.logf("table@recovery recovering @%d", fd.Num) - reader, err := s.stor.Open(fd) - if err != nil { - return err - } - var closed bool - defer func() { - if !closed { - reader.Close() - } - }() - - // Get file size. - size, err := reader.Seek(0, 2) - if err != nil { - return err - } - - var ( - tSeq uint64 - tgoodKey, tcorruptedKey, tcorruptedBlock int - imin, imax []byte - ) - tr, err := table.NewReader(reader, size, fd, nil, bpool, o) - if err != nil { - return err - } - iter := tr.NewIterator(nil, nil) - if itererr, ok := iter.(iterator.ErrorCallbackSetter); ok { - itererr.SetErrorCallback(func(err error) { - if errors.IsCorrupted(err) { - s.logf("table@recovery block corruption @%d %q", fd.Num, err) - tcorruptedBlock++ - } - }) - } - - // Scan the table. - for iter.Next() { - key := iter.Key() - _, seq, _, kerr := parseInternalKey(key) - if kerr != nil { - tcorruptedKey++ - continue - } - tgoodKey++ - if seq > tSeq { - tSeq = seq - } - if imin == nil { - imin = append([]byte{}, key...) - } - imax = append(imax[:0], key...) - } - if err := iter.Error(); err != nil && !errors.IsCorrupted(err) { - iter.Release() - return err - } - iter.Release() - - goodKey += tgoodKey - corruptedKey += tcorruptedKey - corruptedBlock += tcorruptedBlock - - if strict && (tcorruptedKey > 0 || tcorruptedBlock > 0) { - droppedTable++ - s.logf("table@recovery dropped @%d Gk·%d Ck·%d Cb·%d S·%d Q·%d", fd.Num, tgoodKey, tcorruptedKey, tcorruptedBlock, size, tSeq) - return nil - } - - if tgoodKey > 0 { - if tcorruptedKey > 0 || tcorruptedBlock > 0 { - // Rebuild the table. - s.logf("table@recovery rebuilding @%d", fd.Num) - iter := tr.NewIterator(nil, nil) - tmpFd, newSize, err := buildTable(iter) - iter.Release() - if err != nil { - return err - } - closed = true - reader.Close() - if err := s.stor.Rename(tmpFd, fd); err != nil { - return err - } - size = newSize - } - if tSeq > maxSeq { - maxSeq = tSeq - } - recoveredKey += tgoodKey - // Add table to level 0. - rec.addTable(0, fd.Num, size, imin, imax) - s.logf("table@recovery recovered @%d Gk·%d Ck·%d Cb·%d S·%d Q·%d", fd.Num, tgoodKey, tcorruptedKey, tcorruptedBlock, size, tSeq) - } else { - droppedTable++ - s.logf("table@recovery unrecoverable @%d Ck·%d Cb·%d S·%d", fd.Num, tcorruptedKey, tcorruptedBlock, size) - } - - return nil - } - - // Recover all tables. - if len(fds) > 0 { - s.logf("table@recovery F·%d", len(fds)) - - // Mark file number as used. - s.markFileNum(fds[len(fds)-1].Num) - - for _, fd := range fds { - if err := recoverTable(fd); err != nil { - return err - } - } - - s.logf("table@recovery recovered F·%d N·%d Gk·%d Ck·%d Q·%d", len(fds), recoveredKey, goodKey, corruptedKey, maxSeq) - } - - // Set sequence number. - rec.setSeqNum(maxSeq) - - // Create new manifest. - if err := s.create(); err != nil { - return err - } - - // Commit. - return s.commit(rec) -} - -func (db *DB) recoverJournal() error { - // Get all journals and sort it by file number. - rawFds, err := db.s.stor.List(storage.TypeJournal) - if err != nil { - return err - } - sortFds(rawFds) - - // Journals that will be recovered. - var fds []storage.FileDesc - for _, fd := range rawFds { - if fd.Num >= db.s.stJournalNum || fd.Num == db.s.stPrevJournalNum { - fds = append(fds, fd) - } - } - - var ( - ofd storage.FileDesc // Obsolete file. - rec = &sessionRecord{} - ) - - // Recover journals. - if len(fds) > 0 { - db.logf("journal@recovery F·%d", len(fds)) - - // Mark file number as used. - db.s.markFileNum(fds[len(fds)-1].Num) - - var ( - // Options. - strict = db.s.o.GetStrict(opt.StrictJournal) - checksum = db.s.o.GetStrict(opt.StrictJournalChecksum) - writeBuffer = db.s.o.GetWriteBuffer() - - jr *journal.Reader - mdb = memdb.New(db.s.icmp, writeBuffer) - buf = &util.Buffer{} - batchSeq uint64 - batchLen int - ) - - for _, fd := range fds { - db.logf("journal@recovery recovering @%d", fd.Num) - - fr, err := db.s.stor.Open(fd) - if err != nil { - return err - } - - // Create or reset journal reader instance. - if jr == nil { - jr = journal.NewReader(fr, dropper{db.s, fd}, strict, checksum) - } else { - jr.Reset(fr, dropper{db.s, fd}, strict, checksum) - } - - // Flush memdb and remove obsolete journal file. - if !ofd.Zero() { - if mdb.Len() > 0 { - if _, err := db.s.flushMemdb(rec, mdb, 0); err != nil { - fr.Close() - return err - } - } - - rec.setJournalNum(fd.Num) - rec.setSeqNum(db.seq) - if err := db.s.commit(rec); err != nil { - fr.Close() - return err - } - rec.resetAddedTables() - - db.s.stor.Remove(ofd) - ofd = storage.FileDesc{} - } - - // Replay journal to memdb. - mdb.Reset() - for { - r, err := jr.Next() - if err != nil { - if err == io.EOF { - break - } - - fr.Close() - return errors.SetFd(err, fd) - } - - buf.Reset() - if _, err := buf.ReadFrom(r); err != nil { - if err == io.ErrUnexpectedEOF { - // This is error returned due to corruption, with strict == false. - continue - } - - fr.Close() - return errors.SetFd(err, fd) - } - batchSeq, batchLen, err = decodeBatchToMem(buf.Bytes(), db.seq, mdb) - if err != nil { - if !strict && errors.IsCorrupted(err) { - db.s.logf("journal error: %v (skipped)", err) - // We won't apply sequence number as it might be corrupted. - continue - } - - fr.Close() - return errors.SetFd(err, fd) - } - - // Save sequence number. - db.seq = batchSeq + uint64(batchLen) - - // Flush it if large enough. - if mdb.Size() >= writeBuffer { - if _, err := db.s.flushMemdb(rec, mdb, 0); err != nil { - fr.Close() - return err - } - - mdb.Reset() - } - } - - fr.Close() - ofd = fd - } - - // Flush the last memdb. - if mdb.Len() > 0 { - if _, err := db.s.flushMemdb(rec, mdb, 0); err != nil { - return err - } - } - } - - // Create a new journal. - if _, err := db.newMem(0); err != nil { - return err - } - - // Commit. - rec.setJournalNum(db.journalFd.Num) - rec.setSeqNum(db.seq) - if err := db.s.commit(rec); err != nil { - // Close journal on error. - if db.journal != nil { - db.journal.Close() - db.journalWriter.Close() - } - return err - } - - // Remove the last obsolete journal file. - if !ofd.Zero() { - db.s.stor.Remove(ofd) - } - - return nil -} - -func (db *DB) recoverJournalRO() error { - // Get all journals and sort it by file number. - rawFds, err := db.s.stor.List(storage.TypeJournal) - if err != nil { - return err - } - sortFds(rawFds) - - // Journals that will be recovered. - var fds []storage.FileDesc - for _, fd := range rawFds { - if fd.Num >= db.s.stJournalNum || fd.Num == db.s.stPrevJournalNum { - fds = append(fds, fd) - } - } - - var ( - // Options. - strict = db.s.o.GetStrict(opt.StrictJournal) - checksum = db.s.o.GetStrict(opt.StrictJournalChecksum) - writeBuffer = db.s.o.GetWriteBuffer() - - mdb = memdb.New(db.s.icmp, writeBuffer) - ) - - // Recover journals. - if len(fds) > 0 { - db.logf("journal@recovery RO·Mode F·%d", len(fds)) - - var ( - jr *journal.Reader - buf = &util.Buffer{} - batchSeq uint64 - batchLen int - ) - - for _, fd := range fds { - db.logf("journal@recovery recovering @%d", fd.Num) - - fr, err := db.s.stor.Open(fd) - if err != nil { - return err - } - - // Create or reset journal reader instance. - if jr == nil { - jr = journal.NewReader(fr, dropper{db.s, fd}, strict, checksum) - } else { - jr.Reset(fr, dropper{db.s, fd}, strict, checksum) - } - - // Replay journal to memdb. - for { - r, err := jr.Next() - if err != nil { - if err == io.EOF { - break - } - - fr.Close() - return errors.SetFd(err, fd) - } - - buf.Reset() - if _, err := buf.ReadFrom(r); err != nil { - if err == io.ErrUnexpectedEOF { - // This is error returned due to corruption, with strict == false. - continue - } - - fr.Close() - return errors.SetFd(err, fd) - } - batchSeq, batchLen, err = decodeBatchToMem(buf.Bytes(), db.seq, mdb) - if err != nil { - if !strict && errors.IsCorrupted(err) { - db.s.logf("journal error: %v (skipped)", err) - // We won't apply sequence number as it might be corrupted. - continue - } - - fr.Close() - return errors.SetFd(err, fd) - } - - // Save sequence number. - db.seq = batchSeq + uint64(batchLen) - } - - fr.Close() - } - } - - // Set memDB. - db.mem = &memDB{db: db, DB: mdb, ref: 1} - - return nil -} - -func memGet(mdb *memdb.DB, ikey internalKey, icmp *iComparer) (ok bool, mv []byte, err error) { - mk, mv, err := mdb.Find(ikey) - if err == nil { - ukey, _, kt, kerr := parseInternalKey(mk) - if kerr != nil { - // Shouldn't have had happen. - panic(kerr) - } - if icmp.uCompare(ukey, ikey.ukey()) == 0 { - if kt == keyTypeDel { - return true, nil, ErrNotFound - } - return true, mv, nil - - } - } else if err != ErrNotFound { - return true, nil, err - } - return -} - -func (db *DB) get(auxm *memdb.DB, auxt tFiles, key []byte, seq uint64, ro *opt.ReadOptions) (value []byte, err error) { - ikey := makeInternalKey(nil, key, seq, keyTypeSeek) - - if auxm != nil { - if ok, mv, me := memGet(auxm, ikey, db.s.icmp); ok { - return append([]byte{}, mv...), me - } - } - - em, fm := db.getMems() - for _, m := range [...]*memDB{em, fm} { - if m == nil { - continue - } - defer m.decref() - - if ok, mv, me := memGet(m.DB, ikey, db.s.icmp); ok { - return append([]byte{}, mv...), me - } - } - - v := db.s.version() - value, cSched, err := v.get(auxt, ikey, ro, false) - v.release() - if cSched { - // Trigger table compaction. - db.compTrigger(db.tcompCmdC) - } - return -} - -func nilIfNotFound(err error) error { - if err == ErrNotFound { - return nil - } - return err -} - -func (db *DB) has(auxm *memdb.DB, auxt tFiles, key []byte, seq uint64, ro *opt.ReadOptions) (ret bool, err error) { - ikey := makeInternalKey(nil, key, seq, keyTypeSeek) - - if auxm != nil { - if ok, _, me := memGet(auxm, ikey, db.s.icmp); ok { - return me == nil, nilIfNotFound(me) - } - } - - em, fm := db.getMems() - for _, m := range [...]*memDB{em, fm} { - if m == nil { - continue - } - defer m.decref() - - if ok, _, me := memGet(m.DB, ikey, db.s.icmp); ok { - return me == nil, nilIfNotFound(me) - } - } - - v := db.s.version() - _, cSched, err := v.get(auxt, ikey, ro, true) - v.release() - if cSched { - // Trigger table compaction. - db.compTrigger(db.tcompCmdC) - } - if err == nil { - ret = true - } else if err == ErrNotFound { - err = nil - } - return -} - -// Get gets the value for the given key. It returns ErrNotFound if the -// DB does not contains the key. -// -// The returned slice is its own copy, it is safe to modify the contents -// of the returned slice. -// It is safe to modify the contents of the argument after Get returns. -func (db *DB) Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) { - err = db.ok() - if err != nil { - return - } - - se := db.acquireSnapshot() - defer db.releaseSnapshot(se) - return db.get(nil, nil, key, se.seq, ro) -} - -// Has returns true if the DB does contains the given key. -// -// It is safe to modify the contents of the argument after Has returns. -func (db *DB) Has(key []byte, ro *opt.ReadOptions) (ret bool, err error) { - err = db.ok() - if err != nil { - return - } - - se := db.acquireSnapshot() - defer db.releaseSnapshot(se) - return db.has(nil, nil, key, se.seq, ro) -} - -// NewIterator returns an iterator for the latest snapshot of the -// underlying DB. -// The returned iterator is not safe for concurrent use, but it is safe to use -// multiple iterators concurrently, with each in a dedicated goroutine. -// It is also safe to use an iterator concurrently with modifying its -// underlying DB. The resultant key/value pairs are guaranteed to be -// consistent. -// -// Slice allows slicing the iterator to only contains keys in the given -// range. A nil Range.Start is treated as a key before all keys in the -// DB. And a nil Range.Limit is treated as a key after all keys in -// the DB. -// -// WARNING: Any slice returned by interator (e.g. slice returned by calling -// Iterator.Key() or Iterator.Key() methods), its content should not be modified -// unless noted otherwise. -// -// The iterator must be released after use, by calling Release method. -// -// Also read Iterator documentation of the leveldb/iterator package. -func (db *DB) NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator { - if err := db.ok(); err != nil { - return iterator.NewEmptyIterator(err) - } - - se := db.acquireSnapshot() - defer db.releaseSnapshot(se) - // Iterator holds 'version' lock, 'version' is immutable so snapshot - // can be released after iterator created. - return db.newIterator(nil, nil, se.seq, slice, ro) -} - -// GetSnapshot returns a latest snapshot of the underlying DB. A snapshot -// is a frozen snapshot of a DB state at a particular point in time. The -// content of snapshot are guaranteed to be consistent. -// -// The snapshot must be released after use, by calling Release method. -func (db *DB) GetSnapshot() (*Snapshot, error) { - if err := db.ok(); err != nil { - return nil, err - } - - return db.newSnapshot(), nil -} - -// GetProperty returns value of the given property name. -// -// Property names: -// leveldb.num-files-at-level{n} -// Returns the number of files at level 'n'. -// leveldb.stats -// Returns statistics of the underlying DB. -// leveldb.iostats -// Returns statistics of effective disk read and write. -// leveldb.writedelay -// Returns cumulative write delay caused by compaction. -// leveldb.sstables -// Returns sstables list for each level. -// leveldb.blockpool -// Returns block pool stats. -// leveldb.cachedblock -// Returns size of cached block. -// leveldb.openedtables -// Returns number of opened tables. -// leveldb.alivesnaps -// Returns number of alive snapshots. -// leveldb.aliveiters -// Returns number of alive iterators. -func (db *DB) GetProperty(name string) (value string, err error) { - err = db.ok() - if err != nil { - return - } - - const prefix = "leveldb." - if !strings.HasPrefix(name, prefix) { - return "", ErrNotFound - } - p := name[len(prefix):] - - v := db.s.version() - defer v.release() - - numFilesPrefix := "num-files-at-level" - switch { - case strings.HasPrefix(p, numFilesPrefix): - var level uint - var rest string - n, _ := fmt.Sscanf(p[len(numFilesPrefix):], "%d%s", &level, &rest) - if n != 1 { - err = ErrNotFound - } else { - value = fmt.Sprint(v.tLen(int(level))) - } - case p == "stats": - value = "Compactions\n" + - " Level | Tables | Size(MB) | Time(sec) | Read(MB) | Write(MB)\n" + - "-------+------------+---------------+---------------+---------------+---------------\n" - for level, tables := range v.levels { - duration, read, write := db.compStats.getStat(level) - if len(tables) == 0 && duration == 0 { - continue - } - value += fmt.Sprintf(" %3d | %10d | %13.5f | %13.5f | %13.5f | %13.5f\n", - level, len(tables), float64(tables.size())/1048576.0, duration.Seconds(), - float64(read)/1048576.0, float64(write)/1048576.0) - } - case p == "iostats": - value = fmt.Sprintf("Read(MB):%.5f Write(MB):%.5f", - float64(db.s.stor.reads())/1048576.0, - float64(db.s.stor.writes())/1048576.0) - case p == "writedelay": - writeDelayN, writeDelay := atomic.LoadInt32(&db.cWriteDelayN), time.Duration(atomic.LoadInt64(&db.cWriteDelay)) - paused := atomic.LoadInt32(&db.inWritePaused) == 1 - value = fmt.Sprintf("DelayN:%d Delay:%s Paused:%t", writeDelayN, writeDelay, paused) - case p == "sstables": - for level, tables := range v.levels { - value += fmt.Sprintf("--- level %d ---\n", level) - for _, t := range tables { - value += fmt.Sprintf("%d:%d[%q .. %q]\n", t.fd.Num, t.size, t.imin, t.imax) - } - } - case p == "blockpool": - value = fmt.Sprintf("%v", db.s.tops.bpool) - case p == "cachedblock": - if db.s.tops.bcache != nil { - value = fmt.Sprintf("%d", db.s.tops.bcache.Size()) - } else { - value = "" - } - case p == "openedtables": - value = fmt.Sprintf("%d", db.s.tops.cache.Size()) - case p == "alivesnaps": - value = fmt.Sprintf("%d", atomic.LoadInt32(&db.aliveSnaps)) - case p == "aliveiters": - value = fmt.Sprintf("%d", atomic.LoadInt32(&db.aliveIters)) - default: - err = ErrNotFound - } - - return -} - -// DBStats is database statistics. -type DBStats struct { - WriteDelayCount int32 - WriteDelayDuration time.Duration - WritePaused bool - - AliveSnapshots int32 - AliveIterators int32 - - IOWrite uint64 - IORead uint64 - - BlockCacheSize int - OpenedTablesCount int - - LevelSizes []int64 - LevelTablesCounts []int - LevelRead []int64 - LevelWrite []int64 - LevelDurations []time.Duration -} - -// Stats populates s with database statistics. -func (db *DB) Stats(s *DBStats) error { - err := db.ok() - if err != nil { - return err - } - - s.IORead = db.s.stor.reads() - s.IOWrite = db.s.stor.writes() - s.WriteDelayCount = atomic.LoadInt32(&db.cWriteDelayN) - s.WriteDelayDuration = time.Duration(atomic.LoadInt64(&db.cWriteDelay)) - s.WritePaused = atomic.LoadInt32(&db.inWritePaused) == 1 - - s.OpenedTablesCount = db.s.tops.cache.Size() - if db.s.tops.bcache != nil { - s.BlockCacheSize = db.s.tops.bcache.Size() - } else { - s.BlockCacheSize = 0 - } - - s.AliveIterators = atomic.LoadInt32(&db.aliveIters) - s.AliveSnapshots = atomic.LoadInt32(&db.aliveSnaps) - - s.LevelDurations = s.LevelDurations[:0] - s.LevelRead = s.LevelRead[:0] - s.LevelWrite = s.LevelWrite[:0] - s.LevelSizes = s.LevelSizes[:0] - s.LevelTablesCounts = s.LevelTablesCounts[:0] - - v := db.s.version() - defer v.release() - - for level, tables := range v.levels { - duration, read, write := db.compStats.getStat(level) - if len(tables) == 0 && duration == 0 { - continue - } - s.LevelDurations = append(s.LevelDurations, duration) - s.LevelRead = append(s.LevelRead, read) - s.LevelWrite = append(s.LevelWrite, write) - s.LevelSizes = append(s.LevelSizes, tables.size()) - s.LevelTablesCounts = append(s.LevelTablesCounts, len(tables)) - } - - return nil -} - -// SizeOf calculates approximate sizes of the given key ranges. -// The length of the returned sizes are equal with the length of the given -// ranges. The returned sizes measure storage space usage, so if the user -// data compresses by a factor of ten, the returned sizes will be one-tenth -// the size of the corresponding user data size. -// The results may not include the sizes of recently written data. -func (db *DB) SizeOf(ranges []util.Range) (Sizes, error) { - if err := db.ok(); err != nil { - return nil, err - } - - v := db.s.version() - defer v.release() - - sizes := make(Sizes, 0, len(ranges)) - for _, r := range ranges { - imin := makeInternalKey(nil, r.Start, keyMaxSeq, keyTypeSeek) - imax := makeInternalKey(nil, r.Limit, keyMaxSeq, keyTypeSeek) - start, err := v.offsetOf(imin) - if err != nil { - return nil, err - } - limit, err := v.offsetOf(imax) - if err != nil { - return nil, err - } - var size int64 - if limit >= start { - size = limit - start - } - sizes = append(sizes, size) - } - - return sizes, nil -} - -// Close closes the DB. This will also releases any outstanding snapshot, -// abort any in-flight compaction and discard open transaction. -// -// It is not safe to close a DB until all outstanding iterators are released. -// It is valid to call Close multiple times. Other methods should not be -// called after the DB has been closed. -func (db *DB) Close() error { - if !db.setClosed() { - return ErrClosed - } - - start := time.Now() - db.log("db@close closing") - - // Clear the finalizer. - runtime.SetFinalizer(db, nil) - - // Get compaction error. - var err error - select { - case err = <-db.compErrC: - if err == ErrReadOnly { - err = nil - } - default: - } - - // Signal all goroutines. - close(db.closeC) - - // Discard open transaction. - if db.tr != nil { - db.tr.Discard() - } - - // Acquire writer lock. - db.writeLockC <- struct{}{} - - // Wait for all gorotines to exit. - db.closeW.Wait() - - // Closes journal. - if db.journal != nil { - db.journal.Close() - db.journalWriter.Close() - db.journal = nil - db.journalWriter = nil - } - - if db.writeDelayN > 0 { - db.logf("db@write was delayed N·%d T·%v", db.writeDelayN, db.writeDelay) - } - - // Close session. - db.s.close() - db.logf("db@close done T·%v", time.Since(start)) - db.s.release() - - if db.closer != nil { - if err1 := db.closer.Close(); err == nil { - err = err1 - } - db.closer = nil - } - - // Clear memdbs. - db.clearMems() - - return err -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go deleted file mode 100644 index 0c1b9a53..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go +++ /dev/null @@ -1,854 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "sync" - "time" - - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/storage" -) - -var ( - errCompactionTransactExiting = errors.New("leveldb: compaction transact exiting") -) - -type cStat struct { - duration time.Duration - read int64 - write int64 -} - -func (p *cStat) add(n *cStatStaging) { - p.duration += n.duration - p.read += n.read - p.write += n.write -} - -func (p *cStat) get() (duration time.Duration, read, write int64) { - return p.duration, p.read, p.write -} - -type cStatStaging struct { - start time.Time - duration time.Duration - on bool - read int64 - write int64 -} - -func (p *cStatStaging) startTimer() { - if !p.on { - p.start = time.Now() - p.on = true - } -} - -func (p *cStatStaging) stopTimer() { - if p.on { - p.duration += time.Since(p.start) - p.on = false - } -} - -type cStats struct { - lk sync.Mutex - stats []cStat -} - -func (p *cStats) addStat(level int, n *cStatStaging) { - p.lk.Lock() - if level >= len(p.stats) { - newStats := make([]cStat, level+1) - copy(newStats, p.stats) - p.stats = newStats - } - p.stats[level].add(n) - p.lk.Unlock() -} - -func (p *cStats) getStat(level int) (duration time.Duration, read, write int64) { - p.lk.Lock() - defer p.lk.Unlock() - if level < len(p.stats) { - return p.stats[level].get() - } - return -} - -func (db *DB) compactionError() { - var err error -noerr: - // No error. - for { - select { - case err = <-db.compErrSetC: - switch { - case err == nil: - case err == ErrReadOnly, errors.IsCorrupted(err): - goto hasperr - default: - goto haserr - } - case <-db.closeC: - return - } - } -haserr: - // Transient error. - for { - select { - case db.compErrC <- err: - case err = <-db.compErrSetC: - switch { - case err == nil: - goto noerr - case err == ErrReadOnly, errors.IsCorrupted(err): - goto hasperr - default: - } - case <-db.closeC: - return - } - } -hasperr: - // Persistent error. - for { - select { - case db.compErrC <- err: - case db.compPerErrC <- err: - case db.writeLockC <- struct{}{}: - // Hold write lock, so that write won't pass-through. - db.compWriteLocking = true - case <-db.closeC: - if db.compWriteLocking { - // We should release the lock or Close will hang. - <-db.writeLockC - } - return - } - } -} - -type compactionTransactCounter int - -func (cnt *compactionTransactCounter) incr() { - *cnt++ -} - -type compactionTransactInterface interface { - run(cnt *compactionTransactCounter) error - revert() error -} - -func (db *DB) compactionTransact(name string, t compactionTransactInterface) { - defer func() { - if x := recover(); x != nil { - if x == errCompactionTransactExiting { - if err := t.revert(); err != nil { - db.logf("%s revert error %q", name, err) - } - } - panic(x) - } - }() - - const ( - backoffMin = 1 * time.Second - backoffMax = 8 * time.Second - backoffMul = 2 * time.Second - ) - var ( - backoff = backoffMin - backoffT = time.NewTimer(backoff) - lastCnt = compactionTransactCounter(0) - - disableBackoff = db.s.o.GetDisableCompactionBackoff() - ) - for n := 0; ; n++ { - // Check whether the DB is closed. - if db.isClosed() { - db.logf("%s exiting", name) - db.compactionExitTransact() - } else if n > 0 { - db.logf("%s retrying N·%d", name, n) - } - - // Execute. - cnt := compactionTransactCounter(0) - err := t.run(&cnt) - if err != nil { - db.logf("%s error I·%d %q", name, cnt, err) - } - - // Set compaction error status. - select { - case db.compErrSetC <- err: - case perr := <-db.compPerErrC: - if err != nil { - db.logf("%s exiting (persistent error %q)", name, perr) - db.compactionExitTransact() - } - case <-db.closeC: - db.logf("%s exiting", name) - db.compactionExitTransact() - } - if err == nil { - return - } - if errors.IsCorrupted(err) { - db.logf("%s exiting (corruption detected)", name) - db.compactionExitTransact() - } - - if !disableBackoff { - // Reset backoff duration if counter is advancing. - if cnt > lastCnt { - backoff = backoffMin - lastCnt = cnt - } - - // Backoff. - backoffT.Reset(backoff) - if backoff < backoffMax { - backoff *= backoffMul - if backoff > backoffMax { - backoff = backoffMax - } - } - select { - case <-backoffT.C: - case <-db.closeC: - db.logf("%s exiting", name) - db.compactionExitTransact() - } - } - } -} - -type compactionTransactFunc struct { - runFunc func(cnt *compactionTransactCounter) error - revertFunc func() error -} - -func (t *compactionTransactFunc) run(cnt *compactionTransactCounter) error { - return t.runFunc(cnt) -} - -func (t *compactionTransactFunc) revert() error { - if t.revertFunc != nil { - return t.revertFunc() - } - return nil -} - -func (db *DB) compactionTransactFunc(name string, run func(cnt *compactionTransactCounter) error, revert func() error) { - db.compactionTransact(name, &compactionTransactFunc{run, revert}) -} - -func (db *DB) compactionExitTransact() { - panic(errCompactionTransactExiting) -} - -func (db *DB) compactionCommit(name string, rec *sessionRecord) { - db.compCommitLk.Lock() - defer db.compCommitLk.Unlock() // Defer is necessary. - db.compactionTransactFunc(name+"@commit", func(cnt *compactionTransactCounter) error { - return db.s.commit(rec) - }, nil) -} - -func (db *DB) memCompaction() { - mdb := db.getFrozenMem() - if mdb == nil { - return - } - defer mdb.decref() - - db.logf("memdb@flush N·%d S·%s", mdb.Len(), shortenb(mdb.Size())) - - // Don't compact empty memdb. - if mdb.Len() == 0 { - db.logf("memdb@flush skipping") - // drop frozen memdb - db.dropFrozenMem() - return - } - - // Pause table compaction. - resumeC := make(chan struct{}) - select { - case db.tcompPauseC <- (chan<- struct{})(resumeC): - case <-db.compPerErrC: - close(resumeC) - resumeC = nil - case <-db.closeC: - db.compactionExitTransact() - } - - var ( - rec = &sessionRecord{} - stats = &cStatStaging{} - flushLevel int - ) - - // Generate tables. - db.compactionTransactFunc("memdb@flush", func(cnt *compactionTransactCounter) (err error) { - stats.startTimer() - flushLevel, err = db.s.flushMemdb(rec, mdb.DB, db.memdbMaxLevel) - stats.stopTimer() - return - }, func() error { - for _, r := range rec.addedTables { - db.logf("memdb@flush revert @%d", r.num) - if err := db.s.stor.Remove(storage.FileDesc{Type: storage.TypeTable, Num: r.num}); err != nil { - return err - } - } - return nil - }) - - rec.setJournalNum(db.journalFd.Num) - rec.setSeqNum(db.frozenSeq) - - // Commit. - stats.startTimer() - db.compactionCommit("memdb", rec) - stats.stopTimer() - - db.logf("memdb@flush committed F·%d T·%v", len(rec.addedTables), stats.duration) - - for _, r := range rec.addedTables { - stats.write += r.size - } - db.compStats.addStat(flushLevel, stats) - - // Drop frozen memdb. - db.dropFrozenMem() - - // Resume table compaction. - if resumeC != nil { - select { - case <-resumeC: - close(resumeC) - case <-db.closeC: - db.compactionExitTransact() - } - } - - // Trigger table compaction. - db.compTrigger(db.tcompCmdC) -} - -type tableCompactionBuilder struct { - db *DB - s *session - c *compaction - rec *sessionRecord - stat0, stat1 *cStatStaging - - snapHasLastUkey bool - snapLastUkey []byte - snapLastSeq uint64 - snapIter int - snapKerrCnt int - snapDropCnt int - - kerrCnt int - dropCnt int - - minSeq uint64 - strict bool - tableSize int - - tw *tWriter -} - -func (b *tableCompactionBuilder) appendKV(key, value []byte) error { - // Create new table if not already. - if b.tw == nil { - // Check for pause event. - if b.db != nil { - select { - case ch := <-b.db.tcompPauseC: - b.db.pauseCompaction(ch) - case <-b.db.closeC: - b.db.compactionExitTransact() - default: - } - } - - // Create new table. - var err error - b.tw, err = b.s.tops.create() - if err != nil { - return err - } - } - - // Write key/value into table. - return b.tw.append(key, value) -} - -func (b *tableCompactionBuilder) needFlush() bool { - return b.tw.tw.BytesLen() >= b.tableSize -} - -func (b *tableCompactionBuilder) flush() error { - t, err := b.tw.finish() - if err != nil { - return err - } - b.rec.addTableFile(b.c.sourceLevel+1, t) - b.stat1.write += t.size - b.s.logf("table@build created L%d@%d N·%d S·%s %q:%q", b.c.sourceLevel+1, t.fd.Num, b.tw.tw.EntriesLen(), shortenb(int(t.size)), t.imin, t.imax) - b.tw = nil - return nil -} - -func (b *tableCompactionBuilder) cleanup() { - if b.tw != nil { - b.tw.drop() - b.tw = nil - } -} - -func (b *tableCompactionBuilder) run(cnt *compactionTransactCounter) error { - snapResumed := b.snapIter > 0 - hasLastUkey := b.snapHasLastUkey // The key might has zero length, so this is necessary. - lastUkey := append([]byte{}, b.snapLastUkey...) - lastSeq := b.snapLastSeq - b.kerrCnt = b.snapKerrCnt - b.dropCnt = b.snapDropCnt - // Restore compaction state. - b.c.restore() - - defer b.cleanup() - - b.stat1.startTimer() - defer b.stat1.stopTimer() - - iter := b.c.newIterator() - defer iter.Release() - for i := 0; iter.Next(); i++ { - // Incr transact counter. - cnt.incr() - - // Skip until last state. - if i < b.snapIter { - continue - } - - resumed := false - if snapResumed { - resumed = true - snapResumed = false - } - - ikey := iter.Key() - ukey, seq, kt, kerr := parseInternalKey(ikey) - - if kerr == nil { - shouldStop := !resumed && b.c.shouldStopBefore(ikey) - - if !hasLastUkey || b.s.icmp.uCompare(lastUkey, ukey) != 0 { - // First occurrence of this user key. - - // Only rotate tables if ukey doesn't hop across. - if b.tw != nil && (shouldStop || b.needFlush()) { - if err := b.flush(); err != nil { - return err - } - - // Creates snapshot of the state. - b.c.save() - b.snapHasLastUkey = hasLastUkey - b.snapLastUkey = append(b.snapLastUkey[:0], lastUkey...) - b.snapLastSeq = lastSeq - b.snapIter = i - b.snapKerrCnt = b.kerrCnt - b.snapDropCnt = b.dropCnt - } - - hasLastUkey = true - lastUkey = append(lastUkey[:0], ukey...) - lastSeq = keyMaxSeq - } - - switch { - case lastSeq <= b.minSeq: - // Dropped because newer entry for same user key exist - fallthrough // (A) - case kt == keyTypeDel && seq <= b.minSeq && b.c.baseLevelForKey(lastUkey): - // For this user key: - // (1) there is no data in higher levels - // (2) data in lower levels will have larger seq numbers - // (3) data in layers that are being compacted here and have - // smaller seq numbers will be dropped in the next - // few iterations of this loop (by rule (A) above). - // Therefore this deletion marker is obsolete and can be dropped. - lastSeq = seq - b.dropCnt++ - continue - default: - lastSeq = seq - } - } else { - if b.strict { - return kerr - } - - // Don't drop corrupted keys. - hasLastUkey = false - lastUkey = lastUkey[:0] - lastSeq = keyMaxSeq - b.kerrCnt++ - } - - if err := b.appendKV(ikey, iter.Value()); err != nil { - return err - } - } - - if err := iter.Error(); err != nil { - return err - } - - // Finish last table. - if b.tw != nil && !b.tw.empty() { - return b.flush() - } - return nil -} - -func (b *tableCompactionBuilder) revert() error { - for _, at := range b.rec.addedTables { - b.s.logf("table@build revert @%d", at.num) - if err := b.s.stor.Remove(storage.FileDesc{Type: storage.TypeTable, Num: at.num}); err != nil { - return err - } - } - return nil -} - -func (db *DB) tableCompaction(c *compaction, noTrivial bool) { - defer c.release() - - rec := &sessionRecord{} - rec.addCompPtr(c.sourceLevel, c.imax) - - if !noTrivial && c.trivial() { - t := c.levels[0][0] - db.logf("table@move L%d@%d -> L%d", c.sourceLevel, t.fd.Num, c.sourceLevel+1) - rec.delTable(c.sourceLevel, t.fd.Num) - rec.addTableFile(c.sourceLevel+1, t) - db.compactionCommit("table-move", rec) - return - } - - var stats [2]cStatStaging - for i, tables := range c.levels { - for _, t := range tables { - stats[i].read += t.size - // Insert deleted tables into record - rec.delTable(c.sourceLevel+i, t.fd.Num) - } - } - sourceSize := int(stats[0].read + stats[1].read) - minSeq := db.minSeq() - db.logf("table@compaction L%d·%d -> L%d·%d S·%s Q·%d", c.sourceLevel, len(c.levels[0]), c.sourceLevel+1, len(c.levels[1]), shortenb(sourceSize), minSeq) - - b := &tableCompactionBuilder{ - db: db, - s: db.s, - c: c, - rec: rec, - stat1: &stats[1], - minSeq: minSeq, - strict: db.s.o.GetStrict(opt.StrictCompaction), - tableSize: db.s.o.GetCompactionTableSize(c.sourceLevel + 1), - } - db.compactionTransact("table@build", b) - - // Commit. - stats[1].startTimer() - db.compactionCommit("table", rec) - stats[1].stopTimer() - - resultSize := int(stats[1].write) - db.logf("table@compaction committed F%s S%s Ke·%d D·%d T·%v", sint(len(rec.addedTables)-len(rec.deletedTables)), sshortenb(resultSize-sourceSize), b.kerrCnt, b.dropCnt, stats[1].duration) - - // Save compaction stats - for i := range stats { - db.compStats.addStat(c.sourceLevel+1, &stats[i]) - } -} - -func (db *DB) tableRangeCompaction(level int, umin, umax []byte) error { - db.logf("table@compaction range L%d %q:%q", level, umin, umax) - if level >= 0 { - if c := db.s.getCompactionRange(level, umin, umax, true); c != nil { - db.tableCompaction(c, true) - } - } else { - // Retry until nothing to compact. - for { - compacted := false - - // Scan for maximum level with overlapped tables. - v := db.s.version() - m := 1 - for i := m; i < len(v.levels); i++ { - tables := v.levels[i] - if tables.overlaps(db.s.icmp, umin, umax, false) { - m = i - } - } - v.release() - - for level := 0; level < m; level++ { - if c := db.s.getCompactionRange(level, umin, umax, false); c != nil { - db.tableCompaction(c, true) - compacted = true - } - } - - if !compacted { - break - } - } - } - - return nil -} - -func (db *DB) tableAutoCompaction() { - if c := db.s.pickCompaction(); c != nil { - db.tableCompaction(c, false) - } -} - -func (db *DB) tableNeedCompaction() bool { - v := db.s.version() - defer v.release() - return v.needCompaction() -} - -// resumeWrite returns an indicator whether we should resume write operation if enough level0 files are compacted. -func (db *DB) resumeWrite() bool { - v := db.s.version() - defer v.release() - if v.tLen(0) < db.s.o.GetWriteL0PauseTrigger() { - return true - } - return false -} - -func (db *DB) pauseCompaction(ch chan<- struct{}) { - select { - case ch <- struct{}{}: - case <-db.closeC: - db.compactionExitTransact() - } -} - -type cCmd interface { - ack(err error) -} - -type cAuto struct { - // Note for table compaction, an non-empty ackC represents it's a compaction waiting command. - ackC chan<- error -} - -func (r cAuto) ack(err error) { - if r.ackC != nil { - defer func() { - recover() - }() - r.ackC <- err - } -} - -type cRange struct { - level int - min, max []byte - ackC chan<- error -} - -func (r cRange) ack(err error) { - if r.ackC != nil { - defer func() { - recover() - }() - r.ackC <- err - } -} - -// This will trigger auto compaction but will not wait for it. -func (db *DB) compTrigger(compC chan<- cCmd) { - select { - case compC <- cAuto{}: - default: - } -} - -// This will trigger auto compaction and/or wait for all compaction to be done. -func (db *DB) compTriggerWait(compC chan<- cCmd) (err error) { - ch := make(chan error) - defer close(ch) - // Send cmd. - select { - case compC <- cAuto{ch}: - case err = <-db.compErrC: - return - case <-db.closeC: - return ErrClosed - } - // Wait cmd. - select { - case err = <-ch: - case err = <-db.compErrC: - case <-db.closeC: - return ErrClosed - } - return err -} - -// Send range compaction request. -func (db *DB) compTriggerRange(compC chan<- cCmd, level int, min, max []byte) (err error) { - ch := make(chan error) - defer close(ch) - // Send cmd. - select { - case compC <- cRange{level, min, max, ch}: - case err := <-db.compErrC: - return err - case <-db.closeC: - return ErrClosed - } - // Wait cmd. - select { - case err = <-ch: - case err = <-db.compErrC: - case <-db.closeC: - return ErrClosed - } - return err -} - -func (db *DB) mCompaction() { - var x cCmd - - defer func() { - if x := recover(); x != nil { - if x != errCompactionTransactExiting { - panic(x) - } - } - if x != nil { - x.ack(ErrClosed) - } - db.closeW.Done() - }() - - for { - select { - case x = <-db.mcompCmdC: - switch x.(type) { - case cAuto: - db.memCompaction() - x.ack(nil) - x = nil - default: - panic("leveldb: unknown command") - } - case <-db.closeC: - return - } - } -} - -func (db *DB) tCompaction() { - var ( - x cCmd - waitQ []cCmd - ) - - defer func() { - if x := recover(); x != nil { - if x != errCompactionTransactExiting { - panic(x) - } - } - for i := range waitQ { - waitQ[i].ack(ErrClosed) - waitQ[i] = nil - } - if x != nil { - x.ack(ErrClosed) - } - db.closeW.Done() - }() - - for { - if db.tableNeedCompaction() { - select { - case x = <-db.tcompCmdC: - case ch := <-db.tcompPauseC: - db.pauseCompaction(ch) - continue - case <-db.closeC: - return - default: - } - // Resume write operation as soon as possible. - if len(waitQ) > 0 && db.resumeWrite() { - for i := range waitQ { - waitQ[i].ack(nil) - waitQ[i] = nil - } - waitQ = waitQ[:0] - } - } else { - for i := range waitQ { - waitQ[i].ack(nil) - waitQ[i] = nil - } - waitQ = waitQ[:0] - select { - case x = <-db.tcompCmdC: - case ch := <-db.tcompPauseC: - db.pauseCompaction(ch) - continue - case <-db.closeC: - return - } - } - if x != nil { - switch cmd := x.(type) { - case cAuto: - if cmd.ackC != nil { - // Check the write pause state before caching it. - if db.resumeWrite() { - x.ack(nil) - } else { - waitQ = append(waitQ, x) - } - } - case cRange: - x.ack(db.tableRangeCompaction(cmd.level, cmd.min, cmd.max)) - default: - panic("leveldb: unknown command") - } - x = nil - } - db.tableAutoCompaction() - } -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_iter.go deleted file mode 100644 index 03c24cda..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db_iter.go +++ /dev/null @@ -1,360 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "errors" - "math/rand" - "runtime" - "sync" - "sync/atomic" - - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/util" -) - -var ( - errInvalidInternalKey = errors.New("leveldb: Iterator: invalid internal key") -) - -type memdbReleaser struct { - once sync.Once - m *memDB -} - -func (mr *memdbReleaser) Release() { - mr.once.Do(func() { - mr.m.decref() - }) -} - -func (db *DB) newRawIterator(auxm *memDB, auxt tFiles, slice *util.Range, ro *opt.ReadOptions) iterator.Iterator { - strict := opt.GetStrict(db.s.o.Options, ro, opt.StrictReader) - em, fm := db.getMems() - v := db.s.version() - - tableIts := v.getIterators(slice, ro) - n := len(tableIts) + len(auxt) + 3 - its := make([]iterator.Iterator, 0, n) - - if auxm != nil { - ami := auxm.NewIterator(slice) - ami.SetReleaser(&memdbReleaser{m: auxm}) - its = append(its, ami) - } - for _, t := range auxt { - its = append(its, v.s.tops.newIterator(t, slice, ro)) - } - - emi := em.NewIterator(slice) - emi.SetReleaser(&memdbReleaser{m: em}) - its = append(its, emi) - if fm != nil { - fmi := fm.NewIterator(slice) - fmi.SetReleaser(&memdbReleaser{m: fm}) - its = append(its, fmi) - } - its = append(its, tableIts...) - mi := iterator.NewMergedIterator(its, db.s.icmp, strict) - mi.SetReleaser(&versionReleaser{v: v}) - return mi -} - -func (db *DB) newIterator(auxm *memDB, auxt tFiles, seq uint64, slice *util.Range, ro *opt.ReadOptions) *dbIter { - var islice *util.Range - if slice != nil { - islice = &util.Range{} - if slice.Start != nil { - islice.Start = makeInternalKey(nil, slice.Start, keyMaxSeq, keyTypeSeek) - } - if slice.Limit != nil { - islice.Limit = makeInternalKey(nil, slice.Limit, keyMaxSeq, keyTypeSeek) - } - } - rawIter := db.newRawIterator(auxm, auxt, islice, ro) - iter := &dbIter{ - db: db, - icmp: db.s.icmp, - iter: rawIter, - seq: seq, - strict: opt.GetStrict(db.s.o.Options, ro, opt.StrictReader), - key: make([]byte, 0), - value: make([]byte, 0), - } - atomic.AddInt32(&db.aliveIters, 1) - runtime.SetFinalizer(iter, (*dbIter).Release) - return iter -} - -func (db *DB) iterSamplingRate() int { - return rand.Intn(2 * db.s.o.GetIteratorSamplingRate()) -} - -type dir int - -const ( - dirReleased dir = iota - 1 - dirSOI - dirEOI - dirBackward - dirForward -) - -// dbIter represent an interator states over a database session. -type dbIter struct { - db *DB - icmp *iComparer - iter iterator.Iterator - seq uint64 - strict bool - - smaplingGap int - dir dir - key []byte - value []byte - err error - releaser util.Releaser -} - -func (i *dbIter) sampleSeek() { - ikey := i.iter.Key() - i.smaplingGap -= len(ikey) + len(i.iter.Value()) - for i.smaplingGap < 0 { - i.smaplingGap += i.db.iterSamplingRate() - i.db.sampleSeek(ikey) - } -} - -func (i *dbIter) setErr(err error) { - i.err = err - i.key = nil - i.value = nil -} - -func (i *dbIter) iterErr() { - if err := i.iter.Error(); err != nil { - i.setErr(err) - } -} - -func (i *dbIter) Valid() bool { - return i.err == nil && i.dir > dirEOI -} - -func (i *dbIter) First() bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - if i.iter.First() { - i.dir = dirSOI - return i.next() - } - i.dir = dirEOI - i.iterErr() - return false -} - -func (i *dbIter) Last() bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - if i.iter.Last() { - return i.prev() - } - i.dir = dirSOI - i.iterErr() - return false -} - -func (i *dbIter) Seek(key []byte) bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - ikey := makeInternalKey(nil, key, i.seq, keyTypeSeek) - if i.iter.Seek(ikey) { - i.dir = dirSOI - return i.next() - } - i.dir = dirEOI - i.iterErr() - return false -} - -func (i *dbIter) next() bool { - for { - if ukey, seq, kt, kerr := parseInternalKey(i.iter.Key()); kerr == nil { - i.sampleSeek() - if seq <= i.seq { - switch kt { - case keyTypeDel: - // Skip deleted key. - i.key = append(i.key[:0], ukey...) - i.dir = dirForward - case keyTypeVal: - if i.dir == dirSOI || i.icmp.uCompare(ukey, i.key) > 0 { - i.key = append(i.key[:0], ukey...) - i.value = append(i.value[:0], i.iter.Value()...) - i.dir = dirForward - return true - } - } - } - } else if i.strict { - i.setErr(kerr) - break - } - if !i.iter.Next() { - i.dir = dirEOI - i.iterErr() - break - } - } - return false -} - -func (i *dbIter) Next() bool { - if i.dir == dirEOI || i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - if !i.iter.Next() || (i.dir == dirBackward && !i.iter.Next()) { - i.dir = dirEOI - i.iterErr() - return false - } - return i.next() -} - -func (i *dbIter) prev() bool { - i.dir = dirBackward - del := true - if i.iter.Valid() { - for { - if ukey, seq, kt, kerr := parseInternalKey(i.iter.Key()); kerr == nil { - i.sampleSeek() - if seq <= i.seq { - if !del && i.icmp.uCompare(ukey, i.key) < 0 { - return true - } - del = (kt == keyTypeDel) - if !del { - i.key = append(i.key[:0], ukey...) - i.value = append(i.value[:0], i.iter.Value()...) - } - } - } else if i.strict { - i.setErr(kerr) - return false - } - if !i.iter.Prev() { - break - } - } - } - if del { - i.dir = dirSOI - i.iterErr() - return false - } - return true -} - -func (i *dbIter) Prev() bool { - if i.dir == dirSOI || i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - switch i.dir { - case dirEOI: - return i.Last() - case dirForward: - for i.iter.Prev() { - if ukey, _, _, kerr := parseInternalKey(i.iter.Key()); kerr == nil { - i.sampleSeek() - if i.icmp.uCompare(ukey, i.key) < 0 { - goto cont - } - } else if i.strict { - i.setErr(kerr) - return false - } - } - i.dir = dirSOI - i.iterErr() - return false - } - -cont: - return i.prev() -} - -func (i *dbIter) Key() []byte { - if i.err != nil || i.dir <= dirEOI { - return nil - } - return i.key -} - -func (i *dbIter) Value() []byte { - if i.err != nil || i.dir <= dirEOI { - return nil - } - return i.value -} - -func (i *dbIter) Release() { - if i.dir != dirReleased { - // Clear the finalizer. - runtime.SetFinalizer(i, nil) - - if i.releaser != nil { - i.releaser.Release() - i.releaser = nil - } - - i.dir = dirReleased - i.key = nil - i.value = nil - i.iter.Release() - i.iter = nil - atomic.AddInt32(&i.db.aliveIters, -1) - i.db = nil - } -} - -func (i *dbIter) SetReleaser(releaser util.Releaser) { - if i.dir == dirReleased { - panic(util.ErrReleased) - } - if i.releaser != nil && releaser != nil { - panic(util.ErrHasReleaser) - } - i.releaser = releaser -} - -func (i *dbIter) Error() error { - return i.err -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_snapshot.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_snapshot.go deleted file mode 100644 index c2ad70c8..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db_snapshot.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "container/list" - "fmt" - "runtime" - "sync" - "sync/atomic" - - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/util" -) - -type snapshotElement struct { - seq uint64 - ref int - e *list.Element -} - -// Acquires a snapshot, based on latest sequence. -func (db *DB) acquireSnapshot() *snapshotElement { - db.snapsMu.Lock() - defer db.snapsMu.Unlock() - - seq := db.getSeq() - - if e := db.snapsList.Back(); e != nil { - se := e.Value.(*snapshotElement) - if se.seq == seq { - se.ref++ - return se - } else if seq < se.seq { - panic("leveldb: sequence number is not increasing") - } - } - se := &snapshotElement{seq: seq, ref: 1} - se.e = db.snapsList.PushBack(se) - return se -} - -// Releases given snapshot element. -func (db *DB) releaseSnapshot(se *snapshotElement) { - db.snapsMu.Lock() - defer db.snapsMu.Unlock() - - se.ref-- - if se.ref == 0 { - db.snapsList.Remove(se.e) - se.e = nil - } else if se.ref < 0 { - panic("leveldb: Snapshot: negative element reference") - } -} - -// Gets minimum sequence that not being snapshotted. -func (db *DB) minSeq() uint64 { - db.snapsMu.Lock() - defer db.snapsMu.Unlock() - - if e := db.snapsList.Front(); e != nil { - return e.Value.(*snapshotElement).seq - } - - return db.getSeq() -} - -// Snapshot is a DB snapshot. -type Snapshot struct { - db *DB - elem *snapshotElement - mu sync.RWMutex - released bool -} - -// Creates new snapshot object. -func (db *DB) newSnapshot() *Snapshot { - snap := &Snapshot{ - db: db, - elem: db.acquireSnapshot(), - } - atomic.AddInt32(&db.aliveSnaps, 1) - runtime.SetFinalizer(snap, (*Snapshot).Release) - return snap -} - -func (snap *Snapshot) String() string { - return fmt.Sprintf("leveldb.Snapshot{%d}", snap.elem.seq) -} - -// Get gets the value for the given key. It returns ErrNotFound if -// the DB does not contains the key. -// -// The caller should not modify the contents of the returned slice, but -// it is safe to modify the contents of the argument after Get returns. -func (snap *Snapshot) Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) { - err = snap.db.ok() - if err != nil { - return - } - snap.mu.RLock() - defer snap.mu.RUnlock() - if snap.released { - err = ErrSnapshotReleased - return - } - return snap.db.get(nil, nil, key, snap.elem.seq, ro) -} - -// Has returns true if the DB does contains the given key. -// -// It is safe to modify the contents of the argument after Get returns. -func (snap *Snapshot) Has(key []byte, ro *opt.ReadOptions) (ret bool, err error) { - err = snap.db.ok() - if err != nil { - return - } - snap.mu.RLock() - defer snap.mu.RUnlock() - if snap.released { - err = ErrSnapshotReleased - return - } - return snap.db.has(nil, nil, key, snap.elem.seq, ro) -} - -// NewIterator returns an iterator for the snapshot of the underlying DB. -// The returned iterator is not safe for concurrent use, but it is safe to use -// multiple iterators concurrently, with each in a dedicated goroutine. -// It is also safe to use an iterator concurrently with modifying its -// underlying DB. The resultant key/value pairs are guaranteed to be -// consistent. -// -// Slice allows slicing the iterator to only contains keys in the given -// range. A nil Range.Start is treated as a key before all keys in the -// DB. And a nil Range.Limit is treated as a key after all keys in -// the DB. -// -// WARNING: Any slice returned by interator (e.g. slice returned by calling -// Iterator.Key() or Iterator.Value() methods), its content should not be -// modified unless noted otherwise. -// -// The iterator must be released after use, by calling Release method. -// Releasing the snapshot doesn't mean releasing the iterator too, the -// iterator would be still valid until released. -// -// Also read Iterator documentation of the leveldb/iterator package. -func (snap *Snapshot) NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator { - if err := snap.db.ok(); err != nil { - return iterator.NewEmptyIterator(err) - } - snap.mu.Lock() - defer snap.mu.Unlock() - if snap.released { - return iterator.NewEmptyIterator(ErrSnapshotReleased) - } - // Since iterator already hold version ref, it doesn't need to - // hold snapshot ref. - return snap.db.newIterator(nil, nil, snap.elem.seq, slice, ro) -} - -// Release releases the snapshot. This will not release any returned -// iterators, the iterators would still be valid until released or the -// underlying DB is closed. -// -// Other methods should not be called after the snapshot has been released. -func (snap *Snapshot) Release() { - snap.mu.Lock() - defer snap.mu.Unlock() - - if !snap.released { - // Clear the finalizer. - runtime.SetFinalizer(snap, nil) - - snap.released = true - snap.db.releaseSnapshot(snap.elem) - atomic.AddInt32(&snap.db.aliveSnaps, -1) - snap.db = nil - snap.elem = nil - } -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go deleted file mode 100644 index 65e1c54b..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright (c) 2013, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "errors" - "sync/atomic" - "time" - - "github.com/syndtr/goleveldb/leveldb/journal" - "github.com/syndtr/goleveldb/leveldb/memdb" - "github.com/syndtr/goleveldb/leveldb/storage" -) - -var ( - errHasFrozenMem = errors.New("has frozen mem") -) - -type memDB struct { - db *DB - *memdb.DB - ref int32 -} - -func (m *memDB) getref() int32 { - return atomic.LoadInt32(&m.ref) -} - -func (m *memDB) incref() { - atomic.AddInt32(&m.ref, 1) -} - -func (m *memDB) decref() { - if ref := atomic.AddInt32(&m.ref, -1); ref == 0 { - // Only put back memdb with std capacity. - if m.Capacity() == m.db.s.o.GetWriteBuffer() { - m.Reset() - m.db.mpoolPut(m.DB) - } - m.db = nil - m.DB = nil - } else if ref < 0 { - panic("negative memdb ref") - } -} - -// Get latest sequence number. -func (db *DB) getSeq() uint64 { - return atomic.LoadUint64(&db.seq) -} - -// Atomically adds delta to seq. -func (db *DB) addSeq(delta uint64) { - atomic.AddUint64(&db.seq, delta) -} - -func (db *DB) setSeq(seq uint64) { - atomic.StoreUint64(&db.seq, seq) -} - -func (db *DB) sampleSeek(ikey internalKey) { - v := db.s.version() - if v.sampleSeek(ikey) { - // Trigger table compaction. - db.compTrigger(db.tcompCmdC) - } - v.release() -} - -func (db *DB) mpoolPut(mem *memdb.DB) { - if !db.isClosed() { - select { - case db.memPool <- mem: - default: - } - } -} - -func (db *DB) mpoolGet(n int) *memDB { - var mdb *memdb.DB - select { - case mdb = <-db.memPool: - default: - } - if mdb == nil || mdb.Capacity() < n { - mdb = memdb.New(db.s.icmp, maxInt(db.s.o.GetWriteBuffer(), n)) - } - return &memDB{ - db: db, - DB: mdb, - } -} - -func (db *DB) mpoolDrain() { - ticker := time.NewTicker(30 * time.Second) - for { - select { - case <-ticker.C: - select { - case <-db.memPool: - default: - } - case <-db.closeC: - ticker.Stop() - // Make sure the pool is drained. - select { - case <-db.memPool: - case <-time.After(time.Second): - } - close(db.memPool) - return - } - } -} - -// Create new memdb and froze the old one; need external synchronization. -// newMem only called synchronously by the writer. -func (db *DB) newMem(n int) (mem *memDB, err error) { - fd := storage.FileDesc{Type: storage.TypeJournal, Num: db.s.allocFileNum()} - w, err := db.s.stor.Create(fd) - if err != nil { - db.s.reuseFileNum(fd.Num) - return - } - - db.memMu.Lock() - defer db.memMu.Unlock() - - if db.frozenMem != nil { - return nil, errHasFrozenMem - } - - if db.journal == nil { - db.journal = journal.NewWriter(w) - } else { - db.journal.Reset(w) - db.journalWriter.Close() - db.frozenJournalFd = db.journalFd - } - db.journalWriter = w - db.journalFd = fd - db.frozenMem = db.mem - mem = db.mpoolGet(n) - mem.incref() // for self - mem.incref() // for caller - db.mem = mem - // The seq only incremented by the writer. And whoever called newMem - // should hold write lock, so no need additional synchronization here. - db.frozenSeq = db.seq - return -} - -// Get all memdbs. -func (db *DB) getMems() (e, f *memDB) { - db.memMu.RLock() - defer db.memMu.RUnlock() - if db.mem != nil { - db.mem.incref() - } else if !db.isClosed() { - panic("nil effective mem") - } - if db.frozenMem != nil { - db.frozenMem.incref() - } - return db.mem, db.frozenMem -} - -// Get effective memdb. -func (db *DB) getEffectiveMem() *memDB { - db.memMu.RLock() - defer db.memMu.RUnlock() - if db.mem != nil { - db.mem.incref() - } else if !db.isClosed() { - panic("nil effective mem") - } - return db.mem -} - -// Check whether we has frozen memdb. -func (db *DB) hasFrozenMem() bool { - db.memMu.RLock() - defer db.memMu.RUnlock() - return db.frozenMem != nil -} - -// Get frozen memdb. -func (db *DB) getFrozenMem() *memDB { - db.memMu.RLock() - defer db.memMu.RUnlock() - if db.frozenMem != nil { - db.frozenMem.incref() - } - return db.frozenMem -} - -// Drop frozen memdb; assume that frozen memdb isn't nil. -func (db *DB) dropFrozenMem() { - db.memMu.Lock() - if err := db.s.stor.Remove(db.frozenJournalFd); err != nil { - db.logf("journal@remove removing @%d %q", db.frozenJournalFd.Num, err) - } else { - db.logf("journal@remove removed @%d", db.frozenJournalFd.Num) - } - db.frozenJournalFd = storage.FileDesc{} - db.frozenMem.decref() - db.frozenMem = nil - db.memMu.Unlock() -} - -// Clear mems ptr; used by DB.Close(). -func (db *DB) clearMems() { - db.memMu.Lock() - db.mem = nil - db.frozenMem = nil - db.memMu.Unlock() -} - -// Set closed flag; return true if not already closed. -func (db *DB) setClosed() bool { - return atomic.CompareAndSwapUint32(&db.closed, 0, 1) -} - -// Check whether DB was closed. -func (db *DB) isClosed() bool { - return atomic.LoadUint32(&db.closed) != 0 -} - -// Check read ok status. -func (db *DB) ok() error { - if db.isClosed() { - return ErrClosed - } - return nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_transaction.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_transaction.go deleted file mode 100644 index 1a000018..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db_transaction.go +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright (c) 2016, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "errors" - "sync" - "time" - - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/util" -) - -var errTransactionDone = errors.New("leveldb: transaction already closed") - -// Transaction is the transaction handle. -type Transaction struct { - db *DB - lk sync.RWMutex - seq uint64 - mem *memDB - tables tFiles - ikScratch []byte - rec sessionRecord - stats cStatStaging - closed bool -} - -// Get gets the value for the given key. It returns ErrNotFound if the -// DB does not contains the key. -// -// The returned slice is its own copy, it is safe to modify the contents -// of the returned slice. -// It is safe to modify the contents of the argument after Get returns. -func (tr *Transaction) Get(key []byte, ro *opt.ReadOptions) ([]byte, error) { - tr.lk.RLock() - defer tr.lk.RUnlock() - if tr.closed { - return nil, errTransactionDone - } - return tr.db.get(tr.mem.DB, tr.tables, key, tr.seq, ro) -} - -// Has returns true if the DB does contains the given key. -// -// It is safe to modify the contents of the argument after Has returns. -func (tr *Transaction) Has(key []byte, ro *opt.ReadOptions) (bool, error) { - tr.lk.RLock() - defer tr.lk.RUnlock() - if tr.closed { - return false, errTransactionDone - } - return tr.db.has(tr.mem.DB, tr.tables, key, tr.seq, ro) -} - -// NewIterator returns an iterator for the latest snapshot of the transaction. -// The returned iterator is not safe for concurrent use, but it is safe to use -// multiple iterators concurrently, with each in a dedicated goroutine. -// It is also safe to use an iterator concurrently while writes to the -// transaction. The resultant key/value pairs are guaranteed to be consistent. -// -// Slice allows slicing the iterator to only contains keys in the given -// range. A nil Range.Start is treated as a key before all keys in the -// DB. And a nil Range.Limit is treated as a key after all keys in -// the DB. -// -// WARNING: Any slice returned by interator (e.g. slice returned by calling -// Iterator.Key() or Iterator.Key() methods), its content should not be modified -// unless noted otherwise. -// -// The iterator must be released after use, by calling Release method. -// -// Also read Iterator documentation of the leveldb/iterator package. -func (tr *Transaction) NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator { - tr.lk.RLock() - defer tr.lk.RUnlock() - if tr.closed { - return iterator.NewEmptyIterator(errTransactionDone) - } - tr.mem.incref() - return tr.db.newIterator(tr.mem, tr.tables, tr.seq, slice, ro) -} - -func (tr *Transaction) flush() error { - // Flush memdb. - if tr.mem.Len() != 0 { - tr.stats.startTimer() - iter := tr.mem.NewIterator(nil) - t, n, err := tr.db.s.tops.createFrom(iter) - iter.Release() - tr.stats.stopTimer() - if err != nil { - return err - } - if tr.mem.getref() == 1 { - tr.mem.Reset() - } else { - tr.mem.decref() - tr.mem = tr.db.mpoolGet(0) - tr.mem.incref() - } - tr.tables = append(tr.tables, t) - tr.rec.addTableFile(0, t) - tr.stats.write += t.size - tr.db.logf("transaction@flush created L0@%d N·%d S·%s %q:%q", t.fd.Num, n, shortenb(int(t.size)), t.imin, t.imax) - } - return nil -} - -func (tr *Transaction) put(kt keyType, key, value []byte) error { - tr.ikScratch = makeInternalKey(tr.ikScratch, key, tr.seq+1, kt) - if tr.mem.Free() < len(tr.ikScratch)+len(value) { - if err := tr.flush(); err != nil { - return err - } - } - if err := tr.mem.Put(tr.ikScratch, value); err != nil { - return err - } - tr.seq++ - return nil -} - -// Put sets the value for the given key. It overwrites any previous value -// for that key; a DB is not a multi-map. -// Please note that the transaction is not compacted until committed, so if you -// writes 10 same keys, then those 10 same keys are in the transaction. -// -// It is safe to modify the contents of the arguments after Put returns. -func (tr *Transaction) Put(key, value []byte, wo *opt.WriteOptions) error { - tr.lk.Lock() - defer tr.lk.Unlock() - if tr.closed { - return errTransactionDone - } - return tr.put(keyTypeVal, key, value) -} - -// Delete deletes the value for the given key. -// Please note that the transaction is not compacted until committed, so if you -// writes 10 same keys, then those 10 same keys are in the transaction. -// -// It is safe to modify the contents of the arguments after Delete returns. -func (tr *Transaction) Delete(key []byte, wo *opt.WriteOptions) error { - tr.lk.Lock() - defer tr.lk.Unlock() - if tr.closed { - return errTransactionDone - } - return tr.put(keyTypeDel, key, nil) -} - -// Write apply the given batch to the transaction. The batch will be applied -// sequentially. -// Please note that the transaction is not compacted until committed, so if you -// writes 10 same keys, then those 10 same keys are in the transaction. -// -// It is safe to modify the contents of the arguments after Write returns. -func (tr *Transaction) Write(b *Batch, wo *opt.WriteOptions) error { - if b == nil || b.Len() == 0 { - return nil - } - - tr.lk.Lock() - defer tr.lk.Unlock() - if tr.closed { - return errTransactionDone - } - return b.replayInternal(func(i int, kt keyType, k, v []byte) error { - return tr.put(kt, k, v) - }) -} - -func (tr *Transaction) setDone() { - tr.closed = true - tr.db.tr = nil - tr.mem.decref() - <-tr.db.writeLockC -} - -// Commit commits the transaction. If error is not nil, then the transaction is -// not committed, it can then either be retried or discarded. -// -// Other methods should not be called after transaction has been committed. -func (tr *Transaction) Commit() error { - if err := tr.db.ok(); err != nil { - return err - } - - tr.lk.Lock() - defer tr.lk.Unlock() - if tr.closed { - return errTransactionDone - } - if err := tr.flush(); err != nil { - // Return error, lets user decide either to retry or discard - // transaction. - return err - } - if len(tr.tables) != 0 { - // Committing transaction. - tr.rec.setSeqNum(tr.seq) - tr.db.compCommitLk.Lock() - tr.stats.startTimer() - var cerr error - for retry := 0; retry < 3; retry++ { - cerr = tr.db.s.commit(&tr.rec) - if cerr != nil { - tr.db.logf("transaction@commit error R·%d %q", retry, cerr) - select { - case <-time.After(time.Second): - case <-tr.db.closeC: - tr.db.logf("transaction@commit exiting") - tr.db.compCommitLk.Unlock() - return cerr - } - } else { - // Success. Set db.seq. - tr.db.setSeq(tr.seq) - break - } - } - tr.stats.stopTimer() - if cerr != nil { - // Return error, lets user decide either to retry or discard - // transaction. - return cerr - } - - // Update compaction stats. This is safe as long as we hold compCommitLk. - tr.db.compStats.addStat(0, &tr.stats) - - // Trigger table auto-compaction. - tr.db.compTrigger(tr.db.tcompCmdC) - tr.db.compCommitLk.Unlock() - - // Additionally, wait compaction when certain threshold reached. - // Ignore error, returns error only if transaction can't be committed. - tr.db.waitCompaction() - } - // Only mark as done if transaction committed successfully. - tr.setDone() - return nil -} - -func (tr *Transaction) discard() { - // Discard transaction. - for _, t := range tr.tables { - tr.db.logf("transaction@discard @%d", t.fd.Num) - if err1 := tr.db.s.stor.Remove(t.fd); err1 == nil { - tr.db.s.reuseFileNum(t.fd.Num) - } - } -} - -// Discard discards the transaction. -// -// Other methods should not be called after transaction has been discarded. -func (tr *Transaction) Discard() { - tr.lk.Lock() - if !tr.closed { - tr.discard() - tr.setDone() - } - tr.lk.Unlock() -} - -func (db *DB) waitCompaction() error { - if db.s.tLen(0) >= db.s.o.GetWriteL0PauseTrigger() { - return db.compTriggerWait(db.tcompCmdC) - } - return nil -} - -// OpenTransaction opens an atomic DB transaction. Only one transaction can be -// opened at a time. Subsequent call to Write and OpenTransaction will be blocked -// until in-flight transaction is committed or discarded. -// The returned transaction handle is safe for concurrent use. -// -// Transaction is expensive and can overwhelm compaction, especially if -// transaction size is small. Use with caution. -// -// The transaction must be closed once done, either by committing or discarding -// the transaction. -// Closing the DB will discard open transaction. -func (db *DB) OpenTransaction() (*Transaction, error) { - if err := db.ok(); err != nil { - return nil, err - } - - // The write happen synchronously. - select { - case db.writeLockC <- struct{}{}: - case err := <-db.compPerErrC: - return nil, err - case <-db.closeC: - return nil, ErrClosed - } - - if db.tr != nil { - panic("leveldb: has open transaction") - } - - // Flush current memdb. - if db.mem != nil && db.mem.Len() != 0 { - if _, err := db.rotateMem(0, true); err != nil { - return nil, err - } - } - - // Wait compaction when certain threshold reached. - if err := db.waitCompaction(); err != nil { - return nil, err - } - - tr := &Transaction{ - db: db, - seq: db.seq, - mem: db.mpoolGet(0), - } - tr.mem.incref() - db.tr = tr - return tr, nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_util.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_util.go deleted file mode 100644 index 3f065489..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db_util.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/storage" - "github.com/syndtr/goleveldb/leveldb/util" -) - -// Reader is the interface that wraps basic Get and NewIterator methods. -// This interface implemented by both DB and Snapshot. -type Reader interface { - Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) - NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator -} - -// Sizes is list of size. -type Sizes []int64 - -// Sum returns sum of the sizes. -func (sizes Sizes) Sum() int64 { - var sum int64 - for _, size := range sizes { - sum += size - } - return sum -} - -// Logging. -func (db *DB) log(v ...interface{}) { db.s.log(v...) } -func (db *DB) logf(format string, v ...interface{}) { db.s.logf(format, v...) } - -// Check and clean files. -func (db *DB) checkAndCleanFiles() error { - v := db.s.version() - defer v.release() - - tmap := make(map[int64]bool) - for _, tables := range v.levels { - for _, t := range tables { - tmap[t.fd.Num] = false - } - } - - fds, err := db.s.stor.List(storage.TypeAll) - if err != nil { - return err - } - - var nt int - var rem []storage.FileDesc - for _, fd := range fds { - keep := true - switch fd.Type { - case storage.TypeManifest: - keep = fd.Num >= db.s.manifestFd.Num - case storage.TypeJournal: - if !db.frozenJournalFd.Zero() { - keep = fd.Num >= db.frozenJournalFd.Num - } else { - keep = fd.Num >= db.journalFd.Num - } - case storage.TypeTable: - _, keep = tmap[fd.Num] - if keep { - tmap[fd.Num] = true - nt++ - } - } - - if !keep { - rem = append(rem, fd) - } - } - - if nt != len(tmap) { - var mfds []storage.FileDesc - for num, present := range tmap { - if !present { - mfds = append(mfds, storage.FileDesc{Type: storage.TypeTable, Num: num}) - db.logf("db@janitor table missing @%d", num) - } - } - return errors.NewErrCorrupted(storage.FileDesc{}, &errors.ErrMissingFiles{Fds: mfds}) - } - - db.logf("db@janitor F·%d G·%d", len(fds), len(rem)) - for _, fd := range rem { - db.logf("db@janitor removing %s-%d", fd.Type, fd.Num) - if err := db.s.stor.Remove(fd); err != nil { - return err - } - } - return nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go deleted file mode 100644 index db0c1bec..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go +++ /dev/null @@ -1,464 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "sync/atomic" - "time" - - "github.com/syndtr/goleveldb/leveldb/memdb" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/util" -) - -func (db *DB) writeJournal(batches []*Batch, seq uint64, sync bool) error { - wr, err := db.journal.Next() - if err != nil { - return err - } - if err := writeBatchesWithHeader(wr, batches, seq); err != nil { - return err - } - if err := db.journal.Flush(); err != nil { - return err - } - if sync { - return db.journalWriter.Sync() - } - return nil -} - -func (db *DB) rotateMem(n int, wait bool) (mem *memDB, err error) { - retryLimit := 3 -retry: - // Wait for pending memdb compaction. - err = db.compTriggerWait(db.mcompCmdC) - if err != nil { - return - } - retryLimit-- - - // Create new memdb and journal. - mem, err = db.newMem(n) - if err != nil { - if err == errHasFrozenMem { - if retryLimit <= 0 { - panic("BUG: still has frozen memdb") - } - goto retry - } - return - } - - // Schedule memdb compaction. - if wait { - err = db.compTriggerWait(db.mcompCmdC) - } else { - db.compTrigger(db.mcompCmdC) - } - return -} - -func (db *DB) flush(n int) (mdb *memDB, mdbFree int, err error) { - delayed := false - slowdownTrigger := db.s.o.GetWriteL0SlowdownTrigger() - pauseTrigger := db.s.o.GetWriteL0PauseTrigger() - flush := func() (retry bool) { - mdb = db.getEffectiveMem() - if mdb == nil { - err = ErrClosed - return false - } - defer func() { - if retry { - mdb.decref() - mdb = nil - } - }() - tLen := db.s.tLen(0) - mdbFree = mdb.Free() - switch { - case tLen >= slowdownTrigger && !delayed: - delayed = true - time.Sleep(time.Millisecond) - case mdbFree >= n: - return false - case tLen >= pauseTrigger: - delayed = true - // Set the write paused flag explicitly. - atomic.StoreInt32(&db.inWritePaused, 1) - err = db.compTriggerWait(db.tcompCmdC) - // Unset the write paused flag. - atomic.StoreInt32(&db.inWritePaused, 0) - if err != nil { - return false - } - default: - // Allow memdb to grow if it has no entry. - if mdb.Len() == 0 { - mdbFree = n - } else { - mdb.decref() - mdb, err = db.rotateMem(n, false) - if err == nil { - mdbFree = mdb.Free() - } else { - mdbFree = 0 - } - } - return false - } - return true - } - start := time.Now() - for flush() { - } - if delayed { - db.writeDelay += time.Since(start) - db.writeDelayN++ - } else if db.writeDelayN > 0 { - db.logf("db@write was delayed N·%d T·%v", db.writeDelayN, db.writeDelay) - atomic.AddInt32(&db.cWriteDelayN, int32(db.writeDelayN)) - atomic.AddInt64(&db.cWriteDelay, int64(db.writeDelay)) - db.writeDelay = 0 - db.writeDelayN = 0 - } - return -} - -type writeMerge struct { - sync bool - batch *Batch - keyType keyType - key, value []byte -} - -func (db *DB) unlockWrite(overflow bool, merged int, err error) { - for i := 0; i < merged; i++ { - db.writeAckC <- err - } - if overflow { - // Pass lock to the next write (that failed to merge). - db.writeMergedC <- false - } else { - // Release lock. - <-db.writeLockC - } -} - -// ourBatch is batch that we can modify. -func (db *DB) writeLocked(batch, ourBatch *Batch, merge, sync bool) error { - // Try to flush memdb. This method would also trying to throttle writes - // if it is too fast and compaction cannot catch-up. - mdb, mdbFree, err := db.flush(batch.internalLen) - if err != nil { - db.unlockWrite(false, 0, err) - return err - } - defer mdb.decref() - - var ( - overflow bool - merged int - batches = []*Batch{batch} - ) - - if merge { - // Merge limit. - var mergeLimit int - if batch.internalLen > 128<<10 { - mergeLimit = (1 << 20) - batch.internalLen - } else { - mergeLimit = 128 << 10 - } - mergeCap := mdbFree - batch.internalLen - if mergeLimit > mergeCap { - mergeLimit = mergeCap - } - - merge: - for mergeLimit > 0 { - select { - case incoming := <-db.writeMergeC: - if incoming.batch != nil { - // Merge batch. - if incoming.batch.internalLen > mergeLimit { - overflow = true - break merge - } - batches = append(batches, incoming.batch) - mergeLimit -= incoming.batch.internalLen - } else { - // Merge put. - internalLen := len(incoming.key) + len(incoming.value) + 8 - if internalLen > mergeLimit { - overflow = true - break merge - } - if ourBatch == nil { - ourBatch = db.batchPool.Get().(*Batch) - ourBatch.Reset() - batches = append(batches, ourBatch) - } - // We can use same batch since concurrent write doesn't - // guarantee write order. - ourBatch.appendRec(incoming.keyType, incoming.key, incoming.value) - mergeLimit -= internalLen - } - sync = sync || incoming.sync - merged++ - db.writeMergedC <- true - - default: - break merge - } - } - } - - // Release ourBatch if any. - if ourBatch != nil { - defer db.batchPool.Put(ourBatch) - } - - // Seq number. - seq := db.seq + 1 - - // Write journal. - if err := db.writeJournal(batches, seq, sync); err != nil { - db.unlockWrite(overflow, merged, err) - return err - } - - // Put batches. - for _, batch := range batches { - if err := batch.putMem(seq, mdb.DB); err != nil { - panic(err) - } - seq += uint64(batch.Len()) - } - - // Incr seq number. - db.addSeq(uint64(batchesLen(batches))) - - // Rotate memdb if it's reach the threshold. - if batch.internalLen >= mdbFree { - db.rotateMem(0, false) - } - - db.unlockWrite(overflow, merged, nil) - return nil -} - -// Write apply the given batch to the DB. The batch records will be applied -// sequentially. Write might be used concurrently, when used concurrently and -// batch is small enough, write will try to merge the batches. Set NoWriteMerge -// option to true to disable write merge. -// -// It is safe to modify the contents of the arguments after Write returns but -// not before. Write will not modify content of the batch. -func (db *DB) Write(batch *Batch, wo *opt.WriteOptions) error { - if err := db.ok(); err != nil || batch == nil || batch.Len() == 0 { - return err - } - - // If the batch size is larger than write buffer, it may justified to write - // using transaction instead. Using transaction the batch will be written - // into tables directly, skipping the journaling. - if batch.internalLen > db.s.o.GetWriteBuffer() && !db.s.o.GetDisableLargeBatchTransaction() { - tr, err := db.OpenTransaction() - if err != nil { - return err - } - if err := tr.Write(batch, wo); err != nil { - tr.Discard() - return err - } - return tr.Commit() - } - - merge := !wo.GetNoWriteMerge() && !db.s.o.GetNoWriteMerge() - sync := wo.GetSync() && !db.s.o.GetNoSync() - - // Acquire write lock. - if merge { - select { - case db.writeMergeC <- writeMerge{sync: sync, batch: batch}: - if <-db.writeMergedC { - // Write is merged. - return <-db.writeAckC - } - // Write is not merged, the write lock is handed to us. Continue. - case db.writeLockC <- struct{}{}: - // Write lock acquired. - case err := <-db.compPerErrC: - // Compaction error. - return err - case <-db.closeC: - // Closed - return ErrClosed - } - } else { - select { - case db.writeLockC <- struct{}{}: - // Write lock acquired. - case err := <-db.compPerErrC: - // Compaction error. - return err - case <-db.closeC: - // Closed - return ErrClosed - } - } - - return db.writeLocked(batch, nil, merge, sync) -} - -func (db *DB) putRec(kt keyType, key, value []byte, wo *opt.WriteOptions) error { - if err := db.ok(); err != nil { - return err - } - - merge := !wo.GetNoWriteMerge() && !db.s.o.GetNoWriteMerge() - sync := wo.GetSync() && !db.s.o.GetNoSync() - - // Acquire write lock. - if merge { - select { - case db.writeMergeC <- writeMerge{sync: sync, keyType: kt, key: key, value: value}: - if <-db.writeMergedC { - // Write is merged. - return <-db.writeAckC - } - // Write is not merged, the write lock is handed to us. Continue. - case db.writeLockC <- struct{}{}: - // Write lock acquired. - case err := <-db.compPerErrC: - // Compaction error. - return err - case <-db.closeC: - // Closed - return ErrClosed - } - } else { - select { - case db.writeLockC <- struct{}{}: - // Write lock acquired. - case err := <-db.compPerErrC: - // Compaction error. - return err - case <-db.closeC: - // Closed - return ErrClosed - } - } - - batch := db.batchPool.Get().(*Batch) - batch.Reset() - batch.appendRec(kt, key, value) - return db.writeLocked(batch, batch, merge, sync) -} - -// Put sets the value for the given key. It overwrites any previous value -// for that key; a DB is not a multi-map. Write merge also applies for Put, see -// Write. -// -// It is safe to modify the contents of the arguments after Put returns but not -// before. -func (db *DB) Put(key, value []byte, wo *opt.WriteOptions) error { - return db.putRec(keyTypeVal, key, value, wo) -} - -// Delete deletes the value for the given key. Delete will not returns error if -// key doesn't exist. Write merge also applies for Delete, see Write. -// -// It is safe to modify the contents of the arguments after Delete returns but -// not before. -func (db *DB) Delete(key []byte, wo *opt.WriteOptions) error { - return db.putRec(keyTypeDel, key, nil, wo) -} - -func isMemOverlaps(icmp *iComparer, mem *memdb.DB, min, max []byte) bool { - iter := mem.NewIterator(nil) - defer iter.Release() - return (max == nil || (iter.First() && icmp.uCompare(max, internalKey(iter.Key()).ukey()) >= 0)) && - (min == nil || (iter.Last() && icmp.uCompare(min, internalKey(iter.Key()).ukey()) <= 0)) -} - -// CompactRange compacts the underlying DB for the given key range. -// In particular, deleted and overwritten versions are discarded, -// and the data is rearranged to reduce the cost of operations -// needed to access the data. This operation should typically only -// be invoked by users who understand the underlying implementation. -// -// A nil Range.Start is treated as a key before all keys in the DB. -// And a nil Range.Limit is treated as a key after all keys in the DB. -// Therefore if both is nil then it will compact entire DB. -func (db *DB) CompactRange(r util.Range) error { - if err := db.ok(); err != nil { - return err - } - - // Lock writer. - select { - case db.writeLockC <- struct{}{}: - case err := <-db.compPerErrC: - return err - case <-db.closeC: - return ErrClosed - } - - // Check for overlaps in memdb. - mdb := db.getEffectiveMem() - if mdb == nil { - return ErrClosed - } - defer mdb.decref() - if isMemOverlaps(db.s.icmp, mdb.DB, r.Start, r.Limit) { - // Memdb compaction. - if _, err := db.rotateMem(0, false); err != nil { - <-db.writeLockC - return err - } - <-db.writeLockC - if err := db.compTriggerWait(db.mcompCmdC); err != nil { - return err - } - } else { - <-db.writeLockC - } - - // Table compaction. - return db.compTriggerRange(db.tcompCmdC, -1, r.Start, r.Limit) -} - -// SetReadOnly makes DB read-only. It will stay read-only until reopened. -func (db *DB) SetReadOnly() error { - if err := db.ok(); err != nil { - return err - } - - // Lock writer. - select { - case db.writeLockC <- struct{}{}: - db.compWriteLocking = true - case err := <-db.compPerErrC: - return err - case <-db.closeC: - return ErrClosed - } - - // Set compaction read-only. - select { - case db.compErrSetC <- ErrReadOnly: - case perr := <-db.compPerErrC: - return perr - case <-db.closeC: - return ErrClosed - } - - return nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/doc.go b/vendor/github.com/syndtr/goleveldb/leveldb/doc.go deleted file mode 100644 index be768e57..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/doc.go +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package leveldb provides implementation of LevelDB key/value database. -// -// Create or open a database: -// -// // The returned DB instance is safe for concurrent use. Which mean that all -// // DB's methods may be called concurrently from multiple goroutine. -// db, err := leveldb.OpenFile("path/to/db", nil) -// ... -// defer db.Close() -// ... -// -// Read or modify the database content: -// -// // Remember that the contents of the returned slice should not be modified. -// data, err := db.Get([]byte("key"), nil) -// ... -// err = db.Put([]byte("key"), []byte("value"), nil) -// ... -// err = db.Delete([]byte("key"), nil) -// ... -// -// Iterate over database content: -// -// iter := db.NewIterator(nil, nil) -// for iter.Next() { -// // Remember that the contents of the returned slice should not be modified, and -// // only valid until the next call to Next. -// key := iter.Key() -// value := iter.Value() -// ... -// } -// iter.Release() -// err = iter.Error() -// ... -// -// Iterate over subset of database content with a particular prefix: -// iter := db.NewIterator(util.BytesPrefix([]byte("foo-")), nil) -// for iter.Next() { -// // Use key/value. -// ... -// } -// iter.Release() -// err = iter.Error() -// ... -// -// Seek-then-Iterate: -// -// iter := db.NewIterator(nil, nil) -// for ok := iter.Seek(key); ok; ok = iter.Next() { -// // Use key/value. -// ... -// } -// iter.Release() -// err = iter.Error() -// ... -// -// Iterate over subset of database content: -// -// iter := db.NewIterator(&util.Range{Start: []byte("foo"), Limit: []byte("xoo")}, nil) -// for iter.Next() { -// // Use key/value. -// ... -// } -// iter.Release() -// err = iter.Error() -// ... -// -// Batch writes: -// -// batch := new(leveldb.Batch) -// batch.Put([]byte("foo"), []byte("value")) -// batch.Put([]byte("bar"), []byte("another value")) -// batch.Delete([]byte("baz")) -// err = db.Write(batch, nil) -// ... -// -// Use bloom filter: -// -// o := &opt.Options{ -// Filter: filter.NewBloomFilter(10), -// } -// db, err := leveldb.OpenFile("path/to/db", o) -// ... -// defer db.Close() -// ... -package leveldb diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/errors.go b/vendor/github.com/syndtr/goleveldb/leveldb/errors.go deleted file mode 100644 index de264981..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/errors.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2014, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "github.com/syndtr/goleveldb/leveldb/errors" -) - -// Common errors. -var ( - ErrNotFound = errors.ErrNotFound - ErrReadOnly = errors.New("leveldb: read-only mode") - ErrSnapshotReleased = errors.New("leveldb: snapshot released") - ErrIterReleased = errors.New("leveldb: iterator released") - ErrClosed = errors.New("leveldb: closed") -) diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/errors/errors.go b/vendor/github.com/syndtr/goleveldb/leveldb/errors/errors.go deleted file mode 100644 index 8d6146b6..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/errors/errors.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) 2014, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package errors provides common error types used throughout leveldb. -package errors - -import ( - "errors" - "fmt" - - "github.com/syndtr/goleveldb/leveldb/storage" - "github.com/syndtr/goleveldb/leveldb/util" -) - -// Common errors. -var ( - ErrNotFound = New("leveldb: not found") - ErrReleased = util.ErrReleased - ErrHasReleaser = util.ErrHasReleaser -) - -// New returns an error that formats as the given text. -func New(text string) error { - return errors.New(text) -} - -// ErrCorrupted is the type that wraps errors that indicate corruption in -// the database. -type ErrCorrupted struct { - Fd storage.FileDesc - Err error -} - -func (e *ErrCorrupted) Error() string { - if !e.Fd.Zero() { - return fmt.Sprintf("%v [file=%v]", e.Err, e.Fd) - } - return e.Err.Error() -} - -// NewErrCorrupted creates new ErrCorrupted error. -func NewErrCorrupted(fd storage.FileDesc, err error) error { - return &ErrCorrupted{fd, err} -} - -// IsCorrupted returns a boolean indicating whether the error is indicating -// a corruption. -func IsCorrupted(err error) bool { - switch err.(type) { - case *ErrCorrupted: - return true - case *storage.ErrCorrupted: - return true - } - return false -} - -// ErrMissingFiles is the type that indicating a corruption due to missing -// files. ErrMissingFiles always wrapped with ErrCorrupted. -type ErrMissingFiles struct { - Fds []storage.FileDesc -} - -func (e *ErrMissingFiles) Error() string { return "file missing" } - -// SetFd sets 'file info' of the given error with the given file. -// Currently only ErrCorrupted is supported, otherwise will do nothing. -func SetFd(err error, fd storage.FileDesc) error { - switch x := err.(type) { - case *ErrCorrupted: - x.Fd = fd - return x - } - return err -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/filter.go b/vendor/github.com/syndtr/goleveldb/leveldb/filter.go deleted file mode 100644 index e961e420..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/filter.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "github.com/syndtr/goleveldb/leveldb/filter" -) - -type iFilter struct { - filter.Filter -} - -func (f iFilter) Contains(filter, key []byte) bool { - return f.Filter.Contains(filter, internalKey(key).ukey()) -} - -func (f iFilter) NewGenerator() filter.FilterGenerator { - return iFilterGenerator{f.Filter.NewGenerator()} -} - -type iFilterGenerator struct { - filter.FilterGenerator -} - -func (g iFilterGenerator) Add(key []byte) { - g.FilterGenerator.Add(internalKey(key).ukey()) -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/filter/bloom.go b/vendor/github.com/syndtr/goleveldb/leveldb/filter/bloom.go deleted file mode 100644 index bab0e997..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/filter/bloom.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package filter - -import ( - "github.com/syndtr/goleveldb/leveldb/util" -) - -func bloomHash(key []byte) uint32 { - return util.Hash(key, 0xbc9f1d34) -} - -type bloomFilter int - -// The bloom filter serializes its parameters and is backward compatible -// with respect to them. Therefor, its parameters are not added to its -// name. -func (bloomFilter) Name() string { - return "leveldb.BuiltinBloomFilter" -} - -func (f bloomFilter) Contains(filter, key []byte) bool { - nBytes := len(filter) - 1 - if nBytes < 1 { - return false - } - nBits := uint32(nBytes * 8) - - // Use the encoded k so that we can read filters generated by - // bloom filters created using different parameters. - k := filter[nBytes] - if k > 30 { - // Reserved for potentially new encodings for short bloom filters. - // Consider it a match. - return true - } - - kh := bloomHash(key) - delta := (kh >> 17) | (kh << 15) // Rotate right 17 bits - for j := uint8(0); j < k; j++ { - bitpos := kh % nBits - if (uint32(filter[bitpos/8]) & (1 << (bitpos % 8))) == 0 { - return false - } - kh += delta - } - return true -} - -func (f bloomFilter) NewGenerator() FilterGenerator { - // Round down to reduce probing cost a little bit. - k := uint8(f * 69 / 100) // 0.69 =~ ln(2) - if k < 1 { - k = 1 - } else if k > 30 { - k = 30 - } - return &bloomFilterGenerator{ - n: int(f), - k: k, - } -} - -type bloomFilterGenerator struct { - n int - k uint8 - - keyHashes []uint32 -} - -func (g *bloomFilterGenerator) Add(key []byte) { - // Use double-hashing to generate a sequence of hash values. - // See analysis in [Kirsch,Mitzenmacher 2006]. - g.keyHashes = append(g.keyHashes, bloomHash(key)) -} - -func (g *bloomFilterGenerator) Generate(b Buffer) { - // Compute bloom filter size (in both bits and bytes) - nBits := uint32(len(g.keyHashes) * g.n) - // For small n, we can see a very high false positive rate. Fix it - // by enforcing a minimum bloom filter length. - if nBits < 64 { - nBits = 64 - } - nBytes := (nBits + 7) / 8 - nBits = nBytes * 8 - - dest := b.Alloc(int(nBytes) + 1) - dest[nBytes] = g.k - for _, kh := range g.keyHashes { - delta := (kh >> 17) | (kh << 15) // Rotate right 17 bits - for j := uint8(0); j < g.k; j++ { - bitpos := kh % nBits - dest[bitpos/8] |= (1 << (bitpos % 8)) - kh += delta - } - } - - g.keyHashes = g.keyHashes[:0] -} - -// NewBloomFilter creates a new initialized bloom filter for given -// bitsPerKey. -// -// Since bitsPerKey is persisted individually for each bloom filter -// serialization, bloom filters are backwards compatible with respect to -// changing bitsPerKey. This means that no big performance penalty will -// be experienced when changing the parameter. See documentation for -// opt.Options.Filter for more information. -func NewBloomFilter(bitsPerKey int) Filter { - return bloomFilter(bitsPerKey) -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/filter/filter.go b/vendor/github.com/syndtr/goleveldb/leveldb/filter/filter.go deleted file mode 100644 index 7a925c5a..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/filter/filter.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package filter provides interface and implementation of probabilistic -// data structure. -// -// The filter is resposible for creating small filter from a set of keys. -// These filter will then used to test whether a key is a member of the set. -// In many cases, a filter can cut down the number of disk seeks from a -// handful to a single disk seek per DB.Get call. -package filter - -// Buffer is the interface that wraps basic Alloc, Write and WriteByte methods. -type Buffer interface { - // Alloc allocs n bytes of slice from the buffer. This also advancing - // write offset. - Alloc(n int) []byte - - // Write appends the contents of p to the buffer. - Write(p []byte) (n int, err error) - - // WriteByte appends the byte c to the buffer. - WriteByte(c byte) error -} - -// Filter is the filter. -type Filter interface { - // Name returns the name of this policy. - // - // Note that if the filter encoding changes in an incompatible way, - // the name returned by this method must be changed. Otherwise, old - // incompatible filters may be passed to methods of this type. - Name() string - - // NewGenerator creates a new filter generator. - NewGenerator() FilterGenerator - - // Contains returns true if the filter contains the given key. - // - // The filter are filters generated by the filter generator. - Contains(filter, key []byte) bool -} - -// FilterGenerator is the filter generator. -type FilterGenerator interface { - // Add adds a key to the filter generator. - // - // The key may become invalid after call to this method end, therefor - // key must be copied if implementation require keeping key for later - // use. The key should not modified directly, doing so may cause - // undefined results. - Add(key []byte) - - // Generate generates filters based on keys passed so far. After call - // to Generate the filter generator maybe resetted, depends on implementation. - Generate(b Buffer) -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/array_iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/array_iter.go deleted file mode 100644 index a23ab05f..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/array_iter.go +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright (c) 2014, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package iterator - -import ( - "github.com/syndtr/goleveldb/leveldb/util" -) - -// BasicArray is the interface that wraps basic Len and Search method. -type BasicArray interface { - // Len returns length of the array. - Len() int - - // Search finds smallest index that point to a key that is greater - // than or equal to the given key. - Search(key []byte) int -} - -// Array is the interface that wraps BasicArray and basic Index method. -type Array interface { - BasicArray - - // Index returns key/value pair with index of i. - Index(i int) (key, value []byte) -} - -// Array is the interface that wraps BasicArray and basic Get method. -type ArrayIndexer interface { - BasicArray - - // Get returns a new data iterator with index of i. - Get(i int) Iterator -} - -type basicArrayIterator struct { - util.BasicReleaser - array BasicArray - pos int - err error -} - -func (i *basicArrayIterator) Valid() bool { - return i.pos >= 0 && i.pos < i.array.Len() && !i.Released() -} - -func (i *basicArrayIterator) First() bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - if i.array.Len() == 0 { - i.pos = -1 - return false - } - i.pos = 0 - return true -} - -func (i *basicArrayIterator) Last() bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - n := i.array.Len() - if n == 0 { - i.pos = 0 - return false - } - i.pos = n - 1 - return true -} - -func (i *basicArrayIterator) Seek(key []byte) bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - n := i.array.Len() - if n == 0 { - i.pos = 0 - return false - } - i.pos = i.array.Search(key) - if i.pos >= n { - return false - } - return true -} - -func (i *basicArrayIterator) Next() bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - i.pos++ - if n := i.array.Len(); i.pos >= n { - i.pos = n - return false - } - return true -} - -func (i *basicArrayIterator) Prev() bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - i.pos-- - if i.pos < 0 { - i.pos = -1 - return false - } - return true -} - -func (i *basicArrayIterator) Error() error { return i.err } - -type arrayIterator struct { - basicArrayIterator - array Array - pos int - key, value []byte -} - -func (i *arrayIterator) updateKV() { - if i.pos == i.basicArrayIterator.pos { - return - } - i.pos = i.basicArrayIterator.pos - if i.Valid() { - i.key, i.value = i.array.Index(i.pos) - } else { - i.key = nil - i.value = nil - } -} - -func (i *arrayIterator) Key() []byte { - i.updateKV() - return i.key -} - -func (i *arrayIterator) Value() []byte { - i.updateKV() - return i.value -} - -type arrayIteratorIndexer struct { - basicArrayIterator - array ArrayIndexer -} - -func (i *arrayIteratorIndexer) Get() Iterator { - if i.Valid() { - return i.array.Get(i.basicArrayIterator.pos) - } - return nil -} - -// NewArrayIterator returns an iterator from the given array. -func NewArrayIterator(array Array) Iterator { - return &arrayIterator{ - basicArrayIterator: basicArrayIterator{array: array, pos: -1}, - array: array, - pos: -1, - } -} - -// NewArrayIndexer returns an index iterator from the given array. -func NewArrayIndexer(array ArrayIndexer) IteratorIndexer { - return &arrayIteratorIndexer{ - basicArrayIterator: basicArrayIterator{array: array, pos: -1}, - array: array, - } -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/indexed_iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/indexed_iter.go deleted file mode 100644 index 939adbb9..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/indexed_iter.go +++ /dev/null @@ -1,242 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package iterator - -import ( - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/util" -) - -// IteratorIndexer is the interface that wraps CommonIterator and basic Get -// method. IteratorIndexer provides index for indexed iterator. -type IteratorIndexer interface { - CommonIterator - - // Get returns a new data iterator for the current position, or nil if - // done. - Get() Iterator -} - -type indexedIterator struct { - util.BasicReleaser - index IteratorIndexer - strict bool - - data Iterator - err error - errf func(err error) - closed bool -} - -func (i *indexedIterator) setData() { - if i.data != nil { - i.data.Release() - } - i.data = i.index.Get() -} - -func (i *indexedIterator) clearData() { - if i.data != nil { - i.data.Release() - } - i.data = nil -} - -func (i *indexedIterator) indexErr() { - if err := i.index.Error(); err != nil { - if i.errf != nil { - i.errf(err) - } - i.err = err - } -} - -func (i *indexedIterator) dataErr() bool { - if err := i.data.Error(); err != nil { - if i.errf != nil { - i.errf(err) - } - if i.strict || !errors.IsCorrupted(err) { - i.err = err - return true - } - } - return false -} - -func (i *indexedIterator) Valid() bool { - return i.data != nil && i.data.Valid() -} - -func (i *indexedIterator) First() bool { - if i.err != nil { - return false - } else if i.Released() { - i.err = ErrIterReleased - return false - } - - if !i.index.First() { - i.indexErr() - i.clearData() - return false - } - i.setData() - return i.Next() -} - -func (i *indexedIterator) Last() bool { - if i.err != nil { - return false - } else if i.Released() { - i.err = ErrIterReleased - return false - } - - if !i.index.Last() { - i.indexErr() - i.clearData() - return false - } - i.setData() - if !i.data.Last() { - if i.dataErr() { - return false - } - i.clearData() - return i.Prev() - } - return true -} - -func (i *indexedIterator) Seek(key []byte) bool { - if i.err != nil { - return false - } else if i.Released() { - i.err = ErrIterReleased - return false - } - - if !i.index.Seek(key) { - i.indexErr() - i.clearData() - return false - } - i.setData() - if !i.data.Seek(key) { - if i.dataErr() { - return false - } - i.clearData() - return i.Next() - } - return true -} - -func (i *indexedIterator) Next() bool { - if i.err != nil { - return false - } else if i.Released() { - i.err = ErrIterReleased - return false - } - - switch { - case i.data != nil && !i.data.Next(): - if i.dataErr() { - return false - } - i.clearData() - fallthrough - case i.data == nil: - if !i.index.Next() { - i.indexErr() - return false - } - i.setData() - return i.Next() - } - return true -} - -func (i *indexedIterator) Prev() bool { - if i.err != nil { - return false - } else if i.Released() { - i.err = ErrIterReleased - return false - } - - switch { - case i.data != nil && !i.data.Prev(): - if i.dataErr() { - return false - } - i.clearData() - fallthrough - case i.data == nil: - if !i.index.Prev() { - i.indexErr() - return false - } - i.setData() - if !i.data.Last() { - if i.dataErr() { - return false - } - i.clearData() - return i.Prev() - } - } - return true -} - -func (i *indexedIterator) Key() []byte { - if i.data == nil { - return nil - } - return i.data.Key() -} - -func (i *indexedIterator) Value() []byte { - if i.data == nil { - return nil - } - return i.data.Value() -} - -func (i *indexedIterator) Release() { - i.clearData() - i.index.Release() - i.BasicReleaser.Release() -} - -func (i *indexedIterator) Error() error { - if i.err != nil { - return i.err - } - if err := i.index.Error(); err != nil { - return err - } - return nil -} - -func (i *indexedIterator) SetErrorCallback(f func(err error)) { - i.errf = f -} - -// NewIndexedIterator returns an 'indexed iterator'. An index is iterator -// that returns another iterator, a 'data iterator'. A 'data iterator' is the -// iterator that contains actual key/value pairs. -// -// If strict is true the any 'corruption errors' (i.e errors.IsCorrupted(err) == true) -// won't be ignored and will halt 'indexed iterator', otherwise the iterator will -// continue to the next 'data iterator'. Corruption on 'index iterator' will not be -// ignored and will halt the iterator. -func NewIndexedIterator(index IteratorIndexer, strict bool) Iterator { - return &indexedIterator{index: index, strict: strict} -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/iter.go deleted file mode 100644 index 96fb0f68..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/iter.go +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package iterator provides interface and implementation to traverse over -// contents of a database. -package iterator - -import ( - "errors" - - "github.com/syndtr/goleveldb/leveldb/util" -) - -var ( - ErrIterReleased = errors.New("leveldb/iterator: iterator released") -) - -// IteratorSeeker is the interface that wraps the 'seeks method'. -type IteratorSeeker interface { - // First moves the iterator to the first key/value pair. If the iterator - // only contains one key/value pair then First and Last would moves - // to the same key/value pair. - // It returns whether such pair exist. - First() bool - - // Last moves the iterator to the last key/value pair. If the iterator - // only contains one key/value pair then First and Last would moves - // to the same key/value pair. - // It returns whether such pair exist. - Last() bool - - // Seek moves the iterator to the first key/value pair whose key is greater - // than or equal to the given key. - // It returns whether such pair exist. - // - // It is safe to modify the contents of the argument after Seek returns. - Seek(key []byte) bool - - // Next moves the iterator to the next key/value pair. - // It returns false if the iterator is exhausted. - Next() bool - - // Prev moves the iterator to the previous key/value pair. - // It returns false if the iterator is exhausted. - Prev() bool -} - -// CommonIterator is the interface that wraps common iterator methods. -type CommonIterator interface { - IteratorSeeker - - // util.Releaser is the interface that wraps basic Release method. - // When called Release will releases any resources associated with the - // iterator. - util.Releaser - - // util.ReleaseSetter is the interface that wraps the basic SetReleaser - // method. - util.ReleaseSetter - - // TODO: Remove this when ready. - Valid() bool - - // Error returns any accumulated error. Exhausting all the key/value pairs - // is not considered to be an error. - Error() error -} - -// Iterator iterates over a DB's key/value pairs in key order. -// -// When encounter an error any 'seeks method' will return false and will -// yield no key/value pairs. The error can be queried by calling the Error -// method. Calling Release is still necessary. -// -// An iterator must be released after use, but it is not necessary to read -// an iterator until exhaustion. -// Also, an iterator is not necessarily safe for concurrent use, but it is -// safe to use multiple iterators concurrently, with each in a dedicated -// goroutine. -type Iterator interface { - CommonIterator - - // Key returns the key of the current key/value pair, or nil if done. - // The caller should not modify the contents of the returned slice, and - // its contents may change on the next call to any 'seeks method'. - Key() []byte - - // Value returns the value of the current key/value pair, or nil if done. - // The caller should not modify the contents of the returned slice, and - // its contents may change on the next call to any 'seeks method'. - Value() []byte -} - -// ErrorCallbackSetter is the interface that wraps basic SetErrorCallback -// method. -// -// ErrorCallbackSetter implemented by indexed and merged iterator. -type ErrorCallbackSetter interface { - // SetErrorCallback allows set an error callback of the corresponding - // iterator. Use nil to clear the callback. - SetErrorCallback(f func(err error)) -} - -type emptyIterator struct { - util.BasicReleaser - err error -} - -func (i *emptyIterator) rErr() { - if i.err == nil && i.Released() { - i.err = ErrIterReleased - } -} - -func (*emptyIterator) Valid() bool { return false } -func (i *emptyIterator) First() bool { i.rErr(); return false } -func (i *emptyIterator) Last() bool { i.rErr(); return false } -func (i *emptyIterator) Seek(key []byte) bool { i.rErr(); return false } -func (i *emptyIterator) Next() bool { i.rErr(); return false } -func (i *emptyIterator) Prev() bool { i.rErr(); return false } -func (*emptyIterator) Key() []byte { return nil } -func (*emptyIterator) Value() []byte { return nil } -func (i *emptyIterator) Error() error { return i.err } - -// NewEmptyIterator creates an empty iterator. The err parameter can be -// nil, but if not nil the given err will be returned by Error method. -func NewEmptyIterator(err error) Iterator { - return &emptyIterator{err: err} -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/merged_iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/merged_iter.go deleted file mode 100644 index 1a7e29df..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/merged_iter.go +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package iterator - -import ( - "github.com/syndtr/goleveldb/leveldb/comparer" - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/util" -) - -type dir int - -const ( - dirReleased dir = iota - 1 - dirSOI - dirEOI - dirBackward - dirForward -) - -type mergedIterator struct { - cmp comparer.Comparer - iters []Iterator - strict bool - - keys [][]byte - index int - dir dir - err error - errf func(err error) - releaser util.Releaser -} - -func assertKey(key []byte) []byte { - if key == nil { - panic("leveldb/iterator: nil key") - } - return key -} - -func (i *mergedIterator) iterErr(iter Iterator) bool { - if err := iter.Error(); err != nil { - if i.errf != nil { - i.errf(err) - } - if i.strict || !errors.IsCorrupted(err) { - i.err = err - return true - } - } - return false -} - -func (i *mergedIterator) Valid() bool { - return i.err == nil && i.dir > dirEOI -} - -func (i *mergedIterator) First() bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - for x, iter := range i.iters { - switch { - case iter.First(): - i.keys[x] = assertKey(iter.Key()) - case i.iterErr(iter): - return false - default: - i.keys[x] = nil - } - } - i.dir = dirSOI - return i.next() -} - -func (i *mergedIterator) Last() bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - for x, iter := range i.iters { - switch { - case iter.Last(): - i.keys[x] = assertKey(iter.Key()) - case i.iterErr(iter): - return false - default: - i.keys[x] = nil - } - } - i.dir = dirEOI - return i.prev() -} - -func (i *mergedIterator) Seek(key []byte) bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - for x, iter := range i.iters { - switch { - case iter.Seek(key): - i.keys[x] = assertKey(iter.Key()) - case i.iterErr(iter): - return false - default: - i.keys[x] = nil - } - } - i.dir = dirSOI - return i.next() -} - -func (i *mergedIterator) next() bool { - var key []byte - if i.dir == dirForward { - key = i.keys[i.index] - } - for x, tkey := range i.keys { - if tkey != nil && (key == nil || i.cmp.Compare(tkey, key) < 0) { - key = tkey - i.index = x - } - } - if key == nil { - i.dir = dirEOI - return false - } - i.dir = dirForward - return true -} - -func (i *mergedIterator) Next() bool { - if i.dir == dirEOI || i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - switch i.dir { - case dirSOI: - return i.First() - case dirBackward: - key := append([]byte{}, i.keys[i.index]...) - if !i.Seek(key) { - return false - } - return i.Next() - } - - x := i.index - iter := i.iters[x] - switch { - case iter.Next(): - i.keys[x] = assertKey(iter.Key()) - case i.iterErr(iter): - return false - default: - i.keys[x] = nil - } - return i.next() -} - -func (i *mergedIterator) prev() bool { - var key []byte - if i.dir == dirBackward { - key = i.keys[i.index] - } - for x, tkey := range i.keys { - if tkey != nil && (key == nil || i.cmp.Compare(tkey, key) > 0) { - key = tkey - i.index = x - } - } - if key == nil { - i.dir = dirSOI - return false - } - i.dir = dirBackward - return true -} - -func (i *mergedIterator) Prev() bool { - if i.dir == dirSOI || i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - switch i.dir { - case dirEOI: - return i.Last() - case dirForward: - key := append([]byte{}, i.keys[i.index]...) - for x, iter := range i.iters { - if x == i.index { - continue - } - seek := iter.Seek(key) - switch { - case seek && iter.Prev(), !seek && iter.Last(): - i.keys[x] = assertKey(iter.Key()) - case i.iterErr(iter): - return false - default: - i.keys[x] = nil - } - } - } - - x := i.index - iter := i.iters[x] - switch { - case iter.Prev(): - i.keys[x] = assertKey(iter.Key()) - case i.iterErr(iter): - return false - default: - i.keys[x] = nil - } - return i.prev() -} - -func (i *mergedIterator) Key() []byte { - if i.err != nil || i.dir <= dirEOI { - return nil - } - return i.keys[i.index] -} - -func (i *mergedIterator) Value() []byte { - if i.err != nil || i.dir <= dirEOI { - return nil - } - return i.iters[i.index].Value() -} - -func (i *mergedIterator) Release() { - if i.dir != dirReleased { - i.dir = dirReleased - for _, iter := range i.iters { - iter.Release() - } - i.iters = nil - i.keys = nil - if i.releaser != nil { - i.releaser.Release() - i.releaser = nil - } - } -} - -func (i *mergedIterator) SetReleaser(releaser util.Releaser) { - if i.dir == dirReleased { - panic(util.ErrReleased) - } - if i.releaser != nil && releaser != nil { - panic(util.ErrHasReleaser) - } - i.releaser = releaser -} - -func (i *mergedIterator) Error() error { - return i.err -} - -func (i *mergedIterator) SetErrorCallback(f func(err error)) { - i.errf = f -} - -// NewMergedIterator returns an iterator that merges its input. Walking the -// resultant iterator will return all key/value pairs of all input iterators -// in strictly increasing key order, as defined by cmp. -// The input's key ranges may overlap, but there are assumed to be no duplicate -// keys: if iters[i] contains a key k then iters[j] will not contain that key k. -// None of the iters may be nil. -// -// If strict is true the any 'corruption errors' (i.e errors.IsCorrupted(err) == true) -// won't be ignored and will halt 'merged iterator', otherwise the iterator will -// continue to the next 'input iterator'. -func NewMergedIterator(iters []Iterator, cmp comparer.Comparer, strict bool) Iterator { - return &mergedIterator{ - iters: iters, - cmp: cmp, - strict: strict, - keys: make([][]byte, len(iters)), - } -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/journal/journal.go b/vendor/github.com/syndtr/goleveldb/leveldb/journal/journal.go deleted file mode 100644 index d094c3d0..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/journal/journal.go +++ /dev/null @@ -1,524 +0,0 @@ -// Copyright 2011 The LevelDB-Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Taken from: https://code.google.com/p/leveldb-go/source/browse/leveldb/record/record.go?r=1d5ccbe03246da926391ee12d1c6caae054ff4b0 -// License, authors and contributors informations can be found at bellow URLs respectively: -// https://code.google.com/p/leveldb-go/source/browse/LICENSE -// https://code.google.com/p/leveldb-go/source/browse/AUTHORS -// https://code.google.com/p/leveldb-go/source/browse/CONTRIBUTORS - -// Package journal reads and writes sequences of journals. Each journal is a stream -// of bytes that completes before the next journal starts. -// -// When reading, call Next to obtain an io.Reader for the next journal. Next will -// return io.EOF when there are no more journals. It is valid to call Next -// without reading the current journal to exhaustion. -// -// When writing, call Next to obtain an io.Writer for the next journal. Calling -// Next finishes the current journal. Call Close to finish the final journal. -// -// Optionally, call Flush to finish the current journal and flush the underlying -// writer without starting a new journal. To start a new journal after flushing, -// call Next. -// -// Neither Readers or Writers are safe to use concurrently. -// -// Example code: -// func read(r io.Reader) ([]string, error) { -// var ss []string -// journals := journal.NewReader(r, nil, true, true) -// for { -// j, err := journals.Next() -// if err == io.EOF { -// break -// } -// if err != nil { -// return nil, err -// } -// s, err := ioutil.ReadAll(j) -// if err != nil { -// return nil, err -// } -// ss = append(ss, string(s)) -// } -// return ss, nil -// } -// -// func write(w io.Writer, ss []string) error { -// journals := journal.NewWriter(w) -// for _, s := range ss { -// j, err := journals.Next() -// if err != nil { -// return err -// } -// if _, err := j.Write([]byte(s)), err != nil { -// return err -// } -// } -// return journals.Close() -// } -// -// The wire format is that the stream is divided into 32KiB blocks, and each -// block contains a number of tightly packed chunks. Chunks cannot cross block -// boundaries. The last block may be shorter than 32 KiB. Any unused bytes in a -// block must be zero. -// -// A journal maps to one or more chunks. Each chunk has a 7 byte header (a 4 -// byte checksum, a 2 byte little-endian uint16 length, and a 1 byte chunk type) -// followed by a payload. The checksum is over the chunk type and the payload. -// -// There are four chunk types: whether the chunk is the full journal, or the -// first, middle or last chunk of a multi-chunk journal. A multi-chunk journal -// has one first chunk, zero or more middle chunks, and one last chunk. -// -// The wire format allows for limited recovery in the face of data corruption: -// on a format error (such as a checksum mismatch), the reader moves to the -// next block and looks for the next full or first chunk. -package journal - -import ( - "encoding/binary" - "fmt" - "io" - - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/storage" - "github.com/syndtr/goleveldb/leveldb/util" -) - -// These constants are part of the wire format and should not be changed. -const ( - fullChunkType = 1 - firstChunkType = 2 - middleChunkType = 3 - lastChunkType = 4 -) - -const ( - blockSize = 32 * 1024 - headerSize = 7 -) - -type flusher interface { - Flush() error -} - -// ErrCorrupted is the error type that generated by corrupted block or chunk. -type ErrCorrupted struct { - Size int - Reason string -} - -func (e *ErrCorrupted) Error() string { - return fmt.Sprintf("leveldb/journal: block/chunk corrupted: %s (%d bytes)", e.Reason, e.Size) -} - -// Dropper is the interface that wrap simple Drop method. The Drop -// method will be called when the journal reader dropping a block or chunk. -type Dropper interface { - Drop(err error) -} - -// Reader reads journals from an underlying io.Reader. -type Reader struct { - // r is the underlying reader. - r io.Reader - // the dropper. - dropper Dropper - // strict flag. - strict bool - // checksum flag. - checksum bool - // seq is the sequence number of the current journal. - seq int - // buf[i:j] is the unread portion of the current chunk's payload. - // The low bound, i, excludes the chunk header. - i, j int - // n is the number of bytes of buf that are valid. Once reading has started, - // only the final block can have n < blockSize. - n int - // last is whether the current chunk is the last chunk of the journal. - last bool - // err is any accumulated error. - err error - // buf is the buffer. - buf [blockSize]byte -} - -// NewReader returns a new reader. The dropper may be nil, and if -// strict is true then corrupted or invalid chunk will halt the journal -// reader entirely. -func NewReader(r io.Reader, dropper Dropper, strict, checksum bool) *Reader { - return &Reader{ - r: r, - dropper: dropper, - strict: strict, - checksum: checksum, - last: true, - } -} - -var errSkip = errors.New("leveldb/journal: skipped") - -func (r *Reader) corrupt(n int, reason string, skip bool) error { - if r.dropper != nil { - r.dropper.Drop(&ErrCorrupted{n, reason}) - } - if r.strict && !skip { - r.err = errors.NewErrCorrupted(storage.FileDesc{}, &ErrCorrupted{n, reason}) - return r.err - } - return errSkip -} - -// nextChunk sets r.buf[r.i:r.j] to hold the next chunk's payload, reading the -// next block into the buffer if necessary. -func (r *Reader) nextChunk(first bool) error { - for { - if r.j+headerSize <= r.n { - checksum := binary.LittleEndian.Uint32(r.buf[r.j+0 : r.j+4]) - length := binary.LittleEndian.Uint16(r.buf[r.j+4 : r.j+6]) - chunkType := r.buf[r.j+6] - unprocBlock := r.n - r.j - if checksum == 0 && length == 0 && chunkType == 0 { - // Drop entire block. - r.i = r.n - r.j = r.n - return r.corrupt(unprocBlock, "zero header", false) - } - if chunkType < fullChunkType || chunkType > lastChunkType { - // Drop entire block. - r.i = r.n - r.j = r.n - return r.corrupt(unprocBlock, fmt.Sprintf("invalid chunk type %#x", chunkType), false) - } - r.i = r.j + headerSize - r.j = r.j + headerSize + int(length) - if r.j > r.n { - // Drop entire block. - r.i = r.n - r.j = r.n - return r.corrupt(unprocBlock, "chunk length overflows block", false) - } else if r.checksum && checksum != util.NewCRC(r.buf[r.i-1:r.j]).Value() { - // Drop entire block. - r.i = r.n - r.j = r.n - return r.corrupt(unprocBlock, "checksum mismatch", false) - } - if first && chunkType != fullChunkType && chunkType != firstChunkType { - chunkLength := (r.j - r.i) + headerSize - r.i = r.j - // Report the error, but skip it. - return r.corrupt(chunkLength, "orphan chunk", true) - } - r.last = chunkType == fullChunkType || chunkType == lastChunkType - return nil - } - - // The last block. - if r.n < blockSize && r.n > 0 { - if !first { - return r.corrupt(0, "missing chunk part", false) - } - r.err = io.EOF - return r.err - } - - // Read block. - n, err := io.ReadFull(r.r, r.buf[:]) - if err != nil && err != io.EOF && err != io.ErrUnexpectedEOF { - return err - } - if n == 0 { - if !first { - return r.corrupt(0, "missing chunk part", false) - } - r.err = io.EOF - return r.err - } - r.i, r.j, r.n = 0, 0, n - } -} - -// Next returns a reader for the next journal. It returns io.EOF if there are no -// more journals. The reader returned becomes stale after the next Next call, -// and should no longer be used. If strict is false, the reader will returns -// io.ErrUnexpectedEOF error when found corrupted journal. -func (r *Reader) Next() (io.Reader, error) { - r.seq++ - if r.err != nil { - return nil, r.err - } - r.i = r.j - for { - if err := r.nextChunk(true); err == nil { - break - } else if err != errSkip { - return nil, err - } - } - return &singleReader{r, r.seq, nil}, nil -} - -// Reset resets the journal reader, allows reuse of the journal reader. Reset returns -// last accumulated error. -func (r *Reader) Reset(reader io.Reader, dropper Dropper, strict, checksum bool) error { - r.seq++ - err := r.err - r.r = reader - r.dropper = dropper - r.strict = strict - r.checksum = checksum - r.i = 0 - r.j = 0 - r.n = 0 - r.last = true - r.err = nil - return err -} - -type singleReader struct { - r *Reader - seq int - err error -} - -func (x *singleReader) Read(p []byte) (int, error) { - r := x.r - if r.seq != x.seq { - return 0, errors.New("leveldb/journal: stale reader") - } - if x.err != nil { - return 0, x.err - } - if r.err != nil { - return 0, r.err - } - for r.i == r.j { - if r.last { - return 0, io.EOF - } - x.err = r.nextChunk(false) - if x.err != nil { - if x.err == errSkip { - x.err = io.ErrUnexpectedEOF - } - return 0, x.err - } - } - n := copy(p, r.buf[r.i:r.j]) - r.i += n - return n, nil -} - -func (x *singleReader) ReadByte() (byte, error) { - r := x.r - if r.seq != x.seq { - return 0, errors.New("leveldb/journal: stale reader") - } - if x.err != nil { - return 0, x.err - } - if r.err != nil { - return 0, r.err - } - for r.i == r.j { - if r.last { - return 0, io.EOF - } - x.err = r.nextChunk(false) - if x.err != nil { - if x.err == errSkip { - x.err = io.ErrUnexpectedEOF - } - return 0, x.err - } - } - c := r.buf[r.i] - r.i++ - return c, nil -} - -// Writer writes journals to an underlying io.Writer. -type Writer struct { - // w is the underlying writer. - w io.Writer - // seq is the sequence number of the current journal. - seq int - // f is w as a flusher. - f flusher - // buf[i:j] is the bytes that will become the current chunk. - // The low bound, i, includes the chunk header. - i, j int - // buf[:written] has already been written to w. - // written is zero unless Flush has been called. - written int - // first is whether the current chunk is the first chunk of the journal. - first bool - // pending is whether a chunk is buffered but not yet written. - pending bool - // err is any accumulated error. - err error - // buf is the buffer. - buf [blockSize]byte -} - -// NewWriter returns a new Writer. -func NewWriter(w io.Writer) *Writer { - f, _ := w.(flusher) - return &Writer{ - w: w, - f: f, - } -} - -// fillHeader fills in the header for the pending chunk. -func (w *Writer) fillHeader(last bool) { - if w.i+headerSize > w.j || w.j > blockSize { - panic("leveldb/journal: bad writer state") - } - if last { - if w.first { - w.buf[w.i+6] = fullChunkType - } else { - w.buf[w.i+6] = lastChunkType - } - } else { - if w.first { - w.buf[w.i+6] = firstChunkType - } else { - w.buf[w.i+6] = middleChunkType - } - } - binary.LittleEndian.PutUint32(w.buf[w.i+0:w.i+4], util.NewCRC(w.buf[w.i+6:w.j]).Value()) - binary.LittleEndian.PutUint16(w.buf[w.i+4:w.i+6], uint16(w.j-w.i-headerSize)) -} - -// writeBlock writes the buffered block to the underlying writer, and reserves -// space for the next chunk's header. -func (w *Writer) writeBlock() { - _, w.err = w.w.Write(w.buf[w.written:]) - w.i = 0 - w.j = headerSize - w.written = 0 -} - -// writePending finishes the current journal and writes the buffer to the -// underlying writer. -func (w *Writer) writePending() { - if w.err != nil { - return - } - if w.pending { - w.fillHeader(true) - w.pending = false - } - _, w.err = w.w.Write(w.buf[w.written:w.j]) - w.written = w.j -} - -// Close finishes the current journal and closes the writer. -func (w *Writer) Close() error { - w.seq++ - w.writePending() - if w.err != nil { - return w.err - } - w.err = errors.New("leveldb/journal: closed Writer") - return nil -} - -// Flush finishes the current journal, writes to the underlying writer, and -// flushes it if that writer implements interface{ Flush() error }. -func (w *Writer) Flush() error { - w.seq++ - w.writePending() - if w.err != nil { - return w.err - } - if w.f != nil { - w.err = w.f.Flush() - return w.err - } - return nil -} - -// Reset resets the journal writer, allows reuse of the journal writer. Reset -// will also closes the journal writer if not already. -func (w *Writer) Reset(writer io.Writer) (err error) { - w.seq++ - if w.err == nil { - w.writePending() - err = w.err - } - w.w = writer - w.f, _ = writer.(flusher) - w.i = 0 - w.j = 0 - w.written = 0 - w.first = false - w.pending = false - w.err = nil - return -} - -// Next returns a writer for the next journal. The writer returned becomes stale -// after the next Close, Flush or Next call, and should no longer be used. -func (w *Writer) Next() (io.Writer, error) { - w.seq++ - if w.err != nil { - return nil, w.err - } - if w.pending { - w.fillHeader(true) - } - w.i = w.j - w.j = w.j + headerSize - // Check if there is room in the block for the header. - if w.j > blockSize { - // Fill in the rest of the block with zeroes. - for k := w.i; k < blockSize; k++ { - w.buf[k] = 0 - } - w.writeBlock() - if w.err != nil { - return nil, w.err - } - } - w.first = true - w.pending = true - return singleWriter{w, w.seq}, nil -} - -type singleWriter struct { - w *Writer - seq int -} - -func (x singleWriter) Write(p []byte) (int, error) { - w := x.w - if w.seq != x.seq { - return 0, errors.New("leveldb/journal: stale writer") - } - if w.err != nil { - return 0, w.err - } - n0 := len(p) - for len(p) > 0 { - // Write a block, if it is full. - if w.j == blockSize { - w.fillHeader(false) - w.writeBlock() - if w.err != nil { - return 0, w.err - } - w.first = false - } - // Copy bytes into the buffer. - n := copy(w.buf[w.j:], p) - w.j += n - p = p[n:] - } - return n0, nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/key.go b/vendor/github.com/syndtr/goleveldb/leveldb/key.go deleted file mode 100644 index ad8f51ec..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/key.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "encoding/binary" - "fmt" - - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/storage" -) - -// ErrInternalKeyCorrupted records internal key corruption. -type ErrInternalKeyCorrupted struct { - Ikey []byte - Reason string -} - -func (e *ErrInternalKeyCorrupted) Error() string { - return fmt.Sprintf("leveldb: internal key %q corrupted: %s", e.Ikey, e.Reason) -} - -func newErrInternalKeyCorrupted(ikey []byte, reason string) error { - return errors.NewErrCorrupted(storage.FileDesc{}, &ErrInternalKeyCorrupted{append([]byte{}, ikey...), reason}) -} - -type keyType uint - -func (kt keyType) String() string { - switch kt { - case keyTypeDel: - return "d" - case keyTypeVal: - return "v" - } - return fmt.Sprintf("", uint(kt)) -} - -// Value types encoded as the last component of internal keys. -// Don't modify; this value are saved to disk. -const ( - keyTypeDel = keyType(0) - keyTypeVal = keyType(1) -) - -// keyTypeSeek defines the keyType that should be passed when constructing an -// internal key for seeking to a particular sequence number (since we -// sort sequence numbers in decreasing order and the value type is -// embedded as the low 8 bits in the sequence number in internal keys, -// we need to use the highest-numbered ValueType, not the lowest). -const keyTypeSeek = keyTypeVal - -const ( - // Maximum value possible for sequence number; the 8-bits are - // used by value type, so its can packed together in single - // 64-bit integer. - keyMaxSeq = (uint64(1) << 56) - 1 - // Maximum value possible for packed sequence number and type. - keyMaxNum = (keyMaxSeq << 8) | uint64(keyTypeSeek) -) - -// Maximum number encoded in bytes. -var keyMaxNumBytes = make([]byte, 8) - -func init() { - binary.LittleEndian.PutUint64(keyMaxNumBytes, keyMaxNum) -} - -type internalKey []byte - -func makeInternalKey(dst, ukey []byte, seq uint64, kt keyType) internalKey { - if seq > keyMaxSeq { - panic("leveldb: invalid sequence number") - } else if kt > keyTypeVal { - panic("leveldb: invalid type") - } - - dst = ensureBuffer(dst, len(ukey)+8) - copy(dst, ukey) - binary.LittleEndian.PutUint64(dst[len(ukey):], (seq<<8)|uint64(kt)) - return internalKey(dst) -} - -func parseInternalKey(ik []byte) (ukey []byte, seq uint64, kt keyType, err error) { - if len(ik) < 8 { - return nil, 0, 0, newErrInternalKeyCorrupted(ik, "invalid length") - } - num := binary.LittleEndian.Uint64(ik[len(ik)-8:]) - seq, kt = uint64(num>>8), keyType(num&0xff) - if kt > keyTypeVal { - return nil, 0, 0, newErrInternalKeyCorrupted(ik, "invalid type") - } - ukey = ik[:len(ik)-8] - return -} - -func validInternalKey(ik []byte) bool { - _, _, _, err := parseInternalKey(ik) - return err == nil -} - -func (ik internalKey) assert() { - if ik == nil { - panic("leveldb: nil internalKey") - } - if len(ik) < 8 { - panic(fmt.Sprintf("leveldb: internal key %q, len=%d: invalid length", []byte(ik), len(ik))) - } -} - -func (ik internalKey) ukey() []byte { - ik.assert() - return ik[:len(ik)-8] -} - -func (ik internalKey) num() uint64 { - ik.assert() - return binary.LittleEndian.Uint64(ik[len(ik)-8:]) -} - -func (ik internalKey) parseNum() (seq uint64, kt keyType) { - num := ik.num() - seq, kt = uint64(num>>8), keyType(num&0xff) - if kt > keyTypeVal { - panic(fmt.Sprintf("leveldb: internal key %q, len=%d: invalid type %#x", []byte(ik), len(ik), kt)) - } - return -} - -func (ik internalKey) String() string { - if ik == nil { - return "" - } - - if ukey, seq, kt, err := parseInternalKey(ik); err == nil { - return fmt.Sprintf("%s,%s%d", shorten(string(ukey)), kt, seq) - } - return fmt.Sprintf("", []byte(ik)) -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/memdb/memdb.go b/vendor/github.com/syndtr/goleveldb/leveldb/memdb/memdb.go deleted file mode 100644 index 824e47f5..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/memdb/memdb.go +++ /dev/null @@ -1,479 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package memdb provides in-memory key/value database implementation. -package memdb - -import ( - "math/rand" - "sync" - - "github.com/syndtr/goleveldb/leveldb/comparer" - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/util" -) - -// Common errors. -var ( - ErrNotFound = errors.ErrNotFound - ErrIterReleased = errors.New("leveldb/memdb: iterator released") -) - -const tMaxHeight = 12 - -type dbIter struct { - util.BasicReleaser - p *DB - slice *util.Range - node int - forward bool - key, value []byte - err error -} - -func (i *dbIter) fill(checkStart, checkLimit bool) bool { - if i.node != 0 { - n := i.p.nodeData[i.node] - m := n + i.p.nodeData[i.node+nKey] - i.key = i.p.kvData[n:m] - if i.slice != nil { - switch { - case checkLimit && i.slice.Limit != nil && i.p.cmp.Compare(i.key, i.slice.Limit) >= 0: - fallthrough - case checkStart && i.slice.Start != nil && i.p.cmp.Compare(i.key, i.slice.Start) < 0: - i.node = 0 - goto bail - } - } - i.value = i.p.kvData[m : m+i.p.nodeData[i.node+nVal]] - return true - } -bail: - i.key = nil - i.value = nil - return false -} - -func (i *dbIter) Valid() bool { - return i.node != 0 -} - -func (i *dbIter) First() bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - i.forward = true - i.p.mu.RLock() - defer i.p.mu.RUnlock() - if i.slice != nil && i.slice.Start != nil { - i.node, _ = i.p.findGE(i.slice.Start, false) - } else { - i.node = i.p.nodeData[nNext] - } - return i.fill(false, true) -} - -func (i *dbIter) Last() bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - i.forward = false - i.p.mu.RLock() - defer i.p.mu.RUnlock() - if i.slice != nil && i.slice.Limit != nil { - i.node = i.p.findLT(i.slice.Limit) - } else { - i.node = i.p.findLast() - } - return i.fill(true, false) -} - -func (i *dbIter) Seek(key []byte) bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - i.forward = true - i.p.mu.RLock() - defer i.p.mu.RUnlock() - if i.slice != nil && i.slice.Start != nil && i.p.cmp.Compare(key, i.slice.Start) < 0 { - key = i.slice.Start - } - i.node, _ = i.p.findGE(key, false) - return i.fill(false, true) -} - -func (i *dbIter) Next() bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - if i.node == 0 { - if !i.forward { - return i.First() - } - return false - } - i.forward = true - i.p.mu.RLock() - defer i.p.mu.RUnlock() - i.node = i.p.nodeData[i.node+nNext] - return i.fill(false, true) -} - -func (i *dbIter) Prev() bool { - if i.Released() { - i.err = ErrIterReleased - return false - } - - if i.node == 0 { - if i.forward { - return i.Last() - } - return false - } - i.forward = false - i.p.mu.RLock() - defer i.p.mu.RUnlock() - i.node = i.p.findLT(i.key) - return i.fill(true, false) -} - -func (i *dbIter) Key() []byte { - return i.key -} - -func (i *dbIter) Value() []byte { - return i.value -} - -func (i *dbIter) Error() error { return i.err } - -func (i *dbIter) Release() { - if !i.Released() { - i.p = nil - i.node = 0 - i.key = nil - i.value = nil - i.BasicReleaser.Release() - } -} - -const ( - nKV = iota - nKey - nVal - nHeight - nNext -) - -// DB is an in-memory key/value database. -type DB struct { - cmp comparer.BasicComparer - rnd *rand.Rand - - mu sync.RWMutex - kvData []byte - // Node data: - // [0] : KV offset - // [1] : Key length - // [2] : Value length - // [3] : Height - // [3..height] : Next nodes - nodeData []int - prevNode [tMaxHeight]int - maxHeight int - n int - kvSize int -} - -func (p *DB) randHeight() (h int) { - const branching = 4 - h = 1 - for h < tMaxHeight && p.rnd.Int()%branching == 0 { - h++ - } - return -} - -// Must hold RW-lock if prev == true, as it use shared prevNode slice. -func (p *DB) findGE(key []byte, prev bool) (int, bool) { - node := 0 - h := p.maxHeight - 1 - for { - next := p.nodeData[node+nNext+h] - cmp := 1 - if next != 0 { - o := p.nodeData[next] - cmp = p.cmp.Compare(p.kvData[o:o+p.nodeData[next+nKey]], key) - } - if cmp < 0 { - // Keep searching in this list - node = next - } else { - if prev { - p.prevNode[h] = node - } else if cmp == 0 { - return next, true - } - if h == 0 { - return next, cmp == 0 - } - h-- - } - } -} - -func (p *DB) findLT(key []byte) int { - node := 0 - h := p.maxHeight - 1 - for { - next := p.nodeData[node+nNext+h] - o := p.nodeData[next] - if next == 0 || p.cmp.Compare(p.kvData[o:o+p.nodeData[next+nKey]], key) >= 0 { - if h == 0 { - break - } - h-- - } else { - node = next - } - } - return node -} - -func (p *DB) findLast() int { - node := 0 - h := p.maxHeight - 1 - for { - next := p.nodeData[node+nNext+h] - if next == 0 { - if h == 0 { - break - } - h-- - } else { - node = next - } - } - return node -} - -// Put sets the value for the given key. It overwrites any previous value -// for that key; a DB is not a multi-map. -// -// It is safe to modify the contents of the arguments after Put returns. -func (p *DB) Put(key []byte, value []byte) error { - p.mu.Lock() - defer p.mu.Unlock() - - if node, exact := p.findGE(key, true); exact { - kvOffset := len(p.kvData) - p.kvData = append(p.kvData, key...) - p.kvData = append(p.kvData, value...) - p.nodeData[node] = kvOffset - m := p.nodeData[node+nVal] - p.nodeData[node+nVal] = len(value) - p.kvSize += len(value) - m - return nil - } - - h := p.randHeight() - if h > p.maxHeight { - for i := p.maxHeight; i < h; i++ { - p.prevNode[i] = 0 - } - p.maxHeight = h - } - - kvOffset := len(p.kvData) - p.kvData = append(p.kvData, key...) - p.kvData = append(p.kvData, value...) - // Node - node := len(p.nodeData) - p.nodeData = append(p.nodeData, kvOffset, len(key), len(value), h) - for i, n := range p.prevNode[:h] { - m := n + nNext + i - p.nodeData = append(p.nodeData, p.nodeData[m]) - p.nodeData[m] = node - } - - p.kvSize += len(key) + len(value) - p.n++ - return nil -} - -// Delete deletes the value for the given key. It returns ErrNotFound if -// the DB does not contain the key. -// -// It is safe to modify the contents of the arguments after Delete returns. -func (p *DB) Delete(key []byte) error { - p.mu.Lock() - defer p.mu.Unlock() - - node, exact := p.findGE(key, true) - if !exact { - return ErrNotFound - } - - h := p.nodeData[node+nHeight] - for i, n := range p.prevNode[:h] { - m := n + nNext + i - p.nodeData[m] = p.nodeData[p.nodeData[m]+nNext+i] - } - - p.kvSize -= p.nodeData[node+nKey] + p.nodeData[node+nVal] - p.n-- - return nil -} - -// Contains returns true if the given key are in the DB. -// -// It is safe to modify the contents of the arguments after Contains returns. -func (p *DB) Contains(key []byte) bool { - p.mu.RLock() - _, exact := p.findGE(key, false) - p.mu.RUnlock() - return exact -} - -// Get gets the value for the given key. It returns error.ErrNotFound if the -// DB does not contain the key. -// -// The caller should not modify the contents of the returned slice, but -// it is safe to modify the contents of the argument after Get returns. -func (p *DB) Get(key []byte) (value []byte, err error) { - p.mu.RLock() - if node, exact := p.findGE(key, false); exact { - o := p.nodeData[node] + p.nodeData[node+nKey] - value = p.kvData[o : o+p.nodeData[node+nVal]] - } else { - err = ErrNotFound - } - p.mu.RUnlock() - return -} - -// Find finds key/value pair whose key is greater than or equal to the -// given key. It returns ErrNotFound if the table doesn't contain -// such pair. -// -// The caller should not modify the contents of the returned slice, but -// it is safe to modify the contents of the argument after Find returns. -func (p *DB) Find(key []byte) (rkey, value []byte, err error) { - p.mu.RLock() - if node, _ := p.findGE(key, false); node != 0 { - n := p.nodeData[node] - m := n + p.nodeData[node+nKey] - rkey = p.kvData[n:m] - value = p.kvData[m : m+p.nodeData[node+nVal]] - } else { - err = ErrNotFound - } - p.mu.RUnlock() - return -} - -// NewIterator returns an iterator of the DB. -// The returned iterator is not safe for concurrent use, but it is safe to use -// multiple iterators concurrently, with each in a dedicated goroutine. -// It is also safe to use an iterator concurrently with modifying its -// underlying DB. However, the resultant key/value pairs are not guaranteed -// to be a consistent snapshot of the DB at a particular point in time. -// -// Slice allows slicing the iterator to only contains keys in the given -// range. A nil Range.Start is treated as a key before all keys in the -// DB. And a nil Range.Limit is treated as a key after all keys in -// the DB. -// -// WARNING: Any slice returned by interator (e.g. slice returned by calling -// Iterator.Key() or Iterator.Key() methods), its content should not be modified -// unless noted otherwise. -// -// The iterator must be released after use, by calling Release method. -// -// Also read Iterator documentation of the leveldb/iterator package. -func (p *DB) NewIterator(slice *util.Range) iterator.Iterator { - return &dbIter{p: p, slice: slice} -} - -// Capacity returns keys/values buffer capacity. -func (p *DB) Capacity() int { - p.mu.RLock() - defer p.mu.RUnlock() - return cap(p.kvData) -} - -// Size returns sum of keys and values length. Note that deleted -// key/value will not be accounted for, but it will still consume -// the buffer, since the buffer is append only. -func (p *DB) Size() int { - p.mu.RLock() - defer p.mu.RUnlock() - return p.kvSize -} - -// Free returns keys/values free buffer before need to grow. -func (p *DB) Free() int { - p.mu.RLock() - defer p.mu.RUnlock() - return cap(p.kvData) - len(p.kvData) -} - -// Len returns the number of entries in the DB. -func (p *DB) Len() int { - p.mu.RLock() - defer p.mu.RUnlock() - return p.n -} - -// Reset resets the DB to initial empty state. Allows reuse the buffer. -func (p *DB) Reset() { - p.mu.Lock() - p.rnd = rand.New(rand.NewSource(0xdeadbeef)) - p.maxHeight = 1 - p.n = 0 - p.kvSize = 0 - p.kvData = p.kvData[:0] - p.nodeData = p.nodeData[:nNext+tMaxHeight] - p.nodeData[nKV] = 0 - p.nodeData[nKey] = 0 - p.nodeData[nVal] = 0 - p.nodeData[nHeight] = tMaxHeight - for n := 0; n < tMaxHeight; n++ { - p.nodeData[nNext+n] = 0 - p.prevNode[n] = 0 - } - p.mu.Unlock() -} - -// New creates a new initialized in-memory key/value DB. The capacity -// is the initial key/value buffer capacity. The capacity is advisory, -// not enforced. -// -// This DB is append-only, deleting an entry would remove entry node but not -// reclaim KV buffer. -// -// The returned DB instance is safe for concurrent use. -func New(cmp comparer.BasicComparer, capacity int) *DB { - p := &DB{ - cmp: cmp, - rnd: rand.New(rand.NewSource(0xdeadbeef)), - maxHeight: 1, - kvData: make([]byte, 0, capacity), - nodeData: make([]int, 4+tMaxHeight), - } - p.nodeData[nHeight] = tMaxHeight - return p -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/opt/options.go b/vendor/github.com/syndtr/goleveldb/leveldb/opt/options.go deleted file mode 100644 index 528b1642..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/opt/options.go +++ /dev/null @@ -1,697 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package opt provides sets of options used by LevelDB. -package opt - -import ( - "math" - - "github.com/syndtr/goleveldb/leveldb/cache" - "github.com/syndtr/goleveldb/leveldb/comparer" - "github.com/syndtr/goleveldb/leveldb/filter" -) - -const ( - KiB = 1024 - MiB = KiB * 1024 - GiB = MiB * 1024 -) - -var ( - DefaultBlockCacher = LRUCacher - DefaultBlockCacheCapacity = 8 * MiB - DefaultBlockRestartInterval = 16 - DefaultBlockSize = 4 * KiB - DefaultCompactionExpandLimitFactor = 25 - DefaultCompactionGPOverlapsFactor = 10 - DefaultCompactionL0Trigger = 4 - DefaultCompactionSourceLimitFactor = 1 - DefaultCompactionTableSize = 2 * MiB - DefaultCompactionTableSizeMultiplier = 1.0 - DefaultCompactionTotalSize = 10 * MiB - DefaultCompactionTotalSizeMultiplier = 10.0 - DefaultCompressionType = SnappyCompression - DefaultIteratorSamplingRate = 1 * MiB - DefaultOpenFilesCacher = LRUCacher - DefaultOpenFilesCacheCapacity = 500 - DefaultWriteBuffer = 4 * MiB - DefaultWriteL0PauseTrigger = 12 - DefaultWriteL0SlowdownTrigger = 8 -) - -// Cacher is a caching algorithm. -type Cacher interface { - New(capacity int) cache.Cacher -} - -type CacherFunc struct { - NewFunc func(capacity int) cache.Cacher -} - -func (f *CacherFunc) New(capacity int) cache.Cacher { - if f.NewFunc != nil { - return f.NewFunc(capacity) - } - return nil -} - -func noCacher(int) cache.Cacher { return nil } - -var ( - // LRUCacher is the LRU-cache algorithm. - LRUCacher = &CacherFunc{cache.NewLRU} - - // NoCacher is the value to disable caching algorithm. - NoCacher = &CacherFunc{} -) - -// Compression is the 'sorted table' block compression algorithm to use. -type Compression uint - -func (c Compression) String() string { - switch c { - case DefaultCompression: - return "default" - case NoCompression: - return "none" - case SnappyCompression: - return "snappy" - } - return "invalid" -} - -const ( - DefaultCompression Compression = iota - NoCompression - SnappyCompression - nCompression -) - -// Strict is the DB 'strict level'. -type Strict uint - -const ( - // If present then a corrupted or invalid chunk or block in manifest - // journal will cause an error instead of being dropped. - // This will prevent database with corrupted manifest to be opened. - StrictManifest Strict = 1 << iota - - // If present then journal chunk checksum will be verified. - StrictJournalChecksum - - // If present then a corrupted or invalid chunk or block in journal - // will cause an error instead of being dropped. - // This will prevent database with corrupted journal to be opened. - StrictJournal - - // If present then 'sorted table' block checksum will be verified. - // This has effect on both 'read operation' and compaction. - StrictBlockChecksum - - // If present then a corrupted 'sorted table' will fails compaction. - // The database will enter read-only mode. - StrictCompaction - - // If present then a corrupted 'sorted table' will halts 'read operation'. - StrictReader - - // If present then leveldb.Recover will drop corrupted 'sorted table'. - StrictRecovery - - // This only applicable for ReadOptions, if present then this ReadOptions - // 'strict level' will override global ones. - StrictOverride - - // StrictAll enables all strict flags. - StrictAll = StrictManifest | StrictJournalChecksum | StrictJournal | StrictBlockChecksum | StrictCompaction | StrictReader | StrictRecovery - - // DefaultStrict is the default strict flags. Specify any strict flags - // will override default strict flags as whole (i.e. not OR'ed). - DefaultStrict = StrictJournalChecksum | StrictBlockChecksum | StrictCompaction | StrictReader - - // NoStrict disables all strict flags. Override default strict flags. - NoStrict = ^StrictAll -) - -// Options holds the optional parameters for the DB at large. -type Options struct { - // AltFilters defines one or more 'alternative filters'. - // 'alternative filters' will be used during reads if a filter block - // does not match with the 'effective filter'. - // - // The default value is nil - AltFilters []filter.Filter - - // BlockCacher provides cache algorithm for LevelDB 'sorted table' block caching. - // Specify NoCacher to disable caching algorithm. - // - // The default value is LRUCacher. - BlockCacher Cacher - - // BlockCacheCapacity defines the capacity of the 'sorted table' block caching. - // Use -1 for zero, this has same effect as specifying NoCacher to BlockCacher. - // - // The default value is 8MiB. - BlockCacheCapacity int - - // BlockCacheEvictRemoved allows enable forced-eviction on cached block belonging - // to removed 'sorted table'. - // - // The default if false. - BlockCacheEvictRemoved bool - - // BlockRestartInterval is the number of keys between restart points for - // delta encoding of keys. - // - // The default value is 16. - BlockRestartInterval int - - // BlockSize is the minimum uncompressed size in bytes of each 'sorted table' - // block. - // - // The default value is 4KiB. - BlockSize int - - // CompactionExpandLimitFactor limits compaction size after expanded. - // This will be multiplied by table size limit at compaction target level. - // - // The default value is 25. - CompactionExpandLimitFactor int - - // CompactionGPOverlapsFactor limits overlaps in grandparent (Level + 2) that a - // single 'sorted table' generates. - // This will be multiplied by table size limit at grandparent level. - // - // The default value is 10. - CompactionGPOverlapsFactor int - - // CompactionL0Trigger defines number of 'sorted table' at level-0 that will - // trigger compaction. - // - // The default value is 4. - CompactionL0Trigger int - - // CompactionSourceLimitFactor limits compaction source size. This doesn't apply to - // level-0. - // This will be multiplied by table size limit at compaction target level. - // - // The default value is 1. - CompactionSourceLimitFactor int - - // CompactionTableSize limits size of 'sorted table' that compaction generates. - // The limits for each level will be calculated as: - // CompactionTableSize * (CompactionTableSizeMultiplier ^ Level) - // The multiplier for each level can also fine-tuned using CompactionTableSizeMultiplierPerLevel. - // - // The default value is 2MiB. - CompactionTableSize int - - // CompactionTableSizeMultiplier defines multiplier for CompactionTableSize. - // - // The default value is 1. - CompactionTableSizeMultiplier float64 - - // CompactionTableSizeMultiplierPerLevel defines per-level multiplier for - // CompactionTableSize. - // Use zero to skip a level. - // - // The default value is nil. - CompactionTableSizeMultiplierPerLevel []float64 - - // CompactionTotalSize limits total size of 'sorted table' for each level. - // The limits for each level will be calculated as: - // CompactionTotalSize * (CompactionTotalSizeMultiplier ^ Level) - // The multiplier for each level can also fine-tuned using - // CompactionTotalSizeMultiplierPerLevel. - // - // The default value is 10MiB. - CompactionTotalSize int - - // CompactionTotalSizeMultiplier defines multiplier for CompactionTotalSize. - // - // The default value is 10. - CompactionTotalSizeMultiplier float64 - - // CompactionTotalSizeMultiplierPerLevel defines per-level multiplier for - // CompactionTotalSize. - // Use zero to skip a level. - // - // The default value is nil. - CompactionTotalSizeMultiplierPerLevel []float64 - - // Comparer defines a total ordering over the space of []byte keys: a 'less - // than' relationship. The same comparison algorithm must be used for reads - // and writes over the lifetime of the DB. - // - // The default value uses the same ordering as bytes.Compare. - Comparer comparer.Comparer - - // Compression defines the 'sorted table' block compression to use. - // - // The default value (DefaultCompression) uses snappy compression. - Compression Compression - - // DisableBufferPool allows disable use of util.BufferPool functionality. - // - // The default value is false. - DisableBufferPool bool - - // DisableBlockCache allows disable use of cache.Cache functionality on - // 'sorted table' block. - // - // The default value is false. - DisableBlockCache bool - - // DisableCompactionBackoff allows disable compaction retry backoff. - // - // The default value is false. - DisableCompactionBackoff bool - - // DisableLargeBatchTransaction allows disabling switch-to-transaction mode - // on large batch write. If enable batch writes large than WriteBuffer will - // use transaction. - // - // The default is false. - DisableLargeBatchTransaction bool - - // ErrorIfExist defines whether an error should returned if the DB already - // exist. - // - // The default value is false. - ErrorIfExist bool - - // ErrorIfMissing defines whether an error should returned if the DB is - // missing. If false then the database will be created if missing, otherwise - // an error will be returned. - // - // The default value is false. - ErrorIfMissing bool - - // Filter defines an 'effective filter' to use. An 'effective filter' - // if defined will be used to generate per-table filter block. - // The filter name will be stored on disk. - // During reads LevelDB will try to find matching filter from - // 'effective filter' and 'alternative filters'. - // - // Filter can be changed after a DB has been created. It is recommended - // to put old filter to the 'alternative filters' to mitigate lack of - // filter during transition period. - // - // A filter is used to reduce disk reads when looking for a specific key. - // - // The default value is nil. - Filter filter.Filter - - // IteratorSamplingRate defines approximate gap (in bytes) between read - // sampling of an iterator. The samples will be used to determine when - // compaction should be triggered. - // - // The default is 1MiB. - IteratorSamplingRate int - - // NoSync allows completely disable fsync. - // - // The default is false. - NoSync bool - - // NoWriteMerge allows disabling write merge. - // - // The default is false. - NoWriteMerge bool - - // OpenFilesCacher provides cache algorithm for open files caching. - // Specify NoCacher to disable caching algorithm. - // - // The default value is LRUCacher. - OpenFilesCacher Cacher - - // OpenFilesCacheCapacity defines the capacity of the open files caching. - // Use -1 for zero, this has same effect as specifying NoCacher to OpenFilesCacher. - // - // The default value is 500. - OpenFilesCacheCapacity int - - // If true then opens DB in read-only mode. - // - // The default value is false. - ReadOnly bool - - // Strict defines the DB strict level. - Strict Strict - - // WriteBuffer defines maximum size of a 'memdb' before flushed to - // 'sorted table'. 'memdb' is an in-memory DB backed by an on-disk - // unsorted journal. - // - // LevelDB may held up to two 'memdb' at the same time. - // - // The default value is 4MiB. - WriteBuffer int - - // WriteL0StopTrigger defines number of 'sorted table' at level-0 that will - // pause write. - // - // The default value is 12. - WriteL0PauseTrigger int - - // WriteL0SlowdownTrigger defines number of 'sorted table' at level-0 that - // will trigger write slowdown. - // - // The default value is 8. - WriteL0SlowdownTrigger int -} - -func (o *Options) GetAltFilters() []filter.Filter { - if o == nil { - return nil - } - return o.AltFilters -} - -func (o *Options) GetBlockCacher() Cacher { - if o == nil || o.BlockCacher == nil { - return DefaultBlockCacher - } else if o.BlockCacher == NoCacher { - return nil - } - return o.BlockCacher -} - -func (o *Options) GetBlockCacheCapacity() int { - if o == nil || o.BlockCacheCapacity == 0 { - return DefaultBlockCacheCapacity - } else if o.BlockCacheCapacity < 0 { - return 0 - } - return o.BlockCacheCapacity -} - -func (o *Options) GetBlockCacheEvictRemoved() bool { - if o == nil { - return false - } - return o.BlockCacheEvictRemoved -} - -func (o *Options) GetBlockRestartInterval() int { - if o == nil || o.BlockRestartInterval <= 0 { - return DefaultBlockRestartInterval - } - return o.BlockRestartInterval -} - -func (o *Options) GetBlockSize() int { - if o == nil || o.BlockSize <= 0 { - return DefaultBlockSize - } - return o.BlockSize -} - -func (o *Options) GetCompactionExpandLimit(level int) int { - factor := DefaultCompactionExpandLimitFactor - if o != nil && o.CompactionExpandLimitFactor > 0 { - factor = o.CompactionExpandLimitFactor - } - return o.GetCompactionTableSize(level+1) * factor -} - -func (o *Options) GetCompactionGPOverlaps(level int) int { - factor := DefaultCompactionGPOverlapsFactor - if o != nil && o.CompactionGPOverlapsFactor > 0 { - factor = o.CompactionGPOverlapsFactor - } - return o.GetCompactionTableSize(level+2) * factor -} - -func (o *Options) GetCompactionL0Trigger() int { - if o == nil || o.CompactionL0Trigger == 0 { - return DefaultCompactionL0Trigger - } - return o.CompactionL0Trigger -} - -func (o *Options) GetCompactionSourceLimit(level int) int { - factor := DefaultCompactionSourceLimitFactor - if o != nil && o.CompactionSourceLimitFactor > 0 { - factor = o.CompactionSourceLimitFactor - } - return o.GetCompactionTableSize(level+1) * factor -} - -func (o *Options) GetCompactionTableSize(level int) int { - var ( - base = DefaultCompactionTableSize - mult float64 - ) - if o != nil { - if o.CompactionTableSize > 0 { - base = o.CompactionTableSize - } - if level < len(o.CompactionTableSizeMultiplierPerLevel) && o.CompactionTableSizeMultiplierPerLevel[level] > 0 { - mult = o.CompactionTableSizeMultiplierPerLevel[level] - } else if o.CompactionTableSizeMultiplier > 0 { - mult = math.Pow(o.CompactionTableSizeMultiplier, float64(level)) - } - } - if mult == 0 { - mult = math.Pow(DefaultCompactionTableSizeMultiplier, float64(level)) - } - return int(float64(base) * mult) -} - -func (o *Options) GetCompactionTotalSize(level int) int64 { - var ( - base = DefaultCompactionTotalSize - mult float64 - ) - if o != nil { - if o.CompactionTotalSize > 0 { - base = o.CompactionTotalSize - } - if level < len(o.CompactionTotalSizeMultiplierPerLevel) && o.CompactionTotalSizeMultiplierPerLevel[level] > 0 { - mult = o.CompactionTotalSizeMultiplierPerLevel[level] - } else if o.CompactionTotalSizeMultiplier > 0 { - mult = math.Pow(o.CompactionTotalSizeMultiplier, float64(level)) - } - } - if mult == 0 { - mult = math.Pow(DefaultCompactionTotalSizeMultiplier, float64(level)) - } - return int64(float64(base) * mult) -} - -func (o *Options) GetComparer() comparer.Comparer { - if o == nil || o.Comparer == nil { - return comparer.DefaultComparer - } - return o.Comparer -} - -func (o *Options) GetCompression() Compression { - if o == nil || o.Compression <= DefaultCompression || o.Compression >= nCompression { - return DefaultCompressionType - } - return o.Compression -} - -func (o *Options) GetDisableBufferPool() bool { - if o == nil { - return false - } - return o.DisableBufferPool -} - -func (o *Options) GetDisableBlockCache() bool { - if o == nil { - return false - } - return o.DisableBlockCache -} - -func (o *Options) GetDisableCompactionBackoff() bool { - if o == nil { - return false - } - return o.DisableCompactionBackoff -} - -func (o *Options) GetDisableLargeBatchTransaction() bool { - if o == nil { - return false - } - return o.DisableLargeBatchTransaction -} - -func (o *Options) GetErrorIfExist() bool { - if o == nil { - return false - } - return o.ErrorIfExist -} - -func (o *Options) GetErrorIfMissing() bool { - if o == nil { - return false - } - return o.ErrorIfMissing -} - -func (o *Options) GetFilter() filter.Filter { - if o == nil { - return nil - } - return o.Filter -} - -func (o *Options) GetIteratorSamplingRate() int { - if o == nil || o.IteratorSamplingRate <= 0 { - return DefaultIteratorSamplingRate - } - return o.IteratorSamplingRate -} - -func (o *Options) GetNoSync() bool { - if o == nil { - return false - } - return o.NoSync -} - -func (o *Options) GetNoWriteMerge() bool { - if o == nil { - return false - } - return o.NoWriteMerge -} - -func (o *Options) GetOpenFilesCacher() Cacher { - if o == nil || o.OpenFilesCacher == nil { - return DefaultOpenFilesCacher - } - if o.OpenFilesCacher == NoCacher { - return nil - } - return o.OpenFilesCacher -} - -func (o *Options) GetOpenFilesCacheCapacity() int { - if o == nil || o.OpenFilesCacheCapacity == 0 { - return DefaultOpenFilesCacheCapacity - } else if o.OpenFilesCacheCapacity < 0 { - return 0 - } - return o.OpenFilesCacheCapacity -} - -func (o *Options) GetReadOnly() bool { - if o == nil { - return false - } - return o.ReadOnly -} - -func (o *Options) GetStrict(strict Strict) bool { - if o == nil || o.Strict == 0 { - return DefaultStrict&strict != 0 - } - return o.Strict&strict != 0 -} - -func (o *Options) GetWriteBuffer() int { - if o == nil || o.WriteBuffer <= 0 { - return DefaultWriteBuffer - } - return o.WriteBuffer -} - -func (o *Options) GetWriteL0PauseTrigger() int { - if o == nil || o.WriteL0PauseTrigger == 0 { - return DefaultWriteL0PauseTrigger - } - return o.WriteL0PauseTrigger -} - -func (o *Options) GetWriteL0SlowdownTrigger() int { - if o == nil || o.WriteL0SlowdownTrigger == 0 { - return DefaultWriteL0SlowdownTrigger - } - return o.WriteL0SlowdownTrigger -} - -// ReadOptions holds the optional parameters for 'read operation'. The -// 'read operation' includes Get, Find and NewIterator. -type ReadOptions struct { - // DontFillCache defines whether block reads for this 'read operation' - // should be cached. If false then the block will be cached. This does - // not affects already cached block. - // - // The default value is false. - DontFillCache bool - - // Strict will be OR'ed with global DB 'strict level' unless StrictOverride - // is present. Currently only StrictReader that has effect here. - Strict Strict -} - -func (ro *ReadOptions) GetDontFillCache() bool { - if ro == nil { - return false - } - return ro.DontFillCache -} - -func (ro *ReadOptions) GetStrict(strict Strict) bool { - if ro == nil { - return false - } - return ro.Strict&strict != 0 -} - -// WriteOptions holds the optional parameters for 'write operation'. The -// 'write operation' includes Write, Put and Delete. -type WriteOptions struct { - // NoWriteMerge allows disabling write merge. - // - // The default is false. - NoWriteMerge bool - - // Sync is whether to sync underlying writes from the OS buffer cache - // through to actual disk, if applicable. Setting Sync can result in - // slower writes. - // - // If false, and the machine crashes, then some recent writes may be lost. - // Note that if it is just the process that crashes (and the machine does - // not) then no writes will be lost. - // - // In other words, Sync being false has the same semantics as a write - // system call. Sync being true means write followed by fsync. - // - // The default value is false. - Sync bool -} - -func (wo *WriteOptions) GetNoWriteMerge() bool { - if wo == nil { - return false - } - return wo.NoWriteMerge -} - -func (wo *WriteOptions) GetSync() bool { - if wo == nil { - return false - } - return wo.Sync -} - -func GetStrict(o *Options, ro *ReadOptions, strict Strict) bool { - if ro.GetStrict(StrictOverride) { - return ro.GetStrict(strict) - } else { - return o.GetStrict(strict) || ro.GetStrict(strict) - } -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/options.go b/vendor/github.com/syndtr/goleveldb/leveldb/options.go deleted file mode 100644 index b072b1ac..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/options.go +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "github.com/syndtr/goleveldb/leveldb/filter" - "github.com/syndtr/goleveldb/leveldb/opt" -) - -func dupOptions(o *opt.Options) *opt.Options { - newo := &opt.Options{} - if o != nil { - *newo = *o - } - if newo.Strict == 0 { - newo.Strict = opt.DefaultStrict - } - return newo -} - -func (s *session) setOptions(o *opt.Options) { - no := dupOptions(o) - // Alternative filters. - if filters := o.GetAltFilters(); len(filters) > 0 { - no.AltFilters = make([]filter.Filter, len(filters)) - for i, filter := range filters { - no.AltFilters[i] = &iFilter{filter} - } - } - // Comparer. - s.icmp = &iComparer{o.GetComparer()} - no.Comparer = s.icmp - // Filter. - if filter := o.GetFilter(); filter != nil { - no.Filter = &iFilter{filter} - } - - s.o = &cachedOptions{Options: no} - s.o.cache() -} - -const optCachedLevel = 7 - -type cachedOptions struct { - *opt.Options - - compactionExpandLimit []int - compactionGPOverlaps []int - compactionSourceLimit []int - compactionTableSize []int - compactionTotalSize []int64 -} - -func (co *cachedOptions) cache() { - co.compactionExpandLimit = make([]int, optCachedLevel) - co.compactionGPOverlaps = make([]int, optCachedLevel) - co.compactionSourceLimit = make([]int, optCachedLevel) - co.compactionTableSize = make([]int, optCachedLevel) - co.compactionTotalSize = make([]int64, optCachedLevel) - - for level := 0; level < optCachedLevel; level++ { - co.compactionExpandLimit[level] = co.Options.GetCompactionExpandLimit(level) - co.compactionGPOverlaps[level] = co.Options.GetCompactionGPOverlaps(level) - co.compactionSourceLimit[level] = co.Options.GetCompactionSourceLimit(level) - co.compactionTableSize[level] = co.Options.GetCompactionTableSize(level) - co.compactionTotalSize[level] = co.Options.GetCompactionTotalSize(level) - } -} - -func (co *cachedOptions) GetCompactionExpandLimit(level int) int { - if level < optCachedLevel { - return co.compactionExpandLimit[level] - } - return co.Options.GetCompactionExpandLimit(level) -} - -func (co *cachedOptions) GetCompactionGPOverlaps(level int) int { - if level < optCachedLevel { - return co.compactionGPOverlaps[level] - } - return co.Options.GetCompactionGPOverlaps(level) -} - -func (co *cachedOptions) GetCompactionSourceLimit(level int) int { - if level < optCachedLevel { - return co.compactionSourceLimit[level] - } - return co.Options.GetCompactionSourceLimit(level) -} - -func (co *cachedOptions) GetCompactionTableSize(level int) int { - if level < optCachedLevel { - return co.compactionTableSize[level] - } - return co.Options.GetCompactionTableSize(level) -} - -func (co *cachedOptions) GetCompactionTotalSize(level int) int64 { - if level < optCachedLevel { - return co.compactionTotalSize[level] - } - return co.Options.GetCompactionTotalSize(level) -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/session.go b/vendor/github.com/syndtr/goleveldb/leveldb/session.go deleted file mode 100644 index 3f391f93..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/session.go +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "fmt" - "io" - "os" - "sync" - - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/journal" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/storage" -) - -// ErrManifestCorrupted records manifest corruption. This error will be -// wrapped with errors.ErrCorrupted. -type ErrManifestCorrupted struct { - Field string - Reason string -} - -func (e *ErrManifestCorrupted) Error() string { - return fmt.Sprintf("leveldb: manifest corrupted (field '%s'): %s", e.Field, e.Reason) -} - -func newErrManifestCorrupted(fd storage.FileDesc, field, reason string) error { - return errors.NewErrCorrupted(fd, &ErrManifestCorrupted{field, reason}) -} - -// session represent a persistent database session. -type session struct { - // Need 64-bit alignment. - stNextFileNum int64 // current unused file number - stJournalNum int64 // current journal file number; need external synchronization - stPrevJournalNum int64 // prev journal file number; no longer used; for compatibility with older version of leveldb - stTempFileNum int64 - stSeqNum uint64 // last mem compacted seq; need external synchronization - - stor *iStorage - storLock storage.Locker - o *cachedOptions - icmp *iComparer - tops *tOps - fileRef map[int64]int - - manifest *journal.Writer - manifestWriter storage.Writer - manifestFd storage.FileDesc - - stCompPtrs []internalKey // compaction pointers; need external synchronization - stVersion *version // current version - vmu sync.Mutex -} - -// Creates new initialized session instance. -func newSession(stor storage.Storage, o *opt.Options) (s *session, err error) { - if stor == nil { - return nil, os.ErrInvalid - } - storLock, err := stor.Lock() - if err != nil { - return - } - s = &session{ - stor: newIStorage(stor), - storLock: storLock, - fileRef: make(map[int64]int), - } - s.setOptions(o) - s.tops = newTableOps(s) - s.setVersion(newVersion(s)) - s.log("log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed") - return -} - -// Close session. -func (s *session) close() { - s.tops.close() - if s.manifest != nil { - s.manifest.Close() - } - if s.manifestWriter != nil { - s.manifestWriter.Close() - } - s.manifest = nil - s.manifestWriter = nil - s.setVersion(&version{s: s, closing: true}) -} - -// Release session lock. -func (s *session) release() { - s.storLock.Unlock() -} - -// Create a new database session; need external synchronization. -func (s *session) create() error { - // create manifest - return s.newManifest(nil, nil) -} - -// Recover a database session; need external synchronization. -func (s *session) recover() (err error) { - defer func() { - if os.IsNotExist(err) { - // Don't return os.ErrNotExist if the underlying storage contains - // other files that belong to LevelDB. So the DB won't get trashed. - if fds, _ := s.stor.List(storage.TypeAll); len(fds) > 0 { - err = &errors.ErrCorrupted{Fd: storage.FileDesc{Type: storage.TypeManifest}, Err: &errors.ErrMissingFiles{}} - } - } - }() - - fd, err := s.stor.GetMeta() - if err != nil { - return - } - - reader, err := s.stor.Open(fd) - if err != nil { - return - } - defer reader.Close() - - var ( - // Options. - strict = s.o.GetStrict(opt.StrictManifest) - - jr = journal.NewReader(reader, dropper{s, fd}, strict, true) - rec = &sessionRecord{} - staging = s.stVersion.newStaging() - ) - for { - var r io.Reader - r, err = jr.Next() - if err != nil { - if err == io.EOF { - err = nil - break - } - return errors.SetFd(err, fd) - } - - err = rec.decode(r) - if err == nil { - // save compact pointers - for _, r := range rec.compPtrs { - s.setCompPtr(r.level, internalKey(r.ikey)) - } - // commit record to version staging - staging.commit(rec) - } else { - err = errors.SetFd(err, fd) - if strict || !errors.IsCorrupted(err) { - return - } - s.logf("manifest error: %v (skipped)", errors.SetFd(err, fd)) - } - rec.resetCompPtrs() - rec.resetAddedTables() - rec.resetDeletedTables() - } - - switch { - case !rec.has(recComparer): - return newErrManifestCorrupted(fd, "comparer", "missing") - case rec.comparer != s.icmp.uName(): - return newErrManifestCorrupted(fd, "comparer", fmt.Sprintf("mismatch: want '%s', got '%s'", s.icmp.uName(), rec.comparer)) - case !rec.has(recNextFileNum): - return newErrManifestCorrupted(fd, "next-file-num", "missing") - case !rec.has(recJournalNum): - return newErrManifestCorrupted(fd, "journal-file-num", "missing") - case !rec.has(recSeqNum): - return newErrManifestCorrupted(fd, "seq-num", "missing") - } - - s.manifestFd = fd - s.setVersion(staging.finish()) - s.setNextFileNum(rec.nextFileNum) - s.recordCommited(rec) - return nil -} - -// Commit session; need external synchronization. -func (s *session) commit(r *sessionRecord) (err error) { - v := s.version() - defer v.release() - - // spawn new version based on current version - nv := v.spawn(r) - - if s.manifest == nil { - // manifest journal writer not yet created, create one - err = s.newManifest(r, nv) - } else { - err = s.flushManifest(r) - } - - // finally, apply new version if no error rise - if err == nil { - s.setVersion(nv) - } - - return -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/session_compaction.go b/vendor/github.com/syndtr/goleveldb/leveldb/session_compaction.go deleted file mode 100644 index 089cd00b..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/session_compaction.go +++ /dev/null @@ -1,302 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "sync/atomic" - - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/memdb" - "github.com/syndtr/goleveldb/leveldb/opt" -) - -func (s *session) pickMemdbLevel(umin, umax []byte, maxLevel int) int { - v := s.version() - defer v.release() - return v.pickMemdbLevel(umin, umax, maxLevel) -} - -func (s *session) flushMemdb(rec *sessionRecord, mdb *memdb.DB, maxLevel int) (int, error) { - // Create sorted table. - iter := mdb.NewIterator(nil) - defer iter.Release() - t, n, err := s.tops.createFrom(iter) - if err != nil { - return 0, err - } - - // Pick level other than zero can cause compaction issue with large - // bulk insert and delete on strictly incrementing key-space. The - // problem is that the small deletion markers trapped at lower level, - // while key/value entries keep growing at higher level. Since the - // key-space is strictly incrementing it will not overlaps with - // higher level, thus maximum possible level is always picked, while - // overlapping deletion marker pushed into lower level. - // See: https://github.com/syndtr/goleveldb/issues/127. - flushLevel := s.pickMemdbLevel(t.imin.ukey(), t.imax.ukey(), maxLevel) - rec.addTableFile(flushLevel, t) - - s.logf("memdb@flush created L%d@%d N·%d S·%s %q:%q", flushLevel, t.fd.Num, n, shortenb(int(t.size)), t.imin, t.imax) - return flushLevel, nil -} - -// Pick a compaction based on current state; need external synchronization. -func (s *session) pickCompaction() *compaction { - v := s.version() - - var sourceLevel int - var t0 tFiles - if v.cScore >= 1 { - sourceLevel = v.cLevel - cptr := s.getCompPtr(sourceLevel) - tables := v.levels[sourceLevel] - for _, t := range tables { - if cptr == nil || s.icmp.Compare(t.imax, cptr) > 0 { - t0 = append(t0, t) - break - } - } - if len(t0) == 0 { - t0 = append(t0, tables[0]) - } - } else { - if p := atomic.LoadPointer(&v.cSeek); p != nil { - ts := (*tSet)(p) - sourceLevel = ts.level - t0 = append(t0, ts.table) - } else { - v.release() - return nil - } - } - - return newCompaction(s, v, sourceLevel, t0) -} - -// Create compaction from given level and range; need external synchronization. -func (s *session) getCompactionRange(sourceLevel int, umin, umax []byte, noLimit bool) *compaction { - v := s.version() - - if sourceLevel >= len(v.levels) { - v.release() - return nil - } - - t0 := v.levels[sourceLevel].getOverlaps(nil, s.icmp, umin, umax, sourceLevel == 0) - if len(t0) == 0 { - v.release() - return nil - } - - // Avoid compacting too much in one shot in case the range is large. - // But we cannot do this for level-0 since level-0 files can overlap - // and we must not pick one file and drop another older file if the - // two files overlap. - if !noLimit && sourceLevel > 0 { - limit := int64(v.s.o.GetCompactionSourceLimit(sourceLevel)) - total := int64(0) - for i, t := range t0 { - total += t.size - if total >= limit { - s.logf("table@compaction limiting F·%d -> F·%d", len(t0), i+1) - t0 = t0[:i+1] - break - } - } - } - - return newCompaction(s, v, sourceLevel, t0) -} - -func newCompaction(s *session, v *version, sourceLevel int, t0 tFiles) *compaction { - c := &compaction{ - s: s, - v: v, - sourceLevel: sourceLevel, - levels: [2]tFiles{t0, nil}, - maxGPOverlaps: int64(s.o.GetCompactionGPOverlaps(sourceLevel)), - tPtrs: make([]int, len(v.levels)), - } - c.expand() - c.save() - return c -} - -// compaction represent a compaction state. -type compaction struct { - s *session - v *version - - sourceLevel int - levels [2]tFiles - maxGPOverlaps int64 - - gp tFiles - gpi int - seenKey bool - gpOverlappedBytes int64 - imin, imax internalKey - tPtrs []int - released bool - - snapGPI int - snapSeenKey bool - snapGPOverlappedBytes int64 - snapTPtrs []int -} - -func (c *compaction) save() { - c.snapGPI = c.gpi - c.snapSeenKey = c.seenKey - c.snapGPOverlappedBytes = c.gpOverlappedBytes - c.snapTPtrs = append(c.snapTPtrs[:0], c.tPtrs...) -} - -func (c *compaction) restore() { - c.gpi = c.snapGPI - c.seenKey = c.snapSeenKey - c.gpOverlappedBytes = c.snapGPOverlappedBytes - c.tPtrs = append(c.tPtrs[:0], c.snapTPtrs...) -} - -func (c *compaction) release() { - if !c.released { - c.released = true - c.v.release() - } -} - -// Expand compacted tables; need external synchronization. -func (c *compaction) expand() { - limit := int64(c.s.o.GetCompactionExpandLimit(c.sourceLevel)) - vt0 := c.v.levels[c.sourceLevel] - vt1 := tFiles{} - if level := c.sourceLevel + 1; level < len(c.v.levels) { - vt1 = c.v.levels[level] - } - - t0, t1 := c.levels[0], c.levels[1] - imin, imax := t0.getRange(c.s.icmp) - // We expand t0 here just incase ukey hop across tables. - t0 = vt0.getOverlaps(t0, c.s.icmp, imin.ukey(), imax.ukey(), c.sourceLevel == 0) - if len(t0) != len(c.levels[0]) { - imin, imax = t0.getRange(c.s.icmp) - } - t1 = vt1.getOverlaps(t1, c.s.icmp, imin.ukey(), imax.ukey(), false) - // Get entire range covered by compaction. - amin, amax := append(t0, t1...).getRange(c.s.icmp) - - // See if we can grow the number of inputs in "sourceLevel" without - // changing the number of "sourceLevel+1" files we pick up. - if len(t1) > 0 { - exp0 := vt0.getOverlaps(nil, c.s.icmp, amin.ukey(), amax.ukey(), c.sourceLevel == 0) - if len(exp0) > len(t0) && t1.size()+exp0.size() < limit { - xmin, xmax := exp0.getRange(c.s.icmp) - exp1 := vt1.getOverlaps(nil, c.s.icmp, xmin.ukey(), xmax.ukey(), false) - if len(exp1) == len(t1) { - c.s.logf("table@compaction expanding L%d+L%d (F·%d S·%s)+(F·%d S·%s) -> (F·%d S·%s)+(F·%d S·%s)", - c.sourceLevel, c.sourceLevel+1, len(t0), shortenb(int(t0.size())), len(t1), shortenb(int(t1.size())), - len(exp0), shortenb(int(exp0.size())), len(exp1), shortenb(int(exp1.size()))) - imin, imax = xmin, xmax - t0, t1 = exp0, exp1 - amin, amax = append(t0, t1...).getRange(c.s.icmp) - } - } - } - - // Compute the set of grandparent files that overlap this compaction - // (parent == sourceLevel+1; grandparent == sourceLevel+2) - if level := c.sourceLevel + 2; level < len(c.v.levels) { - c.gp = c.v.levels[level].getOverlaps(c.gp, c.s.icmp, amin.ukey(), amax.ukey(), false) - } - - c.levels[0], c.levels[1] = t0, t1 - c.imin, c.imax = imin, imax -} - -// Check whether compaction is trivial. -func (c *compaction) trivial() bool { - return len(c.levels[0]) == 1 && len(c.levels[1]) == 0 && c.gp.size() <= c.maxGPOverlaps -} - -func (c *compaction) baseLevelForKey(ukey []byte) bool { - for level := c.sourceLevel + 2; level < len(c.v.levels); level++ { - tables := c.v.levels[level] - for c.tPtrs[level] < len(tables) { - t := tables[c.tPtrs[level]] - if c.s.icmp.uCompare(ukey, t.imax.ukey()) <= 0 { - // We've advanced far enough. - if c.s.icmp.uCompare(ukey, t.imin.ukey()) >= 0 { - // Key falls in this file's range, so definitely not base level. - return false - } - break - } - c.tPtrs[level]++ - } - } - return true -} - -func (c *compaction) shouldStopBefore(ikey internalKey) bool { - for ; c.gpi < len(c.gp); c.gpi++ { - gp := c.gp[c.gpi] - if c.s.icmp.Compare(ikey, gp.imax) <= 0 { - break - } - if c.seenKey { - c.gpOverlappedBytes += gp.size - } - } - c.seenKey = true - - if c.gpOverlappedBytes > c.maxGPOverlaps { - // Too much overlap for current output; start new output. - c.gpOverlappedBytes = 0 - return true - } - return false -} - -// Creates an iterator. -func (c *compaction) newIterator() iterator.Iterator { - // Creates iterator slice. - icap := len(c.levels) - if c.sourceLevel == 0 { - // Special case for level-0. - icap = len(c.levels[0]) + 1 - } - its := make([]iterator.Iterator, 0, icap) - - // Options. - ro := &opt.ReadOptions{ - DontFillCache: true, - Strict: opt.StrictOverride, - } - strict := c.s.o.GetStrict(opt.StrictCompaction) - if strict { - ro.Strict |= opt.StrictReader - } - - for i, tables := range c.levels { - if len(tables) == 0 { - continue - } - - // Level-0 is not sorted and may overlaps each other. - if c.sourceLevel+i == 0 { - for _, t := range tables { - its = append(its, c.s.tops.newIterator(t, nil, ro)) - } - } else { - it := iterator.NewIndexedIterator(tables.newIndexIterator(c.s.tops, c.s.icmp, nil, ro), strict) - its = append(its, it) - } - } - - return iterator.NewMergedIterator(its, c.s.icmp, strict) -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/session_record.go b/vendor/github.com/syndtr/goleveldb/leveldb/session_record.go deleted file mode 100644 index 854e1aa6..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/session_record.go +++ /dev/null @@ -1,323 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "bufio" - "encoding/binary" - "io" - "strings" - - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/storage" -) - -type byteReader interface { - io.Reader - io.ByteReader -} - -// These numbers are written to disk and should not be changed. -const ( - recComparer = 1 - recJournalNum = 2 - recNextFileNum = 3 - recSeqNum = 4 - recCompPtr = 5 - recDelTable = 6 - recAddTable = 7 - // 8 was used for large value refs - recPrevJournalNum = 9 -) - -type cpRecord struct { - level int - ikey internalKey -} - -type atRecord struct { - level int - num int64 - size int64 - imin internalKey - imax internalKey -} - -type dtRecord struct { - level int - num int64 -} - -type sessionRecord struct { - hasRec int - comparer string - journalNum int64 - prevJournalNum int64 - nextFileNum int64 - seqNum uint64 - compPtrs []cpRecord - addedTables []atRecord - deletedTables []dtRecord - - scratch [binary.MaxVarintLen64]byte - err error -} - -func (p *sessionRecord) has(rec int) bool { - return p.hasRec&(1< -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "fmt" - "sync/atomic" - - "github.com/syndtr/goleveldb/leveldb/journal" - "github.com/syndtr/goleveldb/leveldb/storage" -) - -// Logging. - -type dropper struct { - s *session - fd storage.FileDesc -} - -func (d dropper) Drop(err error) { - if e, ok := err.(*journal.ErrCorrupted); ok { - d.s.logf("journal@drop %s-%d S·%s %q", d.fd.Type, d.fd.Num, shortenb(e.Size), e.Reason) - } else { - d.s.logf("journal@drop %s-%d %q", d.fd.Type, d.fd.Num, err) - } -} - -func (s *session) log(v ...interface{}) { s.stor.Log(fmt.Sprint(v...)) } -func (s *session) logf(format string, v ...interface{}) { s.stor.Log(fmt.Sprintf(format, v...)) } - -// File utils. - -func (s *session) newTemp() storage.FileDesc { - num := atomic.AddInt64(&s.stTempFileNum, 1) - 1 - return storage.FileDesc{Type: storage.TypeTemp, Num: num} -} - -func (s *session) addFileRef(fd storage.FileDesc, ref int) int { - ref += s.fileRef[fd.Num] - if ref > 0 { - s.fileRef[fd.Num] = ref - } else if ref == 0 { - delete(s.fileRef, fd.Num) - } else { - panic(fmt.Sprintf("negative ref: %v", fd)) - } - return ref -} - -// Session state. - -// Get current version. This will incr version ref, must call -// version.release (exactly once) after use. -func (s *session) version() *version { - s.vmu.Lock() - defer s.vmu.Unlock() - s.stVersion.incref() - return s.stVersion -} - -func (s *session) tLen(level int) int { - s.vmu.Lock() - defer s.vmu.Unlock() - return s.stVersion.tLen(level) -} - -// Set current version to v. -func (s *session) setVersion(v *version) { - s.vmu.Lock() - defer s.vmu.Unlock() - // Hold by session. It is important to call this first before releasing - // current version, otherwise the still used files might get released. - v.incref() - if s.stVersion != nil { - // Release current version. - s.stVersion.releaseNB() - } - s.stVersion = v -} - -// Get current unused file number. -func (s *session) nextFileNum() int64 { - return atomic.LoadInt64(&s.stNextFileNum) -} - -// Set current unused file number to num. -func (s *session) setNextFileNum(num int64) { - atomic.StoreInt64(&s.stNextFileNum, num) -} - -// Mark file number as used. -func (s *session) markFileNum(num int64) { - nextFileNum := num + 1 - for { - old, x := s.stNextFileNum, nextFileNum - if old > x { - x = old - } - if atomic.CompareAndSwapInt64(&s.stNextFileNum, old, x) { - break - } - } -} - -// Allocate a file number. -func (s *session) allocFileNum() int64 { - return atomic.AddInt64(&s.stNextFileNum, 1) - 1 -} - -// Reuse given file number. -func (s *session) reuseFileNum(num int64) { - for { - old, x := s.stNextFileNum, num - if old != x+1 { - x = old - } - if atomic.CompareAndSwapInt64(&s.stNextFileNum, old, x) { - break - } - } -} - -// Set compaction ptr at given level; need external synchronization. -func (s *session) setCompPtr(level int, ik internalKey) { - if level >= len(s.stCompPtrs) { - newCompPtrs := make([]internalKey, level+1) - copy(newCompPtrs, s.stCompPtrs) - s.stCompPtrs = newCompPtrs - } - s.stCompPtrs[level] = append(internalKey{}, ik...) -} - -// Get compaction ptr at given level; need external synchronization. -func (s *session) getCompPtr(level int) internalKey { - if level >= len(s.stCompPtrs) { - return nil - } - return s.stCompPtrs[level] -} - -// Manifest related utils. - -// Fill given session record obj with current states; need external -// synchronization. -func (s *session) fillRecord(r *sessionRecord, snapshot bool) { - r.setNextFileNum(s.nextFileNum()) - - if snapshot { - if !r.has(recJournalNum) { - r.setJournalNum(s.stJournalNum) - } - - if !r.has(recSeqNum) { - r.setSeqNum(s.stSeqNum) - } - - for level, ik := range s.stCompPtrs { - if ik != nil { - r.addCompPtr(level, ik) - } - } - - r.setComparer(s.icmp.uName()) - } -} - -// Mark if record has been committed, this will update session state; -// need external synchronization. -func (s *session) recordCommited(rec *sessionRecord) { - if rec.has(recJournalNum) { - s.stJournalNum = rec.journalNum - } - - if rec.has(recPrevJournalNum) { - s.stPrevJournalNum = rec.prevJournalNum - } - - if rec.has(recSeqNum) { - s.stSeqNum = rec.seqNum - } - - for _, r := range rec.compPtrs { - s.setCompPtr(r.level, internalKey(r.ikey)) - } -} - -// Create a new manifest file; need external synchronization. -func (s *session) newManifest(rec *sessionRecord, v *version) (err error) { - fd := storage.FileDesc{Type: storage.TypeManifest, Num: s.allocFileNum()} - writer, err := s.stor.Create(fd) - if err != nil { - return - } - jw := journal.NewWriter(writer) - - if v == nil { - v = s.version() - defer v.release() - } - if rec == nil { - rec = &sessionRecord{} - } - s.fillRecord(rec, true) - v.fillRecord(rec) - - defer func() { - if err == nil { - s.recordCommited(rec) - if s.manifest != nil { - s.manifest.Close() - } - if s.manifestWriter != nil { - s.manifestWriter.Close() - } - if !s.manifestFd.Zero() { - s.stor.Remove(s.manifestFd) - } - s.manifestFd = fd - s.manifestWriter = writer - s.manifest = jw - } else { - writer.Close() - s.stor.Remove(fd) - s.reuseFileNum(fd.Num) - } - }() - - w, err := jw.Next() - if err != nil { - return - } - err = rec.encode(w) - if err != nil { - return - } - err = jw.Flush() - if err != nil { - return - } - err = s.stor.SetMeta(fd) - return -} - -// Flush record to disk. -func (s *session) flushManifest(rec *sessionRecord) (err error) { - s.fillRecord(rec, false) - w, err := s.manifest.Next() - if err != nil { - return - } - err = rec.encode(w) - if err != nil { - return - } - err = s.manifest.Flush() - if err != nil { - return - } - if !s.o.GetNoSync() { - err = s.manifestWriter.Sync() - if err != nil { - return - } - } - s.recordCommited(rec) - return -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage.go deleted file mode 100644 index d45fb5df..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage.go +++ /dev/null @@ -1,63 +0,0 @@ -package leveldb - -import ( - "github.com/syndtr/goleveldb/leveldb/storage" - "sync/atomic" -) - -type iStorage struct { - storage.Storage - read uint64 - write uint64 -} - -func (c *iStorage) Open(fd storage.FileDesc) (storage.Reader, error) { - r, err := c.Storage.Open(fd) - return &iStorageReader{r, c}, err -} - -func (c *iStorage) Create(fd storage.FileDesc) (storage.Writer, error) { - w, err := c.Storage.Create(fd) - return &iStorageWriter{w, c}, err -} - -func (c *iStorage) reads() uint64 { - return atomic.LoadUint64(&c.read) -} - -func (c *iStorage) writes() uint64 { - return atomic.LoadUint64(&c.write) -} - -// newIStorage returns the given storage wrapped by iStorage. -func newIStorage(s storage.Storage) *iStorage { - return &iStorage{s, 0, 0} -} - -type iStorageReader struct { - storage.Reader - c *iStorage -} - -func (r *iStorageReader) Read(p []byte) (n int, err error) { - n, err = r.Reader.Read(p) - atomic.AddUint64(&r.c.read, uint64(n)) - return n, err -} - -func (r *iStorageReader) ReadAt(p []byte, off int64) (n int, err error) { - n, err = r.Reader.ReadAt(p, off) - atomic.AddUint64(&r.c.read, uint64(n)) - return n, err -} - -type iStorageWriter struct { - storage.Writer - c *iStorage -} - -func (w *iStorageWriter) Write(p []byte) (n int, err error) { - n, err = w.Writer.Write(p) - atomic.AddUint64(&w.c.write, uint64(n)) - return n, err -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go deleted file mode 100644 index 9ba71fd6..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go +++ /dev/null @@ -1,671 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reservefs. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package storage - -import ( - "errors" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "runtime" - "sort" - "strconv" - "strings" - "sync" - "time" -) - -var ( - errFileOpen = errors.New("leveldb/storage: file still open") - errReadOnly = errors.New("leveldb/storage: storage is read-only") -) - -type fileLock interface { - release() error -} - -type fileStorageLock struct { - fs *fileStorage -} - -func (lock *fileStorageLock) Unlock() { - if lock.fs != nil { - lock.fs.mu.Lock() - defer lock.fs.mu.Unlock() - if lock.fs.slock == lock { - lock.fs.slock = nil - } - } -} - -type int64Slice []int64 - -func (p int64Slice) Len() int { return len(p) } -func (p int64Slice) Less(i, j int) bool { return p[i] < p[j] } -func (p int64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -func writeFileSynced(filename string, data []byte, perm os.FileMode) error { - f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) - if err != nil { - return err - } - n, err := f.Write(data) - if err == nil && n < len(data) { - err = io.ErrShortWrite - } - if err1 := f.Sync(); err == nil { - err = err1 - } - if err1 := f.Close(); err == nil { - err = err1 - } - return err -} - -const logSizeThreshold = 1024 * 1024 // 1 MiB - -// fileStorage is a file-system backed storage. -type fileStorage struct { - path string - readOnly bool - - mu sync.Mutex - flock fileLock - slock *fileStorageLock - logw *os.File - logSize int64 - buf []byte - // Opened file counter; if open < 0 means closed. - open int - day int -} - -// OpenFile returns a new filesystem-backed storage implementation with the given -// path. This also acquire a file lock, so any subsequent attempt to open the -// same path will fail. -// -// The storage must be closed after use, by calling Close method. -func OpenFile(path string, readOnly bool) (Storage, error) { - if fi, err := os.Stat(path); err == nil { - if !fi.IsDir() { - return nil, fmt.Errorf("leveldb/storage: open %s: not a directory", path) - } - } else if os.IsNotExist(err) && !readOnly { - if err := os.MkdirAll(path, 0755); err != nil { - return nil, err - } - } else { - return nil, err - } - - flock, err := newFileLock(filepath.Join(path, "LOCK"), readOnly) - if err != nil { - return nil, err - } - - defer func() { - if err != nil { - flock.release() - } - }() - - var ( - logw *os.File - logSize int64 - ) - if !readOnly { - logw, err = os.OpenFile(filepath.Join(path, "LOG"), os.O_WRONLY|os.O_CREATE, 0644) - if err != nil { - return nil, err - } - logSize, err = logw.Seek(0, os.SEEK_END) - if err != nil { - logw.Close() - return nil, err - } - } - - fs := &fileStorage{ - path: path, - readOnly: readOnly, - flock: flock, - logw: logw, - logSize: logSize, - } - runtime.SetFinalizer(fs, (*fileStorage).Close) - return fs, nil -} - -func (fs *fileStorage) Lock() (Locker, error) { - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return nil, ErrClosed - } - if fs.readOnly { - return &fileStorageLock{}, nil - } - if fs.slock != nil { - return nil, ErrLocked - } - fs.slock = &fileStorageLock{fs: fs} - return fs.slock, nil -} - -func itoa(buf []byte, i int, wid int) []byte { - u := uint(i) - if u == 0 && wid <= 1 { - return append(buf, '0') - } - - // Assemble decimal in reverse order. - var b [32]byte - bp := len(b) - for ; u > 0 || wid > 0; u /= 10 { - bp-- - wid-- - b[bp] = byte(u%10) + '0' - } - return append(buf, b[bp:]...) -} - -func (fs *fileStorage) printDay(t time.Time) { - if fs.day == t.Day() { - return - } - fs.day = t.Day() - fs.logw.Write([]byte("=============== " + t.Format("Jan 2, 2006 (MST)") + " ===============\n")) -} - -func (fs *fileStorage) doLog(t time.Time, str string) { - if fs.logSize > logSizeThreshold { - // Rotate log file. - fs.logw.Close() - fs.logw = nil - fs.logSize = 0 - rename(filepath.Join(fs.path, "LOG"), filepath.Join(fs.path, "LOG.old")) - } - if fs.logw == nil { - var err error - fs.logw, err = os.OpenFile(filepath.Join(fs.path, "LOG"), os.O_WRONLY|os.O_CREATE, 0644) - if err != nil { - return - } - // Force printDay on new log file. - fs.day = 0 - } - fs.printDay(t) - hour, min, sec := t.Clock() - msec := t.Nanosecond() / 1e3 - // time - fs.buf = itoa(fs.buf[:0], hour, 2) - fs.buf = append(fs.buf, ':') - fs.buf = itoa(fs.buf, min, 2) - fs.buf = append(fs.buf, ':') - fs.buf = itoa(fs.buf, sec, 2) - fs.buf = append(fs.buf, '.') - fs.buf = itoa(fs.buf, msec, 6) - fs.buf = append(fs.buf, ' ') - // write - fs.buf = append(fs.buf, []byte(str)...) - fs.buf = append(fs.buf, '\n') - n, _ := fs.logw.Write(fs.buf) - fs.logSize += int64(n) -} - -func (fs *fileStorage) Log(str string) { - if !fs.readOnly { - t := time.Now() - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return - } - fs.doLog(t, str) - } -} - -func (fs *fileStorage) log(str string) { - if !fs.readOnly { - fs.doLog(time.Now(), str) - } -} - -func (fs *fileStorage) setMeta(fd FileDesc) error { - content := fsGenName(fd) + "\n" - // Check and backup old CURRENT file. - currentPath := filepath.Join(fs.path, "CURRENT") - if _, err := os.Stat(currentPath); err == nil { - b, err := ioutil.ReadFile(currentPath) - if err != nil { - fs.log(fmt.Sprintf("backup CURRENT: %v", err)) - return err - } - if string(b) == content { - // Content not changed, do nothing. - return nil - } - if err := writeFileSynced(currentPath+".bak", b, 0644); err != nil { - fs.log(fmt.Sprintf("backup CURRENT: %v", err)) - return err - } - } else if !os.IsNotExist(err) { - return err - } - path := fmt.Sprintf("%s.%d", filepath.Join(fs.path, "CURRENT"), fd.Num) - if err := writeFileSynced(path, []byte(content), 0644); err != nil { - fs.log(fmt.Sprintf("create CURRENT.%d: %v", fd.Num, err)) - return err - } - // Replace CURRENT file. - if err := rename(path, currentPath); err != nil { - fs.log(fmt.Sprintf("rename CURRENT.%d: %v", fd.Num, err)) - return err - } - // Sync root directory. - if err := syncDir(fs.path); err != nil { - fs.log(fmt.Sprintf("syncDir: %v", err)) - return err - } - return nil -} - -func (fs *fileStorage) SetMeta(fd FileDesc) error { - if !FileDescOk(fd) { - return ErrInvalidFile - } - if fs.readOnly { - return errReadOnly - } - - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return ErrClosed - } - return fs.setMeta(fd) -} - -func (fs *fileStorage) GetMeta() (FileDesc, error) { - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return FileDesc{}, ErrClosed - } - dir, err := os.Open(fs.path) - if err != nil { - return FileDesc{}, err - } - names, err := dir.Readdirnames(0) - // Close the dir first before checking for Readdirnames error. - if ce := dir.Close(); ce != nil { - fs.log(fmt.Sprintf("close dir: %v", ce)) - } - if err != nil { - return FileDesc{}, err - } - // Try this in order: - // - CURRENT.[0-9]+ ('pending rename' file, descending order) - // - CURRENT - // - CURRENT.bak - // - // Skip corrupted file or file that point to a missing target file. - type currentFile struct { - name string - fd FileDesc - } - tryCurrent := func(name string) (*currentFile, error) { - b, err := ioutil.ReadFile(filepath.Join(fs.path, name)) - if err != nil { - if os.IsNotExist(err) { - err = os.ErrNotExist - } - return nil, err - } - var fd FileDesc - if len(b) < 1 || b[len(b)-1] != '\n' || !fsParseNamePtr(string(b[:len(b)-1]), &fd) { - fs.log(fmt.Sprintf("%s: corrupted content: %q", name, b)) - err := &ErrCorrupted{ - Err: errors.New("leveldb/storage: corrupted or incomplete CURRENT file"), - } - return nil, err - } - if _, err := os.Stat(filepath.Join(fs.path, fsGenName(fd))); err != nil { - if os.IsNotExist(err) { - fs.log(fmt.Sprintf("%s: missing target file: %s", name, fd)) - err = os.ErrNotExist - } - return nil, err - } - return ¤tFile{name: name, fd: fd}, nil - } - tryCurrents := func(names []string) (*currentFile, error) { - var ( - cur *currentFile - // Last corruption error. - lastCerr error - ) - for _, name := range names { - var err error - cur, err = tryCurrent(name) - if err == nil { - break - } else if err == os.ErrNotExist { - // Fallback to the next file. - } else if isCorrupted(err) { - lastCerr = err - // Fallback to the next file. - } else { - // In case the error is due to permission, etc. - return nil, err - } - } - if cur == nil { - err := os.ErrNotExist - if lastCerr != nil { - err = lastCerr - } - return nil, err - } - return cur, nil - } - - // Try 'pending rename' files. - var nums []int64 - for _, name := range names { - if strings.HasPrefix(name, "CURRENT.") && name != "CURRENT.bak" { - i, err := strconv.ParseInt(name[8:], 10, 64) - if err == nil { - nums = append(nums, i) - } - } - } - var ( - pendCur *currentFile - pendErr = os.ErrNotExist - pendNames []string - ) - if len(nums) > 0 { - sort.Sort(sort.Reverse(int64Slice(nums))) - pendNames = make([]string, len(nums)) - for i, num := range nums { - pendNames[i] = fmt.Sprintf("CURRENT.%d", num) - } - pendCur, pendErr = tryCurrents(pendNames) - if pendErr != nil && pendErr != os.ErrNotExist && !isCorrupted(pendErr) { - return FileDesc{}, pendErr - } - } - - // Try CURRENT and CURRENT.bak. - curCur, curErr := tryCurrents([]string{"CURRENT", "CURRENT.bak"}) - if curErr != nil && curErr != os.ErrNotExist && !isCorrupted(curErr) { - return FileDesc{}, curErr - } - - // pendCur takes precedence, but guards against obsolete pendCur. - if pendCur != nil && (curCur == nil || pendCur.fd.Num > curCur.fd.Num) { - curCur = pendCur - } - - if curCur != nil { - // Restore CURRENT file to proper state. - if !fs.readOnly && (curCur.name != "CURRENT" || len(pendNames) != 0) { - // Ignore setMeta errors, however don't delete obsolete files if we - // catch error. - if err := fs.setMeta(curCur.fd); err == nil { - // Remove 'pending rename' files. - for _, name := range pendNames { - if err := os.Remove(filepath.Join(fs.path, name)); err != nil { - fs.log(fmt.Sprintf("remove %s: %v", name, err)) - } - } - } - } - return curCur.fd, nil - } - - // Nothing found. - if isCorrupted(pendErr) { - return FileDesc{}, pendErr - } - return FileDesc{}, curErr -} - -func (fs *fileStorage) List(ft FileType) (fds []FileDesc, err error) { - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return nil, ErrClosed - } - dir, err := os.Open(fs.path) - if err != nil { - return - } - names, err := dir.Readdirnames(0) - // Close the dir first before checking for Readdirnames error. - if cerr := dir.Close(); cerr != nil { - fs.log(fmt.Sprintf("close dir: %v", cerr)) - } - if err == nil { - for _, name := range names { - if fd, ok := fsParseName(name); ok && fd.Type&ft != 0 { - fds = append(fds, fd) - } - } - } - return -} - -func (fs *fileStorage) Open(fd FileDesc) (Reader, error) { - if !FileDescOk(fd) { - return nil, ErrInvalidFile - } - - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return nil, ErrClosed - } - of, err := os.OpenFile(filepath.Join(fs.path, fsGenName(fd)), os.O_RDONLY, 0) - if err != nil { - if fsHasOldName(fd) && os.IsNotExist(err) { - of, err = os.OpenFile(filepath.Join(fs.path, fsGenOldName(fd)), os.O_RDONLY, 0) - if err == nil { - goto ok - } - } - return nil, err - } -ok: - fs.open++ - return &fileWrap{File: of, fs: fs, fd: fd}, nil -} - -func (fs *fileStorage) Create(fd FileDesc) (Writer, error) { - if !FileDescOk(fd) { - return nil, ErrInvalidFile - } - if fs.readOnly { - return nil, errReadOnly - } - - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return nil, ErrClosed - } - of, err := os.OpenFile(filepath.Join(fs.path, fsGenName(fd)), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - return nil, err - } - fs.open++ - return &fileWrap{File: of, fs: fs, fd: fd}, nil -} - -func (fs *fileStorage) Remove(fd FileDesc) error { - if !FileDescOk(fd) { - return ErrInvalidFile - } - if fs.readOnly { - return errReadOnly - } - - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return ErrClosed - } - err := os.Remove(filepath.Join(fs.path, fsGenName(fd))) - if err != nil { - if fsHasOldName(fd) && os.IsNotExist(err) { - if e1 := os.Remove(filepath.Join(fs.path, fsGenOldName(fd))); !os.IsNotExist(e1) { - fs.log(fmt.Sprintf("remove %s: %v (old name)", fd, err)) - err = e1 - } - } else { - fs.log(fmt.Sprintf("remove %s: %v", fd, err)) - } - } - return err -} - -func (fs *fileStorage) Rename(oldfd, newfd FileDesc) error { - if !FileDescOk(oldfd) || !FileDescOk(newfd) { - return ErrInvalidFile - } - if oldfd == newfd { - return nil - } - if fs.readOnly { - return errReadOnly - } - - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return ErrClosed - } - return rename(filepath.Join(fs.path, fsGenName(oldfd)), filepath.Join(fs.path, fsGenName(newfd))) -} - -func (fs *fileStorage) Close() error { - fs.mu.Lock() - defer fs.mu.Unlock() - if fs.open < 0 { - return ErrClosed - } - // Clear the finalizer. - runtime.SetFinalizer(fs, nil) - - if fs.open > 0 { - fs.log(fmt.Sprintf("close: warning, %d files still open", fs.open)) - } - fs.open = -1 - if fs.logw != nil { - fs.logw.Close() - } - return fs.flock.release() -} - -type fileWrap struct { - *os.File - fs *fileStorage - fd FileDesc - closed bool -} - -func (fw *fileWrap) Sync() error { - if err := fw.File.Sync(); err != nil { - return err - } - if fw.fd.Type == TypeManifest { - // Also sync parent directory if file type is manifest. - // See: https://code.google.com/p/leveldb/issues/detail?id=190. - if err := syncDir(fw.fs.path); err != nil { - fw.fs.log(fmt.Sprintf("syncDir: %v", err)) - return err - } - } - return nil -} - -func (fw *fileWrap) Close() error { - fw.fs.mu.Lock() - defer fw.fs.mu.Unlock() - if fw.closed { - return ErrClosed - } - fw.closed = true - fw.fs.open-- - err := fw.File.Close() - if err != nil { - fw.fs.log(fmt.Sprintf("close %s: %v", fw.fd, err)) - } - return err -} - -func fsGenName(fd FileDesc) string { - switch fd.Type { - case TypeManifest: - return fmt.Sprintf("MANIFEST-%06d", fd.Num) - case TypeJournal: - return fmt.Sprintf("%06d.log", fd.Num) - case TypeTable: - return fmt.Sprintf("%06d.ldb", fd.Num) - case TypeTemp: - return fmt.Sprintf("%06d.tmp", fd.Num) - default: - panic("invalid file type") - } -} - -func fsHasOldName(fd FileDesc) bool { - return fd.Type == TypeTable -} - -func fsGenOldName(fd FileDesc) string { - switch fd.Type { - case TypeTable: - return fmt.Sprintf("%06d.sst", fd.Num) - } - return fsGenName(fd) -} - -func fsParseName(name string) (fd FileDesc, ok bool) { - var tail string - _, err := fmt.Sscanf(name, "%d.%s", &fd.Num, &tail) - if err == nil { - switch tail { - case "log": - fd.Type = TypeJournal - case "ldb", "sst": - fd.Type = TypeTable - case "tmp": - fd.Type = TypeTemp - default: - return - } - return fd, true - } - n, _ := fmt.Sscanf(name, "MANIFEST-%d%s", &fd.Num, &tail) - if n == 1 { - fd.Type = TypeManifest - return fd, true - } - return -} - -func fsParseNamePtr(name string, fd *FileDesc) bool { - _fd, ok := fsParseName(name) - if fd != nil { - *fd = _fd - } - return ok -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_nacl.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_nacl.go deleted file mode 100644 index 5545aeef..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_nacl.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// +build nacl - -package storage - -import ( - "os" - "syscall" -) - -func newFileLock(path string, readOnly bool) (fl fileLock, err error) { - return nil, syscall.ENOTSUP -} - -func setFileLock(f *os.File, readOnly, lock bool) error { - return syscall.ENOTSUP -} - -func rename(oldpath, newpath string) error { - return syscall.ENOTSUP -} - -func isErrInvalid(err error) bool { - return false -} - -func syncDir(name string) error { - return syscall.ENOTSUP -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_plan9.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_plan9.go deleted file mode 100644 index b8297980..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_plan9.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package storage - -import ( - "os" -) - -type plan9FileLock struct { - f *os.File -} - -func (fl *plan9FileLock) release() error { - return fl.f.Close() -} - -func newFileLock(path string, readOnly bool) (fl fileLock, err error) { - var ( - flag int - perm os.FileMode - ) - if readOnly { - flag = os.O_RDONLY - } else { - flag = os.O_RDWR - perm = os.ModeExclusive - } - f, err := os.OpenFile(path, flag, perm) - if os.IsNotExist(err) { - f, err = os.OpenFile(path, flag|os.O_CREATE, perm|0644) - } - if err != nil { - return - } - fl = &plan9FileLock{f: f} - return -} - -func rename(oldpath, newpath string) error { - if _, err := os.Stat(newpath); err == nil { - if err := os.Remove(newpath); err != nil { - return err - } - } - - return os.Rename(oldpath, newpath) -} - -func syncDir(name string) error { - f, err := os.Open(name) - if err != nil { - return err - } - defer f.Close() - if err := f.Sync(); err != nil { - return err - } - return nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_solaris.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_solaris.go deleted file mode 100644 index 79901ee4..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_solaris.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// +build solaris - -package storage - -import ( - "os" - "syscall" -) - -type unixFileLock struct { - f *os.File -} - -func (fl *unixFileLock) release() error { - if err := setFileLock(fl.f, false, false); err != nil { - return err - } - return fl.f.Close() -} - -func newFileLock(path string, readOnly bool) (fl fileLock, err error) { - var flag int - if readOnly { - flag = os.O_RDONLY - } else { - flag = os.O_RDWR - } - f, err := os.OpenFile(path, flag, 0) - if os.IsNotExist(err) { - f, err = os.OpenFile(path, flag|os.O_CREATE, 0644) - } - if err != nil { - return - } - err = setFileLock(f, readOnly, true) - if err != nil { - f.Close() - return - } - fl = &unixFileLock{f: f} - return -} - -func setFileLock(f *os.File, readOnly, lock bool) error { - flock := syscall.Flock_t{ - Type: syscall.F_UNLCK, - Start: 0, - Len: 0, - Whence: 1, - } - if lock { - if readOnly { - flock.Type = syscall.F_RDLCK - } else { - flock.Type = syscall.F_WRLCK - } - } - return syscall.FcntlFlock(f.Fd(), syscall.F_SETLK, &flock) -} - -func rename(oldpath, newpath string) error { - return os.Rename(oldpath, newpath) -} - -func syncDir(name string) error { - f, err := os.Open(name) - if err != nil { - return err - } - defer f.Close() - if err := f.Sync(); err != nil { - return err - } - return nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_unix.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_unix.go deleted file mode 100644 index d75f66a9..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_unix.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// +build darwin dragonfly freebsd linux netbsd openbsd - -package storage - -import ( - "os" - "syscall" -) - -type unixFileLock struct { - f *os.File -} - -func (fl *unixFileLock) release() error { - if err := setFileLock(fl.f, false, false); err != nil { - return err - } - return fl.f.Close() -} - -func newFileLock(path string, readOnly bool) (fl fileLock, err error) { - var flag int - if readOnly { - flag = os.O_RDONLY - } else { - flag = os.O_RDWR - } - f, err := os.OpenFile(path, flag, 0) - if os.IsNotExist(err) { - f, err = os.OpenFile(path, flag|os.O_CREATE, 0644) - } - if err != nil { - return - } - err = setFileLock(f, readOnly, true) - if err != nil { - f.Close() - return - } - fl = &unixFileLock{f: f} - return -} - -func setFileLock(f *os.File, readOnly, lock bool) error { - how := syscall.LOCK_UN - if lock { - if readOnly { - how = syscall.LOCK_SH - } else { - how = syscall.LOCK_EX - } - } - return syscall.Flock(int(f.Fd()), how|syscall.LOCK_NB) -} - -func rename(oldpath, newpath string) error { - return os.Rename(oldpath, newpath) -} - -func isErrInvalid(err error) bool { - if err == os.ErrInvalid { - return true - } - // Go < 1.8 - if syserr, ok := err.(*os.SyscallError); ok && syserr.Err == syscall.EINVAL { - return true - } - // Go >= 1.8 returns *os.PathError instead - if patherr, ok := err.(*os.PathError); ok && patherr.Err == syscall.EINVAL { - return true - } - return false -} - -func syncDir(name string) error { - // As per fsync manpage, Linux seems to expect fsync on directory, however - // some system don't support this, so we will ignore syscall.EINVAL. - // - // From fsync(2): - // Calling fsync() does not necessarily ensure that the entry in the - // directory containing the file has also reached disk. For that an - // explicit fsync() on a file descriptor for the directory is also needed. - f, err := os.Open(name) - if err != nil { - return err - } - defer f.Close() - if err := f.Sync(); err != nil && !isErrInvalid(err) { - return err - } - return nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_windows.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_windows.go deleted file mode 100644 index 899335fd..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_windows.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) 2013, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package storage - -import ( - "syscall" - "unsafe" -) - -var ( - modkernel32 = syscall.NewLazyDLL("kernel32.dll") - - procMoveFileExW = modkernel32.NewProc("MoveFileExW") -) - -const ( - _MOVEFILE_REPLACE_EXISTING = 1 -) - -type windowsFileLock struct { - fd syscall.Handle -} - -func (fl *windowsFileLock) release() error { - return syscall.Close(fl.fd) -} - -func newFileLock(path string, readOnly bool) (fl fileLock, err error) { - pathp, err := syscall.UTF16PtrFromString(path) - if err != nil { - return - } - var access, shareMode uint32 - if readOnly { - access = syscall.GENERIC_READ - shareMode = syscall.FILE_SHARE_READ - } else { - access = syscall.GENERIC_READ | syscall.GENERIC_WRITE - } - fd, err := syscall.CreateFile(pathp, access, shareMode, nil, syscall.OPEN_EXISTING, syscall.FILE_ATTRIBUTE_NORMAL, 0) - if err == syscall.ERROR_FILE_NOT_FOUND { - fd, err = syscall.CreateFile(pathp, access, shareMode, nil, syscall.OPEN_ALWAYS, syscall.FILE_ATTRIBUTE_NORMAL, 0) - } - if err != nil { - return - } - fl = &windowsFileLock{fd: fd} - return -} - -func moveFileEx(from *uint16, to *uint16, flags uint32) error { - r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) - if r1 == 0 { - if e1 != 0 { - return error(e1) - } - return syscall.EINVAL - } - return nil -} - -func rename(oldpath, newpath string) error { - from, err := syscall.UTF16PtrFromString(oldpath) - if err != nil { - return err - } - to, err := syscall.UTF16PtrFromString(newpath) - if err != nil { - return err - } - return moveFileEx(from, to, _MOVEFILE_REPLACE_EXISTING) -} - -func syncDir(name string) error { return nil } diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/mem_storage.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/mem_storage.go deleted file mode 100644 index 838f1bee..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/mem_storage.go +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright (c) 2013, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package storage - -import ( - "bytes" - "os" - "sync" -) - -const typeShift = 4 - -// Verify at compile-time that typeShift is large enough to cover all FileType -// values by confirming that 0 == 0. -var _ [0]struct{} = [TypeAll >> typeShift]struct{}{} - -type memStorageLock struct { - ms *memStorage -} - -func (lock *memStorageLock) Unlock() { - ms := lock.ms - ms.mu.Lock() - defer ms.mu.Unlock() - if ms.slock == lock { - ms.slock = nil - } - return -} - -// memStorage is a memory-backed storage. -type memStorage struct { - mu sync.Mutex - slock *memStorageLock - files map[uint64]*memFile - meta FileDesc -} - -// NewMemStorage returns a new memory-backed storage implementation. -func NewMemStorage() Storage { - return &memStorage{ - files: make(map[uint64]*memFile), - } -} - -func (ms *memStorage) Lock() (Locker, error) { - ms.mu.Lock() - defer ms.mu.Unlock() - if ms.slock != nil { - return nil, ErrLocked - } - ms.slock = &memStorageLock{ms: ms} - return ms.slock, nil -} - -func (*memStorage) Log(str string) {} - -func (ms *memStorage) SetMeta(fd FileDesc) error { - if !FileDescOk(fd) { - return ErrInvalidFile - } - - ms.mu.Lock() - ms.meta = fd - ms.mu.Unlock() - return nil -} - -func (ms *memStorage) GetMeta() (FileDesc, error) { - ms.mu.Lock() - defer ms.mu.Unlock() - if ms.meta.Zero() { - return FileDesc{}, os.ErrNotExist - } - return ms.meta, nil -} - -func (ms *memStorage) List(ft FileType) ([]FileDesc, error) { - ms.mu.Lock() - var fds []FileDesc - for x := range ms.files { - fd := unpackFile(x) - if fd.Type&ft != 0 { - fds = append(fds, fd) - } - } - ms.mu.Unlock() - return fds, nil -} - -func (ms *memStorage) Open(fd FileDesc) (Reader, error) { - if !FileDescOk(fd) { - return nil, ErrInvalidFile - } - - ms.mu.Lock() - defer ms.mu.Unlock() - if m, exist := ms.files[packFile(fd)]; exist { - if m.open { - return nil, errFileOpen - } - m.open = true - return &memReader{Reader: bytes.NewReader(m.Bytes()), ms: ms, m: m}, nil - } - return nil, os.ErrNotExist -} - -func (ms *memStorage) Create(fd FileDesc) (Writer, error) { - if !FileDescOk(fd) { - return nil, ErrInvalidFile - } - - x := packFile(fd) - ms.mu.Lock() - defer ms.mu.Unlock() - m, exist := ms.files[x] - if exist { - if m.open { - return nil, errFileOpen - } - m.Reset() - } else { - m = &memFile{} - ms.files[x] = m - } - m.open = true - return &memWriter{memFile: m, ms: ms}, nil -} - -func (ms *memStorage) Remove(fd FileDesc) error { - if !FileDescOk(fd) { - return ErrInvalidFile - } - - x := packFile(fd) - ms.mu.Lock() - defer ms.mu.Unlock() - if _, exist := ms.files[x]; exist { - delete(ms.files, x) - return nil - } - return os.ErrNotExist -} - -func (ms *memStorage) Rename(oldfd, newfd FileDesc) error { - if !FileDescOk(oldfd) || !FileDescOk(newfd) { - return ErrInvalidFile - } - if oldfd == newfd { - return nil - } - - oldx := packFile(oldfd) - newx := packFile(newfd) - ms.mu.Lock() - defer ms.mu.Unlock() - oldm, exist := ms.files[oldx] - if !exist { - return os.ErrNotExist - } - newm, exist := ms.files[newx] - if (exist && newm.open) || oldm.open { - return errFileOpen - } - delete(ms.files, oldx) - ms.files[newx] = oldm - return nil -} - -func (*memStorage) Close() error { return nil } - -type memFile struct { - bytes.Buffer - open bool -} - -type memReader struct { - *bytes.Reader - ms *memStorage - m *memFile - closed bool -} - -func (mr *memReader) Close() error { - mr.ms.mu.Lock() - defer mr.ms.mu.Unlock() - if mr.closed { - return ErrClosed - } - mr.m.open = false - return nil -} - -type memWriter struct { - *memFile - ms *memStorage - closed bool -} - -func (*memWriter) Sync() error { return nil } - -func (mw *memWriter) Close() error { - mw.ms.mu.Lock() - defer mw.ms.mu.Unlock() - if mw.closed { - return ErrClosed - } - mw.memFile.open = false - return nil -} - -func packFile(fd FileDesc) uint64 { - return uint64(fd.Num)<> typeShift)} -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/storage.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/storage.go deleted file mode 100644 index 4e4a7242..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/storage.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package storage provides storage abstraction for LevelDB. -package storage - -import ( - "errors" - "fmt" - "io" -) - -// FileType represent a file type. -type FileType int - -// File types. -const ( - TypeManifest FileType = 1 << iota - TypeJournal - TypeTable - TypeTemp - - TypeAll = TypeManifest | TypeJournal | TypeTable | TypeTemp -) - -func (t FileType) String() string { - switch t { - case TypeManifest: - return "manifest" - case TypeJournal: - return "journal" - case TypeTable: - return "table" - case TypeTemp: - return "temp" - } - return fmt.Sprintf("", t) -} - -// Common error. -var ( - ErrInvalidFile = errors.New("leveldb/storage: invalid file for argument") - ErrLocked = errors.New("leveldb/storage: already locked") - ErrClosed = errors.New("leveldb/storage: closed") -) - -// ErrCorrupted is the type that wraps errors that indicate corruption of -// a file. Package storage has its own type instead of using -// errors.ErrCorrupted to prevent circular import. -type ErrCorrupted struct { - Fd FileDesc - Err error -} - -func isCorrupted(err error) bool { - switch err.(type) { - case *ErrCorrupted: - return true - } - return false -} - -func (e *ErrCorrupted) Error() string { - if !e.Fd.Zero() { - return fmt.Sprintf("%v [file=%v]", e.Err, e.Fd) - } - return e.Err.Error() -} - -// Syncer is the interface that wraps basic Sync method. -type Syncer interface { - // Sync commits the current contents of the file to stable storage. - Sync() error -} - -// Reader is the interface that groups the basic Read, Seek, ReadAt and Close -// methods. -type Reader interface { - io.ReadSeeker - io.ReaderAt - io.Closer -} - -// Writer is the interface that groups the basic Write, Sync and Close -// methods. -type Writer interface { - io.WriteCloser - Syncer -} - -// Locker is the interface that wraps Unlock method. -type Locker interface { - Unlock() -} - -// FileDesc is a 'file descriptor'. -type FileDesc struct { - Type FileType - Num int64 -} - -func (fd FileDesc) String() string { - switch fd.Type { - case TypeManifest: - return fmt.Sprintf("MANIFEST-%06d", fd.Num) - case TypeJournal: - return fmt.Sprintf("%06d.log", fd.Num) - case TypeTable: - return fmt.Sprintf("%06d.ldb", fd.Num) - case TypeTemp: - return fmt.Sprintf("%06d.tmp", fd.Num) - default: - return fmt.Sprintf("%#x-%d", fd.Type, fd.Num) - } -} - -// Zero returns true if fd == (FileDesc{}). -func (fd FileDesc) Zero() bool { - return fd == (FileDesc{}) -} - -// FileDescOk returns true if fd is a valid 'file descriptor'. -func FileDescOk(fd FileDesc) bool { - switch fd.Type { - case TypeManifest: - case TypeJournal: - case TypeTable: - case TypeTemp: - default: - return false - } - return fd.Num >= 0 -} - -// Storage is the storage. A storage instance must be safe for concurrent use. -type Storage interface { - // Lock locks the storage. Any subsequent attempt to call Lock will fail - // until the last lock released. - // Caller should call Unlock method after use. - Lock() (Locker, error) - - // Log logs a string. This is used for logging. - // An implementation may write to a file, stdout or simply do nothing. - Log(str string) - - // SetMeta store 'file descriptor' that can later be acquired using GetMeta - // method. The 'file descriptor' should point to a valid file. - // SetMeta should be implemented in such way that changes should happen - // atomically. - SetMeta(fd FileDesc) error - - // GetMeta returns 'file descriptor' stored in meta. The 'file descriptor' - // can be updated using SetMeta method. - // Returns os.ErrNotExist if meta doesn't store any 'file descriptor', or - // 'file descriptor' point to nonexistent file. - GetMeta() (FileDesc, error) - - // List returns file descriptors that match the given file types. - // The file types may be OR'ed together. - List(ft FileType) ([]FileDesc, error) - - // Open opens file with the given 'file descriptor' read-only. - // Returns os.ErrNotExist error if the file does not exist. - // Returns ErrClosed if the underlying storage is closed. - Open(fd FileDesc) (Reader, error) - - // Create creates file with the given 'file descriptor', truncate if already - // exist and opens write-only. - // Returns ErrClosed if the underlying storage is closed. - Create(fd FileDesc) (Writer, error) - - // Remove removes file with the given 'file descriptor'. - // Returns ErrClosed if the underlying storage is closed. - Remove(fd FileDesc) error - - // Rename renames file from oldfd to newfd. - // Returns ErrClosed if the underlying storage is closed. - Rename(oldfd, newfd FileDesc) error - - // Close closes the storage. - // It is valid to call Close multiple times. Other methods should not be - // called after the storage has been closed. - Close() error -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/table.go b/vendor/github.com/syndtr/goleveldb/leveldb/table.go deleted file mode 100644 index 1fac60d0..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/table.go +++ /dev/null @@ -1,531 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "fmt" - "sort" - "sync/atomic" - - "github.com/syndtr/goleveldb/leveldb/cache" - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/storage" - "github.com/syndtr/goleveldb/leveldb/table" - "github.com/syndtr/goleveldb/leveldb/util" -) - -// tFile holds basic information about a table. -type tFile struct { - fd storage.FileDesc - seekLeft int32 - size int64 - imin, imax internalKey -} - -// Returns true if given key is after largest key of this table. -func (t *tFile) after(icmp *iComparer, ukey []byte) bool { - return ukey != nil && icmp.uCompare(ukey, t.imax.ukey()) > 0 -} - -// Returns true if given key is before smallest key of this table. -func (t *tFile) before(icmp *iComparer, ukey []byte) bool { - return ukey != nil && icmp.uCompare(ukey, t.imin.ukey()) < 0 -} - -// Returns true if given key range overlaps with this table key range. -func (t *tFile) overlaps(icmp *iComparer, umin, umax []byte) bool { - return !t.after(icmp, umin) && !t.before(icmp, umax) -} - -// Cosumes one seek and return current seeks left. -func (t *tFile) consumeSeek() int32 { - return atomic.AddInt32(&t.seekLeft, -1) -} - -// Creates new tFile. -func newTableFile(fd storage.FileDesc, size int64, imin, imax internalKey) *tFile { - f := &tFile{ - fd: fd, - size: size, - imin: imin, - imax: imax, - } - - // We arrange to automatically compact this file after - // a certain number of seeks. Let's assume: - // (1) One seek costs 10ms - // (2) Writing or reading 1MB costs 10ms (100MB/s) - // (3) A compaction of 1MB does 25MB of IO: - // 1MB read from this level - // 10-12MB read from next level (boundaries may be misaligned) - // 10-12MB written to next level - // This implies that 25 seeks cost the same as the compaction - // of 1MB of data. I.e., one seek costs approximately the - // same as the compaction of 40KB of data. We are a little - // conservative and allow approximately one seek for every 16KB - // of data before triggering a compaction. - f.seekLeft = int32(size / 16384) - if f.seekLeft < 100 { - f.seekLeft = 100 - } - - return f -} - -func tableFileFromRecord(r atRecord) *tFile { - return newTableFile(storage.FileDesc{Type: storage.TypeTable, Num: r.num}, r.size, r.imin, r.imax) -} - -// tFiles hold multiple tFile. -type tFiles []*tFile - -func (tf tFiles) Len() int { return len(tf) } -func (tf tFiles) Swap(i, j int) { tf[i], tf[j] = tf[j], tf[i] } - -func (tf tFiles) nums() string { - x := "[ " - for i, f := range tf { - if i != 0 { - x += ", " - } - x += fmt.Sprint(f.fd.Num) - } - x += " ]" - return x -} - -// Returns true if i smallest key is less than j. -// This used for sort by key in ascending order. -func (tf tFiles) lessByKey(icmp *iComparer, i, j int) bool { - a, b := tf[i], tf[j] - n := icmp.Compare(a.imin, b.imin) - if n == 0 { - return a.fd.Num < b.fd.Num - } - return n < 0 -} - -// Returns true if i file number is greater than j. -// This used for sort by file number in descending order. -func (tf tFiles) lessByNum(i, j int) bool { - return tf[i].fd.Num > tf[j].fd.Num -} - -// Sorts tables by key in ascending order. -func (tf tFiles) sortByKey(icmp *iComparer) { - sort.Sort(&tFilesSortByKey{tFiles: tf, icmp: icmp}) -} - -// Sorts tables by file number in descending order. -func (tf tFiles) sortByNum() { - sort.Sort(&tFilesSortByNum{tFiles: tf}) -} - -// Returns sum of all tables size. -func (tf tFiles) size() (sum int64) { - for _, t := range tf { - sum += t.size - } - return sum -} - -// Searches smallest index of tables whose its smallest -// key is after or equal with given key. -func (tf tFiles) searchMin(icmp *iComparer, ikey internalKey) int { - return sort.Search(len(tf), func(i int) bool { - return icmp.Compare(tf[i].imin, ikey) >= 0 - }) -} - -// Searches smallest index of tables whose its largest -// key is after or equal with given key. -func (tf tFiles) searchMax(icmp *iComparer, ikey internalKey) int { - return sort.Search(len(tf), func(i int) bool { - return icmp.Compare(tf[i].imax, ikey) >= 0 - }) -} - -// Returns true if given key range overlaps with one or more -// tables key range. If unsorted is true then binary search will not be used. -func (tf tFiles) overlaps(icmp *iComparer, umin, umax []byte, unsorted bool) bool { - if unsorted { - // Check against all files. - for _, t := range tf { - if t.overlaps(icmp, umin, umax) { - return true - } - } - return false - } - - i := 0 - if len(umin) > 0 { - // Find the earliest possible internal key for min. - i = tf.searchMax(icmp, makeInternalKey(nil, umin, keyMaxSeq, keyTypeSeek)) - } - if i >= len(tf) { - // Beginning of range is after all files, so no overlap. - return false - } - return !tf[i].before(icmp, umax) -} - -// Returns tables whose its key range overlaps with given key range. -// Range will be expanded if ukey found hop across tables. -// If overlapped is true then the search will be restarted if umax -// expanded. -// The dst content will be overwritten. -func (tf tFiles) getOverlaps(dst tFiles, icmp *iComparer, umin, umax []byte, overlapped bool) tFiles { - dst = dst[:0] - for i := 0; i < len(tf); { - t := tf[i] - if t.overlaps(icmp, umin, umax) { - if umin != nil && icmp.uCompare(t.imin.ukey(), umin) < 0 { - umin = t.imin.ukey() - dst = dst[:0] - i = 0 - continue - } else if umax != nil && icmp.uCompare(t.imax.ukey(), umax) > 0 { - umax = t.imax.ukey() - // Restart search if it is overlapped. - if overlapped { - dst = dst[:0] - i = 0 - continue - } - } - - dst = append(dst, t) - } - i++ - } - - return dst -} - -// Returns tables key range. -func (tf tFiles) getRange(icmp *iComparer) (imin, imax internalKey) { - for i, t := range tf { - if i == 0 { - imin, imax = t.imin, t.imax - continue - } - if icmp.Compare(t.imin, imin) < 0 { - imin = t.imin - } - if icmp.Compare(t.imax, imax) > 0 { - imax = t.imax - } - } - - return -} - -// Creates iterator index from tables. -func (tf tFiles) newIndexIterator(tops *tOps, icmp *iComparer, slice *util.Range, ro *opt.ReadOptions) iterator.IteratorIndexer { - if slice != nil { - var start, limit int - if slice.Start != nil { - start = tf.searchMax(icmp, internalKey(slice.Start)) - } - if slice.Limit != nil { - limit = tf.searchMin(icmp, internalKey(slice.Limit)) - } else { - limit = tf.Len() - } - tf = tf[start:limit] - } - return iterator.NewArrayIndexer(&tFilesArrayIndexer{ - tFiles: tf, - tops: tops, - icmp: icmp, - slice: slice, - ro: ro, - }) -} - -// Tables iterator index. -type tFilesArrayIndexer struct { - tFiles - tops *tOps - icmp *iComparer - slice *util.Range - ro *opt.ReadOptions -} - -func (a *tFilesArrayIndexer) Search(key []byte) int { - return a.searchMax(a.icmp, internalKey(key)) -} - -func (a *tFilesArrayIndexer) Get(i int) iterator.Iterator { - if i == 0 || i == a.Len()-1 { - return a.tops.newIterator(a.tFiles[i], a.slice, a.ro) - } - return a.tops.newIterator(a.tFiles[i], nil, a.ro) -} - -// Helper type for sortByKey. -type tFilesSortByKey struct { - tFiles - icmp *iComparer -} - -func (x *tFilesSortByKey) Less(i, j int) bool { - return x.lessByKey(x.icmp, i, j) -} - -// Helper type for sortByNum. -type tFilesSortByNum struct { - tFiles -} - -func (x *tFilesSortByNum) Less(i, j int) bool { - return x.lessByNum(i, j) -} - -// Table operations. -type tOps struct { - s *session - noSync bool - evictRemoved bool - cache *cache.Cache - bcache *cache.Cache - bpool *util.BufferPool -} - -// Creates an empty table and returns table writer. -func (t *tOps) create() (*tWriter, error) { - fd := storage.FileDesc{Type: storage.TypeTable, Num: t.s.allocFileNum()} - fw, err := t.s.stor.Create(fd) - if err != nil { - return nil, err - } - return &tWriter{ - t: t, - fd: fd, - w: fw, - tw: table.NewWriter(fw, t.s.o.Options), - }, nil -} - -// Builds table from src iterator. -func (t *tOps) createFrom(src iterator.Iterator) (f *tFile, n int, err error) { - w, err := t.create() - if err != nil { - return - } - - defer func() { - if err != nil { - w.drop() - } - }() - - for src.Next() { - err = w.append(src.Key(), src.Value()) - if err != nil { - return - } - } - err = src.Error() - if err != nil { - return - } - - n = w.tw.EntriesLen() - f, err = w.finish() - return -} - -// Opens table. It returns a cache handle, which should -// be released after use. -func (t *tOps) open(f *tFile) (ch *cache.Handle, err error) { - ch = t.cache.Get(0, uint64(f.fd.Num), func() (size int, value cache.Value) { - var r storage.Reader - r, err = t.s.stor.Open(f.fd) - if err != nil { - return 0, nil - } - - var bcache *cache.NamespaceGetter - if t.bcache != nil { - bcache = &cache.NamespaceGetter{Cache: t.bcache, NS: uint64(f.fd.Num)} - } - - var tr *table.Reader - tr, err = table.NewReader(r, f.size, f.fd, bcache, t.bpool, t.s.o.Options) - if err != nil { - r.Close() - return 0, nil - } - return 1, tr - - }) - if ch == nil && err == nil { - err = ErrClosed - } - return -} - -// Finds key/value pair whose key is greater than or equal to the -// given key. -func (t *tOps) find(f *tFile, key []byte, ro *opt.ReadOptions) (rkey, rvalue []byte, err error) { - ch, err := t.open(f) - if err != nil { - return nil, nil, err - } - defer ch.Release() - return ch.Value().(*table.Reader).Find(key, true, ro) -} - -// Finds key that is greater than or equal to the given key. -func (t *tOps) findKey(f *tFile, key []byte, ro *opt.ReadOptions) (rkey []byte, err error) { - ch, err := t.open(f) - if err != nil { - return nil, err - } - defer ch.Release() - return ch.Value().(*table.Reader).FindKey(key, true, ro) -} - -// Returns approximate offset of the given key. -func (t *tOps) offsetOf(f *tFile, key []byte) (offset int64, err error) { - ch, err := t.open(f) - if err != nil { - return - } - defer ch.Release() - return ch.Value().(*table.Reader).OffsetOf(key) -} - -// Creates an iterator from the given table. -func (t *tOps) newIterator(f *tFile, slice *util.Range, ro *opt.ReadOptions) iterator.Iterator { - ch, err := t.open(f) - if err != nil { - return iterator.NewEmptyIterator(err) - } - iter := ch.Value().(*table.Reader).NewIterator(slice, ro) - iter.SetReleaser(ch) - return iter -} - -// Removes table from persistent storage. It waits until -// no one use the the table. -func (t *tOps) remove(f *tFile) { - t.cache.Delete(0, uint64(f.fd.Num), func() { - if err := t.s.stor.Remove(f.fd); err != nil { - t.s.logf("table@remove removing @%d %q", f.fd.Num, err) - } else { - t.s.logf("table@remove removed @%d", f.fd.Num) - } - if t.evictRemoved && t.bcache != nil { - t.bcache.EvictNS(uint64(f.fd.Num)) - } - }) -} - -// Closes the table ops instance. It will close all tables, -// regadless still used or not. -func (t *tOps) close() { - t.bpool.Close() - t.cache.Close() - if t.bcache != nil { - t.bcache.CloseWeak() - } -} - -// Creates new initialized table ops instance. -func newTableOps(s *session) *tOps { - var ( - cacher cache.Cacher - bcache *cache.Cache - bpool *util.BufferPool - ) - if s.o.GetOpenFilesCacheCapacity() > 0 { - cacher = cache.NewLRU(s.o.GetOpenFilesCacheCapacity()) - } - if !s.o.GetDisableBlockCache() { - var bcacher cache.Cacher - if s.o.GetBlockCacheCapacity() > 0 { - bcacher = s.o.GetBlockCacher().New(s.o.GetBlockCacheCapacity()) - } - bcache = cache.NewCache(bcacher) - } - if !s.o.GetDisableBufferPool() { - bpool = util.NewBufferPool(s.o.GetBlockSize() + 5) - } - return &tOps{ - s: s, - noSync: s.o.GetNoSync(), - evictRemoved: s.o.GetBlockCacheEvictRemoved(), - cache: cache.NewCache(cacher), - bcache: bcache, - bpool: bpool, - } -} - -// tWriter wraps the table writer. It keep track of file descriptor -// and added key range. -type tWriter struct { - t *tOps - - fd storage.FileDesc - w storage.Writer - tw *table.Writer - - first, last []byte -} - -// Append key/value pair to the table. -func (w *tWriter) append(key, value []byte) error { - if w.first == nil { - w.first = append([]byte{}, key...) - } - w.last = append(w.last[:0], key...) - return w.tw.Append(key, value) -} - -// Returns true if the table is empty. -func (w *tWriter) empty() bool { - return w.first == nil -} - -// Closes the storage.Writer. -func (w *tWriter) close() { - if w.w != nil { - w.w.Close() - w.w = nil - } -} - -// Finalizes the table and returns table file. -func (w *tWriter) finish() (f *tFile, err error) { - defer w.close() - err = w.tw.Close() - if err != nil { - return - } - if !w.t.noSync { - err = w.w.Sync() - if err != nil { - return - } - } - f = newTableFile(w.fd, int64(w.tw.BytesLen()), internalKey(w.first), internalKey(w.last)) - return -} - -// Drops the table. -func (w *tWriter) drop() { - w.close() - w.t.s.stor.Remove(w.fd) - w.t.s.reuseFileNum(w.fd.Num) - w.tw = nil - w.first = nil - w.last = nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/table/reader.go b/vendor/github.com/syndtr/goleveldb/leveldb/table/reader.go deleted file mode 100644 index 496feb6f..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/table/reader.go +++ /dev/null @@ -1,1139 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package table - -import ( - "encoding/binary" - "fmt" - "io" - "sort" - "strings" - "sync" - - "github.com/golang/snappy" - - "github.com/syndtr/goleveldb/leveldb/cache" - "github.com/syndtr/goleveldb/leveldb/comparer" - "github.com/syndtr/goleveldb/leveldb/errors" - "github.com/syndtr/goleveldb/leveldb/filter" - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/storage" - "github.com/syndtr/goleveldb/leveldb/util" -) - -// Reader errors. -var ( - ErrNotFound = errors.ErrNotFound - ErrReaderReleased = errors.New("leveldb/table: reader released") - ErrIterReleased = errors.New("leveldb/table: iterator released") -) - -// ErrCorrupted describes error due to corruption. This error will be wrapped -// with errors.ErrCorrupted. -type ErrCorrupted struct { - Pos int64 - Size int64 - Kind string - Reason string -} - -func (e *ErrCorrupted) Error() string { - return fmt.Sprintf("leveldb/table: corruption on %s (pos=%d): %s", e.Kind, e.Pos, e.Reason) -} - -func max(x, y int) int { - if x > y { - return x - } - return y -} - -type block struct { - bpool *util.BufferPool - bh blockHandle - data []byte - restartsLen int - restartsOffset int -} - -func (b *block) seek(cmp comparer.Comparer, rstart, rlimit int, key []byte) (index, offset int, err error) { - index = sort.Search(b.restartsLen-rstart-(b.restartsLen-rlimit), func(i int) bool { - offset := int(binary.LittleEndian.Uint32(b.data[b.restartsOffset+4*(rstart+i):])) - offset++ // shared always zero, since this is a restart point - v1, n1 := binary.Uvarint(b.data[offset:]) // key length - _, n2 := binary.Uvarint(b.data[offset+n1:]) // value length - m := offset + n1 + n2 - return cmp.Compare(b.data[m:m+int(v1)], key) > 0 - }) + rstart - 1 - if index < rstart { - // The smallest key is greater-than key sought. - index = rstart - } - offset = int(binary.LittleEndian.Uint32(b.data[b.restartsOffset+4*index:])) - return -} - -func (b *block) restartIndex(rstart, rlimit, offset int) int { - return sort.Search(b.restartsLen-rstart-(b.restartsLen-rlimit), func(i int) bool { - return int(binary.LittleEndian.Uint32(b.data[b.restartsOffset+4*(rstart+i):])) > offset - }) + rstart - 1 -} - -func (b *block) restartOffset(index int) int { - return int(binary.LittleEndian.Uint32(b.data[b.restartsOffset+4*index:])) -} - -func (b *block) entry(offset int) (key, value []byte, nShared, n int, err error) { - if offset >= b.restartsOffset { - if offset != b.restartsOffset { - err = &ErrCorrupted{Reason: "entries offset not aligned"} - } - return - } - v0, n0 := binary.Uvarint(b.data[offset:]) // Shared prefix length - v1, n1 := binary.Uvarint(b.data[offset+n0:]) // Key length - v2, n2 := binary.Uvarint(b.data[offset+n0+n1:]) // Value length - m := n0 + n1 + n2 - n = m + int(v1) + int(v2) - if n0 <= 0 || n1 <= 0 || n2 <= 0 || offset+n > b.restartsOffset { - err = &ErrCorrupted{Reason: "entries corrupted"} - return - } - key = b.data[offset+m : offset+m+int(v1)] - value = b.data[offset+m+int(v1) : offset+n] - nShared = int(v0) - return -} - -func (b *block) Release() { - b.bpool.Put(b.data) - b.bpool = nil - b.data = nil -} - -type dir int - -const ( - dirReleased dir = iota - 1 - dirSOI - dirEOI - dirBackward - dirForward -) - -type blockIter struct { - tr *Reader - block *block - blockReleaser util.Releaser - releaser util.Releaser - key, value []byte - offset int - // Previous offset, only filled by Next. - prevOffset int - prevNode []int - prevKeys []byte - restartIndex int - // Iterator direction. - dir dir - // Restart index slice range. - riStart int - riLimit int - // Offset slice range. - offsetStart int - offsetRealStart int - offsetLimit int - // Error. - err error -} - -func (i *blockIter) sErr(err error) { - i.err = err - i.key = nil - i.value = nil - i.prevNode = nil - i.prevKeys = nil -} - -func (i *blockIter) reset() { - if i.dir == dirBackward { - i.prevNode = i.prevNode[:0] - i.prevKeys = i.prevKeys[:0] - } - i.restartIndex = i.riStart - i.offset = i.offsetStart - i.dir = dirSOI - i.key = i.key[:0] - i.value = nil -} - -func (i *blockIter) isFirst() bool { - switch i.dir { - case dirForward: - return i.prevOffset == i.offsetRealStart - case dirBackward: - return len(i.prevNode) == 1 && i.restartIndex == i.riStart - } - return false -} - -func (i *blockIter) isLast() bool { - switch i.dir { - case dirForward, dirBackward: - return i.offset == i.offsetLimit - } - return false -} - -func (i *blockIter) First() bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - if i.dir == dirBackward { - i.prevNode = i.prevNode[:0] - i.prevKeys = i.prevKeys[:0] - } - i.dir = dirSOI - return i.Next() -} - -func (i *blockIter) Last() bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - if i.dir == dirBackward { - i.prevNode = i.prevNode[:0] - i.prevKeys = i.prevKeys[:0] - } - i.dir = dirEOI - return i.Prev() -} - -func (i *blockIter) Seek(key []byte) bool { - if i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - ri, offset, err := i.block.seek(i.tr.cmp, i.riStart, i.riLimit, key) - if err != nil { - i.sErr(err) - return false - } - i.restartIndex = ri - i.offset = max(i.offsetStart, offset) - if i.dir == dirSOI || i.dir == dirEOI { - i.dir = dirForward - } - for i.Next() { - if i.tr.cmp.Compare(i.key, key) >= 0 { - return true - } - } - return false -} - -func (i *blockIter) Next() bool { - if i.dir == dirEOI || i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - if i.dir == dirSOI { - i.restartIndex = i.riStart - i.offset = i.offsetStart - } else if i.dir == dirBackward { - i.prevNode = i.prevNode[:0] - i.prevKeys = i.prevKeys[:0] - } - for i.offset < i.offsetRealStart { - key, value, nShared, n, err := i.block.entry(i.offset) - if err != nil { - i.sErr(i.tr.fixErrCorruptedBH(i.block.bh, err)) - return false - } - if n == 0 { - i.dir = dirEOI - return false - } - i.key = append(i.key[:nShared], key...) - i.value = value - i.offset += n - } - if i.offset >= i.offsetLimit { - i.dir = dirEOI - if i.offset != i.offsetLimit { - i.sErr(i.tr.newErrCorruptedBH(i.block.bh, "entries offset not aligned")) - } - return false - } - key, value, nShared, n, err := i.block.entry(i.offset) - if err != nil { - i.sErr(i.tr.fixErrCorruptedBH(i.block.bh, err)) - return false - } - if n == 0 { - i.dir = dirEOI - return false - } - i.key = append(i.key[:nShared], key...) - i.value = value - i.prevOffset = i.offset - i.offset += n - i.dir = dirForward - return true -} - -func (i *blockIter) Prev() bool { - if i.dir == dirSOI || i.err != nil { - return false - } else if i.dir == dirReleased { - i.err = ErrIterReleased - return false - } - - var ri int - if i.dir == dirForward { - // Change direction. - i.offset = i.prevOffset - if i.offset == i.offsetRealStart { - i.dir = dirSOI - return false - } - ri = i.block.restartIndex(i.restartIndex, i.riLimit, i.offset) - i.dir = dirBackward - } else if i.dir == dirEOI { - // At the end of iterator. - i.restartIndex = i.riLimit - i.offset = i.offsetLimit - if i.offset == i.offsetRealStart { - i.dir = dirSOI - return false - } - ri = i.riLimit - 1 - i.dir = dirBackward - } else if len(i.prevNode) == 1 { - // This is the end of a restart range. - i.offset = i.prevNode[0] - i.prevNode = i.prevNode[:0] - if i.restartIndex == i.riStart { - i.dir = dirSOI - return false - } - i.restartIndex-- - ri = i.restartIndex - } else { - // In the middle of restart range, get from cache. - n := len(i.prevNode) - 3 - node := i.prevNode[n:] - i.prevNode = i.prevNode[:n] - // Get the key. - ko := node[0] - i.key = append(i.key[:0], i.prevKeys[ko:]...) - i.prevKeys = i.prevKeys[:ko] - // Get the value. - vo := node[1] - vl := vo + node[2] - i.value = i.block.data[vo:vl] - i.offset = vl - return true - } - // Build entries cache. - i.key = i.key[:0] - i.value = nil - offset := i.block.restartOffset(ri) - if offset == i.offset { - ri-- - if ri < 0 { - i.dir = dirSOI - return false - } - offset = i.block.restartOffset(ri) - } - i.prevNode = append(i.prevNode, offset) - for { - key, value, nShared, n, err := i.block.entry(offset) - if err != nil { - i.sErr(i.tr.fixErrCorruptedBH(i.block.bh, err)) - return false - } - if offset >= i.offsetRealStart { - if i.value != nil { - // Appends 3 variables: - // 1. Previous keys offset - // 2. Value offset in the data block - // 3. Value length - i.prevNode = append(i.prevNode, len(i.prevKeys), offset-len(i.value), len(i.value)) - i.prevKeys = append(i.prevKeys, i.key...) - } - i.value = value - } - i.key = append(i.key[:nShared], key...) - offset += n - // Stop if target offset reached. - if offset >= i.offset { - if offset != i.offset { - i.sErr(i.tr.newErrCorruptedBH(i.block.bh, "entries offset not aligned")) - return false - } - - break - } - } - i.restartIndex = ri - i.offset = offset - return true -} - -func (i *blockIter) Key() []byte { - if i.err != nil || i.dir <= dirEOI { - return nil - } - return i.key -} - -func (i *blockIter) Value() []byte { - if i.err != nil || i.dir <= dirEOI { - return nil - } - return i.value -} - -func (i *blockIter) Release() { - if i.dir != dirReleased { - i.tr = nil - i.block = nil - i.prevNode = nil - i.prevKeys = nil - i.key = nil - i.value = nil - i.dir = dirReleased - if i.blockReleaser != nil { - i.blockReleaser.Release() - i.blockReleaser = nil - } - if i.releaser != nil { - i.releaser.Release() - i.releaser = nil - } - } -} - -func (i *blockIter) SetReleaser(releaser util.Releaser) { - if i.dir == dirReleased { - panic(util.ErrReleased) - } - if i.releaser != nil && releaser != nil { - panic(util.ErrHasReleaser) - } - i.releaser = releaser -} - -func (i *blockIter) Valid() bool { - return i.err == nil && (i.dir == dirBackward || i.dir == dirForward) -} - -func (i *blockIter) Error() error { - return i.err -} - -type filterBlock struct { - bpool *util.BufferPool - data []byte - oOffset int - baseLg uint - filtersNum int -} - -func (b *filterBlock) contains(filter filter.Filter, offset uint64, key []byte) bool { - i := int(offset >> b.baseLg) - if i < b.filtersNum { - o := b.data[b.oOffset+i*4:] - n := int(binary.LittleEndian.Uint32(o)) - m := int(binary.LittleEndian.Uint32(o[4:])) - if n < m && m <= b.oOffset { - return filter.Contains(b.data[n:m], key) - } else if n == m { - return false - } - } - return true -} - -func (b *filterBlock) Release() { - b.bpool.Put(b.data) - b.bpool = nil - b.data = nil -} - -type indexIter struct { - *blockIter - tr *Reader - slice *util.Range - // Options - fillCache bool -} - -func (i *indexIter) Get() iterator.Iterator { - value := i.Value() - if value == nil { - return nil - } - dataBH, n := decodeBlockHandle(value) - if n == 0 { - return iterator.NewEmptyIterator(i.tr.newErrCorruptedBH(i.tr.indexBH, "bad data block handle")) - } - - var slice *util.Range - if i.slice != nil && (i.blockIter.isFirst() || i.blockIter.isLast()) { - slice = i.slice - } - return i.tr.getDataIterErr(dataBH, slice, i.tr.verifyChecksum, i.fillCache) -} - -// Reader is a table reader. -type Reader struct { - mu sync.RWMutex - fd storage.FileDesc - reader io.ReaderAt - cache *cache.NamespaceGetter - err error - bpool *util.BufferPool - // Options - o *opt.Options - cmp comparer.Comparer - filter filter.Filter - verifyChecksum bool - - dataEnd int64 - metaBH, indexBH, filterBH blockHandle - indexBlock *block - filterBlock *filterBlock -} - -func (r *Reader) blockKind(bh blockHandle) string { - switch bh.offset { - case r.metaBH.offset: - return "meta-block" - case r.indexBH.offset: - return "index-block" - case r.filterBH.offset: - if r.filterBH.length > 0 { - return "filter-block" - } - } - return "data-block" -} - -func (r *Reader) newErrCorrupted(pos, size int64, kind, reason string) error { - return &errors.ErrCorrupted{Fd: r.fd, Err: &ErrCorrupted{Pos: pos, Size: size, Kind: kind, Reason: reason}} -} - -func (r *Reader) newErrCorruptedBH(bh blockHandle, reason string) error { - return r.newErrCorrupted(int64(bh.offset), int64(bh.length), r.blockKind(bh), reason) -} - -func (r *Reader) fixErrCorruptedBH(bh blockHandle, err error) error { - if cerr, ok := err.(*ErrCorrupted); ok { - cerr.Pos = int64(bh.offset) - cerr.Size = int64(bh.length) - cerr.Kind = r.blockKind(bh) - return &errors.ErrCorrupted{Fd: r.fd, Err: cerr} - } - return err -} - -func (r *Reader) readRawBlock(bh blockHandle, verifyChecksum bool) ([]byte, error) { - data := r.bpool.Get(int(bh.length + blockTrailerLen)) - if _, err := r.reader.ReadAt(data, int64(bh.offset)); err != nil && err != io.EOF { - return nil, err - } - - if verifyChecksum { - n := bh.length + 1 - checksum0 := binary.LittleEndian.Uint32(data[n:]) - checksum1 := util.NewCRC(data[:n]).Value() - if checksum0 != checksum1 { - r.bpool.Put(data) - return nil, r.newErrCorruptedBH(bh, fmt.Sprintf("checksum mismatch, want=%#x got=%#x", checksum0, checksum1)) - } - } - - switch data[bh.length] { - case blockTypeNoCompression: - data = data[:bh.length] - case blockTypeSnappyCompression: - decLen, err := snappy.DecodedLen(data[:bh.length]) - if err != nil { - r.bpool.Put(data) - return nil, r.newErrCorruptedBH(bh, err.Error()) - } - decData := r.bpool.Get(decLen) - decData, err = snappy.Decode(decData, data[:bh.length]) - r.bpool.Put(data) - if err != nil { - r.bpool.Put(decData) - return nil, r.newErrCorruptedBH(bh, err.Error()) - } - data = decData - default: - r.bpool.Put(data) - return nil, r.newErrCorruptedBH(bh, fmt.Sprintf("unknown compression type %#x", data[bh.length])) - } - return data, nil -} - -func (r *Reader) readBlock(bh blockHandle, verifyChecksum bool) (*block, error) { - data, err := r.readRawBlock(bh, verifyChecksum) - if err != nil { - return nil, err - } - restartsLen := int(binary.LittleEndian.Uint32(data[len(data)-4:])) - b := &block{ - bpool: r.bpool, - bh: bh, - data: data, - restartsLen: restartsLen, - restartsOffset: len(data) - (restartsLen+1)*4, - } - return b, nil -} - -func (r *Reader) readBlockCached(bh blockHandle, verifyChecksum, fillCache bool) (*block, util.Releaser, error) { - if r.cache != nil { - var ( - err error - ch *cache.Handle - ) - if fillCache { - ch = r.cache.Get(bh.offset, func() (size int, value cache.Value) { - var b *block - b, err = r.readBlock(bh, verifyChecksum) - if err != nil { - return 0, nil - } - return cap(b.data), b - }) - } else { - ch = r.cache.Get(bh.offset, nil) - } - if ch != nil { - b, ok := ch.Value().(*block) - if !ok { - ch.Release() - return nil, nil, errors.New("leveldb/table: inconsistent block type") - } - return b, ch, err - } else if err != nil { - return nil, nil, err - } - } - - b, err := r.readBlock(bh, verifyChecksum) - return b, b, err -} - -func (r *Reader) readFilterBlock(bh blockHandle) (*filterBlock, error) { - data, err := r.readRawBlock(bh, true) - if err != nil { - return nil, err - } - n := len(data) - if n < 5 { - return nil, r.newErrCorruptedBH(bh, "too short") - } - m := n - 5 - oOffset := int(binary.LittleEndian.Uint32(data[m:])) - if oOffset > m { - return nil, r.newErrCorruptedBH(bh, "invalid data-offsets offset") - } - b := &filterBlock{ - bpool: r.bpool, - data: data, - oOffset: oOffset, - baseLg: uint(data[n-1]), - filtersNum: (m - oOffset) / 4, - } - return b, nil -} - -func (r *Reader) readFilterBlockCached(bh blockHandle, fillCache bool) (*filterBlock, util.Releaser, error) { - if r.cache != nil { - var ( - err error - ch *cache.Handle - ) - if fillCache { - ch = r.cache.Get(bh.offset, func() (size int, value cache.Value) { - var b *filterBlock - b, err = r.readFilterBlock(bh) - if err != nil { - return 0, nil - } - return cap(b.data), b - }) - } else { - ch = r.cache.Get(bh.offset, nil) - } - if ch != nil { - b, ok := ch.Value().(*filterBlock) - if !ok { - ch.Release() - return nil, nil, errors.New("leveldb/table: inconsistent block type") - } - return b, ch, err - } else if err != nil { - return nil, nil, err - } - } - - b, err := r.readFilterBlock(bh) - return b, b, err -} - -func (r *Reader) getIndexBlock(fillCache bool) (b *block, rel util.Releaser, err error) { - if r.indexBlock == nil { - return r.readBlockCached(r.indexBH, true, fillCache) - } - return r.indexBlock, util.NoopReleaser{}, nil -} - -func (r *Reader) getFilterBlock(fillCache bool) (*filterBlock, util.Releaser, error) { - if r.filterBlock == nil { - return r.readFilterBlockCached(r.filterBH, fillCache) - } - return r.filterBlock, util.NoopReleaser{}, nil -} - -func (r *Reader) newBlockIter(b *block, bReleaser util.Releaser, slice *util.Range, inclLimit bool) *blockIter { - bi := &blockIter{ - tr: r, - block: b, - blockReleaser: bReleaser, - // Valid key should never be nil. - key: make([]byte, 0), - dir: dirSOI, - riStart: 0, - riLimit: b.restartsLen, - offsetStart: 0, - offsetRealStart: 0, - offsetLimit: b.restartsOffset, - } - if slice != nil { - if slice.Start != nil { - if bi.Seek(slice.Start) { - bi.riStart = b.restartIndex(bi.restartIndex, b.restartsLen, bi.prevOffset) - bi.offsetStart = b.restartOffset(bi.riStart) - bi.offsetRealStart = bi.prevOffset - } else { - bi.riStart = b.restartsLen - bi.offsetStart = b.restartsOffset - bi.offsetRealStart = b.restartsOffset - } - } - if slice.Limit != nil { - if bi.Seek(slice.Limit) && (!inclLimit || bi.Next()) { - bi.offsetLimit = bi.prevOffset - bi.riLimit = bi.restartIndex + 1 - } - } - bi.reset() - if bi.offsetStart > bi.offsetLimit { - bi.sErr(errors.New("leveldb/table: invalid slice range")) - } - } - return bi -} - -func (r *Reader) getDataIter(dataBH blockHandle, slice *util.Range, verifyChecksum, fillCache bool) iterator.Iterator { - b, rel, err := r.readBlockCached(dataBH, verifyChecksum, fillCache) - if err != nil { - return iterator.NewEmptyIterator(err) - } - return r.newBlockIter(b, rel, slice, false) -} - -func (r *Reader) getDataIterErr(dataBH blockHandle, slice *util.Range, verifyChecksum, fillCache bool) iterator.Iterator { - r.mu.RLock() - defer r.mu.RUnlock() - - if r.err != nil { - return iterator.NewEmptyIterator(r.err) - } - - return r.getDataIter(dataBH, slice, verifyChecksum, fillCache) -} - -// NewIterator creates an iterator from the table. -// -// Slice allows slicing the iterator to only contains keys in the given -// range. A nil Range.Start is treated as a key before all keys in the -// table. And a nil Range.Limit is treated as a key after all keys in -// the table. -// -// WARNING: Any slice returned by interator (e.g. slice returned by calling -// Iterator.Key() or Iterator.Key() methods), its content should not be modified -// unless noted otherwise. -// -// The returned iterator is not safe for concurrent use and should be released -// after use. -// -// Also read Iterator documentation of the leveldb/iterator package. -func (r *Reader) NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator { - r.mu.RLock() - defer r.mu.RUnlock() - - if r.err != nil { - return iterator.NewEmptyIterator(r.err) - } - - fillCache := !ro.GetDontFillCache() - indexBlock, rel, err := r.getIndexBlock(fillCache) - if err != nil { - return iterator.NewEmptyIterator(err) - } - index := &indexIter{ - blockIter: r.newBlockIter(indexBlock, rel, slice, true), - tr: r, - slice: slice, - fillCache: !ro.GetDontFillCache(), - } - return iterator.NewIndexedIterator(index, opt.GetStrict(r.o, ro, opt.StrictReader)) -} - -func (r *Reader) find(key []byte, filtered bool, ro *opt.ReadOptions, noValue bool) (rkey, value []byte, err error) { - r.mu.RLock() - defer r.mu.RUnlock() - - if r.err != nil { - err = r.err - return - } - - indexBlock, rel, err := r.getIndexBlock(true) - if err != nil { - return - } - defer rel.Release() - - index := r.newBlockIter(indexBlock, nil, nil, true) - defer index.Release() - - if !index.Seek(key) { - if err = index.Error(); err == nil { - err = ErrNotFound - } - return - } - - dataBH, n := decodeBlockHandle(index.Value()) - if n == 0 { - r.err = r.newErrCorruptedBH(r.indexBH, "bad data block handle") - return nil, nil, r.err - } - - // The filter should only used for exact match. - if filtered && r.filter != nil { - filterBlock, frel, ferr := r.getFilterBlock(true) - if ferr == nil { - if !filterBlock.contains(r.filter, dataBH.offset, key) { - frel.Release() - return nil, nil, ErrNotFound - } - frel.Release() - } else if !errors.IsCorrupted(ferr) { - return nil, nil, ferr - } - } - - data := r.getDataIter(dataBH, nil, r.verifyChecksum, !ro.GetDontFillCache()) - if !data.Seek(key) { - data.Release() - if err = data.Error(); err != nil { - return - } - - // The nearest greater-than key is the first key of the next block. - if !index.Next() { - if err = index.Error(); err == nil { - err = ErrNotFound - } - return - } - - dataBH, n = decodeBlockHandle(index.Value()) - if n == 0 { - r.err = r.newErrCorruptedBH(r.indexBH, "bad data block handle") - return nil, nil, r.err - } - - data = r.getDataIter(dataBH, nil, r.verifyChecksum, !ro.GetDontFillCache()) - if !data.Next() { - data.Release() - if err = data.Error(); err == nil { - err = ErrNotFound - } - return - } - } - - // Key doesn't use block buffer, no need to copy the buffer. - rkey = data.Key() - if !noValue { - if r.bpool == nil { - value = data.Value() - } else { - // Value does use block buffer, and since the buffer will be - // recycled, it need to be copied. - value = append([]byte{}, data.Value()...) - } - } - data.Release() - return -} - -// Find finds key/value pair whose key is greater than or equal to the -// given key. It returns ErrNotFound if the table doesn't contain -// such pair. -// If filtered is true then the nearest 'block' will be checked against -// 'filter data' (if present) and will immediately return ErrNotFound if -// 'filter data' indicates that such pair doesn't exist. -// -// The caller may modify the contents of the returned slice as it is its -// own copy. -// It is safe to modify the contents of the argument after Find returns. -func (r *Reader) Find(key []byte, filtered bool, ro *opt.ReadOptions) (rkey, value []byte, err error) { - return r.find(key, filtered, ro, false) -} - -// FindKey finds key that is greater than or equal to the given key. -// It returns ErrNotFound if the table doesn't contain such key. -// If filtered is true then the nearest 'block' will be checked against -// 'filter data' (if present) and will immediately return ErrNotFound if -// 'filter data' indicates that such key doesn't exist. -// -// The caller may modify the contents of the returned slice as it is its -// own copy. -// It is safe to modify the contents of the argument after Find returns. -func (r *Reader) FindKey(key []byte, filtered bool, ro *opt.ReadOptions) (rkey []byte, err error) { - rkey, _, err = r.find(key, filtered, ro, true) - return -} - -// Get gets the value for the given key. It returns errors.ErrNotFound -// if the table does not contain the key. -// -// The caller may modify the contents of the returned slice as it is its -// own copy. -// It is safe to modify the contents of the argument after Find returns. -func (r *Reader) Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) { - r.mu.RLock() - defer r.mu.RUnlock() - - if r.err != nil { - err = r.err - return - } - - rkey, value, err := r.find(key, false, ro, false) - if err == nil && r.cmp.Compare(rkey, key) != 0 { - value = nil - err = ErrNotFound - } - return -} - -// OffsetOf returns approximate offset for the given key. -// -// It is safe to modify the contents of the argument after Get returns. -func (r *Reader) OffsetOf(key []byte) (offset int64, err error) { - r.mu.RLock() - defer r.mu.RUnlock() - - if r.err != nil { - err = r.err - return - } - - indexBlock, rel, err := r.readBlockCached(r.indexBH, true, true) - if err != nil { - return - } - defer rel.Release() - - index := r.newBlockIter(indexBlock, nil, nil, true) - defer index.Release() - if index.Seek(key) { - dataBH, n := decodeBlockHandle(index.Value()) - if n == 0 { - r.err = r.newErrCorruptedBH(r.indexBH, "bad data block handle") - return - } - offset = int64(dataBH.offset) - return - } - err = index.Error() - if err == nil { - offset = r.dataEnd - } - return -} - -// Release implements util.Releaser. -// It also close the file if it is an io.Closer. -func (r *Reader) Release() { - r.mu.Lock() - defer r.mu.Unlock() - - if closer, ok := r.reader.(io.Closer); ok { - closer.Close() - } - if r.indexBlock != nil { - r.indexBlock.Release() - r.indexBlock = nil - } - if r.filterBlock != nil { - r.filterBlock.Release() - r.filterBlock = nil - } - r.reader = nil - r.cache = nil - r.bpool = nil - r.err = ErrReaderReleased -} - -// NewReader creates a new initialized table reader for the file. -// The fi, cache and bpool is optional and can be nil. -// -// The returned table reader instance is safe for concurrent use. -func NewReader(f io.ReaderAt, size int64, fd storage.FileDesc, cache *cache.NamespaceGetter, bpool *util.BufferPool, o *opt.Options) (*Reader, error) { - if f == nil { - return nil, errors.New("leveldb/table: nil file") - } - - r := &Reader{ - fd: fd, - reader: f, - cache: cache, - bpool: bpool, - o: o, - cmp: o.GetComparer(), - verifyChecksum: o.GetStrict(opt.StrictBlockChecksum), - } - - if size < footerLen { - r.err = r.newErrCorrupted(0, size, "table", "too small") - return r, nil - } - - footerPos := size - footerLen - var footer [footerLen]byte - if _, err := r.reader.ReadAt(footer[:], footerPos); err != nil && err != io.EOF { - return nil, err - } - if string(footer[footerLen-len(magic):footerLen]) != magic { - r.err = r.newErrCorrupted(footerPos, footerLen, "table-footer", "bad magic number") - return r, nil - } - - var n int - // Decode the metaindex block handle. - r.metaBH, n = decodeBlockHandle(footer[:]) - if n == 0 { - r.err = r.newErrCorrupted(footerPos, footerLen, "table-footer", "bad metaindex block handle") - return r, nil - } - - // Decode the index block handle. - r.indexBH, n = decodeBlockHandle(footer[n:]) - if n == 0 { - r.err = r.newErrCorrupted(footerPos, footerLen, "table-footer", "bad index block handle") - return r, nil - } - - // Read metaindex block. - metaBlock, err := r.readBlock(r.metaBH, true) - if err != nil { - if errors.IsCorrupted(err) { - r.err = err - return r, nil - } - return nil, err - } - - // Set data end. - r.dataEnd = int64(r.metaBH.offset) - - // Read metaindex. - metaIter := r.newBlockIter(metaBlock, nil, nil, true) - for metaIter.Next() { - key := string(metaIter.Key()) - if !strings.HasPrefix(key, "filter.") { - continue - } - fn := key[7:] - if f0 := o.GetFilter(); f0 != nil && f0.Name() == fn { - r.filter = f0 - } else { - for _, f0 := range o.GetAltFilters() { - if f0.Name() == fn { - r.filter = f0 - break - } - } - } - if r.filter != nil { - filterBH, n := decodeBlockHandle(metaIter.Value()) - if n == 0 { - continue - } - r.filterBH = filterBH - // Update data end. - r.dataEnd = int64(filterBH.offset) - break - } - } - metaIter.Release() - metaBlock.Release() - - // Cache index and filter block locally, since we don't have global cache. - if cache == nil { - r.indexBlock, err = r.readBlock(r.indexBH, true) - if err != nil { - if errors.IsCorrupted(err) { - r.err = err - return r, nil - } - return nil, err - } - if r.filter != nil { - r.filterBlock, err = r.readFilterBlock(r.filterBH) - if err != nil { - if !errors.IsCorrupted(err) { - return nil, err - } - - // Don't use filter then. - r.filter = nil - } - } - } - - return r, nil -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/table/table.go b/vendor/github.com/syndtr/goleveldb/leveldb/table/table.go deleted file mode 100644 index beacdc1f..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/table/table.go +++ /dev/null @@ -1,177 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package table allows read and write sorted key/value. -package table - -import ( - "encoding/binary" -) - -/* -Table: - -Table is consist of one or more data blocks, an optional filter block -a metaindex block, an index block and a table footer. Metaindex block -is a special block used to keep parameters of the table, such as filter -block name and its block handle. Index block is a special block used to -keep record of data blocks offset and length, index block use one as -restart interval. The key used by index block are the last key of preceding -block, shorter separator of adjacent blocks or shorter successor of the -last key of the last block. Filter block is an optional block contains -sequence of filter data generated by a filter generator. - -Table data structure: - + optional - / - +--------------+--------------+--------------+------+-------+-----------------+-------------+--------+ - | data block 1 | ... | data block n | filter block | metaindex block | index block | footer | - +--------------+--------------+--------------+--------------+-----------------+-------------+--------+ - - Each block followed by a 5-bytes trailer contains compression type and checksum. - -Table block trailer: - - +---------------------------+-------------------+ - | compression type (1-byte) | checksum (4-byte) | - +---------------------------+-------------------+ - - The checksum is a CRC-32 computed using Castagnoli's polynomial. Compression - type also included in the checksum. - -Table footer: - - +------------------- 40-bytes -------------------+ - / \ - +------------------------+--------------------+------+-----------------+ - | metaindex block handle / index block handle / ---- | magic (8-bytes) | - +------------------------+--------------------+------+-----------------+ - - The magic are first 64-bit of SHA-1 sum of "http://code.google.com/p/leveldb/". - -NOTE: All fixed-length integer are little-endian. -*/ - -/* -Block: - -Block is consist of one or more key/value entries and a block trailer. -Block entry shares key prefix with its preceding key until a restart -point reached. A block should contains at least one restart point. -First restart point are always zero. - -Block data structure: - - + restart point + restart point (depends on restart interval) - / / - +---------------+---------------+---------------+---------------+---------+ - | block entry 1 | block entry 2 | ... | block entry n | trailer | - +---------------+---------------+---------------+---------------+---------+ - -Key/value entry: - - +---- key len ----+ - / \ - +-------+---------+-----------+---------+--------------------+--------------+----------------+ - | shared (varint) | not shared (varint) | value len (varint) | key (varlen) | value (varlen) | - +-----------------+---------------------+--------------------+--------------+----------------+ - - Block entry shares key prefix with its preceding key: - Conditions: - restart_interval=2 - entry one : key=deck,value=v1 - entry two : key=dock,value=v2 - entry three: key=duck,value=v3 - The entries will be encoded as follow: - - + restart point (offset=0) + restart point (offset=16) - / / - +-----+-----+-----+----------+--------+-----+-----+-----+---------+--------+-----+-----+-----+----------+--------+ - | 0 | 4 | 2 | "deck" | "v1" | 1 | 3 | 2 | "ock" | "v2" | 0 | 4 | 2 | "duck" | "v3" | - +-----+-----+-----+----------+--------+-----+-----+-----+---------+--------+-----+-----+-----+----------+--------+ - \ / \ / \ / - +----------- entry one -----------+ +----------- entry two ----------+ +---------- entry three ----------+ - - The block trailer will contains two restart points: - - +------------+-----------+--------+ - | 0 | 16 | 2 | - +------------+-----------+---+----+ - \ / \ - +-- restart points --+ + restart points length - -Block trailer: - - +-- 4-bytes --+ - / \ - +-----------------+-----------------+-----------------+------------------------------+ - | restart point 1 | .... | restart point n | restart points len (4-bytes) | - +-----------------+-----------------+-----------------+------------------------------+ - - -NOTE: All fixed-length integer are little-endian. -*/ - -/* -Filter block: - -Filter block consist of one or more filter data and a filter block trailer. -The trailer contains filter data offsets, a trailer offset and a 1-byte base Lg. - -Filter block data structure: - - + offset 1 + offset 2 + offset n + trailer offset - / / / / - +---------------+---------------+---------------+---------+ - | filter data 1 | ... | filter data n | trailer | - +---------------+---------------+---------------+---------+ - -Filter block trailer: - - +- 4-bytes -+ - / \ - +---------------+---------------+---------------+-------------------------------+------------------+ - | data 1 offset | .... | data n offset | data-offsets offset (4-bytes) | base Lg (1-byte) | - +-------------- +---------------+---------------+-------------------------------+------------------+ - - -NOTE: All fixed-length integer are little-endian. -*/ - -const ( - blockTrailerLen = 5 - footerLen = 48 - - magic = "\x57\xfb\x80\x8b\x24\x75\x47\xdb" - - // The block type gives the per-block compression format. - // These constants are part of the file format and should not be changed. - blockTypeNoCompression = 0 - blockTypeSnappyCompression = 1 - - // Generate new filter every 2KB of data - filterBaseLg = 11 - filterBase = 1 << filterBaseLg -) - -type blockHandle struct { - offset, length uint64 -} - -func decodeBlockHandle(src []byte) (blockHandle, int) { - offset, n := binary.Uvarint(src) - length, m := binary.Uvarint(src[n:]) - if n == 0 || m == 0 { - return blockHandle{}, 0 - } - return blockHandle{offset, length}, n + m -} - -func encodeBlockHandle(dst []byte, b blockHandle) int { - n := binary.PutUvarint(dst, b.offset) - m := binary.PutUvarint(dst[n:], b.length) - return n + m -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/table/writer.go b/vendor/github.com/syndtr/goleveldb/leveldb/table/writer.go deleted file mode 100644 index b96b271d..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/table/writer.go +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package table - -import ( - "encoding/binary" - "errors" - "fmt" - "io" - - "github.com/golang/snappy" - - "github.com/syndtr/goleveldb/leveldb/comparer" - "github.com/syndtr/goleveldb/leveldb/filter" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/util" -) - -func sharedPrefixLen(a, b []byte) int { - i, n := 0, len(a) - if n > len(b) { - n = len(b) - } - for i < n && a[i] == b[i] { - i++ - } - return i -} - -type blockWriter struct { - restartInterval int - buf util.Buffer - nEntries int - prevKey []byte - restarts []uint32 - scratch []byte -} - -func (w *blockWriter) append(key, value []byte) { - nShared := 0 - if w.nEntries%w.restartInterval == 0 { - w.restarts = append(w.restarts, uint32(w.buf.Len())) - } else { - nShared = sharedPrefixLen(w.prevKey, key) - } - n := binary.PutUvarint(w.scratch[0:], uint64(nShared)) - n += binary.PutUvarint(w.scratch[n:], uint64(len(key)-nShared)) - n += binary.PutUvarint(w.scratch[n:], uint64(len(value))) - w.buf.Write(w.scratch[:n]) - w.buf.Write(key[nShared:]) - w.buf.Write(value) - w.prevKey = append(w.prevKey[:0], key...) - w.nEntries++ -} - -func (w *blockWriter) finish() { - // Write restarts entry. - if w.nEntries == 0 { - // Must have at least one restart entry. - w.restarts = append(w.restarts, 0) - } - w.restarts = append(w.restarts, uint32(len(w.restarts))) - for _, x := range w.restarts { - buf4 := w.buf.Alloc(4) - binary.LittleEndian.PutUint32(buf4, x) - } -} - -func (w *blockWriter) reset() { - w.buf.Reset() - w.nEntries = 0 - w.restarts = w.restarts[:0] -} - -func (w *blockWriter) bytesLen() int { - restartsLen := len(w.restarts) - if restartsLen == 0 { - restartsLen = 1 - } - return w.buf.Len() + 4*restartsLen + 4 -} - -type filterWriter struct { - generator filter.FilterGenerator - buf util.Buffer - nKeys int - offsets []uint32 -} - -func (w *filterWriter) add(key []byte) { - if w.generator == nil { - return - } - w.generator.Add(key) - w.nKeys++ -} - -func (w *filterWriter) flush(offset uint64) { - if w.generator == nil { - return - } - for x := int(offset / filterBase); x > len(w.offsets); { - w.generate() - } -} - -func (w *filterWriter) finish() { - if w.generator == nil { - return - } - // Generate last keys. - - if w.nKeys > 0 { - w.generate() - } - w.offsets = append(w.offsets, uint32(w.buf.Len())) - for _, x := range w.offsets { - buf4 := w.buf.Alloc(4) - binary.LittleEndian.PutUint32(buf4, x) - } - w.buf.WriteByte(filterBaseLg) -} - -func (w *filterWriter) generate() { - // Record offset. - w.offsets = append(w.offsets, uint32(w.buf.Len())) - // Generate filters. - if w.nKeys > 0 { - w.generator.Generate(&w.buf) - w.nKeys = 0 - } -} - -// Writer is a table writer. -type Writer struct { - writer io.Writer - err error - // Options - cmp comparer.Comparer - filter filter.Filter - compression opt.Compression - blockSize int - - dataBlock blockWriter - indexBlock blockWriter - filterBlock filterWriter - pendingBH blockHandle - offset uint64 - nEntries int - // Scratch allocated enough for 5 uvarint. Block writer should not use - // first 20-bytes since it will be used to encode block handle, which - // then passed to the block writer itself. - scratch [50]byte - comparerScratch []byte - compressionScratch []byte -} - -func (w *Writer) writeBlock(buf *util.Buffer, compression opt.Compression) (bh blockHandle, err error) { - // Compress the buffer if necessary. - var b []byte - if compression == opt.SnappyCompression { - // Allocate scratch enough for compression and block trailer. - if n := snappy.MaxEncodedLen(buf.Len()) + blockTrailerLen; len(w.compressionScratch) < n { - w.compressionScratch = make([]byte, n) - } - compressed := snappy.Encode(w.compressionScratch, buf.Bytes()) - n := len(compressed) - b = compressed[:n+blockTrailerLen] - b[n] = blockTypeSnappyCompression - } else { - tmp := buf.Alloc(blockTrailerLen) - tmp[0] = blockTypeNoCompression - b = buf.Bytes() - } - - // Calculate the checksum. - n := len(b) - 4 - checksum := util.NewCRC(b[:n]).Value() - binary.LittleEndian.PutUint32(b[n:], checksum) - - // Write the buffer to the file. - _, err = w.writer.Write(b) - if err != nil { - return - } - bh = blockHandle{w.offset, uint64(len(b) - blockTrailerLen)} - w.offset += uint64(len(b)) - return -} - -func (w *Writer) flushPendingBH(key []byte) { - if w.pendingBH.length == 0 { - return - } - var separator []byte - if len(key) == 0 { - separator = w.cmp.Successor(w.comparerScratch[:0], w.dataBlock.prevKey) - } else { - separator = w.cmp.Separator(w.comparerScratch[:0], w.dataBlock.prevKey, key) - } - if separator == nil { - separator = w.dataBlock.prevKey - } else { - w.comparerScratch = separator - } - n := encodeBlockHandle(w.scratch[:20], w.pendingBH) - // Append the block handle to the index block. - w.indexBlock.append(separator, w.scratch[:n]) - // Reset prev key of the data block. - w.dataBlock.prevKey = w.dataBlock.prevKey[:0] - // Clear pending block handle. - w.pendingBH = blockHandle{} -} - -func (w *Writer) finishBlock() error { - w.dataBlock.finish() - bh, err := w.writeBlock(&w.dataBlock.buf, w.compression) - if err != nil { - return err - } - w.pendingBH = bh - // Reset the data block. - w.dataBlock.reset() - // Flush the filter block. - w.filterBlock.flush(w.offset) - return nil -} - -// Append appends key/value pair to the table. The keys passed must -// be in increasing order. -// -// It is safe to modify the contents of the arguments after Append returns. -func (w *Writer) Append(key, value []byte) error { - if w.err != nil { - return w.err - } - if w.nEntries > 0 && w.cmp.Compare(w.dataBlock.prevKey, key) >= 0 { - w.err = fmt.Errorf("leveldb/table: Writer: keys are not in increasing order: %q, %q", w.dataBlock.prevKey, key) - return w.err - } - - w.flushPendingBH(key) - // Append key/value pair to the data block. - w.dataBlock.append(key, value) - // Add key to the filter block. - w.filterBlock.add(key) - - // Finish the data block if block size target reached. - if w.dataBlock.bytesLen() >= w.blockSize { - if err := w.finishBlock(); err != nil { - w.err = err - return w.err - } - } - w.nEntries++ - return nil -} - -// BlocksLen returns number of blocks written so far. -func (w *Writer) BlocksLen() int { - n := w.indexBlock.nEntries - if w.pendingBH.length > 0 { - // Includes the pending block. - n++ - } - return n -} - -// EntriesLen returns number of entries added so far. -func (w *Writer) EntriesLen() int { - return w.nEntries -} - -// BytesLen returns number of bytes written so far. -func (w *Writer) BytesLen() int { - return int(w.offset) -} - -// Close will finalize the table. Calling Append is not possible -// after Close, but calling BlocksLen, EntriesLen and BytesLen -// is still possible. -func (w *Writer) Close() error { - if w.err != nil { - return w.err - } - - // Write the last data block. Or empty data block if there - // aren't any data blocks at all. - if w.dataBlock.nEntries > 0 || w.nEntries == 0 { - if err := w.finishBlock(); err != nil { - w.err = err - return w.err - } - } - w.flushPendingBH(nil) - - // Write the filter block. - var filterBH blockHandle - w.filterBlock.finish() - if buf := &w.filterBlock.buf; buf.Len() > 0 { - filterBH, w.err = w.writeBlock(buf, opt.NoCompression) - if w.err != nil { - return w.err - } - } - - // Write the metaindex block. - if filterBH.length > 0 { - key := []byte("filter." + w.filter.Name()) - n := encodeBlockHandle(w.scratch[:20], filterBH) - w.dataBlock.append(key, w.scratch[:n]) - } - w.dataBlock.finish() - metaindexBH, err := w.writeBlock(&w.dataBlock.buf, w.compression) - if err != nil { - w.err = err - return w.err - } - - // Write the index block. - w.indexBlock.finish() - indexBH, err := w.writeBlock(&w.indexBlock.buf, w.compression) - if err != nil { - w.err = err - return w.err - } - - // Write the table footer. - footer := w.scratch[:footerLen] - for i := range footer { - footer[i] = 0 - } - n := encodeBlockHandle(footer, metaindexBH) - encodeBlockHandle(footer[n:], indexBH) - copy(footer[footerLen-len(magic):], magic) - if _, err := w.writer.Write(footer); err != nil { - w.err = err - return w.err - } - w.offset += footerLen - - w.err = errors.New("leveldb/table: writer is closed") - return nil -} - -// NewWriter creates a new initialized table writer for the file. -// -// Table writer is not safe for concurrent use. -func NewWriter(f io.Writer, o *opt.Options) *Writer { - w := &Writer{ - writer: f, - cmp: o.GetComparer(), - filter: o.GetFilter(), - compression: o.GetCompression(), - blockSize: o.GetBlockSize(), - comparerScratch: make([]byte, 0), - } - // data block - w.dataBlock.restartInterval = o.GetBlockRestartInterval() - // The first 20-bytes are used for encoding block handle. - w.dataBlock.scratch = w.scratch[20:] - // index block - w.indexBlock.restartInterval = 1 - w.indexBlock.scratch = w.scratch[20:] - // filter block - if w.filter != nil { - w.filterBlock.generator = w.filter.NewGenerator() - w.filterBlock.flush(0) - } - return w -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util.go b/vendor/github.com/syndtr/goleveldb/leveldb/util.go deleted file mode 100644 index 0e2b519e..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/util.go +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "fmt" - "sort" - - "github.com/syndtr/goleveldb/leveldb/storage" -) - -func shorten(str string) string { - if len(str) <= 8 { - return str - } - return str[:3] + ".." + str[len(str)-3:] -} - -var bunits = [...]string{"", "Ki", "Mi", "Gi", "Ti"} - -func shortenb(bytes int) string { - i := 0 - for ; bytes > 1024 && i < 4; i++ { - bytes /= 1024 - } - return fmt.Sprintf("%d%sB", bytes, bunits[i]) -} - -func sshortenb(bytes int) string { - if bytes == 0 { - return "~" - } - sign := "+" - if bytes < 0 { - sign = "-" - bytes *= -1 - } - i := 0 - for ; bytes > 1024 && i < 4; i++ { - bytes /= 1024 - } - return fmt.Sprintf("%s%d%sB", sign, bytes, bunits[i]) -} - -func sint(x int) string { - if x == 0 { - return "~" - } - sign := "+" - if x < 0 { - sign = "-" - x *= -1 - } - return fmt.Sprintf("%s%d", sign, x) -} - -func minInt(a, b int) int { - if a < b { - return a - } - return b -} - -func maxInt(a, b int) int { - if a > b { - return a - } - return b -} - -type fdSorter []storage.FileDesc - -func (p fdSorter) Len() int { - return len(p) -} - -func (p fdSorter) Less(i, j int) bool { - return p[i].Num < p[j].Num -} - -func (p fdSorter) Swap(i, j int) { - p[i], p[j] = p[j], p[i] -} - -func sortFds(fds []storage.FileDesc) { - sort.Sort(fdSorter(fds)) -} - -func ensureBuffer(b []byte, n int) []byte { - if cap(b) < n { - return make([]byte, n) - } - return b[:n] -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer.go deleted file mode 100644 index 21de2425..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer.go +++ /dev/null @@ -1,293 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package util - -// This a copy of Go std bytes.Buffer with some modification -// and some features stripped. - -import ( - "bytes" - "io" -) - -// A Buffer is a variable-sized buffer of bytes with Read and Write methods. -// The zero value for Buffer is an empty buffer ready to use. -type Buffer struct { - buf []byte // contents are the bytes buf[off : len(buf)] - off int // read at &buf[off], write at &buf[len(buf)] - bootstrap [64]byte // memory to hold first slice; helps small buffers (Printf) avoid allocation. -} - -// Bytes returns a slice of the contents of the unread portion of the buffer; -// len(b.Bytes()) == b.Len(). If the caller changes the contents of the -// returned slice, the contents of the buffer will change provided there -// are no intervening method calls on the Buffer. -func (b *Buffer) Bytes() []byte { return b.buf[b.off:] } - -// String returns the contents of the unread portion of the buffer -// as a string. If the Buffer is a nil pointer, it returns "". -func (b *Buffer) String() string { - if b == nil { - // Special case, useful in debugging. - return "" - } - return string(b.buf[b.off:]) -} - -// Len returns the number of bytes of the unread portion of the buffer; -// b.Len() == len(b.Bytes()). -func (b *Buffer) Len() int { return len(b.buf) - b.off } - -// Truncate discards all but the first n unread bytes from the buffer. -// It panics if n is negative or greater than the length of the buffer. -func (b *Buffer) Truncate(n int) { - switch { - case n < 0 || n > b.Len(): - panic("leveldb/util.Buffer: truncation out of range") - case n == 0: - // Reuse buffer space. - b.off = 0 - } - b.buf = b.buf[0 : b.off+n] -} - -// Reset resets the buffer so it has no content. -// b.Reset() is the same as b.Truncate(0). -func (b *Buffer) Reset() { b.Truncate(0) } - -// grow grows the buffer to guarantee space for n more bytes. -// It returns the index where bytes should be written. -// If the buffer can't grow it will panic with bytes.ErrTooLarge. -func (b *Buffer) grow(n int) int { - m := b.Len() - // If buffer is empty, reset to recover space. - if m == 0 && b.off != 0 { - b.Truncate(0) - } - if len(b.buf)+n > cap(b.buf) { - var buf []byte - if b.buf == nil && n <= len(b.bootstrap) { - buf = b.bootstrap[0:] - } else if m+n <= cap(b.buf)/2 { - // We can slide things down instead of allocating a new - // slice. We only need m+n <= cap(b.buf) to slide, but - // we instead let capacity get twice as large so we - // don't spend all our time copying. - copy(b.buf[:], b.buf[b.off:]) - buf = b.buf[:m] - } else { - // not enough space anywhere - buf = makeSlice(2*cap(b.buf) + n) - copy(buf, b.buf[b.off:]) - } - b.buf = buf - b.off = 0 - } - b.buf = b.buf[0 : b.off+m+n] - return b.off + m -} - -// Alloc allocs n bytes of slice from the buffer, growing the buffer as -// needed. If n is negative, Alloc will panic. -// If the buffer can't grow it will panic with bytes.ErrTooLarge. -func (b *Buffer) Alloc(n int) []byte { - if n < 0 { - panic("leveldb/util.Buffer.Alloc: negative count") - } - m := b.grow(n) - return b.buf[m:] -} - -// Grow grows the buffer's capacity, if necessary, to guarantee space for -// another n bytes. After Grow(n), at least n bytes can be written to the -// buffer without another allocation. -// If n is negative, Grow will panic. -// If the buffer can't grow it will panic with bytes.ErrTooLarge. -func (b *Buffer) Grow(n int) { - if n < 0 { - panic("leveldb/util.Buffer.Grow: negative count") - } - m := b.grow(n) - b.buf = b.buf[0:m] -} - -// Write appends the contents of p to the buffer, growing the buffer as -// needed. The return value n is the length of p; err is always nil. If the -// buffer becomes too large, Write will panic with bytes.ErrTooLarge. -func (b *Buffer) Write(p []byte) (n int, err error) { - m := b.grow(len(p)) - return copy(b.buf[m:], p), nil -} - -// MinRead is the minimum slice size passed to a Read call by -// Buffer.ReadFrom. As long as the Buffer has at least MinRead bytes beyond -// what is required to hold the contents of r, ReadFrom will not grow the -// underlying buffer. -const MinRead = 512 - -// ReadFrom reads data from r until EOF and appends it to the buffer, growing -// the buffer as needed. The return value n is the number of bytes read. Any -// error except io.EOF encountered during the read is also returned. If the -// buffer becomes too large, ReadFrom will panic with bytes.ErrTooLarge. -func (b *Buffer) ReadFrom(r io.Reader) (n int64, err error) { - // If buffer is empty, reset to recover space. - if b.off >= len(b.buf) { - b.Truncate(0) - } - for { - if free := cap(b.buf) - len(b.buf); free < MinRead { - // not enough space at end - newBuf := b.buf - if b.off+free < MinRead { - // not enough space using beginning of buffer; - // double buffer capacity - newBuf = makeSlice(2*cap(b.buf) + MinRead) - } - copy(newBuf, b.buf[b.off:]) - b.buf = newBuf[:len(b.buf)-b.off] - b.off = 0 - } - m, e := r.Read(b.buf[len(b.buf):cap(b.buf)]) - b.buf = b.buf[0 : len(b.buf)+m] - n += int64(m) - if e == io.EOF { - break - } - if e != nil { - return n, e - } - } - return n, nil // err is EOF, so return nil explicitly -} - -// makeSlice allocates a slice of size n. If the allocation fails, it panics -// with bytes.ErrTooLarge. -func makeSlice(n int) []byte { - // If the make fails, give a known error. - defer func() { - if recover() != nil { - panic(bytes.ErrTooLarge) - } - }() - return make([]byte, n) -} - -// WriteTo writes data to w until the buffer is drained or an error occurs. -// The return value n is the number of bytes written; it always fits into an -// int, but it is int64 to match the io.WriterTo interface. Any error -// encountered during the write is also returned. -func (b *Buffer) WriteTo(w io.Writer) (n int64, err error) { - if b.off < len(b.buf) { - nBytes := b.Len() - m, e := w.Write(b.buf[b.off:]) - if m > nBytes { - panic("leveldb/util.Buffer.WriteTo: invalid Write count") - } - b.off += m - n = int64(m) - if e != nil { - return n, e - } - // all bytes should have been written, by definition of - // Write method in io.Writer - if m != nBytes { - return n, io.ErrShortWrite - } - } - // Buffer is now empty; reset. - b.Truncate(0) - return -} - -// WriteByte appends the byte c to the buffer, growing the buffer as needed. -// The returned error is always nil, but is included to match bufio.Writer's -// WriteByte. If the buffer becomes too large, WriteByte will panic with -// bytes.ErrTooLarge. -func (b *Buffer) WriteByte(c byte) error { - m := b.grow(1) - b.buf[m] = c - return nil -} - -// Read reads the next len(p) bytes from the buffer or until the buffer -// is drained. The return value n is the number of bytes read. If the -// buffer has no data to return, err is io.EOF (unless len(p) is zero); -// otherwise it is nil. -func (b *Buffer) Read(p []byte) (n int, err error) { - if b.off >= len(b.buf) { - // Buffer is empty, reset to recover space. - b.Truncate(0) - if len(p) == 0 { - return - } - return 0, io.EOF - } - n = copy(p, b.buf[b.off:]) - b.off += n - return -} - -// Next returns a slice containing the next n bytes from the buffer, -// advancing the buffer as if the bytes had been returned by Read. -// If there are fewer than n bytes in the buffer, Next returns the entire buffer. -// The slice is only valid until the next call to a read or write method. -func (b *Buffer) Next(n int) []byte { - m := b.Len() - if n > m { - n = m - } - data := b.buf[b.off : b.off+n] - b.off += n - return data -} - -// ReadByte reads and returns the next byte from the buffer. -// If no byte is available, it returns error io.EOF. -func (b *Buffer) ReadByte() (c byte, err error) { - if b.off >= len(b.buf) { - // Buffer is empty, reset to recover space. - b.Truncate(0) - return 0, io.EOF - } - c = b.buf[b.off] - b.off++ - return c, nil -} - -// ReadBytes reads until the first occurrence of delim in the input, -// returning a slice containing the data up to and including the delimiter. -// If ReadBytes encounters an error before finding a delimiter, -// it returns the data read before the error and the error itself (often io.EOF). -// ReadBytes returns err != nil if and only if the returned data does not end in -// delim. -func (b *Buffer) ReadBytes(delim byte) (line []byte, err error) { - slice, err := b.readSlice(delim) - // return a copy of slice. The buffer's backing array may - // be overwritten by later calls. - line = append(line, slice...) - return -} - -// readSlice is like ReadBytes but returns a reference to internal buffer data. -func (b *Buffer) readSlice(delim byte) (line []byte, err error) { - i := bytes.IndexByte(b.buf[b.off:], delim) - end := b.off + i + 1 - if i < 0 { - end = len(b.buf) - err = io.EOF - } - line = b.buf[b.off:end] - b.off = end - return line, err -} - -// NewBuffer creates and initializes a new Buffer using buf as its initial -// contents. It is intended to prepare a Buffer to read existing data. It -// can also be used to size the internal buffer for writing. To do that, -// buf should have the desired capacity but a length of zero. -// -// In most cases, new(Buffer) (or just declaring a Buffer variable) is -// sufficient to initialize a Buffer. -func NewBuffer(buf []byte) *Buffer { return &Buffer{buf: buf} } diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go deleted file mode 100644 index 2f3db974..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright (c) 2014, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package util - -import ( - "fmt" - "sync" - "sync/atomic" - "time" -) - -type buffer struct { - b []byte - miss int -} - -// BufferPool is a 'buffer pool'. -type BufferPool struct { - pool [6]chan []byte - size [5]uint32 - sizeMiss [5]uint32 - sizeHalf [5]uint32 - baseline [4]int - baseline0 int - - mu sync.RWMutex - closed bool - closeC chan struct{} - - get uint32 - put uint32 - half uint32 - less uint32 - equal uint32 - greater uint32 - miss uint32 -} - -func (p *BufferPool) poolNum(n int) int { - if n <= p.baseline0 && n > p.baseline0/2 { - return 0 - } - for i, x := range p.baseline { - if n <= x { - return i + 1 - } - } - return len(p.baseline) + 1 -} - -// Get returns buffer with length of n. -func (p *BufferPool) Get(n int) []byte { - if p == nil { - return make([]byte, n) - } - - p.mu.RLock() - defer p.mu.RUnlock() - - if p.closed { - return make([]byte, n) - } - - atomic.AddUint32(&p.get, 1) - - poolNum := p.poolNum(n) - pool := p.pool[poolNum] - if poolNum == 0 { - // Fast path. - select { - case b := <-pool: - switch { - case cap(b) > n: - if cap(b)-n >= n { - atomic.AddUint32(&p.half, 1) - select { - case pool <- b: - default: - } - return make([]byte, n) - } else { - atomic.AddUint32(&p.less, 1) - return b[:n] - } - case cap(b) == n: - atomic.AddUint32(&p.equal, 1) - return b[:n] - default: - atomic.AddUint32(&p.greater, 1) - } - default: - atomic.AddUint32(&p.miss, 1) - } - - return make([]byte, n, p.baseline0) - } else { - sizePtr := &p.size[poolNum-1] - - select { - case b := <-pool: - switch { - case cap(b) > n: - if cap(b)-n >= n { - atomic.AddUint32(&p.half, 1) - sizeHalfPtr := &p.sizeHalf[poolNum-1] - if atomic.AddUint32(sizeHalfPtr, 1) == 20 { - atomic.StoreUint32(sizePtr, uint32(cap(b)/2)) - atomic.StoreUint32(sizeHalfPtr, 0) - } else { - select { - case pool <- b: - default: - } - } - return make([]byte, n) - } else { - atomic.AddUint32(&p.less, 1) - return b[:n] - } - case cap(b) == n: - atomic.AddUint32(&p.equal, 1) - return b[:n] - default: - atomic.AddUint32(&p.greater, 1) - if uint32(cap(b)) >= atomic.LoadUint32(sizePtr) { - select { - case pool <- b: - default: - } - } - } - default: - atomic.AddUint32(&p.miss, 1) - } - - if size := atomic.LoadUint32(sizePtr); uint32(n) > size { - if size == 0 { - atomic.CompareAndSwapUint32(sizePtr, 0, uint32(n)) - } else { - sizeMissPtr := &p.sizeMiss[poolNum-1] - if atomic.AddUint32(sizeMissPtr, 1) == 20 { - atomic.StoreUint32(sizePtr, uint32(n)) - atomic.StoreUint32(sizeMissPtr, 0) - } - } - return make([]byte, n) - } else { - return make([]byte, n, size) - } - } -} - -// Put adds given buffer to the pool. -func (p *BufferPool) Put(b []byte) { - if p == nil { - return - } - - p.mu.RLock() - defer p.mu.RUnlock() - - if p.closed { - return - } - - atomic.AddUint32(&p.put, 1) - - pool := p.pool[p.poolNum(cap(b))] - select { - case pool <- b: - default: - } - -} - -func (p *BufferPool) Close() { - if p == nil { - return - } - - p.mu.Lock() - if !p.closed { - p.closed = true - p.closeC <- struct{}{} - } - p.mu.Unlock() -} - -func (p *BufferPool) String() string { - if p == nil { - return "" - } - - return fmt.Sprintf("BufferPool{B·%d Z·%v Zm·%v Zh·%v G·%d P·%d H·%d <·%d =·%d >·%d M·%d}", - p.baseline0, p.size, p.sizeMiss, p.sizeHalf, p.get, p.put, p.half, p.less, p.equal, p.greater, p.miss) -} - -func (p *BufferPool) drain() { - ticker := time.NewTicker(2 * time.Second) - defer ticker.Stop() - for { - select { - case <-ticker.C: - for _, ch := range p.pool { - select { - case <-ch: - default: - } - } - case <-p.closeC: - close(p.closeC) - for _, ch := range p.pool { - close(ch) - } - return - } - } -} - -// NewBufferPool creates a new initialized 'buffer pool'. -func NewBufferPool(baseline int) *BufferPool { - if baseline <= 0 { - panic("baseline can't be <= 0") - } - p := &BufferPool{ - baseline0: baseline, - baseline: [...]int{baseline / 4, baseline / 2, baseline * 2, baseline * 4}, - closeC: make(chan struct{}, 1), - } - for i, cap := range []int{2, 2, 4, 4, 2, 1} { - p.pool[i] = make(chan []byte, cap) - } - go p.drain() - return p -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go deleted file mode 100644 index 631c9d61..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2011 The LevelDB-Go Authors. All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package util - -import ( - "hash/crc32" -) - -var table = crc32.MakeTable(crc32.Castagnoli) - -// CRC is a CRC-32 checksum computed using Castagnoli's polynomial. -type CRC uint32 - -// NewCRC creates a new crc based on the given bytes. -func NewCRC(b []byte) CRC { - return CRC(0).Update(b) -} - -// Update updates the crc with the given bytes. -func (c CRC) Update(b []byte) CRC { - return CRC(crc32.Update(uint32(c), table, b)) -} - -// Value returns a masked crc. -func (c CRC) Value() uint32 { - return uint32(c>>15|c<<17) + 0xa282ead8 -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/hash.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/hash.go deleted file mode 100644 index 7f3fa4e2..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/util/hash.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package util - -import ( - "encoding/binary" -) - -// Hash return hash of the given data. -func Hash(data []byte, seed uint32) uint32 { - // Similar to murmur hash - const ( - m = uint32(0xc6a4a793) - r = uint32(24) - ) - var ( - h = seed ^ (uint32(len(data)) * m) - i int - ) - - for n := len(data) - len(data)%4; i < n; i += 4 { - h += binary.LittleEndian.Uint32(data[i:]) - h *= m - h ^= (h >> 16) - } - - switch len(data) - i { - default: - panic("not reached") - case 3: - h += uint32(data[i+2]) << 16 - fallthrough - case 2: - h += uint32(data[i+1]) << 8 - fallthrough - case 1: - h += uint32(data[i]) - h *= m - h ^= (h >> r) - case 0: - } - - return h -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/range.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/range.go deleted file mode 100644 index 85159583..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/util/range.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2014, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package util - -// Range is a key range. -type Range struct { - // Start of the key range, include in the range. - Start []byte - - // Limit of the key range, not include in the range. - Limit []byte -} - -// BytesPrefix returns key range that satisfy the given prefix. -// This only applicable for the standard 'bytes comparer'. -func BytesPrefix(prefix []byte) *Range { - var limit []byte - for i := len(prefix) - 1; i >= 0; i-- { - c := prefix[i] - if c < 0xff { - limit = make([]byte, i+1) - copy(limit, prefix) - limit[i] = c + 1 - break - } - } - return &Range{prefix, limit} -} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/util.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/util.go deleted file mode 100644 index 80614afc..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/util/util.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright (c) 2013, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Package util provides utilities used throughout leveldb. -package util - -import ( - "errors" -) - -var ( - ErrReleased = errors.New("leveldb: resource already relesed") - ErrHasReleaser = errors.New("leveldb: releaser already defined") -) - -// Releaser is the interface that wraps the basic Release method. -type Releaser interface { - // Release releases associated resources. Release should always success - // and can be called multiple times without causing error. - Release() -} - -// ReleaseSetter is the interface that wraps the basic SetReleaser method. -type ReleaseSetter interface { - // SetReleaser associates the given releaser to the resources. The - // releaser will be called once coresponding resources released. - // Calling SetReleaser with nil will clear the releaser. - // - // This will panic if a releaser already present or coresponding - // resource is already released. Releaser should be cleared first - // before assigned a new one. - SetReleaser(releaser Releaser) -} - -// BasicReleaser provides basic implementation of Releaser and ReleaseSetter. -type BasicReleaser struct { - releaser Releaser - released bool -} - -// Released returns whether Release method already called. -func (r *BasicReleaser) Released() bool { - return r.released -} - -// Release implements Releaser.Release. -func (r *BasicReleaser) Release() { - if !r.released { - if r.releaser != nil { - r.releaser.Release() - r.releaser = nil - } - r.released = true - } -} - -// SetReleaser implements ReleaseSetter.SetReleaser. -func (r *BasicReleaser) SetReleaser(releaser Releaser) { - if r.released { - panic(ErrReleased) - } - if r.releaser != nil && releaser != nil { - panic(ErrHasReleaser) - } - r.releaser = releaser -} - -type NoopReleaser struct{} - -func (NoopReleaser) Release() {} diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/version.go b/vendor/github.com/syndtr/goleveldb/leveldb/version.go deleted file mode 100644 index 73f272af..00000000 --- a/vendor/github.com/syndtr/goleveldb/leveldb/version.go +++ /dev/null @@ -1,528 +0,0 @@ -// Copyright (c) 2012, Suryandaru Triandana -// All rights reserved. -// -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package leveldb - -import ( - "fmt" - "sync/atomic" - "unsafe" - - "github.com/syndtr/goleveldb/leveldb/iterator" - "github.com/syndtr/goleveldb/leveldb/opt" - "github.com/syndtr/goleveldb/leveldb/util" -) - -type tSet struct { - level int - table *tFile -} - -type version struct { - s *session - - levels []tFiles - - // Level that should be compacted next and its compaction score. - // Score < 1 means compaction is not strictly needed. These fields - // are initialized by computeCompaction() - cLevel int - cScore float64 - - cSeek unsafe.Pointer - - closing bool - ref int - released bool -} - -func newVersion(s *session) *version { - return &version{s: s} -} - -func (v *version) incref() { - if v.released { - panic("already released") - } - - v.ref++ - if v.ref == 1 { - // Incr file ref. - for _, tt := range v.levels { - for _, t := range tt { - v.s.addFileRef(t.fd, 1) - } - } - } -} - -func (v *version) releaseNB() { - v.ref-- - if v.ref > 0 { - return - } else if v.ref < 0 { - panic("negative version ref") - } - - for _, tt := range v.levels { - for _, t := range tt { - if v.s.addFileRef(t.fd, -1) == 0 { - v.s.tops.remove(t) - } - } - } - - v.released = true -} - -func (v *version) release() { - v.s.vmu.Lock() - v.releaseNB() - v.s.vmu.Unlock() -} - -func (v *version) walkOverlapping(aux tFiles, ikey internalKey, f func(level int, t *tFile) bool, lf func(level int) bool) { - ukey := ikey.ukey() - - // Aux level. - if aux != nil { - for _, t := range aux { - if t.overlaps(v.s.icmp, ukey, ukey) { - if !f(-1, t) { - return - } - } - } - - if lf != nil && !lf(-1) { - return - } - } - - // Walk tables level-by-level. - for level, tables := range v.levels { - if len(tables) == 0 { - continue - } - - if level == 0 { - // Level-0 files may overlap each other. Find all files that - // overlap ukey. - for _, t := range tables { - if t.overlaps(v.s.icmp, ukey, ukey) { - if !f(level, t) { - return - } - } - } - } else { - if i := tables.searchMax(v.s.icmp, ikey); i < len(tables) { - t := tables[i] - if v.s.icmp.uCompare(ukey, t.imin.ukey()) >= 0 { - if !f(level, t) { - return - } - } - } - } - - if lf != nil && !lf(level) { - return - } - } -} - -func (v *version) get(aux tFiles, ikey internalKey, ro *opt.ReadOptions, noValue bool) (value []byte, tcomp bool, err error) { - if v.closing { - return nil, false, ErrClosed - } - - ukey := ikey.ukey() - - var ( - tset *tSet - tseek bool - - // Level-0. - zfound bool - zseq uint64 - zkt keyType - zval []byte - ) - - err = ErrNotFound - - // Since entries never hop across level, finding key/value - // in smaller level make later levels irrelevant. - v.walkOverlapping(aux, ikey, func(level int, t *tFile) bool { - if level >= 0 && !tseek { - if tset == nil { - tset = &tSet{level, t} - } else { - tseek = true - } - } - - var ( - fikey, fval []byte - ferr error - ) - if noValue { - fikey, ferr = v.s.tops.findKey(t, ikey, ro) - } else { - fikey, fval, ferr = v.s.tops.find(t, ikey, ro) - } - - switch ferr { - case nil: - case ErrNotFound: - return true - default: - err = ferr - return false - } - - if fukey, fseq, fkt, fkerr := parseInternalKey(fikey); fkerr == nil { - if v.s.icmp.uCompare(ukey, fukey) == 0 { - // Level <= 0 may overlaps each-other. - if level <= 0 { - if fseq >= zseq { - zfound = true - zseq = fseq - zkt = fkt - zval = fval - } - } else { - switch fkt { - case keyTypeVal: - value = fval - err = nil - case keyTypeDel: - default: - panic("leveldb: invalid internalKey type") - } - return false - } - } - } else { - err = fkerr - return false - } - - return true - }, func(level int) bool { - if zfound { - switch zkt { - case keyTypeVal: - value = zval - err = nil - case keyTypeDel: - default: - panic("leveldb: invalid internalKey type") - } - return false - } - - return true - }) - - if tseek && tset.table.consumeSeek() <= 0 { - tcomp = atomic.CompareAndSwapPointer(&v.cSeek, nil, unsafe.Pointer(tset)) - } - - return -} - -func (v *version) sampleSeek(ikey internalKey) (tcomp bool) { - var tset *tSet - - v.walkOverlapping(nil, ikey, func(level int, t *tFile) bool { - if tset == nil { - tset = &tSet{level, t} - return true - } - if tset.table.consumeSeek() <= 0 { - tcomp = atomic.CompareAndSwapPointer(&v.cSeek, nil, unsafe.Pointer(tset)) - } - return false - }, nil) - - return -} - -func (v *version) getIterators(slice *util.Range, ro *opt.ReadOptions) (its []iterator.Iterator) { - strict := opt.GetStrict(v.s.o.Options, ro, opt.StrictReader) - for level, tables := range v.levels { - if level == 0 { - // Merge all level zero files together since they may overlap. - for _, t := range tables { - its = append(its, v.s.tops.newIterator(t, slice, ro)) - } - } else if len(tables) != 0 { - its = append(its, iterator.NewIndexedIterator(tables.newIndexIterator(v.s.tops, v.s.icmp, slice, ro), strict)) - } - } - return -} - -func (v *version) newStaging() *versionStaging { - return &versionStaging{base: v} -} - -// Spawn a new version based on this version. -func (v *version) spawn(r *sessionRecord) *version { - staging := v.newStaging() - staging.commit(r) - return staging.finish() -} - -func (v *version) fillRecord(r *sessionRecord) { - for level, tables := range v.levels { - for _, t := range tables { - r.addTableFile(level, t) - } - } -} - -func (v *version) tLen(level int) int { - if level < len(v.levels) { - return len(v.levels[level]) - } - return 0 -} - -func (v *version) offsetOf(ikey internalKey) (n int64, err error) { - for level, tables := range v.levels { - for _, t := range tables { - if v.s.icmp.Compare(t.imax, ikey) <= 0 { - // Entire file is before "ikey", so just add the file size - n += t.size - } else if v.s.icmp.Compare(t.imin, ikey) > 0 { - // Entire file is after "ikey", so ignore - if level > 0 { - // Files other than level 0 are sorted by meta->min, so - // no further files in this level will contain data for - // "ikey". - break - } - } else { - // "ikey" falls in the range for this table. Add the - // approximate offset of "ikey" within the table. - if m, err := v.s.tops.offsetOf(t, ikey); err == nil { - n += m - } else { - return 0, err - } - } - } - } - - return -} - -func (v *version) pickMemdbLevel(umin, umax []byte, maxLevel int) (level int) { - if maxLevel > 0 { - if len(v.levels) == 0 { - return maxLevel - } - if !v.levels[0].overlaps(v.s.icmp, umin, umax, true) { - var overlaps tFiles - for ; level < maxLevel; level++ { - if pLevel := level + 1; pLevel >= len(v.levels) { - return maxLevel - } else if v.levels[pLevel].overlaps(v.s.icmp, umin, umax, false) { - break - } - if gpLevel := level + 2; gpLevel < len(v.levels) { - overlaps = v.levels[gpLevel].getOverlaps(overlaps, v.s.icmp, umin, umax, false) - if overlaps.size() > int64(v.s.o.GetCompactionGPOverlaps(level)) { - break - } - } - } - } - } - return -} - -func (v *version) computeCompaction() { - // Precomputed best level for next compaction - bestLevel := int(-1) - bestScore := float64(-1) - - statFiles := make([]int, len(v.levels)) - statSizes := make([]string, len(v.levels)) - statScore := make([]string, len(v.levels)) - statTotSize := int64(0) - - for level, tables := range v.levels { - var score float64 - size := tables.size() - if level == 0 { - // We treat level-0 specially by bounding the number of files - // instead of number of bytes for two reasons: - // - // (1) With larger write-buffer sizes, it is nice not to do too - // many level-0 compaction. - // - // (2) The files in level-0 are merged on every read and - // therefore we wish to avoid too many files when the individual - // file size is small (perhaps because of a small write-buffer - // setting, or very high compression ratios, or lots of - // overwrites/deletions). - score = float64(len(tables)) / float64(v.s.o.GetCompactionL0Trigger()) - } else { - score = float64(size) / float64(v.s.o.GetCompactionTotalSize(level)) - } - - if score > bestScore { - bestLevel = level - bestScore = score - } - - statFiles[level] = len(tables) - statSizes[level] = shortenb(int(size)) - statScore[level] = fmt.Sprintf("%.2f", score) - statTotSize += size - } - - v.cLevel = bestLevel - v.cScore = bestScore - - v.s.logf("version@stat F·%v S·%s%v Sc·%v", statFiles, shortenb(int(statTotSize)), statSizes, statScore) -} - -func (v *version) needCompaction() bool { - return v.cScore >= 1 || atomic.LoadPointer(&v.cSeek) != nil -} - -type tablesScratch struct { - added map[int64]atRecord - deleted map[int64]struct{} -} - -type versionStaging struct { - base *version - levels []tablesScratch -} - -func (p *versionStaging) getScratch(level int) *tablesScratch { - if level >= len(p.levels) { - newLevels := make([]tablesScratch, level+1) - copy(newLevels, p.levels) - p.levels = newLevels - } - return &(p.levels[level]) -} - -func (p *versionStaging) commit(r *sessionRecord) { - // Deleted tables. - for _, r := range r.deletedTables { - scratch := p.getScratch(r.level) - if r.level < len(p.base.levels) && len(p.base.levels[r.level]) > 0 { - if scratch.deleted == nil { - scratch.deleted = make(map[int64]struct{}) - } - scratch.deleted[r.num] = struct{}{} - } - if scratch.added != nil { - delete(scratch.added, r.num) - } - } - - // New tables. - for _, r := range r.addedTables { - scratch := p.getScratch(r.level) - if scratch.added == nil { - scratch.added = make(map[int64]atRecord) - } - scratch.added[r.num] = r - if scratch.deleted != nil { - delete(scratch.deleted, r.num) - } - } -} - -func (p *versionStaging) finish() *version { - // Build new version. - nv := newVersion(p.base.s) - numLevel := len(p.levels) - if len(p.base.levels) > numLevel { - numLevel = len(p.base.levels) - } - nv.levels = make([]tFiles, numLevel) - for level := 0; level < numLevel; level++ { - var baseTabels tFiles - if level < len(p.base.levels) { - baseTabels = p.base.levels[level] - } - - if level < len(p.levels) { - scratch := p.levels[level] - - var nt tFiles - // Prealloc list if possible. - if n := len(baseTabels) + len(scratch.added) - len(scratch.deleted); n > 0 { - nt = make(tFiles, 0, n) - } - - // Base tables. - for _, t := range baseTabels { - if _, ok := scratch.deleted[t.fd.Num]; ok { - continue - } - if _, ok := scratch.added[t.fd.Num]; ok { - continue - } - nt = append(nt, t) - } - - // New tables. - for _, r := range scratch.added { - nt = append(nt, tableFileFromRecord(r)) - } - - if len(nt) != 0 { - // Sort tables. - if level == 0 { - nt.sortByNum() - } else { - nt.sortByKey(p.base.s.icmp) - } - - nv.levels[level] = nt - } - } else { - nv.levels[level] = baseTabels - } - } - - // Trim levels. - n := len(nv.levels) - for ; n > 0 && nv.levels[n-1] == nil; n-- { - } - nv.levels = nv.levels[:n] - - // Compute compaction score for new version. - nv.computeCompaction() - - return nv -} - -type versionReleaser struct { - v *version - once bool -} - -func (vr *versionReleaser) Release() { - v := vr.v - v.s.vmu.Lock() - if !vr.once { - v.releaseNB() - vr.once = true - } - v.s.vmu.Unlock() -} diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/.gitignore b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/.gitignore deleted file mode 100644 index bd0df5a1..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.idea -cover.out -store -sync_confirm/claim_service.db - -data_packer/stress.prof \ No newline at end of file diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/.golangci.yml b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/.golangci.yml deleted file mode 100644 index 623b6d50..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/.golangci.yml +++ /dev/null @@ -1,407 +0,0 @@ -# Based on https://gist.github.com/maratori/47a4d00457a92aa426dbd48a18776322, -# but has been modified significantly. - -# This code is licensed under the terms of the MIT license https://opensource.org/license/mit -# Copyright (c) 2021 Marat Reymers - -## Golden config for golangci-lint v1.64.5 -# -# This is the best config for golangci-lint based on my experience and opinion. -# It is very strict, but not extremely strict. -# Feel free to adapt and change it for your needs. ---- -run: - # Include test files or not. - # Default: true - tests: false - - # Timeout for analysis, e.g. 30s, 5m. - # Default: 1m - timeout: 3m - - # The mode used to evaluate relative paths. - # It's used by exclusions, Go plugins, and some linters. - # The value can be: - # - `gomod`: the paths will be relative to the directory of the `go.mod` file. - # - `gitroot`: the paths will be relative to the git root (the parent directory of `.git`). - # - `cfg`: the paths will be relative to the configuration file. - # - `wd` (NOT recommended): the paths will be relative to the place where golangci-lint is run. - # Default: wd - relative-path-mode: gomod - -# This file contains only configs which differ from defaults. -# All possible options can be found here https://github.com/golangci/golangci-lint/blob/master/.golangci.reference.yml -linters-settings: - cyclop: - # The maximal code complexity to report. - # Default: 10 - max-complexity: 30 - # The maximal average package complexity. - # If it's higher than 0.0 (float) the check is enabled - # Default: 0.0 - package-average: 10.0 - - depguard: - # Rules to apply. - # - # Variables: - # - File Variables - # Use an exclamation mark `!` to negate a variable. - # Example: `!$test` matches any file that is not a go test file. - # - # `$all` - matches all go files - # `$test` - matches all go test files - # - # - Package Variables - # - # `$gostd` - matches all of go's standard library (Pulled from `GOROOT`) - # - # Default (applies if no custom rules are defined): Only allow $gostd in all files. - rules: - 'deprecated': - # List of file globs that will match this list of settings to compare against. - # Default: $all - files: - - '$all' - # List of packages that are not allowed. - # Entries can be a variable (starting with $), a string prefix, or an exact match (if ending with $). - # Default: [] - deny: - - pkg: 'github.com/golang/protobuf' - desc: 'Use google.golang.org/protobuf instead, see https://developers.google.com/protocol-buffers/docs/reference/go/faq#modules' - - pkg: 'github.com/satori/go.uuid' - desc: "Use github.com/google/uuid instead, satori's package is not maintained" - - pkg: 'github.com/gofrs/uuid$' - desc: 'Use github.com/gofrs/uuid/v5 or later, it was not a go module before v5' - 'non-test files': - files: - - '!$test' - deny: - - pkg: 'math/rand$' - desc: 'Use math/rand/v2 instead, see https://go.dev/blog/randv2' - 'non-main files': - files: - - '!**/main.go' - deny: - - pkg: 'log$' - desc: 'Use log/slog instead, see https://go.dev/blog/slog' - - errcheck: - # Report about not checking of errors in type assertions: `a := b.(MyStruct)`. - # Such cases aren't reported by default. - # Default: false - check-type-assertions: true - - exhaustive: - # Program elements to check for exhaustiveness. - # Default: [ switch ] - check: - - switch - - map - - exhaustruct: - # List of regular expressions to exclude struct packages and their names from checks. - # Regular expressions must match complete canonical struct package/name/structname. - # Default: [] - exclude: - # std libs - - '^net/http.Client$' - - '^net/http.Cookie$' - - '^net/http.Request$' - - '^net/http.Response$' - - '^net/http.Server$' - - '^net/http.Transport$' - - '^net/url.URL$' - - '^os/exec.Cmd$' - - '^reflect.StructField$' - # public libs - - '^github.com/Shopify/sarama.Config$' - - '^github.com/Shopify/sarama.ProducerMessage$' - - '^github.com/mitchellh/mapstructure.DecoderConfig$' - - '^github.com/prometheus/client_golang/.+Opts$' - - '^github.com/spf13/cobra.Command$' - - '^github.com/spf13/cobra.CompletionOptions$' - - '^github.com/stretchr/testify/mock.Mock$' - - '^github.com/testcontainers/testcontainers-go.+Request$' - - '^github.com/testcontainers/testcontainers-go.FromDockerfile$' - - '^golang.org/x/tools/go/analysis.Analyzer$' - - '^google.golang.org/protobuf/.+Options$' - - '^gopkg.in/yaml.v3.Node$' - - funlen: - # Checks the number of lines in a function. - # If lower than 0, disable the check. - # Default: 60 - lines: 100 - # Checks the number of statements in a function. - # If lower than 0, disable the check. - # Default: 40 - statements: 50 - # Ignore comments when counting lines. - # Default false - ignore-comments: true - - gochecksumtype: - # Presence of `default` case in switch statements satisfies exhaustiveness, if all members are not listed. - # Default: true - default-signifies-exhaustive: false - - gocognit: - # Minimal code complexity to report. - # Default: 30 (but we recommend 10-20) - min-complexity: 20 - - gocritic: - # Settings passed to gocritic. - # The settings key is the name of a supported gocritic checker. - # The list of supported checkers can be find in https://go-critic.github.io/overview. - settings: - captLocal: - # Whether to restrict checker to params only. - # Default: true - paramsOnly: false - underef: - # Whether to skip (*x).method() calls where x is a pointer receiver. - # Default: true - skipRecvDeref: false - - govet: - # Enable all analyzers. - # Default: false - enable-all: true - # Disable analyzers by name. - # Run `go tool vet help` to see all analyzers. - # Default: [] - disable: - - fieldalignment # too strict - # Settings per analyzer. - settings: - shadow: - # Whether to be strict about shadowing; can be noisy. - # Default: false - strict: true - - inamedparam: - # Skips check for interface methods with only a single parameter. - # Default: false - skip-single-param: true - - mnd: - # List of function patterns to exclude from analysis. - # Values always ignored: `time.Date`, - # `strconv.FormatInt`, `strconv.FormatUint`, `strconv.FormatFloat`, - # `strconv.ParseInt`, `strconv.ParseUint`, `strconv.ParseFloat`. - # Default: [] - ignored-functions: - - args.Error - - flag.Arg - - flag.Duration.* - - flag.Float.* - - flag.Int.* - - flag.Uint.* - - os.Chmod - - os.Mkdir.* - - os.OpenFile - - os.WriteFile - - prometheus.ExponentialBuckets.* - - prometheus.LinearBuckets - - nakedret: - # Make an issue if func has more lines of code than this setting, and it has naked returns. - # Default: 30 - max-func-lines: 0 - - nolintlint: - # Exclude following linters from requiring an explanation. - # Default: [] - allow-no-explanation: [funlen, gocognit, lll] - # Enable to require an explanation of nonzero length after each nolint directive. - # Default: false - require-explanation: true - # Enable to require nolint directives to mention the specific linter being suppressed. - # Default: false - require-specific: true - - perfsprint: - # Optimizes into strings concatenation. - # Default: true - strconcat: false - - reassign: - # Patterns for global variable names that are checked for reassignment. - # See https://github.com/curioswitch/go-reassign#usage - # Default: ["EOF", "Err.*"] - patterns: - - '.*' - - rowserrcheck: - # database/sql is always checked - # Default: [] - packages: - - github.com/jmoiron/sqlx - - sloglint: - # Enforce not using global loggers. - # Values: - # - "": disabled - # - "all": report all global loggers - # - "default": report only the default slog logger - # https://github.com/go-simpler/sloglint?tab=readme-ov-file#no-global - # Default: "" - no-global: 'all' - # Enforce using methods that accept a context. - # Values: - # - "": disabled - # - "all": report all contextless calls - # - "scope": report only if a context exists in the scope of the outermost function - # https://github.com/go-simpler/sloglint?tab=readme-ov-file#context-only - # Default: "" - context: 'scope' - - usetesting: - # Enable/disable `os.TempDir()` detections. - # Default: false - os-temp-dir: true - -linters: - disable-all: true - enable: - ## enabled by default - - errcheck # checking for unchecked errors, these unchecked errors can be critical bugs in some cases - - gosimple # specializes in simplifying a code - - govet # reports suspicious constructs, such as Printf calls whose arguments do not align with the format string - - ineffassign # detects when assignments to existing variables are not used - - staticcheck # is a go vet on steroids, applying a ton of static analysis checks - - typecheck # like the front-end of a Go compiler, parses and type-checks Go code - - unused # checks for unused constants, variables, functions and types - ## disabled by default - - asasalint # checks for pass []any as any in variadic func(...any) - - asciicheck # checks that your code does not contain non-ASCII identifiers - - bidichk # checks for dangerous unicode character sequences - - bodyclose # checks whether HTTP response body is closed successfully - - canonicalheader # checks whether net/http.Header uses canonical header - - copyloopvar # detects places where loop variables are copied - - cyclop # checks function and package cyclomatic complexity - - depguard # checks if package imports are in a list of acceptable packages - - dupl # tool for code clone detection - - durationcheck # checks for two durations multiplied together - - errname # checks that sentinel errors are prefixed with the Err and error types are suffixed with the Error - - errorlint # finds code that will cause problems with the error wrapping scheme introduced in Go 1.13 - - exhaustive # checks exhaustiveness of enum switch statements - - exptostd # detects functions from golang.org/x/exp/ that can be replaced by std functions - - fatcontext # detects nested contexts in loops - - forbidigo # forbids identifiers - - funlen # tool for detection of long functions - - gocheckcompilerdirectives # validates go compiler directive comments (//go:) - - gochecknoglobals # checks that no global variables exist - - gochecknoinits # checks that no init functions are present in Go code - - gochecksumtype # checks exhaustiveness on Go "sum types" - - gocognit # computes and checks the cognitive complexity of functions - - goconst # finds repeated strings that could be replaced by a constant - - gocritic # provides diagnostics that check for bugs, performance and style issues - - gocyclo # computes and checks the cyclomatic complexity of functions - - godot # checks if comments end in a period - - goimports # in addition to fixing imports, goimports also formats your code in the same style as gofmt - - gomoddirectives # manages the use of 'replace', 'retract', and 'excludes' directives in go.mod - - goprintffuncname # checks that printf-like functions are named with f at the end - - gosec # inspects source code for security problems - - gosmopolitan # report certain i18n/l10n anti-patterns in your Go codebase [fast: false, auto-fix: false] - - iface # checks the incorrect use of interfaces, helping developers avoid interface pollution - - inamedparam # reports interfaces with unnamed method parameters [fast: true, auto-fix: false] - - intrange # finds places where for loops could make use of an integer range - - lll # reports long lines - - loggercheck # checks key value pairs for common logger libraries (kitlog,klog,logr,zap) - - makezero # finds slice declarations with non-zero initial length - - mirror # reports wrong mirror patterns of bytes/strings usage - - mnd # detects magic numbers - - musttag # enforces field tags in (un)marshaled structs - - nakedret # finds naked returns in functions greater than a specified function length - - nestif # reports deeply nested if statements - - nilerr # finds the code that returns nil even if it checks that the error is not nil - - nilnesserr # reports that it checks for err != nil, but it returns a different nil value error (powered by nilness and nilerr) - - nilnil # checks that there is no simultaneous return of nil error and an invalid value - - noctx # finds sending http request without context.Context - - nolintlint # reports ill-formed or insufficient nolint directives - - nonamedreturns # reports all named returns - - nosprintfhostport # checks for misuse of Sprintf to construct a host with port in a URL - - perfsprint # checks that fmt.Sprintf can be replaced with a faster alternative - - predeclared # finds code that shadows one of Go's predeclared identifiers - - promlinter # checks Prometheus metrics naming via promlint - - protogetter # reports direct reads from proto message fields when getters should be used - - reassign # checks that package variables are not reassigned - - recvcheck # checks for receiver type consistency - - revive # fast, configurable, extensible, flexible, and beautiful linter for Go, drop-in replacement of golint - - rowserrcheck # checks whether Err of rows is checked successfully - - sloglint # ensure consistent code style when using log/slog - - spancheck # checks for mistakes with OpenTelemetry/Census spans - - sqlclosecheck # checks that sql.Rows and sql.Stmt are closed - - stylecheck # is a replacement for golint - - tagalign # check that struct tags are well aligned [fast: true, auto-fix: true] - - testableexamples # checks if examples are testable (have an expected output) - - testpackage # makes you use a separate _test package - - tparallel # detects inappropriate usage of t.Parallel() method in your Go test codes - - unconvert # removes unnecessary type conversions - - unparam # reports unused function parameters - - usestdlibvars # detects the possibility to use variables/constants from the Go standard library - - usetesting # reports uses of functions with replacement inside the testing package - - wastedassign # finds wasted assignment statements - - whitespace # detects leading and trailing whitespace - - ## you may want to enable - # - decorder # checks declaration order and count of types, constants, variables and functions - # - exhaustruct # [highly recommend to enable] checks if all structure fields are initialized - # - gci # controls golang package import order and makes it always deterministic - # - ginkgolinter # [if you use ginkgo/gomega] enforces standards of using ginkgo and gomega - # - godox # detects FIXME, TODO and other comment keywords - # - goheader # checks is file header matches to pattern - # - interfacebloat # checks the number of methods inside an interface - # - ireturn # accept interfaces, return concrete types - # - prealloc # [premature optimization, but can be used in some cases] finds slice declarations that could potentially be preallocated - # - testifylint # checks usage of github.com/stretchr/testify. [fast: false, auto-fix: false] - # - varnamelen # [great idea, but too many false positives] checks that the length of a variable's name matches its scope - # - wrapcheck # checks that errors returned from external packages are wrapped - # - zerologlint # detects the wrong usage of zerolog that a user forgets to dispatch zerolog.Event - - ## disabled - # - containedctx # detects struct contained context.Context field - # - contextcheck # [too many false positives] checks the function whether use a non-inherited context - # - dogsled # checks assignments with too many blank identifiers (e.g. x, _, _, _, := f()) - # - dupword # [useless without config] checks for duplicate words in the source code - # - err113 # [too strict] checks the errors handling expressions - # - errchkjson # [don't see profit + I'm against of omitting errors like in the first example https://github.com/breml/errchkjson] checks types passed to the json encoding functions. Reports unsupported types and optionally reports occasions, where the check for the returned error can be omitted - # - forcetypeassert # [replaced by errcheck] finds forced type assertions - # - gofmt # [replaced by goimports] checks whether code was gofmt-ed - # - gofumpt # [replaced by goimports, gofumports is not available yet] checks whether code was gofumpt-ed - # - gomodguard # [use more powerful depguard] allow and block lists linter for direct Go module dependencies - # - grouper # analyzes expression groups - # - importas # enforces consistent import aliases - # - maintidx # measures the maintainability index of each function - # - misspell # [useless] finds commonly misspelled English words in comments - # - nlreturn # [too strict and mostly code is not more readable] checks for a new line before return and branch statements to increase code clarity - # - paralleltest # [too many false positives] detects missing usage of t.Parallel() method in your Go test - # - tagliatelle # checks the struct tags - # - tenv # [deprecated, replaced by usetesting] detects using os.Setenv instead of t.Setenv since Go1.17 - # - thelper # detects golang test helpers without t.Helper() call and checks the consistency of test helpers - # - wsl # [too strict and mostly code is not more readable] whitespace linter forces you to use empty lines - -issues: - # Maximum count of issues with the same text. - # Set to 0 to disable. - # Default: 3 - max-same-issues: 50 - - exclude-rules: - - source: '(noinspection|TODO)' - linters: [godot] - - source: '//noinspection' - linters: [gocritic] - - path: '_test\\.go' - linters: - - bodyclose - - dupl - - errcheck - - funlen - - goconst - - gosec - - noctx - - wrapcheck diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/Makefile b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/Makefile deleted file mode 100644 index 02198b49..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -## test -test: - clear - go fmt ./... - #go test -vet=all -race -count 1 -test.shuffle on -coverprofile cover.out -covermode atomic ./... ./data_packer/... ./liveness/... ./sync_confirm/... ./sync_global/... ./sync_types/... - go test -vet=all -race -count 1 -test.shuffle on -coverprofile cover.out -covermode atomic ./... - #go test -vet=all -race -count 1 -test.shuffle on -coverprofile cover.out -covermode atomic ./data_packer/... - #go test -vet=all -race -count 1 -test.shuffle on -coverprofile cover.out -covermode atomic ./liveness/... - #go test -vet=all -race -count 1 -test.shuffle on -coverprofile cover.out -covermode atomic ./sync_confirm/... - #go test -vet=all -race -count 1 -test.shuffle on -coverprofile cover.out -covermode atomic ./sync_global/... - #go test -vet=all -race -count 1 -test.shuffle on -coverprofile cover.out -covermode atomic ./sync_types/... - go tool cover -func=cover.out - -## mod -mod: - clear - go mod tidy -compat=1.22 - go mod vendor - go fmt ./... - -## commit -commit: - git commit -m "Update version" - git push origin master - git tag "v0.0.31" - git push origin master --tags - -## lint -lint: - clear - go fmt ./... - # wget http://support.aescorp.ru/.golangci.yml - golangci-lint run - #golangci-lint run ./data_packer/... ./sync_confirm/... ./sync_global/... ./sync_types/... - #gocyclo -over 15 ./data_packer/ - #gocyclo -over 15 ./sync_confirm/ - #gocyclo -over 15 ./sync_global/ - #gocyclo -over 15 ./sync_types/ - #gocritic check ./data_packer/... ./sync_confirm/... ./sync_global/... ./sync_types/... - #staticcheck ./data_packer/... ./sync_confirm/... ./sync_global/... ./sync_types/... - -## help -help: - @fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##//' diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/README.md b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/README.md deleted file mode 100644 index 70530da3..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/README.md +++ /dev/null @@ -1,146 +0,0 @@ -# sync_exchange -Пакет для синхронного обмена данными через шину (NATS). - -## Принцип обмена -Сервис пишет в определённый топик шины, подписывается на другой топик (генерируется исходя из названия сервиса и идентификатора пакета) и ожидает сообщение. -Слушающий сервис вычитывает топик, после обработки пакета отправляет ответ. - -## Команды для формирования пакетов -### SyncPackageToJSON -View SyncPackage as JSON string - -### SyncPackageFromJSON -Make SyncPackage from JSON string - -### MakeSyncCommand -Create SyncPackage as command package - -### MakeSyncResult -Create SyncPackage as result package - -### MakeSyncError -Create SyncPackage as error package - -## Команды для обмена -### InitSyncExchange -Функция инициализации подключения к шине - -### DeInitSyncExchange -Функция деинициализации подключения к шине - -### SendMessage -Отправка сообщения в шину без ожидания ответа - -### WaitMessage -Ожидание сообщения из определённого топика из одной очереди. Аналог direct в rabbit. Сообщения будут доставляться по очереди разным подписчикам. -Имя очереди будет дефолтное sync_exchange. - -### QueueSubscribe -Ожидание сообщения из определённого топика из указанной очереди. Аналог direct в rabbit. Сообщения будут доставляться по очереди разным подписчикам. - -### Subscribe -Ожидание сообщения из определённого топика. Аналог fanout в rabbit. Сообщения будут доставляться всем подписчикам. - -### SendRequest -Отправка запроса с ожиданием ответа - -### SendResponse -Отправка ответа на запрос - -## Пример использования -```go -package main - -import ( - "fmt" - "log" - "gitlab.aescorp.ru/dsp_dev/test_area/test_claim/pkg/sync_exchange" - "gitlab.aescorp.ru/dsp_dev/test_area/test_claim/pkg/sync_exchange/sync_types" -) - -func main() { - err := sync_exchange.InitSyncExchange("localhost", "service_name") - if err != nil { - log.Fatal(err) - } - - params := make(map[string]string) - params["something"] = "sometime" - pack := sync_types.MakeSyncCommand("command_1", params) - resp, err := sync_exchange.SendRequest("service_new", pack, 10000) - - fmt.Println(resp.Body.Result["state"]) - - err = sync_exchange.DeInitSyncExchange() - if err != nil { - log.Fatal(err) - } -} -``` - -## Формат пакетов -### Команда MakeSyncCommand -```json -{ - "head": { - "destVer": "1.0", - "sender": "service_1", - "netID": "810c8afd-6f88-4670-acf1-248fec76f2eb", - "created": "2022-08-16 10:00:44.292" - }, - "body": { - "command": "new_command", - "params": { - "key1": "value1", - "key2": "value2", - "key3": "value3" - }, - "error": { - "place": "", - "code": 0, - "message": "" - } - } -} -``` -### Команда MakeSyncResult -```json -{ - "head": { - "destVer": "1.0", - "sender": "service_1", - "netID": "c10386f7-1601-49e1-b4ca-a3d856b72af9", - "created": "2022-08-16 10:01:32.888" - }, - "body": { - "result": { - "key1": "value1", - "key2": "value2", - "key3": "value3" - }, - "error": { - "place": "", - "code": 0, - "message": "" - } - } -} -``` -### Команда MakeSyncError -```json -{ - "head": { - "destVer": "1.0", - "sender": "service_1", - "netID": "0b2e1b8e-f187-4b9d-bea8-23f951177933", - "created": "2022-08-16 09:58:47.206" - }, - "body": { - "error": { - "place": "error place", - "code": 123, - "message": "error message" - } - } -} -``` diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/data_packer/data_packer.go b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/data_packer/data_packer.go deleted file mode 100644 index 0eefbb65..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/data_packer/data_packer.go +++ /dev/null @@ -1,53 +0,0 @@ -// Package data_packer -- компрессор данных движка хранилища -package data_packer - -import ( - "fmt" - "github.com/klauspost/compress/zstd" -) - -// DataPacker -- архиватор данных движка хранилища -type DataPacker struct { - enc *zstd.Encoder - dec *zstd.Decoder -} - -// NewDataPacker -- возвращает новый *DataPacker -func NewDataPacker() *DataPacker { - dp := &DataPacker{} - - dp.enc, _ = zstd.NewWriter(nil, zstd.WithEncoderLevel(zstd.SpeedBetterCompression)) - dp.dec, _ = zstd.NewReader(nil) - - return dp -} - -func (dp *DataPacker) Close() error { - var errs []error - - if dp.enc != nil { - if err := dp.enc.Close(); err != nil { - errs = append(errs, fmt.Errorf("encoder close: %w", err)) - } - } - - if dp.dec != nil { - dp.dec.Close() - } - - // Возвращаем первую ошибку (если есть) - if len(errs) > 0 { - return errs[0] - } - return nil -} - -// Pack -- сжимает данные для сохранения -func (dp *DataPacker) Pack(binIn []byte) (binOut []byte, err error) { - return dp.enc.EncodeAll(binIn, nil), nil -} - -// Unpack -- разжимает данные для отдачи -func (dp *DataPacker) Unpack(binIn []byte) ([]byte, error) { - return dp.dec.DecodeAll(binIn, nil) -} diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/liveness/liveness.go b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/liveness/liveness.go deleted file mode 100644 index 250626cb..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/liveness/liveness.go +++ /dev/null @@ -1,34 +0,0 @@ -package liveness - -import ( - "fmt" - "github.com/nats-io/nats.go" - "log" - "time" -) - -func RunLiveness(nc *nats.Conn, service string, version string) { - id, err := nc.GetClientID() - if err != nil { - id = 0 - } - - const topic = "sync_exchange.liveness" - - log.Printf("[INFO] sync_exchange, RunLiveness, client id: %v, topic: %q, service: %q, version: %q", id, topic, service, version) - - data := fmt.Sprintf("{%q: %q, %q: %q, %q: %v}", - "service", service, - "version", version, - "client_id", id) - - for { - err := nc.Publish(topic, []byte(data)) - if err != nil { - log.Printf("[ERROR] RunLiveness, data: %v, message: %v", data, err) - return - } - - time.Sleep(30 * time.Second) - } -} diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_confirm/no_confirm.go b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_confirm/no_confirm.go deleted file mode 100644 index ab016e33..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_confirm/no_confirm.go +++ /dev/null @@ -1,52 +0,0 @@ -package sync_confirm - -type NoConfirmer struct{} - -func NewNoConfirmer(path string) (h Confirmer, err error) { - block.Lock() - defer block.Unlock() - if confirmer == nil { - var sc NoConfirmer - confirmer = &sc - } - - return confirmer, err -} - -func (s *NoConfirmer) getIsInited() bool { - block.RLock() - defer block.RUnlock() - return confirmer != nil -} - -func (s *NoConfirmer) DeInitConfirm() error { - block.Lock() - defer block.Unlock() - - if confirmer == nil { - return nil - } - - confirmer = nil - return nil -} - -func (s *NoConfirmer) NewConfirmation(netID string, wait bool) error { - return nil -} - -func (s *NoConfirmer) GetConfirmation(netID string) (*Confirmation, error) { - return nil, nil -} - -func (s *NoConfirmer) MakeConfirmation(netID string, b bool) error { - return nil -} - -func (s *NoConfirmer) SentConfirmation(netID string, b bool) error { - return nil -} - -func (s *NoConfirmer) RecvConfirmation(netID string, b bool) error { - return nil -} diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_confirm/sync_confirm.go b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_confirm/sync_confirm.go deleted file mode 100644 index 450188ac..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_confirm/sync_confirm.go +++ /dev/null @@ -1,207 +0,0 @@ -package sync_confirm - -import ( - "encoding/json" - "errors" - "fmt" - "sync" - "time" - - "github.com/syndtr/goleveldb/leveldb" - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_global" -) - -type Confirmation struct { - Request string - Response string - CreateAt time.Time - Wait bool - WaitDuration time.Time - Make bool - MakeAt time.Time - Sent bool - SentAt time.Time - Recv bool - RecvAt time.Time -} - -type Confirmer interface { - DeInitConfirm() error - NewConfirmation(netID string, wait bool) error - GetConfirmation(netID string) (*Confirmation, error) - MakeConfirmation(netID string, b bool) error - SentConfirmation(netID string, b bool) error - RecvConfirmation(netID string, b bool) error -} - -type SyncConfirmer struct { - db *leveldb.DB -} - -var confirmer Confirmer -var block sync.RWMutex - -func NewSyncConfirmer(path string) (h Confirmer, err error) { - block.Lock() - defer block.Unlock() - if confirmer == nil { - var sc SyncConfirmer - _db, err := leveldb.OpenFile(fmt.Sprintf("%s/%s.db", path, sync_global.SyncService()), nil) - if err != nil { - return nil, err - } - sc.db = _db - confirmer = &sc - } - - return confirmer, err -} - -func (s *SyncConfirmer) getIsInited() bool { - block.RLock() - defer block.RUnlock() - return confirmer != nil -} - -func (s *SyncConfirmer) DeInitConfirm() error { - block.Lock() - defer block.Unlock() - - if confirmer == nil { - return nil - } - - err := s.db.Close() - if err != nil { - return fmt.Errorf("DeInitConfirm, Close, error: %v", err) - } - - s.db = nil - confirmer = nil - - return nil -} - -func (s *SyncConfirmer) NewConfirmation(netID string, wait bool) error { - if !s.getIsInited() { - return errors.New("NewConfirmation, not inited") - } - - conf := Confirmation{ - CreateAt: time.Now(), - Wait: wait, - } - - value, err := json.Marshal(conf) - if err != nil { - return err - } - - err = s.db.Put([]byte(netID), value, nil) - if err != nil { - return err - } - - return nil -} - -func (s *SyncConfirmer) GetConfirmation(netID string) (*Confirmation, error) { - if !s.getIsInited() { - return nil, fmt.Errorf("GetConfirmation, not inited") - } - - value, err := s.db.Get([]byte(netID), nil) - if err != nil { - return nil, err - } - - conf := Confirmation{} - err = json.Unmarshal(value, &conf) - if err != nil { - return nil, fmt.Errorf("GetConfirmation(): in unmarshall JSON, err=%w", err) - } - - return &conf, nil -} - -func (s *SyncConfirmer) MakeConfirmation(netID string, b bool) error { - if !s.getIsInited() { - return fmt.Errorf("MakeConfirmation, not inited") - } - - c, err := s.GetConfirmation(netID) - if err != nil { - return err - } - - c.Make = b - c.MakeAt = time.Now() - - value, err := json.Marshal(c) - if err != nil { - return err - } - - err = s.db.Put([]byte(netID), value, nil) - if err != nil { - return err - } - - return nil -} - -func (s *SyncConfirmer) SentConfirmation(netID string, b bool) error { - if !s.getIsInited() { - return fmt.Errorf("SentConfirmation, not inited") - } - - if s.db == nil { - return fmt.Errorf("db is not inited") - } - - c, err := s.GetConfirmation(netID) - if err != nil { - return err - } - - c.Sent = b - c.SentAt = time.Now() - - value, err := json.Marshal(c) - if err != nil { - return err - } - - err = s.db.Put([]byte(netID), value, nil) - if err != nil { - return err - } - - return nil -} - -func (s *SyncConfirmer) RecvConfirmation(netID string, b bool) error { - if !s.getIsInited() { - return fmt.Errorf("RecvConfirmation, not inited") - } - - c, err := s.GetConfirmation(netID) - if err != nil { - return err - } - - c.Recv = b - c.RecvAt = time.Now() - - value, err := json.Marshal(c) - if err != nil { - return err - } - - err = s.db.Put([]byte(netID), value, nil) - if err != nil { - return err - } - - return nil -} diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_exchange.go b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_exchange.go deleted file mode 100644 index 0f960698..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_exchange.go +++ /dev/null @@ -1,428 +0,0 @@ -package sync_exchange - -import ( - "errors" - "fmt" - "github.com/nats-io/nats.go" - "log" - "os" - "strings" - "sync" - "time" - - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/data_packer" - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/liveness" - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_confirm" - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_global" - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_types" -) - -// PRIVATE - -var ( - nc *nats.Conn - packer *data_packer.DataPacker - block sync.RWMutex - block1 sync.Mutex - isInited bool - confirmer sync_confirm.Confirmer -) - -func GetUseConfirmerEnv() bool { - val, ok := os.LookupEnv("SYNC_EXCHANGE_USE_CONFIRMER") - if !ok { - return false - } - return strings.EqualFold("true", val) -} - -func fullTopic(topic string) string { - return sync_global.SyncRoot + topic + "/" -} - -func setIsInited(b bool) { - block.Lock() - defer block.Unlock() - isInited = b -} - -func getIsInited() bool { - block.RLock() - defer block.RUnlock() - return isInited -} - -// doSendMessage Непосредственно отправка сообщения -func doSendMessage(topic string, pack sync_types.SyncPackage, wait bool) error { - // Новое сообщение - err := confirmer.NewConfirmation(pack.Head.NetID, wait) - if err != nil { - // TODO: Лог - return fmt.Errorf("doSendMessage, Error: %v", err) - } - - // Получаем JSON - rawData, err := sync_types.SyncPackageToJSON(&pack) - if err != nil { - // Создание сообщения неудачно - err1 := confirmer.MakeConfirmation(pack.Head.NetID, false) - if err1 != nil { - return fmt.Errorf("doSendMessage, Error: %v, Error1: %v", err, err1) - } - return fmt.Errorf("doSendMessage, Error: %v", err) - } - // Пакуем сообщение - data, err := packer.Pack([]byte(rawData)) - if err != nil { - // Упаковка сообщения неудачна - err1 := confirmer.MakeConfirmation(pack.Head.NetID, false) - if err1 != nil { - return fmt.Errorf("doSendMessage, Error: %v, Error1: %v", err, err1) - } - return fmt.Errorf("doSendMessage, Error: %v", err) - } - // Создание сообщения удачно - err = confirmer.MakeConfirmation(pack.Head.NetID, true) - if err != nil { - return fmt.Errorf("doSendMessage, Error: %v", err) - } - - // Отправка сообщения - err = nc.Publish(topic, data) - if err != nil { - // Отправка сообщения неудачна - err1 := confirmer.SentConfirmation(pack.Head.NetID, false) - if err1 != nil { - return fmt.Errorf("doSendMessage, Error: %v, Error1: %v", err, err1) - } - return fmt.Errorf("doSendMessage, Error: %v", err) - } - // Отправка сообщения удачна - err = confirmer.SentConfirmation(pack.Head.NetID, true) - if err != nil { - return fmt.Errorf("doSendMessage, Error: %v", err) - } - - return nil -} - -// doWaitMessage Ожидание сообщения -func doWaitMessage(topic string, queue string, callback Callback) error { - // log.Printf("[INFO] WaitMessage, topic: %s\n", topic) - - _, err := nc.QueueSubscribe(topic, queue, func(msg *nats.Msg) { - _data, _ := packer.Unpack(msg.Data) - pack, err := sync_types.SyncPackageFromJSON(string(_data)) - pack.Msg = msg - if err != nil { - log.Println(err) - return - } - - go callback(&pack) - }) - - if err != nil { - return fmt.Errorf("doWaitMessage, Error: %v", err) - } - - return nil -} - -// PUBLIC - -// Callback Функция возврата для подписки на события шины -type Callback func(pack *sync_types.SyncPackage) - -// InitSyncExchange Функция инициализации подключения к шине -func InitSyncExchange(url string, serviceName string, version string) error { - block1.Lock() - defer block1.Unlock() - - log.Printf("[INFO] sync_exchange, InitSyncExchange, url: %v, service: %v, version: %v", url, serviceName, version) - - if getIsInited() { - log.Println("[INFO] sync_exchange, InitSyncExchange, already inited") - return nil - } - - err := sync_global.SetSyncService(serviceName) - if err != nil { - return fmt.Errorf("InitSyncExchange, SetSyncService, error: %v", err) - } - - _packer := data_packer.NewDataPacker() - packer = _packer - - _nc, err := nats.Connect(url, nats.Name(serviceName)) - if err != nil { - return fmt.Errorf("InitSyncExchange, Connect, error: %v", err) - } - nc = _nc - - status := nc.Status() - switch status { - case nats.DISCONNECTED, nats.CLOSED: - return fmt.Errorf("InitSyncExchange, NATS connection status: %v", status.String()) - default: - log.Printf("[INFO] sync_exchange, InitSyncExchange, NATS connection status: %v\n", status.String()) - } - - // TODO Вынести путь в параметр функции - storePath := "./store" - // TODO Тут обработать не подтверждённые пакеты - - if GetUseConfirmerEnv() { - confirmer, err = sync_confirm.NewSyncConfirmer(storePath) - } else { - confirmer, err = sync_confirm.NewNoConfirmer(storePath) - } - if err != nil { - return fmt.Errorf("InitSyncExchange, NewConfirmer, path: %q, error: %v", storePath, err) - } - - setIsInited(true) - - go liveness.RunLiveness(nc, serviceName, version) - - return nil -} - -// DeInitSyncExchange Функция де-инициализации подключения к шине -func DeInitSyncExchange() error { - block1.Lock() - defer block1.Unlock() - - if !getIsInited() { - return fmt.Errorf("DeInitSyncExchange, not inited") - } - defer setIsInited(false) - - nc.Close() - - err := confirmer.DeInitConfirm() - if err != nil { - return fmt.Errorf("DeInitSyncExchange, DeInitConfirm, error: %v", err) - } - - nc = nil - packer = nil - - return nil -} - -// SendMessage Отправка сообщения в шину без ожидания ответа -func SendMessage(topic string, pack sync_types.SyncPackage) error { - block1.Lock() - defer block1.Unlock() - - if !getIsInited() { - return fmt.Errorf("SendMessage, not inited") - } - - err := doSendMessage(topic, pack, false) - if err != nil { - return fmt.Errorf("SendMessage, Error: %v", err) - } - - return nil -} - -// WaitMessage Ожидание сообщения из определённого топика -func WaitMessage(topic string, callback Callback) error { - if !getIsInited() { - return fmt.Errorf("WaitMessage, not inited") - } - - _topic := topic - if !strings.HasPrefix(_topic, sync_global.SyncRoot) { - _topic = fullTopic(topic) - } - - return doWaitMessage(_topic, sync_global.SyncQueue, callback) -} - -// QueueSubscribe Ожидание сообщения из определённого топика -func QueueSubscribe(topic string, queue string, callback Callback) error { - if !getIsInited() { - return fmt.Errorf("WaitMessage, not inited") - } - - return doWaitMessage(topic, queue, callback) -} - -// Subscribe Ожидание сообщения из определённого топика -func Subscribe(topic string, callback Callback) error { - if !getIsInited() { - return fmt.Errorf("subscribe, not inited") - } - - _, err := nc.Subscribe(topic, func(msg *nats.Msg) { - _data, _ := packer.Unpack(msg.Data) - pack, err := sync_types.SyncPackageFromJSON(string(_data)) - pack.Msg = msg - if err != nil { - log.Println(err) - return - } - go callback(&pack) - }) - - if err != nil { - return fmt.Errorf("subscribe, Error: %v", err) - } - - return nil -} - -// SendRequest Отправка запроса с ожиданием ответа -func SendRequest(receiver string, pack sync_types.SyncPackage, timeout int) (result sync_types.SyncPackage, err error) { - result = sync_types.MakeSyncError("", 0, "") - - if !getIsInited() { - return result, fmt.Errorf("SendRequest, not inited") - } - - // Новое сообщение - if err = confirmer.NewConfirmation(pack.Head.NetID, true); err != nil { - log.Printf("[ERROR] SendRequest, NewConfirmation error: %s\n", err.Error()) - } - - _topic := fullTopic(receiver) - - rawData, err := sync_types.SyncPackageToJSON(&pack) - if err != nil { - // Создание сообщения неудачно - if err1 := confirmer.MakeConfirmation(pack.Head.NetID, false); err1 != nil { - log.Printf("[ERROR] SendRequest, SyncPackageToJSON error: %s, MakeConfirmation error: %s\n", err.Error(), err1.Error()) - } - log.Printf("[ERROR] SendRequest, SyncPackageToJSON error: %s\n", err.Error()) - return result, err - } - - // Пакуем сообщение - data, err := packer.Pack([]byte(rawData)) - if err != nil { - // Упаковка сообщения неудачна - if err1 := confirmer.MakeConfirmation(pack.Head.NetID, false); err1 != nil { - log.Printf("[ERROR] SendRequest, Pack error: %s, MakeConfirmation error: %s\n", err.Error(), err1.Error()) - } - log.Printf("[ERROR] SendRequest, Pack error: %s\n", err.Error()) - return result, err - } - - // Создание сообщения удачно - if err = confirmer.MakeConfirmation(pack.Head.NetID, true); err != nil { - log.Printf("[ERROR] SendRequest ok, MakeConfirmation error: %s\n", err.Error()) - } - - if timeout == -1 { - timeout = 24 * 60 * 60 * 1000 - } - - msg, err := nc.Request(_topic, data, time.Duration(timeout)*time.Second) - if err != nil { - if err1 := confirmer.SentConfirmation(pack.Head.NetID, false); err1 != nil { - log.Printf("[ERROR] SendRequest (%v), Request error: %s, SentConfirmation error: %s\n", _topic, err.Error(), err1.Error()) - } - log.Printf("[ERROR] SendRequest (%v), Request error: %s\n", _topic, err.Error()) - return result, err - } - - // Отправка сообщения удачна - if err = confirmer.SentConfirmation(pack.Head.NetID, true); err != nil { - log.Printf("[ERROR] SendRequest, Request ok, SentConfirmation error: %s\n", err.Error()) - } - - _data, err := packer.Unpack(msg.Data) - if err != nil { - log.Printf("[ERROR] SendRequest, Unpack, error: %s\n", err.Error()) - return result, err - } - result, err = sync_types.SyncPackageFromJSON(string(_data)) - if err != nil { - log.Printf("[ERROR] SendRequest, SyncPackageFromJSON, error: %s\n", err.Error()) - result.Body.Error.Code = 3 - if errors.Is(err, nats.ErrTimeout) { - result.Body.Error.Code = 4 - } - return result, err - } - - if err = confirmer.RecvConfirmation(pack.Head.NetID, true); err != nil { - log.Printf("[ERROR] SendRequest, Request ok, RecvConfirmation error: %s\n", err.Error()) - } - - return result, nil -} - -// SendResponse Отправка ответа на запрос -func SendResponse(packIn *sync_types.SyncPackage, packOut sync_types.SyncPackage) error { - if !getIsInited() { - return fmt.Errorf("SendResponse, not inited") - } - - if packOut.Body.Result == nil { - packOut.Body.Result = make(sync_types.SyncResult) - } - packOut.Body.Result["netID"] = packIn.Head.NetID - - // Новое сообщение - if err := confirmer.NewConfirmation(packIn.Head.NetID, true); err != nil { - log.Printf("[ERROR] SendResponse, NewConfirmation error: %s\n", err.Error()) - } - - msg := packIn.Msg - if msg == nil { - return fmt.Errorf("SendResponse, Error: packIn.Msg is nil") - } - - rawData, err := sync_types.SyncPackageToJSON(&packOut) - if err != nil { - // Создание сообщения неудачно - if err1 := confirmer.MakeConfirmation(packIn.Head.NetID, false); err1 != nil { - log.Printf("[ERROR] SendResponse, SyncPackageToJSON error: %s, MakeConfirmation error: %s\n", err.Error(), err1.Error()) - } - log.Printf("[ERROR] SendResponse SyncPackageToJSON error: %s\n", err.Error()) - return fmt.Errorf("SendResponse, SyncPackageToJSON error: %v", err) - } - // Пакуем сообщение - data, err := packer.Pack([]byte(rawData)) - if err != nil { - // Упаковка сообщения неудачна - if err1 := confirmer.MakeConfirmation(packIn.Head.NetID, false); err1 != nil { - log.Printf("[ERROR] SendResponse Pack error: %s, MakeConfirmation error: %s\n", err.Error(), err1.Error()) - } - log.Printf("[ERROR] SendResponse, Pack error: %s\n", err.Error()) - return fmt.Errorf("SendResponse, Pack error: %v", err) - } - - err = msg.Respond(data) - if err != nil { - if err1 := confirmer.SentConfirmation(packIn.Head.NetID, false); err1 != nil { - log.Printf("[ERROR] SendResponse, Respond error: %s, SentConfirmation error: %s\n", err.Error(), err1.Error()) - } - log.Printf("[ERROR] SendResponse, Respond error: %s\n", err.Error()) - return fmt.Errorf("SendResponse, Respond error: %v", err) - } - - // Отправка сообщения удачна - if err = confirmer.SentConfirmation(packIn.Head.NetID, true); err != nil { - log.Printf("[ERROR] SendResponse ok, SentConfirmation error: %s\n", err.Error()) - } - - return nil -} - -func SendRawMessage(topic string, data []byte) error { - if !getIsInited() { - return fmt.Errorf("SendRawMessage, not inited") - } - - // Отправка сообщения - err := nc.Publish(topic, data) - if err != nil { - return fmt.Errorf("SendRawMessage, Error: %v", err) - } - return nil -} diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_exchange_interface.go b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_exchange_interface.go deleted file mode 100644 index 6a433407..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_exchange_interface.go +++ /dev/null @@ -1,53 +0,0 @@ -package sync_exchange - -import ( - "sync" - - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_types" -) - -type ISyncExchange interface { - InitSyncExchange(url string, serviceName string, version string) error - DeInitSyncExchange() error - SendMessage(topic string, pack sync_types.SyncPackage) error - WaitMessage(topic string, callback Callback) error - Subscribe(topic string, callback Callback) error - SendRequest(receiver string, pack sync_types.SyncPackage, timeout int) (result sync_types.SyncPackage, err error) - SendResponse(packIn *sync_types.SyncPackage, packOut sync_types.SyncPackage) error -} - -type SSyncExhange struct{} - -var New = sync.OnceValue(func() ISyncExchange { - var h = SSyncExhange{} - - return &h -}) - -func (s *SSyncExhange) InitSyncExchange(url string, serviceName string, version string) error { - return InitSyncExchange(url, serviceName, version) -} - -func (s *SSyncExhange) DeInitSyncExchange() error { - return DeInitSyncExchange() -} - -func (s *SSyncExhange) SendMessage(topic string, pack sync_types.SyncPackage) error { - return SendMessage(topic, pack) -} - -func (s *SSyncExhange) WaitMessage(topic string, callback Callback) error { - return WaitMessage(topic, callback) -} - -func (s *SSyncExhange) Subscribe(topic string, callback Callback) error { - return Subscribe(topic, callback) -} - -func (s *SSyncExhange) SendRequest(receiver string, pack sync_types.SyncPackage, timeout int) (result sync_types.SyncPackage, err error) { - return SendRequest(receiver, pack, timeout) -} - -func (s *SSyncExhange) SendResponse(packIn *sync_types.SyncPackage, packOut sync_types.SyncPackage) error { - return SendResponse(packIn, packOut) -} diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_global/sync_global.go b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_global/sync_global.go deleted file mode 100644 index a1fcf97d..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_global/sync_global.go +++ /dev/null @@ -1,36 +0,0 @@ -package sync_global - -import ( - "fmt" - "strings" - "sync" -) - -const ( - SyncRoot = "/claim_reqrepl/" - SyncQueue = "sync_exchange" - SyncDestVer = "1.0" -) - -var ( - block sync.RWMutex - syncService = "unknown_service" -) - -// SyncService -- возвращает имя сервиса для сетевого обмена по локальной шине -func SyncService() string { - block.RLock() - defer block.RUnlock() - return syncService -} - -// SetSyncService -- устанавливает имя сервиса для сетевого обмена по локальной шине -func SetSyncService(name string) error { - block.Lock() - defer block.Unlock() - if strings.Trim(name, " ") == "" { - return fmt.Errorf("SetSyncService(): name(%q) is bad", name) - } - syncService = name - return nil -} diff --git a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_types/sync_types.go b/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_types/sync_types.go deleted file mode 100644 index 927b6ba1..00000000 --- a/vendor/gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_types/sync_types.go +++ /dev/null @@ -1,157 +0,0 @@ -package sync_types - -import ( - "encoding/json" - "fmt" - "time" - - "github.com/google/uuid" - "github.com/nats-io/nats.go" - "gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_global" -) - -// SyncPackage Пакет. Содержит заголовок и тело. -type SyncPackage struct { - Head SyncHead `json:"head"` - Body SyncBody `json:"body"` - Msg *nats.Msg `json:"-"` -} - -// SyncHead Заголовок пакета. Содержит данные для идентификации. -type SyncHead struct { - DestVer string `json:"SyncDestVer"` - Sender string `json:"sender"` - NetID string `json:"netID"` - Created string `json:"created"` -} - -// SyncBody Тело пакета. Содержит подобъекты согласно назначению. -type SyncBody struct { - Command string `json:"command,omitempty"` - Params SyncParams `json:"params,omitempty"` - Result SyncResult `json:"result,omitempty"` - Error SyncError `json:"error,omitempty"` - Object SyncObject `json:"object,omitempty"` -} - -// SyncParams Параметры команды. -type SyncParams map[string]interface{} - -// SyncResult Результат выполнения команды. -type SyncResult map[string]interface{} - -// SyncError Структура содержащая ошибку. -type SyncError struct { - Place string `json:"place"` - Code int `json:"code"` - Message string `json:"message"` -} - -// SyncObject Объектная модель. -type SyncObject []byte - -func makeSyncHead(sender string) SyncHead { - dt := time.Now().Local().Format("2006-01-02 15:04:05.000") - - id := uuid.New().String() - - result := SyncHead{sync_global.SyncDestVer, sender, id, dt} - - return result -} - -// IsValid Validate SyncPackage header -func (p *SyncPackage) IsValid() bool { - _ver := sync_global.SyncDestVer - return p.Head.DestVer == _ver -} - -// IsCommand Check SyncPackage is command package -func (p *SyncPackage) IsCommand() bool { - return p.Body.Command != "" -} - -// IsResult Check SyncPackage is result package -func (p *SyncPackage) IsResult() bool { - return len(p.Body.Result) != 0 -} - -// IsError Check SyncPackage is error package -func (p *SyncPackage) IsError() bool { - return (p.Body.Error.Code != 0) || (p.Body.Error.Message != "") -} - -// SyncPackageToJSON View SyncPackage as JSON string -func SyncPackageToJSON(p *SyncPackage) (string, error) { - if p == nil { - return "", fmt.Errorf("SyncPackage is nil") - } - - result, err := json.Marshal(p) - if err != nil { - return "", err - } - - // DEBUG - // log.Println(string(result)) - - return string(result), nil -} - -// SyncPackageFromJSON Make SyncPackage from JSON string -func SyncPackageFromJSON(msg string) (SyncPackage, error) { - // DEBUG - // log.Println(string(msg)) - - result := SyncPackage{} - err := json.Unmarshal([]byte(msg), &result) - if err != nil { - return result, fmt.Errorf("SyncPackageFromJSON(): in unmarshall JSON, err=%w", err) - } - - return result, nil -} - -func NewSyncParams() SyncParams { - return make(SyncParams) -} - -func NewSyncResult() SyncResult { - return make(SyncResult) -} - -// MakeSyncCommand Create SyncPackage as command package -func MakeSyncCommand(command string, params SyncParams) SyncPackage { - _head := makeSyncHead(sync_global.SyncService()) - _body := SyncBody{Command: command, Params: params} - _result := SyncPackage{_head, _body, nil} - - return _result -} - -// MakeSyncResult Create SyncPackage as result package -func MakeSyncResult(result SyncResult) SyncPackage { - _head := makeSyncHead(sync_global.SyncService()) - _body := SyncBody{Result: result} - _result := SyncPackage{_head, _body, nil} - - return _result -} - -// MakeSyncError Create SyncPackage as error package -func MakeSyncError(place string, code int, message string) SyncPackage { - _head := makeSyncHead(sync_global.SyncService()) - _body := SyncBody{Error: SyncError{place, code, message}} - _result := SyncPackage{_head, _body, nil} - - return _result -} - -// MakeSyncObject Create SyncPackage as object package -func MakeSyncObject(object *SyncObject) SyncPackage { - _head := makeSyncHead(sync_global.SyncService()) - _body := SyncBody{Object: *object} - _result := SyncPackage{_head, _body, nil} - - return _result -} diff --git a/vendor/go.mau.fi/util/dbutil/log.go b/vendor/go.mau.fi/util/dbutil/log.go index 918c79b7..017420f7 100644 --- a/vendor/go.mau.fi/util/dbutil/log.go +++ b/vendor/go.mau.fi/util/dbutil/log.go @@ -3,6 +3,7 @@ package dbutil import ( "context" "regexp" + "runtime" "strings" "time" @@ -92,12 +93,14 @@ func (z zeroLogger) DoUpgrade(from, to int, message string, txn TxnMode) { var whitespaceRegex = regexp.MustCompile(`\s+`) +var GlobalSafeQueryLog bool + func (z zeroLogger) QueryTiming(ctx context.Context, method, query string, args []any, nrows int, duration time.Duration, err error) { log := zerolog.Ctx(ctx) if log.GetLevel() == zerolog.Disabled || log == zerolog.DefaultContextLogger { log = z.l } - if (!z.TraceLogAllQueries || log.GetLevel() != zerolog.TraceLevel) && duration < 1*time.Second { + if (!z.TraceLogAllQueries || log.GetLevel() != zerolog.TraceLevel) && !GlobalSafeQueryLog && duration < 1*time.Second { return } if nrows > -1 { @@ -105,13 +108,32 @@ func (z zeroLogger) QueryTiming(ctx context.Context, method, query string, args log = &rowLog } query = strings.TrimSpace(whitespaceRegex.ReplaceAllLiteralString(query, " ")) - log.Trace(). - Err(err). - Int64("duration_µs", duration.Microseconds()). - Str("method", method). - Str("query", query). - Interface("query_args", args). - Msg("Query") + callerSkipFrame := z.CallerSkipFrame + if GlobalSafeQueryLog || duration > 1*time.Second { + for ; callerSkipFrame < 10; callerSkipFrame++ { + _, filename, _, _ := runtime.Caller(callerSkipFrame) + if !strings.Contains(filename, "/dbutil/") { + break + } + } + } + if GlobalSafeQueryLog { + log.Debug(). + Err(err). + Int64("duration_µs", duration.Microseconds()). + Str("method", method). + Str("query", query). + Caller(callerSkipFrame). + Msg("Query") + } else { + log.Trace(). + Err(err). + Int64("duration_µs", duration.Microseconds()). + Str("method", method). + Str("query", query). + Interface("query_args", args). + Msg("Query") + } if duration >= 1*time.Second { evt := log.Warn(). Float64("duration_seconds", duration.Seconds()). @@ -119,7 +141,7 @@ func (z zeroLogger) QueryTiming(ctx context.Context, method, query string, args Str("method", method). Str("query", query) if z.Caller { - evt = evt.Caller(z.CallerSkipFrame) + evt = evt.Caller(callerSkipFrame) } evt.Msg("Query took long") } diff --git a/vendor/go.mau.fi/util/dbutil/transaction.go b/vendor/go.mau.fi/util/dbutil/transaction.go index d010ea5e..7abd329a 100644 --- a/vendor/go.mau.fi/util/dbutil/transaction.go +++ b/vendor/go.mau.fi/util/dbutil/transaction.go @@ -120,7 +120,11 @@ func (db *Database) DoTxn(ctx context.Context, opts *TxnOptions, fn func(ctx con log.Trace().Err(err).Msg("Failed to begin transaction") return exerrors.NewDualError(ErrTxnBegin, err) } - log.Trace().Msg("Transaction started") + logLevel := zerolog.TraceLevel + if GlobalSafeQueryLog { + logLevel = zerolog.DebugLevel + } + log.WithLevel(logLevel).Msg("Transaction started") tx.noTotalLog = true ctx = log.WithContext(ctx) ctx = context.WithValue(ctx, db.txnCtxKey, tx) @@ -131,16 +135,16 @@ func (db *Database) DoTxn(ctx context.Context, opts *TxnOptions, fn func(ctx con if rollbackErr != nil { log.Warn().Err(rollbackErr).Msg("Rollback after transaction error failed") } else { - log.Trace().Msg("Rollback successful") + log.WithLevel(logLevel).Msg("Rollback successful") } return err } err = tx.Commit() if err != nil { - log.Trace().Err(err).Msg("Commit failed") + log.WithLevel(logLevel).Err(err).Msg("Commit failed") return exerrors.NewDualError(ErrTxnCommit, err) } - log.Trace().Msg("Commit successful") + log.WithLevel(logLevel).Msg("Commit successful") return nil } diff --git a/vendor/go.mau.fi/util/exmaps/clone.go b/vendor/go.mau.fi/util/exmaps/clone.go new file mode 100644 index 00000000..4ae98815 --- /dev/null +++ b/vendor/go.mau.fi/util/exmaps/clone.go @@ -0,0 +1,19 @@ +// Copyright (c) 2025 Tulir Asokan +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +package exmaps + +import ( + "maps" +) + +// NonNilClone returns a copy of the given map, or an empty map if the input is nil. +func NonNilClone[Key comparable, Value any](m map[Key]Value) map[Key]Value { + if m == nil { + return make(map[Key]Value) + } + return maps.Clone(m) +} diff --git a/vendor/go.mau.fi/util/exmaps/set.go b/vendor/go.mau.fi/util/exmaps/set.go new file mode 100644 index 00000000..45af2307 --- /dev/null +++ b/vendor/go.mau.fi/util/exmaps/set.go @@ -0,0 +1,89 @@ +// Copyright (c) 2025 Tulir Asokan +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +package exmaps + +import ( + "iter" +) + +// AbstractSet is an interface implemented by [Set] and [exsync.Set] +type AbstractSet[T comparable] interface { + Add(item T) bool + Has(item T) bool + Pop(item T) bool + Remove(item T) + Size() int + AsList() []T + Iter() iter.Seq[T] +} + +type empty = struct{} + +var emptyVal = empty{} + +// Set is a generic set type based on a map. It is not thread-safe, use [exsync.Set] for a thread-safe variant. +type Set[T comparable] map[T]empty + +var _ AbstractSet[int] = (Set[int])(nil) + +func NewSetWithItems[T comparable](items []T) Set[T] { + s := make(Set[T], len(items)) + for _, item := range items { + s[item] = emptyVal + } + return s +} + +func (s Set[T]) Size() int { + return len(s) +} + +func (s Set[T]) Add(item T) bool { + _, exists := s[item] + if !exists { + s[item] = emptyVal + return true + } + return false +} + +func (s Set[T]) Remove(item T) { + delete(s, item) +} + +func (s Set[T]) Pop(item T) bool { + _, exists := s[item] + if exists { + delete(s, item) + } + return exists +} + +func (s Set[T]) Has(item T) bool { + _, exists := s[item] + return exists +} + +func (s Set[T]) AsList() []T { + result := make([]T, len(s)) + i := 0 + for item := range s { + result[i] = item + i++ + } + return result +} + +func (s Set[T]) Iter() iter.Seq[T] { + return func(yield func(T) bool) { + for item := range s { + if !yield(item) { + return + } + } + } +} diff --git a/vendor/go.mau.fi/util/exslices/delete.go b/vendor/go.mau.fi/util/exslices/delete.go new file mode 100644 index 00000000..877226b6 --- /dev/null +++ b/vendor/go.mau.fi/util/exslices/delete.go @@ -0,0 +1,38 @@ +// Copyright (c) 2025 Tulir Asokan +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +package exslices + +import ( + "slices" +) + +// FastDeleteIndex deletes the item at the given index without preserving slice order. +// This is faster than normal deletion, as it doesn't need to copy all elements after the deleted index. +func FastDeleteIndex[T any](s []T, index int) []T { + s[index] = s[len(s)-1] + clear(s[len(s)-1:]) + return s[:len(s)-1] +} + +// FastDeleteItem finds the first index of the given item in the slice and deletes it without preserving slice order. +// This is faster than normal deletion, as it doesn't need to copy all elements after the deleted index. +func FastDeleteItem[T comparable](s []T, item T) []T { + index := slices.Index(s, item) + if index < 0 { + return s + } + return FastDeleteIndex(s, index) +} + +// DeleteItem finds the first index of the given item in the slice and deletes it. +func DeleteItem[T comparable](s []T, item T) []T { + index := slices.Index(s, item) + if index < 0 { + return s + } + return slices.Delete(s, index, index+1) +} diff --git a/vendor/go.mau.fi/util/exslices/stack.go b/vendor/go.mau.fi/util/exslices/stack.go new file mode 100644 index 00000000..ac0754c6 --- /dev/null +++ b/vendor/go.mau.fi/util/exslices/stack.go @@ -0,0 +1,80 @@ +// Copyright (c) 2024 Tulir Asokan +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +package exslices + +import ( + "iter" +) + +type Stack[T comparable] []T + +func (s *Stack[T]) Push(v ...T) { + *s = append(*s, v...) +} + +// Peek returns the top item from the stack without removing it. +func (s *Stack[T]) Peek() (v T, ok bool) { + return s.PeekN(1) +} + +// PeekN returns the nth item from the top of the stack (1-based). +func (s *Stack[T]) PeekN(n int) (v T, ok bool) { + if len(*s) < n { + return + } + v = (*s)[len(*s)-n] + ok = true + return +} + +// Pop removes and returns the top item from the stack. +func (s *Stack[T]) Pop() (v T, ok bool) { + v, ok = s.Peek() + if ok { + *s = (*s)[:len(*s)-1] + } + return +} + +func (s *Stack[T]) PeekValue() T { + v, _ := s.Peek() + return v +} + +func (s *Stack[T]) PopValue() T { + v, _ := s.Pop() + return v +} + +// Index returns the highest index of the given value in the stack, or -1 if not found. +func (s *Stack[T]) Index(val T) int { + for i := len(*s) - 1; i >= 0; i-- { + if (*s)[i] == val { + return i + } + } + return -1 +} + +// Has returns whether the given value is in the stack. +func (s *Stack[T]) Has(val T) bool { + return s.Index(val) != -1 +} + +func (s *Stack[T]) PopIter() iter.Seq[T] { + return func(yield func(T) bool) { + for { + v, ok := s.Pop() + if !ok { + return + } + if !yield(v) { + return + } + } + } +} diff --git a/vendor/go.mau.fi/util/exstrings/stringutil.go b/vendor/go.mau.fi/util/exstrings/stringutil.go index 4fe1ba40..110f1c61 100644 --- a/vendor/go.mau.fi/util/exstrings/stringutil.go +++ b/vendor/go.mau.fi/util/exstrings/stringutil.go @@ -9,6 +9,7 @@ package exstrings import ( "crypto/sha256" "crypto/subtle" + "slices" "strings" "unsafe" ) @@ -102,3 +103,20 @@ func LongestSequenceOfFunc(a string, fn func(b rune) int) int { } return maxCount } + +func LongestCommonPrefix(in []string) string { + if len(in) == 0 { + return "" + } else if len(in) == 1 { + return in[0] + } + + minStr := slices.Min(in) + maxStr := slices.Max(in) + for i := 0; i < len(minStr) && i < len(maxStr); i++ { + if minStr[i] != maxStr[i] { + return minStr[:i] + } + } + return minStr +} diff --git a/vendor/go.mau.fi/util/exsync/syncmap.go b/vendor/go.mau.fi/util/exsync/syncmap.go index 477cd0a9..b2013f2a 100644 --- a/vendor/go.mau.fi/util/exsync/syncmap.go +++ b/vendor/go.mau.fi/util/exsync/syncmap.go @@ -71,6 +71,17 @@ func (sm *Map[Key, Value]) Get(key Key) (value Value, ok bool) { return } +// GetDefault gets a value in the map, or the given default value if there's no such key. +func (sm *Map[Key, Value]) GetDefault(key Key, def Value) Value { + sm.lock.RLock() + value, ok := sm.data[key] + sm.lock.RUnlock() + if ok { + return value + } + return def +} + // GetOrSet gets a value in the map if the key already exists, otherwise inserts the given value and returns it. // // The boolean return parameter is true if the key already exists, and false if the given value was inserted. diff --git a/vendor/go.mau.fi/util/exsync/syncset.go b/vendor/go.mau.fi/util/exsync/syncset.go index 906a1452..b6ff07a3 100644 --- a/vendor/go.mau.fi/util/exsync/syncset.go +++ b/vendor/go.mau.fi/util/exsync/syncset.go @@ -9,6 +9,8 @@ package exsync import ( "iter" "sync" + + "go.mau.fi/util/exmaps" ) type empty struct{} @@ -21,6 +23,8 @@ type Set[T comparable] struct { l sync.RWMutex } +var _ exmaps.AbstractSet[int] = (*Set[int])(nil) + // NewSet constructs a Set with an empty map. func NewSet[T comparable]() *Set[T] { return NewSetWithMap[T](make(map[T]empty)) diff --git a/vendor/go.mau.fi/whatsmeow/appstate.go b/vendor/go.mau.fi/whatsmeow/appstate.go index eff43ea4..57c87d39 100644 --- a/vendor/go.mau.fi/whatsmeow/appstate.go +++ b/vendor/go.mau.fi/whatsmeow/appstate.go @@ -427,3 +427,19 @@ func (cli *Client) sendAppState(ctx context.Context, patch appstate.PatchInfo, w return nil } + +func (cli *Client) MarkNotDirty(ctx context.Context, cleanType string, ts time.Time) error { + _, err := cli.sendIQ(ctx, infoQuery{ + Namespace: "urn:xmpp:whatsapp:dirty", + Type: iqSet, + To: types.ServerJID, + Content: []waBinary.Node{{ + Tag: "clean", + Attrs: waBinary.Attrs{ + "type": cleanType, + "timestamp": ts.Unix(), + }, + }}, + }) + return err +} diff --git a/vendor/go.mau.fi/whatsmeow/appstate/keys.go b/vendor/go.mau.fi/whatsmeow/appstate/keys.go index dd750ffc..ba785dc8 100644 --- a/vendor/go.mau.fi/whatsmeow/appstate/keys.go +++ b/vendor/go.mau.fi/whatsmeow/appstate/keys.go @@ -126,13 +126,13 @@ func (proc *Processor) GetMissingKeyIDs(ctx context.Context, pl *PatchList) [][] } } if pl.Snapshot != nil { - checkMissing(pl.Snapshot.GetKeyId().GetId()) + checkMissing(pl.Snapshot.GetKeyID().GetID()) for _, record := range pl.Snapshot.GetRecords() { - checkMissing(record.GetKeyId().GetId()) + checkMissing(record.GetKeyID().GetID()) } } for _, patch := range pl.Patches { - checkMissing(patch.GetKeyId().GetId()) + checkMissing(patch.GetKeyID().GetID()) } return missingKeys } diff --git a/vendor/go.mau.fi/whatsmeow/binary/proto/legacy.go b/vendor/go.mau.fi/whatsmeow/binary/proto/legacy.go index 7c43018c..cf9177ee 100644 --- a/vendor/go.mau.fi/whatsmeow/binary/proto/legacy.go +++ b/vendor/go.mau.fi/whatsmeow/binary/proto/legacy.go @@ -276,7 +276,6 @@ type ( StickerAction = waSyncAction.StickerAction StatusPrivacyAction = waSyncAction.StatusPrivacyAction StarAction = waSyncAction.StarAction - SecurityNotificationSetting = waSyncAction.SecurityNotificationSetting RemoveRecentStickerAction = waSyncAction.RemoveRecentStickerAction RecentEmojiWeightsAction = waSyncAction.RecentEmojiWeightsAction QuickReplyAction = waSyncAction.QuickReplyAction diff --git a/vendor/go.mau.fi/whatsmeow/connectionevents.go b/vendor/go.mau.fi/whatsmeow/connectionevents.go index 79926a13..6d6b66fb 100644 --- a/vendor/go.mau.fi/whatsmeow/connectionevents.go +++ b/vendor/go.mau.fi/whatsmeow/connectionevents.go @@ -88,6 +88,13 @@ func (cli *Client) handleIB(ctx context.Context, node *waBinary.Node) { cli.dispatchEvent(&events.OfflineSyncCompleted{ Count: ag.Int("count"), }) + case "dirty": + //ts := ag.UnixTime("timestamp") + //typ := ag.String("type") // account_sync + //go func() { + // err := cli.MarkNotDirty(ctx, typ, ts) + // zerolog.Ctx(ctx).Debug().Err(err).Msg("Marked dirty item as clean") + //}() } } } @@ -179,7 +186,7 @@ func (cli *Client) handleConnectSuccess(ctx context.Context, node *waBinary.Node } else { cli.Log.Debugf("Database has %d prekeys, server says we have %d", dbCount, serverCount) if serverCount < MinPreKeyCount || dbCount < MinPreKeyCount { - cli.uploadPreKeys(ctx) + cli.uploadPreKeys(ctx, dbCount == 0 && serverCount == 0) sc, _ := cli.getServerPreKeyCount(ctx) cli.Log.Debugf("Prekey count after upload: %d", sc) } diff --git a/vendor/go.mau.fi/whatsmeow/internals.go b/vendor/go.mau.fi/whatsmeow/internals.go index b7b75238..0c2801a0 100644 --- a/vendor/go.mau.fi/whatsmeow/internals.go +++ b/vendor/go.mau.fi/whatsmeow/internals.go @@ -483,8 +483,8 @@ func (int *DangerousInternalClient) GetServerPreKeyCount(ctx context.Context) (i return int.c.getServerPreKeyCount(ctx) } -func (int *DangerousInternalClient) UploadPreKeys(ctx context.Context) { - int.c.uploadPreKeys(ctx) +func (int *DangerousInternalClient) UploadPreKeys(ctx context.Context, initialUpload bool) { + int.c.uploadPreKeys(ctx, initialUpload) } func (int *DangerousInternalClient) FetchPreKeysNoError(ctx context.Context, retryDevices []types.JID) map[types.JID]*prekey.Bundle { diff --git a/vendor/go.mau.fi/whatsmeow/message.go b/vendor/go.mau.fi/whatsmeow/message.go index 3991395f..7040c66b 100644 --- a/vendor/go.mau.fi/whatsmeow/message.go +++ b/vendor/go.mau.fi/whatsmeow/message.go @@ -689,37 +689,41 @@ func (cli *Client) handleHistorySyncNotificationLoop() { // You only need to call this manually if you set [Client.ManualHistorySyncDownload] to true. // By default, whatsmeow will call this automatically and dispatch an [events.HistorySync] with the parsed data. func (cli *Client) DownloadHistorySync(ctx context.Context, notif *waE2E.HistorySyncNotification, synchronousStorage bool) (*waHistorySync.HistorySync, error) { - var historySync waHistorySync.HistorySync - if data, err := cli.Download(ctx, notif); err != nil { + var data []byte + var err error + if notif.InitialHistBootstrapInlinePayload != nil { + data = notif.InitialHistBootstrapInlinePayload + } else if data, err = cli.Download(ctx, notif); err != nil { return nil, fmt.Errorf("failed to download: %w", err) - } else if reader, err := zlib.NewReader(bytes.NewReader(data)); err != nil { + } + var historySync waHistorySync.HistorySync + if reader, err := zlib.NewReader(bytes.NewReader(data)); err != nil { return nil, fmt.Errorf("failed to prepare to decompress: %w", err) } else if rawData, err := io.ReadAll(reader); err != nil { return nil, fmt.Errorf("failed to decompress: %w", err) } else if err = proto.Unmarshal(rawData, &historySync); err != nil { return nil, fmt.Errorf("failed to unmarshal: %w", err) - } else { - cli.Log.Debugf("Received history sync (type %s, chunk %d, progress %d)", historySync.GetSyncType(), historySync.GetChunkOrder(), historySync.GetProgress()) - doStorage := func(ctx context.Context) { - if historySync.GetSyncType() == waHistorySync.HistorySync_PUSH_NAME { - cli.handleHistoricalPushNames(ctx, historySync.GetPushnames()) - } else if len(historySync.GetConversations()) > 0 { - cli.storeHistoricalMessageSecrets(ctx, historySync.GetConversations()) - } - if len(historySync.GetPhoneNumberToLidMappings()) > 0 { - cli.storeHistoricalPNLIDMappings(ctx, historySync.GetPhoneNumberToLidMappings()) - } - if historySync.GlobalSettings != nil { - cli.storeGlobalSettings(ctx, historySync.GlobalSettings) - } - } - if synchronousStorage { - doStorage(ctx) - } else { - go doStorage(context.WithoutCancel(ctx)) - } - return &historySync, nil } + cli.Log.Debugf("Received history sync (type %s, chunk %d, progress %d)", historySync.GetSyncType(), historySync.GetChunkOrder(), historySync.GetProgress()) + doStorage := func(ctx context.Context) { + if historySync.GetSyncType() == waHistorySync.HistorySync_PUSH_NAME { + cli.handleHistoricalPushNames(ctx, historySync.GetPushnames()) + } else if len(historySync.GetConversations()) > 0 { + cli.storeHistoricalMessageSecrets(ctx, historySync.GetConversations()) + } + if len(historySync.GetPhoneNumberToLidMappings()) > 0 { + cli.storeHistoricalPNLIDMappings(ctx, historySync.GetPhoneNumberToLidMappings()) + } + if historySync.GlobalSettings != nil { + cli.storeGlobalSettings(ctx, historySync.GlobalSettings) + } + } + if synchronousStorage { + doStorage(ctx) + } else { + go doStorage(context.WithoutCancel(ctx)) + } + return &historySync, nil } func (cli *Client) handleAppStateSyncKeyShare(ctx context.Context, keys *waE2E.AppStateSyncKeyShare) { @@ -1024,8 +1028,7 @@ func (cli *Client) handleDecryptedMessage(ctx context.Context, info *types.Messa } func (cli *Client) sendProtocolMessageReceipt(ctx context.Context, id types.MessageID, msgType types.ReceiptType) { - clientID := cli.Store.ID - if len(id) == 0 || clientID == nil { + if len(id) == 0 { return } err := cli.sendNode(ctx, waBinary.Node{ @@ -1033,7 +1036,7 @@ func (cli *Client) sendProtocolMessageReceipt(ctx context.Context, id types.Mess Attrs: waBinary.Attrs{ "id": string(id), "type": string(msgType), - "to": types.NewJID(clientID.User, types.LegacyUserServer), + "to": cli.getOwnID().ToNonAD(), }, Content: nil, }) diff --git a/vendor/go.mau.fi/whatsmeow/notification.go b/vendor/go.mau.fi/whatsmeow/notification.go index b12025f9..c9c752c2 100644 --- a/vendor/go.mau.fi/whatsmeow/notification.go +++ b/vendor/go.mau.fi/whatsmeow/notification.go @@ -34,7 +34,7 @@ func (cli *Client) handleEncryptNotification(ctx context.Context, node *waBinary } cli.Log.Infof("Got prekey count from server: %s", node.XMLString()) if otksLeft < MinPreKeyCount { - cli.uploadPreKeys(ctx) + cli.uploadPreKeys(ctx, false) } } else if _, ok := node.GetOptionalChildByTag("identity"); ok { cli.Log.Debugf("Got identity change for %s: %s, deleting all identities/sessions for that number", from, node.XMLString()) diff --git a/vendor/go.mau.fi/whatsmeow/prekeys.go b/vendor/go.mau.fi/whatsmeow/prekeys.go index 00a36a38..77c011cd 100644 --- a/vendor/go.mau.fi/whatsmeow/prekeys.go +++ b/vendor/go.mau.fi/whatsmeow/prekeys.go @@ -47,7 +47,7 @@ func (cli *Client) getServerPreKeyCount(ctx context.Context) (int, error) { return val, ag.Error() } -func (cli *Client) uploadPreKeys(ctx context.Context) { +func (cli *Client) uploadPreKeys(ctx context.Context, initialUpload bool) { cli.uploadPreKeysLock.Lock() defer cli.uploadPreKeysLock.Unlock() if cli.lastPreKeyUpload.Add(10 * time.Minute).After(time.Now()) { @@ -59,7 +59,11 @@ func (cli *Client) uploadPreKeys(ctx context.Context) { } var registrationIDBytes [4]byte binary.BigEndian.PutUint32(registrationIDBytes[:], cli.Store.RegistrationID) - preKeys, err := cli.Store.PreKeys.GetOrGenPreKeys(ctx, WantedPreKeyCount) + wantedCount := WantedPreKeyCount + if initialUpload { + wantedCount = 812 + } + preKeys, err := cli.Store.PreKeys.GetOrGenPreKeys(ctx, uint32(wantedCount)) if err != nil { cli.Log.Errorf("Failed to get prekeys to upload: %v", err) return diff --git a/vendor/go.mau.fi/whatsmeow/proto/waAICommon/WAAICommon.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waAICommon/WAAICommon.pb.go index 86df4ef9..46b2e8d2 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waAICommon/WAAICommon.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waAICommon/WAAICommon.pb.go @@ -64,6 +64,8 @@ const ( BotMetricsEntryPoint_MESSAGE_QUICK_ACTION_GROUP_CHAT BotMetricsEntryPoint = 34 BotMetricsEntryPoint_ATTACHMENT_TRAY_1_ON_1_CHAT BotMetricsEntryPoint = 35 BotMetricsEntryPoint_ATTACHMENT_TRAY_GROUP_CHAT BotMetricsEntryPoint = 36 + BotMetricsEntryPoint_ASK_META_AI_MEDIA_VIEWER_1ON1 BotMetricsEntryPoint = 37 + BotMetricsEntryPoint_ASK_META_AI_MEDIA_VIEWER_GROUP BotMetricsEntryPoint = 38 ) // Enum value maps for BotMetricsEntryPoint. @@ -106,6 +108,8 @@ var ( 34: "MESSAGE_QUICK_ACTION_GROUP_CHAT", 35: "ATTACHMENT_TRAY_1_ON_1_CHAT", 36: "ATTACHMENT_TRAY_GROUP_CHAT", + 37: "ASK_META_AI_MEDIA_VIEWER_1ON1", + 38: "ASK_META_AI_MEDIA_VIEWER_GROUP", } BotMetricsEntryPoint_value = map[string]int32{ "UNDEFINED_ENTRY_POINT": 0, @@ -145,6 +149,8 @@ var ( "MESSAGE_QUICK_ACTION_GROUP_CHAT": 34, "ATTACHMENT_TRAY_1_ON_1_CHAT": 35, "ATTACHMENT_TRAY_GROUP_CHAT": 36, + "ASK_META_AI_MEDIA_VIEWER_1ON1": 37, + "ASK_META_AI_MEDIA_VIEWER_GROUP": 38, } ) @@ -457,6 +463,62 @@ func (AIRichResponseSubMessageType) EnumDescriptor() ([]byte, []int) { return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{4} } +type SessionTransparencyType int32 + +const ( + SessionTransparencyType_UNKNOWN_TYPE SessionTransparencyType = 0 + SessionTransparencyType_NY_AI_SAFETY_DISCLAIMER SessionTransparencyType = 1 +) + +// Enum value maps for SessionTransparencyType. +var ( + SessionTransparencyType_name = map[int32]string{ + 0: "UNKNOWN_TYPE", + 1: "NY_AI_SAFETY_DISCLAIMER", + } + SessionTransparencyType_value = map[string]int32{ + "UNKNOWN_TYPE": 0, + "NY_AI_SAFETY_DISCLAIMER": 1, + } +) + +func (x SessionTransparencyType) Enum() *SessionTransparencyType { + p := new(SessionTransparencyType) + *p = x + return p +} + +func (x SessionTransparencyType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SessionTransparencyType) Descriptor() protoreflect.EnumDescriptor { + return file_waAICommon_WAAICommon_proto_enumTypes[5].Descriptor() +} + +func (SessionTransparencyType) Type() protoreflect.EnumType { + return &file_waAICommon_WAAICommon_proto_enumTypes[5] +} + +func (x SessionTransparencyType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SessionTransparencyType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SessionTransparencyType(num) + return nil +} + +// Deprecated: Use SessionTransparencyType.Descriptor instead. +func (SessionTransparencyType) EnumDescriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{5} +} + type BotPluginMetadata_PluginType int32 const ( @@ -490,11 +552,11 @@ func (x BotPluginMetadata_PluginType) String() string { } func (BotPluginMetadata_PluginType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[5].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[6].Descriptor() } func (BotPluginMetadata_PluginType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[5] + return &file_waAICommon_WAAICommon_proto_enumTypes[6] } func (x BotPluginMetadata_PluginType) Number() protoreflect.EnumNumber { @@ -552,11 +614,11 @@ func (x BotPluginMetadata_SearchProvider) String() string { } func (BotPluginMetadata_SearchProvider) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[6].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[7].Descriptor() } func (BotPluginMetadata_SearchProvider) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[6] + return &file_waAICommon_WAAICommon_proto_enumTypes[7] } func (x BotPluginMetadata_SearchProvider) Number() protoreflect.EnumNumber { @@ -605,11 +667,11 @@ func (x BotLinkedAccount_BotLinkedAccountType) String() string { } func (BotLinkedAccount_BotLinkedAccountType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[7].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[8].Descriptor() } func (BotLinkedAccount_BotLinkedAccountType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[7] + return &file_waAICommon_WAAICommon_proto_enumTypes[8] } func (x BotLinkedAccount_BotLinkedAccountType) Number() protoreflect.EnumNumber { @@ -661,11 +723,11 @@ func (x BotSignatureVerificationUseCaseProof_BotSignatureUseCase) String() strin } func (BotSignatureVerificationUseCaseProof_BotSignatureUseCase) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[8].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[9].Descriptor() } func (BotSignatureVerificationUseCaseProof_BotSignatureUseCase) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[8] + return &file_waAICommon_WAAICommon_proto_enumTypes[9] } func (x BotSignatureVerificationUseCaseProof_BotSignatureUseCase) Number() protoreflect.EnumNumber { @@ -720,11 +782,11 @@ func (x BotPromotionMessageMetadata_BotPromotionType) String() string { } func (BotPromotionMessageMetadata_BotPromotionType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[9].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[10].Descriptor() } func (BotPromotionMessageMetadata_BotPromotionType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[9] + return &file_waAICommon_WAAICommon_proto_enumTypes[10] } func (x BotPromotionMessageMetadata_BotPromotionType) Number() protoreflect.EnumNumber { @@ -779,11 +841,11 @@ func (x BotMediaMetadata_OrientationType) String() string { } func (BotMediaMetadata_OrientationType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[10].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[11].Descriptor() } func (BotMediaMetadata_OrientationType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[10] + return &file_waAICommon_WAAICommon_proto_enumTypes[11] } func (x BotMediaMetadata_OrientationType) Number() protoreflect.EnumNumber { @@ -844,11 +906,11 @@ func (x BotReminderMetadata_ReminderFrequency) String() string { } func (BotReminderMetadata_ReminderFrequency) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[11].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[12].Descriptor() } func (BotReminderMetadata_ReminderFrequency) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[11] + return &file_waAICommon_WAAICommon_proto_enumTypes[12] } func (x BotReminderMetadata_ReminderFrequency) Number() protoreflect.EnumNumber { @@ -906,11 +968,11 @@ func (x BotReminderMetadata_ReminderAction) String() string { } func (BotReminderMetadata_ReminderAction) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[12].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[13].Descriptor() } func (BotReminderMetadata_ReminderAction) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[12] + return &file_waAICommon_WAAICommon_proto_enumTypes[13] } func (x BotReminderMetadata_ReminderAction) Number() protoreflect.EnumNumber { @@ -965,11 +1027,11 @@ func (x BotModelMetadata_PremiumModelStatus) String() string { } func (BotModelMetadata_PremiumModelStatus) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[13].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[14].Descriptor() } func (BotModelMetadata_PremiumModelStatus) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[13] + return &file_waAICommon_WAAICommon_proto_enumTypes[14] } func (x BotModelMetadata_PremiumModelStatus) Number() protoreflect.EnumNumber { @@ -1024,11 +1086,11 @@ func (x BotModelMetadata_ModelType) String() string { } func (BotModelMetadata_ModelType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[14].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[15].Descriptor() } func (BotModelMetadata_ModelType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[14] + return &file_waAICommon_WAAICommon_proto_enumTypes[15] } func (x BotModelMetadata_ModelType) Number() protoreflect.EnumNumber { @@ -1086,11 +1148,11 @@ func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProv } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[15].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[16].Descriptor() } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[15] + return &file_waAICommon_WAAICommon_proto_enumTypes[16] } func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider) Number() protoreflect.EnumNumber { @@ -1148,11 +1210,11 @@ func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[16].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[17].Descriptor() } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[16] + return &file_waAICommon_WAAICommon_proto_enumTypes[17] } func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus) Number() protoreflect.EnumNumber { @@ -1210,11 +1272,11 @@ func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSo } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[17].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[18].Descriptor() } func (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[17] + return &file_waAICommon_WAAICommon_proto_enumTypes[18] } func (x BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider) Number() protoreflect.EnumNumber { @@ -1285,6 +1347,10 @@ const ( BotCapabilityMetadata_RICH_RESPONSE_UR_INLINE_REELS_ENABLED BotCapabilityMetadata_BotCapabilityType = 43 BotCapabilityMetadata_RICH_RESPONSE_UR_MEDIA_GRID_ENABLED BotCapabilityMetadata_BotCapabilityType = 44 BotCapabilityMetadata_RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER BotCapabilityMetadata_BotCapabilityType = 45 + BotCapabilityMetadata_RICH_RESPONSE_IN_APP_SURVEY BotCapabilityMetadata_BotCapabilityType = 46 + BotCapabilityMetadata_AI_RESPONSE_MODEL_BRANDING BotCapabilityMetadata_BotCapabilityType = 47 + BotCapabilityMetadata_SESSION_TRANSPARENCY_SYSTEM_MESSAGE BotCapabilityMetadata_BotCapabilityType = 48 + BotCapabilityMetadata_RICH_RESPONSE_UR_REASONING BotCapabilityMetadata_BotCapabilityType = 49 ) // Enum value maps for BotCapabilityMetadata_BotCapabilityType. @@ -1336,6 +1402,10 @@ var ( 43: "RICH_RESPONSE_UR_INLINE_REELS_ENABLED", 44: "RICH_RESPONSE_UR_MEDIA_GRID_ENABLED", 45: "RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER", + 46: "RICH_RESPONSE_IN_APP_SURVEY", + 47: "AI_RESPONSE_MODEL_BRANDING", + 48: "SESSION_TRANSPARENCY_SYSTEM_MESSAGE", + 49: "RICH_RESPONSE_UR_REASONING", } BotCapabilityMetadata_BotCapabilityType_value = map[string]int32{ "UNKNOWN": 0, @@ -1384,6 +1454,10 @@ var ( "RICH_RESPONSE_UR_INLINE_REELS_ENABLED": 43, "RICH_RESPONSE_UR_MEDIA_GRID_ENABLED": 44, "RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER": 45, + "RICH_RESPONSE_IN_APP_SURVEY": 46, + "AI_RESPONSE_MODEL_BRANDING": 47, + "SESSION_TRANSPARENCY_SYSTEM_MESSAGE": 48, + "RICH_RESPONSE_UR_REASONING": 49, } ) @@ -1398,11 +1472,11 @@ func (x BotCapabilityMetadata_BotCapabilityType) String() string { } func (BotCapabilityMetadata_BotCapabilityType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[18].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[19].Descriptor() } func (BotCapabilityMetadata_BotCapabilityType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[18] + return &file_waAICommon_WAAICommon_proto_enumTypes[19] } func (x BotCapabilityMetadata_BotCapabilityType) Number() protoreflect.EnumNumber { @@ -1454,11 +1528,11 @@ func (x BotModeSelectionMetadata_BotUserSelectionMode) String() string { } func (BotModeSelectionMetadata_BotUserSelectionMode) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[19].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[20].Descriptor() } func (BotModeSelectionMetadata_BotUserSelectionMode) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[19] + return &file_waAICommon_WAAICommon_proto_enumTypes[20] } func (x BotModeSelectionMetadata_BotUserSelectionMode) Number() protoreflect.EnumNumber { @@ -1510,11 +1584,11 @@ func (x BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) String() string } func (BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[20].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[21].Descriptor() } func (BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[20] + return &file_waAICommon_WAAICommon_proto_enumTypes[21] } func (x BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType) Number() protoreflect.EnumNumber { @@ -1575,11 +1649,11 @@ func (x BotImagineMetadata_ImagineType) String() string { } func (BotImagineMetadata_ImagineType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[21].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[22].Descriptor() } func (BotImagineMetadata_ImagineType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[21] + return &file_waAICommon_WAAICommon_proto_enumTypes[22] } func (x BotImagineMetadata_ImagineType) Number() protoreflect.EnumNumber { @@ -1631,11 +1705,11 @@ func (x BotAgeCollectionMetadata_AgeCollectionType) String() string { } func (BotAgeCollectionMetadata_AgeCollectionType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[22].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[23].Descriptor() } func (BotAgeCollectionMetadata_AgeCollectionType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[22] + return &file_waAICommon_WAAICommon_proto_enumTypes[23] } func (x BotAgeCollectionMetadata_AgeCollectionType) Number() protoreflect.EnumNumber { @@ -1696,11 +1770,11 @@ func (x BotSourcesMetadata_BotSourceItem_SourceProvider) String() string { } func (BotSourcesMetadata_BotSourceItem_SourceProvider) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[23].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[24].Descriptor() } func (BotSourcesMetadata_BotSourceItem_SourceProvider) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[23] + return &file_waAICommon_WAAICommon_proto_enumTypes[24] } func (x BotSourcesMetadata_BotSourceItem_SourceProvider) Number() protoreflect.EnumNumber { @@ -1749,11 +1823,11 @@ func (x BotMessageOrigin_BotMessageOriginType) String() string { } func (BotMessageOrigin_BotMessageOriginType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[24].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[25].Descriptor() } func (BotMessageOrigin_BotMessageOriginType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[24] + return &file_waAICommon_WAAICommon_proto_enumTypes[25] } func (x BotMessageOrigin_BotMessageOriginType) Number() protoreflect.EnumNumber { @@ -1808,11 +1882,11 @@ func (x AIThreadInfo_AIThreadClientInfo_AIThreadType) String() string { } func (AIThreadInfo_AIThreadClientInfo_AIThreadType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[25].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[26].Descriptor() } func (AIThreadInfo_AIThreadClientInfo_AIThreadType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[25] + return &file_waAICommon_WAAICommon_proto_enumTypes[26] } func (x AIThreadInfo_AIThreadClientInfo_AIThreadType) Number() protoreflect.EnumNumber { @@ -1864,11 +1938,11 @@ func (x BotFeedbackMessage_ReportKind) String() string { } func (BotFeedbackMessage_ReportKind) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[26].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[27].Descriptor() } func (BotFeedbackMessage_ReportKind) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[26] + return &file_waAICommon_WAAICommon_proto_enumTypes[27] } func (x BotFeedbackMessage_ReportKind) Number() protoreflect.EnumNumber { @@ -1917,11 +1991,11 @@ func (x BotFeedbackMessage_BotFeedbackKindMultiplePositive) String() string { } func (BotFeedbackMessage_BotFeedbackKindMultiplePositive) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[27].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[28].Descriptor() } func (BotFeedbackMessage_BotFeedbackKindMultiplePositive) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[27] + return &file_waAICommon_WAAICommon_proto_enumTypes[28] } func (x BotFeedbackMessage_BotFeedbackKindMultiplePositive) Number() protoreflect.EnumNumber { @@ -1994,11 +2068,11 @@ func (x BotFeedbackMessage_BotFeedbackKindMultipleNegative) String() string { } func (BotFeedbackMessage_BotFeedbackKindMultipleNegative) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[28].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[29].Descriptor() } func (BotFeedbackMessage_BotFeedbackKindMultipleNegative) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[28] + return &file_waAICommon_WAAICommon_proto_enumTypes[29] } func (x BotFeedbackMessage_BotFeedbackKindMultipleNegative) Number() protoreflect.EnumNumber { @@ -2089,11 +2163,11 @@ func (x BotFeedbackMessage_BotFeedbackKind) String() string { } func (BotFeedbackMessage_BotFeedbackKind) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[29].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[30].Descriptor() } func (BotFeedbackMessage_BotFeedbackKind) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[29] + return &file_waAICommon_WAAICommon_proto_enumTypes[30] } func (x BotFeedbackMessage_BotFeedbackKind) Number() protoreflect.EnumNumber { @@ -2148,11 +2222,11 @@ func (x AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment) String() } func (AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[30].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[31].Descriptor() } func (AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[30] + return &file_waAICommon_WAAICommon_proto_enumTypes[31] } func (x AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment) Number() protoreflect.EnumNumber { @@ -2216,11 +2290,11 @@ func (x AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType) String() str } func (AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[31].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[32].Descriptor() } func (AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[31] + return &file_waAICommon_WAAICommon_proto_enumTypes[32] } func (x AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType) Number() protoreflect.EnumNumber { @@ -2275,11 +2349,11 @@ func (x AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType) String( } func (AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[32].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[33].Descriptor() } func (AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[32] + return &file_waAICommon_WAAICommon_proto_enumTypes[33] } func (x AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType) Number() protoreflect.EnumNumber { @@ -2331,11 +2405,11 @@ func (x AIRichResponseContentItemsMetadata_ContentType) String() string { } func (AIRichResponseContentItemsMetadata_ContentType) Descriptor() protoreflect.EnumDescriptor { - return file_waAICommon_WAAICommon_proto_enumTypes[33].Descriptor() + return file_waAICommon_WAAICommon_proto_enumTypes[34].Descriptor() } func (AIRichResponseContentItemsMetadata_ContentType) Type() protoreflect.EnumType { - return &file_waAICommon_WAAICommon_proto_enumTypes[33] + return &file_waAICommon_WAAICommon_proto_enumTypes[34] } func (x AIRichResponseContentItemsMetadata_ContentType) Number() protoreflect.EnumNumber { @@ -2357,6 +2431,124 @@ func (AIRichResponseContentItemsMetadata_ContentType) EnumDescriptor() ([]byte, return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{20, 0} } +type BotDocumentMessageMetadata_DocumentPluginType int32 + +const ( + BotDocumentMessageMetadata_TEXT_EXTRACTION BotDocumentMessageMetadata_DocumentPluginType = 0 + BotDocumentMessageMetadata_OCR_AND_IMAGES BotDocumentMessageMetadata_DocumentPluginType = 1 +) + +// Enum value maps for BotDocumentMessageMetadata_DocumentPluginType. +var ( + BotDocumentMessageMetadata_DocumentPluginType_name = map[int32]string{ + 0: "TEXT_EXTRACTION", + 1: "OCR_AND_IMAGES", + } + BotDocumentMessageMetadata_DocumentPluginType_value = map[string]int32{ + "TEXT_EXTRACTION": 0, + "OCR_AND_IMAGES": 1, + } +) + +func (x BotDocumentMessageMetadata_DocumentPluginType) Enum() *BotDocumentMessageMetadata_DocumentPluginType { + p := new(BotDocumentMessageMetadata_DocumentPluginType) + *p = x + return p +} + +func (x BotDocumentMessageMetadata_DocumentPluginType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BotDocumentMessageMetadata_DocumentPluginType) Descriptor() protoreflect.EnumDescriptor { + return file_waAICommon_WAAICommon_proto_enumTypes[35].Descriptor() +} + +func (BotDocumentMessageMetadata_DocumentPluginType) Type() protoreflect.EnumType { + return &file_waAICommon_WAAICommon_proto_enumTypes[35] +} + +func (x BotDocumentMessageMetadata_DocumentPluginType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *BotDocumentMessageMetadata_DocumentPluginType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = BotDocumentMessageMetadata_DocumentPluginType(num) + return nil +} + +// Deprecated: Use BotDocumentMessageMetadata_DocumentPluginType.Descriptor instead. +func (BotDocumentMessageMetadata_DocumentPluginType) EnumDescriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{21, 0} +} + +type AIHomeState_AIHomeOption_AIHomeActionType int32 + +const ( + AIHomeState_AIHomeOption_PROMPT AIHomeState_AIHomeOption_AIHomeActionType = 0 + AIHomeState_AIHomeOption_CREATE_IMAGE AIHomeState_AIHomeOption_AIHomeActionType = 1 + AIHomeState_AIHomeOption_ANIMATE_PHOTO AIHomeState_AIHomeOption_AIHomeActionType = 2 + AIHomeState_AIHomeOption_ANALYZE_FILE AIHomeState_AIHomeOption_AIHomeActionType = 3 +) + +// Enum value maps for AIHomeState_AIHomeOption_AIHomeActionType. +var ( + AIHomeState_AIHomeOption_AIHomeActionType_name = map[int32]string{ + 0: "PROMPT", + 1: "CREATE_IMAGE", + 2: "ANIMATE_PHOTO", + 3: "ANALYZE_FILE", + } + AIHomeState_AIHomeOption_AIHomeActionType_value = map[string]int32{ + "PROMPT": 0, + "CREATE_IMAGE": 1, + "ANIMATE_PHOTO": 2, + "ANALYZE_FILE": 3, + } +) + +func (x AIHomeState_AIHomeOption_AIHomeActionType) Enum() *AIHomeState_AIHomeOption_AIHomeActionType { + p := new(AIHomeState_AIHomeOption_AIHomeActionType) + *p = x + return p +} + +func (x AIHomeState_AIHomeOption_AIHomeActionType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AIHomeState_AIHomeOption_AIHomeActionType) Descriptor() protoreflect.EnumDescriptor { + return file_waAICommon_WAAICommon_proto_enumTypes[36].Descriptor() +} + +func (AIHomeState_AIHomeOption_AIHomeActionType) Type() protoreflect.EnumType { + return &file_waAICommon_WAAICommon_proto_enumTypes[36] +} + +func (x AIHomeState_AIHomeOption_AIHomeActionType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *AIHomeState_AIHomeOption_AIHomeActionType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = AIHomeState_AIHomeOption_AIHomeActionType(num) + return nil +} + +// Deprecated: Use AIHomeState_AIHomeOption_AIHomeActionType.Descriptor instead. +func (AIHomeState_AIHomeOption_AIHomeActionType) EnumDescriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{22, 0, 0} +} + type BotPluginMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` Provider *BotPluginMetadata_SearchProvider `protobuf:"varint,1,opt,name=provider,enum=WAAICommon.BotPluginMetadata_SearchProvider" json:"provider,omitempty"` @@ -2825,6 +3017,7 @@ type BotModelMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` ModelType *BotModelMetadata_ModelType `protobuf:"varint,1,opt,name=modelType,enum=WAAICommon.BotModelMetadata_ModelType" json:"modelType,omitempty"` PremiumModelStatus *BotModelMetadata_PremiumModelStatus `protobuf:"varint,2,opt,name=premiumModelStatus,enum=WAAICommon.BotModelMetadata_PremiumModelStatus" json:"premiumModelStatus,omitempty"` + ModelNameOverride *string `protobuf:"bytes,3,opt,name=modelNameOverride" json:"modelNameOverride,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2873,6 +3066,13 @@ func (x *BotModelMetadata) GetPremiumModelStatus() BotModelMetadata_PremiumModel return BotModelMetadata_UNKNOWN_STATUS } +func (x *BotModelMetadata) GetModelNameOverride() string { + if x != nil && x.ModelNameOverride != nil { + return *x.ModelNameOverride + } + return "" +} + type BotProgressIndicatorMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` ProgressDescription *string `protobuf:"bytes,1,opt,name=progressDescription" json:"progressDescription,omitempty"` @@ -3633,6 +3833,110 @@ func (x *AIRichResponseContentItemsMetadata) GetContentType() AIRichResponseCont return AIRichResponseContentItemsMetadata_DEFAULT } +type BotDocumentMessageMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + PluginType *BotDocumentMessageMetadata_DocumentPluginType `protobuf:"varint,1,opt,name=pluginType,enum=WAAICommon.BotDocumentMessageMetadata_DocumentPluginType" json:"pluginType,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotDocumentMessageMetadata) Reset() { + *x = BotDocumentMessageMetadata{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotDocumentMessageMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotDocumentMessageMetadata) ProtoMessage() {} + +func (x *BotDocumentMessageMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotDocumentMessageMetadata.ProtoReflect.Descriptor instead. +func (*BotDocumentMessageMetadata) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{21} +} + +func (x *BotDocumentMessageMetadata) GetPluginType() BotDocumentMessageMetadata_DocumentPluginType { + if x != nil && x.PluginType != nil { + return *x.PluginType + } + return BotDocumentMessageMetadata_TEXT_EXTRACTION +} + +type AIHomeState struct { + state protoimpl.MessageState `protogen:"open.v1"` + LastFetchTime *int64 `protobuf:"varint,1,opt,name=lastFetchTime" json:"lastFetchTime,omitempty"` + CapabilityOptions []*AIHomeState_AIHomeOption `protobuf:"bytes,2,rep,name=capabilityOptions" json:"capabilityOptions,omitempty"` + ConversationOptions []*AIHomeState_AIHomeOption `protobuf:"bytes,3,rep,name=conversationOptions" json:"conversationOptions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AIHomeState) Reset() { + *x = AIHomeState{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AIHomeState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AIHomeState) ProtoMessage() {} + +func (x *AIHomeState) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AIHomeState.ProtoReflect.Descriptor instead. +func (*AIHomeState) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{22} +} + +func (x *AIHomeState) GetLastFetchTime() int64 { + if x != nil && x.LastFetchTime != nil { + return *x.LastFetchTime + } + return 0 +} + +func (x *AIHomeState) GetCapabilityOptions() []*AIHomeState_AIHomeOption { + if x != nil { + return x.CapabilityOptions + } + return nil +} + +func (x *AIHomeState) GetConversationOptions() []*AIHomeState_AIHomeOption { + if x != nil { + return x.ConversationOptions + } + return nil +} + type BotAvatarMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` Sentiment *uint32 `protobuf:"varint,1,opt,name=sentiment" json:"sentiment,omitempty"` @@ -3646,7 +3950,7 @@ type BotAvatarMetadata struct { func (x *BotAvatarMetadata) Reset() { *x = BotAvatarMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[21] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3658,7 +3962,7 @@ func (x *BotAvatarMetadata) String() string { func (*BotAvatarMetadata) ProtoMessage() {} func (x *BotAvatarMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[21] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3671,7 +3975,7 @@ func (x *BotAvatarMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotAvatarMetadata.ProtoReflect.Descriptor instead. func (*BotAvatarMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{21} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{23} } func (x *BotAvatarMetadata) GetSentiment() uint32 { @@ -3721,7 +4025,7 @@ type BotSuggestedPromptMetadata struct { func (x *BotSuggestedPromptMetadata) Reset() { *x = BotSuggestedPromptMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[22] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3733,7 +4037,7 @@ func (x *BotSuggestedPromptMetadata) String() string { func (*BotSuggestedPromptMetadata) ProtoMessage() {} func (x *BotSuggestedPromptMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[22] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3746,7 +4050,7 @@ func (x *BotSuggestedPromptMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotSuggestedPromptMetadata.ProtoReflect.Descriptor instead. func (*BotSuggestedPromptMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{22} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{24} } func (x *BotSuggestedPromptMetadata) GetSuggestedPrompts() []string { @@ -3786,7 +4090,7 @@ type BotPromptSuggestions struct { func (x *BotPromptSuggestions) Reset() { *x = BotPromptSuggestions{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[23] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3798,7 +4102,7 @@ func (x *BotPromptSuggestions) String() string { func (*BotPromptSuggestions) ProtoMessage() {} func (x *BotPromptSuggestions) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[23] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3811,7 +4115,7 @@ func (x *BotPromptSuggestions) ProtoReflect() protoreflect.Message { // Deprecated: Use BotPromptSuggestions.ProtoReflect.Descriptor instead. func (*BotPromptSuggestions) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{23} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{25} } func (x *BotPromptSuggestions) GetSuggestions() []*BotPromptSuggestion { @@ -3831,7 +4135,7 @@ type BotPromptSuggestion struct { func (x *BotPromptSuggestion) Reset() { *x = BotPromptSuggestion{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[24] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3843,7 +4147,7 @@ func (x *BotPromptSuggestion) String() string { func (*BotPromptSuggestion) ProtoMessage() {} func (x *BotPromptSuggestion) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[24] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3856,7 +4160,7 @@ func (x *BotPromptSuggestion) ProtoReflect() protoreflect.Message { // Deprecated: Use BotPromptSuggestion.ProtoReflect.Descriptor instead. func (*BotPromptSuggestion) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{24} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{26} } func (x *BotPromptSuggestion) GetPrompt() string { @@ -3884,7 +4188,7 @@ type BotLinkedAccountsMetadata struct { func (x *BotLinkedAccountsMetadata) Reset() { *x = BotLinkedAccountsMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[25] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3896,7 +4200,7 @@ func (x *BotLinkedAccountsMetadata) String() string { func (*BotLinkedAccountsMetadata) ProtoMessage() {} func (x *BotLinkedAccountsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[25] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3909,7 +4213,7 @@ func (x *BotLinkedAccountsMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotLinkedAccountsMetadata.ProtoReflect.Descriptor instead. func (*BotLinkedAccountsMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{25} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{27} } func (x *BotLinkedAccountsMetadata) GetAccounts() []*BotLinkedAccount { @@ -3944,7 +4248,7 @@ type BotMemoryMetadata struct { func (x *BotMemoryMetadata) Reset() { *x = BotMemoryMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[26] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3956,7 +4260,7 @@ func (x *BotMemoryMetadata) String() string { func (*BotMemoryMetadata) ProtoMessage() {} func (x *BotMemoryMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[26] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3969,7 +4273,7 @@ func (x *BotMemoryMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMemoryMetadata.ProtoReflect.Descriptor instead. func (*BotMemoryMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{26} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{28} } func (x *BotMemoryMetadata) GetAddedFacts() []*BotMemoryFact { @@ -4003,7 +4307,7 @@ type BotMemoryFact struct { func (x *BotMemoryFact) Reset() { *x = BotMemoryFact{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[27] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4015,7 +4319,7 @@ func (x *BotMemoryFact) String() string { func (*BotMemoryFact) ProtoMessage() {} func (x *BotMemoryFact) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[27] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4028,7 +4332,7 @@ func (x *BotMemoryFact) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMemoryFact.ProtoReflect.Descriptor instead. func (*BotMemoryFact) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{27} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{29} } func (x *BotMemoryFact) GetFact() string { @@ -4054,7 +4358,7 @@ type BotSignatureVerificationMetadata struct { func (x *BotSignatureVerificationMetadata) Reset() { *x = BotSignatureVerificationMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[28] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4066,7 +4370,7 @@ func (x *BotSignatureVerificationMetadata) String() string { func (*BotSignatureVerificationMetadata) ProtoMessage() {} func (x *BotSignatureVerificationMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[28] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4079,7 +4383,7 @@ func (x *BotSignatureVerificationMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotSignatureVerificationMetadata.ProtoReflect.Descriptor instead. func (*BotSignatureVerificationMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{28} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{30} } func (x *BotSignatureVerificationMetadata) GetProofs() []*BotSignatureVerificationUseCaseProof { @@ -4098,7 +4402,7 @@ type BotRenderingMetadata struct { func (x *BotRenderingMetadata) Reset() { *x = BotRenderingMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[29] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4110,7 +4414,7 @@ func (x *BotRenderingMetadata) String() string { func (*BotRenderingMetadata) ProtoMessage() {} func (x *BotRenderingMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[29] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4123,7 +4427,7 @@ func (x *BotRenderingMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotRenderingMetadata.ProtoReflect.Descriptor instead. func (*BotRenderingMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{29} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{31} } func (x *BotRenderingMetadata) GetKeywords() []*BotRenderingMetadata_Keyword { @@ -4144,7 +4448,7 @@ type BotMetricsMetadata struct { func (x *BotMetricsMetadata) Reset() { *x = BotMetricsMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[30] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4156,7 +4460,7 @@ func (x *BotMetricsMetadata) String() string { func (*BotMetricsMetadata) ProtoMessage() {} func (x *BotMetricsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[30] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4169,7 +4473,7 @@ func (x *BotMetricsMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMetricsMetadata.ProtoReflect.Descriptor instead. func (*BotMetricsMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{30} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{32} } func (x *BotMetricsMetadata) GetDestinationID() string { @@ -4203,7 +4507,7 @@ type BotSessionMetadata struct { func (x *BotSessionMetadata) Reset() { *x = BotSessionMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[31] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4215,7 +4519,7 @@ func (x *BotSessionMetadata) String() string { func (*BotSessionMetadata) ProtoMessage() {} func (x *BotSessionMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[31] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4228,7 +4532,7 @@ func (x *BotSessionMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotSessionMetadata.ProtoReflect.Descriptor instead. func (*BotSessionMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{31} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{33} } func (x *BotSessionMetadata) GetSessionID() string { @@ -4254,7 +4558,7 @@ type BotMemuMetadata struct { func (x *BotMemuMetadata) Reset() { *x = BotMemuMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[32] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4266,7 +4570,7 @@ func (x *BotMemuMetadata) String() string { func (*BotMemuMetadata) ProtoMessage() {} func (x *BotMemuMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[32] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4279,7 +4583,7 @@ func (x *BotMemuMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMemuMetadata.ProtoReflect.Descriptor instead. func (*BotMemuMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{32} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{34} } func (x *BotMemuMetadata) GetFaceImages() []*BotMediaMetadata { @@ -4308,13 +4612,14 @@ type InThreadSurveyMetadata struct { PrivacyStatementFull *string `protobuf:"bytes,15,opt,name=privacyStatementFull" json:"privacyStatementFull,omitempty"` PrivacyStatementParts []*InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart `protobuf:"bytes,16,rep,name=privacyStatementParts" json:"privacyStatementParts,omitempty"` FeedbackToastText *string `protobuf:"bytes,17,opt,name=feedbackToastText" json:"feedbackToastText,omitempty"` + StartQuestionIndex *int32 `protobuf:"varint,18,opt,name=startQuestionIndex" json:"startQuestionIndex,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *InThreadSurveyMetadata) Reset() { *x = InThreadSurveyMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[33] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4326,7 +4631,7 @@ func (x *InThreadSurveyMetadata) String() string { func (*InThreadSurveyMetadata) ProtoMessage() {} func (x *InThreadSurveyMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[33] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4339,7 +4644,7 @@ func (x *InThreadSurveyMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use InThreadSurveyMetadata.ProtoReflect.Descriptor instead. func (*InThreadSurveyMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{33} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{35} } func (x *InThreadSurveyMetadata) GetTessaSessionID() string { @@ -4461,6 +4766,13 @@ func (x *InThreadSurveyMetadata) GetFeedbackToastText() string { return "" } +func (x *InThreadSurveyMetadata) GetStartQuestionIndex() int32 { + if x != nil && x.StartQuestionIndex != nil { + return *x.StartQuestionIndex + } + return 0 +} + type BotMessageOriginMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` Origins []*BotMessageOrigin `protobuf:"bytes,1,rep,name=origins" json:"origins,omitempty"` @@ -4470,7 +4782,7 @@ type BotMessageOriginMetadata struct { func (x *BotMessageOriginMetadata) Reset() { *x = BotMessageOriginMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[34] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4482,7 +4794,7 @@ func (x *BotMessageOriginMetadata) String() string { func (*BotMessageOriginMetadata) ProtoMessage() {} func (x *BotMessageOriginMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[34] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4495,7 +4807,7 @@ func (x *BotMessageOriginMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMessageOriginMetadata.ProtoReflect.Descriptor instead. func (*BotMessageOriginMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{34} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{36} } func (x *BotMessageOriginMetadata) GetOrigins() []*BotMessageOrigin { @@ -4515,7 +4827,7 @@ type BotUnifiedResponseMutation struct { func (x *BotUnifiedResponseMutation) Reset() { *x = BotUnifiedResponseMutation{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[35] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4527,7 +4839,7 @@ func (x *BotUnifiedResponseMutation) String() string { func (*BotUnifiedResponseMutation) ProtoMessage() {} func (x *BotUnifiedResponseMutation) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[35] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4540,7 +4852,7 @@ func (x *BotUnifiedResponseMutation) ProtoReflect() protoreflect.Message { // Deprecated: Use BotUnifiedResponseMutation.ProtoReflect.Descriptor instead. func (*BotUnifiedResponseMutation) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{35} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{37} } func (x *BotUnifiedResponseMutation) GetSbsMetadata() *BotUnifiedResponseMutation_SideBySideMetadata { @@ -4590,6 +4902,9 @@ type BotMetadata struct { BotMessageOriginMetadata *BotMessageOriginMetadata `protobuf:"bytes,29,opt,name=botMessageOriginMetadata" json:"botMessageOriginMetadata,omitempty"` InThreadSurveyMetadata *InThreadSurveyMetadata `protobuf:"bytes,30,opt,name=inThreadSurveyMetadata" json:"inThreadSurveyMetadata,omitempty"` BotThreadInfo *AIThreadInfo `protobuf:"bytes,31,opt,name=botThreadInfo" json:"botThreadInfo,omitempty"` + RegenerateMetadata *AIRegenerateMetadata `protobuf:"bytes,32,opt,name=regenerateMetadata" json:"regenerateMetadata,omitempty"` + SessionTransparencyMetadata *SessionTransparencyMetadata `protobuf:"bytes,33,opt,name=sessionTransparencyMetadata" json:"sessionTransparencyMetadata,omitempty"` + BotDocumentMessageMetadata *BotDocumentMessageMetadata `protobuf:"bytes,34,opt,name=botDocumentMessageMetadata" json:"botDocumentMessageMetadata,omitempty"` InternalMetadata []byte `protobuf:"bytes,999,opt,name=internalMetadata" json:"internalMetadata,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -4597,7 +4912,7 @@ type BotMetadata struct { func (x *BotMetadata) Reset() { *x = BotMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[36] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4609,7 +4924,7 @@ func (x *BotMetadata) String() string { func (*BotMetadata) ProtoMessage() {} func (x *BotMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[36] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4622,7 +4937,7 @@ func (x *BotMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMetadata.ProtoReflect.Descriptor instead. func (*BotMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{36} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{38} } func (x *BotMetadata) GetAvatarMetadata() *BotAvatarMetadata { @@ -4842,6 +5157,27 @@ func (x *BotMetadata) GetBotThreadInfo() *AIThreadInfo { return nil } +func (x *BotMetadata) GetRegenerateMetadata() *AIRegenerateMetadata { + if x != nil { + return x.RegenerateMetadata + } + return nil +} + +func (x *BotMetadata) GetSessionTransparencyMetadata() *SessionTransparencyMetadata { + if x != nil { + return x.SessionTransparencyMetadata + } + return nil +} + +func (x *BotMetadata) GetBotDocumentMessageMetadata() *BotDocumentMessageMetadata { + if x != nil { + return x.BotDocumentMessageMetadata + } + return nil +} + func (x *BotMetadata) GetInternalMetadata() []byte { if x != nil { return x.InternalMetadata @@ -4860,7 +5196,7 @@ type ForwardedAIBotMessageInfo struct { func (x *ForwardedAIBotMessageInfo) Reset() { *x = ForwardedAIBotMessageInfo{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[37] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4872,7 +5208,7 @@ func (x *ForwardedAIBotMessageInfo) String() string { func (*ForwardedAIBotMessageInfo) ProtoMessage() {} func (x *ForwardedAIBotMessageInfo) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[37] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4885,7 +5221,7 @@ func (x *ForwardedAIBotMessageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ForwardedAIBotMessageInfo.ProtoReflect.Descriptor instead. func (*ForwardedAIBotMessageInfo) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{37} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{39} } func (x *ForwardedAIBotMessageInfo) GetBotName() string { @@ -4919,7 +5255,7 @@ type BotMessageSharingInfo struct { func (x *BotMessageSharingInfo) Reset() { *x = BotMessageSharingInfo{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[38] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4931,7 +5267,7 @@ func (x *BotMessageSharingInfo) String() string { func (*BotMessageSharingInfo) ProtoMessage() {} func (x *BotMessageSharingInfo) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[38] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4944,7 +5280,7 @@ func (x *BotMessageSharingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BotMessageSharingInfo.ProtoReflect.Descriptor instead. func (*BotMessageSharingInfo) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{38} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{40} } func (x *BotMessageSharingInfo) GetBotEntryPointOrigin() BotMetricsEntryPoint { @@ -4972,7 +5308,7 @@ type AIRichResponseImageURL struct { func (x *AIRichResponseImageURL) Reset() { *x = AIRichResponseImageURL{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[39] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4984,7 +5320,7 @@ func (x *AIRichResponseImageURL) String() string { func (*AIRichResponseImageURL) ProtoMessage() {} func (x *AIRichResponseImageURL) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[39] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4997,7 +5333,7 @@ func (x *AIRichResponseImageURL) ProtoReflect() protoreflect.Message { // Deprecated: Use AIRichResponseImageURL.ProtoReflect.Descriptor instead. func (*AIRichResponseImageURL) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{39} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{41} } func (x *AIRichResponseImageURL) GetImagePreviewURL() string { @@ -5031,7 +5367,7 @@ type AIRichResponseGridImageMetadata struct { func (x *AIRichResponseGridImageMetadata) Reset() { *x = AIRichResponseGridImageMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[40] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5043,7 +5379,7 @@ func (x *AIRichResponseGridImageMetadata) String() string { func (*AIRichResponseGridImageMetadata) ProtoMessage() {} func (x *AIRichResponseGridImageMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[40] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5056,7 +5392,7 @@ func (x *AIRichResponseGridImageMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use AIRichResponseGridImageMetadata.ProtoReflect.Descriptor instead. func (*AIRichResponseGridImageMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{40} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{42} } func (x *AIRichResponseGridImageMetadata) GetGridImageURL() *AIRichResponseImageURL { @@ -5083,7 +5419,7 @@ type AIRichResponseTableMetadata struct { func (x *AIRichResponseTableMetadata) Reset() { *x = AIRichResponseTableMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[41] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5095,7 +5431,7 @@ func (x *AIRichResponseTableMetadata) String() string { func (*AIRichResponseTableMetadata) ProtoMessage() {} func (x *AIRichResponseTableMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[41] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5108,7 +5444,7 @@ func (x *AIRichResponseTableMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use AIRichResponseTableMetadata.ProtoReflect.Descriptor instead. func (*AIRichResponseTableMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{41} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{43} } func (x *AIRichResponseTableMetadata) GetRows() []*AIRichResponseTableMetadata_AIRichResponseTableRow { @@ -5134,7 +5470,7 @@ type AIRichResponseUnifiedResponse struct { func (x *AIRichResponseUnifiedResponse) Reset() { *x = AIRichResponseUnifiedResponse{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[42] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5146,7 +5482,7 @@ func (x *AIRichResponseUnifiedResponse) String() string { func (*AIRichResponseUnifiedResponse) ProtoMessage() {} func (x *AIRichResponseUnifiedResponse) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[42] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5159,7 +5495,7 @@ func (x *AIRichResponseUnifiedResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AIRichResponseUnifiedResponse.ProtoReflect.Descriptor instead. func (*AIRichResponseUnifiedResponse) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{42} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{44} } func (x *AIRichResponseUnifiedResponse) GetData() []byte { @@ -5179,7 +5515,7 @@ type AIRichResponseLatexMetadata struct { func (x *AIRichResponseLatexMetadata) Reset() { *x = AIRichResponseLatexMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[43] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5191,7 +5527,7 @@ func (x *AIRichResponseLatexMetadata) String() string { func (*AIRichResponseLatexMetadata) ProtoMessage() {} func (x *AIRichResponseLatexMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[43] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5204,7 +5540,7 @@ func (x *AIRichResponseLatexMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use AIRichResponseLatexMetadata.ProtoReflect.Descriptor instead. func (*AIRichResponseLatexMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{43} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{45} } func (x *AIRichResponseLatexMetadata) GetText() string { @@ -5235,7 +5571,7 @@ type AIRichResponseMapMetadata struct { func (x *AIRichResponseMapMetadata) Reset() { *x = AIRichResponseMapMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[44] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5247,7 +5583,7 @@ func (x *AIRichResponseMapMetadata) String() string { func (*AIRichResponseMapMetadata) ProtoMessage() {} func (x *AIRichResponseMapMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[44] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5260,7 +5596,7 @@ func (x *AIRichResponseMapMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use AIRichResponseMapMetadata.ProtoReflect.Descriptor instead. func (*AIRichResponseMapMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{44} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{46} } func (x *AIRichResponseMapMetadata) GetCenterLatitude() float64 { @@ -5323,7 +5659,7 @@ type AIRichResponseSubMessage struct { func (x *AIRichResponseSubMessage) Reset() { *x = AIRichResponseSubMessage{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[45] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5335,7 +5671,7 @@ func (x *AIRichResponseSubMessage) String() string { func (*AIRichResponseSubMessage) ProtoMessage() {} func (x *AIRichResponseSubMessage) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[45] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5348,7 +5684,7 @@ func (x *AIRichResponseSubMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use AIRichResponseSubMessage.ProtoReflect.Descriptor instead. func (*AIRichResponseSubMessage) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{45} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{47} } func (x *AIRichResponseSubMessage) GetMessageType() AIRichResponseSubMessageType { @@ -5421,6 +5757,118 @@ func (x *AIRichResponseSubMessage) GetContentItemsMetadata() *AIRichResponseCont return nil } +type AIRegenerateMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + MessageKey *waCommon.MessageKey `protobuf:"bytes,1,opt,name=messageKey" json:"messageKey,omitempty"` + ResponseTimestampMS *int64 `protobuf:"varint,2,opt,name=responseTimestampMS" json:"responseTimestampMS,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AIRegenerateMetadata) Reset() { + *x = AIRegenerateMetadata{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AIRegenerateMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AIRegenerateMetadata) ProtoMessage() {} + +func (x *AIRegenerateMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[48] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AIRegenerateMetadata.ProtoReflect.Descriptor instead. +func (*AIRegenerateMetadata) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{48} +} + +func (x *AIRegenerateMetadata) GetMessageKey() *waCommon.MessageKey { + if x != nil { + return x.MessageKey + } + return nil +} + +func (x *AIRegenerateMetadata) GetResponseTimestampMS() int64 { + if x != nil && x.ResponseTimestampMS != nil { + return *x.ResponseTimestampMS + } + return 0 +} + +type SessionTransparencyMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + DisclaimerText *string `protobuf:"bytes,1,opt,name=disclaimerText" json:"disclaimerText,omitempty"` + HcaID *string `protobuf:"bytes,2,opt,name=hcaID" json:"hcaID,omitempty"` + SessionTransparencyType *SessionTransparencyType `protobuf:"varint,3,opt,name=sessionTransparencyType,enum=WAAICommon.SessionTransparencyType" json:"sessionTransparencyType,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SessionTransparencyMetadata) Reset() { + *x = SessionTransparencyMetadata{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SessionTransparencyMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionTransparencyMetadata) ProtoMessage() {} + +func (x *SessionTransparencyMetadata) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[49] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SessionTransparencyMetadata.ProtoReflect.Descriptor instead. +func (*SessionTransparencyMetadata) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{49} +} + +func (x *SessionTransparencyMetadata) GetDisclaimerText() string { + if x != nil && x.DisclaimerText != nil { + return *x.DisclaimerText + } + return "" +} + +func (x *SessionTransparencyMetadata) GetHcaID() string { + if x != nil && x.HcaID != nil { + return *x.HcaID + } + return "" +} + +func (x *SessionTransparencyMetadata) GetSessionTransparencyType() SessionTransparencyType { + if x != nil && x.SessionTransparencyType != nil { + return *x.SessionTransparencyType + } + return SessionTransparencyType_UNKNOWN_TYPE +} + type BotProgressIndicatorMetadata_BotPlanningStepMetadata struct { state protoimpl.MessageState `protogen:"open.v1"` StatusTitle *string `protobuf:"bytes,1,opt,name=statusTitle" json:"statusTitle,omitempty"` @@ -5436,7 +5884,7 @@ type BotProgressIndicatorMetadata_BotPlanningStepMetadata struct { func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) Reset() { *x = BotProgressIndicatorMetadata_BotPlanningStepMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[46] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5448,7 +5896,7 @@ func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) String() string { func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata) ProtoMessage() {} func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[46] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5524,7 +5972,7 @@ type BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourc func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata) Reset() { *x = BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[47] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5537,7 +5985,7 @@ func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSou } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[47] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5585,7 +6033,7 @@ type BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSection func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata) Reset() { *x = BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[48] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5598,7 +6046,7 @@ func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSecti } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[48] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5647,7 +6095,7 @@ type BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourc func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata) Reset() { *x = BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[49] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5660,7 +6108,7 @@ func (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSou } func (x *BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[49] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5715,7 +6163,7 @@ type BotQuotaMetadata_BotFeatureQuotaMetadata struct { func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) Reset() { *x = BotQuotaMetadata_BotFeatureQuotaMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[50] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5727,7 +6175,7 @@ func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) String() string { func (*BotQuotaMetadata_BotFeatureQuotaMetadata) ProtoMessage() {} func (x *BotQuotaMetadata_BotFeatureQuotaMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[50] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5779,7 +6227,7 @@ type BotSourcesMetadata_BotSourceItem struct { func (x *BotSourcesMetadata_BotSourceItem) Reset() { *x = BotSourcesMetadata_BotSourceItem{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[51] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5791,7 +6239,7 @@ func (x *BotSourcesMetadata_BotSourceItem) String() string { func (*BotSourcesMetadata_BotSourceItem) ProtoMessage() {} func (x *BotSourcesMetadata_BotSourceItem) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[51] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5865,7 +6313,7 @@ type AIThreadInfo_AIThreadClientInfo struct { func (x *AIThreadInfo_AIThreadClientInfo) Reset() { *x = AIThreadInfo_AIThreadClientInfo{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[52] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5877,7 +6325,7 @@ func (x *AIThreadInfo_AIThreadClientInfo) String() string { func (*AIThreadInfo_AIThreadClientInfo) ProtoMessage() {} func (x *AIThreadInfo_AIThreadClientInfo) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[52] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5909,7 +6357,7 @@ type AIThreadInfo_AIThreadServerInfo struct { func (x *AIThreadInfo_AIThreadServerInfo) Reset() { *x = AIThreadInfo_AIThreadServerInfo{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[53] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5921,7 +6369,7 @@ func (x *AIThreadInfo_AIThreadServerInfo) String() string { func (*AIThreadInfo_AIThreadServerInfo) ProtoMessage() {} func (x *AIThreadInfo_AIThreadServerInfo) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[53] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5945,22 +6393,23 @@ func (x *AIThreadInfo_AIThreadServerInfo) GetTitle() string { } type BotFeedbackMessage_SideBySideSurveyMetadata struct { - state protoimpl.MessageState `protogen:"open.v1"` - SelectedRequestID *string `protobuf:"bytes,1,opt,name=selectedRequestID" json:"selectedRequestID,omitempty"` - SurveyID *uint32 `protobuf:"varint,2,opt,name=surveyID" json:"surveyID,omitempty"` - SimonSessionFbid *string `protobuf:"bytes,3,opt,name=simonSessionFbid" json:"simonSessionFbid,omitempty"` - ResponseOtid *string `protobuf:"bytes,4,opt,name=responseOtid" json:"responseOtid,omitempty"` - ResponseTimestampMSString *string `protobuf:"bytes,5,opt,name=responseTimestampMSString" json:"responseTimestampMSString,omitempty"` - IsSelectedResponsePrimary *bool `protobuf:"varint,6,opt,name=isSelectedResponsePrimary" json:"isSelectedResponsePrimary,omitempty"` - MessageIDToEdit *string `protobuf:"bytes,7,opt,name=messageIDToEdit" json:"messageIDToEdit,omitempty"` - AnalyticsData *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData `protobuf:"bytes,8,opt,name=analyticsData" json:"analyticsData,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SelectedRequestID *string `protobuf:"bytes,1,opt,name=selectedRequestID" json:"selectedRequestID,omitempty"` + SurveyID *uint32 `protobuf:"varint,2,opt,name=surveyID" json:"surveyID,omitempty"` + SimonSessionFbid *string `protobuf:"bytes,3,opt,name=simonSessionFbid" json:"simonSessionFbid,omitempty"` + ResponseOtid *string `protobuf:"bytes,4,opt,name=responseOtid" json:"responseOtid,omitempty"` + ResponseTimestampMSString *string `protobuf:"bytes,5,opt,name=responseTimestampMSString" json:"responseTimestampMSString,omitempty"` + IsSelectedResponsePrimary *bool `protobuf:"varint,6,opt,name=isSelectedResponsePrimary" json:"isSelectedResponsePrimary,omitempty"` + MessageIDToEdit *string `protobuf:"bytes,7,opt,name=messageIDToEdit" json:"messageIDToEdit,omitempty"` + AnalyticsData *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData `protobuf:"bytes,8,opt,name=analyticsData" json:"analyticsData,omitempty"` + MetaAiAnalyticsData *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData `protobuf:"bytes,9,opt,name=metaAiAnalyticsData" json:"metaAiAnalyticsData,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BotFeedbackMessage_SideBySideSurveyMetadata) Reset() { *x = BotFeedbackMessage_SideBySideSurveyMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[54] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5972,7 +6421,7 @@ func (x *BotFeedbackMessage_SideBySideSurveyMetadata) String() string { func (*BotFeedbackMessage_SideBySideSurveyMetadata) ProtoMessage() {} func (x *BotFeedbackMessage_SideBySideSurveyMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[54] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6044,17 +6493,134 @@ func (x *BotFeedbackMessage_SideBySideSurveyMetadata) GetAnalyticsData() *BotFee return nil } +func (x *BotFeedbackMessage_SideBySideSurveyMetadata) GetMetaAiAnalyticsData() *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData { + if x != nil { + return x.MetaAiAnalyticsData + } + return nil +} + +type BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData struct { + state protoimpl.MessageState `protogen:"open.v1"` + SurveyID *uint32 `protobuf:"varint,1,opt,name=surveyID" json:"surveyID,omitempty"` + PrimaryResponseID *string `protobuf:"bytes,2,opt,name=primaryResponseID" json:"primaryResponseID,omitempty"` + TestArmName *string `protobuf:"bytes,3,opt,name=testArmName" json:"testArmName,omitempty"` + TimestampMSString *string `protobuf:"bytes,4,opt,name=timestampMSString" json:"timestampMSString,omitempty"` + CtaImpressionEvent *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData `protobuf:"bytes,5,opt,name=ctaImpressionEvent" json:"ctaImpressionEvent,omitempty"` + CtaClickEvent *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData `protobuf:"bytes,6,opt,name=ctaClickEvent" json:"ctaClickEvent,omitempty"` + CardImpressionEvent *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData `protobuf:"bytes,7,opt,name=cardImpressionEvent" json:"cardImpressionEvent,omitempty"` + ResponseEvent *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData `protobuf:"bytes,8,opt,name=responseEvent" json:"responseEvent,omitempty"` + AbandonEvent *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData `protobuf:"bytes,9,opt,name=abandonEvent" json:"abandonEvent,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) Reset() { + *x = BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) ProtoMessage() { +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[59] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData.ProtoReflect.Descriptor instead. +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{16, 0, 0} +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetSurveyID() uint32 { + if x != nil && x.SurveyID != nil { + return *x.SurveyID + } + return 0 +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetPrimaryResponseID() string { + if x != nil && x.PrimaryResponseID != nil { + return *x.PrimaryResponseID + } + return "" +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetTestArmName() string { + if x != nil && x.TestArmName != nil { + return *x.TestArmName + } + return "" +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetTimestampMSString() string { + if x != nil && x.TimestampMSString != nil { + return *x.TimestampMSString + } + return "" +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetCtaImpressionEvent() *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData { + if x != nil { + return x.CtaImpressionEvent + } + return nil +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetCtaClickEvent() *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData { + if x != nil { + return x.CtaClickEvent + } + return nil +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetCardImpressionEvent() *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData { + if x != nil { + return x.CardImpressionEvent + } + return nil +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetResponseEvent() *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData { + if x != nil { + return x.ResponseEvent + } + return nil +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData) GetAbandonEvent() *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData { + if x != nil { + return x.AbandonEvent + } + return nil +} + type BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData struct { state protoimpl.MessageState `protogen:"open.v1"` TessaEvent *string `protobuf:"bytes,1,opt,name=tessaEvent" json:"tessaEvent,omitempty"` TessaSessionFbid *string `protobuf:"bytes,2,opt,name=tessaSessionFbid" json:"tessaSessionFbid,omitempty"` + SimonSessionFbid *string `protobuf:"bytes,3,opt,name=simonSessionFbid" json:"simonSessionFbid,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData) Reset() { *x = BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[55] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6066,7 +6632,7 @@ func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsDa func (*BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData) ProtoMessage() {} func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[55] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6079,7 +6645,7 @@ func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsDa // Deprecated: Use BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData.ProtoReflect.Descriptor instead. func (*BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{16, 0, 0} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{16, 0, 1} } func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData) GetTessaEvent() string { @@ -6096,6 +6662,246 @@ func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsDa return "" } +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData) GetSimonSessionFbid() string { + if x != nil && x.SimonSessionFbid != nil { + return *x.SimonSessionFbid + } + return "" +} + +type BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData struct { + state protoimpl.MessageState `protogen:"open.v1"` + AbandonDwellTimeMSString *string `protobuf:"bytes,1,opt,name=abandonDwellTimeMSString" json:"abandonDwellTimeMSString,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData) Reset() { + *x = BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData) ProtoMessage() { +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[61] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData.ProtoReflect.Descriptor instead. +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{16, 0, 0, 0} +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData) GetAbandonDwellTimeMSString() string { + if x != nil && x.AbandonDwellTimeMSString != nil { + return *x.AbandonDwellTimeMSString + } + return "" +} + +type BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResponseDwellTimeMSString *string `protobuf:"bytes,1,opt,name=responseDwellTimeMSString" json:"responseDwellTimeMSString,omitempty"` + SelectedResponseID *string `protobuf:"bytes,2,opt,name=selectedResponseID" json:"selectedResponseID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData) Reset() { + *x = BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData) ProtoMessage() { +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[62] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData.ProtoReflect.Descriptor instead. +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{16, 0, 0, 1} +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData) GetResponseDwellTimeMSString() string { + if x != nil && x.ResponseDwellTimeMSString != nil { + return *x.ResponseDwellTimeMSString + } + return "" +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData) GetSelectedResponseID() string { + if x != nil && x.SelectedResponseID != nil { + return *x.SelectedResponseID + } + return "" +} + +type BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData) Reset() { + *x = BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData) ProtoMessage() { +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[63] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData.ProtoReflect.Descriptor instead. +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{16, 0, 0, 2} +} + +type BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsSurveyExpired *bool `protobuf:"varint,1,opt,name=isSurveyExpired" json:"isSurveyExpired,omitempty"` + ClickDwellTimeMSString *string `protobuf:"bytes,2,opt,name=clickDwellTimeMSString" json:"clickDwellTimeMSString,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData) Reset() { + *x = BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData) ProtoMessage() { +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[64] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData.ProtoReflect.Descriptor instead. +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{16, 0, 0, 3} +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData) GetIsSurveyExpired() bool { + if x != nil && x.IsSurveyExpired != nil { + return *x.IsSurveyExpired + } + return false +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData) GetClickDwellTimeMSString() string { + if x != nil && x.ClickDwellTimeMSString != nil { + return *x.ClickDwellTimeMSString + } + return "" +} + +type BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsSurveyExpired *bool `protobuf:"varint,1,opt,name=isSurveyExpired" json:"isSurveyExpired,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData) Reset() { + *x = BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData) ProtoMessage() { +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[65] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData.ProtoReflect.Descriptor instead. +func (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{16, 0, 0, 4} +} + +func (x *BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData) GetIsSurveyExpired() bool { + if x != nil && x.IsSurveyExpired != nil { + return *x.IsSurveyExpired + } + return false +} + type AIRichResponseCodeMetadata_AIRichResponseCodeBlock struct { state protoimpl.MessageState `protogen:"open.v1"` HighlightType *AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType `protobuf:"varint,1,opt,name=highlightType,enum=WAAICommon.AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType" json:"highlightType,omitempty"` @@ -6106,7 +6912,7 @@ type AIRichResponseCodeMetadata_AIRichResponseCodeBlock struct { func (x *AIRichResponseCodeMetadata_AIRichResponseCodeBlock) Reset() { *x = AIRichResponseCodeMetadata_AIRichResponseCodeBlock{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[56] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6118,7 +6924,7 @@ func (x *AIRichResponseCodeMetadata_AIRichResponseCodeBlock) String() string { func (*AIRichResponseCodeMetadata_AIRichResponseCodeBlock) ProtoMessage() {} func (x *AIRichResponseCodeMetadata_AIRichResponseCodeBlock) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[56] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6160,7 +6966,7 @@ type AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata struct func (x *AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata) Reset() { *x = AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[57] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6172,7 +6978,7 @@ func (x *AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata) S func (*AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata) ProtoMessage() {} func (x *AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[57] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6227,7 +7033,7 @@ type AIRichResponseContentItemsMetadata_AIRichResponseReelItem struct { func (x *AIRichResponseContentItemsMetadata_AIRichResponseReelItem) Reset() { *x = AIRichResponseContentItemsMetadata_AIRichResponseReelItem{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[58] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6239,7 +7045,7 @@ func (x *AIRichResponseContentItemsMetadata_AIRichResponseReelItem) String() str func (*AIRichResponseContentItemsMetadata_AIRichResponseReelItem) ProtoMessage() {} func (x *AIRichResponseContentItemsMetadata_AIRichResponseReelItem) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[58] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6283,6 +7089,98 @@ func (x *AIRichResponseContentItemsMetadata_AIRichResponseReelItem) GetVideoURL( return "" } +type AIHomeState_AIHomeOption struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type *AIHomeState_AIHomeOption_AIHomeActionType `protobuf:"varint,1,opt,name=type,enum=WAAICommon.AIHomeState_AIHomeOption_AIHomeActionType" json:"type,omitempty"` + Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` + PromptText *string `protobuf:"bytes,3,opt,name=promptText" json:"promptText,omitempty"` + SessionID *string `protobuf:"bytes,4,opt,name=sessionID" json:"sessionID,omitempty"` + ImageWdsIdentifier *string `protobuf:"bytes,5,opt,name=imageWdsIdentifier" json:"imageWdsIdentifier,omitempty"` + ImageTintColor *string `protobuf:"bytes,6,opt,name=imageTintColor" json:"imageTintColor,omitempty"` + ImageBackgroundColor *string `protobuf:"bytes,7,opt,name=imageBackgroundColor" json:"imageBackgroundColor,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AIHomeState_AIHomeOption) Reset() { + *x = AIHomeState_AIHomeOption{} + mi := &file_waAICommon_WAAICommon_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AIHomeState_AIHomeOption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AIHomeState_AIHomeOption) ProtoMessage() {} + +func (x *AIHomeState_AIHomeOption) ProtoReflect() protoreflect.Message { + mi := &file_waAICommon_WAAICommon_proto_msgTypes[69] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AIHomeState_AIHomeOption.ProtoReflect.Descriptor instead. +func (*AIHomeState_AIHomeOption) Descriptor() ([]byte, []int) { + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{22, 0} +} + +func (x *AIHomeState_AIHomeOption) GetType() AIHomeState_AIHomeOption_AIHomeActionType { + if x != nil && x.Type != nil { + return *x.Type + } + return AIHomeState_AIHomeOption_PROMPT +} + +func (x *AIHomeState_AIHomeOption) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *AIHomeState_AIHomeOption) GetPromptText() string { + if x != nil && x.PromptText != nil { + return *x.PromptText + } + return "" +} + +func (x *AIHomeState_AIHomeOption) GetSessionID() string { + if x != nil && x.SessionID != nil { + return *x.SessionID + } + return "" +} + +func (x *AIHomeState_AIHomeOption) GetImageWdsIdentifier() string { + if x != nil && x.ImageWdsIdentifier != nil { + return *x.ImageWdsIdentifier + } + return "" +} + +func (x *AIHomeState_AIHomeOption) GetImageTintColor() string { + if x != nil && x.ImageTintColor != nil { + return *x.ImageTintColor + } + return "" +} + +func (x *AIHomeState_AIHomeOption) GetImageBackgroundColor() string { + if x != nil && x.ImageBackgroundColor != nil { + return *x.ImageBackgroundColor + } + return "" +} + type BotRenderingMetadata_Keyword struct { state protoimpl.MessageState `protogen:"open.v1"` Value *string `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"` @@ -6293,7 +7191,7 @@ type BotRenderingMetadata_Keyword struct { func (x *BotRenderingMetadata_Keyword) Reset() { *x = BotRenderingMetadata_Keyword{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[59] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6305,7 +7203,7 @@ func (x *BotRenderingMetadata_Keyword) String() string { func (*BotRenderingMetadata_Keyword) ProtoMessage() {} func (x *BotRenderingMetadata_Keyword) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[59] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6318,7 +7216,7 @@ func (x *BotRenderingMetadata_Keyword) ProtoReflect() protoreflect.Message { // Deprecated: Use BotRenderingMetadata_Keyword.ProtoReflect.Descriptor instead. func (*BotRenderingMetadata_Keyword) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{29, 0} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{31, 0} } func (x *BotRenderingMetadata_Keyword) GetValue() string { @@ -6345,7 +7243,7 @@ type InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart struct { func (x *InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart) Reset() { *x = InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[60] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6357,7 +7255,7 @@ func (x *InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart) String() str func (*InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart) ProtoMessage() {} func (x *InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[60] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6370,7 +7268,7 @@ func (x *InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart) ProtoReflect // Deprecated: Use InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart.ProtoReflect.Descriptor instead. func (*InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{33, 0} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{35, 0} } func (x *InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart) GetText() string { @@ -6398,7 +7296,7 @@ type InThreadSurveyMetadata_InThreadSurveyOption struct { func (x *InThreadSurveyMetadata_InThreadSurveyOption) Reset() { *x = InThreadSurveyMetadata_InThreadSurveyOption{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[61] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6410,7 +7308,7 @@ func (x *InThreadSurveyMetadata_InThreadSurveyOption) String() string { func (*InThreadSurveyMetadata_InThreadSurveyOption) ProtoMessage() {} func (x *InThreadSurveyMetadata_InThreadSurveyOption) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[61] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6423,7 +7321,7 @@ func (x *InThreadSurveyMetadata_InThreadSurveyOption) ProtoReflect() protoreflec // Deprecated: Use InThreadSurveyMetadata_InThreadSurveyOption.ProtoReflect.Descriptor instead. func (*InThreadSurveyMetadata_InThreadSurveyOption) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{33, 1} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{35, 1} } func (x *InThreadSurveyMetadata_InThreadSurveyOption) GetStringValue() string { @@ -6458,7 +7356,7 @@ type InThreadSurveyMetadata_InThreadSurveyQuestion struct { func (x *InThreadSurveyMetadata_InThreadSurveyQuestion) Reset() { *x = InThreadSurveyMetadata_InThreadSurveyQuestion{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[62] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6470,7 +7368,7 @@ func (x *InThreadSurveyMetadata_InThreadSurveyQuestion) String() string { func (*InThreadSurveyMetadata_InThreadSurveyQuestion) ProtoMessage() {} func (x *InThreadSurveyMetadata_InThreadSurveyQuestion) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[62] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6483,7 +7381,7 @@ func (x *InThreadSurveyMetadata_InThreadSurveyQuestion) ProtoReflect() protorefl // Deprecated: Use InThreadSurveyMetadata_InThreadSurveyQuestion.ProtoReflect.Descriptor instead. func (*InThreadSurveyMetadata_InThreadSurveyQuestion) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{33, 2} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{35, 2} } func (x *InThreadSurveyMetadata_InThreadSurveyQuestion) GetQuestionText() string { @@ -6518,7 +7416,7 @@ type BotUnifiedResponseMutation_MediaDetailsMetadata struct { func (x *BotUnifiedResponseMutation_MediaDetailsMetadata) Reset() { *x = BotUnifiedResponseMutation_MediaDetailsMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[63] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6530,7 +7428,7 @@ func (x *BotUnifiedResponseMutation_MediaDetailsMetadata) String() string { func (*BotUnifiedResponseMutation_MediaDetailsMetadata) ProtoMessage() {} func (x *BotUnifiedResponseMutation_MediaDetailsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[63] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6543,7 +7441,7 @@ func (x *BotUnifiedResponseMutation_MediaDetailsMetadata) ProtoReflect() protore // Deprecated: Use BotUnifiedResponseMutation_MediaDetailsMetadata.ProtoReflect.Descriptor instead. func (*BotUnifiedResponseMutation_MediaDetailsMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{35, 0} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{37, 0} } func (x *BotUnifiedResponseMutation_MediaDetailsMetadata) GetID() string { @@ -6568,15 +7466,16 @@ func (x *BotUnifiedResponseMutation_MediaDetailsMetadata) GetPreviewMedia() *Bot } type BotUnifiedResponseMutation_SideBySideMetadata struct { - state protoimpl.MessageState `protogen:"open.v1"` - PrimaryResponseID *string `protobuf:"bytes,1,opt,name=primaryResponseID" json:"primaryResponseID,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PrimaryResponseID *string `protobuf:"bytes,1,opt,name=primaryResponseID" json:"primaryResponseID,omitempty"` + SurveyCtaHasRendered *bool `protobuf:"varint,2,opt,name=surveyCtaHasRendered" json:"surveyCtaHasRendered,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BotUnifiedResponseMutation_SideBySideMetadata) Reset() { *x = BotUnifiedResponseMutation_SideBySideMetadata{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[64] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6588,7 +7487,7 @@ func (x *BotUnifiedResponseMutation_SideBySideMetadata) String() string { func (*BotUnifiedResponseMutation_SideBySideMetadata) ProtoMessage() {} func (x *BotUnifiedResponseMutation_SideBySideMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[64] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6601,7 +7500,7 @@ func (x *BotUnifiedResponseMutation_SideBySideMetadata) ProtoReflect() protorefl // Deprecated: Use BotUnifiedResponseMutation_SideBySideMetadata.ProtoReflect.Descriptor instead. func (*BotUnifiedResponseMutation_SideBySideMetadata) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{35, 1} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{37, 1} } func (x *BotUnifiedResponseMutation_SideBySideMetadata) GetPrimaryResponseID() string { @@ -6611,6 +7510,13 @@ func (x *BotUnifiedResponseMutation_SideBySideMetadata) GetPrimaryResponseID() s return "" } +func (x *BotUnifiedResponseMutation_SideBySideMetadata) GetSurveyCtaHasRendered() bool { + if x != nil && x.SurveyCtaHasRendered != nil { + return *x.SurveyCtaHasRendered + } + return false +} + type AIRichResponseTableMetadata_AIRichResponseTableRow struct { state protoimpl.MessageState `protogen:"open.v1"` Items []string `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"` @@ -6621,7 +7527,7 @@ type AIRichResponseTableMetadata_AIRichResponseTableRow struct { func (x *AIRichResponseTableMetadata_AIRichResponseTableRow) Reset() { *x = AIRichResponseTableMetadata_AIRichResponseTableRow{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[65] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6633,7 +7539,7 @@ func (x *AIRichResponseTableMetadata_AIRichResponseTableRow) String() string { func (*AIRichResponseTableMetadata_AIRichResponseTableRow) ProtoMessage() {} func (x *AIRichResponseTableMetadata_AIRichResponseTableRow) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[65] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6646,7 +7552,7 @@ func (x *AIRichResponseTableMetadata_AIRichResponseTableRow) ProtoReflect() prot // Deprecated: Use AIRichResponseTableMetadata_AIRichResponseTableRow.ProtoReflect.Descriptor instead. func (*AIRichResponseTableMetadata_AIRichResponseTableRow) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{41, 0} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{43, 0} } func (x *AIRichResponseTableMetadata_AIRichResponseTableRow) GetItems() []string { @@ -6680,7 +7586,7 @@ type AIRichResponseLatexMetadata_AIRichResponseLatexExpression struct { func (x *AIRichResponseLatexMetadata_AIRichResponseLatexExpression) Reset() { *x = AIRichResponseLatexMetadata_AIRichResponseLatexExpression{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[66] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6692,7 +7598,7 @@ func (x *AIRichResponseLatexMetadata_AIRichResponseLatexExpression) String() str func (*AIRichResponseLatexMetadata_AIRichResponseLatexExpression) ProtoMessage() {} func (x *AIRichResponseLatexMetadata_AIRichResponseLatexExpression) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[66] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6705,7 +7611,7 @@ func (x *AIRichResponseLatexMetadata_AIRichResponseLatexExpression) ProtoReflect // Deprecated: Use AIRichResponseLatexMetadata_AIRichResponseLatexExpression.ProtoReflect.Descriptor instead. func (*AIRichResponseLatexMetadata_AIRichResponseLatexExpression) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{43, 0} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{45, 0} } func (x *AIRichResponseLatexMetadata_AIRichResponseLatexExpression) GetLatexExpression() string { @@ -6784,7 +7690,7 @@ type AIRichResponseMapMetadata_AIRichResponseMapAnnotation struct { func (x *AIRichResponseMapMetadata_AIRichResponseMapAnnotation) Reset() { *x = AIRichResponseMapMetadata_AIRichResponseMapAnnotation{} - mi := &file_waAICommon_WAAICommon_proto_msgTypes[67] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6796,7 +7702,7 @@ func (x *AIRichResponseMapMetadata_AIRichResponseMapAnnotation) String() string func (*AIRichResponseMapMetadata_AIRichResponseMapAnnotation) ProtoMessage() {} func (x *AIRichResponseMapMetadata_AIRichResponseMapAnnotation) ProtoReflect() protoreflect.Message { - mi := &file_waAICommon_WAAICommon_proto_msgTypes[67] + mi := &file_waAICommon_WAAICommon_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6809,7 +7715,7 @@ func (x *AIRichResponseMapMetadata_AIRichResponseMapAnnotation) ProtoReflect() p // Deprecated: Use AIRichResponseMapMetadata_AIRichResponseMapAnnotation.ProtoReflect.Descriptor instead. func (*AIRichResponseMapMetadata_AIRichResponseMapAnnotation) Descriptor() ([]byte, []int) { - return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{44, 0} + return file_waAICommon_WAAICommon_proto_rawDescGZIP(), []int{46, 0} } func (x *AIRichResponseMapMetadata_AIRichResponseMapAnnotation) GetAnnotationNumber() uint32 { @@ -6939,10 +7845,11 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\n" + "\x06DELETE\x10\x03\x12\n" + "\n" + - "\x06UPDATE\x10\x04\"\xd1\x02\n" + + "\x06UPDATE\x10\x04\"\xff\x02\n" + "\x10BotModelMetadata\x12D\n" + "\tmodelType\x18\x01 \x01(\x0e2&.WAAICommon.BotModelMetadata.ModelTypeR\tmodelType\x12_\n" + - "\x12premiumModelStatus\x18\x02 \x01(\x0e2/.WAAICommon.BotModelMetadata.PremiumModelStatusR\x12premiumModelStatus\"O\n" + + "\x12premiumModelStatus\x18\x02 \x01(\x0e2/.WAAICommon.BotModelMetadata.PremiumModelStatusR\x12premiumModelStatus\x12,\n" + + "\x11modelNameOverride\x18\x03 \x01(\tR\x11modelNameOverride\"O\n" + "\x12PremiumModelStatus\x12\x12\n" + "\x0eUNKNOWN_STATUS\x10\x00\x12\r\n" + "\tAVAILABLE\x10\x01\x12\x16\n" + @@ -6996,9 +7903,9 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\aUNKNOWN\x10\x00\x12\v\n" + "\aPLANNED\x10\x01\x12\r\n" + "\tEXECUTING\x10\x02\x12\f\n" + - "\bFINISHED\x10\x03\"\xbd\f\n" + + "\bFINISHED\x10\x03\"\xc7\r\n" + "\x15BotCapabilityMetadata\x12W\n" + - "\fcapabilities\x18\x01 \x03(\x0e23.WAAICommon.BotCapabilityMetadata.BotCapabilityTypeR\fcapabilities\"\xca\v\n" + + "\fcapabilities\x18\x01 \x03(\x0e23.WAAICommon.BotCapabilityMetadata.BotCapabilityTypeR\fcapabilities\"\xd4\f\n" + "\x11BotCapabilityType\x12\v\n" + "\aUNKNOWN\x10\x00\x12\x16\n" + "\x12PROGRESS_INDICATOR\x10\x01\x12\x19\n" + @@ -7047,7 +7954,11 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "&RICH_RESPONSE_UNIFIED_DOMAIN_CITATIONS\x10*\x12)\n" + "%RICH_RESPONSE_UR_INLINE_REELS_ENABLED\x10+\x12'\n" + "#RICH_RESPONSE_UR_MEDIA_GRID_ENABLED\x10,\x12*\n" + - "&RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER\x10-\"\xa7\x01\n" + + "&RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER\x10-\x12\x1f\n" + + "\x1bRICH_RESPONSE_IN_APP_SURVEY\x10.\x12\x1e\n" + + "\x1aAI_RESPONSE_MODEL_BRANDING\x10/\x12'\n" + + "#SESSION_TRANSPARENCY_SYSTEM_MESSAGE\x100\x12\x1e\n" + + "\x1aRICH_RESPONSE_UR_REASONING\x101\"\xa7\x01\n" + "\x18BotModeSelectionMetadata\x12M\n" + "\x04mode\x18\x01 \x03(\x0e29.WAAICommon.BotModeSelectionMetadata.BotUserSelectionModeR\x04mode\"<\n" + "\x14BotUserSelectionMode\x12\x10\n" + @@ -7114,7 +8025,7 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\aDEFAULT\x10\x01\x12\r\n" + "\tINCOGNITO\x10\x02\x1a*\n" + "\x12AIThreadServerInfo\x12\x14\n" + - "\x05title\x18\x01 \x01(\tR\x05title\"\x8d\x11\n" + + "\x05title\x18\x01 \x01(\tR\x05title\"\xe5\x1e\n" + "\x12BotFeedbackMessage\x124\n" + "\n" + "messageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\n" + @@ -7126,7 +8037,7 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\n" + "kindReport\x18\x06 \x01(\x0e2).WAAICommon.BotFeedbackMessage.ReportKindR\n" + "kindReport\x12s\n" + - "\x18sideBySideSurveyMetadata\x18\a \x01(\v27.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadataR\x18sideBySideSurveyMetadata\x1a\xc4\x04\n" + + "\x18sideBySideSurveyMetadata\x18\a \x01(\v27.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadataR\x18sideBySideSurveyMetadata\x1a\x9c\x12\n" + "\x18SideBySideSurveyMetadata\x12,\n" + "\x11selectedRequestID\x18\x01 \x01(\tR\x11selectedRequestID\x12\x1a\n" + "\bsurveyID\x18\x02 \x01(\rR\bsurveyID\x12*\n" + @@ -7135,12 +8046,35 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\x19responseTimestampMSString\x18\x05 \x01(\tR\x19responseTimestampMSString\x12<\n" + "\x19isSelectedResponsePrimary\x18\x06 \x01(\bR\x19isSelectedResponsePrimary\x12(\n" + "\x0fmessageIDToEdit\x18\a \x01(\tR\x0fmessageIDToEdit\x12{\n" + - "\ranalyticsData\x18\b \x01(\v2U.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsDataR\ranalyticsData\x1ak\n" + + "\ranalyticsData\x18\b \x01(\v2U.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsDataR\ranalyticsData\x12\x8d\x01\n" + + "\x13metaAiAnalyticsData\x18\t \x01(\v2[.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsDataR\x13metaAiAnalyticsData\x1a\x98\f\n" + + "#SidebySideSurveyMetaAiAnalyticsData\x12\x1a\n" + + "\bsurveyID\x18\x01 \x01(\rR\bsurveyID\x12,\n" + + "\x11primaryResponseID\x18\x02 \x01(\tR\x11primaryResponseID\x12 \n" + + "\vtestArmName\x18\x03 \x01(\tR\vtestArmName\x12,\n" + + "\x11timestampMSString\x18\x04 \x01(\tR\x11timestampMSString\x12\xb3\x01\n" + + "\x12ctaImpressionEvent\x18\x05 \x01(\v2\x82\x01.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventDataR\x12ctaImpressionEvent\x12\xa3\x01\n" + + "\rctaClickEvent\x18\x06 \x01(\v2}.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventDataR\rctaClickEvent\x12\xb6\x01\n" + + "\x13cardImpressionEvent\x18\a \x01(\v2\x83\x01.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventDataR\x13cardImpressionEvent\x12\xa3\x01\n" + + "\rresponseEvent\x18\b \x01(\v2}.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventDataR\rresponseEvent\x12\xa0\x01\n" + + "\fabandonEvent\x18\t \x01(\v2|.WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventDataR\fabandonEvent\x1a^\n" + + " SideBySideSurveyAbandonEventData\x12:\n" + + "\x18abandonDwellTimeMSString\x18\x01 \x01(\tR\x18abandonDwellTimeMSString\x1a\x91\x01\n" + + "!SideBySideSurveyResponseEventData\x12<\n" + + "\x19responseDwellTimeMSString\x18\x01 \x01(\tR\x19responseDwellTimeMSString\x12.\n" + + "\x12selectedResponseID\x18\x02 \x01(\tR\x12selectedResponseID\x1a)\n" + + "'SideBySideSurveyCardImpressionEventData\x1a\x85\x01\n" + + "!SideBySideSurveyCTAClickEventData\x12(\n" + + "\x0fisSurveyExpired\x18\x01 \x01(\bR\x0fisSurveyExpired\x126\n" + + "\x16clickDwellTimeMSString\x18\x02 \x01(\tR\x16clickDwellTimeMSString\x1aR\n" + + "&SideBySideSurveyCTAImpressionEventData\x12(\n" + + "\x0fisSurveyExpired\x18\x01 \x01(\bR\x0fisSurveyExpired\x1a\x97\x01\n" + "\x1dSideBySideSurveyAnalyticsData\x12\x1e\n" + "\n" + "tessaEvent\x18\x01 \x01(\tR\n" + "tessaEvent\x12*\n" + - "\x10tessaSessionFbid\x18\x02 \x01(\tR\x10tessaSessionFbid\"#\n" + + "\x10tessaSessionFbid\x18\x02 \x01(\tR\x10tessaSessionFbid\x12*\n" + + "\x10simonSessionFbid\x18\x03 \x01(\tR\x10simonSessionFbid\"#\n" + "\n" + "ReportKind\x12\b\n" + "\x04NONE\x10\x00\x12\v\n" + @@ -7222,7 +8156,34 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\bvideoURL\x18\x04 \x01(\tR\bvideoURL\"(\n" + "\vContentType\x12\v\n" + "\aDEFAULT\x10\x00\x12\f\n" + - "\bCAROUSEL\x10\x01\"\xab\x01\n" + + "\bCAROUSEL\x10\x01\"\xb6\x01\n" + + "\x1aBotDocumentMessageMetadata\x12Y\n" + + "\n" + + "pluginType\x18\x01 \x01(\x0e29.WAAICommon.BotDocumentMessageMetadata.DocumentPluginTypeR\n" + + "pluginType\"=\n" + + "\x12DocumentPluginType\x12\x13\n" + + "\x0fTEXT_EXTRACTION\x10\x00\x12\x12\n" + + "\x0eOCR_AND_IMAGES\x10\x01\"\xf2\x04\n" + + "\vAIHomeState\x12$\n" + + "\rlastFetchTime\x18\x01 \x01(\x03R\rlastFetchTime\x12R\n" + + "\x11capabilityOptions\x18\x02 \x03(\v2$.WAAICommon.AIHomeState.AIHomeOptionR\x11capabilityOptions\x12V\n" + + "\x13conversationOptions\x18\x03 \x03(\v2$.WAAICommon.AIHomeState.AIHomeOptionR\x13conversationOptions\x1a\x90\x03\n" + + "\fAIHomeOption\x12I\n" + + "\x04type\x18\x01 \x01(\x0e25.WAAICommon.AIHomeState.AIHomeOption.AIHomeActionTypeR\x04type\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12\x1e\n" + + "\n" + + "promptText\x18\x03 \x01(\tR\n" + + "promptText\x12\x1c\n" + + "\tsessionID\x18\x04 \x01(\tR\tsessionID\x12.\n" + + "\x12imageWdsIdentifier\x18\x05 \x01(\tR\x12imageWdsIdentifier\x12&\n" + + "\x0eimageTintColor\x18\x06 \x01(\tR\x0eimageTintColor\x122\n" + + "\x14imageBackgroundColor\x18\a \x01(\tR\x14imageBackgroundColor\"U\n" + + "\x10AIHomeActionType\x12\n" + + "\n" + + "\x06PROMPT\x10\x00\x12\x10\n" + + "\fCREATE_IMAGE\x10\x01\x12\x11\n" + + "\rANIMATE_PHOTO\x10\x02\x12\x10\n" + + "\fANALYZE_FILE\x10\x03\"\xab\x01\n" + "\x11BotAvatarMetadata\x12\x1c\n" + "\tsentiment\x18\x01 \x01(\rR\tsentiment\x12$\n" + "\rbehaviorGraph\x18\x02 \x01(\tR\rbehaviorGraph\x12\x16\n" + @@ -7271,7 +8232,7 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\x0fBotMemuMetadata\x12<\n" + "\n" + "faceImages\x18\x01 \x03(\v2\x1c.WAAICommon.BotMediaMetadataR\n" + - "faceImages\"\x8f\n" + + "faceImages\"\xbf\n" + "\n" + "\x16InThreadSurveyMetadata\x12&\n" + "\x0etessaSessionID\x18\x01 \x01(\tR\x0etessaSessionID\x12&\n" + @@ -7293,7 +8254,8 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\x16surveySubmitButtonText\x18\x0e \x01(\tR\x16surveySubmitButtonText\x122\n" + "\x14privacyStatementFull\x18\x0f \x01(\tR\x14privacyStatementFull\x12{\n" + "\x15privacyStatementParts\x18\x10 \x03(\v2E.WAAICommon.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPartR\x15privacyStatementParts\x12,\n" + - "\x11feedbackToastText\x18\x11 \x01(\tR\x11feedbackToastText\x1aJ\n" + + "\x11feedbackToastText\x18\x11 \x01(\tR\x11feedbackToastText\x12.\n" + + "\x12startQuestionIndex\x18\x12 \x01(\x05R\x12startQuestionIndex\x1aJ\n" + "\"InThreadSurveyPrivacyStatementPart\x12\x12\n" + "\x04text\x18\x01 \x01(\tR\x04text\x12\x10\n" + "\x03URL\x18\x02 \x01(\tR\x03URL\x1a\x84\x01\n" + @@ -7308,16 +8270,17 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "questionID\x12a\n" + "\x0fquestionOptions\x18\x03 \x03(\v27.WAAICommon.InThreadSurveyMetadata.InThreadSurveyOptionR\x0fquestionOptions\"R\n" + "\x18BotMessageOriginMetadata\x126\n" + - "\aorigins\x18\x01 \x03(\v2\x1c.WAAICommon.BotMessageOriginR\aorigins\"\xe3\x03\n" + + "\aorigins\x18\x01 \x03(\v2\x1c.WAAICommon.BotMessageOriginR\aorigins\"\x97\x04\n" + "\x1aBotUnifiedResponseMutation\x12[\n" + "\vsbsMetadata\x18\x01 \x01(\v29.WAAICommon.BotUnifiedResponseMutation.SideBySideMetadataR\vsbsMetadata\x12w\n" + "\x18mediaDetailsMetadataList\x18\x02 \x03(\v2;.WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadataR\x18mediaDetailsMetadataList\x1a\xaa\x01\n" + "\x14MediaDetailsMetadata\x12\x0e\n" + "\x02ID\x18\x01 \x01(\tR\x02ID\x12@\n" + "\fhighResMedia\x18\x02 \x01(\v2\x1c.WAAICommon.BotMediaMetadataR\fhighResMedia\x12@\n" + - "\fpreviewMedia\x18\x03 \x01(\v2\x1c.WAAICommon.BotMediaMetadataR\fpreviewMedia\x1aB\n" + + "\fpreviewMedia\x18\x03 \x01(\v2\x1c.WAAICommon.BotMediaMetadataR\fpreviewMedia\x1av\n" + "\x12SideBySideMetadata\x12,\n" + - "\x11primaryResponseID\x18\x01 \x01(\tR\x11primaryResponseID\"\xe2\x12\n" + + "\x11primaryResponseID\x18\x01 \x01(\tR\x11primaryResponseID\x122\n" + + "\x14surveyCtaHasRendered\x18\x02 \x01(\bR\x14surveyCtaHasRendered\"\x87\x15\n" + "\vBotMetadata\x12E\n" + "\x0eavatarMetadata\x18\x01 \x01(\v2\x1d.WAAICommon.BotAvatarMetadataR\x0eavatarMetadata\x12\x1c\n" + "\tpersonaID\x18\x02 \x01(\tR\tpersonaID\x12E\n" + @@ -7352,7 +8315,10 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\x17unifiedResponseMutation\x18\x1c \x01(\v2&.WAAICommon.BotUnifiedResponseMutationR\x17unifiedResponseMutation\x12`\n" + "\x18botMessageOriginMetadata\x18\x1d \x01(\v2$.WAAICommon.BotMessageOriginMetadataR\x18botMessageOriginMetadata\x12Z\n" + "\x16inThreadSurveyMetadata\x18\x1e \x01(\v2\".WAAICommon.InThreadSurveyMetadataR\x16inThreadSurveyMetadata\x12>\n" + - "\rbotThreadInfo\x18\x1f \x01(\v2\x18.WAAICommon.AIThreadInfoR\rbotThreadInfo\x12+\n" + + "\rbotThreadInfo\x18\x1f \x01(\v2\x18.WAAICommon.AIThreadInfoR\rbotThreadInfo\x12P\n" + + "\x12regenerateMetadata\x18 \x01(\v2 .WAAICommon.AIRegenerateMetadataR\x12regenerateMetadata\x12i\n" + + "\x1bsessionTransparencyMetadata\x18! \x01(\v2'.WAAICommon.SessionTransparencyMetadataR\x1bsessionTransparencyMetadata\x12f\n" + + "\x1abotDocumentMessageMetadata\x18\" \x01(\v2&.WAAICommon.BotDocumentMessageMetadataR\x1abotDocumentMessageMetadata\x12+\n" + "\x10internalMetadata\x18\xe7\a \x01(\fR\x10internalMetadata\"o\n" + "\x19ForwardedAIBotMessageInfo\x12\x18\n" + "\abotName\x18\x01 \x01(\tR\abotName\x12\x16\n" + @@ -7415,7 +8381,16 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\rlatexMetadata\x18\b \x01(\v2'.WAAICommon.AIRichResponseLatexMetadataR\rlatexMetadata\x12G\n" + "\vmapMetadata\x18\t \x01(\v2%.WAAICommon.AIRichResponseMapMetadataR\vmapMetadata\x12b\n" + "\x14contentItemsMetadata\x18\n" + - " \x01(\v2..WAAICommon.AIRichResponseContentItemsMetadataR\x14contentItemsMetadata*\xec\a\n" + + " \x01(\v2..WAAICommon.AIRichResponseContentItemsMetadataR\x14contentItemsMetadata\"~\n" + + "\x14AIRegenerateMetadata\x124\n" + + "\n" + + "messageKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\n" + + "messageKey\x120\n" + + "\x13responseTimestampMS\x18\x02 \x01(\x03R\x13responseTimestampMS\"\xba\x01\n" + + "\x1bSessionTransparencyMetadata\x12&\n" + + "\x0edisclaimerText\x18\x01 \x01(\tR\x0edisclaimerText\x12\x14\n" + + "\x05hcaID\x18\x02 \x01(\tR\x05hcaID\x12]\n" + + "\x17sessionTransparencyType\x18\x03 \x01(\x0e2#.WAAICommon.SessionTransparencyTypeR\x17sessionTransparencyType*\xb3\b\n" + "\x14BotMetricsEntryPoint\x12\x19\n" + "\x15UNDEFINED_ENTRY_POINT\x10\x00\x12\v\n" + "\aFAVICON\x10\x01\x12\f\n" + @@ -7455,7 +8430,9 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + " MESSAGE_QUICK_ACTION_1_ON_1_CHAT\x10!\x12#\n" + "\x1fMESSAGE_QUICK_ACTION_GROUP_CHAT\x10\"\x12\x1f\n" + "\x1bATTACHMENT_TRAY_1_ON_1_CHAT\x10#\x12\x1e\n" + - "\x1aATTACHMENT_TRAY_GROUP_CHAT\x10$*\xa2\x01\n" + + "\x1aATTACHMENT_TRAY_GROUP_CHAT\x10$\x12!\n" + + "\x1dASK_META_AI_MEDIA_VIEWER_1ON1\x10%\x12\"\n" + + "\x1eASK_META_AI_MEDIA_VIEWER_GROUP\x10&*\xa2\x01\n" + "\x1aBotMetricsThreadEntryPoint\x12\x11\n" + "\rAI_TAB_THREAD\x10\x01\x12\x12\n" + "\x0eAI_HOME_THREAD\x10\x02\x12 \n" + @@ -7485,7 +8462,10 @@ const file_waAICommon_WAAICommon_proto_rawDesc = "" + "\x18AI_RICH_RESPONSE_DYNAMIC\x10\x06\x12\x18\n" + "\x14AI_RICH_RESPONSE_MAP\x10\a\x12\x1a\n" + "\x16AI_RICH_RESPONSE_LATEX\x10\b\x12\"\n" + - "\x1eAI_RICH_RESPONSE_CONTENT_ITEMS\x10\tB&Z$go.mau.fi/whatsmeow/proto/waAICommon" + "\x1eAI_RICH_RESPONSE_CONTENT_ITEMS\x10\t*H\n" + + "\x17SessionTransparencyType\x12\x10\n" + + "\fUNKNOWN_TYPE\x10\x00\x12\x1b\n" + + "\x17NY_AI_SAFETY_DISCLAIMER\x10\x01B&Z$go.mau.fi/whatsmeow/proto/waAICommon" var ( file_waAICommon_WAAICommon_proto_rawDescOnce sync.Once @@ -7499,223 +8479,252 @@ func file_waAICommon_WAAICommon_proto_rawDescGZIP() []byte { return file_waAICommon_WAAICommon_proto_rawDescData } -var file_waAICommon_WAAICommon_proto_enumTypes = make([]protoimpl.EnumInfo, 34) -var file_waAICommon_WAAICommon_proto_msgTypes = make([]protoimpl.MessageInfo, 68) +var file_waAICommon_WAAICommon_proto_enumTypes = make([]protoimpl.EnumInfo, 37) +var file_waAICommon_WAAICommon_proto_msgTypes = make([]protoimpl.MessageInfo, 79) var file_waAICommon_WAAICommon_proto_goTypes = []any{ (BotMetricsEntryPoint)(0), // 0: WAAICommon.BotMetricsEntryPoint (BotMetricsThreadEntryPoint)(0), // 1: WAAICommon.BotMetricsThreadEntryPoint (BotSessionSource)(0), // 2: WAAICommon.BotSessionSource (AIRichResponseMessageType)(0), // 3: WAAICommon.AIRichResponseMessageType (AIRichResponseSubMessageType)(0), // 4: WAAICommon.AIRichResponseSubMessageType - (BotPluginMetadata_PluginType)(0), // 5: WAAICommon.BotPluginMetadata.PluginType - (BotPluginMetadata_SearchProvider)(0), // 6: WAAICommon.BotPluginMetadata.SearchProvider - (BotLinkedAccount_BotLinkedAccountType)(0), // 7: WAAICommon.BotLinkedAccount.BotLinkedAccountType - (BotSignatureVerificationUseCaseProof_BotSignatureUseCase)(0), // 8: WAAICommon.BotSignatureVerificationUseCaseProof.BotSignatureUseCase - (BotPromotionMessageMetadata_BotPromotionType)(0), // 9: WAAICommon.BotPromotionMessageMetadata.BotPromotionType - (BotMediaMetadata_OrientationType)(0), // 10: WAAICommon.BotMediaMetadata.OrientationType - (BotReminderMetadata_ReminderFrequency)(0), // 11: WAAICommon.BotReminderMetadata.ReminderFrequency - (BotReminderMetadata_ReminderAction)(0), // 12: WAAICommon.BotReminderMetadata.ReminderAction - (BotModelMetadata_PremiumModelStatus)(0), // 13: WAAICommon.BotModelMetadata.PremiumModelStatus - (BotModelMetadata_ModelType)(0), // 14: WAAICommon.BotModelMetadata.ModelType - (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider)(0), // 15: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider - (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus)(0), // 16: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus - (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider)(0), // 17: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider - (BotCapabilityMetadata_BotCapabilityType)(0), // 18: WAAICommon.BotCapabilityMetadata.BotCapabilityType - (BotModeSelectionMetadata_BotUserSelectionMode)(0), // 19: WAAICommon.BotModeSelectionMetadata.BotUserSelectionMode - (BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType)(0), // 20: WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType - (BotImagineMetadata_ImagineType)(0), // 21: WAAICommon.BotImagineMetadata.ImagineType - (BotAgeCollectionMetadata_AgeCollectionType)(0), // 22: WAAICommon.BotAgeCollectionMetadata.AgeCollectionType - (BotSourcesMetadata_BotSourceItem_SourceProvider)(0), // 23: WAAICommon.BotSourcesMetadata.BotSourceItem.SourceProvider - (BotMessageOrigin_BotMessageOriginType)(0), // 24: WAAICommon.BotMessageOrigin.BotMessageOriginType - (AIThreadInfo_AIThreadClientInfo_AIThreadType)(0), // 25: WAAICommon.AIThreadInfo.AIThreadClientInfo.AIThreadType - (BotFeedbackMessage_ReportKind)(0), // 26: WAAICommon.BotFeedbackMessage.ReportKind - (BotFeedbackMessage_BotFeedbackKindMultiplePositive)(0), // 27: WAAICommon.BotFeedbackMessage.BotFeedbackKindMultiplePositive - (BotFeedbackMessage_BotFeedbackKindMultipleNegative)(0), // 28: WAAICommon.BotFeedbackMessage.BotFeedbackKindMultipleNegative - (BotFeedbackMessage_BotFeedbackKind)(0), // 29: WAAICommon.BotFeedbackMessage.BotFeedbackKind - (AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment)(0), // 30: WAAICommon.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment - (AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType)(0), // 31: WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType - (AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType)(0), // 32: WAAICommon.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType - (AIRichResponseContentItemsMetadata_ContentType)(0), // 33: WAAICommon.AIRichResponseContentItemsMetadata.ContentType - (*BotPluginMetadata)(nil), // 34: WAAICommon.BotPluginMetadata - (*BotLinkedAccount)(nil), // 35: WAAICommon.BotLinkedAccount - (*BotSignatureVerificationUseCaseProof)(nil), // 36: WAAICommon.BotSignatureVerificationUseCaseProof - (*BotPromotionMessageMetadata)(nil), // 37: WAAICommon.BotPromotionMessageMetadata - (*BotMediaMetadata)(nil), // 38: WAAICommon.BotMediaMetadata - (*BotReminderMetadata)(nil), // 39: WAAICommon.BotReminderMetadata - (*BotModelMetadata)(nil), // 40: WAAICommon.BotModelMetadata - (*BotProgressIndicatorMetadata)(nil), // 41: WAAICommon.BotProgressIndicatorMetadata - (*BotCapabilityMetadata)(nil), // 42: WAAICommon.BotCapabilityMetadata - (*BotModeSelectionMetadata)(nil), // 43: WAAICommon.BotModeSelectionMetadata - (*BotQuotaMetadata)(nil), // 44: WAAICommon.BotQuotaMetadata - (*BotImagineMetadata)(nil), // 45: WAAICommon.BotImagineMetadata - (*BotAgeCollectionMetadata)(nil), // 46: WAAICommon.BotAgeCollectionMetadata - (*BotSourcesMetadata)(nil), // 47: WAAICommon.BotSourcesMetadata - (*BotMessageOrigin)(nil), // 48: WAAICommon.BotMessageOrigin - (*AIThreadInfo)(nil), // 49: WAAICommon.AIThreadInfo - (*BotFeedbackMessage)(nil), // 50: WAAICommon.BotFeedbackMessage - (*AIRichResponseInlineImageMetadata)(nil), // 51: WAAICommon.AIRichResponseInlineImageMetadata - (*AIRichResponseCodeMetadata)(nil), // 52: WAAICommon.AIRichResponseCodeMetadata - (*AIRichResponseDynamicMetadata)(nil), // 53: WAAICommon.AIRichResponseDynamicMetadata - (*AIRichResponseContentItemsMetadata)(nil), // 54: WAAICommon.AIRichResponseContentItemsMetadata - (*BotAvatarMetadata)(nil), // 55: WAAICommon.BotAvatarMetadata - (*BotSuggestedPromptMetadata)(nil), // 56: WAAICommon.BotSuggestedPromptMetadata - (*BotPromptSuggestions)(nil), // 57: WAAICommon.BotPromptSuggestions - (*BotPromptSuggestion)(nil), // 58: WAAICommon.BotPromptSuggestion - (*BotLinkedAccountsMetadata)(nil), // 59: WAAICommon.BotLinkedAccountsMetadata - (*BotMemoryMetadata)(nil), // 60: WAAICommon.BotMemoryMetadata - (*BotMemoryFact)(nil), // 61: WAAICommon.BotMemoryFact - (*BotSignatureVerificationMetadata)(nil), // 62: WAAICommon.BotSignatureVerificationMetadata - (*BotRenderingMetadata)(nil), // 63: WAAICommon.BotRenderingMetadata - (*BotMetricsMetadata)(nil), // 64: WAAICommon.BotMetricsMetadata - (*BotSessionMetadata)(nil), // 65: WAAICommon.BotSessionMetadata - (*BotMemuMetadata)(nil), // 66: WAAICommon.BotMemuMetadata - (*InThreadSurveyMetadata)(nil), // 67: WAAICommon.InThreadSurveyMetadata - (*BotMessageOriginMetadata)(nil), // 68: WAAICommon.BotMessageOriginMetadata - (*BotUnifiedResponseMutation)(nil), // 69: WAAICommon.BotUnifiedResponseMutation - (*BotMetadata)(nil), // 70: WAAICommon.BotMetadata - (*ForwardedAIBotMessageInfo)(nil), // 71: WAAICommon.ForwardedAIBotMessageInfo - (*BotMessageSharingInfo)(nil), // 72: WAAICommon.BotMessageSharingInfo - (*AIRichResponseImageURL)(nil), // 73: WAAICommon.AIRichResponseImageURL - (*AIRichResponseGridImageMetadata)(nil), // 74: WAAICommon.AIRichResponseGridImageMetadata - (*AIRichResponseTableMetadata)(nil), // 75: WAAICommon.AIRichResponseTableMetadata - (*AIRichResponseUnifiedResponse)(nil), // 76: WAAICommon.AIRichResponseUnifiedResponse - (*AIRichResponseLatexMetadata)(nil), // 77: WAAICommon.AIRichResponseLatexMetadata - (*AIRichResponseMapMetadata)(nil), // 78: WAAICommon.AIRichResponseMapMetadata - (*AIRichResponseSubMessage)(nil), // 79: WAAICommon.AIRichResponseSubMessage - (*BotProgressIndicatorMetadata_BotPlanningStepMetadata)(nil), // 80: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata - (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata)(nil), // 81: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata - (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata)(nil), // 82: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata - (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata)(nil), // 83: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata - (*BotQuotaMetadata_BotFeatureQuotaMetadata)(nil), // 84: WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata - (*BotSourcesMetadata_BotSourceItem)(nil), // 85: WAAICommon.BotSourcesMetadata.BotSourceItem - (*AIThreadInfo_AIThreadClientInfo)(nil), // 86: WAAICommon.AIThreadInfo.AIThreadClientInfo - (*AIThreadInfo_AIThreadServerInfo)(nil), // 87: WAAICommon.AIThreadInfo.AIThreadServerInfo - (*BotFeedbackMessage_SideBySideSurveyMetadata)(nil), // 88: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata - (*BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData)(nil), // 89: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsData - (*AIRichResponseCodeMetadata_AIRichResponseCodeBlock)(nil), // 90: WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeBlock - (*AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata)(nil), // 91: WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata - (*AIRichResponseContentItemsMetadata_AIRichResponseReelItem)(nil), // 92: WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseReelItem - (*BotRenderingMetadata_Keyword)(nil), // 93: WAAICommon.BotRenderingMetadata.Keyword - (*InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart)(nil), // 94: WAAICommon.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart - (*InThreadSurveyMetadata_InThreadSurveyOption)(nil), // 95: WAAICommon.InThreadSurveyMetadata.InThreadSurveyOption - (*InThreadSurveyMetadata_InThreadSurveyQuestion)(nil), // 96: WAAICommon.InThreadSurveyMetadata.InThreadSurveyQuestion - (*BotUnifiedResponseMutation_MediaDetailsMetadata)(nil), // 97: WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadata - (*BotUnifiedResponseMutation_SideBySideMetadata)(nil), // 98: WAAICommon.BotUnifiedResponseMutation.SideBySideMetadata - (*AIRichResponseTableMetadata_AIRichResponseTableRow)(nil), // 99: WAAICommon.AIRichResponseTableMetadata.AIRichResponseTableRow - (*AIRichResponseLatexMetadata_AIRichResponseLatexExpression)(nil), // 100: WAAICommon.AIRichResponseLatexMetadata.AIRichResponseLatexExpression - (*AIRichResponseMapMetadata_AIRichResponseMapAnnotation)(nil), // 101: WAAICommon.AIRichResponseMapMetadata.AIRichResponseMapAnnotation - (*waCommon.MessageKey)(nil), // 102: WACommon.MessageKey + (SessionTransparencyType)(0), // 5: WAAICommon.SessionTransparencyType + (BotPluginMetadata_PluginType)(0), // 6: WAAICommon.BotPluginMetadata.PluginType + (BotPluginMetadata_SearchProvider)(0), // 7: WAAICommon.BotPluginMetadata.SearchProvider + (BotLinkedAccount_BotLinkedAccountType)(0), // 8: WAAICommon.BotLinkedAccount.BotLinkedAccountType + (BotSignatureVerificationUseCaseProof_BotSignatureUseCase)(0), // 9: WAAICommon.BotSignatureVerificationUseCaseProof.BotSignatureUseCase + (BotPromotionMessageMetadata_BotPromotionType)(0), // 10: WAAICommon.BotPromotionMessageMetadata.BotPromotionType + (BotMediaMetadata_OrientationType)(0), // 11: WAAICommon.BotMediaMetadata.OrientationType + (BotReminderMetadata_ReminderFrequency)(0), // 12: WAAICommon.BotReminderMetadata.ReminderFrequency + (BotReminderMetadata_ReminderAction)(0), // 13: WAAICommon.BotReminderMetadata.ReminderAction + (BotModelMetadata_PremiumModelStatus)(0), // 14: WAAICommon.BotModelMetadata.PremiumModelStatus + (BotModelMetadata_ModelType)(0), // 15: WAAICommon.BotModelMetadata.ModelType + (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotSearchSourceProvider)(0), // 16: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider + (BotProgressIndicatorMetadata_BotPlanningStepMetadata_PlanningStepStatus)(0), // 17: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus + (BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata_BotPlanningSearchSourceProvider)(0), // 18: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider + (BotCapabilityMetadata_BotCapabilityType)(0), // 19: WAAICommon.BotCapabilityMetadata.BotCapabilityType + (BotModeSelectionMetadata_BotUserSelectionMode)(0), // 20: WAAICommon.BotModeSelectionMetadata.BotUserSelectionMode + (BotQuotaMetadata_BotFeatureQuotaMetadata_BotFeatureType)(0), // 21: WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType + (BotImagineMetadata_ImagineType)(0), // 22: WAAICommon.BotImagineMetadata.ImagineType + (BotAgeCollectionMetadata_AgeCollectionType)(0), // 23: WAAICommon.BotAgeCollectionMetadata.AgeCollectionType + (BotSourcesMetadata_BotSourceItem_SourceProvider)(0), // 24: WAAICommon.BotSourcesMetadata.BotSourceItem.SourceProvider + (BotMessageOrigin_BotMessageOriginType)(0), // 25: WAAICommon.BotMessageOrigin.BotMessageOriginType + (AIThreadInfo_AIThreadClientInfo_AIThreadType)(0), // 26: WAAICommon.AIThreadInfo.AIThreadClientInfo.AIThreadType + (BotFeedbackMessage_ReportKind)(0), // 27: WAAICommon.BotFeedbackMessage.ReportKind + (BotFeedbackMessage_BotFeedbackKindMultiplePositive)(0), // 28: WAAICommon.BotFeedbackMessage.BotFeedbackKindMultiplePositive + (BotFeedbackMessage_BotFeedbackKindMultipleNegative)(0), // 29: WAAICommon.BotFeedbackMessage.BotFeedbackKindMultipleNegative + (BotFeedbackMessage_BotFeedbackKind)(0), // 30: WAAICommon.BotFeedbackMessage.BotFeedbackKind + (AIRichResponseInlineImageMetadata_AIRichResponseImageAlignment)(0), // 31: WAAICommon.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment + (AIRichResponseCodeMetadata_AIRichResponseCodeHighlightType)(0), // 32: WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType + (AIRichResponseDynamicMetadata_AIRichResponseDynamicMetadataType)(0), // 33: WAAICommon.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType + (AIRichResponseContentItemsMetadata_ContentType)(0), // 34: WAAICommon.AIRichResponseContentItemsMetadata.ContentType + (BotDocumentMessageMetadata_DocumentPluginType)(0), // 35: WAAICommon.BotDocumentMessageMetadata.DocumentPluginType + (AIHomeState_AIHomeOption_AIHomeActionType)(0), // 36: WAAICommon.AIHomeState.AIHomeOption.AIHomeActionType + (*BotPluginMetadata)(nil), // 37: WAAICommon.BotPluginMetadata + (*BotLinkedAccount)(nil), // 38: WAAICommon.BotLinkedAccount + (*BotSignatureVerificationUseCaseProof)(nil), // 39: WAAICommon.BotSignatureVerificationUseCaseProof + (*BotPromotionMessageMetadata)(nil), // 40: WAAICommon.BotPromotionMessageMetadata + (*BotMediaMetadata)(nil), // 41: WAAICommon.BotMediaMetadata + (*BotReminderMetadata)(nil), // 42: WAAICommon.BotReminderMetadata + (*BotModelMetadata)(nil), // 43: WAAICommon.BotModelMetadata + (*BotProgressIndicatorMetadata)(nil), // 44: WAAICommon.BotProgressIndicatorMetadata + (*BotCapabilityMetadata)(nil), // 45: WAAICommon.BotCapabilityMetadata + (*BotModeSelectionMetadata)(nil), // 46: WAAICommon.BotModeSelectionMetadata + (*BotQuotaMetadata)(nil), // 47: WAAICommon.BotQuotaMetadata + (*BotImagineMetadata)(nil), // 48: WAAICommon.BotImagineMetadata + (*BotAgeCollectionMetadata)(nil), // 49: WAAICommon.BotAgeCollectionMetadata + (*BotSourcesMetadata)(nil), // 50: WAAICommon.BotSourcesMetadata + (*BotMessageOrigin)(nil), // 51: WAAICommon.BotMessageOrigin + (*AIThreadInfo)(nil), // 52: WAAICommon.AIThreadInfo + (*BotFeedbackMessage)(nil), // 53: WAAICommon.BotFeedbackMessage + (*AIRichResponseInlineImageMetadata)(nil), // 54: WAAICommon.AIRichResponseInlineImageMetadata + (*AIRichResponseCodeMetadata)(nil), // 55: WAAICommon.AIRichResponseCodeMetadata + (*AIRichResponseDynamicMetadata)(nil), // 56: WAAICommon.AIRichResponseDynamicMetadata + (*AIRichResponseContentItemsMetadata)(nil), // 57: WAAICommon.AIRichResponseContentItemsMetadata + (*BotDocumentMessageMetadata)(nil), // 58: WAAICommon.BotDocumentMessageMetadata + (*AIHomeState)(nil), // 59: WAAICommon.AIHomeState + (*BotAvatarMetadata)(nil), // 60: WAAICommon.BotAvatarMetadata + (*BotSuggestedPromptMetadata)(nil), // 61: WAAICommon.BotSuggestedPromptMetadata + (*BotPromptSuggestions)(nil), // 62: WAAICommon.BotPromptSuggestions + (*BotPromptSuggestion)(nil), // 63: WAAICommon.BotPromptSuggestion + (*BotLinkedAccountsMetadata)(nil), // 64: WAAICommon.BotLinkedAccountsMetadata + (*BotMemoryMetadata)(nil), // 65: WAAICommon.BotMemoryMetadata + (*BotMemoryFact)(nil), // 66: WAAICommon.BotMemoryFact + (*BotSignatureVerificationMetadata)(nil), // 67: WAAICommon.BotSignatureVerificationMetadata + (*BotRenderingMetadata)(nil), // 68: WAAICommon.BotRenderingMetadata + (*BotMetricsMetadata)(nil), // 69: WAAICommon.BotMetricsMetadata + (*BotSessionMetadata)(nil), // 70: WAAICommon.BotSessionMetadata + (*BotMemuMetadata)(nil), // 71: WAAICommon.BotMemuMetadata + (*InThreadSurveyMetadata)(nil), // 72: WAAICommon.InThreadSurveyMetadata + (*BotMessageOriginMetadata)(nil), // 73: WAAICommon.BotMessageOriginMetadata + (*BotUnifiedResponseMutation)(nil), // 74: WAAICommon.BotUnifiedResponseMutation + (*BotMetadata)(nil), // 75: WAAICommon.BotMetadata + (*ForwardedAIBotMessageInfo)(nil), // 76: WAAICommon.ForwardedAIBotMessageInfo + (*BotMessageSharingInfo)(nil), // 77: WAAICommon.BotMessageSharingInfo + (*AIRichResponseImageURL)(nil), // 78: WAAICommon.AIRichResponseImageURL + (*AIRichResponseGridImageMetadata)(nil), // 79: WAAICommon.AIRichResponseGridImageMetadata + (*AIRichResponseTableMetadata)(nil), // 80: WAAICommon.AIRichResponseTableMetadata + (*AIRichResponseUnifiedResponse)(nil), // 81: WAAICommon.AIRichResponseUnifiedResponse + (*AIRichResponseLatexMetadata)(nil), // 82: WAAICommon.AIRichResponseLatexMetadata + (*AIRichResponseMapMetadata)(nil), // 83: WAAICommon.AIRichResponseMapMetadata + (*AIRichResponseSubMessage)(nil), // 84: WAAICommon.AIRichResponseSubMessage + (*AIRegenerateMetadata)(nil), // 85: WAAICommon.AIRegenerateMetadata + (*SessionTransparencyMetadata)(nil), // 86: WAAICommon.SessionTransparencyMetadata + (*BotProgressIndicatorMetadata_BotPlanningStepMetadata)(nil), // 87: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata + (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourcesMetadata)(nil), // 88: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata + (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningStepSectionMetadata)(nil), // 89: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + (*BotProgressIndicatorMetadata_BotPlanningStepMetadata_BotPlanningSearchSourceMetadata)(nil), // 90: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + (*BotQuotaMetadata_BotFeatureQuotaMetadata)(nil), // 91: WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata + (*BotSourcesMetadata_BotSourceItem)(nil), // 92: WAAICommon.BotSourcesMetadata.BotSourceItem + (*AIThreadInfo_AIThreadClientInfo)(nil), // 93: WAAICommon.AIThreadInfo.AIThreadClientInfo + (*AIThreadInfo_AIThreadServerInfo)(nil), // 94: WAAICommon.AIThreadInfo.AIThreadServerInfo + (*BotFeedbackMessage_SideBySideSurveyMetadata)(nil), // 95: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata + (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData)(nil), // 96: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData + (*BotFeedbackMessage_SideBySideSurveyMetadata_SideBySideSurveyAnalyticsData)(nil), // 97: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsData + (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyAbandonEventData)(nil), // 98: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventData + (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyResponseEventData)(nil), // 99: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventData + (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCardImpressionEventData)(nil), // 100: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventData + (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAClickEventData)(nil), // 101: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventData + (*BotFeedbackMessage_SideBySideSurveyMetadata_SidebySideSurveyMetaAiAnalyticsData_SideBySideSurveyCTAImpressionEventData)(nil), // 102: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventData + (*AIRichResponseCodeMetadata_AIRichResponseCodeBlock)(nil), // 103: WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeBlock + (*AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata)(nil), // 104: WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata + (*AIRichResponseContentItemsMetadata_AIRichResponseReelItem)(nil), // 105: WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseReelItem + (*AIHomeState_AIHomeOption)(nil), // 106: WAAICommon.AIHomeState.AIHomeOption + (*BotRenderingMetadata_Keyword)(nil), // 107: WAAICommon.BotRenderingMetadata.Keyword + (*InThreadSurveyMetadata_InThreadSurveyPrivacyStatementPart)(nil), // 108: WAAICommon.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart + (*InThreadSurveyMetadata_InThreadSurveyOption)(nil), // 109: WAAICommon.InThreadSurveyMetadata.InThreadSurveyOption + (*InThreadSurveyMetadata_InThreadSurveyQuestion)(nil), // 110: WAAICommon.InThreadSurveyMetadata.InThreadSurveyQuestion + (*BotUnifiedResponseMutation_MediaDetailsMetadata)(nil), // 111: WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadata + (*BotUnifiedResponseMutation_SideBySideMetadata)(nil), // 112: WAAICommon.BotUnifiedResponseMutation.SideBySideMetadata + (*AIRichResponseTableMetadata_AIRichResponseTableRow)(nil), // 113: WAAICommon.AIRichResponseTableMetadata.AIRichResponseTableRow + (*AIRichResponseLatexMetadata_AIRichResponseLatexExpression)(nil), // 114: WAAICommon.AIRichResponseLatexMetadata.AIRichResponseLatexExpression + (*AIRichResponseMapMetadata_AIRichResponseMapAnnotation)(nil), // 115: WAAICommon.AIRichResponseMapMetadata.AIRichResponseMapAnnotation + (*waCommon.MessageKey)(nil), // 116: WACommon.MessageKey } var file_waAICommon_WAAICommon_proto_depIdxs = []int32{ - 6, // 0: WAAICommon.BotPluginMetadata.provider:type_name -> WAAICommon.BotPluginMetadata.SearchProvider - 5, // 1: WAAICommon.BotPluginMetadata.pluginType:type_name -> WAAICommon.BotPluginMetadata.PluginType - 102, // 2: WAAICommon.BotPluginMetadata.parentPluginMessageKey:type_name -> WACommon.MessageKey - 5, // 3: WAAICommon.BotPluginMetadata.deprecatedField:type_name -> WAAICommon.BotPluginMetadata.PluginType - 5, // 4: WAAICommon.BotPluginMetadata.parentPluginType:type_name -> WAAICommon.BotPluginMetadata.PluginType - 7, // 5: WAAICommon.BotLinkedAccount.type:type_name -> WAAICommon.BotLinkedAccount.BotLinkedAccountType - 8, // 6: WAAICommon.BotSignatureVerificationUseCaseProof.useCase:type_name -> WAAICommon.BotSignatureVerificationUseCaseProof.BotSignatureUseCase - 9, // 7: WAAICommon.BotPromotionMessageMetadata.promotionType:type_name -> WAAICommon.BotPromotionMessageMetadata.BotPromotionType - 10, // 8: WAAICommon.BotMediaMetadata.orientationType:type_name -> WAAICommon.BotMediaMetadata.OrientationType - 102, // 9: WAAICommon.BotReminderMetadata.requestMessageKey:type_name -> WACommon.MessageKey - 12, // 10: WAAICommon.BotReminderMetadata.action:type_name -> WAAICommon.BotReminderMetadata.ReminderAction - 11, // 11: WAAICommon.BotReminderMetadata.frequency:type_name -> WAAICommon.BotReminderMetadata.ReminderFrequency - 14, // 12: WAAICommon.BotModelMetadata.modelType:type_name -> WAAICommon.BotModelMetadata.ModelType - 13, // 13: WAAICommon.BotModelMetadata.premiumModelStatus:type_name -> WAAICommon.BotModelMetadata.PremiumModelStatus - 80, // 14: WAAICommon.BotProgressIndicatorMetadata.stepsMetadata:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata - 18, // 15: WAAICommon.BotCapabilityMetadata.capabilities:type_name -> WAAICommon.BotCapabilityMetadata.BotCapabilityType - 19, // 16: WAAICommon.BotModeSelectionMetadata.mode:type_name -> WAAICommon.BotModeSelectionMetadata.BotUserSelectionMode - 84, // 17: WAAICommon.BotQuotaMetadata.botFeatureQuotaMetadata:type_name -> WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata - 21, // 18: WAAICommon.BotImagineMetadata.imagineType:type_name -> WAAICommon.BotImagineMetadata.ImagineType - 22, // 19: WAAICommon.BotAgeCollectionMetadata.ageCollectionType:type_name -> WAAICommon.BotAgeCollectionMetadata.AgeCollectionType - 85, // 20: WAAICommon.BotSourcesMetadata.sources:type_name -> WAAICommon.BotSourcesMetadata.BotSourceItem - 24, // 21: WAAICommon.BotMessageOrigin.type:type_name -> WAAICommon.BotMessageOrigin.BotMessageOriginType - 87, // 22: WAAICommon.AIThreadInfo.serverInfo:type_name -> WAAICommon.AIThreadInfo.AIThreadServerInfo - 86, // 23: WAAICommon.AIThreadInfo.clientInfo:type_name -> WAAICommon.AIThreadInfo.AIThreadClientInfo - 102, // 24: WAAICommon.BotFeedbackMessage.messageKey:type_name -> WACommon.MessageKey - 29, // 25: WAAICommon.BotFeedbackMessage.kind:type_name -> WAAICommon.BotFeedbackMessage.BotFeedbackKind - 26, // 26: WAAICommon.BotFeedbackMessage.kindReport:type_name -> WAAICommon.BotFeedbackMessage.ReportKind - 88, // 27: WAAICommon.BotFeedbackMessage.sideBySideSurveyMetadata:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata - 73, // 28: WAAICommon.AIRichResponseInlineImageMetadata.imageURL:type_name -> WAAICommon.AIRichResponseImageURL - 30, // 29: WAAICommon.AIRichResponseInlineImageMetadata.alignment:type_name -> WAAICommon.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment - 90, // 30: WAAICommon.AIRichResponseCodeMetadata.codeBlocks:type_name -> WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeBlock - 32, // 31: WAAICommon.AIRichResponseDynamicMetadata.type:type_name -> WAAICommon.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType - 91, // 32: WAAICommon.AIRichResponseContentItemsMetadata.itemsMetadata:type_name -> WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata - 33, // 33: WAAICommon.AIRichResponseContentItemsMetadata.contentType:type_name -> WAAICommon.AIRichResponseContentItemsMetadata.ContentType - 57, // 34: WAAICommon.BotSuggestedPromptMetadata.promptSuggestions:type_name -> WAAICommon.BotPromptSuggestions - 58, // 35: WAAICommon.BotPromptSuggestions.suggestions:type_name -> WAAICommon.BotPromptSuggestion - 35, // 36: WAAICommon.BotLinkedAccountsMetadata.accounts:type_name -> WAAICommon.BotLinkedAccount - 61, // 37: WAAICommon.BotMemoryMetadata.addedFacts:type_name -> WAAICommon.BotMemoryFact - 61, // 38: WAAICommon.BotMemoryMetadata.removedFacts:type_name -> WAAICommon.BotMemoryFact - 36, // 39: WAAICommon.BotSignatureVerificationMetadata.proofs:type_name -> WAAICommon.BotSignatureVerificationUseCaseProof - 93, // 40: WAAICommon.BotRenderingMetadata.keywords:type_name -> WAAICommon.BotRenderingMetadata.Keyword - 0, // 41: WAAICommon.BotMetricsMetadata.destinationEntryPoint:type_name -> WAAICommon.BotMetricsEntryPoint - 1, // 42: WAAICommon.BotMetricsMetadata.threadOrigin:type_name -> WAAICommon.BotMetricsThreadEntryPoint - 2, // 43: WAAICommon.BotSessionMetadata.sessionSource:type_name -> WAAICommon.BotSessionSource - 38, // 44: WAAICommon.BotMemuMetadata.faceImages:type_name -> WAAICommon.BotMediaMetadata - 96, // 45: WAAICommon.InThreadSurveyMetadata.questions:type_name -> WAAICommon.InThreadSurveyMetadata.InThreadSurveyQuestion - 94, // 46: WAAICommon.InThreadSurveyMetadata.privacyStatementParts:type_name -> WAAICommon.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart - 48, // 47: WAAICommon.BotMessageOriginMetadata.origins:type_name -> WAAICommon.BotMessageOrigin - 98, // 48: WAAICommon.BotUnifiedResponseMutation.sbsMetadata:type_name -> WAAICommon.BotUnifiedResponseMutation.SideBySideMetadata - 97, // 49: WAAICommon.BotUnifiedResponseMutation.mediaDetailsMetadataList:type_name -> WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadata - 55, // 50: WAAICommon.BotMetadata.avatarMetadata:type_name -> WAAICommon.BotAvatarMetadata - 34, // 51: WAAICommon.BotMetadata.pluginMetadata:type_name -> WAAICommon.BotPluginMetadata - 56, // 52: WAAICommon.BotMetadata.suggestedPromptMetadata:type_name -> WAAICommon.BotSuggestedPromptMetadata - 65, // 53: WAAICommon.BotMetadata.sessionMetadata:type_name -> WAAICommon.BotSessionMetadata - 66, // 54: WAAICommon.BotMetadata.memuMetadata:type_name -> WAAICommon.BotMemuMetadata - 39, // 55: WAAICommon.BotMetadata.reminderMetadata:type_name -> WAAICommon.BotReminderMetadata - 40, // 56: WAAICommon.BotMetadata.modelMetadata:type_name -> WAAICommon.BotModelMetadata - 41, // 57: WAAICommon.BotMetadata.progressIndicatorMetadata:type_name -> WAAICommon.BotProgressIndicatorMetadata - 42, // 58: WAAICommon.BotMetadata.capabilityMetadata:type_name -> WAAICommon.BotCapabilityMetadata - 45, // 59: WAAICommon.BotMetadata.imagineMetadata:type_name -> WAAICommon.BotImagineMetadata - 60, // 60: WAAICommon.BotMetadata.memoryMetadata:type_name -> WAAICommon.BotMemoryMetadata - 63, // 61: WAAICommon.BotMetadata.renderingMetadata:type_name -> WAAICommon.BotRenderingMetadata - 64, // 62: WAAICommon.BotMetadata.botMetricsMetadata:type_name -> WAAICommon.BotMetricsMetadata - 59, // 63: WAAICommon.BotMetadata.botLinkedAccountsMetadata:type_name -> WAAICommon.BotLinkedAccountsMetadata - 47, // 64: WAAICommon.BotMetadata.richResponseSourcesMetadata:type_name -> WAAICommon.BotSourcesMetadata - 37, // 65: WAAICommon.BotMetadata.botPromotionMessageMetadata:type_name -> WAAICommon.BotPromotionMessageMetadata - 43, // 66: WAAICommon.BotMetadata.botModeSelectionMetadata:type_name -> WAAICommon.BotModeSelectionMetadata - 44, // 67: WAAICommon.BotMetadata.botQuotaMetadata:type_name -> WAAICommon.BotQuotaMetadata - 46, // 68: WAAICommon.BotMetadata.botAgeCollectionMetadata:type_name -> WAAICommon.BotAgeCollectionMetadata - 62, // 69: WAAICommon.BotMetadata.verificationMetadata:type_name -> WAAICommon.BotSignatureVerificationMetadata - 69, // 70: WAAICommon.BotMetadata.unifiedResponseMutation:type_name -> WAAICommon.BotUnifiedResponseMutation - 68, // 71: WAAICommon.BotMetadata.botMessageOriginMetadata:type_name -> WAAICommon.BotMessageOriginMetadata - 67, // 72: WAAICommon.BotMetadata.inThreadSurveyMetadata:type_name -> WAAICommon.InThreadSurveyMetadata - 49, // 73: WAAICommon.BotMetadata.botThreadInfo:type_name -> WAAICommon.AIThreadInfo - 0, // 74: WAAICommon.BotMessageSharingInfo.botEntryPointOrigin:type_name -> WAAICommon.BotMetricsEntryPoint - 73, // 75: WAAICommon.AIRichResponseGridImageMetadata.gridImageURL:type_name -> WAAICommon.AIRichResponseImageURL - 73, // 76: WAAICommon.AIRichResponseGridImageMetadata.imageURLs:type_name -> WAAICommon.AIRichResponseImageURL - 99, // 77: WAAICommon.AIRichResponseTableMetadata.rows:type_name -> WAAICommon.AIRichResponseTableMetadata.AIRichResponseTableRow - 100, // 78: WAAICommon.AIRichResponseLatexMetadata.expressions:type_name -> WAAICommon.AIRichResponseLatexMetadata.AIRichResponseLatexExpression - 101, // 79: WAAICommon.AIRichResponseMapMetadata.annotations:type_name -> WAAICommon.AIRichResponseMapMetadata.AIRichResponseMapAnnotation - 4, // 80: WAAICommon.AIRichResponseSubMessage.messageType:type_name -> WAAICommon.AIRichResponseSubMessageType - 74, // 81: WAAICommon.AIRichResponseSubMessage.gridImageMetadata:type_name -> WAAICommon.AIRichResponseGridImageMetadata - 51, // 82: WAAICommon.AIRichResponseSubMessage.imageMetadata:type_name -> WAAICommon.AIRichResponseInlineImageMetadata - 52, // 83: WAAICommon.AIRichResponseSubMessage.codeMetadata:type_name -> WAAICommon.AIRichResponseCodeMetadata - 75, // 84: WAAICommon.AIRichResponseSubMessage.tableMetadata:type_name -> WAAICommon.AIRichResponseTableMetadata - 53, // 85: WAAICommon.AIRichResponseSubMessage.dynamicMetadata:type_name -> WAAICommon.AIRichResponseDynamicMetadata - 77, // 86: WAAICommon.AIRichResponseSubMessage.latexMetadata:type_name -> WAAICommon.AIRichResponseLatexMetadata - 78, // 87: WAAICommon.AIRichResponseSubMessage.mapMetadata:type_name -> WAAICommon.AIRichResponseMapMetadata - 54, // 88: WAAICommon.AIRichResponseSubMessage.contentItemsMetadata:type_name -> WAAICommon.AIRichResponseContentItemsMetadata - 81, // 89: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sourcesMetadata:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata - 16, // 90: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.status:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus - 82, // 91: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sections:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata - 17, // 92: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.provider:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider - 83, // 93: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.sourcesMetadata:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata - 15, // 94: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.provider:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider - 20, // 95: WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata.featureType:type_name -> WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType - 23, // 96: WAAICommon.BotSourcesMetadata.BotSourceItem.provider:type_name -> WAAICommon.BotSourcesMetadata.BotSourceItem.SourceProvider - 25, // 97: WAAICommon.AIThreadInfo.AIThreadClientInfo.type:type_name -> WAAICommon.AIThreadInfo.AIThreadClientInfo.AIThreadType - 89, // 98: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.analyticsData:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsData - 31, // 99: WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeBlock.highlightType:type_name -> WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType - 92, // 100: WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata.reelItem:type_name -> WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseReelItem - 95, // 101: WAAICommon.InThreadSurveyMetadata.InThreadSurveyQuestion.questionOptions:type_name -> WAAICommon.InThreadSurveyMetadata.InThreadSurveyOption - 38, // 102: WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadata.highResMedia:type_name -> WAAICommon.BotMediaMetadata - 38, // 103: WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadata.previewMedia:type_name -> WAAICommon.BotMediaMetadata - 104, // [104:104] is the sub-list for method output_type - 104, // [104:104] is the sub-list for method input_type - 104, // [104:104] is the sub-list for extension type_name - 104, // [104:104] is the sub-list for extension extendee - 0, // [0:104] is the sub-list for field type_name + 7, // 0: WAAICommon.BotPluginMetadata.provider:type_name -> WAAICommon.BotPluginMetadata.SearchProvider + 6, // 1: WAAICommon.BotPluginMetadata.pluginType:type_name -> WAAICommon.BotPluginMetadata.PluginType + 116, // 2: WAAICommon.BotPluginMetadata.parentPluginMessageKey:type_name -> WACommon.MessageKey + 6, // 3: WAAICommon.BotPluginMetadata.deprecatedField:type_name -> WAAICommon.BotPluginMetadata.PluginType + 6, // 4: WAAICommon.BotPluginMetadata.parentPluginType:type_name -> WAAICommon.BotPluginMetadata.PluginType + 8, // 5: WAAICommon.BotLinkedAccount.type:type_name -> WAAICommon.BotLinkedAccount.BotLinkedAccountType + 9, // 6: WAAICommon.BotSignatureVerificationUseCaseProof.useCase:type_name -> WAAICommon.BotSignatureVerificationUseCaseProof.BotSignatureUseCase + 10, // 7: WAAICommon.BotPromotionMessageMetadata.promotionType:type_name -> WAAICommon.BotPromotionMessageMetadata.BotPromotionType + 11, // 8: WAAICommon.BotMediaMetadata.orientationType:type_name -> WAAICommon.BotMediaMetadata.OrientationType + 116, // 9: WAAICommon.BotReminderMetadata.requestMessageKey:type_name -> WACommon.MessageKey + 13, // 10: WAAICommon.BotReminderMetadata.action:type_name -> WAAICommon.BotReminderMetadata.ReminderAction + 12, // 11: WAAICommon.BotReminderMetadata.frequency:type_name -> WAAICommon.BotReminderMetadata.ReminderFrequency + 15, // 12: WAAICommon.BotModelMetadata.modelType:type_name -> WAAICommon.BotModelMetadata.ModelType + 14, // 13: WAAICommon.BotModelMetadata.premiumModelStatus:type_name -> WAAICommon.BotModelMetadata.PremiumModelStatus + 87, // 14: WAAICommon.BotProgressIndicatorMetadata.stepsMetadata:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata + 19, // 15: WAAICommon.BotCapabilityMetadata.capabilities:type_name -> WAAICommon.BotCapabilityMetadata.BotCapabilityType + 20, // 16: WAAICommon.BotModeSelectionMetadata.mode:type_name -> WAAICommon.BotModeSelectionMetadata.BotUserSelectionMode + 91, // 17: WAAICommon.BotQuotaMetadata.botFeatureQuotaMetadata:type_name -> WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata + 22, // 18: WAAICommon.BotImagineMetadata.imagineType:type_name -> WAAICommon.BotImagineMetadata.ImagineType + 23, // 19: WAAICommon.BotAgeCollectionMetadata.ageCollectionType:type_name -> WAAICommon.BotAgeCollectionMetadata.AgeCollectionType + 92, // 20: WAAICommon.BotSourcesMetadata.sources:type_name -> WAAICommon.BotSourcesMetadata.BotSourceItem + 25, // 21: WAAICommon.BotMessageOrigin.type:type_name -> WAAICommon.BotMessageOrigin.BotMessageOriginType + 94, // 22: WAAICommon.AIThreadInfo.serverInfo:type_name -> WAAICommon.AIThreadInfo.AIThreadServerInfo + 93, // 23: WAAICommon.AIThreadInfo.clientInfo:type_name -> WAAICommon.AIThreadInfo.AIThreadClientInfo + 116, // 24: WAAICommon.BotFeedbackMessage.messageKey:type_name -> WACommon.MessageKey + 30, // 25: WAAICommon.BotFeedbackMessage.kind:type_name -> WAAICommon.BotFeedbackMessage.BotFeedbackKind + 27, // 26: WAAICommon.BotFeedbackMessage.kindReport:type_name -> WAAICommon.BotFeedbackMessage.ReportKind + 95, // 27: WAAICommon.BotFeedbackMessage.sideBySideSurveyMetadata:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata + 78, // 28: WAAICommon.AIRichResponseInlineImageMetadata.imageURL:type_name -> WAAICommon.AIRichResponseImageURL + 31, // 29: WAAICommon.AIRichResponseInlineImageMetadata.alignment:type_name -> WAAICommon.AIRichResponseInlineImageMetadata.AIRichResponseImageAlignment + 103, // 30: WAAICommon.AIRichResponseCodeMetadata.codeBlocks:type_name -> WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeBlock + 33, // 31: WAAICommon.AIRichResponseDynamicMetadata.type:type_name -> WAAICommon.AIRichResponseDynamicMetadata.AIRichResponseDynamicMetadataType + 104, // 32: WAAICommon.AIRichResponseContentItemsMetadata.itemsMetadata:type_name -> WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata + 34, // 33: WAAICommon.AIRichResponseContentItemsMetadata.contentType:type_name -> WAAICommon.AIRichResponseContentItemsMetadata.ContentType + 35, // 34: WAAICommon.BotDocumentMessageMetadata.pluginType:type_name -> WAAICommon.BotDocumentMessageMetadata.DocumentPluginType + 106, // 35: WAAICommon.AIHomeState.capabilityOptions:type_name -> WAAICommon.AIHomeState.AIHomeOption + 106, // 36: WAAICommon.AIHomeState.conversationOptions:type_name -> WAAICommon.AIHomeState.AIHomeOption + 62, // 37: WAAICommon.BotSuggestedPromptMetadata.promptSuggestions:type_name -> WAAICommon.BotPromptSuggestions + 63, // 38: WAAICommon.BotPromptSuggestions.suggestions:type_name -> WAAICommon.BotPromptSuggestion + 38, // 39: WAAICommon.BotLinkedAccountsMetadata.accounts:type_name -> WAAICommon.BotLinkedAccount + 66, // 40: WAAICommon.BotMemoryMetadata.addedFacts:type_name -> WAAICommon.BotMemoryFact + 66, // 41: WAAICommon.BotMemoryMetadata.removedFacts:type_name -> WAAICommon.BotMemoryFact + 39, // 42: WAAICommon.BotSignatureVerificationMetadata.proofs:type_name -> WAAICommon.BotSignatureVerificationUseCaseProof + 107, // 43: WAAICommon.BotRenderingMetadata.keywords:type_name -> WAAICommon.BotRenderingMetadata.Keyword + 0, // 44: WAAICommon.BotMetricsMetadata.destinationEntryPoint:type_name -> WAAICommon.BotMetricsEntryPoint + 1, // 45: WAAICommon.BotMetricsMetadata.threadOrigin:type_name -> WAAICommon.BotMetricsThreadEntryPoint + 2, // 46: WAAICommon.BotSessionMetadata.sessionSource:type_name -> WAAICommon.BotSessionSource + 41, // 47: WAAICommon.BotMemuMetadata.faceImages:type_name -> WAAICommon.BotMediaMetadata + 110, // 48: WAAICommon.InThreadSurveyMetadata.questions:type_name -> WAAICommon.InThreadSurveyMetadata.InThreadSurveyQuestion + 108, // 49: WAAICommon.InThreadSurveyMetadata.privacyStatementParts:type_name -> WAAICommon.InThreadSurveyMetadata.InThreadSurveyPrivacyStatementPart + 51, // 50: WAAICommon.BotMessageOriginMetadata.origins:type_name -> WAAICommon.BotMessageOrigin + 112, // 51: WAAICommon.BotUnifiedResponseMutation.sbsMetadata:type_name -> WAAICommon.BotUnifiedResponseMutation.SideBySideMetadata + 111, // 52: WAAICommon.BotUnifiedResponseMutation.mediaDetailsMetadataList:type_name -> WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadata + 60, // 53: WAAICommon.BotMetadata.avatarMetadata:type_name -> WAAICommon.BotAvatarMetadata + 37, // 54: WAAICommon.BotMetadata.pluginMetadata:type_name -> WAAICommon.BotPluginMetadata + 61, // 55: WAAICommon.BotMetadata.suggestedPromptMetadata:type_name -> WAAICommon.BotSuggestedPromptMetadata + 70, // 56: WAAICommon.BotMetadata.sessionMetadata:type_name -> WAAICommon.BotSessionMetadata + 71, // 57: WAAICommon.BotMetadata.memuMetadata:type_name -> WAAICommon.BotMemuMetadata + 42, // 58: WAAICommon.BotMetadata.reminderMetadata:type_name -> WAAICommon.BotReminderMetadata + 43, // 59: WAAICommon.BotMetadata.modelMetadata:type_name -> WAAICommon.BotModelMetadata + 44, // 60: WAAICommon.BotMetadata.progressIndicatorMetadata:type_name -> WAAICommon.BotProgressIndicatorMetadata + 45, // 61: WAAICommon.BotMetadata.capabilityMetadata:type_name -> WAAICommon.BotCapabilityMetadata + 48, // 62: WAAICommon.BotMetadata.imagineMetadata:type_name -> WAAICommon.BotImagineMetadata + 65, // 63: WAAICommon.BotMetadata.memoryMetadata:type_name -> WAAICommon.BotMemoryMetadata + 68, // 64: WAAICommon.BotMetadata.renderingMetadata:type_name -> WAAICommon.BotRenderingMetadata + 69, // 65: WAAICommon.BotMetadata.botMetricsMetadata:type_name -> WAAICommon.BotMetricsMetadata + 64, // 66: WAAICommon.BotMetadata.botLinkedAccountsMetadata:type_name -> WAAICommon.BotLinkedAccountsMetadata + 50, // 67: WAAICommon.BotMetadata.richResponseSourcesMetadata:type_name -> WAAICommon.BotSourcesMetadata + 40, // 68: WAAICommon.BotMetadata.botPromotionMessageMetadata:type_name -> WAAICommon.BotPromotionMessageMetadata + 46, // 69: WAAICommon.BotMetadata.botModeSelectionMetadata:type_name -> WAAICommon.BotModeSelectionMetadata + 47, // 70: WAAICommon.BotMetadata.botQuotaMetadata:type_name -> WAAICommon.BotQuotaMetadata + 49, // 71: WAAICommon.BotMetadata.botAgeCollectionMetadata:type_name -> WAAICommon.BotAgeCollectionMetadata + 67, // 72: WAAICommon.BotMetadata.verificationMetadata:type_name -> WAAICommon.BotSignatureVerificationMetadata + 74, // 73: WAAICommon.BotMetadata.unifiedResponseMutation:type_name -> WAAICommon.BotUnifiedResponseMutation + 73, // 74: WAAICommon.BotMetadata.botMessageOriginMetadata:type_name -> WAAICommon.BotMessageOriginMetadata + 72, // 75: WAAICommon.BotMetadata.inThreadSurveyMetadata:type_name -> WAAICommon.InThreadSurveyMetadata + 52, // 76: WAAICommon.BotMetadata.botThreadInfo:type_name -> WAAICommon.AIThreadInfo + 85, // 77: WAAICommon.BotMetadata.regenerateMetadata:type_name -> WAAICommon.AIRegenerateMetadata + 86, // 78: WAAICommon.BotMetadata.sessionTransparencyMetadata:type_name -> WAAICommon.SessionTransparencyMetadata + 58, // 79: WAAICommon.BotMetadata.botDocumentMessageMetadata:type_name -> WAAICommon.BotDocumentMessageMetadata + 0, // 80: WAAICommon.BotMessageSharingInfo.botEntryPointOrigin:type_name -> WAAICommon.BotMetricsEntryPoint + 78, // 81: WAAICommon.AIRichResponseGridImageMetadata.gridImageURL:type_name -> WAAICommon.AIRichResponseImageURL + 78, // 82: WAAICommon.AIRichResponseGridImageMetadata.imageURLs:type_name -> WAAICommon.AIRichResponseImageURL + 113, // 83: WAAICommon.AIRichResponseTableMetadata.rows:type_name -> WAAICommon.AIRichResponseTableMetadata.AIRichResponseTableRow + 114, // 84: WAAICommon.AIRichResponseLatexMetadata.expressions:type_name -> WAAICommon.AIRichResponseLatexMetadata.AIRichResponseLatexExpression + 115, // 85: WAAICommon.AIRichResponseMapMetadata.annotations:type_name -> WAAICommon.AIRichResponseMapMetadata.AIRichResponseMapAnnotation + 4, // 86: WAAICommon.AIRichResponseSubMessage.messageType:type_name -> WAAICommon.AIRichResponseSubMessageType + 79, // 87: WAAICommon.AIRichResponseSubMessage.gridImageMetadata:type_name -> WAAICommon.AIRichResponseGridImageMetadata + 54, // 88: WAAICommon.AIRichResponseSubMessage.imageMetadata:type_name -> WAAICommon.AIRichResponseInlineImageMetadata + 55, // 89: WAAICommon.AIRichResponseSubMessage.codeMetadata:type_name -> WAAICommon.AIRichResponseCodeMetadata + 80, // 90: WAAICommon.AIRichResponseSubMessage.tableMetadata:type_name -> WAAICommon.AIRichResponseTableMetadata + 56, // 91: WAAICommon.AIRichResponseSubMessage.dynamicMetadata:type_name -> WAAICommon.AIRichResponseDynamicMetadata + 82, // 92: WAAICommon.AIRichResponseSubMessage.latexMetadata:type_name -> WAAICommon.AIRichResponseLatexMetadata + 83, // 93: WAAICommon.AIRichResponseSubMessage.mapMetadata:type_name -> WAAICommon.AIRichResponseMapMetadata + 57, // 94: WAAICommon.AIRichResponseSubMessage.contentItemsMetadata:type_name -> WAAICommon.AIRichResponseContentItemsMetadata + 116, // 95: WAAICommon.AIRegenerateMetadata.messageKey:type_name -> WACommon.MessageKey + 5, // 96: WAAICommon.SessionTransparencyMetadata.sessionTransparencyType:type_name -> WAAICommon.SessionTransparencyType + 88, // 97: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sourcesMetadata:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata + 17, // 98: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.status:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.PlanningStepStatus + 89, // 99: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.sections:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata + 18, // 100: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.provider:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourcesMetadata.BotPlanningSearchSourceProvider + 90, // 101: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningStepSectionMetadata.sourcesMetadata:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata + 16, // 102: WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotPlanningSearchSourceMetadata.provider:type_name -> WAAICommon.BotProgressIndicatorMetadata.BotPlanningStepMetadata.BotSearchSourceProvider + 21, // 103: WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata.featureType:type_name -> WAAICommon.BotQuotaMetadata.BotFeatureQuotaMetadata.BotFeatureType + 24, // 104: WAAICommon.BotSourcesMetadata.BotSourceItem.provider:type_name -> WAAICommon.BotSourcesMetadata.BotSourceItem.SourceProvider + 26, // 105: WAAICommon.AIThreadInfo.AIThreadClientInfo.type:type_name -> WAAICommon.AIThreadInfo.AIThreadClientInfo.AIThreadType + 97, // 106: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.analyticsData:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SideBySideSurveyAnalyticsData + 96, // 107: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.metaAiAnalyticsData:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData + 102, // 108: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.ctaImpressionEvent:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAImpressionEventData + 101, // 109: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.ctaClickEvent:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCTAClickEventData + 100, // 110: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.cardImpressionEvent:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyCardImpressionEventData + 99, // 111: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.responseEvent:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyResponseEventData + 98, // 112: WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.abandonEvent:type_name -> WAAICommon.BotFeedbackMessage.SideBySideSurveyMetadata.SidebySideSurveyMetaAiAnalyticsData.SideBySideSurveyAbandonEventData + 32, // 113: WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeBlock.highlightType:type_name -> WAAICommon.AIRichResponseCodeMetadata.AIRichResponseCodeHighlightType + 105, // 114: WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseContentItemMetadata.reelItem:type_name -> WAAICommon.AIRichResponseContentItemsMetadata.AIRichResponseReelItem + 36, // 115: WAAICommon.AIHomeState.AIHomeOption.type:type_name -> WAAICommon.AIHomeState.AIHomeOption.AIHomeActionType + 109, // 116: WAAICommon.InThreadSurveyMetadata.InThreadSurveyQuestion.questionOptions:type_name -> WAAICommon.InThreadSurveyMetadata.InThreadSurveyOption + 41, // 117: WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadata.highResMedia:type_name -> WAAICommon.BotMediaMetadata + 41, // 118: WAAICommon.BotUnifiedResponseMutation.MediaDetailsMetadata.previewMedia:type_name -> WAAICommon.BotMediaMetadata + 119, // [119:119] is the sub-list for method output_type + 119, // [119:119] is the sub-list for method input_type + 119, // [119:119] is the sub-list for extension type_name + 119, // [119:119] is the sub-list for extension extendee + 0, // [0:119] is the sub-list for field type_name } func init() { file_waAICommon_WAAICommon_proto_init() } @@ -7723,7 +8732,7 @@ func file_waAICommon_WAAICommon_proto_init() { if File_waAICommon_WAAICommon_proto != nil { return } - file_waAICommon_WAAICommon_proto_msgTypes[57].OneofWrappers = []any{ + file_waAICommon_WAAICommon_proto_msgTypes[67].OneofWrappers = []any{ (*AIRichResponseContentItemsMetadata_AIRichResponseContentItemMetadata_ReelItem)(nil), } type x struct{} @@ -7731,8 +8740,8 @@ func file_waAICommon_WAAICommon_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_waAICommon_WAAICommon_proto_rawDesc), len(file_waAICommon_WAAICommon_proto_rawDesc)), - NumEnums: 34, - NumMessages: 68, + NumEnums: 37, + NumMessages: 79, NumExtensions: 0, NumServices: 0, }, diff --git a/vendor/go.mau.fi/whatsmeow/proto/waAICommon/WAAICommon.proto b/vendor/go.mau.fi/whatsmeow/proto/waAICommon/WAAICommon.proto index 38d3f528..bd563d17 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waAICommon/WAAICommon.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waAICommon/WAAICommon.proto @@ -42,6 +42,8 @@ enum BotMetricsEntryPoint { MESSAGE_QUICK_ACTION_GROUP_CHAT = 34; ATTACHMENT_TRAY_1_ON_1_CHAT = 35; ATTACHMENT_TRAY_GROUP_CHAT = 36; + ASK_META_AI_MEDIA_VIEWER_1ON1 = 37; + ASK_META_AI_MEDIA_VIEWER_GROUP = 38; } enum BotMetricsThreadEntryPoint { @@ -80,6 +82,11 @@ enum AIRichResponseSubMessageType { AI_RICH_RESPONSE_CONTENT_ITEMS = 9; } +enum SessionTransparencyType { + UNKNOWN_TYPE = 0; + NY_AI_SAFETY_DISCLAIMER = 1; +} + message BotPluginMetadata { enum PluginType { UNKNOWN_PLUGIN = 0; @@ -193,6 +200,7 @@ message BotModelMetadata { optional ModelType modelType = 1; optional PremiumModelStatus premiumModelStatus = 2; + optional string modelNameOverride = 3; } message BotProgressIndicatorMetadata { @@ -298,6 +306,10 @@ message BotCapabilityMetadata { RICH_RESPONSE_UR_INLINE_REELS_ENABLED = 43; RICH_RESPONSE_UR_MEDIA_GRID_ENABLED = 44; RICH_RESPONSE_UR_TIMESTAMP_PLACEHOLDER = 45; + RICH_RESPONSE_IN_APP_SURVEY = 46; + AI_RESPONSE_MODEL_BRANDING = 47; + SESSION_TRANSPARENCY_SYSTEM_MESSAGE = 48; + RICH_RESPONSE_UR_REASONING = 49; } repeated BotCapabilityType capabilities = 1; @@ -440,9 +452,43 @@ message BotFeedbackMessage { } message SideBySideSurveyMetadata { + message SidebySideSurveyMetaAiAnalyticsData { + message SideBySideSurveyAbandonEventData { + optional string abandonDwellTimeMSString = 1; + } + + message SideBySideSurveyResponseEventData { + optional string responseDwellTimeMSString = 1; + optional string selectedResponseID = 2; + } + + message SideBySideSurveyCardImpressionEventData { + } + + message SideBySideSurveyCTAClickEventData { + optional bool isSurveyExpired = 1; + optional string clickDwellTimeMSString = 2; + } + + message SideBySideSurveyCTAImpressionEventData { + optional bool isSurveyExpired = 1; + } + + optional uint32 surveyID = 1; + optional string primaryResponseID = 2; + optional string testArmName = 3; + optional string timestampMSString = 4; + optional SideBySideSurveyCTAImpressionEventData ctaImpressionEvent = 5; + optional SideBySideSurveyCTAClickEventData ctaClickEvent = 6; + optional SideBySideSurveyCardImpressionEventData cardImpressionEvent = 7; + optional SideBySideSurveyResponseEventData responseEvent = 8; + optional SideBySideSurveyAbandonEventData abandonEvent = 9; + } + message SideBySideSurveyAnalyticsData { optional string tessaEvent = 1; optional string tessaSessionFbid = 2; + optional string simonSessionFbid = 3; } optional string selectedRequestID = 1; @@ -453,6 +499,7 @@ message BotFeedbackMessage { optional bool isSelectedResponsePrimary = 6; optional string messageIDToEdit = 7; optional SideBySideSurveyAnalyticsData analyticsData = 8; + optional SidebySideSurveyMetaAiAnalyticsData metaAiAnalyticsData = 9; } optional WACommon.MessageKey messageKey = 1; @@ -532,6 +579,38 @@ message AIRichResponseContentItemsMetadata { optional ContentType contentType = 2; } +message BotDocumentMessageMetadata { + enum DocumentPluginType { + TEXT_EXTRACTION = 0; + OCR_AND_IMAGES = 1; + } + + optional DocumentPluginType pluginType = 1; +} + +message AIHomeState { + message AIHomeOption { + enum AIHomeActionType { + PROMPT = 0; + CREATE_IMAGE = 1; + ANIMATE_PHOTO = 2; + ANALYZE_FILE = 3; + } + + optional AIHomeActionType type = 1; + optional string title = 2; + optional string promptText = 3; + optional string sessionID = 4; + optional string imageWdsIdentifier = 5; + optional string imageTintColor = 6; + optional string imageBackgroundColor = 7; + } + + optional int64 lastFetchTime = 1; + repeated AIHomeOption capabilityOptions = 2; + repeated AIHomeOption conversationOptions = 3; +} + message BotAvatarMetadata { optional uint32 sentiment = 1; optional string behaviorGraph = 2; @@ -636,6 +715,7 @@ message InThreadSurveyMetadata { optional string privacyStatementFull = 15; repeated InThreadSurveyPrivacyStatementPart privacyStatementParts = 16; optional string feedbackToastText = 17; + optional int32 startQuestionIndex = 18; } message BotMessageOriginMetadata { @@ -651,6 +731,7 @@ message BotUnifiedResponseMutation { message SideBySideMetadata { optional string primaryResponseID = 1; + optional bool surveyCtaHasRendered = 2; } optional SideBySideMetadata sbsMetadata = 1; @@ -689,6 +770,9 @@ message BotMetadata { optional BotMessageOriginMetadata botMessageOriginMetadata = 29; optional InThreadSurveyMetadata inThreadSurveyMetadata = 30; optional AIThreadInfo botThreadInfo = 31; + optional AIRegenerateMetadata regenerateMetadata = 32; + optional SessionTransparencyMetadata sessionTransparencyMetadata = 33; + optional BotDocumentMessageMetadata botDocumentMessageMetadata = 34; optional bytes internalMetadata = 999; } @@ -774,3 +858,14 @@ message AIRichResponseSubMessage { optional AIRichResponseMapMetadata mapMetadata = 9; optional AIRichResponseContentItemsMetadata contentItemsMetadata = 10; } + +message AIRegenerateMetadata { + optional WACommon.MessageKey messageKey = 1; + optional int64 responseTimestampMS = 2; +} + +message SessionTransparencyMetadata { + optional string disclaimerText = 1; + optional string hcaID = 2; + optional SessionTransparencyType sessionTransparencyType = 3; +} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go deleted file mode 100644 index a660a650..00000000 --- a/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go +++ /dev/null @@ -1,138 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.36.10 -// protoc v3.21.12 -// source: waChatLockSettings/WAProtobufsChatLockSettings.proto - -package waChatLockSettings - -import ( - reflect "reflect" - sync "sync" - unsafe "unsafe" - - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - - waUserPassword "go.mau.fi/whatsmeow/proto/waUserPassword" -) - -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 `protogen:"open.v1"` - HideLockedChats *bool `protobuf:"varint,1,opt,name=hideLockedChats" json:"hideLockedChats,omitempty"` - SecretCode *waUserPassword.UserPassword `protobuf:"bytes,2,opt,name=secretCode" json:"secretCode,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *ChatLockSettings) Reset() { - *x = ChatLockSettings{} - 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 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 - -const file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc = "" + - "\n" + - "4waChatLockSettings/WAProtobufsChatLockSettings.proto\x12\x1bWAProtobufsChatLockSettings\x1a,waUserPassword/WAProtobufsUserPassword.proto\"\x83\x01\n" + - "\x10ChatLockSettings\x12(\n" + - "\x0fhideLockedChats\x18\x01 \x01(\bR\x0fhideLockedChats\x12E\n" + - "\n" + - "secretCode\x18\x02 \x01(\v2%.WAProtobufsUserPassword.UserPasswordR\n" + - "secretCodeB.Z,go.mau.fi/whatsmeow/proto/waChatLockSettings" - -var ( - file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescOnce sync.Once - file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData []byte -) - -func file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescGZIP() []byte { - file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescOnce.Do(func() { - file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc), len(file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc))) - }) - 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 - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_waChatLockSettings_WAProtobufsChatLockSettings_proto_rawDesc), len(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_goTypes = nil - file_waChatLockSettings_WAProtobufsChatLockSettings_proto_depIdxs = nil -} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.proto b/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.proto deleted file mode 100644 index 574529a5..00000000 --- a/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.proto +++ /dev/null @@ -1,10 +0,0 @@ -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; -} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAWebProtobufsChatLockSettings.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAWebProtobufsChatLockSettings.pb.go new file mode 100644 index 00000000..fae5ba17 --- /dev/null +++ b/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAWebProtobufsChatLockSettings.pb.go @@ -0,0 +1,138 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.10 +// protoc v3.21.12 +// source: waChatLockSettings/WAWebProtobufsChatLockSettings.proto + +package waChatLockSettings + +import ( + reflect "reflect" + sync "sync" + unsafe "unsafe" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + + waUserPassword "go.mau.fi/whatsmeow/proto/waUserPassword" +) + +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 `protogen:"open.v1"` + HideLockedChats *bool `protobuf:"varint,1,opt,name=hideLockedChats" json:"hideLockedChats,omitempty"` + SecretCode *waUserPassword.UserPassword `protobuf:"bytes,2,opt,name=secretCode" json:"secretCode,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChatLockSettings) Reset() { + *x = ChatLockSettings{} + mi := &file_waChatLockSettings_WAWebProtobufsChatLockSettings_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_WAWebProtobufsChatLockSettings_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChatLockSettings.ProtoReflect.Descriptor instead. +func (*ChatLockSettings) Descriptor() ([]byte, []int) { + return file_waChatLockSettings_WAWebProtobufsChatLockSettings_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_WAWebProtobufsChatLockSettings_proto protoreflect.FileDescriptor + +const file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDesc = "" + + "\n" + + "7waChatLockSettings/WAWebProtobufsChatLockSettings.proto\x12\x1eWAWebProtobufsChatLockSettings\x1a/waUserPassword/WAWebProtobufsUserPassword.proto\"\x86\x01\n" + + "\x10ChatLockSettings\x12(\n" + + "\x0fhideLockedChats\x18\x01 \x01(\bR\x0fhideLockedChats\x12H\n" + + "\n" + + "secretCode\x18\x02 \x01(\v2(.WAWebProtobufsUserPassword.UserPasswordR\n" + + "secretCodeB.Z,go.mau.fi/whatsmeow/proto/waChatLockSettings" + +var ( + file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDescOnce sync.Once + file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDescData []byte +) + +func file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDescGZIP() []byte { + file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDescOnce.Do(func() { + file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDesc), len(file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDesc))) + }) + return file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDescData +} + +var file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_goTypes = []any{ + (*ChatLockSettings)(nil), // 0: WAWebProtobufsChatLockSettings.ChatLockSettings + (*waUserPassword.UserPassword)(nil), // 1: WAWebProtobufsUserPassword.UserPassword +} +var file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_depIdxs = []int32{ + 1, // 0: WAWebProtobufsChatLockSettings.ChatLockSettings.secretCode:type_name -> WAWebProtobufsUserPassword.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_WAWebProtobufsChatLockSettings_proto_init() } +func file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_init() { + if File_waChatLockSettings_WAWebProtobufsChatLockSettings_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDesc), len(file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_rawDesc)), + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_goTypes, + DependencyIndexes: file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_depIdxs, + MessageInfos: file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_msgTypes, + }.Build() + File_waChatLockSettings_WAWebProtobufsChatLockSettings_proto = out.File + file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_goTypes = nil + file_waChatLockSettings_WAWebProtobufsChatLockSettings_proto_depIdxs = nil +} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAWebProtobufsChatLockSettings.proto b/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAWebProtobufsChatLockSettings.proto new file mode 100644 index 00000000..598be63f --- /dev/null +++ b/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAWebProtobufsChatLockSettings.proto @@ -0,0 +1,10 @@ +syntax = "proto2"; +package WAWebProtobufsChatLockSettings; +option go_package = "go.mau.fi/whatsmeow/proto/waChatLockSettings"; + +import "waUserPassword/WAWebProtobufsUserPassword.proto"; + +message ChatLockSettings { + optional bool hideLockedChats = 1; + optional WAWebProtobufsUserPassword.UserPassword secretCode = 2; +} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waCommon/legacy.go b/vendor/go.mau.fi/whatsmeow/proto/waCommon/legacy.go deleted file mode 100644 index cde4c858..00000000 --- a/vendor/go.mau.fi/whatsmeow/proto/waCommon/legacy.go +++ /dev/null @@ -1,11 +0,0 @@ -package waCommon - -// Deprecated: Use GetID -func (x *MessageKey) GetId() string { - return x.GetID() -} - -// Deprecated: Use GetRemoteJID -func (x *MessageKey) GetRemoteJid() string { - return x.GetRemoteJID() -} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.pb.go index d4ceb3f3..17792e90 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.pb.go @@ -622,6 +622,8 @@ type DeviceProps_HistorySyncConfig struct { SupportGroupHistory *bool `protobuf:"varint,15,opt,name=supportGroupHistory" json:"supportGroupHistory,omitempty"` OnDemandReady *bool `protobuf:"varint,16,opt,name=onDemandReady" json:"onDemandReady,omitempty"` SupportGuestChat *bool `protobuf:"varint,17,opt,name=supportGuestChat" json:"supportGuestChat,omitempty"` + CompleteOnDemandReady *bool `protobuf:"varint,18,opt,name=completeOnDemandReady" json:"completeOnDemandReady,omitempty"` + ThumbnailSyncDaysLimit *uint32 `protobuf:"varint,19,opt,name=thumbnailSyncDaysLimit" json:"thumbnailSyncDaysLimit,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -775,6 +777,20 @@ func (x *DeviceProps_HistorySyncConfig) GetSupportGuestChat() bool { return false } +func (x *DeviceProps_HistorySyncConfig) GetCompleteOnDemandReady() bool { + if x != nil && x.CompleteOnDemandReady != nil { + return *x.CompleteOnDemandReady + } + return false +} + +func (x *DeviceProps_HistorySyncConfig) GetThumbnailSyncDaysLimit() uint32 { + if x != nil && x.ThumbnailSyncDaysLimit != nil { + return *x.ThumbnailSyncDaysLimit + } + return 0 +} + type DeviceProps_AppVersion struct { state protoimpl.MessageState `protogen:"open.v1"` Primary *uint32 `protobuf:"varint,1,opt,name=primary" json:"primary,omitempty"` @@ -855,13 +871,13 @@ var File_waCompanionReg_WACompanionReg_proto protoreflect.FileDescriptor const file_waCompanionReg_WACompanionReg_proto_rawDesc = "" + "\n" + - "#waCompanionReg/WACompanionReg.proto\x12\x0eWACompanionReg\"\x99\x0e\n" + + "#waCompanionReg/WACompanionReg.proto\x12\x0eWACompanionReg\"\x87\x0f\n" + "\vDeviceProps\x12\x0e\n" + "\x02os\x18\x01 \x01(\tR\x02os\x12@\n" + "\aversion\x18\x02 \x01(\v2&.WACompanionReg.DeviceProps.AppVersionR\aversion\x12L\n" + "\fplatformType\x18\x03 \x01(\x0e2(.WACompanionReg.DeviceProps.PlatformTypeR\fplatformType\x12(\n" + "\x0frequireFullSync\x18\x04 \x01(\bR\x0frequireFullSync\x12[\n" + - "\x11historySyncConfig\x18\x05 \x01(\v2-.WACompanionReg.DeviceProps.HistorySyncConfigR\x11historySyncConfig\x1a\xe3\a\n" + + "\x11historySyncConfig\x18\x05 \x01(\v2-.WACompanionReg.DeviceProps.HistorySyncConfigR\x11historySyncConfig\x1a\xd1\b\n" + "\x11HistorySyncConfig\x12,\n" + "\x11fullSyncDaysLimit\x18\x01 \x01(\rR\x11fullSyncDaysLimit\x120\n" + "\x13fullSyncSizeMbLimit\x18\x02 \x01(\rR\x13fullSyncSizeMbLimit\x12&\n" + @@ -880,7 +896,9 @@ const file_waCompanionReg_WACompanionReg_proto_rawDesc = "" + "\x19supportMessageAssociation\x18\x0e \x01(\bR\x19supportMessageAssociation\x120\n" + "\x13supportGroupHistory\x18\x0f \x01(\bR\x13supportGroupHistory\x12$\n" + "\ronDemandReady\x18\x10 \x01(\bR\ronDemandReady\x12*\n" + - "\x10supportGuestChat\x18\x11 \x01(\bR\x10supportGuestChat\x1a\x9a\x01\n" + + "\x10supportGuestChat\x18\x11 \x01(\bR\x10supportGuestChat\x124\n" + + "\x15completeOnDemandReady\x18\x12 \x01(\bR\x15completeOnDemandReady\x126\n" + + "\x16thumbnailSyncDaysLimit\x18\x13 \x01(\rR\x16thumbnailSyncDaysLimit\x1a\x9a\x01\n" + "\n" + "AppVersion\x12\x18\n" + "\aprimary\x18\x01 \x01(\rR\aprimary\x12\x1c\n" + diff --git a/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.proto b/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.proto index e973d051..9c759161 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.proto @@ -49,6 +49,8 @@ message DeviceProps { optional bool supportGroupHistory = 15; optional bool onDemandReady = 16; optional bool supportGuestChat = 17; + optional bool completeOnDemandReady = 18; + optional uint32 thumbnailSyncDaysLimit = 19; } message AppVersion { diff --git a/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go deleted file mode 100644 index e1fab63f..00000000 --- a/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go +++ /dev/null @@ -1,361 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.36.10 -// protoc v3.21.12 -// source: waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto - -package waDeviceCapabilities - -import ( - reflect "reflect" - sync "sync" - unsafe "unsafe" - - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type 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 `protogen:"open.v1"` - ChatLockSupportLevel *DeviceCapabilities_ChatLockSupportLevel `protobuf:"varint,1,opt,name=chatLockSupportLevel,enum=WAProtobufsDeviceCapabilities.DeviceCapabilities_ChatLockSupportLevel" json:"chatLockSupportLevel,omitempty"` - LidMigration *DeviceCapabilities_LIDMigration `protobuf:"bytes,2,opt,name=lidMigration" json:"lidMigration,omitempty"` - BusinessBroadcast *DeviceCapabilities_BusinessBroadcast `protobuf:"bytes,3,opt,name=businessBroadcast" json:"businessBroadcast,omitempty"` - UserHasAvatar *DeviceCapabilities_UserHasAvatar `protobuf:"bytes,4,opt,name=userHasAvatar" json:"userHasAvatar,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *DeviceCapabilities) Reset() { - *x = DeviceCapabilities{} - 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 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 -} - -func (x *DeviceCapabilities) GetLidMigration() *DeviceCapabilities_LIDMigration { - if x != nil { - return x.LidMigration - } - return nil -} - -func (x *DeviceCapabilities) GetBusinessBroadcast() *DeviceCapabilities_BusinessBroadcast { - if x != nil { - return x.BusinessBroadcast - } - return nil -} - -func (x *DeviceCapabilities) GetUserHasAvatar() *DeviceCapabilities_UserHasAvatar { - if x != nil { - return x.UserHasAvatar - } - return nil -} - -type DeviceCapabilities_UserHasAvatar struct { - state protoimpl.MessageState `protogen:"open.v1"` - UserHasAvatar *bool `protobuf:"varint,1,opt,name=userHasAvatar" json:"userHasAvatar,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *DeviceCapabilities_UserHasAvatar) Reset() { - *x = DeviceCapabilities_UserHasAvatar{} - mi := &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeviceCapabilities_UserHasAvatar) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeviceCapabilities_UserHasAvatar) ProtoMessage() {} - -func (x *DeviceCapabilities_UserHasAvatar) ProtoReflect() protoreflect.Message { - mi := &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeviceCapabilities_UserHasAvatar.ProtoReflect.Descriptor instead. -func (*DeviceCapabilities_UserHasAvatar) Descriptor() ([]byte, []int) { - return file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 0} -} - -func (x *DeviceCapabilities_UserHasAvatar) GetUserHasAvatar() bool { - if x != nil && x.UserHasAvatar != nil { - return *x.UserHasAvatar - } - return false -} - -type DeviceCapabilities_BusinessBroadcast struct { - state protoimpl.MessageState `protogen:"open.v1"` - ImportListEnabled *bool `protobuf:"varint,1,opt,name=importListEnabled" json:"importListEnabled,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *DeviceCapabilities_BusinessBroadcast) Reset() { - *x = DeviceCapabilities_BusinessBroadcast{} - mi := &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeviceCapabilities_BusinessBroadcast) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeviceCapabilities_BusinessBroadcast) ProtoMessage() {} - -func (x *DeviceCapabilities_BusinessBroadcast) ProtoReflect() protoreflect.Message { - mi := &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[2] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeviceCapabilities_BusinessBroadcast.ProtoReflect.Descriptor instead. -func (*DeviceCapabilities_BusinessBroadcast) Descriptor() ([]byte, []int) { - return file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 1} -} - -func (x *DeviceCapabilities_BusinessBroadcast) GetImportListEnabled() bool { - if x != nil && x.ImportListEnabled != nil { - return *x.ImportListEnabled - } - return false -} - -type DeviceCapabilities_LIDMigration struct { - state protoimpl.MessageState `protogen:"open.v1"` - ChatDbMigrationTimestamp *uint64 `protobuf:"varint,1,opt,name=chatDbMigrationTimestamp" json:"chatDbMigrationTimestamp,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *DeviceCapabilities_LIDMigration) Reset() { - *x = DeviceCapabilities_LIDMigration{} - mi := &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeviceCapabilities_LIDMigration) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeviceCapabilities_LIDMigration) ProtoMessage() {} - -func (x *DeviceCapabilities_LIDMigration) ProtoReflect() protoreflect.Message { - mi := &file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_msgTypes[3] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeviceCapabilities_LIDMigration.ProtoReflect.Descriptor instead. -func (*DeviceCapabilities_LIDMigration) Descriptor() ([]byte, []int) { - return file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 2} -} - -func (x *DeviceCapabilities_LIDMigration) GetChatDbMigrationTimestamp() uint64 { - if x != nil && x.ChatDbMigrationTimestamp != nil { - return *x.ChatDbMigrationTimestamp - } - return 0 -} - -var File_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto protoreflect.FileDescriptor - -const file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc = "" + - "\n" + - "8waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto\x12\x1dWAProtobufsDeviceCapabilities\"\xcd\x05\n" + - "\x12DeviceCapabilities\x12z\n" + - "\x14chatLockSupportLevel\x18\x01 \x01(\x0e2F.WAProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevelR\x14chatLockSupportLevel\x12b\n" + - "\flidMigration\x18\x02 \x01(\v2>.WAProtobufsDeviceCapabilities.DeviceCapabilities.LIDMigrationR\flidMigration\x12q\n" + - "\x11businessBroadcast\x18\x03 \x01(\v2C.WAProtobufsDeviceCapabilities.DeviceCapabilities.BusinessBroadcastR\x11businessBroadcast\x12e\n" + - "\ruserHasAvatar\x18\x04 \x01(\v2?.WAProtobufsDeviceCapabilities.DeviceCapabilities.UserHasAvatarR\ruserHasAvatar\x1a5\n" + - "\rUserHasAvatar\x12$\n" + - "\ruserHasAvatar\x18\x01 \x01(\bR\ruserHasAvatar\x1aA\n" + - "\x11BusinessBroadcast\x12,\n" + - "\x11importListEnabled\x18\x01 \x01(\bR\x11importListEnabled\x1aJ\n" + - "\fLIDMigration\x12:\n" + - "\x18chatDbMigrationTimestamp\x18\x01 \x01(\x04R\x18chatDbMigrationTimestamp\"7\n" + - "\x14ChatLockSupportLevel\x12\b\n" + - "\x04NONE\x10\x00\x12\v\n" + - "\aMINIMAL\x10\x01\x12\b\n" + - "\x04FULL\x10\x02B0Z.go.mau.fi/whatsmeow/proto/waDeviceCapabilities" - -var ( - file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescOnce sync.Once - file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData []byte -) - -func file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescGZIP() []byte { - file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescOnce.Do(func() { - file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc), len(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc))) - }) - 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, 4) -var file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_goTypes = []any{ - (DeviceCapabilities_ChatLockSupportLevel)(0), // 0: WAProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevel - (*DeviceCapabilities)(nil), // 1: WAProtobufsDeviceCapabilities.DeviceCapabilities - (*DeviceCapabilities_UserHasAvatar)(nil), // 2: WAProtobufsDeviceCapabilities.DeviceCapabilities.UserHasAvatar - (*DeviceCapabilities_BusinessBroadcast)(nil), // 3: WAProtobufsDeviceCapabilities.DeviceCapabilities.BusinessBroadcast - (*DeviceCapabilities_LIDMigration)(nil), // 4: WAProtobufsDeviceCapabilities.DeviceCapabilities.LIDMigration -} -var file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_depIdxs = []int32{ - 0, // 0: WAProtobufsDeviceCapabilities.DeviceCapabilities.chatLockSupportLevel:type_name -> WAProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevel - 4, // 1: WAProtobufsDeviceCapabilities.DeviceCapabilities.lidMigration:type_name -> WAProtobufsDeviceCapabilities.DeviceCapabilities.LIDMigration - 3, // 2: WAProtobufsDeviceCapabilities.DeviceCapabilities.businessBroadcast:type_name -> WAProtobufsDeviceCapabilities.DeviceCapabilities.BusinessBroadcast - 2, // 3: WAProtobufsDeviceCapabilities.DeviceCapabilities.userHasAvatar:type_name -> WAProtobufsDeviceCapabilities.DeviceCapabilities.UserHasAvatar - 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_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_init() } -func file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_init() { - if File_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc), len(file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_rawDesc)), - NumEnums: 1, - NumMessages: 4, - 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_goTypes = nil - file_waDeviceCapabilities_WAProtobufsDeviceCapabilities_proto_depIdxs = nil -} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.pb.go new file mode 100644 index 00000000..02758ffd --- /dev/null +++ b/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.pb.go @@ -0,0 +1,557 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.10 +// protoc v3.21.12 +// source: waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.proto + +package waDeviceCapabilities + +import ( + reflect "reflect" + sync "sync" + unsafe "unsafe" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type DeviceCapabilities_MemberNameTagPrimarySupport int32 + +const ( + DeviceCapabilities_DISABLED DeviceCapabilities_MemberNameTagPrimarySupport = 0 + DeviceCapabilities_RECEIVER_ENABLED DeviceCapabilities_MemberNameTagPrimarySupport = 1 + DeviceCapabilities_SENDER_ENABLED DeviceCapabilities_MemberNameTagPrimarySupport = 2 +) + +// Enum value maps for DeviceCapabilities_MemberNameTagPrimarySupport. +var ( + DeviceCapabilities_MemberNameTagPrimarySupport_name = map[int32]string{ + 0: "DISABLED", + 1: "RECEIVER_ENABLED", + 2: "SENDER_ENABLED", + } + DeviceCapabilities_MemberNameTagPrimarySupport_value = map[string]int32{ + "DISABLED": 0, + "RECEIVER_ENABLED": 1, + "SENDER_ENABLED": 2, + } +) + +func (x DeviceCapabilities_MemberNameTagPrimarySupport) Enum() *DeviceCapabilities_MemberNameTagPrimarySupport { + p := new(DeviceCapabilities_MemberNameTagPrimarySupport) + *p = x + return p +} + +func (x DeviceCapabilities_MemberNameTagPrimarySupport) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DeviceCapabilities_MemberNameTagPrimarySupport) Descriptor() protoreflect.EnumDescriptor { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_enumTypes[0].Descriptor() +} + +func (DeviceCapabilities_MemberNameTagPrimarySupport) Type() protoreflect.EnumType { + return &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_enumTypes[0] +} + +func (x DeviceCapabilities_MemberNameTagPrimarySupport) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *DeviceCapabilities_MemberNameTagPrimarySupport) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = DeviceCapabilities_MemberNameTagPrimarySupport(num) + return nil +} + +// Deprecated: Use DeviceCapabilities_MemberNameTagPrimarySupport.Descriptor instead. +func (DeviceCapabilities_MemberNameTagPrimarySupport) EnumDescriptor() ([]byte, []int) { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 0} +} + +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_WAWebProtobufsDeviceCapabilities_proto_enumTypes[1].Descriptor() +} + +func (DeviceCapabilities_ChatLockSupportLevel) Type() protoreflect.EnumType { + return &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_enumTypes[1] +} + +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_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 1} +} + +type DeviceCapabilities_AiThread_SupportLevel int32 + +const ( + DeviceCapabilities_AiThread_NONE DeviceCapabilities_AiThread_SupportLevel = 0 + DeviceCapabilities_AiThread_INFRA DeviceCapabilities_AiThread_SupportLevel = 1 + DeviceCapabilities_AiThread_FULL DeviceCapabilities_AiThread_SupportLevel = 2 +) + +// Enum value maps for DeviceCapabilities_AiThread_SupportLevel. +var ( + DeviceCapabilities_AiThread_SupportLevel_name = map[int32]string{ + 0: "NONE", + 1: "INFRA", + 2: "FULL", + } + DeviceCapabilities_AiThread_SupportLevel_value = map[string]int32{ + "NONE": 0, + "INFRA": 1, + "FULL": 2, + } +) + +func (x DeviceCapabilities_AiThread_SupportLevel) Enum() *DeviceCapabilities_AiThread_SupportLevel { + p := new(DeviceCapabilities_AiThread_SupportLevel) + *p = x + return p +} + +func (x DeviceCapabilities_AiThread_SupportLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DeviceCapabilities_AiThread_SupportLevel) Descriptor() protoreflect.EnumDescriptor { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_enumTypes[2].Descriptor() +} + +func (DeviceCapabilities_AiThread_SupportLevel) Type() protoreflect.EnumType { + return &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_enumTypes[2] +} + +func (x DeviceCapabilities_AiThread_SupportLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *DeviceCapabilities_AiThread_SupportLevel) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = DeviceCapabilities_AiThread_SupportLevel(num) + return nil +} + +// Deprecated: Use DeviceCapabilities_AiThread_SupportLevel.Descriptor instead. +func (DeviceCapabilities_AiThread_SupportLevel) EnumDescriptor() ([]byte, []int) { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 0, 0} +} + +type DeviceCapabilities struct { + state protoimpl.MessageState `protogen:"open.v1"` + ChatLockSupportLevel *DeviceCapabilities_ChatLockSupportLevel `protobuf:"varint,1,opt,name=chatLockSupportLevel,enum=WAWebProtobufsDeviceCapabilities.DeviceCapabilities_ChatLockSupportLevel" json:"chatLockSupportLevel,omitempty"` + LidMigration *DeviceCapabilities_LIDMigration `protobuf:"bytes,2,opt,name=lidMigration" json:"lidMigration,omitempty"` + BusinessBroadcast *DeviceCapabilities_BusinessBroadcast `protobuf:"bytes,3,opt,name=businessBroadcast" json:"businessBroadcast,omitempty"` + UserHasAvatar *DeviceCapabilities_UserHasAvatar `protobuf:"bytes,4,opt,name=userHasAvatar" json:"userHasAvatar,omitempty"` + MemberNameTagPrimarySupport *DeviceCapabilities_MemberNameTagPrimarySupport `protobuf:"varint,5,opt,name=memberNameTagPrimarySupport,enum=WAWebProtobufsDeviceCapabilities.DeviceCapabilities_MemberNameTagPrimarySupport" json:"memberNameTagPrimarySupport,omitempty"` + AiThread *DeviceCapabilities_AiThread `protobuf:"bytes,6,opt,name=aiThread" json:"aiThread,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeviceCapabilities) Reset() { + *x = DeviceCapabilities{} + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_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_WAWebProtobufsDeviceCapabilities_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceCapabilities.ProtoReflect.Descriptor instead. +func (*DeviceCapabilities) Descriptor() ([]byte, []int) { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0} +} + +func (x *DeviceCapabilities) GetChatLockSupportLevel() DeviceCapabilities_ChatLockSupportLevel { + if x != nil && x.ChatLockSupportLevel != nil { + return *x.ChatLockSupportLevel + } + return DeviceCapabilities_NONE +} + +func (x *DeviceCapabilities) GetLidMigration() *DeviceCapabilities_LIDMigration { + if x != nil { + return x.LidMigration + } + return nil +} + +func (x *DeviceCapabilities) GetBusinessBroadcast() *DeviceCapabilities_BusinessBroadcast { + if x != nil { + return x.BusinessBroadcast + } + return nil +} + +func (x *DeviceCapabilities) GetUserHasAvatar() *DeviceCapabilities_UserHasAvatar { + if x != nil { + return x.UserHasAvatar + } + return nil +} + +func (x *DeviceCapabilities) GetMemberNameTagPrimarySupport() DeviceCapabilities_MemberNameTagPrimarySupport { + if x != nil && x.MemberNameTagPrimarySupport != nil { + return *x.MemberNameTagPrimarySupport + } + return DeviceCapabilities_DISABLED +} + +func (x *DeviceCapabilities) GetAiThread() *DeviceCapabilities_AiThread { + if x != nil { + return x.AiThread + } + return nil +} + +type DeviceCapabilities_AiThread struct { + state protoimpl.MessageState `protogen:"open.v1"` + SupportLevel *DeviceCapabilities_AiThread_SupportLevel `protobuf:"varint,1,opt,name=supportLevel,enum=WAWebProtobufsDeviceCapabilities.DeviceCapabilities_AiThread_SupportLevel" json:"supportLevel,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeviceCapabilities_AiThread) Reset() { + *x = DeviceCapabilities_AiThread{} + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeviceCapabilities_AiThread) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceCapabilities_AiThread) ProtoMessage() {} + +func (x *DeviceCapabilities_AiThread) ProtoReflect() protoreflect.Message { + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceCapabilities_AiThread.ProtoReflect.Descriptor instead. +func (*DeviceCapabilities_AiThread) Descriptor() ([]byte, []int) { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *DeviceCapabilities_AiThread) GetSupportLevel() DeviceCapabilities_AiThread_SupportLevel { + if x != nil && x.SupportLevel != nil { + return *x.SupportLevel + } + return DeviceCapabilities_AiThread_NONE +} + +type DeviceCapabilities_UserHasAvatar struct { + state protoimpl.MessageState `protogen:"open.v1"` + UserHasAvatar *bool `protobuf:"varint,1,opt,name=userHasAvatar" json:"userHasAvatar,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeviceCapabilities_UserHasAvatar) Reset() { + *x = DeviceCapabilities_UserHasAvatar{} + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeviceCapabilities_UserHasAvatar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceCapabilities_UserHasAvatar) ProtoMessage() {} + +func (x *DeviceCapabilities_UserHasAvatar) ProtoReflect() protoreflect.Message { + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceCapabilities_UserHasAvatar.ProtoReflect.Descriptor instead. +func (*DeviceCapabilities_UserHasAvatar) Descriptor() ([]byte, []int) { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *DeviceCapabilities_UserHasAvatar) GetUserHasAvatar() bool { + if x != nil && x.UserHasAvatar != nil { + return *x.UserHasAvatar + } + return false +} + +type DeviceCapabilities_BusinessBroadcast struct { + state protoimpl.MessageState `protogen:"open.v1"` + ImportListEnabled *bool `protobuf:"varint,1,opt,name=importListEnabled" json:"importListEnabled,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeviceCapabilities_BusinessBroadcast) Reset() { + *x = DeviceCapabilities_BusinessBroadcast{} + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeviceCapabilities_BusinessBroadcast) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceCapabilities_BusinessBroadcast) ProtoMessage() {} + +func (x *DeviceCapabilities_BusinessBroadcast) ProtoReflect() protoreflect.Message { + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceCapabilities_BusinessBroadcast.ProtoReflect.Descriptor instead. +func (*DeviceCapabilities_BusinessBroadcast) Descriptor() ([]byte, []int) { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *DeviceCapabilities_BusinessBroadcast) GetImportListEnabled() bool { + if x != nil && x.ImportListEnabled != nil { + return *x.ImportListEnabled + } + return false +} + +type DeviceCapabilities_LIDMigration struct { + state protoimpl.MessageState `protogen:"open.v1"` + ChatDbMigrationTimestamp *uint64 `protobuf:"varint,1,opt,name=chatDbMigrationTimestamp" json:"chatDbMigrationTimestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeviceCapabilities_LIDMigration) Reset() { + *x = DeviceCapabilities_LIDMigration{} + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeviceCapabilities_LIDMigration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceCapabilities_LIDMigration) ProtoMessage() {} + +func (x *DeviceCapabilities_LIDMigration) ProtoReflect() protoreflect.Message { + mi := &file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceCapabilities_LIDMigration.ProtoReflect.Descriptor instead. +func (*DeviceCapabilities_LIDMigration) Descriptor() ([]byte, []int) { + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *DeviceCapabilities_LIDMigration) GetChatDbMigrationTimestamp() uint64 { + if x != nil && x.ChatDbMigrationTimestamp != nil { + return *x.ChatDbMigrationTimestamp + } + return 0 +} + +var File_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto protoreflect.FileDescriptor + +const file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDesc = "" + + "\n" + + ";waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.proto\x12 WAWebProtobufsDeviceCapabilities\"\xcc\t\n" + + "\x12DeviceCapabilities\x12}\n" + + "\x14chatLockSupportLevel\x18\x01 \x01(\x0e2I.WAWebProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevelR\x14chatLockSupportLevel\x12e\n" + + "\flidMigration\x18\x02 \x01(\v2A.WAWebProtobufsDeviceCapabilities.DeviceCapabilities.LIDMigrationR\flidMigration\x12t\n" + + "\x11businessBroadcast\x18\x03 \x01(\v2F.WAWebProtobufsDeviceCapabilities.DeviceCapabilities.BusinessBroadcastR\x11businessBroadcast\x12h\n" + + "\ruserHasAvatar\x18\x04 \x01(\v2B.WAWebProtobufsDeviceCapabilities.DeviceCapabilities.UserHasAvatarR\ruserHasAvatar\x12\x92\x01\n" + + "\x1bmemberNameTagPrimarySupport\x18\x05 \x01(\x0e2P.WAWebProtobufsDeviceCapabilities.DeviceCapabilities.MemberNameTagPrimarySupportR\x1bmemberNameTagPrimarySupport\x12Y\n" + + "\baiThread\x18\x06 \x01(\v2=.WAWebProtobufsDeviceCapabilities.DeviceCapabilities.AiThreadR\baiThread\x1a\xa9\x01\n" + + "\bAiThread\x12n\n" + + "\fsupportLevel\x18\x01 \x01(\x0e2J.WAWebProtobufsDeviceCapabilities.DeviceCapabilities.AiThread.SupportLevelR\fsupportLevel\"-\n" + + "\fSupportLevel\x12\b\n" + + "\x04NONE\x10\x00\x12\t\n" + + "\x05INFRA\x10\x01\x12\b\n" + + "\x04FULL\x10\x02\x1a5\n" + + "\rUserHasAvatar\x12$\n" + + "\ruserHasAvatar\x18\x01 \x01(\bR\ruserHasAvatar\x1aA\n" + + "\x11BusinessBroadcast\x12,\n" + + "\x11importListEnabled\x18\x01 \x01(\bR\x11importListEnabled\x1aJ\n" + + "\fLIDMigration\x12:\n" + + "\x18chatDbMigrationTimestamp\x18\x01 \x01(\x04R\x18chatDbMigrationTimestamp\"U\n" + + "\x1bMemberNameTagPrimarySupport\x12\f\n" + + "\bDISABLED\x10\x00\x12\x14\n" + + "\x10RECEIVER_ENABLED\x10\x01\x12\x12\n" + + "\x0eSENDER_ENABLED\x10\x02\"7\n" + + "\x14ChatLockSupportLevel\x12\b\n" + + "\x04NONE\x10\x00\x12\v\n" + + "\aMINIMAL\x10\x01\x12\b\n" + + "\x04FULL\x10\x02B0Z.go.mau.fi/whatsmeow/proto/waDeviceCapabilities" + +var ( + file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescOnce sync.Once + file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescData []byte +) + +func file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescGZIP() []byte { + file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescOnce.Do(func() { + file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDesc), len(file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDesc))) + }) + return file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDescData +} + +var file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_goTypes = []any{ + (DeviceCapabilities_MemberNameTagPrimarySupport)(0), // 0: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.MemberNameTagPrimarySupport + (DeviceCapabilities_ChatLockSupportLevel)(0), // 1: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevel + (DeviceCapabilities_AiThread_SupportLevel)(0), // 2: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.AiThread.SupportLevel + (*DeviceCapabilities)(nil), // 3: WAWebProtobufsDeviceCapabilities.DeviceCapabilities + (*DeviceCapabilities_AiThread)(nil), // 4: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.AiThread + (*DeviceCapabilities_UserHasAvatar)(nil), // 5: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.UserHasAvatar + (*DeviceCapabilities_BusinessBroadcast)(nil), // 6: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.BusinessBroadcast + (*DeviceCapabilities_LIDMigration)(nil), // 7: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.LIDMigration +} +var file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_depIdxs = []int32{ + 1, // 0: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.chatLockSupportLevel:type_name -> WAWebProtobufsDeviceCapabilities.DeviceCapabilities.ChatLockSupportLevel + 7, // 1: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.lidMigration:type_name -> WAWebProtobufsDeviceCapabilities.DeviceCapabilities.LIDMigration + 6, // 2: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.businessBroadcast:type_name -> WAWebProtobufsDeviceCapabilities.DeviceCapabilities.BusinessBroadcast + 5, // 3: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.userHasAvatar:type_name -> WAWebProtobufsDeviceCapabilities.DeviceCapabilities.UserHasAvatar + 0, // 4: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.memberNameTagPrimarySupport:type_name -> WAWebProtobufsDeviceCapabilities.DeviceCapabilities.MemberNameTagPrimarySupport + 4, // 5: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.aiThread:type_name -> WAWebProtobufsDeviceCapabilities.DeviceCapabilities.AiThread + 2, // 6: WAWebProtobufsDeviceCapabilities.DeviceCapabilities.AiThread.supportLevel:type_name -> WAWebProtobufsDeviceCapabilities.DeviceCapabilities.AiThread.SupportLevel + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_init() } +func file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_init() { + if File_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDesc), len(file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_rawDesc)), + NumEnums: 3, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_goTypes, + DependencyIndexes: file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_depIdxs, + EnumInfos: file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_enumTypes, + MessageInfos: file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_msgTypes, + }.Build() + File_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto = out.File + file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_goTypes = nil + file_waDeviceCapabilities_WAWebProtobufsDeviceCapabilities_proto_depIdxs = nil +} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto b/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.proto similarity index 61% rename from vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto rename to vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.proto index 6de6a11b..31d4e544 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.proto @@ -1,14 +1,30 @@ syntax = "proto2"; -package WAProtobufsDeviceCapabilities; +package WAWebProtobufsDeviceCapabilities; option go_package = "go.mau.fi/whatsmeow/proto/waDeviceCapabilities"; message DeviceCapabilities { + enum MemberNameTagPrimarySupport { + DISABLED = 0; + RECEIVER_ENABLED = 1; + SENDER_ENABLED = 2; + } + enum ChatLockSupportLevel { NONE = 0; MINIMAL = 1; FULL = 2; } + message AiThread { + enum SupportLevel { + NONE = 0; + INFRA = 1; + FULL = 2; + } + + optional SupportLevel supportLevel = 1; + } + message UserHasAvatar { optional bool userHasAvatar = 1; } @@ -25,4 +41,6 @@ message DeviceCapabilities { optional LIDMigration lidMigration = 2; optional BusinessBroadcast businessBroadcast = 3; optional UserHasAvatar userHasAvatar = 4; + optional MemberNameTagPrimarySupport memberNameTagPrimarySupport = 5; + optional AiThread aiThread = 6; } diff --git a/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go index 006057cd..18c30b00 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go @@ -233,14 +233,15 @@ func (PeerDataOperationRequestType) EnumDescriptor() ([]byte, []int) { type HistorySyncType int32 const ( - HistorySyncType_INITIAL_BOOTSTRAP HistorySyncType = 0 - HistorySyncType_INITIAL_STATUS_V3 HistorySyncType = 1 - HistorySyncType_FULL HistorySyncType = 2 - HistorySyncType_RECENT HistorySyncType = 3 - HistorySyncType_PUSH_NAME HistorySyncType = 4 - HistorySyncType_NON_BLOCKING_DATA HistorySyncType = 5 - HistorySyncType_ON_DEMAND HistorySyncType = 6 - HistorySyncType_NO_HISTORY HistorySyncType = 7 + HistorySyncType_INITIAL_BOOTSTRAP HistorySyncType = 0 + HistorySyncType_INITIAL_STATUS_V3 HistorySyncType = 1 + HistorySyncType_FULL HistorySyncType = 2 + HistorySyncType_RECENT HistorySyncType = 3 + HistorySyncType_PUSH_NAME HistorySyncType = 4 + HistorySyncType_NON_BLOCKING_DATA HistorySyncType = 5 + HistorySyncType_ON_DEMAND HistorySyncType = 6 + HistorySyncType_NO_HISTORY HistorySyncType = 7 + HistorySyncType_MESSAGE_ACCESS_STATUS HistorySyncType = 8 ) // Enum value maps for HistorySyncType. @@ -254,16 +255,18 @@ var ( 5: "NON_BLOCKING_DATA", 6: "ON_DEMAND", 7: "NO_HISTORY", + 8: "MESSAGE_ACCESS_STATUS", } HistorySyncType_value = map[string]int32{ - "INITIAL_BOOTSTRAP": 0, - "INITIAL_STATUS_V3": 1, - "FULL": 2, - "RECENT": 3, - "PUSH_NAME": 4, - "NON_BLOCKING_DATA": 5, - "ON_DEMAND": 6, - "NO_HISTORY": 7, + "INITIAL_BOOTSTRAP": 0, + "INITIAL_STATUS_V3": 1, + "FULL": 2, + "RECENT": 3, + "PUSH_NAME": 4, + "NON_BLOCKING_DATA": 5, + "ON_DEMAND": 6, + "NO_HISTORY": 7, + "MESSAGE_ACCESS_STATUS": 8, } ) @@ -369,6 +372,62 @@ func (MediaKeyDomain) EnumDescriptor() ([]byte, []int) { return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{4} } +type WebLinkRenderConfig int32 + +const ( + WebLinkRenderConfig_WEBVIEW WebLinkRenderConfig = 0 + WebLinkRenderConfig_SYSTEM WebLinkRenderConfig = 1 +) + +// Enum value maps for WebLinkRenderConfig. +var ( + WebLinkRenderConfig_name = map[int32]string{ + 0: "WEBVIEW", + 1: "SYSTEM", + } + WebLinkRenderConfig_value = map[string]int32{ + "WEBVIEW": 0, + "SYSTEM": 1, + } +) + +func (x WebLinkRenderConfig) Enum() *WebLinkRenderConfig { + p := new(WebLinkRenderConfig) + *p = x + return p +} + +func (x WebLinkRenderConfig) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WebLinkRenderConfig) Descriptor() protoreflect.EnumDescriptor { + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[5].Descriptor() +} + +func (WebLinkRenderConfig) Type() protoreflect.EnumType { + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[5] +} + +func (x WebLinkRenderConfig) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *WebLinkRenderConfig) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = WebLinkRenderConfig(num) + return nil +} + +// Deprecated: Use WebLinkRenderConfig.Descriptor instead. +func (WebLinkRenderConfig) EnumDescriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{5} +} + type KeepType int32 const ( @@ -402,11 +461,11 @@ func (x KeepType) String() string { } func (KeepType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[5].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[6].Descriptor() } func (KeepType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[5] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[6] } func (x KeepType) Number() protoreflect.EnumNumber { @@ -425,7 +484,7 @@ func (x *KeepType) UnmarshalJSON(b []byte) error { // Deprecated: Use KeepType.Descriptor instead. func (KeepType) EnumDescriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{5} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{6} } type StickerPackMessage_StickerPackOrigin int32 @@ -461,11 +520,11 @@ func (x StickerPackMessage_StickerPackOrigin) String() string { } func (StickerPackMessage_StickerPackOrigin) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[6].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[7].Descriptor() } func (StickerPackMessage_StickerPackOrigin) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[6] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[7] } func (x StickerPackMessage_StickerPackOrigin) Number() protoreflect.EnumNumber { @@ -514,11 +573,11 @@ func (x PlaceholderMessage_PlaceholderType) String() string { } func (PlaceholderMessage_PlaceholderType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[7].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[8].Descriptor() } func (PlaceholderMessage_PlaceholderType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[7] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[8] } func (x PlaceholderMessage_PlaceholderType) Number() protoreflect.EnumNumber { @@ -573,11 +632,11 @@ func (x BCallMessage_MediaType) String() string { } func (BCallMessage_MediaType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[8].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[9].Descriptor() } func (BCallMessage_MediaType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[8] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[9] } func (x BCallMessage_MediaType) Number() protoreflect.EnumNumber { @@ -647,11 +706,11 @@ func (x CallLogMessage_CallOutcome) String() string { } func (CallLogMessage_CallOutcome) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[9].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[10].Descriptor() } func (CallLogMessage_CallOutcome) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[9] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[10] } func (x CallLogMessage_CallOutcome) Number() protoreflect.EnumNumber { @@ -706,11 +765,11 @@ func (x CallLogMessage_CallType) String() string { } func (CallLogMessage_CallType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[10].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[11].Descriptor() } func (CallLogMessage_CallType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[10] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[11] } func (x CallLogMessage_CallType) Number() protoreflect.EnumNumber { @@ -762,11 +821,11 @@ func (x ScheduledCallEditMessage_EditType) String() string { } func (ScheduledCallEditMessage_EditType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[11].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[12].Descriptor() } func (ScheduledCallEditMessage_EditType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[11] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[12] } func (x ScheduledCallEditMessage_EditType) Number() protoreflect.EnumNumber { @@ -821,11 +880,11 @@ func (x ScheduledCallCreationMessage_CallType) String() string { } func (ScheduledCallCreationMessage_CallType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[12].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[13].Descriptor() } func (ScheduledCallCreationMessage_CallType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[12] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[13] } func (x ScheduledCallCreationMessage_CallType) Number() protoreflect.EnumNumber { @@ -883,11 +942,11 @@ func (x EventResponseMessage_EventResponseType) String() string { } func (EventResponseMessage_EventResponseType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[13].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[14].Descriptor() } func (EventResponseMessage_EventResponseType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[13] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[14] } func (x EventResponseMessage_EventResponseType) Number() protoreflect.EnumNumber { @@ -942,11 +1001,11 @@ func (x PinInChatMessage_Type) String() string { } func (PinInChatMessage_Type) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[14].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[15].Descriptor() } func (PinInChatMessage_Type) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[14] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[15] } func (x PinInChatMessage_Type) Number() protoreflect.EnumNumber { @@ -998,11 +1057,11 @@ func (x StatusStickerInteractionMessage_StatusStickerType) String() string { } func (StatusStickerInteractionMessage_StatusStickerType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[15].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[16].Descriptor() } func (StatusStickerInteractionMessage_StatusStickerType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[15] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[16] } func (x StatusStickerInteractionMessage_StatusStickerType) Number() protoreflect.EnumNumber { @@ -1054,11 +1113,11 @@ func (x ButtonsResponseMessage_Type) String() string { } func (ButtonsResponseMessage_Type) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[16].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[17].Descriptor() } func (ButtonsResponseMessage_Type) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[16] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[17] } func (x ButtonsResponseMessage_Type) Number() protoreflect.EnumNumber { @@ -1125,11 +1184,11 @@ func (x ButtonsMessage_HeaderType) String() string { } func (ButtonsMessage_HeaderType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[17].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[18].Descriptor() } func (ButtonsMessage_HeaderType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[17] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[18] } func (x ButtonsMessage_HeaderType) Number() protoreflect.EnumNumber { @@ -1184,11 +1243,11 @@ func (x ButtonsMessage_Button_Type) String() string { } func (ButtonsMessage_Button_Type) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[18].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[19].Descriptor() } func (ButtonsMessage_Button_Type) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[18] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[19] } func (x ButtonsMessage_Button_Type) Number() protoreflect.EnumNumber { @@ -1243,11 +1302,11 @@ func (x SecretEncryptedMessage_SecretEncType) String() string { } func (SecretEncryptedMessage_SecretEncType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[19].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[20].Descriptor() } func (SecretEncryptedMessage_SecretEncType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[19] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[20] } func (x SecretEncryptedMessage_SecretEncType) Number() protoreflect.EnumNumber { @@ -1299,11 +1358,11 @@ func (x GroupInviteMessage_GroupType) String() string { } func (GroupInviteMessage_GroupType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[20].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[21].Descriptor() } func (GroupInviteMessage_GroupType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[20] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[21] } func (x GroupInviteMessage_GroupType) Number() protoreflect.EnumNumber { @@ -1355,11 +1414,11 @@ func (x InteractiveResponseMessage_Body_Format) String() string { } func (InteractiveResponseMessage_Body_Format) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[21].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[22].Descriptor() } func (InteractiveResponseMessage_Body_Format) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[21] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[22] } func (x InteractiveResponseMessage_Body_Format) Number() protoreflect.EnumNumber { @@ -1414,11 +1473,11 @@ func (x InteractiveMessage_CarouselMessage_CarouselCardType) String() string { } func (InteractiveMessage_CarouselMessage_CarouselCardType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[22].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[23].Descriptor() } func (InteractiveMessage_CarouselMessage_CarouselCardType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[22] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[23] } func (x InteractiveMessage_CarouselMessage_CarouselCardType) Number() protoreflect.EnumNumber { @@ -1476,11 +1535,11 @@ func (x InteractiveMessage_ShopMessage_Surface) String() string { } func (InteractiveMessage_ShopMessage_Surface) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[23].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[24].Descriptor() } func (InteractiveMessage_ShopMessage_Surface) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[23] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[24] } func (x InteractiveMessage_ShopMessage_Surface) Number() protoreflect.EnumNumber { @@ -1532,11 +1591,11 @@ func (x ListResponseMessage_ListType) String() string { } func (ListResponseMessage_ListType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[24].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[25].Descriptor() } func (ListResponseMessage_ListType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[24] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[25] } func (x ListResponseMessage_ListType) Number() protoreflect.EnumNumber { @@ -1591,11 +1650,11 @@ func (x ListMessage_ListType) String() string { } func (ListMessage_ListType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[25].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[26].Descriptor() } func (ListMessage_ListType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[25] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[26] } func (x ListMessage_ListType) Number() protoreflect.EnumNumber { @@ -1644,11 +1703,11 @@ func (x OrderMessage_OrderSurface) String() string { } func (OrderMessage_OrderSurface) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[26].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[27].Descriptor() } func (OrderMessage_OrderSurface) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[26] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[27] } func (x OrderMessage_OrderSurface) Number() protoreflect.EnumNumber { @@ -1703,11 +1762,11 @@ func (x OrderMessage_OrderStatus) String() string { } func (OrderMessage_OrderStatus) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[27].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[28].Descriptor() } func (OrderMessage_OrderStatus) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[27] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[28] } func (x OrderMessage_OrderStatus) Number() protoreflect.EnumNumber { @@ -1756,11 +1815,11 @@ func (x StatusQuotedMessage_StatusQuotedMessageType) String() string { } func (StatusQuotedMessage_StatusQuotedMessageType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[28].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[29].Descriptor() } func (StatusQuotedMessage_StatusQuotedMessageType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[28] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[29] } func (x StatusQuotedMessage_StatusQuotedMessageType) Number() protoreflect.EnumNumber { @@ -1818,11 +1877,11 @@ func (x PaymentInviteMessage_ServiceType) String() string { } func (PaymentInviteMessage_ServiceType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[29].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[30].Descriptor() } func (PaymentInviteMessage_ServiceType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[29] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[30] } func (x PaymentInviteMessage_ServiceType) Number() protoreflect.EnumNumber { @@ -1874,11 +1933,11 @@ func (x HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeC } func (HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_CalendarType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[30].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[31].Descriptor() } func (HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_CalendarType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[30] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[31] } func (x HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_CalendarType) Number() protoreflect.EnumNumber { @@ -1945,11 +2004,11 @@ func (x HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeC } func (HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_DayOfWeekType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[31].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[32].Descriptor() } func (HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_DayOfWeekType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[31] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[32] } func (x HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_DayOfWeekType) Number() protoreflect.EnumNumber { @@ -2013,11 +2072,11 @@ func (x PeerDataOperationRequestResponseMessage_PeerDataOperationResult_HistoryS } func (PeerDataOperationRequestResponseMessage_PeerDataOperationResult_HistorySyncChunkRetryResponseCode) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[32].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[33].Descriptor() } func (PeerDataOperationRequestResponseMessage_PeerDataOperationResult_HistorySyncChunkRetryResponseCode) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[32] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[33] } func (x PeerDataOperationRequestResponseMessage_PeerDataOperationResult_HistorySyncChunkRetryResponseCode) Number() protoreflect.EnumNumber { @@ -2084,11 +2143,11 @@ func (x PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHist } func (PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandResponseCode) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[33].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[34].Descriptor() } func (PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandResponseCode) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[33] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[34] } func (x PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandResponseCode) Number() protoreflect.EnumNumber { @@ -2137,11 +2196,11 @@ func (x PeerDataOperationRequestMessage_GalaxyFlowAction_GalaxyFlowActionType) S } func (PeerDataOperationRequestMessage_GalaxyFlowAction_GalaxyFlowActionType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[34].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[35].Descriptor() } func (PeerDataOperationRequestMessage_GalaxyFlowAction_GalaxyFlowActionType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[34] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[35] } func (x PeerDataOperationRequestMessage_GalaxyFlowAction_GalaxyFlowActionType) Number() protoreflect.EnumNumber { @@ -2193,11 +2252,11 @@ func (x RequestWelcomeMessageMetadata_LocalChatState) String() string { } func (RequestWelcomeMessageMetadata_LocalChatState) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[35].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[36].Descriptor() } func (RequestWelcomeMessageMetadata_LocalChatState) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[35] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[36] } func (x RequestWelcomeMessageMetadata_LocalChatState) Number() protoreflect.EnumNumber { @@ -2321,11 +2380,11 @@ func (x ProtocolMessage_Type) String() string { } func (ProtocolMessage_Type) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[36].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[37].Descriptor() } func (ProtocolMessage_Type) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[36] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[37] } func (x ProtocolMessage_Type) Number() protoreflect.EnumNumber { @@ -2380,11 +2439,11 @@ func (x CloudAPIThreadControlNotification_CloudAPIThreadControl) String() string } func (CloudAPIThreadControlNotification_CloudAPIThreadControl) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[37].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[38].Descriptor() } func (CloudAPIThreadControlNotification_CloudAPIThreadControl) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[37] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[38] } func (x CloudAPIThreadControlNotification_CloudAPIThreadControl) Number() protoreflect.EnumNumber { @@ -2436,11 +2495,11 @@ func (x VideoMessage_VideoSourceType) String() string { } func (VideoMessage_VideoSourceType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[38].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[39].Descriptor() } func (VideoMessage_VideoSourceType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[38] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[39] } func (x VideoMessage_VideoSourceType) Number() protoreflect.EnumNumber { @@ -2498,11 +2557,11 @@ func (x VideoMessage_Attribution) String() string { } func (VideoMessage_Attribution) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[39].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[40].Descriptor() } func (VideoMessage_Attribution) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[39] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[40] } func (x VideoMessage_Attribution) Number() protoreflect.EnumNumber { @@ -2560,11 +2619,11 @@ func (x ExtendedTextMessage_InviteLinkGroupType) String() string { } func (ExtendedTextMessage_InviteLinkGroupType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[40].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[41].Descriptor() } func (ExtendedTextMessage_InviteLinkGroupType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[40] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[41] } func (x ExtendedTextMessage_InviteLinkGroupType) Number() protoreflect.EnumNumber { @@ -2628,11 +2687,11 @@ func (x ExtendedTextMessage_PreviewType) String() string { } func (ExtendedTextMessage_PreviewType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[41].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[42].Descriptor() } func (ExtendedTextMessage_PreviewType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[41] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[42] } func (x ExtendedTextMessage_PreviewType) Number() protoreflect.EnumNumber { @@ -2702,11 +2761,11 @@ func (x ExtendedTextMessage_FontType) String() string { } func (ExtendedTextMessage_FontType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[42].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[43].Descriptor() } func (ExtendedTextMessage_FontType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[42] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[43] } func (x ExtendedTextMessage_FontType) Number() protoreflect.EnumNumber { @@ -2770,11 +2829,11 @@ func (x LinkPreviewMetadata_SocialMediaPostType) String() string { } func (LinkPreviewMetadata_SocialMediaPostType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[43].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[44].Descriptor() } func (LinkPreviewMetadata_SocialMediaPostType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[43] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[44] } func (x LinkPreviewMetadata_SocialMediaPostType) Number() protoreflect.EnumNumber { @@ -2826,11 +2885,11 @@ func (x PaymentLinkMetadata_PaymentLinkHeader_PaymentLinkHeaderType) String() st } func (PaymentLinkMetadata_PaymentLinkHeader_PaymentLinkHeaderType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[44].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[45].Descriptor() } func (PaymentLinkMetadata_PaymentLinkHeader_PaymentLinkHeaderType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[44] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[45] } func (x PaymentLinkMetadata_PaymentLinkHeader_PaymentLinkHeaderType) Number() protoreflect.EnumNumber { @@ -2888,11 +2947,11 @@ func (x StatusNotificationMessage_StatusNotificationType) String() string { } func (StatusNotificationMessage_StatusNotificationType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[45].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[46].Descriptor() } func (StatusNotificationMessage_StatusNotificationType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[45] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[46] } func (x StatusNotificationMessage_StatusNotificationType) Number() protoreflect.EnumNumber { @@ -2944,11 +3003,11 @@ func (x InvoiceMessage_AttachmentType) String() string { } func (InvoiceMessage_AttachmentType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[46].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[47].Descriptor() } func (InvoiceMessage_AttachmentType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[46] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[47] } func (x InvoiceMessage_AttachmentType) Number() protoreflect.EnumNumber { @@ -3006,11 +3065,11 @@ func (x ImageMessage_ImageSourceType) String() string { } func (ImageMessage_ImageSourceType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[47].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[48].Descriptor() } func (ImageMessage_ImageSourceType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[47] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[48] } func (x ImageMessage_ImageSourceType) Number() protoreflect.EnumNumber { @@ -3062,11 +3121,11 @@ func (x ContextInfo_QuotedType) String() string { } func (ContextInfo_QuotedType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[48].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[49].Descriptor() } func (ContextInfo_QuotedType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[48] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[49] } func (x ContextInfo_QuotedType) Number() protoreflect.EnumNumber { @@ -3130,11 +3189,11 @@ func (x ContextInfo_ForwardOrigin) String() string { } func (ContextInfo_ForwardOrigin) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[49].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[50].Descriptor() } func (ContextInfo_ForwardOrigin) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[49] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[50] } func (x ContextInfo_ForwardOrigin) Number() protoreflect.EnumNumber { @@ -3198,11 +3257,11 @@ func (x ContextInfo_StatusSourceType) String() string { } func (ContextInfo_StatusSourceType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[50].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[51].Descriptor() } func (ContextInfo_StatusSourceType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[50] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[51] } func (x ContextInfo_StatusSourceType) Number() protoreflect.EnumNumber { @@ -3275,11 +3334,11 @@ func (x ContextInfo_PairedMediaType) String() string { } func (ContextInfo_PairedMediaType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[51].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[52].Descriptor() } func (ContextInfo_PairedMediaType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[51] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[52] } func (x ContextInfo_PairedMediaType) Number() protoreflect.EnumNumber { @@ -3340,11 +3399,11 @@ func (x ContextInfo_StatusAttributionType) String() string { } func (ContextInfo_StatusAttributionType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[52].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[53].Descriptor() } func (ContextInfo_StatusAttributionType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[52] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[53] } func (x ContextInfo_StatusAttributionType) Number() protoreflect.EnumNumber { @@ -3396,11 +3455,11 @@ func (x ContextInfo_StatusAudienceMetadata_AudienceType) String() string { } func (ContextInfo_StatusAudienceMetadata_AudienceType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[53].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[54].Descriptor() } func (ContextInfo_StatusAudienceMetadata_AudienceType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[53] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[54] } func (x ContextInfo_StatusAudienceMetadata_AudienceType) Number() protoreflect.EnumNumber { @@ -3452,11 +3511,11 @@ func (x ContextInfo_DataSharingContext_DataSharingFlags) String() string { } func (ContextInfo_DataSharingContext_DataSharingFlags) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[54].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[55].Descriptor() } func (ContextInfo_DataSharingContext_DataSharingFlags) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[54] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[55] } func (x ContextInfo_DataSharingContext_DataSharingFlags) Number() protoreflect.EnumNumber { @@ -3511,11 +3570,11 @@ func (x ContextInfo_ForwardedNewsletterMessageInfo_ContentType) String() string } func (ContextInfo_ForwardedNewsletterMessageInfo_ContentType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[55].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[56].Descriptor() } func (ContextInfo_ForwardedNewsletterMessageInfo_ContentType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[55] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[56] } func (x ContextInfo_ForwardedNewsletterMessageInfo_ContentType) Number() protoreflect.EnumNumber { @@ -3567,11 +3626,11 @@ func (x ContextInfo_ExternalAdReplyInfo_AdType) String() string { } func (ContextInfo_ExternalAdReplyInfo_AdType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[56].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[57].Descriptor() } func (ContextInfo_ExternalAdReplyInfo_AdType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[56] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[57] } func (x ContextInfo_ExternalAdReplyInfo_AdType) Number() protoreflect.EnumNumber { @@ -3626,11 +3685,11 @@ func (x ContextInfo_ExternalAdReplyInfo_MediaType) String() string { } func (ContextInfo_ExternalAdReplyInfo_MediaType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[57].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[58].Descriptor() } func (ContextInfo_ExternalAdReplyInfo_MediaType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[57] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[58] } func (x ContextInfo_ExternalAdReplyInfo_MediaType) Number() protoreflect.EnumNumber { @@ -3685,11 +3744,11 @@ func (x ContextInfo_AdReplyInfo_MediaType) String() string { } func (ContextInfo_AdReplyInfo_MediaType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[58].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[59].Descriptor() } func (ContextInfo_AdReplyInfo_MediaType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[58] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[59] } func (x ContextInfo_AdReplyInfo_MediaType) Number() protoreflect.EnumNumber { @@ -3795,11 +3854,11 @@ func (x MessageAssociation_AssociationType) String() string { } func (MessageAssociation_AssociationType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[59].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[60].Descriptor() } func (MessageAssociation_AssociationType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[59] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[60] } func (x MessageAssociation_AssociationType) Number() protoreflect.EnumNumber { @@ -3854,11 +3913,11 @@ func (x ThreadID_ThreadType) String() string { } func (ThreadID_ThreadType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[60].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[61].Descriptor() } func (ThreadID_ThreadType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[60] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[61] } func (x ThreadID_ThreadType) Number() protoreflect.EnumNumber { @@ -3910,11 +3969,11 @@ func (x MessageContextInfo_MessageAddonExpiryType) String() string { } func (MessageContextInfo_MessageAddonExpiryType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[61].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[62].Descriptor() } func (MessageContextInfo_MessageAddonExpiryType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[61] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[62] } func (x MessageContextInfo_MessageAddonExpiryType) Number() protoreflect.EnumNumber { @@ -3969,11 +4028,11 @@ func (x InteractiveAnnotation_StatusLinkType) String() string { } func (InteractiveAnnotation_StatusLinkType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[62].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[63].Descriptor() } func (InteractiveAnnotation_StatusLinkType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[62] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[63] } func (x InteractiveAnnotation_StatusLinkType) Number() protoreflect.EnumNumber { @@ -4028,11 +4087,11 @@ func (x HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) String } func (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[63].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[64].Descriptor() } func (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[63] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[64] } func (x HydratedTemplateButton_HydratedURLButton_WebviewPresentationType) Number() protoreflect.EnumNumber { @@ -4084,11 +4143,11 @@ func (x PaymentBackground_Type) String() string { } func (PaymentBackground_Type) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[64].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[65].Descriptor() } func (PaymentBackground_Type) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[64] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[65] } func (x PaymentBackground_Type) Number() protoreflect.EnumNumber { @@ -4152,11 +4211,11 @@ func (x DisappearingMode_Trigger) String() string { } func (DisappearingMode_Trigger) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[65].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[66].Descriptor() } func (DisappearingMode_Trigger) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[65] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[66] } func (x DisappearingMode_Trigger) Number() protoreflect.EnumNumber { @@ -4214,11 +4273,11 @@ func (x DisappearingMode_Initiator) String() string { } func (DisappearingMode_Initiator) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[66].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[67].Descriptor() } func (DisappearingMode_Initiator) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[66] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[67] } func (x DisappearingMode_Initiator) Number() protoreflect.EnumNumber { @@ -4276,11 +4335,11 @@ func (x ProcessedVideo_VideoQuality) String() string { } func (ProcessedVideo_VideoQuality) Descriptor() protoreflect.EnumDescriptor { - return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[67].Descriptor() + return file_waE2E_WAWebProtobufsE2E_proto_enumTypes[68].Descriptor() } func (ProcessedVideo_VideoQuality) Type() protoreflect.EnumType { - return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[67] + return &file_waE2E_WAWebProtobufsE2E_proto_enumTypes[68] } func (x ProcessedVideo_VideoQuality) Number() protoreflect.EnumNumber { @@ -8552,6 +8611,7 @@ type MessageContextInfo struct { LimitSharing *waCommon.LimitSharing `protobuf:"bytes,13,opt,name=limitSharing" json:"limitSharing,omitempty"` LimitSharingV2 *waCommon.LimitSharing `protobuf:"bytes,14,opt,name=limitSharingV2" json:"limitSharingV2,omitempty"` ThreadID []*ThreadID `protobuf:"bytes,15,rep,name=threadID" json:"threadID,omitempty"` + WeblinkRenderConfig *WebLinkRenderConfig `protobuf:"varint,16,opt,name=weblinkRenderConfig,enum=WAWebProtobufsE2E.WebLinkRenderConfig" json:"weblinkRenderConfig,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8691,6 +8751,13 @@ func (x *MessageContextInfo) GetThreadID() []*ThreadID { return nil } +func (x *MessageContextInfo) GetWeblinkRenderConfig() WebLinkRenderConfig { + if x != nil && x.WeblinkRenderConfig != nil { + return *x.WeblinkRenderConfig + } + return WebLinkRenderConfig_WEBVIEW +} + type InteractiveAnnotation struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Action: @@ -9322,9 +9389,8 @@ type Message struct { StatusQuotedMessage *StatusQuotedMessage `protobuf:"bytes,109,opt,name=statusQuotedMessage" json:"statusQuotedMessage,omitempty"` StatusStickerInteractionMessage *StatusStickerInteractionMessage `protobuf:"bytes,110,opt,name=statusStickerInteractionMessage" json:"statusStickerInteractionMessage,omitempty"` PollCreationMessageV5 *PollCreationMessage `protobuf:"bytes,111,opt,name=pollCreationMessageV5" json:"pollCreationMessageV5,omitempty"` - PollResultSnapshotMessageV2 *PollResultSnapshotMessage `protobuf:"bytes,112,opt,name=pollResultSnapshotMessageV2" json:"pollResultSnapshotMessageV2,omitempty"` NewsletterFollowerInviteMessageV2 *NewsletterFollowerInviteMessage `protobuf:"bytes,113,opt,name=newsletterFollowerInviteMessageV2" json:"newsletterFollowerInviteMessageV2,omitempty"` - RequestContactInfoMessage *RequestContactInfoMessage `protobuf:"bytes,114,opt,name=requestContactInfoMessage" json:"requestContactInfoMessage,omitempty"` + PollResultSnapshotMessageV3 *PollResultSnapshotMessage `protobuf:"bytes,115,opt,name=pollResultSnapshotMessageV3" json:"pollResultSnapshotMessageV3,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10010,13 +10076,6 @@ func (x *Message) GetPollCreationMessageV5() *PollCreationMessage { return nil } -func (x *Message) GetPollResultSnapshotMessageV2() *PollResultSnapshotMessage { - if x != nil { - return x.PollResultSnapshotMessageV2 - } - return nil -} - func (x *Message) GetNewsletterFollowerInviteMessageV2() *NewsletterFollowerInviteMessage { if x != nil { return x.NewsletterFollowerInviteMessageV2 @@ -10024,9 +10083,9 @@ func (x *Message) GetNewsletterFollowerInviteMessageV2() *NewsletterFollowerInvi return nil } -func (x *Message) GetRequestContactInfoMessage() *RequestContactInfoMessage { +func (x *Message) GetPollResultSnapshotMessageV3() *PollResultSnapshotMessage { if x != nil { - return x.RequestContactInfoMessage + return x.PollResultSnapshotMessageV3 } return nil } @@ -10375,6 +10434,8 @@ type EventMessage struct { EndTime *int64 `protobuf:"varint,8,opt,name=endTime" json:"endTime,omitempty"` ExtraGuestsAllowed *bool `protobuf:"varint,9,opt,name=extraGuestsAllowed" json:"extraGuestsAllowed,omitempty"` IsScheduleCall *bool `protobuf:"varint,10,opt,name=isScheduleCall" json:"isScheduleCall,omitempty"` + HasReminder *bool `protobuf:"varint,11,opt,name=hasReminder" json:"hasReminder,omitempty"` + ReminderOffsetSec *int64 `protobuf:"varint,12,opt,name=reminderOffsetSec" json:"reminderOffsetSec,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -10479,6 +10540,20 @@ func (x *EventMessage) GetIsScheduleCall() bool { return false } +func (x *EventMessage) GetHasReminder() bool { + if x != nil && x.HasReminder != nil { + return *x.HasReminder + } + return false +} + +func (x *EventMessage) GetReminderOffsetSec() int64 { + if x != nil && x.ReminderOffsetSec != nil { + return *x.ReminderOffsetSec + } + return 0 +} + type CommentMessage struct { state protoimpl.MessageState `protogen:"open.v1"` Message *Message `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` @@ -11415,66 +11490,6 @@ func (x *DeviceSentMessage) GetPhash() string { return "" } -type RequestContactInfoMessage struct { - state protoimpl.MessageState `protogen:"open.v1"` - Text *string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"` - CtaButtonText *string `protobuf:"bytes,2,opt,name=ctaButtonText" json:"ctaButtonText,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *RequestContactInfoMessage) Reset() { - *x = RequestContactInfoMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RequestContactInfoMessage) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RequestContactInfoMessage) ProtoMessage() {} - -func (x *RequestContactInfoMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[65] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RequestContactInfoMessage.ProtoReflect.Descriptor instead. -func (*RequestContactInfoMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{65} -} - -func (x *RequestContactInfoMessage) GetText() string { - if x != nil && x.Text != nil { - return *x.Text - } - return "" -} - -func (x *RequestContactInfoMessage) GetCtaButtonText() string { - if x != nil && x.CtaButtonText != nil { - return *x.CtaButtonText - } - return "" -} - -func (x *RequestContactInfoMessage) GetContextInfo() *ContextInfo { - if x != nil { - return x.ContextInfo - } - return nil -} - type RequestPhoneNumberMessage struct { state protoimpl.MessageState `protogen:"open.v1"` ContextInfo *ContextInfo `protobuf:"bytes,1,opt,name=contextInfo" json:"contextInfo,omitempty"` @@ -11484,7 +11499,7 @@ type RequestPhoneNumberMessage struct { func (x *RequestPhoneNumberMessage) Reset() { *x = RequestPhoneNumberMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[66] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11496,7 +11511,7 @@ func (x *RequestPhoneNumberMessage) String() string { func (*RequestPhoneNumberMessage) ProtoMessage() {} func (x *RequestPhoneNumberMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[66] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11509,7 +11524,7 @@ func (x *RequestPhoneNumberMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestPhoneNumberMessage.ProtoReflect.Descriptor instead. func (*RequestPhoneNumberMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{66} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{65} } func (x *RequestPhoneNumberMessage) GetContextInfo() *ContextInfo { @@ -11532,7 +11547,7 @@ type NewsletterFollowerInviteMessage struct { func (x *NewsletterFollowerInviteMessage) Reset() { *x = NewsletterFollowerInviteMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[67] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11544,7 +11559,7 @@ func (x *NewsletterFollowerInviteMessage) String() string { func (*NewsletterFollowerInviteMessage) ProtoMessage() {} func (x *NewsletterFollowerInviteMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[67] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11557,7 +11572,7 @@ func (x *NewsletterFollowerInviteMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use NewsletterFollowerInviteMessage.ProtoReflect.Descriptor instead. func (*NewsletterFollowerInviteMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{67} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{66} } func (x *NewsletterFollowerInviteMessage) GetNewsletterJID() string { @@ -11609,7 +11624,7 @@ type NewsletterAdminInviteMessage struct { func (x *NewsletterAdminInviteMessage) Reset() { *x = NewsletterAdminInviteMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[68] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11621,7 +11636,7 @@ func (x *NewsletterAdminInviteMessage) String() string { func (*NewsletterAdminInviteMessage) ProtoMessage() {} func (x *NewsletterAdminInviteMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[68] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11634,7 +11649,7 @@ func (x *NewsletterAdminInviteMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use NewsletterAdminInviteMessage.ProtoReflect.Descriptor instead. func (*NewsletterAdminInviteMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{68} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{67} } func (x *NewsletterAdminInviteMessage) GetNewsletterJID() string { @@ -11693,7 +11708,7 @@ type ProductMessage struct { func (x *ProductMessage) Reset() { *x = ProductMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[69] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11705,7 +11720,7 @@ func (x *ProductMessage) String() string { func (*ProductMessage) ProtoMessage() {} func (x *ProductMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[69] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11718,7 +11733,7 @@ func (x *ProductMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductMessage.ProtoReflect.Descriptor instead. func (*ProductMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{69} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{68} } func (x *ProductMessage) GetProduct() *ProductMessage_ProductSnapshot { @@ -11776,7 +11791,7 @@ type TemplateButtonReplyMessage struct { func (x *TemplateButtonReplyMessage) Reset() { *x = TemplateButtonReplyMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11788,7 +11803,7 @@ func (x *TemplateButtonReplyMessage) String() string { func (*TemplateButtonReplyMessage) ProtoMessage() {} func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11801,7 +11816,7 @@ func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateButtonReplyMessage.ProtoReflect.Descriptor instead. func (*TemplateButtonReplyMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{70} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{69} } func (x *TemplateButtonReplyMessage) GetSelectedID() string { @@ -11856,7 +11871,7 @@ type TemplateMessage struct { func (x *TemplateMessage) Reset() { *x = TemplateMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11868,7 +11883,7 @@ func (x *TemplateMessage) String() string { func (*TemplateMessage) ProtoMessage() {} func (x *TemplateMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11881,7 +11896,7 @@ func (x *TemplateMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateMessage.ProtoReflect.Descriptor instead. func (*TemplateMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{71} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{70} } func (x *TemplateMessage) GetFormat() isTemplateMessage_Format { @@ -11990,7 +12005,7 @@ type StickerMessage struct { func (x *StickerMessage) Reset() { *x = StickerMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12002,7 +12017,7 @@ func (x *StickerMessage) String() string { func (*StickerMessage) ProtoMessage() {} func (x *StickerMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12015,7 +12030,7 @@ func (x *StickerMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use StickerMessage.ProtoReflect.Descriptor instead. func (*StickerMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{72} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{71} } func (x *StickerMessage) GetURL() string { @@ -12183,7 +12198,7 @@ type LiveLocationMessage struct { func (x *LiveLocationMessage) Reset() { *x = LiveLocationMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[73] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12195,7 +12210,7 @@ func (x *LiveLocationMessage) String() string { func (*LiveLocationMessage) ProtoMessage() {} func (x *LiveLocationMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[73] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12208,7 +12223,7 @@ func (x *LiveLocationMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use LiveLocationMessage.ProtoReflect.Descriptor instead. func (*LiveLocationMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{73} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{72} } func (x *LiveLocationMessage) GetDegreesLatitude() float64 { @@ -12290,7 +12305,7 @@ type CancelPaymentRequestMessage struct { func (x *CancelPaymentRequestMessage) Reset() { *x = CancelPaymentRequestMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[74] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12302,7 +12317,7 @@ func (x *CancelPaymentRequestMessage) String() string { func (*CancelPaymentRequestMessage) ProtoMessage() {} func (x *CancelPaymentRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[74] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12315,7 +12330,7 @@ func (x *CancelPaymentRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelPaymentRequestMessage.ProtoReflect.Descriptor instead. func (*CancelPaymentRequestMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{74} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{73} } func (x *CancelPaymentRequestMessage) GetKey() *waCommon.MessageKey { @@ -12334,7 +12349,7 @@ type DeclinePaymentRequestMessage struct { func (x *DeclinePaymentRequestMessage) Reset() { *x = DeclinePaymentRequestMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[75] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12346,7 +12361,7 @@ func (x *DeclinePaymentRequestMessage) String() string { func (*DeclinePaymentRequestMessage) ProtoMessage() {} func (x *DeclinePaymentRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[75] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12359,7 +12374,7 @@ func (x *DeclinePaymentRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use DeclinePaymentRequestMessage.ProtoReflect.Descriptor instead. func (*DeclinePaymentRequestMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{75} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{74} } func (x *DeclinePaymentRequestMessage) GetKey() *waCommon.MessageKey { @@ -12384,7 +12399,7 @@ type RequestPaymentMessage struct { func (x *RequestPaymentMessage) Reset() { *x = RequestPaymentMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[76] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12396,7 +12411,7 @@ func (x *RequestPaymentMessage) String() string { func (*RequestPaymentMessage) ProtoMessage() {} func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[76] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12409,7 +12424,7 @@ func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestPaymentMessage.ProtoReflect.Descriptor instead. func (*RequestPaymentMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{76} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{75} } func (x *RequestPaymentMessage) GetNoteMessage() *Message { @@ -12473,7 +12488,7 @@ type SendPaymentMessage struct { func (x *SendPaymentMessage) Reset() { *x = SendPaymentMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12485,7 +12500,7 @@ func (x *SendPaymentMessage) String() string { func (*SendPaymentMessage) ProtoMessage() {} func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12498,7 +12513,7 @@ func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SendPaymentMessage.ProtoReflect.Descriptor instead. func (*SendPaymentMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{77} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{76} } func (x *SendPaymentMessage) GetNoteMessage() *Message { @@ -12540,7 +12555,7 @@ type ContactsArrayMessage struct { func (x *ContactsArrayMessage) Reset() { *x = ContactsArrayMessage{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[78] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12552,7 +12567,7 @@ func (x *ContactsArrayMessage) String() string { func (*ContactsArrayMessage) ProtoMessage() {} func (x *ContactsArrayMessage) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[78] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12565,7 +12580,7 @@ func (x *ContactsArrayMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ContactsArrayMessage.ProtoReflect.Descriptor instead. func (*ContactsArrayMessage) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{78} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{77} } func (x *ContactsArrayMessage) GetDisplayName() string { @@ -12598,7 +12613,7 @@ type InitialSecurityNotificationSettingSync struct { func (x *InitialSecurityNotificationSettingSync) Reset() { *x = InitialSecurityNotificationSettingSync{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[79] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12610,7 +12625,7 @@ func (x *InitialSecurityNotificationSettingSync) String() string { func (*InitialSecurityNotificationSettingSync) ProtoMessage() {} func (x *InitialSecurityNotificationSettingSync) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[79] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12623,7 +12638,7 @@ func (x *InitialSecurityNotificationSettingSync) ProtoReflect() protoreflect.Mes // Deprecated: Use InitialSecurityNotificationSettingSync.ProtoReflect.Descriptor instead. func (*InitialSecurityNotificationSettingSync) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{79} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{78} } func (x *InitialSecurityNotificationSettingSync) GetSecurityNotificationEnabled() bool { @@ -12642,7 +12657,7 @@ type FullHistorySyncOnDemandRequestMetadata struct { func (x *FullHistorySyncOnDemandRequestMetadata) Reset() { *x = FullHistorySyncOnDemandRequestMetadata{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[80] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12654,7 +12669,7 @@ func (x *FullHistorySyncOnDemandRequestMetadata) String() string { func (*FullHistorySyncOnDemandRequestMetadata) ProtoMessage() {} func (x *FullHistorySyncOnDemandRequestMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[80] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12667,7 +12682,7 @@ func (x *FullHistorySyncOnDemandRequestMetadata) ProtoReflect() protoreflect.Mes // Deprecated: Use FullHistorySyncOnDemandRequestMetadata.ProtoReflect.Descriptor instead. func (*FullHistorySyncOnDemandRequestMetadata) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{80} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{79} } func (x *FullHistorySyncOnDemandRequestMetadata) GetRequestID() string { @@ -12687,7 +12702,7 @@ type AppStateFatalExceptionNotification struct { func (x *AppStateFatalExceptionNotification) Reset() { *x = AppStateFatalExceptionNotification{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[81] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12699,7 +12714,7 @@ func (x *AppStateFatalExceptionNotification) String() string { func (*AppStateFatalExceptionNotification) ProtoMessage() {} func (x *AppStateFatalExceptionNotification) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[81] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12712,7 +12727,7 @@ func (x *AppStateFatalExceptionNotification) ProtoReflect() protoreflect.Message // Deprecated: Use AppStateFatalExceptionNotification.ProtoReflect.Descriptor instead. func (*AppStateFatalExceptionNotification) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{80} } func (x *AppStateFatalExceptionNotification) GetCollectionNames() []string { @@ -12738,7 +12753,7 @@ type AppStateSyncKeyRequest struct { func (x *AppStateSyncKeyRequest) Reset() { *x = AppStateSyncKeyRequest{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[82] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12750,7 +12765,7 @@ func (x *AppStateSyncKeyRequest) String() string { func (*AppStateSyncKeyRequest) ProtoMessage() {} func (x *AppStateSyncKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[82] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12763,7 +12778,7 @@ func (x *AppStateSyncKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyRequest.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyRequest) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{82} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{81} } func (x *AppStateSyncKeyRequest) GetKeyIDs() []*AppStateSyncKeyId { @@ -12782,7 +12797,7 @@ type AppStateSyncKeyShare struct { func (x *AppStateSyncKeyShare) Reset() { *x = AppStateSyncKeyShare{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[83] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12794,7 +12809,7 @@ func (x *AppStateSyncKeyShare) String() string { func (*AppStateSyncKeyShare) ProtoMessage() {} func (x *AppStateSyncKeyShare) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[83] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12807,7 +12822,7 @@ func (x *AppStateSyncKeyShare) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyShare.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyShare) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{83} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{82} } func (x *AppStateSyncKeyShare) GetKeys() []*AppStateSyncKey { @@ -12828,7 +12843,7 @@ type AppStateSyncKeyData struct { func (x *AppStateSyncKeyData) Reset() { *x = AppStateSyncKeyData{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[84] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12840,7 +12855,7 @@ func (x *AppStateSyncKeyData) String() string { func (*AppStateSyncKeyData) ProtoMessage() {} func (x *AppStateSyncKeyData) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[84] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12853,7 +12868,7 @@ func (x *AppStateSyncKeyData) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyData.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyData) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{84} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{83} } func (x *AppStateSyncKeyData) GetKeyData() []byte { @@ -12888,7 +12903,7 @@ type AppStateSyncKeyFingerprint struct { func (x *AppStateSyncKeyFingerprint) Reset() { *x = AppStateSyncKeyFingerprint{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[85] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12900,7 +12915,7 @@ func (x *AppStateSyncKeyFingerprint) String() string { func (*AppStateSyncKeyFingerprint) ProtoMessage() {} func (x *AppStateSyncKeyFingerprint) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[85] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12913,7 +12928,7 @@ func (x *AppStateSyncKeyFingerprint) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyFingerprint.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyFingerprint) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{85} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{84} } func (x *AppStateSyncKeyFingerprint) GetRawID() uint32 { @@ -12946,7 +12961,7 @@ type AppStateSyncKeyId struct { func (x *AppStateSyncKeyId) Reset() { *x = AppStateSyncKeyId{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[86] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12958,7 +12973,7 @@ func (x *AppStateSyncKeyId) String() string { func (*AppStateSyncKeyId) ProtoMessage() {} func (x *AppStateSyncKeyId) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[86] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12971,7 +12986,7 @@ func (x *AppStateSyncKeyId) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKeyId.ProtoReflect.Descriptor instead. func (*AppStateSyncKeyId) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{85} } func (x *AppStateSyncKeyId) GetKeyID() []byte { @@ -12991,7 +13006,7 @@ type AppStateSyncKey struct { func (x *AppStateSyncKey) Reset() { *x = AppStateSyncKey{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[87] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13003,7 +13018,7 @@ func (x *AppStateSyncKey) String() string { func (*AppStateSyncKey) ProtoMessage() {} func (x *AppStateSyncKey) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[87] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13016,7 +13031,7 @@ func (x *AppStateSyncKey) ProtoReflect() protoreflect.Message { // Deprecated: Use AppStateSyncKey.ProtoReflect.Descriptor instead. func (*AppStateSyncKey) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{87} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{86} } func (x *AppStateSyncKey) GetKeyID() *AppStateSyncKeyId { @@ -13049,13 +13064,14 @@ type HistorySyncNotification struct { PeerDataRequestSessionID *string `protobuf:"bytes,12,opt,name=peerDataRequestSessionID" json:"peerDataRequestSessionID,omitempty"` FullHistorySyncOnDemandRequestMetadata *FullHistorySyncOnDemandRequestMetadata `protobuf:"bytes,13,opt,name=fullHistorySyncOnDemandRequestMetadata" json:"fullHistorySyncOnDemandRequestMetadata,omitempty"` EncHandle *string `protobuf:"bytes,14,opt,name=encHandle" json:"encHandle,omitempty"` + MessageAccessStatus *HistorySyncMessageAccessStatus `protobuf:"bytes,15,opt,name=messageAccessStatus" json:"messageAccessStatus,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *HistorySyncNotification) Reset() { *x = HistorySyncNotification{} - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[88] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13067,7 +13083,7 @@ func (x *HistorySyncNotification) String() string { func (*HistorySyncNotification) ProtoMessage() {} func (x *HistorySyncNotification) ProtoReflect() protoreflect.Message { - mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[88] + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13080,7 +13096,7 @@ func (x *HistorySyncNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use HistorySyncNotification.ProtoReflect.Descriptor instead. func (*HistorySyncNotification) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{88} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{87} } func (x *HistorySyncNotification) GetFileSHA256() []byte { @@ -13181,6 +13197,57 @@ func (x *HistorySyncNotification) GetEncHandle() string { return "" } +func (x *HistorySyncNotification) GetMessageAccessStatus() *HistorySyncMessageAccessStatus { + if x != nil { + return x.MessageAccessStatus + } + return nil +} + +type HistorySyncMessageAccessStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + CompleteAccessGranted *bool `protobuf:"varint,1,opt,name=completeAccessGranted" json:"completeAccessGranted,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *HistorySyncMessageAccessStatus) Reset() { + *x = HistorySyncMessageAccessStatus{} + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HistorySyncMessageAccessStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistorySyncMessageAccessStatus) ProtoMessage() {} + +func (x *HistorySyncMessageAccessStatus) ProtoReflect() protoreflect.Message { + mi := &file_waE2E_WAWebProtobufsE2E_proto_msgTypes[88] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistorySyncMessageAccessStatus.ProtoReflect.Descriptor instead. +func (*HistorySyncMessageAccessStatus) Descriptor() ([]byte, []int) { + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{88} +} + +func (x *HistorySyncMessageAccessStatus) GetCompleteAccessGranted() bool { + if x != nil && x.CompleteAccessGranted != nil { + return *x.CompleteAccessGranted + } + return false +} + type Chat struct { state protoimpl.MessageState `protogen:"open.v1"` DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"` @@ -13244,6 +13311,7 @@ type Call struct { ContextInfo *ContextInfo `protobuf:"bytes,7,opt,name=contextInfo" json:"contextInfo,omitempty"` NativeFlowCallButtonPayload *string `protobuf:"bytes,8,opt,name=nativeFlowCallButtonPayload" json:"nativeFlowCallButtonPayload,omitempty"` DeeplinkPayload *string `protobuf:"bytes,9,opt,name=deeplinkPayload" json:"deeplinkPayload,omitempty"` + MessageContextInfo *MessageContextInfo `protobuf:"bytes,10,opt,name=messageContextInfo" json:"messageContextInfo,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -13341,6 +13409,13 @@ func (x *Call) GetDeeplinkPayload() string { return "" } +func (x *Call) GetMessageContextInfo() *MessageContextInfo { + if x != nil { + return x.MessageContextInfo + } + return nil +} + type AudioMessage struct { state protoimpl.MessageState `protogen:"open.v1"` URL *string `protobuf:"bytes,1,opt,name=URL" json:"URL,omitempty"` @@ -19794,7 +19869,7 @@ func (x *ProductMessage_ProductSnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductMessage_ProductSnapshot.ProtoReflect.Descriptor instead. func (*ProductMessage_ProductSnapshot) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{69, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{68, 0} } func (x *ProductMessage_ProductSnapshot) GetProductImage() *ImageMessage { @@ -19917,7 +19992,7 @@ func (x *ProductMessage_CatalogSnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductMessage_CatalogSnapshot.ProtoReflect.Descriptor instead. func (*ProductMessage_CatalogSnapshot) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{69, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{68, 1} } func (x *ProductMessage_CatalogSnapshot) GetCatalogImage() *ImageMessage { @@ -19987,7 +20062,7 @@ func (x *TemplateMessage_HydratedFourRowTemplate) ProtoReflect() protoreflect.Me // Deprecated: Use TemplateMessage_HydratedFourRowTemplate.ProtoReflect.Descriptor instead. func (*TemplateMessage_HydratedFourRowTemplate) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{71, 0} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{70, 0} } func (x *TemplateMessage_HydratedFourRowTemplate) GetTitle() isTemplateMessage_HydratedFourRowTemplate_Title { @@ -20160,7 +20235,7 @@ func (x *TemplateMessage_FourRowTemplate) ProtoReflect() protoreflect.Message { // Deprecated: Use TemplateMessage_FourRowTemplate.ProtoReflect.Descriptor instead. func (*TemplateMessage_FourRowTemplate) Descriptor() ([]byte, []int) { - return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{71, 1} + return file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP(), []int{70, 1} } func (x *TemplateMessage_FourRowTemplate) GetTitle() isTemplateMessage_FourRowTemplate_Title { @@ -21576,7 +21651,7 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "ThreadType\x12\v\n" + "\aUNKNOWN\x10\x00\x12\x10\n" + "\fVIEW_REPLIES\x10\x01\x12\r\n" + - "\tAI_THREAD\x10\x02\"\xe5\a\n" + + "\tAI_THREAD\x10\x02\"\xbf\b\n" + "\x12MessageContextInfo\x12U\n" + "\x12deviceListMetadata\x18\x01 \x01(\v2%.WAWebProtobufsE2E.DeviceListMetadataR\x12deviceListMetadata\x12<\n" + "\x19deviceListMetadataVersion\x18\x02 \x01(\x05R\x19deviceListMetadataVersion\x12$\n" + @@ -21593,7 +21668,8 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\x0esupportPayload\x18\f \x01(\tR\x0esupportPayload\x12:\n" + "\flimitSharing\x18\r \x01(\v2\x16.WACommon.LimitSharingR\flimitSharing\x12>\n" + "\x0elimitSharingV2\x18\x0e \x01(\v2\x16.WACommon.LimitSharingR\x0elimitSharingV2\x127\n" + - "\bthreadID\x18\x0f \x03(\v2\x1b.WAWebProtobufsE2E.ThreadIDR\bthreadID\"=\n" + + "\bthreadID\x18\x0f \x03(\v2\x1b.WAWebProtobufsE2E.ThreadIDR\bthreadID\x12X\n" + + "\x13weblinkRenderConfig\x18\x10 \x01(\x0e2&.WAWebProtobufsE2E.WebLinkRenderConfigR\x13weblinkRenderConfig\"=\n" + "\x16MessageAddonExpiryType\x12\n" + "\n" + "\x06STATIC\x10\x01\x12\x17\n" + @@ -21700,7 +21776,7 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\tUNDEFINED\x10\x00\x12\a\n" + "\x03LOW\x10\x01\x12\a\n" + "\x03MID\x10\x02\x12\b\n" + - "\x04HIGH\x10\x03\"\xa3C\n" + + "\x04HIGH\x10\x03\"\xb7B\n" + "\aMessage\x12\"\n" + "\fconversation\x18\x01 \x01(\tR\fconversation\x12s\n" + "\x1csenderKeyDistributionMessage\x18\x02 \x01(\v2/.WAWebProtobufsE2E.SenderKeyDistributionMessageR\x1csenderKeyDistributionMessage\x12C\n" + @@ -21797,10 +21873,9 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\x17questionResponseMessage\x18k \x01(\v2*.WAWebProtobufsE2E.QuestionResponseMessageR\x17questionResponseMessage\x12X\n" + "\x13statusQuotedMessage\x18m \x01(\v2&.WAWebProtobufsE2E.StatusQuotedMessageR\x13statusQuotedMessage\x12|\n" + "\x1fstatusStickerInteractionMessage\x18n \x01(\v22.WAWebProtobufsE2E.StatusStickerInteractionMessageR\x1fstatusStickerInteractionMessage\x12\\\n" + - "\x15pollCreationMessageV5\x18o \x01(\v2&.WAWebProtobufsE2E.PollCreationMessageR\x15pollCreationMessageV5\x12n\n" + - "\x1bpollResultSnapshotMessageV2\x18p \x01(\v2,.WAWebProtobufsE2E.PollResultSnapshotMessageR\x1bpollResultSnapshotMessageV2\x12\x80\x01\n" + - "!newsletterFollowerInviteMessageV2\x18q \x01(\v22.WAWebProtobufsE2E.NewsletterFollowerInviteMessageR!newsletterFollowerInviteMessageV2\x12j\n" + - "\x19requestContactInfoMessage\x18r \x01(\v2,.WAWebProtobufsE2E.RequestContactInfoMessageR\x19requestContactInfoMessage\"\xb0\x01\n" + + "\x15pollCreationMessageV5\x18o \x01(\v2&.WAWebProtobufsE2E.PollCreationMessageR\x15pollCreationMessageV5\x12\x80\x01\n" + + "!newsletterFollowerInviteMessageV2\x18q \x01(\v22.WAWebProtobufsE2E.NewsletterFollowerInviteMessageR!newsletterFollowerInviteMessageV2\x12n\n" + + "\x1bpollResultSnapshotMessageV3\x18s \x01(\v2,.WAWebProtobufsE2E.PollResultSnapshotMessageR\x1bpollResultSnapshotMessageV3\"\xb0\x01\n" + "\fAlbumMessage\x12.\n" + "\x12expectedImageCount\x18\x02 \x01(\rR\x12expectedImageCount\x12.\n" + "\x12expectedVideoCount\x18\x03 \x01(\rR\x12expectedVideoCount\x12@\n" + @@ -21830,7 +21905,7 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\n" + "encPayload\x18\x02 \x01(\fR\n" + "encPayload\x12\x14\n" + - "\x05encIV\x18\x03 \x01(\fR\x05encIV\"\x92\x03\n" + + "\x05encIV\x18\x03 \x01(\fR\x05encIV\"\xe2\x03\n" + "\fEventMessage\x12@\n" + "\vcontextInfo\x18\x01 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12\x1e\n" + "\n" + @@ -21844,7 +21919,9 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\aendTime\x18\b \x01(\x03R\aendTime\x12.\n" + "\x12extraGuestsAllowed\x18\t \x01(\bR\x12extraGuestsAllowed\x12&\n" + "\x0eisScheduleCall\x18\n" + - " \x01(\bR\x0eisScheduleCall\"\x88\x01\n" + + " \x01(\bR\x0eisScheduleCall\x12 \n" + + "\vhasReminder\x18\v \x01(\bR\vhasReminder\x12,\n" + + "\x11reminderOffsetSec\x18\f \x01(\x03R\x11reminderOffsetSec\"\x88\x01\n" + "\x0eCommentMessage\x124\n" + "\amessage\x18\x01 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\x12@\n" + "\x10targetMessageKey\x18\x02 \x01(\v2\x14.WACommon.MessageKeyR\x10targetMessageKey\"\x8b\x01\n" + @@ -21923,11 +22000,7 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\x11DeviceSentMessage\x12&\n" + "\x0edestinationJID\x18\x01 \x01(\tR\x0edestinationJID\x124\n" + "\amessage\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\x12\x14\n" + - "\x05phash\x18\x03 \x01(\tR\x05phash\"\x97\x01\n" + - "\x19RequestContactInfoMessage\x12\x12\n" + - "\x04text\x18\x01 \x01(\tR\x04text\x12$\n" + - "\rctaButtonText\x18\x02 \x01(\tR\rctaButtonText\x12@\n" + - "\vcontextInfo\x18\x03 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"]\n" + + "\x05phash\x18\x03 \x01(\tR\x05phash\"]\n" + "\x19RequestPhoneNumberMessage\x12@\n" + "\vcontextInfo\x18\x01 \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\"\xf1\x01\n" + "\x1fNewsletterFollowerInviteMessage\x12$\n" + @@ -22108,7 +22181,7 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\x05keyID\x18\x01 \x01(\fR\x05keyID\"\x8f\x01\n" + "\x0fAppStateSyncKey\x12:\n" + "\x05keyID\x18\x01 \x01(\v2$.WAWebProtobufsE2E.AppStateSyncKeyIdR\x05keyID\x12@\n" + - "\akeyData\x18\x02 \x01(\v2&.WAWebProtobufsE2E.AppStateSyncKeyDataR\akeyData\"\xe5\x05\n" + + "\akeyData\x18\x02 \x01(\v2&.WAWebProtobufsE2E.AppStateSyncKeyDataR\akeyData\"\xca\x06\n" + "\x17HistorySyncNotification\x12\x1e\n" + "\n" + "fileSHA256\x18\x01 \x01(\fR\n" + @@ -22132,10 +22205,13 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "!initialHistBootstrapInlinePayload\x18\v \x01(\fR!initialHistBootstrapInlinePayload\x12:\n" + "\x18peerDataRequestSessionID\x18\f \x01(\tR\x18peerDataRequestSessionID\x12\x91\x01\n" + "&fullHistorySyncOnDemandRequestMetadata\x18\r \x01(\v29.WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadataR&fullHistorySyncOnDemandRequestMetadata\x12\x1c\n" + - "\tencHandle\x18\x0e \x01(\tR\tencHandle\"8\n" + + "\tencHandle\x18\x0e \x01(\tR\tencHandle\x12c\n" + + "\x13messageAccessStatus\x18\x0f \x01(\v21.WAWebProtobufsE2E.HistorySyncMessageAccessStatusR\x13messageAccessStatus\"V\n" + + "\x1eHistorySyncMessageAccessStatus\x124\n" + + "\x15completeAccessGranted\x18\x01 \x01(\bR\x15completeAccessGranted\"8\n" + "\x04Chat\x12 \n" + "\vdisplayName\x18\x01 \x01(\tR\vdisplayName\x12\x0e\n" + - "\x02ID\x18\x02 \x01(\tR\x02ID\"\x9e\x03\n" + + "\x02ID\x18\x02 \x01(\tR\x02ID\"\xf5\x03\n" + "\x04Call\x12\x18\n" + "\acallKey\x18\x01 \x01(\fR\acallKey\x12*\n" + "\x10conversionSource\x18\x02 \x01(\tR\x10conversionSource\x12&\n" + @@ -22145,7 +22221,9 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\vctwaPayload\x18\x06 \x01(\fR\vctwaPayload\x12@\n" + "\vcontextInfo\x18\a \x01(\v2\x1e.WAWebProtobufsE2E.ContextInfoR\vcontextInfo\x12@\n" + "\x1bnativeFlowCallButtonPayload\x18\b \x01(\tR\x1bnativeFlowCallButtonPayload\x12(\n" + - "\x0fdeeplinkPayload\x18\t \x01(\tR\x0fdeeplinkPayload\"\x81\x05\n" + + "\x0fdeeplinkPayload\x18\t \x01(\tR\x0fdeeplinkPayload\x12U\n" + + "\x12messageContextInfo\x18\n" + + " \x01(\v2%.WAWebProtobufsE2E.MessageContextInfoR\x12messageContextInfo\"\x81\x05\n" + "\fAudioMessage\x12\x10\n" + "\x03URL\x18\x01 \x01(\tR\x03URL\x12\x1a\n" + "\bmimetype\x18\x02 \x01(\tR\bmimetype\x12\x1e\n" + @@ -22374,7 +22452,7 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "$COMPANION_CANONICAL_USER_NONCE_FETCH\x10\t\x12\x1c\n" + "\x18HISTORY_SYNC_CHUNK_RETRY\x10\n" + "\x12\x16\n" + - "\x12GALAXY_FLOW_ACTION\x10\v*\x9a\x01\n" + + "\x12GALAXY_FLOW_ACTION\x10\v*\xb5\x01\n" + "\x0fHistorySyncType\x12\x15\n" + "\x11INITIAL_BOOTSTRAP\x10\x00\x12\x15\n" + "\x11INITIAL_STATUS_V3\x10\x01\x12\b\n" + @@ -22385,14 +22463,19 @@ const file_waE2E_WAWebProtobufsE2E_proto_rawDesc = "" + "\x11NON_BLOCKING_DATA\x10\x05\x12\r\n" + "\tON_DEMAND\x10\x06\x12\x0e\n" + "\n" + - "NO_HISTORY\x10\a*I\n" + + "NO_HISTORY\x10\a\x12\x19\n" + + "\x15MESSAGE_ACCESS_STATUS\x10\b*I\n" + "\x0eMediaKeyDomain\x12\t\n" + "\x05UNSET\x10\x00\x12\r\n" + "\tE2EE_CHAT\x10\x01\x12\n" + "\n" + "\x06STATUS\x10\x02\x12\b\n" + "\x04CAPI\x10\x03\x12\a\n" + - "\x03BOT\x10\x04*J\n" + + "\x03BOT\x10\x04*.\n" + + "\x13WebLinkRenderConfig\x12\v\n" + + "\aWEBVIEW\x10\x00\x12\n" + + "\n" + + "\x06SYSTEM\x10\x01*J\n" + "\bKeepType\x12\x15\n" + "\x11UNKNOWN_KEEP_TYPE\x10\x00\x12\x10\n" + "\fKEEP_FOR_ALL\x10\x01\x12\x15\n" + @@ -22410,7 +22493,7 @@ func file_waE2E_WAWebProtobufsE2E_proto_rawDescGZIP() []byte { return file_waE2E_WAWebProtobufsE2E_proto_rawDescData } -var file_waE2E_WAWebProtobufsE2E_proto_enumTypes = make([]protoimpl.EnumInfo, 68) +var file_waE2E_WAWebProtobufsE2E_proto_enumTypes = make([]protoimpl.EnumInfo, 69) var file_waE2E_WAWebProtobufsE2E_proto_msgTypes = make([]protoimpl.MessageInfo, 192) var file_waE2E_WAWebProtobufsE2E_proto_goTypes = []any{ (PollType)(0), // 0: WAWebProtobufsE2E.PollType @@ -22418,135 +22501,135 @@ var file_waE2E_WAWebProtobufsE2E_proto_goTypes = []any{ (PeerDataOperationRequestType)(0), // 2: WAWebProtobufsE2E.PeerDataOperationRequestType (HistorySyncType)(0), // 3: WAWebProtobufsE2E.HistorySyncType (MediaKeyDomain)(0), // 4: WAWebProtobufsE2E.MediaKeyDomain - (KeepType)(0), // 5: WAWebProtobufsE2E.KeepType - (StickerPackMessage_StickerPackOrigin)(0), // 6: WAWebProtobufsE2E.StickerPackMessage.StickerPackOrigin - (PlaceholderMessage_PlaceholderType)(0), // 7: WAWebProtobufsE2E.PlaceholderMessage.PlaceholderType - (BCallMessage_MediaType)(0), // 8: WAWebProtobufsE2E.BCallMessage.MediaType - (CallLogMessage_CallOutcome)(0), // 9: WAWebProtobufsE2E.CallLogMessage.CallOutcome - (CallLogMessage_CallType)(0), // 10: WAWebProtobufsE2E.CallLogMessage.CallType - (ScheduledCallEditMessage_EditType)(0), // 11: WAWebProtobufsE2E.ScheduledCallEditMessage.EditType - (ScheduledCallCreationMessage_CallType)(0), // 12: WAWebProtobufsE2E.ScheduledCallCreationMessage.CallType - (EventResponseMessage_EventResponseType)(0), // 13: WAWebProtobufsE2E.EventResponseMessage.EventResponseType - (PinInChatMessage_Type)(0), // 14: WAWebProtobufsE2E.PinInChatMessage.Type - (StatusStickerInteractionMessage_StatusStickerType)(0), // 15: WAWebProtobufsE2E.StatusStickerInteractionMessage.StatusStickerType - (ButtonsResponseMessage_Type)(0), // 16: WAWebProtobufsE2E.ButtonsResponseMessage.Type - (ButtonsMessage_HeaderType)(0), // 17: WAWebProtobufsE2E.ButtonsMessage.HeaderType - (ButtonsMessage_Button_Type)(0), // 18: WAWebProtobufsE2E.ButtonsMessage.Button.Type - (SecretEncryptedMessage_SecretEncType)(0), // 19: WAWebProtobufsE2E.SecretEncryptedMessage.SecretEncType - (GroupInviteMessage_GroupType)(0), // 20: WAWebProtobufsE2E.GroupInviteMessage.GroupType - (InteractiveResponseMessage_Body_Format)(0), // 21: WAWebProtobufsE2E.InteractiveResponseMessage.Body.Format - (InteractiveMessage_CarouselMessage_CarouselCardType)(0), // 22: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.CarouselCardType - (InteractiveMessage_ShopMessage_Surface)(0), // 23: WAWebProtobufsE2E.InteractiveMessage.ShopMessage.Surface - (ListResponseMessage_ListType)(0), // 24: WAWebProtobufsE2E.ListResponseMessage.ListType - (ListMessage_ListType)(0), // 25: WAWebProtobufsE2E.ListMessage.ListType - (OrderMessage_OrderSurface)(0), // 26: WAWebProtobufsE2E.OrderMessage.OrderSurface - (OrderMessage_OrderStatus)(0), // 27: WAWebProtobufsE2E.OrderMessage.OrderStatus - (StatusQuotedMessage_StatusQuotedMessageType)(0), // 28: WAWebProtobufsE2E.StatusQuotedMessage.StatusQuotedMessageType - (PaymentInviteMessage_ServiceType)(0), // 29: WAWebProtobufsE2E.PaymentInviteMessage.ServiceType - (HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_CalendarType)(0), // 30: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType - (HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_DayOfWeekType)(0), // 31: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType - (PeerDataOperationRequestResponseMessage_PeerDataOperationResult_HistorySyncChunkRetryResponseCode)(0), // 32: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode - (PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandResponseCode)(0), // 33: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode - (PeerDataOperationRequestMessage_GalaxyFlowAction_GalaxyFlowActionType)(0), // 34: WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType - (RequestWelcomeMessageMetadata_LocalChatState)(0), // 35: WAWebProtobufsE2E.RequestWelcomeMessageMetadata.LocalChatState - (ProtocolMessage_Type)(0), // 36: WAWebProtobufsE2E.ProtocolMessage.Type - (CloudAPIThreadControlNotification_CloudAPIThreadControl)(0), // 37: WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControl - (VideoMessage_VideoSourceType)(0), // 38: WAWebProtobufsE2E.VideoMessage.VideoSourceType - (VideoMessage_Attribution)(0), // 39: WAWebProtobufsE2E.VideoMessage.Attribution - (ExtendedTextMessage_InviteLinkGroupType)(0), // 40: WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType - (ExtendedTextMessage_PreviewType)(0), // 41: WAWebProtobufsE2E.ExtendedTextMessage.PreviewType - (ExtendedTextMessage_FontType)(0), // 42: WAWebProtobufsE2E.ExtendedTextMessage.FontType - (LinkPreviewMetadata_SocialMediaPostType)(0), // 43: WAWebProtobufsE2E.LinkPreviewMetadata.SocialMediaPostType - (PaymentLinkMetadata_PaymentLinkHeader_PaymentLinkHeaderType)(0), // 44: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType - (StatusNotificationMessage_StatusNotificationType)(0), // 45: WAWebProtobufsE2E.StatusNotificationMessage.StatusNotificationType - (InvoiceMessage_AttachmentType)(0), // 46: WAWebProtobufsE2E.InvoiceMessage.AttachmentType - (ImageMessage_ImageSourceType)(0), // 47: WAWebProtobufsE2E.ImageMessage.ImageSourceType - (ContextInfo_QuotedType)(0), // 48: WAWebProtobufsE2E.ContextInfo.QuotedType - (ContextInfo_ForwardOrigin)(0), // 49: WAWebProtobufsE2E.ContextInfo.ForwardOrigin - (ContextInfo_StatusSourceType)(0), // 50: WAWebProtobufsE2E.ContextInfo.StatusSourceType - (ContextInfo_PairedMediaType)(0), // 51: WAWebProtobufsE2E.ContextInfo.PairedMediaType - (ContextInfo_StatusAttributionType)(0), // 52: WAWebProtobufsE2E.ContextInfo.StatusAttributionType - (ContextInfo_StatusAudienceMetadata_AudienceType)(0), // 53: WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata.AudienceType - (ContextInfo_DataSharingContext_DataSharingFlags)(0), // 54: WAWebProtobufsE2E.ContextInfo.DataSharingContext.DataSharingFlags - (ContextInfo_ForwardedNewsletterMessageInfo_ContentType)(0), // 55: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentType - (ContextInfo_ExternalAdReplyInfo_AdType)(0), // 56: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.AdType - (ContextInfo_ExternalAdReplyInfo_MediaType)(0), // 57: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaType - (ContextInfo_AdReplyInfo_MediaType)(0), // 58: WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaType - (MessageAssociation_AssociationType)(0), // 59: WAWebProtobufsE2E.MessageAssociation.AssociationType - (ThreadID_ThreadType)(0), // 60: WAWebProtobufsE2E.ThreadID.ThreadType - (MessageContextInfo_MessageAddonExpiryType)(0), // 61: WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryType - (InteractiveAnnotation_StatusLinkType)(0), // 62: WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkType - (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType)(0), // 63: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType - (PaymentBackground_Type)(0), // 64: WAWebProtobufsE2E.PaymentBackground.Type - (DisappearingMode_Trigger)(0), // 65: WAWebProtobufsE2E.DisappearingMode.Trigger - (DisappearingMode_Initiator)(0), // 66: WAWebProtobufsE2E.DisappearingMode.Initiator - (ProcessedVideo_VideoQuality)(0), // 67: WAWebProtobufsE2E.ProcessedVideo.VideoQuality - (*StickerPackMessage)(nil), // 68: WAWebProtobufsE2E.StickerPackMessage - (*PlaceholderMessage)(nil), // 69: WAWebProtobufsE2E.PlaceholderMessage - (*BCallMessage)(nil), // 70: WAWebProtobufsE2E.BCallMessage - (*CallLogMessage)(nil), // 71: WAWebProtobufsE2E.CallLogMessage - (*ScheduledCallEditMessage)(nil), // 72: WAWebProtobufsE2E.ScheduledCallEditMessage - (*ScheduledCallCreationMessage)(nil), // 73: WAWebProtobufsE2E.ScheduledCallCreationMessage - (*EventResponseMessage)(nil), // 74: WAWebProtobufsE2E.EventResponseMessage - (*PinInChatMessage)(nil), // 75: WAWebProtobufsE2E.PinInChatMessage - (*StatusStickerInteractionMessage)(nil), // 76: WAWebProtobufsE2E.StatusStickerInteractionMessage - (*ButtonsResponseMessage)(nil), // 77: WAWebProtobufsE2E.ButtonsResponseMessage - (*ButtonsMessage)(nil), // 78: WAWebProtobufsE2E.ButtonsMessage - (*SecretEncryptedMessage)(nil), // 79: WAWebProtobufsE2E.SecretEncryptedMessage - (*GroupInviteMessage)(nil), // 80: WAWebProtobufsE2E.GroupInviteMessage - (*InteractiveResponseMessage)(nil), // 81: WAWebProtobufsE2E.InteractiveResponseMessage - (*InteractiveMessage)(nil), // 82: WAWebProtobufsE2E.InteractiveMessage - (*ListResponseMessage)(nil), // 83: WAWebProtobufsE2E.ListResponseMessage - (*ListMessage)(nil), // 84: WAWebProtobufsE2E.ListMessage - (*OrderMessage)(nil), // 85: WAWebProtobufsE2E.OrderMessage - (*StatusQuotedMessage)(nil), // 86: WAWebProtobufsE2E.StatusQuotedMessage - (*PaymentInviteMessage)(nil), // 87: WAWebProtobufsE2E.PaymentInviteMessage - (*HighlyStructuredMessage)(nil), // 88: WAWebProtobufsE2E.HighlyStructuredMessage - (*PeerDataOperationRequestResponseMessage)(nil), // 89: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage - (*PeerDataOperationRequestMessage)(nil), // 90: WAWebProtobufsE2E.PeerDataOperationRequestMessage - (*RequestWelcomeMessageMetadata)(nil), // 91: WAWebProtobufsE2E.RequestWelcomeMessageMetadata - (*ProtocolMessage)(nil), // 92: WAWebProtobufsE2E.ProtocolMessage - (*CloudAPIThreadControlNotification)(nil), // 93: WAWebProtobufsE2E.CloudAPIThreadControlNotification - (*VideoMessage)(nil), // 94: WAWebProtobufsE2E.VideoMessage - (*ExtendedTextMessage)(nil), // 95: WAWebProtobufsE2E.ExtendedTextMessage - (*LinkPreviewMetadata)(nil), // 96: WAWebProtobufsE2E.LinkPreviewMetadata - (*PaymentLinkMetadata)(nil), // 97: WAWebProtobufsE2E.PaymentLinkMetadata - (*StatusNotificationMessage)(nil), // 98: WAWebProtobufsE2E.StatusNotificationMessage - (*InvoiceMessage)(nil), // 99: WAWebProtobufsE2E.InvoiceMessage - (*ImageMessage)(nil), // 100: WAWebProtobufsE2E.ImageMessage - (*ContextInfo)(nil), // 101: WAWebProtobufsE2E.ContextInfo - (*MessageAssociation)(nil), // 102: WAWebProtobufsE2E.MessageAssociation - (*ThreadID)(nil), // 103: WAWebProtobufsE2E.ThreadID - (*MessageContextInfo)(nil), // 104: WAWebProtobufsE2E.MessageContextInfo - (*InteractiveAnnotation)(nil), // 105: WAWebProtobufsE2E.InteractiveAnnotation - (*HydratedTemplateButton)(nil), // 106: WAWebProtobufsE2E.HydratedTemplateButton - (*PaymentBackground)(nil), // 107: WAWebProtobufsE2E.PaymentBackground - (*DisappearingMode)(nil), // 108: WAWebProtobufsE2E.DisappearingMode - (*ProcessedVideo)(nil), // 109: WAWebProtobufsE2E.ProcessedVideo - (*Message)(nil), // 110: WAWebProtobufsE2E.Message - (*AlbumMessage)(nil), // 111: WAWebProtobufsE2E.AlbumMessage - (*MessageHistoryMetadata)(nil), // 112: WAWebProtobufsE2E.MessageHistoryMetadata - (*MessageHistoryNotice)(nil), // 113: WAWebProtobufsE2E.MessageHistoryNotice - (*MessageHistoryBundle)(nil), // 114: WAWebProtobufsE2E.MessageHistoryBundle - (*EncEventResponseMessage)(nil), // 115: WAWebProtobufsE2E.EncEventResponseMessage - (*EventMessage)(nil), // 116: WAWebProtobufsE2E.EventMessage - (*CommentMessage)(nil), // 117: WAWebProtobufsE2E.CommentMessage - (*EncCommentMessage)(nil), // 118: WAWebProtobufsE2E.EncCommentMessage - (*EncReactionMessage)(nil), // 119: WAWebProtobufsE2E.EncReactionMessage - (*KeepInChatMessage)(nil), // 120: WAWebProtobufsE2E.KeepInChatMessage - (*QuestionResponseMessage)(nil), // 121: WAWebProtobufsE2E.QuestionResponseMessage - (*StatusQuestionAnswerMessage)(nil), // 122: WAWebProtobufsE2E.StatusQuestionAnswerMessage - (*PollResultSnapshotMessage)(nil), // 123: WAWebProtobufsE2E.PollResultSnapshotMessage - (*PollVoteMessage)(nil), // 124: WAWebProtobufsE2E.PollVoteMessage - (*PollEncValue)(nil), // 125: WAWebProtobufsE2E.PollEncValue - (*PollUpdateMessageMetadata)(nil), // 126: WAWebProtobufsE2E.PollUpdateMessageMetadata - (*PollUpdateMessage)(nil), // 127: WAWebProtobufsE2E.PollUpdateMessage - (*PollCreationMessage)(nil), // 128: WAWebProtobufsE2E.PollCreationMessage - (*StickerSyncRMRMessage)(nil), // 129: WAWebProtobufsE2E.StickerSyncRMRMessage - (*ReactionMessage)(nil), // 130: WAWebProtobufsE2E.ReactionMessage - (*FutureProofMessage)(nil), // 131: WAWebProtobufsE2E.FutureProofMessage - (*DeviceSentMessage)(nil), // 132: WAWebProtobufsE2E.DeviceSentMessage - (*RequestContactInfoMessage)(nil), // 133: WAWebProtobufsE2E.RequestContactInfoMessage + (WebLinkRenderConfig)(0), // 5: WAWebProtobufsE2E.WebLinkRenderConfig + (KeepType)(0), // 6: WAWebProtobufsE2E.KeepType + (StickerPackMessage_StickerPackOrigin)(0), // 7: WAWebProtobufsE2E.StickerPackMessage.StickerPackOrigin + (PlaceholderMessage_PlaceholderType)(0), // 8: WAWebProtobufsE2E.PlaceholderMessage.PlaceholderType + (BCallMessage_MediaType)(0), // 9: WAWebProtobufsE2E.BCallMessage.MediaType + (CallLogMessage_CallOutcome)(0), // 10: WAWebProtobufsE2E.CallLogMessage.CallOutcome + (CallLogMessage_CallType)(0), // 11: WAWebProtobufsE2E.CallLogMessage.CallType + (ScheduledCallEditMessage_EditType)(0), // 12: WAWebProtobufsE2E.ScheduledCallEditMessage.EditType + (ScheduledCallCreationMessage_CallType)(0), // 13: WAWebProtobufsE2E.ScheduledCallCreationMessage.CallType + (EventResponseMessage_EventResponseType)(0), // 14: WAWebProtobufsE2E.EventResponseMessage.EventResponseType + (PinInChatMessage_Type)(0), // 15: WAWebProtobufsE2E.PinInChatMessage.Type + (StatusStickerInteractionMessage_StatusStickerType)(0), // 16: WAWebProtobufsE2E.StatusStickerInteractionMessage.StatusStickerType + (ButtonsResponseMessage_Type)(0), // 17: WAWebProtobufsE2E.ButtonsResponseMessage.Type + (ButtonsMessage_HeaderType)(0), // 18: WAWebProtobufsE2E.ButtonsMessage.HeaderType + (ButtonsMessage_Button_Type)(0), // 19: WAWebProtobufsE2E.ButtonsMessage.Button.Type + (SecretEncryptedMessage_SecretEncType)(0), // 20: WAWebProtobufsE2E.SecretEncryptedMessage.SecretEncType + (GroupInviteMessage_GroupType)(0), // 21: WAWebProtobufsE2E.GroupInviteMessage.GroupType + (InteractiveResponseMessage_Body_Format)(0), // 22: WAWebProtobufsE2E.InteractiveResponseMessage.Body.Format + (InteractiveMessage_CarouselMessage_CarouselCardType)(0), // 23: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.CarouselCardType + (InteractiveMessage_ShopMessage_Surface)(0), // 24: WAWebProtobufsE2E.InteractiveMessage.ShopMessage.Surface + (ListResponseMessage_ListType)(0), // 25: WAWebProtobufsE2E.ListResponseMessage.ListType + (ListMessage_ListType)(0), // 26: WAWebProtobufsE2E.ListMessage.ListType + (OrderMessage_OrderSurface)(0), // 27: WAWebProtobufsE2E.OrderMessage.OrderSurface + (OrderMessage_OrderStatus)(0), // 28: WAWebProtobufsE2E.OrderMessage.OrderStatus + (StatusQuotedMessage_StatusQuotedMessageType)(0), // 29: WAWebProtobufsE2E.StatusQuotedMessage.StatusQuotedMessageType + (PaymentInviteMessage_ServiceType)(0), // 30: WAWebProtobufsE2E.PaymentInviteMessage.ServiceType + (HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_CalendarType)(0), // 31: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType + (HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent_DayOfWeekType)(0), // 32: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType + (PeerDataOperationRequestResponseMessage_PeerDataOperationResult_HistorySyncChunkRetryResponseCode)(0), // 33: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode + (PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandResponseCode)(0), // 34: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode + (PeerDataOperationRequestMessage_GalaxyFlowAction_GalaxyFlowActionType)(0), // 35: WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType + (RequestWelcomeMessageMetadata_LocalChatState)(0), // 36: WAWebProtobufsE2E.RequestWelcomeMessageMetadata.LocalChatState + (ProtocolMessage_Type)(0), // 37: WAWebProtobufsE2E.ProtocolMessage.Type + (CloudAPIThreadControlNotification_CloudAPIThreadControl)(0), // 38: WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControl + (VideoMessage_VideoSourceType)(0), // 39: WAWebProtobufsE2E.VideoMessage.VideoSourceType + (VideoMessage_Attribution)(0), // 40: WAWebProtobufsE2E.VideoMessage.Attribution + (ExtendedTextMessage_InviteLinkGroupType)(0), // 41: WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType + (ExtendedTextMessage_PreviewType)(0), // 42: WAWebProtobufsE2E.ExtendedTextMessage.PreviewType + (ExtendedTextMessage_FontType)(0), // 43: WAWebProtobufsE2E.ExtendedTextMessage.FontType + (LinkPreviewMetadata_SocialMediaPostType)(0), // 44: WAWebProtobufsE2E.LinkPreviewMetadata.SocialMediaPostType + (PaymentLinkMetadata_PaymentLinkHeader_PaymentLinkHeaderType)(0), // 45: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType + (StatusNotificationMessage_StatusNotificationType)(0), // 46: WAWebProtobufsE2E.StatusNotificationMessage.StatusNotificationType + (InvoiceMessage_AttachmentType)(0), // 47: WAWebProtobufsE2E.InvoiceMessage.AttachmentType + (ImageMessage_ImageSourceType)(0), // 48: WAWebProtobufsE2E.ImageMessage.ImageSourceType + (ContextInfo_QuotedType)(0), // 49: WAWebProtobufsE2E.ContextInfo.QuotedType + (ContextInfo_ForwardOrigin)(0), // 50: WAWebProtobufsE2E.ContextInfo.ForwardOrigin + (ContextInfo_StatusSourceType)(0), // 51: WAWebProtobufsE2E.ContextInfo.StatusSourceType + (ContextInfo_PairedMediaType)(0), // 52: WAWebProtobufsE2E.ContextInfo.PairedMediaType + (ContextInfo_StatusAttributionType)(0), // 53: WAWebProtobufsE2E.ContextInfo.StatusAttributionType + (ContextInfo_StatusAudienceMetadata_AudienceType)(0), // 54: WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata.AudienceType + (ContextInfo_DataSharingContext_DataSharingFlags)(0), // 55: WAWebProtobufsE2E.ContextInfo.DataSharingContext.DataSharingFlags + (ContextInfo_ForwardedNewsletterMessageInfo_ContentType)(0), // 56: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentType + (ContextInfo_ExternalAdReplyInfo_AdType)(0), // 57: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.AdType + (ContextInfo_ExternalAdReplyInfo_MediaType)(0), // 58: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaType + (ContextInfo_AdReplyInfo_MediaType)(0), // 59: WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaType + (MessageAssociation_AssociationType)(0), // 60: WAWebProtobufsE2E.MessageAssociation.AssociationType + (ThreadID_ThreadType)(0), // 61: WAWebProtobufsE2E.ThreadID.ThreadType + (MessageContextInfo_MessageAddonExpiryType)(0), // 62: WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryType + (InteractiveAnnotation_StatusLinkType)(0), // 63: WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkType + (HydratedTemplateButton_HydratedURLButton_WebviewPresentationType)(0), // 64: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType + (PaymentBackground_Type)(0), // 65: WAWebProtobufsE2E.PaymentBackground.Type + (DisappearingMode_Trigger)(0), // 66: WAWebProtobufsE2E.DisappearingMode.Trigger + (DisappearingMode_Initiator)(0), // 67: WAWebProtobufsE2E.DisappearingMode.Initiator + (ProcessedVideo_VideoQuality)(0), // 68: WAWebProtobufsE2E.ProcessedVideo.VideoQuality + (*StickerPackMessage)(nil), // 69: WAWebProtobufsE2E.StickerPackMessage + (*PlaceholderMessage)(nil), // 70: WAWebProtobufsE2E.PlaceholderMessage + (*BCallMessage)(nil), // 71: WAWebProtobufsE2E.BCallMessage + (*CallLogMessage)(nil), // 72: WAWebProtobufsE2E.CallLogMessage + (*ScheduledCallEditMessage)(nil), // 73: WAWebProtobufsE2E.ScheduledCallEditMessage + (*ScheduledCallCreationMessage)(nil), // 74: WAWebProtobufsE2E.ScheduledCallCreationMessage + (*EventResponseMessage)(nil), // 75: WAWebProtobufsE2E.EventResponseMessage + (*PinInChatMessage)(nil), // 76: WAWebProtobufsE2E.PinInChatMessage + (*StatusStickerInteractionMessage)(nil), // 77: WAWebProtobufsE2E.StatusStickerInteractionMessage + (*ButtonsResponseMessage)(nil), // 78: WAWebProtobufsE2E.ButtonsResponseMessage + (*ButtonsMessage)(nil), // 79: WAWebProtobufsE2E.ButtonsMessage + (*SecretEncryptedMessage)(nil), // 80: WAWebProtobufsE2E.SecretEncryptedMessage + (*GroupInviteMessage)(nil), // 81: WAWebProtobufsE2E.GroupInviteMessage + (*InteractiveResponseMessage)(nil), // 82: WAWebProtobufsE2E.InteractiveResponseMessage + (*InteractiveMessage)(nil), // 83: WAWebProtobufsE2E.InteractiveMessage + (*ListResponseMessage)(nil), // 84: WAWebProtobufsE2E.ListResponseMessage + (*ListMessage)(nil), // 85: WAWebProtobufsE2E.ListMessage + (*OrderMessage)(nil), // 86: WAWebProtobufsE2E.OrderMessage + (*StatusQuotedMessage)(nil), // 87: WAWebProtobufsE2E.StatusQuotedMessage + (*PaymentInviteMessage)(nil), // 88: WAWebProtobufsE2E.PaymentInviteMessage + (*HighlyStructuredMessage)(nil), // 89: WAWebProtobufsE2E.HighlyStructuredMessage + (*PeerDataOperationRequestResponseMessage)(nil), // 90: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage + (*PeerDataOperationRequestMessage)(nil), // 91: WAWebProtobufsE2E.PeerDataOperationRequestMessage + (*RequestWelcomeMessageMetadata)(nil), // 92: WAWebProtobufsE2E.RequestWelcomeMessageMetadata + (*ProtocolMessage)(nil), // 93: WAWebProtobufsE2E.ProtocolMessage + (*CloudAPIThreadControlNotification)(nil), // 94: WAWebProtobufsE2E.CloudAPIThreadControlNotification + (*VideoMessage)(nil), // 95: WAWebProtobufsE2E.VideoMessage + (*ExtendedTextMessage)(nil), // 96: WAWebProtobufsE2E.ExtendedTextMessage + (*LinkPreviewMetadata)(nil), // 97: WAWebProtobufsE2E.LinkPreviewMetadata + (*PaymentLinkMetadata)(nil), // 98: WAWebProtobufsE2E.PaymentLinkMetadata + (*StatusNotificationMessage)(nil), // 99: WAWebProtobufsE2E.StatusNotificationMessage + (*InvoiceMessage)(nil), // 100: WAWebProtobufsE2E.InvoiceMessage + (*ImageMessage)(nil), // 101: WAWebProtobufsE2E.ImageMessage + (*ContextInfo)(nil), // 102: WAWebProtobufsE2E.ContextInfo + (*MessageAssociation)(nil), // 103: WAWebProtobufsE2E.MessageAssociation + (*ThreadID)(nil), // 104: WAWebProtobufsE2E.ThreadID + (*MessageContextInfo)(nil), // 105: WAWebProtobufsE2E.MessageContextInfo + (*InteractiveAnnotation)(nil), // 106: WAWebProtobufsE2E.InteractiveAnnotation + (*HydratedTemplateButton)(nil), // 107: WAWebProtobufsE2E.HydratedTemplateButton + (*PaymentBackground)(nil), // 108: WAWebProtobufsE2E.PaymentBackground + (*DisappearingMode)(nil), // 109: WAWebProtobufsE2E.DisappearingMode + (*ProcessedVideo)(nil), // 110: WAWebProtobufsE2E.ProcessedVideo + (*Message)(nil), // 111: WAWebProtobufsE2E.Message + (*AlbumMessage)(nil), // 112: WAWebProtobufsE2E.AlbumMessage + (*MessageHistoryMetadata)(nil), // 113: WAWebProtobufsE2E.MessageHistoryMetadata + (*MessageHistoryNotice)(nil), // 114: WAWebProtobufsE2E.MessageHistoryNotice + (*MessageHistoryBundle)(nil), // 115: WAWebProtobufsE2E.MessageHistoryBundle + (*EncEventResponseMessage)(nil), // 116: WAWebProtobufsE2E.EncEventResponseMessage + (*EventMessage)(nil), // 117: WAWebProtobufsE2E.EventMessage + (*CommentMessage)(nil), // 118: WAWebProtobufsE2E.CommentMessage + (*EncCommentMessage)(nil), // 119: WAWebProtobufsE2E.EncCommentMessage + (*EncReactionMessage)(nil), // 120: WAWebProtobufsE2E.EncReactionMessage + (*KeepInChatMessage)(nil), // 121: WAWebProtobufsE2E.KeepInChatMessage + (*QuestionResponseMessage)(nil), // 122: WAWebProtobufsE2E.QuestionResponseMessage + (*StatusQuestionAnswerMessage)(nil), // 123: WAWebProtobufsE2E.StatusQuestionAnswerMessage + (*PollResultSnapshotMessage)(nil), // 124: WAWebProtobufsE2E.PollResultSnapshotMessage + (*PollVoteMessage)(nil), // 125: WAWebProtobufsE2E.PollVoteMessage + (*PollEncValue)(nil), // 126: WAWebProtobufsE2E.PollEncValue + (*PollUpdateMessageMetadata)(nil), // 127: WAWebProtobufsE2E.PollUpdateMessageMetadata + (*PollUpdateMessage)(nil), // 128: WAWebProtobufsE2E.PollUpdateMessage + (*PollCreationMessage)(nil), // 129: WAWebProtobufsE2E.PollCreationMessage + (*StickerSyncRMRMessage)(nil), // 130: WAWebProtobufsE2E.StickerSyncRMRMessage + (*ReactionMessage)(nil), // 131: WAWebProtobufsE2E.ReactionMessage + (*FutureProofMessage)(nil), // 132: WAWebProtobufsE2E.FutureProofMessage + (*DeviceSentMessage)(nil), // 133: WAWebProtobufsE2E.DeviceSentMessage (*RequestPhoneNumberMessage)(nil), // 134: WAWebProtobufsE2E.RequestPhoneNumberMessage (*NewsletterFollowerInviteMessage)(nil), // 135: WAWebProtobufsE2E.NewsletterFollowerInviteMessage (*NewsletterAdminInviteMessage)(nil), // 136: WAWebProtobufsE2E.NewsletterAdminInviteMessage @@ -22570,560 +22653,562 @@ var file_waE2E_WAWebProtobufsE2E_proto_goTypes = []any{ (*AppStateSyncKeyId)(nil), // 154: WAWebProtobufsE2E.AppStateSyncKeyId (*AppStateSyncKey)(nil), // 155: WAWebProtobufsE2E.AppStateSyncKey (*HistorySyncNotification)(nil), // 156: WAWebProtobufsE2E.HistorySyncNotification - (*Chat)(nil), // 157: WAWebProtobufsE2E.Chat - (*Call)(nil), // 158: WAWebProtobufsE2E.Call - (*AudioMessage)(nil), // 159: WAWebProtobufsE2E.AudioMessage - (*DocumentMessage)(nil), // 160: WAWebProtobufsE2E.DocumentMessage - (*URLMetadata)(nil), // 161: WAWebProtobufsE2E.URLMetadata - (*PaymentExtendedMetadata)(nil), // 162: WAWebProtobufsE2E.PaymentExtendedMetadata - (*MMSThumbnailMetadata)(nil), // 163: WAWebProtobufsE2E.MMSThumbnailMetadata - (*LocationMessage)(nil), // 164: WAWebProtobufsE2E.LocationMessage - (*ContactMessage)(nil), // 165: WAWebProtobufsE2E.ContactMessage - (*SenderKeyDistributionMessage)(nil), // 166: WAWebProtobufsE2E.SenderKeyDistributionMessage - (*VideoEndCard)(nil), // 167: WAWebProtobufsE2E.VideoEndCard - (*DeviceListMetadata)(nil), // 168: WAWebProtobufsE2E.DeviceListMetadata - (*EmbeddedMessage)(nil), // 169: WAWebProtobufsE2E.EmbeddedMessage - (*EmbeddedMusic)(nil), // 170: WAWebProtobufsE2E.EmbeddedMusic - (*EmbeddedContent)(nil), // 171: WAWebProtobufsE2E.EmbeddedContent - (*TapLinkAction)(nil), // 172: WAWebProtobufsE2E.TapLinkAction - (*Point)(nil), // 173: WAWebProtobufsE2E.Point - (*Location)(nil), // 174: WAWebProtobufsE2E.Location - (*TemplateButton)(nil), // 175: WAWebProtobufsE2E.TemplateButton - (*Money)(nil), // 176: WAWebProtobufsE2E.Money - (*ActionLink)(nil), // 177: WAWebProtobufsE2E.ActionLink - (*GroupMention)(nil), // 178: WAWebProtobufsE2E.GroupMention - (*MessageSecretMessage)(nil), // 179: WAWebProtobufsE2E.MessageSecretMessage - (*MediaNotifyMessage)(nil), // 180: WAWebProtobufsE2E.MediaNotifyMessage - (*LIDMigrationMappingSyncMessage)(nil), // 181: WAWebProtobufsE2E.LIDMigrationMappingSyncMessage - (*UrlTrackingMap)(nil), // 182: WAWebProtobufsE2E.UrlTrackingMap - (*MemberLabel)(nil), // 183: WAWebProtobufsE2E.MemberLabel - (*AIRichResponseMessage)(nil), // 184: WAWebProtobufsE2E.AIRichResponseMessage - (*AIQueryFanout)(nil), // 185: WAWebProtobufsE2E.AIQueryFanout - (*StickerPackMessage_Sticker)(nil), // 186: WAWebProtobufsE2E.StickerPackMessage.Sticker - (*CallLogMessage_CallParticipant)(nil), // 187: WAWebProtobufsE2E.CallLogMessage.CallParticipant - (*ButtonsMessage_Button)(nil), // 188: WAWebProtobufsE2E.ButtonsMessage.Button - (*ButtonsMessage_Button_NativeFlowInfo)(nil), // 189: WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfo - (*ButtonsMessage_Button_ButtonText)(nil), // 190: WAWebProtobufsE2E.ButtonsMessage.Button.ButtonText - (*InteractiveResponseMessage_Body)(nil), // 191: WAWebProtobufsE2E.InteractiveResponseMessage.Body - (*InteractiveResponseMessage_NativeFlowResponseMessage)(nil), // 192: WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessage - (*InteractiveMessage_CarouselMessage)(nil), // 193: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage - (*InteractiveMessage_ShopMessage)(nil), // 194: WAWebProtobufsE2E.InteractiveMessage.ShopMessage - (*InteractiveMessage_NativeFlowMessage)(nil), // 195: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage - (*InteractiveMessage_CollectionMessage)(nil), // 196: WAWebProtobufsE2E.InteractiveMessage.CollectionMessage - (*InteractiveMessage_Footer)(nil), // 197: WAWebProtobufsE2E.InteractiveMessage.Footer - (*InteractiveMessage_Body)(nil), // 198: WAWebProtobufsE2E.InteractiveMessage.Body - (*InteractiveMessage_Header)(nil), // 199: WAWebProtobufsE2E.InteractiveMessage.Header - (*InteractiveMessage_NativeFlowMessage_NativeFlowButton)(nil), // 200: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButton - (*ListResponseMessage_SingleSelectReply)(nil), // 201: WAWebProtobufsE2E.ListResponseMessage.SingleSelectReply - (*ListMessage_ProductListInfo)(nil), // 202: WAWebProtobufsE2E.ListMessage.ProductListInfo - (*ListMessage_ProductListHeaderImage)(nil), // 203: WAWebProtobufsE2E.ListMessage.ProductListHeaderImage - (*ListMessage_ProductSection)(nil), // 204: WAWebProtobufsE2E.ListMessage.ProductSection - (*ListMessage_Product)(nil), // 205: WAWebProtobufsE2E.ListMessage.Product - (*ListMessage_Section)(nil), // 206: WAWebProtobufsE2E.ListMessage.Section - (*ListMessage_Row)(nil), // 207: WAWebProtobufsE2E.ListMessage.Row - (*HighlyStructuredMessage_HSMLocalizableParameter)(nil), // 208: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime)(nil), // 209: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency)(nil), // 210: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent)(nil), // 211: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent - (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch)(nil), // 212: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult)(nil), // 213: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_HistorySyncChunkRetryResponse)(nil), // 214: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse)(nil), // 215: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionCanonicalUserNonceFetchResponse)(nil), // 216: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse)(nil), // 217: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse)(nil), // 218: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse)(nil), // 219: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse)(nil), // 220: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse)(nil), // 221: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_PaymentLinkPreviewMetadata)(nil), // 222: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata - (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail)(nil), // 223: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail - (*PeerDataOperationRequestMessage_GalaxyFlowAction)(nil), // 224: WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction - (*PeerDataOperationRequestMessage_HistorySyncChunkRetryRequest)(nil), // 225: WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest - (*PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest)(nil), // 226: WAWebProtobufsE2E.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest - (*PeerDataOperationRequestMessage_PlaceholderMessageResendRequest)(nil), // 227: WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest - (*PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest)(nil), // 228: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest - (*PeerDataOperationRequestMessage_HistorySyncOnDemandRequest)(nil), // 229: WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest - (*PeerDataOperationRequestMessage_RequestUrlPreview)(nil), // 230: WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreview - (*PeerDataOperationRequestMessage_RequestStickerReupload)(nil), // 231: WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReupload - (*CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent)(nil), // 232: WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent - (*PaymentLinkMetadata_PaymentLinkHeader)(nil), // 233: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader - (*PaymentLinkMetadata_PaymentLinkProvider)(nil), // 234: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkProvider - (*PaymentLinkMetadata_PaymentLinkButton)(nil), // 235: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButton - (*ContextInfo_StatusAudienceMetadata)(nil), // 236: WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata - (*ContextInfo_DataSharingContext)(nil), // 237: WAWebProtobufsE2E.ContextInfo.DataSharingContext - (*ContextInfo_ForwardedNewsletterMessageInfo)(nil), // 238: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo - (*ContextInfo_ExternalAdReplyInfo)(nil), // 239: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo - (*ContextInfo_AdReplyInfo)(nil), // 240: WAWebProtobufsE2E.ContextInfo.AdReplyInfo - (*ContextInfo_FeatureEligibilities)(nil), // 241: WAWebProtobufsE2E.ContextInfo.FeatureEligibilities - (*ContextInfo_QuestionReplyQuotedMessage)(nil), // 242: WAWebProtobufsE2E.ContextInfo.QuestionReplyQuotedMessage - (*ContextInfo_UTMInfo)(nil), // 243: WAWebProtobufsE2E.ContextInfo.UTMInfo - (*ContextInfo_BusinessMessageForwardInfo)(nil), // 244: WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfo - (*ContextInfo_DataSharingContext_Parameters)(nil), // 245: WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters - (*HydratedTemplateButton_HydratedURLButton)(nil), // 246: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton - (*HydratedTemplateButton_HydratedCallButton)(nil), // 247: WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButton - (*HydratedTemplateButton_HydratedQuickReplyButton)(nil), // 248: WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButton - (*PaymentBackground_MediaData)(nil), // 249: WAWebProtobufsE2E.PaymentBackground.MediaData - (*PollResultSnapshotMessage_PollVote)(nil), // 250: WAWebProtobufsE2E.PollResultSnapshotMessage.PollVote - (*PollCreationMessage_Option)(nil), // 251: WAWebProtobufsE2E.PollCreationMessage.Option - (*ProductMessage_ProductSnapshot)(nil), // 252: WAWebProtobufsE2E.ProductMessage.ProductSnapshot - (*ProductMessage_CatalogSnapshot)(nil), // 253: WAWebProtobufsE2E.ProductMessage.CatalogSnapshot - (*TemplateMessage_HydratedFourRowTemplate)(nil), // 254: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate - (*TemplateMessage_FourRowTemplate)(nil), // 255: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate - (*TemplateButton_CallButton)(nil), // 256: WAWebProtobufsE2E.TemplateButton.CallButton - (*TemplateButton_URLButton)(nil), // 257: WAWebProtobufsE2E.TemplateButton.URLButton - (*TemplateButton_QuickReplyButton)(nil), // 258: WAWebProtobufsE2E.TemplateButton.QuickReplyButton - (*UrlTrackingMap_UrlTrackingMapElement)(nil), // 259: WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElement - (*waCommon.MessageKey)(nil), // 260: WACommon.MessageKey - (*waAICommon.BotFeedbackMessage)(nil), // 261: WAAICommon.BotFeedbackMessage - (*waCommon.LimitSharing)(nil), // 262: WACommon.LimitSharing - (*waAICommon.ForwardedAIBotMessageInfo)(nil), // 263: WAAICommon.ForwardedAIBotMessageInfo - (*waStatusAttributions.StatusAttribution)(nil), // 264: WAStatusAttributions.StatusAttribution - (*waAICommon.BotMessageSharingInfo)(nil), // 265: WAAICommon.BotMessageSharingInfo - (*waAICommon.BotMetadata)(nil), // 266: WAAICommon.BotMetadata - (waAdv.ADVEncryptionType)(0), // 267: WAAdv.ADVEncryptionType - (waAICommon.AIRichResponseMessageType)(0), // 268: WAAICommon.AIRichResponseMessageType - (*waAICommon.AIRichResponseSubMessage)(nil), // 269: WAAICommon.AIRichResponseSubMessage - (*waAICommon.AIRichResponseUnifiedResponse)(nil), // 270: WAAICommon.AIRichResponseUnifiedResponse - (waMmsRetry.MediaRetryNotification_ResultType)(0), // 271: WAMmsRetry.MediaRetryNotification.ResultType - (*waCompanionReg.DeviceProps_HistorySyncConfig)(nil), // 272: WACompanionReg.DeviceProps.HistorySyncConfig + (*HistorySyncMessageAccessStatus)(nil), // 157: WAWebProtobufsE2E.HistorySyncMessageAccessStatus + (*Chat)(nil), // 158: WAWebProtobufsE2E.Chat + (*Call)(nil), // 159: WAWebProtobufsE2E.Call + (*AudioMessage)(nil), // 160: WAWebProtobufsE2E.AudioMessage + (*DocumentMessage)(nil), // 161: WAWebProtobufsE2E.DocumentMessage + (*URLMetadata)(nil), // 162: WAWebProtobufsE2E.URLMetadata + (*PaymentExtendedMetadata)(nil), // 163: WAWebProtobufsE2E.PaymentExtendedMetadata + (*MMSThumbnailMetadata)(nil), // 164: WAWebProtobufsE2E.MMSThumbnailMetadata + (*LocationMessage)(nil), // 165: WAWebProtobufsE2E.LocationMessage + (*ContactMessage)(nil), // 166: WAWebProtobufsE2E.ContactMessage + (*SenderKeyDistributionMessage)(nil), // 167: WAWebProtobufsE2E.SenderKeyDistributionMessage + (*VideoEndCard)(nil), // 168: WAWebProtobufsE2E.VideoEndCard + (*DeviceListMetadata)(nil), // 169: WAWebProtobufsE2E.DeviceListMetadata + (*EmbeddedMessage)(nil), // 170: WAWebProtobufsE2E.EmbeddedMessage + (*EmbeddedMusic)(nil), // 171: WAWebProtobufsE2E.EmbeddedMusic + (*EmbeddedContent)(nil), // 172: WAWebProtobufsE2E.EmbeddedContent + (*TapLinkAction)(nil), // 173: WAWebProtobufsE2E.TapLinkAction + (*Point)(nil), // 174: WAWebProtobufsE2E.Point + (*Location)(nil), // 175: WAWebProtobufsE2E.Location + (*TemplateButton)(nil), // 176: WAWebProtobufsE2E.TemplateButton + (*Money)(nil), // 177: WAWebProtobufsE2E.Money + (*ActionLink)(nil), // 178: WAWebProtobufsE2E.ActionLink + (*GroupMention)(nil), // 179: WAWebProtobufsE2E.GroupMention + (*MessageSecretMessage)(nil), // 180: WAWebProtobufsE2E.MessageSecretMessage + (*MediaNotifyMessage)(nil), // 181: WAWebProtobufsE2E.MediaNotifyMessage + (*LIDMigrationMappingSyncMessage)(nil), // 182: WAWebProtobufsE2E.LIDMigrationMappingSyncMessage + (*UrlTrackingMap)(nil), // 183: WAWebProtobufsE2E.UrlTrackingMap + (*MemberLabel)(nil), // 184: WAWebProtobufsE2E.MemberLabel + (*AIRichResponseMessage)(nil), // 185: WAWebProtobufsE2E.AIRichResponseMessage + (*AIQueryFanout)(nil), // 186: WAWebProtobufsE2E.AIQueryFanout + (*StickerPackMessage_Sticker)(nil), // 187: WAWebProtobufsE2E.StickerPackMessage.Sticker + (*CallLogMessage_CallParticipant)(nil), // 188: WAWebProtobufsE2E.CallLogMessage.CallParticipant + (*ButtonsMessage_Button)(nil), // 189: WAWebProtobufsE2E.ButtonsMessage.Button + (*ButtonsMessage_Button_NativeFlowInfo)(nil), // 190: WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfo + (*ButtonsMessage_Button_ButtonText)(nil), // 191: WAWebProtobufsE2E.ButtonsMessage.Button.ButtonText + (*InteractiveResponseMessage_Body)(nil), // 192: WAWebProtobufsE2E.InteractiveResponseMessage.Body + (*InteractiveResponseMessage_NativeFlowResponseMessage)(nil), // 193: WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessage + (*InteractiveMessage_CarouselMessage)(nil), // 194: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage + (*InteractiveMessage_ShopMessage)(nil), // 195: WAWebProtobufsE2E.InteractiveMessage.ShopMessage + (*InteractiveMessage_NativeFlowMessage)(nil), // 196: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage + (*InteractiveMessage_CollectionMessage)(nil), // 197: WAWebProtobufsE2E.InteractiveMessage.CollectionMessage + (*InteractiveMessage_Footer)(nil), // 198: WAWebProtobufsE2E.InteractiveMessage.Footer + (*InteractiveMessage_Body)(nil), // 199: WAWebProtobufsE2E.InteractiveMessage.Body + (*InteractiveMessage_Header)(nil), // 200: WAWebProtobufsE2E.InteractiveMessage.Header + (*InteractiveMessage_NativeFlowMessage_NativeFlowButton)(nil), // 201: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButton + (*ListResponseMessage_SingleSelectReply)(nil), // 202: WAWebProtobufsE2E.ListResponseMessage.SingleSelectReply + (*ListMessage_ProductListInfo)(nil), // 203: WAWebProtobufsE2E.ListMessage.ProductListInfo + (*ListMessage_ProductListHeaderImage)(nil), // 204: WAWebProtobufsE2E.ListMessage.ProductListHeaderImage + (*ListMessage_ProductSection)(nil), // 205: WAWebProtobufsE2E.ListMessage.ProductSection + (*ListMessage_Product)(nil), // 206: WAWebProtobufsE2E.ListMessage.Product + (*ListMessage_Section)(nil), // 207: WAWebProtobufsE2E.ListMessage.Section + (*ListMessage_Row)(nil), // 208: WAWebProtobufsE2E.ListMessage.Row + (*HighlyStructuredMessage_HSMLocalizableParameter)(nil), // 209: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime)(nil), // 210: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMCurrency)(nil), // 211: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeComponent)(nil), // 212: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent + (*HighlyStructuredMessage_HSMLocalizableParameter_HSMDateTime_HSMDateTimeUnixEpoch)(nil), // 213: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult)(nil), // 214: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_HistorySyncChunkRetryResponse)(nil), // 215: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_SyncDSnapshotFatalRecoveryResponse)(nil), // 216: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionCanonicalUserNonceFetchResponse)(nil), // 217: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_CompanionMetaNonceFetchResponse)(nil), // 218: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_WaffleNonceFetchResponse)(nil), // 219: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_FullHistorySyncOnDemandRequestResponse)(nil), // 220: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_PlaceholderMessageResendResponse)(nil), // 221: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse)(nil), // 222: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_PaymentLinkPreviewMetadata)(nil), // 223: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata + (*PeerDataOperationRequestResponseMessage_PeerDataOperationResult_LinkPreviewResponse_LinkPreviewHighQualityThumbnail)(nil), // 224: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail + (*PeerDataOperationRequestMessage_GalaxyFlowAction)(nil), // 225: WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction + (*PeerDataOperationRequestMessage_HistorySyncChunkRetryRequest)(nil), // 226: WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest + (*PeerDataOperationRequestMessage_SyncDCollectionFatalRecoveryRequest)(nil), // 227: WAWebProtobufsE2E.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + (*PeerDataOperationRequestMessage_PlaceholderMessageResendRequest)(nil), // 228: WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest + (*PeerDataOperationRequestMessage_FullHistorySyncOnDemandRequest)(nil), // 229: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest + (*PeerDataOperationRequestMessage_HistorySyncOnDemandRequest)(nil), // 230: WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest + (*PeerDataOperationRequestMessage_RequestUrlPreview)(nil), // 231: WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreview + (*PeerDataOperationRequestMessage_RequestStickerReupload)(nil), // 232: WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReupload + (*CloudAPIThreadControlNotification_CloudAPIThreadControlNotificationContent)(nil), // 233: WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + (*PaymentLinkMetadata_PaymentLinkHeader)(nil), // 234: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader + (*PaymentLinkMetadata_PaymentLinkProvider)(nil), // 235: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkProvider + (*PaymentLinkMetadata_PaymentLinkButton)(nil), // 236: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButton + (*ContextInfo_StatusAudienceMetadata)(nil), // 237: WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata + (*ContextInfo_DataSharingContext)(nil), // 238: WAWebProtobufsE2E.ContextInfo.DataSharingContext + (*ContextInfo_ForwardedNewsletterMessageInfo)(nil), // 239: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo + (*ContextInfo_ExternalAdReplyInfo)(nil), // 240: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo + (*ContextInfo_AdReplyInfo)(nil), // 241: WAWebProtobufsE2E.ContextInfo.AdReplyInfo + (*ContextInfo_FeatureEligibilities)(nil), // 242: WAWebProtobufsE2E.ContextInfo.FeatureEligibilities + (*ContextInfo_QuestionReplyQuotedMessage)(nil), // 243: WAWebProtobufsE2E.ContextInfo.QuestionReplyQuotedMessage + (*ContextInfo_UTMInfo)(nil), // 244: WAWebProtobufsE2E.ContextInfo.UTMInfo + (*ContextInfo_BusinessMessageForwardInfo)(nil), // 245: WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfo + (*ContextInfo_DataSharingContext_Parameters)(nil), // 246: WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters + (*HydratedTemplateButton_HydratedURLButton)(nil), // 247: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton + (*HydratedTemplateButton_HydratedCallButton)(nil), // 248: WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButton + (*HydratedTemplateButton_HydratedQuickReplyButton)(nil), // 249: WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButton + (*PaymentBackground_MediaData)(nil), // 250: WAWebProtobufsE2E.PaymentBackground.MediaData + (*PollResultSnapshotMessage_PollVote)(nil), // 251: WAWebProtobufsE2E.PollResultSnapshotMessage.PollVote + (*PollCreationMessage_Option)(nil), // 252: WAWebProtobufsE2E.PollCreationMessage.Option + (*ProductMessage_ProductSnapshot)(nil), // 253: WAWebProtobufsE2E.ProductMessage.ProductSnapshot + (*ProductMessage_CatalogSnapshot)(nil), // 254: WAWebProtobufsE2E.ProductMessage.CatalogSnapshot + (*TemplateMessage_HydratedFourRowTemplate)(nil), // 255: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate + (*TemplateMessage_FourRowTemplate)(nil), // 256: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate + (*TemplateButton_CallButton)(nil), // 257: WAWebProtobufsE2E.TemplateButton.CallButton + (*TemplateButton_URLButton)(nil), // 258: WAWebProtobufsE2E.TemplateButton.URLButton + (*TemplateButton_QuickReplyButton)(nil), // 259: WAWebProtobufsE2E.TemplateButton.QuickReplyButton + (*UrlTrackingMap_UrlTrackingMapElement)(nil), // 260: WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElement + (*waCommon.MessageKey)(nil), // 261: WACommon.MessageKey + (*waAICommon.BotFeedbackMessage)(nil), // 262: WAAICommon.BotFeedbackMessage + (*waCommon.LimitSharing)(nil), // 263: WACommon.LimitSharing + (*waAICommon.ForwardedAIBotMessageInfo)(nil), // 264: WAAICommon.ForwardedAIBotMessageInfo + (*waStatusAttributions.StatusAttribution)(nil), // 265: WAStatusAttributions.StatusAttribution + (*waAICommon.BotMessageSharingInfo)(nil), // 266: WAAICommon.BotMessageSharingInfo + (*waAICommon.BotMetadata)(nil), // 267: WAAICommon.BotMetadata + (waAdv.ADVEncryptionType)(0), // 268: WAAdv.ADVEncryptionType + (waAICommon.AIRichResponseMessageType)(0), // 269: WAAICommon.AIRichResponseMessageType + (*waAICommon.AIRichResponseSubMessage)(nil), // 270: WAAICommon.AIRichResponseSubMessage + (*waAICommon.AIRichResponseUnifiedResponse)(nil), // 271: WAAICommon.AIRichResponseUnifiedResponse + (waMmsRetry.MediaRetryNotification_ResultType)(0), // 272: WAMmsRetry.MediaRetryNotification.ResultType + (*waCompanionReg.DeviceProps_HistorySyncConfig)(nil), // 273: WACompanionReg.DeviceProps.HistorySyncConfig } var file_waE2E_WAWebProtobufsE2E_proto_depIdxs = []int32{ - 186, // 0: WAWebProtobufsE2E.StickerPackMessage.stickers:type_name -> WAWebProtobufsE2E.StickerPackMessage.Sticker - 101, // 1: WAWebProtobufsE2E.StickerPackMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 6, // 2: WAWebProtobufsE2E.StickerPackMessage.stickerPackOrigin:type_name -> WAWebProtobufsE2E.StickerPackMessage.StickerPackOrigin - 7, // 3: WAWebProtobufsE2E.PlaceholderMessage.type:type_name -> WAWebProtobufsE2E.PlaceholderMessage.PlaceholderType - 8, // 4: WAWebProtobufsE2E.BCallMessage.mediaType:type_name -> WAWebProtobufsE2E.BCallMessage.MediaType - 9, // 5: WAWebProtobufsE2E.CallLogMessage.callOutcome:type_name -> WAWebProtobufsE2E.CallLogMessage.CallOutcome - 10, // 6: WAWebProtobufsE2E.CallLogMessage.callType:type_name -> WAWebProtobufsE2E.CallLogMessage.CallType - 187, // 7: WAWebProtobufsE2E.CallLogMessage.participants:type_name -> WAWebProtobufsE2E.CallLogMessage.CallParticipant - 260, // 8: WAWebProtobufsE2E.ScheduledCallEditMessage.key:type_name -> WACommon.MessageKey - 11, // 9: WAWebProtobufsE2E.ScheduledCallEditMessage.editType:type_name -> WAWebProtobufsE2E.ScheduledCallEditMessage.EditType - 12, // 10: WAWebProtobufsE2E.ScheduledCallCreationMessage.callType:type_name -> WAWebProtobufsE2E.ScheduledCallCreationMessage.CallType - 13, // 11: WAWebProtobufsE2E.EventResponseMessage.response:type_name -> WAWebProtobufsE2E.EventResponseMessage.EventResponseType - 260, // 12: WAWebProtobufsE2E.PinInChatMessage.key:type_name -> WACommon.MessageKey - 14, // 13: WAWebProtobufsE2E.PinInChatMessage.type:type_name -> WAWebProtobufsE2E.PinInChatMessage.Type - 260, // 14: WAWebProtobufsE2E.StatusStickerInteractionMessage.key:type_name -> WACommon.MessageKey - 15, // 15: WAWebProtobufsE2E.StatusStickerInteractionMessage.type:type_name -> WAWebProtobufsE2E.StatusStickerInteractionMessage.StatusStickerType - 101, // 16: WAWebProtobufsE2E.ButtonsResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 16, // 17: WAWebProtobufsE2E.ButtonsResponseMessage.type:type_name -> WAWebProtobufsE2E.ButtonsResponseMessage.Type - 160, // 18: WAWebProtobufsE2E.ButtonsMessage.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 100, // 19: WAWebProtobufsE2E.ButtonsMessage.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 94, // 20: WAWebProtobufsE2E.ButtonsMessage.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 164, // 21: WAWebProtobufsE2E.ButtonsMessage.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 101, // 22: WAWebProtobufsE2E.ButtonsMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 188, // 23: WAWebProtobufsE2E.ButtonsMessage.buttons:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button - 17, // 24: WAWebProtobufsE2E.ButtonsMessage.headerType:type_name -> WAWebProtobufsE2E.ButtonsMessage.HeaderType - 260, // 25: WAWebProtobufsE2E.SecretEncryptedMessage.targetMessageKey:type_name -> WACommon.MessageKey - 19, // 26: WAWebProtobufsE2E.SecretEncryptedMessage.secretEncType:type_name -> WAWebProtobufsE2E.SecretEncryptedMessage.SecretEncType - 101, // 27: WAWebProtobufsE2E.GroupInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 20, // 28: WAWebProtobufsE2E.GroupInviteMessage.groupType:type_name -> WAWebProtobufsE2E.GroupInviteMessage.GroupType - 192, // 29: WAWebProtobufsE2E.InteractiveResponseMessage.nativeFlowResponseMessage:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessage - 191, // 30: WAWebProtobufsE2E.InteractiveResponseMessage.body:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.Body - 101, // 31: WAWebProtobufsE2E.InteractiveResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 194, // 32: WAWebProtobufsE2E.InteractiveMessage.shopStorefrontMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.ShopMessage - 196, // 33: WAWebProtobufsE2E.InteractiveMessage.collectionMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.CollectionMessage - 195, // 34: WAWebProtobufsE2E.InteractiveMessage.nativeFlowMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage - 193, // 35: WAWebProtobufsE2E.InteractiveMessage.carouselMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.CarouselMessage - 199, // 36: WAWebProtobufsE2E.InteractiveMessage.header:type_name -> WAWebProtobufsE2E.InteractiveMessage.Header - 198, // 37: WAWebProtobufsE2E.InteractiveMessage.body:type_name -> WAWebProtobufsE2E.InteractiveMessage.Body - 197, // 38: WAWebProtobufsE2E.InteractiveMessage.footer:type_name -> WAWebProtobufsE2E.InteractiveMessage.Footer - 101, // 39: WAWebProtobufsE2E.InteractiveMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 182, // 40: WAWebProtobufsE2E.InteractiveMessage.urlTrackingMap:type_name -> WAWebProtobufsE2E.UrlTrackingMap - 24, // 41: WAWebProtobufsE2E.ListResponseMessage.listType:type_name -> WAWebProtobufsE2E.ListResponseMessage.ListType - 201, // 42: WAWebProtobufsE2E.ListResponseMessage.singleSelectReply:type_name -> WAWebProtobufsE2E.ListResponseMessage.SingleSelectReply - 101, // 43: WAWebProtobufsE2E.ListResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 25, // 44: WAWebProtobufsE2E.ListMessage.listType:type_name -> WAWebProtobufsE2E.ListMessage.ListType - 206, // 45: WAWebProtobufsE2E.ListMessage.sections:type_name -> WAWebProtobufsE2E.ListMessage.Section - 202, // 46: WAWebProtobufsE2E.ListMessage.productListInfo:type_name -> WAWebProtobufsE2E.ListMessage.ProductListInfo - 101, // 47: WAWebProtobufsE2E.ListMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 27, // 48: WAWebProtobufsE2E.OrderMessage.status:type_name -> WAWebProtobufsE2E.OrderMessage.OrderStatus - 26, // 49: WAWebProtobufsE2E.OrderMessage.surface:type_name -> WAWebProtobufsE2E.OrderMessage.OrderSurface - 101, // 50: WAWebProtobufsE2E.OrderMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 260, // 51: WAWebProtobufsE2E.OrderMessage.orderRequestMessageID:type_name -> WACommon.MessageKey - 28, // 52: WAWebProtobufsE2E.StatusQuotedMessage.type:type_name -> WAWebProtobufsE2E.StatusQuotedMessage.StatusQuotedMessageType - 260, // 53: WAWebProtobufsE2E.StatusQuotedMessage.originalStatusID:type_name -> WACommon.MessageKey - 29, // 54: WAWebProtobufsE2E.PaymentInviteMessage.serviceType:type_name -> WAWebProtobufsE2E.PaymentInviteMessage.ServiceType - 208, // 55: WAWebProtobufsE2E.HighlyStructuredMessage.localizableParams:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter + 187, // 0: WAWebProtobufsE2E.StickerPackMessage.stickers:type_name -> WAWebProtobufsE2E.StickerPackMessage.Sticker + 102, // 1: WAWebProtobufsE2E.StickerPackMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 7, // 2: WAWebProtobufsE2E.StickerPackMessage.stickerPackOrigin:type_name -> WAWebProtobufsE2E.StickerPackMessage.StickerPackOrigin + 8, // 3: WAWebProtobufsE2E.PlaceholderMessage.type:type_name -> WAWebProtobufsE2E.PlaceholderMessage.PlaceholderType + 9, // 4: WAWebProtobufsE2E.BCallMessage.mediaType:type_name -> WAWebProtobufsE2E.BCallMessage.MediaType + 10, // 5: WAWebProtobufsE2E.CallLogMessage.callOutcome:type_name -> WAWebProtobufsE2E.CallLogMessage.CallOutcome + 11, // 6: WAWebProtobufsE2E.CallLogMessage.callType:type_name -> WAWebProtobufsE2E.CallLogMessage.CallType + 188, // 7: WAWebProtobufsE2E.CallLogMessage.participants:type_name -> WAWebProtobufsE2E.CallLogMessage.CallParticipant + 261, // 8: WAWebProtobufsE2E.ScheduledCallEditMessage.key:type_name -> WACommon.MessageKey + 12, // 9: WAWebProtobufsE2E.ScheduledCallEditMessage.editType:type_name -> WAWebProtobufsE2E.ScheduledCallEditMessage.EditType + 13, // 10: WAWebProtobufsE2E.ScheduledCallCreationMessage.callType:type_name -> WAWebProtobufsE2E.ScheduledCallCreationMessage.CallType + 14, // 11: WAWebProtobufsE2E.EventResponseMessage.response:type_name -> WAWebProtobufsE2E.EventResponseMessage.EventResponseType + 261, // 12: WAWebProtobufsE2E.PinInChatMessage.key:type_name -> WACommon.MessageKey + 15, // 13: WAWebProtobufsE2E.PinInChatMessage.type:type_name -> WAWebProtobufsE2E.PinInChatMessage.Type + 261, // 14: WAWebProtobufsE2E.StatusStickerInteractionMessage.key:type_name -> WACommon.MessageKey + 16, // 15: WAWebProtobufsE2E.StatusStickerInteractionMessage.type:type_name -> WAWebProtobufsE2E.StatusStickerInteractionMessage.StatusStickerType + 102, // 16: WAWebProtobufsE2E.ButtonsResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 17, // 17: WAWebProtobufsE2E.ButtonsResponseMessage.type:type_name -> WAWebProtobufsE2E.ButtonsResponseMessage.Type + 161, // 18: WAWebProtobufsE2E.ButtonsMessage.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 101, // 19: WAWebProtobufsE2E.ButtonsMessage.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 95, // 20: WAWebProtobufsE2E.ButtonsMessage.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 165, // 21: WAWebProtobufsE2E.ButtonsMessage.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 102, // 22: WAWebProtobufsE2E.ButtonsMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 189, // 23: WAWebProtobufsE2E.ButtonsMessage.buttons:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button + 18, // 24: WAWebProtobufsE2E.ButtonsMessage.headerType:type_name -> WAWebProtobufsE2E.ButtonsMessage.HeaderType + 261, // 25: WAWebProtobufsE2E.SecretEncryptedMessage.targetMessageKey:type_name -> WACommon.MessageKey + 20, // 26: WAWebProtobufsE2E.SecretEncryptedMessage.secretEncType:type_name -> WAWebProtobufsE2E.SecretEncryptedMessage.SecretEncType + 102, // 27: WAWebProtobufsE2E.GroupInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 21, // 28: WAWebProtobufsE2E.GroupInviteMessage.groupType:type_name -> WAWebProtobufsE2E.GroupInviteMessage.GroupType + 193, // 29: WAWebProtobufsE2E.InteractiveResponseMessage.nativeFlowResponseMessage:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.NativeFlowResponseMessage + 192, // 30: WAWebProtobufsE2E.InteractiveResponseMessage.body:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.Body + 102, // 31: WAWebProtobufsE2E.InteractiveResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 195, // 32: WAWebProtobufsE2E.InteractiveMessage.shopStorefrontMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.ShopMessage + 197, // 33: WAWebProtobufsE2E.InteractiveMessage.collectionMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.CollectionMessage + 196, // 34: WAWebProtobufsE2E.InteractiveMessage.nativeFlowMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage + 194, // 35: WAWebProtobufsE2E.InteractiveMessage.carouselMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage.CarouselMessage + 200, // 36: WAWebProtobufsE2E.InteractiveMessage.header:type_name -> WAWebProtobufsE2E.InteractiveMessage.Header + 199, // 37: WAWebProtobufsE2E.InteractiveMessage.body:type_name -> WAWebProtobufsE2E.InteractiveMessage.Body + 198, // 38: WAWebProtobufsE2E.InteractiveMessage.footer:type_name -> WAWebProtobufsE2E.InteractiveMessage.Footer + 102, // 39: WAWebProtobufsE2E.InteractiveMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 183, // 40: WAWebProtobufsE2E.InteractiveMessage.urlTrackingMap:type_name -> WAWebProtobufsE2E.UrlTrackingMap + 25, // 41: WAWebProtobufsE2E.ListResponseMessage.listType:type_name -> WAWebProtobufsE2E.ListResponseMessage.ListType + 202, // 42: WAWebProtobufsE2E.ListResponseMessage.singleSelectReply:type_name -> WAWebProtobufsE2E.ListResponseMessage.SingleSelectReply + 102, // 43: WAWebProtobufsE2E.ListResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 26, // 44: WAWebProtobufsE2E.ListMessage.listType:type_name -> WAWebProtobufsE2E.ListMessage.ListType + 207, // 45: WAWebProtobufsE2E.ListMessage.sections:type_name -> WAWebProtobufsE2E.ListMessage.Section + 203, // 46: WAWebProtobufsE2E.ListMessage.productListInfo:type_name -> WAWebProtobufsE2E.ListMessage.ProductListInfo + 102, // 47: WAWebProtobufsE2E.ListMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 28, // 48: WAWebProtobufsE2E.OrderMessage.status:type_name -> WAWebProtobufsE2E.OrderMessage.OrderStatus + 27, // 49: WAWebProtobufsE2E.OrderMessage.surface:type_name -> WAWebProtobufsE2E.OrderMessage.OrderSurface + 102, // 50: WAWebProtobufsE2E.OrderMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 261, // 51: WAWebProtobufsE2E.OrderMessage.orderRequestMessageID:type_name -> WACommon.MessageKey + 29, // 52: WAWebProtobufsE2E.StatusQuotedMessage.type:type_name -> WAWebProtobufsE2E.StatusQuotedMessage.StatusQuotedMessageType + 261, // 53: WAWebProtobufsE2E.StatusQuotedMessage.originalStatusID:type_name -> WACommon.MessageKey + 30, // 54: WAWebProtobufsE2E.PaymentInviteMessage.serviceType:type_name -> WAWebProtobufsE2E.PaymentInviteMessage.ServiceType + 209, // 55: WAWebProtobufsE2E.HighlyStructuredMessage.localizableParams:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter 139, // 56: WAWebProtobufsE2E.HighlyStructuredMessage.hydratedHsm:type_name -> WAWebProtobufsE2E.TemplateMessage 2, // 57: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.peerDataOperationRequestType:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestType - 213, // 58: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.peerDataOperationResult:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult + 214, // 58: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.peerDataOperationResult:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult 2, // 59: WAWebProtobufsE2E.PeerDataOperationRequestMessage.peerDataOperationRequestType:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestType - 231, // 60: WAWebProtobufsE2E.PeerDataOperationRequestMessage.requestStickerReupload:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReupload - 230, // 61: WAWebProtobufsE2E.PeerDataOperationRequestMessage.requestURLPreview:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreview - 229, // 62: WAWebProtobufsE2E.PeerDataOperationRequestMessage.historySyncOnDemandRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest - 227, // 63: WAWebProtobufsE2E.PeerDataOperationRequestMessage.placeholderMessageResendRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest - 228, // 64: WAWebProtobufsE2E.PeerDataOperationRequestMessage.fullHistorySyncOnDemandRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest - 226, // 65: WAWebProtobufsE2E.PeerDataOperationRequestMessage.syncdCollectionFatalRecoveryRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest - 225, // 66: WAWebProtobufsE2E.PeerDataOperationRequestMessage.historySyncChunkRetryRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest - 224, // 67: WAWebProtobufsE2E.PeerDataOperationRequestMessage.galaxyFlowAction:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction - 35, // 68: WAWebProtobufsE2E.RequestWelcomeMessageMetadata.localChatState:type_name -> WAWebProtobufsE2E.RequestWelcomeMessageMetadata.LocalChatState - 260, // 69: WAWebProtobufsE2E.ProtocolMessage.key:type_name -> WACommon.MessageKey - 36, // 70: WAWebProtobufsE2E.ProtocolMessage.type:type_name -> WAWebProtobufsE2E.ProtocolMessage.Type + 232, // 60: WAWebProtobufsE2E.PeerDataOperationRequestMessage.requestStickerReupload:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestStickerReupload + 231, // 61: WAWebProtobufsE2E.PeerDataOperationRequestMessage.requestURLPreview:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.RequestUrlPreview + 230, // 62: WAWebProtobufsE2E.PeerDataOperationRequestMessage.historySyncOnDemandRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncOnDemandRequest + 228, // 63: WAWebProtobufsE2E.PeerDataOperationRequestMessage.placeholderMessageResendRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest + 229, // 64: WAWebProtobufsE2E.PeerDataOperationRequestMessage.fullHistorySyncOnDemandRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest + 227, // 65: WAWebProtobufsE2E.PeerDataOperationRequestMessage.syncdCollectionFatalRecoveryRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.SyncDCollectionFatalRecoveryRequest + 226, // 66: WAWebProtobufsE2E.PeerDataOperationRequestMessage.historySyncChunkRetryRequest:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest + 225, // 67: WAWebProtobufsE2E.PeerDataOperationRequestMessage.galaxyFlowAction:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction + 36, // 68: WAWebProtobufsE2E.RequestWelcomeMessageMetadata.localChatState:type_name -> WAWebProtobufsE2E.RequestWelcomeMessageMetadata.LocalChatState + 261, // 69: WAWebProtobufsE2E.ProtocolMessage.key:type_name -> WACommon.MessageKey + 37, // 70: WAWebProtobufsE2E.ProtocolMessage.type:type_name -> WAWebProtobufsE2E.ProtocolMessage.Type 156, // 71: WAWebProtobufsE2E.ProtocolMessage.historySyncNotification:type_name -> WAWebProtobufsE2E.HistorySyncNotification 151, // 72: WAWebProtobufsE2E.ProtocolMessage.appStateSyncKeyShare:type_name -> WAWebProtobufsE2E.AppStateSyncKeyShare 150, // 73: WAWebProtobufsE2E.ProtocolMessage.appStateSyncKeyRequest:type_name -> WAWebProtobufsE2E.AppStateSyncKeyRequest 147, // 74: WAWebProtobufsE2E.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> WAWebProtobufsE2E.InitialSecurityNotificationSettingSync 149, // 75: WAWebProtobufsE2E.ProtocolMessage.appStateFatalExceptionNotification:type_name -> WAWebProtobufsE2E.AppStateFatalExceptionNotification - 108, // 76: WAWebProtobufsE2E.ProtocolMessage.disappearingMode:type_name -> WAWebProtobufsE2E.DisappearingMode - 110, // 77: WAWebProtobufsE2E.ProtocolMessage.editedMessage:type_name -> WAWebProtobufsE2E.Message - 90, // 78: WAWebProtobufsE2E.ProtocolMessage.peerDataOperationRequestMessage:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage - 89, // 79: WAWebProtobufsE2E.ProtocolMessage.peerDataOperationRequestResponseMessage:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage - 261, // 80: WAWebProtobufsE2E.ProtocolMessage.botFeedbackMessage:type_name -> WAAICommon.BotFeedbackMessage - 91, // 81: WAWebProtobufsE2E.ProtocolMessage.requestWelcomeMessageMetadata:type_name -> WAWebProtobufsE2E.RequestWelcomeMessageMetadata - 180, // 82: WAWebProtobufsE2E.ProtocolMessage.mediaNotifyMessage:type_name -> WAWebProtobufsE2E.MediaNotifyMessage - 93, // 83: WAWebProtobufsE2E.ProtocolMessage.cloudApiThreadControlNotification:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification - 181, // 84: WAWebProtobufsE2E.ProtocolMessage.lidMigrationMappingSyncMessage:type_name -> WAWebProtobufsE2E.LIDMigrationMappingSyncMessage - 262, // 85: WAWebProtobufsE2E.ProtocolMessage.limitSharing:type_name -> WACommon.LimitSharing - 185, // 86: WAWebProtobufsE2E.ProtocolMessage.aiQueryFanout:type_name -> WAWebProtobufsE2E.AIQueryFanout - 183, // 87: WAWebProtobufsE2E.ProtocolMessage.memberLabel:type_name -> WAWebProtobufsE2E.MemberLabel - 37, // 88: WAWebProtobufsE2E.CloudAPIThreadControlNotification.status:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControl - 232, // 89: WAWebProtobufsE2E.CloudAPIThreadControlNotification.notificationContent:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent - 105, // 90: WAWebProtobufsE2E.VideoMessage.interactiveAnnotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation - 101, // 91: WAWebProtobufsE2E.VideoMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 39, // 92: WAWebProtobufsE2E.VideoMessage.gifAttribution:type_name -> WAWebProtobufsE2E.VideoMessage.Attribution - 105, // 93: WAWebProtobufsE2E.VideoMessage.annotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation - 109, // 94: WAWebProtobufsE2E.VideoMessage.processedVideos:type_name -> WAWebProtobufsE2E.ProcessedVideo - 38, // 95: WAWebProtobufsE2E.VideoMessage.videoSourceType:type_name -> WAWebProtobufsE2E.VideoMessage.VideoSourceType + 109, // 76: WAWebProtobufsE2E.ProtocolMessage.disappearingMode:type_name -> WAWebProtobufsE2E.DisappearingMode + 111, // 77: WAWebProtobufsE2E.ProtocolMessage.editedMessage:type_name -> WAWebProtobufsE2E.Message + 91, // 78: WAWebProtobufsE2E.ProtocolMessage.peerDataOperationRequestMessage:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage + 90, // 79: WAWebProtobufsE2E.ProtocolMessage.peerDataOperationRequestResponseMessage:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage + 262, // 80: WAWebProtobufsE2E.ProtocolMessage.botFeedbackMessage:type_name -> WAAICommon.BotFeedbackMessage + 92, // 81: WAWebProtobufsE2E.ProtocolMessage.requestWelcomeMessageMetadata:type_name -> WAWebProtobufsE2E.RequestWelcomeMessageMetadata + 181, // 82: WAWebProtobufsE2E.ProtocolMessage.mediaNotifyMessage:type_name -> WAWebProtobufsE2E.MediaNotifyMessage + 94, // 83: WAWebProtobufsE2E.ProtocolMessage.cloudApiThreadControlNotification:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification + 182, // 84: WAWebProtobufsE2E.ProtocolMessage.lidMigrationMappingSyncMessage:type_name -> WAWebProtobufsE2E.LIDMigrationMappingSyncMessage + 263, // 85: WAWebProtobufsE2E.ProtocolMessage.limitSharing:type_name -> WACommon.LimitSharing + 186, // 86: WAWebProtobufsE2E.ProtocolMessage.aiQueryFanout:type_name -> WAWebProtobufsE2E.AIQueryFanout + 184, // 87: WAWebProtobufsE2E.ProtocolMessage.memberLabel:type_name -> WAWebProtobufsE2E.MemberLabel + 38, // 88: WAWebProtobufsE2E.CloudAPIThreadControlNotification.status:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControl + 233, // 89: WAWebProtobufsE2E.CloudAPIThreadControlNotification.notificationContent:type_name -> WAWebProtobufsE2E.CloudAPIThreadControlNotification.CloudAPIThreadControlNotificationContent + 106, // 90: WAWebProtobufsE2E.VideoMessage.interactiveAnnotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation + 102, // 91: WAWebProtobufsE2E.VideoMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 40, // 92: WAWebProtobufsE2E.VideoMessage.gifAttribution:type_name -> WAWebProtobufsE2E.VideoMessage.Attribution + 106, // 93: WAWebProtobufsE2E.VideoMessage.annotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation + 110, // 94: WAWebProtobufsE2E.VideoMessage.processedVideos:type_name -> WAWebProtobufsE2E.ProcessedVideo + 39, // 95: WAWebProtobufsE2E.VideoMessage.videoSourceType:type_name -> WAWebProtobufsE2E.VideoMessage.VideoSourceType 4, // 96: WAWebProtobufsE2E.VideoMessage.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain - 42, // 97: WAWebProtobufsE2E.ExtendedTextMessage.font:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.FontType - 41, // 98: WAWebProtobufsE2E.ExtendedTextMessage.previewType:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.PreviewType - 101, // 99: WAWebProtobufsE2E.ExtendedTextMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 40, // 100: WAWebProtobufsE2E.ExtendedTextMessage.inviteLinkGroupType:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType - 40, // 101: WAWebProtobufsE2E.ExtendedTextMessage.inviteLinkGroupTypeV2:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType - 163, // 102: WAWebProtobufsE2E.ExtendedTextMessage.faviconMMSMetadata:type_name -> WAWebProtobufsE2E.MMSThumbnailMetadata - 96, // 103: WAWebProtobufsE2E.ExtendedTextMessage.linkPreviewMetadata:type_name -> WAWebProtobufsE2E.LinkPreviewMetadata - 97, // 104: WAWebProtobufsE2E.ExtendedTextMessage.paymentLinkMetadata:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata - 167, // 105: WAWebProtobufsE2E.ExtendedTextMessage.endCardTiles:type_name -> WAWebProtobufsE2E.VideoEndCard - 170, // 106: WAWebProtobufsE2E.ExtendedTextMessage.musicMetadata:type_name -> WAWebProtobufsE2E.EmbeddedMusic - 162, // 107: WAWebProtobufsE2E.ExtendedTextMessage.paymentExtendedMetadata:type_name -> WAWebProtobufsE2E.PaymentExtendedMetadata - 97, // 108: WAWebProtobufsE2E.LinkPreviewMetadata.paymentLinkMetadata:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata - 161, // 109: WAWebProtobufsE2E.LinkPreviewMetadata.urlMetadata:type_name -> WAWebProtobufsE2E.URLMetadata - 43, // 110: WAWebProtobufsE2E.LinkPreviewMetadata.socialMediaPostType:type_name -> WAWebProtobufsE2E.LinkPreviewMetadata.SocialMediaPostType - 170, // 111: WAWebProtobufsE2E.LinkPreviewMetadata.musicMetadata:type_name -> WAWebProtobufsE2E.EmbeddedMusic - 235, // 112: WAWebProtobufsE2E.PaymentLinkMetadata.button:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButton - 233, // 113: WAWebProtobufsE2E.PaymentLinkMetadata.header:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader - 234, // 114: WAWebProtobufsE2E.PaymentLinkMetadata.provider:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkProvider - 260, // 115: WAWebProtobufsE2E.StatusNotificationMessage.responseMessageKey:type_name -> WACommon.MessageKey - 260, // 116: WAWebProtobufsE2E.StatusNotificationMessage.originalMessageKey:type_name -> WACommon.MessageKey - 45, // 117: WAWebProtobufsE2E.StatusNotificationMessage.type:type_name -> WAWebProtobufsE2E.StatusNotificationMessage.StatusNotificationType - 46, // 118: WAWebProtobufsE2E.InvoiceMessage.attachmentType:type_name -> WAWebProtobufsE2E.InvoiceMessage.AttachmentType - 105, // 119: WAWebProtobufsE2E.ImageMessage.interactiveAnnotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation - 101, // 120: WAWebProtobufsE2E.ImageMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 105, // 121: WAWebProtobufsE2E.ImageMessage.annotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation - 47, // 122: WAWebProtobufsE2E.ImageMessage.imageSourceType:type_name -> WAWebProtobufsE2E.ImageMessage.ImageSourceType + 43, // 97: WAWebProtobufsE2E.ExtendedTextMessage.font:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.FontType + 42, // 98: WAWebProtobufsE2E.ExtendedTextMessage.previewType:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.PreviewType + 102, // 99: WAWebProtobufsE2E.ExtendedTextMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 41, // 100: WAWebProtobufsE2E.ExtendedTextMessage.inviteLinkGroupType:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType + 41, // 101: WAWebProtobufsE2E.ExtendedTextMessage.inviteLinkGroupTypeV2:type_name -> WAWebProtobufsE2E.ExtendedTextMessage.InviteLinkGroupType + 164, // 102: WAWebProtobufsE2E.ExtendedTextMessage.faviconMMSMetadata:type_name -> WAWebProtobufsE2E.MMSThumbnailMetadata + 97, // 103: WAWebProtobufsE2E.ExtendedTextMessage.linkPreviewMetadata:type_name -> WAWebProtobufsE2E.LinkPreviewMetadata + 98, // 104: WAWebProtobufsE2E.ExtendedTextMessage.paymentLinkMetadata:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata + 168, // 105: WAWebProtobufsE2E.ExtendedTextMessage.endCardTiles:type_name -> WAWebProtobufsE2E.VideoEndCard + 171, // 106: WAWebProtobufsE2E.ExtendedTextMessage.musicMetadata:type_name -> WAWebProtobufsE2E.EmbeddedMusic + 163, // 107: WAWebProtobufsE2E.ExtendedTextMessage.paymentExtendedMetadata:type_name -> WAWebProtobufsE2E.PaymentExtendedMetadata + 98, // 108: WAWebProtobufsE2E.LinkPreviewMetadata.paymentLinkMetadata:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata + 162, // 109: WAWebProtobufsE2E.LinkPreviewMetadata.urlMetadata:type_name -> WAWebProtobufsE2E.URLMetadata + 44, // 110: WAWebProtobufsE2E.LinkPreviewMetadata.socialMediaPostType:type_name -> WAWebProtobufsE2E.LinkPreviewMetadata.SocialMediaPostType + 171, // 111: WAWebProtobufsE2E.LinkPreviewMetadata.musicMetadata:type_name -> WAWebProtobufsE2E.EmbeddedMusic + 236, // 112: WAWebProtobufsE2E.PaymentLinkMetadata.button:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkButton + 234, // 113: WAWebProtobufsE2E.PaymentLinkMetadata.header:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader + 235, // 114: WAWebProtobufsE2E.PaymentLinkMetadata.provider:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkProvider + 261, // 115: WAWebProtobufsE2E.StatusNotificationMessage.responseMessageKey:type_name -> WACommon.MessageKey + 261, // 116: WAWebProtobufsE2E.StatusNotificationMessage.originalMessageKey:type_name -> WACommon.MessageKey + 46, // 117: WAWebProtobufsE2E.StatusNotificationMessage.type:type_name -> WAWebProtobufsE2E.StatusNotificationMessage.StatusNotificationType + 47, // 118: WAWebProtobufsE2E.InvoiceMessage.attachmentType:type_name -> WAWebProtobufsE2E.InvoiceMessage.AttachmentType + 106, // 119: WAWebProtobufsE2E.ImageMessage.interactiveAnnotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation + 102, // 120: WAWebProtobufsE2E.ImageMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 106, // 121: WAWebProtobufsE2E.ImageMessage.annotations:type_name -> WAWebProtobufsE2E.InteractiveAnnotation + 48, // 122: WAWebProtobufsE2E.ImageMessage.imageSourceType:type_name -> WAWebProtobufsE2E.ImageMessage.ImageSourceType 4, // 123: WAWebProtobufsE2E.ImageMessage.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain - 110, // 124: WAWebProtobufsE2E.ContextInfo.quotedMessage:type_name -> WAWebProtobufsE2E.Message - 240, // 125: WAWebProtobufsE2E.ContextInfo.quotedAd:type_name -> WAWebProtobufsE2E.ContextInfo.AdReplyInfo - 260, // 126: WAWebProtobufsE2E.ContextInfo.placeholderKey:type_name -> WACommon.MessageKey - 239, // 127: WAWebProtobufsE2E.ContextInfo.externalAdReply:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo - 108, // 128: WAWebProtobufsE2E.ContextInfo.disappearingMode:type_name -> WAWebProtobufsE2E.DisappearingMode - 177, // 129: WAWebProtobufsE2E.ContextInfo.actionLink:type_name -> WAWebProtobufsE2E.ActionLink - 178, // 130: WAWebProtobufsE2E.ContextInfo.groupMentions:type_name -> WAWebProtobufsE2E.GroupMention - 243, // 131: WAWebProtobufsE2E.ContextInfo.utm:type_name -> WAWebProtobufsE2E.ContextInfo.UTMInfo - 238, // 132: WAWebProtobufsE2E.ContextInfo.forwardedNewsletterMessageInfo:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo - 244, // 133: WAWebProtobufsE2E.ContextInfo.businessMessageForwardInfo:type_name -> WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfo - 237, // 134: WAWebProtobufsE2E.ContextInfo.dataSharingContext:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext - 241, // 135: WAWebProtobufsE2E.ContextInfo.featureEligibilities:type_name -> WAWebProtobufsE2E.ContextInfo.FeatureEligibilities - 263, // 136: WAWebProtobufsE2E.ContextInfo.forwardedAiBotMessageInfo:type_name -> WAAICommon.ForwardedAIBotMessageInfo - 52, // 137: WAWebProtobufsE2E.ContextInfo.statusAttributionType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusAttributionType - 182, // 138: WAWebProtobufsE2E.ContextInfo.urlTrackingMap:type_name -> WAWebProtobufsE2E.UrlTrackingMap - 51, // 139: WAWebProtobufsE2E.ContextInfo.pairedMediaType:type_name -> WAWebProtobufsE2E.ContextInfo.PairedMediaType - 183, // 140: WAWebProtobufsE2E.ContextInfo.memberLabel:type_name -> WAWebProtobufsE2E.MemberLabel - 50, // 141: WAWebProtobufsE2E.ContextInfo.statusSourceType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusSourceType - 264, // 142: WAWebProtobufsE2E.ContextInfo.statusAttributions:type_name -> WAStatusAttributions.StatusAttribution - 49, // 143: WAWebProtobufsE2E.ContextInfo.forwardOrigin:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardOrigin - 242, // 144: WAWebProtobufsE2E.ContextInfo.questionReplyQuotedMessage:type_name -> WAWebProtobufsE2E.ContextInfo.QuestionReplyQuotedMessage - 236, // 145: WAWebProtobufsE2E.ContextInfo.statusAudienceMetadata:type_name -> WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata - 48, // 146: WAWebProtobufsE2E.ContextInfo.quotedType:type_name -> WAWebProtobufsE2E.ContextInfo.QuotedType - 265, // 147: WAWebProtobufsE2E.ContextInfo.botMessageSharingInfo:type_name -> WAAICommon.BotMessageSharingInfo - 59, // 148: WAWebProtobufsE2E.MessageAssociation.associationType:type_name -> WAWebProtobufsE2E.MessageAssociation.AssociationType - 260, // 149: WAWebProtobufsE2E.MessageAssociation.parentMessageKey:type_name -> WACommon.MessageKey - 60, // 150: WAWebProtobufsE2E.ThreadID.threadType:type_name -> WAWebProtobufsE2E.ThreadID.ThreadType - 260, // 151: WAWebProtobufsE2E.ThreadID.threadKey:type_name -> WACommon.MessageKey - 168, // 152: WAWebProtobufsE2E.MessageContextInfo.deviceListMetadata:type_name -> WAWebProtobufsE2E.DeviceListMetadata - 266, // 153: WAWebProtobufsE2E.MessageContextInfo.botMetadata:type_name -> WAAICommon.BotMetadata - 61, // 154: WAWebProtobufsE2E.MessageContextInfo.messageAddOnExpiryType:type_name -> WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryType - 102, // 155: WAWebProtobufsE2E.MessageContextInfo.messageAssociation:type_name -> WAWebProtobufsE2E.MessageAssociation - 262, // 156: WAWebProtobufsE2E.MessageContextInfo.limitSharing:type_name -> WACommon.LimitSharing - 262, // 157: WAWebProtobufsE2E.MessageContextInfo.limitSharingV2:type_name -> WACommon.LimitSharing - 103, // 158: WAWebProtobufsE2E.MessageContextInfo.threadID:type_name -> WAWebProtobufsE2E.ThreadID - 174, // 159: WAWebProtobufsE2E.InteractiveAnnotation.location:type_name -> WAWebProtobufsE2E.Location - 238, // 160: WAWebProtobufsE2E.InteractiveAnnotation.newsletter:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo - 172, // 161: WAWebProtobufsE2E.InteractiveAnnotation.tapAction:type_name -> WAWebProtobufsE2E.TapLinkAction - 173, // 162: WAWebProtobufsE2E.InteractiveAnnotation.polygonVertices:type_name -> WAWebProtobufsE2E.Point - 171, // 163: WAWebProtobufsE2E.InteractiveAnnotation.embeddedContent:type_name -> WAWebProtobufsE2E.EmbeddedContent - 62, // 164: WAWebProtobufsE2E.InteractiveAnnotation.statusLinkType:type_name -> WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkType - 248, // 165: WAWebProtobufsE2E.HydratedTemplateButton.quickReplyButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButton - 246, // 166: WAWebProtobufsE2E.HydratedTemplateButton.urlButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton - 247, // 167: WAWebProtobufsE2E.HydratedTemplateButton.callButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButton - 249, // 168: WAWebProtobufsE2E.PaymentBackground.mediaData:type_name -> WAWebProtobufsE2E.PaymentBackground.MediaData - 64, // 169: WAWebProtobufsE2E.PaymentBackground.type:type_name -> WAWebProtobufsE2E.PaymentBackground.Type - 66, // 170: WAWebProtobufsE2E.DisappearingMode.initiator:type_name -> WAWebProtobufsE2E.DisappearingMode.Initiator - 65, // 171: WAWebProtobufsE2E.DisappearingMode.trigger:type_name -> WAWebProtobufsE2E.DisappearingMode.Trigger - 67, // 172: WAWebProtobufsE2E.ProcessedVideo.quality:type_name -> WAWebProtobufsE2E.ProcessedVideo.VideoQuality - 166, // 173: WAWebProtobufsE2E.Message.senderKeyDistributionMessage:type_name -> WAWebProtobufsE2E.SenderKeyDistributionMessage - 100, // 174: WAWebProtobufsE2E.Message.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 165, // 175: WAWebProtobufsE2E.Message.contactMessage:type_name -> WAWebProtobufsE2E.ContactMessage - 164, // 176: WAWebProtobufsE2E.Message.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 95, // 177: WAWebProtobufsE2E.Message.extendedTextMessage:type_name -> WAWebProtobufsE2E.ExtendedTextMessage - 160, // 178: WAWebProtobufsE2E.Message.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 159, // 179: WAWebProtobufsE2E.Message.audioMessage:type_name -> WAWebProtobufsE2E.AudioMessage - 94, // 180: WAWebProtobufsE2E.Message.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 158, // 181: WAWebProtobufsE2E.Message.call:type_name -> WAWebProtobufsE2E.Call - 157, // 182: WAWebProtobufsE2E.Message.chat:type_name -> WAWebProtobufsE2E.Chat - 92, // 183: WAWebProtobufsE2E.Message.protocolMessage:type_name -> WAWebProtobufsE2E.ProtocolMessage - 146, // 184: WAWebProtobufsE2E.Message.contactsArrayMessage:type_name -> WAWebProtobufsE2E.ContactsArrayMessage - 88, // 185: WAWebProtobufsE2E.Message.highlyStructuredMessage:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 166, // 186: WAWebProtobufsE2E.Message.fastRatchetKeySenderKeyDistributionMessage:type_name -> WAWebProtobufsE2E.SenderKeyDistributionMessage - 145, // 187: WAWebProtobufsE2E.Message.sendPaymentMessage:type_name -> WAWebProtobufsE2E.SendPaymentMessage - 141, // 188: WAWebProtobufsE2E.Message.liveLocationMessage:type_name -> WAWebProtobufsE2E.LiveLocationMessage - 144, // 189: WAWebProtobufsE2E.Message.requestPaymentMessage:type_name -> WAWebProtobufsE2E.RequestPaymentMessage - 143, // 190: WAWebProtobufsE2E.Message.declinePaymentRequestMessage:type_name -> WAWebProtobufsE2E.DeclinePaymentRequestMessage - 142, // 191: WAWebProtobufsE2E.Message.cancelPaymentRequestMessage:type_name -> WAWebProtobufsE2E.CancelPaymentRequestMessage - 139, // 192: WAWebProtobufsE2E.Message.templateMessage:type_name -> WAWebProtobufsE2E.TemplateMessage - 140, // 193: WAWebProtobufsE2E.Message.stickerMessage:type_name -> WAWebProtobufsE2E.StickerMessage - 80, // 194: WAWebProtobufsE2E.Message.groupInviteMessage:type_name -> WAWebProtobufsE2E.GroupInviteMessage - 138, // 195: WAWebProtobufsE2E.Message.templateButtonReplyMessage:type_name -> WAWebProtobufsE2E.TemplateButtonReplyMessage - 137, // 196: WAWebProtobufsE2E.Message.productMessage:type_name -> WAWebProtobufsE2E.ProductMessage - 132, // 197: WAWebProtobufsE2E.Message.deviceSentMessage:type_name -> WAWebProtobufsE2E.DeviceSentMessage - 104, // 198: WAWebProtobufsE2E.Message.messageContextInfo:type_name -> WAWebProtobufsE2E.MessageContextInfo - 84, // 199: WAWebProtobufsE2E.Message.listMessage:type_name -> WAWebProtobufsE2E.ListMessage - 131, // 200: WAWebProtobufsE2E.Message.viewOnceMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 85, // 201: WAWebProtobufsE2E.Message.orderMessage:type_name -> WAWebProtobufsE2E.OrderMessage - 83, // 202: WAWebProtobufsE2E.Message.listResponseMessage:type_name -> WAWebProtobufsE2E.ListResponseMessage - 131, // 203: WAWebProtobufsE2E.Message.ephemeralMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 99, // 204: WAWebProtobufsE2E.Message.invoiceMessage:type_name -> WAWebProtobufsE2E.InvoiceMessage - 78, // 205: WAWebProtobufsE2E.Message.buttonsMessage:type_name -> WAWebProtobufsE2E.ButtonsMessage - 77, // 206: WAWebProtobufsE2E.Message.buttonsResponseMessage:type_name -> WAWebProtobufsE2E.ButtonsResponseMessage - 87, // 207: WAWebProtobufsE2E.Message.paymentInviteMessage:type_name -> WAWebProtobufsE2E.PaymentInviteMessage - 82, // 208: WAWebProtobufsE2E.Message.interactiveMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage - 130, // 209: WAWebProtobufsE2E.Message.reactionMessage:type_name -> WAWebProtobufsE2E.ReactionMessage - 129, // 210: WAWebProtobufsE2E.Message.stickerSyncRmrMessage:type_name -> WAWebProtobufsE2E.StickerSyncRMRMessage - 81, // 211: WAWebProtobufsE2E.Message.interactiveResponseMessage:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage - 128, // 212: WAWebProtobufsE2E.Message.pollCreationMessage:type_name -> WAWebProtobufsE2E.PollCreationMessage - 127, // 213: WAWebProtobufsE2E.Message.pollUpdateMessage:type_name -> WAWebProtobufsE2E.PollUpdateMessage - 120, // 214: WAWebProtobufsE2E.Message.keepInChatMessage:type_name -> WAWebProtobufsE2E.KeepInChatMessage - 131, // 215: WAWebProtobufsE2E.Message.documentWithCaptionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 134, // 216: WAWebProtobufsE2E.Message.requestPhoneNumberMessage:type_name -> WAWebProtobufsE2E.RequestPhoneNumberMessage - 131, // 217: WAWebProtobufsE2E.Message.viewOnceMessageV2:type_name -> WAWebProtobufsE2E.FutureProofMessage - 119, // 218: WAWebProtobufsE2E.Message.encReactionMessage:type_name -> WAWebProtobufsE2E.EncReactionMessage - 131, // 219: WAWebProtobufsE2E.Message.editedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 220: WAWebProtobufsE2E.Message.viewOnceMessageV2Extension:type_name -> WAWebProtobufsE2E.FutureProofMessage - 128, // 221: WAWebProtobufsE2E.Message.pollCreationMessageV2:type_name -> WAWebProtobufsE2E.PollCreationMessage - 73, // 222: WAWebProtobufsE2E.Message.scheduledCallCreationMessage:type_name -> WAWebProtobufsE2E.ScheduledCallCreationMessage - 131, // 223: WAWebProtobufsE2E.Message.groupMentionedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 75, // 224: WAWebProtobufsE2E.Message.pinInChatMessage:type_name -> WAWebProtobufsE2E.PinInChatMessage - 128, // 225: WAWebProtobufsE2E.Message.pollCreationMessageV3:type_name -> WAWebProtobufsE2E.PollCreationMessage - 72, // 226: WAWebProtobufsE2E.Message.scheduledCallEditMessage:type_name -> WAWebProtobufsE2E.ScheduledCallEditMessage - 94, // 227: WAWebProtobufsE2E.Message.ptvMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 131, // 228: WAWebProtobufsE2E.Message.botInvokeMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 71, // 229: WAWebProtobufsE2E.Message.callLogMesssage:type_name -> WAWebProtobufsE2E.CallLogMessage - 114, // 230: WAWebProtobufsE2E.Message.messageHistoryBundle:type_name -> WAWebProtobufsE2E.MessageHistoryBundle - 118, // 231: WAWebProtobufsE2E.Message.encCommentMessage:type_name -> WAWebProtobufsE2E.EncCommentMessage - 70, // 232: WAWebProtobufsE2E.Message.bcallMessage:type_name -> WAWebProtobufsE2E.BCallMessage - 131, // 233: WAWebProtobufsE2E.Message.lottieStickerMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 116, // 234: WAWebProtobufsE2E.Message.eventMessage:type_name -> WAWebProtobufsE2E.EventMessage - 115, // 235: WAWebProtobufsE2E.Message.encEventResponseMessage:type_name -> WAWebProtobufsE2E.EncEventResponseMessage - 117, // 236: WAWebProtobufsE2E.Message.commentMessage:type_name -> WAWebProtobufsE2E.CommentMessage - 136, // 237: WAWebProtobufsE2E.Message.newsletterAdminInviteMessage:type_name -> WAWebProtobufsE2E.NewsletterAdminInviteMessage - 69, // 238: WAWebProtobufsE2E.Message.placeholderMessage:type_name -> WAWebProtobufsE2E.PlaceholderMessage - 79, // 239: WAWebProtobufsE2E.Message.secretEncryptedMessage:type_name -> WAWebProtobufsE2E.SecretEncryptedMessage - 111, // 240: WAWebProtobufsE2E.Message.albumMessage:type_name -> WAWebProtobufsE2E.AlbumMessage - 131, // 241: WAWebProtobufsE2E.Message.eventCoverImage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 68, // 242: WAWebProtobufsE2E.Message.stickerPackMessage:type_name -> WAWebProtobufsE2E.StickerPackMessage - 131, // 243: WAWebProtobufsE2E.Message.statusMentionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 123, // 244: WAWebProtobufsE2E.Message.pollResultSnapshotMessage:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage - 131, // 245: WAWebProtobufsE2E.Message.pollCreationOptionImageMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 246: WAWebProtobufsE2E.Message.associatedChildMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 247: WAWebProtobufsE2E.Message.groupStatusMentionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 248: WAWebProtobufsE2E.Message.pollCreationMessageV4:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 249: WAWebProtobufsE2E.Message.statusAddYours:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 250: WAWebProtobufsE2E.Message.groupStatusMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 184, // 251: WAWebProtobufsE2E.Message.richResponseMessage:type_name -> WAWebProtobufsE2E.AIRichResponseMessage - 98, // 252: WAWebProtobufsE2E.Message.statusNotificationMessage:type_name -> WAWebProtobufsE2E.StatusNotificationMessage - 131, // 253: WAWebProtobufsE2E.Message.limitSharingMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 254: WAWebProtobufsE2E.Message.botTaskMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 255: WAWebProtobufsE2E.Message.questionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 113, // 256: WAWebProtobufsE2E.Message.messageHistoryNotice:type_name -> WAWebProtobufsE2E.MessageHistoryNotice - 131, // 257: WAWebProtobufsE2E.Message.groupStatusMessageV2:type_name -> WAWebProtobufsE2E.FutureProofMessage - 131, // 258: WAWebProtobufsE2E.Message.botForwardedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 122, // 259: WAWebProtobufsE2E.Message.statusQuestionAnswerMessage:type_name -> WAWebProtobufsE2E.StatusQuestionAnswerMessage - 131, // 260: WAWebProtobufsE2E.Message.questionReplyMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage - 121, // 261: WAWebProtobufsE2E.Message.questionResponseMessage:type_name -> WAWebProtobufsE2E.QuestionResponseMessage - 86, // 262: WAWebProtobufsE2E.Message.statusQuotedMessage:type_name -> WAWebProtobufsE2E.StatusQuotedMessage - 76, // 263: WAWebProtobufsE2E.Message.statusStickerInteractionMessage:type_name -> WAWebProtobufsE2E.StatusStickerInteractionMessage - 128, // 264: WAWebProtobufsE2E.Message.pollCreationMessageV5:type_name -> WAWebProtobufsE2E.PollCreationMessage - 123, // 265: WAWebProtobufsE2E.Message.pollResultSnapshotMessageV2:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage + 111, // 124: WAWebProtobufsE2E.ContextInfo.quotedMessage:type_name -> WAWebProtobufsE2E.Message + 241, // 125: WAWebProtobufsE2E.ContextInfo.quotedAd:type_name -> WAWebProtobufsE2E.ContextInfo.AdReplyInfo + 261, // 126: WAWebProtobufsE2E.ContextInfo.placeholderKey:type_name -> WACommon.MessageKey + 240, // 127: WAWebProtobufsE2E.ContextInfo.externalAdReply:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo + 109, // 128: WAWebProtobufsE2E.ContextInfo.disappearingMode:type_name -> WAWebProtobufsE2E.DisappearingMode + 178, // 129: WAWebProtobufsE2E.ContextInfo.actionLink:type_name -> WAWebProtobufsE2E.ActionLink + 179, // 130: WAWebProtobufsE2E.ContextInfo.groupMentions:type_name -> WAWebProtobufsE2E.GroupMention + 244, // 131: WAWebProtobufsE2E.ContextInfo.utm:type_name -> WAWebProtobufsE2E.ContextInfo.UTMInfo + 239, // 132: WAWebProtobufsE2E.ContextInfo.forwardedNewsletterMessageInfo:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo + 245, // 133: WAWebProtobufsE2E.ContextInfo.businessMessageForwardInfo:type_name -> WAWebProtobufsE2E.ContextInfo.BusinessMessageForwardInfo + 238, // 134: WAWebProtobufsE2E.ContextInfo.dataSharingContext:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext + 242, // 135: WAWebProtobufsE2E.ContextInfo.featureEligibilities:type_name -> WAWebProtobufsE2E.ContextInfo.FeatureEligibilities + 264, // 136: WAWebProtobufsE2E.ContextInfo.forwardedAiBotMessageInfo:type_name -> WAAICommon.ForwardedAIBotMessageInfo + 53, // 137: WAWebProtobufsE2E.ContextInfo.statusAttributionType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusAttributionType + 183, // 138: WAWebProtobufsE2E.ContextInfo.urlTrackingMap:type_name -> WAWebProtobufsE2E.UrlTrackingMap + 52, // 139: WAWebProtobufsE2E.ContextInfo.pairedMediaType:type_name -> WAWebProtobufsE2E.ContextInfo.PairedMediaType + 184, // 140: WAWebProtobufsE2E.ContextInfo.memberLabel:type_name -> WAWebProtobufsE2E.MemberLabel + 51, // 141: WAWebProtobufsE2E.ContextInfo.statusSourceType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusSourceType + 265, // 142: WAWebProtobufsE2E.ContextInfo.statusAttributions:type_name -> WAStatusAttributions.StatusAttribution + 50, // 143: WAWebProtobufsE2E.ContextInfo.forwardOrigin:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardOrigin + 243, // 144: WAWebProtobufsE2E.ContextInfo.questionReplyQuotedMessage:type_name -> WAWebProtobufsE2E.ContextInfo.QuestionReplyQuotedMessage + 237, // 145: WAWebProtobufsE2E.ContextInfo.statusAudienceMetadata:type_name -> WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata + 49, // 146: WAWebProtobufsE2E.ContextInfo.quotedType:type_name -> WAWebProtobufsE2E.ContextInfo.QuotedType + 266, // 147: WAWebProtobufsE2E.ContextInfo.botMessageSharingInfo:type_name -> WAAICommon.BotMessageSharingInfo + 60, // 148: WAWebProtobufsE2E.MessageAssociation.associationType:type_name -> WAWebProtobufsE2E.MessageAssociation.AssociationType + 261, // 149: WAWebProtobufsE2E.MessageAssociation.parentMessageKey:type_name -> WACommon.MessageKey + 61, // 150: WAWebProtobufsE2E.ThreadID.threadType:type_name -> WAWebProtobufsE2E.ThreadID.ThreadType + 261, // 151: WAWebProtobufsE2E.ThreadID.threadKey:type_name -> WACommon.MessageKey + 169, // 152: WAWebProtobufsE2E.MessageContextInfo.deviceListMetadata:type_name -> WAWebProtobufsE2E.DeviceListMetadata + 267, // 153: WAWebProtobufsE2E.MessageContextInfo.botMetadata:type_name -> WAAICommon.BotMetadata + 62, // 154: WAWebProtobufsE2E.MessageContextInfo.messageAddOnExpiryType:type_name -> WAWebProtobufsE2E.MessageContextInfo.MessageAddonExpiryType + 103, // 155: WAWebProtobufsE2E.MessageContextInfo.messageAssociation:type_name -> WAWebProtobufsE2E.MessageAssociation + 263, // 156: WAWebProtobufsE2E.MessageContextInfo.limitSharing:type_name -> WACommon.LimitSharing + 263, // 157: WAWebProtobufsE2E.MessageContextInfo.limitSharingV2:type_name -> WACommon.LimitSharing + 104, // 158: WAWebProtobufsE2E.MessageContextInfo.threadID:type_name -> WAWebProtobufsE2E.ThreadID + 5, // 159: WAWebProtobufsE2E.MessageContextInfo.weblinkRenderConfig:type_name -> WAWebProtobufsE2E.WebLinkRenderConfig + 175, // 160: WAWebProtobufsE2E.InteractiveAnnotation.location:type_name -> WAWebProtobufsE2E.Location + 239, // 161: WAWebProtobufsE2E.InteractiveAnnotation.newsletter:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo + 173, // 162: WAWebProtobufsE2E.InteractiveAnnotation.tapAction:type_name -> WAWebProtobufsE2E.TapLinkAction + 174, // 163: WAWebProtobufsE2E.InteractiveAnnotation.polygonVertices:type_name -> WAWebProtobufsE2E.Point + 172, // 164: WAWebProtobufsE2E.InteractiveAnnotation.embeddedContent:type_name -> WAWebProtobufsE2E.EmbeddedContent + 63, // 165: WAWebProtobufsE2E.InteractiveAnnotation.statusLinkType:type_name -> WAWebProtobufsE2E.InteractiveAnnotation.StatusLinkType + 249, // 166: WAWebProtobufsE2E.HydratedTemplateButton.quickReplyButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedQuickReplyButton + 247, // 167: WAWebProtobufsE2E.HydratedTemplateButton.urlButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton + 248, // 168: WAWebProtobufsE2E.HydratedTemplateButton.callButton:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedCallButton + 250, // 169: WAWebProtobufsE2E.PaymentBackground.mediaData:type_name -> WAWebProtobufsE2E.PaymentBackground.MediaData + 65, // 170: WAWebProtobufsE2E.PaymentBackground.type:type_name -> WAWebProtobufsE2E.PaymentBackground.Type + 67, // 171: WAWebProtobufsE2E.DisappearingMode.initiator:type_name -> WAWebProtobufsE2E.DisappearingMode.Initiator + 66, // 172: WAWebProtobufsE2E.DisappearingMode.trigger:type_name -> WAWebProtobufsE2E.DisappearingMode.Trigger + 68, // 173: WAWebProtobufsE2E.ProcessedVideo.quality:type_name -> WAWebProtobufsE2E.ProcessedVideo.VideoQuality + 167, // 174: WAWebProtobufsE2E.Message.senderKeyDistributionMessage:type_name -> WAWebProtobufsE2E.SenderKeyDistributionMessage + 101, // 175: WAWebProtobufsE2E.Message.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 166, // 176: WAWebProtobufsE2E.Message.contactMessage:type_name -> WAWebProtobufsE2E.ContactMessage + 165, // 177: WAWebProtobufsE2E.Message.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 96, // 178: WAWebProtobufsE2E.Message.extendedTextMessage:type_name -> WAWebProtobufsE2E.ExtendedTextMessage + 161, // 179: WAWebProtobufsE2E.Message.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 160, // 180: WAWebProtobufsE2E.Message.audioMessage:type_name -> WAWebProtobufsE2E.AudioMessage + 95, // 181: WAWebProtobufsE2E.Message.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 159, // 182: WAWebProtobufsE2E.Message.call:type_name -> WAWebProtobufsE2E.Call + 158, // 183: WAWebProtobufsE2E.Message.chat:type_name -> WAWebProtobufsE2E.Chat + 93, // 184: WAWebProtobufsE2E.Message.protocolMessage:type_name -> WAWebProtobufsE2E.ProtocolMessage + 146, // 185: WAWebProtobufsE2E.Message.contactsArrayMessage:type_name -> WAWebProtobufsE2E.ContactsArrayMessage + 89, // 186: WAWebProtobufsE2E.Message.highlyStructuredMessage:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 167, // 187: WAWebProtobufsE2E.Message.fastRatchetKeySenderKeyDistributionMessage:type_name -> WAWebProtobufsE2E.SenderKeyDistributionMessage + 145, // 188: WAWebProtobufsE2E.Message.sendPaymentMessage:type_name -> WAWebProtobufsE2E.SendPaymentMessage + 141, // 189: WAWebProtobufsE2E.Message.liveLocationMessage:type_name -> WAWebProtobufsE2E.LiveLocationMessage + 144, // 190: WAWebProtobufsE2E.Message.requestPaymentMessage:type_name -> WAWebProtobufsE2E.RequestPaymentMessage + 143, // 191: WAWebProtobufsE2E.Message.declinePaymentRequestMessage:type_name -> WAWebProtobufsE2E.DeclinePaymentRequestMessage + 142, // 192: WAWebProtobufsE2E.Message.cancelPaymentRequestMessage:type_name -> WAWebProtobufsE2E.CancelPaymentRequestMessage + 139, // 193: WAWebProtobufsE2E.Message.templateMessage:type_name -> WAWebProtobufsE2E.TemplateMessage + 140, // 194: WAWebProtobufsE2E.Message.stickerMessage:type_name -> WAWebProtobufsE2E.StickerMessage + 81, // 195: WAWebProtobufsE2E.Message.groupInviteMessage:type_name -> WAWebProtobufsE2E.GroupInviteMessage + 138, // 196: WAWebProtobufsE2E.Message.templateButtonReplyMessage:type_name -> WAWebProtobufsE2E.TemplateButtonReplyMessage + 137, // 197: WAWebProtobufsE2E.Message.productMessage:type_name -> WAWebProtobufsE2E.ProductMessage + 133, // 198: WAWebProtobufsE2E.Message.deviceSentMessage:type_name -> WAWebProtobufsE2E.DeviceSentMessage + 105, // 199: WAWebProtobufsE2E.Message.messageContextInfo:type_name -> WAWebProtobufsE2E.MessageContextInfo + 85, // 200: WAWebProtobufsE2E.Message.listMessage:type_name -> WAWebProtobufsE2E.ListMessage + 132, // 201: WAWebProtobufsE2E.Message.viewOnceMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 86, // 202: WAWebProtobufsE2E.Message.orderMessage:type_name -> WAWebProtobufsE2E.OrderMessage + 84, // 203: WAWebProtobufsE2E.Message.listResponseMessage:type_name -> WAWebProtobufsE2E.ListResponseMessage + 132, // 204: WAWebProtobufsE2E.Message.ephemeralMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 100, // 205: WAWebProtobufsE2E.Message.invoiceMessage:type_name -> WAWebProtobufsE2E.InvoiceMessage + 79, // 206: WAWebProtobufsE2E.Message.buttonsMessage:type_name -> WAWebProtobufsE2E.ButtonsMessage + 78, // 207: WAWebProtobufsE2E.Message.buttonsResponseMessage:type_name -> WAWebProtobufsE2E.ButtonsResponseMessage + 88, // 208: WAWebProtobufsE2E.Message.paymentInviteMessage:type_name -> WAWebProtobufsE2E.PaymentInviteMessage + 83, // 209: WAWebProtobufsE2E.Message.interactiveMessage:type_name -> WAWebProtobufsE2E.InteractiveMessage + 131, // 210: WAWebProtobufsE2E.Message.reactionMessage:type_name -> WAWebProtobufsE2E.ReactionMessage + 130, // 211: WAWebProtobufsE2E.Message.stickerSyncRmrMessage:type_name -> WAWebProtobufsE2E.StickerSyncRMRMessage + 82, // 212: WAWebProtobufsE2E.Message.interactiveResponseMessage:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage + 129, // 213: WAWebProtobufsE2E.Message.pollCreationMessage:type_name -> WAWebProtobufsE2E.PollCreationMessage + 128, // 214: WAWebProtobufsE2E.Message.pollUpdateMessage:type_name -> WAWebProtobufsE2E.PollUpdateMessage + 121, // 215: WAWebProtobufsE2E.Message.keepInChatMessage:type_name -> WAWebProtobufsE2E.KeepInChatMessage + 132, // 216: WAWebProtobufsE2E.Message.documentWithCaptionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 134, // 217: WAWebProtobufsE2E.Message.requestPhoneNumberMessage:type_name -> WAWebProtobufsE2E.RequestPhoneNumberMessage + 132, // 218: WAWebProtobufsE2E.Message.viewOnceMessageV2:type_name -> WAWebProtobufsE2E.FutureProofMessage + 120, // 219: WAWebProtobufsE2E.Message.encReactionMessage:type_name -> WAWebProtobufsE2E.EncReactionMessage + 132, // 220: WAWebProtobufsE2E.Message.editedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 221: WAWebProtobufsE2E.Message.viewOnceMessageV2Extension:type_name -> WAWebProtobufsE2E.FutureProofMessage + 129, // 222: WAWebProtobufsE2E.Message.pollCreationMessageV2:type_name -> WAWebProtobufsE2E.PollCreationMessage + 74, // 223: WAWebProtobufsE2E.Message.scheduledCallCreationMessage:type_name -> WAWebProtobufsE2E.ScheduledCallCreationMessage + 132, // 224: WAWebProtobufsE2E.Message.groupMentionedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 76, // 225: WAWebProtobufsE2E.Message.pinInChatMessage:type_name -> WAWebProtobufsE2E.PinInChatMessage + 129, // 226: WAWebProtobufsE2E.Message.pollCreationMessageV3:type_name -> WAWebProtobufsE2E.PollCreationMessage + 73, // 227: WAWebProtobufsE2E.Message.scheduledCallEditMessage:type_name -> WAWebProtobufsE2E.ScheduledCallEditMessage + 95, // 228: WAWebProtobufsE2E.Message.ptvMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 132, // 229: WAWebProtobufsE2E.Message.botInvokeMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 72, // 230: WAWebProtobufsE2E.Message.callLogMesssage:type_name -> WAWebProtobufsE2E.CallLogMessage + 115, // 231: WAWebProtobufsE2E.Message.messageHistoryBundle:type_name -> WAWebProtobufsE2E.MessageHistoryBundle + 119, // 232: WAWebProtobufsE2E.Message.encCommentMessage:type_name -> WAWebProtobufsE2E.EncCommentMessage + 71, // 233: WAWebProtobufsE2E.Message.bcallMessage:type_name -> WAWebProtobufsE2E.BCallMessage + 132, // 234: WAWebProtobufsE2E.Message.lottieStickerMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 117, // 235: WAWebProtobufsE2E.Message.eventMessage:type_name -> WAWebProtobufsE2E.EventMessage + 116, // 236: WAWebProtobufsE2E.Message.encEventResponseMessage:type_name -> WAWebProtobufsE2E.EncEventResponseMessage + 118, // 237: WAWebProtobufsE2E.Message.commentMessage:type_name -> WAWebProtobufsE2E.CommentMessage + 136, // 238: WAWebProtobufsE2E.Message.newsletterAdminInviteMessage:type_name -> WAWebProtobufsE2E.NewsletterAdminInviteMessage + 70, // 239: WAWebProtobufsE2E.Message.placeholderMessage:type_name -> WAWebProtobufsE2E.PlaceholderMessage + 80, // 240: WAWebProtobufsE2E.Message.secretEncryptedMessage:type_name -> WAWebProtobufsE2E.SecretEncryptedMessage + 112, // 241: WAWebProtobufsE2E.Message.albumMessage:type_name -> WAWebProtobufsE2E.AlbumMessage + 132, // 242: WAWebProtobufsE2E.Message.eventCoverImage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 69, // 243: WAWebProtobufsE2E.Message.stickerPackMessage:type_name -> WAWebProtobufsE2E.StickerPackMessage + 132, // 244: WAWebProtobufsE2E.Message.statusMentionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 124, // 245: WAWebProtobufsE2E.Message.pollResultSnapshotMessage:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage + 132, // 246: WAWebProtobufsE2E.Message.pollCreationOptionImageMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 247: WAWebProtobufsE2E.Message.associatedChildMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 248: WAWebProtobufsE2E.Message.groupStatusMentionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 249: WAWebProtobufsE2E.Message.pollCreationMessageV4:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 250: WAWebProtobufsE2E.Message.statusAddYours:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 251: WAWebProtobufsE2E.Message.groupStatusMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 185, // 252: WAWebProtobufsE2E.Message.richResponseMessage:type_name -> WAWebProtobufsE2E.AIRichResponseMessage + 99, // 253: WAWebProtobufsE2E.Message.statusNotificationMessage:type_name -> WAWebProtobufsE2E.StatusNotificationMessage + 132, // 254: WAWebProtobufsE2E.Message.limitSharingMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 255: WAWebProtobufsE2E.Message.botTaskMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 256: WAWebProtobufsE2E.Message.questionMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 114, // 257: WAWebProtobufsE2E.Message.messageHistoryNotice:type_name -> WAWebProtobufsE2E.MessageHistoryNotice + 132, // 258: WAWebProtobufsE2E.Message.groupStatusMessageV2:type_name -> WAWebProtobufsE2E.FutureProofMessage + 132, // 259: WAWebProtobufsE2E.Message.botForwardedMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 123, // 260: WAWebProtobufsE2E.Message.statusQuestionAnswerMessage:type_name -> WAWebProtobufsE2E.StatusQuestionAnswerMessage + 132, // 261: WAWebProtobufsE2E.Message.questionReplyMessage:type_name -> WAWebProtobufsE2E.FutureProofMessage + 122, // 262: WAWebProtobufsE2E.Message.questionResponseMessage:type_name -> WAWebProtobufsE2E.QuestionResponseMessage + 87, // 263: WAWebProtobufsE2E.Message.statusQuotedMessage:type_name -> WAWebProtobufsE2E.StatusQuotedMessage + 77, // 264: WAWebProtobufsE2E.Message.statusStickerInteractionMessage:type_name -> WAWebProtobufsE2E.StatusStickerInteractionMessage + 129, // 265: WAWebProtobufsE2E.Message.pollCreationMessageV5:type_name -> WAWebProtobufsE2E.PollCreationMessage 135, // 266: WAWebProtobufsE2E.Message.newsletterFollowerInviteMessageV2:type_name -> WAWebProtobufsE2E.NewsletterFollowerInviteMessage - 133, // 267: WAWebProtobufsE2E.Message.requestContactInfoMessage:type_name -> WAWebProtobufsE2E.RequestContactInfoMessage - 101, // 268: WAWebProtobufsE2E.AlbumMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 101, // 269: WAWebProtobufsE2E.MessageHistoryNotice.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 112, // 270: WAWebProtobufsE2E.MessageHistoryNotice.messageHistoryMetadata:type_name -> WAWebProtobufsE2E.MessageHistoryMetadata - 101, // 271: WAWebProtobufsE2E.MessageHistoryBundle.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 112, // 272: WAWebProtobufsE2E.MessageHistoryBundle.messageHistoryMetadata:type_name -> WAWebProtobufsE2E.MessageHistoryMetadata - 260, // 273: WAWebProtobufsE2E.EncEventResponseMessage.eventCreationMessageKey:type_name -> WACommon.MessageKey - 101, // 274: WAWebProtobufsE2E.EventMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 164, // 275: WAWebProtobufsE2E.EventMessage.location:type_name -> WAWebProtobufsE2E.LocationMessage - 110, // 276: WAWebProtobufsE2E.CommentMessage.message:type_name -> WAWebProtobufsE2E.Message - 260, // 277: WAWebProtobufsE2E.CommentMessage.targetMessageKey:type_name -> WACommon.MessageKey - 260, // 278: WAWebProtobufsE2E.EncCommentMessage.targetMessageKey:type_name -> WACommon.MessageKey - 260, // 279: WAWebProtobufsE2E.EncReactionMessage.targetMessageKey:type_name -> WACommon.MessageKey - 260, // 280: WAWebProtobufsE2E.KeepInChatMessage.key:type_name -> WACommon.MessageKey - 5, // 281: WAWebProtobufsE2E.KeepInChatMessage.keepType:type_name -> WAWebProtobufsE2E.KeepType - 260, // 282: WAWebProtobufsE2E.QuestionResponseMessage.key:type_name -> WACommon.MessageKey - 260, // 283: WAWebProtobufsE2E.StatusQuestionAnswerMessage.key:type_name -> WACommon.MessageKey - 250, // 284: WAWebProtobufsE2E.PollResultSnapshotMessage.pollVotes:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage.PollVote - 101, // 285: WAWebProtobufsE2E.PollResultSnapshotMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 124, // 267: WAWebProtobufsE2E.Message.pollResultSnapshotMessageV3:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage + 102, // 268: WAWebProtobufsE2E.AlbumMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 102, // 269: WAWebProtobufsE2E.MessageHistoryNotice.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 113, // 270: WAWebProtobufsE2E.MessageHistoryNotice.messageHistoryMetadata:type_name -> WAWebProtobufsE2E.MessageHistoryMetadata + 102, // 271: WAWebProtobufsE2E.MessageHistoryBundle.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 113, // 272: WAWebProtobufsE2E.MessageHistoryBundle.messageHistoryMetadata:type_name -> WAWebProtobufsE2E.MessageHistoryMetadata + 261, // 273: WAWebProtobufsE2E.EncEventResponseMessage.eventCreationMessageKey:type_name -> WACommon.MessageKey + 102, // 274: WAWebProtobufsE2E.EventMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 165, // 275: WAWebProtobufsE2E.EventMessage.location:type_name -> WAWebProtobufsE2E.LocationMessage + 111, // 276: WAWebProtobufsE2E.CommentMessage.message:type_name -> WAWebProtobufsE2E.Message + 261, // 277: WAWebProtobufsE2E.CommentMessage.targetMessageKey:type_name -> WACommon.MessageKey + 261, // 278: WAWebProtobufsE2E.EncCommentMessage.targetMessageKey:type_name -> WACommon.MessageKey + 261, // 279: WAWebProtobufsE2E.EncReactionMessage.targetMessageKey:type_name -> WACommon.MessageKey + 261, // 280: WAWebProtobufsE2E.KeepInChatMessage.key:type_name -> WACommon.MessageKey + 6, // 281: WAWebProtobufsE2E.KeepInChatMessage.keepType:type_name -> WAWebProtobufsE2E.KeepType + 261, // 282: WAWebProtobufsE2E.QuestionResponseMessage.key:type_name -> WACommon.MessageKey + 261, // 283: WAWebProtobufsE2E.StatusQuestionAnswerMessage.key:type_name -> WACommon.MessageKey + 251, // 284: WAWebProtobufsE2E.PollResultSnapshotMessage.pollVotes:type_name -> WAWebProtobufsE2E.PollResultSnapshotMessage.PollVote + 102, // 285: WAWebProtobufsE2E.PollResultSnapshotMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo 0, // 286: WAWebProtobufsE2E.PollResultSnapshotMessage.pollType:type_name -> WAWebProtobufsE2E.PollType - 260, // 287: WAWebProtobufsE2E.PollUpdateMessage.pollCreationMessageKey:type_name -> WACommon.MessageKey - 125, // 288: WAWebProtobufsE2E.PollUpdateMessage.vote:type_name -> WAWebProtobufsE2E.PollEncValue - 126, // 289: WAWebProtobufsE2E.PollUpdateMessage.metadata:type_name -> WAWebProtobufsE2E.PollUpdateMessageMetadata - 251, // 290: WAWebProtobufsE2E.PollCreationMessage.options:type_name -> WAWebProtobufsE2E.PollCreationMessage.Option - 101, // 291: WAWebProtobufsE2E.PollCreationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 261, // 287: WAWebProtobufsE2E.PollUpdateMessage.pollCreationMessageKey:type_name -> WACommon.MessageKey + 126, // 288: WAWebProtobufsE2E.PollUpdateMessage.vote:type_name -> WAWebProtobufsE2E.PollEncValue + 127, // 289: WAWebProtobufsE2E.PollUpdateMessage.metadata:type_name -> WAWebProtobufsE2E.PollUpdateMessageMetadata + 252, // 290: WAWebProtobufsE2E.PollCreationMessage.options:type_name -> WAWebProtobufsE2E.PollCreationMessage.Option + 102, // 291: WAWebProtobufsE2E.PollCreationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo 1, // 292: WAWebProtobufsE2E.PollCreationMessage.pollContentType:type_name -> WAWebProtobufsE2E.PollContentType 0, // 293: WAWebProtobufsE2E.PollCreationMessage.pollType:type_name -> WAWebProtobufsE2E.PollType - 251, // 294: WAWebProtobufsE2E.PollCreationMessage.correctAnswer:type_name -> WAWebProtobufsE2E.PollCreationMessage.Option - 260, // 295: WAWebProtobufsE2E.ReactionMessage.key:type_name -> WACommon.MessageKey - 110, // 296: WAWebProtobufsE2E.FutureProofMessage.message:type_name -> WAWebProtobufsE2E.Message - 110, // 297: WAWebProtobufsE2E.DeviceSentMessage.message:type_name -> WAWebProtobufsE2E.Message - 101, // 298: WAWebProtobufsE2E.RequestContactInfoMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 101, // 299: WAWebProtobufsE2E.RequestPhoneNumberMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 101, // 300: WAWebProtobufsE2E.NewsletterFollowerInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 101, // 301: WAWebProtobufsE2E.NewsletterAdminInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 252, // 302: WAWebProtobufsE2E.ProductMessage.product:type_name -> WAWebProtobufsE2E.ProductMessage.ProductSnapshot - 253, // 303: WAWebProtobufsE2E.ProductMessage.catalog:type_name -> WAWebProtobufsE2E.ProductMessage.CatalogSnapshot - 101, // 304: WAWebProtobufsE2E.ProductMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 101, // 305: WAWebProtobufsE2E.TemplateButtonReplyMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 255, // 306: WAWebProtobufsE2E.TemplateMessage.fourRowTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.FourRowTemplate - 254, // 307: WAWebProtobufsE2E.TemplateMessage.hydratedFourRowTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate - 82, // 308: WAWebProtobufsE2E.TemplateMessage.interactiveMessageTemplate:type_name -> WAWebProtobufsE2E.InteractiveMessage - 101, // 309: WAWebProtobufsE2E.TemplateMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 254, // 310: WAWebProtobufsE2E.TemplateMessage.hydratedTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate - 101, // 311: WAWebProtobufsE2E.StickerMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 4, // 312: WAWebProtobufsE2E.StickerMessage.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain - 101, // 313: WAWebProtobufsE2E.LiveLocationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 260, // 314: WAWebProtobufsE2E.CancelPaymentRequestMessage.key:type_name -> WACommon.MessageKey - 260, // 315: WAWebProtobufsE2E.DeclinePaymentRequestMessage.key:type_name -> WACommon.MessageKey - 110, // 316: WAWebProtobufsE2E.RequestPaymentMessage.noteMessage:type_name -> WAWebProtobufsE2E.Message - 176, // 317: WAWebProtobufsE2E.RequestPaymentMessage.amount:type_name -> WAWebProtobufsE2E.Money - 107, // 318: WAWebProtobufsE2E.RequestPaymentMessage.background:type_name -> WAWebProtobufsE2E.PaymentBackground - 110, // 319: WAWebProtobufsE2E.SendPaymentMessage.noteMessage:type_name -> WAWebProtobufsE2E.Message - 260, // 320: WAWebProtobufsE2E.SendPaymentMessage.requestMessageKey:type_name -> WACommon.MessageKey - 107, // 321: WAWebProtobufsE2E.SendPaymentMessage.background:type_name -> WAWebProtobufsE2E.PaymentBackground - 165, // 322: WAWebProtobufsE2E.ContactsArrayMessage.contacts:type_name -> WAWebProtobufsE2E.ContactMessage - 101, // 323: WAWebProtobufsE2E.ContactsArrayMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 154, // 324: WAWebProtobufsE2E.AppStateSyncKeyRequest.keyIDs:type_name -> WAWebProtobufsE2E.AppStateSyncKeyId - 155, // 325: WAWebProtobufsE2E.AppStateSyncKeyShare.keys:type_name -> WAWebProtobufsE2E.AppStateSyncKey - 153, // 326: WAWebProtobufsE2E.AppStateSyncKeyData.fingerprint:type_name -> WAWebProtobufsE2E.AppStateSyncKeyFingerprint - 154, // 327: WAWebProtobufsE2E.AppStateSyncKey.keyID:type_name -> WAWebProtobufsE2E.AppStateSyncKeyId - 152, // 328: WAWebProtobufsE2E.AppStateSyncKey.keyData:type_name -> WAWebProtobufsE2E.AppStateSyncKeyData - 3, // 329: WAWebProtobufsE2E.HistorySyncNotification.syncType:type_name -> WAWebProtobufsE2E.HistorySyncType - 148, // 330: WAWebProtobufsE2E.HistorySyncNotification.fullHistorySyncOnDemandRequestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata - 101, // 331: WAWebProtobufsE2E.Call.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 101, // 332: WAWebProtobufsE2E.AudioMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 4, // 333: WAWebProtobufsE2E.AudioMessage.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain - 101, // 334: WAWebProtobufsE2E.DocumentMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 4, // 335: WAWebProtobufsE2E.DocumentMessage.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain - 4, // 336: WAWebProtobufsE2E.MMSThumbnailMetadata.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain - 101, // 337: WAWebProtobufsE2E.LocationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 101, // 338: WAWebProtobufsE2E.ContactMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 267, // 339: WAWebProtobufsE2E.DeviceListMetadata.senderAccountType:type_name -> WAAdv.ADVEncryptionType - 267, // 340: WAWebProtobufsE2E.DeviceListMetadata.receiverAccountType:type_name -> WAAdv.ADVEncryptionType - 110, // 341: WAWebProtobufsE2E.EmbeddedMessage.message:type_name -> WAWebProtobufsE2E.Message - 169, // 342: WAWebProtobufsE2E.EmbeddedContent.embeddedMessage:type_name -> WAWebProtobufsE2E.EmbeddedMessage - 170, // 343: WAWebProtobufsE2E.EmbeddedContent.embeddedMusic:type_name -> WAWebProtobufsE2E.EmbeddedMusic - 258, // 344: WAWebProtobufsE2E.TemplateButton.quickReplyButton:type_name -> WAWebProtobufsE2E.TemplateButton.QuickReplyButton - 257, // 345: WAWebProtobufsE2E.TemplateButton.urlButton:type_name -> WAWebProtobufsE2E.TemplateButton.URLButton - 256, // 346: WAWebProtobufsE2E.TemplateButton.callButton:type_name -> WAWebProtobufsE2E.TemplateButton.CallButton - 259, // 347: WAWebProtobufsE2E.UrlTrackingMap.urlTrackingMapElements:type_name -> WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElement - 268, // 348: WAWebProtobufsE2E.AIRichResponseMessage.messageType:type_name -> WAAICommon.AIRichResponseMessageType - 269, // 349: WAWebProtobufsE2E.AIRichResponseMessage.submessages:type_name -> WAAICommon.AIRichResponseSubMessage - 270, // 350: WAWebProtobufsE2E.AIRichResponseMessage.unifiedResponse:type_name -> WAAICommon.AIRichResponseUnifiedResponse - 101, // 351: WAWebProtobufsE2E.AIRichResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo - 260, // 352: WAWebProtobufsE2E.AIQueryFanout.messageKey:type_name -> WACommon.MessageKey - 110, // 353: WAWebProtobufsE2E.AIQueryFanout.message:type_name -> WAWebProtobufsE2E.Message - 9, // 354: WAWebProtobufsE2E.CallLogMessage.CallParticipant.callOutcome:type_name -> WAWebProtobufsE2E.CallLogMessage.CallOutcome - 190, // 355: WAWebProtobufsE2E.ButtonsMessage.Button.buttonText:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.ButtonText - 18, // 356: WAWebProtobufsE2E.ButtonsMessage.Button.type:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.Type - 189, // 357: WAWebProtobufsE2E.ButtonsMessage.Button.nativeFlowInfo:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfo - 21, // 358: WAWebProtobufsE2E.InteractiveResponseMessage.Body.format:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.Body.Format - 82, // 359: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.cards:type_name -> WAWebProtobufsE2E.InteractiveMessage - 22, // 360: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.carouselCardType:type_name -> WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.CarouselCardType - 23, // 361: WAWebProtobufsE2E.InteractiveMessage.ShopMessage.surface:type_name -> WAWebProtobufsE2E.InteractiveMessage.ShopMessage.Surface - 200, // 362: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.buttons:type_name -> WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButton - 159, // 363: WAWebProtobufsE2E.InteractiveMessage.Footer.audioMessage:type_name -> WAWebProtobufsE2E.AudioMessage - 160, // 364: WAWebProtobufsE2E.InteractiveMessage.Header.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 100, // 365: WAWebProtobufsE2E.InteractiveMessage.Header.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 94, // 366: WAWebProtobufsE2E.InteractiveMessage.Header.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 164, // 367: WAWebProtobufsE2E.InteractiveMessage.Header.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 137, // 368: WAWebProtobufsE2E.InteractiveMessage.Header.productMessage:type_name -> WAWebProtobufsE2E.ProductMessage - 204, // 369: WAWebProtobufsE2E.ListMessage.ProductListInfo.productSections:type_name -> WAWebProtobufsE2E.ListMessage.ProductSection - 203, // 370: WAWebProtobufsE2E.ListMessage.ProductListInfo.headerImage:type_name -> WAWebProtobufsE2E.ListMessage.ProductListHeaderImage - 205, // 371: WAWebProtobufsE2E.ListMessage.ProductSection.products:type_name -> WAWebProtobufsE2E.ListMessage.Product - 207, // 372: WAWebProtobufsE2E.ListMessage.Section.rows:type_name -> WAWebProtobufsE2E.ListMessage.Row - 210, // 373: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.currency:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency - 209, // 374: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.dateTime:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime - 211, // 375: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.component:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent - 212, // 376: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.unixEpoch:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch - 31, // 377: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.dayOfWeek:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType - 30, // 378: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.calendar:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType - 271, // 379: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.mediaUploadResult:type_name -> WAMmsRetry.MediaRetryNotification.ResultType - 140, // 380: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.stickerMessage:type_name -> WAWebProtobufsE2E.StickerMessage - 221, // 381: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.linkPreviewResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse - 220, // 382: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.placeholderMessageResendResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse - 218, // 383: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.waffleNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse - 219, // 384: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.fullHistorySyncOnDemandRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse - 217, // 385: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.companionMetaNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse - 215, // 386: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.syncdSnapshotFatalRecoveryResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse - 216, // 387: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.companionCanonicalUserNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse - 214, // 388: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.historySyncChunkRetryResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse - 3, // 389: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse.syncType:type_name -> WAWebProtobufsE2E.HistorySyncType - 32, // 390: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse.responseCode:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode - 148, // 391: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.requestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata - 33, // 392: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.responseCode:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode - 223, // 393: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.hqThumbnail:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail - 222, // 394: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.previewMetadata:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata - 34, // 395: WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction.type:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType - 3, // 396: WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest.syncType:type_name -> WAWebProtobufsE2E.HistorySyncType - 260, // 397: WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest.messageKey:type_name -> WACommon.MessageKey - 148, // 398: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.requestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata - 272, // 399: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.historySyncConfig:type_name -> WACompanionReg.DeviceProps.HistorySyncConfig - 44, // 400: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.headerType:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType - 53, // 401: WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata.audienceType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata.AudienceType - 245, // 402: WAWebProtobufsE2E.ContextInfo.DataSharingContext.parameters:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters - 55, // 403: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.contentType:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentType - 57, // 404: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.mediaType:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaType - 56, // 405: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.adType:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.AdType - 58, // 406: WAWebProtobufsE2E.ContextInfo.AdReplyInfo.mediaType:type_name -> WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaType - 110, // 407: WAWebProtobufsE2E.ContextInfo.QuestionReplyQuotedMessage.quotedQuestion:type_name -> WAWebProtobufsE2E.Message - 110, // 408: WAWebProtobufsE2E.ContextInfo.QuestionReplyQuotedMessage.quotedResponse:type_name -> WAWebProtobufsE2E.Message - 245, // 409: WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters.contents:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters - 63, // 410: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.webviewPresentation:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType - 100, // 411: WAWebProtobufsE2E.ProductMessage.ProductSnapshot.productImage:type_name -> WAWebProtobufsE2E.ImageMessage - 100, // 412: WAWebProtobufsE2E.ProductMessage.CatalogSnapshot.catalogImage:type_name -> WAWebProtobufsE2E.ImageMessage - 160, // 413: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 100, // 414: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 94, // 415: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 164, // 416: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 106, // 417: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.hydratedButtons:type_name -> WAWebProtobufsE2E.HydratedTemplateButton - 160, // 418: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage - 88, // 419: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.highlyStructuredMessage:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 100, // 420: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage - 94, // 421: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage - 164, // 422: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage - 88, // 423: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.content:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 88, // 424: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.footer:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 175, // 425: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.buttons:type_name -> WAWebProtobufsE2E.TemplateButton - 88, // 426: WAWebProtobufsE2E.TemplateButton.CallButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 88, // 427: WAWebProtobufsE2E.TemplateButton.CallButton.phoneNumber:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 88, // 428: WAWebProtobufsE2E.TemplateButton.URLButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 88, // 429: WAWebProtobufsE2E.TemplateButton.URLButton.URL:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 88, // 430: WAWebProtobufsE2E.TemplateButton.QuickReplyButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage - 431, // [431:431] is the sub-list for method output_type - 431, // [431:431] is the sub-list for method input_type - 431, // [431:431] is the sub-list for extension type_name - 431, // [431:431] is the sub-list for extension extendee - 0, // [0:431] is the sub-list for field type_name + 252, // 294: WAWebProtobufsE2E.PollCreationMessage.correctAnswer:type_name -> WAWebProtobufsE2E.PollCreationMessage.Option + 261, // 295: WAWebProtobufsE2E.ReactionMessage.key:type_name -> WACommon.MessageKey + 111, // 296: WAWebProtobufsE2E.FutureProofMessage.message:type_name -> WAWebProtobufsE2E.Message + 111, // 297: WAWebProtobufsE2E.DeviceSentMessage.message:type_name -> WAWebProtobufsE2E.Message + 102, // 298: WAWebProtobufsE2E.RequestPhoneNumberMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 102, // 299: WAWebProtobufsE2E.NewsletterFollowerInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 102, // 300: WAWebProtobufsE2E.NewsletterAdminInviteMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 253, // 301: WAWebProtobufsE2E.ProductMessage.product:type_name -> WAWebProtobufsE2E.ProductMessage.ProductSnapshot + 254, // 302: WAWebProtobufsE2E.ProductMessage.catalog:type_name -> WAWebProtobufsE2E.ProductMessage.CatalogSnapshot + 102, // 303: WAWebProtobufsE2E.ProductMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 102, // 304: WAWebProtobufsE2E.TemplateButtonReplyMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 256, // 305: WAWebProtobufsE2E.TemplateMessage.fourRowTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.FourRowTemplate + 255, // 306: WAWebProtobufsE2E.TemplateMessage.hydratedFourRowTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate + 83, // 307: WAWebProtobufsE2E.TemplateMessage.interactiveMessageTemplate:type_name -> WAWebProtobufsE2E.InteractiveMessage + 102, // 308: WAWebProtobufsE2E.TemplateMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 255, // 309: WAWebProtobufsE2E.TemplateMessage.hydratedTemplate:type_name -> WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate + 102, // 310: WAWebProtobufsE2E.StickerMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 4, // 311: WAWebProtobufsE2E.StickerMessage.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain + 102, // 312: WAWebProtobufsE2E.LiveLocationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 261, // 313: WAWebProtobufsE2E.CancelPaymentRequestMessage.key:type_name -> WACommon.MessageKey + 261, // 314: WAWebProtobufsE2E.DeclinePaymentRequestMessage.key:type_name -> WACommon.MessageKey + 111, // 315: WAWebProtobufsE2E.RequestPaymentMessage.noteMessage:type_name -> WAWebProtobufsE2E.Message + 177, // 316: WAWebProtobufsE2E.RequestPaymentMessage.amount:type_name -> WAWebProtobufsE2E.Money + 108, // 317: WAWebProtobufsE2E.RequestPaymentMessage.background:type_name -> WAWebProtobufsE2E.PaymentBackground + 111, // 318: WAWebProtobufsE2E.SendPaymentMessage.noteMessage:type_name -> WAWebProtobufsE2E.Message + 261, // 319: WAWebProtobufsE2E.SendPaymentMessage.requestMessageKey:type_name -> WACommon.MessageKey + 108, // 320: WAWebProtobufsE2E.SendPaymentMessage.background:type_name -> WAWebProtobufsE2E.PaymentBackground + 166, // 321: WAWebProtobufsE2E.ContactsArrayMessage.contacts:type_name -> WAWebProtobufsE2E.ContactMessage + 102, // 322: WAWebProtobufsE2E.ContactsArrayMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 154, // 323: WAWebProtobufsE2E.AppStateSyncKeyRequest.keyIDs:type_name -> WAWebProtobufsE2E.AppStateSyncKeyId + 155, // 324: WAWebProtobufsE2E.AppStateSyncKeyShare.keys:type_name -> WAWebProtobufsE2E.AppStateSyncKey + 153, // 325: WAWebProtobufsE2E.AppStateSyncKeyData.fingerprint:type_name -> WAWebProtobufsE2E.AppStateSyncKeyFingerprint + 154, // 326: WAWebProtobufsE2E.AppStateSyncKey.keyID:type_name -> WAWebProtobufsE2E.AppStateSyncKeyId + 152, // 327: WAWebProtobufsE2E.AppStateSyncKey.keyData:type_name -> WAWebProtobufsE2E.AppStateSyncKeyData + 3, // 328: WAWebProtobufsE2E.HistorySyncNotification.syncType:type_name -> WAWebProtobufsE2E.HistorySyncType + 148, // 329: WAWebProtobufsE2E.HistorySyncNotification.fullHistorySyncOnDemandRequestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata + 157, // 330: WAWebProtobufsE2E.HistorySyncNotification.messageAccessStatus:type_name -> WAWebProtobufsE2E.HistorySyncMessageAccessStatus + 102, // 331: WAWebProtobufsE2E.Call.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 105, // 332: WAWebProtobufsE2E.Call.messageContextInfo:type_name -> WAWebProtobufsE2E.MessageContextInfo + 102, // 333: WAWebProtobufsE2E.AudioMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 4, // 334: WAWebProtobufsE2E.AudioMessage.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain + 102, // 335: WAWebProtobufsE2E.DocumentMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 4, // 336: WAWebProtobufsE2E.DocumentMessage.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain + 4, // 337: WAWebProtobufsE2E.MMSThumbnailMetadata.mediaKeyDomain:type_name -> WAWebProtobufsE2E.MediaKeyDomain + 102, // 338: WAWebProtobufsE2E.LocationMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 102, // 339: WAWebProtobufsE2E.ContactMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 268, // 340: WAWebProtobufsE2E.DeviceListMetadata.senderAccountType:type_name -> WAAdv.ADVEncryptionType + 268, // 341: WAWebProtobufsE2E.DeviceListMetadata.receiverAccountType:type_name -> WAAdv.ADVEncryptionType + 111, // 342: WAWebProtobufsE2E.EmbeddedMessage.message:type_name -> WAWebProtobufsE2E.Message + 170, // 343: WAWebProtobufsE2E.EmbeddedContent.embeddedMessage:type_name -> WAWebProtobufsE2E.EmbeddedMessage + 171, // 344: WAWebProtobufsE2E.EmbeddedContent.embeddedMusic:type_name -> WAWebProtobufsE2E.EmbeddedMusic + 259, // 345: WAWebProtobufsE2E.TemplateButton.quickReplyButton:type_name -> WAWebProtobufsE2E.TemplateButton.QuickReplyButton + 258, // 346: WAWebProtobufsE2E.TemplateButton.urlButton:type_name -> WAWebProtobufsE2E.TemplateButton.URLButton + 257, // 347: WAWebProtobufsE2E.TemplateButton.callButton:type_name -> WAWebProtobufsE2E.TemplateButton.CallButton + 260, // 348: WAWebProtobufsE2E.UrlTrackingMap.urlTrackingMapElements:type_name -> WAWebProtobufsE2E.UrlTrackingMap.UrlTrackingMapElement + 269, // 349: WAWebProtobufsE2E.AIRichResponseMessage.messageType:type_name -> WAAICommon.AIRichResponseMessageType + 270, // 350: WAWebProtobufsE2E.AIRichResponseMessage.submessages:type_name -> WAAICommon.AIRichResponseSubMessage + 271, // 351: WAWebProtobufsE2E.AIRichResponseMessage.unifiedResponse:type_name -> WAAICommon.AIRichResponseUnifiedResponse + 102, // 352: WAWebProtobufsE2E.AIRichResponseMessage.contextInfo:type_name -> WAWebProtobufsE2E.ContextInfo + 261, // 353: WAWebProtobufsE2E.AIQueryFanout.messageKey:type_name -> WACommon.MessageKey + 111, // 354: WAWebProtobufsE2E.AIQueryFanout.message:type_name -> WAWebProtobufsE2E.Message + 10, // 355: WAWebProtobufsE2E.CallLogMessage.CallParticipant.callOutcome:type_name -> WAWebProtobufsE2E.CallLogMessage.CallOutcome + 191, // 356: WAWebProtobufsE2E.ButtonsMessage.Button.buttonText:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.ButtonText + 19, // 357: WAWebProtobufsE2E.ButtonsMessage.Button.type:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.Type + 190, // 358: WAWebProtobufsE2E.ButtonsMessage.Button.nativeFlowInfo:type_name -> WAWebProtobufsE2E.ButtonsMessage.Button.NativeFlowInfo + 22, // 359: WAWebProtobufsE2E.InteractiveResponseMessage.Body.format:type_name -> WAWebProtobufsE2E.InteractiveResponseMessage.Body.Format + 83, // 360: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.cards:type_name -> WAWebProtobufsE2E.InteractiveMessage + 23, // 361: WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.carouselCardType:type_name -> WAWebProtobufsE2E.InteractiveMessage.CarouselMessage.CarouselCardType + 24, // 362: WAWebProtobufsE2E.InteractiveMessage.ShopMessage.surface:type_name -> WAWebProtobufsE2E.InteractiveMessage.ShopMessage.Surface + 201, // 363: WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.buttons:type_name -> WAWebProtobufsE2E.InteractiveMessage.NativeFlowMessage.NativeFlowButton + 160, // 364: WAWebProtobufsE2E.InteractiveMessage.Footer.audioMessage:type_name -> WAWebProtobufsE2E.AudioMessage + 161, // 365: WAWebProtobufsE2E.InteractiveMessage.Header.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 101, // 366: WAWebProtobufsE2E.InteractiveMessage.Header.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 95, // 367: WAWebProtobufsE2E.InteractiveMessage.Header.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 165, // 368: WAWebProtobufsE2E.InteractiveMessage.Header.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 137, // 369: WAWebProtobufsE2E.InteractiveMessage.Header.productMessage:type_name -> WAWebProtobufsE2E.ProductMessage + 205, // 370: WAWebProtobufsE2E.ListMessage.ProductListInfo.productSections:type_name -> WAWebProtobufsE2E.ListMessage.ProductSection + 204, // 371: WAWebProtobufsE2E.ListMessage.ProductListInfo.headerImage:type_name -> WAWebProtobufsE2E.ListMessage.ProductListHeaderImage + 206, // 372: WAWebProtobufsE2E.ListMessage.ProductSection.products:type_name -> WAWebProtobufsE2E.ListMessage.Product + 208, // 373: WAWebProtobufsE2E.ListMessage.Section.rows:type_name -> WAWebProtobufsE2E.ListMessage.Row + 211, // 374: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.currency:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMCurrency + 210, // 375: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.dateTime:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime + 212, // 376: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.component:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent + 213, // 377: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.unixEpoch:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeUnixEpoch + 32, // 378: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.dayOfWeek:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.DayOfWeekType + 31, // 379: WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.calendar:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage.HSMLocalizableParameter.HSMDateTime.HSMDateTimeComponent.CalendarType + 272, // 380: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.mediaUploadResult:type_name -> WAMmsRetry.MediaRetryNotification.ResultType + 140, // 381: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.stickerMessage:type_name -> WAWebProtobufsE2E.StickerMessage + 222, // 382: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.linkPreviewResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse + 221, // 383: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.placeholderMessageResendResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.PlaceholderMessageResendResponse + 219, // 384: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.waffleNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.WaffleNonceFetchResponse + 220, // 385: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.fullHistorySyncOnDemandRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse + 218, // 386: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.companionMetaNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionMetaNonceFetchResponse + 216, // 387: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.syncdSnapshotFatalRecoveryResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.SyncDSnapshotFatalRecoveryResponse + 217, // 388: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.companionCanonicalUserNonceFetchRequestResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.CompanionCanonicalUserNonceFetchResponse + 215, // 389: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.historySyncChunkRetryResponse:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse + 3, // 390: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse.syncType:type_name -> WAWebProtobufsE2E.HistorySyncType + 33, // 391: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponse.responseCode:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.HistorySyncChunkRetryResponseCode + 148, // 392: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.requestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata + 34, // 393: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandRequestResponse.responseCode:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.FullHistorySyncOnDemandResponseCode + 224, // 394: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.hqThumbnail:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.LinkPreviewHighQualityThumbnail + 223, // 395: WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.previewMetadata:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestResponseMessage.PeerDataOperationResult.LinkPreviewResponse.PaymentLinkPreviewMetadata + 35, // 396: WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction.type:type_name -> WAWebProtobufsE2E.PeerDataOperationRequestMessage.GalaxyFlowAction.GalaxyFlowActionType + 3, // 397: WAWebProtobufsE2E.PeerDataOperationRequestMessage.HistorySyncChunkRetryRequest.syncType:type_name -> WAWebProtobufsE2E.HistorySyncType + 261, // 398: WAWebProtobufsE2E.PeerDataOperationRequestMessage.PlaceholderMessageResendRequest.messageKey:type_name -> WACommon.MessageKey + 148, // 399: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.requestMetadata:type_name -> WAWebProtobufsE2E.FullHistorySyncOnDemandRequestMetadata + 273, // 400: WAWebProtobufsE2E.PeerDataOperationRequestMessage.FullHistorySyncOnDemandRequest.historySyncConfig:type_name -> WACompanionReg.DeviceProps.HistorySyncConfig + 45, // 401: WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.headerType:type_name -> WAWebProtobufsE2E.PaymentLinkMetadata.PaymentLinkHeader.PaymentLinkHeaderType + 54, // 402: WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata.audienceType:type_name -> WAWebProtobufsE2E.ContextInfo.StatusAudienceMetadata.AudienceType + 246, // 403: WAWebProtobufsE2E.ContextInfo.DataSharingContext.parameters:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters + 56, // 404: WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.contentType:type_name -> WAWebProtobufsE2E.ContextInfo.ForwardedNewsletterMessageInfo.ContentType + 58, // 405: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.mediaType:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.MediaType + 57, // 406: WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.adType:type_name -> WAWebProtobufsE2E.ContextInfo.ExternalAdReplyInfo.AdType + 59, // 407: WAWebProtobufsE2E.ContextInfo.AdReplyInfo.mediaType:type_name -> WAWebProtobufsE2E.ContextInfo.AdReplyInfo.MediaType + 111, // 408: WAWebProtobufsE2E.ContextInfo.QuestionReplyQuotedMessage.quotedQuestion:type_name -> WAWebProtobufsE2E.Message + 111, // 409: WAWebProtobufsE2E.ContextInfo.QuestionReplyQuotedMessage.quotedResponse:type_name -> WAWebProtobufsE2E.Message + 246, // 410: WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters.contents:type_name -> WAWebProtobufsE2E.ContextInfo.DataSharingContext.Parameters + 64, // 411: WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.webviewPresentation:type_name -> WAWebProtobufsE2E.HydratedTemplateButton.HydratedURLButton.WebviewPresentationType + 101, // 412: WAWebProtobufsE2E.ProductMessage.ProductSnapshot.productImage:type_name -> WAWebProtobufsE2E.ImageMessage + 101, // 413: WAWebProtobufsE2E.ProductMessage.CatalogSnapshot.catalogImage:type_name -> WAWebProtobufsE2E.ImageMessage + 161, // 414: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 101, // 415: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 95, // 416: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 165, // 417: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 107, // 418: WAWebProtobufsE2E.TemplateMessage.HydratedFourRowTemplate.hydratedButtons:type_name -> WAWebProtobufsE2E.HydratedTemplateButton + 161, // 419: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.documentMessage:type_name -> WAWebProtobufsE2E.DocumentMessage + 89, // 420: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.highlyStructuredMessage:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 101, // 421: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.imageMessage:type_name -> WAWebProtobufsE2E.ImageMessage + 95, // 422: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.videoMessage:type_name -> WAWebProtobufsE2E.VideoMessage + 165, // 423: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.locationMessage:type_name -> WAWebProtobufsE2E.LocationMessage + 89, // 424: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.content:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 89, // 425: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.footer:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 176, // 426: WAWebProtobufsE2E.TemplateMessage.FourRowTemplate.buttons:type_name -> WAWebProtobufsE2E.TemplateButton + 89, // 427: WAWebProtobufsE2E.TemplateButton.CallButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 89, // 428: WAWebProtobufsE2E.TemplateButton.CallButton.phoneNumber:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 89, // 429: WAWebProtobufsE2E.TemplateButton.URLButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 89, // 430: WAWebProtobufsE2E.TemplateButton.URLButton.URL:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 89, // 431: WAWebProtobufsE2E.TemplateButton.QuickReplyButton.displayText:type_name -> WAWebProtobufsE2E.HighlyStructuredMessage + 432, // [432:432] is the sub-list for method output_type + 432, // [432:432] is the sub-list for method input_type + 432, // [432:432] is the sub-list for extension type_name + 432, // [432:432] is the sub-list for extension extendee + 0, // [0:432] is the sub-list for field type_name } func init() { file_waE2E_WAWebProtobufsE2E_proto_init() } @@ -23161,7 +23246,7 @@ func file_waE2E_WAWebProtobufsE2E_proto_init() { (*HydratedTemplateButton_UrlButton)(nil), (*HydratedTemplateButton_CallButton)(nil), } - file_waE2E_WAWebProtobufsE2E_proto_msgTypes[71].OneofWrappers = []any{ + file_waE2E_WAWebProtobufsE2E_proto_msgTypes[70].OneofWrappers = []any{ (*TemplateMessage_FourRowTemplate_)(nil), (*TemplateMessage_HydratedFourRowTemplate_)(nil), (*TemplateMessage_InteractiveMessageTemplate)(nil), @@ -23213,7 +23298,7 @@ func file_waE2E_WAWebProtobufsE2E_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_waE2E_WAWebProtobufsE2E_proto_rawDesc), len(file_waE2E_WAWebProtobufsE2E_proto_rawDesc)), - NumEnums: 68, + NumEnums: 69, NumMessages: 192, NumExtensions: 0, NumServices: 0, diff --git a/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto b/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto index 712d0bb6..8fc4a820 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto @@ -44,6 +44,7 @@ enum HistorySyncType { NON_BLOCKING_DATA = 5; ON_DEMAND = 6; NO_HISTORY = 7; + MESSAGE_ACCESS_STATUS = 8; } enum MediaKeyDomain { @@ -54,6 +55,11 @@ enum MediaKeyDomain { BOT = 4; } +enum WebLinkRenderConfig { + WEBVIEW = 0; + SYSTEM = 1; +} + enum KeepType { UNKNOWN_KEEP_TYPE = 0; KEEP_FOR_ALL = 1; @@ -1342,6 +1348,7 @@ message MessageContextInfo { optional WACommon.LimitSharing limitSharing = 13; optional WACommon.LimitSharing limitSharingV2 = 14; repeated ThreadID threadID = 15; + optional WebLinkRenderConfig weblinkRenderConfig = 16; } message InteractiveAnnotation { @@ -1558,9 +1565,8 @@ message Message { optional StatusQuotedMessage statusQuotedMessage = 109; optional StatusStickerInteractionMessage statusStickerInteractionMessage = 110; optional PollCreationMessage pollCreationMessageV5 = 111; - optional PollResultSnapshotMessage pollResultSnapshotMessageV2 = 112; optional NewsletterFollowerInviteMessage newsletterFollowerInviteMessageV2 = 113; - optional RequestContactInfoMessage requestContactInfoMessage = 114; + optional PollResultSnapshotMessage pollResultSnapshotMessageV3 = 115; } message AlbumMessage { @@ -1608,6 +1614,8 @@ message EventMessage { optional int64 endTime = 8; optional bool extraGuestsAllowed = 9; optional bool isScheduleCall = 10; + optional bool hasReminder = 11; + optional int64 reminderOffsetSec = 12; } message CommentMessage { @@ -1713,12 +1721,6 @@ message DeviceSentMessage { optional string phash = 3; } -message RequestContactInfoMessage { - optional string text = 1; - optional string ctaButtonText = 2; - optional ContextInfo contextInfo = 3; -} - message RequestPhoneNumberMessage { optional ContextInfo contextInfo = 1; } @@ -1945,6 +1947,11 @@ message HistorySyncNotification { optional string peerDataRequestSessionID = 12; optional FullHistorySyncOnDemandRequestMetadata fullHistorySyncOnDemandRequestMetadata = 13; optional string encHandle = 14; + optional HistorySyncMessageAccessStatus messageAccessStatus = 15; +} + +message HistorySyncMessageAccessStatus { + optional bool completeAccessGranted = 1; } message Chat { @@ -1962,6 +1969,7 @@ message Call { optional ContextInfo contextInfo = 7; optional string nativeFlowCallButtonPayload = 8; optional string deeplinkPayload = 9; + optional MessageContextInfo messageContextInfo = 10; } message AudioMessage { diff --git a/vendor/go.mau.fi/whatsmeow/proto/waE2E/legacy.go b/vendor/go.mau.fi/whatsmeow/proto/waE2E/legacy.go deleted file mode 100644 index c5af65f1..00000000 --- a/vendor/go.mau.fi/whatsmeow/proto/waE2E/legacy.go +++ /dev/null @@ -1,31 +0,0 @@ -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() -} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go index c9e07e0c..dcd8b454 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go @@ -2087,7 +2087,7 @@ var File_waHistorySync_WAWebProtobufsHistorySync_proto protoreflect.FileDescript const file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc = "" + "\n" + - "-waHistorySync/WAWebProtobufsHistorySync.proto\x12\x19WAWebProtobufsHistorySync\x1a\x1fwaSyncAction/WASyncAction.proto\x1a4waChatLockSettings/WAProtobufsChatLockSettings.proto\x1a\x1dwaE2E/WAWebProtobufsE2E.proto\x1a\x17waCommon/WACommon.proto\x1a\x1dwaWeb/WAWebProtobufsWeb.proto\"\x8c\v\n" + + "-waHistorySync/WAWebProtobufsHistorySync.proto\x12\x19WAWebProtobufsHistorySync\x1a*waSyncAction/WAWebProtobufSyncAction.proto\x1a7waChatLockSettings/WAWebProtobufsChatLockSettings.proto\x1a\x1dwaE2E/WAWebProtobufsE2E.proto\x1a\x17waCommon/WACommon.proto\x1a\x1dwaWeb/WAWebProtobufsWeb.proto\"\x97\v\n" + "\vHistorySync\x12R\n" + "\bsyncType\x18\x01 \x02(\x0e26.WAWebProtobufsHistorySync.HistorySync.HistorySyncTypeR\bsyncType\x12M\n" + "\rconversations\x18\x02 \x03(\v2'.WAWebProtobufsHistorySync.ConversationR\rconversations\x12M\n" + @@ -2102,8 +2102,8 @@ const file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc = "" + "\x17threadDsTimeframeOffset\x18\n" + " \x01(\rR\x17threadDsTimeframeOffset\x12R\n" + "\x0erecentStickers\x18\v \x03(\v2*.WAWebProtobufsHistorySync.StickerMetadataR\x0erecentStickers\x12W\n" + - "\x10pastParticipants\x18\f \x03(\v2+.WAWebProtobufsHistorySync.PastParticipantsR\x10pastParticipants\x12C\n" + - "\x0ecallLogRecords\x18\r \x03(\v2\x1b.WASyncAction.CallLogRecordR\x0ecallLogRecords\x12c\n" + + "\x10pastParticipants\x18\f \x03(\v2+.WAWebProtobufsHistorySync.PastParticipantsR\x10pastParticipants\x12N\n" + + "\x0ecallLogRecords\x18\r \x03(\v2&.WAWebProtobufSyncAction.CallLogRecordR\x0ecallLogRecords\x12c\n" + "\x0faiWaitListState\x18\x0e \x01(\x0e29.WAWebProtobufsHistorySync.HistorySync.BotAIWaitListStateR\x0faiWaitListState\x12n\n" + "\x18phoneNumberToLidMappings\x18\x0f \x03(\v22.WAWebProtobufsHistorySync.PhoneNumberToLIDMappingR\x18phoneNumberToLidMappings\x12.\n" + "\x12companionMetaNonce\x18\x10 \x01(\tR\x12companionMetaNonce\x12R\n" + @@ -2221,7 +2221,7 @@ const file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc = "" + "\bpushname\x18\x02 \x01(\tR\bpushname\"I\n" + "\x11WallpaperSettings\x12\x1a\n" + "\bfilename\x18\x01 \x01(\tR\bfilename\x12\x18\n" + - "\aopacity\x18\x02 \x01(\rR\aopacity\"\x97\f\n" + + "\aopacity\x18\x02 \x01(\rR\aopacity\"\x9a\f\n" + "\x0eGlobalSettings\x12^\n" + "\x13lightThemeWallpaper\x18\x01 \x01(\v2,.WAWebProtobufsHistorySync.WallpaperSettingsR\x13lightThemeWallpaper\x12T\n" + "\x0fmediaVisibility\x18\x02 \x01(\x0e2*.WAWebProtobufsHistorySync.MediaVisibilityR\x0fmediaVisibility\x12\\\n" + @@ -2241,8 +2241,8 @@ const file_waHistorySync_WAWebProtobufsHistorySync_proto_rawDesc = "" + "\x10videoQualityMode\x18\x0f \x01(\x05R\x10videoQualityMode\x12*\n" + "\x10photoQualityMode\x18\x10 \x01(\x05R\x10photoQualityMode\x12w\n" + "\x1eindividualNotificationSettings\x18\x11 \x01(\v2/.WAWebProtobufsHistorySync.NotificationSettingsR\x1eindividualNotificationSettings\x12m\n" + - "\x19groupNotificationSettings\x18\x12 \x01(\v2/.WAWebProtobufsHistorySync.NotificationSettingsR\x19groupNotificationSettings\x12Y\n" + - "\x10chatLockSettings\x18\x13 \x01(\v2-.WAProtobufsChatLockSettings.ChatLockSettingsR\x10chatLockSettings\x12@\n" + + "\x19groupNotificationSettings\x18\x12 \x01(\v2/.WAWebProtobufsHistorySync.NotificationSettingsR\x19groupNotificationSettings\x12\\\n" + + "\x10chatLockSettings\x18\x13 \x01(\v20.WAWebProtobufsChatLockSettings.ChatLockSettingsR\x10chatLockSettings\x12@\n" + "\x1bchatDbLidMigrationTimestamp\x18\x14 \x01(\x03R\x1bchatDbLidMigrationTimestamp\"\xb8\x01\n" + "\x14AutoDownloadSettings\x12&\n" + "\x0edownloadImages\x18\x01 \x01(\bR\x0edownloadImages\x12$\n" + @@ -2332,11 +2332,11 @@ var file_waHistorySync_WAWebProtobufsHistorySync_proto_goTypes = []any{ (*AvatarUserSettings)(nil), // 20: WAWebProtobufsHistorySync.AvatarUserSettings (*NotificationSettings)(nil), // 21: WAWebProtobufsHistorySync.NotificationSettings (*waWeb.WebMessageInfo)(nil), // 22: WAWebProtobufsWeb.WebMessageInfo - (*waSyncAction.CallLogRecord)(nil), // 23: WASyncAction.CallLogRecord + (*waSyncAction.CallLogRecord)(nil), // 23: WAWebProtobufSyncAction.CallLogRecord (*waE2E.DisappearingMode)(nil), // 24: WAWebProtobufsE2E.DisappearingMode (waCommon.LimitSharing_Trigger)(0), // 25: WACommon.LimitSharing.Trigger (*waE2E.MemberLabel)(nil), // 26: WAWebProtobufsE2E.MemberLabel - (*waChatLockSettings.ChatLockSettings)(nil), // 27: WAProtobufsChatLockSettings.ChatLockSettings + (*waChatLockSettings.ChatLockSettings)(nil), // 27: WAWebProtobufsChatLockSettings.ChatLockSettings } var file_waHistorySync_WAWebProtobufsHistorySync_proto_depIdxs = []int32{ 3, // 0: WAWebProtobufsHistorySync.HistorySync.syncType:type_name -> WAWebProtobufsHistorySync.HistorySync.HistorySyncType @@ -2346,7 +2346,7 @@ var file_waHistorySync_WAWebProtobufsHistorySync_proto_depIdxs = []int32{ 16, // 4: WAWebProtobufsHistorySync.HistorySync.globalSettings:type_name -> WAWebProtobufsHistorySync.GlobalSettings 18, // 5: WAWebProtobufsHistorySync.HistorySync.recentStickers:type_name -> WAWebProtobufsHistorySync.StickerMetadata 19, // 6: WAWebProtobufsHistorySync.HistorySync.pastParticipants:type_name -> WAWebProtobufsHistorySync.PastParticipants - 23, // 7: WAWebProtobufsHistorySync.HistorySync.callLogRecords:type_name -> WASyncAction.CallLogRecord + 23, // 7: WAWebProtobufsHistorySync.HistorySync.callLogRecords:type_name -> WAWebProtobufSyncAction.CallLogRecord 2, // 8: WAWebProtobufsHistorySync.HistorySync.aiWaitListState:type_name -> WAWebProtobufsHistorySync.HistorySync.BotAIWaitListState 11, // 9: WAWebProtobufsHistorySync.HistorySync.phoneNumberToLidMappings:type_name -> WAWebProtobufsHistorySync.PhoneNumberToLIDMapping 12, // 10: WAWebProtobufsHistorySync.HistorySync.accounts:type_name -> WAWebProtobufsHistorySync.Account @@ -2371,7 +2371,7 @@ var file_waHistorySync_WAWebProtobufsHistorySync_proto_depIdxs = []int32{ 20, // 29: WAWebProtobufsHistorySync.GlobalSettings.avatarUserSettings:type_name -> WAWebProtobufsHistorySync.AvatarUserSettings 21, // 30: WAWebProtobufsHistorySync.GlobalSettings.individualNotificationSettings:type_name -> WAWebProtobufsHistorySync.NotificationSettings 21, // 31: WAWebProtobufsHistorySync.GlobalSettings.groupNotificationSettings:type_name -> WAWebProtobufsHistorySync.NotificationSettings - 27, // 32: WAWebProtobufsHistorySync.GlobalSettings.chatLockSettings:type_name -> WAProtobufsChatLockSettings.ChatLockSettings + 27, // 32: WAWebProtobufsHistorySync.GlobalSettings.chatLockSettings:type_name -> WAWebProtobufsChatLockSettings.ChatLockSettings 10, // 33: WAWebProtobufsHistorySync.PastParticipants.pastParticipants:type_name -> WAWebProtobufsHistorySync.PastParticipant 34, // [34:34] is the sub-list for method output_type 34, // [34:34] is the sub-list for method input_type diff --git a/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto b/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto index a4f34c6a..08d21f26 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto @@ -2,8 +2,8 @@ syntax = "proto2"; package WAWebProtobufsHistorySync; option go_package = "go.mau.fi/whatsmeow/proto/waHistorySync"; -import "waSyncAction/WASyncAction.proto"; -import "waChatLockSettings/WAProtobufsChatLockSettings.proto"; +import "waSyncAction/WAWebProtobufSyncAction.proto"; +import "waChatLockSettings/WAWebProtobufsChatLockSettings.proto"; import "waE2E/WAWebProtobufsE2E.proto"; import "waCommon/WACommon.proto"; import "waWeb/WAWebProtobufsWeb.proto"; @@ -47,7 +47,7 @@ message HistorySync { optional uint32 threadDsTimeframeOffset = 10; repeated StickerMetadata recentStickers = 11; repeated PastParticipants pastParticipants = 12; - repeated WASyncAction.CallLogRecord callLogRecords = 13; + repeated WAWebProtobufSyncAction.CallLogRecord callLogRecords = 13; optional BotAIWaitListState aiWaitListState = 14; repeated PhoneNumberToLIDMapping phoneNumberToLidMappings = 15; optional string companionMetaNonce = 16; @@ -187,7 +187,7 @@ message GlobalSettings { optional int32 photoQualityMode = 16; optional NotificationSettings individualNotificationSettings = 17; optional NotificationSettings groupNotificationSettings = 18; - optional WAProtobufsChatLockSettings.ChatLockSettings chatLockSettings = 19; + optional WAWebProtobufsChatLockSettings.ChatLockSettings chatLockSettings = 19; optional int64 chatDbLidMigrationTimestamp = 20; } diff --git a/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/legacy.go b/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/legacy.go deleted file mode 100644 index 410a80fe..00000000 --- a/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/legacy.go +++ /dev/null @@ -1,11 +0,0 @@ -package waHistorySync - -// Deprecated: Use GetID -func (x *Conversation) GetId() string { - return x.GetID() -} - -// Deprecated: Use GetID -func (x *Pushname) GetId() string { - return x.GetID() -} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waServerSync/legacy.go b/vendor/go.mau.fi/whatsmeow/proto/waServerSync/legacy.go deleted file mode 100644 index 5c3af3d3..00000000 --- a/vendor/go.mau.fi/whatsmeow/proto/waServerSync/legacy.go +++ /dev/null @@ -1,31 +0,0 @@ -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() -} diff --git a/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go index 92e4db85..5b529c23 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go @@ -220,43 +220,46 @@ func (StatusAttribution_RLAttribution_Source) EnumDescriptor() ([]byte, []int) { type StatusAttribution_ExternalShare_Source int32 const ( - StatusAttribution_ExternalShare_UNKNOWN StatusAttribution_ExternalShare_Source = 0 - StatusAttribution_ExternalShare_INSTAGRAM StatusAttribution_ExternalShare_Source = 1 - StatusAttribution_ExternalShare_FACEBOOK StatusAttribution_ExternalShare_Source = 2 - StatusAttribution_ExternalShare_MESSENGER StatusAttribution_ExternalShare_Source = 3 - StatusAttribution_ExternalShare_SPOTIFY StatusAttribution_ExternalShare_Source = 4 - StatusAttribution_ExternalShare_YOUTUBE StatusAttribution_ExternalShare_Source = 5 - StatusAttribution_ExternalShare_PINTEREST StatusAttribution_ExternalShare_Source = 6 - StatusAttribution_ExternalShare_THREADS StatusAttribution_ExternalShare_Source = 7 - StatusAttribution_ExternalShare_APPLE_MUSIC StatusAttribution_ExternalShare_Source = 8 - StatusAttribution_ExternalShare_SHARECHAT StatusAttribution_ExternalShare_Source = 9 + StatusAttribution_ExternalShare_UNKNOWN StatusAttribution_ExternalShare_Source = 0 + StatusAttribution_ExternalShare_INSTAGRAM StatusAttribution_ExternalShare_Source = 1 + StatusAttribution_ExternalShare_FACEBOOK StatusAttribution_ExternalShare_Source = 2 + StatusAttribution_ExternalShare_MESSENGER StatusAttribution_ExternalShare_Source = 3 + StatusAttribution_ExternalShare_SPOTIFY StatusAttribution_ExternalShare_Source = 4 + StatusAttribution_ExternalShare_YOUTUBE StatusAttribution_ExternalShare_Source = 5 + StatusAttribution_ExternalShare_PINTEREST StatusAttribution_ExternalShare_Source = 6 + StatusAttribution_ExternalShare_THREADS StatusAttribution_ExternalShare_Source = 7 + StatusAttribution_ExternalShare_APPLE_MUSIC StatusAttribution_ExternalShare_Source = 8 + StatusAttribution_ExternalShare_SHARECHAT StatusAttribution_ExternalShare_Source = 9 + StatusAttribution_ExternalShare_GOOGLE_PHOTOS StatusAttribution_ExternalShare_Source = 10 ) // Enum value maps for StatusAttribution_ExternalShare_Source. var ( StatusAttribution_ExternalShare_Source_name = map[int32]string{ - 0: "UNKNOWN", - 1: "INSTAGRAM", - 2: "FACEBOOK", - 3: "MESSENGER", - 4: "SPOTIFY", - 5: "YOUTUBE", - 6: "PINTEREST", - 7: "THREADS", - 8: "APPLE_MUSIC", - 9: "SHARECHAT", + 0: "UNKNOWN", + 1: "INSTAGRAM", + 2: "FACEBOOK", + 3: "MESSENGER", + 4: "SPOTIFY", + 5: "YOUTUBE", + 6: "PINTEREST", + 7: "THREADS", + 8: "APPLE_MUSIC", + 9: "SHARECHAT", + 10: "GOOGLE_PHOTOS", } StatusAttribution_ExternalShare_Source_value = map[string]int32{ - "UNKNOWN": 0, - "INSTAGRAM": 1, - "FACEBOOK": 2, - "MESSENGER": 3, - "SPOTIFY": 4, - "YOUTUBE": 5, - "PINTEREST": 6, - "THREADS": 7, - "APPLE_MUSIC": 8, - "SHARECHAT": 9, + "UNKNOWN": 0, + "INSTAGRAM": 1, + "FACEBOOK": 2, + "MESSENGER": 3, + "SPOTIFY": 4, + "YOUTUBE": 5, + "PINTEREST": 6, + "THREADS": 7, + "APPLE_MUSIC": 8, + "SHARECHAT": 9, + "GOOGLE_PHOTOS": 10, } ) @@ -932,7 +935,7 @@ var File_waStatusAttributions_WAStatusAttributions_proto protoreflect.FileDescri const file_waStatusAttributions_WAStatusAttributions_proto_rawDesc = "" + "\n" + - "/waStatusAttributions/WAStatusAttributions.proto\x12\x14WAStatusAttributions\"\xde\x11\n" + + "/waStatusAttributions/WAStatusAttributions.proto\x12\x14WAStatusAttributions\"\xf1\x11\n" + "\x11StatusAttribution\x12]\n" + "\rstatusReshare\x18\x03 \x01(\v25.WAStatusAttributions.StatusAttribution.StatusReshareH\x00R\rstatusReshare\x12]\n" + "\rexternalShare\x18\x04 \x01(\v25.WAStatusAttributions.StatusAttribution.ExternalShareH\x00R\rexternalShare\x12E\n" + @@ -953,12 +956,12 @@ const file_waStatusAttributions_WAStatusAttributions_proto_rawDesc = "" + "\aUNKNOWN\x10\x00\x12\x18\n" + "\x14RAY_BAN_META_GLASSES\x10\x01\x12\x17\n" + "\x13OAKLEY_META_GLASSES\x10\x02\x12\x15\n" + - "\x11HYPERNOVA_GLASSES\x10\x03\x1a\xe7\x02\n" + + "\x11HYPERNOVA_GLASSES\x10\x03\x1a\xfa\x02\n" + "\rExternalShare\x12\x1c\n" + "\tactionURL\x18\x01 \x01(\tR\tactionURL\x12T\n" + "\x06source\x18\x02 \x01(\x0e2<.WAStatusAttributions.StatusAttribution.ExternalShare.SourceR\x06source\x12\x1a\n" + "\bduration\x18\x03 \x01(\x05R\bduration\x12,\n" + - "\x11actionFallbackURL\x18\x04 \x01(\tR\x11actionFallbackURL\"\x97\x01\n" + + "\x11actionFallbackURL\x18\x04 \x01(\tR\x11actionFallbackURL\"\xaa\x01\n" + "\x06Source\x12\v\n" + "\aUNKNOWN\x10\x00\x12\r\n" + "\tINSTAGRAM\x10\x01\x12\f\n" + @@ -969,7 +972,9 @@ const file_waStatusAttributions_WAStatusAttributions_proto_rawDesc = "" + "\tPINTEREST\x10\x06\x12\v\n" + "\aTHREADS\x10\a\x12\x0f\n" + "\vAPPLE_MUSIC\x10\b\x12\r\n" + - "\tSHARECHAT\x10\t\x1a\xcc\x03\n" + + "\tSHARECHAT\x10\t\x12\x11\n" + + "\rGOOGLE_PHOTOS\x10\n" + + "\x1a\xcc\x03\n" + "\rStatusReshare\x12T\n" + "\x06source\x18\x01 \x01(\x0e2<.WAStatusAttributions.StatusAttribution.StatusReshare.SourceR\x06source\x12Z\n" + "\bmetadata\x18\x02 \x01(\v2>.WAStatusAttributions.StatusAttribution.StatusReshare.MetadataR\bmetadata\x1a\xa4\x01\n" + diff --git a/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto b/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto index 69a08de6..617a8d25 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto @@ -47,6 +47,7 @@ message StatusAttribution { THREADS = 7; APPLE_MUSIC = 8; SHARECHAT = 9; + GOOGLE_PHOTOS = 10; } optional string actionURL = 1; diff --git a/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WAWebProtobufSyncAction.pb.go similarity index 64% rename from vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go rename to vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WAWebProtobufSyncAction.pb.go index db8a94f3..5a97ddfc 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WAWebProtobufSyncAction.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.36.10 // protoc v3.21.12 -// source: waSyncAction/WASyncAction.proto +// source: waSyncAction/WAWebProtobufSyncAction.proto package waSyncAction @@ -26,6 +26,343 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type CollectionName int32 + +const ( + CollectionName_COLLECTION_NAME_UNKNOWN CollectionName = 0 + CollectionName_REGULAR CollectionName = 1 + CollectionName_REGULAR_LOW CollectionName = 2 + CollectionName_REGULAR_HIGH CollectionName = 3 + CollectionName_CRITICAL_BLOCK CollectionName = 4 + CollectionName_CRITICAL_UNBLOCK_LOW CollectionName = 5 +) + +// Enum value maps for CollectionName. +var ( + CollectionName_name = map[int32]string{ + 0: "COLLECTION_NAME_UNKNOWN", + 1: "REGULAR", + 2: "REGULAR_LOW", + 3: "REGULAR_HIGH", + 4: "CRITICAL_BLOCK", + 5: "CRITICAL_UNBLOCK_LOW", + } + CollectionName_value = map[string]int32{ + "COLLECTION_NAME_UNKNOWN": 0, + "REGULAR": 1, + "REGULAR_LOW": 2, + "REGULAR_HIGH": 3, + "CRITICAL_BLOCK": 4, + "CRITICAL_UNBLOCK_LOW": 5, + } +) + +func (x CollectionName) Enum() *CollectionName { + p := new(CollectionName) + *p = x + return p +} + +func (x CollectionName) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CollectionName) Descriptor() protoreflect.EnumDescriptor { + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[0].Descriptor() +} + +func (CollectionName) Type() protoreflect.EnumType { + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[0] +} + +func (x CollectionName) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *CollectionName) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = CollectionName(num) + return nil +} + +// Deprecated: Use CollectionName.Descriptor instead. +func (CollectionName) EnumDescriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{0} +} + +type MutationProps int32 + +const ( + MutationProps_STAR_ACTION MutationProps = 2 + MutationProps_CONTACT_ACTION MutationProps = 3 + MutationProps_MUTE_ACTION MutationProps = 4 + MutationProps_PIN_ACTION MutationProps = 5 + MutationProps_SECURITY_NOTIFICATION_SETTING MutationProps = 6 + MutationProps_PUSH_NAME_SETTING MutationProps = 7 + MutationProps_QUICK_REPLY_ACTION MutationProps = 8 + MutationProps_RECENT_EMOJI_WEIGHTS_ACTION MutationProps = 11 + MutationProps_LABEL_MESSAGE_ACTION MutationProps = 13 + MutationProps_LABEL_EDIT_ACTION MutationProps = 14 + MutationProps_LABEL_ASSOCIATION_ACTION MutationProps = 15 + MutationProps_LOCALE_SETTING MutationProps = 16 + MutationProps_ARCHIVE_CHAT_ACTION MutationProps = 17 + MutationProps_DELETE_MESSAGE_FOR_ME_ACTION MutationProps = 18 + MutationProps_KEY_EXPIRATION MutationProps = 19 + MutationProps_MARK_CHAT_AS_READ_ACTION MutationProps = 20 + MutationProps_CLEAR_CHAT_ACTION MutationProps = 21 + MutationProps_DELETE_CHAT_ACTION MutationProps = 22 + MutationProps_UNARCHIVE_CHATS_SETTING MutationProps = 23 + MutationProps_PRIMARY_FEATURE MutationProps = 24 + MutationProps_ANDROID_UNSUPPORTED_ACTIONS MutationProps = 26 + MutationProps_AGENT_ACTION MutationProps = 27 + MutationProps_SUBSCRIPTION_ACTION MutationProps = 28 + MutationProps_USER_STATUS_MUTE_ACTION MutationProps = 29 + MutationProps_TIME_FORMAT_ACTION MutationProps = 30 + MutationProps_NUX_ACTION MutationProps = 31 + MutationProps_PRIMARY_VERSION_ACTION MutationProps = 32 + MutationProps_STICKER_ACTION MutationProps = 33 + MutationProps_REMOVE_RECENT_STICKER_ACTION MutationProps = 34 + MutationProps_CHAT_ASSIGNMENT MutationProps = 35 + MutationProps_CHAT_ASSIGNMENT_OPENED_STATUS MutationProps = 36 + MutationProps_PN_FOR_LID_CHAT_ACTION MutationProps = 37 + MutationProps_MARKETING_MESSAGE_ACTION MutationProps = 38 + MutationProps_MARKETING_MESSAGE_BROADCAST_ACTION MutationProps = 39 + MutationProps_EXTERNAL_WEB_BETA_ACTION MutationProps = 40 + MutationProps_PRIVACY_SETTING_RELAY_ALL_CALLS MutationProps = 41 + MutationProps_CALL_LOG_ACTION MutationProps = 42 + MutationProps_UGC_BOT MutationProps = 43 + MutationProps_STATUS_PRIVACY MutationProps = 44 + MutationProps_BOT_WELCOME_REQUEST_ACTION MutationProps = 45 + MutationProps_DELETE_INDIVIDUAL_CALL_LOG MutationProps = 46 + MutationProps_LABEL_REORDERING_ACTION MutationProps = 47 + MutationProps_PAYMENT_INFO_ACTION MutationProps = 48 + MutationProps_CUSTOM_PAYMENT_METHODS_ACTION MutationProps = 49 + MutationProps_LOCK_CHAT_ACTION MutationProps = 50 + MutationProps_CHAT_LOCK_SETTINGS MutationProps = 51 + MutationProps_WAMO_USER_IDENTIFIER_ACTION MutationProps = 52 + MutationProps_PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION MutationProps = 53 + MutationProps_DEVICE_CAPABILITIES MutationProps = 54 + MutationProps_NOTE_EDIT_ACTION MutationProps = 55 + MutationProps_FAVORITES_ACTION MutationProps = 56 + MutationProps_MERCHANT_PAYMENT_PARTNER_ACTION MutationProps = 57 + MutationProps_WAFFLE_ACCOUNT_LINK_STATE_ACTION MutationProps = 58 + MutationProps_USERNAME_CHAT_START_MODE MutationProps = 59 + MutationProps_NOTIFICATION_ACTIVITY_SETTING_ACTION MutationProps = 60 + MutationProps_LID_CONTACT_ACTION MutationProps = 61 + MutationProps_CTWA_PER_CUSTOMER_DATA_SHARING_ACTION MutationProps = 62 + MutationProps_PAYMENT_TOS_ACTION MutationProps = 63 + MutationProps_PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION MutationProps = 64 + MutationProps_BUSINESS_BROADCAST_ASSOCIATION_ACTION MutationProps = 65 + MutationProps_DETECTED_OUTCOMES_STATUS_ACTION MutationProps = 66 + MutationProps_MAIBA_AI_FEATURES_CONTROL_ACTION MutationProps = 68 + MutationProps_BUSINESS_BROADCAST_LIST_ACTION MutationProps = 69 + MutationProps_MUSIC_USER_ID_ACTION MutationProps = 70 + MutationProps_STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION MutationProps = 71 + MutationProps_AVATAR_UPDATED_ACTION MutationProps = 72 + MutationProps_GALAXY_FLOW_ACTION MutationProps = 73 + MutationProps_PRIVATE_PROCESSING_SETTING_ACTION MutationProps = 74 + MutationProps_NEWSLETTER_SAVED_INTERESTS_ACTION MutationProps = 75 + MutationProps_AI_THREAD_RENAME_ACTION MutationProps = 76 + MutationProps_INTERACTIVE_MESSAGE_ACTION MutationProps = 77 + MutationProps_SHARE_OWN_PN MutationProps = 10001 + MutationProps_BUSINESS_BROADCAST_ACTION MutationProps = 10002 +) + +// Enum value maps for MutationProps. +var ( + MutationProps_name = map[int32]string{ + 2: "STAR_ACTION", + 3: "CONTACT_ACTION", + 4: "MUTE_ACTION", + 5: "PIN_ACTION", + 6: "SECURITY_NOTIFICATION_SETTING", + 7: "PUSH_NAME_SETTING", + 8: "QUICK_REPLY_ACTION", + 11: "RECENT_EMOJI_WEIGHTS_ACTION", + 13: "LABEL_MESSAGE_ACTION", + 14: "LABEL_EDIT_ACTION", + 15: "LABEL_ASSOCIATION_ACTION", + 16: "LOCALE_SETTING", + 17: "ARCHIVE_CHAT_ACTION", + 18: "DELETE_MESSAGE_FOR_ME_ACTION", + 19: "KEY_EXPIRATION", + 20: "MARK_CHAT_AS_READ_ACTION", + 21: "CLEAR_CHAT_ACTION", + 22: "DELETE_CHAT_ACTION", + 23: "UNARCHIVE_CHATS_SETTING", + 24: "PRIMARY_FEATURE", + 26: "ANDROID_UNSUPPORTED_ACTIONS", + 27: "AGENT_ACTION", + 28: "SUBSCRIPTION_ACTION", + 29: "USER_STATUS_MUTE_ACTION", + 30: "TIME_FORMAT_ACTION", + 31: "NUX_ACTION", + 32: "PRIMARY_VERSION_ACTION", + 33: "STICKER_ACTION", + 34: "REMOVE_RECENT_STICKER_ACTION", + 35: "CHAT_ASSIGNMENT", + 36: "CHAT_ASSIGNMENT_OPENED_STATUS", + 37: "PN_FOR_LID_CHAT_ACTION", + 38: "MARKETING_MESSAGE_ACTION", + 39: "MARKETING_MESSAGE_BROADCAST_ACTION", + 40: "EXTERNAL_WEB_BETA_ACTION", + 41: "PRIVACY_SETTING_RELAY_ALL_CALLS", + 42: "CALL_LOG_ACTION", + 43: "UGC_BOT", + 44: "STATUS_PRIVACY", + 45: "BOT_WELCOME_REQUEST_ACTION", + 46: "DELETE_INDIVIDUAL_CALL_LOG", + 47: "LABEL_REORDERING_ACTION", + 48: "PAYMENT_INFO_ACTION", + 49: "CUSTOM_PAYMENT_METHODS_ACTION", + 50: "LOCK_CHAT_ACTION", + 51: "CHAT_LOCK_SETTINGS", + 52: "WAMO_USER_IDENTIFIER_ACTION", + 53: "PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION", + 54: "DEVICE_CAPABILITIES", + 55: "NOTE_EDIT_ACTION", + 56: "FAVORITES_ACTION", + 57: "MERCHANT_PAYMENT_PARTNER_ACTION", + 58: "WAFFLE_ACCOUNT_LINK_STATE_ACTION", + 59: "USERNAME_CHAT_START_MODE", + 60: "NOTIFICATION_ACTIVITY_SETTING_ACTION", + 61: "LID_CONTACT_ACTION", + 62: "CTWA_PER_CUSTOMER_DATA_SHARING_ACTION", + 63: "PAYMENT_TOS_ACTION", + 64: "PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION", + 65: "BUSINESS_BROADCAST_ASSOCIATION_ACTION", + 66: "DETECTED_OUTCOMES_STATUS_ACTION", + 68: "MAIBA_AI_FEATURES_CONTROL_ACTION", + 69: "BUSINESS_BROADCAST_LIST_ACTION", + 70: "MUSIC_USER_ID_ACTION", + 71: "STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION", + 72: "AVATAR_UPDATED_ACTION", + 73: "GALAXY_FLOW_ACTION", + 74: "PRIVATE_PROCESSING_SETTING_ACTION", + 75: "NEWSLETTER_SAVED_INTERESTS_ACTION", + 76: "AI_THREAD_RENAME_ACTION", + 77: "INTERACTIVE_MESSAGE_ACTION", + 10001: "SHARE_OWN_PN", + 10002: "BUSINESS_BROADCAST_ACTION", + } + MutationProps_value = map[string]int32{ + "STAR_ACTION": 2, + "CONTACT_ACTION": 3, + "MUTE_ACTION": 4, + "PIN_ACTION": 5, + "SECURITY_NOTIFICATION_SETTING": 6, + "PUSH_NAME_SETTING": 7, + "QUICK_REPLY_ACTION": 8, + "RECENT_EMOJI_WEIGHTS_ACTION": 11, + "LABEL_MESSAGE_ACTION": 13, + "LABEL_EDIT_ACTION": 14, + "LABEL_ASSOCIATION_ACTION": 15, + "LOCALE_SETTING": 16, + "ARCHIVE_CHAT_ACTION": 17, + "DELETE_MESSAGE_FOR_ME_ACTION": 18, + "KEY_EXPIRATION": 19, + "MARK_CHAT_AS_READ_ACTION": 20, + "CLEAR_CHAT_ACTION": 21, + "DELETE_CHAT_ACTION": 22, + "UNARCHIVE_CHATS_SETTING": 23, + "PRIMARY_FEATURE": 24, + "ANDROID_UNSUPPORTED_ACTIONS": 26, + "AGENT_ACTION": 27, + "SUBSCRIPTION_ACTION": 28, + "USER_STATUS_MUTE_ACTION": 29, + "TIME_FORMAT_ACTION": 30, + "NUX_ACTION": 31, + "PRIMARY_VERSION_ACTION": 32, + "STICKER_ACTION": 33, + "REMOVE_RECENT_STICKER_ACTION": 34, + "CHAT_ASSIGNMENT": 35, + "CHAT_ASSIGNMENT_OPENED_STATUS": 36, + "PN_FOR_LID_CHAT_ACTION": 37, + "MARKETING_MESSAGE_ACTION": 38, + "MARKETING_MESSAGE_BROADCAST_ACTION": 39, + "EXTERNAL_WEB_BETA_ACTION": 40, + "PRIVACY_SETTING_RELAY_ALL_CALLS": 41, + "CALL_LOG_ACTION": 42, + "UGC_BOT": 43, + "STATUS_PRIVACY": 44, + "BOT_WELCOME_REQUEST_ACTION": 45, + "DELETE_INDIVIDUAL_CALL_LOG": 46, + "LABEL_REORDERING_ACTION": 47, + "PAYMENT_INFO_ACTION": 48, + "CUSTOM_PAYMENT_METHODS_ACTION": 49, + "LOCK_CHAT_ACTION": 50, + "CHAT_LOCK_SETTINGS": 51, + "WAMO_USER_IDENTIFIER_ACTION": 52, + "PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION": 53, + "DEVICE_CAPABILITIES": 54, + "NOTE_EDIT_ACTION": 55, + "FAVORITES_ACTION": 56, + "MERCHANT_PAYMENT_PARTNER_ACTION": 57, + "WAFFLE_ACCOUNT_LINK_STATE_ACTION": 58, + "USERNAME_CHAT_START_MODE": 59, + "NOTIFICATION_ACTIVITY_SETTING_ACTION": 60, + "LID_CONTACT_ACTION": 61, + "CTWA_PER_CUSTOMER_DATA_SHARING_ACTION": 62, + "PAYMENT_TOS_ACTION": 63, + "PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION": 64, + "BUSINESS_BROADCAST_ASSOCIATION_ACTION": 65, + "DETECTED_OUTCOMES_STATUS_ACTION": 66, + "MAIBA_AI_FEATURES_CONTROL_ACTION": 68, + "BUSINESS_BROADCAST_LIST_ACTION": 69, + "MUSIC_USER_ID_ACTION": 70, + "STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION": 71, + "AVATAR_UPDATED_ACTION": 72, + "GALAXY_FLOW_ACTION": 73, + "PRIVATE_PROCESSING_SETTING_ACTION": 74, + "NEWSLETTER_SAVED_INTERESTS_ACTION": 75, + "AI_THREAD_RENAME_ACTION": 76, + "INTERACTIVE_MESSAGE_ACTION": 77, + "SHARE_OWN_PN": 10001, + "BUSINESS_BROADCAST_ACTION": 10002, + } +) + +func (x MutationProps) Enum() *MutationProps { + p := new(MutationProps) + *p = x + return p +} + +func (x MutationProps) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MutationProps) Descriptor() protoreflect.EnumDescriptor { + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[1].Descriptor() +} + +func (MutationProps) Type() protoreflect.EnumType { + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[1] +} + +func (x MutationProps) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *MutationProps) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = MutationProps(num) + return nil +} + +// Deprecated: Use MutationProps.Descriptor instead. +func (MutationProps) EnumDescriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{1} +} + type CallLogRecord_CallType int32 const ( @@ -59,11 +396,11 @@ func (x CallLogRecord_CallType) String() string { } func (CallLogRecord_CallType) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[0].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[2].Descriptor() } func (CallLogRecord_CallType) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[0] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[2] } func (x CallLogRecord_CallType) Number() protoreflect.EnumNumber { @@ -82,7 +419,7 @@ func (x *CallLogRecord_CallType) UnmarshalJSON(b []byte) error { // Deprecated: Use CallLogRecord_CallType.Descriptor instead. func (CallLogRecord_CallType) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{0, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{0, 0} } type CallLogRecord_SilenceReason int32 @@ -121,11 +458,11 @@ func (x CallLogRecord_SilenceReason) String() string { } func (CallLogRecord_SilenceReason) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[1].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[3].Descriptor() } func (CallLogRecord_SilenceReason) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[1] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[3] } func (x CallLogRecord_SilenceReason) Number() protoreflect.EnumNumber { @@ -144,7 +481,7 @@ func (x *CallLogRecord_SilenceReason) UnmarshalJSON(b []byte) error { // Deprecated: Use CallLogRecord_SilenceReason.Descriptor instead. func (CallLogRecord_SilenceReason) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{0, 1} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{0, 1} } type CallLogRecord_CallResult int32 @@ -204,11 +541,11 @@ func (x CallLogRecord_CallResult) String() string { } func (CallLogRecord_CallResult) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[2].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[4].Descriptor() } func (CallLogRecord_CallResult) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[2] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[4] } func (x CallLogRecord_CallResult) Number() protoreflect.EnumNumber { @@ -227,7 +564,119 @@ func (x *CallLogRecord_CallResult) UnmarshalJSON(b []byte) error { // Deprecated: Use CallLogRecord_CallResult.Descriptor instead. func (CallLogRecord_CallResult) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{0, 2} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{0, 2} +} + +type InteractiveMessageAction_InteractiveMessageActionMode int32 + +const ( + InteractiveMessageAction_DISABLE_CTA InteractiveMessageAction_InteractiveMessageActionMode = 1 +) + +// Enum value maps for InteractiveMessageAction_InteractiveMessageActionMode. +var ( + InteractiveMessageAction_InteractiveMessageActionMode_name = map[int32]string{ + 1: "DISABLE_CTA", + } + InteractiveMessageAction_InteractiveMessageActionMode_value = map[string]int32{ + "DISABLE_CTA": 1, + } +) + +func (x InteractiveMessageAction_InteractiveMessageActionMode) Enum() *InteractiveMessageAction_InteractiveMessageActionMode { + p := new(InteractiveMessageAction_InteractiveMessageActionMode) + *p = x + return p +} + +func (x InteractiveMessageAction_InteractiveMessageActionMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (InteractiveMessageAction_InteractiveMessageActionMode) Descriptor() protoreflect.EnumDescriptor { + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[5].Descriptor() +} + +func (InteractiveMessageAction_InteractiveMessageActionMode) Type() protoreflect.EnumType { + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[5] +} + +func (x InteractiveMessageAction_InteractiveMessageActionMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *InteractiveMessageAction_InteractiveMessageActionMode) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = InteractiveMessageAction_InteractiveMessageActionMode(num) + return nil +} + +// Deprecated: Use InteractiveMessageAction_InteractiveMessageActionMode.Descriptor instead. +func (InteractiveMessageAction_InteractiveMessageActionMode) EnumDescriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{1, 0} +} + +type PrivateProcessingSettingAction_PrivateProcessingStatus int32 + +const ( + PrivateProcessingSettingAction_UNDEFINED PrivateProcessingSettingAction_PrivateProcessingStatus = 0 + PrivateProcessingSettingAction_ENABLED PrivateProcessingSettingAction_PrivateProcessingStatus = 1 + PrivateProcessingSettingAction_DISABLED PrivateProcessingSettingAction_PrivateProcessingStatus = 2 +) + +// Enum value maps for PrivateProcessingSettingAction_PrivateProcessingStatus. +var ( + PrivateProcessingSettingAction_PrivateProcessingStatus_name = map[int32]string{ + 0: "UNDEFINED", + 1: "ENABLED", + 2: "DISABLED", + } + PrivateProcessingSettingAction_PrivateProcessingStatus_value = map[string]int32{ + "UNDEFINED": 0, + "ENABLED": 1, + "DISABLED": 2, + } +) + +func (x PrivateProcessingSettingAction_PrivateProcessingStatus) Enum() *PrivateProcessingSettingAction_PrivateProcessingStatus { + p := new(PrivateProcessingSettingAction_PrivateProcessingStatus) + *p = x + return p +} + +func (x PrivateProcessingSettingAction_PrivateProcessingStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PrivateProcessingSettingAction_PrivateProcessingStatus) Descriptor() protoreflect.EnumDescriptor { + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[6].Descriptor() +} + +func (PrivateProcessingSettingAction_PrivateProcessingStatus) Type() protoreflect.EnumType { + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[6] +} + +func (x PrivateProcessingSettingAction_PrivateProcessingStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *PrivateProcessingSettingAction_PrivateProcessingStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PrivateProcessingSettingAction_PrivateProcessingStatus(num) + return nil +} + +// Deprecated: Use PrivateProcessingSettingAction_PrivateProcessingStatus.Descriptor instead. +func (PrivateProcessingSettingAction_PrivateProcessingStatus) EnumDescriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{2, 0} } type AvatarUpdatedAction_AvatarEventType int32 @@ -263,11 +712,11 @@ func (x AvatarUpdatedAction_AvatarEventType) String() string { } func (AvatarUpdatedAction_AvatarEventType) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[3].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[7].Descriptor() } func (AvatarUpdatedAction_AvatarEventType) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[3] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[7] } func (x AvatarUpdatedAction_AvatarEventType) Number() protoreflect.EnumNumber { @@ -286,7 +735,7 @@ func (x *AvatarUpdatedAction_AvatarEventType) UnmarshalJSON(b []byte) error { // Deprecated: Use AvatarUpdatedAction_AvatarEventType.Descriptor instead. func (AvatarUpdatedAction_AvatarEventType) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{1, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{3, 0} } type MaibaAIFeaturesControlAction_MaibaAIFeatureStatus int32 @@ -322,11 +771,11 @@ func (x MaibaAIFeaturesControlAction_MaibaAIFeatureStatus) String() string { } func (MaibaAIFeaturesControlAction_MaibaAIFeatureStatus) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[4].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[8].Descriptor() } func (MaibaAIFeaturesControlAction_MaibaAIFeatureStatus) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[4] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[8] } func (x MaibaAIFeaturesControlAction_MaibaAIFeatureStatus) Number() protoreflect.EnumNumber { @@ -345,7 +794,7 @@ func (x *MaibaAIFeaturesControlAction_MaibaAIFeatureStatus) UnmarshalJSON(b []by // Deprecated: Use MaibaAIFeaturesControlAction_MaibaAIFeatureStatus.Descriptor instead. func (MaibaAIFeaturesControlAction_MaibaAIFeatureStatus) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{2, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{4, 0} } type PaymentTosAction_PaymentNotice int32 @@ -375,11 +824,11 @@ func (x PaymentTosAction_PaymentNotice) String() string { } func (PaymentTosAction_PaymentNotice) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[5].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[9].Descriptor() } func (PaymentTosAction_PaymentNotice) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[5] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[9] } func (x PaymentTosAction_PaymentNotice) Number() protoreflect.EnumNumber { @@ -398,7 +847,7 @@ func (x *PaymentTosAction_PaymentNotice) UnmarshalJSON(b []byte) error { // Deprecated: Use PaymentTosAction_PaymentNotice.Descriptor instead. func (PaymentTosAction_PaymentNotice) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{3, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{5, 0} } type NotificationActivitySettingAction_NotificationActivitySetting int32 @@ -437,11 +886,11 @@ func (x NotificationActivitySettingAction_NotificationActivitySetting) String() } func (NotificationActivitySettingAction_NotificationActivitySetting) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[6].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[10].Descriptor() } func (NotificationActivitySettingAction_NotificationActivitySetting) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[6] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[10] } func (x NotificationActivitySettingAction_NotificationActivitySetting) Number() protoreflect.EnumNumber { @@ -460,22 +909,28 @@ func (x *NotificationActivitySettingAction_NotificationActivitySetting) Unmarsha // Deprecated: Use NotificationActivitySettingAction_NotificationActivitySetting.Descriptor instead. func (NotificationActivitySettingAction_NotificationActivitySetting) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{4, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{6, 0} } type WaffleAccountLinkStateAction_AccountLinkState int32 const ( - WaffleAccountLinkStateAction_ACTIVE WaffleAccountLinkStateAction_AccountLinkState = 0 + WaffleAccountLinkStateAction_ACTIVE WaffleAccountLinkStateAction_AccountLinkState = 0 + WaffleAccountLinkStateAction_PAUSED WaffleAccountLinkStateAction_AccountLinkState = 1 + WaffleAccountLinkStateAction_UNLINKED WaffleAccountLinkStateAction_AccountLinkState = 2 ) // Enum value maps for WaffleAccountLinkStateAction_AccountLinkState. var ( WaffleAccountLinkStateAction_AccountLinkState_name = map[int32]string{ 0: "ACTIVE", + 1: "PAUSED", + 2: "UNLINKED", } WaffleAccountLinkStateAction_AccountLinkState_value = map[string]int32{ - "ACTIVE": 0, + "ACTIVE": 0, + "PAUSED": 1, + "UNLINKED": 2, } ) @@ -490,11 +945,11 @@ func (x WaffleAccountLinkStateAction_AccountLinkState) String() string { } func (WaffleAccountLinkStateAction_AccountLinkState) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[7].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[11].Descriptor() } func (WaffleAccountLinkStateAction_AccountLinkState) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[7] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[11] } func (x WaffleAccountLinkStateAction_AccountLinkState) Number() protoreflect.EnumNumber { @@ -513,7 +968,7 @@ func (x *WaffleAccountLinkStateAction_AccountLinkState) UnmarshalJSON(b []byte) // Deprecated: Use WaffleAccountLinkStateAction_AccountLinkState.Descriptor instead. func (WaffleAccountLinkStateAction_AccountLinkState) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{5, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{7, 0} } type MerchantPaymentPartnerAction_Status int32 @@ -546,11 +1001,11 @@ func (x MerchantPaymentPartnerAction_Status) String() string { } func (MerchantPaymentPartnerAction_Status) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[8].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[12].Descriptor() } func (MerchantPaymentPartnerAction_Status) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[8] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[12] } func (x MerchantPaymentPartnerAction_Status) Number() protoreflect.EnumNumber { @@ -569,60 +1024,7 @@ func (x *MerchantPaymentPartnerAction_Status) UnmarshalJSON(b []byte) error { // Deprecated: Use MerchantPaymentPartnerAction_Status.Descriptor instead. func (MerchantPaymentPartnerAction_Status) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{6, 0} -} - -type GalaxyFlowAction_GalaxyFlowActionType int32 - -const ( - GalaxyFlowAction_LAUNCH GalaxyFlowAction_GalaxyFlowActionType = 1 -) - -// Enum value maps for GalaxyFlowAction_GalaxyFlowActionType. -var ( - GalaxyFlowAction_GalaxyFlowActionType_name = map[int32]string{ - 1: "LAUNCH", - } - GalaxyFlowAction_GalaxyFlowActionType_value = map[string]int32{ - "LAUNCH": 1, - } -) - -func (x GalaxyFlowAction_GalaxyFlowActionType) Enum() *GalaxyFlowAction_GalaxyFlowActionType { - p := new(GalaxyFlowAction_GalaxyFlowActionType) - *p = x - return p -} - -func (x GalaxyFlowAction_GalaxyFlowActionType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (GalaxyFlowAction_GalaxyFlowActionType) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[9].Descriptor() -} - -func (GalaxyFlowAction_GalaxyFlowActionType) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[9] -} - -func (x GalaxyFlowAction_GalaxyFlowActionType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *GalaxyFlowAction_GalaxyFlowActionType) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = GalaxyFlowAction_GalaxyFlowActionType(num) - return nil -} - -// Deprecated: Use GalaxyFlowAction_GalaxyFlowActionType.Descriptor instead. -func (GalaxyFlowAction_GalaxyFlowActionType) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{7, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{8, 0} } type NoteEditAction_NoteType int32 @@ -655,11 +1057,11 @@ func (x NoteEditAction_NoteType) String() string { } func (NoteEditAction_NoteType) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[10].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[13].Descriptor() } func (NoteEditAction_NoteType) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[10] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[13] } func (x NoteEditAction_NoteType) Number() protoreflect.EnumNumber { @@ -678,15 +1080,16 @@ func (x *NoteEditAction_NoteType) UnmarshalJSON(b []byte) error { // Deprecated: Use NoteEditAction_NoteType.Descriptor instead. func (NoteEditAction_NoteType) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{8, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{9, 0} } type StatusPrivacyAction_StatusDistributionMode int32 const ( - StatusPrivacyAction_ALLOW_LIST StatusPrivacyAction_StatusDistributionMode = 0 - StatusPrivacyAction_DENY_LIST StatusPrivacyAction_StatusDistributionMode = 1 - StatusPrivacyAction_CONTACTS StatusPrivacyAction_StatusDistributionMode = 2 + StatusPrivacyAction_ALLOW_LIST StatusPrivacyAction_StatusDistributionMode = 0 + StatusPrivacyAction_DENY_LIST StatusPrivacyAction_StatusDistributionMode = 1 + StatusPrivacyAction_CONTACTS StatusPrivacyAction_StatusDistributionMode = 2 + StatusPrivacyAction_CLOSE_FRIENDS StatusPrivacyAction_StatusDistributionMode = 3 ) // Enum value maps for StatusPrivacyAction_StatusDistributionMode. @@ -695,11 +1098,13 @@ var ( 0: "ALLOW_LIST", 1: "DENY_LIST", 2: "CONTACTS", + 3: "CLOSE_FRIENDS", } StatusPrivacyAction_StatusDistributionMode_value = map[string]int32{ - "ALLOW_LIST": 0, - "DENY_LIST": 1, - "CONTACTS": 2, + "ALLOW_LIST": 0, + "DENY_LIST": 1, + "CONTACTS": 2, + "CLOSE_FRIENDS": 3, } ) @@ -714,11 +1119,11 @@ func (x StatusPrivacyAction_StatusDistributionMode) String() string { } func (StatusPrivacyAction_StatusDistributionMode) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[11].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[14].Descriptor() } func (StatusPrivacyAction_StatusDistributionMode) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[11] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[14] } func (x StatusPrivacyAction_StatusDistributionMode) Number() protoreflect.EnumNumber { @@ -737,7 +1142,7 @@ func (x *StatusPrivacyAction_StatusDistributionMode) UnmarshalJSON(b []byte) err // Deprecated: Use StatusPrivacyAction_StatusDistributionMode.Descriptor instead. func (StatusPrivacyAction_StatusDistributionMode) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{9, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{10, 0} } type MarketingMessageAction_MarketingMessagePrototypeType int32 @@ -767,11 +1172,11 @@ func (x MarketingMessageAction_MarketingMessagePrototypeType) String() string { } func (MarketingMessageAction_MarketingMessagePrototypeType) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[12].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[15].Descriptor() } func (MarketingMessageAction_MarketingMessagePrototypeType) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[12] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[15] } func (x MarketingMessageAction_MarketingMessagePrototypeType) Number() protoreflect.EnumNumber { @@ -790,7 +1195,7 @@ func (x *MarketingMessageAction_MarketingMessagePrototypeType) UnmarshalJSON(b [ // Deprecated: Use MarketingMessageAction_MarketingMessagePrototypeType.Descriptor instead. func (MarketingMessageAction_MarketingMessagePrototypeType) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{10, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{11, 0} } type UsernameChatStartModeAction_ChatStartMode int32 @@ -823,11 +1228,11 @@ func (x UsernameChatStartModeAction_ChatStartMode) String() string { } func (UsernameChatStartModeAction_ChatStartMode) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[13].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[16].Descriptor() } func (UsernameChatStartModeAction_ChatStartMode) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[13] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[16] } func (x UsernameChatStartModeAction_ChatStartMode) Number() protoreflect.EnumNumber { @@ -846,7 +1251,7 @@ func (x *UsernameChatStartModeAction_ChatStartMode) UnmarshalJSON(b []byte) erro // Deprecated: Use UsernameChatStartModeAction_ChatStartMode.Descriptor instead. func (UsernameChatStartModeAction_ChatStartMode) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{11, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{12, 0} } type LabelEditAction_ListType int32 @@ -860,6 +1265,8 @@ const ( LabelEditAction_CUSTOM LabelEditAction_ListType = 5 LabelEditAction_COMMUNITY LabelEditAction_ListType = 6 LabelEditAction_SERVER_ASSIGNED LabelEditAction_ListType = 7 + LabelEditAction_DRAFTED LabelEditAction_ListType = 8 + LabelEditAction_AI_HANDOFF LabelEditAction_ListType = 9 ) // Enum value maps for LabelEditAction_ListType. @@ -873,6 +1280,8 @@ var ( 5: "CUSTOM", 6: "COMMUNITY", 7: "SERVER_ASSIGNED", + 8: "DRAFTED", + 9: "AI_HANDOFF", } LabelEditAction_ListType_value = map[string]int32{ "NONE": 0, @@ -883,6 +1292,8 @@ var ( "CUSTOM": 5, "COMMUNITY": 6, "SERVER_ASSIGNED": 7, + "DRAFTED": 8, + "AI_HANDOFF": 9, } ) @@ -897,11 +1308,11 @@ func (x LabelEditAction_ListType) String() string { } func (LabelEditAction_ListType) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[14].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[17].Descriptor() } func (LabelEditAction_ListType) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[14] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[17] } func (x LabelEditAction_ListType) Number() protoreflect.EnumNumber { @@ -920,7 +1331,7 @@ func (x *LabelEditAction_ListType) UnmarshalJSON(b []byte) error { // Deprecated: Use LabelEditAction_ListType.Descriptor instead. func (LabelEditAction_ListType) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{12, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{13, 0} } type PatchDebugData_Platform int32 @@ -983,11 +1394,11 @@ func (x PatchDebugData_Platform) String() string { } func (PatchDebugData_Platform) Descriptor() protoreflect.EnumDescriptor { - return file_waSyncAction_WASyncAction_proto_enumTypes[15].Descriptor() + return file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[18].Descriptor() } func (PatchDebugData_Platform) Type() protoreflect.EnumType { - return &file_waSyncAction_WASyncAction_proto_enumTypes[15] + return &file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes[18] } func (x PatchDebugData_Platform) Number() protoreflect.EnumNumber { @@ -1006,14 +1417,14 @@ func (x *PatchDebugData_Platform) UnmarshalJSON(b []byte) error { // Deprecated: Use PatchDebugData_Platform.Descriptor instead. func (PatchDebugData_Platform) EnumDescriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{13, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{14, 0} } type CallLogRecord struct { state protoimpl.MessageState `protogen:"open.v1"` - CallResult *CallLogRecord_CallResult `protobuf:"varint,1,opt,name=callResult,enum=WASyncAction.CallLogRecord_CallResult" json:"callResult,omitempty"` + CallResult *CallLogRecord_CallResult `protobuf:"varint,1,opt,name=callResult,enum=WAWebProtobufSyncAction.CallLogRecord_CallResult" json:"callResult,omitempty"` IsDndMode *bool `protobuf:"varint,2,opt,name=isDndMode" json:"isDndMode,omitempty"` - SilenceReason *CallLogRecord_SilenceReason `protobuf:"varint,3,opt,name=silenceReason,enum=WASyncAction.CallLogRecord_SilenceReason" json:"silenceReason,omitempty"` + SilenceReason *CallLogRecord_SilenceReason `protobuf:"varint,3,opt,name=silenceReason,enum=WAWebProtobufSyncAction.CallLogRecord_SilenceReason" json:"silenceReason,omitempty"` Duration *int64 `protobuf:"varint,4,opt,name=duration" json:"duration,omitempty"` StartTime *int64 `protobuf:"varint,5,opt,name=startTime" json:"startTime,omitempty"` IsIncoming *bool `protobuf:"varint,6,opt,name=isIncoming" json:"isIncoming,omitempty"` @@ -1025,14 +1436,14 @@ type CallLogRecord struct { CallCreatorJID *string `protobuf:"bytes,12,opt,name=callCreatorJID" json:"callCreatorJID,omitempty"` GroupJID *string `protobuf:"bytes,13,opt,name=groupJID" json:"groupJID,omitempty"` Participants []*CallLogRecord_ParticipantInfo `protobuf:"bytes,14,rep,name=participants" json:"participants,omitempty"` - CallType *CallLogRecord_CallType `protobuf:"varint,15,opt,name=callType,enum=WASyncAction.CallLogRecord_CallType" json:"callType,omitempty"` + CallType *CallLogRecord_CallType `protobuf:"varint,15,opt,name=callType,enum=WAWebProtobufSyncAction.CallLogRecord_CallType" json:"callType,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *CallLogRecord) Reset() { *x = CallLogRecord{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[0] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1044,7 +1455,7 @@ func (x *CallLogRecord) String() string { func (*CallLogRecord) ProtoMessage() {} func (x *CallLogRecord) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[0] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1057,7 +1468,7 @@ func (x *CallLogRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use CallLogRecord.ProtoReflect.Descriptor instead. func (*CallLogRecord) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{0} } func (x *CallLogRecord) GetCallResult() CallLogRecord_CallResult { @@ -1165,9 +1576,97 @@ func (x *CallLogRecord) GetCallType() CallLogRecord_CallType { return CallLogRecord_REGULAR } +type InteractiveMessageAction struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type *InteractiveMessageAction_InteractiveMessageActionMode `protobuf:"varint,1,req,name=type,enum=WAWebProtobufSyncAction.InteractiveMessageAction_InteractiveMessageActionMode" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InteractiveMessageAction) Reset() { + *x = InteractiveMessageAction{} + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InteractiveMessageAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InteractiveMessageAction) ProtoMessage() {} + +func (x *InteractiveMessageAction) ProtoReflect() protoreflect.Message { + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InteractiveMessageAction.ProtoReflect.Descriptor instead. +func (*InteractiveMessageAction) Descriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{1} +} + +func (x *InteractiveMessageAction) GetType() InteractiveMessageAction_InteractiveMessageActionMode { + if x != nil && x.Type != nil { + return *x.Type + } + return InteractiveMessageAction_DISABLE_CTA +} + +type PrivateProcessingSettingAction struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrivateProcessingStatus *PrivateProcessingSettingAction_PrivateProcessingStatus `protobuf:"varint,1,opt,name=privateProcessingStatus,enum=WAWebProtobufSyncAction.PrivateProcessingSettingAction_PrivateProcessingStatus" json:"privateProcessingStatus,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PrivateProcessingSettingAction) Reset() { + *x = PrivateProcessingSettingAction{} + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PrivateProcessingSettingAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrivateProcessingSettingAction) ProtoMessage() {} + +func (x *PrivateProcessingSettingAction) ProtoReflect() protoreflect.Message { + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PrivateProcessingSettingAction.ProtoReflect.Descriptor instead. +func (*PrivateProcessingSettingAction) Descriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{2} +} + +func (x *PrivateProcessingSettingAction) GetPrivateProcessingStatus() PrivateProcessingSettingAction_PrivateProcessingStatus { + if x != nil && x.PrivateProcessingStatus != nil { + return *x.PrivateProcessingStatus + } + return PrivateProcessingSettingAction_UNDEFINED +} + type AvatarUpdatedAction struct { state protoimpl.MessageState `protogen:"open.v1"` - EventType *AvatarUpdatedAction_AvatarEventType `protobuf:"varint,1,opt,name=eventType,enum=WASyncAction.AvatarUpdatedAction_AvatarEventType" json:"eventType,omitempty"` + EventType *AvatarUpdatedAction_AvatarEventType `protobuf:"varint,1,opt,name=eventType,enum=WAWebProtobufSyncAction.AvatarUpdatedAction_AvatarEventType" json:"eventType,omitempty"` RecentAvatarStickers []*StickerAction `protobuf:"bytes,2,rep,name=recentAvatarStickers" json:"recentAvatarStickers,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -1175,7 +1674,7 @@ type AvatarUpdatedAction struct { func (x *AvatarUpdatedAction) Reset() { *x = AvatarUpdatedAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[1] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1187,7 +1686,7 @@ func (x *AvatarUpdatedAction) String() string { func (*AvatarUpdatedAction) ProtoMessage() {} func (x *AvatarUpdatedAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[1] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1200,7 +1699,7 @@ func (x *AvatarUpdatedAction) ProtoReflect() protoreflect.Message { // Deprecated: Use AvatarUpdatedAction.ProtoReflect.Descriptor instead. func (*AvatarUpdatedAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{1} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{3} } func (x *AvatarUpdatedAction) GetEventType() AvatarUpdatedAction_AvatarEventType { @@ -1219,14 +1718,14 @@ func (x *AvatarUpdatedAction) GetRecentAvatarStickers() []*StickerAction { type MaibaAIFeaturesControlAction struct { state protoimpl.MessageState `protogen:"open.v1"` - AiFeatureStatus *MaibaAIFeaturesControlAction_MaibaAIFeatureStatus `protobuf:"varint,1,opt,name=aiFeatureStatus,enum=WASyncAction.MaibaAIFeaturesControlAction_MaibaAIFeatureStatus" json:"aiFeatureStatus,omitempty"` + AiFeatureStatus *MaibaAIFeaturesControlAction_MaibaAIFeatureStatus `protobuf:"varint,1,opt,name=aiFeatureStatus,enum=WAWebProtobufSyncAction.MaibaAIFeaturesControlAction_MaibaAIFeatureStatus" json:"aiFeatureStatus,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MaibaAIFeaturesControlAction) Reset() { *x = MaibaAIFeaturesControlAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[2] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1238,7 +1737,7 @@ func (x *MaibaAIFeaturesControlAction) String() string { func (*MaibaAIFeaturesControlAction) ProtoMessage() {} func (x *MaibaAIFeaturesControlAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[2] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1251,7 +1750,7 @@ func (x *MaibaAIFeaturesControlAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MaibaAIFeaturesControlAction.ProtoReflect.Descriptor instead. func (*MaibaAIFeaturesControlAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{2} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{4} } func (x *MaibaAIFeaturesControlAction) GetAiFeatureStatus() MaibaAIFeaturesControlAction_MaibaAIFeatureStatus { @@ -1263,7 +1762,7 @@ func (x *MaibaAIFeaturesControlAction) GetAiFeatureStatus() MaibaAIFeaturesContr type PaymentTosAction struct { state protoimpl.MessageState `protogen:"open.v1"` - PaymentNotice *PaymentTosAction_PaymentNotice `protobuf:"varint,1,req,name=paymentNotice,enum=WASyncAction.PaymentTosAction_PaymentNotice" json:"paymentNotice,omitempty"` + PaymentNotice *PaymentTosAction_PaymentNotice `protobuf:"varint,1,req,name=paymentNotice,enum=WAWebProtobufSyncAction.PaymentTosAction_PaymentNotice" json:"paymentNotice,omitempty"` Accepted *bool `protobuf:"varint,2,req,name=accepted" json:"accepted,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -1271,7 +1770,7 @@ type PaymentTosAction struct { func (x *PaymentTosAction) Reset() { *x = PaymentTosAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[3] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1283,7 +1782,7 @@ func (x *PaymentTosAction) String() string { func (*PaymentTosAction) ProtoMessage() {} func (x *PaymentTosAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[3] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1296,7 +1795,7 @@ func (x *PaymentTosAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PaymentTosAction.ProtoReflect.Descriptor instead. func (*PaymentTosAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{3} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{5} } func (x *PaymentTosAction) GetPaymentNotice() PaymentTosAction_PaymentNotice { @@ -1315,14 +1814,14 @@ func (x *PaymentTosAction) GetAccepted() bool { type NotificationActivitySettingAction struct { state protoimpl.MessageState `protogen:"open.v1"` - NotificationActivitySetting *NotificationActivitySettingAction_NotificationActivitySetting `protobuf:"varint,1,opt,name=notificationActivitySetting,enum=WASyncAction.NotificationActivitySettingAction_NotificationActivitySetting" json:"notificationActivitySetting,omitempty"` + NotificationActivitySetting *NotificationActivitySettingAction_NotificationActivitySetting `protobuf:"varint,1,opt,name=notificationActivitySetting,enum=WAWebProtobufSyncAction.NotificationActivitySettingAction_NotificationActivitySetting" json:"notificationActivitySetting,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *NotificationActivitySettingAction) Reset() { *x = NotificationActivitySettingAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[4] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1334,7 +1833,7 @@ func (x *NotificationActivitySettingAction) String() string { func (*NotificationActivitySettingAction) ProtoMessage() {} func (x *NotificationActivitySettingAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[4] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1347,7 +1846,7 @@ func (x *NotificationActivitySettingAction) ProtoReflect() protoreflect.Message // Deprecated: Use NotificationActivitySettingAction.ProtoReflect.Descriptor instead. func (*NotificationActivitySettingAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{4} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{6} } func (x *NotificationActivitySettingAction) GetNotificationActivitySetting() NotificationActivitySettingAction_NotificationActivitySetting { @@ -1359,14 +1858,14 @@ func (x *NotificationActivitySettingAction) GetNotificationActivitySetting() Not type WaffleAccountLinkStateAction struct { state protoimpl.MessageState `protogen:"open.v1"` - LinkState *WaffleAccountLinkStateAction_AccountLinkState `protobuf:"varint,2,opt,name=linkState,enum=WASyncAction.WaffleAccountLinkStateAction_AccountLinkState" json:"linkState,omitempty"` + LinkState *WaffleAccountLinkStateAction_AccountLinkState `protobuf:"varint,2,opt,name=linkState,enum=WAWebProtobufSyncAction.WaffleAccountLinkStateAction_AccountLinkState" json:"linkState,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *WaffleAccountLinkStateAction) Reset() { *x = WaffleAccountLinkStateAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[5] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1378,7 +1877,7 @@ func (x *WaffleAccountLinkStateAction) String() string { func (*WaffleAccountLinkStateAction) ProtoMessage() {} func (x *WaffleAccountLinkStateAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[5] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1391,7 +1890,7 @@ func (x *WaffleAccountLinkStateAction) ProtoReflect() protoreflect.Message { // Deprecated: Use WaffleAccountLinkStateAction.ProtoReflect.Descriptor instead. func (*WaffleAccountLinkStateAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{5} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{7} } func (x *WaffleAccountLinkStateAction) GetLinkState() WaffleAccountLinkStateAction_AccountLinkState { @@ -1403,7 +1902,7 @@ func (x *WaffleAccountLinkStateAction) GetLinkState() WaffleAccountLinkStateActi type MerchantPaymentPartnerAction struct { state protoimpl.MessageState `protogen:"open.v1"` - Status *MerchantPaymentPartnerAction_Status `protobuf:"varint,1,req,name=status,enum=WASyncAction.MerchantPaymentPartnerAction_Status" json:"status,omitempty"` + Status *MerchantPaymentPartnerAction_Status `protobuf:"varint,1,req,name=status,enum=WAWebProtobufSyncAction.MerchantPaymentPartnerAction_Status" json:"status,omitempty"` Country *string `protobuf:"bytes,2,req,name=country" json:"country,omitempty"` GatewayName *string `protobuf:"bytes,3,opt,name=gatewayName" json:"gatewayName,omitempty"` CredentialID *string `protobuf:"bytes,4,opt,name=credentialID" json:"credentialID,omitempty"` @@ -1413,7 +1912,7 @@ type MerchantPaymentPartnerAction struct { func (x *MerchantPaymentPartnerAction) Reset() { *x = MerchantPaymentPartnerAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[6] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1425,7 +1924,7 @@ func (x *MerchantPaymentPartnerAction) String() string { func (*MerchantPaymentPartnerAction) ProtoMessage() {} func (x *MerchantPaymentPartnerAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[6] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1438,7 +1937,7 @@ func (x *MerchantPaymentPartnerAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MerchantPaymentPartnerAction.ProtoReflect.Descriptor instead. func (*MerchantPaymentPartnerAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{6} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{8} } func (x *MerchantPaymentPartnerAction) GetStatus() MerchantPaymentPartnerAction_Status { @@ -1469,53 +1968,9 @@ func (x *MerchantPaymentPartnerAction) GetCredentialID() string { return "" } -type GalaxyFlowAction struct { - state protoimpl.MessageState `protogen:"open.v1"` - Type *GalaxyFlowAction_GalaxyFlowActionType `protobuf:"varint,1,req,name=type,enum=WASyncAction.GalaxyFlowAction_GalaxyFlowActionType" json:"type,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *GalaxyFlowAction) Reset() { - *x = GalaxyFlowAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GalaxyFlowAction) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GalaxyFlowAction) ProtoMessage() {} - -func (x *GalaxyFlowAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[7] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GalaxyFlowAction.ProtoReflect.Descriptor instead. -func (*GalaxyFlowAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{7} -} - -func (x *GalaxyFlowAction) GetType() GalaxyFlowAction_GalaxyFlowActionType { - if x != nil && x.Type != nil { - return *x.Type - } - return GalaxyFlowAction_LAUNCH -} - type NoteEditAction struct { state protoimpl.MessageState `protogen:"open.v1"` - Type *NoteEditAction_NoteType `protobuf:"varint,1,opt,name=type,enum=WASyncAction.NoteEditAction_NoteType" json:"type,omitempty"` + Type *NoteEditAction_NoteType `protobuf:"varint,1,opt,name=type,enum=WAWebProtobufSyncAction.NoteEditAction_NoteType" json:"type,omitempty"` ChatJID *string `protobuf:"bytes,2,opt,name=chatJID" json:"chatJID,omitempty"` CreatedAt *int64 `protobuf:"varint,3,opt,name=createdAt" json:"createdAt,omitempty"` Deleted *bool `protobuf:"varint,4,opt,name=deleted" json:"deleted,omitempty"` @@ -1526,7 +1981,7 @@ type NoteEditAction struct { func (x *NoteEditAction) Reset() { *x = NoteEditAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[8] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1538,7 +1993,7 @@ func (x *NoteEditAction) String() string { func (*NoteEditAction) ProtoMessage() {} func (x *NoteEditAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[8] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1551,7 +2006,7 @@ func (x *NoteEditAction) ProtoReflect() protoreflect.Message { // Deprecated: Use NoteEditAction.ProtoReflect.Descriptor instead. func (*NoteEditAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{8} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{9} } func (x *NoteEditAction) GetType() NoteEditAction_NoteType { @@ -1591,7 +2046,7 @@ func (x *NoteEditAction) GetUnstructuredContent() string { type StatusPrivacyAction struct { state protoimpl.MessageState `protogen:"open.v1"` - Mode *StatusPrivacyAction_StatusDistributionMode `protobuf:"varint,1,opt,name=mode,enum=WASyncAction.StatusPrivacyAction_StatusDistributionMode" json:"mode,omitempty"` + Mode *StatusPrivacyAction_StatusDistributionMode `protobuf:"varint,1,opt,name=mode,enum=WAWebProtobufSyncAction.StatusPrivacyAction_StatusDistributionMode" json:"mode,omitempty"` UserJID []string `protobuf:"bytes,2,rep,name=userJID" json:"userJID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -1599,7 +2054,7 @@ type StatusPrivacyAction struct { func (x *StatusPrivacyAction) Reset() { *x = StatusPrivacyAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[9] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1611,7 +2066,7 @@ func (x *StatusPrivacyAction) String() string { func (*StatusPrivacyAction) ProtoMessage() {} func (x *StatusPrivacyAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[9] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1624,7 +2079,7 @@ func (x *StatusPrivacyAction) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusPrivacyAction.ProtoReflect.Descriptor instead. func (*StatusPrivacyAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{9} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{10} } func (x *StatusPrivacyAction) GetMode() StatusPrivacyAction_StatusDistributionMode { @@ -1645,7 +2100,7 @@ type MarketingMessageAction struct { state protoimpl.MessageState `protogen:"open.v1"` Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Message *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` - Type *MarketingMessageAction_MarketingMessagePrototypeType `protobuf:"varint,3,opt,name=type,enum=WASyncAction.MarketingMessageAction_MarketingMessagePrototypeType" json:"type,omitempty"` + Type *MarketingMessageAction_MarketingMessagePrototypeType `protobuf:"varint,3,opt,name=type,enum=WAWebProtobufSyncAction.MarketingMessageAction_MarketingMessagePrototypeType" json:"type,omitempty"` CreatedAt *int64 `protobuf:"varint,4,opt,name=createdAt" json:"createdAt,omitempty"` LastSentAt *int64 `protobuf:"varint,5,opt,name=lastSentAt" json:"lastSentAt,omitempty"` IsDeleted *bool `protobuf:"varint,6,opt,name=isDeleted" json:"isDeleted,omitempty"` @@ -1656,7 +2111,7 @@ type MarketingMessageAction struct { func (x *MarketingMessageAction) Reset() { *x = MarketingMessageAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[10] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1668,7 +2123,7 @@ func (x *MarketingMessageAction) String() string { func (*MarketingMessageAction) ProtoMessage() {} func (x *MarketingMessageAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[10] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1681,7 +2136,7 @@ func (x *MarketingMessageAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketingMessageAction.ProtoReflect.Descriptor instead. func (*MarketingMessageAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{10} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{11} } func (x *MarketingMessageAction) GetName() string { @@ -1735,14 +2190,14 @@ func (x *MarketingMessageAction) GetMediaID() string { type UsernameChatStartModeAction struct { state protoimpl.MessageState `protogen:"open.v1"` - ChatStartMode *UsernameChatStartModeAction_ChatStartMode `protobuf:"varint,1,opt,name=chatStartMode,enum=WASyncAction.UsernameChatStartModeAction_ChatStartMode" json:"chatStartMode,omitempty"` + ChatStartMode *UsernameChatStartModeAction_ChatStartMode `protobuf:"varint,1,opt,name=chatStartMode,enum=WAWebProtobufSyncAction.UsernameChatStartModeAction_ChatStartMode" json:"chatStartMode,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UsernameChatStartModeAction) Reset() { *x = UsernameChatStartModeAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[11] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1754,7 +2209,7 @@ func (x *UsernameChatStartModeAction) String() string { func (*UsernameChatStartModeAction) ProtoMessage() {} func (x *UsernameChatStartModeAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[11] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1767,7 +2222,7 @@ func (x *UsernameChatStartModeAction) ProtoReflect() protoreflect.Message { // Deprecated: Use UsernameChatStartModeAction.ProtoReflect.Descriptor instead. func (*UsernameChatStartModeAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{11} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{12} } func (x *UsernameChatStartModeAction) GetChatStartMode() UsernameChatStartModeAction_ChatStartMode { @@ -1785,15 +2240,16 @@ type LabelEditAction struct { Deleted *bool `protobuf:"varint,4,opt,name=deleted" json:"deleted,omitempty"` OrderIndex *int32 `protobuf:"varint,5,opt,name=orderIndex" json:"orderIndex,omitempty"` IsActive *bool `protobuf:"varint,6,opt,name=isActive" json:"isActive,omitempty"` - Type *LabelEditAction_ListType `protobuf:"varint,7,opt,name=type,enum=WASyncAction.LabelEditAction_ListType" json:"type,omitempty"` + Type *LabelEditAction_ListType `protobuf:"varint,7,opt,name=type,enum=WAWebProtobufSyncAction.LabelEditAction_ListType" json:"type,omitempty"` IsImmutable *bool `protobuf:"varint,8,opt,name=isImmutable" json:"isImmutable,omitempty"` + MuteEndTimeMS *int64 `protobuf:"varint,9,opt,name=muteEndTimeMS" json:"muteEndTimeMS,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *LabelEditAction) Reset() { *x = LabelEditAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[12] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1805,7 +2261,7 @@ func (x *LabelEditAction) String() string { func (*LabelEditAction) ProtoMessage() {} func (x *LabelEditAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[12] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1818,7 +2274,7 @@ func (x *LabelEditAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelEditAction.ProtoReflect.Descriptor instead. func (*LabelEditAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{12} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{13} } func (x *LabelEditAction) GetName() string { @@ -1877,6 +2333,13 @@ func (x *LabelEditAction) GetIsImmutable() bool { return false } +func (x *LabelEditAction) GetMuteEndTimeMS() int64 { + if x != nil && x.MuteEndTimeMS != nil { + return *x.MuteEndTimeMS + } + return 0 +} + type PatchDebugData struct { state protoimpl.MessageState `protogen:"open.v1"` CurrentLthash []byte `protobuf:"bytes,1,opt,name=currentLthash" json:"currentLthash,omitempty"` @@ -1888,7 +2351,7 @@ type PatchDebugData struct { NumberAdd *int32 `protobuf:"varint,7,opt,name=numberAdd" json:"numberAdd,omitempty"` NumberRemove *int32 `protobuf:"varint,8,opt,name=numberRemove" json:"numberRemove,omitempty"` NumberOverride *int32 `protobuf:"varint,9,opt,name=numberOverride" json:"numberOverride,omitempty"` - SenderPlatform *PatchDebugData_Platform `protobuf:"varint,10,opt,name=senderPlatform,enum=WASyncAction.PatchDebugData_Platform" json:"senderPlatform,omitempty"` + SenderPlatform *PatchDebugData_Platform `protobuf:"varint,10,opt,name=senderPlatform,enum=WAWebProtobufSyncAction.PatchDebugData_Platform" json:"senderPlatform,omitempty"` IsSenderPrimary *bool `protobuf:"varint,11,opt,name=isSenderPrimary" json:"isSenderPrimary,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -1896,7 +2359,7 @@ type PatchDebugData struct { func (x *PatchDebugData) Reset() { *x = PatchDebugData{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[13] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1908,7 +2371,7 @@ func (x *PatchDebugData) String() string { func (*PatchDebugData) ProtoMessage() {} func (x *PatchDebugData) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[13] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1921,7 +2384,7 @@ func (x *PatchDebugData) ProtoReflect() protoreflect.Message { // Deprecated: Use PatchDebugData.ProtoReflect.Descriptor instead. func (*PatchDebugData) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{13} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{14} } func (x *PatchDebugData) GetCurrentLthash() []byte { @@ -2011,7 +2474,7 @@ type RecentEmojiWeight struct { func (x *RecentEmojiWeight) Reset() { *x = RecentEmojiWeight{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[14] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2023,7 +2486,7 @@ func (x *RecentEmojiWeight) String() string { func (*RecentEmojiWeight) ProtoMessage() {} func (x *RecentEmojiWeight) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[14] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2036,7 +2499,7 @@ func (x *RecentEmojiWeight) ProtoReflect() protoreflect.Message { // Deprecated: Use RecentEmojiWeight.ProtoReflect.Descriptor instead. func (*RecentEmojiWeight) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{14} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{15} } func (x *RecentEmojiWeight) GetEmoji() string { @@ -2060,7 +2523,6 @@ type SyncActionValue struct { ContactAction *ContactAction `protobuf:"bytes,3,opt,name=contactAction" json:"contactAction,omitempty"` MuteAction *MuteAction `protobuf:"bytes,4,opt,name=muteAction" json:"muteAction,omitempty"` PinAction *PinAction `protobuf:"bytes,5,opt,name=pinAction" json:"pinAction,omitempty"` - SecurityNotificationSetting *SecurityNotificationSetting `protobuf:"bytes,6,opt,name=securityNotificationSetting" json:"securityNotificationSetting,omitempty"` PushNameSetting *PushNameSetting `protobuf:"bytes,7,opt,name=pushNameSetting" json:"pushNameSetting,omitempty"` QuickReplyAction *QuickReplyAction `protobuf:"bytes,8,opt,name=quickReplyAction" json:"quickReplyAction,omitempty"` RecentEmojiWeightsAction *RecentEmojiWeightsAction `protobuf:"bytes,11,opt,name=recentEmojiWeightsAction" json:"recentEmojiWeightsAction,omitempty"` @@ -2092,6 +2554,7 @@ type SyncActionValue struct { ExternalWebBetaAction *ExternalWebBetaAction `protobuf:"bytes,40,opt,name=externalWebBetaAction" json:"externalWebBetaAction,omitempty"` PrivacySettingRelayAllCalls *PrivacySettingRelayAllCalls `protobuf:"bytes,41,opt,name=privacySettingRelayAllCalls" json:"privacySettingRelayAllCalls,omitempty"` CallLogAction *CallLogAction `protobuf:"bytes,42,opt,name=callLogAction" json:"callLogAction,omitempty"` + UgcBot *UGCBot `protobuf:"bytes,43,opt,name=ugcBot" json:"ugcBot,omitempty"` StatusPrivacy *StatusPrivacyAction `protobuf:"bytes,44,opt,name=statusPrivacy" json:"statusPrivacy,omitempty"` BotWelcomeRequestAction *BotWelcomeRequestAction `protobuf:"bytes,45,opt,name=botWelcomeRequestAction" json:"botWelcomeRequestAction,omitempty"` DeleteIndividualCallLog *DeleteIndividualCallLogAction `protobuf:"bytes,46,opt,name=deleteIndividualCallLog" json:"deleteIndividualCallLog,omitempty"` @@ -2120,14 +2583,17 @@ type SyncActionValue struct { MusicUserIDAction *MusicUserIdAction `protobuf:"bytes,70,opt,name=musicUserIDAction" json:"musicUserIDAction,omitempty"` StatusPostOptInNotificationPreferencesAction *StatusPostOptInNotificationPreferencesAction `protobuf:"bytes,71,opt,name=statusPostOptInNotificationPreferencesAction" json:"statusPostOptInNotificationPreferencesAction,omitempty"` AvatarUpdatedAction *AvatarUpdatedAction `protobuf:"bytes,72,opt,name=avatarUpdatedAction" json:"avatarUpdatedAction,omitempty"` - GalaxyFlowAction *GalaxyFlowAction `protobuf:"bytes,73,opt,name=galaxyFlowAction" json:"galaxyFlowAction,omitempty"` + PrivateProcessingSettingAction *PrivateProcessingSettingAction `protobuf:"bytes,74,opt,name=privateProcessingSettingAction" json:"privateProcessingSettingAction,omitempty"` + NewsletterSavedInterestsAction *NewsletterSavedInterestsAction `protobuf:"bytes,75,opt,name=newsletterSavedInterestsAction" json:"newsletterSavedInterestsAction,omitempty"` + AiThreadRenameAction *AiThreadRenameAction `protobuf:"bytes,76,opt,name=aiThreadRenameAction" json:"aiThreadRenameAction,omitempty"` + InteractiveMessageAction *InteractiveMessageAction `protobuf:"bytes,77,opt,name=interactiveMessageAction" json:"interactiveMessageAction,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SyncActionValue) Reset() { *x = SyncActionValue{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[15] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2139,7 +2605,7 @@ func (x *SyncActionValue) String() string { func (*SyncActionValue) ProtoMessage() {} func (x *SyncActionValue) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[15] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2152,7 +2618,7 @@ func (x *SyncActionValue) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActionValue.ProtoReflect.Descriptor instead. func (*SyncActionValue) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{15} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{16} } func (x *SyncActionValue) GetTimestamp() int64 { @@ -2190,13 +2656,6 @@ func (x *SyncActionValue) GetPinAction() *PinAction { return nil } -func (x *SyncActionValue) GetSecurityNotificationSetting() *SecurityNotificationSetting { - if x != nil { - return x.SecurityNotificationSetting - } - return nil -} - func (x *SyncActionValue) GetPushNameSetting() *PushNameSetting { if x != nil { return x.PushNameSetting @@ -2414,6 +2873,13 @@ func (x *SyncActionValue) GetCallLogAction() *CallLogAction { return nil } +func (x *SyncActionValue) GetUgcBot() *UGCBot { + if x != nil { + return x.UgcBot + } + return nil +} + func (x *SyncActionValue) GetStatusPrivacy() *StatusPrivacyAction { if x != nil { return x.StatusPrivacy @@ -2610,13 +3076,78 @@ func (x *SyncActionValue) GetAvatarUpdatedAction() *AvatarUpdatedAction { return nil } -func (x *SyncActionValue) GetGalaxyFlowAction() *GalaxyFlowAction { +func (x *SyncActionValue) GetPrivateProcessingSettingAction() *PrivateProcessingSettingAction { if x != nil { - return x.GalaxyFlowAction + return x.PrivateProcessingSettingAction } return nil } +func (x *SyncActionValue) GetNewsletterSavedInterestsAction() *NewsletterSavedInterestsAction { + if x != nil { + return x.NewsletterSavedInterestsAction + } + return nil +} + +func (x *SyncActionValue) GetAiThreadRenameAction() *AiThreadRenameAction { + if x != nil { + return x.AiThreadRenameAction + } + return nil +} + +func (x *SyncActionValue) GetInteractiveMessageAction() *InteractiveMessageAction { + if x != nil { + return x.InteractiveMessageAction + } + return nil +} + +type AiThreadRenameAction struct { + state protoimpl.MessageState `protogen:"open.v1"` + NewTitle *string `protobuf:"bytes,1,opt,name=newTitle" json:"newTitle,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AiThreadRenameAction) Reset() { + *x = AiThreadRenameAction{} + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AiThreadRenameAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AiThreadRenameAction) ProtoMessage() {} + +func (x *AiThreadRenameAction) ProtoReflect() protoreflect.Message { + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AiThreadRenameAction.ProtoReflect.Descriptor instead. +func (*AiThreadRenameAction) Descriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{17} +} + +func (x *AiThreadRenameAction) GetNewTitle() string { + if x != nil && x.NewTitle != nil { + return *x.NewTitle + } + return "" +} + type StatusPostOptInNotificationPreferencesAction struct { state protoimpl.MessageState `protogen:"open.v1"` Enabled *bool `protobuf:"varint,1,opt,name=enabled" json:"enabled,omitempty"` @@ -2626,7 +3157,7 @@ type StatusPostOptInNotificationPreferencesAction struct { func (x *StatusPostOptInNotificationPreferencesAction) Reset() { *x = StatusPostOptInNotificationPreferencesAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[16] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2638,7 +3169,7 @@ func (x *StatusPostOptInNotificationPreferencesAction) String() string { func (*StatusPostOptInNotificationPreferencesAction) ProtoMessage() {} func (x *StatusPostOptInNotificationPreferencesAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[16] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2651,7 +3182,7 @@ func (x *StatusPostOptInNotificationPreferencesAction) ProtoReflect() protorefle // Deprecated: Use StatusPostOptInNotificationPreferencesAction.ProtoReflect.Descriptor instead. func (*StatusPostOptInNotificationPreferencesAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{16} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{18} } func (x *StatusPostOptInNotificationPreferencesAction) GetEnabled() bool { @@ -2671,7 +3202,7 @@ type BroadcastListParticipant struct { func (x *BroadcastListParticipant) Reset() { *x = BroadcastListParticipant{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[17] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2683,7 +3214,7 @@ func (x *BroadcastListParticipant) String() string { func (*BroadcastListParticipant) ProtoMessage() {} func (x *BroadcastListParticipant) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[17] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2696,7 +3227,7 @@ func (x *BroadcastListParticipant) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastListParticipant.ProtoReflect.Descriptor instead. func (*BroadcastListParticipant) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{17} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{19} } func (x *BroadcastListParticipant) GetLidJID() string { @@ -2724,7 +3255,7 @@ type BusinessBroadcastListAction struct { func (x *BusinessBroadcastListAction) Reset() { *x = BusinessBroadcastListAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[18] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2736,7 +3267,7 @@ func (x *BusinessBroadcastListAction) String() string { func (*BusinessBroadcastListAction) ProtoMessage() {} func (x *BusinessBroadcastListAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[18] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2749,7 +3280,7 @@ func (x *BusinessBroadcastListAction) ProtoReflect() protoreflect.Message { // Deprecated: Use BusinessBroadcastListAction.ProtoReflect.Descriptor instead. func (*BusinessBroadcastListAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{18} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{20} } func (x *BusinessBroadcastListAction) GetDeleted() bool { @@ -2782,7 +3313,7 @@ type BusinessBroadcastAssociationAction struct { func (x *BusinessBroadcastAssociationAction) Reset() { *x = BusinessBroadcastAssociationAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[19] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2794,7 +3325,7 @@ func (x *BusinessBroadcastAssociationAction) String() string { func (*BusinessBroadcastAssociationAction) ProtoMessage() {} func (x *BusinessBroadcastAssociationAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[19] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2807,7 +3338,7 @@ func (x *BusinessBroadcastAssociationAction) ProtoReflect() protoreflect.Message // Deprecated: Use BusinessBroadcastAssociationAction.ProtoReflect.Descriptor instead. func (*BusinessBroadcastAssociationAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{19} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{21} } func (x *BusinessBroadcastAssociationAction) GetDeleted() bool { @@ -2826,7 +3357,7 @@ type CtwaPerCustomerDataSharingAction struct { func (x *CtwaPerCustomerDataSharingAction) Reset() { *x = CtwaPerCustomerDataSharingAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[20] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2838,7 +3369,7 @@ func (x *CtwaPerCustomerDataSharingAction) String() string { func (*CtwaPerCustomerDataSharingAction) ProtoMessage() {} func (x *CtwaPerCustomerDataSharingAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[20] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2851,7 +3382,7 @@ func (x *CtwaPerCustomerDataSharingAction) ProtoReflect() protoreflect.Message { // Deprecated: Use CtwaPerCustomerDataSharingAction.ProtoReflect.Descriptor instead. func (*CtwaPerCustomerDataSharingAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{20} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{22} } func (x *CtwaPerCustomerDataSharingAction) GetIsCtwaPerCustomerDataSharingEnabled() bool { @@ -2862,18 +3393,17 @@ func (x *CtwaPerCustomerDataSharingAction) GetIsCtwaPerCustomerDataSharingEnable } type LidContactAction struct { - state protoimpl.MessageState `protogen:"open.v1"` - FullName *string `protobuf:"bytes,1,opt,name=fullName" json:"fullName,omitempty"` - FirstName *string `protobuf:"bytes,2,opt,name=firstName" json:"firstName,omitempty"` - Username *string `protobuf:"bytes,3,opt,name=username" json:"username,omitempty"` - SaveOnPrimaryAddressbook *bool `protobuf:"varint,4,opt,name=saveOnPrimaryAddressbook" json:"saveOnPrimaryAddressbook,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FullName *string `protobuf:"bytes,1,opt,name=fullName" json:"fullName,omitempty"` + FirstName *string `protobuf:"bytes,2,opt,name=firstName" json:"firstName,omitempty"` + Username *string `protobuf:"bytes,3,opt,name=username" json:"username,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LidContactAction) Reset() { *x = LidContactAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[21] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2885,7 +3415,7 @@ func (x *LidContactAction) String() string { func (*LidContactAction) ProtoMessage() {} func (x *LidContactAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[21] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2898,7 +3428,7 @@ func (x *LidContactAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LidContactAction.ProtoReflect.Descriptor instead. func (*LidContactAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{21} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{23} } func (x *LidContactAction) GetFullName() string { @@ -2922,13 +3452,6 @@ func (x *LidContactAction) GetUsername() string { return "" } -func (x *LidContactAction) GetSaveOnPrimaryAddressbook() bool { - if x != nil && x.SaveOnPrimaryAddressbook != nil { - return *x.SaveOnPrimaryAddressbook - } - return false -} - type FavoritesAction struct { state protoimpl.MessageState `protogen:"open.v1"` Favorites []*FavoritesAction_Favorite `protobuf:"bytes,1,rep,name=favorites" json:"favorites,omitempty"` @@ -2938,7 +3461,7 @@ type FavoritesAction struct { func (x *FavoritesAction) Reset() { *x = FavoritesAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[22] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2950,7 +3473,7 @@ func (x *FavoritesAction) String() string { func (*FavoritesAction) ProtoMessage() {} func (x *FavoritesAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[22] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2963,7 +3486,7 @@ func (x *FavoritesAction) ProtoReflect() protoreflect.Message { // Deprecated: Use FavoritesAction.ProtoReflect.Descriptor instead. func (*FavoritesAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{22} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{24} } func (x *FavoritesAction) GetFavorites() []*FavoritesAction_Favorite { @@ -2982,7 +3505,7 @@ type PrivacySettingChannelsPersonalisedRecommendationAction struct { func (x *PrivacySettingChannelsPersonalisedRecommendationAction) Reset() { *x = PrivacySettingChannelsPersonalisedRecommendationAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[23] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2994,7 +3517,7 @@ func (x *PrivacySettingChannelsPersonalisedRecommendationAction) String() string func (*PrivacySettingChannelsPersonalisedRecommendationAction) ProtoMessage() {} func (x *PrivacySettingChannelsPersonalisedRecommendationAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[23] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3007,7 +3530,7 @@ func (x *PrivacySettingChannelsPersonalisedRecommendationAction) ProtoReflect() // Deprecated: Use PrivacySettingChannelsPersonalisedRecommendationAction.ProtoReflect.Descriptor instead. func (*PrivacySettingChannelsPersonalisedRecommendationAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{23} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{25} } func (x *PrivacySettingChannelsPersonalisedRecommendationAction) GetIsUserOptedOut() bool { @@ -3026,7 +3549,7 @@ type PrivacySettingDisableLinkPreviewsAction struct { func (x *PrivacySettingDisableLinkPreviewsAction) Reset() { *x = PrivacySettingDisableLinkPreviewsAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[24] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3038,7 +3561,7 @@ func (x *PrivacySettingDisableLinkPreviewsAction) String() string { func (*PrivacySettingDisableLinkPreviewsAction) ProtoMessage() {} func (x *PrivacySettingDisableLinkPreviewsAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[24] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3051,7 +3574,7 @@ func (x *PrivacySettingDisableLinkPreviewsAction) ProtoReflect() protoreflect.Me // Deprecated: Use PrivacySettingDisableLinkPreviewsAction.ProtoReflect.Descriptor instead. func (*PrivacySettingDisableLinkPreviewsAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{24} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{26} } func (x *PrivacySettingDisableLinkPreviewsAction) GetIsPreviewsDisabled() bool { @@ -3070,7 +3593,7 @@ type WamoUserIdentifierAction struct { func (x *WamoUserIdentifierAction) Reset() { *x = WamoUserIdentifierAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[25] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3082,7 +3605,7 @@ func (x *WamoUserIdentifierAction) String() string { func (*WamoUserIdentifierAction) ProtoMessage() {} func (x *WamoUserIdentifierAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[25] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3095,7 +3618,7 @@ func (x *WamoUserIdentifierAction) ProtoReflect() protoreflect.Message { // Deprecated: Use WamoUserIdentifierAction.ProtoReflect.Descriptor instead. func (*WamoUserIdentifierAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{25} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{27} } func (x *WamoUserIdentifierAction) GetIdentifier() string { @@ -3114,7 +3637,7 @@ type LockChatAction struct { func (x *LockChatAction) Reset() { *x = LockChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[26] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3126,7 +3649,7 @@ func (x *LockChatAction) String() string { func (*LockChatAction) ProtoMessage() {} func (x *LockChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[26] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3139,7 +3662,7 @@ func (x *LockChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LockChatAction.ProtoReflect.Descriptor instead. func (*LockChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{26} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{28} } func (x *LockChatAction) GetLocked() bool { @@ -3158,7 +3681,7 @@ type CustomPaymentMethodsAction struct { func (x *CustomPaymentMethodsAction) Reset() { *x = CustomPaymentMethodsAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[27] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3170,7 +3693,7 @@ func (x *CustomPaymentMethodsAction) String() string { func (*CustomPaymentMethodsAction) ProtoMessage() {} func (x *CustomPaymentMethodsAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[27] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3183,7 +3706,7 @@ func (x *CustomPaymentMethodsAction) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomPaymentMethodsAction.ProtoReflect.Descriptor instead. func (*CustomPaymentMethodsAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{27} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{29} } func (x *CustomPaymentMethodsAction) GetCustomPaymentMethods() []*CustomPaymentMethod { @@ -3205,7 +3728,7 @@ type CustomPaymentMethod struct { func (x *CustomPaymentMethod) Reset() { *x = CustomPaymentMethod{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[28] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3217,7 +3740,7 @@ func (x *CustomPaymentMethod) String() string { func (*CustomPaymentMethod) ProtoMessage() {} func (x *CustomPaymentMethod) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[28] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3230,7 +3753,7 @@ func (x *CustomPaymentMethod) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomPaymentMethod.ProtoReflect.Descriptor instead. func (*CustomPaymentMethod) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{28} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{30} } func (x *CustomPaymentMethod) GetCredentialID() string { @@ -3271,7 +3794,7 @@ type CustomPaymentMethodMetadata struct { func (x *CustomPaymentMethodMetadata) Reset() { *x = CustomPaymentMethodMetadata{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[29] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3283,7 +3806,7 @@ func (x *CustomPaymentMethodMetadata) String() string { func (*CustomPaymentMethodMetadata) ProtoMessage() {} func (x *CustomPaymentMethodMetadata) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[29] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3296,7 +3819,7 @@ func (x *CustomPaymentMethodMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomPaymentMethodMetadata.ProtoReflect.Descriptor instead. func (*CustomPaymentMethodMetadata) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{29} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{31} } func (x *CustomPaymentMethodMetadata) GetKey() string { @@ -3322,7 +3845,7 @@ type PaymentInfoAction struct { func (x *PaymentInfoAction) Reset() { *x = PaymentInfoAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[30] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3334,7 +3857,7 @@ func (x *PaymentInfoAction) String() string { func (*PaymentInfoAction) ProtoMessage() {} func (x *PaymentInfoAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[30] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3347,7 +3870,7 @@ func (x *PaymentInfoAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PaymentInfoAction.ProtoReflect.Descriptor instead. func (*PaymentInfoAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{30} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{32} } func (x *PaymentInfoAction) GetCpi() string { @@ -3366,7 +3889,7 @@ type LabelReorderingAction struct { func (x *LabelReorderingAction) Reset() { *x = LabelReorderingAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[31] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3378,7 +3901,7 @@ func (x *LabelReorderingAction) String() string { func (*LabelReorderingAction) ProtoMessage() {} func (x *LabelReorderingAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[31] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3391,7 +3914,7 @@ func (x *LabelReorderingAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelReorderingAction.ProtoReflect.Descriptor instead. func (*LabelReorderingAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{31} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{33} } func (x *LabelReorderingAction) GetSortedLabelIDs() []int32 { @@ -3411,7 +3934,7 @@ type DeleteIndividualCallLogAction struct { func (x *DeleteIndividualCallLogAction) Reset() { *x = DeleteIndividualCallLogAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[32] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3423,7 +3946,7 @@ func (x *DeleteIndividualCallLogAction) String() string { func (*DeleteIndividualCallLogAction) ProtoMessage() {} func (x *DeleteIndividualCallLogAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[32] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3436,7 +3959,7 @@ func (x *DeleteIndividualCallLogAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteIndividualCallLogAction.ProtoReflect.Descriptor instead. func (*DeleteIndividualCallLogAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{32} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{34} } func (x *DeleteIndividualCallLogAction) GetPeerJID() string { @@ -3462,7 +3985,7 @@ type BotWelcomeRequestAction struct { func (x *BotWelcomeRequestAction) Reset() { *x = BotWelcomeRequestAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[33] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3474,7 +3997,7 @@ func (x *BotWelcomeRequestAction) String() string { func (*BotWelcomeRequestAction) ProtoMessage() {} func (x *BotWelcomeRequestAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[33] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3487,7 +4010,7 @@ func (x *BotWelcomeRequestAction) ProtoReflect() protoreflect.Message { // Deprecated: Use BotWelcomeRequestAction.ProtoReflect.Descriptor instead. func (*BotWelcomeRequestAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{33} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{35} } func (x *BotWelcomeRequestAction) GetIsSent() bool { @@ -3497,6 +4020,50 @@ func (x *BotWelcomeRequestAction) GetIsSent() bool { return false } +type NewsletterSavedInterestsAction struct { + state protoimpl.MessageState `protogen:"open.v1"` + NewsletterSavedInterests *string `protobuf:"bytes,1,opt,name=newsletterSavedInterests" json:"newsletterSavedInterests,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NewsletterSavedInterestsAction) Reset() { + *x = NewsletterSavedInterestsAction{} + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NewsletterSavedInterestsAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewsletterSavedInterestsAction) ProtoMessage() {} + +func (x *NewsletterSavedInterestsAction) ProtoReflect() protoreflect.Message { + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewsletterSavedInterestsAction.ProtoReflect.Descriptor instead. +func (*NewsletterSavedInterestsAction) Descriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{36} +} + +func (x *NewsletterSavedInterestsAction) GetNewsletterSavedInterests() string { + if x != nil && x.NewsletterSavedInterests != nil { + return *x.NewsletterSavedInterests + } + return "" +} + type MusicUserIdAction struct { state protoimpl.MessageState `protogen:"open.v1"` MusicUserID *string `protobuf:"bytes,1,opt,name=musicUserID" json:"musicUserID,omitempty"` @@ -3506,7 +4073,7 @@ type MusicUserIdAction struct { func (x *MusicUserIdAction) Reset() { *x = MusicUserIdAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[34] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3518,7 +4085,7 @@ func (x *MusicUserIdAction) String() string { func (*MusicUserIdAction) ProtoMessage() {} func (x *MusicUserIdAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[34] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3531,7 +4098,7 @@ func (x *MusicUserIdAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MusicUserIdAction.ProtoReflect.Descriptor instead. func (*MusicUserIdAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{34} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{37} } func (x *MusicUserIdAction) GetMusicUserID() string { @@ -3541,6 +4108,50 @@ func (x *MusicUserIdAction) GetMusicUserID() string { return "" } +type UGCBot struct { + state protoimpl.MessageState `protogen:"open.v1"` + Definition []byte `protobuf:"bytes,1,opt,name=definition" json:"definition,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UGCBot) Reset() { + *x = UGCBot{} + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UGCBot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UGCBot) ProtoMessage() {} + +func (x *UGCBot) ProtoReflect() protoreflect.Message { + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[38] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UGCBot.ProtoReflect.Descriptor instead. +func (*UGCBot) Descriptor() ([]byte, []int) { + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{38} +} + +func (x *UGCBot) GetDefinition() []byte { + if x != nil { + return x.Definition + } + return nil +} + type CallLogAction struct { state protoimpl.MessageState `protogen:"open.v1"` CallLogRecord *CallLogRecord `protobuf:"bytes,1,opt,name=callLogRecord" json:"callLogRecord,omitempty"` @@ -3550,7 +4161,7 @@ type CallLogAction struct { func (x *CallLogAction) Reset() { *x = CallLogAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[35] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3562,7 +4173,7 @@ func (x *CallLogAction) String() string { func (*CallLogAction) ProtoMessage() {} func (x *CallLogAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[35] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3575,7 +4186,7 @@ func (x *CallLogAction) ProtoReflect() protoreflect.Message { // Deprecated: Use CallLogAction.ProtoReflect.Descriptor instead. func (*CallLogAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{35} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{39} } func (x *CallLogAction) GetCallLogRecord() *CallLogRecord { @@ -3594,7 +4205,7 @@ type PrivacySettingRelayAllCalls struct { func (x *PrivacySettingRelayAllCalls) Reset() { *x = PrivacySettingRelayAllCalls{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[36] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3606,7 +4217,7 @@ func (x *PrivacySettingRelayAllCalls) String() string { func (*PrivacySettingRelayAllCalls) ProtoMessage() {} func (x *PrivacySettingRelayAllCalls) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[36] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3619,7 +4230,7 @@ func (x *PrivacySettingRelayAllCalls) ProtoReflect() protoreflect.Message { // Deprecated: Use PrivacySettingRelayAllCalls.ProtoReflect.Descriptor instead. func (*PrivacySettingRelayAllCalls) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{36} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{40} } func (x *PrivacySettingRelayAllCalls) GetIsEnabled() bool { @@ -3638,7 +4249,7 @@ type DetectedOutcomesStatusAction struct { func (x *DetectedOutcomesStatusAction) Reset() { *x = DetectedOutcomesStatusAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[37] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3650,7 +4261,7 @@ func (x *DetectedOutcomesStatusAction) String() string { func (*DetectedOutcomesStatusAction) ProtoMessage() {} func (x *DetectedOutcomesStatusAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[37] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3663,7 +4274,7 @@ func (x *DetectedOutcomesStatusAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DetectedOutcomesStatusAction.ProtoReflect.Descriptor instead. func (*DetectedOutcomesStatusAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{37} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{41} } func (x *DetectedOutcomesStatusAction) GetIsEnabled() bool { @@ -3682,7 +4293,7 @@ type ExternalWebBetaAction struct { func (x *ExternalWebBetaAction) Reset() { *x = ExternalWebBetaAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[38] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3694,7 +4305,7 @@ func (x *ExternalWebBetaAction) String() string { func (*ExternalWebBetaAction) ProtoMessage() {} func (x *ExternalWebBetaAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[38] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3707,7 +4318,7 @@ func (x *ExternalWebBetaAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ExternalWebBetaAction.ProtoReflect.Descriptor instead. func (*ExternalWebBetaAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{38} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{42} } func (x *ExternalWebBetaAction) GetIsOptIn() bool { @@ -3726,7 +4337,7 @@ type MarketingMessageBroadcastAction struct { func (x *MarketingMessageBroadcastAction) Reset() { *x = MarketingMessageBroadcastAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[39] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3738,7 +4349,7 @@ func (x *MarketingMessageBroadcastAction) String() string { func (*MarketingMessageBroadcastAction) ProtoMessage() {} func (x *MarketingMessageBroadcastAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[39] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3751,7 +4362,7 @@ func (x *MarketingMessageBroadcastAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketingMessageBroadcastAction.ProtoReflect.Descriptor instead. func (*MarketingMessageBroadcastAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{39} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{43} } func (x *MarketingMessageBroadcastAction) GetRepliedCount() int32 { @@ -3770,7 +4381,7 @@ type PnForLidChatAction struct { func (x *PnForLidChatAction) Reset() { *x = PnForLidChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[40] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3782,7 +4393,7 @@ func (x *PnForLidChatAction) String() string { func (*PnForLidChatAction) ProtoMessage() {} func (x *PnForLidChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[40] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3795,7 +4406,7 @@ func (x *PnForLidChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PnForLidChatAction.ProtoReflect.Descriptor instead. func (*PnForLidChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{40} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{44} } func (x *PnForLidChatAction) GetPnJID() string { @@ -3814,7 +4425,7 @@ type ChatAssignmentOpenedStatusAction struct { func (x *ChatAssignmentOpenedStatusAction) Reset() { *x = ChatAssignmentOpenedStatusAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[41] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3826,7 +4437,7 @@ func (x *ChatAssignmentOpenedStatusAction) String() string { func (*ChatAssignmentOpenedStatusAction) ProtoMessage() {} func (x *ChatAssignmentOpenedStatusAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[41] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3839,7 +4450,7 @@ func (x *ChatAssignmentOpenedStatusAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatAssignmentOpenedStatusAction.ProtoReflect.Descriptor instead. func (*ChatAssignmentOpenedStatusAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{41} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{45} } func (x *ChatAssignmentOpenedStatusAction) GetChatOpened() bool { @@ -3858,7 +4469,7 @@ type ChatAssignmentAction struct { func (x *ChatAssignmentAction) Reset() { *x = ChatAssignmentAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[42] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3870,7 +4481,7 @@ func (x *ChatAssignmentAction) String() string { func (*ChatAssignmentAction) ProtoMessage() {} func (x *ChatAssignmentAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[42] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3883,7 +4494,7 @@ func (x *ChatAssignmentAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatAssignmentAction.ProtoReflect.Descriptor instead. func (*ChatAssignmentAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{42} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{46} } func (x *ChatAssignmentAction) GetDeviceAgentID() string { @@ -3914,7 +4525,7 @@ type StickerAction struct { func (x *StickerAction) Reset() { *x = StickerAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[43] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3926,7 +4537,7 @@ func (x *StickerAction) String() string { func (*StickerAction) ProtoMessage() {} func (x *StickerAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[43] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3939,7 +4550,7 @@ func (x *StickerAction) ProtoReflect() protoreflect.Message { // Deprecated: Use StickerAction.ProtoReflect.Descriptor instead. func (*StickerAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{43} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{47} } func (x *StickerAction) GetURL() string { @@ -4042,7 +4653,7 @@ type RemoveRecentStickerAction struct { func (x *RemoveRecentStickerAction) Reset() { *x = RemoveRecentStickerAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[44] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4054,7 +4665,7 @@ func (x *RemoveRecentStickerAction) String() string { func (*RemoveRecentStickerAction) ProtoMessage() {} func (x *RemoveRecentStickerAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[44] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4067,7 +4678,7 @@ func (x *RemoveRecentStickerAction) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveRecentStickerAction.ProtoReflect.Descriptor instead. func (*RemoveRecentStickerAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{44} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{48} } func (x *RemoveRecentStickerAction) GetLastStickerSentTS() int64 { @@ -4086,7 +4697,7 @@ type PrimaryVersionAction struct { func (x *PrimaryVersionAction) Reset() { *x = PrimaryVersionAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[45] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4098,7 +4709,7 @@ func (x *PrimaryVersionAction) String() string { func (*PrimaryVersionAction) ProtoMessage() {} func (x *PrimaryVersionAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[45] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4111,7 +4722,7 @@ func (x *PrimaryVersionAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PrimaryVersionAction.ProtoReflect.Descriptor instead. func (*PrimaryVersionAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{45} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{49} } func (x *PrimaryVersionAction) GetVersion() string { @@ -4130,7 +4741,7 @@ type NuxAction struct { func (x *NuxAction) Reset() { *x = NuxAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[46] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4142,7 +4753,7 @@ func (x *NuxAction) String() string { func (*NuxAction) ProtoMessage() {} func (x *NuxAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[46] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4155,7 +4766,7 @@ func (x *NuxAction) ProtoReflect() protoreflect.Message { // Deprecated: Use NuxAction.ProtoReflect.Descriptor instead. func (*NuxAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{46} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{50} } func (x *NuxAction) GetAcknowledged() bool { @@ -4174,7 +4785,7 @@ type TimeFormatAction struct { func (x *TimeFormatAction) Reset() { *x = TimeFormatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[47] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4186,7 +4797,7 @@ func (x *TimeFormatAction) String() string { func (*TimeFormatAction) ProtoMessage() {} func (x *TimeFormatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[47] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4199,7 +4810,7 @@ func (x *TimeFormatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use TimeFormatAction.ProtoReflect.Descriptor instead. func (*TimeFormatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{47} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{51} } func (x *TimeFormatAction) GetIsTwentyFourHourFormatEnabled() bool { @@ -4218,7 +4829,7 @@ type UserStatusMuteAction struct { func (x *UserStatusMuteAction) Reset() { *x = UserStatusMuteAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[48] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4230,7 +4841,7 @@ func (x *UserStatusMuteAction) String() string { func (*UserStatusMuteAction) ProtoMessage() {} func (x *UserStatusMuteAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[48] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4243,7 +4854,7 @@ func (x *UserStatusMuteAction) ProtoReflect() protoreflect.Message { // Deprecated: Use UserStatusMuteAction.ProtoReflect.Descriptor instead. func (*UserStatusMuteAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{48} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{52} } func (x *UserStatusMuteAction) GetMuted() bool { @@ -4264,7 +4875,7 @@ type SubscriptionAction struct { func (x *SubscriptionAction) Reset() { *x = SubscriptionAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[49] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4276,7 +4887,7 @@ func (x *SubscriptionAction) String() string { func (*SubscriptionAction) ProtoMessage() {} func (x *SubscriptionAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[49] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4289,7 +4900,7 @@ func (x *SubscriptionAction) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscriptionAction.ProtoReflect.Descriptor instead. func (*SubscriptionAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{49} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{53} } func (x *SubscriptionAction) GetIsDeactivated() bool { @@ -4324,7 +4935,7 @@ type AgentAction struct { func (x *AgentAction) Reset() { *x = AgentAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[50] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4336,7 +4947,7 @@ func (x *AgentAction) String() string { func (*AgentAction) ProtoMessage() {} func (x *AgentAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[50] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4349,7 +4960,7 @@ func (x *AgentAction) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentAction.ProtoReflect.Descriptor instead. func (*AgentAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{50} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{54} } func (x *AgentAction) GetName() string { @@ -4382,7 +4993,7 @@ type AndroidUnsupportedActions struct { func (x *AndroidUnsupportedActions) Reset() { *x = AndroidUnsupportedActions{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[51] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4394,7 +5005,7 @@ func (x *AndroidUnsupportedActions) String() string { func (*AndroidUnsupportedActions) ProtoMessage() {} func (x *AndroidUnsupportedActions) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[51] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4407,7 +5018,7 @@ func (x *AndroidUnsupportedActions) ProtoReflect() protoreflect.Message { // Deprecated: Use AndroidUnsupportedActions.ProtoReflect.Descriptor instead. func (*AndroidUnsupportedActions) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{51} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{55} } func (x *AndroidUnsupportedActions) GetAllowed() bool { @@ -4426,7 +5037,7 @@ type PrimaryFeature struct { func (x *PrimaryFeature) Reset() { *x = PrimaryFeature{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[52] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4438,7 +5049,7 @@ func (x *PrimaryFeature) String() string { func (*PrimaryFeature) ProtoMessage() {} func (x *PrimaryFeature) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[52] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4451,7 +5062,7 @@ func (x *PrimaryFeature) ProtoReflect() protoreflect.Message { // Deprecated: Use PrimaryFeature.ProtoReflect.Descriptor instead. func (*PrimaryFeature) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{52} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{56} } func (x *PrimaryFeature) GetFlags() []string { @@ -4470,7 +5081,7 @@ type KeyExpiration struct { func (x *KeyExpiration) Reset() { *x = KeyExpiration{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[53] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4482,7 +5093,7 @@ func (x *KeyExpiration) String() string { func (*KeyExpiration) ProtoMessage() {} func (x *KeyExpiration) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[53] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4495,7 +5106,7 @@ func (x *KeyExpiration) ProtoReflect() protoreflect.Message { // Deprecated: Use KeyExpiration.ProtoReflect.Descriptor instead. func (*KeyExpiration) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{53} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{57} } func (x *KeyExpiration) GetExpiredKeyEpoch() int32 { @@ -4515,7 +5126,7 @@ type SyncActionMessage struct { func (x *SyncActionMessage) Reset() { *x = SyncActionMessage{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[54] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4527,7 +5138,7 @@ func (x *SyncActionMessage) String() string { func (*SyncActionMessage) ProtoMessage() {} func (x *SyncActionMessage) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[54] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4540,7 +5151,7 @@ func (x *SyncActionMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActionMessage.ProtoReflect.Descriptor instead. func (*SyncActionMessage) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{54} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{58} } func (x *SyncActionMessage) GetKey() *waCommon.MessageKey { @@ -4568,7 +5179,7 @@ type SyncActionMessageRange struct { func (x *SyncActionMessageRange) Reset() { *x = SyncActionMessageRange{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[55] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4580,7 +5191,7 @@ func (x *SyncActionMessageRange) String() string { func (*SyncActionMessageRange) ProtoMessage() {} func (x *SyncActionMessageRange) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[55] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4593,7 +5204,7 @@ func (x *SyncActionMessageRange) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActionMessageRange.ProtoReflect.Descriptor instead. func (*SyncActionMessageRange) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{55} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{59} } func (x *SyncActionMessageRange) GetLastMessageTimestamp() int64 { @@ -4626,7 +5237,7 @@ type UnarchiveChatsSetting struct { func (x *UnarchiveChatsSetting) Reset() { *x = UnarchiveChatsSetting{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[56] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4638,7 +5249,7 @@ func (x *UnarchiveChatsSetting) String() string { func (*UnarchiveChatsSetting) ProtoMessage() {} func (x *UnarchiveChatsSetting) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[56] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4651,7 +5262,7 @@ func (x *UnarchiveChatsSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use UnarchiveChatsSetting.ProtoReflect.Descriptor instead. func (*UnarchiveChatsSetting) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{56} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{60} } func (x *UnarchiveChatsSetting) GetUnarchiveChats() bool { @@ -4670,7 +5281,7 @@ type DeleteChatAction struct { func (x *DeleteChatAction) Reset() { *x = DeleteChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[57] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4682,7 +5293,7 @@ func (x *DeleteChatAction) String() string { func (*DeleteChatAction) ProtoMessage() {} func (x *DeleteChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[57] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4695,7 +5306,7 @@ func (x *DeleteChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChatAction.ProtoReflect.Descriptor instead. func (*DeleteChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{57} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{61} } func (x *DeleteChatAction) GetMessageRange() *SyncActionMessageRange { @@ -4714,7 +5325,7 @@ type ClearChatAction struct { func (x *ClearChatAction) Reset() { *x = ClearChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[58] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4726,7 +5337,7 @@ func (x *ClearChatAction) String() string { func (*ClearChatAction) ProtoMessage() {} func (x *ClearChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[58] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4739,7 +5350,7 @@ func (x *ClearChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ClearChatAction.ProtoReflect.Descriptor instead. func (*ClearChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{58} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{62} } func (x *ClearChatAction) GetMessageRange() *SyncActionMessageRange { @@ -4759,7 +5370,7 @@ type MarkChatAsReadAction struct { func (x *MarkChatAsReadAction) Reset() { *x = MarkChatAsReadAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[59] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4771,7 +5382,7 @@ func (x *MarkChatAsReadAction) String() string { func (*MarkChatAsReadAction) ProtoMessage() {} func (x *MarkChatAsReadAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[59] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4784,7 +5395,7 @@ func (x *MarkChatAsReadAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MarkChatAsReadAction.ProtoReflect.Descriptor instead. func (*MarkChatAsReadAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{59} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{63} } func (x *MarkChatAsReadAction) GetRead() bool { @@ -4811,7 +5422,7 @@ type DeleteMessageForMeAction struct { func (x *DeleteMessageForMeAction) Reset() { *x = DeleteMessageForMeAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[60] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4823,7 +5434,7 @@ func (x *DeleteMessageForMeAction) String() string { func (*DeleteMessageForMeAction) ProtoMessage() {} func (x *DeleteMessageForMeAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[60] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4836,7 +5447,7 @@ func (x *DeleteMessageForMeAction) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMessageForMeAction.ProtoReflect.Descriptor instead. func (*DeleteMessageForMeAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{60} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{64} } func (x *DeleteMessageForMeAction) GetDeleteMedia() bool { @@ -4863,7 +5474,7 @@ type ArchiveChatAction struct { func (x *ArchiveChatAction) Reset() { *x = ArchiveChatAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[61] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4875,7 +5486,7 @@ func (x *ArchiveChatAction) String() string { func (*ArchiveChatAction) ProtoMessage() {} func (x *ArchiveChatAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[61] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4888,7 +5499,7 @@ func (x *ArchiveChatAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ArchiveChatAction.ProtoReflect.Descriptor instead. func (*ArchiveChatAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{61} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{65} } func (x *ArchiveChatAction) GetArchived() bool { @@ -4914,7 +5525,7 @@ type RecentEmojiWeightsAction struct { func (x *RecentEmojiWeightsAction) Reset() { *x = RecentEmojiWeightsAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[62] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4926,7 +5537,7 @@ func (x *RecentEmojiWeightsAction) String() string { func (*RecentEmojiWeightsAction) ProtoMessage() {} func (x *RecentEmojiWeightsAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[62] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4939,7 +5550,7 @@ func (x *RecentEmojiWeightsAction) ProtoReflect() protoreflect.Message { // Deprecated: Use RecentEmojiWeightsAction.ProtoReflect.Descriptor instead. func (*RecentEmojiWeightsAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{62} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{66} } func (x *RecentEmojiWeightsAction) GetWeights() []*RecentEmojiWeight { @@ -4958,7 +5569,7 @@ type LabelAssociationAction struct { func (x *LabelAssociationAction) Reset() { *x = LabelAssociationAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[63] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4970,7 +5581,7 @@ func (x *LabelAssociationAction) String() string { func (*LabelAssociationAction) ProtoMessage() {} func (x *LabelAssociationAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[63] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4983,7 +5594,7 @@ func (x *LabelAssociationAction) ProtoReflect() protoreflect.Message { // Deprecated: Use LabelAssociationAction.ProtoReflect.Descriptor instead. func (*LabelAssociationAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{63} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{67} } func (x *LabelAssociationAction) GetLabeled() bool { @@ -5006,7 +5617,7 @@ type QuickReplyAction struct { func (x *QuickReplyAction) Reset() { *x = QuickReplyAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[64] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5018,7 +5629,7 @@ func (x *QuickReplyAction) String() string { func (*QuickReplyAction) ProtoMessage() {} func (x *QuickReplyAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[64] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5031,7 +5642,7 @@ func (x *QuickReplyAction) ProtoReflect() protoreflect.Message { // Deprecated: Use QuickReplyAction.ProtoReflect.Descriptor instead. func (*QuickReplyAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{64} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{68} } func (x *QuickReplyAction) GetShortcut() string { @@ -5078,7 +5689,7 @@ type LocaleSetting struct { func (x *LocaleSetting) Reset() { *x = LocaleSetting{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[65] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5090,7 +5701,7 @@ func (x *LocaleSetting) String() string { func (*LocaleSetting) ProtoMessage() {} func (x *LocaleSetting) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[65] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5103,7 +5714,7 @@ func (x *LocaleSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use LocaleSetting.ProtoReflect.Descriptor instead. func (*LocaleSetting) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{65} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{69} } func (x *LocaleSetting) GetLocale() string { @@ -5122,7 +5733,7 @@ type PushNameSetting struct { func (x *PushNameSetting) Reset() { *x = PushNameSetting{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[66] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5134,7 +5745,7 @@ func (x *PushNameSetting) String() string { func (*PushNameSetting) ProtoMessage() {} func (x *PushNameSetting) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[66] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5147,7 +5758,7 @@ func (x *PushNameSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use PushNameSetting.ProtoReflect.Descriptor instead. func (*PushNameSetting) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{66} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{70} } func (x *PushNameSetting) GetName() string { @@ -5157,50 +5768,6 @@ func (x *PushNameSetting) GetName() string { return "" } -type SecurityNotificationSetting struct { - state protoimpl.MessageState `protogen:"open.v1"` - ShowNotification *bool `protobuf:"varint,1,opt,name=showNotification" json:"showNotification,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *SecurityNotificationSetting) Reset() { - *x = SecurityNotificationSetting{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SecurityNotificationSetting) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SecurityNotificationSetting) ProtoMessage() {} - -func (x *SecurityNotificationSetting) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[67] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SecurityNotificationSetting.ProtoReflect.Descriptor instead. -func (*SecurityNotificationSetting) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{67} -} - -func (x *SecurityNotificationSetting) GetShowNotification() bool { - if x != nil && x.ShowNotification != nil { - return *x.ShowNotification - } - return false -} - type PinAction struct { state protoimpl.MessageState `protogen:"open.v1"` Pinned *bool `protobuf:"varint,1,opt,name=pinned" json:"pinned,omitempty"` @@ -5210,7 +5777,7 @@ type PinAction struct { func (x *PinAction) Reset() { *x = PinAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[68] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5222,7 +5789,7 @@ func (x *PinAction) String() string { func (*PinAction) ProtoMessage() {} func (x *PinAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[68] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5235,7 +5802,7 @@ func (x *PinAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PinAction.ProtoReflect.Descriptor instead. func (*PinAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{68} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{71} } func (x *PinAction) GetPinned() bool { @@ -5256,7 +5823,7 @@ type MuteAction struct { func (x *MuteAction) Reset() { *x = MuteAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[69] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5268,7 +5835,7 @@ func (x *MuteAction) String() string { func (*MuteAction) ProtoMessage() {} func (x *MuteAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[69] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5281,7 +5848,7 @@ func (x *MuteAction) ProtoReflect() protoreflect.Message { // Deprecated: Use MuteAction.ProtoReflect.Descriptor instead. func (*MuteAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{69} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{72} } func (x *MuteAction) GetMuted() bool { @@ -5319,7 +5886,7 @@ type ContactAction struct { func (x *ContactAction) Reset() { *x = ContactAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[70] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5331,7 +5898,7 @@ func (x *ContactAction) String() string { func (*ContactAction) ProtoMessage() {} func (x *ContactAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[70] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5344,7 +5911,7 @@ func (x *ContactAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ContactAction.ProtoReflect.Descriptor instead. func (*ContactAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{70} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{73} } func (x *ContactAction) GetFullName() string { @@ -5398,7 +5965,7 @@ type StarAction struct { func (x *StarAction) Reset() { *x = StarAction{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[71] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5410,7 +5977,7 @@ func (x *StarAction) String() string { func (*StarAction) ProtoMessage() {} func (x *StarAction) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[71] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5423,7 +5990,7 @@ func (x *StarAction) ProtoReflect() protoreflect.Message { // Deprecated: Use StarAction.ProtoReflect.Descriptor instead. func (*StarAction) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{71} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{74} } func (x *StarAction) GetStarred() bool { @@ -5445,7 +6012,7 @@ type SyncActionData struct { func (x *SyncActionData) Reset() { *x = SyncActionData{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[72] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5457,7 +6024,7 @@ func (x *SyncActionData) String() string { func (*SyncActionData) ProtoMessage() {} func (x *SyncActionData) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[72] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5470,7 +6037,7 @@ func (x *SyncActionData) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActionData.ProtoReflect.Descriptor instead. func (*SyncActionData) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{72} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{75} } func (x *SyncActionData) GetIndex() []byte { @@ -5504,14 +6071,14 @@ func (x *SyncActionData) GetVersion() int32 { type CallLogRecord_ParticipantInfo struct { state protoimpl.MessageState `protogen:"open.v1"` UserJID *string `protobuf:"bytes,1,opt,name=userJID" json:"userJID,omitempty"` - CallResult *CallLogRecord_CallResult `protobuf:"varint,2,opt,name=callResult,enum=WASyncAction.CallLogRecord_CallResult" json:"callResult,omitempty"` + CallResult *CallLogRecord_CallResult `protobuf:"varint,2,opt,name=callResult,enum=WAWebProtobufSyncAction.CallLogRecord_CallResult" json:"callResult,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *CallLogRecord_ParticipantInfo) Reset() { *x = CallLogRecord_ParticipantInfo{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[73] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5523,7 +6090,7 @@ func (x *CallLogRecord_ParticipantInfo) String() string { func (*CallLogRecord_ParticipantInfo) ProtoMessage() {} func (x *CallLogRecord_ParticipantInfo) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[73] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5536,7 +6103,7 @@ func (x *CallLogRecord_ParticipantInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CallLogRecord_ParticipantInfo.ProtoReflect.Descriptor instead. func (*CallLogRecord_ParticipantInfo) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{0, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{0, 0} } func (x *CallLogRecord_ParticipantInfo) GetUserJID() string { @@ -5562,7 +6129,7 @@ type FavoritesAction_Favorite struct { func (x *FavoritesAction_Favorite) Reset() { *x = FavoritesAction_Favorite{} - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[74] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5574,7 +6141,7 @@ func (x *FavoritesAction_Favorite) String() string { func (*FavoritesAction_Favorite) ProtoMessage() {} func (x *FavoritesAction_Favorite) ProtoReflect() protoreflect.Message { - mi := &file_waSyncAction_WASyncAction_proto_msgTypes[74] + mi := &file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5587,7 +6154,7 @@ func (x *FavoritesAction_Favorite) ProtoReflect() protoreflect.Message { // Deprecated: Use FavoritesAction_Favorite.ProtoReflect.Descriptor instead. func (*FavoritesAction_Favorite) Descriptor() ([]byte, []int) { - return file_waSyncAction_WASyncAction_proto_rawDescGZIP(), []int{22, 0} + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP(), []int{24, 0} } func (x *FavoritesAction_Favorite) GetID() string { @@ -5597,17 +6164,17 @@ func (x *FavoritesAction_Favorite) GetID() string { return "" } -var File_waSyncAction_WASyncAction_proto protoreflect.FileDescriptor +var File_waSyncAction_WAWebProtobufSyncAction_proto protoreflect.FileDescriptor -const file_waSyncAction_WASyncAction_proto_rawDesc = "" + +const file_waSyncAction_WAWebProtobufSyncAction_proto_rawDesc = "" + "\n" + - "\x1fwaSyncAction/WASyncAction.proto\x12\fWASyncAction\x1a4waChatLockSettings/WAProtobufsChatLockSettings.proto\x1a8waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto\x1a\x17waCommon/WACommon.proto\"\xc5\b\n" + - "\rCallLogRecord\x12F\n" + + "*waSyncAction/WAWebProtobufSyncAction.proto\x12\x17WAWebProtobufSyncAction\x1a7waChatLockSettings/WAWebProtobufsChatLockSettings.proto\x1a;waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.proto\x1a\x17waCommon/WACommon.proto\"\xfc\b\n" + + "\rCallLogRecord\x12Q\n" + "\n" + - "callResult\x18\x01 \x01(\x0e2&.WASyncAction.CallLogRecord.CallResultR\n" + + "callResult\x18\x01 \x01(\x0e21.WAWebProtobufSyncAction.CallLogRecord.CallResultR\n" + "callResult\x12\x1c\n" + - "\tisDndMode\x18\x02 \x01(\bR\tisDndMode\x12O\n" + - "\rsilenceReason\x18\x03 \x01(\x0e2).WASyncAction.CallLogRecord.SilenceReasonR\rsilenceReason\x12\x1a\n" + + "\tisDndMode\x18\x02 \x01(\bR\tisDndMode\x12Z\n" + + "\rsilenceReason\x18\x03 \x01(\x0e24.WAWebProtobufSyncAction.CallLogRecord.SilenceReasonR\rsilenceReason\x12\x1a\n" + "\bduration\x18\x04 \x01(\x03R\bduration\x12\x1c\n" + "\tstartTime\x18\x05 \x01(\x03R\tstartTime\x12\x1e\n" + "\n" + @@ -5622,13 +6189,13 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + " \x01(\tR\x0fscheduledCallID\x12\x16\n" + "\x06callID\x18\v \x01(\tR\x06callID\x12&\n" + "\x0ecallCreatorJID\x18\f \x01(\tR\x0ecallCreatorJID\x12\x1a\n" + - "\bgroupJID\x18\r \x01(\tR\bgroupJID\x12O\n" + - "\fparticipants\x18\x0e \x03(\v2+.WASyncAction.CallLogRecord.ParticipantInfoR\fparticipants\x12@\n" + - "\bcallType\x18\x0f \x01(\x0e2$.WASyncAction.CallLogRecord.CallTypeR\bcallType\x1as\n" + + "\bgroupJID\x18\r \x01(\tR\bgroupJID\x12Z\n" + + "\fparticipants\x18\x0e \x03(\v26.WAWebProtobufSyncAction.CallLogRecord.ParticipantInfoR\fparticipants\x12K\n" + + "\bcallType\x18\x0f \x01(\x0e2/.WAWebProtobufSyncAction.CallLogRecord.CallTypeR\bcallType\x1a~\n" + "\x0fParticipantInfo\x12\x18\n" + - "\auserJID\x18\x01 \x01(\tR\auserJID\x12F\n" + + "\auserJID\x18\x01 \x01(\tR\auserJID\x12Q\n" + "\n" + - "callResult\x18\x02 \x01(\x0e2&.WASyncAction.CallLogRecord.CallResultR\n" + + "callResult\x18\x02 \x01(\x0e21.WAWebProtobufSyncAction.CallLogRecord.CallResultR\n" + "callResult\";\n" + "\bCallType\x12\v\n" + "\aREGULAR\x10\x00\x12\x12\n" + @@ -5655,54 +6222,62 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\x06FAILED\x10\b\x12\r\n" + "\tABANDONED\x10\t\x12\v\n" + "\aONGOING\x10\n" + - "\"\xf1\x01\n" + - "\x13AvatarUpdatedAction\x12O\n" + - "\teventType\x18\x01 \x01(\x0e21.WASyncAction.AvatarUpdatedAction.AvatarEventTypeR\teventType\x12O\n" + - "\x14recentAvatarStickers\x18\x02 \x03(\v2\x1b.WASyncAction.StickerActionR\x14recentAvatarStickers\"8\n" + + "\"\xaf\x01\n" + + "\x18InteractiveMessageAction\x12b\n" + + "\x04type\x18\x01 \x02(\x0e2N.WAWebProtobufSyncAction.InteractiveMessageAction.InteractiveMessageActionModeR\x04type\"/\n" + + "\x1cInteractiveMessageActionMode\x12\x0f\n" + + "\vDISABLE_CTA\x10\x01\"\xf1\x01\n" + + "\x1ePrivateProcessingSettingAction\x12\x89\x01\n" + + "\x17privateProcessingStatus\x18\x01 \x01(\x0e2O.WAWebProtobufSyncAction.PrivateProcessingSettingAction.PrivateProcessingStatusR\x17privateProcessingStatus\"C\n" + + "\x17PrivateProcessingStatus\x12\r\n" + + "\tUNDEFINED\x10\x00\x12\v\n" + + "\aENABLED\x10\x01\x12\f\n" + + "\bDISABLED\x10\x02\"\x87\x02\n" + + "\x13AvatarUpdatedAction\x12Z\n" + + "\teventType\x18\x01 \x01(\x0e2<.WAWebProtobufSyncAction.AvatarUpdatedAction.AvatarEventTypeR\teventType\x12Z\n" + + "\x14recentAvatarStickers\x18\x02 \x03(\v2&.WAWebProtobufSyncAction.StickerActionR\x14recentAvatarStickers\"8\n" + "\x0fAvatarEventType\x12\v\n" + "\aUPDATED\x10\x00\x12\v\n" + "\aCREATED\x10\x01\x12\v\n" + - "\aDELETED\x10\x02\"\xd6\x01\n" + - "\x1cMaibaAIFeaturesControlAction\x12i\n" + - "\x0faiFeatureStatus\x18\x01 \x01(\x0e2?.WASyncAction.MaibaAIFeaturesControlAction.MaibaAIFeatureStatusR\x0faiFeatureStatus\"K\n" + + "\aDELETED\x10\x02\"\xe1\x01\n" + + "\x1cMaibaAIFeaturesControlAction\x12t\n" + + "\x0faiFeatureStatus\x18\x01 \x01(\x0e2J.WAWebProtobufSyncAction.MaibaAIFeaturesControlAction.MaibaAIFeatureStatusR\x0faiFeatureStatus\"K\n" + "\x14MaibaAIFeatureStatus\x12\v\n" + "\aENABLED\x10\x00\x12\x18\n" + "\x14ENABLED_HAS_LEARNING\x10\x01\x12\f\n" + - "\bDISABLED\x10\x02\"\xae\x01\n" + - "\x10PaymentTosAction\x12R\n" + - "\rpaymentNotice\x18\x01 \x02(\x0e2,.WASyncAction.PaymentTosAction.PaymentNoticeR\rpaymentNotice\x12\x1a\n" + + "\bDISABLED\x10\x02\"\xb9\x01\n" + + "\x10PaymentTosAction\x12]\n" + + "\rpaymentNotice\x18\x01 \x02(\x0e27.WAWebProtobufSyncAction.PaymentTosAction.PaymentNoticeR\rpaymentNotice\x12\x1a\n" + "\baccepted\x18\x02 \x02(\bR\baccepted\"*\n" + "\rPaymentNotice\x12\x19\n" + - "\x15BR_PAY_PRIVACY_POLICY\x10\x00\"\xa6\x02\n" + - "!NotificationActivitySettingAction\x12\x8d\x01\n" + - "\x1bnotificationActivitySetting\x18\x01 \x01(\x0e2K.WASyncAction.NotificationActivitySettingAction.NotificationActivitySettingR\x1bnotificationActivitySetting\"q\n" + + "\x15BR_PAY_PRIVACY_POLICY\x10\x00\"\xb1\x02\n" + + "!NotificationActivitySettingAction\x12\x98\x01\n" + + "\x1bnotificationActivitySetting\x18\x01 \x01(\x0e2V.WAWebProtobufSyncAction.NotificationActivitySettingAction.NotificationActivitySettingR\x1bnotificationActivitySetting\"q\n" + "\x1bNotificationActivitySetting\x12\x18\n" + "\x14DEFAULT_ALL_MESSAGES\x10\x00\x12\x10\n" + "\fALL_MESSAGES\x10\x01\x12\x0e\n" + "\n" + "HIGHLIGHTS\x10\x02\x12\x16\n" + - "\x12DEFAULT_HIGHLIGHTS\x10\x03\"\x99\x01\n" + - "\x1cWaffleAccountLinkStateAction\x12Y\n" + - "\tlinkState\x18\x02 \x01(\x0e2;.WASyncAction.WaffleAccountLinkStateAction.AccountLinkStateR\tlinkState\"\x1e\n" + + "\x12DEFAULT_HIGHLIGHTS\x10\x03\"\xbe\x01\n" + + "\x1cWaffleAccountLinkStateAction\x12d\n" + + "\tlinkState\x18\x02 \x01(\x0e2F.WAWebProtobufSyncAction.WaffleAccountLinkStateAction.AccountLinkStateR\tlinkState\"8\n" + "\x10AccountLinkState\x12\n" + "\n" + - "\x06ACTIVE\x10\x00\"\xed\x01\n" + - "\x1cMerchantPaymentPartnerAction\x12I\n" + - "\x06status\x18\x01 \x02(\x0e21.WASyncAction.MerchantPaymentPartnerAction.StatusR\x06status\x12\x18\n" + + "\x06ACTIVE\x10\x00\x12\n" + + "\n" + + "\x06PAUSED\x10\x01\x12\f\n" + + "\bUNLINKED\x10\x02\"\xf8\x01\n" + + "\x1cMerchantPaymentPartnerAction\x12T\n" + + "\x06status\x18\x01 \x02(\x0e2<.WAWebProtobufSyncAction.MerchantPaymentPartnerAction.StatusR\x06status\x12\x18\n" + "\acountry\x18\x02 \x02(\tR\acountry\x12 \n" + "\vgatewayName\x18\x03 \x01(\tR\vgatewayName\x12\"\n" + "\fcredentialID\x18\x04 \x01(\tR\fcredentialID\"\"\n" + "\x06Status\x12\n" + "\n" + "\x06ACTIVE\x10\x00\x12\f\n" + - "\bINACTIVE\x10\x01\"\x7f\n" + - "\x10GalaxyFlowAction\x12G\n" + - "\x04type\x18\x01 \x02(\x0e23.WASyncAction.GalaxyFlowAction.GalaxyFlowActionTypeR\x04type\"\"\n" + - "\x14GalaxyFlowActionType\x12\n" + - "\n" + - "\x06LAUNCH\x10\x01\"\xfd\x01\n" + - "\x0eNoteEditAction\x129\n" + - "\x04type\x18\x01 \x01(\x0e2%.WASyncAction.NoteEditAction.NoteTypeR\x04type\x12\x18\n" + + "\bINACTIVE\x10\x01\"\x88\x02\n" + + "\x0eNoteEditAction\x12D\n" + + "\x04type\x18\x01 \x01(\x0e20.WAWebProtobufSyncAction.NoteEditAction.NoteTypeR\x04type\x12\x18\n" + "\achatJID\x18\x02 \x01(\tR\achatJID\x12\x1c\n" + "\tcreatedAt\x18\x03 \x01(\x03R\tcreatedAt\x12\x18\n" + "\adeleted\x18\x04 \x01(\bR\adeleted\x120\n" + @@ -5710,19 +6285,20 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\bNoteType\x12\x10\n" + "\fUNSTRUCTURED\x10\x01\x12\x0e\n" + "\n" + - "STRUCTURED\x10\x02\"\xc4\x01\n" + - "\x13StatusPrivacyAction\x12L\n" + - "\x04mode\x18\x01 \x01(\x0e28.WASyncAction.StatusPrivacyAction.StatusDistributionModeR\x04mode\x12\x18\n" + - "\auserJID\x18\x02 \x03(\tR\auserJID\"E\n" + + "STRUCTURED\x10\x02\"\xe2\x01\n" + + "\x13StatusPrivacyAction\x12W\n" + + "\x04mode\x18\x01 \x01(\x0e2C.WAWebProtobufSyncAction.StatusPrivacyAction.StatusDistributionModeR\x04mode\x12\x18\n" + + "\auserJID\x18\x02 \x03(\tR\auserJID\"X\n" + "\x16StatusDistributionMode\x12\x0e\n" + "\n" + "ALLOW_LIST\x10\x00\x12\r\n" + "\tDENY_LIST\x10\x01\x12\f\n" + - "\bCONTACTS\x10\x02\"\xc7\x02\n" + + "\bCONTACTS\x10\x02\x12\x11\n" + + "\rCLOSE_FRIENDS\x10\x03\"\xd2\x02\n" + "\x16MarketingMessageAction\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessage\x12V\n" + - "\x04type\x18\x03 \x01(\x0e2B.WASyncAction.MarketingMessageAction.MarketingMessagePrototypeTypeR\x04type\x12\x1c\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12a\n" + + "\x04type\x18\x03 \x01(\x0e2M.WAWebProtobufSyncAction.MarketingMessageAction.MarketingMessagePrototypeTypeR\x04type\x12\x1c\n" + "\tcreatedAt\x18\x04 \x01(\x03R\tcreatedAt\x12\x1e\n" + "\n" + "lastSentAt\x18\x05 \x01(\x03R\n" + @@ -5730,12 +6306,12 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\tisDeleted\x18\x06 \x01(\bR\tisDeleted\x12\x18\n" + "\amediaID\x18\a \x01(\tR\amediaID\"1\n" + "\x1dMarketingMessagePrototypeType\x12\x10\n" + - "\fPERSONALIZED\x10\x00\"\x9e\x01\n" + - "\x1bUsernameChatStartModeAction\x12]\n" + - "\rchatStartMode\x18\x01 \x01(\x0e27.WASyncAction.UsernameChatStartModeAction.ChatStartModeR\rchatStartMode\" \n" + + "\fPERSONALIZED\x10\x00\"\xa9\x01\n" + + "\x1bUsernameChatStartModeAction\x12h\n" + + "\rchatStartMode\x18\x01 \x01(\x0e2B.WAWebProtobufSyncAction.UsernameChatStartModeAction.ChatStartModeR\rchatStartMode\" \n" + "\rChatStartMode\x12\a\n" + "\x03LID\x10\x01\x12\x06\n" + - "\x02PN\x10\x02\"\x90\x03\n" + + "\x02PN\x10\x02\"\xdf\x03\n" + "\x0fLabelEditAction\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + "\x05color\x18\x02 \x01(\x05R\x05color\x12\"\n" + @@ -5744,9 +6320,10 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\n" + "orderIndex\x18\x05 \x01(\x05R\n" + "orderIndex\x12\x1a\n" + - "\bisActive\x18\x06 \x01(\bR\bisActive\x12:\n" + - "\x04type\x18\a \x01(\x0e2&.WASyncAction.LabelEditAction.ListTypeR\x04type\x12 \n" + - "\visImmutable\x18\b \x01(\bR\visImmutable\"{\n" + + "\bisActive\x18\x06 \x01(\bR\bisActive\x12E\n" + + "\x04type\x18\a \x01(\x0e21.WAWebProtobufSyncAction.LabelEditAction.ListTypeR\x04type\x12 \n" + + "\visImmutable\x18\b \x01(\bR\visImmutable\x12$\n" + + "\rmuteEndTimeMS\x18\t \x01(\x03R\rmuteEndTimeMS\"\x98\x01\n" + "\bListType\x12\b\n" + "\x04NONE\x10\x00\x12\n" + "\n" + @@ -5759,7 +6336,10 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\n" + "\x06CUSTOM\x10\x05\x12\r\n" + "\tCOMMUNITY\x10\x06\x12\x13\n" + - "\x0fSERVER_ASSIGNED\x10\a\"\x98\x05\n" + + "\x0fSERVER_ASSIGNED\x10\a\x12\v\n" + + "\aDRAFTED\x10\b\x12\x0e\n" + + "\n" + + "AI_HANDOFF\x10\t\"\xa3\x05\n" + "\x0ePatchDebugData\x12$\n" + "\rcurrentLthash\x18\x01 \x01(\fR\rcurrentLthash\x12\x1c\n" + "\tnewLthash\x18\x02 \x01(\fR\tnewLthash\x12\"\n" + @@ -5769,9 +6349,9 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\x11newLthashSubtract\x18\x06 \x01(\fR\x11newLthashSubtract\x12\x1c\n" + "\tnumberAdd\x18\a \x01(\x05R\tnumberAdd\x12\"\n" + "\fnumberRemove\x18\b \x01(\x05R\fnumberRemove\x12&\n" + - "\x0enumberOverride\x18\t \x01(\x05R\x0enumberOverride\x12M\n" + + "\x0enumberOverride\x18\t \x01(\x05R\x0enumberOverride\x12X\n" + "\x0esenderPlatform\x18\n" + - " \x01(\x0e2%.WASyncAction.PatchDebugData.PlatformR\x0esenderPlatform\x12(\n" + + " \x01(\x0e20.WAWebProtobufSyncAction.PatchDebugData.PlatformR\x0esenderPlatform\x12(\n" + "\x0fisSenderPrimary\x18\v \x01(\bR\x0fisSenderPrimary\"\x8a\x01\n" + "\bPlatform\x12\v\n" + "\aANDROID\x10\x00\x12\b\n" + @@ -5792,98 +6372,102 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\x04CAPI\x10\v\"A\n" + "\x11RecentEmojiWeight\x12\x14\n" + "\x05emoji\x18\x01 \x01(\tR\x05emoji\x12\x16\n" + - "\x06weight\x18\x02 \x01(\x02R\x06weight\"\xd6.\n" + + "\x06weight\x18\x02 \x01(\x02R\x06weight\"\xd26\n" + "\x0fSyncActionValue\x12\x1c\n" + - "\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x128\n" + + "\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x12C\n" + "\n" + - "starAction\x18\x02 \x01(\v2\x18.WASyncAction.StarActionR\n" + - "starAction\x12A\n" + - "\rcontactAction\x18\x03 \x01(\v2\x1b.WASyncAction.ContactActionR\rcontactAction\x128\n" + + "starAction\x18\x02 \x01(\v2#.WAWebProtobufSyncAction.StarActionR\n" + + "starAction\x12L\n" + + "\rcontactAction\x18\x03 \x01(\v2&.WAWebProtobufSyncAction.ContactActionR\rcontactAction\x12C\n" + "\n" + - "muteAction\x18\x04 \x01(\v2\x18.WASyncAction.MuteActionR\n" + - "muteAction\x125\n" + - "\tpinAction\x18\x05 \x01(\v2\x17.WASyncAction.PinActionR\tpinAction\x12k\n" + - "\x1bsecurityNotificationSetting\x18\x06 \x01(\v2).WASyncAction.SecurityNotificationSettingR\x1bsecurityNotificationSetting\x12G\n" + - "\x0fpushNameSetting\x18\a \x01(\v2\x1d.WASyncAction.PushNameSettingR\x0fpushNameSetting\x12J\n" + - "\x10quickReplyAction\x18\b \x01(\v2\x1e.WASyncAction.QuickReplyActionR\x10quickReplyAction\x12b\n" + - "\x18recentEmojiWeightsAction\x18\v \x01(\v2&.WASyncAction.RecentEmojiWeightsActionR\x18recentEmojiWeightsAction\x12G\n" + - "\x0flabelEditAction\x18\x0e \x01(\v2\x1d.WASyncAction.LabelEditActionR\x0flabelEditAction\x12\\\n" + - "\x16labelAssociationAction\x18\x0f \x01(\v2$.WASyncAction.LabelAssociationActionR\x16labelAssociationAction\x12A\n" + - "\rlocaleSetting\x18\x10 \x01(\v2\x1b.WASyncAction.LocaleSettingR\rlocaleSetting\x12M\n" + - "\x11archiveChatAction\x18\x11 \x01(\v2\x1f.WASyncAction.ArchiveChatActionR\x11archiveChatAction\x12b\n" + - "\x18deleteMessageForMeAction\x18\x12 \x01(\v2&.WASyncAction.DeleteMessageForMeActionR\x18deleteMessageForMeAction\x12A\n" + - "\rkeyExpiration\x18\x13 \x01(\v2\x1b.WASyncAction.KeyExpirationR\rkeyExpiration\x12V\n" + - "\x14markChatAsReadAction\x18\x14 \x01(\v2\".WASyncAction.MarkChatAsReadActionR\x14markChatAsReadAction\x12G\n" + - "\x0fclearChatAction\x18\x15 \x01(\v2\x1d.WASyncAction.ClearChatActionR\x0fclearChatAction\x12J\n" + - "\x10deleteChatAction\x18\x16 \x01(\v2\x1e.WASyncAction.DeleteChatActionR\x10deleteChatAction\x12Y\n" + - "\x15unarchiveChatsSetting\x18\x17 \x01(\v2#.WASyncAction.UnarchiveChatsSettingR\x15unarchiveChatsSetting\x12D\n" + - "\x0eprimaryFeature\x18\x18 \x01(\v2\x1c.WASyncAction.PrimaryFeatureR\x0eprimaryFeature\x12e\n" + - "\x19androidUnsupportedActions\x18\x1a \x01(\v2'.WASyncAction.AndroidUnsupportedActionsR\x19androidUnsupportedActions\x12;\n" + - "\vagentAction\x18\x1b \x01(\v2\x19.WASyncAction.AgentActionR\vagentAction\x12P\n" + - "\x12subscriptionAction\x18\x1c \x01(\v2 .WASyncAction.SubscriptionActionR\x12subscriptionAction\x12V\n" + - "\x14userStatusMuteAction\x18\x1d \x01(\v2\".WASyncAction.UserStatusMuteActionR\x14userStatusMuteAction\x12J\n" + - "\x10timeFormatAction\x18\x1e \x01(\v2\x1e.WASyncAction.TimeFormatActionR\x10timeFormatAction\x125\n" + - "\tnuxAction\x18\x1f \x01(\v2\x17.WASyncAction.NuxActionR\tnuxAction\x12V\n" + - "\x14primaryVersionAction\x18 \x01(\v2\".WASyncAction.PrimaryVersionActionR\x14primaryVersionAction\x12A\n" + - "\rstickerAction\x18! \x01(\v2\x1b.WASyncAction.StickerActionR\rstickerAction\x12e\n" + - "\x19removeRecentStickerAction\x18\" \x01(\v2'.WASyncAction.RemoveRecentStickerActionR\x19removeRecentStickerAction\x12J\n" + - "\x0echatAssignment\x18# \x01(\v2\".WASyncAction.ChatAssignmentActionR\x0echatAssignment\x12n\n" + - "\x1achatAssignmentOpenedStatus\x18$ \x01(\v2..WASyncAction.ChatAssignmentOpenedStatusActionR\x1achatAssignmentOpenedStatus\x12P\n" + - "\x12pnForLidChatAction\x18% \x01(\v2 .WASyncAction.PnForLidChatActionR\x12pnForLidChatAction\x12\\\n" + - "\x16marketingMessageAction\x18& \x01(\v2$.WASyncAction.MarketingMessageActionR\x16marketingMessageAction\x12w\n" + - "\x1fmarketingMessageBroadcastAction\x18' \x01(\v2-.WASyncAction.MarketingMessageBroadcastActionR\x1fmarketingMessageBroadcastAction\x12Y\n" + - "\x15externalWebBetaAction\x18( \x01(\v2#.WASyncAction.ExternalWebBetaActionR\x15externalWebBetaAction\x12k\n" + - "\x1bprivacySettingRelayAllCalls\x18) \x01(\v2).WASyncAction.PrivacySettingRelayAllCallsR\x1bprivacySettingRelayAllCalls\x12A\n" + - "\rcallLogAction\x18* \x01(\v2\x1b.WASyncAction.CallLogActionR\rcallLogAction\x12G\n" + - "\rstatusPrivacy\x18, \x01(\v2!.WASyncAction.StatusPrivacyActionR\rstatusPrivacy\x12_\n" + - "\x17botWelcomeRequestAction\x18- \x01(\v2%.WASyncAction.BotWelcomeRequestActionR\x17botWelcomeRequestAction\x12e\n" + - "\x17deleteIndividualCallLog\x18. \x01(\v2+.WASyncAction.DeleteIndividualCallLogActionR\x17deleteIndividualCallLog\x12Y\n" + - "\x15labelReorderingAction\x18/ \x01(\v2#.WASyncAction.LabelReorderingActionR\x15labelReorderingAction\x12M\n" + - "\x11paymentInfoAction\x180 \x01(\v2\x1f.WASyncAction.PaymentInfoActionR\x11paymentInfoAction\x12h\n" + - "\x1acustomPaymentMethodsAction\x181 \x01(\v2(.WASyncAction.CustomPaymentMethodsActionR\x1acustomPaymentMethodsAction\x12D\n" + - "\x0elockChatAction\x182 \x01(\v2\x1c.WASyncAction.LockChatActionR\x0elockChatAction\x12Y\n" + - "\x10chatLockSettings\x183 \x01(\v2-.WAProtobufsChatLockSettings.ChatLockSettingsR\x10chatLockSettings\x12b\n" + - "\x18wamoUserIdentifierAction\x184 \x01(\v2&.WASyncAction.WamoUserIdentifierActionR\x18wamoUserIdentifierAction\x12\x8f\x01\n" + - "'privacySettingDisableLinkPreviewsAction\x185 \x01(\v25.WASyncAction.PrivacySettingDisableLinkPreviewsActionR'privacySettingDisableLinkPreviewsAction\x12a\n" + - "\x12deviceCapabilities\x186 \x01(\v21.WAProtobufsDeviceCapabilities.DeviceCapabilitiesR\x12deviceCapabilities\x12D\n" + - "\x0enoteEditAction\x187 \x01(\v2\x1c.WASyncAction.NoteEditActionR\x0enoteEditAction\x12G\n" + - "\x0ffavoritesAction\x188 \x01(\v2\x1d.WASyncAction.FavoritesActionR\x0ffavoritesAction\x12n\n" + - "\x1cmerchantPaymentPartnerAction\x189 \x01(\v2*.WASyncAction.MerchantPaymentPartnerActionR\x1cmerchantPaymentPartnerAction\x12n\n" + - "\x1cwaffleAccountLinkStateAction\x18: \x01(\v2*.WASyncAction.WaffleAccountLinkStateActionR\x1cwaffleAccountLinkStateAction\x12_\n" + - "\x15usernameChatStartMode\x18; \x01(\v2).WASyncAction.UsernameChatStartModeActionR\x15usernameChatStartMode\x12}\n" + - "!notificationActivitySettingAction\x18< \x01(\v2/.WASyncAction.NotificationActivitySettingActionR!notificationActivitySettingAction\x12J\n" + - "\x10lidContactAction\x18= \x01(\v2\x1e.WASyncAction.LidContactActionR\x10lidContactAction\x12z\n" + - " ctwaPerCustomerDataSharingAction\x18> \x01(\v2..WASyncAction.CtwaPerCustomerDataSharingActionR ctwaPerCustomerDataSharingAction\x12J\n" + - "\x10paymentTosAction\x18? \x01(\v2\x1e.WASyncAction.PaymentTosActionR\x10paymentTosAction\x12\xbc\x01\n" + - "6privacySettingChannelsPersonalisedRecommendationAction\x18@ \x01(\v2D.WASyncAction.PrivacySettingChannelsPersonalisedRecommendationActionR6privacySettingChannelsPersonalisedRecommendationAction\x12\x80\x01\n" + - "\"businessBroadcastAssociationAction\x18A \x01(\v20.WASyncAction.BusinessBroadcastAssociationActionR\"businessBroadcastAssociationAction\x12n\n" + - "\x1cdetectedOutcomesStatusAction\x18B \x01(\v2*.WASyncAction.DetectedOutcomesStatusActionR\x1cdetectedOutcomesStatusAction\x12n\n" + - "\x1cmaibaAiFeaturesControlAction\x18D \x01(\v2*.WASyncAction.MaibaAIFeaturesControlActionR\x1cmaibaAiFeaturesControlAction\x12k\n" + - "\x1bbusinessBroadcastListAction\x18E \x01(\v2).WASyncAction.BusinessBroadcastListActionR\x1bbusinessBroadcastListAction\x12M\n" + - "\x11musicUserIDAction\x18F \x01(\v2\x1f.WASyncAction.MusicUserIdActionR\x11musicUserIDAction\x12\x9e\x01\n" + - ",statusPostOptInNotificationPreferencesAction\x18G \x01(\v2:.WASyncAction.StatusPostOptInNotificationPreferencesActionR,statusPostOptInNotificationPreferencesAction\x12S\n" + - "\x13avatarUpdatedAction\x18H \x01(\v2!.WASyncAction.AvatarUpdatedActionR\x13avatarUpdatedAction\x12J\n" + - "\x10galaxyFlowAction\x18I \x01(\v2\x1e.WASyncAction.GalaxyFlowActionR\x10galaxyFlowAction\"H\n" + + "muteAction\x18\x04 \x01(\v2#.WAWebProtobufSyncAction.MuteActionR\n" + + "muteAction\x12@\n" + + "\tpinAction\x18\x05 \x01(\v2\".WAWebProtobufSyncAction.PinActionR\tpinAction\x12R\n" + + "\x0fpushNameSetting\x18\a \x01(\v2(.WAWebProtobufSyncAction.PushNameSettingR\x0fpushNameSetting\x12U\n" + + "\x10quickReplyAction\x18\b \x01(\v2).WAWebProtobufSyncAction.QuickReplyActionR\x10quickReplyAction\x12m\n" + + "\x18recentEmojiWeightsAction\x18\v \x01(\v21.WAWebProtobufSyncAction.RecentEmojiWeightsActionR\x18recentEmojiWeightsAction\x12R\n" + + "\x0flabelEditAction\x18\x0e \x01(\v2(.WAWebProtobufSyncAction.LabelEditActionR\x0flabelEditAction\x12g\n" + + "\x16labelAssociationAction\x18\x0f \x01(\v2/.WAWebProtobufSyncAction.LabelAssociationActionR\x16labelAssociationAction\x12L\n" + + "\rlocaleSetting\x18\x10 \x01(\v2&.WAWebProtobufSyncAction.LocaleSettingR\rlocaleSetting\x12X\n" + + "\x11archiveChatAction\x18\x11 \x01(\v2*.WAWebProtobufSyncAction.ArchiveChatActionR\x11archiveChatAction\x12m\n" + + "\x18deleteMessageForMeAction\x18\x12 \x01(\v21.WAWebProtobufSyncAction.DeleteMessageForMeActionR\x18deleteMessageForMeAction\x12L\n" + + "\rkeyExpiration\x18\x13 \x01(\v2&.WAWebProtobufSyncAction.KeyExpirationR\rkeyExpiration\x12a\n" + + "\x14markChatAsReadAction\x18\x14 \x01(\v2-.WAWebProtobufSyncAction.MarkChatAsReadActionR\x14markChatAsReadAction\x12R\n" + + "\x0fclearChatAction\x18\x15 \x01(\v2(.WAWebProtobufSyncAction.ClearChatActionR\x0fclearChatAction\x12U\n" + + "\x10deleteChatAction\x18\x16 \x01(\v2).WAWebProtobufSyncAction.DeleteChatActionR\x10deleteChatAction\x12d\n" + + "\x15unarchiveChatsSetting\x18\x17 \x01(\v2..WAWebProtobufSyncAction.UnarchiveChatsSettingR\x15unarchiveChatsSetting\x12O\n" + + "\x0eprimaryFeature\x18\x18 \x01(\v2'.WAWebProtobufSyncAction.PrimaryFeatureR\x0eprimaryFeature\x12p\n" + + "\x19androidUnsupportedActions\x18\x1a \x01(\v22.WAWebProtobufSyncAction.AndroidUnsupportedActionsR\x19androidUnsupportedActions\x12F\n" + + "\vagentAction\x18\x1b \x01(\v2$.WAWebProtobufSyncAction.AgentActionR\vagentAction\x12[\n" + + "\x12subscriptionAction\x18\x1c \x01(\v2+.WAWebProtobufSyncAction.SubscriptionActionR\x12subscriptionAction\x12a\n" + + "\x14userStatusMuteAction\x18\x1d \x01(\v2-.WAWebProtobufSyncAction.UserStatusMuteActionR\x14userStatusMuteAction\x12U\n" + + "\x10timeFormatAction\x18\x1e \x01(\v2).WAWebProtobufSyncAction.TimeFormatActionR\x10timeFormatAction\x12@\n" + + "\tnuxAction\x18\x1f \x01(\v2\".WAWebProtobufSyncAction.NuxActionR\tnuxAction\x12a\n" + + "\x14primaryVersionAction\x18 \x01(\v2-.WAWebProtobufSyncAction.PrimaryVersionActionR\x14primaryVersionAction\x12L\n" + + "\rstickerAction\x18! \x01(\v2&.WAWebProtobufSyncAction.StickerActionR\rstickerAction\x12p\n" + + "\x19removeRecentStickerAction\x18\" \x01(\v22.WAWebProtobufSyncAction.RemoveRecentStickerActionR\x19removeRecentStickerAction\x12U\n" + + "\x0echatAssignment\x18# \x01(\v2-.WAWebProtobufSyncAction.ChatAssignmentActionR\x0echatAssignment\x12y\n" + + "\x1achatAssignmentOpenedStatus\x18$ \x01(\v29.WAWebProtobufSyncAction.ChatAssignmentOpenedStatusActionR\x1achatAssignmentOpenedStatus\x12[\n" + + "\x12pnForLidChatAction\x18% \x01(\v2+.WAWebProtobufSyncAction.PnForLidChatActionR\x12pnForLidChatAction\x12g\n" + + "\x16marketingMessageAction\x18& \x01(\v2/.WAWebProtobufSyncAction.MarketingMessageActionR\x16marketingMessageAction\x12\x82\x01\n" + + "\x1fmarketingMessageBroadcastAction\x18' \x01(\v28.WAWebProtobufSyncAction.MarketingMessageBroadcastActionR\x1fmarketingMessageBroadcastAction\x12d\n" + + "\x15externalWebBetaAction\x18( \x01(\v2..WAWebProtobufSyncAction.ExternalWebBetaActionR\x15externalWebBetaAction\x12v\n" + + "\x1bprivacySettingRelayAllCalls\x18) \x01(\v24.WAWebProtobufSyncAction.PrivacySettingRelayAllCallsR\x1bprivacySettingRelayAllCalls\x12L\n" + + "\rcallLogAction\x18* \x01(\v2&.WAWebProtobufSyncAction.CallLogActionR\rcallLogAction\x127\n" + + "\x06ugcBot\x18+ \x01(\v2\x1f.WAWebProtobufSyncAction.UGCBotR\x06ugcBot\x12R\n" + + "\rstatusPrivacy\x18, \x01(\v2,.WAWebProtobufSyncAction.StatusPrivacyActionR\rstatusPrivacy\x12j\n" + + "\x17botWelcomeRequestAction\x18- \x01(\v20.WAWebProtobufSyncAction.BotWelcomeRequestActionR\x17botWelcomeRequestAction\x12p\n" + + "\x17deleteIndividualCallLog\x18. \x01(\v26.WAWebProtobufSyncAction.DeleteIndividualCallLogActionR\x17deleteIndividualCallLog\x12d\n" + + "\x15labelReorderingAction\x18/ \x01(\v2..WAWebProtobufSyncAction.LabelReorderingActionR\x15labelReorderingAction\x12X\n" + + "\x11paymentInfoAction\x180 \x01(\v2*.WAWebProtobufSyncAction.PaymentInfoActionR\x11paymentInfoAction\x12s\n" + + "\x1acustomPaymentMethodsAction\x181 \x01(\v23.WAWebProtobufSyncAction.CustomPaymentMethodsActionR\x1acustomPaymentMethodsAction\x12O\n" + + "\x0elockChatAction\x182 \x01(\v2'.WAWebProtobufSyncAction.LockChatActionR\x0elockChatAction\x12\\\n" + + "\x10chatLockSettings\x183 \x01(\v20.WAWebProtobufsChatLockSettings.ChatLockSettingsR\x10chatLockSettings\x12m\n" + + "\x18wamoUserIdentifierAction\x184 \x01(\v21.WAWebProtobufSyncAction.WamoUserIdentifierActionR\x18wamoUserIdentifierAction\x12\x9a\x01\n" + + "'privacySettingDisableLinkPreviewsAction\x185 \x01(\v2@.WAWebProtobufSyncAction.PrivacySettingDisableLinkPreviewsActionR'privacySettingDisableLinkPreviewsAction\x12d\n" + + "\x12deviceCapabilities\x186 \x01(\v24.WAWebProtobufsDeviceCapabilities.DeviceCapabilitiesR\x12deviceCapabilities\x12O\n" + + "\x0enoteEditAction\x187 \x01(\v2'.WAWebProtobufSyncAction.NoteEditActionR\x0enoteEditAction\x12R\n" + + "\x0ffavoritesAction\x188 \x01(\v2(.WAWebProtobufSyncAction.FavoritesActionR\x0ffavoritesAction\x12y\n" + + "\x1cmerchantPaymentPartnerAction\x189 \x01(\v25.WAWebProtobufSyncAction.MerchantPaymentPartnerActionR\x1cmerchantPaymentPartnerAction\x12y\n" + + "\x1cwaffleAccountLinkStateAction\x18: \x01(\v25.WAWebProtobufSyncAction.WaffleAccountLinkStateActionR\x1cwaffleAccountLinkStateAction\x12j\n" + + "\x15usernameChatStartMode\x18; \x01(\v24.WAWebProtobufSyncAction.UsernameChatStartModeActionR\x15usernameChatStartMode\x12\x88\x01\n" + + "!notificationActivitySettingAction\x18< \x01(\v2:.WAWebProtobufSyncAction.NotificationActivitySettingActionR!notificationActivitySettingAction\x12U\n" + + "\x10lidContactAction\x18= \x01(\v2).WAWebProtobufSyncAction.LidContactActionR\x10lidContactAction\x12\x85\x01\n" + + " ctwaPerCustomerDataSharingAction\x18> \x01(\v29.WAWebProtobufSyncAction.CtwaPerCustomerDataSharingActionR ctwaPerCustomerDataSharingAction\x12U\n" + + "\x10paymentTosAction\x18? \x01(\v2).WAWebProtobufSyncAction.PaymentTosActionR\x10paymentTosAction\x12\xc7\x01\n" + + "6privacySettingChannelsPersonalisedRecommendationAction\x18@ \x01(\v2O.WAWebProtobufSyncAction.PrivacySettingChannelsPersonalisedRecommendationActionR6privacySettingChannelsPersonalisedRecommendationAction\x12\x8b\x01\n" + + "\"businessBroadcastAssociationAction\x18A \x01(\v2;.WAWebProtobufSyncAction.BusinessBroadcastAssociationActionR\"businessBroadcastAssociationAction\x12y\n" + + "\x1cdetectedOutcomesStatusAction\x18B \x01(\v25.WAWebProtobufSyncAction.DetectedOutcomesStatusActionR\x1cdetectedOutcomesStatusAction\x12y\n" + + "\x1cmaibaAiFeaturesControlAction\x18D \x01(\v25.WAWebProtobufSyncAction.MaibaAIFeaturesControlActionR\x1cmaibaAiFeaturesControlAction\x12v\n" + + "\x1bbusinessBroadcastListAction\x18E \x01(\v24.WAWebProtobufSyncAction.BusinessBroadcastListActionR\x1bbusinessBroadcastListAction\x12X\n" + + "\x11musicUserIDAction\x18F \x01(\v2*.WAWebProtobufSyncAction.MusicUserIdActionR\x11musicUserIDAction\x12\xa9\x01\n" + + ",statusPostOptInNotificationPreferencesAction\x18G \x01(\v2E.WAWebProtobufSyncAction.StatusPostOptInNotificationPreferencesActionR,statusPostOptInNotificationPreferencesAction\x12^\n" + + "\x13avatarUpdatedAction\x18H \x01(\v2,.WAWebProtobufSyncAction.AvatarUpdatedActionR\x13avatarUpdatedAction\x12\x7f\n" + + "\x1eprivateProcessingSettingAction\x18J \x01(\v27.WAWebProtobufSyncAction.PrivateProcessingSettingActionR\x1eprivateProcessingSettingAction\x12\x7f\n" + + "\x1enewsletterSavedInterestsAction\x18K \x01(\v27.WAWebProtobufSyncAction.NewsletterSavedInterestsActionR\x1enewsletterSavedInterestsAction\x12a\n" + + "\x14aiThreadRenameAction\x18L \x01(\v2-.WAWebProtobufSyncAction.AiThreadRenameActionR\x14aiThreadRenameAction\x12m\n" + + "\x18interactiveMessageAction\x18M \x01(\v21.WAWebProtobufSyncAction.InteractiveMessageActionR\x18interactiveMessageAction\"2\n" + + "\x14AiThreadRenameAction\x12\x1a\n" + + "\bnewTitle\x18\x01 \x01(\tR\bnewTitle\"H\n" + ",StatusPostOptInNotificationPreferencesAction\x12\x18\n" + "\aenabled\x18\x01 \x01(\bR\aenabled\"H\n" + "\x18BroadcastListParticipant\x12\x16\n" + "\x06lidJID\x18\x01 \x02(\tR\x06lidJID\x12\x14\n" + - "\x05pnJID\x18\x02 \x01(\tR\x05pnJID\"\x9f\x01\n" + + "\x05pnJID\x18\x02 \x01(\tR\x05pnJID\"\xaa\x01\n" + "\x1bBusinessBroadcastListAction\x12\x18\n" + - "\adeleted\x18\x01 \x01(\bR\adeleted\x12J\n" + - "\fparticipants\x18\x02 \x03(\v2&.WASyncAction.BroadcastListParticipantR\fparticipants\x12\x1a\n" + + "\adeleted\x18\x01 \x01(\bR\adeleted\x12U\n" + + "\fparticipants\x18\x02 \x03(\v21.WAWebProtobufSyncAction.BroadcastListParticipantR\fparticipants\x12\x1a\n" + "\blistName\x18\x03 \x01(\tR\blistName\">\n" + "\"BusinessBroadcastAssociationAction\x12\x18\n" + "\adeleted\x18\x01 \x01(\bR\adeleted\"t\n" + " CtwaPerCustomerDataSharingAction\x12P\n" + - "#isCtwaPerCustomerDataSharingEnabled\x18\x01 \x01(\bR#isCtwaPerCustomerDataSharingEnabled\"\xa4\x01\n" + + "#isCtwaPerCustomerDataSharingEnabled\x18\x01 \x01(\bR#isCtwaPerCustomerDataSharingEnabled\"h\n" + "\x10LidContactAction\x12\x1a\n" + "\bfullName\x18\x01 \x01(\tR\bfullName\x12\x1c\n" + "\tfirstName\x18\x02 \x01(\tR\tfirstName\x12\x1a\n" + - "\busername\x18\x03 \x01(\tR\busername\x12:\n" + - "\x18saveOnPrimaryAddressbook\x18\x04 \x01(\bR\x18saveOnPrimaryAddressbook\"s\n" + - "\x0fFavoritesAction\x12D\n" + - "\tfavorites\x18\x01 \x03(\v2&.WASyncAction.FavoritesAction.FavoriteR\tfavorites\x1a\x1a\n" + + "\busername\x18\x03 \x01(\tR\busername\"~\n" + + "\x0fFavoritesAction\x12O\n" + + "\tfavorites\x18\x01 \x03(\v21.WAWebProtobufSyncAction.FavoritesAction.FavoriteR\tfavorites\x1a\x1a\n" + "\bFavorite\x12\x0e\n" + "\x02ID\x18\x01 \x01(\tR\x02ID\"`\n" + "6PrivacySettingChannelsPersonalisedRecommendationAction\x12&\n" + @@ -5895,14 +6479,14 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "identifier\x18\x01 \x01(\tR\n" + "identifier\"(\n" + "\x0eLockChatAction\x12\x16\n" + - "\x06locked\x18\x01 \x01(\bR\x06locked\"s\n" + - "\x1aCustomPaymentMethodsAction\x12U\n" + - "\x14customPaymentMethods\x18\x01 \x03(\v2!.WASyncAction.CustomPaymentMethodR\x14customPaymentMethods\"\xae\x01\n" + + "\x06locked\x18\x01 \x01(\bR\x06locked\"~\n" + + "\x1aCustomPaymentMethodsAction\x12`\n" + + "\x14customPaymentMethods\x18\x01 \x03(\v2,.WAWebProtobufSyncAction.CustomPaymentMethodR\x14customPaymentMethods\"\xb9\x01\n" + "\x13CustomPaymentMethod\x12\"\n" + "\fcredentialID\x18\x01 \x02(\tR\fcredentialID\x12\x18\n" + "\acountry\x18\x02 \x02(\tR\acountry\x12\x12\n" + - "\x04type\x18\x03 \x02(\tR\x04type\x12E\n" + - "\bmetadata\x18\x04 \x03(\v2).WASyncAction.CustomPaymentMethodMetadataR\bmetadata\"E\n" + + "\x04type\x18\x03 \x02(\tR\x04type\x12P\n" + + "\bmetadata\x18\x04 \x03(\v24.WAWebProtobufSyncAction.CustomPaymentMethodMetadataR\bmetadata\"E\n" + "\x1bCustomPaymentMethodMetadata\x12\x10\n" + "\x03key\x18\x01 \x02(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x02(\tR\x05value\"%\n" + @@ -5916,11 +6500,17 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "isIncoming\x18\x02 \x01(\bR\n" + "isIncoming\"1\n" + "\x17BotWelcomeRequestAction\x12\x16\n" + - "\x06isSent\x18\x01 \x01(\bR\x06isSent\"5\n" + + "\x06isSent\x18\x01 \x01(\bR\x06isSent\"\\\n" + + "\x1eNewsletterSavedInterestsAction\x12:\n" + + "\x18newsletterSavedInterests\x18\x01 \x01(\tR\x18newsletterSavedInterests\"5\n" + "\x11MusicUserIdAction\x12 \n" + - "\vmusicUserID\x18\x01 \x01(\tR\vmusicUserID\"R\n" + - "\rCallLogAction\x12A\n" + - "\rcallLogRecord\x18\x01 \x01(\v2\x1b.WASyncAction.CallLogRecordR\rcallLogRecord\";\n" + + "\vmusicUserID\x18\x01 \x01(\tR\vmusicUserID\"(\n" + + "\x06UGCBot\x12\x1e\n" + + "\n" + + "definition\x18\x01 \x01(\fR\n" + + "definition\"]\n" + + "\rCallLogAction\x12L\n" + + "\rcallLogRecord\x18\x01 \x01(\v2&.WAWebProtobufSyncAction.CallLogRecordR\rcallLogRecord\";\n" + "\x1bPrivacySettingRelayAllCalls\x12\x1c\n" + "\tisEnabled\x18\x01 \x01(\bR\tisEnabled\"<\n" + "\x1cDetectedOutcomesStatusAction\x12\x1c\n" + @@ -5984,28 +6574,28 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\x0fexpiredKeyEpoch\x18\x01 \x01(\x05R\x0fexpiredKeyEpoch\"Y\n" + "\x11SyncActionMessage\x12&\n" + "\x03key\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x03key\x12\x1c\n" + - "\ttimestamp\x18\x02 \x01(\x03R\ttimestamp\"\xc9\x01\n" + + "\ttimestamp\x18\x02 \x01(\x03R\ttimestamp\"\xd4\x01\n" + "\x16SyncActionMessageRange\x122\n" + "\x14lastMessageTimestamp\x18\x01 \x01(\x03R\x14lastMessageTimestamp\x12>\n" + - "\x1alastSystemMessageTimestamp\x18\x02 \x01(\x03R\x1alastSystemMessageTimestamp\x12;\n" + - "\bmessages\x18\x03 \x03(\v2\x1f.WASyncAction.SyncActionMessageR\bmessages\"?\n" + + "\x1alastSystemMessageTimestamp\x18\x02 \x01(\x03R\x1alastSystemMessageTimestamp\x12F\n" + + "\bmessages\x18\x03 \x03(\v2*.WAWebProtobufSyncAction.SyncActionMessageR\bmessages\"?\n" + "\x15UnarchiveChatsSetting\x12&\n" + - "\x0eunarchiveChats\x18\x01 \x01(\bR\x0eunarchiveChats\"\\\n" + - "\x10DeleteChatAction\x12H\n" + - "\fmessageRange\x18\x01 \x01(\v2$.WASyncAction.SyncActionMessageRangeR\fmessageRange\"[\n" + - "\x0fClearChatAction\x12H\n" + - "\fmessageRange\x18\x01 \x01(\v2$.WASyncAction.SyncActionMessageRangeR\fmessageRange\"t\n" + + "\x0eunarchiveChats\x18\x01 \x01(\bR\x0eunarchiveChats\"g\n" + + "\x10DeleteChatAction\x12S\n" + + "\fmessageRange\x18\x01 \x01(\v2/.WAWebProtobufSyncAction.SyncActionMessageRangeR\fmessageRange\"f\n" + + "\x0fClearChatAction\x12S\n" + + "\fmessageRange\x18\x01 \x01(\v2/.WAWebProtobufSyncAction.SyncActionMessageRangeR\fmessageRange\"\x7f\n" + "\x14MarkChatAsReadAction\x12\x12\n" + - "\x04read\x18\x01 \x01(\bR\x04read\x12H\n" + - "\fmessageRange\x18\x02 \x01(\v2$.WASyncAction.SyncActionMessageRangeR\fmessageRange\"h\n" + + "\x04read\x18\x01 \x01(\bR\x04read\x12S\n" + + "\fmessageRange\x18\x02 \x01(\v2/.WAWebProtobufSyncAction.SyncActionMessageRangeR\fmessageRange\"h\n" + "\x18DeleteMessageForMeAction\x12 \n" + "\vdeleteMedia\x18\x01 \x01(\bR\vdeleteMedia\x12*\n" + - "\x10messageTimestamp\x18\x02 \x01(\x03R\x10messageTimestamp\"y\n" + + "\x10messageTimestamp\x18\x02 \x01(\x03R\x10messageTimestamp\"\x84\x01\n" + "\x11ArchiveChatAction\x12\x1a\n" + - "\barchived\x18\x01 \x01(\bR\barchived\x12H\n" + - "\fmessageRange\x18\x02 \x01(\v2$.WASyncAction.SyncActionMessageRangeR\fmessageRange\"U\n" + - "\x18RecentEmojiWeightsAction\x129\n" + - "\aweights\x18\x01 \x03(\v2\x1f.WASyncAction.RecentEmojiWeightR\aweights\"2\n" + + "\barchived\x18\x01 \x01(\bR\barchived\x12S\n" + + "\fmessageRange\x18\x02 \x01(\v2/.WAWebProtobufSyncAction.SyncActionMessageRangeR\fmessageRange\"`\n" + + "\x18RecentEmojiWeightsAction\x12D\n" + + "\aweights\x18\x01 \x03(\v2*.WAWebProtobufSyncAction.RecentEmojiWeightR\aweights\"2\n" + "\x16LabelAssociationAction\x12\x18\n" + "\alabeled\x18\x01 \x01(\bR\alabeled\"\x94\x01\n" + "\x10QuickReplyAction\x12\x1a\n" + @@ -6017,9 +6607,7 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\rLocaleSetting\x12\x16\n" + "\x06locale\x18\x01 \x01(\tR\x06locale\"%\n" + "\x0fPushNameSetting\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\"I\n" + - "\x1bSecurityNotificationSetting\x12*\n" + - "\x10showNotification\x18\x01 \x01(\bR\x10showNotification\"#\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"#\n" + "\tPinAction\x12\x16\n" + "\x06pinned\x18\x01 \x01(\bR\x06pinned\"l\n" + "\n" + @@ -6036,249 +6624,342 @@ const file_waSyncAction_WASyncAction_proto_rawDesc = "" + "\busername\x18\x06 \x01(\tR\busername\"&\n" + "\n" + "StarAction\x12\x18\n" + - "\astarred\x18\x01 \x01(\bR\astarred\"\x8f\x01\n" + + "\astarred\x18\x01 \x01(\bR\astarred\"\x9a\x01\n" + "\x0eSyncActionData\x12\x14\n" + - "\x05index\x18\x01 \x01(\fR\x05index\x123\n" + - "\x05value\x18\x02 \x01(\v2\x1d.WASyncAction.SyncActionValueR\x05value\x12\x18\n" + + "\x05index\x18\x01 \x01(\fR\x05index\x12>\n" + + "\x05value\x18\x02 \x01(\v2(.WAWebProtobufSyncAction.SyncActionValueR\x05value\x12\x18\n" + "\apadding\x18\x03 \x01(\fR\apadding\x12\x18\n" + - "\aversion\x18\x04 \x01(\x05R\aversionB(Z&go.mau.fi/whatsmeow/proto/waSyncAction" + "\aversion\x18\x04 \x01(\x05R\aversion*\x8b\x01\n" + + "\x0eCollectionName\x12\x1b\n" + + "\x17COLLECTION_NAME_UNKNOWN\x10\x00\x12\v\n" + + "\aREGULAR\x10\x01\x12\x0f\n" + + "\vREGULAR_LOW\x10\x02\x12\x10\n" + + "\fREGULAR_HIGH\x10\x03\x12\x12\n" + + "\x0eCRITICAL_BLOCK\x10\x04\x12\x18\n" + + "\x14CRITICAL_UNBLOCK_LOW\x10\x05*\xda\x10\n" + + "\rMutationProps\x12\x0f\n" + + "\vSTAR_ACTION\x10\x02\x12\x12\n" + + "\x0eCONTACT_ACTION\x10\x03\x12\x0f\n" + + "\vMUTE_ACTION\x10\x04\x12\x0e\n" + + "\n" + + "PIN_ACTION\x10\x05\x12!\n" + + "\x1dSECURITY_NOTIFICATION_SETTING\x10\x06\x12\x15\n" + + "\x11PUSH_NAME_SETTING\x10\a\x12\x16\n" + + "\x12QUICK_REPLY_ACTION\x10\b\x12\x1f\n" + + "\x1bRECENT_EMOJI_WEIGHTS_ACTION\x10\v\x12\x18\n" + + "\x14LABEL_MESSAGE_ACTION\x10\r\x12\x15\n" + + "\x11LABEL_EDIT_ACTION\x10\x0e\x12\x1c\n" + + "\x18LABEL_ASSOCIATION_ACTION\x10\x0f\x12\x12\n" + + "\x0eLOCALE_SETTING\x10\x10\x12\x17\n" + + "\x13ARCHIVE_CHAT_ACTION\x10\x11\x12 \n" + + "\x1cDELETE_MESSAGE_FOR_ME_ACTION\x10\x12\x12\x12\n" + + "\x0eKEY_EXPIRATION\x10\x13\x12\x1c\n" + + "\x18MARK_CHAT_AS_READ_ACTION\x10\x14\x12\x15\n" + + "\x11CLEAR_CHAT_ACTION\x10\x15\x12\x16\n" + + "\x12DELETE_CHAT_ACTION\x10\x16\x12\x1b\n" + + "\x17UNARCHIVE_CHATS_SETTING\x10\x17\x12\x13\n" + + "\x0fPRIMARY_FEATURE\x10\x18\x12\x1f\n" + + "\x1bANDROID_UNSUPPORTED_ACTIONS\x10\x1a\x12\x10\n" + + "\fAGENT_ACTION\x10\x1b\x12\x17\n" + + "\x13SUBSCRIPTION_ACTION\x10\x1c\x12\x1b\n" + + "\x17USER_STATUS_MUTE_ACTION\x10\x1d\x12\x16\n" + + "\x12TIME_FORMAT_ACTION\x10\x1e\x12\x0e\n" + + "\n" + + "NUX_ACTION\x10\x1f\x12\x1a\n" + + "\x16PRIMARY_VERSION_ACTION\x10 \x12\x12\n" + + "\x0eSTICKER_ACTION\x10!\x12 \n" + + "\x1cREMOVE_RECENT_STICKER_ACTION\x10\"\x12\x13\n" + + "\x0fCHAT_ASSIGNMENT\x10#\x12!\n" + + "\x1dCHAT_ASSIGNMENT_OPENED_STATUS\x10$\x12\x1a\n" + + "\x16PN_FOR_LID_CHAT_ACTION\x10%\x12\x1c\n" + + "\x18MARKETING_MESSAGE_ACTION\x10&\x12&\n" + + "\"MARKETING_MESSAGE_BROADCAST_ACTION\x10'\x12\x1c\n" + + "\x18EXTERNAL_WEB_BETA_ACTION\x10(\x12#\n" + + "\x1fPRIVACY_SETTING_RELAY_ALL_CALLS\x10)\x12\x13\n" + + "\x0fCALL_LOG_ACTION\x10*\x12\v\n" + + "\aUGC_BOT\x10+\x12\x12\n" + + "\x0eSTATUS_PRIVACY\x10,\x12\x1e\n" + + "\x1aBOT_WELCOME_REQUEST_ACTION\x10-\x12\x1e\n" + + "\x1aDELETE_INDIVIDUAL_CALL_LOG\x10.\x12\x1b\n" + + "\x17LABEL_REORDERING_ACTION\x10/\x12\x17\n" + + "\x13PAYMENT_INFO_ACTION\x100\x12!\n" + + "\x1dCUSTOM_PAYMENT_METHODS_ACTION\x101\x12\x14\n" + + "\x10LOCK_CHAT_ACTION\x102\x12\x16\n" + + "\x12CHAT_LOCK_SETTINGS\x103\x12\x1f\n" + + "\x1bWAMO_USER_IDENTIFIER_ACTION\x104\x120\n" + + ",PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION\x105\x12\x17\n" + + "\x13DEVICE_CAPABILITIES\x106\x12\x14\n" + + "\x10NOTE_EDIT_ACTION\x107\x12\x14\n" + + "\x10FAVORITES_ACTION\x108\x12#\n" + + "\x1fMERCHANT_PAYMENT_PARTNER_ACTION\x109\x12$\n" + + " WAFFLE_ACCOUNT_LINK_STATE_ACTION\x10:\x12\x1c\n" + + "\x18USERNAME_CHAT_START_MODE\x10;\x12(\n" + + "$NOTIFICATION_ACTIVITY_SETTING_ACTION\x10<\x12\x16\n" + + "\x12LID_CONTACT_ACTION\x10=\x12)\n" + + "%CTWA_PER_CUSTOMER_DATA_SHARING_ACTION\x10>\x12\x16\n" + + "\x12PAYMENT_TOS_ACTION\x10?\x12?\n" + + ";PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION\x10@\x12)\n" + + "%BUSINESS_BROADCAST_ASSOCIATION_ACTION\x10A\x12#\n" + + "\x1fDETECTED_OUTCOMES_STATUS_ACTION\x10B\x12$\n" + + " MAIBA_AI_FEATURES_CONTROL_ACTION\x10D\x12\"\n" + + "\x1eBUSINESS_BROADCAST_LIST_ACTION\x10E\x12\x18\n" + + "\x14MUSIC_USER_ID_ACTION\x10F\x126\n" + + "2STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION\x10G\x12\x19\n" + + "\x15AVATAR_UPDATED_ACTION\x10H\x12\x16\n" + + "\x12GALAXY_FLOW_ACTION\x10I\x12%\n" + + "!PRIVATE_PROCESSING_SETTING_ACTION\x10J\x12%\n" + + "!NEWSLETTER_SAVED_INTERESTS_ACTION\x10K\x12\x1b\n" + + "\x17AI_THREAD_RENAME_ACTION\x10L\x12\x1e\n" + + "\x1aINTERACTIVE_MESSAGE_ACTION\x10M\x12\x11\n" + + "\fSHARE_OWN_PN\x10\x91N\x12\x1e\n" + + "\x19BUSINESS_BROADCAST_ACTION\x10\x92NB(Z&go.mau.fi/whatsmeow/proto/waSyncAction" var ( - file_waSyncAction_WASyncAction_proto_rawDescOnce sync.Once - file_waSyncAction_WASyncAction_proto_rawDescData []byte + file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescOnce sync.Once + file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescData []byte ) -func file_waSyncAction_WASyncAction_proto_rawDescGZIP() []byte { - file_waSyncAction_WASyncAction_proto_rawDescOnce.Do(func() { - file_waSyncAction_WASyncAction_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waSyncAction_WASyncAction_proto_rawDesc), len(file_waSyncAction_WASyncAction_proto_rawDesc))) +func file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescGZIP() []byte { + file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescOnce.Do(func() { + file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waSyncAction_WAWebProtobufSyncAction_proto_rawDesc), len(file_waSyncAction_WAWebProtobufSyncAction_proto_rawDesc))) }) - return file_waSyncAction_WASyncAction_proto_rawDescData + return file_waSyncAction_WAWebProtobufSyncAction_proto_rawDescData } -var file_waSyncAction_WASyncAction_proto_enumTypes = make([]protoimpl.EnumInfo, 16) -var file_waSyncAction_WASyncAction_proto_msgTypes = make([]protoimpl.MessageInfo, 75) -var file_waSyncAction_WASyncAction_proto_goTypes = []any{ - (CallLogRecord_CallType)(0), // 0: WASyncAction.CallLogRecord.CallType - (CallLogRecord_SilenceReason)(0), // 1: WASyncAction.CallLogRecord.SilenceReason - (CallLogRecord_CallResult)(0), // 2: WASyncAction.CallLogRecord.CallResult - (AvatarUpdatedAction_AvatarEventType)(0), // 3: WASyncAction.AvatarUpdatedAction.AvatarEventType - (MaibaAIFeaturesControlAction_MaibaAIFeatureStatus)(0), // 4: WASyncAction.MaibaAIFeaturesControlAction.MaibaAIFeatureStatus - (PaymentTosAction_PaymentNotice)(0), // 5: WASyncAction.PaymentTosAction.PaymentNotice - (NotificationActivitySettingAction_NotificationActivitySetting)(0), // 6: WASyncAction.NotificationActivitySettingAction.NotificationActivitySetting - (WaffleAccountLinkStateAction_AccountLinkState)(0), // 7: WASyncAction.WaffleAccountLinkStateAction.AccountLinkState - (MerchantPaymentPartnerAction_Status)(0), // 8: WASyncAction.MerchantPaymentPartnerAction.Status - (GalaxyFlowAction_GalaxyFlowActionType)(0), // 9: WASyncAction.GalaxyFlowAction.GalaxyFlowActionType - (NoteEditAction_NoteType)(0), // 10: WASyncAction.NoteEditAction.NoteType - (StatusPrivacyAction_StatusDistributionMode)(0), // 11: WASyncAction.StatusPrivacyAction.StatusDistributionMode - (MarketingMessageAction_MarketingMessagePrototypeType)(0), // 12: WASyncAction.MarketingMessageAction.MarketingMessagePrototypeType - (UsernameChatStartModeAction_ChatStartMode)(0), // 13: WASyncAction.UsernameChatStartModeAction.ChatStartMode - (LabelEditAction_ListType)(0), // 14: WASyncAction.LabelEditAction.ListType - (PatchDebugData_Platform)(0), // 15: WASyncAction.PatchDebugData.Platform - (*CallLogRecord)(nil), // 16: WASyncAction.CallLogRecord - (*AvatarUpdatedAction)(nil), // 17: WASyncAction.AvatarUpdatedAction - (*MaibaAIFeaturesControlAction)(nil), // 18: WASyncAction.MaibaAIFeaturesControlAction - (*PaymentTosAction)(nil), // 19: WASyncAction.PaymentTosAction - (*NotificationActivitySettingAction)(nil), // 20: WASyncAction.NotificationActivitySettingAction - (*WaffleAccountLinkStateAction)(nil), // 21: WASyncAction.WaffleAccountLinkStateAction - (*MerchantPaymentPartnerAction)(nil), // 22: WASyncAction.MerchantPaymentPartnerAction - (*GalaxyFlowAction)(nil), // 23: WASyncAction.GalaxyFlowAction - (*NoteEditAction)(nil), // 24: WASyncAction.NoteEditAction - (*StatusPrivacyAction)(nil), // 25: WASyncAction.StatusPrivacyAction - (*MarketingMessageAction)(nil), // 26: WASyncAction.MarketingMessageAction - (*UsernameChatStartModeAction)(nil), // 27: WASyncAction.UsernameChatStartModeAction - (*LabelEditAction)(nil), // 28: WASyncAction.LabelEditAction - (*PatchDebugData)(nil), // 29: WASyncAction.PatchDebugData - (*RecentEmojiWeight)(nil), // 30: WASyncAction.RecentEmojiWeight - (*SyncActionValue)(nil), // 31: WASyncAction.SyncActionValue - (*StatusPostOptInNotificationPreferencesAction)(nil), // 32: WASyncAction.StatusPostOptInNotificationPreferencesAction - (*BroadcastListParticipant)(nil), // 33: WASyncAction.BroadcastListParticipant - (*BusinessBroadcastListAction)(nil), // 34: WASyncAction.BusinessBroadcastListAction - (*BusinessBroadcastAssociationAction)(nil), // 35: WASyncAction.BusinessBroadcastAssociationAction - (*CtwaPerCustomerDataSharingAction)(nil), // 36: WASyncAction.CtwaPerCustomerDataSharingAction - (*LidContactAction)(nil), // 37: WASyncAction.LidContactAction - (*FavoritesAction)(nil), // 38: WASyncAction.FavoritesAction - (*PrivacySettingChannelsPersonalisedRecommendationAction)(nil), // 39: WASyncAction.PrivacySettingChannelsPersonalisedRecommendationAction - (*PrivacySettingDisableLinkPreviewsAction)(nil), // 40: WASyncAction.PrivacySettingDisableLinkPreviewsAction - (*WamoUserIdentifierAction)(nil), // 41: WASyncAction.WamoUserIdentifierAction - (*LockChatAction)(nil), // 42: WASyncAction.LockChatAction - (*CustomPaymentMethodsAction)(nil), // 43: WASyncAction.CustomPaymentMethodsAction - (*CustomPaymentMethod)(nil), // 44: WASyncAction.CustomPaymentMethod - (*CustomPaymentMethodMetadata)(nil), // 45: WASyncAction.CustomPaymentMethodMetadata - (*PaymentInfoAction)(nil), // 46: WASyncAction.PaymentInfoAction - (*LabelReorderingAction)(nil), // 47: WASyncAction.LabelReorderingAction - (*DeleteIndividualCallLogAction)(nil), // 48: WASyncAction.DeleteIndividualCallLogAction - (*BotWelcomeRequestAction)(nil), // 49: WASyncAction.BotWelcomeRequestAction - (*MusicUserIdAction)(nil), // 50: WASyncAction.MusicUserIdAction - (*CallLogAction)(nil), // 51: WASyncAction.CallLogAction - (*PrivacySettingRelayAllCalls)(nil), // 52: WASyncAction.PrivacySettingRelayAllCalls - (*DetectedOutcomesStatusAction)(nil), // 53: WASyncAction.DetectedOutcomesStatusAction - (*ExternalWebBetaAction)(nil), // 54: WASyncAction.ExternalWebBetaAction - (*MarketingMessageBroadcastAction)(nil), // 55: WASyncAction.MarketingMessageBroadcastAction - (*PnForLidChatAction)(nil), // 56: WASyncAction.PnForLidChatAction - (*ChatAssignmentOpenedStatusAction)(nil), // 57: WASyncAction.ChatAssignmentOpenedStatusAction - (*ChatAssignmentAction)(nil), // 58: WASyncAction.ChatAssignmentAction - (*StickerAction)(nil), // 59: WASyncAction.StickerAction - (*RemoveRecentStickerAction)(nil), // 60: WASyncAction.RemoveRecentStickerAction - (*PrimaryVersionAction)(nil), // 61: WASyncAction.PrimaryVersionAction - (*NuxAction)(nil), // 62: WASyncAction.NuxAction - (*TimeFormatAction)(nil), // 63: WASyncAction.TimeFormatAction - (*UserStatusMuteAction)(nil), // 64: WASyncAction.UserStatusMuteAction - (*SubscriptionAction)(nil), // 65: WASyncAction.SubscriptionAction - (*AgentAction)(nil), // 66: WASyncAction.AgentAction - (*AndroidUnsupportedActions)(nil), // 67: WASyncAction.AndroidUnsupportedActions - (*PrimaryFeature)(nil), // 68: WASyncAction.PrimaryFeature - (*KeyExpiration)(nil), // 69: WASyncAction.KeyExpiration - (*SyncActionMessage)(nil), // 70: WASyncAction.SyncActionMessage - (*SyncActionMessageRange)(nil), // 71: WASyncAction.SyncActionMessageRange - (*UnarchiveChatsSetting)(nil), // 72: WASyncAction.UnarchiveChatsSetting - (*DeleteChatAction)(nil), // 73: WASyncAction.DeleteChatAction - (*ClearChatAction)(nil), // 74: WASyncAction.ClearChatAction - (*MarkChatAsReadAction)(nil), // 75: WASyncAction.MarkChatAsReadAction - (*DeleteMessageForMeAction)(nil), // 76: WASyncAction.DeleteMessageForMeAction - (*ArchiveChatAction)(nil), // 77: WASyncAction.ArchiveChatAction - (*RecentEmojiWeightsAction)(nil), // 78: WASyncAction.RecentEmojiWeightsAction - (*LabelAssociationAction)(nil), // 79: WASyncAction.LabelAssociationAction - (*QuickReplyAction)(nil), // 80: WASyncAction.QuickReplyAction - (*LocaleSetting)(nil), // 81: WASyncAction.LocaleSetting - (*PushNameSetting)(nil), // 82: WASyncAction.PushNameSetting - (*SecurityNotificationSetting)(nil), // 83: WASyncAction.SecurityNotificationSetting - (*PinAction)(nil), // 84: WASyncAction.PinAction - (*MuteAction)(nil), // 85: WASyncAction.MuteAction - (*ContactAction)(nil), // 86: WASyncAction.ContactAction - (*StarAction)(nil), // 87: WASyncAction.StarAction - (*SyncActionData)(nil), // 88: WASyncAction.SyncActionData - (*CallLogRecord_ParticipantInfo)(nil), // 89: WASyncAction.CallLogRecord.ParticipantInfo - (*FavoritesAction_Favorite)(nil), // 90: WASyncAction.FavoritesAction.Favorite - (*waChatLockSettings.ChatLockSettings)(nil), // 91: WAProtobufsChatLockSettings.ChatLockSettings - (*waDeviceCapabilities.DeviceCapabilities)(nil), // 92: WAProtobufsDeviceCapabilities.DeviceCapabilities - (*waCommon.MessageKey)(nil), // 93: WACommon.MessageKey +var file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes = make([]protoimpl.EnumInfo, 19) +var file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes = make([]protoimpl.MessageInfo, 78) +var file_waSyncAction_WAWebProtobufSyncAction_proto_goTypes = []any{ + (CollectionName)(0), // 0: WAWebProtobufSyncAction.CollectionName + (MutationProps)(0), // 1: WAWebProtobufSyncAction.MutationProps + (CallLogRecord_CallType)(0), // 2: WAWebProtobufSyncAction.CallLogRecord.CallType + (CallLogRecord_SilenceReason)(0), // 3: WAWebProtobufSyncAction.CallLogRecord.SilenceReason + (CallLogRecord_CallResult)(0), // 4: WAWebProtobufSyncAction.CallLogRecord.CallResult + (InteractiveMessageAction_InteractiveMessageActionMode)(0), // 5: WAWebProtobufSyncAction.InteractiveMessageAction.InteractiveMessageActionMode + (PrivateProcessingSettingAction_PrivateProcessingStatus)(0), // 6: WAWebProtobufSyncAction.PrivateProcessingSettingAction.PrivateProcessingStatus + (AvatarUpdatedAction_AvatarEventType)(0), // 7: WAWebProtobufSyncAction.AvatarUpdatedAction.AvatarEventType + (MaibaAIFeaturesControlAction_MaibaAIFeatureStatus)(0), // 8: WAWebProtobufSyncAction.MaibaAIFeaturesControlAction.MaibaAIFeatureStatus + (PaymentTosAction_PaymentNotice)(0), // 9: WAWebProtobufSyncAction.PaymentTosAction.PaymentNotice + (NotificationActivitySettingAction_NotificationActivitySetting)(0), // 10: WAWebProtobufSyncAction.NotificationActivitySettingAction.NotificationActivitySetting + (WaffleAccountLinkStateAction_AccountLinkState)(0), // 11: WAWebProtobufSyncAction.WaffleAccountLinkStateAction.AccountLinkState + (MerchantPaymentPartnerAction_Status)(0), // 12: WAWebProtobufSyncAction.MerchantPaymentPartnerAction.Status + (NoteEditAction_NoteType)(0), // 13: WAWebProtobufSyncAction.NoteEditAction.NoteType + (StatusPrivacyAction_StatusDistributionMode)(0), // 14: WAWebProtobufSyncAction.StatusPrivacyAction.StatusDistributionMode + (MarketingMessageAction_MarketingMessagePrototypeType)(0), // 15: WAWebProtobufSyncAction.MarketingMessageAction.MarketingMessagePrototypeType + (UsernameChatStartModeAction_ChatStartMode)(0), // 16: WAWebProtobufSyncAction.UsernameChatStartModeAction.ChatStartMode + (LabelEditAction_ListType)(0), // 17: WAWebProtobufSyncAction.LabelEditAction.ListType + (PatchDebugData_Platform)(0), // 18: WAWebProtobufSyncAction.PatchDebugData.Platform + (*CallLogRecord)(nil), // 19: WAWebProtobufSyncAction.CallLogRecord + (*InteractiveMessageAction)(nil), // 20: WAWebProtobufSyncAction.InteractiveMessageAction + (*PrivateProcessingSettingAction)(nil), // 21: WAWebProtobufSyncAction.PrivateProcessingSettingAction + (*AvatarUpdatedAction)(nil), // 22: WAWebProtobufSyncAction.AvatarUpdatedAction + (*MaibaAIFeaturesControlAction)(nil), // 23: WAWebProtobufSyncAction.MaibaAIFeaturesControlAction + (*PaymentTosAction)(nil), // 24: WAWebProtobufSyncAction.PaymentTosAction + (*NotificationActivitySettingAction)(nil), // 25: WAWebProtobufSyncAction.NotificationActivitySettingAction + (*WaffleAccountLinkStateAction)(nil), // 26: WAWebProtobufSyncAction.WaffleAccountLinkStateAction + (*MerchantPaymentPartnerAction)(nil), // 27: WAWebProtobufSyncAction.MerchantPaymentPartnerAction + (*NoteEditAction)(nil), // 28: WAWebProtobufSyncAction.NoteEditAction + (*StatusPrivacyAction)(nil), // 29: WAWebProtobufSyncAction.StatusPrivacyAction + (*MarketingMessageAction)(nil), // 30: WAWebProtobufSyncAction.MarketingMessageAction + (*UsernameChatStartModeAction)(nil), // 31: WAWebProtobufSyncAction.UsernameChatStartModeAction + (*LabelEditAction)(nil), // 32: WAWebProtobufSyncAction.LabelEditAction + (*PatchDebugData)(nil), // 33: WAWebProtobufSyncAction.PatchDebugData + (*RecentEmojiWeight)(nil), // 34: WAWebProtobufSyncAction.RecentEmojiWeight + (*SyncActionValue)(nil), // 35: WAWebProtobufSyncAction.SyncActionValue + (*AiThreadRenameAction)(nil), // 36: WAWebProtobufSyncAction.AiThreadRenameAction + (*StatusPostOptInNotificationPreferencesAction)(nil), // 37: WAWebProtobufSyncAction.StatusPostOptInNotificationPreferencesAction + (*BroadcastListParticipant)(nil), // 38: WAWebProtobufSyncAction.BroadcastListParticipant + (*BusinessBroadcastListAction)(nil), // 39: WAWebProtobufSyncAction.BusinessBroadcastListAction + (*BusinessBroadcastAssociationAction)(nil), // 40: WAWebProtobufSyncAction.BusinessBroadcastAssociationAction + (*CtwaPerCustomerDataSharingAction)(nil), // 41: WAWebProtobufSyncAction.CtwaPerCustomerDataSharingAction + (*LidContactAction)(nil), // 42: WAWebProtobufSyncAction.LidContactAction + (*FavoritesAction)(nil), // 43: WAWebProtobufSyncAction.FavoritesAction + (*PrivacySettingChannelsPersonalisedRecommendationAction)(nil), // 44: WAWebProtobufSyncAction.PrivacySettingChannelsPersonalisedRecommendationAction + (*PrivacySettingDisableLinkPreviewsAction)(nil), // 45: WAWebProtobufSyncAction.PrivacySettingDisableLinkPreviewsAction + (*WamoUserIdentifierAction)(nil), // 46: WAWebProtobufSyncAction.WamoUserIdentifierAction + (*LockChatAction)(nil), // 47: WAWebProtobufSyncAction.LockChatAction + (*CustomPaymentMethodsAction)(nil), // 48: WAWebProtobufSyncAction.CustomPaymentMethodsAction + (*CustomPaymentMethod)(nil), // 49: WAWebProtobufSyncAction.CustomPaymentMethod + (*CustomPaymentMethodMetadata)(nil), // 50: WAWebProtobufSyncAction.CustomPaymentMethodMetadata + (*PaymentInfoAction)(nil), // 51: WAWebProtobufSyncAction.PaymentInfoAction + (*LabelReorderingAction)(nil), // 52: WAWebProtobufSyncAction.LabelReorderingAction + (*DeleteIndividualCallLogAction)(nil), // 53: WAWebProtobufSyncAction.DeleteIndividualCallLogAction + (*BotWelcomeRequestAction)(nil), // 54: WAWebProtobufSyncAction.BotWelcomeRequestAction + (*NewsletterSavedInterestsAction)(nil), // 55: WAWebProtobufSyncAction.NewsletterSavedInterestsAction + (*MusicUserIdAction)(nil), // 56: WAWebProtobufSyncAction.MusicUserIdAction + (*UGCBot)(nil), // 57: WAWebProtobufSyncAction.UGCBot + (*CallLogAction)(nil), // 58: WAWebProtobufSyncAction.CallLogAction + (*PrivacySettingRelayAllCalls)(nil), // 59: WAWebProtobufSyncAction.PrivacySettingRelayAllCalls + (*DetectedOutcomesStatusAction)(nil), // 60: WAWebProtobufSyncAction.DetectedOutcomesStatusAction + (*ExternalWebBetaAction)(nil), // 61: WAWebProtobufSyncAction.ExternalWebBetaAction + (*MarketingMessageBroadcastAction)(nil), // 62: WAWebProtobufSyncAction.MarketingMessageBroadcastAction + (*PnForLidChatAction)(nil), // 63: WAWebProtobufSyncAction.PnForLidChatAction + (*ChatAssignmentOpenedStatusAction)(nil), // 64: WAWebProtobufSyncAction.ChatAssignmentOpenedStatusAction + (*ChatAssignmentAction)(nil), // 65: WAWebProtobufSyncAction.ChatAssignmentAction + (*StickerAction)(nil), // 66: WAWebProtobufSyncAction.StickerAction + (*RemoveRecentStickerAction)(nil), // 67: WAWebProtobufSyncAction.RemoveRecentStickerAction + (*PrimaryVersionAction)(nil), // 68: WAWebProtobufSyncAction.PrimaryVersionAction + (*NuxAction)(nil), // 69: WAWebProtobufSyncAction.NuxAction + (*TimeFormatAction)(nil), // 70: WAWebProtobufSyncAction.TimeFormatAction + (*UserStatusMuteAction)(nil), // 71: WAWebProtobufSyncAction.UserStatusMuteAction + (*SubscriptionAction)(nil), // 72: WAWebProtobufSyncAction.SubscriptionAction + (*AgentAction)(nil), // 73: WAWebProtobufSyncAction.AgentAction + (*AndroidUnsupportedActions)(nil), // 74: WAWebProtobufSyncAction.AndroidUnsupportedActions + (*PrimaryFeature)(nil), // 75: WAWebProtobufSyncAction.PrimaryFeature + (*KeyExpiration)(nil), // 76: WAWebProtobufSyncAction.KeyExpiration + (*SyncActionMessage)(nil), // 77: WAWebProtobufSyncAction.SyncActionMessage + (*SyncActionMessageRange)(nil), // 78: WAWebProtobufSyncAction.SyncActionMessageRange + (*UnarchiveChatsSetting)(nil), // 79: WAWebProtobufSyncAction.UnarchiveChatsSetting + (*DeleteChatAction)(nil), // 80: WAWebProtobufSyncAction.DeleteChatAction + (*ClearChatAction)(nil), // 81: WAWebProtobufSyncAction.ClearChatAction + (*MarkChatAsReadAction)(nil), // 82: WAWebProtobufSyncAction.MarkChatAsReadAction + (*DeleteMessageForMeAction)(nil), // 83: WAWebProtobufSyncAction.DeleteMessageForMeAction + (*ArchiveChatAction)(nil), // 84: WAWebProtobufSyncAction.ArchiveChatAction + (*RecentEmojiWeightsAction)(nil), // 85: WAWebProtobufSyncAction.RecentEmojiWeightsAction + (*LabelAssociationAction)(nil), // 86: WAWebProtobufSyncAction.LabelAssociationAction + (*QuickReplyAction)(nil), // 87: WAWebProtobufSyncAction.QuickReplyAction + (*LocaleSetting)(nil), // 88: WAWebProtobufSyncAction.LocaleSetting + (*PushNameSetting)(nil), // 89: WAWebProtobufSyncAction.PushNameSetting + (*PinAction)(nil), // 90: WAWebProtobufSyncAction.PinAction + (*MuteAction)(nil), // 91: WAWebProtobufSyncAction.MuteAction + (*ContactAction)(nil), // 92: WAWebProtobufSyncAction.ContactAction + (*StarAction)(nil), // 93: WAWebProtobufSyncAction.StarAction + (*SyncActionData)(nil), // 94: WAWebProtobufSyncAction.SyncActionData + (*CallLogRecord_ParticipantInfo)(nil), // 95: WAWebProtobufSyncAction.CallLogRecord.ParticipantInfo + (*FavoritesAction_Favorite)(nil), // 96: WAWebProtobufSyncAction.FavoritesAction.Favorite + (*waChatLockSettings.ChatLockSettings)(nil), // 97: WAWebProtobufsChatLockSettings.ChatLockSettings + (*waDeviceCapabilities.DeviceCapabilities)(nil), // 98: WAWebProtobufsDeviceCapabilities.DeviceCapabilities + (*waCommon.MessageKey)(nil), // 99: WACommon.MessageKey } -var file_waSyncAction_WASyncAction_proto_depIdxs = []int32{ - 2, // 0: WASyncAction.CallLogRecord.callResult:type_name -> WASyncAction.CallLogRecord.CallResult - 1, // 1: WASyncAction.CallLogRecord.silenceReason:type_name -> WASyncAction.CallLogRecord.SilenceReason - 89, // 2: WASyncAction.CallLogRecord.participants:type_name -> WASyncAction.CallLogRecord.ParticipantInfo - 0, // 3: WASyncAction.CallLogRecord.callType:type_name -> WASyncAction.CallLogRecord.CallType - 3, // 4: WASyncAction.AvatarUpdatedAction.eventType:type_name -> WASyncAction.AvatarUpdatedAction.AvatarEventType - 59, // 5: WASyncAction.AvatarUpdatedAction.recentAvatarStickers:type_name -> WASyncAction.StickerAction - 4, // 6: WASyncAction.MaibaAIFeaturesControlAction.aiFeatureStatus:type_name -> WASyncAction.MaibaAIFeaturesControlAction.MaibaAIFeatureStatus - 5, // 7: WASyncAction.PaymentTosAction.paymentNotice:type_name -> WASyncAction.PaymentTosAction.PaymentNotice - 6, // 8: WASyncAction.NotificationActivitySettingAction.notificationActivitySetting:type_name -> WASyncAction.NotificationActivitySettingAction.NotificationActivitySetting - 7, // 9: WASyncAction.WaffleAccountLinkStateAction.linkState:type_name -> WASyncAction.WaffleAccountLinkStateAction.AccountLinkState - 8, // 10: WASyncAction.MerchantPaymentPartnerAction.status:type_name -> WASyncAction.MerchantPaymentPartnerAction.Status - 9, // 11: WASyncAction.GalaxyFlowAction.type:type_name -> WASyncAction.GalaxyFlowAction.GalaxyFlowActionType - 10, // 12: WASyncAction.NoteEditAction.type:type_name -> WASyncAction.NoteEditAction.NoteType - 11, // 13: WASyncAction.StatusPrivacyAction.mode:type_name -> WASyncAction.StatusPrivacyAction.StatusDistributionMode - 12, // 14: WASyncAction.MarketingMessageAction.type:type_name -> WASyncAction.MarketingMessageAction.MarketingMessagePrototypeType - 13, // 15: WASyncAction.UsernameChatStartModeAction.chatStartMode:type_name -> WASyncAction.UsernameChatStartModeAction.ChatStartMode - 14, // 16: WASyncAction.LabelEditAction.type:type_name -> WASyncAction.LabelEditAction.ListType - 15, // 17: WASyncAction.PatchDebugData.senderPlatform:type_name -> WASyncAction.PatchDebugData.Platform - 87, // 18: WASyncAction.SyncActionValue.starAction:type_name -> WASyncAction.StarAction - 86, // 19: WASyncAction.SyncActionValue.contactAction:type_name -> WASyncAction.ContactAction - 85, // 20: WASyncAction.SyncActionValue.muteAction:type_name -> WASyncAction.MuteAction - 84, // 21: WASyncAction.SyncActionValue.pinAction:type_name -> WASyncAction.PinAction - 83, // 22: WASyncAction.SyncActionValue.securityNotificationSetting:type_name -> WASyncAction.SecurityNotificationSetting - 82, // 23: WASyncAction.SyncActionValue.pushNameSetting:type_name -> WASyncAction.PushNameSetting - 80, // 24: WASyncAction.SyncActionValue.quickReplyAction:type_name -> WASyncAction.QuickReplyAction - 78, // 25: WASyncAction.SyncActionValue.recentEmojiWeightsAction:type_name -> WASyncAction.RecentEmojiWeightsAction - 28, // 26: WASyncAction.SyncActionValue.labelEditAction:type_name -> WASyncAction.LabelEditAction - 79, // 27: WASyncAction.SyncActionValue.labelAssociationAction:type_name -> WASyncAction.LabelAssociationAction - 81, // 28: WASyncAction.SyncActionValue.localeSetting:type_name -> WASyncAction.LocaleSetting - 77, // 29: WASyncAction.SyncActionValue.archiveChatAction:type_name -> WASyncAction.ArchiveChatAction - 76, // 30: WASyncAction.SyncActionValue.deleteMessageForMeAction:type_name -> WASyncAction.DeleteMessageForMeAction - 69, // 31: WASyncAction.SyncActionValue.keyExpiration:type_name -> WASyncAction.KeyExpiration - 75, // 32: WASyncAction.SyncActionValue.markChatAsReadAction:type_name -> WASyncAction.MarkChatAsReadAction - 74, // 33: WASyncAction.SyncActionValue.clearChatAction:type_name -> WASyncAction.ClearChatAction - 73, // 34: WASyncAction.SyncActionValue.deleteChatAction:type_name -> WASyncAction.DeleteChatAction - 72, // 35: WASyncAction.SyncActionValue.unarchiveChatsSetting:type_name -> WASyncAction.UnarchiveChatsSetting - 68, // 36: WASyncAction.SyncActionValue.primaryFeature:type_name -> WASyncAction.PrimaryFeature - 67, // 37: WASyncAction.SyncActionValue.androidUnsupportedActions:type_name -> WASyncAction.AndroidUnsupportedActions - 66, // 38: WASyncAction.SyncActionValue.agentAction:type_name -> WASyncAction.AgentAction - 65, // 39: WASyncAction.SyncActionValue.subscriptionAction:type_name -> WASyncAction.SubscriptionAction - 64, // 40: WASyncAction.SyncActionValue.userStatusMuteAction:type_name -> WASyncAction.UserStatusMuteAction - 63, // 41: WASyncAction.SyncActionValue.timeFormatAction:type_name -> WASyncAction.TimeFormatAction - 62, // 42: WASyncAction.SyncActionValue.nuxAction:type_name -> WASyncAction.NuxAction - 61, // 43: WASyncAction.SyncActionValue.primaryVersionAction:type_name -> WASyncAction.PrimaryVersionAction - 59, // 44: WASyncAction.SyncActionValue.stickerAction:type_name -> WASyncAction.StickerAction - 60, // 45: WASyncAction.SyncActionValue.removeRecentStickerAction:type_name -> WASyncAction.RemoveRecentStickerAction - 58, // 46: WASyncAction.SyncActionValue.chatAssignment:type_name -> WASyncAction.ChatAssignmentAction - 57, // 47: WASyncAction.SyncActionValue.chatAssignmentOpenedStatus:type_name -> WASyncAction.ChatAssignmentOpenedStatusAction - 56, // 48: WASyncAction.SyncActionValue.pnForLidChatAction:type_name -> WASyncAction.PnForLidChatAction - 26, // 49: WASyncAction.SyncActionValue.marketingMessageAction:type_name -> WASyncAction.MarketingMessageAction - 55, // 50: WASyncAction.SyncActionValue.marketingMessageBroadcastAction:type_name -> WASyncAction.MarketingMessageBroadcastAction - 54, // 51: WASyncAction.SyncActionValue.externalWebBetaAction:type_name -> WASyncAction.ExternalWebBetaAction - 52, // 52: WASyncAction.SyncActionValue.privacySettingRelayAllCalls:type_name -> WASyncAction.PrivacySettingRelayAllCalls - 51, // 53: WASyncAction.SyncActionValue.callLogAction:type_name -> WASyncAction.CallLogAction - 25, // 54: WASyncAction.SyncActionValue.statusPrivacy:type_name -> WASyncAction.StatusPrivacyAction - 49, // 55: WASyncAction.SyncActionValue.botWelcomeRequestAction:type_name -> WASyncAction.BotWelcomeRequestAction - 48, // 56: WASyncAction.SyncActionValue.deleteIndividualCallLog:type_name -> WASyncAction.DeleteIndividualCallLogAction - 47, // 57: WASyncAction.SyncActionValue.labelReorderingAction:type_name -> WASyncAction.LabelReorderingAction - 46, // 58: WASyncAction.SyncActionValue.paymentInfoAction:type_name -> WASyncAction.PaymentInfoAction - 43, // 59: WASyncAction.SyncActionValue.customPaymentMethodsAction:type_name -> WASyncAction.CustomPaymentMethodsAction - 42, // 60: WASyncAction.SyncActionValue.lockChatAction:type_name -> WASyncAction.LockChatAction - 91, // 61: WASyncAction.SyncActionValue.chatLockSettings:type_name -> WAProtobufsChatLockSettings.ChatLockSettings - 41, // 62: WASyncAction.SyncActionValue.wamoUserIdentifierAction:type_name -> WASyncAction.WamoUserIdentifierAction - 40, // 63: WASyncAction.SyncActionValue.privacySettingDisableLinkPreviewsAction:type_name -> WASyncAction.PrivacySettingDisableLinkPreviewsAction - 92, // 64: WASyncAction.SyncActionValue.deviceCapabilities:type_name -> WAProtobufsDeviceCapabilities.DeviceCapabilities - 24, // 65: WASyncAction.SyncActionValue.noteEditAction:type_name -> WASyncAction.NoteEditAction - 38, // 66: WASyncAction.SyncActionValue.favoritesAction:type_name -> WASyncAction.FavoritesAction - 22, // 67: WASyncAction.SyncActionValue.merchantPaymentPartnerAction:type_name -> WASyncAction.MerchantPaymentPartnerAction - 21, // 68: WASyncAction.SyncActionValue.waffleAccountLinkStateAction:type_name -> WASyncAction.WaffleAccountLinkStateAction - 27, // 69: WASyncAction.SyncActionValue.usernameChatStartMode:type_name -> WASyncAction.UsernameChatStartModeAction - 20, // 70: WASyncAction.SyncActionValue.notificationActivitySettingAction:type_name -> WASyncAction.NotificationActivitySettingAction - 37, // 71: WASyncAction.SyncActionValue.lidContactAction:type_name -> WASyncAction.LidContactAction - 36, // 72: WASyncAction.SyncActionValue.ctwaPerCustomerDataSharingAction:type_name -> WASyncAction.CtwaPerCustomerDataSharingAction - 19, // 73: WASyncAction.SyncActionValue.paymentTosAction:type_name -> WASyncAction.PaymentTosAction - 39, // 74: WASyncAction.SyncActionValue.privacySettingChannelsPersonalisedRecommendationAction:type_name -> WASyncAction.PrivacySettingChannelsPersonalisedRecommendationAction - 35, // 75: WASyncAction.SyncActionValue.businessBroadcastAssociationAction:type_name -> WASyncAction.BusinessBroadcastAssociationAction - 53, // 76: WASyncAction.SyncActionValue.detectedOutcomesStatusAction:type_name -> WASyncAction.DetectedOutcomesStatusAction - 18, // 77: WASyncAction.SyncActionValue.maibaAiFeaturesControlAction:type_name -> WASyncAction.MaibaAIFeaturesControlAction - 34, // 78: WASyncAction.SyncActionValue.businessBroadcastListAction:type_name -> WASyncAction.BusinessBroadcastListAction - 50, // 79: WASyncAction.SyncActionValue.musicUserIDAction:type_name -> WASyncAction.MusicUserIdAction - 32, // 80: WASyncAction.SyncActionValue.statusPostOptInNotificationPreferencesAction:type_name -> WASyncAction.StatusPostOptInNotificationPreferencesAction - 17, // 81: WASyncAction.SyncActionValue.avatarUpdatedAction:type_name -> WASyncAction.AvatarUpdatedAction - 23, // 82: WASyncAction.SyncActionValue.galaxyFlowAction:type_name -> WASyncAction.GalaxyFlowAction - 33, // 83: WASyncAction.BusinessBroadcastListAction.participants:type_name -> WASyncAction.BroadcastListParticipant - 90, // 84: WASyncAction.FavoritesAction.favorites:type_name -> WASyncAction.FavoritesAction.Favorite - 44, // 85: WASyncAction.CustomPaymentMethodsAction.customPaymentMethods:type_name -> WASyncAction.CustomPaymentMethod - 45, // 86: WASyncAction.CustomPaymentMethod.metadata:type_name -> WASyncAction.CustomPaymentMethodMetadata - 16, // 87: WASyncAction.CallLogAction.callLogRecord:type_name -> WASyncAction.CallLogRecord - 93, // 88: WASyncAction.SyncActionMessage.key:type_name -> WACommon.MessageKey - 70, // 89: WASyncAction.SyncActionMessageRange.messages:type_name -> WASyncAction.SyncActionMessage - 71, // 90: WASyncAction.DeleteChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange - 71, // 91: WASyncAction.ClearChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange - 71, // 92: WASyncAction.MarkChatAsReadAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange - 71, // 93: WASyncAction.ArchiveChatAction.messageRange:type_name -> WASyncAction.SyncActionMessageRange - 30, // 94: WASyncAction.RecentEmojiWeightsAction.weights:type_name -> WASyncAction.RecentEmojiWeight - 31, // 95: WASyncAction.SyncActionData.value:type_name -> WASyncAction.SyncActionValue - 2, // 96: WASyncAction.CallLogRecord.ParticipantInfo.callResult:type_name -> WASyncAction.CallLogRecord.CallResult - 97, // [97:97] is the sub-list for method output_type - 97, // [97:97] is the sub-list for method input_type - 97, // [97:97] is the sub-list for extension type_name - 97, // [97:97] is the sub-list for extension extendee - 0, // [0:97] is the sub-list for field type_name +var file_waSyncAction_WAWebProtobufSyncAction_proto_depIdxs = []int32{ + 4, // 0: WAWebProtobufSyncAction.CallLogRecord.callResult:type_name -> WAWebProtobufSyncAction.CallLogRecord.CallResult + 3, // 1: WAWebProtobufSyncAction.CallLogRecord.silenceReason:type_name -> WAWebProtobufSyncAction.CallLogRecord.SilenceReason + 95, // 2: WAWebProtobufSyncAction.CallLogRecord.participants:type_name -> WAWebProtobufSyncAction.CallLogRecord.ParticipantInfo + 2, // 3: WAWebProtobufSyncAction.CallLogRecord.callType:type_name -> WAWebProtobufSyncAction.CallLogRecord.CallType + 5, // 4: WAWebProtobufSyncAction.InteractiveMessageAction.type:type_name -> WAWebProtobufSyncAction.InteractiveMessageAction.InteractiveMessageActionMode + 6, // 5: WAWebProtobufSyncAction.PrivateProcessingSettingAction.privateProcessingStatus:type_name -> WAWebProtobufSyncAction.PrivateProcessingSettingAction.PrivateProcessingStatus + 7, // 6: WAWebProtobufSyncAction.AvatarUpdatedAction.eventType:type_name -> WAWebProtobufSyncAction.AvatarUpdatedAction.AvatarEventType + 66, // 7: WAWebProtobufSyncAction.AvatarUpdatedAction.recentAvatarStickers:type_name -> WAWebProtobufSyncAction.StickerAction + 8, // 8: WAWebProtobufSyncAction.MaibaAIFeaturesControlAction.aiFeatureStatus:type_name -> WAWebProtobufSyncAction.MaibaAIFeaturesControlAction.MaibaAIFeatureStatus + 9, // 9: WAWebProtobufSyncAction.PaymentTosAction.paymentNotice:type_name -> WAWebProtobufSyncAction.PaymentTosAction.PaymentNotice + 10, // 10: WAWebProtobufSyncAction.NotificationActivitySettingAction.notificationActivitySetting:type_name -> WAWebProtobufSyncAction.NotificationActivitySettingAction.NotificationActivitySetting + 11, // 11: WAWebProtobufSyncAction.WaffleAccountLinkStateAction.linkState:type_name -> WAWebProtobufSyncAction.WaffleAccountLinkStateAction.AccountLinkState + 12, // 12: WAWebProtobufSyncAction.MerchantPaymentPartnerAction.status:type_name -> WAWebProtobufSyncAction.MerchantPaymentPartnerAction.Status + 13, // 13: WAWebProtobufSyncAction.NoteEditAction.type:type_name -> WAWebProtobufSyncAction.NoteEditAction.NoteType + 14, // 14: WAWebProtobufSyncAction.StatusPrivacyAction.mode:type_name -> WAWebProtobufSyncAction.StatusPrivacyAction.StatusDistributionMode + 15, // 15: WAWebProtobufSyncAction.MarketingMessageAction.type:type_name -> WAWebProtobufSyncAction.MarketingMessageAction.MarketingMessagePrototypeType + 16, // 16: WAWebProtobufSyncAction.UsernameChatStartModeAction.chatStartMode:type_name -> WAWebProtobufSyncAction.UsernameChatStartModeAction.ChatStartMode + 17, // 17: WAWebProtobufSyncAction.LabelEditAction.type:type_name -> WAWebProtobufSyncAction.LabelEditAction.ListType + 18, // 18: WAWebProtobufSyncAction.PatchDebugData.senderPlatform:type_name -> WAWebProtobufSyncAction.PatchDebugData.Platform + 93, // 19: WAWebProtobufSyncAction.SyncActionValue.starAction:type_name -> WAWebProtobufSyncAction.StarAction + 92, // 20: WAWebProtobufSyncAction.SyncActionValue.contactAction:type_name -> WAWebProtobufSyncAction.ContactAction + 91, // 21: WAWebProtobufSyncAction.SyncActionValue.muteAction:type_name -> WAWebProtobufSyncAction.MuteAction + 90, // 22: WAWebProtobufSyncAction.SyncActionValue.pinAction:type_name -> WAWebProtobufSyncAction.PinAction + 89, // 23: WAWebProtobufSyncAction.SyncActionValue.pushNameSetting:type_name -> WAWebProtobufSyncAction.PushNameSetting + 87, // 24: WAWebProtobufSyncAction.SyncActionValue.quickReplyAction:type_name -> WAWebProtobufSyncAction.QuickReplyAction + 85, // 25: WAWebProtobufSyncAction.SyncActionValue.recentEmojiWeightsAction:type_name -> WAWebProtobufSyncAction.RecentEmojiWeightsAction + 32, // 26: WAWebProtobufSyncAction.SyncActionValue.labelEditAction:type_name -> WAWebProtobufSyncAction.LabelEditAction + 86, // 27: WAWebProtobufSyncAction.SyncActionValue.labelAssociationAction:type_name -> WAWebProtobufSyncAction.LabelAssociationAction + 88, // 28: WAWebProtobufSyncAction.SyncActionValue.localeSetting:type_name -> WAWebProtobufSyncAction.LocaleSetting + 84, // 29: WAWebProtobufSyncAction.SyncActionValue.archiveChatAction:type_name -> WAWebProtobufSyncAction.ArchiveChatAction + 83, // 30: WAWebProtobufSyncAction.SyncActionValue.deleteMessageForMeAction:type_name -> WAWebProtobufSyncAction.DeleteMessageForMeAction + 76, // 31: WAWebProtobufSyncAction.SyncActionValue.keyExpiration:type_name -> WAWebProtobufSyncAction.KeyExpiration + 82, // 32: WAWebProtobufSyncAction.SyncActionValue.markChatAsReadAction:type_name -> WAWebProtobufSyncAction.MarkChatAsReadAction + 81, // 33: WAWebProtobufSyncAction.SyncActionValue.clearChatAction:type_name -> WAWebProtobufSyncAction.ClearChatAction + 80, // 34: WAWebProtobufSyncAction.SyncActionValue.deleteChatAction:type_name -> WAWebProtobufSyncAction.DeleteChatAction + 79, // 35: WAWebProtobufSyncAction.SyncActionValue.unarchiveChatsSetting:type_name -> WAWebProtobufSyncAction.UnarchiveChatsSetting + 75, // 36: WAWebProtobufSyncAction.SyncActionValue.primaryFeature:type_name -> WAWebProtobufSyncAction.PrimaryFeature + 74, // 37: WAWebProtobufSyncAction.SyncActionValue.androidUnsupportedActions:type_name -> WAWebProtobufSyncAction.AndroidUnsupportedActions + 73, // 38: WAWebProtobufSyncAction.SyncActionValue.agentAction:type_name -> WAWebProtobufSyncAction.AgentAction + 72, // 39: WAWebProtobufSyncAction.SyncActionValue.subscriptionAction:type_name -> WAWebProtobufSyncAction.SubscriptionAction + 71, // 40: WAWebProtobufSyncAction.SyncActionValue.userStatusMuteAction:type_name -> WAWebProtobufSyncAction.UserStatusMuteAction + 70, // 41: WAWebProtobufSyncAction.SyncActionValue.timeFormatAction:type_name -> WAWebProtobufSyncAction.TimeFormatAction + 69, // 42: WAWebProtobufSyncAction.SyncActionValue.nuxAction:type_name -> WAWebProtobufSyncAction.NuxAction + 68, // 43: WAWebProtobufSyncAction.SyncActionValue.primaryVersionAction:type_name -> WAWebProtobufSyncAction.PrimaryVersionAction + 66, // 44: WAWebProtobufSyncAction.SyncActionValue.stickerAction:type_name -> WAWebProtobufSyncAction.StickerAction + 67, // 45: WAWebProtobufSyncAction.SyncActionValue.removeRecentStickerAction:type_name -> WAWebProtobufSyncAction.RemoveRecentStickerAction + 65, // 46: WAWebProtobufSyncAction.SyncActionValue.chatAssignment:type_name -> WAWebProtobufSyncAction.ChatAssignmentAction + 64, // 47: WAWebProtobufSyncAction.SyncActionValue.chatAssignmentOpenedStatus:type_name -> WAWebProtobufSyncAction.ChatAssignmentOpenedStatusAction + 63, // 48: WAWebProtobufSyncAction.SyncActionValue.pnForLidChatAction:type_name -> WAWebProtobufSyncAction.PnForLidChatAction + 30, // 49: WAWebProtobufSyncAction.SyncActionValue.marketingMessageAction:type_name -> WAWebProtobufSyncAction.MarketingMessageAction + 62, // 50: WAWebProtobufSyncAction.SyncActionValue.marketingMessageBroadcastAction:type_name -> WAWebProtobufSyncAction.MarketingMessageBroadcastAction + 61, // 51: WAWebProtobufSyncAction.SyncActionValue.externalWebBetaAction:type_name -> WAWebProtobufSyncAction.ExternalWebBetaAction + 59, // 52: WAWebProtobufSyncAction.SyncActionValue.privacySettingRelayAllCalls:type_name -> WAWebProtobufSyncAction.PrivacySettingRelayAllCalls + 58, // 53: WAWebProtobufSyncAction.SyncActionValue.callLogAction:type_name -> WAWebProtobufSyncAction.CallLogAction + 57, // 54: WAWebProtobufSyncAction.SyncActionValue.ugcBot:type_name -> WAWebProtobufSyncAction.UGCBot + 29, // 55: WAWebProtobufSyncAction.SyncActionValue.statusPrivacy:type_name -> WAWebProtobufSyncAction.StatusPrivacyAction + 54, // 56: WAWebProtobufSyncAction.SyncActionValue.botWelcomeRequestAction:type_name -> WAWebProtobufSyncAction.BotWelcomeRequestAction + 53, // 57: WAWebProtobufSyncAction.SyncActionValue.deleteIndividualCallLog:type_name -> WAWebProtobufSyncAction.DeleteIndividualCallLogAction + 52, // 58: WAWebProtobufSyncAction.SyncActionValue.labelReorderingAction:type_name -> WAWebProtobufSyncAction.LabelReorderingAction + 51, // 59: WAWebProtobufSyncAction.SyncActionValue.paymentInfoAction:type_name -> WAWebProtobufSyncAction.PaymentInfoAction + 48, // 60: WAWebProtobufSyncAction.SyncActionValue.customPaymentMethodsAction:type_name -> WAWebProtobufSyncAction.CustomPaymentMethodsAction + 47, // 61: WAWebProtobufSyncAction.SyncActionValue.lockChatAction:type_name -> WAWebProtobufSyncAction.LockChatAction + 97, // 62: WAWebProtobufSyncAction.SyncActionValue.chatLockSettings:type_name -> WAWebProtobufsChatLockSettings.ChatLockSettings + 46, // 63: WAWebProtobufSyncAction.SyncActionValue.wamoUserIdentifierAction:type_name -> WAWebProtobufSyncAction.WamoUserIdentifierAction + 45, // 64: WAWebProtobufSyncAction.SyncActionValue.privacySettingDisableLinkPreviewsAction:type_name -> WAWebProtobufSyncAction.PrivacySettingDisableLinkPreviewsAction + 98, // 65: WAWebProtobufSyncAction.SyncActionValue.deviceCapabilities:type_name -> WAWebProtobufsDeviceCapabilities.DeviceCapabilities + 28, // 66: WAWebProtobufSyncAction.SyncActionValue.noteEditAction:type_name -> WAWebProtobufSyncAction.NoteEditAction + 43, // 67: WAWebProtobufSyncAction.SyncActionValue.favoritesAction:type_name -> WAWebProtobufSyncAction.FavoritesAction + 27, // 68: WAWebProtobufSyncAction.SyncActionValue.merchantPaymentPartnerAction:type_name -> WAWebProtobufSyncAction.MerchantPaymentPartnerAction + 26, // 69: WAWebProtobufSyncAction.SyncActionValue.waffleAccountLinkStateAction:type_name -> WAWebProtobufSyncAction.WaffleAccountLinkStateAction + 31, // 70: WAWebProtobufSyncAction.SyncActionValue.usernameChatStartMode:type_name -> WAWebProtobufSyncAction.UsernameChatStartModeAction + 25, // 71: WAWebProtobufSyncAction.SyncActionValue.notificationActivitySettingAction:type_name -> WAWebProtobufSyncAction.NotificationActivitySettingAction + 42, // 72: WAWebProtobufSyncAction.SyncActionValue.lidContactAction:type_name -> WAWebProtobufSyncAction.LidContactAction + 41, // 73: WAWebProtobufSyncAction.SyncActionValue.ctwaPerCustomerDataSharingAction:type_name -> WAWebProtobufSyncAction.CtwaPerCustomerDataSharingAction + 24, // 74: WAWebProtobufSyncAction.SyncActionValue.paymentTosAction:type_name -> WAWebProtobufSyncAction.PaymentTosAction + 44, // 75: WAWebProtobufSyncAction.SyncActionValue.privacySettingChannelsPersonalisedRecommendationAction:type_name -> WAWebProtobufSyncAction.PrivacySettingChannelsPersonalisedRecommendationAction + 40, // 76: WAWebProtobufSyncAction.SyncActionValue.businessBroadcastAssociationAction:type_name -> WAWebProtobufSyncAction.BusinessBroadcastAssociationAction + 60, // 77: WAWebProtobufSyncAction.SyncActionValue.detectedOutcomesStatusAction:type_name -> WAWebProtobufSyncAction.DetectedOutcomesStatusAction + 23, // 78: WAWebProtobufSyncAction.SyncActionValue.maibaAiFeaturesControlAction:type_name -> WAWebProtobufSyncAction.MaibaAIFeaturesControlAction + 39, // 79: WAWebProtobufSyncAction.SyncActionValue.businessBroadcastListAction:type_name -> WAWebProtobufSyncAction.BusinessBroadcastListAction + 56, // 80: WAWebProtobufSyncAction.SyncActionValue.musicUserIDAction:type_name -> WAWebProtobufSyncAction.MusicUserIdAction + 37, // 81: WAWebProtobufSyncAction.SyncActionValue.statusPostOptInNotificationPreferencesAction:type_name -> WAWebProtobufSyncAction.StatusPostOptInNotificationPreferencesAction + 22, // 82: WAWebProtobufSyncAction.SyncActionValue.avatarUpdatedAction:type_name -> WAWebProtobufSyncAction.AvatarUpdatedAction + 21, // 83: WAWebProtobufSyncAction.SyncActionValue.privateProcessingSettingAction:type_name -> WAWebProtobufSyncAction.PrivateProcessingSettingAction + 55, // 84: WAWebProtobufSyncAction.SyncActionValue.newsletterSavedInterestsAction:type_name -> WAWebProtobufSyncAction.NewsletterSavedInterestsAction + 36, // 85: WAWebProtobufSyncAction.SyncActionValue.aiThreadRenameAction:type_name -> WAWebProtobufSyncAction.AiThreadRenameAction + 20, // 86: WAWebProtobufSyncAction.SyncActionValue.interactiveMessageAction:type_name -> WAWebProtobufSyncAction.InteractiveMessageAction + 38, // 87: WAWebProtobufSyncAction.BusinessBroadcastListAction.participants:type_name -> WAWebProtobufSyncAction.BroadcastListParticipant + 96, // 88: WAWebProtobufSyncAction.FavoritesAction.favorites:type_name -> WAWebProtobufSyncAction.FavoritesAction.Favorite + 49, // 89: WAWebProtobufSyncAction.CustomPaymentMethodsAction.customPaymentMethods:type_name -> WAWebProtobufSyncAction.CustomPaymentMethod + 50, // 90: WAWebProtobufSyncAction.CustomPaymentMethod.metadata:type_name -> WAWebProtobufSyncAction.CustomPaymentMethodMetadata + 19, // 91: WAWebProtobufSyncAction.CallLogAction.callLogRecord:type_name -> WAWebProtobufSyncAction.CallLogRecord + 99, // 92: WAWebProtobufSyncAction.SyncActionMessage.key:type_name -> WACommon.MessageKey + 77, // 93: WAWebProtobufSyncAction.SyncActionMessageRange.messages:type_name -> WAWebProtobufSyncAction.SyncActionMessage + 78, // 94: WAWebProtobufSyncAction.DeleteChatAction.messageRange:type_name -> WAWebProtobufSyncAction.SyncActionMessageRange + 78, // 95: WAWebProtobufSyncAction.ClearChatAction.messageRange:type_name -> WAWebProtobufSyncAction.SyncActionMessageRange + 78, // 96: WAWebProtobufSyncAction.MarkChatAsReadAction.messageRange:type_name -> WAWebProtobufSyncAction.SyncActionMessageRange + 78, // 97: WAWebProtobufSyncAction.ArchiveChatAction.messageRange:type_name -> WAWebProtobufSyncAction.SyncActionMessageRange + 34, // 98: WAWebProtobufSyncAction.RecentEmojiWeightsAction.weights:type_name -> WAWebProtobufSyncAction.RecentEmojiWeight + 35, // 99: WAWebProtobufSyncAction.SyncActionData.value:type_name -> WAWebProtobufSyncAction.SyncActionValue + 4, // 100: WAWebProtobufSyncAction.CallLogRecord.ParticipantInfo.callResult:type_name -> WAWebProtobufSyncAction.CallLogRecord.CallResult + 101, // [101:101] is the sub-list for method output_type + 101, // [101:101] is the sub-list for method input_type + 101, // [101:101] is the sub-list for extension type_name + 101, // [101:101] is the sub-list for extension extendee + 0, // [0:101] is the sub-list for field type_name } -func init() { file_waSyncAction_WASyncAction_proto_init() } -func file_waSyncAction_WASyncAction_proto_init() { - if File_waSyncAction_WASyncAction_proto != nil { +func init() { file_waSyncAction_WAWebProtobufSyncAction_proto_init() } +func file_waSyncAction_WAWebProtobufSyncAction_proto_init() { + if File_waSyncAction_WAWebProtobufSyncAction_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_waSyncAction_WASyncAction_proto_rawDesc), len(file_waSyncAction_WASyncAction_proto_rawDesc)), - NumEnums: 16, - NumMessages: 75, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waSyncAction_WAWebProtobufSyncAction_proto_rawDesc), len(file_waSyncAction_WAWebProtobufSyncAction_proto_rawDesc)), + NumEnums: 19, + NumMessages: 78, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_waSyncAction_WASyncAction_proto_goTypes, - DependencyIndexes: file_waSyncAction_WASyncAction_proto_depIdxs, - EnumInfos: file_waSyncAction_WASyncAction_proto_enumTypes, - MessageInfos: file_waSyncAction_WASyncAction_proto_msgTypes, + GoTypes: file_waSyncAction_WAWebProtobufSyncAction_proto_goTypes, + DependencyIndexes: file_waSyncAction_WAWebProtobufSyncAction_proto_depIdxs, + EnumInfos: file_waSyncAction_WAWebProtobufSyncAction_proto_enumTypes, + MessageInfos: file_waSyncAction_WAWebProtobufSyncAction_proto_msgTypes, }.Build() - File_waSyncAction_WASyncAction_proto = out.File - file_waSyncAction_WASyncAction_proto_goTypes = nil - file_waSyncAction_WASyncAction_proto_depIdxs = nil + File_waSyncAction_WAWebProtobufSyncAction_proto = out.File + file_waSyncAction_WAWebProtobufSyncAction_proto_goTypes = nil + file_waSyncAction_WAWebProtobufSyncAction_proto_depIdxs = nil } diff --git a/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto b/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WAWebProtobufSyncAction.proto similarity index 64% rename from vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto rename to vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WAWebProtobufSyncAction.proto index bcac54fc..c482c247 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WAWebProtobufSyncAction.proto @@ -1,11 +1,96 @@ syntax = "proto2"; -package WASyncAction; +package WAWebProtobufSyncAction; option go_package = "go.mau.fi/whatsmeow/proto/waSyncAction"; -import "waChatLockSettings/WAProtobufsChatLockSettings.proto"; -import "waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto"; +import "waChatLockSettings/WAWebProtobufsChatLockSettings.proto"; +import "waDeviceCapabilities/WAWebProtobufsDeviceCapabilities.proto"; import "waCommon/WACommon.proto"; +enum CollectionName { + COLLECTION_NAME_UNKNOWN = 0; + REGULAR = 1; + REGULAR_LOW = 2; + REGULAR_HIGH = 3; + CRITICAL_BLOCK = 4; + CRITICAL_UNBLOCK_LOW = 5; +} + +enum MutationProps { + STAR_ACTION = 2; + CONTACT_ACTION = 3; + MUTE_ACTION = 4; + PIN_ACTION = 5; + SECURITY_NOTIFICATION_SETTING = 6; + PUSH_NAME_SETTING = 7; + QUICK_REPLY_ACTION = 8; + RECENT_EMOJI_WEIGHTS_ACTION = 11; + LABEL_MESSAGE_ACTION = 13; + LABEL_EDIT_ACTION = 14; + LABEL_ASSOCIATION_ACTION = 15; + LOCALE_SETTING = 16; + ARCHIVE_CHAT_ACTION = 17; + DELETE_MESSAGE_FOR_ME_ACTION = 18; + KEY_EXPIRATION = 19; + MARK_CHAT_AS_READ_ACTION = 20; + CLEAR_CHAT_ACTION = 21; + DELETE_CHAT_ACTION = 22; + UNARCHIVE_CHATS_SETTING = 23; + PRIMARY_FEATURE = 24; + ANDROID_UNSUPPORTED_ACTIONS = 26; + AGENT_ACTION = 27; + SUBSCRIPTION_ACTION = 28; + USER_STATUS_MUTE_ACTION = 29; + TIME_FORMAT_ACTION = 30; + NUX_ACTION = 31; + PRIMARY_VERSION_ACTION = 32; + STICKER_ACTION = 33; + REMOVE_RECENT_STICKER_ACTION = 34; + CHAT_ASSIGNMENT = 35; + CHAT_ASSIGNMENT_OPENED_STATUS = 36; + PN_FOR_LID_CHAT_ACTION = 37; + MARKETING_MESSAGE_ACTION = 38; + MARKETING_MESSAGE_BROADCAST_ACTION = 39; + EXTERNAL_WEB_BETA_ACTION = 40; + PRIVACY_SETTING_RELAY_ALL_CALLS = 41; + CALL_LOG_ACTION = 42; + UGC_BOT = 43; + STATUS_PRIVACY = 44; + BOT_WELCOME_REQUEST_ACTION = 45; + DELETE_INDIVIDUAL_CALL_LOG = 46; + LABEL_REORDERING_ACTION = 47; + PAYMENT_INFO_ACTION = 48; + CUSTOM_PAYMENT_METHODS_ACTION = 49; + LOCK_CHAT_ACTION = 50; + CHAT_LOCK_SETTINGS = 51; + WAMO_USER_IDENTIFIER_ACTION = 52; + PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION = 53; + DEVICE_CAPABILITIES = 54; + NOTE_EDIT_ACTION = 55; + FAVORITES_ACTION = 56; + MERCHANT_PAYMENT_PARTNER_ACTION = 57; + WAFFLE_ACCOUNT_LINK_STATE_ACTION = 58; + USERNAME_CHAT_START_MODE = 59; + NOTIFICATION_ACTIVITY_SETTING_ACTION = 60; + LID_CONTACT_ACTION = 61; + CTWA_PER_CUSTOMER_DATA_SHARING_ACTION = 62; + PAYMENT_TOS_ACTION = 63; + PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION = 64; + BUSINESS_BROADCAST_ASSOCIATION_ACTION = 65; + DETECTED_OUTCOMES_STATUS_ACTION = 66; + MAIBA_AI_FEATURES_CONTROL_ACTION = 68; + BUSINESS_BROADCAST_LIST_ACTION = 69; + MUSIC_USER_ID_ACTION = 70; + STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION = 71; + AVATAR_UPDATED_ACTION = 72; + GALAXY_FLOW_ACTION = 73; + PRIVATE_PROCESSING_SETTING_ACTION = 74; + NEWSLETTER_SAVED_INTERESTS_ACTION = 75; + AI_THREAD_RENAME_ACTION = 76; + INTERACTIVE_MESSAGE_ACTION = 77; + SHARE_OWN_PN = 10001; + BUSINESS_BROADCAST_ACTION = 10002; +} + message CallLogRecord { enum CallType { REGULAR = 0; @@ -56,6 +141,24 @@ message CallLogRecord { optional CallType callType = 15; } +message InteractiveMessageAction { + enum InteractiveMessageActionMode { + DISABLE_CTA = 1; + } + + required InteractiveMessageActionMode type = 1; +} + +message PrivateProcessingSettingAction { + enum PrivateProcessingStatus { + UNDEFINED = 0; + ENABLED = 1; + DISABLED = 2; + } + + optional PrivateProcessingStatus privateProcessingStatus = 1; +} + message AvatarUpdatedAction { enum AvatarEventType { UPDATED = 0; @@ -100,6 +203,8 @@ message NotificationActivitySettingAction { message WaffleAccountLinkStateAction { enum AccountLinkState { ACTIVE = 0; + PAUSED = 1; + UNLINKED = 2; } optional AccountLinkState linkState = 2; @@ -117,14 +222,6 @@ message MerchantPaymentPartnerAction { optional string credentialID = 4; } -message GalaxyFlowAction { - enum GalaxyFlowActionType { - LAUNCH = 1; - } - - required GalaxyFlowActionType type = 1; -} - message NoteEditAction { enum NoteType { UNSTRUCTURED = 1; @@ -143,6 +240,7 @@ message StatusPrivacyAction { ALLOW_LIST = 0; DENY_LIST = 1; CONTACTS = 2; + CLOSE_FRIENDS = 3; } optional StatusDistributionMode mode = 1; @@ -182,6 +280,8 @@ message LabelEditAction { CUSTOM = 5; COMMUNITY = 6; SERVER_ASSIGNED = 7; + DRAFTED = 8; + AI_HANDOFF = 9; } optional string name = 1; @@ -192,6 +292,7 @@ message LabelEditAction { optional bool isActive = 6; optional ListType type = 7; optional bool isImmutable = 8; + optional int64 muteEndTimeMS = 9; } message PatchDebugData { @@ -223,6 +324,99 @@ message PatchDebugData { optional bool isSenderPrimary = 11; } +/* +enum MutationName { + STAR_ACTION = star; + CONTACT_ACTION = contact; + MUTE_ACTION = mute; + PIN_ACTION = pin_v1; + SECURITY_NOTIFICATION_SETTING = setting_securityNotification; + PUSH_NAME_SETTING = setting_pushName; + QUICK_REPLY_ACTION = quick_reply; + RECENT_EMOJI_WEIGHTS_ACTION = recent_emoji_weights_action; + LABEL_MESSAGE_ACTION = label_message; + LABEL_EDIT_ACTION = label_edit; + LABEL_ASSOCIATION_ACTION = label_jid; + LOCALE_SETTING = setting_locale; + ARCHIVE_CHAT_ACTION = archive; + DELETE_MESSAGE_FOR_ME_ACTION = deleteMessageForMe; + KEY_EXPIRATION = sentinel; + MARK_CHAT_AS_READ_ACTION = markChatAsRead; + CLEAR_CHAT_ACTION = clearChat; + DELETE_CHAT_ACTION = deleteChat; + UNARCHIVE_CHATS_SETTING = setting_unarchiveChats; + PRIMARY_FEATURE = primary_feature; + ANDROID_UNSUPPORTED_ACTIONS = android_unsupported_actions; + AGENT_ACTION = deviceAgent; + SUBSCRIPTION_ACTION = subscription; + USER_STATUS_MUTE_ACTION = userStatusMute; + TIME_FORMAT_ACTION = time_format; + NUX_ACTION = nux; + PRIMARY_VERSION_ACTION = primary_version; + STICKER_ACTION = favoriteSticker; + REMOVE_RECENT_STICKER_ACTION = removeRecentSticker; + CHAT_ASSIGNMENT = agentChatAssignment; + CHAT_ASSIGNMENT_OPENED_STATUS = agentChatAssignmentOpenedStatus; + PN_FOR_LID_CHAT_ACTION = pnForLidChat; + MARKETING_MESSAGE_ACTION = marketingMessage; + MARKETING_MESSAGE_BROADCAST_ACTION = marketingMessageBroadcast; + EXTERNAL_WEB_BETA_ACTION = external_web_beta; + PRIVACY_SETTING_RELAY_ALL_CALLS = setting_relayAllCalls; + CALL_LOG_ACTION = call_log; + UGC_BOT = ugc_bot; + STATUS_PRIVACY = status_privacy; + BOT_WELCOME_REQUEST_ACTION = bot_welcome_request; + DELETE_INDIVIDUAL_CALL_LOG = delete_individual_call_log; + LABEL_REORDERING_ACTION = label_reordering; + PAYMENT_INFO_ACTION = payment_info; + CUSTOM_PAYMENT_METHODS_ACTION = custom_payment_methods; + LOCK_CHAT_ACTION = lock; + CHAT_LOCK_SETTINGS = setting_chatLock; + WAMO_USER_IDENTIFIER_ACTION = generated_wui; + PRIVACY_SETTING_DISABLE_LINK_PREVIEWS_ACTION = setting_disableLinkPreviews; + DEVICE_CAPABILITIES = device_capabilities; + NOTE_EDIT_ACTION = note_edit; + FAVORITES_ACTION = favorites; + MERCHANT_PAYMENT_PARTNER_ACTION = merchant_payment_partner; + WAFFLE_ACCOUNT_LINK_STATE_ACTION = waffle_account_link_state; + USERNAME_CHAT_START_MODE = usernameChatStartMode; + NOTIFICATION_ACTIVITY_SETTING_ACTION = notificationActivitySetting; + LID_CONTACT_ACTION = lid_contact; + CTWA_PER_CUSTOMER_DATA_SHARING_ACTION = ctwaPerCustomerDataSharing; + PAYMENT_TOS_ACTION = payment_tos; + PRIVACY_SETTING_CHANNELS_PERSONALISED_RECOMMENDATION_ACTION = setting_channels_personalised_recommendation_optout; + BUSINESS_BROADCAST_ASSOCIATION_ACTION = broadcast_jid; + DETECTED_OUTCOMES_STATUS_ACTION = detected_outcomes_status_action; + MAIBA_AI_FEATURES_CONTROL_ACTION = maiba_ai_features_control; + BUSINESS_BROADCAST_LIST_ACTION = business_broadcast_list; + MUSIC_USER_ID_ACTION = music_user_id; + STATUS_POST_OPT_IN_NOTIFICATION_PREFERENCES_ACTION = status_post_opt_in_notification_preferences_action; + AVATAR_UPDATED_ACTION = avatar_updated_action; + GALAXY_FLOW_ACTION = galaxy_flow_action; + PRIVATE_PROCESSING_SETTING_ACTION = private_processing_setting; + NEWSLETTER_SAVED_INTERESTS_ACTION = newsletter_saved_interests; + AI_THREAD_RENAME_ACTION = ai_thread_rename; + INTERACTIVE_MESSAGE_ACTION = interactive_message_action; + SHARE_OWN_PN = shareOwnPn; + BUSINESS_BROADCAST_ACTION = broadcast; +} +*/ + +/* +enum CollectionName { +} +*/ + +/* +enum CollectionNameStr { + REGULAR = regular; + REGULAR_LOW = regular_low; + REGULAR_HIGH = regular_high; + CRITICAL_BLOCK = critical_block; + CRITICAL_UNBLOCK_LOW = critical_unblock_low; +} +*/ + message RecentEmojiWeight { optional string emoji = 1; optional float weight = 2; @@ -234,7 +428,6 @@ message SyncActionValue { optional ContactAction contactAction = 3; optional MuteAction muteAction = 4; optional PinAction pinAction = 5; - optional SecurityNotificationSetting securityNotificationSetting = 6; optional PushNameSetting pushNameSetting = 7; optional QuickReplyAction quickReplyAction = 8; optional RecentEmojiWeightsAction recentEmojiWeightsAction = 11; @@ -266,6 +459,7 @@ message SyncActionValue { optional ExternalWebBetaAction externalWebBetaAction = 40; optional PrivacySettingRelayAllCalls privacySettingRelayAllCalls = 41; optional CallLogAction callLogAction = 42; + optional UGCBot ugcBot = 43; optional StatusPrivacyAction statusPrivacy = 44; optional BotWelcomeRequestAction botWelcomeRequestAction = 45; optional DeleteIndividualCallLogAction deleteIndividualCallLog = 46; @@ -273,10 +467,10 @@ message SyncActionValue { optional PaymentInfoAction paymentInfoAction = 48; optional CustomPaymentMethodsAction customPaymentMethodsAction = 49; optional LockChatAction lockChatAction = 50; - optional WAProtobufsChatLockSettings.ChatLockSettings chatLockSettings = 51; + optional WAWebProtobufsChatLockSettings.ChatLockSettings chatLockSettings = 51; optional WamoUserIdentifierAction wamoUserIdentifierAction = 52; optional PrivacySettingDisableLinkPreviewsAction privacySettingDisableLinkPreviewsAction = 53; - optional WAProtobufsDeviceCapabilities.DeviceCapabilities deviceCapabilities = 54; + optional WAWebProtobufsDeviceCapabilities.DeviceCapabilities deviceCapabilities = 54; optional NoteEditAction noteEditAction = 55; optional FavoritesAction favoritesAction = 56; optional MerchantPaymentPartnerAction merchantPaymentPartnerAction = 57; @@ -294,7 +488,14 @@ message SyncActionValue { optional MusicUserIdAction musicUserIDAction = 70; optional StatusPostOptInNotificationPreferencesAction statusPostOptInNotificationPreferencesAction = 71; optional AvatarUpdatedAction avatarUpdatedAction = 72; - optional GalaxyFlowAction galaxyFlowAction = 73; + optional PrivateProcessingSettingAction privateProcessingSettingAction = 74; + optional NewsletterSavedInterestsAction newsletterSavedInterestsAction = 75; + optional AiThreadRenameAction aiThreadRenameAction = 76; + optional InteractiveMessageAction interactiveMessageAction = 77; +} + +message AiThreadRenameAction { + optional string newTitle = 1; } message StatusPostOptInNotificationPreferencesAction { @@ -324,7 +525,6 @@ message LidContactAction { optional string fullName = 1; optional string firstName = 2; optional string username = 3; - optional bool saveOnPrimaryAddressbook = 4; } message FavoritesAction { @@ -384,8 +584,18 @@ message BotWelcomeRequestAction { optional bool isSent = 1; } +message NewsletterSavedInterestsAction { + optional string newsletterSavedInterests = 1; +} + message MusicUserIdAction { optional string musicUserID = 1; + // TODO switch to proto3 and enable this + //optional map music_user_id_map = 2; +} + +message UGCBot { + optional bytes definition = 1; } message CallLogAction { @@ -542,10 +752,6 @@ message PushNameSetting { optional string name = 1; } -message SecurityNotificationSetting { - optional bool showNotification = 1; -} - message PinAction { optional bool pinned = 1; } diff --git a/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAWebProtobufsUserPassword.pb.go similarity index 65% rename from vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go rename to vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAWebProtobufsUserPassword.pb.go index a374b13a..b40e551d 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAWebProtobufsUserPassword.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.36.10 // protoc v3.21.12 -// source: waUserPassword/WAProtobufsUserPassword.proto +// source: waUserPassword/WAWebProtobufsUserPassword.proto package waUserPassword @@ -55,11 +55,11 @@ func (x UserPassword_Transformer) String() string { } func (UserPassword_Transformer) Descriptor() protoreflect.EnumDescriptor { - return file_waUserPassword_WAProtobufsUserPassword_proto_enumTypes[0].Descriptor() + return file_waUserPassword_WAWebProtobufsUserPassword_proto_enumTypes[0].Descriptor() } func (UserPassword_Transformer) Type() protoreflect.EnumType { - return &file_waUserPassword_WAProtobufsUserPassword_proto_enumTypes[0] + return &file_waUserPassword_WAWebProtobufsUserPassword_proto_enumTypes[0] } func (x UserPassword_Transformer) Number() protoreflect.EnumNumber { @@ -78,7 +78,7 @@ func (x *UserPassword_Transformer) UnmarshalJSON(b []byte) error { // Deprecated: Use UserPassword_Transformer.Descriptor instead. func (UserPassword_Transformer) EnumDescriptor() ([]byte, []int) { - return file_waUserPassword_WAProtobufsUserPassword_proto_rawDescGZIP(), []int{0, 0} + return file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescGZIP(), []int{0, 0} } type UserPassword_Encoding int32 @@ -111,11 +111,11 @@ func (x UserPassword_Encoding) String() string { } func (UserPassword_Encoding) Descriptor() protoreflect.EnumDescriptor { - return file_waUserPassword_WAProtobufsUserPassword_proto_enumTypes[1].Descriptor() + return file_waUserPassword_WAWebProtobufsUserPassword_proto_enumTypes[1].Descriptor() } func (UserPassword_Encoding) Type() protoreflect.EnumType { - return &file_waUserPassword_WAProtobufsUserPassword_proto_enumTypes[1] + return &file_waUserPassword_WAWebProtobufsUserPassword_proto_enumTypes[1] } func (x UserPassword_Encoding) Number() protoreflect.EnumNumber { @@ -134,13 +134,13 @@ func (x *UserPassword_Encoding) UnmarshalJSON(b []byte) error { // Deprecated: Use UserPassword_Encoding.Descriptor instead. func (UserPassword_Encoding) EnumDescriptor() ([]byte, []int) { - return file_waUserPassword_WAProtobufsUserPassword_proto_rawDescGZIP(), []int{0, 1} + return file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescGZIP(), []int{0, 1} } type UserPassword struct { state protoimpl.MessageState `protogen:"open.v1"` - Encoding *UserPassword_Encoding `protobuf:"varint,1,opt,name=encoding,enum=WAProtobufsUserPassword.UserPassword_Encoding" json:"encoding,omitempty"` - Transformer *UserPassword_Transformer `protobuf:"varint,2,opt,name=transformer,enum=WAProtobufsUserPassword.UserPassword_Transformer" json:"transformer,omitempty"` + Encoding *UserPassword_Encoding `protobuf:"varint,1,opt,name=encoding,enum=WAWebProtobufsUserPassword.UserPassword_Encoding" json:"encoding,omitempty"` + Transformer *UserPassword_Transformer `protobuf:"varint,2,opt,name=transformer,enum=WAWebProtobufsUserPassword.UserPassword_Transformer" json:"transformer,omitempty"` TransformerArg []*UserPassword_TransformerArg `protobuf:"bytes,3,rep,name=transformerArg" json:"transformerArg,omitempty"` TransformedData []byte `protobuf:"bytes,4,opt,name=transformedData" json:"transformedData,omitempty"` unknownFields protoimpl.UnknownFields @@ -149,7 +149,7 @@ type UserPassword struct { func (x *UserPassword) Reset() { *x = UserPassword{} - mi := &file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes[0] + mi := &file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -161,7 +161,7 @@ func (x *UserPassword) String() string { func (*UserPassword) ProtoMessage() {} func (x *UserPassword) ProtoReflect() protoreflect.Message { - mi := &file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes[0] + mi := &file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -174,7 +174,7 @@ func (x *UserPassword) ProtoReflect() protoreflect.Message { // Deprecated: Use UserPassword.ProtoReflect.Descriptor instead. func (*UserPassword) Descriptor() ([]byte, []int) { - return file_waUserPassword_WAProtobufsUserPassword_proto_rawDescGZIP(), []int{0} + return file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescGZIP(), []int{0} } func (x *UserPassword) GetEncoding() UserPassword_Encoding { @@ -215,7 +215,7 @@ type UserPassword_TransformerArg struct { func (x *UserPassword_TransformerArg) Reset() { *x = UserPassword_TransformerArg{} - mi := &file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes[1] + mi := &file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -227,7 +227,7 @@ func (x *UserPassword_TransformerArg) String() string { func (*UserPassword_TransformerArg) ProtoMessage() {} func (x *UserPassword_TransformerArg) ProtoReflect() protoreflect.Message { - mi := &file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes[1] + mi := &file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -240,7 +240,7 @@ func (x *UserPassword_TransformerArg) ProtoReflect() protoreflect.Message { // Deprecated: Use UserPassword_TransformerArg.ProtoReflect.Descriptor instead. func (*UserPassword_TransformerArg) Descriptor() ([]byte, []int) { - return file_waUserPassword_WAProtobufsUserPassword_proto_rawDescGZIP(), []int{0, 0} + return file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescGZIP(), []int{0, 0} } func (x *UserPassword_TransformerArg) GetKey() string { @@ -270,7 +270,7 @@ type UserPassword_TransformerArg_Value struct { func (x *UserPassword_TransformerArg_Value) Reset() { *x = UserPassword_TransformerArg_Value{} - mi := &file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes[2] + mi := &file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -282,7 +282,7 @@ func (x *UserPassword_TransformerArg_Value) String() string { func (*UserPassword_TransformerArg_Value) ProtoMessage() {} func (x *UserPassword_TransformerArg_Value) ProtoReflect() protoreflect.Message { - mi := &file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes[2] + mi := &file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -295,7 +295,7 @@ func (x *UserPassword_TransformerArg_Value) ProtoReflect() protoreflect.Message // Deprecated: Use UserPassword_TransformerArg_Value.ProtoReflect.Descriptor instead. func (*UserPassword_TransformerArg_Value) Descriptor() ([]byte, []int) { - return file_waUserPassword_WAProtobufsUserPassword_proto_rawDescGZIP(), []int{0, 0, 0} + return file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescGZIP(), []int{0, 0, 0} } func (x *UserPassword_TransformerArg_Value) GetValue() isUserPassword_TransformerArg_Value_Value { @@ -340,19 +340,19 @@ func (*UserPassword_TransformerArg_Value_AsBlob) isUserPassword_TransformerArg_V func (*UserPassword_TransformerArg_Value_AsUnsignedInteger) isUserPassword_TransformerArg_Value_Value() { } -var File_waUserPassword_WAProtobufsUserPassword_proto protoreflect.FileDescriptor +var File_waUserPassword_WAWebProtobufsUserPassword_proto protoreflect.FileDescriptor -const file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc = "" + +const file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDesc = "" + "\n" + - ",waUserPassword/WAProtobufsUserPassword.proto\x12\x17WAProtobufsUserPassword\"\xfa\x04\n" + - "\fUserPassword\x12J\n" + - "\bencoding\x18\x01 \x01(\x0e2..WAProtobufsUserPassword.UserPassword.EncodingR\bencoding\x12S\n" + - "\vtransformer\x18\x02 \x01(\x0e21.WAProtobufsUserPassword.UserPassword.TransformerR\vtransformer\x12\\\n" + - "\x0etransformerArg\x18\x03 \x03(\v24.WAProtobufsUserPassword.UserPassword.TransformerArgR\x0etransformerArg\x12(\n" + - "\x0ftransformedData\x18\x04 \x01(\fR\x0ftransformedData\x1a\xd0\x01\n" + + "/waUserPassword/WAWebProtobufsUserPassword.proto\x12\x1aWAWebProtobufsUserPassword\"\x86\x05\n" + + "\fUserPassword\x12M\n" + + "\bencoding\x18\x01 \x01(\x0e21.WAWebProtobufsUserPassword.UserPassword.EncodingR\bencoding\x12V\n" + + "\vtransformer\x18\x02 \x01(\x0e24.WAWebProtobufsUserPassword.UserPassword.TransformerR\vtransformer\x12_\n" + + "\x0etransformerArg\x18\x03 \x03(\v27.WAWebProtobufsUserPassword.UserPassword.TransformerArgR\x0etransformerArg\x12(\n" + + "\x0ftransformedData\x18\x04 \x01(\fR\x0ftransformedData\x1a\xd3\x01\n" + "\x0eTransformerArg\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12P\n" + - "\x05value\x18\x02 \x01(\v2:.WAProtobufsUserPassword.UserPassword.TransformerArg.ValueR\x05value\x1aZ\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12S\n" + + "\x05value\x18\x02 \x01(\v2=.WAWebProtobufsUserPassword.UserPassword.TransformerArg.ValueR\x05value\x1aZ\n" + "\x05Value\x12\x18\n" + "\x06asBlob\x18\x01 \x01(\fH\x00R\x06asBlob\x12.\n" + "\x11asUnsignedInteger\x18\x02 \x01(\rH\x00R\x11asUnsignedIntegerB\a\n" + @@ -366,31 +366,31 @@ const file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc = "" + "\vUTF8_BROKEN\x10\x01B*Z(go.mau.fi/whatsmeow/proto/waUserPassword" var ( - file_waUserPassword_WAProtobufsUserPassword_proto_rawDescOnce sync.Once - file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData []byte + file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescOnce sync.Once + file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescData []byte ) -func file_waUserPassword_WAProtobufsUserPassword_proto_rawDescGZIP() []byte { - file_waUserPassword_WAProtobufsUserPassword_proto_rawDescOnce.Do(func() { - file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc), len(file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc))) +func file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescGZIP() []byte { + file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescOnce.Do(func() { + file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDesc), len(file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDesc))) }) - return file_waUserPassword_WAProtobufsUserPassword_proto_rawDescData + return file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDescData } -var file_waUserPassword_WAProtobufsUserPassword_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_waUserPassword_WAProtobufsUserPassword_proto_goTypes = []any{ - (UserPassword_Transformer)(0), // 0: WAProtobufsUserPassword.UserPassword.Transformer - (UserPassword_Encoding)(0), // 1: WAProtobufsUserPassword.UserPassword.Encoding - (*UserPassword)(nil), // 2: WAProtobufsUserPassword.UserPassword - (*UserPassword_TransformerArg)(nil), // 3: WAProtobufsUserPassword.UserPassword.TransformerArg - (*UserPassword_TransformerArg_Value)(nil), // 4: WAProtobufsUserPassword.UserPassword.TransformerArg.Value +var file_waUserPassword_WAWebProtobufsUserPassword_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_waUserPassword_WAWebProtobufsUserPassword_proto_goTypes = []any{ + (UserPassword_Transformer)(0), // 0: WAWebProtobufsUserPassword.UserPassword.Transformer + (UserPassword_Encoding)(0), // 1: WAWebProtobufsUserPassword.UserPassword.Encoding + (*UserPassword)(nil), // 2: WAWebProtobufsUserPassword.UserPassword + (*UserPassword_TransformerArg)(nil), // 3: WAWebProtobufsUserPassword.UserPassword.TransformerArg + (*UserPassword_TransformerArg_Value)(nil), // 4: WAWebProtobufsUserPassword.UserPassword.TransformerArg.Value } -var file_waUserPassword_WAProtobufsUserPassword_proto_depIdxs = []int32{ - 1, // 0: WAProtobufsUserPassword.UserPassword.encoding:type_name -> WAProtobufsUserPassword.UserPassword.Encoding - 0, // 1: WAProtobufsUserPassword.UserPassword.transformer:type_name -> WAProtobufsUserPassword.UserPassword.Transformer - 3, // 2: WAProtobufsUserPassword.UserPassword.transformerArg:type_name -> WAProtobufsUserPassword.UserPassword.TransformerArg - 4, // 3: WAProtobufsUserPassword.UserPassword.TransformerArg.value:type_name -> WAProtobufsUserPassword.UserPassword.TransformerArg.Value +var file_waUserPassword_WAWebProtobufsUserPassword_proto_depIdxs = []int32{ + 1, // 0: WAWebProtobufsUserPassword.UserPassword.encoding:type_name -> WAWebProtobufsUserPassword.UserPassword.Encoding + 0, // 1: WAWebProtobufsUserPassword.UserPassword.transformer:type_name -> WAWebProtobufsUserPassword.UserPassword.Transformer + 3, // 2: WAWebProtobufsUserPassword.UserPassword.transformerArg:type_name -> WAWebProtobufsUserPassword.UserPassword.TransformerArg + 4, // 3: WAWebProtobufsUserPassword.UserPassword.TransformerArg.value:type_name -> WAWebProtobufsUserPassword.UserPassword.TransformerArg.Value 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 @@ -398,12 +398,12 @@ var file_waUserPassword_WAProtobufsUserPassword_proto_depIdxs = []int32{ 0, // [0:4] is the sub-list for field type_name } -func init() { file_waUserPassword_WAProtobufsUserPassword_proto_init() } -func file_waUserPassword_WAProtobufsUserPassword_proto_init() { - if File_waUserPassword_WAProtobufsUserPassword_proto != nil { +func init() { file_waUserPassword_WAWebProtobufsUserPassword_proto_init() } +func file_waUserPassword_WAWebProtobufsUserPassword_proto_init() { + if File_waUserPassword_WAWebProtobufsUserPassword_proto != nil { return } - file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes[2].OneofWrappers = []any{ + file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes[2].OneofWrappers = []any{ (*UserPassword_TransformerArg_Value_AsBlob)(nil), (*UserPassword_TransformerArg_Value_AsUnsignedInteger)(nil), } @@ -411,18 +411,18 @@ func file_waUserPassword_WAProtobufsUserPassword_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc), len(file_waUserPassword_WAProtobufsUserPassword_proto_rawDesc)), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDesc), len(file_waUserPassword_WAWebProtobufsUserPassword_proto_rawDesc)), NumEnums: 2, NumMessages: 3, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_waUserPassword_WAProtobufsUserPassword_proto_goTypes, - DependencyIndexes: file_waUserPassword_WAProtobufsUserPassword_proto_depIdxs, - EnumInfos: file_waUserPassword_WAProtobufsUserPassword_proto_enumTypes, - MessageInfos: file_waUserPassword_WAProtobufsUserPassword_proto_msgTypes, + GoTypes: file_waUserPassword_WAWebProtobufsUserPassword_proto_goTypes, + DependencyIndexes: file_waUserPassword_WAWebProtobufsUserPassword_proto_depIdxs, + EnumInfos: file_waUserPassword_WAWebProtobufsUserPassword_proto_enumTypes, + MessageInfos: file_waUserPassword_WAWebProtobufsUserPassword_proto_msgTypes, }.Build() - File_waUserPassword_WAProtobufsUserPassword_proto = out.File - file_waUserPassword_WAProtobufsUserPassword_proto_goTypes = nil - file_waUserPassword_WAProtobufsUserPassword_proto_depIdxs = nil + File_waUserPassword_WAWebProtobufsUserPassword_proto = out.File + file_waUserPassword_WAWebProtobufsUserPassword_proto_goTypes = nil + file_waUserPassword_WAWebProtobufsUserPassword_proto_depIdxs = nil } diff --git a/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.proto b/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAWebProtobufsUserPassword.proto similarity index 94% rename from vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.proto rename to vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAWebProtobufsUserPassword.proto index db1c4f19..e445370b 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAWebProtobufsUserPassword.proto @@ -1,5 +1,5 @@ syntax = "proto2"; -package WAProtobufsUserPassword; +package WAWebProtobufsUserPassword; option go_package = "go.mau.fi/whatsmeow/proto/waUserPassword"; message UserPassword { diff --git a/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go index 76bcb96c..8059875a 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go @@ -727,6 +727,7 @@ const ( ClientPayload_UserAgent_TEST ClientPayload_UserAgent_Platform = 34 ClientPayload_UserAgent_SMART_GLASSES ClientPayload_UserAgent_Platform = 35 ClientPayload_UserAgent_BLUE_VR ClientPayload_UserAgent_Platform = 36 + ClientPayload_UserAgent_AR_WRIST ClientPayload_UserAgent_Platform = 37 ) // Enum value maps for ClientPayload_UserAgent_Platform. @@ -769,6 +770,7 @@ var ( 34: "TEST", 35: "SMART_GLASSES", 36: "BLUE_VR", + 37: "AR_WRIST", } ClientPayload_UserAgent_Platform_value = map[string]int32{ "ANDROID": 0, @@ -808,6 +810,7 @@ var ( "TEST": 34, "SMART_GLASSES": 35, "BLUE_VR": 36, + "AR_WRIST": 37, } ) @@ -2068,7 +2071,7 @@ var File_waWa6_WAWebProtobufsWa6_proto protoreflect.FileDescriptor const file_waWa6_WAWebProtobufsWa6_proto_rawDesc = "" + "\n" + - "\x1dwaWa6/WAWebProtobufsWa6.proto\x12\x11WAWebProtobufsWa6\"\xd8*\n" + + "\x1dwaWa6/WAWebProtobufsWa6.proto\x12\x11WAWebProtobufsWa6\"\xe6*\n" + "\rClientPayload\x12\x1a\n" + "\busername\x18\x01 \x01(\x04R\busername\x12\x18\n" + "\apassive\x18\x03 \x01(\bR\apassive\x12H\n" + @@ -2145,7 +2148,7 @@ const file_waWa6_WAWebProtobufsWa6_proto_rawDesc = "" + "\x06DARWIN\x10\x03\x12\t\n" + "\x05WIN32\x10\x04\x12\x0e\n" + "\n" + - "WIN_HYBRID\x10\x05\x1a\xcf\f\n" + + "WIN_HYBRID\x10\x05\x1a\xdd\f\n" + "\tUserAgent\x12O\n" + "\bplatform\x18\x01 \x01(\x0e23.WAWebProtobufsWa6.ClientPayload.UserAgent.PlatformR\bplatform\x12U\n" + "\n" + @@ -2189,7 +2192,7 @@ const file_waWa6_WAWebProtobufsWa6_proto_rawDesc = "" + "\aRELEASE\x10\x00\x12\b\n" + "\x04BETA\x10\x01\x12\t\n" + "\x05ALPHA\x10\x02\x12\t\n" + - "\x05DEBUG\x10\x03\"\x97\x04\n" + + "\x05DEBUG\x10\x03\"\xa5\x04\n" + "\bPlatform\x12\v\n" + "\aANDROID\x10\x00\x12\a\n" + "\x03IOS\x10\x01\x12\x11\n" + @@ -2233,7 +2236,8 @@ const file_waWa6_WAWebProtobufsWa6_proto_rawDesc = "" + "\x04IPAD\x10!\x12\b\n" + "\x04TEST\x10\"\x12\x11\n" + "\rSMART_GLASSES\x10#\x12\v\n" + - "\aBLUE_VR\x10$\x1aq\n" + + "\aBLUE_VR\x10$\x12\f\n" + + "\bAR_WRIST\x10%\x1aq\n" + "\vInteropData\x12\x1c\n" + "\taccountID\x18\x01 \x01(\x04R\taccountID\x12\x14\n" + "\x05token\x18\x02 \x01(\fR\x05token\x12.\n" + diff --git a/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto b/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto index 3ecd0d4a..6d74a45c 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto @@ -153,6 +153,7 @@ message ClientPayload { TEST = 34; SMART_GLASSES = 35; BLUE_VR = 36; + AR_WRIST = 37; } message AppVersion { diff --git a/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go b/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go index 11d50b67..2c22c236 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go +++ b/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go @@ -311,6 +311,8 @@ const ( WebMessageInfo_BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE WebMessageInfo_StubType = 218 WebMessageInfo_PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE WebMessageInfo_StubType = 219 WebMessageInfo_QUARANTINED_MESSAGE WebMessageInfo_StubType = 220 + WebMessageInfo_GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE WebMessageInfo_StubType = 221 + WebMessageInfo_GROUP_OPEN_BOT_ADDED WebMessageInfo_StubType = 222 ) // Enum value maps for WebMessageInfo_StubType. @@ -537,6 +539,8 @@ var ( 218: "BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE", 219: "PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE", 220: "QUARANTINED_MESSAGE", + 221: "GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE", + 222: "GROUP_OPEN_BOT_ADDED", } WebMessageInfo_StubType_value = map[string]int32{ "UNKNOWN": 0, @@ -760,6 +764,8 @@ var ( "BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE": 218, "PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE": 219, "QUARANTINED_MESSAGE": 220, + "GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE": 221, + "GROUP_OPEN_BOT_ADDED": 222, } ) @@ -1345,10 +1351,11 @@ func (MessageAddOn_MessageAddOnType) EnumDescriptor() ([]byte, []int) { type GroupHistoryBundleInfo_ProcessState int32 const ( - GroupHistoryBundleInfo_NOT_INJECTED GroupHistoryBundleInfo_ProcessState = 0 - GroupHistoryBundleInfo_INJECTED GroupHistoryBundleInfo_ProcessState = 1 - GroupHistoryBundleInfo_INJECTED_PARTIAL GroupHistoryBundleInfo_ProcessState = 2 - GroupHistoryBundleInfo_INJECTION_FAILED GroupHistoryBundleInfo_ProcessState = 3 + GroupHistoryBundleInfo_NOT_INJECTED GroupHistoryBundleInfo_ProcessState = 0 + GroupHistoryBundleInfo_INJECTED GroupHistoryBundleInfo_ProcessState = 1 + GroupHistoryBundleInfo_INJECTED_PARTIAL GroupHistoryBundleInfo_ProcessState = 2 + GroupHistoryBundleInfo_INJECTION_FAILED GroupHistoryBundleInfo_ProcessState = 3 + GroupHistoryBundleInfo_INJECTION_FAILED_NO_RETRY GroupHistoryBundleInfo_ProcessState = 4 ) // Enum value maps for GroupHistoryBundleInfo_ProcessState. @@ -1358,12 +1365,14 @@ var ( 1: "INJECTED", 2: "INJECTED_PARTIAL", 3: "INJECTION_FAILED", + 4: "INJECTION_FAILED_NO_RETRY", } GroupHistoryBundleInfo_ProcessState_value = map[string]int32{ - "NOT_INJECTED": 0, - "INJECTED": 1, - "INJECTED_PARTIAL": 2, - "INJECTION_FAILED": 3, + "NOT_INJECTED": 0, + "INJECTED": 1, + "INJECTED_PARTIAL": 2, + "INJECTION_FAILED": 3, + "INJECTION_FAILED_NO_RETRY": 4, } ) @@ -4008,7 +4017,7 @@ var File_waWeb_WAWebProtobufsWeb_proto protoreflect.FileDescriptor const file_waWeb_WAWebProtobufsWeb_proto_rawDesc = "" + "\n" + - "\x1dwaWeb/WAWebProtobufsWeb.proto\x12\x11WAWebProtobufsWeb\x1a\x1dwaE2E/WAWebProtobufsE2E.proto\x1a\x17waCommon/WACommon.proto\"\xe1Z\n" + + "\x1dwaWeb/WAWebProtobufsWeb.proto\x12\x11WAWebProtobufsWeb\x1a\x1dwaE2E/WAWebProtobufsE2E.proto\x1a\x17waCommon/WACommon.proto\"\xa8[\n" + "\x0eWebMessageInfo\x12&\n" + "\x03key\x18\x01 \x02(\v2\x14.WACommon.MessageKeyR\x03key\x124\n" + "\amessage\x18\x02 \x01(\v2\x1a.WAWebProtobufsE2E.MessageR\amessage\x12*\n" + @@ -4085,7 +4094,7 @@ const file_waWeb_WAWebProtobufsWeb_proto_rawDesc = "" + "\x02FB\x10\x02\x12\a\n" + "\x03BSP\x10\x01\x12\x0e\n" + "\n" + - "BSP_AND_FB\x10\x03\"\xef:\n" + + "BSP_AND_FB\x10\x03\"\xb6;\n" + "\bStubType\x12\v\n" + "\aUNKNOWN\x10\x00\x12\n" + "\n" + @@ -4311,7 +4320,9 @@ const file_waWeb_WAWebProtobufsWeb_proto_rawDesc = "" + "\x16GROUP_MEMBER_LINK_MODE\x10\xd9\x01\x122\n" + "-BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE\x10\xda\x01\x120\n" + "+PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE\x10\xdb\x01\x12\x18\n" + - "\x13QUARANTINED_MESSAGE\x10\xdc\x01\"X\n" + + "\x13QUARANTINED_MESSAGE\x10\xdc\x01\x12*\n" + + "%GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE\x10\xdd\x01\x12\x19\n" + + "\x14GROUP_OPEN_BOT_ADDED\x10\xde\x01\"X\n" + "\x06Status\x12\t\n" + "\x05ERROR\x10\x00\x12\v\n" + "\aPENDING\x10\x01\x12\x0e\n" + @@ -4474,15 +4485,16 @@ const file_waWeb_WAWebProtobufsWeb_proto_rawDesc = "" + "\bREACTION\x10\x01\x12\x12\n" + "\x0eEVENT_RESPONSE\x10\x02\x12\x0f\n" + "\vPOLL_UPDATE\x10\x03\x12\x0f\n" + - "\vPIN_IN_CHAT\x10\x04\"\xc1\x02\n" + + "\vPIN_IN_CHAT\x10\x04\"\xe0\x02\n" + "\x16GroupHistoryBundleInfo\x12o\n" + "\x1edeprecatedMessageHistoryBundle\x18\x01 \x01(\v2'.WAWebProtobufsE2E.MessageHistoryBundleR\x1edeprecatedMessageHistoryBundle\x12Z\n" + - "\fprocessState\x18\x02 \x01(\x0e26.WAWebProtobufsWeb.GroupHistoryBundleInfo.ProcessStateR\fprocessState\"Z\n" + + "\fprocessState\x18\x02 \x01(\x0e26.WAWebProtobufsWeb.GroupHistoryBundleInfo.ProcessStateR\fprocessState\"y\n" + "\fProcessState\x12\x10\n" + "\fNOT_INJECTED\x10\x00\x12\f\n" + "\bINJECTED\x10\x01\x12\x14\n" + "\x10INJECTED_PARTIAL\x10\x02\x12\x14\n" + - "\x10INJECTION_FAILED\x10\x03\"s\n" + + "\x10INJECTION_FAILED\x10\x03\x12\x1d\n" + + "\x19INJECTION_FAILED_NO_RETRY\x10\x04\"s\n" + "\x0fCommentMetadata\x12@\n" + "\x10commentParentKey\x18\x01 \x01(\v2\x14.WACommon.MessageKeyR\x10commentParentKey\x12\x1e\n" + "\n" + diff --git a/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto b/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto index 34a645c5..c1bb09d0 100644 --- a/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto +++ b/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto @@ -235,6 +235,8 @@ message WebMessageInfo { BIZ_AUTOMATICALLY_LABELED_CHAT_SYSTEM_MESSAGE = 218; PHONE_NUMBER_HIDING_CHAT_DEPRECATED_MESSAGE = 219; QUARANTINED_MESSAGE = 220; + GROUP_MEMBER_SHARE_GROUP_HISTORY_MODE = 221; + GROUP_OPEN_BOT_ADDED = 222; } enum Status { @@ -479,6 +481,7 @@ message GroupHistoryBundleInfo { INJECTED = 1; INJECTED_PARTIAL = 2; INJECTION_FAILED = 3; + INJECTION_FAILED_NO_RETRY = 4; } optional WAWebProtobufsE2E.MessageHistoryBundle deprecatedMessageHistoryBundle = 1; diff --git a/vendor/go.mau.fi/whatsmeow/proto/waWeb/legacy.go b/vendor/go.mau.fi/whatsmeow/proto/waWeb/legacy.go deleted file mode 100644 index 468cc8e4..00000000 --- a/vendor/go.mau.fi/whatsmeow/proto/waWeb/legacy.go +++ /dev/null @@ -1 +0,0 @@ -package waWeb diff --git a/vendor/go.mau.fi/whatsmeow/send.go b/vendor/go.mau.fi/whatsmeow/send.go index 46c2b88b..7dc126a8 100644 --- a/vendor/go.mau.fi/whatsmeow/send.go +++ b/vendor/go.mau.fi/whatsmeow/send.go @@ -1133,7 +1133,7 @@ func (cli *Client) prepareMessageNode( extraParams nodeExtraParams, ) (*waBinary.Node, []types.JID, error) { start := time.Now() - allDevices, err := cli.GetUserDevicesContext(ctx, participants) + allDevices, err := cli.GetUserDevices(ctx, participants) timings.GetDevices = time.Since(start) if err != nil { return nil, nil, fmt.Errorf("failed to get device list: %w", err) diff --git a/vendor/go.mau.fi/whatsmeow/sendfb.go b/vendor/go.mau.fi/whatsmeow/sendfb.go index b1c89ab6..573ce29b 100644 --- a/vendor/go.mau.fi/whatsmeow/sendfb.go +++ b/vendor/go.mau.fi/whatsmeow/sendfb.go @@ -439,7 +439,7 @@ func (cli *Client) prepareMessageNodeV3( timings *MessageDebugTimings, ) (*waBinary.Node, []types.JID, error) { start := time.Now() - allDevices, err := cli.GetUserDevicesContext(ctx, participants) + allDevices, err := cli.GetUserDevices(ctx, participants) timings.GetDevices = time.Since(start) if err != nil { return nil, nil, fmt.Errorf("failed to get device list: %w", err) diff --git a/vendor/go.mau.fi/whatsmeow/store/clientpayload.go b/vendor/go.mau.fi/whatsmeow/store/clientpayload.go index cdbd10b9..8eac58ad 100644 --- a/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +++ b/vendor/go.mau.fi/whatsmeow/store/clientpayload.go @@ -76,7 +76,7 @@ func (vc WAVersionContainer) ProtoAppVersion() *waWa6.ClientPayload_UserAgent_Ap } // waVersion is the WhatsApp web client version -var waVersion = WAVersionContainer{2, 3000, 1028708243} +var waVersion = WAVersionContainer{2, 3000, 1029948479} // waVersionHash is the md5 hash of a dot-separated waVersion var waVersionHash [16]byte @@ -109,13 +109,13 @@ var BaseClientPayload = &waWa6.ClientPayload{ AppVersion: waVersion.ProtoAppVersion(), Mcc: proto.String("000"), Mnc: proto.String("000"), - OsVersion: proto.String("0.1.0"), + OsVersion: proto.String("0.1"), Manufacturer: proto.String(""), Device: proto.String("Desktop"), - OsBuildNumber: proto.String("0.1.0"), + OsBuildNumber: proto.String("0.1"), LocaleLanguageIso6391: proto.String("en"), - LocaleCountryIso31661Alpha2: proto.String("en"), + LocaleCountryIso31661Alpha2: proto.String("US"), }, WebInfo: &waWa6.ClientPayload_WebInfo{ WebSubPlatform: waWa6.ClientPayload_WebInfo_WEB_BROWSER.Enum(), @@ -131,6 +131,25 @@ var DeviceProps = &waCompanionReg.DeviceProps{ Secondary: proto.Uint32(1), Tertiary: proto.Uint32(0), }, + HistorySyncConfig: &waCompanionReg.DeviceProps_HistorySyncConfig{ + StorageQuotaMb: proto.Uint32(10240), + InlineInitialPayloadInE2EeMsg: proto.Bool(true), + RecentSyncDaysLimit: nil, + SupportCallLogHistory: proto.Bool(false), + SupportBotUserAgentChatHistory: proto.Bool(true), + SupportCagReactionsAndPolls: proto.Bool(true), + SupportBizHostedMsg: proto.Bool(true), + SupportRecentSyncChunkMessageCountTuning: proto.Bool(true), + SupportHostedGroupMsg: proto.Bool(true), + SupportFbidBotChatHistory: proto.Bool(true), + SupportAddOnHistorySyncMigration: nil, + SupportMessageAssociation: proto.Bool(true), + SupportGroupHistory: proto.Bool(false), + OnDemandReady: nil, + SupportGuestChat: nil, + CompleteOnDemandReady: nil, + ThumbnailSyncDaysLimit: nil, + }, PlatformType: waCompanionReg.DeviceProps_UNKNOWN.Enum(), RequireFullSync: proto.Bool(false), } @@ -172,6 +191,7 @@ func (device *Device) getLoginPayload() *waWa6.ClientPayload { payload.Device = proto.Uint32(uint32(device.ID.Device)) payload.Passive = proto.Bool(true) payload.Pull = proto.Bool(true) + payload.LidDbMigrated = proto.Bool(true) return payload } diff --git a/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go b/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go index 50f2d937..59d990b1 100644 --- a/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +++ b/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go @@ -864,14 +864,14 @@ const ( WHEN $2 LIKE '%@lid' THEN (SELECT pn || '@s.whatsapp.net' FROM whatsmeow_lid_map WHERE lid=replace($2, '@lid', '')) WHEN $2 LIKE '%@s.whatsapp.net' - THEN (SELECT lid || '@lid' FROM whatsmeow_lid_map WHERE lid=replace($2, '@s.whatsapp.net', '')) + THEN (SELECT lid || '@lid' FROM whatsmeow_lid_map WHERE pn=replace($2, '@s.whatsapp.net', '')) END )) AND message_id=$4 AND (sender_jid=$3 OR sender_jid=( CASE WHEN $3 LIKE '%@lid' THEN (SELECT pn || '@s.whatsapp.net' FROM whatsmeow_lid_map WHERE lid=replace($3, '@lid', '')) WHEN $3 LIKE '%@s.whatsapp.net' - THEN (SELECT lid || '@lid' FROM whatsmeow_lid_map WHERE lid=replace($3, '@s.whatsapp.net', '')) + THEN (SELECT lid || '@lid' FROM whatsmeow_lid_map WHERE pn=replace($3, '@s.whatsapp.net', '')) END )) ` @@ -911,7 +911,18 @@ const ( VALUES ($1, $2, $3, $4) ON CONFLICT (our_jid, their_jid) DO UPDATE SET token=EXCLUDED.token, timestamp=EXCLUDED.timestamp ` - getPrivacyToken = `SELECT token, timestamp FROM whatsmeow_privacy_tokens WHERE our_jid=$1 AND their_jid=$2` + getPrivacyToken = ` + SELECT token, timestamp FROM whatsmeow_privacy_tokens WHERE our_jid=$1 AND (their_jid=$2 OR their_jid=( + CASE + WHEN $2 LIKE '%@lid' + THEN (SELECT pn || '@s.whatsapp.net' FROM whatsmeow_lid_map WHERE lid=replace($2, '@lid', '')) + WHEN $2 LIKE '%@s.whatsapp.net' + THEN (SELECT lid || '@lid' FROM whatsmeow_lid_map WHERE pn=replace($2, '@s.whatsapp.net', '')) + ELSE $2 + END + )) + ORDER BY timestamp DESC LIMIT 1 + ` ) func (s *SQLStore) PutPrivacyTokens(ctx context.Context, tokens ...store.PrivacyToken) error { diff --git a/vendor/go.mau.fi/whatsmeow/user.go b/vendor/go.mau.fi/whatsmeow/user.go index 8e5bd1f3..deda52bf 100644 --- a/vendor/go.mau.fi/whatsmeow/user.go +++ b/vendor/go.mau.fi/whatsmeow/user.go @@ -515,6 +515,9 @@ type GetProfilePictureParams struct { // // To get a community photo, you should pass `IsCommunity: true`, as otherwise you may get a 401 error. func (cli *Client) GetProfilePictureInfo(ctx context.Context, jid types.JID, params *GetProfilePictureParams) (*types.ProfilePictureInfo, error) { + if cli == nil { + return nil, ErrClientIsNil + } attrs := waBinary.Attrs{ "query": "url", } diff --git a/vendor/golang.org/x/crypto/argon2/argon2.go b/vendor/golang.org/x/crypto/argon2/argon2.go index 29f0a2de..2b65ec91 100644 --- a/vendor/golang.org/x/crypto/argon2/argon2.go +++ b/vendor/golang.org/x/crypto/argon2/argon2.go @@ -6,7 +6,7 @@ // Argon2 was selected as the winner of the Password Hashing Competition and can // be used to derive cryptographic keys from passwords. // -// For a detailed specification of Argon2 see [1]. +// For a detailed specification of Argon2 see [argon2-specs.pdf]. // // If you aren't sure which function you need, use Argon2id (IDKey) and // the parameter recommendations for your scenario. @@ -17,7 +17,7 @@ // It uses data-independent memory access, which is preferred for password // hashing and password-based key derivation. Argon2i requires more passes over // memory than Argon2id to protect from trade-off attacks. The recommended -// parameters (taken from [2]) for non-interactive operations are time=3 and to +// parameters (taken from [RFC 9106 Section 7.3]) for non-interactive operations are time=3 and to // use the maximum available memory. // // # Argon2id @@ -27,11 +27,11 @@ // half of the first iteration over the memory and data-dependent memory access // for the rest. Argon2id is side-channel resistant and provides better brute- // force cost savings due to time-memory tradeoffs than Argon2i. The recommended -// parameters for non-interactive operations (taken from [2]) are time=1 and to +// parameters for non-interactive operations (taken from [RFC 9106 Section 7.3]) are time=1 and to // use the maximum available memory. // -// [1] https://github.com/P-H-C/phc-winner-argon2/blob/master/argon2-specs.pdf -// [2] https://tools.ietf.org/html/draft-irtf-cfrg-argon2-03#section-9.3 +// [argon2-specs.pdf]: https://github.com/P-H-C/phc-winner-argon2/blob/master/argon2-specs.pdf +// [RFC 9106 Section 7.3]: https://www.rfc-editor.org/rfc/rfc9106.html#section-7.3 package argon2 import ( @@ -59,7 +59,7 @@ const ( // // key := argon2.Key([]byte("some password"), salt, 3, 32*1024, 4, 32) // -// The draft RFC recommends[2] time=3, and memory=32*1024 is a sensible number. +// [RFC 9106 Section 7.3] recommends time=3, and memory=32*1024 as a sensible number. // If using that amount of memory (32 MB) is not possible in some contexts then // the time parameter can be increased to compensate. // @@ -69,6 +69,8 @@ const ( // adjusted to the number of available CPUs. The cost parameters should be // increased as memory latency and CPU parallelism increases. Remember to get a // good random salt. +// +// [RFC 9106 Section 7.3]: https://www.rfc-editor.org/rfc/rfc9106.html#section-7.3 func Key(password, salt []byte, time, memory uint32, threads uint8, keyLen uint32) []byte { return deriveKey(argon2i, password, salt, nil, nil, time, memory, threads, keyLen) } @@ -83,7 +85,7 @@ func Key(password, salt []byte, time, memory uint32, threads uint8, keyLen uint3 // // key := argon2.IDKey([]byte("some password"), salt, 1, 64*1024, 4, 32) // -// The draft RFC recommends[2] time=1, and memory=64*1024 is a sensible number. +// [RFC 9106 Section 7.3] recommends time=1, and memory=64*1024 as a sensible number. // If using that amount of memory (64 MB) is not possible in some contexts then // the time parameter can be increased to compensate. // @@ -93,6 +95,8 @@ func Key(password, salt []byte, time, memory uint32, threads uint8, keyLen uint3 // adjusted to the numbers of available CPUs. The cost parameters should be // increased as memory latency and CPU parallelism increases. Remember to get a // good random salt. +// +// [RFC 9106 Section 7.3]: https://www.rfc-editor.org/rfc/rfc9106.html#section-7.3 func IDKey(password, salt []byte, time, memory uint32, threads uint8, keyLen uint32) []byte { return deriveKey(argon2id, password, salt, nil, nil, time, memory, threads, keyLen) } diff --git a/vendor/golang.org/x/mod/module/module.go b/vendor/golang.org/x/mod/module/module.go index 16e1aa7a..9d3955bd 100644 --- a/vendor/golang.org/x/mod/module/module.go +++ b/vendor/golang.org/x/mod/module/module.go @@ -261,7 +261,7 @@ func modPathOK(r rune) bool { // importPathOK reports whether r can appear in a package import path element. // -// Import paths are intermediate between module paths and file paths: we allow +// Import paths are intermediate between module paths and file paths: we // disallow characters that would be confusing or ambiguous as arguments to // 'go get' (such as '@' and ' ' ), but allow certain characters that are // otherwise-unambiguous on the command line and historically used for some diff --git a/vendor/golang.org/x/mod/semver/semver.go b/vendor/golang.org/x/mod/semver/semver.go index 628f8fd6..824b282c 100644 --- a/vendor/golang.org/x/mod/semver/semver.go +++ b/vendor/golang.org/x/mod/semver/semver.go @@ -45,8 +45,8 @@ func IsValid(v string) bool { // Canonical returns the canonical formatting of the semantic version v. // It fills in any missing .MINOR or .PATCH and discards build metadata. -// Two semantic versions compare equal only if their canonical formattings -// are identical strings. +// Two semantic versions compare equal only if their canonical formatting +// is an identical string. // The canonical invalid semantic version is the empty string. func Canonical(v string) string { p, ok := parse(v) diff --git a/vendor/golang.org/x/net/context/context.go b/vendor/golang.org/x/net/context/context.go index d3cb9517..24cea688 100644 --- a/vendor/golang.org/x/net/context/context.go +++ b/vendor/golang.org/x/net/context/context.go @@ -2,42 +2,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Package context defines the Context type, which carries deadlines, -// cancellation signals, and other request-scoped values across API boundaries -// and between processes. -// As of Go 1.7 this package is available in the standard library under the -// name [context]. +// Package context has been superseded by the standard library [context] package. // -// Incoming requests to a server should create a [Context], and outgoing -// calls to servers should accept a Context. The chain of function -// calls between them must propagate the Context, optionally replacing -// it with a derived Context created using [WithCancel], [WithDeadline], -// [WithTimeout], or [WithValue]. -// -// Programs that use Contexts should follow these rules to keep interfaces -// consistent across packages and enable static analysis tools to check context -// propagation: -// -// Do not store Contexts inside a struct type; instead, pass a Context -// explicitly to each function that needs it. This is discussed further in -// https://go.dev/blog/context-and-structs. The Context should be the first -// parameter, typically named ctx: -// -// func DoSomething(ctx context.Context, arg Arg) error { -// // ... use ctx ... -// } -// -// Do not pass a nil [Context], even if a function permits it. Pass [context.TODO] -// if you are unsure about which Context to use. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -// -// The same Context may be passed to functions running in different goroutines; -// Contexts are safe for simultaneous use by multiple goroutines. -// -// See https://go.dev/blog/context for example code for a server that uses -// Contexts. +// Deprecated: Use the standard library context package instead. package context import ( diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index 93bcaab0..9a4bd123 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -280,6 +280,8 @@ type Framer struct { // lastHeaderStream is non-zero if the last frame was an // unfinished HEADERS/CONTINUATION. lastHeaderStream uint32 + // lastFrameType holds the type of the last frame for verifying frame order. + lastFrameType FrameType maxReadSize uint32 headerBuf [frameHeaderLen]byte @@ -488,30 +490,41 @@ func terminalReadFrameError(err error) bool { return err != nil } -// ReadFrame reads a single frame. The returned Frame is only valid -// until the next call to ReadFrame. +// ReadFrameHeader reads the header of the next frame. +// It reads the 9-byte fixed frame header, and does not read any portion of the +// frame payload. The caller is responsible for consuming the payload, either +// with ReadFrameForHeader or directly from the Framer's io.Reader. // -// If the frame is larger than previously set with SetMaxReadFrameSize, the -// returned error is ErrFrameTooLarge. Other errors may be of type -// ConnectionError, StreamError, or anything else from the underlying -// reader. +// If the frame is larger than previously set with SetMaxReadFrameSize, it +// returns the frame header and ErrFrameTooLarge. // -// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID -// indicates the stream responsible for the error. -func (fr *Framer) ReadFrame() (Frame, error) { +// If the returned FrameHeader.StreamID is non-zero, it indicates the stream +// responsible for the error. +func (fr *Framer) ReadFrameHeader() (FrameHeader, error) { fr.errDetail = nil - if fr.lastFrame != nil { - fr.lastFrame.invalidate() - } fh, err := readFrameHeader(fr.headerBuf[:], fr.r) if err != nil { - return nil, err + return fh, err } if fh.Length > fr.maxReadSize { if fh == invalidHTTP1LookingFrameHeader() { - return nil, fmt.Errorf("http2: failed reading the frame payload: %w, note that the frame header looked like an HTTP/1.1 header", ErrFrameTooLarge) + return fh, fmt.Errorf("http2: failed reading the frame payload: %w, note that the frame header looked like an HTTP/1.1 header", ErrFrameTooLarge) } - return nil, ErrFrameTooLarge + return fh, ErrFrameTooLarge + } + if err := fr.checkFrameOrder(fh); err != nil { + return fh, err + } + return fh, nil +} + +// ReadFrameForHeader reads the payload for the frame with the given FrameHeader. +// +// It behaves identically to ReadFrame, other than not checking the maximum +// frame size. +func (fr *Framer) ReadFrameForHeader(fh FrameHeader) (Frame, error) { + if fr.lastFrame != nil { + fr.lastFrame.invalidate() } payload := fr.getReadBuf(fh.Length) if _, err := io.ReadFull(fr.r, payload); err != nil { @@ -527,9 +540,7 @@ func (fr *Framer) ReadFrame() (Frame, error) { } return nil, err } - if err := fr.checkFrameOrder(f); err != nil { - return nil, err - } + fr.lastFrame = f if fr.logReads { fr.debugReadLoggerf("http2: Framer %p: read %v", fr, summarizeFrame(f)) } @@ -539,6 +550,24 @@ func (fr *Framer) ReadFrame() (Frame, error) { return f, nil } +// ReadFrame reads a single frame. The returned Frame is only valid +// until the next call to ReadFrame or ReadFrameBodyForHeader. +// +// If the frame is larger than previously set with SetMaxReadFrameSize, the +// returned error is ErrFrameTooLarge. Other errors may be of type +// ConnectionError, StreamError, or anything else from the underlying +// reader. +// +// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID +// indicates the stream responsible for the error. +func (fr *Framer) ReadFrame() (Frame, error) { + fh, err := fr.ReadFrameHeader() + if err != nil { + return nil, err + } + return fr.ReadFrameForHeader(fh) +} + // connError returns ConnectionError(code) but first // stashes away a public reason to the caller can optionally relay it // to the peer before hanging up on them. This might help others debug @@ -551,20 +580,19 @@ func (fr *Framer) connError(code ErrCode, reason string) error { // checkFrameOrder reports an error if f is an invalid frame to return // next from ReadFrame. Mostly it checks whether HEADERS and // CONTINUATION frames are contiguous. -func (fr *Framer) checkFrameOrder(f Frame) error { - last := fr.lastFrame - fr.lastFrame = f +func (fr *Framer) checkFrameOrder(fh FrameHeader) error { + lastType := fr.lastFrameType + fr.lastFrameType = fh.Type if fr.AllowIllegalReads { return nil } - fh := f.Header() if fr.lastHeaderStream != 0 { if fh.Type != FrameContinuation { return fr.connError(ErrCodeProtocol, fmt.Sprintf("got %s for stream %d; expected CONTINUATION following %s for stream %d", fh.Type, fh.StreamID, - last.Header().Type, fr.lastHeaderStream)) + lastType, fr.lastHeaderStream)) } if fh.StreamID != fr.lastHeaderStream { return fr.connError(ErrCodeProtocol, @@ -1161,7 +1189,7 @@ var defaultRFC9218Priority = PriorityParam{ // PriorityParam struct below is a superset of both schemes. The exported // symbols are from RFC 7540 and the non-exported ones are from RFC 9218. -// PriorityParam are the stream prioritzation parameters. +// PriorityParam are the stream prioritization parameters. type PriorityParam struct { // StreamDep is a 31-bit stream identifier for the // stream that this stream depends on. Zero means no diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index be759b60..1965913e 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -9,6 +9,7 @@ package http2 import ( "bufio" "bytes" + "compress/flate" "compress/gzip" "context" "crypto/rand" @@ -3076,35 +3077,102 @@ type erringRoundTripper struct{ err error } func (rt erringRoundTripper) RoundTripErr() error { return rt.err } func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err } +var errConcurrentReadOnResBody = errors.New("http2: concurrent read on response body") + // gzipReader wraps a response body so it can lazily -// call gzip.NewReader on the first call to Read +// get gzip.Reader from the pool on the first call to Read. +// After Close is called it puts gzip.Reader to the pool immediately +// if there is no Read in progress or later when Read completes. type gzipReader struct { _ incomparable body io.ReadCloser // underlying Response.Body - zr *gzip.Reader // lazily-initialized gzip reader - zerr error // sticky error + mu sync.Mutex // guards zr and zerr + zr *gzip.Reader // stores gzip reader from the pool between reads + zerr error // sticky gzip reader init error or sentinel value to detect concurrent read and read after close +} + +type eofReader struct{} + +func (eofReader) Read([]byte) (int, error) { return 0, io.EOF } +func (eofReader) ReadByte() (byte, error) { return 0, io.EOF } + +var gzipPool = sync.Pool{New: func() any { return new(gzip.Reader) }} + +// gzipPoolGet gets a gzip.Reader from the pool and resets it to read from r. +func gzipPoolGet(r io.Reader) (*gzip.Reader, error) { + zr := gzipPool.Get().(*gzip.Reader) + if err := zr.Reset(r); err != nil { + gzipPoolPut(zr) + return nil, err + } + return zr, nil +} + +// gzipPoolPut puts a gzip.Reader back into the pool. +func gzipPoolPut(zr *gzip.Reader) { + // Reset will allocate bufio.Reader if we pass it anything + // other than a flate.Reader, so ensure that it's getting one. + var r flate.Reader = eofReader{} + zr.Reset(r) + gzipPool.Put(zr) +} + +// acquire returns a gzip.Reader for reading response body. +// The reader must be released after use. +func (gz *gzipReader) acquire() (*gzip.Reader, error) { + gz.mu.Lock() + defer gz.mu.Unlock() + if gz.zerr != nil { + return nil, gz.zerr + } + if gz.zr == nil { + gz.zr, gz.zerr = gzipPoolGet(gz.body) + if gz.zerr != nil { + return nil, gz.zerr + } + } + ret := gz.zr + gz.zr, gz.zerr = nil, errConcurrentReadOnResBody + return ret, nil +} + +// release returns the gzip.Reader to the pool if Close was called during Read. +func (gz *gzipReader) release(zr *gzip.Reader) { + gz.mu.Lock() + defer gz.mu.Unlock() + if gz.zerr == errConcurrentReadOnResBody { + gz.zr, gz.zerr = zr, nil + } else { // fs.ErrClosed + gzipPoolPut(zr) + } +} + +// close returns the gzip.Reader to the pool immediately or +// signals release to do so after Read completes. +func (gz *gzipReader) close() { + gz.mu.Lock() + defer gz.mu.Unlock() + if gz.zerr == nil && gz.zr != nil { + gzipPoolPut(gz.zr) + gz.zr = nil + } + gz.zerr = fs.ErrClosed } func (gz *gzipReader) Read(p []byte) (n int, err error) { - if gz.zerr != nil { - return 0, gz.zerr + zr, err := gz.acquire() + if err != nil { + return 0, err } - if gz.zr == nil { - gz.zr, err = gzip.NewReader(gz.body) - if err != nil { - gz.zerr = err - return 0, err - } - } - return gz.zr.Read(p) + defer gz.release(zr) + + return zr.Read(p) } func (gz *gzipReader) Close() error { - if err := gz.body.Close(); err != nil { - return err - } - gz.zerr = fs.ErrClosed - return nil + gz.close() + + return gz.body.Close() } type errorReader struct{ err error } diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go index 4d3890f9..7de27be5 100644 --- a/vendor/golang.org/x/net/http2/writesched.go +++ b/vendor/golang.org/x/net/http2/writesched.go @@ -185,45 +185,75 @@ func (wr *FrameWriteRequest) replyToWriter(err error) { } // writeQueue is used by implementations of WriteScheduler. +// +// Each writeQueue contains a queue of FrameWriteRequests, meant to store all +// FrameWriteRequests associated with a given stream. This is implemented as a +// two-stage queue: currQueue[currPos:] and nextQueue. Removing an item is done +// by incrementing currPos of currQueue. Adding an item is done by appending it +// to the nextQueue. If currQueue is empty when trying to remove an item, we +// can swap currQueue and nextQueue to remedy the situation. +// This two-stage queue is analogous to the use of two lists in Okasaki's +// purely functional queue but without the overhead of reversing the list when +// swapping stages. +// +// writeQueue also contains prev and next, this can be used by implementations +// of WriteScheduler to construct data structures that represent the order of +// writing between different streams (e.g. circular linked list). type writeQueue struct { - s []FrameWriteRequest + currQueue []FrameWriteRequest + nextQueue []FrameWriteRequest + currPos int + prev, next *writeQueue } -func (q *writeQueue) empty() bool { return len(q.s) == 0 } +func (q *writeQueue) empty() bool { + return (len(q.currQueue) - q.currPos + len(q.nextQueue)) == 0 +} func (q *writeQueue) push(wr FrameWriteRequest) { - q.s = append(q.s, wr) + q.nextQueue = append(q.nextQueue, wr) } func (q *writeQueue) shift() FrameWriteRequest { - if len(q.s) == 0 { + if q.empty() { panic("invalid use of queue") } - wr := q.s[0] - // TODO: less copy-happy queue. - copy(q.s, q.s[1:]) - q.s[len(q.s)-1] = FrameWriteRequest{} - q.s = q.s[:len(q.s)-1] + if q.currPos >= len(q.currQueue) { + q.currQueue, q.currPos, q.nextQueue = q.nextQueue, 0, q.currQueue[:0] + } + wr := q.currQueue[q.currPos] + q.currQueue[q.currPos] = FrameWriteRequest{} + q.currPos++ return wr } +func (q *writeQueue) peek() *FrameWriteRequest { + if q.currPos < len(q.currQueue) { + return &q.currQueue[q.currPos] + } + if len(q.nextQueue) > 0 { + return &q.nextQueue[0] + } + return nil +} + // consume consumes up to n bytes from q.s[0]. If the frame is // entirely consumed, it is removed from the queue. If the frame // is partially consumed, the frame is kept with the consumed // bytes removed. Returns true iff any bytes were consumed. func (q *writeQueue) consume(n int32) (FrameWriteRequest, bool) { - if len(q.s) == 0 { + if q.empty() { return FrameWriteRequest{}, false } - consumed, rest, numresult := q.s[0].Consume(n) + consumed, rest, numresult := q.peek().Consume(n) switch numresult { case 0: return FrameWriteRequest{}, false case 1: q.shift() case 2: - q.s[0] = rest + *q.peek() = rest } return consumed, true } @@ -232,10 +262,15 @@ type writeQueuePool []*writeQueue // put inserts an unused writeQueue into the pool. func (p *writeQueuePool) put(q *writeQueue) { - for i := range q.s { - q.s[i] = FrameWriteRequest{} + for i := range q.currQueue { + q.currQueue[i] = FrameWriteRequest{} } - q.s = q.s[:0] + for i := range q.nextQueue { + q.nextQueue[i] = FrameWriteRequest{} + } + q.currQueue = q.currQueue[:0] + q.nextQueue = q.nextQueue[:0] + q.currPos = 0 *p = append(*p, q) } diff --git a/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go b/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go index 6d24d6a1..4e33c29a 100644 --- a/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go +++ b/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go @@ -214,8 +214,8 @@ func (z sortPriorityNodeSiblingsRFC7540) Swap(i, k int) { z[i], z[k] = z[k], z[i func (z sortPriorityNodeSiblingsRFC7540) Less(i, k int) bool { // Prefer the subtree that has sent fewer bytes relative to its weight. // See sections 5.3.2 and 5.3.4. - wi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes) - wk, bk := float64(z[k].weight+1), float64(z[k].subtreeBytes) + wi, bi := float64(z[i].weight)+1, float64(z[i].subtreeBytes) + wk, bk := float64(z[k].weight)+1, float64(z[k].subtreeBytes) if bi == 0 && bk == 0 { return wi >= wk } @@ -302,7 +302,6 @@ func (ws *priorityWriteSchedulerRFC7540) CloseStream(streamID uint32) { q := n.q ws.queuePool.put(&q) - n.q.s = nil if ws.maxClosedNodesInTree > 0 { ws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n) } else { diff --git a/vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go b/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go similarity index 99% rename from vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go rename to vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go index 9b5b8808..cb4cadc3 100644 --- a/vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go +++ b/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go @@ -39,7 +39,7 @@ type priorityWriteSchedulerRFC9218 struct { prioritizeIncremental bool } -func newPriorityWriteSchedulerRFC9128() WriteScheduler { +func newPriorityWriteSchedulerRFC9218() WriteScheduler { ws := &priorityWriteSchedulerRFC9218{ streams: make(map[uint32]streamMetadata), } diff --git a/vendor/golang.org/x/net/publicsuffix/list.go b/vendor/golang.org/x/net/publicsuffix/list.go index 047cb30e..7ab8b3cf 100644 --- a/vendor/golang.org/x/net/publicsuffix/list.go +++ b/vendor/golang.org/x/net/publicsuffix/list.go @@ -51,6 +51,7 @@ package publicsuffix // import "golang.org/x/net/publicsuffix" import ( "fmt" "net/http/cookiejar" + "net/netip" "strings" ) @@ -84,6 +85,10 @@ func (list) String() string { // domains like "foo.appspot.com" can be found at // https://wiki.mozilla.org/Public_Suffix_List/Use_Cases func PublicSuffix(domain string) (publicSuffix string, icann bool) { + if _, err := netip.ParseAddr(domain); err == nil { + return domain, false + } + lo, hi := uint32(0), uint32(numTLD) s, suffix, icannNode, wildcard := domain, len(domain), false, false loop: diff --git a/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go index e86346e8..3ee122d1 100644 --- a/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go +++ b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go @@ -3,7 +3,7 @@ // license that can be found in the LICENSE file. // Package clientcredentials implements the OAuth2.0 "client credentials" token flow, -// also known as the "two-legged OAuth 2.0". +// also known as "two-legged OAuth 2.0". // // This should be used when the client is acting on its own behalf or when the client // is the resource owner. It may also be used when requesting access to protected diff --git a/vendor/golang.org/x/oauth2/deviceauth.go b/vendor/golang.org/x/oauth2/deviceauth.go index e99c92f3..e783a943 100644 --- a/vendor/golang.org/x/oauth2/deviceauth.go +++ b/vendor/golang.org/x/oauth2/deviceauth.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "io" + "mime" "net/http" "net/url" "strings" @@ -116,10 +117,38 @@ func retrieveDeviceAuth(ctx context.Context, c *Config, v url.Values) (*DeviceAu return nil, fmt.Errorf("oauth2: cannot auth device: %v", err) } if code := r.StatusCode; code < 200 || code > 299 { - return nil, &RetrieveError{ + retrieveError := &RetrieveError{ Response: r, Body: body, } + + content, _, _ := mime.ParseMediaType(r.Header.Get("Content-Type")) + switch content { + case "application/x-www-form-urlencoded", "text/plain": + // some endpoints return a query string + vals, err := url.ParseQuery(string(body)) + if err != nil { + return nil, retrieveError + } + retrieveError.ErrorCode = vals.Get("error") + retrieveError.ErrorDescription = vals.Get("error_description") + retrieveError.ErrorURI = vals.Get("error_uri") + default: + var tj struct { + // https://datatracker.ietf.org/doc/html/rfc6749#section-5.2 + ErrorCode string `json:"error"` + ErrorDescription string `json:"error_description"` + ErrorURI string `json:"error_uri"` + } + if json.Unmarshal(body, &tj) != nil { + return nil, retrieveError + } + retrieveError.ErrorCode = tj.ErrorCode + retrieveError.ErrorDescription = tj.ErrorDescription + retrieveError.ErrorURI = tj.ErrorURI + } + + return nil, retrieveError } da := &DeviceAuthResponse{} diff --git a/vendor/golang.org/x/oauth2/google/google.go b/vendor/golang.org/x/oauth2/google/google.go index e2eb9c92..7d1fdd31 100644 --- a/vendor/golang.org/x/oauth2/google/google.go +++ b/vendor/golang.org/x/oauth2/google/google.go @@ -252,7 +252,7 @@ func (f *credentialsFile) tokenSource(ctx context.Context, params CredentialsPar // Further information about retrieving access tokens from the GCE metadata // server can be found at https://cloud.google.com/compute/docs/authentication. func ComputeTokenSource(account string, scope ...string) oauth2.TokenSource { - // refresh 3 minutes and 45 seconds early. The shortest MDS cache is currently 4 minutes, so any + // Refresh 3 minutes and 45 seconds early. The shortest MDS cache is currently 4 minutes, so any // refreshes earlier are a waste of compute. earlyExpirySecs := 225 * time.Second return computeTokenSource(account, earlyExpirySecs, scope...) diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go index 3e3b6306..5c527d31 100644 --- a/vendor/golang.org/x/oauth2/oauth2.go +++ b/vendor/golang.org/x/oauth2/oauth2.go @@ -98,7 +98,7 @@ const ( // in the POST body as application/x-www-form-urlencoded parameters. AuthStyleInParams AuthStyle = 1 - // AuthStyleInHeader sends the client_id and client_password + // AuthStyleInHeader sends the client_id and client_secret // using HTTP Basic Authorization. This is an optional style // described in the OAuth2 RFC 6749 section 2.3.1. AuthStyleInHeader AuthStyle = 2 diff --git a/vendor/golang.org/x/oauth2/pkce.go b/vendor/golang.org/x/oauth2/pkce.go index cea8374d..f99384f0 100644 --- a/vendor/golang.org/x/oauth2/pkce.go +++ b/vendor/golang.org/x/oauth2/pkce.go @@ -51,7 +51,7 @@ func S256ChallengeFromVerifier(verifier string) string { return base64.RawURLEncoding.EncodeToString(sha[:]) } -// S256ChallengeOption derives a PKCE code challenge derived from verifier with +// S256ChallengeOption derives a PKCE code challenge from the verifier with // method S256. It should be passed to [Config.AuthCodeURL] or [Config.DeviceAuth] // only. func S256ChallengeOption(verifier string) AuthCodeOption { diff --git a/vendor/golang.org/x/oauth2/token.go b/vendor/golang.org/x/oauth2/token.go index 239ec329..e995eebb 100644 --- a/vendor/golang.org/x/oauth2/token.go +++ b/vendor/golang.org/x/oauth2/token.go @@ -103,7 +103,7 @@ func (t *Token) WithExtra(extra any) *Token { } // Extra returns an extra field. -// Extra fields are key-value pairs returned by the server as a +// Extra fields are key-value pairs returned by the server as // part of the token retrieval response. func (t *Token) Extra(key string) any { if raw, ok := t.raw.(map[string]any); ok { diff --git a/vendor/golang.org/x/oauth2/transport.go b/vendor/golang.org/x/oauth2/transport.go index 8bbebbac..9922ec33 100644 --- a/vendor/golang.org/x/oauth2/transport.go +++ b/vendor/golang.org/x/oauth2/transport.go @@ -58,7 +58,7 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { var cancelOnce sync.Once // CancelRequest does nothing. It used to be a legacy cancellation mechanism -// but now only it only logs on first use to warn that it's deprecated. +// but now only logs on first use to warn that it's deprecated. // // Deprecated: use contexts for cancellation instead. func (t *Transport) CancelRequest(req *http.Request) { diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go index 1d8cffae..2f45dbc8 100644 --- a/vendor/golang.org/x/sync/errgroup/errgroup.go +++ b/vendor/golang.org/x/sync/errgroup/errgroup.go @@ -3,7 +3,7 @@ // license that can be found in the LICENSE file. // Package errgroup provides synchronization, error propagation, and Context -// cancelation for groups of goroutines working on subtasks of a common task. +// cancellation for groups of goroutines working on subtasks of a common task. // // [errgroup.Group] is related to [sync.WaitGroup] but adds handling of tasks // returning errors. diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index 63541994..34c9ae76 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -92,6 +92,9 @@ var ARM64 struct { HasSHA2 bool // SHA2 hardware implementation HasCRC32 bool // CRC32 hardware implementation HasATOMICS bool // Atomic memory operation instruction set + HasHPDS bool // Hierarchical permission disables in translations tables + HasLOR bool // Limited ordering regions + HasPAN bool // Privileged access never HasFPHP bool // Half precision floating-point instruction set HasASIMDHP bool // Advanced SIMD half precision instruction set HasCPUID bool // CPUID identification scheme registers diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go index af2aa99f..f449c679 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.go @@ -65,10 +65,10 @@ func setMinimalFeatures() { func readARM64Registers() { Initialized = true - parseARM64SystemRegisters(getisar0(), getisar1(), getpfr0()) + parseARM64SystemRegisters(getisar0(), getisar1(), getmmfr1(), getpfr0()) } -func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { +func parseARM64SystemRegisters(isar0, isar1, mmfr1, pfr0 uint64) { // ID_AA64ISAR0_EL1 switch extractBits(isar0, 4, 7) { case 1: @@ -152,6 +152,22 @@ func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) { ARM64.HasI8MM = true } + // ID_AA64MMFR1_EL1 + switch extractBits(mmfr1, 12, 15) { + case 1, 2: + ARM64.HasHPDS = true + } + + switch extractBits(mmfr1, 16, 19) { + case 1: + ARM64.HasLOR = true + } + + switch extractBits(mmfr1, 20, 23) { + case 1, 2, 3: + ARM64.HasPAN = true + } + // ID_AA64PFR0_EL1 switch extractBits(pfr0, 16, 19) { case 0: diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_arm64.s index 22cc9984..a4f24b3b 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.s +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.s @@ -9,31 +9,34 @@ // func getisar0() uint64 TEXT ·getisar0(SB),NOSPLIT,$0-8 // get Instruction Set Attributes 0 into x0 - // mrs x0, ID_AA64ISAR0_EL1 = d5380600 - WORD $0xd5380600 + MRS ID_AA64ISAR0_EL1, R0 MOVD R0, ret+0(FP) RET // func getisar1() uint64 TEXT ·getisar1(SB),NOSPLIT,$0-8 // get Instruction Set Attributes 1 into x0 - // mrs x0, ID_AA64ISAR1_EL1 = d5380620 - WORD $0xd5380620 + MRS ID_AA64ISAR1_EL1, R0 + MOVD R0, ret+0(FP) + RET + +// func getmmfr1() uint64 +TEXT ·getmmfr1(SB),NOSPLIT,$0-8 + // get Memory Model Feature Register 1 into x0 + MRS ID_AA64MMFR1_EL1, R0 MOVD R0, ret+0(FP) RET // func getpfr0() uint64 TEXT ·getpfr0(SB),NOSPLIT,$0-8 // get Processor Feature Register 0 into x0 - // mrs x0, ID_AA64PFR0_EL1 = d5380400 - WORD $0xd5380400 + MRS ID_AA64PFR0_EL1, R0 MOVD R0, ret+0(FP) RET // func getzfr0() uint64 TEXT ·getzfr0(SB),NOSPLIT,$0-8 // get SVE Feature Register 0 into x0 - // mrs x0, ID_AA64ZFR0_EL1 = d5380480 - WORD $0xd5380480 + MRS ID_AA64ZFR0_EL1, R0 MOVD R0, ret+0(FP) RET diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go index 6ac6e1ef..e3fc5a8d 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go @@ -8,5 +8,6 @@ package cpu func getisar0() uint64 func getisar1() uint64 +func getmmfr1() uint64 func getpfr0() uint64 func getzfr0() uint64 diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go index 7f194678..8df2079e 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go @@ -8,4 +8,5 @@ package cpu func getisar0() uint64 { return 0 } func getisar1() uint64 { return 0 } +func getmmfr1() uint64 { return 0 } func getpfr0() uint64 { return 0 } diff --git a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go index ebfb3fc8..19aea063 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go @@ -167,7 +167,7 @@ func doinit() { setMinimalFeatures() return } - parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, cpuid.aa64pfr0) + parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, cpuid.aa64mmfr1, cpuid.aa64pfr0) Initialized = true } diff --git a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go index 85b64d5c..87fd3a77 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go @@ -59,7 +59,7 @@ func doinit() { if !ok { return } - parseARM64SystemRegisters(isar0, isar1, 0) + parseARM64SystemRegisters(isar0, isar1, 0, 0) Initialized = true } diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index d1c8b264..42517077 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -226,6 +226,7 @@ struct ltchars { #include #include #include +#include #include #include #include @@ -529,6 +530,7 @@ ccflags="$@" $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || + $2 ~ /^(DT|EI|ELF|EV|NN|NT|PF|SHF|SHN|SHT|STB|STT|VER)_/ || $2 ~ /^O?XTABS$/ || $2 ~ /^TC[IO](ON|OFF)$/ || $2 ~ /^IN_/ || diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 9439af96..06c0eea6 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -2643,3 +2643,9 @@ func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { //sys Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) //sys Mseal(b []byte, flags uint) (err error) + +//sys setMemPolicy(mode int, mask *CPUSet, size int) (err error) = SYS_SET_MEMPOLICY + +func SetMemPolicy(mode int, mask *CPUSet) error { + return setMemPolicy(mode, mask, _CPU_SETSIZE) +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index b6db27d9..d0a75da5 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -853,20 +853,86 @@ const ( DM_VERSION_MAJOR = 0x4 DM_VERSION_MINOR = 0x32 DM_VERSION_PATCHLEVEL = 0x0 + DT_ADDRRNGHI = 0x6ffffeff + DT_ADDRRNGLO = 0x6ffffe00 DT_BLK = 0x6 DT_CHR = 0x2 + DT_DEBUG = 0x15 DT_DIR = 0x4 + DT_ENCODING = 0x20 DT_FIFO = 0x1 + DT_FINI = 0xd + DT_FLAGS_1 = 0x6ffffffb + DT_GNU_HASH = 0x6ffffef5 + DT_HASH = 0x4 + DT_HIOS = 0x6ffff000 + DT_HIPROC = 0x7fffffff + DT_INIT = 0xc + DT_JMPREL = 0x17 DT_LNK = 0xa + DT_LOOS = 0x6000000d + DT_LOPROC = 0x70000000 + DT_NEEDED = 0x1 + DT_NULL = 0x0 + DT_PLTGOT = 0x3 + DT_PLTREL = 0x14 + DT_PLTRELSZ = 0x2 DT_REG = 0x8 + DT_REL = 0x11 + DT_RELA = 0x7 + DT_RELACOUNT = 0x6ffffff9 + DT_RELAENT = 0x9 + DT_RELASZ = 0x8 + DT_RELCOUNT = 0x6ffffffa + DT_RELENT = 0x13 + DT_RELSZ = 0x12 + DT_RPATH = 0xf DT_SOCK = 0xc + DT_SONAME = 0xe + DT_STRSZ = 0xa + DT_STRTAB = 0x5 + DT_SYMBOLIC = 0x10 + DT_SYMENT = 0xb + DT_SYMTAB = 0x6 + DT_TEXTREL = 0x16 DT_UNKNOWN = 0x0 + DT_VALRNGHI = 0x6ffffdff + DT_VALRNGLO = 0x6ffffd00 + DT_VERDEF = 0x6ffffffc + DT_VERDEFNUM = 0x6ffffffd + DT_VERNEED = 0x6ffffffe + DT_VERNEEDNUM = 0x6fffffff + DT_VERSYM = 0x6ffffff0 DT_WHT = 0xe ECHO = 0x8 ECRYPTFS_SUPER_MAGIC = 0xf15f EFD_SEMAPHORE = 0x1 EFIVARFS_MAGIC = 0xde5e81e4 EFS_SUPER_MAGIC = 0x414a53 + EI_CLASS = 0x4 + EI_DATA = 0x5 + EI_MAG0 = 0x0 + EI_MAG1 = 0x1 + EI_MAG2 = 0x2 + EI_MAG3 = 0x3 + EI_NIDENT = 0x10 + EI_OSABI = 0x7 + EI_PAD = 0x8 + EI_VERSION = 0x6 + ELFCLASS32 = 0x1 + ELFCLASS64 = 0x2 + ELFCLASSNONE = 0x0 + ELFCLASSNUM = 0x3 + ELFDATA2LSB = 0x1 + ELFDATA2MSB = 0x2 + ELFDATANONE = 0x0 + ELFMAG = "\177ELF" + ELFMAG0 = 0x7f + ELFMAG1 = 'E' + ELFMAG2 = 'L' + ELFMAG3 = 'F' + ELFOSABI_LINUX = 0x3 + ELFOSABI_NONE = 0x0 EM_386 = 0x3 EM_486 = 0x6 EM_68K = 0x4 @@ -1152,14 +1218,24 @@ const ( ETH_P_WCCP = 0x883e ETH_P_X25 = 0x805 ETH_P_XDSA = 0xf8 + ET_CORE = 0x4 + ET_DYN = 0x3 + ET_EXEC = 0x2 + ET_HIPROC = 0xffff + ET_LOPROC = 0xff00 + ET_NONE = 0x0 + ET_REL = 0x1 EV_ABS = 0x3 EV_CNT = 0x20 + EV_CURRENT = 0x1 EV_FF = 0x15 EV_FF_STATUS = 0x17 EV_KEY = 0x1 EV_LED = 0x11 EV_MAX = 0x1f EV_MSC = 0x4 + EV_NONE = 0x0 + EV_NUM = 0x2 EV_PWR = 0x16 EV_REL = 0x2 EV_REP = 0x14 @@ -2276,7 +2352,167 @@ const ( NLM_F_REPLACE = 0x100 NLM_F_REQUEST = 0x1 NLM_F_ROOT = 0x100 + NN_386_IOPERM = "LINUX" + NN_386_TLS = "LINUX" + NN_ARC_V2 = "LINUX" + NN_ARM_FPMR = "LINUX" + NN_ARM_GCS = "LINUX" + NN_ARM_HW_BREAK = "LINUX" + NN_ARM_HW_WATCH = "LINUX" + NN_ARM_PACA_KEYS = "LINUX" + NN_ARM_PACG_KEYS = "LINUX" + NN_ARM_PAC_ENABLED_KEYS = "LINUX" + NN_ARM_PAC_MASK = "LINUX" + NN_ARM_POE = "LINUX" + NN_ARM_SSVE = "LINUX" + NN_ARM_SVE = "LINUX" + NN_ARM_SYSTEM_CALL = "LINUX" + NN_ARM_TAGGED_ADDR_CTRL = "LINUX" + NN_ARM_TLS = "LINUX" + NN_ARM_VFP = "LINUX" + NN_ARM_ZA = "LINUX" + NN_ARM_ZT = "LINUX" + NN_AUXV = "CORE" + NN_FILE = "CORE" + NN_GNU_PROPERTY_TYPE_0 = "GNU" + NN_LOONGARCH_CPUCFG = "LINUX" + NN_LOONGARCH_CSR = "LINUX" + NN_LOONGARCH_HW_BREAK = "LINUX" + NN_LOONGARCH_HW_WATCH = "LINUX" + NN_LOONGARCH_LASX = "LINUX" + NN_LOONGARCH_LBT = "LINUX" + NN_LOONGARCH_LSX = "LINUX" + NN_MIPS_DSP = "LINUX" + NN_MIPS_FP_MODE = "LINUX" + NN_MIPS_MSA = "LINUX" + NN_PPC_DEXCR = "LINUX" + NN_PPC_DSCR = "LINUX" + NN_PPC_EBB = "LINUX" + NN_PPC_HASHKEYR = "LINUX" + NN_PPC_PKEY = "LINUX" + NN_PPC_PMU = "LINUX" + NN_PPC_PPR = "LINUX" + NN_PPC_SPE = "LINUX" + NN_PPC_TAR = "LINUX" + NN_PPC_TM_CDSCR = "LINUX" + NN_PPC_TM_CFPR = "LINUX" + NN_PPC_TM_CGPR = "LINUX" + NN_PPC_TM_CPPR = "LINUX" + NN_PPC_TM_CTAR = "LINUX" + NN_PPC_TM_CVMX = "LINUX" + NN_PPC_TM_CVSX = "LINUX" + NN_PPC_TM_SPR = "LINUX" + NN_PPC_VMX = "LINUX" + NN_PPC_VSX = "LINUX" + NN_PRFPREG = "CORE" + NN_PRPSINFO = "CORE" + NN_PRSTATUS = "CORE" + NN_PRXFPREG = "LINUX" + NN_RISCV_CSR = "LINUX" + NN_RISCV_TAGGED_ADDR_CTRL = "LINUX" + NN_RISCV_VECTOR = "LINUX" + NN_S390_CTRS = "LINUX" + NN_S390_GS_BC = "LINUX" + NN_S390_GS_CB = "LINUX" + NN_S390_HIGH_GPRS = "LINUX" + NN_S390_LAST_BREAK = "LINUX" + NN_S390_PREFIX = "LINUX" + NN_S390_PV_CPU_DATA = "LINUX" + NN_S390_RI_CB = "LINUX" + NN_S390_SYSTEM_CALL = "LINUX" + NN_S390_TDB = "LINUX" + NN_S390_TIMER = "LINUX" + NN_S390_TODCMP = "LINUX" + NN_S390_TODPREG = "LINUX" + NN_S390_VXRS_HIGH = "LINUX" + NN_S390_VXRS_LOW = "LINUX" + NN_SIGINFO = "CORE" + NN_TASKSTRUCT = "CORE" + NN_VMCOREDD = "LINUX" + NN_X86_SHSTK = "LINUX" + NN_X86_XSAVE_LAYOUT = "LINUX" + NN_X86_XSTATE = "LINUX" NSFS_MAGIC = 0x6e736673 + NT_386_IOPERM = 0x201 + NT_386_TLS = 0x200 + NT_ARC_V2 = 0x600 + NT_ARM_FPMR = 0x40e + NT_ARM_GCS = 0x410 + NT_ARM_HW_BREAK = 0x402 + NT_ARM_HW_WATCH = 0x403 + NT_ARM_PACA_KEYS = 0x407 + NT_ARM_PACG_KEYS = 0x408 + NT_ARM_PAC_ENABLED_KEYS = 0x40a + NT_ARM_PAC_MASK = 0x406 + NT_ARM_POE = 0x40f + NT_ARM_SSVE = 0x40b + NT_ARM_SVE = 0x405 + NT_ARM_SYSTEM_CALL = 0x404 + NT_ARM_TAGGED_ADDR_CTRL = 0x409 + NT_ARM_TLS = 0x401 + NT_ARM_VFP = 0x400 + NT_ARM_ZA = 0x40c + NT_ARM_ZT = 0x40d + NT_AUXV = 0x6 + NT_FILE = 0x46494c45 + NT_GNU_PROPERTY_TYPE_0 = 0x5 + NT_LOONGARCH_CPUCFG = 0xa00 + NT_LOONGARCH_CSR = 0xa01 + NT_LOONGARCH_HW_BREAK = 0xa05 + NT_LOONGARCH_HW_WATCH = 0xa06 + NT_LOONGARCH_LASX = 0xa03 + NT_LOONGARCH_LBT = 0xa04 + NT_LOONGARCH_LSX = 0xa02 + NT_MIPS_DSP = 0x800 + NT_MIPS_FP_MODE = 0x801 + NT_MIPS_MSA = 0x802 + NT_PPC_DEXCR = 0x111 + NT_PPC_DSCR = 0x105 + NT_PPC_EBB = 0x106 + NT_PPC_HASHKEYR = 0x112 + NT_PPC_PKEY = 0x110 + NT_PPC_PMU = 0x107 + NT_PPC_PPR = 0x104 + NT_PPC_SPE = 0x101 + NT_PPC_TAR = 0x103 + NT_PPC_TM_CDSCR = 0x10f + NT_PPC_TM_CFPR = 0x109 + NT_PPC_TM_CGPR = 0x108 + NT_PPC_TM_CPPR = 0x10e + NT_PPC_TM_CTAR = 0x10d + NT_PPC_TM_CVMX = 0x10a + NT_PPC_TM_CVSX = 0x10b + NT_PPC_TM_SPR = 0x10c + NT_PPC_VMX = 0x100 + NT_PPC_VSX = 0x102 + NT_PRFPREG = 0x2 + NT_PRPSINFO = 0x3 + NT_PRSTATUS = 0x1 + NT_PRXFPREG = 0x46e62b7f + NT_RISCV_CSR = 0x900 + NT_RISCV_TAGGED_ADDR_CTRL = 0x902 + NT_RISCV_VECTOR = 0x901 + NT_S390_CTRS = 0x304 + NT_S390_GS_BC = 0x30c + NT_S390_GS_CB = 0x30b + NT_S390_HIGH_GPRS = 0x300 + NT_S390_LAST_BREAK = 0x306 + NT_S390_PREFIX = 0x305 + NT_S390_PV_CPU_DATA = 0x30e + NT_S390_RI_CB = 0x30d + NT_S390_SYSTEM_CALL = 0x307 + NT_S390_TDB = 0x308 + NT_S390_TIMER = 0x301 + NT_S390_TODCMP = 0x302 + NT_S390_TODPREG = 0x303 + NT_S390_VXRS_HIGH = 0x30a + NT_S390_VXRS_LOW = 0x309 + NT_SIGINFO = 0x53494749 + NT_TASKSTRUCT = 0x4 + NT_VMCOREDD = 0x700 + NT_X86_SHSTK = 0x204 + NT_X86_XSAVE_LAYOUT = 0x205 + NT_X86_XSTATE = 0x202 OCFS2_SUPER_MAGIC = 0x7461636f OCRNL = 0x8 OFDEL = 0x80 @@ -2463,6 +2699,59 @@ const ( PERF_RECORD_MISC_USER = 0x2 PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 + PF_ALG = 0x26 + PF_APPLETALK = 0x5 + PF_ASH = 0x12 + PF_ATMPVC = 0x8 + PF_ATMSVC = 0x14 + PF_AX25 = 0x3 + PF_BLUETOOTH = 0x1f + PF_BRIDGE = 0x7 + PF_CAIF = 0x25 + PF_CAN = 0x1d + PF_DECnet = 0xc + PF_ECONET = 0x13 + PF_FILE = 0x1 + PF_IB = 0x1b + PF_IEEE802154 = 0x24 + PF_INET = 0x2 + PF_INET6 = 0xa + PF_IPX = 0x4 + PF_IRDA = 0x17 + PF_ISDN = 0x22 + PF_IUCV = 0x20 + PF_KCM = 0x29 + PF_KEY = 0xf + PF_LLC = 0x1a + PF_LOCAL = 0x1 + PF_MAX = 0x2e + PF_MCTP = 0x2d + PF_MPLS = 0x1c + PF_NETBEUI = 0xd + PF_NETLINK = 0x10 + PF_NETROM = 0x6 + PF_NFC = 0x27 + PF_PACKET = 0x11 + PF_PHONET = 0x23 + PF_PPPOX = 0x18 + PF_QIPCRTR = 0x2a + PF_R = 0x4 + PF_RDS = 0x15 + PF_ROSE = 0xb + PF_ROUTE = 0x10 + PF_RXRPC = 0x21 + PF_SECURITY = 0xe + PF_SMC = 0x2b + PF_SNA = 0x16 + PF_TIPC = 0x1e + PF_UNIX = 0x1 + PF_UNSPEC = 0x0 + PF_VSOCK = 0x28 + PF_W = 0x2 + PF_WANPIPE = 0x19 + PF_X = 0x1 + PF_X25 = 0x9 + PF_XDP = 0x2c PID_FS_MAGIC = 0x50494446 PIPEFS_MAGIC = 0x50495045 PPPIOCGNPMODE = 0xc008744c @@ -2758,6 +3047,23 @@ const ( PTRACE_SYSCALL_INFO_NONE = 0x0 PTRACE_SYSCALL_INFO_SECCOMP = 0x3 PTRACE_TRACEME = 0x0 + PT_AARCH64_MEMTAG_MTE = 0x70000002 + PT_DYNAMIC = 0x2 + PT_GNU_EH_FRAME = 0x6474e550 + PT_GNU_PROPERTY = 0x6474e553 + PT_GNU_RELRO = 0x6474e552 + PT_GNU_STACK = 0x6474e551 + PT_HIOS = 0x6fffffff + PT_HIPROC = 0x7fffffff + PT_INTERP = 0x3 + PT_LOAD = 0x1 + PT_LOOS = 0x60000000 + PT_LOPROC = 0x70000000 + PT_NOTE = 0x4 + PT_NULL = 0x0 + PT_PHDR = 0x6 + PT_SHLIB = 0x5 + PT_TLS = 0x7 P_ALL = 0x0 P_PGID = 0x2 P_PID = 0x1 @@ -3091,6 +3397,47 @@ const ( SEEK_MAX = 0x4 SEEK_SET = 0x0 SELINUX_MAGIC = 0xf97cff8c + SHF_ALLOC = 0x2 + SHF_EXCLUDE = 0x8000000 + SHF_EXECINSTR = 0x4 + SHF_GROUP = 0x200 + SHF_INFO_LINK = 0x40 + SHF_LINK_ORDER = 0x80 + SHF_MASKOS = 0xff00000 + SHF_MASKPROC = 0xf0000000 + SHF_MERGE = 0x10 + SHF_ORDERED = 0x4000000 + SHF_OS_NONCONFORMING = 0x100 + SHF_RELA_LIVEPATCH = 0x100000 + SHF_RO_AFTER_INIT = 0x200000 + SHF_STRINGS = 0x20 + SHF_TLS = 0x400 + SHF_WRITE = 0x1 + SHN_ABS = 0xfff1 + SHN_COMMON = 0xfff2 + SHN_HIPROC = 0xff1f + SHN_HIRESERVE = 0xffff + SHN_LIVEPATCH = 0xff20 + SHN_LOPROC = 0xff00 + SHN_LORESERVE = 0xff00 + SHN_UNDEF = 0x0 + SHT_DYNAMIC = 0x6 + SHT_DYNSYM = 0xb + SHT_HASH = 0x5 + SHT_HIPROC = 0x7fffffff + SHT_HIUSER = 0xffffffff + SHT_LOPROC = 0x70000000 + SHT_LOUSER = 0x80000000 + SHT_NOBITS = 0x8 + SHT_NOTE = 0x7 + SHT_NULL = 0x0 + SHT_NUM = 0xc + SHT_PROGBITS = 0x1 + SHT_REL = 0x9 + SHT_RELA = 0x4 + SHT_SHLIB = 0xa + SHT_STRTAB = 0x3 + SHT_SYMTAB = 0x2 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -3317,6 +3664,16 @@ const ( STATX_UID = 0x8 STATX_WRITE_ATOMIC = 0x10000 STATX__RESERVED = 0x80000000 + STB_GLOBAL = 0x1 + STB_LOCAL = 0x0 + STB_WEAK = 0x2 + STT_COMMON = 0x5 + STT_FILE = 0x4 + STT_FUNC = 0x2 + STT_NOTYPE = 0x0 + STT_OBJECT = 0x1 + STT_SECTION = 0x3 + STT_TLS = 0x6 SYNC_FILE_RANGE_WAIT_AFTER = 0x4 SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 SYNC_FILE_RANGE_WRITE = 0x2 @@ -3553,6 +3910,8 @@ const ( UTIME_OMIT = 0x3ffffffe V9FS_MAGIC = 0x1021997 VERASE = 0x2 + VER_FLG_BASE = 0x1 + VER_FLG_WEAK = 0x2 VINTR = 0x0 VKILL = 0x3 VLNEXT = 0xf diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go index 5cc1e8eb..8935d10a 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -2238,3 +2238,13 @@ func Mseal(b []byte, flags uint) (err error) { } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setMemPolicy(mode int, mask *CPUSet, size int) (err error) { + _, _, e1 := Syscall(SYS_SET_MEMPOLICY, uintptr(mode), uintptr(unsafe.Pointer(mask)), uintptr(size)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index 944e75a1..c1a46701 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -3590,6 +3590,8 @@ type Nhmsg struct { Flags uint32 } +const SizeofNhmsg = 0x8 + type NexthopGrp struct { Id uint32 Weight uint8 @@ -3597,6 +3599,8 @@ type NexthopGrp struct { Resvd2 uint16 } +const SizeofNexthopGrp = 0x8 + const ( NHA_UNSPEC = 0x0 NHA_ID = 0x1 @@ -6332,3 +6336,30 @@ type SockDiagReq struct { } const RTM_NEWNVLAN = 0x70 + +const ( + MPOL_BIND = 0x2 + MPOL_DEFAULT = 0x0 + MPOL_F_ADDR = 0x2 + MPOL_F_MEMS_ALLOWED = 0x4 + MPOL_F_MOF = 0x8 + MPOL_F_MORON = 0x10 + MPOL_F_NODE = 0x1 + MPOL_F_NUMA_BALANCING = 0x2000 + MPOL_F_RELATIVE_NODES = 0x4000 + MPOL_F_SHARED = 0x1 + MPOL_F_STATIC_NODES = 0x8000 + MPOL_INTERLEAVE = 0x3 + MPOL_LOCAL = 0x4 + MPOL_MAX = 0x7 + MPOL_MF_INTERNAL = 0x10 + MPOL_MF_LAZY = 0x8 + MPOL_MF_MOVE_ALL = 0x4 + MPOL_MF_MOVE = 0x2 + MPOL_MF_STRICT = 0x1 + MPOL_MF_VALID = 0x7 + MPOL_MODE_FLAGS = 0xe000 + MPOL_PREFERRED = 0x1 + MPOL_PREFERRED_MANY = 0x5 + MPOL_WEIGHTED_INTERLEAVE = 0x6 +) diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index bd513373..69439df2 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -892,8 +892,12 @@ const socket_error = uintptr(^uint32(0)) //sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar //sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx //sys GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex +//sys GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) = iphlpapi.GetIpForwardEntry2 +//sys GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) = iphlpapi.GetIpForwardTable2 //sys GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry +//sys FreeMibTable(memory unsafe.Pointer) = iphlpapi.FreeMibTable //sys NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange +//sys NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyRouteChange2 //sys NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange //sys CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2 @@ -916,6 +920,17 @@ type RawSockaddrInet6 struct { Scope_id uint32 } +// RawSockaddrInet is a union that contains an IPv4, an IPv6 address, or an address family. See +// https://learn.microsoft.com/en-us/windows/win32/api/ws2ipdef/ns-ws2ipdef-sockaddr_inet. +// +// A [*RawSockaddrInet] may be converted to a [*RawSockaddrInet4] or [*RawSockaddrInet6] using +// unsafe, depending on the address family. +type RawSockaddrInet struct { + Family uint16 + Port uint16 + Data [6]uint32 +} + type RawSockaddr struct { Family uint16 Data [14]int8 diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 358be3c7..6e4f50eb 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -2320,6 +2320,82 @@ type MibIfRow2 struct { OutQLen uint64 } +// IP_ADDRESS_PREFIX stores an IP address prefix. See +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-ip_address_prefix. +type IpAddressPrefix struct { + Prefix RawSockaddrInet + PrefixLength uint8 +} + +// NL_ROUTE_ORIGIN enumeration from nldef.h or +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_origin. +const ( + NlroManual = 0 + NlroWellKnown = 1 + NlroDHCP = 2 + NlroRouterAdvertisement = 3 + Nlro6to4 = 4 +) + +// NL_ROUTE_ORIGIN enumeration from nldef.h or +// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_protocol. +const ( + MIB_IPPROTO_OTHER = 1 + MIB_IPPROTO_LOCAL = 2 + MIB_IPPROTO_NETMGMT = 3 + MIB_IPPROTO_ICMP = 4 + MIB_IPPROTO_EGP = 5 + MIB_IPPROTO_GGP = 6 + MIB_IPPROTO_HELLO = 7 + MIB_IPPROTO_RIP = 8 + MIB_IPPROTO_IS_IS = 9 + MIB_IPPROTO_ES_IS = 10 + MIB_IPPROTO_CISCO = 11 + MIB_IPPROTO_BBN = 12 + MIB_IPPROTO_OSPF = 13 + MIB_IPPROTO_BGP = 14 + MIB_IPPROTO_IDPR = 15 + MIB_IPPROTO_EIGRP = 16 + MIB_IPPROTO_DVMRP = 17 + MIB_IPPROTO_RPL = 18 + MIB_IPPROTO_DHCP = 19 + MIB_IPPROTO_NT_AUTOSTATIC = 10002 + MIB_IPPROTO_NT_STATIC = 10006 + MIB_IPPROTO_NT_STATIC_NON_DOD = 10007 +) + +// MIB_IPFORWARD_ROW2 stores information about an IP route entry. See +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_row2. +type MibIpForwardRow2 struct { + InterfaceLuid uint64 + InterfaceIndex uint32 + DestinationPrefix IpAddressPrefix + NextHop RawSockaddrInet + SitePrefixLength uint8 + ValidLifetime uint32 + PreferredLifetime uint32 + Metric uint32 + Protocol uint32 + Loopback uint8 + AutoconfigureAddress uint8 + Publish uint8 + Immortal uint8 + Age uint32 + Origin uint32 +} + +// MIB_IPFORWARD_TABLE2 contains a table of IP route entries. See +// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_table2. +type MibIpForwardTable2 struct { + NumEntries uint32 + Table [1]MibIpForwardRow2 +} + +// Rows returns the IP route entries in the table. +func (t *MibIpForwardTable2) Rows() []MibIpForwardRow2 { + return unsafe.Slice(&t.Table[0], t.NumEntries) +} + // MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See // https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row. type MibUnicastIpAddressRow struct { diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 426151a0..f25b7308 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -182,13 +182,17 @@ var ( procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") procCancelMibChangeNotify2 = modiphlpapi.NewProc("CancelMibChangeNotify2") + procFreeMibTable = modiphlpapi.NewProc("FreeMibTable") procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") procGetIfEntry2Ex = modiphlpapi.NewProc("GetIfEntry2Ex") + procGetIpForwardEntry2 = modiphlpapi.NewProc("GetIpForwardEntry2") + procGetIpForwardTable2 = modiphlpapi.NewProc("GetIpForwardTable2") procGetUnicastIpAddressEntry = modiphlpapi.NewProc("GetUnicastIpAddressEntry") procNotifyIpInterfaceChange = modiphlpapi.NewProc("NotifyIpInterfaceChange") + procNotifyRouteChange2 = modiphlpapi.NewProc("NotifyRouteChange2") procNotifyUnicastIpAddressChange = modiphlpapi.NewProc("NotifyUnicastIpAddressChange") procAddDllDirectory = modkernel32.NewProc("AddDllDirectory") procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") @@ -1624,6 +1628,11 @@ func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { return } +func FreeMibTable(memory unsafe.Pointer) { + syscall.SyscallN(procFreeMibTable.Addr(), uintptr(memory)) + return +} + func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { r0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer))) if r0 != 0 { @@ -1664,6 +1673,22 @@ func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { return } +func GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) { + r0, _, _ := syscall.SyscallN(procGetIpForwardEntry2.Addr(), uintptr(unsafe.Pointer(row))) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode error) { + r0, _, _ := syscall.SyscallN(procGetIpForwardTable2.Addr(), uintptr(family), uintptr(unsafe.Pointer(table))) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) { r0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), uintptr(unsafe.Pointer(row))) if r0 != 0 { @@ -1684,6 +1709,18 @@ func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsa return } +func NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { + var _p0 uint32 + if initialNotification { + _p0 = 1 + } + r0, _, _ := syscall.SyscallN(procNotifyRouteChange2.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) { var _p0 uint32 if initialNotification { diff --git a/vendor/golang.org/x/term/terminal.go b/vendor/golang.org/x/term/terminal.go index bddb2e2a..9255449b 100644 --- a/vendor/golang.org/x/term/terminal.go +++ b/vendor/golang.org/x/term/terminal.go @@ -413,7 +413,7 @@ func (t *Terminal) eraseNPreviousChars(n int) { } } -// countToLeftWord returns then number of characters from the cursor to the +// countToLeftWord returns the number of characters from the cursor to the // start of the previous word. func (t *Terminal) countToLeftWord() int { if t.pos == 0 { @@ -438,7 +438,7 @@ func (t *Terminal) countToLeftWord() int { return t.pos - pos } -// countToRightWord returns then number of characters from the cursor to the +// countToRightWord returns the number of characters from the cursor to the // start of the next word. func (t *Terminal) countToRightWord() int { pos := t.pos @@ -478,7 +478,7 @@ func visualLength(runes []rune) int { return length } -// histroryAt unlocks the terminal and relocks it while calling History.At. +// historyAt unlocks the terminal and relocks it while calling History.At. func (t *Terminal) historyAt(idx int) (string, bool) { t.lock.Unlock() // Unlock to avoid deadlock if History methods use the output writer. defer t.lock.Lock() // panic in At (or Len) protection. diff --git a/vendor/golang.org/x/tools/go/ast/inspector/cursor.go b/vendor/golang.org/x/tools/go/ast/inspector/cursor.go index 7e72d3c2..fc9bbc71 100644 --- a/vendor/golang.org/x/tools/go/ast/inspector/cursor.go +++ b/vendor/golang.org/x/tools/go/ast/inspector/cursor.go @@ -467,7 +467,9 @@ func (c Cursor) FindByPos(start, end token.Pos) (Cursor, bool) { // This algorithm could be implemented using c.Inspect, // but it is about 2.5x slower. - best := int32(-1) // push index of latest (=innermost) node containing range + // best is the push-index of the latest (=innermost) node containing range. + // (Beware: latest is not always innermost because FuncDecl.{Name,Type} overlap.) + best := int32(-1) for i, limit := c.indices(); i < limit; i++ { ev := events[i] if ev.index > i { // push? @@ -481,6 +483,19 @@ func (c Cursor) FindByPos(start, end token.Pos) (Cursor, bool) { continue } } else { + // Edge case: FuncDecl.Name and .Type overlap: + // Don't update best from Name to FuncDecl.Type. + // + // The condition can be read as: + // - n is FuncType + // - n.parent is FuncDecl + // - best is strictly beneath the FuncDecl + if ev.typ == 1< ev.parent { + continue + } + nodeEnd = n.End() if n.Pos() > start { break // disjoint, after; stop diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go index af6a60d7..c546b1b6 100644 --- a/vendor/golang.org/x/tools/go/packages/visit.go +++ b/vendor/golang.org/x/tools/go/packages/visit.go @@ -78,7 +78,7 @@ func PrintErrors(pkgs []*Package) int { return n } -// Postorder returns an iterator over the the packages in +// Postorder returns an iterator over the packages in // the import graph whose roots are pkg. // Packages are enumerated in dependencies-first order. func Postorder(pkgs []*Package) iter.Seq[*Package] { diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go index 6c0c7496..6646bf55 100644 --- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go @@ -249,7 +249,7 @@ func (enc *Encoder) For(obj types.Object) (Path, error) { case *types.Func: // A func, if not package-level, must be a method. - if recv := obj.Type().(*types.Signature).Recv(); recv == nil { + if recv := obj.Signature().Recv(); recv == nil { return "", fmt.Errorf("func is not a method: %v", obj) } @@ -405,7 +405,7 @@ func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { return "", false } - _, named := typesinternal.ReceiverNamed(meth.Type().(*types.Signature).Recv()) + _, named := typesinternal.ReceiverNamed(meth.Signature().Recv()) if named == nil { return "", false } diff --git a/vendor/golang.org/x/tools/go/types/typeutil/map.go b/vendor/golang.org/x/tools/go/types/typeutil/map.go index f035a0b6..36624572 100644 --- a/vendor/golang.org/x/tools/go/types/typeutil/map.go +++ b/vendor/golang.org/x/tools/go/types/typeutil/map.go @@ -304,8 +304,7 @@ func (h hasher) hash(t types.Type) uint32 { case *types.Named: hash := h.hashTypeName(t.Obj()) targs := t.TypeArgs() - for i := 0; i < targs.Len(); i++ { - targ := targs.At(i) + for targ := range targs.Types() { hash += 2 * h.hash(targ) } return hash diff --git a/vendor/golang.org/x/tools/imports/forward.go b/vendor/golang.org/x/tools/imports/forward.go index 22ae7777..5d120d07 100644 --- a/vendor/golang.org/x/tools/imports/forward.go +++ b/vendor/golang.org/x/tools/imports/forward.go @@ -69,3 +69,9 @@ func Process(filename string, src []byte, opt *Options) ([]byte, error) { } return intimp.Process(filename, src, intopt) } + +// VendorlessPath returns the devendorized version of the import path ipath. +// For example, VendorlessPath("foo/barbendor/a/b") return "a/b". +func VendorlessPath(ipath string) string { + return intimp.VendorlessPath(ipath) +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go index 734c4619..555ef626 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go @@ -34,7 +34,7 @@ type fileInfo struct { const maxlines = 64 * 1024 func (s *fakeFileSet) pos(file string, line, column int) token.Pos { - // TODO(mdempsky): Make use of column. + _ = column // TODO(mdempsky): Make use of column. // Since we don't know the set of needed file positions, we reserve maxlines // positions per file. We delay calling token.File.SetLines until all diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go index 4a4357d2..2bef2b05 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -829,8 +829,7 @@ func (p *iexporter) doDecl(obj types.Object) { // their name must be qualified before exporting recv. if rparams := sig.RecvTypeParams(); rparams.Len() > 0 { prefix := obj.Name() + "." + m.Name() - for i := 0; i < rparams.Len(); i++ { - rparam := rparams.At(i) + for rparam := range rparams.TypeParams() { name := tparamExportName(prefix, rparam) w.p.tparamNames[rparam.Obj()] = name } @@ -944,6 +943,13 @@ func (w *exportWriter) posV0(pos token.Pos) { } func (w *exportWriter) pkg(pkg *types.Package) { + if pkg == nil { + // [exportWriter.typ] accepts a nil pkg only for types + // of constants, which cannot contain named objects + // such as fields or methods and thus should never + // reach this method (#76222). + panic("nil package") + } // Ensure any referenced packages are declared in the main index. w.p.allPkgs[pkg] = true @@ -959,9 +965,11 @@ func (w *exportWriter) qualifiedType(obj *types.TypeName) { w.pkg(obj.Pkg()) } -// TODO(rfindley): what does 'pkg' even mean here? It would be better to pass -// it in explicitly into signatures and structs that may use it for -// constructing fields. +// typ emits the specified type. +// +// Objects within the type (struct fields and interface methods) are +// qualified by pkg. It may be nil if the type cannot contain objects, +// such as the type of a constant. func (w *exportWriter) typ(t types.Type, pkg *types.Package) { w.data.uint64(w.p.typOff(t, pkg)) } @@ -991,6 +999,7 @@ func (w *exportWriter) startType(k itag) { w.data.uint64(uint64(k)) } +// doTyp is the implementation of [exportWriter.typ]. func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { if trace { w.p.trace("exporting type %s (%T)", t, t) @@ -1064,7 +1073,7 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { case *types.Signature: w.startType(signatureType) - w.pkg(pkg) + w.pkg(pkg) // qualifies param/result vars w.signature(t) case *types.Struct: @@ -1110,19 +1119,19 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { case *types.Interface: w.startType(interfaceType) - w.pkg(pkg) + w.pkg(pkg) // qualifies unexported method funcs n := t.NumEmbeddeds() w.uint64(uint64(n)) for i := 0; i < n; i++ { ft := t.EmbeddedType(i) - tPkg := pkg if named, _ := types.Unalias(ft).(*types.Named); named != nil { w.pos(named.Obj().Pos()) } else { + // e.g. ~int w.pos(token.NoPos) } - w.typ(ft, tPkg) + w.typ(ft, pkg) } // See comment for struct fields. In shallow mode we change the encoding @@ -1223,20 +1232,19 @@ func (w *exportWriter) signature(sig *types.Signature) { func (w *exportWriter) typeList(ts *types.TypeList, pkg *types.Package) { w.uint64(uint64(ts.Len())) - for i := 0; i < ts.Len(); i++ { - w.typ(ts.At(i), pkg) + for t := range ts.Types() { + w.typ(t, pkg) } } func (w *exportWriter) tparamList(prefix string, list *types.TypeParamList, pkg *types.Package) { ll := uint64(list.Len()) w.uint64(ll) - for i := 0; i < list.Len(); i++ { - tparam := list.At(i) + for tparam := range list.TypeParams() { // Set the type parameter exportName before exporting its type. exportName := tparamExportName(prefix, tparam) w.p.tparamNames[tparam.Obj()] = exportName - w.typ(list.At(i), pkg) + w.typ(tparam, pkg) } } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go index 82e6c9d2..4d6d5009 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go @@ -432,10 +432,10 @@ func (p *iimporter) doDecl(pkg *types.Package, name string) { errorf("%v.%v not in index", pkg, name) } - r := &importReader{p: p, currPkg: pkg} + r := &importReader{p: p} r.declReader.Reset(p.declData[off:]) - r.obj(name) + r.obj(pkg, name) } func (p *iimporter) stringAt(off uint64) string { @@ -551,7 +551,6 @@ func canReuse(def *types.Named, rhs types.Type) bool { type importReader struct { p *iimporter declReader bytes.Reader - currPkg *types.Package prevFile string prevLine int64 prevColumn int64 @@ -565,7 +564,8 @@ type importReader struct { // for 1.24, but the fix was not worth back-porting). var markBlack = func(name *types.TypeName) {} -func (r *importReader) obj(name string) { +// obj decodes and declares the package-level object denoted by (pkg, name). +func (r *importReader) obj(pkg *types.Package, name string) { tag := r.byte() pos := r.pos() @@ -576,27 +576,27 @@ func (r *importReader) obj(name string) { tparams = r.tparamList() } typ := r.typ() - obj := aliases.NewAlias(r.p.aliases, pos, r.currPkg, name, typ, tparams) + obj := aliases.NewAlias(r.p.aliases, pos, pkg, name, typ, tparams) markBlack(obj) // workaround for golang/go#69912 r.declare(obj) case constTag: typ, val := r.value() - r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) + r.declare(types.NewConst(pos, pkg, name, typ, val)) case funcTag, genericFuncTag: var tparams []*types.TypeParam if tag == genericFuncTag { tparams = r.tparamList() } - sig := r.signature(nil, nil, tparams) - r.declare(types.NewFunc(pos, r.currPkg, name, sig)) + sig := r.signature(pkg, nil, nil, tparams) + r.declare(types.NewFunc(pos, pkg, name, sig)) case typeTag, genericTypeTag: // Types can be recursive. We need to setup a stub // declaration before recursing. - obj := types.NewTypeName(pos, r.currPkg, name, nil) + obj := types.NewTypeName(pos, pkg, name, nil) named := types.NewNamed(obj, nil, nil) markBlack(obj) // workaround for golang/go#69912 @@ -616,7 +616,7 @@ func (r *importReader) obj(name string) { for n := r.uint64(); n > 0; n-- { mpos := r.pos() mname := r.ident() - recv := r.param() + recv := r.param(pkg) // If the receiver has any targs, set those as the // rparams of the method (since those are the @@ -630,9 +630,9 @@ func (r *importReader) obj(name string) { rparams[i] = types.Unalias(targs.At(i)).(*types.TypeParam) } } - msig := r.signature(recv, rparams, nil) + msig := r.signature(pkg, recv, rparams, nil) - named.AddMethod(types.NewFunc(mpos, r.currPkg, mname, msig)) + named.AddMethod(types.NewFunc(mpos, pkg, mname, msig)) } } @@ -644,12 +644,12 @@ func (r *importReader) obj(name string) { errorf("unexpected type param type") } name0 := tparamName(name) - tn := types.NewTypeName(pos, r.currPkg, name0, nil) + tn := types.NewTypeName(pos, pkg, name0, nil) t := types.NewTypeParam(tn, nil) // To handle recursive references to the typeparam within its // bound, save the partial type in tparamIndex before reading the bounds. - id := ident{r.currPkg, name} + id := ident{pkg, name} r.p.tparamIndex[id] = t var implicit bool if r.p.version >= iexportVersionGo1_18 { @@ -672,7 +672,7 @@ func (r *importReader) obj(name string) { case varTag: typ := r.typ() - v := types.NewVar(pos, r.currPkg, name, typ) + v := types.NewVar(pos, pkg, name, typ) typesinternal.SetVarKind(v, typesinternal.PackageVar) r.declare(v) @@ -905,11 +905,11 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { case mapType: return types.NewMap(r.typ(), r.typ()) case signatureType: - r.currPkg = r.pkg() - return r.signature(nil, nil, nil) + paramPkg := r.pkg() + return r.signature(paramPkg, nil, nil, nil) case structType: - r.currPkg = r.pkg() + fieldPkg := r.pkg() fields := make([]*types.Var, r.uint64()) tags := make([]string, len(fields)) @@ -932,7 +932,7 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { // discussed in iexport.go, this is not correct, but mostly works and is // preferable to failing (for now at least). if field == nil { - field = types.NewField(fpos, r.currPkg, fname, ftyp, emb) + field = types.NewField(fpos, fieldPkg, fname, ftyp, emb) } fields[i] = field @@ -941,7 +941,7 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { return types.NewStruct(fields, tags) case interfaceType: - r.currPkg = r.pkg() + methodPkg := r.pkg() // qualifies methods and their param/result vars embeddeds := make([]types.Type, r.uint64()) for i := range embeddeds { @@ -963,12 +963,12 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { // don't agree with this. var recv *types.Var if base != nil { - recv = types.NewVar(token.NoPos, r.currPkg, "", base) + recv = types.NewVar(token.NoPos, methodPkg, "", base) } - msig := r.signature(recv, nil, nil) + msig := r.signature(methodPkg, recv, nil, nil) if method == nil { - method = types.NewFunc(mpos, r.currPkg, mname, msig) + method = types.NewFunc(mpos, methodPkg, mname, msig) } methods[i] = method } @@ -1049,9 +1049,9 @@ func (r *importReader) objectPathObject() types.Object { return obj } -func (r *importReader) signature(recv *types.Var, rparams []*types.TypeParam, tparams []*types.TypeParam) *types.Signature { - params := r.paramList() - results := r.paramList() +func (r *importReader) signature(paramPkg *types.Package, recv *types.Var, rparams []*types.TypeParam, tparams []*types.TypeParam) *types.Signature { + params := r.paramList(paramPkg) + results := r.paramList(paramPkg) variadic := params.Len() > 0 && r.bool() return types.NewSignatureType(recv, rparams, tparams, params, results, variadic) } @@ -1070,19 +1070,19 @@ func (r *importReader) tparamList() []*types.TypeParam { return xs } -func (r *importReader) paramList() *types.Tuple { +func (r *importReader) paramList(pkg *types.Package) *types.Tuple { xs := make([]*types.Var, r.uint64()) for i := range xs { - xs[i] = r.param() + xs[i] = r.param(pkg) } return types.NewTuple(xs...) } -func (r *importReader) param() *types.Var { +func (r *importReader) param(pkg *types.Package) *types.Var { pos := r.pos() name := r.ident() typ := r.typ() - return types.NewParam(pos, r.currPkg, name, typ) + return types.NewParam(pos, pkg, name, typ) } func (r *importReader) bool() bool { diff --git a/vendor/golang.org/x/tools/internal/stdlib/deps.go b/vendor/golang.org/x/tools/internal/stdlib/deps.go index 96ad6c58..581784da 100644 --- a/vendor/golang.org/x/tools/internal/stdlib/deps.go +++ b/vendor/golang.org/x/tools/internal/stdlib/deps.go @@ -12,354 +12,508 @@ type pkginfo struct { } var deps = [...]pkginfo{ - {"archive/tar", "\x03k\x03E;\x01\n\x01$\x01\x01\x02\x05\b\x02\x01\x02\x02\f"}, - {"archive/zip", "\x02\x04a\a\x03\x12\x021;\x01+\x05\x01\x0f\x03\x02\x0e\x04"}, - {"bufio", "\x03k\x83\x01D\x14"}, - {"bytes", "n*Y\x03\fG\x02\x02"}, + {"archive/tar", "\x03n\x03E<\x01\n\x01$\x01\x01\x02\x05\b\x02\x01\x02\x02\f"}, + {"archive/zip", "\x02\x04d\a\x03\x12\x021<\x01+\x05\x01\x0f\x03\x02\x0e\x04"}, + {"bufio", "\x03n\x84\x01D\x14"}, + {"bytes", "q*Z\x03\fG\x02\x02"}, {"cmp", ""}, - {"compress/bzip2", "\x02\x02\xed\x01A"}, - {"compress/flate", "\x02l\x03\x80\x01\f\x033\x01\x03"}, - {"compress/gzip", "\x02\x04a\a\x03\x14lT"}, - {"compress/lzw", "\x02l\x03\x80\x01"}, - {"compress/zlib", "\x02\x04a\a\x03\x12\x01m"}, - {"container/heap", "\xb3\x02"}, + {"compress/bzip2", "\x02\x02\xf1\x01A"}, + {"compress/flate", "\x02o\x03\x81\x01\f\x033\x01\x03"}, + {"compress/gzip", "\x02\x04d\a\x03\x14mT"}, + {"compress/lzw", "\x02o\x03\x81\x01"}, + {"compress/zlib", "\x02\x04d\a\x03\x12\x01n"}, + {"container/heap", "\xb7\x02"}, {"container/list", ""}, {"container/ring", ""}, - {"context", "n\\m\x01\r"}, - {"crypto", "\x83\x01nC"}, - {"crypto/aes", "\x10\n\a\x93\x02"}, - {"crypto/cipher", "\x03\x1e\x01\x01\x1e\x11\x1c+X"}, - {"crypto/des", "\x10\x13\x1e-+\x9b\x01\x03"}, - {"crypto/dsa", "A\x04)\x83\x01\r"}, - {"crypto/ecdh", "\x03\v\f\x0e\x04\x15\x04\r\x1c\x83\x01"}, - {"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\a\v\x05\x01\x04\f\x01\x1c\x83\x01\r\x05K\x01"}, - {"crypto/ed25519", "\x0e\x1c\x11\x06\n\a\x1c\x83\x01C"}, - {"crypto/elliptic", "0>\x83\x01\r9"}, - {"crypto/fips140", " \x05"}, - {"crypto/hkdf", "-\x13\x01-\x15"}, - {"crypto/hmac", "\x1a\x14\x12\x01\x111"}, - {"crypto/internal/boring", "\x0e\x02\rf"}, - {"crypto/internal/boring/bbig", "\x1a\xe4\x01M"}, - {"crypto/internal/boring/bcache", "\xb8\x02\x13"}, + {"context", "q[o\x01\r"}, + {"crypto", "\x86\x01oC"}, + {"crypto/aes", "\x10\n\t\x95\x02"}, + {"crypto/cipher", "\x03 \x01\x01\x1f\x11\x1c+Y"}, + {"crypto/des", "\x10\x15\x1f-+\x9c\x01\x03"}, + {"crypto/dsa", "D\x04)\x84\x01\r"}, + {"crypto/ecdh", "\x03\v\f\x10\x04\x16\x04\r\x1c\x84\x01"}, + {"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x10\a\v\x06\x01\x04\f\x01\x1c\x84\x01\r\x05K\x01"}, + {"crypto/ed25519", "\x0e\x1e\x11\a\n\a\x1c\x84\x01C"}, + {"crypto/elliptic", "2?\x84\x01\r9"}, + {"crypto/fips140", "\"\x05"}, + {"crypto/hkdf", "/\x14\x01-\x15"}, + {"crypto/hmac", "\x1a\x16\x13\x01\x111"}, + {"crypto/internal/boring", "\x0e\x02\ri"}, + {"crypto/internal/boring/bbig", "\x1a\xe8\x01M"}, + {"crypto/internal/boring/bcache", "\xbc\x02\x13"}, {"crypto/internal/boring/sig", ""}, - {"crypto/internal/cryptotest", "\x03\r\n\x06$\x0e\x19\x06\x12\x12 \x04\a\t\x16\x01\x11\x11\x1b\x01\a\x05\b\x03\x05\v"}, - {"crypto/internal/entropy", "F"}, - {"crypto/internal/fips140", "?/\x15\xa7\x01\v\x16"}, - {"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x05\x01\x01\x05*\x92\x014"}, - {"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x05\x01\x06*\x8f\x01"}, - {"crypto/internal/fips140/alias", "\xcb\x02"}, - {"crypto/internal/fips140/bigmod", "%\x18\x01\x06*\x92\x01"}, - {"crypto/internal/fips140/check", " \x0e\x06\t\x02\xb2\x01Z"}, - {"crypto/internal/fips140/check/checktest", "%\x85\x02!"}, - {"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x05\b\x01(\x83\x01\x0f7"}, - {"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\r1\x83\x01\x0f7"}, - {"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x068\x15nF"}, - {"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v8\xc6\x01\x03"}, - {"crypto/internal/fips140/edwards25519", "%\a\f\x051\x92\x017"}, - {"crypto/internal/fips140/edwards25519/field", "%\x13\x051\x92\x01"}, - {"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x06:\x15"}, - {"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x018\x15"}, - {"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x051"}, - {"crypto/internal/fips140/nistec", "%\f\a\x051\x92\x01*\r\x14"}, - {"crypto/internal/fips140/nistec/fiat", "%\x136\x92\x01"}, - {"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x06:\x15"}, - {"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x026\x15nF"}, - {"crypto/internal/fips140/sha256", "\x03\x1d\x1d\x01\x06*\x15}"}, - {"crypto/internal/fips140/sha3", "\x03\x1d\x18\x05\x010\x92\x01K"}, - {"crypto/internal/fips140/sha512", "\x03\x1d\x1d\x01\x06*\x15}"}, - {"crypto/internal/fips140/ssh", "%^"}, - {"crypto/internal/fips140/subtle", "#\x1a\xc3\x01"}, - {"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x028\x15"}, - {"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\t1\x15"}, - {"crypto/internal/fips140cache", "\xaa\x02\r&"}, + {"crypto/internal/constanttime", ""}, + {"crypto/internal/cryptotest", "\x03\r\n\b%\x0e\x19\x06\x12\x12 \x04\x06\t\x18\x01\x11\x11\x1b\x01\a\x05\b\x03\x05\v"}, + {"crypto/internal/entropy", "I"}, + {"crypto/internal/entropy/v1.0.0", "B/\x93\x018\x13"}, + {"crypto/internal/fips140", "A0\xbd\x01\v\x16"}, + {"crypto/internal/fips140/aes", "\x03\x1f\x03\x02\x13\x05\x01\x01\x06*\x93\x014"}, + {"crypto/internal/fips140/aes/gcm", "\"\x01\x02\x02\x02\x11\x05\x01\a*\x90\x01"}, + {"crypto/internal/fips140/alias", "\xcf\x02"}, + {"crypto/internal/fips140/bigmod", "'\x18\x01\a*\x93\x01"}, + {"crypto/internal/fips140/check", "\"\x0e\x06\t\x02\xb4\x01Z"}, + {"crypto/internal/fips140/check/checktest", "'\x87\x02!"}, + {"crypto/internal/fips140/drbg", "\x03\x1e\x01\x01\x04\x13\x05\t\x01(\x84\x01\x0f7\x01"}, + {"crypto/internal/fips140/ecdh", "\x03\x1f\x05\x02\t\r2\x84\x01\x0f7"}, + {"crypto/internal/fips140/ecdsa", "\x03\x1f\x04\x01\x02\a\x02\x069\x15oF"}, + {"crypto/internal/fips140/ed25519", "\x03\x1f\x05\x02\x04\v9\xc7\x01\x03"}, + {"crypto/internal/fips140/edwards25519", "\x1e\t\a\x112\x93\x017"}, + {"crypto/internal/fips140/edwards25519/field", "'\x13\x052\x93\x01"}, + {"crypto/internal/fips140/hkdf", "\x03\x1f\x05\t\x06;\x15"}, + {"crypto/internal/fips140/hmac", "\x03\x1f\x14\x01\x019\x15"}, + {"crypto/internal/fips140/mlkem", "\x03\x1f\x05\x02\x0e\x03\x052\xca\x01"}, + {"crypto/internal/fips140/nistec", "\x1e\t\f\f2\x93\x01*\r\x14"}, + {"crypto/internal/fips140/nistec/fiat", "'\x137\x93\x01"}, + {"crypto/internal/fips140/pbkdf2", "\x03\x1f\x05\t\x06;\x15"}, + {"crypto/internal/fips140/rsa", "\x03\x1b\x04\x04\x01\x02\r\x01\x01\x027\x15oF"}, + {"crypto/internal/fips140/sha256", "\x03\x1f\x1d\x01\a*\x15~"}, + {"crypto/internal/fips140/sha3", "\x03\x1f\x18\x05\x011\x93\x01K"}, + {"crypto/internal/fips140/sha512", "\x03\x1f\x1d\x01\a*\x15~"}, + {"crypto/internal/fips140/ssh", "'_"}, + {"crypto/internal/fips140/subtle", "\x1e\a\x1a\xc5\x01"}, + {"crypto/internal/fips140/tls12", "\x03\x1f\x05\t\x06\x029\x15"}, + {"crypto/internal/fips140/tls13", "\x03\x1f\x05\b\a\t2\x15"}, + {"crypto/internal/fips140cache", "\xae\x02\r&"}, {"crypto/internal/fips140deps", ""}, - {"crypto/internal/fips140deps/byteorder", "\x99\x01"}, - {"crypto/internal/fips140deps/cpu", "\xae\x01\a"}, - {"crypto/internal/fips140deps/godebug", "\xb6\x01"}, - {"crypto/internal/fips140hash", "5\x1b3\xc8\x01"}, - {"crypto/internal/fips140only", "'\r\x01\x01M3;"}, + {"crypto/internal/fips140deps/byteorder", "\x9c\x01"}, + {"crypto/internal/fips140deps/cpu", "\xb1\x01\a"}, + {"crypto/internal/fips140deps/godebug", "\xb9\x01"}, + {"crypto/internal/fips140deps/time", "\xc9\x02"}, + {"crypto/internal/fips140hash", "7\x1c3\xc9\x01"}, + {"crypto/internal/fips140only", ")\r\x01\x01N3<"}, {"crypto/internal/fips140test", ""}, - {"crypto/internal/hpke", "\x0e\x01\x01\x03\x053#+gM"}, - {"crypto/internal/impl", "\xb5\x02"}, - {"crypto/internal/randutil", "\xf1\x01\x12"}, - {"crypto/internal/sysrand", "nn! \r\r\x01\x01\f\x06"}, - {"crypto/internal/sysrand/internal/seccomp", "n"}, - {"crypto/md5", "\x0e3-\x15\x16g"}, - {"crypto/mlkem", "/"}, - {"crypto/pbkdf2", "2\x0e\x01-\x15"}, - {"crypto/rand", "\x1a\x06\a\x1a\x04\x01(\x83\x01\rM"}, - {"crypto/rc4", "#\x1e-\xc6\x01"}, - {"crypto/rsa", "\x0e\f\x01\t\x0f\r\x01\x04\x06\a\x1c\x03\x123;\f\x01"}, - {"crypto/sha1", "\x0e\f'\x03*\x15\x16\x15R"}, - {"crypto/sha256", "\x0e\f\x1aO"}, - {"crypto/sha3", "\x0e'N\xc8\x01"}, - {"crypto/sha512", "\x0e\f\x1cM"}, - {"crypto/subtle", "8\x9b\x01W"}, - {"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x02\x01\x01\a\x01\r\n\x01\t\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x12\x16\x15\b;\x16\x16\r\b\x01\x01\x01\x02\x01\r\x06\x02\x01\x0f"}, - {"crypto/tls/internal/fips140tls", "\x17\xa1\x02"}, - {"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x012\x05\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x038\x01\x02\b\x01\x01\x02\a\x10\x05\x01\x06\x02\x05\n\x01\x02\x0e\x02\x01\x01\x02\x03\x01"}, - {"crypto/x509/pkix", "d\x06\a\x8d\x01G"}, - {"database/sql", "\x03\nK\x16\x03\x80\x01\v\a\"\x05\b\x02\x03\x01\r\x02\x02\x02"}, - {"database/sql/driver", "\ra\x03\xb4\x01\x0f\x11"}, - {"debug/buildinfo", "\x03X\x02\x01\x01\b\a\x03e\x19\x02\x01+\x0f\x1f"}, - {"debug/dwarf", "\x03d\a\x03\x80\x011\x11\x01\x01"}, - {"debug/elf", "\x03\x06Q\r\a\x03e\x1a\x01,\x17\x01\x16"}, - {"debug/gosym", "\x03d\n\xc2\x01\x01\x01\x02"}, - {"debug/macho", "\x03\x06Q\r\ne\x1b,\x17\x01"}, - {"debug/pe", "\x03\x06Q\r\a\x03e\x1b,\x17\x01\x16"}, - {"debug/plan9obj", "g\a\x03e\x1b,"}, - {"embed", "n*@\x19\x01S"}, + {"crypto/internal/hpke", "\x0e\x01\x01\x03\x056#+hM"}, + {"crypto/internal/impl", "\xb9\x02"}, + {"crypto/internal/randutil", "\xf5\x01\x12"}, + {"crypto/internal/sysrand", "qo! \r\r\x01\x01\f\x06"}, + {"crypto/internal/sysrand/internal/seccomp", "q"}, + {"crypto/md5", "\x0e6-\x15\x16h"}, + {"crypto/mlkem", "1"}, + {"crypto/pbkdf2", "4\x0f\x01-\x15"}, + {"crypto/rand", "\x1a\b\a\x1b\x04\x01(\x84\x01\rM"}, + {"crypto/rc4", "%\x1f-\xc7\x01"}, + {"crypto/rsa", "\x0e\f\x01\v\x0f\x0e\x01\x04\x06\a\x1c\x03\x123<\f\x01"}, + {"crypto/sha1", "\x0e\f*\x03*\x15\x16\x15S"}, + {"crypto/sha256", "\x0e\f\x1cP"}, + {"crypto/sha3", "\x0e)O\xc9\x01"}, + {"crypto/sha512", "\x0e\f\x1eN"}, + {"crypto/subtle", "\x1e\x1c\x9c\x01X"}, + {"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x02\x01\x01\t\x01\r\n\x01\n\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x12\x16\x15\b<\x16\x16\r\b\x01\x01\x01\x02\x01\r\x06\x02\x01\x0f"}, + {"crypto/tls/internal/fips140tls", "\x17\xa5\x02"}, + {"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x015\x05\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x039\x01\x02\b\x01\x01\x02\a\x10\x05\x01\x06\x02\x05\b\x02\x01\x02\x0e\x02\x01\x01\x02\x03\x01"}, + {"crypto/x509/pkix", "g\x06\a\x8e\x01G"}, + {"database/sql", "\x03\nN\x16\x03\x81\x01\v\a\"\x05\b\x02\x03\x01\r\x02\x02\x02"}, + {"database/sql/driver", "\rd\x03\xb5\x01\x0f\x11"}, + {"debug/buildinfo", "\x03[\x02\x01\x01\b\a\x03e\x1a\x02\x01+\x0f\x1f"}, + {"debug/dwarf", "\x03g\a\x03\x81\x011\x11\x01\x01"}, + {"debug/elf", "\x03\x06T\r\a\x03e\x1b\x01\f \x17\x01\x16"}, + {"debug/gosym", "\x03g\n\xc3\x01\x01\x01\x02"}, + {"debug/macho", "\x03\x06T\r\ne\x1c,\x17\x01"}, + {"debug/pe", "\x03\x06T\r\a\x03e\x1c,\x17\x01\x16"}, + {"debug/plan9obj", "j\a\x03e\x1c,"}, + {"embed", "q*A\x19\x01S"}, {"embed/internal/embedtest", ""}, {"encoding", ""}, - {"encoding/ascii85", "\xf1\x01C"}, - {"encoding/asn1", "\x03k\x03\x8c\x01\x01'\r\x02\x01\x10\x03\x01"}, - {"encoding/base32", "\xf1\x01A\x02"}, - {"encoding/base64", "\x99\x01XA\x02"}, - {"encoding/binary", "n\x83\x01\f(\r\x05"}, - {"encoding/csv", "\x02\x01k\x03\x80\x01D\x12\x02"}, - {"encoding/gob", "\x02`\x05\a\x03e\x1b\v\x01\x03\x1d\b\x12\x01\x0f\x02"}, - {"encoding/hex", "n\x03\x80\x01A\x03"}, - {"encoding/json", "\x03\x01^\x04\b\x03\x80\x01\f(\r\x02\x01\x02\x10\x01\x01\x02"}, - {"encoding/pem", "\x03c\b\x83\x01A\x03"}, - {"encoding/xml", "\x02\x01_\f\x03\x80\x014\x05\n\x01\x02\x10\x02"}, - {"errors", "\xca\x01\x81\x01"}, - {"expvar", "kK?\b\v\x15\r\b\x02\x03\x01\x11"}, - {"flag", "b\f\x03\x80\x01,\b\x05\b\x02\x01\x10"}, - {"fmt", "nE>\f \b\r\x02\x03\x12"}, - {"go/ast", "\x03\x01m\x0e\x01q\x03)\b\r\x02\x01"}, - {"go/build", "\x02\x01k\x03\x01\x02\x02\a\x02\x01\x17\x1f\x04\x02\t\x19\x13\x01+\x01\x04\x01\a\b\x02\x01\x12\x02\x02"}, - {"go/build/constraint", "n\xc6\x01\x01\x12\x02"}, - {"go/constant", "q\x0f}\x01\x024\x01\x02\x12"}, - {"go/doc", "\x04m\x01\x05\t>31\x10\x02\x01\x12\x02"}, - {"go/doc/comment", "\x03n\xc1\x01\x01\x01\x01\x12\x02"}, - {"go/format", "\x03n\x01\v\x01\x02qD"}, - {"go/importer", "s\a\x01\x01\x04\x01p9"}, - {"go/internal/gccgoimporter", "\x02\x01X\x13\x03\x04\v\x01n\x02,\x01\x05\x11\x01\f\b"}, - {"go/internal/gcimporter", "\x02o\x0f\x010\x05\x0e-,\x15\x03\x02"}, - {"go/internal/srcimporter", "q\x01\x01\n\x03\x01p,\x01\x05\x12\x02\x14"}, - {"go/parser", "\x03k\x03\x01\x02\v\x01q\x01+\x06\x12"}, - {"go/printer", "q\x01\x02\x03\tq\f \x15\x02\x01\x02\v\x05\x02"}, - {"go/scanner", "\x03n\x0fq2\x10\x01\x13\x02"}, - {"go/token", "\x04m\x83\x01>\x02\x03\x01\x0f\x02"}, - {"go/types", "\x03\x01\x06d\x03\x01\x03\b\x03\x02\x15\x1f\x061\x04\x03\t \x06\a\b\x01\x01\x01\x02\x01\x0f\x02\x02"}, - {"go/version", "\xbb\x01z"}, - {"hash", "\xf1\x01"}, - {"hash/adler32", "n\x15\x16"}, - {"hash/crc32", "n\x15\x16\x15\x89\x01\x01\x13"}, - {"hash/crc64", "n\x15\x16\x9e\x01"}, - {"hash/fnv", "n\x15\x16g"}, - {"hash/maphash", "\x83\x01\x11!\x03\x93\x01"}, - {"html", "\xb5\x02\x02\x12"}, - {"html/template", "\x03h\x06\x18-;\x01\n!\x05\x01\x02\x03\f\x01\x02\f\x01\x03\x02"}, - {"image", "\x02l\x1ee\x0f4\x03\x01"}, + {"encoding/ascii85", "\xf5\x01C"}, + {"encoding/asn1", "\x03n\x03e(\x01'\r\x02\x01\x10\x03\x01"}, + {"encoding/base32", "\xf5\x01A\x02"}, + {"encoding/base64", "\x9c\x01YA\x02"}, + {"encoding/binary", "q\x84\x01\f(\r\x05"}, + {"encoding/csv", "\x02\x01n\x03\x81\x01D\x12\x02"}, + {"encoding/gob", "\x02c\x05\a\x03e\x1c\v\x01\x03\x1d\b\x12\x01\x0f\x02"}, + {"encoding/hex", "q\x03\x81\x01A\x03"}, + {"encoding/json", "\x03\x01a\x04\b\x03\x81\x01\f(\r\x02\x01\x02\x10\x01\x01\x02"}, + {"encoding/pem", "\x03f\b\x84\x01A\x03"}, + {"encoding/xml", "\x02\x01b\f\x03\x81\x014\x05\n\x01\x02\x10\x02"}, + {"errors", "\xcc\x01\x83\x01"}, + {"expvar", "nK@\b\v\x15\r\b\x02\x03\x01\x11"}, + {"flag", "e\f\x03\x81\x01,\b\x05\b\x02\x01\x10"}, + {"fmt", "qE&\x19\f \b\r\x02\x03\x12"}, + {"go/ast", "\x03\x01p\x0e\x01r\x03)\b\r\x02\x01\x12\x02"}, + {"go/build", "\x02\x01n\x03\x01\x02\x02\a\x02\x01\x17\x1f\x04\x02\b\x1b\x13\x01+\x01\x04\x01\a\b\x02\x01\x12\x02\x02"}, + {"go/build/constraint", "q\xc7\x01\x01\x12\x02"}, + {"go/constant", "t\x0f~\x01\x024\x01\x02\x12"}, + {"go/doc", "\x04p\x01\x05\t=51\x10\x02\x01\x12\x02"}, + {"go/doc/comment", "\x03q\xc2\x01\x01\x01\x01\x12\x02"}, + {"go/format", "\x03q\x01\v\x01\x02rD"}, + {"go/importer", "v\a\x01\x01\x04\x01q9"}, + {"go/internal/gccgoimporter", "\x02\x01[\x13\x03\x04\v\x01o\x02,\x01\x05\x11\x01\f\b"}, + {"go/internal/gcimporter", "\x02r\x0f\x010\x05\r/,\x15\x03\x02"}, + {"go/internal/srcimporter", "t\x01\x01\n\x03\x01q,\x01\x05\x12\x02\x14"}, + {"go/parser", "\x03n\x03\x01\x02\v\x01r\x01+\x06\x12"}, + {"go/printer", "t\x01\x02\x03\tr\f \x15\x02\x01\x02\v\x05\x02"}, + {"go/scanner", "\x03q\x0fr2\x10\x01\x13\x02"}, + {"go/token", "\x04p\x84\x01>\x02\x03\x01\x0f\x02"}, + {"go/types", "\x03\x01\x06g\x03\x01\x03\b\x03\x024\x062\x04\x03\t \x06\a\b\x01\x01\x01\x02\x01\x0f\x02\x02"}, + {"go/version", "\xbe\x01{"}, + {"hash", "\xf5\x01"}, + {"hash/adler32", "q\x15\x16"}, + {"hash/crc32", "q\x15\x16\x15\x8a\x01\x01\x13"}, + {"hash/crc64", "q\x15\x16\x9f\x01"}, + {"hash/fnv", "q\x15\x16h"}, + {"hash/maphash", "\x86\x01\x11<|"}, + {"html", "\xb9\x02\x02\x12"}, + {"html/template", "\x03k\x06\x18-<\x01\n!\x05\x01\x02\x03\f\x01\x02\f\x01\x03\x02"}, + {"image", "\x02o\x1ef\x0f4\x03\x01"}, {"image/color", ""}, - {"image/color/palette", "\x8c\x01"}, - {"image/draw", "\x8b\x01\x01\x04"}, - {"image/gif", "\x02\x01\x05f\x03\x1a\x01\x01\x01\vX"}, - {"image/internal/imageutil", "\x8b\x01"}, - {"image/jpeg", "\x02l\x1d\x01\x04a"}, - {"image/png", "\x02\a^\n\x12\x02\x06\x01eC"}, - {"index/suffixarray", "\x03d\a\x83\x01\f+\n\x01"}, - {"internal/abi", "\xb5\x01\x96\x01"}, - {"internal/asan", "\xcb\x02"}, - {"internal/bisect", "\xaa\x02\r\x01"}, - {"internal/buildcfg", "qGe\x06\x02\x05\n\x01"}, - {"internal/bytealg", "\xae\x01\x9d\x01"}, + {"image/color/palette", "\x8f\x01"}, + {"image/draw", "\x8e\x01\x01\x04"}, + {"image/gif", "\x02\x01\x05i\x03\x1a\x01\x01\x01\vY"}, + {"image/internal/imageutil", "\x8e\x01"}, + {"image/jpeg", "\x02o\x1d\x01\x04b"}, + {"image/png", "\x02\aa\n\x12\x02\x06\x01fC"}, + {"index/suffixarray", "\x03g\a\x84\x01\f+\n\x01"}, + {"internal/abi", "\xb8\x01\x97\x01"}, + {"internal/asan", "\xcf\x02"}, + {"internal/bisect", "\xae\x02\r\x01"}, + {"internal/buildcfg", "tGf\x06\x02\x05\n\x01"}, + {"internal/bytealg", "\xb1\x01\x9e\x01"}, {"internal/byteorder", ""}, {"internal/cfg", ""}, - {"internal/cgrouptest", "q[Q\x06\x0f\x02\x01\x04\x01"}, - {"internal/chacha8rand", "\x99\x01\x15\a\x96\x01"}, + {"internal/cgrouptest", "tZS\x06\x0f\x02\x01\x04\x01"}, + {"internal/chacha8rand", "\x9c\x01\x15\a\x97\x01"}, {"internal/copyright", ""}, {"internal/coverage", ""}, {"internal/coverage/calloc", ""}, - {"internal/coverage/cfile", "k\x06\x16\x17\x01\x02\x01\x01\x01\x01\x01\x01\x01#\x02$,\x06\a\n\x01\x03\r\x06"}, - {"internal/coverage/cformat", "\x04m-\x04O\v6\x01\x02\r"}, - {"internal/coverage/cmerge", "q-_"}, - {"internal/coverage/decodecounter", "g\n-\v\x02F,\x17\x17"}, - {"internal/coverage/decodemeta", "\x02e\n\x16\x17\v\x02F,"}, - {"internal/coverage/encodecounter", "\x02e\n-\f\x01\x02D\v!\x15"}, - {"internal/coverage/encodemeta", "\x02\x01d\n\x12\x04\x17\r\x02D,."}, - {"internal/coverage/pods", "\x04m-\x7f\x06\x05\n\x02\x01"}, - {"internal/coverage/rtcov", "\xcb\x02"}, - {"internal/coverage/slicereader", "g\n\x80\x01Z"}, - {"internal/coverage/slicewriter", "q\x80\x01"}, - {"internal/coverage/stringtab", "q8\x04D"}, + {"internal/coverage/cfile", "n\x06\x16\x17\x01\x02\x01\x01\x01\x01\x01\x01\x01\"\x02&,\x06\a\n\x01\x03\r\x06"}, + {"internal/coverage/cformat", "\x04p-\x04P\v6\x01\x02\r"}, + {"internal/coverage/cmerge", "t-`"}, + {"internal/coverage/decodecounter", "j\n-\v\x02G,\x17\x17"}, + {"internal/coverage/decodemeta", "\x02h\n\x16\x17\v\x02G,"}, + {"internal/coverage/encodecounter", "\x02h\n-\f\x01\x02E\v!\x15"}, + {"internal/coverage/encodemeta", "\x02\x01g\n\x12\x04\x17\r\x02E,."}, + {"internal/coverage/pods", "\x04p-\x80\x01\x06\x05\n\x02\x01"}, + {"internal/coverage/rtcov", "\xcf\x02"}, + {"internal/coverage/slicereader", "j\n\x81\x01Z"}, + {"internal/coverage/slicewriter", "t\x81\x01"}, + {"internal/coverage/stringtab", "t8\x04E"}, {"internal/coverage/test", ""}, {"internal/coverage/uleb128", ""}, - {"internal/cpu", "\xcb\x02"}, - {"internal/dag", "\x04m\xc1\x01\x03"}, - {"internal/diff", "\x03n\xc2\x01\x02"}, - {"internal/exportdata", "\x02\x01k\x03\x02c\x1b,\x01\x05\x11\x01\x02"}, - {"internal/filepathlite", "n*@\x1a@"}, - {"internal/fmtsort", "\x04\xa1\x02\r"}, - {"internal/fuzz", "\x03\nB\x18\x04\x03\x03\x01\v\x036;\f\x03\x1d\x01\x05\x02\x05\n\x01\x02\x01\x01\f\x04\x02"}, + {"internal/cpu", "\xcf\x02"}, + {"internal/dag", "\x04p\xc2\x01\x03"}, + {"internal/diff", "\x03q\xc3\x01\x02"}, + {"internal/exportdata", "\x02\x01n\x03\x02c\x1c,\x01\x05\x11\x01\x02"}, + {"internal/filepathlite", "q*A\x1a@"}, + {"internal/fmtsort", "\x04\xa5\x02\r"}, + {"internal/fuzz", "\x03\nE\x18\x04\x03\x03\x01\v\x036<\f\x03\x1d\x01\x05\x02\x05\n\x01\x02\x01\x01\f\x04\x02"}, {"internal/goarch", ""}, - {"internal/godebug", "\x96\x01!\x80\x01\x01\x13"}, + {"internal/godebug", "\x99\x01!\x81\x01\x01\x13"}, {"internal/godebugs", ""}, {"internal/goexperiment", ""}, {"internal/goos", ""}, - {"internal/goroot", "\x9d\x02\x01\x05\x12\x02"}, + {"internal/goroot", "\xa1\x02\x01\x05\x12\x02"}, {"internal/gover", "\x04"}, {"internal/goversion", ""}, - {"internal/itoa", ""}, - {"internal/lazyregexp", "\x9d\x02\v\r\x02"}, - {"internal/lazytemplate", "\xf1\x01,\x18\x02\f"}, - {"internal/msan", "\xcb\x02"}, + {"internal/lazyregexp", "\xa1\x02\v\r\x02"}, + {"internal/lazytemplate", "\xf5\x01,\x18\x02\f"}, + {"internal/msan", "\xcf\x02"}, {"internal/nettrace", ""}, - {"internal/obscuretestdata", "f\x8b\x01,"}, - {"internal/oserror", "n"}, - {"internal/pkgbits", "\x03L\x18\a\x03\x04\vq\r\x1f\r\n\x01"}, + {"internal/obscuretestdata", "i\x8c\x01,"}, + {"internal/oserror", "q"}, + {"internal/pkgbits", "\x03O\x18\a\x03\x04\vr\r\x1f\r\n\x01"}, {"internal/platform", ""}, - {"internal/poll", "nO\x1f\x159\r\x01\x01\f\x06"}, - {"internal/profile", "\x03\x04g\x03\x80\x017\v\x01\x01\x10"}, + {"internal/poll", "qj\x05\x159\r\x01\x01\f\x06"}, + {"internal/profile", "\x03\x04j\x03\x81\x017\n\x01\x01\x01\x10"}, {"internal/profilerecord", ""}, - {"internal/race", "\x94\x01\xb7\x01"}, - {"internal/reflectlite", "\x94\x01!9\b\x13\x01\a\x03E;\x01\x03\a\x01\x03\x02\x02\x01\x02\x06\x02\x01\x01\n\x01\x01\x05\x01\x02\x05\b\x01\x01\x01\x02\x01\r\x02\x02\x02\b\x01\x01\x01"}, - {"net/http/cgi", "\x02Q\x1b\x03\x80\x01\x04\a\v\x01\x13\x01\x01\x01\x04\x01\x05\x02\b\x02\x01\x10\x0e"}, - {"net/http/cookiejar", "\x04j\x03\x96\x01\x01\b\f\x16\x03\x02\x0e\x04"}, - {"net/http/fcgi", "\x02\x01\nZ\a\x03\x80\x01\x16\x01\x01\x14\x18\x02\x0e"}, - {"net/http/httptest", "\x02\x01\nF\x02\x1b\x01\x80\x01\x04\x12\x01\n\t\x02\x17\x01\x02\x0e\x0e"}, - {"net/http/httptrace", "\rFnF\x14\n "}, - {"net/http/httputil", "\x02\x01\na\x03\x80\x01\x04\x0f\x03\x01\x05\x02\x01\v\x01\x19\x02\x0e\x0e"}, - {"net/http/internal", "\x02\x01k\x03\x80\x01"}, - {"net/http/internal/ascii", "\xb5\x02\x12"}, - {"net/http/internal/httpcommon", "\ra\x03\x9c\x01\x0e\x01\x17\x01\x01\x02\x1c\x02"}, - {"net/http/internal/testcert", "\xb5\x02"}, - {"net/http/pprof", "\x02\x01\nd\x18-\x11*\x04\x13\x14\x01\r\x04\x03\x01\x02\x01\x10"}, + {"log/slog/internal/benchmarks", "\rd\x03\x81\x01\x06\x03:\x11"}, + {"log/slog/internal/buffer", "\xbb\x02"}, + {"log/syslog", "q\x03\x85\x01\x12\x16\x18\x02\x0e"}, + {"maps", "\xf8\x01W"}, + {"math", "\xb1\x01SK"}, + {"math/big", "\x03n\x03(\x15D\f\x03\x020\x02\x01\x02\x14"}, + {"math/big/internal/asmgen", "\x03\x01p\x90\x012\x03"}, + {"math/bits", "\xcf\x02"}, + {"math/cmplx", "\x81\x02\x03"}, + {"math/rand", "\xb9\x01H:\x01\x13"}, + {"math/rand/v2", "q+\x03b\x03K"}, + {"mime", "\x02\x01f\b\x03\x81\x01\v!\x15\x03\x02\x10\x02"}, + {"mime/multipart", "\x02\x01K#\x03E<\v\x01\a\x02\x15\x02\x06\x0f\x02\x01\x16"}, + {"mime/quotedprintable", "\x02\x01q\x81\x01"}, + {"net", "\x04\td*\x1e\n\x05\x12\x01\x01\x04\x15\x01%\x06\r\b\x05\x01\x01\f\x06\a"}, + {"net/http", "\x02\x01\x03\x01\x04\x02A\b\x13\x01\a\x03E<\x01\x03\a\x01\x03\x02\x02\x01\x02\x06\x02\x01\x01\n\x01\x01\x05\x01\x02\x05\b\x01\x01\x01\x02\x01\r\x02\x02\x02\b\x01\x01\x01"}, + {"net/http/cgi", "\x02T\x1b\x03\x81\x01\x04\a\v\x01\x13\x01\x01\x01\x04\x01\x05\x02\b\x02\x01\x10\x0e"}, + {"net/http/cookiejar", "\x04m\x03\x97\x01\x01\b\f\x16\x03\x02\x0e\x04"}, + {"net/http/fcgi", "\x02\x01\n]\a\x03\x81\x01\x16\x01\x01\x14\x18\x02\x0e"}, + {"net/http/httptest", "\x02\x01\nI\x02\x1b\x01\x81\x01\x04\x12\x01\n\t\x02\x17\x01\x02\x0e\x0e"}, + {"net/http/httptrace", "\rImH\x14\n "}, + {"net/http/httputil", "\x02\x01\nd\x03\x81\x01\x04\x0f\x03\x01\x05\x02\x01\v\x01\x19\x02\x0e\x0e"}, + {"net/http/internal", "\x02\x01n\x03\x81\x01"}, + {"net/http/internal/ascii", "\xb9\x02\x12"}, + {"net/http/internal/httpcommon", "\rd\x03\x9d\x01\x0e\x01\x17\x01\x01\x02\x1c\x02"}, + {"net/http/internal/testcert", "\xb9\x02"}, + {"net/http/pprof", "\x02\x01\ng\x18-\x02\x0e,\x04\x13\x14\x01\r\x04\x03\x01\x02\x01\x10"}, {"net/internal/cgotest", ""}, - {"net/internal/socktest", "q\xc6\x01\x02"}, - {"net/mail", "\x02l\x03\x80\x01\x04\x0f\x03\x14\x1a\x02\x0e\x04"}, - {"net/netip", "\x04j*\x01$@\x034\x16"}, - {"net/rpc", "\x02g\x05\x03\x0f\ng\x04\x12\x01\x1d\r\x03\x02"}, - {"net/rpc/jsonrpc", "k\x03\x03\x80\x01\x16\x11\x1f"}, - {"net/smtp", "\x19/\v\x13\b\x03\x80\x01\x16\x14\x1a"}, - {"net/textproto", "\x02\x01k\x03\x80\x01\f\n-\x01\x02\x14"}, - {"net/url", "n\x03\x8b\x01&\x10\x02\x01\x16"}, - {"os", "n*\x01\x19\x03\b\t\x12\x03\x01\x05\x10\x018\b\x05\x01\x01\f\x06"}, - {"os/exec", "\x03\naH%\x01\x15\x01+\x06\a\n\x01\x04\f"}, - {"os/exec/internal/fdtest", "\xb9\x02"}, - {"os/signal", "\r\x90\x02\x15\x05\x02"}, - {"os/user", "\x02\x01k\x03\x80\x01,\r\n\x01\x02"}, - {"path", "n*\xb1\x01"}, - {"path/filepath", "n*\x1a@+\r\b\x03\x04\x10"}, - {"plugin", "n"}, - {"reflect", "n&\x04\x1d\b\f\x06\x04\x1b\x06\t-\n\x03\x10\x02\x02"}, + {"net/internal/socktest", "t\xc7\x01\x02"}, + {"net/mail", "\x02o\x03\x81\x01\x04\x0f\x03\x14\x1a\x02\x0e\x04"}, + {"net/netip", "\x04m*\x01e\x034\x16"}, + {"net/rpc", "\x02j\x05\x03\x0f\nh\x04\x12\x01\x1d\r\x03\x02"}, + {"net/rpc/jsonrpc", "n\x03\x03\x81\x01\x16\x11\x1f"}, + {"net/smtp", "\x192\v\x13\b\x03\x81\x01\x16\x14\x1a"}, + {"net/textproto", "\x02\x01n\x03\x81\x01\f\n-\x01\x02\x14"}, + {"net/url", "q\x03\xa7\x01\v\x10\x02\x01\x16"}, + {"os", "q*\x01\x19\x03\x10\x13\x01\x03\x01\x05\x10\x018\b\x05\x01\x01\f\x06"}, + {"os/exec", "\x03\ndH&\x01\x15\x01+\x06\a\n\x01\x04\f"}, + {"os/exec/internal/fdtest", "\xbd\x02"}, + {"os/signal", "\r\x94\x02\x15\x05\x02"}, + {"os/user", "\x02\x01n\x03\x81\x01,\r\n\x01\x02"}, + {"path", "q*\xb2\x01"}, + {"path/filepath", "q*\x1aA+\r\b\x03\x04\x10"}, + {"plugin", "q"}, + {"reflect", "q&\x04\x1d\x13\b\x03\x05\x17\x06\t-\n\x03\x10\x02\x02"}, {"reflect/internal/example1", ""}, {"reflect/internal/example2", ""}, - {"regexp", "\x03\xee\x018\t\x02\x01\x02\x10\x02"}, - {"regexp/syntax", "\xb2\x02\x01\x01\x01\x02\x10\x02"}, - {"runtime", "\x94\x01\x04\x01\x03\f\x06\a\x02\x01\x01\x0f\x03\x01\x01\x01\x01\x01\x02\x01\x01\x04\x10c"}, - {"runtime/coverage", "\xa0\x01Q"}, - {"runtime/debug", "qUW\r\b\x02\x01\x10\x06"}, - {"runtime/metrics", "\xb7\x01F-!"}, - {"runtime/pprof", "\x02\x01\x01\x03\x06Z\a\x03#4)\f \r\b\x01\x01\x01\x02\x02\t\x03\x06"}, - {"runtime/race", "\xb0\x02"}, + {"regexp", "\x03\xf2\x018\t\x02\x01\x02\x10\x02"}, + {"regexp/syntax", "\xb6\x02\x01\x01\x01\x02\x10\x02"}, + {"runtime", "\x97\x01\x04\x01\x03\f\x06\a\x02\x01\x01\x0e\x03\x01\x01\x01\x02\x01\x01\x02\x01\x04\x01\x10c"}, + {"runtime/coverage", "\xa3\x01R"}, + {"runtime/debug", "tTY\r\b\x02\x01\x10\x06"}, + {"runtime/metrics", "\xba\x01G-!"}, + {"runtime/pprof", "\x02\x01\x01\x03\x06]\a\x03#$\x0f+\f \r\b\x01\x01\x01\x02\x02\t\x03\x06"}, + {"runtime/race", "\xb4\x02"}, {"runtime/race/internal/amd64v1", ""}, - {"runtime/trace", "\ra\x03w\t9\b\x05\x01\r\x06"}, - {"slices", "\x04\xf0\x01\fK"}, - {"sort", "\xca\x0162"}, - {"strconv", "n*@%\x03I"}, - {"strings", "n&\x04@\x19\x03\f7\x10\x02\x02"}, + {"runtime/trace", "\rd\x03x\t9\b\x05\x01\r\x06"}, + {"slices", "\x04\xf4\x01\fK"}, + {"sort", "\xcc\x0182"}, + {"strconv", "q*@\x01q"}, + {"strings", "q&\x04A\x19\x03\f7\x10\x02\x02"}, {"structs", ""}, - {"sync", "\xc9\x01\x10\x01P\x0e\x13"}, - {"sync/atomic", "\xcb\x02"}, - {"syscall", "n'\x03\x01\x1c\b\x03\x03\x06\vV\b\x05\x01\x13"}, - {"testing", "\x03\na\x02\x01X\x14\x14\f\x05\x1b\x06\x02\x05\x02\x05\x01\x02\x01\x02\x01\r\x02\x02\x02"}, - {"testing/fstest", "n\x03\x80\x01\x01\n&\x10\x03\b\b"}, - {"testing/internal/testdeps", "\x02\v\xa7\x01-\x10,\x03\x05\x03\x06\a\x02\x0e"}, - {"testing/iotest", "\x03k\x03\x80\x01\x04"}, - {"testing/quick", "p\x01\x8c\x01\x05#\x10\x10"}, - {"testing/slogtest", "\ra\x03\x86\x01.\x05\x10\v"}, - {"testing/synctest", "\xda\x01`\x11"}, - {"text/scanner", "\x03n\x80\x01,*\x02"}, - {"text/tabwriter", "q\x80\x01X"}, - {"text/template", "n\x03B>\x01\n \x01\x05\x01\x02\x05\v\x02\r\x03\x02"}, - {"text/template/parse", "\x03n\xb9\x01\n\x01\x12\x02"}, - {"time", "n*\x1e\"(*\r\x02\x12"}, - {"time/tzdata", "n\xcb\x01\x12"}, + {"sync", "\xcb\x01\x12\x01P\x0e\x13"}, + {"sync/atomic", "\xcf\x02"}, + {"syscall", "q'\x03\x01\x1c\n\x03\x06\f\x04S\b\x05\x01\x13"}, + {"testing", "\x03\nd\x02\x01W\x16\x14\f\x05\x1b\x06\x02\x05\x02\x05\x01\x02\x01\x02\x01\r\x02\x04"}, + {"testing/fstest", "q\x03\x81\x01\x01\n&\x10\x03\b\b"}, + {"testing/internal/testdeps", "\x02\v\xaa\x01.\x10,\x03\x05\x03\x06\a\x02\x0e"}, + {"testing/iotest", "\x03n\x03\x81\x01\x04"}, + {"testing/quick", "s\x01\x8d\x01\x05#\x10\x10"}, + {"testing/slogtest", "\rd\x03\x87\x01.\x05\x10\v"}, + {"testing/synctest", "\xde\x01`\x11"}, + {"text/scanner", "\x03q\x81\x01,*\x02"}, + {"text/tabwriter", "t\x81\x01X"}, + {"text/template", "q\x03B?\x01\n \x01\x05\x01\x02\x05\v\x02\r\x03\x02"}, + {"text/template/parse", "\x03q\xba\x01\n\x01\x12\x02"}, + {"time", "q*\x1e#(*\r\x02\x12"}, + {"time/tzdata", "q\xcc\x01\x12"}, {"unicode", ""}, {"unicode/utf16", ""}, {"unicode/utf8", ""}, - {"unique", "\x94\x01!#\x01Q\r\x01\x13\x12"}, + {"unique", "\x97\x01!$\x01Q\r\x01\x13\x12"}, {"unsafe", ""}, - {"vendor/golang.org/x/crypto/chacha20", "\x10W\a\x92\x01*&"}, - {"vendor/golang.org/x/crypto/chacha20poly1305", "\x10W\a\xde\x01\x04\x01\a"}, - {"vendor/golang.org/x/crypto/cryptobyte", "d\n\x03\x8d\x01' \n"}, + {"vendor/golang.org/x/crypto/chacha20", "\x10Z\a\x93\x01*&"}, + {"vendor/golang.org/x/crypto/chacha20poly1305", "\x10Z\a\xdf\x01\x04\x01\a"}, + {"vendor/golang.org/x/crypto/cryptobyte", "g\n\x03\x8e\x01' \n"}, {"vendor/golang.org/x/crypto/cryptobyte/asn1", ""}, - {"vendor/golang.org/x/crypto/internal/alias", "\xcb\x02"}, - {"vendor/golang.org/x/crypto/internal/poly1305", "R\x15\x99\x01"}, - {"vendor/golang.org/x/net/dns/dnsmessage", "n"}, - {"vendor/golang.org/x/net/http/httpguts", "\x87\x02\x14\x1a\x14\r"}, - {"vendor/golang.org/x/net/http/httpproxy", "n\x03\x96\x01\x10\x05\x01\x18\x14\r"}, - {"vendor/golang.org/x/net/http2/hpack", "\x03k\x03\x80\x01F"}, - {"vendor/golang.org/x/net/idna", "q\x8c\x018\x14\x10\x02\x01"}, - {"vendor/golang.org/x/net/nettest", "\x03d\a\x03\x80\x01\x11\x05\x16\x01\f\n\x01\x02\x02\x01\v"}, - {"vendor/golang.org/x/sys/cpu", "\x9d\x02\r\n\x01\x16"}, - {"vendor/golang.org/x/text/secure/bidirule", "n\xdb\x01\x11\x01"}, - {"vendor/golang.org/x/text/transform", "\x03k\x83\x01X"}, - {"vendor/golang.org/x/text/unicode/bidi", "\x03\bf\x84\x01>\x16"}, - {"vendor/golang.org/x/text/unicode/norm", "g\n\x80\x01F\x12\x11"}, - {"weak", "\x94\x01\x96\x01!"}, + {"vendor/golang.org/x/crypto/internal/alias", "\xcf\x02"}, + {"vendor/golang.org/x/crypto/internal/poly1305", "U\x15\x9a\x01"}, + {"vendor/golang.org/x/net/dns/dnsmessage", "q"}, + {"vendor/golang.org/x/net/http/httpguts", "\x8b\x02\x14\x1a\x14\r"}, + {"vendor/golang.org/x/net/http/httpproxy", "q\x03\x97\x01\x10\x05\x01\x18\x14\r"}, + {"vendor/golang.org/x/net/http2/hpack", "\x03n\x03\x81\x01F"}, + {"vendor/golang.org/x/net/idna", "t\x8d\x018\x14\x10\x02\x01"}, + {"vendor/golang.org/x/net/nettest", "\x03g\a\x03\x81\x01\x11\x05\x16\x01\f\n\x01\x02\x02\x01\v"}, + {"vendor/golang.org/x/sys/cpu", "\xa1\x02\r\n\x01\x16"}, + {"vendor/golang.org/x/text/secure/bidirule", "q\xdc\x01\x11\x01"}, + {"vendor/golang.org/x/text/transform", "\x03n\x84\x01X"}, + {"vendor/golang.org/x/text/unicode/bidi", "\x03\bi\x85\x01>\x16"}, + {"vendor/golang.org/x/text/unicode/norm", "j\n\x81\x01F\x12\x11"}, + {"weak", "\x97\x01\x97\x01!"}, } + +// bootstrap is the list of bootstrap packages extracted from cmd/dist. +var bootstrap = map[string]bool{ + "cmp": true, + "cmd/asm": true, + "cmd/asm/internal/arch": true, + "cmd/asm/internal/asm": true, + "cmd/asm/internal/flags": true, + "cmd/asm/internal/lex": true, + "cmd/cgo": true, + "cmd/compile": true, + "cmd/compile/internal/abi": true, + "cmd/compile/internal/abt": true, + "cmd/compile/internal/amd64": true, + "cmd/compile/internal/arm": true, + "cmd/compile/internal/arm64": true, + "cmd/compile/internal/base": true, + "cmd/compile/internal/bitvec": true, + "cmd/compile/internal/compare": true, + "cmd/compile/internal/coverage": true, + "cmd/compile/internal/deadlocals": true, + "cmd/compile/internal/devirtualize": true, + "cmd/compile/internal/dwarfgen": true, + "cmd/compile/internal/escape": true, + "cmd/compile/internal/gc": true, + "cmd/compile/internal/importer": true, + "cmd/compile/internal/inline": true, + "cmd/compile/internal/inline/inlheur": true, + "cmd/compile/internal/inline/interleaved": true, + "cmd/compile/internal/ir": true, + "cmd/compile/internal/liveness": true, + "cmd/compile/internal/logopt": true, + "cmd/compile/internal/loong64": true, + "cmd/compile/internal/loopvar": true, + "cmd/compile/internal/mips": true, + "cmd/compile/internal/mips64": true, + "cmd/compile/internal/noder": true, + "cmd/compile/internal/objw": true, + "cmd/compile/internal/pgoir": true, + "cmd/compile/internal/pkginit": true, + "cmd/compile/internal/ppc64": true, + "cmd/compile/internal/rangefunc": true, + "cmd/compile/internal/reflectdata": true, + "cmd/compile/internal/riscv64": true, + "cmd/compile/internal/rttype": true, + "cmd/compile/internal/s390x": true, + "cmd/compile/internal/ssa": true, + "cmd/compile/internal/ssagen": true, + "cmd/compile/internal/staticdata": true, + "cmd/compile/internal/staticinit": true, + "cmd/compile/internal/syntax": true, + "cmd/compile/internal/test": true, + "cmd/compile/internal/typebits": true, + "cmd/compile/internal/typecheck": true, + "cmd/compile/internal/types": true, + "cmd/compile/internal/types2": true, + "cmd/compile/internal/walk": true, + "cmd/compile/internal/wasm": true, + "cmd/compile/internal/x86": true, + "cmd/internal/archive": true, + "cmd/internal/bio": true, + "cmd/internal/codesign": true, + "cmd/internal/dwarf": true, + "cmd/internal/edit": true, + "cmd/internal/gcprog": true, + "cmd/internal/goobj": true, + "cmd/internal/hash": true, + "cmd/internal/macho": true, + "cmd/internal/obj": true, + "cmd/internal/obj/arm": true, + "cmd/internal/obj/arm64": true, + "cmd/internal/obj/loong64": true, + "cmd/internal/obj/mips": true, + "cmd/internal/obj/ppc64": true, + "cmd/internal/obj/riscv": true, + "cmd/internal/obj/s390x": true, + "cmd/internal/obj/wasm": true, + "cmd/internal/obj/x86": true, + "cmd/internal/objabi": true, + "cmd/internal/par": true, + "cmd/internal/pgo": true, + "cmd/internal/pkgpath": true, + "cmd/internal/quoted": true, + "cmd/internal/src": true, + "cmd/internal/sys": true, + "cmd/internal/telemetry": true, + "cmd/internal/telemetry/counter": true, + "cmd/link": true, + "cmd/link/internal/amd64": true, + "cmd/link/internal/arm": true, + "cmd/link/internal/arm64": true, + "cmd/link/internal/benchmark": true, + "cmd/link/internal/dwtest": true, + "cmd/link/internal/ld": true, + "cmd/link/internal/loadelf": true, + "cmd/link/internal/loader": true, + "cmd/link/internal/loadmacho": true, + "cmd/link/internal/loadpe": true, + "cmd/link/internal/loadxcoff": true, + "cmd/link/internal/loong64": true, + "cmd/link/internal/mips": true, + "cmd/link/internal/mips64": true, + "cmd/link/internal/ppc64": true, + "cmd/link/internal/riscv64": true, + "cmd/link/internal/s390x": true, + "cmd/link/internal/sym": true, + "cmd/link/internal/wasm": true, + "cmd/link/internal/x86": true, + "compress/flate": true, + "compress/zlib": true, + "container/heap": true, + "debug/dwarf": true, + "debug/elf": true, + "debug/macho": true, + "debug/pe": true, + "go/build/constraint": true, + "go/constant": true, + "go/version": true, + "internal/abi": true, + "internal/coverage": true, + "cmd/internal/cov/covcmd": true, + "internal/bisect": true, + "internal/buildcfg": true, + "internal/exportdata": true, + "internal/goarch": true, + "internal/godebugs": true, + "internal/goexperiment": true, + "internal/goroot": true, + "internal/gover": true, + "internal/goversion": true, + "internal/lazyregexp": true, + "internal/pkgbits": true, + "internal/platform": true, + "internal/profile": true, + "internal/race": true, + "internal/runtime/gc": true, + "internal/saferio": true, + "internal/syscall/unix": true, + "internal/types/errors": true, + "internal/unsafeheader": true, + "internal/xcoff": true, + "internal/zstd": true, + "math/bits": true, + "sort": true, +} + +// BootstrapVersion is the minor version of Go used during toolchain +// bootstrapping. Packages for which [IsBootstrapPackage] must not use +// features of Go newer than this version. +const BootstrapVersion = Version(24) // go1.24.6 diff --git a/vendor/golang.org/x/tools/internal/stdlib/import.go b/vendor/golang.org/x/tools/internal/stdlib/import.go index f6909878..8ecc672b 100644 --- a/vendor/golang.org/x/tools/internal/stdlib/import.go +++ b/vendor/golang.org/x/tools/internal/stdlib/import.go @@ -87,3 +87,11 @@ func find(pkg string) (int, bool) { return strings.Compare(p.name, n) }) } + +// IsBootstrapPackage reports whether pkg is one of the low-level +// packages in the Go distribution that must compile with the older +// language version specified by [BootstrapVersion] during toolchain +// bootstrapping; see golang.org/s/go15bootstrap. +func IsBootstrapPackage(pkg string) bool { + return bootstrap[pkg] +} diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go index c1faa50d..362f23c4 100644 --- a/vendor/golang.org/x/tools/internal/stdlib/manifest.go +++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go @@ -225,6 +225,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*Buffer).Grow", Method, 1, ""}, {"(*Buffer).Len", Method, 0, ""}, {"(*Buffer).Next", Method, 0, ""}, + {"(*Buffer).Peek", Method, 26, ""}, {"(*Buffer).Read", Method, 0, ""}, {"(*Buffer).ReadByte", Method, 0, ""}, {"(*Buffer).ReadBytes", Method, 0, ""}, @@ -1628,6 +1629,7 @@ var PackageSymbols = map[string][]Symbol{ {"ResultNoRows", Var, 0, ""}, {"Rows", Type, 0, ""}, {"RowsAffected", Type, 0, ""}, + {"RowsColumnScanner", Type, 26, ""}, {"RowsColumnTypeDatabaseTypeName", Type, 8, ""}, {"RowsColumnTypeLength", Type, 8, ""}, {"RowsColumnTypeNullable", Type, 8, ""}, @@ -4953,6 +4955,7 @@ var PackageSymbols = map[string][]Symbol{ }, "errors": { {"As", Func, 13, "func(err error, target any) bool"}, + {"AsType", Func, 26, "func[E error](err error) (E, bool)"}, {"ErrUnsupported", Var, 21, ""}, {"Is", Func, 13, "func(err error, target error) bool"}, {"Join", Func, 20, "func(errs ...error) error"}, @@ -5090,7 +5093,7 @@ var PackageSymbols = map[string][]Symbol{ {"Append", Func, 19, "func(b []byte, a ...any) []byte"}, {"Appendf", Func, 19, "func(b []byte, format string, a ...any) []byte"}, {"Appendln", Func, 19, "func(b []byte, a ...any) []byte"}, - {"Errorf", Func, 0, "func(format string, a ...any) error"}, + {"Errorf", Func, 0, "func(format string, a ...any) (err error)"}, {"FormatString", Func, 20, "func(state State, verb rune) string"}, {"Formatter", Type, 0, ""}, {"Fprint", Func, 0, "func(w io.Writer, a ...any) (n int, err error)"}, @@ -5155,6 +5158,9 @@ var PackageSymbols = map[string][]Symbol{ {"(*DeclStmt).Pos", Method, 0, ""}, {"(*DeferStmt).End", Method, 0, ""}, {"(*DeferStmt).Pos", Method, 0, ""}, + {"(*Directive).End", Method, 26, ""}, + {"(*Directive).ParseArgs", Method, 26, ""}, + {"(*Directive).Pos", Method, 26, ""}, {"(*Ellipsis).End", Method, 0, ""}, {"(*Ellipsis).Pos", Method, 0, ""}, {"(*EmptyStmt).End", Method, 0, ""}, @@ -5320,6 +5326,15 @@ var PackageSymbols = map[string][]Symbol{ {"DeferStmt", Type, 0, ""}, {"DeferStmt.Call", Field, 0, ""}, {"DeferStmt.Defer", Field, 0, ""}, + {"Directive", Type, 26, ""}, + {"Directive.Args", Field, 26, ""}, + {"Directive.ArgsPos", Field, 26, ""}, + {"Directive.Name", Field, 26, ""}, + {"Directive.Slash", Field, 26, ""}, + {"Directive.Tool", Field, 26, ""}, + {"DirectiveArg", Type, 26, ""}, + {"DirectiveArg.Arg", Field, 26, ""}, + {"DirectiveArg.Pos", Field, 26, ""}, {"Ellipsis", Type, 0, ""}, {"Ellipsis.Ellipsis", Field, 0, ""}, {"Ellipsis.Elt", Field, 0, ""}, @@ -5469,6 +5484,7 @@ var PackageSymbols = map[string][]Symbol{ {"ParenExpr.Lparen", Field, 0, ""}, {"ParenExpr.Rparen", Field, 0, ""}, {"ParenExpr.X", Field, 0, ""}, + {"ParseDirective", Func, 26, "func(pos token.Pos, c string) (Directive, bool)"}, {"Pkg", Const, 0, ""}, {"Preorder", Func, 23, "func(root Node) iter.Seq[Node]"}, {"PreorderStack", Func, 25, "func(root Node, stack []Node, f func(n Node, stack []Node) bool)"}, @@ -7271,6 +7287,10 @@ var PackageSymbols = map[string][]Symbol{ {"(*Logger).WarnContext", Method, 21, ""}, {"(*Logger).With", Method, 21, ""}, {"(*Logger).WithGroup", Method, 21, ""}, + {"(*MultiHandler).Enabled", Method, 26, ""}, + {"(*MultiHandler).Handle", Method, 26, ""}, + {"(*MultiHandler).WithAttrs", Method, 26, ""}, + {"(*MultiHandler).WithGroup", Method, 26, ""}, {"(*Record).Add", Method, 21, ""}, {"(*Record).AddAttrs", Method, 21, ""}, {"(*TextHandler).Enabled", Method, 21, ""}, @@ -7358,9 +7378,11 @@ var PackageSymbols = map[string][]Symbol{ {"LogValuer", Type, 21, ""}, {"Logger", Type, 21, ""}, {"MessageKey", Const, 21, ""}, + {"MultiHandler", Type, 26, ""}, {"New", Func, 21, "func(h Handler) *Logger"}, {"NewJSONHandler", Func, 21, "func(w io.Writer, opts *HandlerOptions) *JSONHandler"}, {"NewLogLogger", Func, 21, "func(h Handler, level Level) *log.Logger"}, + {"NewMultiHandler", Func, 26, "func(handlers ...Handler) *MultiHandler"}, {"NewRecord", Func, 21, "func(t time.Time, level Level, msg string, pc uintptr) Record"}, {"NewTextHandler", Func, 21, "func(w io.Writer, opts *HandlerOptions) *TextHandler"}, {"Record", Type, 21, ""}, @@ -7515,7 +7537,7 @@ var PackageSymbols = map[string][]Symbol{ {"MinInt64", Const, 0, ""}, {"MinInt8", Const, 0, ""}, {"Mod", Func, 0, "func(x float64, y float64) float64"}, - {"Modf", Func, 0, "func(f float64) (int float64, frac float64)"}, + {"Modf", Func, 0, "func(f float64) (integer float64, fractional float64)"}, {"NaN", Func, 0, "func() float64"}, {"Nextafter", Func, 0, "func(x float64, y float64) (r float64)"}, {"Nextafter32", Func, 4, "func(x float32, y float32) (r float32)"}, @@ -7972,6 +7994,10 @@ var PackageSymbols = map[string][]Symbol{ {"(*DNSError).Unwrap", Method, 23, ""}, {"(*Dialer).Dial", Method, 1, ""}, {"(*Dialer).DialContext", Method, 7, ""}, + {"(*Dialer).DialIP", Method, 26, ""}, + {"(*Dialer).DialTCP", Method, 26, ""}, + {"(*Dialer).DialUDP", Method, 26, ""}, + {"(*Dialer).DialUnix", Method, 26, ""}, {"(*Dialer).MultipathTCP", Method, 21, ""}, {"(*Dialer).SetMultipathTCP", Method, 21, ""}, {"(*IP).UnmarshalText", Method, 2, ""}, @@ -8457,6 +8483,7 @@ var PackageSymbols = map[string][]Symbol{ {"HTTP2Config.PermitProhibitedCipherSuites", Field, 24, ""}, {"HTTP2Config.PingTimeout", Field, 24, ""}, {"HTTP2Config.SendPingTimeout", Field, 24, ""}, + {"HTTP2Config.StrictMaxConcurrentRequests", Field, 26, ""}, {"HTTP2Config.WriteByteTimeout", Field, 24, ""}, {"Handle", Func, 0, "func(pattern string, handler Handler)"}, {"HandleFunc", Func, 0, "func(pattern string, handler func(ResponseWriter, *Request))"}, @@ -8904,6 +8931,7 @@ var PackageSymbols = map[string][]Symbol{ {"(Prefix).AppendText", Method, 24, ""}, {"(Prefix).AppendTo", Method, 18, ""}, {"(Prefix).Bits", Method, 18, ""}, + {"(Prefix).Compare", Method, 26, ""}, {"(Prefix).Contains", Method, 18, ""}, {"(Prefix).IsSingleIP", Method, 18, ""}, {"(Prefix).IsValid", Method, 18, ""}, @@ -9177,6 +9205,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*Process).Release", Method, 0, ""}, {"(*Process).Signal", Method, 0, ""}, {"(*Process).Wait", Method, 0, ""}, + {"(*Process).WithHandle", Method, 26, ""}, {"(*ProcessState).ExitCode", Method, 12, ""}, {"(*ProcessState).Exited", Method, 0, ""}, {"(*ProcessState).Pid", Method, 0, ""}, @@ -9234,6 +9263,7 @@ var PackageSymbols = map[string][]Symbol{ {"ErrExist", Var, 0, ""}, {"ErrInvalid", Var, 0, ""}, {"ErrNoDeadline", Var, 10, ""}, + {"ErrNoHandle", Var, 26, ""}, {"ErrNotExist", Var, 0, ""}, {"ErrPermission", Var, 0, ""}, {"ErrProcessDone", Var, 16, ""}, @@ -9461,7 +9491,7 @@ var PackageSymbols = map[string][]Symbol{ {"ListSeparator", Const, 0, ""}, {"Localize", Func, 23, "func(path string) (string, error)"}, {"Match", Func, 0, "func(pattern string, name string) (matched bool, err error)"}, - {"Rel", Func, 0, "func(basepath string, targpath string) (string, error)"}, + {"Rel", Func, 0, "func(basePath string, targPath string) (string, error)"}, {"Separator", Const, 0, ""}, {"SkipAll", Var, 20, ""}, {"SkipDir", Var, 0, ""}, @@ -9932,7 +9962,7 @@ var PackageSymbols = map[string][]Symbol{ {"PanicNilError", Type, 21, ""}, {"Pinner", Type, 21, ""}, {"ReadMemStats", Func, 0, "func(m *MemStats)"}, - {"ReadTrace", Func, 5, "func() []byte"}, + {"ReadTrace", Func, 5, "func() (buf []byte)"}, {"SetBlockProfileRate", Func, 1, "func(rate int)"}, {"SetCPUProfileRate", Func, 0, "func(hz int)"}, {"SetCgoTraceback", Func, 7, "func(version int, traceback unsafe.Pointer, context unsafe.Pointer, symbolizer unsafe.Pointer)"}, @@ -16679,6 +16709,7 @@ var PackageSymbols = map[string][]Symbol{ {"ValueOf", Func, 0, ""}, }, "testing": { + {"(*B).ArtifactDir", Method, 26, ""}, {"(*B).Attr", Method, 25, ""}, {"(*B).Chdir", Method, 24, ""}, {"(*B).Cleanup", Method, 14, ""}, @@ -16713,6 +16744,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*B).StopTimer", Method, 0, ""}, {"(*B).TempDir", Method, 15, ""}, {"(*F).Add", Method, 18, ""}, + {"(*F).ArtifactDir", Method, 26, ""}, {"(*F).Attr", Method, 25, ""}, {"(*F).Chdir", Method, 24, ""}, {"(*F).Cleanup", Method, 18, ""}, @@ -16738,6 +16770,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*F).TempDir", Method, 18, ""}, {"(*M).Run", Method, 4, ""}, {"(*PB).Next", Method, 3, ""}, + {"(*T).ArtifactDir", Method, 26, ""}, {"(*T).Attr", Method, 25, ""}, {"(*T).Chdir", Method, 24, ""}, {"(*T).Cleanup", Method, 14, ""}, diff --git a/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/vendor/golang.org/x/tools/internal/typeparams/normalize.go index f49802b8..8d13f121 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/normalize.go +++ b/vendor/golang.org/x/tools/internal/typeparams/normalize.go @@ -160,8 +160,7 @@ func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth in // The term set of an interface is the intersection of the term sets of its // embedded types. tset.terms = allTermlist - for i := 0; i < u.NumEmbeddeds(); i++ { - embedded := u.EmbeddedType(i) + for embedded := range u.EmbeddedTypes() { if _, ok := embedded.Underlying().(*types.TypeParam); ok { return nil, fmt.Errorf("invalid embedded type %T", embedded) } @@ -174,8 +173,7 @@ func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth in case *types.Union: // The term set of a union is the union of term sets of its terms. tset.terms = nil - for i := 0; i < u.Len(); i++ { - t := u.Term(i) + for t := range u.Terms() { var terms termlist switch t.Type().Underlying().(type) { case *types.Interface: diff --git a/vendor/golang.org/x/tools/internal/typesinternal/element.go b/vendor/golang.org/x/tools/internal/typesinternal/element.go index 4957f021..5fe4d8ab 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/element.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/element.go @@ -35,8 +35,8 @@ func ForEachElement(rtypes *typeutil.Map, msets *typeutil.MethodSetCache, T type // Recursion over signatures of each method. tmset := msets.MethodSet(T) - for i := 0; i < tmset.Len(); i++ { - sig := tmset.At(i).Type().(*types.Signature) + for method := range tmset.Methods() { + sig := method.Type().(*types.Signature) // It is tempting to call visit(sig, false) // but, as noted in golang.org/cl/65450043, // the Signature.Recv field is ignored by diff --git a/vendor/golang.org/x/tools/internal/typesinternal/fx.go b/vendor/golang.org/x/tools/internal/typesinternal/fx.go index 93acff21..c846a53d 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/fx.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/fx.go @@ -19,25 +19,46 @@ func NoEffects(info *types.Info, expr ast.Expr) bool { switch v := n.(type) { case nil, *ast.Ident, *ast.BasicLit, *ast.BinaryExpr, *ast.ParenExpr, *ast.SelectorExpr, *ast.IndexExpr, *ast.SliceExpr, *ast.TypeAssertExpr, - *ast.StarExpr, *ast.CompositeLit, *ast.ArrayType, *ast.StructType, - *ast.MapType, *ast.InterfaceType, *ast.KeyValueExpr: - // No effect + *ast.StarExpr, *ast.CompositeLit, + // non-expressions that may appear within expressions + *ast.KeyValueExpr, + *ast.FieldList, + *ast.Field, + *ast.Ellipsis, + *ast.IndexListExpr: + // No effect. + + case *ast.ArrayType, + *ast.StructType, + *ast.ChanType, + *ast.FuncType, + *ast.MapType, + *ast.InterfaceType: + // Type syntax: no effects, recursively. + // Prune descent. + return false + case *ast.UnaryExpr: - // Channel send <-ch has effects + // Channel send <-ch has effects. if v.Op == token.ARROW { noEffects = false } - case *ast.CallExpr: - // Type conversion has no effects - if !info.Types[v.Fun].IsType() { - // TODO(adonovan): Add a case for built-in functions without side - // effects (by using callsPureBuiltin from tools/internal/refactor/inline) - noEffects = false + case *ast.CallExpr: + // Type conversion has no effects. + if !info.Types[v.Fun].IsType() { + if CallsPureBuiltin(info, v) { + // A call such as len(e) has no effects of its + // own, though the subexpression e might. + } else { + noEffects = false + } } + case *ast.FuncLit: // A FuncLit has no effects, but do not descend into it. return false + default: // All other expressions have effects noEffects = false @@ -47,3 +68,21 @@ func NoEffects(info *types.Info, expr ast.Expr) bool { }) return noEffects } + +// CallsPureBuiltin reports whether call is a call of a built-in +// function that is a pure computation over its operands (analogous to +// a + operator). Because it does not depend on program state, it may +// be evaluated at any point--though not necessarily at multiple +// points (consider new, make). +func CallsPureBuiltin(info *types.Info, call *ast.CallExpr) bool { + if id, ok := ast.Unparen(call.Fun).(*ast.Ident); ok { + if b, ok := info.ObjectOf(id).(*types.Builtin); ok { + switch b.Name() { + case "len", "cap", "complex", "imag", "real", "make", "new", "max", "min": + return true + } + // Not: append clear close copy delete panic print println recover + } + } + return false +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go b/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go index f2affec4..e0d63c46 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go @@ -48,7 +48,7 @@ func IsFunctionNamed(obj types.Object, pkgPath string, names ...string) bool { return ok && IsPackageLevel(obj) && f.Pkg().Path() == pkgPath && - f.Type().(*types.Signature).Recv() == nil && + f.Signature().Recv() == nil && slices.Contains(names, f.Name()) } @@ -60,7 +60,7 @@ func IsFunctionNamed(obj types.Object, pkgPath string, names ...string) bool { // which is important for the performance of syntax matching. func IsMethodNamed(obj types.Object, pkgPath string, typeName string, names ...string) bool { if fn, ok := obj.(*types.Func); ok { - if recv := fn.Type().(*types.Signature).Recv(); recv != nil { + if recv := fn.Signature().Recv(); recv != nil { _, T := ReceiverNamed(recv) return T != nil && IsTypeNamed(T, pkgPath, typeName) && diff --git a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go index 64f47919..4e2756fc 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go @@ -19,7 +19,7 @@ import ( // TODO(adonovan): this function ignores the effect of shadowing. It // should accept a [token.Pos] and a [types.Info] and compute only the // set of imports that are not shadowed at that point, analogous to -// [analysisinternal.AddImport]. It could also compute (as a side +// [analysis.AddImport]. It could also compute (as a side // effect) the set of additional imports required to ensure that there // is an accessible import for each necessary package, making it // converge even more closely with AddImport. diff --git a/vendor/golang.org/x/tools/internal/typesinternal/varkind.go b/vendor/golang.org/x/tools/internal/typesinternal/varkind.go index e5da0495..26499cdd 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/varkind.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/varkind.go @@ -2,39 +2,22 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -package typesinternal +//go:build go1.25 -// TODO(adonovan): when CL 645115 lands, define the go1.25 version of -// this API that actually does something. +package typesinternal import "go/types" -type VarKind uint8 +type VarKind = types.VarKind const ( - _ VarKind = iota // (not meaningful) - PackageVar // a package-level variable - LocalVar // a local variable - RecvVar // a method receiver variable - ParamVar // a function parameter variable - ResultVar // a function result variable - FieldVar // a struct field + PackageVar = types.PackageVar + LocalVar = types.LocalVar + RecvVar = types.RecvVar + ParamVar = types.ParamVar + ResultVar = types.ResultVar + FieldVar = types.FieldVar ) -func (kind VarKind) String() string { - return [...]string{ - 0: "VarKind(0)", - PackageVar: "PackageVar", - LocalVar: "LocalVar", - RecvVar: "RecvVar", - ParamVar: "ParamVar", - ResultVar: "ResultVar", - FieldVar: "FieldVar", - }[kind] -} - -// GetVarKind returns an invalid VarKind. -func GetVarKind(v *types.Var) VarKind { return 0 } - -// SetVarKind has no effect. -func SetVarKind(v *types.Var, kind VarKind) {} +func GetVarKind(v *types.Var) VarKind { return v.Kind() } +func SetVarKind(v *types.Var, kind VarKind) { v.SetKind(kind) } diff --git a/vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go b/vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go new file mode 100644 index 00000000..17b1804b --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go @@ -0,0 +1,39 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.25 + +package typesinternal + +import "go/types" + +type VarKind uint8 + +const ( + _ VarKind = iota // (not meaningful) + PackageVar // a package-level variable + LocalVar // a local variable + RecvVar // a method receiver variable + ParamVar // a function parameter variable + ResultVar // a function result variable + FieldVar // a struct field +) + +func (kind VarKind) String() string { + return [...]string{ + 0: "VarKind(0)", + PackageVar: "PackageVar", + LocalVar: "LocalVar", + RecvVar: "RecvVar", + ParamVar: "ParamVar", + ResultVar: "ResultVar", + FieldVar: "FieldVar", + }[kind] +} + +// GetVarKind returns an invalid VarKind. +func GetVarKind(v *types.Var) VarKind { return 0 } + +// SetVarKind has no effect. +func SetVarKind(v *types.Var, kind VarKind) {} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go index 453bba2a..d612a710 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go @@ -258,12 +258,12 @@ func TypeExpr(t types.Type, qual types.Qualifier) ast.Expr { case *types.Signature: var params []*ast.Field - for i := 0; i < t.Params().Len(); i++ { + for v := range t.Params().Variables() { params = append(params, &ast.Field{ - Type: TypeExpr(t.Params().At(i).Type(), qual), + Type: TypeExpr(v.Type(), qual), Names: []*ast.Ident{ { - Name: t.Params().At(i).Name(), + Name: v.Name(), }, }, }) @@ -273,9 +273,9 @@ func TypeExpr(t types.Type, qual types.Qualifier) ast.Expr { last.Type = &ast.Ellipsis{Elt: last.Type.(*ast.ArrayType).Elt} } var returns []*ast.Field - for i := 0; i < t.Results().Len(); i++ { + for v := range t.Results().Variables() { returns = append(returns, &ast.Field{ - Type: TypeExpr(t.Results().At(i).Type(), qual), + Type: TypeExpr(v.Type(), qual), }) } return &ast.FuncType{ @@ -315,8 +315,8 @@ func TypeExpr(t types.Type, qual types.Qualifier) ast.Expr { if hasTypeArgs, ok := t.(interface{ TypeArgs() *types.TypeList }); ok { if typeArgs := hasTypeArgs.TypeArgs(); typeArgs != nil && typeArgs.Len() > 0 { var indices []ast.Expr - for i := range typeArgs.Len() { - indices = append(indices, TypeExpr(typeArgs.At(i), qual)) + for t0 := range typeArgs.Types() { + indices = append(indices, TypeExpr(t0, qual)) } expr = &ast.IndexListExpr{ X: expr, diff --git a/vendor/golang.org/x/tools/internal/versions/features.go b/vendor/golang.org/x/tools/internal/versions/features.go index b53f1786..a5f4e325 100644 --- a/vendor/golang.org/x/tools/internal/versions/features.go +++ b/vendor/golang.org/x/tools/internal/versions/features.go @@ -7,13 +7,17 @@ package versions // This file contains predicates for working with file versions to // decide when a tool should consider a language feature enabled. -// GoVersions that features in x/tools can be gated to. +// named constants, to avoid misspelling const ( Go1_18 = "go1.18" Go1_19 = "go1.19" Go1_20 = "go1.20" Go1_21 = "go1.21" Go1_22 = "go1.22" + Go1_23 = "go1.23" + Go1_24 = "go1.24" + Go1_25 = "go1.25" + Go1_26 = "go1.26" ) // Future is an invalid unknown Go version sometime in the future. diff --git a/vendor/gorm.io/driver/sqlserver/migrator.go b/vendor/gorm.io/driver/sqlserver/migrator.go index 85d29873..1ef7940b 100644 --- a/vendor/gorm.io/driver/sqlserver/migrator.go +++ b/vendor/gorm.io/driver/sqlserver/migrator.go @@ -437,6 +437,29 @@ WHERE TABLE_CATALOG = ? AND TABLE_NAME = ?`) return columnTypes, execErr } +func (m Migrator) CreateView(name string, option gorm.ViewOption) error { + if option.Query == nil { + return gorm.ErrSubQueryRequired + } + + sql := new(strings.Builder) + sql.WriteString("CREATE ") + if option.Replace { + sql.WriteString("OR ALTER ") + } + sql.WriteString("VIEW ") + m.QuoteTo(sql, name) + sql.WriteString(" AS ") + + m.DB.Statement.AddVar(sql, option.Query) + + if option.CheckOption != "" { + sql.WriteString(" ") + sql.WriteString(option.CheckOption) + } + return m.DB.Exec(m.Explain(sql.String(), m.DB.Statement.Vars...)).Error +} + func (m Migrator) CreateIndex(value interface{}, name string) error { return m.RunWithValue(value, func(stmt *gorm.Statement) error { var idx *schema.Index @@ -549,7 +572,18 @@ func (m Migrator) HasConstraint(value interface{}, name string) bool { } return m.DB.Raw( - `SELECT count(*) FROM sys.foreign_keys as F inner join sys.tables as T on F.parent_object_id=T.object_id inner join INFORMATION_SCHEMA.TABLES as I on I.TABLE_NAME = T.name WHERE F.name = ? AND I.TABLE_NAME = ? AND I.TABLE_SCHEMA like ? AND I.TABLE_CATALOG = ?;`, + `SELECT count(*) FROM ( + SELECT C.name, T.name as table_name FROM sys.check_constraints as C + INNER JOIN sys.tables as T on C.parent_object_id=T.object_id + INNER JOIN INFORMATION_SCHEMA.TABLES as I on I.TABLE_NAME = T.name + WHERE C.name = ? AND I.TABLE_NAME = ? AND I.TABLE_SCHEMA like ? AND I.TABLE_CATALOG = ? + UNION + SELECT FK.name, T.name as table_name FROM sys.foreign_keys as FK + INNER JOIN sys.tables as T on FK.parent_object_id=T.object_id + INNER JOIN INFORMATION_SCHEMA.TABLES as I on I.TABLE_NAME = T.name + WHERE FK.name = ? AND I.TABLE_NAME = ? AND I.TABLE_SCHEMA like ? AND I.TABLE_CATALOG = ? + ) as constraints;`, + name, tableName, tableSchema, tableCatalog, name, tableName, tableSchema, tableCatalog, ).Row().Scan(&count) }) diff --git a/vendor/modules.txt b/vendor/modules.txt index 1f7bde93..86baceb9 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -152,7 +152,7 @@ github.com/denisenkom/go-mssqldb/msdsn ## explicit; go 1.13 github.com/dlclark/regexp2 github.com/dlclark/regexp2/syntax -# github.com/dromara/carbon/v2 v2.6.14 +# github.com/dromara/carbon/v2 v2.6.15 ## explicit; go 1.18 github.com/dromara/carbon/v2 github.com/dromara/carbon/v2/calendar @@ -184,8 +184,8 @@ github.com/emersion/go-sasl # github.com/fatih/color v1.18.0 ## explicit; go 1.17 github.com/fatih/color -# github.com/getsentry/sentry-go v0.36.2 -## explicit; go 1.23 +# github.com/getsentry/sentry-go v0.37.0 +## explicit; go 1.23.0 github.com/getsentry/sentry-go github.com/getsentry/sentry-go/attribute github.com/getsentry/sentry-go/internal/debug @@ -269,7 +269,7 @@ github.com/gotd/ige # github.com/gotd/neo v0.1.5 ## explicit; go 1.12 github.com/gotd/neo -# github.com/gotd/td v0.132.0 +# github.com/gotd/td v0.133.0 ## explicit; go 1.24.0 github.com/gotd/td/ascii github.com/gotd/td/bin @@ -411,7 +411,7 @@ github.com/mattn/go-sqlite3 # github.com/mdp/qrterminal/v3 v3.2.1 ## explicit; go 1.20 github.com/mdp/qrterminal/v3 -# github.com/microsoft/go-mssqldb v1.9.3 +# github.com/microsoft/go-mssqldb v1.9.4 ## explicit; go 1.23.0 github.com/microsoft/go-mssqldb github.com/microsoft/go-mssqldb/aecmk @@ -618,20 +618,6 @@ github.com/stretchr/testify/assert github.com/stretchr/testify/assert/yaml github.com/stretchr/testify/require github.com/stretchr/testify/suite -# github.com/syndtr/goleveldb v1.0.0 -## explicit -github.com/syndtr/goleveldb/leveldb -github.com/syndtr/goleveldb/leveldb/cache -github.com/syndtr/goleveldb/leveldb/comparer -github.com/syndtr/goleveldb/leveldb/errors -github.com/syndtr/goleveldb/leveldb/filter -github.com/syndtr/goleveldb/leveldb/iterator -github.com/syndtr/goleveldb/leveldb/journal -github.com/syndtr/goleveldb/leveldb/memdb -github.com/syndtr/goleveldb/leveldb/opt -github.com/syndtr/goleveldb/leveldb/storage -github.com/syndtr/goleveldb/leveldb/table -github.com/syndtr/goleveldb/leveldb/util # github.com/tinkoff/invest-api-go-sdk v1.4.6 ## explicit; go 1.20 github.com/tinkoff/invest-api-go-sdk/investgo @@ -659,14 +645,6 @@ github.com/vektah/gqlparser/v2/ast # github.com/xhit/go-simple-mail/v2 v2.16.0 ## explicit; go 1.13 github.com/xhit/go-simple-mail/v2 -# gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange v1.0.36 -## explicit; go 1.22 -gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange -gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/data_packer -gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/liveness -gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_confirm -gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_global -gitlab.aescorp.ru/dsp_dev/claim/common/sync_exchange/sync_types # go.etcd.io/bbolt v1.4.3 ## explicit; go 1.23 go.etcd.io/bbolt @@ -701,12 +679,13 @@ go.mau.fi/libsignal/util/errorhelper go.mau.fi/libsignal/util/keyhelper go.mau.fi/libsignal/util/medium go.mau.fi/libsignal/util/optional -# go.mau.fi/util v0.9.2 +# go.mau.fi/util v0.9.3 ## explicit; go 1.24.0 go.mau.fi/util/dbutil go.mau.fi/util/exbytes go.mau.fi/util/exerrors go.mau.fi/util/exhttp +go.mau.fi/util/exmaps go.mau.fi/util/exslices go.mau.fi/util/exstrings go.mau.fi/util/exsync @@ -716,7 +695,7 @@ go.mau.fi/util/jsontime go.mau.fi/util/ptr go.mau.fi/util/random go.mau.fi/util/retryafter -# go.mau.fi/whatsmeow v0.0.0-20251028165006-ad7a618ba42f +# go.mau.fi/whatsmeow v0.0.0-20251116104239-3aca43070cd4 ## explicit; go 1.24.0 go.mau.fi/whatsmeow go.mau.fi/whatsmeow/appstate @@ -812,7 +791,7 @@ go.uber.org/zap/zapcore # go.yaml.in/yaml/v2 v2.4.3 ## explicit; go 1.15 go.yaml.in/yaml/v2 -# golang.org/x/crypto v0.43.0 +# golang.org/x/crypto v0.44.0 ## explicit; go 1.24.0 golang.org/x/crypto/argon2 golang.org/x/crypto/blake2b @@ -826,17 +805,17 @@ golang.org/x/crypto/nacl/secretbox golang.org/x/crypto/pbkdf2 golang.org/x/crypto/salsa20/salsa golang.org/x/crypto/ssh/terminal -# golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 +# golang.org/x/exp v0.0.0-20251113190631-e25ba8c21ef6 ## explicit; go 1.24.0 golang.org/x/exp/constraints golang.org/x/exp/maps golang.org/x/exp/rand -# golang.org/x/mod v0.29.0 +# golang.org/x/mod v0.30.0 ## explicit; go 1.24.0 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.46.0 +# golang.org/x/net v0.47.0 ## explicit; go 1.24.0 golang.org/x/net/context golang.org/x/net/http/httpguts @@ -849,7 +828,7 @@ golang.org/x/net/internal/timeseries golang.org/x/net/proxy golang.org/x/net/publicsuffix golang.org/x/net/trace -# golang.org/x/oauth2 v0.32.0 +# golang.org/x/oauth2 v0.33.0 ## explicit; go 1.24.0 golang.org/x/oauth2 golang.org/x/oauth2/authhandler @@ -862,12 +841,12 @@ golang.org/x/oauth2/google/internal/stsexchange golang.org/x/oauth2/internal golang.org/x/oauth2/jws golang.org/x/oauth2/jwt -# golang.org/x/sync v0.17.0 +# golang.org/x/sync v0.18.0 ## explicit; go 1.24.0 golang.org/x/sync/errgroup golang.org/x/sync/semaphore golang.org/x/sync/singleflight -# golang.org/x/sys v0.37.0 +# golang.org/x/sys v0.38.0 ## explicit; go 1.24.0 golang.org/x/sys/cpu golang.org/x/sys/execabs @@ -875,10 +854,10 @@ golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# golang.org/x/term v0.36.0 +# golang.org/x/term v0.37.0 ## explicit; go 1.24.0 golang.org/x/term -# golang.org/x/text v0.30.0 +# golang.org/x/text v0.31.0 ## explicit; go 1.24.0 golang.org/x/text/cases golang.org/x/text/encoding @@ -899,7 +878,7 @@ golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm golang.org/x/text/unicode/rangetable golang.org/x/text/width -# golang.org/x/tools v0.38.0 +# golang.org/x/tools v0.39.0 ## explicit; go 1.24.0 golang.org/x/tools/go/ast/astutil golang.org/x/tools/go/ast/edge @@ -925,7 +904,7 @@ golang.org/x/tools/internal/stdlib golang.org/x/tools/internal/typeparams golang.org/x/tools/internal/typesinternal golang.org/x/tools/internal/versions -# google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 +# google.golang.org/genproto/googleapis/rpc v0.0.0-20251111163417-95abcf5c77ba ## explicit; go 1.24.0 google.golang.org/genproto/googleapis/rpc/status # google.golang.org/grpc v1.76.0 @@ -1039,7 +1018,7 @@ gopkg.in/yaml.v3 # gorm.io/driver/postgres v1.6.0 ## explicit; go 1.20 gorm.io/driver/postgres -# gorm.io/driver/sqlserver v1.6.1 +# gorm.io/driver/sqlserver v1.6.3 ## explicit; go 1.14 gorm.io/driver/sqlserver # gorm.io/gorm v1.31.1