diff --git a/go.mod b/go.mod index d4cedc7e..7f2d1415 100644 --- a/go.mod +++ b/go.mod @@ -32,6 +32,7 @@ require ( github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80 github.com/lmittmann/tint v1.0.2 github.com/makiuchi-d/arelo v1.12.0 + github.com/markbates/goth v1.78.0 github.com/mattn/go-sqlite3 v1.14.18 github.com/pion/rtp v1.7.13 github.com/pion/webrtc/v3 v3.1.58 @@ -51,7 +52,7 @@ require ( golang.org/x/crypto v0.18.0 golang.org/x/net v0.20.0 google.golang.org/grpc v1.59.0 - google.golang.org/protobuf v1.31.0 + google.golang.org/protobuf v1.32.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/datatypes v1.1.1 gorm.io/driver/mysql v1.5.1 @@ -75,7 +76,6 @@ require ( github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c // indirect - github.com/TwiN/go-away v1.6.12 // indirect github.com/VividCortex/gohistogram v1.0.0 // indirect github.com/acomagu/bufpipe v1.0.4 // indirect github.com/agext/levenshtein v1.2.1 // indirect @@ -101,6 +101,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dlclark/regexp2 v1.10.0 // indirect github.com/dop251/goja v0.0.0-20230812105242-81d76064690d // indirect + github.com/dustinkirkland/golang-petname v0.0.0-20231002161417-6a283f1aaaf2 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/fatih/color v1.16.0 // indirect github.com/fatih/set v0.2.1 // indirect @@ -131,7 +132,11 @@ require ( github.com/google/subcommands v1.2.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/css v1.0.0 // indirect + github.com/gorilla/mux v1.7.3 // indirect + github.com/gorilla/securecookie v1.1.2 // indirect + github.com/gorilla/sessions v1.2.2 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/hashicorp/hcl/v2 v2.13.0 // indirect github.com/huandu/xstrings v1.3.3 // indirect @@ -199,7 +204,7 @@ require ( golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/oauth2 v0.15.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect golang.org/x/sync v0.5.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/go.sum b/go.sum index b1a3ab64..9d03ae9b 100644 --- a/go.sum +++ b/go.sum @@ -15,6 +15,7 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.67.0/go.mod h1:YNan/mUhNZFrYUor0vqrsQ0Ffl7Xtm/ACOy/vsTS858= cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y= cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= @@ -83,8 +84,6 @@ github.com/PuerkitoBio/goquery v1.8.1 h1:uQxhNlArOIdbrH1tr0UXwdVFgDcZDrZVdcpygAc github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/TwiN/go-away v1.6.12 h1:80AjDyeTjfQaSFYbALzRcDKMAmxKW0a5PoxwXKZlW2A= -github.com/TwiN/go-away v1.6.12/go.mod h1:MpvIC9Li3minq+CGgbgUDvQ9tDaeW35k5IXZrF9MVas= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= @@ -279,6 +278,8 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= @@ -294,6 +295,8 @@ github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustinkirkland/golang-petname v0.0.0-20231002161417-6a283f1aaaf2 h1:S6Dco8FtAhEI/qkg/00H6RdEGC+MCy5GPiQ+xweNRFE= +github.com/dustinkirkland/golang-petname v0.0.0-20231002161417-6a283f1aaaf2/go.mod h1:8AuBTZBRSFqEYBPYULd+NN474/zZBLP+6WeT5S9xlAc= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -403,6 +406,7 @@ github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA= github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= +github.com/goccy/go-json v0.9.6/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gocolly/colly v1.2.0/go.mod h1:Hof5T3ZswNVsOHYmba1u03W65HDWgpV5HifSuueE0EA= github.com/gocolly/colly/v2 v2.1.0 h1:k0DuZkDoCsx51bKpRJNEmcxcp+W5N8ziuwGaSDuFoGs= github.com/gocolly/colly/v2 v2.1.0/go.mod h1:I2MuhsLjQ+Ex+IzK3afNS8/1qP3AedHOusRPcRdC5o0= @@ -418,6 +422,7 @@ github.com/gogs/chardet v0.0.0-20211120154057-b7413eaefb8f h1:3BSP1Tbs2djlpprl7w github.com/gogs/chardet v0.0.0-20211120154057-b7413eaefb8f/go.mod h1:Pcatq5tYkCW2Q6yrR2VRHlbHpZ/R4/7qyL1TCF7vl14= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -469,6 +474,7 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -489,6 +495,7 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200905233945-acf8798be1f7/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= github.com/google/pprof v0.0.0-20230811205829-9131a7e9cc17 h1:0h35ESZ02+hN/MFZb7XZOXg+Rl9+Rk8fBIf5YLws9gA= github.com/google/pprof v0.0.0-20230811205829-9131a7e9cc17/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA= @@ -513,11 +520,22 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY= +github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= +github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= +github.com/gorilla/sessions v1.1.1 h1:YMDmfaK68mUixINzY/XjscuJ47uXFWSSHzFbBQM0PrE= +github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= +github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= +github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= @@ -638,6 +656,7 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4= github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg= github.com/jaytaylor/html2text v0.0.0-20180606194806-57d518f124b0/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk= github.com/jaytaylor/html2text v0.0.0-20211105163654-bc68cce691ba h1:QFQpJdgbON7I0jr2hYW7Bs+XV0qjc3d5tZoDnRFnqTg= @@ -711,6 +730,12 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80 h1:6Yzfa6GP0rIo/kULo2bwGEkFvCePZ3qHDDTC3/J9Swo= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= +github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= +github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ= +github.com/lestrrat-go/httpcc v1.0.0/go.mod h1:tGS/u00Vh5N6FHNkExqGGNId8e0Big+++0Gf8MBnAvE= +github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc= +github.com/lestrrat-go/jwx v1.2.21/go.mod h1:9cfxnOH7G1gN75CaJP2hKGcxFEx5sPh1abRIA/ZJVh4= +github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= @@ -729,6 +754,9 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/makiuchi-d/arelo v1.12.0 h1:wLoUIhxyHDltRWWIPUsC2o/llvz0pBTSuIB6WzElyN0= github.com/makiuchi-d/arelo v1.12.0/go.mod h1:Q+zjkl/lGqZCJQfVwil6WmWLeINK4uM7FUfcOt+KtY0= +github.com/markbates/going v1.0.0/go.mod h1:I6mnB4BPnEeqo85ynXIx1ZFLLbtiLHNXVgWeFO9OGOA= +github.com/markbates/goth v1.78.0 h1:7VEIFDycJp9deyVv3YraGBPdD0ZYQW93Y3Aw1eVP3BY= +github.com/markbates/goth v1.78.0/go.mod h1:X6xdNgpapSENS0O35iTBBcMHoJDQDfI9bJl+APCkYMc= github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -798,6 +826,7 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mrjones/oauth v0.0.0-20180629183705-f4e24b6d100c/go.mod h1:skjdDftzkFALcuGzYSklqYd8gvat6F1gZJ4YPVbkZpM= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= @@ -1150,6 +1179,7 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= @@ -1244,6 +1274,7 @@ golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200927032502-5d4f70055728/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -1274,10 +1305,11 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1345,6 +1377,7 @@ golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1476,6 +1509,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200929161345-d7fc70abf50f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -1514,6 +1549,7 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.32.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.152.0 h1:t0r1vPnfMc260S2Ci+en7kfCZaLOPs5KI0sVV/6jZrY= google.golang.org/api v0.152.0/go.mod h1:3qNJX5eOmhiWYc67jRA/3GsDw97UFb5ivv7Y2PrriAY= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -1556,6 +1592,8 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200929141702-51c3e5b607fe/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= @@ -1581,6 +1619,8 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= @@ -1604,8 +1644,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/js/dist/extension/background.js b/js/dist/extension/background.js index 095a1ee5..540199ff 100644 --- a/js/dist/extension/background.js +++ b/js/dist/extension/background.js @@ -1,9387 +1,2 @@ -"use strict"; -(() => { - // ../node_modules/@bufbuild/protobuf/dist/esm/private/assert.js - function assert(condition, msg) { - if (!condition) { - throw new Error(msg); - } - } - var FLOAT32_MAX = 34028234663852886e22; - var FLOAT32_MIN = -34028234663852886e22; - var UINT32_MAX = 4294967295; - var INT32_MAX = 2147483647; - var INT32_MIN = -2147483648; - function assertInt32(arg) { - if (typeof arg !== "number") - throw new Error("invalid int 32: " + typeof arg); - if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN) - throw new Error("invalid int 32: " + arg); - } - function assertUInt32(arg) { - if (typeof arg !== "number") - throw new Error("invalid uint 32: " + typeof arg); - if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0) - throw new Error("invalid uint 32: " + arg); - } - function assertFloat32(arg) { - if (typeof arg !== "number") - throw new Error("invalid float 32: " + typeof arg); - if (!Number.isFinite(arg)) - return; - if (arg > FLOAT32_MAX || arg < FLOAT32_MIN) - throw new Error("invalid float 32: " + arg); - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/enum.js - var enumTypeSymbol = Symbol("@bufbuild/protobuf/enum-type"); - function getEnumType(enumObject) { - const t = enumObject[enumTypeSymbol]; - assert(t, "missing enum type on enum object"); - return t; - } - function setEnumType(enumObject, typeName, values, opt) { - enumObject[enumTypeSymbol] = makeEnumType(typeName, values.map((v) => ({ - no: v.no, - name: v.name, - localName: enumObject[v.no] - })), opt); - } - function makeEnumType(typeName, values, _opt) { - const names = /* @__PURE__ */ Object.create(null); - const numbers = /* @__PURE__ */ Object.create(null); - const normalValues = []; - for (const value of values) { - const n = normalizeEnumValue(value); - normalValues.push(n); - names[value.name] = n; - numbers[value.no] = n; - } - return { - typeName, - values: normalValues, - // We do not surface options at this time - // options: opt?.options ?? Object.create(null), - findName(name) { - return names[name]; - }, - findNumber(no) { - return numbers[no]; - } - }; - } - function makeEnum(typeName, values, opt) { - const enumObject = {}; - for (const value of values) { - const n = normalizeEnumValue(value); - enumObject[n.localName] = n.no; - enumObject[n.no] = n.localName; - } - setEnumType(enumObject, typeName, values, opt); - return enumObject; - } - function normalizeEnumValue(value) { - if ("localName" in value) { - return value; - } - return Object.assign(Object.assign({}, value), { localName: value.name }); - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/message.js - var Message = class { - /** - * Compare with a message of the same type. - */ - equals(other) { - return this.getType().runtime.util.equals(this.getType(), this, other); - } - /** - * Create a deep copy. - */ - clone() { - return this.getType().runtime.util.clone(this); - } - /** - * Parse from binary data, merging fields. - * - * Repeated fields are appended. Map entries are added, overwriting - * existing keys. - * - * If a message field is already present, it will be merged with the - * new data. - */ - fromBinary(bytes, options) { - const type = this.getType(), format = type.runtime.bin, opt = format.makeReadOptions(options); - format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt); - return this; - } - /** - * Parse a message from a JSON value. - */ - fromJson(jsonValue, options) { - const type = this.getType(), format = type.runtime.json, opt = format.makeReadOptions(options); - format.readMessage(type, jsonValue, opt, this); - return this; - } - /** - * Parse a message from a JSON string. - */ - fromJsonString(jsonString, options) { - let json; - try { - json = JSON.parse(jsonString); - } catch (e) { - throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`); - } - return this.fromJson(json, options); - } - /** - * Serialize the message to binary data. - */ - toBinary(options) { - const type = this.getType(), bin = type.runtime.bin, opt = bin.makeWriteOptions(options), writer = opt.writerFactory(); - bin.writeMessage(this, writer, opt); - return writer.finish(); - } - /** - * Serialize the message to a JSON value, a JavaScript value that can be - * passed to JSON.stringify(). - */ - toJson(options) { - const type = this.getType(), json = type.runtime.json, opt = json.makeWriteOptions(options); - return json.writeMessage(this, opt); - } - /** - * Serialize the message to a JSON string. - */ - toJsonString(options) { - var _a; - const value = this.toJson(options); - return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0); - } - /** - * Override for serialization behavior. This will be invoked when calling - * JSON.stringify on this message (i.e. JSON.stringify(msg)). - * - * Note that this will not serialize google.protobuf.Any with a packed - * message because the protobuf JSON format specifies that it needs to be - * unpacked, and this is only possible with a type registry to look up the - * message type. As a result, attempting to serialize a message with this - * type will throw an Error. - * - * This method is protected because you should not need to invoke it - * directly -- instead use JSON.stringify or toJsonString for - * stringified JSON. Alternatively, if actual JSON is desired, you should - * use toJson. - */ - toJSON() { - return this.toJson({ - emitDefaultValues: true - }); - } - /** - * Retrieve the MessageType of this message - a singleton that represents - * the protobuf message declaration and provides metadata for reflection- - * based operations. - */ - getType() { - return Object.getPrototypeOf(this).constructor; - } - }; - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js - function makeMessageType(runtime, typeName, fields, opt) { - var _a; - const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(".") + 1); - const type = { - [localName]: function(data) { - runtime.util.initFields(this); - runtime.util.initPartial(data, this); - } - }[localName]; - Object.setPrototypeOf(type.prototype, new Message()); - Object.assign(type, { - runtime, - typeName, - fields: runtime.util.newFieldList(fields), - fromBinary(bytes, options) { - return new type().fromBinary(bytes, options); - }, - fromJson(jsonValue, options) { - return new type().fromJson(jsonValue, options); - }, - fromJsonString(jsonString, options) { - return new type().fromJsonString(jsonString, options); - }, - equals(a, b) { - return runtime.util.equals(type, a, b); - } - }); - return type; - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js - function makeProtoRuntime(syntax, json, bin, util) { - return { - syntax, - json, - bin, - util, - makeMessageType(typeName, fields, opt) { - return makeMessageType(this, typeName, fields, opt); - }, - makeEnum, - makeEnumType, - getEnumType - }; - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/field.js - var ScalarType; - (function(ScalarType2) { - ScalarType2[ScalarType2["DOUBLE"] = 1] = "DOUBLE"; - ScalarType2[ScalarType2["FLOAT"] = 2] = "FLOAT"; - ScalarType2[ScalarType2["INT64"] = 3] = "INT64"; - ScalarType2[ScalarType2["UINT64"] = 4] = "UINT64"; - ScalarType2[ScalarType2["INT32"] = 5] = "INT32"; - ScalarType2[ScalarType2["FIXED64"] = 6] = "FIXED64"; - ScalarType2[ScalarType2["FIXED32"] = 7] = "FIXED32"; - ScalarType2[ScalarType2["BOOL"] = 8] = "BOOL"; - ScalarType2[ScalarType2["STRING"] = 9] = "STRING"; - ScalarType2[ScalarType2["BYTES"] = 12] = "BYTES"; - ScalarType2[ScalarType2["UINT32"] = 13] = "UINT32"; - ScalarType2[ScalarType2["SFIXED32"] = 15] = "SFIXED32"; - ScalarType2[ScalarType2["SFIXED64"] = 16] = "SFIXED64"; - ScalarType2[ScalarType2["SINT32"] = 17] = "SINT32"; - ScalarType2[ScalarType2["SINT64"] = 18] = "SINT64"; - })(ScalarType || (ScalarType = {})); - var LongType; - (function(LongType2) { - LongType2[LongType2["BIGINT"] = 0] = "BIGINT"; - LongType2[LongType2["STRING"] = 1] = "STRING"; - })(LongType || (LongType = {})); - - // ../node_modules/@bufbuild/protobuf/dist/esm/google/varint.js - function varint64read() { - let lowBits = 0; - let highBits = 0; - for (let shift = 0; shift < 28; shift += 7) { - let b = this.buf[this.pos++]; - lowBits |= (b & 127) << shift; - if ((b & 128) == 0) { - this.assertBounds(); - return [lowBits, highBits]; - } - } - let middleByte = this.buf[this.pos++]; - lowBits |= (middleByte & 15) << 28; - highBits = (middleByte & 112) >> 4; - if ((middleByte & 128) == 0) { - this.assertBounds(); - return [lowBits, highBits]; - } - for (let shift = 3; shift <= 31; shift += 7) { - let b = this.buf[this.pos++]; - highBits |= (b & 127) << shift; - if ((b & 128) == 0) { - this.assertBounds(); - return [lowBits, highBits]; - } - } - throw new Error("invalid varint"); - } - function varint64write(lo, hi, bytes) { - for (let i = 0; i < 28; i = i + 7) { - const shift = lo >>> i; - const hasNext = !(shift >>> 7 == 0 && hi == 0); - const byte = (hasNext ? shift | 128 : shift) & 255; - bytes.push(byte); - if (!hasNext) { - return; - } - } - const splitBits = lo >>> 28 & 15 | (hi & 7) << 4; - const hasMoreBits = !(hi >> 3 == 0); - bytes.push((hasMoreBits ? splitBits | 128 : splitBits) & 255); - if (!hasMoreBits) { - return; - } - for (let i = 3; i < 31; i = i + 7) { - const shift = hi >>> i; - const hasNext = !(shift >>> 7 == 0); - const byte = (hasNext ? shift | 128 : shift) & 255; - bytes.push(byte); - if (!hasNext) { - return; - } - } - bytes.push(hi >>> 31 & 1); - } - var TWO_PWR_32_DBL = 4294967296; - function int64FromString(dec) { - const minus = dec[0] === "-"; - if (minus) { - dec = dec.slice(1); - } - const base = 1e6; - let lowBits = 0; - let highBits = 0; - function add1e6digit(begin, end) { - const digit1e6 = Number(dec.slice(begin, end)); - highBits *= base; - lowBits = lowBits * base + digit1e6; - if (lowBits >= TWO_PWR_32_DBL) { - highBits = highBits + (lowBits / TWO_PWR_32_DBL | 0); - lowBits = lowBits % TWO_PWR_32_DBL; - } - } - add1e6digit(-24, -18); - add1e6digit(-18, -12); - add1e6digit(-12, -6); - add1e6digit(-6); - return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits); - } - function int64ToString(lo, hi) { - let bits = newBits(lo, hi); - const negative = bits.hi & 2147483648; - if (negative) { - bits = negate(bits.lo, bits.hi); - } - const result = uInt64ToString(bits.lo, bits.hi); - return negative ? "-" + result : result; - } - function uInt64ToString(lo, hi) { - ({ lo, hi } = toUnsigned(lo, hi)); - if (hi <= 2097151) { - return String(TWO_PWR_32_DBL * hi + lo); - } - const low = lo & 16777215; - const mid = (lo >>> 24 | hi << 8) & 16777215; - const high = hi >> 16 & 65535; - let digitA = low + mid * 6777216 + high * 6710656; - let digitB = mid + high * 8147497; - let digitC = high * 2; - const base = 1e7; - if (digitA >= base) { - digitB += Math.floor(digitA / base); - digitA %= base; - } - if (digitB >= base) { - digitC += Math.floor(digitB / base); - digitB %= base; - } - return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) + decimalFrom1e7WithLeadingZeros(digitA); - } - function toUnsigned(lo, hi) { - return { lo: lo >>> 0, hi: hi >>> 0 }; - } - function newBits(lo, hi) { - return { lo: lo | 0, hi: hi | 0 }; - } - function negate(lowBits, highBits) { - highBits = ~highBits; - if (lowBits) { - lowBits = ~lowBits + 1; - } else { - highBits += 1; - } - return newBits(lowBits, highBits); - } - var decimalFrom1e7WithLeadingZeros = (digit1e7) => { - const partial = String(digit1e7); - return "0000000".slice(partial.length) + partial; - }; - function varint32write(value, bytes) { - if (value >= 0) { - while (value > 127) { - bytes.push(value & 127 | 128); - value = value >>> 7; - } - bytes.push(value); - } else { - for (let i = 0; i < 9; i++) { - bytes.push(value & 127 | 128); - value = value >> 7; - } - bytes.push(1); - } - } - function varint32read() { - let b = this.buf[this.pos++]; - let result = b & 127; - if ((b & 128) == 0) { - this.assertBounds(); - return result; - } - b = this.buf[this.pos++]; - result |= (b & 127) << 7; - if ((b & 128) == 0) { - this.assertBounds(); - return result; - } - b = this.buf[this.pos++]; - result |= (b & 127) << 14; - if ((b & 128) == 0) { - this.assertBounds(); - return result; - } - b = this.buf[this.pos++]; - result |= (b & 127) << 21; - if ((b & 128) == 0) { - this.assertBounds(); - return result; - } - b = this.buf[this.pos++]; - result |= (b & 15) << 28; - for (let readBytes = 5; (b & 128) !== 0 && readBytes < 10; readBytes++) - b = this.buf[this.pos++]; - if ((b & 128) != 0) - throw new Error("invalid varint"); - this.assertBounds(); - return result >>> 0; - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js - function makeInt64Support() { - const dv = new DataView(new ArrayBuffer(8)); - const ok = typeof BigInt === "function" && typeof dv.getBigInt64 === "function" && typeof dv.getBigUint64 === "function" && typeof dv.setBigInt64 === "function" && typeof dv.setBigUint64 === "function" && (typeof process != "object" || typeof process.env != "object" || process.env.BUF_BIGINT_DISABLE !== "1"); - if (ok) { - const MIN = BigInt("-9223372036854775808"), MAX = BigInt("9223372036854775807"), UMIN = BigInt("0"), UMAX = BigInt("18446744073709551615"); - return { - zero: BigInt(0), - supported: true, - parse(value) { - const bi = typeof value == "bigint" ? value : BigInt(value); - if (bi > MAX || bi < MIN) { - throw new Error(`int64 invalid: ${value}`); - } - return bi; - }, - uParse(value) { - const bi = typeof value == "bigint" ? value : BigInt(value); - if (bi > UMAX || bi < UMIN) { - throw new Error(`uint64 invalid: ${value}`); - } - return bi; - }, - enc(value) { - dv.setBigInt64(0, this.parse(value), true); - return { - lo: dv.getInt32(0, true), - hi: dv.getInt32(4, true) - }; - }, - uEnc(value) { - dv.setBigInt64(0, this.uParse(value), true); - return { - lo: dv.getInt32(0, true), - hi: dv.getInt32(4, true) - }; - }, - dec(lo, hi) { - dv.setInt32(0, lo, true); - dv.setInt32(4, hi, true); - return dv.getBigInt64(0, true); - }, - uDec(lo, hi) { - dv.setInt32(0, lo, true); - dv.setInt32(4, hi, true); - return dv.getBigUint64(0, true); - } - }; - } - const assertInt64String = (value) => assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`); - const assertUInt64String = (value) => assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`); - return { - zero: "0", - supported: false, - parse(value) { - if (typeof value != "string") { - value = value.toString(); - } - assertInt64String(value); - return value; - }, - uParse(value) { - if (typeof value != "string") { - value = value.toString(); - } - assertUInt64String(value); - return value; - }, - enc(value) { - if (typeof value != "string") { - value = value.toString(); - } - assertInt64String(value); - return int64FromString(value); - }, - uEnc(value) { - if (typeof value != "string") { - value = value.toString(); - } - assertUInt64String(value); - return int64FromString(value); - }, - dec(lo, hi) { - return int64ToString(lo, hi); - }, - uDec(lo, hi) { - return uInt64ToString(lo, hi); - } - }; - } - var protoInt64 = makeInt64Support(); - - // ../node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js - var WireType; - (function(WireType2) { - WireType2[WireType2["Varint"] = 0] = "Varint"; - WireType2[WireType2["Bit64"] = 1] = "Bit64"; - WireType2[WireType2["LengthDelimited"] = 2] = "LengthDelimited"; - WireType2[WireType2["StartGroup"] = 3] = "StartGroup"; - WireType2[WireType2["EndGroup"] = 4] = "EndGroup"; - WireType2[WireType2["Bit32"] = 5] = "Bit32"; - })(WireType || (WireType = {})); - var BinaryWriter = class { - constructor(textEncoder) { - this.stack = []; - this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder(); - this.chunks = []; - this.buf = []; - } - /** - * Return all bytes written and reset this writer. - */ - finish() { - this.chunks.push(new Uint8Array(this.buf)); - let len = 0; - for (let i = 0; i < this.chunks.length; i++) - len += this.chunks[i].length; - let bytes = new Uint8Array(len); - let offset = 0; - for (let i = 0; i < this.chunks.length; i++) { - bytes.set(this.chunks[i], offset); - offset += this.chunks[i].length; - } - this.chunks = []; - return bytes; - } - /** - * Start a new fork for length-delimited data like a message - * or a packed repeated field. - * - * Must be joined later with `join()`. - */ - fork() { - this.stack.push({ chunks: this.chunks, buf: this.buf }); - this.chunks = []; - this.buf = []; - return this; - } - /** - * Join the last fork. Write its length and bytes, then - * return to the previous state. - */ - join() { - let chunk = this.finish(); - let prev = this.stack.pop(); - if (!prev) - throw new Error("invalid state, fork stack empty"); - this.chunks = prev.chunks; - this.buf = prev.buf; - this.uint32(chunk.byteLength); - return this.raw(chunk); - } - /** - * Writes a tag (field number and wire type). - * - * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`. - * - * Generated code should compute the tag ahead of time and call `uint32()`. - */ - tag(fieldNo, type) { - return this.uint32((fieldNo << 3 | type) >>> 0); - } - /** - * Write a chunk of raw bytes. - */ - raw(chunk) { - if (this.buf.length) { - this.chunks.push(new Uint8Array(this.buf)); - this.buf = []; - } - this.chunks.push(chunk); - return this; - } - /** - * Write a `uint32` value, an unsigned 32 bit varint. - */ - uint32(value) { - assertUInt32(value); - while (value > 127) { - this.buf.push(value & 127 | 128); - value = value >>> 7; - } - this.buf.push(value); - return this; - } - /** - * Write a `int32` value, a signed 32 bit varint. - */ - int32(value) { - assertInt32(value); - varint32write(value, this.buf); - return this; - } - /** - * Write a `bool` value, a variant. - */ - bool(value) { - this.buf.push(value ? 1 : 0); - return this; - } - /** - * Write a `bytes` value, length-delimited arbitrary data. - */ - bytes(value) { - this.uint32(value.byteLength); - return this.raw(value); - } - /** - * Write a `string` value, length-delimited data converted to UTF-8 text. - */ - string(value) { - let chunk = this.textEncoder.encode(value); - this.uint32(chunk.byteLength); - return this.raw(chunk); - } - /** - * Write a `float` value, 32-bit floating point number. - */ - float(value) { - assertFloat32(value); - let chunk = new Uint8Array(4); - new DataView(chunk.buffer).setFloat32(0, value, true); - return this.raw(chunk); - } - /** - * Write a `double` value, a 64-bit floating point number. - */ - double(value) { - let chunk = new Uint8Array(8); - new DataView(chunk.buffer).setFloat64(0, value, true); - return this.raw(chunk); - } - /** - * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer. - */ - fixed32(value) { - assertUInt32(value); - let chunk = new Uint8Array(4); - new DataView(chunk.buffer).setUint32(0, value, true); - return this.raw(chunk); - } - /** - * Write a `sfixed32` value, a signed, fixed-length 32-bit integer. - */ - sfixed32(value) { - assertInt32(value); - let chunk = new Uint8Array(4); - new DataView(chunk.buffer).setInt32(0, value, true); - return this.raw(chunk); - } - /** - * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint. - */ - sint32(value) { - assertInt32(value); - value = (value << 1 ^ value >> 31) >>> 0; - varint32write(value, this.buf); - return this; - } - /** - * Write a `fixed64` value, a signed, fixed-length 64-bit integer. - */ - sfixed64(value) { - let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value); - view.setInt32(0, tc.lo, true); - view.setInt32(4, tc.hi, true); - return this.raw(chunk); - } - /** - * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer. - */ - fixed64(value) { - let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value); - view.setInt32(0, tc.lo, true); - view.setInt32(4, tc.hi, true); - return this.raw(chunk); - } - /** - * Write a `int64` value, a signed 64-bit varint. - */ - int64(value) { - let tc = protoInt64.enc(value); - varint64write(tc.lo, tc.hi, this.buf); - return this; - } - /** - * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint. - */ - sint64(value) { - let tc = protoInt64.enc(value), sign = tc.hi >> 31, lo = tc.lo << 1 ^ sign, hi = (tc.hi << 1 | tc.lo >>> 31) ^ sign; - varint64write(lo, hi, this.buf); - return this; - } - /** - * Write a `uint64` value, an unsigned 64-bit varint. - */ - uint64(value) { - let tc = protoInt64.uEnc(value); - varint64write(tc.lo, tc.hi, this.buf); - return this; - } - }; - var BinaryReader = class { - constructor(buf, textDecoder) { - this.varint64 = varint64read; - this.uint32 = varint32read; - this.buf = buf; - this.len = buf.length; - this.pos = 0; - this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength); - this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder(); - } - /** - * Reads a tag - field number and wire type. - */ - tag() { - let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7; - if (fieldNo <= 0 || wireType < 0 || wireType > 5) - throw new Error("illegal tag: field no " + fieldNo + " wire type " + wireType); - return [fieldNo, wireType]; - } - /** - * Skip one element on the wire and return the skipped data. - * Supports WireType.StartGroup since v2.0.0-alpha.23. - */ - skip(wireType) { - let start = this.pos; - switch (wireType) { - case WireType.Varint: - while (this.buf[this.pos++] & 128) { - } - break; - case WireType.Bit64: - this.pos += 4; - case WireType.Bit32: - this.pos += 4; - break; - case WireType.LengthDelimited: - let len = this.uint32(); - this.pos += len; - break; - case WireType.StartGroup: - let t; - while ((t = this.tag()[1]) !== WireType.EndGroup) { - this.skip(t); - } - break; - default: - throw new Error("cant skip wire type " + wireType); - } - this.assertBounds(); - return this.buf.subarray(start, this.pos); - } - /** - * Throws error if position in byte array is out of range. - */ - assertBounds() { - if (this.pos > this.len) - throw new RangeError("premature EOF"); - } - /** - * Read a `int32` field, a signed 32 bit varint. - */ - int32() { - return this.uint32() | 0; - } - /** - * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint. - */ - sint32() { - let zze = this.uint32(); - return zze >>> 1 ^ -(zze & 1); - } - /** - * Read a `int64` field, a signed 64-bit varint. - */ - int64() { - return protoInt64.dec(...this.varint64()); - } - /** - * Read a `uint64` field, an unsigned 64-bit varint. - */ - uint64() { - return protoInt64.uDec(...this.varint64()); - } - /** - * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint. - */ - sint64() { - let [lo, hi] = this.varint64(); - let s = -(lo & 1); - lo = (lo >>> 1 | (hi & 1) << 31) ^ s; - hi = hi >>> 1 ^ s; - return protoInt64.dec(lo, hi); - } - /** - * Read a `bool` field, a variant. - */ - bool() { - let [lo, hi] = this.varint64(); - return lo !== 0 || hi !== 0; - } - /** - * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer. - */ - fixed32() { - return this.view.getUint32((this.pos += 4) - 4, true); - } - /** - * Read a `sfixed32` field, a signed, fixed-length 32-bit integer. - */ - sfixed32() { - return this.view.getInt32((this.pos += 4) - 4, true); - } - /** - * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer. - */ - fixed64() { - return protoInt64.uDec(this.sfixed32(), this.sfixed32()); - } - /** - * Read a `fixed64` field, a signed, fixed-length 64-bit integer. - */ - sfixed64() { - return protoInt64.dec(this.sfixed32(), this.sfixed32()); - } - /** - * Read a `float` field, 32-bit floating point number. - */ - float() { - return this.view.getFloat32((this.pos += 4) - 4, true); - } - /** - * Read a `double` field, a 64-bit floating point number. - */ - double() { - return this.view.getFloat64((this.pos += 8) - 8, true); - } - /** - * Read a `bytes` field, length-delimited arbitrary data. - */ - bytes() { - let len = this.uint32(), start = this.pos; - this.pos += len; - this.assertBounds(); - return this.buf.subarray(start, start + len); - } - /** - * Read a `string` field, length-delimited data converted to UTF-8 text. - */ - string() { - return this.textDecoder.decode(this.bytes()); - } - }; - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js - function wrapField(type, value) { - if (value instanceof Message || !type.fieldWrapper) { - return value; - } - return type.fieldWrapper.wrapField(value); - } - var wktWrapperToScalarType = { - "google.protobuf.DoubleValue": ScalarType.DOUBLE, - "google.protobuf.FloatValue": ScalarType.FLOAT, - "google.protobuf.Int64Value": ScalarType.INT64, - "google.protobuf.UInt64Value": ScalarType.UINT64, - "google.protobuf.Int32Value": ScalarType.INT32, - "google.protobuf.UInt32Value": ScalarType.UINT32, - "google.protobuf.BoolValue": ScalarType.BOOL, - "google.protobuf.StringValue": ScalarType.STRING, - "google.protobuf.BytesValue": ScalarType.BYTES - }; - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js - function scalarEquals(type, a, b) { - if (a === b) { - return true; - } - if (type == ScalarType.BYTES) { - if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) { - return false; - } - if (a.length !== b.length) { - return false; - } - for (let i = 0; i < a.length; i++) { - if (a[i] !== b[i]) { - return false; - } - } - return true; - } - switch (type) { - case ScalarType.UINT64: - case ScalarType.FIXED64: - case ScalarType.INT64: - case ScalarType.SFIXED64: - case ScalarType.SINT64: - return a == b; - } - return false; - } - function scalarDefaultValue(type, longType) { - switch (type) { - case ScalarType.BOOL: - return false; - case ScalarType.UINT64: - case ScalarType.FIXED64: - case ScalarType.INT64: - case ScalarType.SFIXED64: - case ScalarType.SINT64: - return longType == 0 ? protoInt64.zero : "0"; - case ScalarType.DOUBLE: - case ScalarType.FLOAT: - return 0; - case ScalarType.BYTES: - return new Uint8Array(0); - case ScalarType.STRING: - return ""; - default: - return 0; - } - } - function scalarTypeInfo(type, value) { - const isUndefined = value === void 0; - let wireType = WireType.Varint; - let isIntrinsicDefault = value === 0; - switch (type) { - case ScalarType.STRING: - isIntrinsicDefault = isUndefined || !value.length; - wireType = WireType.LengthDelimited; - break; - case ScalarType.BOOL: - isIntrinsicDefault = value === false; - break; - case ScalarType.DOUBLE: - wireType = WireType.Bit64; - break; - case ScalarType.FLOAT: - wireType = WireType.Bit32; - break; - case ScalarType.INT64: - isIntrinsicDefault = isUndefined || value == 0; - break; - case ScalarType.UINT64: - isIntrinsicDefault = isUndefined || value == 0; - break; - case ScalarType.FIXED64: - isIntrinsicDefault = isUndefined || value == 0; - wireType = WireType.Bit64; - break; - case ScalarType.BYTES: - isIntrinsicDefault = isUndefined || !value.byteLength; - wireType = WireType.LengthDelimited; - break; - case ScalarType.FIXED32: - wireType = WireType.Bit32; - break; - case ScalarType.SFIXED32: - wireType = WireType.Bit32; - break; - case ScalarType.SFIXED64: - isIntrinsicDefault = isUndefined || value == 0; - wireType = WireType.Bit64; - break; - case ScalarType.SINT64: - isIntrinsicDefault = isUndefined || value == 0; - break; - } - const method = ScalarType[type].toLowerCase(); - return [wireType, method, isUndefined || isIntrinsicDefault]; - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-common.js - var unknownFieldsSymbol = Symbol("@bufbuild/protobuf/unknown-fields"); - var readDefaults = { - readUnknownFields: true, - readerFactory: (bytes) => new BinaryReader(bytes) - }; - var writeDefaults = { - writeUnknownFields: true, - writerFactory: () => new BinaryWriter() - }; - function makeReadOptions(options) { - return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults; - } - function makeWriteOptions(options) { - return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults; - } - function makeBinaryFormatCommon() { - return { - makeReadOptions, - makeWriteOptions, - listUnknownFields(message) { - var _a; - return (_a = message[unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : []; - }, - discardUnknownFields(message) { - delete message[unknownFieldsSymbol]; - }, - writeUnknownFields(message, writer) { - const m = message; - const c = m[unknownFieldsSymbol]; - if (c) { - for (const f of c) { - writer.tag(f.no, f.wireType).raw(f.data); - } - } - }, - onUnknownField(message, no, wireType, data) { - const m = message; - if (!Array.isArray(m[unknownFieldsSymbol])) { - m[unknownFieldsSymbol] = []; - } - m[unknownFieldsSymbol].push({ no, wireType, data }); - }, - readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) { - const type = message.getType(); - const end = delimitedMessageEncoding ? reader.len : reader.pos + lengthOrEndTagFieldNo; - let fieldNo, wireType; - while (reader.pos < end) { - [fieldNo, wireType] = reader.tag(); - if (wireType == WireType.EndGroup) { - break; - } - const field = type.fields.find(fieldNo); - if (!field) { - const data = reader.skip(wireType); - if (options.readUnknownFields) { - this.onUnknownField(message, fieldNo, wireType, data); - } - continue; - } - let target = message, repeated = field.repeated, localName = field.localName; - if (field.oneof) { - target = target[field.oneof.localName]; - if (target.case != localName) { - delete target.value; - } - target.case = localName; - localName = "value"; - } - switch (field.kind) { - case "scalar": - case "enum": - const scalarType = field.kind == "enum" ? ScalarType.INT32 : field.T; - let read = readScalar; - if (field.kind == "scalar" && field.L > 0) { - read = readScalarLTString; - } - if (repeated) { - let arr = target[localName]; - if (wireType == WireType.LengthDelimited && scalarType != ScalarType.STRING && scalarType != ScalarType.BYTES) { - let e = reader.uint32() + reader.pos; - while (reader.pos < e) { - arr.push(read(reader, scalarType)); - } - } else { - arr.push(read(reader, scalarType)); - } - } else { - target[localName] = read(reader, scalarType); - } - break; - case "message": - const messageType = field.T; - if (repeated) { - target[localName].push(readMessageField(reader, new messageType(), options, field)); - } else { - if (target[localName] instanceof Message) { - readMessageField(reader, target[localName], options, field); - } else { - target[localName] = readMessageField(reader, new messageType(), options, field); - if (messageType.fieldWrapper && !field.oneof && !field.repeated) { - target[localName] = messageType.fieldWrapper.unwrapField(target[localName]); - } - } - } - break; - case "map": - let [mapKey, mapVal] = readMapEntry(field, reader, options); - target[localName][mapKey] = mapVal; - break; - } - } - if (delimitedMessageEncoding && // eslint-disable-line @typescript-eslint/strict-boolean-expressions - (wireType != WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) { - throw new Error(`invalid end group tag`); - } - } - }; - } - function readMessageField(reader, message, options, field) { - const format = message.getType().runtime.bin; - const delimited = field === null || field === void 0 ? void 0 : field.delimited; - format.readMessage( - message, - reader, - delimited ? field === null || field === void 0 ? void 0 : field.no : reader.uint32(), - // eslint-disable-line @typescript-eslint/strict-boolean-expressions - options, - delimited - ); - return message; - } - function readMapEntry(field, reader, options) { - const length = reader.uint32(), end = reader.pos + length; - let key, val; - while (reader.pos < end) { - let [fieldNo] = reader.tag(); - switch (fieldNo) { - case 1: - key = readScalar(reader, field.K); - break; - case 2: - switch (field.V.kind) { - case "scalar": - val = readScalar(reader, field.V.T); - break; - case "enum": - val = reader.int32(); - break; - case "message": - val = readMessageField(reader, new field.V.T(), options, void 0); - break; - } - break; - } - } - if (key === void 0) { - let keyRaw = scalarDefaultValue(field.K, LongType.BIGINT); - key = field.K == ScalarType.BOOL ? keyRaw.toString() : keyRaw; - } - if (typeof key != "string" && typeof key != "number") { - key = key.toString(); - } - if (val === void 0) { - switch (field.V.kind) { - case "scalar": - val = scalarDefaultValue(field.V.T, LongType.BIGINT); - break; - case "enum": - val = 0; - break; - case "message": - val = new field.V.T(); - break; - } - } - return [key, val]; - } - function readScalarLTString(reader, type) { - const v = readScalar(reader, type); - return typeof v == "bigint" ? v.toString() : v; - } - function readScalar(reader, type) { - switch (type) { - case ScalarType.STRING: - return reader.string(); - case ScalarType.BOOL: - return reader.bool(); - case ScalarType.DOUBLE: - return reader.double(); - case ScalarType.FLOAT: - return reader.float(); - case ScalarType.INT32: - return reader.int32(); - case ScalarType.INT64: - return reader.int64(); - case ScalarType.UINT64: - return reader.uint64(); - case ScalarType.FIXED64: - return reader.fixed64(); - case ScalarType.BYTES: - return reader.bytes(); - case ScalarType.FIXED32: - return reader.fixed32(); - case ScalarType.SFIXED32: - return reader.sfixed32(); - case ScalarType.SFIXED64: - return reader.sfixed64(); - case ScalarType.SINT64: - return reader.sint64(); - case ScalarType.UINT32: - return reader.uint32(); - case ScalarType.SINT32: - return reader.sint32(); - } - } - function writeMapEntry(writer, options, field, key, value) { - writer.tag(field.no, WireType.LengthDelimited); - writer.fork(); - let keyValue = key; - switch (field.K) { - case ScalarType.INT32: - case ScalarType.FIXED32: - case ScalarType.UINT32: - case ScalarType.SFIXED32: - case ScalarType.SINT32: - keyValue = Number.parseInt(key); - break; - case ScalarType.BOOL: - assert(key == "true" || key == "false"); - keyValue = key == "true"; - break; - } - writeScalar(writer, field.K, 1, keyValue, true); - switch (field.V.kind) { - case "scalar": - writeScalar(writer, field.V.T, 2, value, true); - break; - case "enum": - writeScalar(writer, ScalarType.INT32, 2, value, true); - break; - case "message": - writer.tag(2, WireType.LengthDelimited).bytes(value.toBinary(options)); - break; - } - writer.join(); - } - function writeMessageField(writer, options, field, value) { - if (value !== void 0) { - const message = wrapField(field.T, value); - if (field === null || field === void 0 ? void 0 : field.delimited) - writer.tag(field.no, WireType.StartGroup).raw(message.toBinary(options)).tag(field.no, WireType.EndGroup); - else - writer.tag(field.no, WireType.LengthDelimited).bytes(message.toBinary(options)); - } - } - function writeScalar(writer, type, fieldNo, value, emitIntrinsicDefault) { - let [wireType, method, isIntrinsicDefault] = scalarTypeInfo(type, value); - if (!isIntrinsicDefault || emitIntrinsicDefault) { - writer.tag(fieldNo, wireType)[method](value); - } - } - function writePacked(writer, type, fieldNo, value) { - if (!value.length) { - return; - } - writer.tag(fieldNo, WireType.LengthDelimited).fork(); - let [, method] = scalarTypeInfo(type); - for (let i = 0; i < value.length; i++) { - writer[method](value[i]); - } - writer.join(); - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-proto3.js - function makeBinaryFormatProto3() { - return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) { - const type = message.getType(); - for (const field of type.fields.byNumber()) { - let value, repeated = field.repeated, localName = field.localName; - if (field.oneof) { - const oneof = message[field.oneof.localName]; - if (oneof.case !== localName) { - continue; - } - value = oneof.value; - } else { - value = message[localName]; - } - switch (field.kind) { - case "scalar": - case "enum": - let scalarType = field.kind == "enum" ? ScalarType.INT32 : field.T; - if (repeated) { - if (field.packed) { - writePacked(writer, scalarType, field.no, value); - } else { - for (const item of value) { - writeScalar(writer, scalarType, field.no, item, true); - } - } - } else { - if (value !== void 0) { - writeScalar(writer, scalarType, field.no, value, !!field.oneof || field.opt); - } - } - break; - case "message": - if (repeated) { - for (const item of value) { - writeMessageField(writer, options, field, item); - } - } else { - writeMessageField(writer, options, field, value); - } - break; - case "map": - for (const [key, val] of Object.entries(value)) { - writeMapEntry(writer, options, field, key, val); - } - break; - } - } - if (options.writeUnknownFields) { - this.writeUnknownFields(message, writer); - } - return writer; - } }); - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js - var encTable = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); - var decTable = []; - for (let i = 0; i < encTable.length; i++) - decTable[encTable[i].charCodeAt(0)] = i; - decTable["-".charCodeAt(0)] = encTable.indexOf("+"); - decTable["_".charCodeAt(0)] = encTable.indexOf("/"); - var protoBase64 = { - /** - * Decodes a base64 string to a byte array. - * - * - ignores white-space, including line breaks and tabs - * - allows inner padding (can decode concatenated base64 strings) - * - does not require padding - * - understands base64url encoding: - * "-" instead of "+", - * "_" instead of "/", - * no padding - */ - dec(base64Str) { - let es = base64Str.length * 3 / 4; - if (base64Str[base64Str.length - 2] == "=") - es -= 2; - else if (base64Str[base64Str.length - 1] == "=") - es -= 1; - let bytes = new Uint8Array(es), bytePos = 0, groupPos = 0, b, p = 0; - for (let i = 0; i < base64Str.length; i++) { - b = decTable[base64Str.charCodeAt(i)]; - if (b === void 0) { - switch (base64Str[i]) { - case "=": - groupPos = 0; - case "\n": - case "\r": - case " ": - case " ": - continue; - default: - throw Error("invalid base64 string."); - } - } - switch (groupPos) { - case 0: - p = b; - groupPos = 1; - break; - case 1: - bytes[bytePos++] = p << 2 | (b & 48) >> 4; - p = b; - groupPos = 2; - break; - case 2: - bytes[bytePos++] = (p & 15) << 4 | (b & 60) >> 2; - p = b; - groupPos = 3; - break; - case 3: - bytes[bytePos++] = (p & 3) << 6 | b; - groupPos = 0; - break; - } - } - if (groupPos == 1) - throw Error("invalid base64 string."); - return bytes.subarray(0, bytePos); - }, - /** - * Encode a byte array to a base64 string. - */ - enc(bytes) { - let base64 = "", groupPos = 0, b, p = 0; - for (let i = 0; i < bytes.length; i++) { - b = bytes[i]; - switch (groupPos) { - case 0: - base64 += encTable[b >> 2]; - p = (b & 3) << 4; - groupPos = 1; - break; - case 1: - base64 += encTable[p | b >> 4]; - p = (b & 15) << 2; - groupPos = 2; - break; - case 2: - base64 += encTable[p | b >> 6]; - base64 += encTable[b & 63]; - groupPos = 0; - break; - } - } - if (groupPos) { - base64 += encTable[p]; - base64 += "="; - if (groupPos == 1) - base64 += "="; - } - return base64; - } - }; - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-common.js - var jsonReadDefaults = { - ignoreUnknownFields: false - }; - var jsonWriteDefaults = { - emitDefaultValues: false, - enumAsInteger: false, - useProtoFieldName: false, - prettySpaces: 0 - }; - function makeReadOptions2(options) { - return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults; - } - function makeWriteOptions2(options) { - return options ? Object.assign(Object.assign({}, jsonWriteDefaults), options) : jsonWriteDefaults; - } - function makeJsonFormatCommon(makeWriteField) { - const writeField = makeWriteField(writeEnum, writeScalar2); - return { - makeReadOptions: makeReadOptions2, - makeWriteOptions: makeWriteOptions2, - readMessage(type, json, options, message) { - if (json == null || Array.isArray(json) || typeof json != "object") { - throw new Error(`cannot decode message ${type.typeName} from JSON: ${this.debug(json)}`); - } - message = message !== null && message !== void 0 ? message : new type(); - const oneofSeen = {}; - for (const [jsonKey, jsonValue] of Object.entries(json)) { - const field = type.fields.findJsonName(jsonKey); - if (!field) { - if (!options.ignoreUnknownFields) { - throw new Error(`cannot decode message ${type.typeName} from JSON: key "${jsonKey}" is unknown`); - } - continue; - } - let localName = field.localName; - let target = message; - if (field.oneof) { - if (jsonValue === null && field.kind == "scalar") { - continue; - } - const seen = oneofSeen[field.oneof.localName]; - if (seen) { - throw new Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof "${field.oneof.name}" present: "${seen}", "${jsonKey}"`); - } - oneofSeen[field.oneof.localName] = jsonKey; - target = target[field.oneof.localName] = { case: localName }; - localName = "value"; - } - if (field.repeated) { - if (jsonValue === null) { - continue; - } - if (!Array.isArray(jsonValue)) { - throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`); - } - const targetArray = target[localName]; - for (const jsonItem of jsonValue) { - if (jsonItem === null) { - throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`); - } - let val; - switch (field.kind) { - case "message": - val = field.T.fromJson(jsonItem, options); - break; - case "enum": - val = readEnum(field.T, jsonItem, options.ignoreUnknownFields); - if (val === void 0) - continue; - break; - case "scalar": - try { - val = readScalar2(field.T, jsonItem, field.L); - } catch (e) { - let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`; - if (e instanceof Error && e.message.length > 0) { - m += `: ${e.message}`; - } - throw new Error(m); - } - break; - } - targetArray.push(val); - } - } else if (field.kind == "map") { - if (jsonValue === null) { - continue; - } - if (Array.isArray(jsonValue) || typeof jsonValue != "object") { - throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`); - } - const targetMap = target[localName]; - for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) { - if (jsonMapValue === null) { - throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: map value null`); - } - let val; - switch (field.V.kind) { - case "message": - val = field.V.T.fromJson(jsonMapValue, options); - break; - case "enum": - val = readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields); - if (val === void 0) - continue; - break; - case "scalar": - try { - val = readScalar2(field.V.T, jsonMapValue, LongType.BIGINT); - } catch (e) { - let m = `cannot decode map value for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`; - if (e instanceof Error && e.message.length > 0) { - m += `: ${e.message}`; - } - throw new Error(m); - } - break; - } - try { - targetMap[readScalar2(field.K, field.K == ScalarType.BOOL ? jsonMapKey == "true" ? true : jsonMapKey == "false" ? false : jsonMapKey : jsonMapKey, LongType.BIGINT).toString()] = val; - } catch (e) { - let m = `cannot decode map key for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`; - if (e instanceof Error && e.message.length > 0) { - m += `: ${e.message}`; - } - throw new Error(m); - } - } - } else { - switch (field.kind) { - case "message": - const messageType = field.T; - if (jsonValue === null && messageType.typeName != "google.protobuf.Value") { - if (field.oneof) { - throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: null is invalid for oneof field "${jsonKey}"`); - } - continue; - } - if (target[localName] instanceof Message) { - target[localName].fromJson(jsonValue, options); - } else { - target[localName] = messageType.fromJson(jsonValue, options); - if (messageType.fieldWrapper && !field.oneof) { - target[localName] = messageType.fieldWrapper.unwrapField(target[localName]); - } - } - break; - case "enum": - const enumValue = readEnum(field.T, jsonValue, options.ignoreUnknownFields); - if (enumValue !== void 0) { - target[localName] = enumValue; - } - break; - case "scalar": - try { - target[localName] = readScalar2(field.T, jsonValue, field.L); - } catch (e) { - let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`; - if (e instanceof Error && e.message.length > 0) { - m += `: ${e.message}`; - } - throw new Error(m); - } - break; - } - } - } - return message; - }, - writeMessage(message, options) { - const type = message.getType(); - const json = {}; - let field; - try { - for (const member of type.fields.byMember()) { - let jsonValue; - if (member.kind == "oneof") { - const oneof = message[member.localName]; - if (oneof.value === void 0) { - continue; - } - field = member.findField(oneof.case); - if (!field) { - throw "oneof case not found: " + oneof.case; - } - jsonValue = writeField(field, oneof.value, options); - } else { - field = member; - jsonValue = writeField(field, message[field.localName], options); - } - if (jsonValue !== void 0) { - json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue; - } - } - } catch (e) { - const m = field ? `cannot encode field ${type.typeName}.${field.name} to JSON` : `cannot encode message ${type.typeName} to JSON`; - const r = e instanceof Error ? e.message : String(e); - throw new Error(m + (r.length > 0 ? `: ${r}` : "")); - } - return json; - }, - readScalar: readScalar2, - writeScalar: writeScalar2, - debug: debugJsonValue - }; - } - function debugJsonValue(json) { - if (json === null) { - return "null"; - } - switch (typeof json) { - case "object": - return Array.isArray(json) ? "array" : "object"; - case "string": - return json.length > 100 ? "string" : `"${json.split('"').join('\\"')}"`; - default: - return String(json); - } - } - function readScalar2(type, json, longType) { - switch (type) { - case ScalarType.DOUBLE: - case ScalarType.FLOAT: - if (json === null) - return 0; - if (json === "NaN") - return Number.NaN; - if (json === "Infinity") - return Number.POSITIVE_INFINITY; - if (json === "-Infinity") - return Number.NEGATIVE_INFINITY; - if (json === "") { - break; - } - if (typeof json == "string" && json.trim().length !== json.length) { - break; - } - if (typeof json != "string" && typeof json != "number") { - break; - } - const float = Number(json); - if (Number.isNaN(float)) { - break; - } - if (!Number.isFinite(float)) { - break; - } - if (type == ScalarType.FLOAT) - assertFloat32(float); - return float; - case ScalarType.INT32: - case ScalarType.FIXED32: - case ScalarType.SFIXED32: - case ScalarType.SINT32: - case ScalarType.UINT32: - if (json === null) - return 0; - let int32; - if (typeof json == "number") - int32 = json; - else if (typeof json == "string" && json.length > 0) { - if (json.trim().length === json.length) - int32 = Number(json); - } - if (int32 === void 0) - break; - if (type == ScalarType.UINT32) - assertUInt32(int32); - else - assertInt32(int32); - return int32; - case ScalarType.INT64: - case ScalarType.SFIXED64: - case ScalarType.SINT64: - if (json === null) - return protoInt64.zero; - if (typeof json != "number" && typeof json != "string") - break; - const long = protoInt64.parse(json); - return longType ? long.toString() : long; - case ScalarType.FIXED64: - case ScalarType.UINT64: - if (json === null) - return protoInt64.zero; - if (typeof json != "number" && typeof json != "string") - break; - const uLong = protoInt64.uParse(json); - return longType ? uLong.toString() : uLong; - case ScalarType.BOOL: - if (json === null) - return false; - if (typeof json !== "boolean") - break; - return json; - case ScalarType.STRING: - if (json === null) - return ""; - if (typeof json !== "string") { - break; - } - try { - encodeURIComponent(json); - } catch (e) { - throw new Error("invalid UTF8"); - } - return json; - case ScalarType.BYTES: - if (json === null || json === "") - return new Uint8Array(0); - if (typeof json !== "string") - break; - return protoBase64.dec(json); - } - throw new Error(); - } - function readEnum(type, json, ignoreUnknownFields) { - if (json === null) { - return 0; - } - switch (typeof json) { - case "number": - if (Number.isInteger(json)) { - return json; - } - break; - case "string": - const value = type.findName(json); - if (value || ignoreUnknownFields) { - return value === null || value === void 0 ? void 0 : value.no; - } - break; - } - throw new Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json)}`); - } - function writeEnum(type, value, emitIntrinsicDefault, enumAsInteger) { - var _a; - if (value === void 0) { - return value; - } - if (value === 0 && !emitIntrinsicDefault) { - return void 0; - } - if (enumAsInteger) { - return value; - } - if (type.typeName == "google.protobuf.NullValue") { - return null; - } - const val = type.findNumber(value); - return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value; - } - function writeScalar2(type, value, emitIntrinsicDefault) { - if (value === void 0) { - return void 0; - } - switch (type) { - case ScalarType.INT32: - case ScalarType.SFIXED32: - case ScalarType.SINT32: - case ScalarType.FIXED32: - case ScalarType.UINT32: - assert(typeof value == "number"); - return value != 0 || emitIntrinsicDefault ? value : void 0; - case ScalarType.FLOAT: - case ScalarType.DOUBLE: - assert(typeof value == "number"); - if (Number.isNaN(value)) - return "NaN"; - if (value === Number.POSITIVE_INFINITY) - return "Infinity"; - if (value === Number.NEGATIVE_INFINITY) - return "-Infinity"; - return value !== 0 || emitIntrinsicDefault ? value : void 0; - case ScalarType.STRING: - assert(typeof value == "string"); - return value.length > 0 || emitIntrinsicDefault ? value : void 0; - case ScalarType.BOOL: - assert(typeof value == "boolean"); - return value || emitIntrinsicDefault ? value : void 0; - case ScalarType.UINT64: - case ScalarType.FIXED64: - case ScalarType.INT64: - case ScalarType.SFIXED64: - case ScalarType.SINT64: - assert(typeof value == "bigint" || typeof value == "string" || typeof value == "number"); - return emitIntrinsicDefault || value != 0 ? value.toString(10) : void 0; - case ScalarType.BYTES: - assert(value instanceof Uint8Array); - return emitIntrinsicDefault || value.byteLength > 0 ? protoBase64.enc(value) : void 0; - } - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-proto3.js - function makeJsonFormatProto3() { - return makeJsonFormatCommon((writeEnum2, writeScalar3) => { - return function writeField(field, value, options) { - if (field.kind == "map") { - const jsonObj = {}; - switch (field.V.kind) { - case "scalar": - for (const [entryKey, entryValue] of Object.entries(value)) { - const val = writeScalar3(field.V.T, entryValue, true); - assert(val !== void 0); - jsonObj[entryKey.toString()] = val; - } - break; - case "message": - for (const [entryKey, entryValue] of Object.entries(value)) { - jsonObj[entryKey.toString()] = entryValue.toJson(options); - } - break; - case "enum": - const enumType = field.V.T; - for (const [entryKey, entryValue] of Object.entries(value)) { - assert(entryValue === void 0 || typeof entryValue == "number"); - const val = writeEnum2(enumType, entryValue, true, options.enumAsInteger); - assert(val !== void 0); - jsonObj[entryKey.toString()] = val; - } - break; - } - return options.emitDefaultValues || Object.keys(jsonObj).length > 0 ? jsonObj : void 0; - } else if (field.repeated) { - const jsonArr = []; - switch (field.kind) { - case "scalar": - for (let i = 0; i < value.length; i++) { - jsonArr.push(writeScalar3(field.T, value[i], true)); - } - break; - case "enum": - for (let i = 0; i < value.length; i++) { - jsonArr.push(writeEnum2(field.T, value[i], true, options.enumAsInteger)); - } - break; - case "message": - for (let i = 0; i < value.length; i++) { - jsonArr.push(wrapField(field.T, value[i]).toJson(options)); - } - break; - } - return options.emitDefaultValues || jsonArr.length > 0 ? jsonArr : void 0; - } else { - switch (field.kind) { - case "scalar": - return writeScalar3(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues); - case "enum": - return writeEnum2(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues, options.enumAsInteger); - case "message": - return value !== void 0 ? wrapField(field.T, value).toJson(options) : void 0; - } - } - }; - }); - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js - function makeUtilCommon() { - return { - setEnumType, - initPartial(source, target) { - if (source === void 0) { - return; - } - const type = target.getType(); - for (const member of type.fields.byMember()) { - const localName = member.localName, t = target, s = source; - if (s[localName] === void 0) { - continue; - } - switch (member.kind) { - case "oneof": - const sk = s[localName].case; - if (sk === void 0) { - continue; - } - const sourceField = member.findField(sk); - let val = s[localName].value; - if (sourceField && sourceField.kind == "message" && !(val instanceof sourceField.T)) { - val = new sourceField.T(val); - } else if (sourceField && sourceField.kind === "scalar" && sourceField.T === ScalarType.BYTES) { - val = toU8Arr(val); - } - t[localName] = { case: sk, value: val }; - break; - case "scalar": - case "enum": - let copy = s[localName]; - if (member.T === ScalarType.BYTES) { - copy = member.repeated ? copy.map(toU8Arr) : toU8Arr(copy); - } - t[localName] = copy; - break; - case "map": - switch (member.V.kind) { - case "scalar": - case "enum": - if (member.V.T === ScalarType.BYTES) { - for (const [k, v] of Object.entries(s[localName])) { - t[localName][k] = toU8Arr(v); - } - } else { - Object.assign(t[localName], s[localName]); - } - break; - case "message": - const messageType = member.V.T; - for (const k of Object.keys(s[localName])) { - let val2 = s[localName][k]; - if (!messageType.fieldWrapper) { - val2 = new messageType(val2); - } - t[localName][k] = val2; - } - break; - } - break; - case "message": - const mt = member.T; - if (member.repeated) { - t[localName] = s[localName].map((val2) => val2 instanceof mt ? val2 : new mt(val2)); - } else if (s[localName] !== void 0) { - const val2 = s[localName]; - if (mt.fieldWrapper) { - if ( - // We can't use BytesValue.typeName as that will create a circular import - mt.typeName === "google.protobuf.BytesValue" - ) { - t[localName] = toU8Arr(val2); - } else { - t[localName] = val2; - } - } else { - t[localName] = val2 instanceof mt ? val2 : new mt(val2); - } - } - break; - } - } - }, - equals(type, a, b) { - if (a === b) { - return true; - } - if (!a || !b) { - return false; - } - return type.fields.byMember().every((m) => { - const va = a[m.localName]; - const vb = b[m.localName]; - if (m.repeated) { - if (va.length !== vb.length) { - return false; - } - switch (m.kind) { - case "message": - return va.every((a2, i) => m.T.equals(a2, vb[i])); - case "scalar": - return va.every((a2, i) => scalarEquals(m.T, a2, vb[i])); - case "enum": - return va.every((a2, i) => scalarEquals(ScalarType.INT32, a2, vb[i])); - } - throw new Error(`repeated cannot contain ${m.kind}`); - } - switch (m.kind) { - case "message": - return m.T.equals(va, vb); - case "enum": - return scalarEquals(ScalarType.INT32, va, vb); - case "scalar": - return scalarEquals(m.T, va, vb); - case "oneof": - if (va.case !== vb.case) { - return false; - } - const s = m.findField(va.case); - if (s === void 0) { - return true; - } - switch (s.kind) { - case "message": - return s.T.equals(va.value, vb.value); - case "enum": - return scalarEquals(ScalarType.INT32, va.value, vb.value); - case "scalar": - return scalarEquals(s.T, va.value, vb.value); - } - throw new Error(`oneof cannot contain ${s.kind}`); - case "map": - const keys = Object.keys(va).concat(Object.keys(vb)); - switch (m.V.kind) { - case "message": - const messageType = m.V.T; - return keys.every((k) => messageType.equals(va[k], vb[k])); - case "enum": - return keys.every((k) => scalarEquals(ScalarType.INT32, va[k], vb[k])); - case "scalar": - const scalarType = m.V.T; - return keys.every((k) => scalarEquals(scalarType, va[k], vb[k])); - } - break; - } - }); - }, - clone(message) { - const type = message.getType(), target = new type(), any = target; - for (const member of type.fields.byMember()) { - const source = message[member.localName]; - let copy; - if (member.repeated) { - copy = source.map(cloneSingularField); - } else if (member.kind == "map") { - copy = any[member.localName]; - for (const [key, v] of Object.entries(source)) { - copy[key] = cloneSingularField(v); - } - } else if (member.kind == "oneof") { - const f = member.findField(source.case); - copy = f ? { case: source.case, value: cloneSingularField(source.value) } : { case: void 0 }; - } else { - copy = cloneSingularField(source); - } - any[member.localName] = copy; - } - return target; - } - }; - } - function cloneSingularField(value) { - if (value === void 0) { - return value; - } - if (value instanceof Message) { - return value.clone(); - } - if (value instanceof Uint8Array) { - const c = new Uint8Array(value.byteLength); - c.set(value); - return c; - } - return value; - } - function toU8Arr(input) { - return input instanceof Uint8Array ? input : new Uint8Array(input); - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js - var InternalFieldList = class { - constructor(fields, normalizer) { - this._fields = fields; - this._normalizer = normalizer; - } - findJsonName(jsonName) { - if (!this.jsonNames) { - const t = {}; - for (const f of this.list()) { - t[f.jsonName] = t[f.name] = f; - } - this.jsonNames = t; - } - return this.jsonNames[jsonName]; - } - find(fieldNo) { - if (!this.numbers) { - const t = {}; - for (const f of this.list()) { - t[f.no] = f; - } - this.numbers = t; - } - return this.numbers[fieldNo]; - } - list() { - if (!this.all) { - this.all = this._normalizer(this._fields); - } - return this.all; - } - byNumber() { - if (!this.numbersAsc) { - this.numbersAsc = this.list().concat().sort((a, b) => a.no - b.no); - } - return this.numbersAsc; - } - byMember() { - if (!this.members) { - this.members = []; - const a = this.members; - let o; - for (const f of this.list()) { - if (f.oneof) { - if (f.oneof !== o) { - o = f.oneof; - a.push(o); - } - } else { - a.push(f); - } - } - } - return this.members; - } - }; - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/names.js - function localFieldName(protoName, inOneof) { - const name = protoCamelCase(protoName); - if (inOneof) { - return name; - } - return safeObjectProperty(safeMessageProperty(name)); - } - function localOneofName(protoName) { - return localFieldName(protoName, false); - } - var fieldJsonName = protoCamelCase; - function protoCamelCase(snakeCase) { - let capNext = false; - const b = []; - for (let i = 0; i < snakeCase.length; i++) { - let c = snakeCase.charAt(i); - switch (c) { - case "_": - capNext = true; - break; - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - b.push(c); - capNext = false; - break; - default: - if (capNext) { - capNext = false; - c = c.toUpperCase(); - } - b.push(c); - break; - } - } - return b.join(""); - } - var reservedObjectProperties = /* @__PURE__ */ new Set([ - // names reserved by JavaScript - "constructor", - "toString", - "toJSON", - "valueOf" - ]); - var reservedMessageProperties = /* @__PURE__ */ new Set([ - // names reserved by the runtime - "getType", - "clone", - "equals", - "fromBinary", - "fromJson", - "fromJsonString", - "toBinary", - "toJson", - "toJsonString", - // names reserved by the runtime for the future - "toObject" - ]); - var fallback = (name) => `${name}$`; - var safeMessageProperty = (name) => { - if (reservedMessageProperties.has(name)) { - return fallback(name); - } - return name; - }; - var safeObjectProperty = (name) => { - if (reservedObjectProperties.has(name)) { - return fallback(name); - } - return name; - }; - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/field.js - var InternalOneofInfo = class { - constructor(name) { - this.kind = "oneof"; - this.repeated = false; - this.packed = false; - this.opt = false; - this.default = void 0; - this.fields = []; - this.name = name; - this.localName = localOneofName(name); - } - addField(field) { - assert(field.oneof === this, `field ${field.name} not one of ${this.name}`); - this.fields.push(field); - } - findField(localName) { - if (!this._lookup) { - this._lookup = /* @__PURE__ */ Object.create(null); - for (let i = 0; i < this.fields.length; i++) { - this._lookup[this.fields[i].localName] = this.fields[i]; - } - } - return this._lookup[localName]; - } - }; - - // ../node_modules/@bufbuild/protobuf/dist/esm/proto3.js - var proto3 = makeProtoRuntime("proto3", makeJsonFormatProto3(), makeBinaryFormatProto3(), Object.assign(Object.assign({}, makeUtilCommon()), { - newFieldList(fields) { - return new InternalFieldList(fields, normalizeFieldInfosProto3); - }, - initFields(target) { - for (const member of target.getType().fields.byMember()) { - if (member.opt) { - continue; - } - const name = member.localName, t = target; - if (member.repeated) { - t[name] = []; - continue; - } - switch (member.kind) { - case "oneof": - t[name] = { case: void 0 }; - break; - case "enum": - t[name] = 0; - break; - case "map": - t[name] = {}; - break; - case "scalar": - t[name] = scalarDefaultValue(member.T, member.L); - break; - case "message": - break; - } - } - } - })); - function normalizeFieldInfosProto3(fieldInfos) { - var _a, _b, _c, _d; - const r = []; - let o; - for (const field of typeof fieldInfos == "function" ? fieldInfos() : fieldInfos) { - const f = field; - f.localName = localFieldName(field.name, field.oneof !== void 0); - f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name); - f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false; - if (field.kind == "scalar") { - f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT; - } - if (field.oneof !== void 0) { - const ooname = typeof field.oneof == "string" ? field.oneof : field.oneof.name; - if (!o || o.name != ooname) { - o = new InternalOneofInfo(ooname); - } - f.oneof = o; - o.addField(f); - } - if (field.kind == "message") { - f.delimited = false; - } - f.packed = (_d = field.packed) !== null && _d !== void 0 ? _d : field.kind == "enum" || field.kind == "scalar" && field.T != ScalarType.BYTES && field.T != ScalarType.STRING; - r.push(f); - } - return r; - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-proto2.js - function makeBinaryFormatProto2() { - return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) { - const type = message.getType(); - let field; - try { - for (field of type.fields.byNumber()) { - let value, repeated = field.repeated, localName = field.localName; - if (field.oneof) { - const oneof = message[field.oneof.localName]; - if (oneof.case !== localName) { - continue; - } - value = oneof.value; - } else { - value = message[localName]; - if (value === void 0 && !field.oneof && !field.opt) { - throw new Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`); - } - } - switch (field.kind) { - case "scalar": - case "enum": - let scalarType = field.kind == "enum" ? ScalarType.INT32 : field.T; - if (repeated) { - if (field.packed) { - writePacked(writer, scalarType, field.no, value); - } else { - for (const item of value) { - writeScalar(writer, scalarType, field.no, item, true); - } - } - } else { - if (value !== void 0) { - writeScalar(writer, scalarType, field.no, value, true); - } - } - break; - case "message": - if (repeated) { - for (const item of value) { - writeMessageField(writer, options, field, item); - } - } else { - writeMessageField(writer, options, field, value); - } - break; - case "map": - for (const [key, val] of Object.entries(value)) { - writeMapEntry(writer, options, field, key, val); - } - break; - } - } - } catch (e) { - let m = field ? `cannot encode field ${type.typeName}.${field === null || field === void 0 ? void 0 : field.name} to binary` : `cannot encode message ${type.typeName} to binary`; - let r = e instanceof Error ? e.message : String(e); - throw new Error(m + (r.length > 0 ? `: ${r}` : "")); - } - if (options.writeUnknownFields) { - this.writeUnknownFields(message, writer); - } - return writer; - } }); - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-proto2.js - function makeJsonFormatProto2() { - return makeJsonFormatCommon((writeEnum2, writeScalar3) => { - return function writeField(field, value, options) { - if (field.kind == "map") { - const jsonObj = {}; - switch (field.V.kind) { - case "scalar": - for (const [entryKey, entryValue] of Object.entries(value)) { - const val = writeScalar3(field.V.T, entryValue, true); - assert(val !== void 0); - jsonObj[entryKey.toString()] = val; - } - break; - case "message": - for (const [entryKey, entryValue] of Object.entries(value)) { - jsonObj[entryKey.toString()] = entryValue.toJson(options); - } - break; - case "enum": - const enumType = field.V.T; - for (const [entryKey, entryValue] of Object.entries(value)) { - assert(entryValue === void 0 || typeof entryValue == "number"); - const val = writeEnum2(enumType, entryValue, true, options.enumAsInteger); - assert(val !== void 0); - jsonObj[entryKey.toString()] = val; - } - break; - } - return options.emitDefaultValues || Object.keys(jsonObj).length > 0 ? jsonObj : void 0; - } else if (field.repeated) { - const jsonArr = []; - switch (field.kind) { - case "scalar": - for (let i = 0; i < value.length; i++) { - jsonArr.push(writeScalar3(field.T, value[i], true)); - } - break; - case "enum": - for (let i = 0; i < value.length; i++) { - jsonArr.push(writeEnum2(field.T, value[i], true, options.enumAsInteger)); - } - break; - case "message": - for (let i = 0; i < value.length; i++) { - jsonArr.push(value[i].toJson(options)); - } - break; - } - return options.emitDefaultValues || jsonArr.length > 0 ? jsonArr : void 0; - } else { - if (value === void 0) { - if (!field.oneof && !field.opt) { - throw `required field not set`; - } - return void 0; - } - switch (field.kind) { - case "scalar": - return writeScalar3(field.T, value, true); - case "enum": - return writeEnum2(field.T, value, true, options.enumAsInteger); - case "message": - return wrapField(field.T, value).toJson(options); - } - } - }; - }); - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/proto2.js - var proto2 = makeProtoRuntime("proto2", makeJsonFormatProto2(), makeBinaryFormatProto2(), Object.assign(Object.assign({}, makeUtilCommon()), { - newFieldList(fields) { - return new InternalFieldList(fields, normalizeFieldInfosProto2); - }, - initFields(target) { - for (const member of target.getType().fields.byMember()) { - const name = member.localName, t = target; - if (member.repeated) { - t[name] = []; - continue; - } - switch (member.kind) { - case "oneof": - t[name] = { case: void 0 }; - break; - case "map": - t[name] = {}; - break; - case "scalar": - case "enum": - case "message": - break; - } - } - } - })); - function normalizeFieldInfosProto2(fieldInfos) { - var _a, _b, _c, _d, _e; - const r = []; - let o; - for (const field of typeof fieldInfos == "function" ? fieldInfos() : fieldInfos) { - const f = field; - f.localName = localFieldName(field.name, field.oneof !== void 0); - f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name); - f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false; - if (field.kind == "scalar") { - f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT; - } - if (field.oneof !== void 0) { - const ooname = typeof field.oneof == "string" ? field.oneof : field.oneof.name; - if (!o || o.name != ooname) { - o = new InternalOneofInfo(ooname); - } - f.oneof = o; - o.addField(f); - } - if (field.kind == "message") { - f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false; - } - f.packed = (_e = field.packed) !== null && _e !== void 0 ? _e : false; - r.push(f); - } - return r; - } - - // ../node_modules/@bufbuild/protobuf/dist/esm/service-type.js - var MethodKind; - (function(MethodKind2) { - MethodKind2[MethodKind2["Unary"] = 0] = "Unary"; - MethodKind2[MethodKind2["ServerStreaming"] = 1] = "ServerStreaming"; - MethodKind2[MethodKind2["ClientStreaming"] = 2] = "ClientStreaming"; - MethodKind2[MethodKind2["BiDiStreaming"] = 3] = "BiDiStreaming"; - })(MethodKind || (MethodKind = {})); - var MethodIdempotency; - (function(MethodIdempotency2) { - MethodIdempotency2[MethodIdempotency2["NoSideEffects"] = 1] = "NoSideEffects"; - MethodIdempotency2[MethodIdempotency2["Idempotent"] = 2] = "Idempotent"; - })(MethodIdempotency || (MethodIdempotency = {})); - - // ../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/descriptor_pb.js - var Edition; - (function(Edition2) { - Edition2[Edition2["EDITION_UNKNOWN"] = 0] = "EDITION_UNKNOWN"; - Edition2[Edition2["EDITION_PROTO2"] = 998] = "EDITION_PROTO2"; - Edition2[Edition2["EDITION_PROTO3"] = 999] = "EDITION_PROTO3"; - Edition2[Edition2["EDITION_2023"] = 1e3] = "EDITION_2023"; - Edition2[Edition2["EDITION_1_TEST_ONLY"] = 1] = "EDITION_1_TEST_ONLY"; - Edition2[Edition2["EDITION_2_TEST_ONLY"] = 2] = "EDITION_2_TEST_ONLY"; - Edition2[Edition2["EDITION_99997_TEST_ONLY"] = 99997] = "EDITION_99997_TEST_ONLY"; - Edition2[Edition2["EDITION_99998_TEST_ONLY"] = 99998] = "EDITION_99998_TEST_ONLY"; - Edition2[Edition2["EDITION_99999_TEST_ONLY"] = 99999] = "EDITION_99999_TEST_ONLY"; - })(Edition || (Edition = {})); - proto2.util.setEnumType(Edition, "google.protobuf.Edition", [ - { no: 0, name: "EDITION_UNKNOWN" }, - { no: 998, name: "EDITION_PROTO2" }, - { no: 999, name: "EDITION_PROTO3" }, - { no: 1e3, name: "EDITION_2023" }, - { no: 1, name: "EDITION_1_TEST_ONLY" }, - { no: 2, name: "EDITION_2_TEST_ONLY" }, - { no: 99997, name: "EDITION_99997_TEST_ONLY" }, - { no: 99998, name: "EDITION_99998_TEST_ONLY" }, - { no: 99999, name: "EDITION_99999_TEST_ONLY" } - ]); - var FileDescriptorSet = class _FileDescriptorSet extends Message { - constructor(data) { - super(); - this.file = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FileDescriptorSet().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FileDescriptorSet().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FileDescriptorSet().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FileDescriptorSet, a, b); - } - }; - FileDescriptorSet.runtime = proto2; - FileDescriptorSet.typeName = "google.protobuf.FileDescriptorSet"; - FileDescriptorSet.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "file", kind: "message", T: FileDescriptorProto, repeated: true } - ]); - var FileDescriptorProto = class _FileDescriptorProto extends Message { - constructor(data) { - super(); - this.dependency = []; - this.publicDependency = []; - this.weakDependency = []; - this.messageType = []; - this.enumType = []; - this.service = []; - this.extension = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FileDescriptorProto().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FileDescriptorProto().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FileDescriptorProto().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FileDescriptorProto, a, b); - } - }; - FileDescriptorProto.runtime = proto2; - FileDescriptorProto.typeName = "google.protobuf.FileDescriptorProto"; - FileDescriptorProto.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "name", kind: "scalar", T: 9, opt: true }, - { no: 2, name: "package", kind: "scalar", T: 9, opt: true }, - { no: 3, name: "dependency", kind: "scalar", T: 9, repeated: true }, - { no: 10, name: "public_dependency", kind: "scalar", T: 5, repeated: true }, - { no: 11, name: "weak_dependency", kind: "scalar", T: 5, repeated: true }, - { no: 4, name: "message_type", kind: "message", T: DescriptorProto, repeated: true }, - { no: 5, name: "enum_type", kind: "message", T: EnumDescriptorProto, repeated: true }, - { no: 6, name: "service", kind: "message", T: ServiceDescriptorProto, repeated: true }, - { no: 7, name: "extension", kind: "message", T: FieldDescriptorProto, repeated: true }, - { no: 8, name: "options", kind: "message", T: FileOptions, opt: true }, - { no: 9, name: "source_code_info", kind: "message", T: SourceCodeInfo, opt: true }, - { no: 12, name: "syntax", kind: "scalar", T: 9, opt: true }, - { no: 14, name: "edition", kind: "enum", T: proto2.getEnumType(Edition), opt: true } - ]); - var DescriptorProto = class _DescriptorProto extends Message { - constructor(data) { - super(); - this.field = []; - this.extension = []; - this.nestedType = []; - this.enumType = []; - this.extensionRange = []; - this.oneofDecl = []; - this.reservedRange = []; - this.reservedName = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _DescriptorProto().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _DescriptorProto().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _DescriptorProto().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_DescriptorProto, a, b); - } - }; - DescriptorProto.runtime = proto2; - DescriptorProto.typeName = "google.protobuf.DescriptorProto"; - DescriptorProto.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "name", kind: "scalar", T: 9, opt: true }, - { no: 2, name: "field", kind: "message", T: FieldDescriptorProto, repeated: true }, - { no: 6, name: "extension", kind: "message", T: FieldDescriptorProto, repeated: true }, - { no: 3, name: "nested_type", kind: "message", T: DescriptorProto, repeated: true }, - { no: 4, name: "enum_type", kind: "message", T: EnumDescriptorProto, repeated: true }, - { no: 5, name: "extension_range", kind: "message", T: DescriptorProto_ExtensionRange, repeated: true }, - { no: 8, name: "oneof_decl", kind: "message", T: OneofDescriptorProto, repeated: true }, - { no: 7, name: "options", kind: "message", T: MessageOptions, opt: true }, - { no: 9, name: "reserved_range", kind: "message", T: DescriptorProto_ReservedRange, repeated: true }, - { no: 10, name: "reserved_name", kind: "scalar", T: 9, repeated: true } - ]); - var DescriptorProto_ExtensionRange = class _DescriptorProto_ExtensionRange extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _DescriptorProto_ExtensionRange().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _DescriptorProto_ExtensionRange().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _DescriptorProto_ExtensionRange().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_DescriptorProto_ExtensionRange, a, b); - } - }; - DescriptorProto_ExtensionRange.runtime = proto2; - DescriptorProto_ExtensionRange.typeName = "google.protobuf.DescriptorProto.ExtensionRange"; - DescriptorProto_ExtensionRange.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "start", kind: "scalar", T: 5, opt: true }, - { no: 2, name: "end", kind: "scalar", T: 5, opt: true }, - { no: 3, name: "options", kind: "message", T: ExtensionRangeOptions, opt: true } - ]); - var DescriptorProto_ReservedRange = class _DescriptorProto_ReservedRange extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _DescriptorProto_ReservedRange().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _DescriptorProto_ReservedRange().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _DescriptorProto_ReservedRange().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_DescriptorProto_ReservedRange, a, b); - } - }; - DescriptorProto_ReservedRange.runtime = proto2; - DescriptorProto_ReservedRange.typeName = "google.protobuf.DescriptorProto.ReservedRange"; - DescriptorProto_ReservedRange.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "start", kind: "scalar", T: 5, opt: true }, - { no: 2, name: "end", kind: "scalar", T: 5, opt: true } - ]); - var ExtensionRangeOptions = class _ExtensionRangeOptions extends Message { - constructor(data) { - super(); - this.uninterpretedOption = []; - this.declaration = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _ExtensionRangeOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ExtensionRangeOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ExtensionRangeOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_ExtensionRangeOptions, a, b); - } - }; - ExtensionRangeOptions.runtime = proto2; - ExtensionRangeOptions.typeName = "google.protobuf.ExtensionRangeOptions"; - ExtensionRangeOptions.fields = proto2.util.newFieldList(() => [ - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true }, - { no: 2, name: "declaration", kind: "message", T: ExtensionRangeOptions_Declaration, repeated: true }, - { no: 50, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 3, name: "verification", kind: "enum", T: proto2.getEnumType(ExtensionRangeOptions_VerificationState), opt: true, default: ExtensionRangeOptions_VerificationState.UNVERIFIED } - ]); - var ExtensionRangeOptions_VerificationState; - (function(ExtensionRangeOptions_VerificationState2) { - ExtensionRangeOptions_VerificationState2[ExtensionRangeOptions_VerificationState2["DECLARATION"] = 0] = "DECLARATION"; - ExtensionRangeOptions_VerificationState2[ExtensionRangeOptions_VerificationState2["UNVERIFIED"] = 1] = "UNVERIFIED"; - })(ExtensionRangeOptions_VerificationState || (ExtensionRangeOptions_VerificationState = {})); - proto2.util.setEnumType(ExtensionRangeOptions_VerificationState, "google.protobuf.ExtensionRangeOptions.VerificationState", [ - { no: 0, name: "DECLARATION" }, - { no: 1, name: "UNVERIFIED" } - ]); - var ExtensionRangeOptions_Declaration = class _ExtensionRangeOptions_Declaration extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _ExtensionRangeOptions_Declaration().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ExtensionRangeOptions_Declaration().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ExtensionRangeOptions_Declaration().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_ExtensionRangeOptions_Declaration, a, b); - } - }; - ExtensionRangeOptions_Declaration.runtime = proto2; - ExtensionRangeOptions_Declaration.typeName = "google.protobuf.ExtensionRangeOptions.Declaration"; - ExtensionRangeOptions_Declaration.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "number", kind: "scalar", T: 5, opt: true }, - { no: 2, name: "full_name", kind: "scalar", T: 9, opt: true }, - { no: 3, name: "type", kind: "scalar", T: 9, opt: true }, - { no: 5, name: "reserved", kind: "scalar", T: 8, opt: true }, - { no: 6, name: "repeated", kind: "scalar", T: 8, opt: true } - ]); - var FieldDescriptorProto = class _FieldDescriptorProto extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FieldDescriptorProto().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FieldDescriptorProto().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FieldDescriptorProto().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FieldDescriptorProto, a, b); - } - }; - FieldDescriptorProto.runtime = proto2; - FieldDescriptorProto.typeName = "google.protobuf.FieldDescriptorProto"; - FieldDescriptorProto.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "name", kind: "scalar", T: 9, opt: true }, - { no: 3, name: "number", kind: "scalar", T: 5, opt: true }, - { no: 4, name: "label", kind: "enum", T: proto2.getEnumType(FieldDescriptorProto_Label), opt: true }, - { no: 5, name: "type", kind: "enum", T: proto2.getEnumType(FieldDescriptorProto_Type), opt: true }, - { no: 6, name: "type_name", kind: "scalar", T: 9, opt: true }, - { no: 2, name: "extendee", kind: "scalar", T: 9, opt: true }, - { no: 7, name: "default_value", kind: "scalar", T: 9, opt: true }, - { no: 9, name: "oneof_index", kind: "scalar", T: 5, opt: true }, - { no: 10, name: "json_name", kind: "scalar", T: 9, opt: true }, - { no: 8, name: "options", kind: "message", T: FieldOptions, opt: true }, - { no: 17, name: "proto3_optional", kind: "scalar", T: 8, opt: true } - ]); - var FieldDescriptorProto_Type; - (function(FieldDescriptorProto_Type2) { - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["DOUBLE"] = 1] = "DOUBLE"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["FLOAT"] = 2] = "FLOAT"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["INT64"] = 3] = "INT64"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["UINT64"] = 4] = "UINT64"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["INT32"] = 5] = "INT32"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["FIXED64"] = 6] = "FIXED64"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["FIXED32"] = 7] = "FIXED32"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["BOOL"] = 8] = "BOOL"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["STRING"] = 9] = "STRING"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["GROUP"] = 10] = "GROUP"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["MESSAGE"] = 11] = "MESSAGE"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["BYTES"] = 12] = "BYTES"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["UINT32"] = 13] = "UINT32"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["ENUM"] = 14] = "ENUM"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["SFIXED32"] = 15] = "SFIXED32"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["SFIXED64"] = 16] = "SFIXED64"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["SINT32"] = 17] = "SINT32"; - FieldDescriptorProto_Type2[FieldDescriptorProto_Type2["SINT64"] = 18] = "SINT64"; - })(FieldDescriptorProto_Type || (FieldDescriptorProto_Type = {})); - proto2.util.setEnumType(FieldDescriptorProto_Type, "google.protobuf.FieldDescriptorProto.Type", [ - { no: 1, name: "TYPE_DOUBLE" }, - { no: 2, name: "TYPE_FLOAT" }, - { no: 3, name: "TYPE_INT64" }, - { no: 4, name: "TYPE_UINT64" }, - { no: 5, name: "TYPE_INT32" }, - { no: 6, name: "TYPE_FIXED64" }, - { no: 7, name: "TYPE_FIXED32" }, - { no: 8, name: "TYPE_BOOL" }, - { no: 9, name: "TYPE_STRING" }, - { no: 10, name: "TYPE_GROUP" }, - { no: 11, name: "TYPE_MESSAGE" }, - { no: 12, name: "TYPE_BYTES" }, - { no: 13, name: "TYPE_UINT32" }, - { no: 14, name: "TYPE_ENUM" }, - { no: 15, name: "TYPE_SFIXED32" }, - { no: 16, name: "TYPE_SFIXED64" }, - { no: 17, name: "TYPE_SINT32" }, - { no: 18, name: "TYPE_SINT64" } - ]); - var FieldDescriptorProto_Label; - (function(FieldDescriptorProto_Label2) { - FieldDescriptorProto_Label2[FieldDescriptorProto_Label2["OPTIONAL"] = 1] = "OPTIONAL"; - FieldDescriptorProto_Label2[FieldDescriptorProto_Label2["REPEATED"] = 3] = "REPEATED"; - FieldDescriptorProto_Label2[FieldDescriptorProto_Label2["REQUIRED"] = 2] = "REQUIRED"; - })(FieldDescriptorProto_Label || (FieldDescriptorProto_Label = {})); - proto2.util.setEnumType(FieldDescriptorProto_Label, "google.protobuf.FieldDescriptorProto.Label", [ - { no: 1, name: "LABEL_OPTIONAL" }, - { no: 3, name: "LABEL_REPEATED" }, - { no: 2, name: "LABEL_REQUIRED" } - ]); - var OneofDescriptorProto = class _OneofDescriptorProto extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _OneofDescriptorProto().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _OneofDescriptorProto().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _OneofDescriptorProto().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_OneofDescriptorProto, a, b); - } - }; - OneofDescriptorProto.runtime = proto2; - OneofDescriptorProto.typeName = "google.protobuf.OneofDescriptorProto"; - OneofDescriptorProto.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "name", kind: "scalar", T: 9, opt: true }, - { no: 2, name: "options", kind: "message", T: OneofOptions, opt: true } - ]); - var EnumDescriptorProto = class _EnumDescriptorProto extends Message { - constructor(data) { - super(); - this.value = []; - this.reservedRange = []; - this.reservedName = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _EnumDescriptorProto().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _EnumDescriptorProto().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _EnumDescriptorProto().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_EnumDescriptorProto, a, b); - } - }; - EnumDescriptorProto.runtime = proto2; - EnumDescriptorProto.typeName = "google.protobuf.EnumDescriptorProto"; - EnumDescriptorProto.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "name", kind: "scalar", T: 9, opt: true }, - { no: 2, name: "value", kind: "message", T: EnumValueDescriptorProto, repeated: true }, - { no: 3, name: "options", kind: "message", T: EnumOptions, opt: true }, - { no: 4, name: "reserved_range", kind: "message", T: EnumDescriptorProto_EnumReservedRange, repeated: true }, - { no: 5, name: "reserved_name", kind: "scalar", T: 9, repeated: true } - ]); - var EnumDescriptorProto_EnumReservedRange = class _EnumDescriptorProto_EnumReservedRange extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _EnumDescriptorProto_EnumReservedRange().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _EnumDescriptorProto_EnumReservedRange().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _EnumDescriptorProto_EnumReservedRange().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_EnumDescriptorProto_EnumReservedRange, a, b); - } - }; - EnumDescriptorProto_EnumReservedRange.runtime = proto2; - EnumDescriptorProto_EnumReservedRange.typeName = "google.protobuf.EnumDescriptorProto.EnumReservedRange"; - EnumDescriptorProto_EnumReservedRange.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "start", kind: "scalar", T: 5, opt: true }, - { no: 2, name: "end", kind: "scalar", T: 5, opt: true } - ]); - var EnumValueDescriptorProto = class _EnumValueDescriptorProto extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _EnumValueDescriptorProto().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _EnumValueDescriptorProto().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _EnumValueDescriptorProto().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_EnumValueDescriptorProto, a, b); - } - }; - EnumValueDescriptorProto.runtime = proto2; - EnumValueDescriptorProto.typeName = "google.protobuf.EnumValueDescriptorProto"; - EnumValueDescriptorProto.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "name", kind: "scalar", T: 9, opt: true }, - { no: 2, name: "number", kind: "scalar", T: 5, opt: true }, - { no: 3, name: "options", kind: "message", T: EnumValueOptions, opt: true } - ]); - var ServiceDescriptorProto = class _ServiceDescriptorProto extends Message { - constructor(data) { - super(); - this.method = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _ServiceDescriptorProto().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ServiceDescriptorProto().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ServiceDescriptorProto().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_ServiceDescriptorProto, a, b); - } - }; - ServiceDescriptorProto.runtime = proto2; - ServiceDescriptorProto.typeName = "google.protobuf.ServiceDescriptorProto"; - ServiceDescriptorProto.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "name", kind: "scalar", T: 9, opt: true }, - { no: 2, name: "method", kind: "message", T: MethodDescriptorProto, repeated: true }, - { no: 3, name: "options", kind: "message", T: ServiceOptions, opt: true } - ]); - var MethodDescriptorProto = class _MethodDescriptorProto extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _MethodDescriptorProto().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _MethodDescriptorProto().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _MethodDescriptorProto().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_MethodDescriptorProto, a, b); - } - }; - MethodDescriptorProto.runtime = proto2; - MethodDescriptorProto.typeName = "google.protobuf.MethodDescriptorProto"; - MethodDescriptorProto.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "name", kind: "scalar", T: 9, opt: true }, - { no: 2, name: "input_type", kind: "scalar", T: 9, opt: true }, - { no: 3, name: "output_type", kind: "scalar", T: 9, opt: true }, - { no: 4, name: "options", kind: "message", T: MethodOptions, opt: true }, - { no: 5, name: "client_streaming", kind: "scalar", T: 8, opt: true, default: false }, - { no: 6, name: "server_streaming", kind: "scalar", T: 8, opt: true, default: false } - ]); - var FileOptions = class _FileOptions extends Message { - constructor(data) { - super(); - this.uninterpretedOption = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FileOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FileOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FileOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FileOptions, a, b); - } - }; - FileOptions.runtime = proto2; - FileOptions.typeName = "google.protobuf.FileOptions"; - FileOptions.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "java_package", kind: "scalar", T: 9, opt: true }, - { no: 8, name: "java_outer_classname", kind: "scalar", T: 9, opt: true }, - { no: 10, name: "java_multiple_files", kind: "scalar", T: 8, opt: true, default: false }, - { no: 20, name: "java_generate_equals_and_hash", kind: "scalar", T: 8, opt: true }, - { no: 27, name: "java_string_check_utf8", kind: "scalar", T: 8, opt: true, default: false }, - { no: 9, name: "optimize_for", kind: "enum", T: proto2.getEnumType(FileOptions_OptimizeMode), opt: true, default: FileOptions_OptimizeMode.SPEED }, - { no: 11, name: "go_package", kind: "scalar", T: 9, opt: true }, - { no: 16, name: "cc_generic_services", kind: "scalar", T: 8, opt: true, default: false }, - { no: 17, name: "java_generic_services", kind: "scalar", T: 8, opt: true, default: false }, - { no: 18, name: "py_generic_services", kind: "scalar", T: 8, opt: true, default: false }, - { no: 42, name: "php_generic_services", kind: "scalar", T: 8, opt: true, default: false }, - { no: 23, name: "deprecated", kind: "scalar", T: 8, opt: true, default: false }, - { no: 31, name: "cc_enable_arenas", kind: "scalar", T: 8, opt: true, default: true }, - { no: 36, name: "objc_class_prefix", kind: "scalar", T: 9, opt: true }, - { no: 37, name: "csharp_namespace", kind: "scalar", T: 9, opt: true }, - { no: 39, name: "swift_prefix", kind: "scalar", T: 9, opt: true }, - { no: 40, name: "php_class_prefix", kind: "scalar", T: 9, opt: true }, - { no: 41, name: "php_namespace", kind: "scalar", T: 9, opt: true }, - { no: 44, name: "php_metadata_namespace", kind: "scalar", T: 9, opt: true }, - { no: 45, name: "ruby_package", kind: "scalar", T: 9, opt: true }, - { no: 50, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true } - ]); - var FileOptions_OptimizeMode; - (function(FileOptions_OptimizeMode2) { - FileOptions_OptimizeMode2[FileOptions_OptimizeMode2["SPEED"] = 1] = "SPEED"; - FileOptions_OptimizeMode2[FileOptions_OptimizeMode2["CODE_SIZE"] = 2] = "CODE_SIZE"; - FileOptions_OptimizeMode2[FileOptions_OptimizeMode2["LITE_RUNTIME"] = 3] = "LITE_RUNTIME"; - })(FileOptions_OptimizeMode || (FileOptions_OptimizeMode = {})); - proto2.util.setEnumType(FileOptions_OptimizeMode, "google.protobuf.FileOptions.OptimizeMode", [ - { no: 1, name: "SPEED" }, - { no: 2, name: "CODE_SIZE" }, - { no: 3, name: "LITE_RUNTIME" } - ]); - var MessageOptions = class _MessageOptions extends Message { - constructor(data) { - super(); - this.uninterpretedOption = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _MessageOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _MessageOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _MessageOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_MessageOptions, a, b); - } - }; - MessageOptions.runtime = proto2; - MessageOptions.typeName = "google.protobuf.MessageOptions"; - MessageOptions.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "message_set_wire_format", kind: "scalar", T: 8, opt: true, default: false }, - { no: 2, name: "no_standard_descriptor_accessor", kind: "scalar", T: 8, opt: true, default: false }, - { no: 3, name: "deprecated", kind: "scalar", T: 8, opt: true, default: false }, - { no: 7, name: "map_entry", kind: "scalar", T: 8, opt: true }, - { no: 11, name: "deprecated_legacy_json_field_conflicts", kind: "scalar", T: 8, opt: true }, - { no: 12, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true } - ]); - var FieldOptions = class _FieldOptions extends Message { - constructor(data) { - super(); - this.targets = []; - this.editionDefaults = []; - this.uninterpretedOption = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FieldOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FieldOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FieldOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FieldOptions, a, b); - } - }; - FieldOptions.runtime = proto2; - FieldOptions.typeName = "google.protobuf.FieldOptions"; - FieldOptions.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "ctype", kind: "enum", T: proto2.getEnumType(FieldOptions_CType), opt: true, default: FieldOptions_CType.STRING }, - { no: 2, name: "packed", kind: "scalar", T: 8, opt: true }, - { no: 6, name: "jstype", kind: "enum", T: proto2.getEnumType(FieldOptions_JSType), opt: true, default: FieldOptions_JSType.JS_NORMAL }, - { no: 5, name: "lazy", kind: "scalar", T: 8, opt: true, default: false }, - { no: 15, name: "unverified_lazy", kind: "scalar", T: 8, opt: true, default: false }, - { no: 3, name: "deprecated", kind: "scalar", T: 8, opt: true, default: false }, - { no: 10, name: "weak", kind: "scalar", T: 8, opt: true, default: false }, - { no: 16, name: "debug_redact", kind: "scalar", T: 8, opt: true, default: false }, - { no: 17, name: "retention", kind: "enum", T: proto2.getEnumType(FieldOptions_OptionRetention), opt: true }, - { no: 19, name: "targets", kind: "enum", T: proto2.getEnumType(FieldOptions_OptionTargetType), repeated: true }, - { no: 20, name: "edition_defaults", kind: "message", T: FieldOptions_EditionDefault, repeated: true }, - { no: 21, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true } - ]); - var FieldOptions_CType; - (function(FieldOptions_CType2) { - FieldOptions_CType2[FieldOptions_CType2["STRING"] = 0] = "STRING"; - FieldOptions_CType2[FieldOptions_CType2["CORD"] = 1] = "CORD"; - FieldOptions_CType2[FieldOptions_CType2["STRING_PIECE"] = 2] = "STRING_PIECE"; - })(FieldOptions_CType || (FieldOptions_CType = {})); - proto2.util.setEnumType(FieldOptions_CType, "google.protobuf.FieldOptions.CType", [ - { no: 0, name: "STRING" }, - { no: 1, name: "CORD" }, - { no: 2, name: "STRING_PIECE" } - ]); - var FieldOptions_JSType; - (function(FieldOptions_JSType2) { - FieldOptions_JSType2[FieldOptions_JSType2["JS_NORMAL"] = 0] = "JS_NORMAL"; - FieldOptions_JSType2[FieldOptions_JSType2["JS_STRING"] = 1] = "JS_STRING"; - FieldOptions_JSType2[FieldOptions_JSType2["JS_NUMBER"] = 2] = "JS_NUMBER"; - })(FieldOptions_JSType || (FieldOptions_JSType = {})); - proto2.util.setEnumType(FieldOptions_JSType, "google.protobuf.FieldOptions.JSType", [ - { no: 0, name: "JS_NORMAL" }, - { no: 1, name: "JS_STRING" }, - { no: 2, name: "JS_NUMBER" } - ]); - var FieldOptions_OptionRetention; - (function(FieldOptions_OptionRetention2) { - FieldOptions_OptionRetention2[FieldOptions_OptionRetention2["RETENTION_UNKNOWN"] = 0] = "RETENTION_UNKNOWN"; - FieldOptions_OptionRetention2[FieldOptions_OptionRetention2["RETENTION_RUNTIME"] = 1] = "RETENTION_RUNTIME"; - FieldOptions_OptionRetention2[FieldOptions_OptionRetention2["RETENTION_SOURCE"] = 2] = "RETENTION_SOURCE"; - })(FieldOptions_OptionRetention || (FieldOptions_OptionRetention = {})); - proto2.util.setEnumType(FieldOptions_OptionRetention, "google.protobuf.FieldOptions.OptionRetention", [ - { no: 0, name: "RETENTION_UNKNOWN" }, - { no: 1, name: "RETENTION_RUNTIME" }, - { no: 2, name: "RETENTION_SOURCE" } - ]); - var FieldOptions_OptionTargetType; - (function(FieldOptions_OptionTargetType2) { - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_UNKNOWN"] = 0] = "TARGET_TYPE_UNKNOWN"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_FILE"] = 1] = "TARGET_TYPE_FILE"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_EXTENSION_RANGE"] = 2] = "TARGET_TYPE_EXTENSION_RANGE"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_MESSAGE"] = 3] = "TARGET_TYPE_MESSAGE"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_FIELD"] = 4] = "TARGET_TYPE_FIELD"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_ONEOF"] = 5] = "TARGET_TYPE_ONEOF"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_ENUM"] = 6] = "TARGET_TYPE_ENUM"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_ENUM_ENTRY"] = 7] = "TARGET_TYPE_ENUM_ENTRY"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_SERVICE"] = 8] = "TARGET_TYPE_SERVICE"; - FieldOptions_OptionTargetType2[FieldOptions_OptionTargetType2["TARGET_TYPE_METHOD"] = 9] = "TARGET_TYPE_METHOD"; - })(FieldOptions_OptionTargetType || (FieldOptions_OptionTargetType = {})); - proto2.util.setEnumType(FieldOptions_OptionTargetType, "google.protobuf.FieldOptions.OptionTargetType", [ - { no: 0, name: "TARGET_TYPE_UNKNOWN" }, - { no: 1, name: "TARGET_TYPE_FILE" }, - { no: 2, name: "TARGET_TYPE_EXTENSION_RANGE" }, - { no: 3, name: "TARGET_TYPE_MESSAGE" }, - { no: 4, name: "TARGET_TYPE_FIELD" }, - { no: 5, name: "TARGET_TYPE_ONEOF" }, - { no: 6, name: "TARGET_TYPE_ENUM" }, - { no: 7, name: "TARGET_TYPE_ENUM_ENTRY" }, - { no: 8, name: "TARGET_TYPE_SERVICE" }, - { no: 9, name: "TARGET_TYPE_METHOD" } - ]); - var FieldOptions_EditionDefault = class _FieldOptions_EditionDefault extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FieldOptions_EditionDefault().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FieldOptions_EditionDefault().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FieldOptions_EditionDefault().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FieldOptions_EditionDefault, a, b); - } - }; - FieldOptions_EditionDefault.runtime = proto2; - FieldOptions_EditionDefault.typeName = "google.protobuf.FieldOptions.EditionDefault"; - FieldOptions_EditionDefault.fields = proto2.util.newFieldList(() => [ - { no: 3, name: "edition", kind: "enum", T: proto2.getEnumType(Edition), opt: true }, - { no: 2, name: "value", kind: "scalar", T: 9, opt: true } - ]); - var OneofOptions = class _OneofOptions extends Message { - constructor(data) { - super(); - this.uninterpretedOption = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _OneofOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _OneofOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _OneofOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_OneofOptions, a, b); - } - }; - OneofOptions.runtime = proto2; - OneofOptions.typeName = "google.protobuf.OneofOptions"; - OneofOptions.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true } - ]); - var EnumOptions = class _EnumOptions extends Message { - constructor(data) { - super(); - this.uninterpretedOption = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _EnumOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _EnumOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _EnumOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_EnumOptions, a, b); - } - }; - EnumOptions.runtime = proto2; - EnumOptions.typeName = "google.protobuf.EnumOptions"; - EnumOptions.fields = proto2.util.newFieldList(() => [ - { no: 2, name: "allow_alias", kind: "scalar", T: 8, opt: true }, - { no: 3, name: "deprecated", kind: "scalar", T: 8, opt: true, default: false }, - { no: 6, name: "deprecated_legacy_json_field_conflicts", kind: "scalar", T: 8, opt: true }, - { no: 7, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true } - ]); - var EnumValueOptions = class _EnumValueOptions extends Message { - constructor(data) { - super(); - this.uninterpretedOption = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _EnumValueOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _EnumValueOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _EnumValueOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_EnumValueOptions, a, b); - } - }; - EnumValueOptions.runtime = proto2; - EnumValueOptions.typeName = "google.protobuf.EnumValueOptions"; - EnumValueOptions.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "deprecated", kind: "scalar", T: 8, opt: true, default: false }, - { no: 2, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 3, name: "debug_redact", kind: "scalar", T: 8, opt: true, default: false }, - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true } - ]); - var ServiceOptions = class _ServiceOptions extends Message { - constructor(data) { - super(); - this.uninterpretedOption = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _ServiceOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ServiceOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ServiceOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_ServiceOptions, a, b); - } - }; - ServiceOptions.runtime = proto2; - ServiceOptions.typeName = "google.protobuf.ServiceOptions"; - ServiceOptions.fields = proto2.util.newFieldList(() => [ - { no: 34, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 33, name: "deprecated", kind: "scalar", T: 8, opt: true, default: false }, - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true } - ]); - var MethodOptions = class _MethodOptions extends Message { - constructor(data) { - super(); - this.uninterpretedOption = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _MethodOptions().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _MethodOptions().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _MethodOptions().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_MethodOptions, a, b); - } - }; - MethodOptions.runtime = proto2; - MethodOptions.typeName = "google.protobuf.MethodOptions"; - MethodOptions.fields = proto2.util.newFieldList(() => [ - { no: 33, name: "deprecated", kind: "scalar", T: 8, opt: true, default: false }, - { no: 34, name: "idempotency_level", kind: "enum", T: proto2.getEnumType(MethodOptions_IdempotencyLevel), opt: true, default: MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN }, - { no: 35, name: "features", kind: "message", T: FeatureSet, opt: true }, - { no: 999, name: "uninterpreted_option", kind: "message", T: UninterpretedOption, repeated: true } - ]); - var MethodOptions_IdempotencyLevel; - (function(MethodOptions_IdempotencyLevel2) { - MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2["IDEMPOTENCY_UNKNOWN"] = 0] = "IDEMPOTENCY_UNKNOWN"; - MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2["NO_SIDE_EFFECTS"] = 1] = "NO_SIDE_EFFECTS"; - MethodOptions_IdempotencyLevel2[MethodOptions_IdempotencyLevel2["IDEMPOTENT"] = 2] = "IDEMPOTENT"; - })(MethodOptions_IdempotencyLevel || (MethodOptions_IdempotencyLevel = {})); - proto2.util.setEnumType(MethodOptions_IdempotencyLevel, "google.protobuf.MethodOptions.IdempotencyLevel", [ - { no: 0, name: "IDEMPOTENCY_UNKNOWN" }, - { no: 1, name: "NO_SIDE_EFFECTS" }, - { no: 2, name: "IDEMPOTENT" } - ]); - var UninterpretedOption = class _UninterpretedOption extends Message { - constructor(data) { - super(); - this.name = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _UninterpretedOption().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _UninterpretedOption().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _UninterpretedOption().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_UninterpretedOption, a, b); - } - }; - UninterpretedOption.runtime = proto2; - UninterpretedOption.typeName = "google.protobuf.UninterpretedOption"; - UninterpretedOption.fields = proto2.util.newFieldList(() => [ - { no: 2, name: "name", kind: "message", T: UninterpretedOption_NamePart, repeated: true }, - { no: 3, name: "identifier_value", kind: "scalar", T: 9, opt: true }, - { no: 4, name: "positive_int_value", kind: "scalar", T: 4, opt: true }, - { no: 5, name: "negative_int_value", kind: "scalar", T: 3, opt: true }, - { no: 6, name: "double_value", kind: "scalar", T: 1, opt: true }, - { no: 7, name: "string_value", kind: "scalar", T: 12, opt: true }, - { no: 8, name: "aggregate_value", kind: "scalar", T: 9, opt: true } - ]); - var UninterpretedOption_NamePart = class _UninterpretedOption_NamePart extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _UninterpretedOption_NamePart().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _UninterpretedOption_NamePart().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _UninterpretedOption_NamePart().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_UninterpretedOption_NamePart, a, b); - } - }; - UninterpretedOption_NamePart.runtime = proto2; - UninterpretedOption_NamePart.typeName = "google.protobuf.UninterpretedOption.NamePart"; - UninterpretedOption_NamePart.fields = proto2.util.newFieldList(() => [ - { - no: 1, - name: "name_part", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "is_extension", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - } - ]); - var FeatureSet = class _FeatureSet extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FeatureSet().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FeatureSet().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FeatureSet().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FeatureSet, a, b); - } - }; - FeatureSet.runtime = proto2; - FeatureSet.typeName = "google.protobuf.FeatureSet"; - FeatureSet.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "field_presence", kind: "enum", T: proto2.getEnumType(FeatureSet_FieldPresence), opt: true }, - { no: 2, name: "enum_type", kind: "enum", T: proto2.getEnumType(FeatureSet_EnumType), opt: true }, - { no: 3, name: "repeated_field_encoding", kind: "enum", T: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding), opt: true }, - { no: 4, name: "utf8_validation", kind: "enum", T: proto2.getEnumType(FeatureSet_Utf8Validation), opt: true }, - { no: 5, name: "message_encoding", kind: "enum", T: proto2.getEnumType(FeatureSet_MessageEncoding), opt: true }, - { no: 6, name: "json_format", kind: "enum", T: proto2.getEnumType(FeatureSet_JsonFormat), opt: true } - ]); - var FeatureSet_FieldPresence; - (function(FeatureSet_FieldPresence2) { - FeatureSet_FieldPresence2[FeatureSet_FieldPresence2["FIELD_PRESENCE_UNKNOWN"] = 0] = "FIELD_PRESENCE_UNKNOWN"; - FeatureSet_FieldPresence2[FeatureSet_FieldPresence2["EXPLICIT"] = 1] = "EXPLICIT"; - FeatureSet_FieldPresence2[FeatureSet_FieldPresence2["IMPLICIT"] = 2] = "IMPLICIT"; - FeatureSet_FieldPresence2[FeatureSet_FieldPresence2["LEGACY_REQUIRED"] = 3] = "LEGACY_REQUIRED"; - })(FeatureSet_FieldPresence || (FeatureSet_FieldPresence = {})); - proto2.util.setEnumType(FeatureSet_FieldPresence, "google.protobuf.FeatureSet.FieldPresence", [ - { no: 0, name: "FIELD_PRESENCE_UNKNOWN" }, - { no: 1, name: "EXPLICIT" }, - { no: 2, name: "IMPLICIT" }, - { no: 3, name: "LEGACY_REQUIRED" } - ]); - var FeatureSet_EnumType; - (function(FeatureSet_EnumType2) { - FeatureSet_EnumType2[FeatureSet_EnumType2["ENUM_TYPE_UNKNOWN"] = 0] = "ENUM_TYPE_UNKNOWN"; - FeatureSet_EnumType2[FeatureSet_EnumType2["OPEN"] = 1] = "OPEN"; - FeatureSet_EnumType2[FeatureSet_EnumType2["CLOSED"] = 2] = "CLOSED"; - })(FeatureSet_EnumType || (FeatureSet_EnumType = {})); - proto2.util.setEnumType(FeatureSet_EnumType, "google.protobuf.FeatureSet.EnumType", [ - { no: 0, name: "ENUM_TYPE_UNKNOWN" }, - { no: 1, name: "OPEN" }, - { no: 2, name: "CLOSED" } - ]); - var FeatureSet_RepeatedFieldEncoding; - (function(FeatureSet_RepeatedFieldEncoding2) { - FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2["REPEATED_FIELD_ENCODING_UNKNOWN"] = 0] = "REPEATED_FIELD_ENCODING_UNKNOWN"; - FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2["PACKED"] = 1] = "PACKED"; - FeatureSet_RepeatedFieldEncoding2[FeatureSet_RepeatedFieldEncoding2["EXPANDED"] = 2] = "EXPANDED"; - })(FeatureSet_RepeatedFieldEncoding || (FeatureSet_RepeatedFieldEncoding = {})); - proto2.util.setEnumType(FeatureSet_RepeatedFieldEncoding, "google.protobuf.FeatureSet.RepeatedFieldEncoding", [ - { no: 0, name: "REPEATED_FIELD_ENCODING_UNKNOWN" }, - { no: 1, name: "PACKED" }, - { no: 2, name: "EXPANDED" } - ]); - var FeatureSet_Utf8Validation; - (function(FeatureSet_Utf8Validation2) { - FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2["UTF8_VALIDATION_UNKNOWN"] = 0] = "UTF8_VALIDATION_UNKNOWN"; - FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2["NONE"] = 1] = "NONE"; - FeatureSet_Utf8Validation2[FeatureSet_Utf8Validation2["VERIFY"] = 2] = "VERIFY"; - })(FeatureSet_Utf8Validation || (FeatureSet_Utf8Validation = {})); - proto2.util.setEnumType(FeatureSet_Utf8Validation, "google.protobuf.FeatureSet.Utf8Validation", [ - { no: 0, name: "UTF8_VALIDATION_UNKNOWN" }, - { no: 1, name: "NONE" }, - { no: 2, name: "VERIFY" } - ]); - var FeatureSet_MessageEncoding; - (function(FeatureSet_MessageEncoding2) { - FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2["MESSAGE_ENCODING_UNKNOWN"] = 0] = "MESSAGE_ENCODING_UNKNOWN"; - FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2["LENGTH_PREFIXED"] = 1] = "LENGTH_PREFIXED"; - FeatureSet_MessageEncoding2[FeatureSet_MessageEncoding2["DELIMITED"] = 2] = "DELIMITED"; - })(FeatureSet_MessageEncoding || (FeatureSet_MessageEncoding = {})); - proto2.util.setEnumType(FeatureSet_MessageEncoding, "google.protobuf.FeatureSet.MessageEncoding", [ - { no: 0, name: "MESSAGE_ENCODING_UNKNOWN" }, - { no: 1, name: "LENGTH_PREFIXED" }, - { no: 2, name: "DELIMITED" } - ]); - var FeatureSet_JsonFormat; - (function(FeatureSet_JsonFormat2) { - FeatureSet_JsonFormat2[FeatureSet_JsonFormat2["JSON_FORMAT_UNKNOWN"] = 0] = "JSON_FORMAT_UNKNOWN"; - FeatureSet_JsonFormat2[FeatureSet_JsonFormat2["ALLOW"] = 1] = "ALLOW"; - FeatureSet_JsonFormat2[FeatureSet_JsonFormat2["LEGACY_BEST_EFFORT"] = 2] = "LEGACY_BEST_EFFORT"; - })(FeatureSet_JsonFormat || (FeatureSet_JsonFormat = {})); - proto2.util.setEnumType(FeatureSet_JsonFormat, "google.protobuf.FeatureSet.JsonFormat", [ - { no: 0, name: "JSON_FORMAT_UNKNOWN" }, - { no: 1, name: "ALLOW" }, - { no: 2, name: "LEGACY_BEST_EFFORT" } - ]); - var FeatureSetDefaults = class _FeatureSetDefaults extends Message { - constructor(data) { - super(); - this.defaults = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FeatureSetDefaults().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FeatureSetDefaults().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FeatureSetDefaults().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FeatureSetDefaults, a, b); - } - }; - FeatureSetDefaults.runtime = proto2; - FeatureSetDefaults.typeName = "google.protobuf.FeatureSetDefaults"; - FeatureSetDefaults.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "defaults", kind: "message", T: FeatureSetDefaults_FeatureSetEditionDefault, repeated: true }, - { no: 4, name: "minimum_edition", kind: "enum", T: proto2.getEnumType(Edition), opt: true }, - { no: 5, name: "maximum_edition", kind: "enum", T: proto2.getEnumType(Edition), opt: true } - ]); - var FeatureSetDefaults_FeatureSetEditionDefault = class _FeatureSetDefaults_FeatureSetEditionDefault extends Message { - constructor(data) { - super(); - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _FeatureSetDefaults_FeatureSetEditionDefault().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FeatureSetDefaults_FeatureSetEditionDefault().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FeatureSetDefaults_FeatureSetEditionDefault().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_FeatureSetDefaults_FeatureSetEditionDefault, a, b); - } - }; - FeatureSetDefaults_FeatureSetEditionDefault.runtime = proto2; - FeatureSetDefaults_FeatureSetEditionDefault.typeName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"; - FeatureSetDefaults_FeatureSetEditionDefault.fields = proto2.util.newFieldList(() => [ - { no: 3, name: "edition", kind: "enum", T: proto2.getEnumType(Edition), opt: true }, - { no: 2, name: "features", kind: "message", T: FeatureSet, opt: true } - ]); - var SourceCodeInfo = class _SourceCodeInfo extends Message { - constructor(data) { - super(); - this.location = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _SourceCodeInfo().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _SourceCodeInfo().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _SourceCodeInfo().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_SourceCodeInfo, a, b); - } - }; - SourceCodeInfo.runtime = proto2; - SourceCodeInfo.typeName = "google.protobuf.SourceCodeInfo"; - SourceCodeInfo.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "location", kind: "message", T: SourceCodeInfo_Location, repeated: true } - ]); - var SourceCodeInfo_Location = class _SourceCodeInfo_Location extends Message { - constructor(data) { - super(); - this.path = []; - this.span = []; - this.leadingDetachedComments = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _SourceCodeInfo_Location().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _SourceCodeInfo_Location().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _SourceCodeInfo_Location().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_SourceCodeInfo_Location, a, b); - } - }; - SourceCodeInfo_Location.runtime = proto2; - SourceCodeInfo_Location.typeName = "google.protobuf.SourceCodeInfo.Location"; - SourceCodeInfo_Location.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "path", kind: "scalar", T: 5, repeated: true, packed: true }, - { no: 2, name: "span", kind: "scalar", T: 5, repeated: true, packed: true }, - { no: 3, name: "leading_comments", kind: "scalar", T: 9, opt: true }, - { no: 4, name: "trailing_comments", kind: "scalar", T: 9, opt: true }, - { no: 6, name: "leading_detached_comments", kind: "scalar", T: 9, repeated: true } - ]); - var GeneratedCodeInfo = class _GeneratedCodeInfo extends Message { - constructor(data) { - super(); - this.annotation = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _GeneratedCodeInfo().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GeneratedCodeInfo().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GeneratedCodeInfo().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_GeneratedCodeInfo, a, b); - } - }; - GeneratedCodeInfo.runtime = proto2; - GeneratedCodeInfo.typeName = "google.protobuf.GeneratedCodeInfo"; - GeneratedCodeInfo.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "annotation", kind: "message", T: GeneratedCodeInfo_Annotation, repeated: true } - ]); - var GeneratedCodeInfo_Annotation = class _GeneratedCodeInfo_Annotation extends Message { - constructor(data) { - super(); - this.path = []; - proto2.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _GeneratedCodeInfo_Annotation().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GeneratedCodeInfo_Annotation().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GeneratedCodeInfo_Annotation().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto2.util.equals(_GeneratedCodeInfo_Annotation, a, b); - } - }; - GeneratedCodeInfo_Annotation.runtime = proto2; - GeneratedCodeInfo_Annotation.typeName = "google.protobuf.GeneratedCodeInfo.Annotation"; - GeneratedCodeInfo_Annotation.fields = proto2.util.newFieldList(() => [ - { no: 1, name: "path", kind: "scalar", T: 5, repeated: true, packed: true }, - { no: 2, name: "source_file", kind: "scalar", T: 9, opt: true }, - { no: 3, name: "begin", kind: "scalar", T: 5, opt: true }, - { no: 4, name: "end", kind: "scalar", T: 5, opt: true }, - { no: 5, name: "semantic", kind: "enum", T: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic), opt: true } - ]); - var GeneratedCodeInfo_Annotation_Semantic; - (function(GeneratedCodeInfo_Annotation_Semantic2) { - GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2["NONE"] = 0] = "NONE"; - GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2["SET"] = 1] = "SET"; - GeneratedCodeInfo_Annotation_Semantic2[GeneratedCodeInfo_Annotation_Semantic2["ALIAS"] = 2] = "ALIAS"; - })(GeneratedCodeInfo_Annotation_Semantic || (GeneratedCodeInfo_Annotation_Semantic = {})); - proto2.util.setEnumType(GeneratedCodeInfo_Annotation_Semantic, "google.protobuf.GeneratedCodeInfo.Annotation.Semantic", [ - { no: 0, name: "NONE" }, - { no: 1, name: "SET" }, - { no: 2, name: "ALIAS" } - ]); - - // ../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/empty_pb.js - var Empty = class _Empty extends Message { - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static fromBinary(bytes, options) { - return new _Empty().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Empty().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Empty().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Empty, a, b); - } - }; - Empty.runtime = proto3; - Empty.typeName = "google.protobuf.Empty"; - Empty.fields = proto3.util.newFieldList(() => []); - - // rpc/user/user_pb.ts - var VerifyUserRequest = class _VerifyUserRequest extends Message { - /** - * @generated from field: string secret = 1; - */ - secret = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.VerifyUserRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "secret", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _VerifyUserRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _VerifyUserRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _VerifyUserRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_VerifyUserRequest, a, b); - } - }; - var GroupInfoRequest = class _GroupInfoRequest extends Message { - /** - * @generated from field: string secret = 1; - */ - secret = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.GroupInfoRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "secret", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _GroupInfoRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GroupInfoRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GroupInfoRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GroupInfoRequest, a, b); - } - }; - var GroupID = class _GroupID extends Message { - /** - * @generated from field: string group_id = 1; - */ - groupId = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.GroupID"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "group_id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _GroupID().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GroupID().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GroupID().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GroupID, a, b); - } - }; - var ShareRequest = class _ShareRequest extends Message { - /** - * @generated from field: string content_id = 1; - */ - contentId = ""; - /** - * @generated from field: string group_id = 2; - */ - groupId = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.ShareRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "content_id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "group_id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _ShareRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ShareRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ShareRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ShareRequest, a, b); - } - }; - var GroupInvite = class _GroupInvite extends Message { - /** - * @generated from field: string secret = 1; - */ - secret = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.GroupInvite"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "secret", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _GroupInvite().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GroupInvite().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GroupInvite().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GroupInvite, a, b); - } - }; - var Groups = class _Groups extends Message { - /** - * @generated from field: repeated user.Group groups = 1; - */ - groups = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.Groups"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "groups", kind: "message", T: Group, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Groups().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Groups().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Groups().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Groups, a, b); - } - }; - var AnalyzeConversationRequest = class _AnalyzeConversationRequest extends Message { - /** - * @generated from field: string text = 1; - */ - text = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.AnalyzeConversationRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _AnalyzeConversationRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _AnalyzeConversationRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _AnalyzeConversationRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_AnalyzeConversationRequest, a, b); - } - }; - var User = class _User extends Message { - /** - * @generated from field: string email = 1; - */ - email = ""; - /** - * @generated from field: string password = 2; - */ - password = ""; - /** - * @generated from field: user.Config config = 3; - */ - config; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.User"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "email", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "password", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 3, name: "config", kind: "message", T: Config } - ]); - static fromBinary(bytes, options) { - return new _User().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _User().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _User().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_User, a, b); - } - }; - var Group = class _Group extends Message { - /** - * @generated from field: string id = 1; - */ - id = ""; - /** - * @generated from field: string name = 2; - */ - name = ""; - /** - * @generated from field: repeated string users = 3; - */ - users = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.Group"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 3, name: "users", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Group().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Group().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Group().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Group, a, b); - } - }; - var Config = class _Config extends Message { - /** - * @generated from field: repeated string domain_whitelist = 1; - */ - domainWhitelist = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.Config"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "domain_whitelist", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Config().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Config().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Config().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Config, a, b); - } - }; - var LoginResponse = class _LoginResponse extends Message { - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "user.LoginResponse"; - static fields = proto3.util.newFieldList(() => []); - static fromBinary(bytes, options) { - return new _LoginResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _LoginResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _LoginResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_LoginResponse, a, b); - } - }; - - // rpc/content/content_pb.ts - var RelateRequest = class _RelateRequest extends Message { - /** - * @generated from field: string parent = 1; - */ - parent = ""; - /** - * @generated from field: repeated string children = 2; - */ - children = []; - /** - * @generated from field: bool connect = 3; - */ - connect = false; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.RelateRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "parent", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 2, name: "children", kind: "scalar", T: 9, repeated: true }, - { - no: 3, - name: "connect", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - } - ]); - static fromBinary(bytes, options) { - return new _RelateRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _RelateRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _RelateRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_RelateRequest, a, b); - } - }; - var Sources = class _Sources extends Message { - /** - * @generated from field: repeated content.EnumeratedSource sources = 1; - */ - sources = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Sources"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "sources", kind: "message", T: EnumeratedSource, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Sources().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Sources().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Sources().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Sources, a, b); - } - }; - var EnumeratedSource = class _EnumeratedSource extends Message { - /** - * @generated from field: content.Source source = 1; - */ - source; - /** - * @generated from field: repeated content.DisplayContent display_content = 2; - */ - displayContent = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.EnumeratedSource"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "source", kind: "message", T: Source }, - { no: 2, name: "display_content", kind: "message", T: DisplayContent, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _EnumeratedSource().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _EnumeratedSource().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _EnumeratedSource().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_EnumeratedSource, a, b); - } - }; - var DisplayContent = class _DisplayContent extends Message { - /** - * @generated from field: string title = 1; - */ - title = ""; - /** - * @generated from field: string description = 2; - */ - description = ""; - /** - * @generated from field: string type = 3; - */ - type = ""; - /** - * @generated from field: content.Content content = 4; - */ - content; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.DisplayContent"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "description", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "type", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 4, name: "content", kind: "message", T: Content } - ]); - static fromBinary(bytes, options) { - return new _DisplayContent().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _DisplayContent().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _DisplayContent().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_DisplayContent, a, b); - } - }; - var Source = class _Source extends Message { - /** - * @generated from field: string name = 1; - */ - name = ""; - /** - * @generated from oneof content.Source.type - */ - type = { case: void 0 }; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Source"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 2, name: "server", kind: "message", T: Server, oneof: "type" }, - { no: 3, name: "folder", kind: "message", T: Folder, oneof: "type" } - ]); - static fromBinary(bytes, options) { - return new _Source().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Source().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Source().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Source, a, b); - } - }; - var Server = class _Server extends Message { - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Server"; - static fields = proto3.util.newFieldList(() => []); - static fromBinary(bytes, options) { - return new _Server().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Server().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Server().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Server, a, b); - } - }; - var Folder = class _Folder extends Message { - /** - * @generated from field: string path = 2; - */ - path = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Folder"; - static fields = proto3.util.newFieldList(() => [ - { - no: 2, - name: "path", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Folder().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Folder().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Folder().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Folder, a, b); - } - }; - var SetTagsRequest = class _SetTagsRequest extends Message { - /** - * @generated from field: string content_id = 1; - */ - contentId = ""; - /** - * @generated from field: repeated string tags = 2; - */ - tags = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.SetTagsRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "content_id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 2, name: "tags", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _SetTagsRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _SetTagsRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _SetTagsRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_SetTagsRequest, a, b); - } - }; - var TagRequest = class _TagRequest extends Message { - /** - * @generated from field: string group_id = 1; - */ - groupId = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.TagRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "group_id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _TagRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _TagRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _TagRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_TagRequest, a, b); - } - }; - var Tags = class _Tags extends Message { - /** - * @generated from field: repeated content.Tag tags = 1; - */ - tags = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Tags"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "tags", kind: "message", T: Tag, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Tags().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Tags().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Tags().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Tags, a, b); - } - }; - var Tag = class _Tag extends Message { - /** - * @generated from field: string name = 1; - */ - name = ""; - /** - * @generated from field: repeated content.Tag sub_tags = 2; - */ - subTags = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Tag"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 2, name: "sub_tags", kind: "message", T: _Tag, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Tag().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Tag().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Tag().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Tag, a, b); - } - }; - var ContentIDs = class _ContentIDs extends Message { - /** - * @generated from field: repeated string content_ids = 1; - */ - contentIds = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.ContentIDs"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "content_ids", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _ContentIDs().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ContentIDs().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ContentIDs().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ContentIDs, a, b); - } - }; - var Contents = class _Contents extends Message { - /** - * @generated from field: content.Content content = 1; - */ - content; - /** - * @generated from field: repeated string tags = 2; - */ - tags = []; - /** - * @generated from field: repeated content.Content related = 3; - */ - related = []; - /** - * @generated from field: repeated string parents = 4; - */ - parents = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Contents"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "content", kind: "message", T: Content }, - { no: 2, name: "tags", kind: "scalar", T: 9, repeated: true }, - { no: 3, name: "related", kind: "message", T: Content, repeated: true }, - { no: 4, name: "parents", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Contents().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Contents().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Contents().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Contents, a, b); - } - }; - var Query = class _Query extends Message { - /** - * @generated from field: string query = 1; - */ - query = ""; - /** - * @generated from field: uint32 page = 2; - */ - page = 0; - /** - * @generated from field: string contentID = 3; - */ - contentID = ""; - /** - * @generated from field: string groupID = 4; - */ - groupID = ""; - /** - * @generated from field: repeated string tags = 5; - */ - tags = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Query"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "query", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "page", - kind: "scalar", - T: 13 - /* ScalarType.UINT32 */ - }, - { - no: 3, - name: "contentID", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 4, - name: "groupID", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 5, name: "tags", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Query().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Query().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Query().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Query, a, b); - } - }; - var Results = class _Results extends Message { - /** - * @generated from field: repeated content.StoredContent storedContent = 1; - */ - storedContent = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Results"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "storedContent", kind: "message", T: StoredContent, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Results().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Results().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Results().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Results, a, b); - } - }; - var StoredContent = class _StoredContent extends Message { - /** - * @generated from field: content.Content content = 1; - */ - content; - /** - * @generated from field: string id = 2; - */ - id = ""; - /** - * @generated from field: repeated content.Content related = 3; - */ - related = []; - /** - * @generated from field: string title = 4; - */ - title = ""; - /** - * @generated from field: string description = 5; - */ - description = ""; - /** - * @generated from field: string image = 6; - */ - image = ""; - /** - * @generated from field: string url = 7; - */ - url = ""; - /** - * @generated from field: user.User user = 9; - */ - user; - /** - * @generated from field: repeated content.Tag tags = 10; - */ - tags = []; - /** - * @generated from field: string preview = 11; - */ - preview = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.StoredContent"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "content", kind: "message", T: Content }, - { - no: 2, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 3, name: "related", kind: "message", T: Content, repeated: true }, - { - no: 4, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 5, - name: "description", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 6, - name: "image", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 7, - name: "url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 9, name: "user", kind: "message", T: User }, - { no: 10, name: "tags", kind: "message", T: Tag, repeated: true }, - { - no: 11, - name: "preview", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _StoredContent().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _StoredContent().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _StoredContent().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_StoredContent, a, b); - } - }; - var Edge = class _Edge extends Message { - /** - * @generated from field: string from = 1; - */ - from = ""; - /** - * @generated from field: string to = 2; - */ - to = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Edge"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "from", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "to", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Edge().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Edge().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Edge().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Edge, a, b); - } - }; - var Content = class _Content extends Message { - /** - * @generated from field: repeated string tags = 1; - */ - tags = []; - /** - * @generated from field: string created_at = 2; - */ - createdAt = ""; - /** - * @generated from field: string uri = 3; - */ - uri = ""; - /** - * @generated from field: string id = 4; - */ - id = ""; - /** - * @generated from oneof content.Content.type - */ - type = { case: void 0 }; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Content"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "tags", kind: "scalar", T: 9, repeated: true }, - { - no: 2, - name: "created_at", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "uri", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 4, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 6, name: "data", kind: "message", T: Data, oneof: "type" }, - { no: 7, name: "normalized", kind: "message", T: Normalized, oneof: "type" }, - { no: 8, name: "transformed", kind: "message", T: Transformed, oneof: "type" }, - { no: 9, name: "post", kind: "message", T: Post, oneof: "type" }, - { no: 10, name: "site", kind: "message", T: Site, oneof: "type" } - ]); - static fromBinary(bytes, options) { - return new _Content().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Content().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Content().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Content, a, b); - } - }; - var Post = class _Post extends Message { - /** - * @generated from field: string title = 1; - */ - title = ""; - /** - * @generated from field: string summary = 2; - */ - summary = ""; - /** - * @generated from field: string content = 3; - */ - content = ""; - /** - * @generated from field: repeated string authors = 4; - */ - authors = []; - /** - * @generated from field: bool draft = 6; - */ - draft = false; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Post"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "summary", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "content", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 4, name: "authors", kind: "scalar", T: 9, repeated: true }, - { - no: 6, - name: "draft", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - } - ]); - static fromBinary(bytes, options) { - return new _Post().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Post().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Post().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Post, a, b); - } - }; - var GitRepo = class _GitRepo extends Message { - /** - * @generated from field: string url = 1; - */ - url = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.GitRepo"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _GitRepo().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GitRepo().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GitRepo().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GitRepo, a, b); - } - }; - var Data = class _Data extends Message { - /** - * @generated from oneof content.Data.type - */ - type = { case: void 0 }; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Data"; - static fields = proto3.util.newFieldList(() => [ - { no: 4, name: "text", kind: "message", T: Text, oneof: "type" }, - { no: 5, name: "file", kind: "message", T: File, oneof: "type" }, - { no: 6, name: "url", kind: "message", T: URL2, oneof: "type" } - ]); - static fromBinary(bytes, options) { - return new _Data().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Data().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Data().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Data, a, b); - } - }; - var Normalized = class _Normalized extends Message { - /** - * @generated from oneof content.Normalized.type - */ - type = { case: void 0 }; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Normalized"; - static fields = proto3.util.newFieldList(() => [ - { no: 3, name: "article", kind: "message", T: Article, oneof: "type" }, - { no: 4, name: "html", kind: "message", T: HTML, oneof: "type" }, - { no: 6, name: "transcript", kind: "message", T: Transcript, oneof: "type" }, - { no: 7, name: "readme", kind: "message", T: ReadMe, oneof: "type" } - ]); - static fromBinary(bytes, options) { - return new _Normalized().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Normalized().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Normalized().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Normalized, a, b); - } - }; - var Transformed = class _Transformed extends Message { - /** - * @generated from oneof content.Transformed.type - */ - type = { case: void 0 }; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Transformed"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "summary", kind: "message", T: Summary, oneof: "type" }, - { no: 2, name: "categories", kind: "message", T: Categories, oneof: "type" } - ]); - static fromBinary(bytes, options) { - return new _Transformed().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Transformed().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Transformed().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Transformed, a, b); - } - }; - var Article = class _Article extends Message { - /** - * @generated from field: string title = 1; - */ - title = ""; - /** - * @generated from field: string author = 2; - */ - author = ""; - /** - * @generated from field: int32 length = 3; - */ - length = 0; - /** - * @generated from field: string excerpt = 4; - */ - excerpt = ""; - /** - * @generated from field: string site_name = 5; - */ - siteName = ""; - /** - * @generated from field: string image = 6; - */ - image = ""; - /** - * @generated from field: string favicon = 7; - */ - favicon = ""; - /** - * @generated from field: string text = 8; - */ - text = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Article"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "author", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "length", - kind: "scalar", - T: 5 - /* ScalarType.INT32 */ - }, - { - no: 4, - name: "excerpt", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 5, - name: "site_name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 6, - name: "image", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 7, - name: "favicon", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 8, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Article().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Article().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Article().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Article, a, b); - } - }; - var HTML = class _HTML extends Message { - /** - * @generated from field: string html = 1; - */ - html = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.HTML"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "html", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _HTML().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _HTML().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _HTML().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_HTML, a, b); - } - }; - var ReadMe = class _ReadMe extends Message { - /** - * @generated from field: string data = 1; - */ - data = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.ReadMe"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "data", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _ReadMe().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ReadMe().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ReadMe().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ReadMe, a, b); - } - }; - var Summary = class _Summary extends Message { - /** - * @generated from field: string summary = 1; - */ - summary = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Summary"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "summary", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Summary().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Summary().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Summary().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Summary, a, b); - } - }; - var Categories = class _Categories extends Message { - /** - * @generated from field: repeated string categories = 1; - */ - categories = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Categories"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "categories", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Categories().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Categories().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Categories().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Categories, a, b); - } - }; - var File = class _File extends Message { - /** - * @generated from field: string file = 1; - */ - file = ""; - /** - * @generated from field: bytes data = 2; - */ - data = new Uint8Array(0); - /** - * @generated from field: string url = 3; - */ - url = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.File"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "file", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "data", - kind: "scalar", - T: 12 - /* ScalarType.BYTES */ - }, - { - no: 3, - name: "url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _File().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _File().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _File().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_File, a, b); - } - }; - var Text = class _Text extends Message { - /** - * @generated from field: string data = 1; - */ - data = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Text"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "data", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Text().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Text().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Text().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Text, a, b); - } - }; - var URL2 = class _URL extends Message { - /** - * @generated from field: string url = 1; - */ - url = ""; - /** - * @generated from field: bool crawl = 2; - */ - crawl = false; - /** - * @generated from field: string title = 3; - */ - title = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.URL"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "crawl", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 3, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _URL().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _URL().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _URL().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_URL, a, b); - } - }; - var Token = class _Token extends Message { - /** - * @generated from field: uint32 id = 1; - */ - id = 0; - /** - * @generated from field: uint64 start_time = 2; - */ - startTime = protoInt64.zero; - /** - * @generated from field: uint64 end_time = 3; - */ - endTime = protoInt64.zero; - /** - * @generated from field: string text = 4; - */ - text = ""; - /** - * @generated from field: string p = 5; - */ - p = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Token"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 13 - /* ScalarType.UINT32 */ - }, - { - no: 2, - name: "start_time", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - }, - { - no: 3, - name: "end_time", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - }, - { - no: 4, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 5, - name: "p", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Token().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Token().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Token().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Token, a, b); - } - }; - var Segment = class _Segment extends Message { - /** - * @generated from field: uint32 num = 1; - */ - num = 0; - /** - * @generated from field: repeated content.Token tokens = 2; - */ - tokens = []; - /** - * @generated from field: string text = 3; - */ - text = ""; - /** - * @generated from field: uint64 start_time = 4; - */ - startTime = protoInt64.zero; - /** - * @generated from field: uint64 end_time = 5; - */ - endTime = protoInt64.zero; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Segment"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "num", - kind: "scalar", - T: 13 - /* ScalarType.UINT32 */ - }, - { no: 2, name: "tokens", kind: "message", T: Token, repeated: true }, - { - no: 3, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 4, - name: "start_time", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - }, - { - no: 5, - name: "end_time", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - } - ]); - static fromBinary(bytes, options) { - return new _Segment().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Segment().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Segment().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Segment, a, b); - } - }; - var Transcript = class _Transcript extends Message { - /** - * @generated from field: string id = 1; - */ - id = ""; - /** - * @generated from field: string name = 2; - */ - name = ""; - /** - * @generated from field: repeated content.Segment segments = 3; - */ - segments = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Transcript"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 3, name: "segments", kind: "message", T: Segment, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Transcript().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Transcript().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Transcript().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Transcript, a, b); - } - }; - var GRPCTypeInfo = class _GRPCTypeInfo extends Message { - /** - * @generated from field: google.protobuf.DescriptorProto msg = 1; - */ - msg; - /** - * @generated from field: map desc_lookup = 3; - */ - descLookup = {}; - /** - * @generated from field: map enum_lookup = 4; - */ - enumLookup = {}; - /** - * @generated from field: string package_name = 6; - */ - packageName = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.GRPCTypeInfo"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "msg", kind: "message", T: DescriptorProto }, - { no: 3, name: "desc_lookup", kind: "map", K: 9, V: { kind: "message", T: DescriptorProto } }, - { no: 4, name: "enum_lookup", kind: "map", K: 9, V: { kind: "message", T: EnumDescriptorProto } }, - { - no: 6, - name: "package_name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _GRPCTypeInfo().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GRPCTypeInfo().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GRPCTypeInfo().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GRPCTypeInfo, a, b); - } - }; - var Site = class _Site extends Message { - /** - * @generated from field: content.HugoConfig hugo_config = 1; - */ - hugoConfig; - /** - * @generated from field: repeated string post_tags = 2; - */ - postTags = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.Site"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "hugo_config", kind: "message", T: HugoConfig }, - { no: 2, name: "post_tags", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Site().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Site().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Site().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Site, a, b); - } - }; - var HugoConfig = class _HugoConfig extends Message { - /** - * @generated from field: string theme = 1; - */ - theme = ""; - /** - * @generated from field: string base_url = 2; - */ - baseUrl = ""; - /** - * @generated from field: string title = 3; - */ - title = ""; - /** - * @generated from field: content.ParamsConfig params = 4; - */ - params; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.HugoConfig"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "theme", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "base_url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 4, name: "params", kind: "message", T: ParamsConfig } - ]); - static fromBinary(bytes, options) { - return new _HugoConfig().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _HugoConfig().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _HugoConfig().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_HugoConfig, a, b); - } - }; - var ParamsConfig = class _ParamsConfig extends Message { - /** - * @generated from field: string env = 1; - */ - env = ""; - /** - * @generated from field: string description = 2; - */ - description = ""; - /** - * @generated from field: string author = 3; - */ - author = ""; - /** - * @generated from field: string default_theme = 4; - */ - defaultTheme = ""; - /** - * @generated from field: bool show_share_buttons = 5; - */ - showShareButtons = false; - /** - * @generated from field: bool show_reading_time = 6; - */ - showReadingTime = false; - /** - * @generated from field: bool display_full_lang_name = 7; - */ - displayFullLangName = false; - /** - * @generated from field: bool show_post_nav_links = 8; - */ - showPostNavLinks = false; - /** - * @generated from field: bool show_bread_crumbs = 9; - */ - showBreadCrumbs = false; - /** - * @generated from field: bool show_code_copy_buttons = 10; - */ - showCodeCopyButtons = false; - /** - * @generated from field: bool show_rss_button_in_section_term_list = 11; - */ - showRssButtonInSectionTermList = false; - /** - * @generated from field: bool show_all_pages_in_archive = 12; - */ - showAllPagesInArchive = false; - /** - * @generated from field: bool show_page_nums = 13; - */ - showPageNums = false; - /** - * @generated from field: bool show_toc = 14; - */ - showToc = false; - /** - * @generated from field: repeated string images = 15; - */ - images = []; - /** - * @generated from field: content.ProfileModeConfig profile_mode = 16; - */ - profileMode; - /** - * @generated from field: content.HomeInfoParamsConfig home_info_params = 17; - */ - homeInfoParams; - /** - * @generated from field: repeated content.SocialIconConfig social_icons = 18; - */ - socialIcons = []; - /** - * @generated from field: content.EditPostConfig edit_post = 19; - */ - editPost; - /** - * @generated from field: content.AssetsConfig assets = 20; - */ - assets; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.ParamsConfig"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "env", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "description", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "author", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 4, - name: "default_theme", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 5, - name: "show_share_buttons", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 6, - name: "show_reading_time", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 7, - name: "display_full_lang_name", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 8, - name: "show_post_nav_links", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 9, - name: "show_bread_crumbs", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 10, - name: "show_code_copy_buttons", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 11, - name: "show_rss_button_in_section_term_list", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 12, - name: "show_all_pages_in_archive", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 13, - name: "show_page_nums", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 14, - name: "show_toc", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { no: 15, name: "images", kind: "scalar", T: 9, repeated: true }, - { no: 16, name: "profile_mode", kind: "message", T: ProfileModeConfig }, - { no: 17, name: "home_info_params", kind: "message", T: HomeInfoParamsConfig }, - { no: 18, name: "social_icons", kind: "message", T: SocialIconConfig, repeated: true }, - { no: 19, name: "edit_post", kind: "message", T: EditPostConfig }, - { no: 20, name: "assets", kind: "message", T: AssetsConfig } - ]); - static fromBinary(bytes, options) { - return new _ParamsConfig().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ParamsConfig().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ParamsConfig().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ParamsConfig, a, b); - } - }; - var ProfileModeConfig = class _ProfileModeConfig extends Message { - /** - * @generated from field: bool enabled = 1; - */ - enabled = false; - /** - * @generated from field: string title = 2; - */ - title = ""; - /** - * @generated from field: string image_url = 3; - */ - imageUrl = ""; - /** - * @generated from field: string image_title = 4; - */ - imageTitle = ""; - /** - * @generated from field: repeated content.ButtonConfig buttons = 5; - */ - buttons = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.ProfileModeConfig"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "enabled", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 2, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "image_url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 4, - name: "image_title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 5, name: "buttons", kind: "message", T: ButtonConfig, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _ProfileModeConfig().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ProfileModeConfig().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ProfileModeConfig().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ProfileModeConfig, a, b); - } - }; - var ButtonConfig = class _ButtonConfig extends Message { - /** - * @generated from field: string name = 1; - */ - name = ""; - /** - * @generated from field: string url = 2; - */ - url = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.ButtonConfig"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _ButtonConfig().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ButtonConfig().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ButtonConfig().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ButtonConfig, a, b); - } - }; - var HomeInfoParamsConfig = class _HomeInfoParamsConfig extends Message { - /** - * @generated from field: string title = 1; - */ - title = ""; - /** - * @generated from field: string content = 2; - */ - content = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.HomeInfoParamsConfig"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "content", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _HomeInfoParamsConfig().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _HomeInfoParamsConfig().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _HomeInfoParamsConfig().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_HomeInfoParamsConfig, a, b); - } - }; - var SocialIconConfig = class _SocialIconConfig extends Message { - /** - * @generated from field: string name = 1; - */ - name = ""; - /** - * @generated from field: string title = 2; - */ - title = ""; - /** - * @generated from field: string url = 3; - */ - url = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.SocialIconConfig"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _SocialIconConfig().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _SocialIconConfig().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _SocialIconConfig().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_SocialIconConfig, a, b); - } - }; - var EditPostConfig = class _EditPostConfig extends Message { - /** - * @generated from field: string url = 1; - */ - url = ""; - /** - * @generated from field: string text = 2; - */ - text = ""; - /** - * @generated from field: bool append_file_path = 3; - */ - appendFilePath = false; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.EditPostConfig"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "url", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "append_file_path", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - } - ]); - static fromBinary(bytes, options) { - return new _EditPostConfig().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _EditPostConfig().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _EditPostConfig().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_EditPostConfig, a, b); - } - }; - var AssetsConfig = class _AssetsConfig extends Message { - /** - * @generated from field: bool disable_hljs = 1; - */ - disableHljs = false; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "content.AssetsConfig"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "disable_hljs", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - } - ]); - static fromBinary(bytes, options) { - return new _AssetsConfig().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _AssetsConfig().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _AssetsConfig().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_AssetsConfig, a, b); - } - }; - - // rpc/protoflow_pb.ts - var AnalyzeConversationRequest2 = class _AnalyzeConversationRequest extends Message { - /** - * @generated from field: string text = 1; - */ - text = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.AnalyzeConversationRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _AnalyzeConversationRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _AnalyzeConversationRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _AnalyzeConversationRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_AnalyzeConversationRequest, a, b); - } - }; - var GenerateImagesRequest = class _GenerateImagesRequest extends Message { - /** - * @generated from field: string prompt = 1; - */ - prompt = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.GenerateImagesRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "prompt", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _GenerateImagesRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GenerateImagesRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GenerateImagesRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GenerateImagesRequest, a, b); - } - }; - var GenerateImagesResponse = class _GenerateImagesResponse extends Message { - /** - * @generated from field: repeated string images = 1; - */ - images = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.GenerateImagesResponse"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "images", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _GenerateImagesResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GenerateImagesResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GenerateImagesResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GenerateImagesResponse, a, b); - } - }; - var DeleteSessionRequest = class _DeleteSessionRequest extends Message { - /** - * @generated from field: string id = 1; - */ - id = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.DeleteSessionRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _DeleteSessionRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _DeleteSessionRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _DeleteSessionRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_DeleteSessionRequest, a, b); - } - }; - var Prompt = class _Prompt extends Message { - /** - * @generated from field: string id = 1; - */ - id = ""; - /** - * @generated from field: string text = 2; - */ - text = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.Prompt"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Prompt().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Prompt().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Prompt().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Prompt, a, b); - } - }; - var GetPromptsRequest = class _GetPromptsRequest extends Message { - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.GetPromptsRequest"; - static fields = proto3.util.newFieldList(() => []); - static fromBinary(bytes, options) { - return new _GetPromptsRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GetPromptsRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GetPromptsRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GetPromptsRequest, a, b); - } - }; - var GetPromptsResponse = class _GetPromptsResponse extends Message { - /** - * @generated from field: repeated protoflow.Prompt prompts = 1; - */ - prompts = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.GetPromptsResponse"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "prompts", kind: "message", T: Prompt, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _GetPromptsResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GetPromptsResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GetPromptsResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GetPromptsResponse, a, b); - } - }; - var InferRequest = class _InferRequest extends Message { - /** - * @generated from field: string prompt = 1; - */ - prompt = ""; - /** - * @generated from field: repeated string text = 2; - */ - text = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.InferRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "prompt", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 2, name: "text", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _InferRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _InferRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _InferRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_InferRequest, a, b); - } - }; - var InferResponse = class _InferResponse extends Message { - /** - * @generated from field: string text = 1; - */ - text = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.InferResponse"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _InferResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _InferResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _InferResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_InferResponse, a, b); - } - }; - var UploadContentRequest = class _UploadContentRequest extends Message { - /** - * @generated from field: content.Content content = 1; - */ - content; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.UploadContentRequest"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "content", kind: "message", T: Content } - ]); - static fromBinary(bytes, options) { - return new _UploadContentRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _UploadContentRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _UploadContentRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_UploadContentRequest, a, b); - } - }; - var UploadContentResponse = class _UploadContentResponse extends Message { - /** - * @generated from field: string id = 1; - */ - id = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.UploadContentResponse"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _UploadContentResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _UploadContentResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _UploadContentResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_UploadContentResponse, a, b); - } - }; - var GetSessionRequest = class _GetSessionRequest extends Message { - /** - * @generated from field: string id = 1; - */ - id = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.GetSessionRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _GetSessionRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GetSessionRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GetSessionRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GetSessionRequest, a, b); - } - }; - var GetSessionResponse = class _GetSessionResponse extends Message { - /** - * @generated from field: protoflow.Session session = 1; - */ - session; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.GetSessionResponse"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "session", kind: "message", T: Session } - ]); - static fromBinary(bytes, options) { - return new _GetSessionResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GetSessionResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GetSessionResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GetSessionResponse, a, b); - } - }; - var GetSessionsRequest = class _GetSessionsRequest extends Message { - /** - * @generated from field: uint64 page = 1; - */ - page = protoInt64.zero; - /** - * @generated from field: uint64 limit = 2; - */ - limit = protoInt64.zero; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.GetSessionsRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "page", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - }, - { - no: 2, - name: "limit", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - } - ]); - static fromBinary(bytes, options) { - return new _GetSessionsRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GetSessionsRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GetSessionsRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GetSessionsRequest, a, b); - } - }; - var GetSessionsResponse = class _GetSessionsResponse extends Message { - /** - * @generated from field: repeated protoflow.Session sessions = 1; - */ - sessions = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.GetSessionsResponse"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "sessions", kind: "message", T: Session, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _GetSessionsResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _GetSessionsResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _GetSessionsResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_GetSessionsResponse, a, b); - } - }; - var Token2 = class _Token extends Message { - /** - * @generated from field: uint32 id = 1; - */ - id = 0; - /** - * @generated from field: uint64 start_time = 2; - */ - startTime = protoInt64.zero; - /** - * @generated from field: uint64 end_time = 3; - */ - endTime = protoInt64.zero; - /** - * @generated from field: string text = 4; - */ - text = ""; - /** - * @generated from field: string p = 5; - */ - p = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.Token"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 13 - /* ScalarType.UINT32 */ - }, - { - no: 2, - name: "start_time", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - }, - { - no: 3, - name: "end_time", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - }, - { - no: 4, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 5, - name: "p", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Token().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Token().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Token().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Token, a, b); - } - }; - var Segment2 = class _Segment extends Message { - /** - * @generated from field: uint32 num = 1; - */ - num = 0; - /** - * @generated from field: repeated protoflow.Token tokens = 2; - */ - tokens = []; - /** - * @generated from field: string text = 3; - */ - text = ""; - /** - * @generated from field: uint64 start_time = 4; - */ - startTime = protoInt64.zero; - /** - * @generated from field: uint64 end_time = 5; - */ - endTime = protoInt64.zero; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.Segment"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "num", - kind: "scalar", - T: 13 - /* ScalarType.UINT32 */ - }, - { no: 2, name: "tokens", kind: "message", T: Token2, repeated: true }, - { - no: 3, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 4, - name: "start_time", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - }, - { - no: 5, - name: "end_time", - kind: "scalar", - T: 4 - /* ScalarType.UINT64 */ - } - ]); - static fromBinary(bytes, options) { - return new _Segment().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Segment().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Segment().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Segment, a, b); - } - }; - var Session = class _Session extends Message { - /** - * @generated from field: string id = 1; - */ - id = ""; - /** - * @generated from field: string name = 2; - */ - name = ""; - /** - * @generated from field: repeated protoflow.Segment segments = 3; - */ - segments = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.Session"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "name", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 3, name: "segments", kind: "message", T: Segment2, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _Session().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Session().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Session().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Session, a, b); - } - }; - var TranscriptionRequest = class _TranscriptionRequest extends Message { - /** - * @generated from field: string file_path = 14; - */ - filePath = ""; - /** - * Path to the model file - * - * @generated from field: string model = 1; - */ - model = ""; - /** - * Spoken language - * - * @generated from field: string language = 2; - */ - language = ""; - /** - * Translate from source language to English - * - * @generated from field: bool translate = 3; - */ - translate = false; - /** - * Time offset in nanoseconds to match Go's time.Duration - * - * @generated from field: int64 offset = 4; - */ - offset = protoInt64.zero; - /** - * Duration of audio to process in nanoseconds - * - * @generated from field: int64 duration = 5; - */ - duration = protoInt64.zero; - /** - * Number of threads to use - * - * @generated from field: uint32 threads = 6; - */ - threads = 0; - /** - * Enable speedup - * - * @generated from field: bool speedup = 7; - */ - speedup = false; - /** - * Maximum segment length in characters - * - * @generated from field: uint32 max_len = 8; - */ - maxLen = 0; - /** - * Maximum tokens per segment - * - * @generated from field: uint32 max_tokens = 9; - */ - maxTokens = 0; - /** - * Maximum segment score - * - * @generated from field: double word_threshold = 10; - */ - wordThreshold = 0; - /** - * Display tokens - * - * @generated from field: bool tokens = 11; - */ - tokens = false; - /** - * Colorize tokens - * - * @generated from field: bool colorize = 12; - */ - colorize = false; - /** - * Output format (srt, none or leave as empty string) - * - * @generated from field: string out = 13; - */ - out = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.TranscriptionRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 14, - name: "file_path", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 1, - name: "model", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "language", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "translate", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 4, - name: "offset", - kind: "scalar", - T: 3 - /* ScalarType.INT64 */ - }, - { - no: 5, - name: "duration", - kind: "scalar", - T: 3 - /* ScalarType.INT64 */ - }, - { - no: 6, - name: "threads", - kind: "scalar", - T: 13 - /* ScalarType.UINT32 */ - }, - { - no: 7, - name: "speedup", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 8, - name: "max_len", - kind: "scalar", - T: 13 - /* ScalarType.UINT32 */ - }, - { - no: 9, - name: "max_tokens", - kind: "scalar", - T: 13 - /* ScalarType.UINT32 */ - }, - { - no: 10, - name: "word_threshold", - kind: "scalar", - T: 1 - /* ScalarType.DOUBLE */ - }, - { - no: 11, - name: "tokens", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 12, - name: "colorize", - kind: "scalar", - T: 8 - /* ScalarType.BOOL */ - }, - { - no: 13, - name: "out", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _TranscriptionRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _TranscriptionRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _TranscriptionRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_TranscriptionRequest, a, b); - } - }; - var RegisterFlags = class _RegisterFlags extends Message { - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.RegisterFlags"; - static fields = proto3.util.newFieldList(() => []); - static fromBinary(bytes, options) { - return new _RegisterFlags().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _RegisterFlags().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _RegisterFlags().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_RegisterFlags, a, b); - } - }; - var OCRText = class _OCRText extends Message { - /** - * @generated from field: string text = 1; - */ - text = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.OCRText"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _OCRText().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _OCRText().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _OCRText().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_OCRText, a, b); - } - }; - var Image = class _Image extends Message { - /** - * @generated from field: bytes image = 1; - */ - image = new Uint8Array(0); - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.Image"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "image", - kind: "scalar", - T: 12 - /* ScalarType.BYTES */ - } - ]); - static fromBinary(bytes, options) { - return new _Image().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Image().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Image().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Image, a, b); - } - }; - var ConvertFileRequest = class _ConvertFileRequest extends Message { - /** - * @generated from field: string from = 1; - */ - from = ""; - /** - * @generated from field: string to = 2; - */ - to = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.ConvertFileRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "from", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "to", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _ConvertFileRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ConvertFileRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ConvertFileRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ConvertFileRequest, a, b); - } - }; - var ChatRequest = class _ChatRequest extends Message { - /** - * @generated from field: int32 capture_device = 1; - */ - captureDevice = 0; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.ChatRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "capture_device", - kind: "scalar", - T: 5 - /* ScalarType.INT32 */ - } - ]); - static fromBinary(bytes, options) { - return new _ChatRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ChatRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ChatRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ChatRequest, a, b); - } - }; - var ChatResponse = class _ChatResponse extends Message { - /** - * @generated from field: protoflow.Segment segment = 1; - */ - segment; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.ChatResponse"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "segment", kind: "message", T: Segment2 } - ]); - static fromBinary(bytes, options) { - return new _ChatResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ChatResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ChatResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ChatResponse, a, b); - } - }; - var YouTubeVideo = class _YouTubeVideo extends Message { - /** - * @generated from field: string id = 1; - */ - id = ""; - /** - * @generated from field: string file = 2; - */ - file = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.YouTubeVideo"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "id", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "file", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _YouTubeVideo().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _YouTubeVideo().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _YouTubeVideo().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_YouTubeVideo, a, b); - } - }; - var FilePath = class _FilePath extends Message { - /** - * @generated from field: string file = 1; - */ - file = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.FilePath"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "file", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _FilePath().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _FilePath().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _FilePath().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_FilePath, a, b); - } - }; - var YouTubeVideoResponse = class _YouTubeVideoResponse extends Message { - /** - * @generated from field: string title = 1; - */ - title = ""; - /** - * @generated from field: protoflow.FilePath file_path = 2; - */ - filePath; - /** - * @generated from field: repeated content.Segment transcript = 3; - */ - transcript = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "protoflow.YouTubeVideoResponse"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "title", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 2, name: "file_path", kind: "message", T: FilePath }, - { no: 3, name: "transcript", kind: "message", T: Segment, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _YouTubeVideoResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _YouTubeVideoResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _YouTubeVideoResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_YouTubeVideoResponse, a, b); - } - }; - - // rpc/ai_pb.ts - var AnalyzeConversationResponse = class _AnalyzeConversationResponse extends Message { - /** - * Phone numbers of the participants - * - * @generated from field: repeated string phone_numbers = 1; - */ - phoneNumbers = []; - /** - * The summary of the conversation - * - * @generated from field: string summary = 2; - */ - summary = ""; - /** - * Based on the content of the conversation, the system will generate a list of questions - * - * @generated from field: repeated string questions = 3; - */ - questions = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "ai.AnalyzeConversationResponse"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "phone_numbers", kind: "scalar", T: 9, repeated: true }, - { - no: 2, - name: "summary", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { no: 3, name: "questions", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _AnalyzeConversationResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _AnalyzeConversationResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _AnalyzeConversationResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_AnalyzeConversationResponse, a, b); - } - }; - var AnalyzeContent = class _AnalyzeContent extends Message { - /** - * Potential categories for the content in the form: category/subcategory/other-category. The category is all lowercase and spaces are replaced with dashes. - * - * @generated from field: repeated string categories = 1; - */ - categories = []; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "ai.AnalyzeContent"; - static fields = proto3.util.newFieldList(() => [ - { no: 1, name: "categories", kind: "scalar", T: 9, repeated: true } - ]); - static fromBinary(bytes, options) { - return new _AnalyzeContent().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _AnalyzeContent().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _AnalyzeContent().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_AnalyzeContent, a, b); - } - }; - - // rpc/protoflow_connect.ts - var ProtoflowService = { - typeName: "protoflow.ProtoflowService", - methods: { - /** - * @generated from rpc protoflow.ProtoflowService.DownloadYouTubeVideo - */ - downloadYouTubeVideo: { - name: "DownloadYouTubeVideo", - I: YouTubeVideo, - O: YouTubeVideoResponse, - kind: MethodKind.Unary - }, - /** - * @generated from rpc protoflow.ProtoflowService.GetSessions - */ - getSessions: { - name: "GetSessions", - I: GetSessionsRequest, - O: GetSessionsResponse, - kind: MethodKind.Unary - }, - /** - * @generated from rpc protoflow.ProtoflowService.GetSession - */ - getSession: { - name: "GetSession", - I: GetSessionRequest, - O: GetSessionResponse, - kind: MethodKind.Unary - }, - /** - * @generated from rpc protoflow.ProtoflowService.DeleteSession - */ - deleteSession: { - name: "DeleteSession", - I: DeleteSessionRequest, - O: Empty, - kind: MethodKind.Unary - }, - /** - * @generated from rpc protoflow.ProtoflowService.GetPrompts - */ - getPrompts: { - name: "GetPrompts", - I: GetPromptsRequest, - O: GetPromptsResponse, - kind: MethodKind.Unary - }, - /** - * @generated from rpc protoflow.ProtoflowService.NewPrompt - */ - newPrompt: { - name: "NewPrompt", - I: Prompt, - O: Prompt, - kind: MethodKind.Unary - }, - /** - * @generated from rpc protoflow.ProtoflowService.UploadContent - */ - uploadContent: { - name: "UploadContent", - I: UploadContentRequest, - O: ChatResponse, - kind: MethodKind.ServerStreaming - }, - /** - * @generated from rpc protoflow.ProtoflowService.Infer - */ - infer: { - name: "Infer", - I: InferRequest, - O: InferResponse, - kind: MethodKind.ServerStreaming - }, - /** - * @generated from rpc protoflow.ProtoflowService.Chat - */ - chat: { - name: "Chat", - I: ChatRequest, - O: ChatResponse, - kind: MethodKind.ServerStreaming - }, - /** - * @generated from rpc protoflow.ProtoflowService.ConvertFile - */ - convertFile: { - name: "ConvertFile", - I: ConvertFileRequest, - O: FilePath, - kind: MethodKind.Unary - }, - /** - * @generated from rpc protoflow.ProtoflowService.GenerateImages - */ - generateImages: { - name: "GenerateImages", - I: GenerateImagesRequest, - O: GenerateImagesResponse, - kind: MethodKind.Unary - }, - /** - * @generated from rpc protoflow.ProtoflowService.AnalyzeConversation - */ - analyzeConversation: { - name: "AnalyzeConversation", - I: AnalyzeConversationRequest2, - O: AnalyzeConversationResponse, - kind: MethodKind.Unary - } - } - }; - - // rpc/content/content_connect.ts - var ContentService = { - typeName: "content.ContentService", - methods: { - /** - * @generated from rpc content.ContentService.Save - */ - save: { - name: "Save", - I: Contents, - O: ContentIDs, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.Search - */ - search: { - name: "Search", - I: Query, - O: Results, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.Relate - */ - relate: { - name: "Relate", - I: RelateRequest, - O: Empty, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.Analyze - */ - analyze: { - name: "Analyze", - I: Content, - O: Contents, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.Delete - */ - delete: { - name: "Delete", - I: ContentIDs, - O: ContentIDs, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.GetTags - */ - getTags: { - name: "GetTags", - I: TagRequest, - O: Tags, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.SetTags - */ - setTags: { - name: "SetTags", - I: SetTagsRequest, - O: Empty, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.Publish - */ - publish: { - name: "Publish", - I: ContentIDs, - O: ContentIDs, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.GetSources - */ - getSources: { - name: "GetSources", - I: Empty, - O: Sources, - kind: MethodKind.Unary - }, - /** - * @generated from rpc content.ContentService.Types - */ - types: { - name: "Types", - I: Empty, - O: GRPCTypeInfo, - kind: MethodKind.Unary - } - } - }; - - // rpc/user/user_connect.ts - var UserService = { - typeName: "user.UserService", - methods: { - /** - * @generated from rpc user.UserService.Register - */ - register: { - name: "Register", - I: User, - O: User, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.Login - */ - login: { - name: "Login", - I: User, - O: User, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.Logout - */ - logout: { - name: "Logout", - I: Empty, - O: Empty, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.ResetPassword - */ - resetPassword: { - name: "ResetPassword", - I: User, - O: Empty, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.VerifyUser - */ - verifyUser: { - name: "VerifyUser", - I: VerifyUserRequest, - O: Empty, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.UpdateConfig - */ - updateConfig: { - name: "UpdateConfig", - I: Config, - O: Empty, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.CreateGroupInvite - */ - createGroupInvite: { - name: "CreateGroupInvite", - I: GroupID, - O: GroupInvite, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.JoinGroup - */ - joinGroup: { - name: "JoinGroup", - I: GroupInvite, - O: Group, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.GroupInfo - */ - groupInfo: { - name: "GroupInfo", - I: GroupInfoRequest, - O: Group, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.CreateGroup - */ - createGroup: { - name: "CreateGroup", - I: Group, - O: Group, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.GetGroups - */ - getGroups: { - name: "GetGroups", - I: Empty, - O: Groups, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.DeleteGroup - */ - deleteGroup: { - name: "DeleteGroup", - I: Group, - O: Empty, - kind: MethodKind.Unary - }, - /** - * @generated from rpc user.UserService.Share - */ - share: { - name: "Share", - I: ShareRequest, - O: Empty, - kind: MethodKind.Unary - } - } - }; - - // rpc/chat/chat_pb.ts - var BanUserRequest = class _BanUserRequest extends Message { - /** - * @generated from field: string user = 1; - */ - user = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "chat.BanUserRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "user", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _BanUserRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _BanUserRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _BanUserRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_BanUserRequest, a, b); - } - }; - var BanUserResponse = class _BanUserResponse extends Message { - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "chat.BanUserResponse"; - static fields = proto3.util.newFieldList(() => []); - static fromBinary(bytes, options) { - return new _BanUserResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _BanUserResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _BanUserResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_BanUserResponse, a, b); - } - }; - var SendMessageRequest = class _SendMessageRequest extends Message { - /** - * @generated from field: string user = 1; - */ - user = ""; - /** - * @generated from field: string message = 2; - */ - message = ""; - /** - * @generated from field: string css = 3; - */ - css = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "chat.SendMessageRequest"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "user", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "message", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "css", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _SendMessageRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _SendMessageRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _SendMessageRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_SendMessageRequest, a, b); - } - }; - var SendMessageResponse = class _SendMessageResponse extends Message { - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "chat.SendMessageResponse"; - static fields = proto3.util.newFieldList(() => []); - static fromBinary(bytes, options) { - return new _SendMessageResponse().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _SendMessageResponse().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _SendMessageResponse().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_SendMessageResponse, a, b); - } - }; - var ReceiveMessagesRequest = class _ReceiveMessagesRequest extends Message { - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "chat.ReceiveMessagesRequest"; - static fields = proto3.util.newFieldList(() => []); - static fromBinary(bytes, options) { - return new _ReceiveMessagesRequest().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _ReceiveMessagesRequest().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _ReceiveMessagesRequest().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_ReceiveMessagesRequest, a, b); - } - }; - var Message2 = class _Message extends Message { - /** - * @generated from field: string user = 1; - */ - user = ""; - /** - * @generated from field: string text = 2; - */ - text = ""; - /** - * @generated from field: int64 timestamp = 3; - */ - timestamp = protoInt64.zero; - /** - * @generated from field: string css = 4; - */ - css = ""; - constructor(data) { - super(); - proto3.util.initPartial(data, this); - } - static runtime = proto3; - static typeName = "chat.Message"; - static fields = proto3.util.newFieldList(() => [ - { - no: 1, - name: "user", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 2, - name: "text", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - }, - { - no: 3, - name: "timestamp", - kind: "scalar", - T: 3 - /* ScalarType.INT64 */ - }, - { - no: 4, - name: "css", - kind: "scalar", - T: 9 - /* ScalarType.STRING */ - } - ]); - static fromBinary(bytes, options) { - return new _Message().fromBinary(bytes, options); - } - static fromJson(jsonValue, options) { - return new _Message().fromJson(jsonValue, options); - } - static fromJsonString(jsonString, options) { - return new _Message().fromJsonString(jsonString, options); - } - static equals(a, b) { - return proto3.util.equals(_Message, a, b); - } - }; - - // rpc/chat/chat_connect.ts - var ChatService = { - typeName: "chat.ChatService", - methods: { - /** - * @generated from rpc chat.ChatService.SendMessage - */ - sendMessage: { - name: "SendMessage", - I: SendMessageRequest, - O: SendMessageResponse, - kind: MethodKind.Unary - }, - /** - * @generated from rpc chat.ChatService.ReceiveMessages - */ - receiveMessages: { - name: "ReceiveMessages", - I: ReceiveMessagesRequest, - O: Message2, - kind: MethodKind.ServerStreaming - }, - /** - * @generated from rpc chat.ChatService.BanUser - */ - banUser: { - name: "BanUser", - I: BanUserRequest, - O: BanUserResponse, - kind: MethodKind.Unary - } - } - }; - - // ../node_modules/@connectrpc/connect/dist/esm/code.js - var Code; - (function(Code2) { - Code2[Code2["Canceled"] = 1] = "Canceled"; - Code2[Code2["Unknown"] = 2] = "Unknown"; - Code2[Code2["InvalidArgument"] = 3] = "InvalidArgument"; - Code2[Code2["DeadlineExceeded"] = 4] = "DeadlineExceeded"; - Code2[Code2["NotFound"] = 5] = "NotFound"; - Code2[Code2["AlreadyExists"] = 6] = "AlreadyExists"; - Code2[Code2["PermissionDenied"] = 7] = "PermissionDenied"; - Code2[Code2["ResourceExhausted"] = 8] = "ResourceExhausted"; - Code2[Code2["FailedPrecondition"] = 9] = "FailedPrecondition"; - Code2[Code2["Aborted"] = 10] = "Aborted"; - Code2[Code2["OutOfRange"] = 11] = "OutOfRange"; - Code2[Code2["Unimplemented"] = 12] = "Unimplemented"; - Code2[Code2["Internal"] = 13] = "Internal"; - Code2[Code2["Unavailable"] = 14] = "Unavailable"; - Code2[Code2["DataLoss"] = 15] = "DataLoss"; - Code2[Code2["Unauthenticated"] = 16] = "Unauthenticated"; - })(Code || (Code = {})); - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js - function codeToString(value) { - const name = Code[value]; - if (typeof name != "string") { - return value.toString(); - } - return name[0].toLowerCase() + name.substring(1).replace(/[A-Z]/g, (c) => "_" + c.toLowerCase()); - } - var stringToCode; - function codeFromString(value) { - if (!stringToCode) { - stringToCode = {}; - for (const value2 of Object.values(Code)) { - if (typeof value2 == "string") { - continue; - } - stringToCode[codeToString(value2)] = value2; - } - } - return stringToCode[value]; - } - - // ../node_modules/@connectrpc/connect/dist/esm/connect-error.js - var ConnectError = class _ConnectError extends Error { - /** - * Create a new ConnectError. - * If no code is provided, code "unknown" is used. - * Outgoing details are only relevant for the server side - a service may - * raise an error with details, and it is up to the protocol implementation - * to encode and send the details along with error. - */ - constructor(message, code = Code.Unknown, metadata, outgoingDetails, cause) { - super(createMessage(message, code)); - this.name = "ConnectError"; - Object.setPrototypeOf(this, new.target.prototype); - this.rawMessage = message; - this.code = code; - this.metadata = new Headers(metadata !== null && metadata !== void 0 ? metadata : {}); - this.details = outgoingDetails !== null && outgoingDetails !== void 0 ? outgoingDetails : []; - this.cause = cause; - } - /** - * Convert any value - typically a caught error into a ConnectError, - * following these rules: - * - If the value is already a ConnectError, return it as is. - * - If the value is an AbortError from the fetch API, return the message - * of the AbortError with code Canceled. - * - For other Errors, return the error message with code Unknown by default. - * - For other values, return the values String representation as a message, - * with the code Unknown by default. - * The original value will be used for the "cause" property for the new - * ConnectError. - */ - static from(reason, code = Code.Unknown) { - if (reason instanceof _ConnectError) { - return reason; - } - if (reason instanceof Error) { - if (reason.name == "AbortError") { - return new _ConnectError(reason.message, Code.Canceled); - } - return new _ConnectError(reason.message, code, void 0, void 0, reason); - } - return new _ConnectError(String(reason), code, void 0, void 0, reason); - } - static [Symbol.hasInstance](v) { - if (!(v instanceof Error)) { - return false; - } - if (Object.getPrototypeOf(v) === _ConnectError.prototype) { - return true; - } - return v.name === "ConnectError" && "code" in v && typeof v.code === "number" && "metadata" in v && "details" in v && Array.isArray(v.details) && "rawMessage" in v && typeof v.rawMessage == "string" && "cause" in v; - } - findDetails(typeOrRegistry) { - const registry = "typeName" in typeOrRegistry ? { - findMessage: (typeName) => typeName === typeOrRegistry.typeName ? typeOrRegistry : void 0 - } : typeOrRegistry; - const details = []; - for (const data of this.details) { - if (data instanceof Message) { - if (registry.findMessage(data.getType().typeName)) { - details.push(data); - } - continue; - } - const type = registry.findMessage(data.type); - if (type) { - try { - details.push(type.fromBinary(data.value)); - } catch (_) { - } - } - } - return details; - } - }; - function createMessage(message, code) { - return message.length ? `[${codeToString(code)}] ${message}` : `[${codeToString(code)}]`; - } - - // ../node_modules/@connectrpc/connect/dist/esm/http-headers.js - function appendHeaders(...headers) { - const h = new Headers(); - for (const e of headers) { - e.forEach((value, key) => { - h.append(key, value); - }); - } - return h; - } - - // ../node_modules/@connectrpc/connect/dist/esm/any-client.js - function makeAnyClient(service, createMethod) { - const client = {}; - for (const [localName, methodInfo] of Object.entries(service.methods)) { - const method = createMethod(Object.assign(Object.assign({}, methodInfo), { - localName, - service - })); - if (method != null) { - client[localName] = method; - } - } - return client; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js - function createEnvelopeReadableStream(stream) { - let reader; - let buffer = new Uint8Array(0); - function append(chunk) { - const n = new Uint8Array(buffer.length + chunk.length); - n.set(buffer); - n.set(chunk, buffer.length); - buffer = n; - } - return new ReadableStream({ - start() { - reader = stream.getReader(); - }, - async pull(controller) { - let header = void 0; - for (; ; ) { - if (header === void 0 && buffer.byteLength >= 5) { - let length = 0; - for (let i = 1; i < 5; i++) { - length = (length << 8) + buffer[i]; - } - header = { flags: buffer[0], length }; - } - if (header !== void 0 && buffer.byteLength >= header.length + 5) { - break; - } - const result = await reader.read(); - if (result.done) { - break; - } - append(result.value); - } - if (header === void 0) { - if (buffer.byteLength == 0) { - controller.close(); - return; - } - controller.error(new ConnectError("premature end of stream", Code.DataLoss)); - return; - } - const data = buffer.subarray(5, 5 + header.length); - buffer = buffer.subarray(5 + header.length); - controller.enqueue({ - flags: header.flags, - data - }); - } - }); - } - function encodeEnvelope(flags, data) { - const bytes = new Uint8Array(data.length + 5); - bytes.set(data, 5); - const v = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); - v.setUint8(0, flags); - v.setUint32(1, data.length); - return bytes; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js - var __asyncValues = function(o) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { - return this; - }, i); - function verb(n) { - i[n] = o[n] && function(v) { - return new Promise(function(resolve, reject) { - v = o[n](v), settle(resolve, reject, v.done, v.value); - }); - }; - } - function settle(resolve, reject, d, v) { - Promise.resolve(v).then(function(v2) { - resolve({ value: v2, done: d }); - }, reject); - } - }; - var __await = function(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - var __asyncGenerator = function(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() { - return this; - }, i; - function awaitReturn(f) { - return function(v) { - return Promise.resolve(v).then(f, reject); - }; - } - function verb(n, f) { - if (g[n]) { - i[n] = function(v) { - return new Promise(function(a, b) { - q.push([n, v, a, b]) > 1 || resume(n, v); - }); - }; - if (f) - i[n] = f(i[n]); - } - } - function resume(n, v) { - try { - step(g[n](v)); - } catch (e) { - settle(q[0][3], e); - } - } - function step(r) { - r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); - } - function fulfill(value) { - resume("next", value); - } - function reject(value) { - resume("throw", value); - } - function settle(f, v) { - if (f(v), q.shift(), q.length) - resume(q[0][0], q[0][1]); - } - }; - var __asyncDelegator = function(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function(e) { - throw e; - }), verb("return"), i[Symbol.iterator] = function() { - return this; - }, i; - function verb(n, f) { - i[n] = o[n] ? function(v) { - return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; - } : f; - } - }; - function createAsyncIterable(items) { - return __asyncGenerator(this, arguments, function* createAsyncIterable_1() { - yield __await(yield* __asyncDelegator(__asyncValues(items))); - }); - } - - // ../node_modules/@connectrpc/connect/dist/esm/promise-client.js - var __asyncValues2 = function(o) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { - return this; - }, i); - function verb(n) { - i[n] = o[n] && function(v) { - return new Promise(function(resolve, reject) { - v = o[n](v), settle(resolve, reject, v.done, v.value); - }); - }; - } - function settle(resolve, reject, d, v) { - Promise.resolve(v).then(function(v2) { - resolve({ value: v2, done: d }); - }, reject); - } - }; - var __await2 = function(v) { - return this instanceof __await2 ? (this.v = v, this) : new __await2(v); - }; - var __asyncDelegator2 = function(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function(e) { - throw e; - }), verb("return"), i[Symbol.iterator] = function() { - return this; - }, i; - function verb(n, f) { - i[n] = o[n] ? function(v) { - return (p = !p) ? { value: __await2(o[n](v)), done: false } : f ? f(v) : v; - } : f; - } - }; - var __asyncGenerator2 = function(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() { - return this; - }, i; - function awaitReturn(f) { - return function(v) { - return Promise.resolve(v).then(f, reject); - }; - } - function verb(n, f) { - if (g[n]) { - i[n] = function(v) { - return new Promise(function(a, b) { - q.push([n, v, a, b]) > 1 || resume(n, v); - }); - }; - if (f) - i[n] = f(i[n]); - } - } - function resume(n, v) { - try { - step(g[n](v)); - } catch (e) { - settle(q[0][3], e); - } - } - function step(r) { - r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); - } - function fulfill(value) { - resume("next", value); - } - function reject(value) { - resume("throw", value); - } - function settle(f, v) { - if (f(v), q.shift(), q.length) - resume(q[0][0], q[0][1]); - } - }; - function createPromiseClient(service, transport2) { - return makeAnyClient(service, (method) => { - switch (method.kind) { - case MethodKind.Unary: - return createUnaryFn(transport2, service, method); - case MethodKind.ServerStreaming: - return createServerStreamingFn(transport2, service, method); - case MethodKind.ClientStreaming: - return createClientStreamingFn(transport2, service, method); - case MethodKind.BiDiStreaming: - return createBiDiStreamingFn(transport2, service, method); - default: - return null; - } - }); - } - function createUnaryFn(transport2, service, method) { - return async function(input, options) { - var _a, _b; - const response = await transport2.unary(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, input, options === null || options === void 0 ? void 0 : options.contextValues); - (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header); - (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer); - return response.message; - }; - } - function createServerStreamingFn(transport2, service, method) { - return function(input, options) { - return handleStreamResponse(transport2.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, createAsyncIterable([input]), options === null || options === void 0 ? void 0 : options.contextValues), options); - }; - } - function createClientStreamingFn(transport2, service, method) { - return async function(request, options) { - var _a, e_1, _b, _c; - var _d, _e; - const response = await transport2.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues); - (_d = options === null || options === void 0 ? void 0 : options.onHeader) === null || _d === void 0 ? void 0 : _d.call(options, response.header); - let singleMessage; - try { - for (var _f = true, _g = __asyncValues2(response.message), _h; _h = await _g.next(), _a = _h.done, !_a; _f = true) { - _c = _h.value; - _f = false; - const message = _c; - singleMessage = message; - } - } catch (e_1_1) { - e_1 = { error: e_1_1 }; - } finally { - try { - if (!_f && !_a && (_b = _g.return)) - await _b.call(_g); - } finally { - if (e_1) - throw e_1.error; - } - } - if (!singleMessage) { - throw new ConnectError("protocol error: missing response message", Code.Internal); - } - (_e = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _e === void 0 ? void 0 : _e.call(options, response.trailer); - return singleMessage; - }; - } - function createBiDiStreamingFn(transport2, service, method) { - return function(request, options) { - return handleStreamResponse(transport2.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues), options); - }; - } - function handleStreamResponse(stream, options) { - const it = function() { - var _a, _b; - return __asyncGenerator2(this, arguments, function* () { - const response = yield __await2(stream); - (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header); - yield __await2(yield* __asyncDelegator2(__asyncValues2(response.message))); - (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer); - }); - }()[Symbol.asyncIterator](); - return { - [Symbol.asyncIterator]: () => ({ - next: () => it.next() - }) - }; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol/signals.js - function createLinkedAbortController(...signals) { - const controller = new AbortController(); - const sa = signals.filter((s) => s !== void 0).concat(controller.signal); - for (const signal of sa) { - if (signal.aborted) { - onAbort.apply(signal); - break; - } - signal.addEventListener("abort", onAbort); - } - function onAbort() { - if (!controller.signal.aborted) { - controller.abort(getAbortSignalReason(this)); - } - for (const signal of sa) { - signal.removeEventListener("abort", onAbort); - } - } - return controller; - } - function createDeadlineSignal(timeoutMs) { - const controller = new AbortController(); - const listener = () => { - controller.abort(new ConnectError("the operation timed out", Code.DeadlineExceeded)); - }; - let timeoutId; - if (timeoutMs !== void 0) { - if (timeoutMs <= 0) - listener(); - else - timeoutId = setTimeout(listener, timeoutMs); - } - return { - signal: controller.signal, - cleanup: () => clearTimeout(timeoutId) - }; - } - function getAbortSignalReason(signal) { - if (!signal.aborted) { - return void 0; - } - if (signal.reason !== void 0) { - return signal.reason; - } - const e = new Error("This operation was aborted"); - e.name = "AbortError"; - return e; - } - - // ../node_modules/@connectrpc/connect/dist/esm/context-values.js - function createContextValues() { - return { - get(key) { - return key.id in this ? this[key.id] : key.defaultValue; - }, - set(key, value) { - this[key.id] = value; - return this; - }, - delete(key) { - delete this[key.id]; - return this; - } - }; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js - function createMethodUrl(baseUrl, service, method) { - const s = typeof service == "string" ? service : service.typeName; - const m = typeof method == "string" ? method : method.name; - return baseUrl.toString().replace(/\/?$/, `/${s}/${m}`); - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js - function normalize(type, message) { - return message instanceof type ? message : new type(message); - } - function normalizeIterable(messageType, input) { - function transform(result) { - if (result.done === true) { - return result; - } - return { - done: result.done, - value: normalize(messageType, result.value) - }; - } - return { - [Symbol.asyncIterator]() { - const it = input[Symbol.asyncIterator](); - const res = { - next: () => it.next().then(transform) - }; - if (it.throw !== void 0) { - res.throw = (e) => it.throw(e).then(transform); - } - if (it.return !== void 0) { - res.return = (v) => it.return(v).then(transform); - } - return res; - } - }; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js - function getJsonOptions(options) { - var _a; - const o = Object.assign({}, options); - (_a = o.ignoreUnknownFields) !== null && _a !== void 0 ? _a : o.ignoreUnknownFields = true; - return o; - } - function createClientMethodSerializers(method, useBinaryFormat, jsonOptions, binaryOptions) { - const input = useBinaryFormat ? createBinarySerialization(method.I, binaryOptions) : createJsonSerialization(method.I, jsonOptions); - const output = useBinaryFormat ? createBinarySerialization(method.O, binaryOptions) : createJsonSerialization(method.O, jsonOptions); - return { parse: output.parse, serialize: input.serialize }; - } - function createBinarySerialization(messageType, options) { - return { - parse(data) { - try { - return messageType.fromBinary(data, options); - } catch (e) { - const m = e instanceof Error ? e.message : String(e); - throw new ConnectError(`parse binary: ${m}`, Code.InvalidArgument); - } - }, - serialize(data) { - try { - return data.toBinary(options); - } catch (e) { - const m = e instanceof Error ? e.message : String(e); - throw new ConnectError(`serialize binary: ${m}`, Code.Internal); - } - } - }; - } - function createJsonSerialization(messageType, options) { - var _a, _b; - const textEncoder = (_a = options === null || options === void 0 ? void 0 : options.textEncoder) !== null && _a !== void 0 ? _a : new TextEncoder(); - const textDecoder = (_b = options === null || options === void 0 ? void 0 : options.textDecoder) !== null && _b !== void 0 ? _b : new TextDecoder(); - const o = getJsonOptions(options); - return { - parse(data) { - try { - const json = textDecoder.decode(data); - return messageType.fromJsonString(json, o); - } catch (e) { - throw ConnectError.from(e, Code.InvalidArgument); - } - }, - serialize(data) { - try { - const json = data.toJsonString(o); - return textEncoder.encode(json); - } catch (e) { - throw ConnectError.from(e, Code.Internal); - } - } - }; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js - var contentTypeRegExp = /^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i; - var contentTypeUnaryProto = "application/proto"; - var contentTypeUnaryJson = "application/json"; - var contentTypeStreamProto = "application/connect+proto"; - var contentTypeStreamJson = "application/connect+json"; - function parseContentType(contentType) { - const match = contentType === null || contentType === void 0 ? void 0 : contentType.match(contentTypeRegExp); - if (!match) { - return void 0; - } - const stream = !!match[1]; - const binary = !!match[3]; - return { stream, binary }; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js - function errorFromJson(jsonValue, metadata, fallback2) { - if (metadata) { - new Headers(metadata).forEach((value, key) => fallback2.metadata.append(key, value)); - } - if (typeof jsonValue !== "object" || jsonValue == null || Array.isArray(jsonValue) || !("code" in jsonValue) || typeof jsonValue.code !== "string") { - throw fallback2; - } - const code = codeFromString(jsonValue.code); - if (code === void 0) { - throw fallback2; - } - const message = jsonValue.message; - if (message != null && typeof message !== "string") { - throw fallback2; - } - const error = new ConnectError(message !== null && message !== void 0 ? message : "", code, metadata); - if ("details" in jsonValue && Array.isArray(jsonValue.details)) { - for (const detail of jsonValue.details) { - if (detail === null || typeof detail != "object" || Array.isArray(detail) || typeof detail.type != "string" || typeof detail.value != "string" || "debug" in detail && typeof detail.debug != "object") { - throw fallback2; - } - try { - error.details.push({ - type: detail.type, - value: protoBase64.dec(detail.value), - debug: detail.debug - }); - } catch (e) { - throw fallback2; - } - } - } - return error; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js - var endStreamFlag = 2; - function endStreamFromJson(data) { - const parseErr = new ConnectError("invalid end stream", Code.InvalidArgument); - let jsonValue; - try { - jsonValue = JSON.parse(typeof data == "string" ? data : new TextDecoder().decode(data)); - } catch (e) { - throw parseErr; - } - if (typeof jsonValue != "object" || jsonValue == null || Array.isArray(jsonValue)) { - throw parseErr; - } - const metadata = new Headers(); - if ("metadata" in jsonValue) { - if (typeof jsonValue.metadata != "object" || jsonValue.metadata == null || Array.isArray(jsonValue.metadata)) { - throw parseErr; - } - for (const [key, values] of Object.entries(jsonValue.metadata)) { - if (!Array.isArray(values) || values.some((value) => typeof value != "string")) { - throw parseErr; - } - for (const value of values) { - metadata.append(key, value); - } - } - } - const error = "error" in jsonValue ? errorFromJson(jsonValue.error, metadata, parseErr) : void 0; - return { metadata, error }; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js - var headerContentType = "Content-Type"; - var headerUnaryContentLength = "Content-Length"; - var headerUnaryEncoding = "Content-Encoding"; - var headerUnaryAcceptEncoding = "Accept-Encoding"; - var headerTimeout = "Connect-Timeout-Ms"; - var headerProtocolVersion = "Connect-Protocol-Version"; - var headerUserAgent = "User-Agent"; - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js - function codeFromHttpStatus(httpStatus) { - switch (httpStatus) { - case 400: - return Code.InvalidArgument; - case 401: - return Code.Unauthenticated; - case 403: - return Code.PermissionDenied; - case 404: - return Code.Unimplemented; - case 408: - return Code.DeadlineExceeded; - case 409: - return Code.Aborted; - case 412: - return Code.FailedPrecondition; - case 413: - return Code.ResourceExhausted; - case 415: - return Code.Internal; - case 429: - return Code.Unavailable; - case 431: - return Code.ResourceExhausted; - case 502: - return Code.Unavailable; - case 503: - return Code.Unavailable; - case 504: - return Code.Unavailable; - default: - return Code.Unknown; - } - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js - function trailerDemux(header) { - const h = new Headers(), t = new Headers(); - header.forEach((value, key) => { - if (key.toLowerCase().startsWith("trailer-")) { - t.set(key.substring(8), value); - } else { - h.set(key, value); - } - }); - return [h, t]; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js - var protocolVersion = "1"; - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js - function requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) { - const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {}); - if (timeoutMs !== void 0) { - result.set(headerTimeout, `${timeoutMs}`); - } - result.set(headerContentType, methodKind == MethodKind.Unary ? useBinaryFormat ? contentTypeUnaryProto : contentTypeUnaryJson : useBinaryFormat ? contentTypeStreamProto : contentTypeStreamJson); - result.set(headerProtocolVersion, protocolVersion); - if (setUserAgent) { - result.set(headerUserAgent, "connect-es/1.3.0"); - } - return result; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js - function validateResponse(methodKind, status, headers) { - const mimeType = headers.get("Content-Type"); - const parsedType = parseContentType(mimeType); - if (status !== 200) { - const errorFromStatus = new ConnectError(`HTTP ${status}`, codeFromHttpStatus(status), headers); - if (methodKind == MethodKind.Unary && parsedType && !parsedType.binary) { - return { isUnaryError: true, unaryError: errorFromStatus }; - } - throw errorFromStatus; - } - return { isUnaryError: false }; - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js - var contentTypePrefix = "application/"; - function encodeMessageForUrl(message, useBase64) { - if (useBase64) { - return protoBase64.enc(message).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, ""); - } else { - return encodeURIComponent(new TextDecoder().decode(message)); - } - } - function transformConnectPostToGetRequest(request, message, useBase64) { - let query = `?connect=v${protocolVersion}`; - const contentType = request.header.get(headerContentType); - if ((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(contentTypePrefix)) === 0) { - query += "&encoding=" + encodeURIComponent(contentType.slice(contentTypePrefix.length)); - } - const compression = request.header.get(headerUnaryEncoding); - if (compression !== null && compression !== "identity") { - query += "&compression=" + encodeURIComponent(compression); - useBase64 = true; - } - if (useBase64) { - query += "&base64=1"; - } - query += "&message=" + encodeMessageForUrl(message, useBase64); - const url = request.url + query; - const header = new Headers(request.header); - [ - headerProtocolVersion, - headerContentType, - headerUnaryContentLength, - headerUnaryEncoding, - headerUnaryAcceptEncoding - ].forEach((h) => header.delete(h)); - return Object.assign(Object.assign({}, request), { - init: Object.assign(Object.assign({}, request.init), { method: "GET" }), - url, - header - }); - } - - // ../node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js - function runUnaryCall(opt) { - const next = applyInterceptors(opt.next, opt.interceptors); - const [signal, abort, done] = setupSignal(opt); - const req = Object.assign(Object.assign({}, opt.req), { message: normalize(opt.req.method.I, opt.req.message), signal }); - return next(req).then((res) => { - done(); - return res; - }, abort); - } - function runStreamingCall(opt) { - const next = applyInterceptors(opt.next, opt.interceptors); - const [signal, abort, done] = setupSignal(opt); - const req = Object.assign(Object.assign({}, opt.req), { message: normalizeIterable(opt.req.method.I, opt.req.message), signal }); - let doneCalled = false; - signal.addEventListener("abort", function() { - var _a, _b; - const it = opt.req.message[Symbol.asyncIterator](); - if (!doneCalled) { - (_a = it.throw) === null || _a === void 0 ? void 0 : _a.call(it, this.reason).catch(() => { - }); - } - (_b = it.return) === null || _b === void 0 ? void 0 : _b.call(it).catch(() => { - }); - }); - return next(req).then((res) => { - return Object.assign(Object.assign({}, res), { message: { - [Symbol.asyncIterator]() { - const it = res.message[Symbol.asyncIterator](); - return { - next() { - return it.next().then((r) => { - if (r.done == true) { - doneCalled = true; - done(); - } - return r; - }, abort); - } - // We deliberately omit throw/return. - }; - } - } }); - }, abort); - } - function setupSignal(opt) { - const { signal, cleanup } = createDeadlineSignal(opt.timeoutMs); - const controller = createLinkedAbortController(opt.signal, signal); - return [ - controller.signal, - function abort(reason) { - const e = ConnectError.from(signal.aborted ? getAbortSignalReason(signal) : reason); - controller.abort(e); - cleanup(); - return Promise.reject(e); - }, - function done() { - cleanup(); - controller.abort(); - } - ]; - } - function applyInterceptors(next, interceptors) { - var _a; - return (_a = interceptors === null || interceptors === void 0 ? void 0 : interceptors.concat().reverse().reduce( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - (n, i) => i(n), - next - )) !== null && _a !== void 0 ? _a : next; - } - - // ../node_modules/@connectrpc/connect-web/dist/esm/assert-fetch-api.js - function assertFetchApi() { - try { - new Headers(); - } catch (_) { - throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node."); - } - } - - // ../node_modules/@connectrpc/connect-web/dist/esm/connect-transport.js - var __await3 = function(v) { - return this instanceof __await3 ? (this.v = v, this) : new __await3(v); - }; - var __asyncGenerator3 = function(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) - throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() { - return this; - }, i; - function awaitReturn(f) { - return function(v) { - return Promise.resolve(v).then(f, reject); - }; - } - function verb(n, f) { - if (g[n]) { - i[n] = function(v) { - return new Promise(function(a, b) { - q.push([n, v, a, b]) > 1 || resume(n, v); - }); - }; - if (f) - i[n] = f(i[n]); - } - } - function resume(n, v) { - try { - step(g[n](v)); - } catch (e) { - settle(q[0][3], e); - } - } - function step(r) { - r.value instanceof __await3 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); - } - function fulfill(value) { - resume("next", value); - } - function reject(value) { - resume("throw", value); - } - function settle(f, v) { - if (f(v), q.shift(), q.length) - resume(q[0][0], q[0][1]); - } - }; - function createConnectTransport(options) { - var _a; - assertFetchApi(); - const useBinaryFormat = (_a = options.useBinaryFormat) !== null && _a !== void 0 ? _a : false; - return { - async unary(service, method, signal, timeoutMs, header, message, contextValues) { - var _a2; - const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions); - timeoutMs = timeoutMs === void 0 ? options.defaultTimeoutMs : timeoutMs <= 0 ? void 0 : timeoutMs; - return await runUnaryCall({ - interceptors: options.interceptors, - signal, - timeoutMs, - req: { - stream: false, - service, - method, - url: createMethodUrl(options.baseUrl, service, method), - init: { - method: "POST", - credentials: (_a2 = options.credentials) !== null && _a2 !== void 0 ? _a2 : "same-origin", - redirect: "error", - mode: "cors" - }, - header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false), - contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(), - message - }, - next: async (req) => { - var _a3; - const useGet = options.useHttpGet === true && method.idempotency === MethodIdempotency.NoSideEffects; - let body = null; - if (useGet) { - req = transformConnectPostToGetRequest(req, serialize(req.message), useBinaryFormat); - } else { - body = serialize(req.message); - } - const fetch = (_a3 = options.fetch) !== null && _a3 !== void 0 ? _a3 : globalThis.fetch; - const response = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body })); - const { isUnaryError, unaryError } = validateResponse(method.kind, response.status, response.headers); - if (isUnaryError) { - throw errorFromJson(await response.json(), appendHeaders(...trailerDemux(response.headers)), unaryError); - } - const [demuxedHeader, demuxedTrailer] = trailerDemux(response.headers); - return { - stream: false, - service, - method, - header: demuxedHeader, - message: useBinaryFormat ? parse(new Uint8Array(await response.arrayBuffer())) : method.O.fromJson(await response.json(), getJsonOptions(options.jsonOptions)), - trailer: demuxedTrailer - }; - } - }); - }, - async stream(service, method, signal, timeoutMs, header, input, contextValues) { - var _a2; - const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions); - function parseResponseBody(body, trailerTarget, header2) { - return __asyncGenerator3(this, arguments, function* parseResponseBody_1() { - const reader = createEnvelopeReadableStream(body).getReader(); - let endStreamReceived = false; - for (; ; ) { - const result = yield __await3(reader.read()); - if (result.done) { - break; - } - const { flags, data } = result.value; - if ((flags & endStreamFlag) === endStreamFlag) { - endStreamReceived = true; - const endStream = endStreamFromJson(data); - if (endStream.error) { - const error = endStream.error; - header2.forEach((value, key) => { - error.metadata.append(key, value); - }); - throw error; - } - endStream.metadata.forEach((value, key) => trailerTarget.set(key, value)); - continue; - } - yield yield __await3(parse(data)); - } - if (!endStreamReceived) { - throw "missing EndStreamResponse"; - } - }); - } - async function createRequestBody(input2) { - if (method.kind != MethodKind.ServerStreaming) { - throw "The fetch API does not support streaming request bodies"; - } - const r = await input2[Symbol.asyncIterator]().next(); - if (r.done == true) { - throw "missing request message"; - } - return encodeEnvelope(0, serialize(r.value)); - } - timeoutMs = timeoutMs === void 0 ? options.defaultTimeoutMs : timeoutMs <= 0 ? void 0 : timeoutMs; - return await runStreamingCall({ - interceptors: options.interceptors, - timeoutMs, - signal, - req: { - stream: true, - service, - method, - url: createMethodUrl(options.baseUrl, service, method), - init: { - method: "POST", - credentials: (_a2 = options.credentials) !== null && _a2 !== void 0 ? _a2 : "same-origin", - redirect: "error", - mode: "cors" - }, - header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false), - contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(), - message: input - }, - next: async (req) => { - var _a3; - const fetch = (_a3 = options.fetch) !== null && _a3 !== void 0 ? _a3 : globalThis.fetch; - const fRes = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body: await createRequestBody(req.message) })); - validateResponse(method.kind, fRes.status, fRes.headers); - if (fRes.body === null) { - throw "missing response body"; - } - const trailer = new Headers(); - const res = Object.assign(Object.assign({}, req), { header: fRes.headers, trailer, message: parseResponseBody(fRes.body, trailer, fRes.headers) }); - return res; - } - }); - } - }; - } - - // site/service.ts - var baseURL = "https://demo.lunabrain.com"; - var transport = createConnectTransport({ - baseUrl: `${baseURL}/api` || "error" - // credentials: "include", - }); - var projectService = createPromiseClient(ProtoflowService, transport); - var contentService = createPromiseClient(ContentService, transport); - var userService = createPromiseClient(UserService, transport); - var chatService = createPromiseClient(ChatService, transport); - - // extension/shared.tsx - var contentGet = "content/get"; - var contentSave = "content/save"; - - // extension/background.tsx - var tabContent = void 0; - var chromeExt = () => { - async function saveContent(content) { - try { - const resp = await contentService.save({ - content, - related: [] - }); - console.log(resp); - } catch (e) { - console.error("failed to save", e); - } - } - (async () => { - const resp = await userService.login({}, {}); - console.log(resp); - })(); - chrome.runtime.onInstalled.addListener(function() { - console.log("Extension Installed"); - }); - chrome.runtime.onStartup.addListener(function() { - console.log("Extension Started"); - }); - chrome.webNavigation.onCompleted.addListener((details) => { - if (details.url && details.frameType === "outermost_frame") { - } - }); - function getTabDetails(tabId) { - return new Promise((resolve, reject) => { - chrome.tabs.get(tabId, (tab) => { - if (chrome.runtime.lastError) { - resolve(void 0); - } else { - resolve(tab); - } - }); - }); - } - chrome.runtime.onMessage.addListener(async (message, sender, sendResponse) => { - if (message.action === contentGet) { - sendResponse({ data: tabContent }); - tabContent = void 0; - } - if (message.action === contentSave) { - console.log("asdf"); - const content = Content.fromJson(message.data); - try { - await saveContent(content); - } catch (e) { - sendResponse({ data: { error: e } }); - return; - } - sendResponse({ data: {} }); - } - }); - chrome.tabs.onCreated.addListener(async (tab) => { - if (!tab.id) { - return; - } - const tabDetails = await getTabDetails(tab.id); - if (tabDetails) { - console.log(`Tab with URL ${tabDetails.url} has been created.`, tabDetails); - } - }); - chrome.tabs.onRemoved.addListener(async (tabId, removeInfo) => { - const tabDetails = await getTabDetails(tabId); - if (tabDetails) { - console.log(`Tab with URL ${tabDetails.url} has been closed.`, tabDetails); - } - }); - chrome.webRequest.onBeforeRequest.addListener( - (details) => { - if (!details.initiator || details.type !== "main_frame") { - return; - } - const u = new URL(details.initiator); - const v = new URL(details.url); - if (u.host === v.host) { - return; - } - if (u.host === "news.ycombinator.com") { - tabContent = { - from: details.initiator, - to: details.url - }; - } - }, - { urls: [""] }, - [] - ); - chrome.webRequest.onBeforeSendHeaders.addListener( - (details) => { - let refererValue = ""; - if (!details.requestHeaders) { - return; - } - for (let header of details.requestHeaders) { - if (header.name.toLowerCase() === "referer" && header.value) { - refererValue = header.value; - break; - } - } - }, - { urls: [""] }, - // Monitor all URLs - ["requestHeaders"] - // Necessary to get the request headers - ); - }; - chromeExt(); -})(); -//# sourceMappingURL=background.js.map +"use strict";(()=>{function b(n,e){if(!n)throw new Error(e)}var Ga=34028234663852886e22,Va=-34028234663852886e22,Ya=4294967295,ja=2147483647,$a=-2147483648;function H(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>ja||n<$a)throw new Error("invalid int 32: "+n)}function Ie(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>Ya||n<0)throw new Error("invalid uint 32: "+n)}function et(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Ga||n({no:r.no,name:r.name,localName:n[r.no]})),a)}function qn(n,e,t){let a=Object.create(null),r=Object.create(null),o=[];for(let i of e){let l=vr(i);o.push(l),a[i.name]=l,r[i.no]=l}return{typeName:n,values:o,findName(i){return a[i]},findNumber(i){return r[i]}}}function Br(n,e,t){let a={};for(let r of e){let o=vr(r);a[o.localName]=o.no,a[o.no]=o.localName}return vn(a,n,e,t),a}function vr(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}var f=class{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){let a=this.getType(),r=a.runtime.bin,o=r.makeReadOptions(t);return r.readMessage(this,o.readerFactory(e),e.byteLength,o),this}fromJson(e,t){let a=this.getType(),r=a.runtime.json,o=r.makeReadOptions(t);return r.readMessage(a,e,o,this),this}fromJsonString(e,t){let a;try{a=JSON.parse(e)}catch(r){throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${r instanceof Error?r.message:String(r)}`)}return this.fromJson(a,t)}toBinary(e){let t=this.getType(),a=t.runtime.bin,r=a.makeWriteOptions(e),o=r.writerFactory();return a.writeMessage(this,o,r),o.finish()}toJson(e){let t=this.getType(),a=t.runtime.json,r=a.makeWriteOptions(e);return a.writeMessage(this,r)}toJsonString(e){var t;let a=this.toJson(e);return JSON.stringify(a,null,(t=e?.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function qr(n,e,t,a){var r;let o=(r=a?.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),i={[o]:function(l){n.util.initFields(this),n.util.initPartial(l,this)}}[o];return Object.setPrototypeOf(i.prototype,new f),Object.assign(i,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(l,u){return new i().fromBinary(l,u)},fromJson(l,u){return new i().fromJson(l,u)},fromJsonString(l,u){return new i().fromJsonString(l,u)},equals(l,u){return n.util.equals(i,l,u)}}),i}function tt(n,e,t,a){return{syntax:n,json:e,bin:t,util:a,makeMessageType(r,o,i){return qr(this,r,o,i)},makeEnum:Br,makeEnumType:qn,getEnumType:Or}}var m;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(m||(m={}));var q;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(q||(q={}));function Ur(){let n=0,e=0;for(let a=0;a<28;a+=7){let r=this.buf[this.pos++];if(n|=(r&127)<>4,!(t&128))return this.assertBounds(),[n,e];for(let a=3;a<=31;a+=7){let r=this.buf[this.pos++];if(e|=(r&127)<>>o,l=!(!(i>>>7)&&e==0),u=(l?i|128:i)&255;if(t.push(u),!l)return}let a=n>>>28&15|(e&7)<<4,r=!!(e>>3);if(t.push((r?a|128:a)&255),!!r){for(let o=3;o<31;o=o+7){let i=e>>>o,l=!!(i>>>7),u=(l?i|128:i)&255;if(t.push(u),!l)return}t.push(e>>>31&1)}}var nt=4294967296;function Mn(n){let e=n[0]==="-";e&&(n=n.slice(1));let t=1e6,a=0,r=0;function o(i,l){let u=Number(n.slice(i,l));r*=t,a=a*t+u,a>=nt&&(r=r+(a/nt|0),a=a%nt)}return o(-24,-18),o(-18,-12),o(-12,-6),o(-6),e?Cr(a,r):Ln(a,r)}function Lr(n,e){let t=Ln(n,e),a=t.hi&2147483648;a&&(t=Cr(t.lo,t.hi));let r=Un(t.lo,t.hi);return a?"-"+r:r}function Un(n,e){if({lo:n,hi:e}=za(n,e),e<=2097151)return String(nt*e+n);let t=n&16777215,a=(n>>>24|e<<8)&16777215,r=e>>16&65535,o=t+a*6777216+r*6710656,i=a+r*8147497,l=r*2,u=1e7;return o>=u&&(i+=Math.floor(o/u),o%=u),i>=u&&(l+=Math.floor(i/u),i%=u),l.toString()+Mr(i)+Mr(o)}function za(n,e){return{lo:n>>>0,hi:e>>>0}}function Ln(n,e){return{lo:n|0,hi:e|0}}function Cr(n,e){return e=~e,n?n=~n+1:e+=1,Ln(n,e)}var Mr=n=>{let e=String(n);return"0000000".slice(e.length)+e};function Cn(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function Fr(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Ha(){let n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let r=BigInt("-9223372036854775808"),o=BigInt("9223372036854775807"),i=BigInt("0"),l=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(u){let d=typeof u=="bigint"?u:BigInt(u);if(d>o||dl||db(/^-?[0-9]+$/.test(r),`int64 invalid: ${r}`),a=r=>b(/^[0-9]+$/.test(r),`uint64 invalid: ${r}`);return{zero:"0",supported:!1,parse(r){return typeof r!="string"&&(r=r.toString()),t(r),r},uParse(r){return typeof r!="string"&&(r=r.toString()),a(r),r},enc(r){return typeof r!="string"&&(r=r.toString()),t(r),Mn(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),a(r),Mn(r)},dec(r,o){return Lr(r,o)},uDec(r,o){return Un(r,o)}}}var J=Ha();var k;(function(n){n[n.Varint=0]="Varint",n[n.Bit64=1]="Bit64",n[n.LengthDelimited=2]="LengthDelimited",n[n.StartGroup=3]="StartGroup",n[n.EndGroup=4]="EndGroup",n[n.Bit32=5]="Bit32"})(k||(k={}));var at=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let r=0;r>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Ie(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return H(e),Cn(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){et(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){Ie(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){H(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return H(e),e=(e<<1^e>>31)>>>0,Cn(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),a=new DataView(t.buffer),r=J.enc(e);return a.setInt32(0,r.lo,!0),a.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),a=new DataView(t.buffer),r=J.uEnc(e);return a.setInt32(0,r.lo,!0),a.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=J.enc(e);return rt(t.lo,t.hi,this.buf),this}sint64(e){let t=J.enc(e),a=t.hi>>31,r=t.lo<<1^a,o=(t.hi<<1|t.lo>>>31)^a;return rt(r,o,this.buf),this}uint64(e){let t=J.uEnc(e);return rt(t.lo,t.hi,this.buf),this}},st=class{constructor(e,t){this.varint64=Ur,this.uint32=Fr,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,a=e&7;if(t<=0||a<0||a>5)throw new Error("illegal tag: field no "+t+" wire type "+a);return[t,a]}skip(e){let t=this.pos;switch(e){case k.Varint:for(;this.buf[this.pos++]&128;);break;case k.Bit64:this.pos+=4;case k.Bit32:this.pos+=4;break;case k.LengthDelimited:let a=this.uint32();this.pos+=a;break;case k.StartGroup:let r;for(;(r=this.tag()[1])!==k.EndGroup;)this.skip(r);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(t,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return J.dec(...this.varint64())}uint64(){return J.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),a=-(e&1);return e=(e>>>1|(t&1)<<31)^a,t=t>>>1^a,J.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return J.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return J.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}};function z(n,e){return e instanceof f||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}var Ys={"google.protobuf.DoubleValue":m.DOUBLE,"google.protobuf.FloatValue":m.FLOAT,"google.protobuf.Int64Value":m.INT64,"google.protobuf.UInt64Value":m.UINT64,"google.protobuf.Int32Value":m.INT32,"google.protobuf.UInt32Value":m.UINT32,"google.protobuf.BoolValue":m.BOOL,"google.protobuf.StringValue":m.STRING,"google.protobuf.BytesValue":m.BYTES};function L(n,e,t){if(e===t)return!0;if(n==m.BYTES){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!==t.length)return!1;for(let a=0;anew st(n)},Dr={writeUnknownFields:!0,writerFactory:()=>new at};function Wa(n){return n?Object.assign(Object.assign({},Ar),n):Ar}function Xa(n){return n?Object.assign(Object.assign({},Dr),n):Dr}function lt(){return{makeReadOptions:Wa,makeWriteOptions:Xa,listUnknownFields(n){var e;return(e=n[W])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[W]},writeUnknownFields(n,e){let a=n[W];if(a)for(let r of a)e.tag(r.no,r.wireType).raw(r.data)},onUnknownField(n,e,t,a){let r=n;Array.isArray(r[W])||(r[W]=[]),r[W].push({no:e,wireType:t,data:a})},readMessage(n,e,t,a,r){let o=n.getType(),i=r?e.len:e.pos+t,l,u;for(;e.pos0&&(y=Qa),P){let E=g[T];if(u==k.LengthDelimited&&p!=m.STRING&&p!=m.BYTES){let G=e.uint32()+e.pos;for(;e.pos>4,i=o,r=2;break;case 2:t[a++]=(i&15)<<4|(o&60)>>2,i=o,r=3;break;case 3:t[a++]=(i&3)<<6|o,r=0;break}}if(r==1)throw Error("invalid base64 string.");return t.subarray(0,a)},enc(n){let e="",t=0,a,r=0;for(let o=0;o>2],r=(a&3)<<4,t=1;break;case 1:e+=F[r|a>>4],r=(a&15)<<2,t=2;break;case 2:e+=F[r|a>>6],e+=F[a&63],t=0;break}return t&&(e+=F[r],e+="=",t==1&&(e+="=")),e}};var Vr={ignoreUnknownFields:!1},Yr={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Za(n){return n?Object.assign(Object.assign({},Vr),n):Vr}function _a(n){return n?Object.assign(Object.assign({},Yr),n):Yr}function ft(n){let e=n(es,jr);return{makeReadOptions:Za,makeWriteOptions:_a,readMessage(t,a,r,o){if(a==null||Array.isArray(a)||typeof a!="object")throw new Error(`cannot decode message ${t.typeName} from JSON: ${this.debug(a)}`);o=o??new t;let i={};for(let[l,u]of Object.entries(a)){let d=t.fields.findJsonName(l);if(!d){if(!r.ignoreUnknownFields)throw new Error(`cannot decode message ${t.typeName} from JSON: key "${l}" is unknown`);continue}let g=d.localName,P=o;if(d.oneof){if(u===null&&d.kind=="scalar")continue;let T=i[d.oneof.localName];if(T)throw new Error(`cannot decode message ${t.typeName} from JSON: multiple keys for oneof "${d.oneof.name}" present: "${T}", "${l}"`);i[d.oneof.localName]=l,P=P[d.oneof.localName]={case:g},g="value"}if(d.repeated){if(u===null)continue;if(!Array.isArray(u))throw new Error(`cannot decode field ${t.typeName}.${d.name} from JSON: ${this.debug(u)}`);let T=P[g];for(let p of u){if(p===null)throw new Error(`cannot decode field ${t.typeName}.${d.name} from JSON: ${this.debug(p)}`);let y;switch(d.kind){case"message":y=d.T.fromJson(p,r);break;case"enum":if(y=An(d.T,p,r.ignoreUnknownFields),y===void 0)continue;break;case"scalar":try{y=Ne(d.T,p,d.L)}catch(w){let S=`cannot decode field ${t.typeName}.${d.name} from JSON: ${this.debug(p)}`;throw w instanceof Error&&w.message.length>0&&(S+=`: ${w.message}`),new Error(S)}break}T.push(y)}}else if(d.kind=="map"){if(u===null)continue;if(Array.isArray(u)||typeof u!="object")throw new Error(`cannot decode field ${t.typeName}.${d.name} from JSON: ${this.debug(u)}`);let T=P[g];for(let[p,y]of Object.entries(u)){if(y===null)throw new Error(`cannot decode field ${t.typeName}.${d.name} from JSON: map value null`);let w;switch(d.V.kind){case"message":w=d.V.T.fromJson(y,r);break;case"enum":if(w=An(d.V.T,y,r.ignoreUnknownFields),w===void 0)continue;break;case"scalar":try{w=Ne(d.V.T,y,q.BIGINT)}catch(S){let N=`cannot decode map value for field ${t.typeName}.${d.name} from JSON: ${this.debug(u)}`;throw S instanceof Error&&S.message.length>0&&(N+=`: ${S.message}`),new Error(N)}break}try{T[Ne(d.K,d.K==m.BOOL?p=="true"?!0:p=="false"?!1:p:p,q.BIGINT).toString()]=w}catch(S){let N=`cannot decode map key for field ${t.typeName}.${d.name} from JSON: ${this.debug(u)}`;throw S instanceof Error&&S.message.length>0&&(N+=`: ${S.message}`),new Error(N)}}}else switch(d.kind){case"message":let T=d.T;if(u===null&&T.typeName!="google.protobuf.Value"){if(d.oneof)throw new Error(`cannot decode field ${t.typeName}.${d.name} from JSON: null is invalid for oneof field "${l}"`);continue}P[g]instanceof f?P[g].fromJson(u,r):(P[g]=T.fromJson(u,r),T.fieldWrapper&&!d.oneof&&(P[g]=T.fieldWrapper.unwrapField(P[g])));break;case"enum":let p=An(d.T,u,r.ignoreUnknownFields);p!==void 0&&(P[g]=p);break;case"scalar":try{P[g]=Ne(d.T,u,d.L)}catch(y){let w=`cannot decode field ${t.typeName}.${d.name} from JSON: ${this.debug(u)}`;throw y instanceof Error&&y.message.length>0&&(w+=`: ${y.message}`),new Error(w)}break}}return o},writeMessage(t,a){let r=t.getType(),o={},i;try{for(let l of r.fields.byMember()){let u;if(l.kind=="oneof"){let d=t[l.localName];if(d.value===void 0)continue;if(i=l.findField(d.case),!i)throw"oneof case not found: "+d.case;u=e(i,d.value,a)}else i=l,u=e(i,t[i.localName],a);u!==void 0&&(o[a.useProtoFieldName?i.name:i.jsonName]=u)}}catch(l){let u=i?`cannot encode field ${r.typeName}.${i.name} to JSON`:`cannot encode message ${r.typeName} to JSON`,d=l instanceof Error?l.message:String(l);throw new Error(u+(d.length>0?`: ${d}`:""))}return o},readScalar:Ne,writeScalar:jr,debug:$r}}function $r(n){if(n===null)return"null";switch(typeof n){case"object":return Array.isArray(n)?"array":"object";case"string":return n.length>100?"string":`"${n.split('"').join('\\"')}"`;default:return String(n)}}function Ne(n,e,t){switch(n){case m.DOUBLE:case m.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;let a=Number(e);if(Number.isNaN(a)||!Number.isFinite(a))break;return n==m.FLOAT&&et(a),a;case m.INT32:case m.FIXED32:case m.SFIXED32:case m.SINT32:case m.UINT32:if(e===null)return 0;let r;if(typeof e=="number"?r=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(r=Number(e)),r===void 0)break;return n==m.UINT32?Ie(r):H(r),r;case m.INT64:case m.SFIXED64:case m.SINT64:if(e===null)return J.zero;if(typeof e!="number"&&typeof e!="string")break;let o=J.parse(e);return t?o.toString():o;case m.FIXED64:case m.UINT64:if(e===null)return J.zero;if(typeof e!="number"&&typeof e!="string")break;let i=J.uParse(e);return t?i.toString():i;case m.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case m.STRING:if(e===null)return"";if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case m.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return V.dec(e)}throw new Error}function An(n,e,t){if(e===null)return 0;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let a=n.findName(e);if(a||t)return a?.no;break}throw new Error(`cannot decode enum ${n.typeName} from JSON: ${$r(e)}`)}function es(n,e,t,a){var r;if(e===void 0)return e;if(e===0&&!t)return;if(a)return e;if(n.typeName=="google.protobuf.NullValue")return null;let o=n.findNumber(e);return(r=o?.name)!==null&&r!==void 0?r:e}function jr(n,e,t){if(e!==void 0)switch(n){case m.INT32:case m.SFIXED32:case m.SINT32:case m.FIXED32:case m.UINT32:return b(typeof e=="number"),e!=0||t?e:void 0;case m.FLOAT:case m.DOUBLE:return b(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e!==0||t?e:void 0;case m.STRING:return b(typeof e=="string"),e.length>0||t?e:void 0;case m.BOOL:return b(typeof e=="boolean"),e||t?e:void 0;case m.UINT64:case m.FIXED64:case m.INT64:case m.SFIXED64:case m.SINT64:return b(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),t||e!=0?e.toString(10):void 0;case m.BYTES:return b(e instanceof Uint8Array),t||e.byteLength>0?V.enc(e):void 0}}function zr(){return ft((n,e)=>function(a,r,o){if(a.kind=="map"){let i={};switch(a.V.kind){case"scalar":for(let[u,d]of Object.entries(r)){let g=e(a.V.T,d,!0);b(g!==void 0),i[u.toString()]=g}break;case"message":for(let[u,d]of Object.entries(r))i[u.toString()]=d.toJson(o);break;case"enum":let l=a.V.T;for(let[u,d]of Object.entries(r)){b(d===void 0||typeof d=="number");let g=n(l,d,!0,o.enumAsInteger);b(g!==void 0),i[u.toString()]=g}break}return o.emitDefaultValues||Object.keys(i).length>0?i:void 0}else if(a.repeated){let i=[];switch(a.kind){case"scalar":for(let l=0;l0?i:void 0}else switch(a.kind){case"scalar":return e(a.T,r,!!a.oneof||a.opt||o.emitDefaultValues);case"enum":return n(a.T,r,!!a.oneof||a.opt||o.emitDefaultValues,o.enumAsInteger);case"message":return r!==void 0?z(a.T,r).toJson(o):void 0}})}function pt(){return{setEnumType:vn,initPartial(n,e){if(n===void 0)return;let t=e.getType();for(let a of t.fields.byMember()){let r=a.localName,o=e,i=n;if(i[r]!==void 0)switch(a.kind){case"oneof":let l=i[r].case;if(l===void 0)continue;let u=a.findField(l),d=i[r].value;u&&u.kind=="message"&&!(d instanceof u.T)?d=new u.T(d):u&&u.kind==="scalar"&&u.T===m.BYTES&&(d=Oe(d)),o[r]={case:l,value:d};break;case"scalar":case"enum":let g=i[r];a.T===m.BYTES&&(g=a.repeated?g.map(Oe):Oe(g)),o[r]=g;break;case"map":switch(a.V.kind){case"scalar":case"enum":if(a.V.T===m.BYTES)for(let[p,y]of Object.entries(i[r]))o[r][p]=Oe(y);else Object.assign(o[r],i[r]);break;case"message":let T=a.V.T;for(let p of Object.keys(i[r])){let y=i[r][p];T.fieldWrapper||(y=new T(y)),o[r][p]=y}break}break;case"message":let P=a.T;if(a.repeated)o[r]=i[r].map(T=>T instanceof P?T:new P(T));else if(i[r]!==void 0){let T=i[r];P.fieldWrapper?P.typeName==="google.protobuf.BytesValue"?o[r]=Oe(T):o[r]=T:o[r]=T instanceof P?T:new P(T)}break}}},equals(n,e,t){return e===t?!0:!e||!t?!1:n.fields.byMember().every(a=>{let r=e[a.localName],o=t[a.localName];if(a.repeated){if(r.length!==o.length)return!1;switch(a.kind){case"message":return r.every((i,l)=>a.T.equals(i,o[l]));case"scalar":return r.every((i,l)=>L(a.T,i,o[l]));case"enum":return r.every((i,l)=>L(m.INT32,i,o[l]))}throw new Error(`repeated cannot contain ${a.kind}`)}switch(a.kind){case"message":return a.T.equals(r,o);case"enum":return L(m.INT32,r,o);case"scalar":return L(a.T,r,o);case"oneof":if(r.case!==o.case)return!1;let i=a.findField(r.case);if(i===void 0)return!0;switch(i.kind){case"message":return i.T.equals(r.value,o.value);case"enum":return L(m.INT32,r.value,o.value);case"scalar":return L(i.T,r.value,o.value)}throw new Error(`oneof cannot contain ${i.kind}`);case"map":let l=Object.keys(r).concat(Object.keys(o));switch(a.V.kind){case"message":let u=a.V.T;return l.every(g=>u.equals(r[g],o[g]));case"enum":return l.every(g=>L(m.INT32,r[g],o[g]));case"scalar":let d=a.V.T;return l.every(g=>L(d,r[g],o[g]))}break}})},clone(n){let e=n.getType(),t=new e,a=t;for(let r of e.fields.byMember()){let o=n[r.localName],i;if(r.repeated)i=o.map(mt);else if(r.kind=="map"){i=a[r.localName];for(let[l,u]of Object.entries(o))i[l]=mt(u)}else r.kind=="oneof"?i=r.findField(o.case)?{case:o.case,value:mt(o.value)}:{case:void 0}:i=mt(o);a[r.localName]=i}return t}}}function mt(n){if(n===void 0)return n;if(n instanceof f)return n.clone();if(n instanceof Uint8Array){let e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function Oe(n){return n instanceof Uint8Array?n:new Uint8Array(n)}var K=class{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){let t={};for(let a of this.list())t[a.jsonName]=t[a.name]=a;this.jsonNames=t}return this.jsonNames[e]}find(e){if(!this.numbers){let t={};for(let a of this.list())t[a.no]=a;this.numbers=t}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,t)=>e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,t;for(let a of this.list())a.oneof?a.oneof!==t&&(t=a.oneof,e.push(t)):e.push(a)}return this.members}};function Be(n,e){let t=Wr(n);return e?t:as(rs(t))}function Hr(n){return Be(n,!1)}var gt=Wr;function Wr(n){let e=!1,t=[];for(let a=0;a`${n}$`,rs=n=>ns.has(n)?Xr(n):n,as=n=>ts.has(n)?Xr(n):n;var Q=class{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=Hr(e)}addField(e){b(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let t=0;t0?`: ${l}`:""))}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e}})}function Qr(){return ft((n,e)=>function(a,r,o){if(a.kind=="map"){let i={};switch(a.V.kind){case"scalar":for(let[u,d]of Object.entries(r)){let g=e(a.V.T,d,!0);b(g!==void 0),i[u.toString()]=g}break;case"message":for(let[u,d]of Object.entries(r))i[u.toString()]=d.toJson(o);break;case"enum":let l=a.V.T;for(let[u,d]of Object.entries(r)){b(d===void 0||typeof d=="number");let g=n(l,d,!0,o.enumAsInteger);b(g!==void 0),i[u.toString()]=g}break}return o.emitDefaultValues||Object.keys(i).length>0?i:void 0}else if(a.repeated){let i=[];switch(a.kind){case"scalar":for(let l=0;l0?i:void 0}else{if(r===void 0){if(!a.oneof&&!a.opt)throw"required field not set";return}switch(a.kind){case"scalar":return e(a.T,r,!0);case"enum":return n(a.T,r,!0,o.enumAsInteger);case"message":return z(a.T,r).toJson(o)}}})}var c=tt("proto2",Qr(),Kr(),Object.assign(Object.assign({},pt()),{newFieldList(n){return new K(n,os)},initFields(n){for(let e of n.getType().fields.byMember()){let t=e.localName,a=n;if(e.repeated){a[t]=[];continue}switch(e.kind){case"oneof":a[t]={case:void 0};break;case"map":a[t]={};break;case"scalar":case"enum":case"message":break}}}}));function os(n){var e,t,a,r,o;let i=[],l;for(let u of typeof n=="function"?n():n){let d=u;if(d.localName=Be(u.name,u.oneof!==void 0),d.jsonName=(e=u.jsonName)!==null&&e!==void 0?e:gt(u.name),d.repeated=(t=u.repeated)!==null&&t!==void 0?t:!1,u.kind=="scalar"&&(d.L=(a=u.L)!==null&&a!==void 0?a:q.BIGINT),u.oneof!==void 0){let g=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!l||l.name!=g)&&(l=new Q(g)),d.oneof=l,l.addField(d)}u.kind=="message"&&(d.delimited=(r=u.delimited)!==null&&r!==void 0?r:!1),d.packed=(o=u.packed)!==null&&o!==void 0?o:!1,i.push(d)}return i}var h;(function(n){n[n.Unary=0]="Unary",n[n.ServerStreaming=1]="ServerStreaming",n[n.ClientStreaming=2]="ClientStreaming",n[n.BiDiStreaming=3]="BiDiStreaming"})(h||(h={}));var ve;(function(n){n[n.NoSideEffects=1]="NoSideEffects",n[n.Idempotent=2]="Idempotent"})(ve||(ve={}));var Y;(function(n){n[n.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",n[n.EDITION_PROTO2=998]="EDITION_PROTO2",n[n.EDITION_PROTO3=999]="EDITION_PROTO3",n[n.EDITION_2023=1e3]="EDITION_2023",n[n.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",n[n.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",n[n.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",n[n.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",n[n.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY"})(Y||(Y={}));c.util.setEnumType(Y,"google.protobuf.Edition",[{no:0,name:"EDITION_UNKNOWN"},{no:998,name:"EDITION_PROTO2"},{no:999,name:"EDITION_PROTO3"},{no:1e3,name:"EDITION_2023"},{no:1,name:"EDITION_1_TEST_ONLY"},{no:2,name:"EDITION_2_TEST_ONLY"},{no:99997,name:"EDITION_99997_TEST_ONLY"},{no:99998,name:"EDITION_99998_TEST_ONLY"},{no:99999,name:"EDITION_99999_TEST_ONLY"}]);var qe=class n extends f{constructor(e){super(),this.file=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};qe.runtime=c;qe.typeName="google.protobuf.FileDescriptorSet";qe.fields=c.util.newFieldList(()=>[{no:1,name:"file",kind:"message",T:Z,repeated:!0}]);var Z=class n extends f{constructor(e){super(),this.dependency=[],this.publicDependency=[],this.weakDependency=[],this.messageType=[],this.enumType=[],this.service=[],this.extension=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};Z.runtime=c;Z.typeName="google.protobuf.FileDescriptorProto";Z.fields=c.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"package",kind:"scalar",T:9,opt:!0},{no:3,name:"dependency",kind:"scalar",T:9,repeated:!0},{no:10,name:"public_dependency",kind:"scalar",T:5,repeated:!0},{no:11,name:"weak_dependency",kind:"scalar",T:5,repeated:!0},{no:4,name:"message_type",kind:"message",T:M,repeated:!0},{no:5,name:"enum_type",kind:"message",T:A,repeated:!0},{no:6,name:"service",kind:"message",T:oe,repeated:!0},{no:7,name:"extension",kind:"message",T:j,repeated:!0},{no:8,name:"options",kind:"message",T:le,opt:!0},{no:9,name:"source_code_info",kind:"message",T:we,opt:!0},{no:12,name:"syntax",kind:"scalar",T:9,opt:!0},{no:14,name:"edition",kind:"enum",T:c.getEnumType(Y),opt:!0}]);var M=class n extends f{constructor(e){super(),this.field=[],this.extension=[],this.nestedType=[],this.enumType=[],this.extensionRange=[],this.oneofDecl=[],this.reservedRange=[],this.reservedName=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};M.runtime=c;M.typeName="google.protobuf.DescriptorProto";M.fields=c.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"field",kind:"message",T:j,repeated:!0},{no:6,name:"extension",kind:"message",T:j,repeated:!0},{no:3,name:"nested_type",kind:"message",T:M,repeated:!0},{no:4,name:"enum_type",kind:"message",T:A,repeated:!0},{no:5,name:"extension_range",kind:"message",T:_,repeated:!0},{no:8,name:"oneof_decl",kind:"message",T:re,repeated:!0},{no:7,name:"options",kind:"message",T:ue,opt:!0},{no:9,name:"reserved_range",kind:"message",T:ee,repeated:!0},{no:10,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var _=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};_.runtime=c;_.typeName="google.protobuf.DescriptorProto.ExtensionRange";_.fields=c.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:te,opt:!0}]);var ee=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};ee.runtime=c;ee.typeName="google.protobuf.DescriptorProto.ReservedRange";ee.fields=c.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var te=class n extends f{constructor(e){super(),this.uninterpretedOption=[],this.declaration=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};te.runtime=c;te.typeName="google.protobuf.ExtensionRangeOptions";te.fields=c.util.newFieldList(()=>[{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0},{no:2,name:"declaration",kind:"message",T:ne,repeated:!0},{no:50,name:"features",kind:"message",T:O,opt:!0},{no:3,name:"verification",kind:"enum",T:c.getEnumType(Me),opt:!0,default:Me.UNVERIFIED}]);var Me;(function(n){n[n.DECLARATION=0]="DECLARATION",n[n.UNVERIFIED=1]="UNVERIFIED"})(Me||(Me={}));c.util.setEnumType(Me,"google.protobuf.ExtensionRangeOptions.VerificationState",[{no:0,name:"DECLARATION"},{no:1,name:"UNVERIFIED"}]);var ne=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};ne.runtime=c;ne.typeName="google.protobuf.ExtensionRangeOptions.Declaration";ne.fields=c.util.newFieldList(()=>[{no:1,name:"number",kind:"scalar",T:5,opt:!0},{no:2,name:"full_name",kind:"scalar",T:9,opt:!0},{no:3,name:"type",kind:"scalar",T:9,opt:!0},{no:5,name:"reserved",kind:"scalar",T:8,opt:!0},{no:6,name:"repeated",kind:"scalar",T:8,opt:!0}]);var j=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};j.runtime=c;j.typeName="google.protobuf.FieldDescriptorProto";j.fields=c.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:3,name:"number",kind:"scalar",T:5,opt:!0},{no:4,name:"label",kind:"enum",T:c.getEnumType(ht),opt:!0},{no:5,name:"type",kind:"enum",T:c.getEnumType(yt),opt:!0},{no:6,name:"type_name",kind:"scalar",T:9,opt:!0},{no:2,name:"extendee",kind:"scalar",T:9,opt:!0},{no:7,name:"default_value",kind:"scalar",T:9,opt:!0},{no:9,name:"oneof_index",kind:"scalar",T:5,opt:!0},{no:10,name:"json_name",kind:"scalar",T:9,opt:!0},{no:8,name:"options",kind:"message",T:ce,opt:!0},{no:17,name:"proto3_optional",kind:"scalar",T:8,opt:!0}]);var yt;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.GROUP=10]="GROUP",n[n.MESSAGE=11]="MESSAGE",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.ENUM=14]="ENUM",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(yt||(yt={}));c.util.setEnumType(yt,"google.protobuf.FieldDescriptorProto.Type",[{no:1,name:"TYPE_DOUBLE"},{no:2,name:"TYPE_FLOAT"},{no:3,name:"TYPE_INT64"},{no:4,name:"TYPE_UINT64"},{no:5,name:"TYPE_INT32"},{no:6,name:"TYPE_FIXED64"},{no:7,name:"TYPE_FIXED32"},{no:8,name:"TYPE_BOOL"},{no:9,name:"TYPE_STRING"},{no:10,name:"TYPE_GROUP"},{no:11,name:"TYPE_MESSAGE"},{no:12,name:"TYPE_BYTES"},{no:13,name:"TYPE_UINT32"},{no:14,name:"TYPE_ENUM"},{no:15,name:"TYPE_SFIXED32"},{no:16,name:"TYPE_SFIXED64"},{no:17,name:"TYPE_SINT32"},{no:18,name:"TYPE_SINT64"}]);var ht;(function(n){n[n.OPTIONAL=1]="OPTIONAL",n[n.REPEATED=3]="REPEATED",n[n.REQUIRED=2]="REQUIRED"})(ht||(ht={}));c.util.setEnumType(ht,"google.protobuf.FieldDescriptorProto.Label",[{no:1,name:"LABEL_OPTIONAL"},{no:3,name:"LABEL_REPEATED"},{no:2,name:"LABEL_REQUIRED"}]);var re=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};re.runtime=c;re.typeName="google.protobuf.OneofDescriptorProto";re.fields=c.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"options",kind:"message",T:fe,opt:!0}]);var A=class n extends f{constructor(e){super(),this.value=[],this.reservedRange=[],this.reservedName=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};A.runtime=c;A.typeName="google.protobuf.EnumDescriptorProto";A.fields=c.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"value",kind:"message",T:se,repeated:!0},{no:3,name:"options",kind:"message",T:me,opt:!0},{no:4,name:"reserved_range",kind:"message",T:ae,repeated:!0},{no:5,name:"reserved_name",kind:"scalar",T:9,repeated:!0}]);var ae=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};ae.runtime=c;ae.typeName="google.protobuf.EnumDescriptorProto.EnumReservedRange";ae.fields=c.util.newFieldList(()=>[{no:1,name:"start",kind:"scalar",T:5,opt:!0},{no:2,name:"end",kind:"scalar",T:5,opt:!0}]);var se=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};se.runtime=c;se.typeName="google.protobuf.EnumValueDescriptorProto";se.fields=c.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"number",kind:"scalar",T:5,opt:!0},{no:3,name:"options",kind:"message",T:pe,opt:!0}]);var oe=class n extends f{constructor(e){super(),this.method=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};oe.runtime=c;oe.typeName="google.protobuf.ServiceDescriptorProto";oe.fields=c.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"method",kind:"message",T:ie,repeated:!0},{no:3,name:"options",kind:"message",T:ge,opt:!0}]);var ie=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};ie.runtime=c;ie.typeName="google.protobuf.MethodDescriptorProto";ie.fields=c.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9,opt:!0},{no:2,name:"input_type",kind:"scalar",T:9,opt:!0},{no:3,name:"output_type",kind:"scalar",T:9,opt:!0},{no:4,name:"options",kind:"message",T:ye,opt:!0},{no:5,name:"client_streaming",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"server_streaming",kind:"scalar",T:8,opt:!0,default:!1}]);var le=class n extends f{constructor(e){super(),this.uninterpretedOption=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};le.runtime=c;le.typeName="google.protobuf.FileOptions";le.fields=c.util.newFieldList(()=>[{no:1,name:"java_package",kind:"scalar",T:9,opt:!0},{no:8,name:"java_outer_classname",kind:"scalar",T:9,opt:!0},{no:10,name:"java_multiple_files",kind:"scalar",T:8,opt:!0,default:!1},{no:20,name:"java_generate_equals_and_hash",kind:"scalar",T:8,opt:!0},{no:27,name:"java_string_check_utf8",kind:"scalar",T:8,opt:!0,default:!1},{no:9,name:"optimize_for",kind:"enum",T:c.getEnumType(Ue),opt:!0,default:Ue.SPEED},{no:11,name:"go_package",kind:"scalar",T:9,opt:!0},{no:16,name:"cc_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"java_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:18,name:"py_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:42,name:"php_generic_services",kind:"scalar",T:8,opt:!0,default:!1},{no:23,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:31,name:"cc_enable_arenas",kind:"scalar",T:8,opt:!0,default:!0},{no:36,name:"objc_class_prefix",kind:"scalar",T:9,opt:!0},{no:37,name:"csharp_namespace",kind:"scalar",T:9,opt:!0},{no:39,name:"swift_prefix",kind:"scalar",T:9,opt:!0},{no:40,name:"php_class_prefix",kind:"scalar",T:9,opt:!0},{no:41,name:"php_namespace",kind:"scalar",T:9,opt:!0},{no:44,name:"php_metadata_namespace",kind:"scalar",T:9,opt:!0},{no:45,name:"ruby_package",kind:"scalar",T:9,opt:!0},{no:50,name:"features",kind:"message",T:O,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Ue;(function(n){n[n.SPEED=1]="SPEED",n[n.CODE_SIZE=2]="CODE_SIZE",n[n.LITE_RUNTIME=3]="LITE_RUNTIME"})(Ue||(Ue={}));c.util.setEnumType(Ue,"google.protobuf.FileOptions.OptimizeMode",[{no:1,name:"SPEED"},{no:2,name:"CODE_SIZE"},{no:3,name:"LITE_RUNTIME"}]);var ue=class n extends f{constructor(e){super(),this.uninterpretedOption=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};ue.runtime=c;ue.typeName="google.protobuf.MessageOptions";ue.fields=c.util.newFieldList(()=>[{no:1,name:"message_set_wire_format",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"no_standard_descriptor_accessor",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:7,name:"map_entry",kind:"scalar",T:8,opt:!0},{no:11,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:12,name:"features",kind:"message",T:O,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var ce=class n extends f{constructor(e){super(),this.targets=[],this.editionDefaults=[],this.uninterpretedOption=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};ce.runtime=c;ce.typeName="google.protobuf.FieldOptions";ce.fields=c.util.newFieldList(()=>[{no:1,name:"ctype",kind:"enum",T:c.getEnumType(Le),opt:!0,default:Le.STRING},{no:2,name:"packed",kind:"scalar",T:8,opt:!0},{no:6,name:"jstype",kind:"enum",T:c.getEnumType(Ce),opt:!0,default:Ce.JS_NORMAL},{no:5,name:"lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:15,name:"unverified_lazy",kind:"scalar",T:8,opt:!0,default:!1},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:10,name:"weak",kind:"scalar",T:8,opt:!0,default:!1},{no:16,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:17,name:"retention",kind:"enum",T:c.getEnumType(Tt),opt:!0},{no:19,name:"targets",kind:"enum",T:c.getEnumType(wt),repeated:!0},{no:20,name:"edition_defaults",kind:"message",T:de,repeated:!0},{no:21,name:"features",kind:"message",T:O,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Le;(function(n){n[n.STRING=0]="STRING",n[n.CORD=1]="CORD",n[n.STRING_PIECE=2]="STRING_PIECE"})(Le||(Le={}));c.util.setEnumType(Le,"google.protobuf.FieldOptions.CType",[{no:0,name:"STRING"},{no:1,name:"CORD"},{no:2,name:"STRING_PIECE"}]);var Ce;(function(n){n[n.JS_NORMAL=0]="JS_NORMAL",n[n.JS_STRING=1]="JS_STRING",n[n.JS_NUMBER=2]="JS_NUMBER"})(Ce||(Ce={}));c.util.setEnumType(Ce,"google.protobuf.FieldOptions.JSType",[{no:0,name:"JS_NORMAL"},{no:1,name:"JS_STRING"},{no:2,name:"JS_NUMBER"}]);var Tt;(function(n){n[n.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",n[n.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",n[n.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(Tt||(Tt={}));c.util.setEnumType(Tt,"google.protobuf.FieldOptions.OptionRetention",[{no:0,name:"RETENTION_UNKNOWN"},{no:1,name:"RETENTION_RUNTIME"},{no:2,name:"RETENTION_SOURCE"}]);var wt;(function(n){n[n.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",n[n.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",n[n.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",n[n.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",n[n.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",n[n.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",n[n.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",n[n.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",n[n.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",n[n.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(wt||(wt={}));c.util.setEnumType(wt,"google.protobuf.FieldOptions.OptionTargetType",[{no:0,name:"TARGET_TYPE_UNKNOWN"},{no:1,name:"TARGET_TYPE_FILE"},{no:2,name:"TARGET_TYPE_EXTENSION_RANGE"},{no:3,name:"TARGET_TYPE_MESSAGE"},{no:4,name:"TARGET_TYPE_FIELD"},{no:5,name:"TARGET_TYPE_ONEOF"},{no:6,name:"TARGET_TYPE_ENUM"},{no:7,name:"TARGET_TYPE_ENUM_ENTRY"},{no:8,name:"TARGET_TYPE_SERVICE"},{no:9,name:"TARGET_TYPE_METHOD"}]);var de=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};de.runtime=c;de.typeName="google.protobuf.FieldOptions.EditionDefault";de.fields=c.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:c.getEnumType(Y),opt:!0},{no:2,name:"value",kind:"scalar",T:9,opt:!0}]);var fe=class n extends f{constructor(e){super(),this.uninterpretedOption=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};fe.runtime=c;fe.typeName="google.protobuf.OneofOptions";fe.fields=c.util.newFieldList(()=>[{no:1,name:"features",kind:"message",T:O,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var me=class n extends f{constructor(e){super(),this.uninterpretedOption=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};me.runtime=c;me.typeName="google.protobuf.EnumOptions";me.fields=c.util.newFieldList(()=>[{no:2,name:"allow_alias",kind:"scalar",T:8,opt:!0},{no:3,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:6,name:"deprecated_legacy_json_field_conflicts",kind:"scalar",T:8,opt:!0},{no:7,name:"features",kind:"message",T:O,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var pe=class n extends f{constructor(e){super(),this.uninterpretedOption=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};pe.runtime=c;pe.typeName="google.protobuf.EnumValueOptions";pe.fields=c.util.newFieldList(()=>[{no:1,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:2,name:"features",kind:"message",T:O,opt:!0},{no:3,name:"debug_redact",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var ge=class n extends f{constructor(e){super(),this.uninterpretedOption=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};ge.runtime=c;ge.typeName="google.protobuf.ServiceOptions";ge.fields=c.util.newFieldList(()=>[{no:34,name:"features",kind:"message",T:O,opt:!0},{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var ye=class n extends f{constructor(e){super(),this.uninterpretedOption=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};ye.runtime=c;ye.typeName="google.protobuf.MethodOptions";ye.fields=c.util.newFieldList(()=>[{no:33,name:"deprecated",kind:"scalar",T:8,opt:!0,default:!1},{no:34,name:"idempotency_level",kind:"enum",T:c.getEnumType(Fe),opt:!0,default:Fe.IDEMPOTENCY_UNKNOWN},{no:35,name:"features",kind:"message",T:O,opt:!0},{no:999,name:"uninterpreted_option",kind:"message",T:B,repeated:!0}]);var Fe;(function(n){n[n.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",n[n.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",n[n.IDEMPOTENT=2]="IDEMPOTENT"})(Fe||(Fe={}));c.util.setEnumType(Fe,"google.protobuf.MethodOptions.IdempotencyLevel",[{no:0,name:"IDEMPOTENCY_UNKNOWN"},{no:1,name:"NO_SIDE_EFFECTS"},{no:2,name:"IDEMPOTENT"}]);var B=class n extends f{constructor(e){super(),this.name=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};B.runtime=c;B.typeName="google.protobuf.UninterpretedOption";B.fields=c.util.newFieldList(()=>[{no:2,name:"name",kind:"message",T:he,repeated:!0},{no:3,name:"identifier_value",kind:"scalar",T:9,opt:!0},{no:4,name:"positive_int_value",kind:"scalar",T:4,opt:!0},{no:5,name:"negative_int_value",kind:"scalar",T:3,opt:!0},{no:6,name:"double_value",kind:"scalar",T:1,opt:!0},{no:7,name:"string_value",kind:"scalar",T:12,opt:!0},{no:8,name:"aggregate_value",kind:"scalar",T:9,opt:!0}]);var he=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};he.runtime=c;he.typeName="google.protobuf.UninterpretedOption.NamePart";he.fields=c.util.newFieldList(()=>[{no:1,name:"name_part",kind:"scalar",T:9},{no:2,name:"is_extension",kind:"scalar",T:8}]);var O=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};O.runtime=c;O.typeName="google.protobuf.FeatureSet";O.fields=c.util.newFieldList(()=>[{no:1,name:"field_presence",kind:"enum",T:c.getEnumType(Pt),opt:!0},{no:2,name:"enum_type",kind:"enum",T:c.getEnumType(Rt),opt:!0},{no:3,name:"repeated_field_encoding",kind:"enum",T:c.getEnumType(Jt),opt:!0},{no:4,name:"utf8_validation",kind:"enum",T:c.getEnumType(St),opt:!0},{no:5,name:"message_encoding",kind:"enum",T:c.getEnumType(kt),opt:!0},{no:6,name:"json_format",kind:"enum",T:c.getEnumType(bt),opt:!0}]);var Pt;(function(n){n[n.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",n[n.EXPLICIT=1]="EXPLICIT",n[n.IMPLICIT=2]="IMPLICIT",n[n.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Pt||(Pt={}));c.util.setEnumType(Pt,"google.protobuf.FeatureSet.FieldPresence",[{no:0,name:"FIELD_PRESENCE_UNKNOWN"},{no:1,name:"EXPLICIT"},{no:2,name:"IMPLICIT"},{no:3,name:"LEGACY_REQUIRED"}]);var Rt;(function(n){n[n.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",n[n.OPEN=1]="OPEN",n[n.CLOSED=2]="CLOSED"})(Rt||(Rt={}));c.util.setEnumType(Rt,"google.protobuf.FeatureSet.EnumType",[{no:0,name:"ENUM_TYPE_UNKNOWN"},{no:1,name:"OPEN"},{no:2,name:"CLOSED"}]);var Jt;(function(n){n[n.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",n[n.PACKED=1]="PACKED",n[n.EXPANDED=2]="EXPANDED"})(Jt||(Jt={}));c.util.setEnumType(Jt,"google.protobuf.FeatureSet.RepeatedFieldEncoding",[{no:0,name:"REPEATED_FIELD_ENCODING_UNKNOWN"},{no:1,name:"PACKED"},{no:2,name:"EXPANDED"}]);var St;(function(n){n[n.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",n[n.NONE=1]="NONE",n[n.VERIFY=2]="VERIFY"})(St||(St={}));c.util.setEnumType(St,"google.protobuf.FeatureSet.Utf8Validation",[{no:0,name:"UTF8_VALIDATION_UNKNOWN"},{no:1,name:"NONE"},{no:2,name:"VERIFY"}]);var kt;(function(n){n[n.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",n[n.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",n[n.DELIMITED=2]="DELIMITED"})(kt||(kt={}));c.util.setEnumType(kt,"google.protobuf.FeatureSet.MessageEncoding",[{no:0,name:"MESSAGE_ENCODING_UNKNOWN"},{no:1,name:"LENGTH_PREFIXED"},{no:2,name:"DELIMITED"}]);var bt;(function(n){n[n.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",n[n.ALLOW=1]="ALLOW",n[n.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(bt||(bt={}));c.util.setEnumType(bt,"google.protobuf.FeatureSet.JsonFormat",[{no:0,name:"JSON_FORMAT_UNKNOWN"},{no:1,name:"ALLOW"},{no:2,name:"LEGACY_BEST_EFFORT"}]);var Ae=class n extends f{constructor(e){super(),this.defaults=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};Ae.runtime=c;Ae.typeName="google.protobuf.FeatureSetDefaults";Ae.fields=c.util.newFieldList(()=>[{no:1,name:"defaults",kind:"message",T:Te,repeated:!0},{no:4,name:"minimum_edition",kind:"enum",T:c.getEnumType(Y),opt:!0},{no:5,name:"maximum_edition",kind:"enum",T:c.getEnumType(Y),opt:!0}]);var Te=class n extends f{constructor(e){super(),c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};Te.runtime=c;Te.typeName="google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault";Te.fields=c.util.newFieldList(()=>[{no:3,name:"edition",kind:"enum",T:c.getEnumType(Y),opt:!0},{no:2,name:"features",kind:"message",T:O,opt:!0}]);var we=class n extends f{constructor(e){super(),this.location=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};we.runtime=c;we.typeName="google.protobuf.SourceCodeInfo";we.fields=c.util.newFieldList(()=>[{no:1,name:"location",kind:"message",T:Pe,repeated:!0}]);var Pe=class n extends f{constructor(e){super(),this.path=[],this.span=[],this.leadingDetachedComments=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};Pe.runtime=c;Pe.typeName="google.protobuf.SourceCodeInfo.Location";Pe.fields=c.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"span",kind:"scalar",T:5,repeated:!0,packed:!0},{no:3,name:"leading_comments",kind:"scalar",T:9,opt:!0},{no:4,name:"trailing_comments",kind:"scalar",T:9,opt:!0},{no:6,name:"leading_detached_comments",kind:"scalar",T:9,repeated:!0}]);var De=class n extends f{constructor(e){super(),this.annotation=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};De.runtime=c;De.typeName="google.protobuf.GeneratedCodeInfo";De.fields=c.util.newFieldList(()=>[{no:1,name:"annotation",kind:"message",T:Re,repeated:!0}]);var Re=class n extends f{constructor(e){super(),this.path=[],c.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return c.util.equals(n,e,t)}};Re.runtime=c;Re.typeName="google.protobuf.GeneratedCodeInfo.Annotation";Re.fields=c.util.newFieldList(()=>[{no:1,name:"path",kind:"scalar",T:5,repeated:!0,packed:!0},{no:2,name:"source_file",kind:"scalar",T:9,opt:!0},{no:3,name:"begin",kind:"scalar",T:5,opt:!0},{no:4,name:"end",kind:"scalar",T:5,opt:!0},{no:5,name:"semantic",kind:"enum",T:c.getEnumType(xt),opt:!0}]);var xt;(function(n){n[n.NONE=0]="NONE",n[n.SET=1]="SET",n[n.ALIAS=2]="ALIAS"})(xt||(xt={}));c.util.setEnumType(xt,"google.protobuf.GeneratedCodeInfo.Annotation.Semantic",[{no:0,name:"NONE"},{no:1,name:"SET"},{no:2,name:"ALIAS"}]);var x=class n extends f{constructor(e){super(),s.util.initPartial(e,this)}static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}};x.runtime=s;x.typeName="google.protobuf.Empty";x.fields=s.util.newFieldList(()=>[]);var It=class n extends f{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.VerifyUserRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Et=class n extends f{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupInfoRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Nt=class n extends f{groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupID";static fields=s.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Ot=class n extends f{contentId="";groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.ShareRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Ge=class n extends f{secret="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.GroupInvite";static fields=s.util.newFieldList(()=>[{no:1,name:"secret",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Bt=class n extends f{groups=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Groups";static fields=s.util.newFieldList(()=>[{no:1,name:"groups",kind:"message",T:D,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Zr=class n extends f{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.AnalyzeConversationRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},U=class n extends f{email="";password="";username="";config;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.User";static fields=s.util.newFieldList(()=>[{no:1,name:"email",kind:"scalar",T:9},{no:2,name:"password",kind:"scalar",T:9},{no:3,name:"username",kind:"scalar",T:9},{no:4,name:"config",kind:"message",T:Ve}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},D=class n extends f{id="";name="";users=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Group";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"users",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Ve=class n extends f{domainWhitelist=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.Config";static fields=s.util.newFieldList(()=>[{no:1,name:"domain_whitelist",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},_r=class n extends f{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="user.LoginResponse";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}};var vt=class n extends f{captureDevice=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.VoiceInputRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},qt=class n extends f{segment;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.VoiceInputResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:Je}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Mt=class n extends f{parent="";children=[];connect=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.RelateRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"parent",kind:"scalar",T:9},{no:2,name:"children",kind:"scalar",T:9,repeated:!0},{no:3,name:"connect",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Ut=class n extends f{sources=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Sources";static fields=s.util.newFieldList(()=>[{no:1,name:"sources",kind:"message",T:Dn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Dn=class n extends f{source;displayContent=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.EnumeratedSource";static fields=s.util.newFieldList(()=>[{no:1,name:"source",kind:"message",T:Vn},{no:2,name:"display_content",kind:"message",T:Gn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Gn=class n extends f{title="";description="";type="";content;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.DisplayContent";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"type",kind:"scalar",T:9},{no:4,name:"content",kind:"message",T:v}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Vn=class n extends f{name="";type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Source";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"server",kind:"message",T:Yn,oneof:"type"},{no:3,name:"folder",kind:"message",T:jn,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Yn=class n extends f{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Server";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},jn=class n extends f{path="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Folder";static fields=s.util.newFieldList(()=>[{no:2,name:"path",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Lt=class n extends f{contentId="";tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.SetTagsRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content_id",kind:"scalar",T:9},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Ct=class n extends f{groupId="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.TagRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"group_id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Ft=class n extends f{tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Tags";static fields=s.util.newFieldList(()=>[{no:1,name:"tags",kind:"message",T:At,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},At=class n extends f{name="";subTags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Tag";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"sub_tags",kind:"message",T:n,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},$=class n extends f{contentIds=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ContentIDs";static fields=s.util.newFieldList(()=>[{no:1,name:"content_ids",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Ye=class n extends f{content;tags=[];related=[];parents=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Contents";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:v},{no:2,name:"tags",kind:"scalar",T:9,repeated:!0},{no:3,name:"related",kind:"message",T:v,repeated:!0},{no:4,name:"parents",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Dt=class n extends f{query="";page=0;contentID="";groupID="";tags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Query";static fields=s.util.newFieldList(()=>[{no:1,name:"query",kind:"scalar",T:9},{no:2,name:"page",kind:"scalar",T:13},{no:3,name:"contentID",kind:"scalar",T:9},{no:4,name:"groupID",kind:"scalar",T:9},{no:5,name:"tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Gt=class n extends f{storedContent=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Results";static fields=s.util.newFieldList(()=>[{no:1,name:"storedContent",kind:"message",T:$n,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},$n=class n extends f{content;id="";related=[];title="";description="";image="";url="";user;tags=[];preview="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.StoredContent";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:v},{no:2,name:"id",kind:"scalar",T:9},{no:3,name:"related",kind:"message",T:v,repeated:!0},{no:4,name:"title",kind:"scalar",T:9},{no:5,name:"description",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"url",kind:"scalar",T:9},{no:9,name:"user",kind:"message",T:U},{no:10,name:"tags",kind:"message",T:At,repeated:!0},{no:11,name:"preview",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},ea=class n extends f{from="";to="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Edge";static fields=s.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},v=class n extends f{tags=[];createdAt="";uri="";id="";type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Content";static fields=s.util.newFieldList(()=>[{no:1,name:"tags",kind:"scalar",T:9,repeated:!0},{no:2,name:"created_at",kind:"scalar",T:9},{no:3,name:"uri",kind:"scalar",T:9},{no:4,name:"id",kind:"scalar",T:9},{no:6,name:"data",kind:"message",T:Hn,oneof:"type"},{no:7,name:"normalized",kind:"message",T:Wn,oneof:"type"},{no:8,name:"transformed",kind:"message",T:Xn,oneof:"type"},{no:9,name:"post",kind:"message",T:zn,oneof:"type"},{no:10,name:"site",kind:"message",T:or,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},zn=class n extends f{title="";summary="";content="";authors=[];draft=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Post";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"content",kind:"scalar",T:9},{no:4,name:"authors",kind:"scalar",T:9,repeated:!0},{no:6,name:"draft",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},ta=class n extends f{url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GitRepo";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Hn=class n extends f{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Data";static fields=s.util.newFieldList(()=>[{no:4,name:"text",kind:"message",T:nr,oneof:"type"},{no:5,name:"file",kind:"message",T:tr,oneof:"type"},{no:6,name:"url",kind:"message",T:rr,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Wn=class n extends f{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Normalized";static fields=s.util.newFieldList(()=>[{no:3,name:"article",kind:"message",T:Kn,oneof:"type"},{no:4,name:"html",kind:"message",T:Qn,oneof:"type"},{no:6,name:"transcript",kind:"message",T:sr,oneof:"type"},{no:7,name:"readme",kind:"message",T:Zn,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Xn=class n extends f{type={case:void 0};constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Transformed";static fields=s.util.newFieldList(()=>[{no:1,name:"summary",kind:"message",T:_n,oneof:"type"},{no:2,name:"categories",kind:"message",T:er,oneof:"type"}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Kn=class n extends f{title="";author="";length=0;excerpt="";siteName="";image="";favicon="";text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Article";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"author",kind:"scalar",T:9},{no:3,name:"length",kind:"scalar",T:5},{no:4,name:"excerpt",kind:"scalar",T:9},{no:5,name:"site_name",kind:"scalar",T:9},{no:6,name:"image",kind:"scalar",T:9},{no:7,name:"favicon",kind:"scalar",T:9},{no:8,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Qn=class n extends f{html="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HTML";static fields=s.util.newFieldList(()=>[{no:1,name:"html",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Zn=class n extends f{data="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ReadMe";static fields=s.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},_n=class n extends f{summary="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Summary";static fields=s.util.newFieldList(()=>[{no:1,name:"summary",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},er=class n extends f{categories=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Categories";static fields=s.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},tr=class n extends f{file="";data=new Uint8Array(0);url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.File";static fields=s.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9},{no:2,name:"data",kind:"scalar",T:12},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},nr=class n extends f{data="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Text";static fields=s.util.newFieldList(()=>[{no:1,name:"data",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},rr=class n extends f{url="";crawl=!1;title="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.URL";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"crawl",kind:"scalar",T:8},{no:3,name:"title",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},ar=class n extends f{id=0;startTime=J.zero;endTime=J.zero;text="";p="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Token";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Je=class n extends f{num=0;tokens=[];text="";startTime=J.zero;endTime=J.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Segment";static fields=s.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:ar,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},sr=class n extends f{id="";name="";segments=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Transcript";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:Je,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Vt=class n extends f{msg;descLookup={};enumLookup={};packageName="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.GRPCTypeInfo";static fields=s.util.newFieldList(()=>[{no:1,name:"msg",kind:"message",T:M},{no:3,name:"desc_lookup",kind:"map",K:9,V:{kind:"message",T:M}},{no:4,name:"enum_lookup",kind:"map",K:9,V:{kind:"message",T:A}},{no:6,name:"package_name",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},or=class n extends f{hugoConfig;postTags=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.Site";static fields=s.util.newFieldList(()=>[{no:1,name:"hugo_config",kind:"message",T:ir},{no:2,name:"post_tags",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},ir=class n extends f{theme="";baseUrl="";title="";params;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HugoConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"theme",kind:"scalar",T:9},{no:2,name:"base_url",kind:"scalar",T:9},{no:3,name:"title",kind:"scalar",T:9},{no:4,name:"params",kind:"message",T:lr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},lr=class n extends f{env="";description="";author="";defaultTheme="";showShareButtons=!1;showReadingTime=!1;displayFullLangName=!1;showPostNavLinks=!1;showBreadCrumbs=!1;showCodeCopyButtons=!1;showRssButtonInSectionTermList=!1;showAllPagesInArchive=!1;showPageNums=!1;showToc=!1;images=[];profileMode;homeInfoParams;socialIcons=[];editPost;assets;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ParamsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"env",kind:"scalar",T:9},{no:2,name:"description",kind:"scalar",T:9},{no:3,name:"author",kind:"scalar",T:9},{no:4,name:"default_theme",kind:"scalar",T:9},{no:5,name:"show_share_buttons",kind:"scalar",T:8},{no:6,name:"show_reading_time",kind:"scalar",T:8},{no:7,name:"display_full_lang_name",kind:"scalar",T:8},{no:8,name:"show_post_nav_links",kind:"scalar",T:8},{no:9,name:"show_bread_crumbs",kind:"scalar",T:8},{no:10,name:"show_code_copy_buttons",kind:"scalar",T:8},{no:11,name:"show_rss_button_in_section_term_list",kind:"scalar",T:8},{no:12,name:"show_all_pages_in_archive",kind:"scalar",T:8},{no:13,name:"show_page_nums",kind:"scalar",T:8},{no:14,name:"show_toc",kind:"scalar",T:8},{no:15,name:"images",kind:"scalar",T:9,repeated:!0},{no:16,name:"profile_mode",kind:"message",T:ur},{no:17,name:"home_info_params",kind:"message",T:dr},{no:18,name:"social_icons",kind:"message",T:fr,repeated:!0},{no:19,name:"edit_post",kind:"message",T:mr},{no:20,name:"assets",kind:"message",T:pr}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},ur=class n extends f{enabled=!1;title="";imageUrl="";imageTitle="";buttons=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ProfileModeConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"image_url",kind:"scalar",T:9},{no:4,name:"image_title",kind:"scalar",T:9},{no:5,name:"buttons",kind:"message",T:cr,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},cr=class n extends f{name="";url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.ButtonConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},dr=class n extends f{title="";content="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.HomeInfoParamsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"content",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},fr=class n extends f{name="";title="";url="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.SocialIconConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"title",kind:"scalar",T:9},{no:3,name:"url",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},mr=class n extends f{url="";text="";appendFilePath=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.EditPostConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"append_file_path",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},pr=class n extends f{disableHljs=!1;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="content.AssetsConfig";static fields=s.util.newFieldList(()=>[{no:1,name:"disable_hljs",kind:"scalar",T:8}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}};var Yt=class n extends f{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.AnalyzeConversationRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},jt=class n extends f{prompt="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GenerateImagesRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},$t=class n extends f{images=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GenerateImagesResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"images",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},zt=class n extends f{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.DeleteSessionRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Se=class n extends f{id="";text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Prompt";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Ht=class n extends f{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetPromptsRequest";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Wt=class n extends f{prompts=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetPromptsResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"prompts",kind:"message",T:Se,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Xt=class n extends f{prompt="";text=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.InferRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"prompt",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Kt=class n extends f{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.InferResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Qt=class n extends f{content;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.UploadContentRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"content",kind:"message",T:v}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},na=class n extends f{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.UploadContentResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},Zt=class n extends f{id="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},_t=class n extends f{session;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"session",kind:"message",T:rn}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},en=class n extends f{page=J.zero;limit=J.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionsRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"page",kind:"scalar",T:4},{no:2,name:"limit",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},tn=class n extends f{sessions=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.GetSessionsResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"sessions",kind:"message",T:rn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},gr=class n extends f{id=0;startTime=J.zero;endTime=J.zero;text="";p="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Token";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:13},{no:2,name:"start_time",kind:"scalar",T:4},{no:3,name:"end_time",kind:"scalar",T:4},{no:4,name:"text",kind:"scalar",T:9},{no:5,name:"p",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},nn=class n extends f{num=0;tokens=[];text="";startTime=J.zero;endTime=J.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Segment";static fields=s.util.newFieldList(()=>[{no:1,name:"num",kind:"scalar",T:13},{no:2,name:"tokens",kind:"message",T:gr,repeated:!0},{no:3,name:"text",kind:"scalar",T:9},{no:4,name:"start_time",kind:"scalar",T:4},{no:5,name:"end_time",kind:"scalar",T:4}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},rn=class n extends f{id="";name="";segments=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Session";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"segments",kind:"message",T:nn,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},ra=class n extends f{filePath="";model="";language="";translate=!1;offset=J.zero;duration=J.zero;threads=0;speedup=!1;maxLen=0;maxTokens=0;wordThreshold=0;tokens=!1;colorize=!1;out="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.TranscriptionRequest";static fields=s.util.newFieldList(()=>[{no:14,name:"file_path",kind:"scalar",T:9},{no:1,name:"model",kind:"scalar",T:9},{no:2,name:"language",kind:"scalar",T:9},{no:3,name:"translate",kind:"scalar",T:8},{no:4,name:"offset",kind:"scalar",T:3},{no:5,name:"duration",kind:"scalar",T:3},{no:6,name:"threads",kind:"scalar",T:13},{no:7,name:"speedup",kind:"scalar",T:8},{no:8,name:"max_len",kind:"scalar",T:13},{no:9,name:"max_tokens",kind:"scalar",T:13},{no:10,name:"word_threshold",kind:"scalar",T:1},{no:11,name:"tokens",kind:"scalar",T:8},{no:12,name:"colorize",kind:"scalar",T:8},{no:13,name:"out",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},aa=class n extends f{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.RegisterFlags";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},sa=class n extends f{text="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.OCRText";static fields=s.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},oa=class n extends f{image=new Uint8Array(0);constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.Image";static fields=s.util.newFieldList(()=>[{no:1,name:"image",kind:"scalar",T:12}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},an=class n extends f{from="";to="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ConvertFileRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"from",kind:"scalar",T:9},{no:2,name:"to",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},sn=class n extends f{captureDevice=0;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ChatRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"capture_device",kind:"scalar",T:5}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},je=class n extends f{segment;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.ChatResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"segment",kind:"message",T:nn}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},on=class n extends f{id="";file="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.YouTubeVideo";static fields=s.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"file",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},$e=class n extends f{file="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.FilePath";static fields=s.util.newFieldList(()=>[{no:1,name:"file",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},ln=class n extends f{title="";filePath;transcript=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="protoflow.YouTubeVideoResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"title",kind:"scalar",T:9},{no:2,name:"file_path",kind:"message",T:$e},{no:3,name:"transcript",kind:"message",T:Je,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}};var un=class n extends f{phoneNumbers=[];summary="";questions=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="ai.AnalyzeConversationResponse";static fields=s.util.newFieldList(()=>[{no:1,name:"phone_numbers",kind:"scalar",T:9,repeated:!0},{no:2,name:"summary",kind:"scalar",T:9},{no:3,name:"questions",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},ia=class n extends f{categories=[];constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="ai.AnalyzeContent";static fields=s.util.newFieldList(()=>[{no:1,name:"categories",kind:"scalar",T:9,repeated:!0}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}};var la={typeName:"protoflow.ProtoflowService",methods:{downloadYouTubeVideo:{name:"DownloadYouTubeVideo",I:on,O:ln,kind:h.Unary},getSessions:{name:"GetSessions",I:en,O:tn,kind:h.Unary},getSession:{name:"GetSession",I:Zt,O:_t,kind:h.Unary},deleteSession:{name:"DeleteSession",I:zt,O:x,kind:h.Unary},getPrompts:{name:"GetPrompts",I:Ht,O:Wt,kind:h.Unary},newPrompt:{name:"NewPrompt",I:Se,O:Se,kind:h.Unary},uploadContent:{name:"UploadContent",I:Qt,O:je,kind:h.ServerStreaming},infer:{name:"Infer",I:Xt,O:Kt,kind:h.ServerStreaming},chat:{name:"Chat",I:sn,O:je,kind:h.ServerStreaming},convertFile:{name:"ConvertFile",I:an,O:$e,kind:h.Unary},generateImages:{name:"GenerateImages",I:jt,O:$t,kind:h.Unary},analyzeConversation:{name:"AnalyzeConversation",I:Yt,O:un,kind:h.Unary}}};var ua={typeName:"content.ContentService",methods:{save:{name:"Save",I:Ye,O:$,kind:h.Unary},search:{name:"Search",I:Dt,O:Gt,kind:h.Unary},relate:{name:"Relate",I:Mt,O:x,kind:h.Unary},analyze:{name:"Analyze",I:v,O:Ye,kind:h.Unary},delete:{name:"Delete",I:$,O:$,kind:h.Unary},getTags:{name:"GetTags",I:Ct,O:Ft,kind:h.Unary},setTags:{name:"SetTags",I:Lt,O:x,kind:h.Unary},publish:{name:"Publish",I:$,O:$,kind:h.Unary},getSources:{name:"GetSources",I:x,O:Ut,kind:h.Unary},types:{name:"Types",I:x,O:Vt,kind:h.Unary},voiceInput:{name:"VoiceInput",I:vt,O:qt,kind:h.ServerStreaming}}};var ca={typeName:"user.UserService",methods:{register:{name:"Register",I:U,O:U,kind:h.Unary},login:{name:"Login",I:U,O:U,kind:h.Unary},logout:{name:"Logout",I:x,O:x,kind:h.Unary},resetPassword:{name:"ResetPassword",I:U,O:x,kind:h.Unary},verifyUser:{name:"VerifyUser",I:It,O:x,kind:h.Unary},updateConfig:{name:"UpdateConfig",I:Ve,O:x,kind:h.Unary},createGroupInvite:{name:"CreateGroupInvite",I:Nt,O:Ge,kind:h.Unary},joinGroup:{name:"JoinGroup",I:Ge,O:D,kind:h.Unary},groupInfo:{name:"GroupInfo",I:Et,O:D,kind:h.Unary},createGroup:{name:"CreateGroup",I:D,O:D,kind:h.Unary},getGroups:{name:"GetGroups",I:x,O:Bt,kind:h.Unary},deleteGroup:{name:"DeleteGroup",I:D,O:x,kind:h.Unary},share:{name:"Share",I:Ot,O:x,kind:h.Unary}}};var cn=class n extends f{user="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.BanUserRequest";static fields=s.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},dn=class n extends f{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.BanUserResponse";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},fn=class n extends f{message="";constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.SendMessageRequest";static fields=s.util.newFieldList(()=>[{no:2,name:"message",kind:"scalar",T:9}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},mn=class n extends f{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.SendMessageResponse";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},pn=class n extends f{constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.ReceiveMessagesRequest";static fields=s.util.newFieldList(()=>[]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}},gn=class n extends f{user="";text="";timestamp=J.zero;constructor(e){super(),s.util.initPartial(e,this)}static runtime=s;static typeName="chat.Message";static fields=s.util.newFieldList(()=>[{no:1,name:"user",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"timestamp",kind:"scalar",T:3}]);static fromBinary(e,t){return new n().fromBinary(e,t)}static fromJson(e,t){return new n().fromJson(e,t)}static fromJsonString(e,t){return new n().fromJsonString(e,t)}static equals(e,t){return s.util.equals(n,e,t)}};var da={typeName:"chat.ChatService",methods:{sendMessage:{name:"SendMessage",I:fn,O:mn,kind:h.Unary},receiveMessages:{name:"ReceiveMessages",I:pn,O:gn,kind:h.ServerStreaming},banUser:{name:"BanUser",I:cn,O:dn,kind:h.Unary}}};var R;(function(n){n[n.Canceled=1]="Canceled",n[n.Unknown=2]="Unknown",n[n.InvalidArgument=3]="InvalidArgument",n[n.DeadlineExceeded=4]="DeadlineExceeded",n[n.NotFound=5]="NotFound",n[n.AlreadyExists=6]="AlreadyExists",n[n.PermissionDenied=7]="PermissionDenied",n[n.ResourceExhausted=8]="ResourceExhausted",n[n.FailedPrecondition=9]="FailedPrecondition",n[n.Aborted=10]="Aborted",n[n.OutOfRange=11]="OutOfRange",n[n.Unimplemented=12]="Unimplemented",n[n.Internal=13]="Internal",n[n.Unavailable=14]="Unavailable",n[n.DataLoss=15]="DataLoss",n[n.Unauthenticated=16]="Unauthenticated"})(R||(R={}));function ze(n){let e=R[n];return typeof e!="string"?n.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}var yn;function fa(n){if(!yn){yn={};for(let e of Object.values(R))typeof e!="string"&&(yn[ze(e)]=e)}return yn[n]}var I=class n extends Error{constructor(e,t=R.Unknown,a,r,o){super(is(e,t)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=t,this.metadata=new Headers(a??{}),this.details=r??[],this.cause=o}static from(e,t=R.Unknown){return e instanceof n?e:e instanceof Error?e.name=="AbortError"?new n(e.message,R.Canceled):new n(e.message,t,void 0,void 0,e):new n(String(e),t,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===n.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let t="typeName"in e?{findMessage:r=>r===e.typeName?e:void 0}:e,a=[];for(let r of this.details){if(r instanceof f){t.findMessage(r.getType().typeName)&&a.push(r);continue}let o=t.findMessage(r.type);if(o)try{a.push(o.fromBinary(r.value))}catch{}}return a}};function is(n,e){return n.length?`[${ze(e)}] ${n}`:`[${ze(e)}]`}function yr(...n){let e=new Headers;for(let t of n)t.forEach((a,r)=>{e.append(r,a)});return e}function ma(n,e){let t={};for(let[a,r]of Object.entries(n.methods)){let o=e(Object.assign(Object.assign({},r),{localName:a,service:n}));o!=null&&(t[a]=o)}return t}function hr(n){let e,t=new Uint8Array(0);function a(r){let o=new Uint8Array(t.length+r.length);o.set(t),o.set(r,t.length),t=o}return new ReadableStream({start(){e=n.getReader()},async pull(r){let o;for(;;){if(o===void 0&&t.byteLength>=5){let u=0;for(let d=1;d<5;d++)u=(u<<8)+t[d];o={flags:t[0],length:u}}if(o!==void 0&&t.byteLength>=o.length+5)break;let l=await e.read();if(l.done)break;a(l.value)}if(o===void 0){if(t.byteLength==0){r.close();return}r.error(new I("premature end of stream",R.DataLoss));return}let i=t.subarray(5,5+o.length);t=t.subarray(5+o.length),r.enqueue({flags:o.flags,data:i})}})}function Tr(n,e){let t=new Uint8Array(e.length+5);t.set(e,5);let a=new DataView(t.buffer,t.byteOffset,t.byteLength);return a.setUint8(0,n),a.setUint32(1,e.length),t}var ls=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof __values=="function"?__values(n):n[Symbol.iterator](),t={},a("next"),a("throw"),a("return"),t[Symbol.asyncIterator]=function(){return this},t);function a(o){t[o]=n[o]&&function(i){return new Promise(function(l,u){i=n[o](i),r(l,u,i.done,i.value)})}}function r(o,i,l,u){Promise.resolve(u).then(function(d){o({value:d,done:l})},i)}},He=function(n){return this instanceof He?(this.v=n,this):new He(n)},us=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){a[p]&&(r[p]=function(w){return new Promise(function(S,N){o.push([p,w,S,N])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{d(a[p](y))}catch(w){T(o[0][3],w)}}function d(p){p.value instanceof He?Promise.resolve(p.value.v).then(g,P):T(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function T(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}},cs=function(n){var e,t;return e={},a("next"),a("throw",function(r){throw r}),a("return"),e[Symbol.iterator]=function(){return this},e;function a(r,o){e[r]=n[r]?function(i){return(t=!t)?{value:He(n[r](i)),done:!1}:o?o(i):i}:o}};function pa(n){return us(this,arguments,function*(){yield He(yield*cs(ls(n)))})}var ga=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof __values=="function"?__values(n):n[Symbol.iterator](),t={},a("next"),a("throw"),a("return"),t[Symbol.asyncIterator]=function(){return this},t);function a(o){t[o]=n[o]&&function(i){return new Promise(function(l,u){i=n[o](i),r(l,u,i.done,i.value)})}}function r(o,i,l,u){Promise.resolve(u).then(function(d){o({value:d,done:l})},i)}},ke=function(n){return this instanceof ke?(this.v=n,this):new ke(n)},ds=function(n){var e,t;return e={},a("next"),a("throw",function(r){throw r}),a("return"),e[Symbol.iterator]=function(){return this},e;function a(r,o){e[r]=n[r]?function(i){return(t=!t)?{value:ke(n[r](i)),done:!1}:o?o(i):i}:o}},fs=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){a[p]&&(r[p]=function(w){return new Promise(function(S,N){o.push([p,w,S,N])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{d(a[p](y))}catch(w){T(o[0][3],w)}}function d(p){p.value instanceof ke?Promise.resolve(p.value.v).then(g,P):T(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function T(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function be(n,e){return ma(n,t=>{switch(t.kind){case h.Unary:return ms(e,n,t);case h.ServerStreaming:return ps(e,n,t);case h.ClientStreaming:return gs(e,n,t);case h.BiDiStreaming:return ys(e,n,t);default:return null}})}function ms(n,e,t){return async function(a,r){var o,i;let l=await n.unary(e,t,r?.signal,r?.timeoutMs,r?.headers,a,r?.contextValues);return(o=r?.onHeader)===null||o===void 0||o.call(r,l.header),(i=r?.onTrailer)===null||i===void 0||i.call(r,l.trailer),l.message}}function ps(n,e,t){return function(a,r){return ya(n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,pa([a]),r?.contextValues),r)}}function gs(n,e,t){return async function(a,r){var o,i,l,u,d,g;let P=await n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,a,r?.contextValues);(d=r?.onHeader)===null||d===void 0||d.call(r,P.header);let T;try{for(var p=!0,y=ga(P.message),w;w=await y.next(),o=w.done,!o;p=!0)u=w.value,p=!1,T=u}catch(S){i={error:S}}finally{try{!p&&!o&&(l=y.return)&&await l.call(y)}finally{if(i)throw i.error}}if(!T)throw new I("protocol error: missing response message",R.Internal);return(g=r?.onTrailer)===null||g===void 0||g.call(r,P.trailer),T}}function ys(n,e,t){return function(a,r){return ya(n.stream(e,t,r?.signal,r?.timeoutMs,r?.headers,a,r?.contextValues),r)}}function ya(n,e){let t=function(){var a,r;return fs(this,arguments,function*(){let o=yield ke(n);(a=e?.onHeader)===null||a===void 0||a.call(e,o.header),yield ke(yield*ds(ga(o.message))),(r=e?.onTrailer)===null||r===void 0||r.call(e,o.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>t.next()})}}function ha(...n){let e=new AbortController,t=n.filter(r=>r!==void 0).concat(e.signal);for(let r of t){if(r.aborted){a.apply(r);break}r.addEventListener("abort",a)}function a(){e.signal.aborted||e.abort(wr(this));for(let r of t)r.removeEventListener("abort",a)}return e}function Ta(n){let e=new AbortController,t=()=>{e.abort(new I("the operation timed out",R.DeadlineExceeded))},a;return n!==void 0&&(n<=0?t():a=setTimeout(t,n)),{signal:e.signal,cleanup:()=>clearTimeout(a)}}function wr(n){if(!n.aborted)return;if(n.reason!==void 0)return n.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function hn(){return{get(n){return n.id in this?this[n.id]:n.defaultValue},set(n,e){return this[n.id]=e,this},delete(n){return delete this[n.id],this}}}function Tn(n,e,t){let a=typeof e=="string"?e:e.typeName,r=typeof t=="string"?t:t.name;return n.toString().replace(/\/?$/,`/${a}/${r}`)}function Pr(n,e){return e instanceof n?e:new n(e)}function wa(n,e){function t(a){return a.done===!0?a:{done:a.done,value:Pr(n,a.value)}}return{[Symbol.asyncIterator](){let a=e[Symbol.asyncIterator](),r={next:()=>a.next().then(t)};return a.throw!==void 0&&(r.throw=o=>a.throw(o).then(t)),a.return!==void 0&&(r.return=o=>a.return(o).then(t)),r}}}function wn(n){var e;let t=Object.assign({},n);return(e=t.ignoreUnknownFields)!==null&&e!==void 0||(t.ignoreUnknownFields=!0),t}function Pn(n,e,t,a){let r=e?Pa(n.I,a):Ra(n.I,t);return{parse:(e?Pa(n.O,a):Ra(n.O,t)).parse,serialize:r.serialize}}function Pa(n,e){return{parse(t){try{return n.fromBinary(t,e)}catch(a){let r=a instanceof Error?a.message:String(a);throw new I(`parse binary: ${r}`,R.InvalidArgument)}},serialize(t){try{return t.toBinary(e)}catch(a){let r=a instanceof Error?a.message:String(a);throw new I(`serialize binary: ${r}`,R.Internal)}}}}function Ra(n,e){var t,a;let r=(t=e?.textEncoder)!==null&&t!==void 0?t:new TextEncoder,o=(a=e?.textDecoder)!==null&&a!==void 0?a:new TextDecoder,i=wn(e);return{parse(l){try{let u=o.decode(l);return n.fromJsonString(u,i)}catch(u){throw I.from(u,R.InvalidArgument)}},serialize(l){try{let u=l.toJsonString(i);return r.encode(u)}catch(u){throw I.from(u,R.Internal)}}}}var hs=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var Ja="application/proto",Sa="application/json",ka="application/connect+proto",ba="application/connect+json";function xa(n){let e=n?.match(hs);if(!e)return;let t=!!e[1],a=!!e[3];return{stream:t,binary:a}}function We(n,e,t){if(e&&new Headers(e).forEach((i,l)=>t.metadata.append(l,i)),typeof n!="object"||n==null||Array.isArray(n)||!("code"in n)||typeof n.code!="string")throw t;let a=fa(n.code);if(a===void 0)throw t;let r=n.message;if(r!=null&&typeof r!="string")throw t;let o=new I(r??"",a,e);if("details"in n&&Array.isArray(n.details))for(let i of n.details){if(i===null||typeof i!="object"||Array.isArray(i)||typeof i.type!="string"||typeof i.value!="string"||"debug"in i&&typeof i.debug!="object")throw t;try{o.details.push({type:i.type,value:V.dec(i.value),debug:i.debug})}catch{throw t}}return o}var Rn=2;function Rr(n){let e=new I("invalid end stream",R.InvalidArgument),t;try{t=JSON.parse(typeof n=="string"?n:new TextDecoder().decode(n))}catch{throw e}if(typeof t!="object"||t==null||Array.isArray(t))throw e;let a=new Headers;if("metadata"in t){if(typeof t.metadata!="object"||t.metadata==null||Array.isArray(t.metadata))throw e;for(let[o,i]of Object.entries(t.metadata)){if(!Array.isArray(i)||i.some(l=>typeof l!="string"))throw e;for(let l of i)a.append(o,l)}}let r="error"in t?We(t.error,a,e):void 0;return{metadata:a,error:r}}var Xe="Content-Type",Ia="Content-Length",Jn="Content-Encoding";var Jr="Accept-Encoding";var Ea="Connect-Timeout-Ms",Sn="Connect-Protocol-Version",Na="User-Agent";function Oa(n){switch(n){case 400:return R.InvalidArgument;case 401:return R.Unauthenticated;case 403:return R.PermissionDenied;case 404:return R.Unimplemented;case 408:return R.DeadlineExceeded;case 409:return R.Aborted;case 412:return R.FailedPrecondition;case 413:return R.ResourceExhausted;case 415:return R.Internal;case 429:return R.Unavailable;case 431:return R.ResourceExhausted;case 502:return R.Unavailable;case 503:return R.Unavailable;case 504:return R.Unavailable;default:return R.Unknown}}function kn(n){let e=new Headers,t=new Headers;return n.forEach((a,r)=>{r.toLowerCase().startsWith("trailer-")?t.set(r.substring(8),a):e.set(r,a)}),[e,t]}var bn="1";function xn(n,e,t,a,r){let o=new Headers(a??{});return t!==void 0&&o.set(Ea,`${t}`),o.set(Xe,n==h.Unary?e?Ja:Sa:e?ka:ba),o.set(Sn,bn),r&&o.set(Na,"connect-es/1.3.0"),o}function In(n,e,t){let a=t.get("Content-Type"),r=xa(a);if(e!==200){let o=new I(`HTTP ${e}`,Oa(e),t);if(n==h.Unary&&r&&!r.binary)return{isUnaryError:!0,unaryError:o};throw o}return{isUnaryError:!1}}var Ba="application/";function ws(n,e){return e?V.enc(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):encodeURIComponent(new TextDecoder().decode(n))}function Sr(n,e,t){let a=`?connect=v${bn}`,r=n.header.get(Xe);r?.indexOf(Ba)===0&&(a+="&encoding="+encodeURIComponent(r.slice(Ba.length)));let o=n.header.get(Jn);o!==null&&o!=="identity"&&(a+="&compression="+encodeURIComponent(o),t=!0),t&&(a+="&base64=1"),a+="&message="+ws(e,t);let i=n.url+a,l=new Headers(n.header);return[Sn,Xe,Ia,Jn,Jr].forEach(u=>l.delete(u)),Object.assign(Object.assign({},n),{init:Object.assign(Object.assign({},n.init),{method:"GET"}),url:i,header:l})}function kr(n){let e=qa(n.next,n.interceptors),[t,a,r]=va(n),o=Object.assign(Object.assign({},n.req),{message:Pr(n.req.method.I,n.req.message),signal:t});return e(o).then(i=>(r(),i),a)}function br(n){let e=qa(n.next,n.interceptors),[t,a,r]=va(n),o=Object.assign(Object.assign({},n.req),{message:wa(n.req.method.I,n.req.message),signal:t}),i=!1;return t.addEventListener("abort",function(){var l,u;let d=n.req.message[Symbol.asyncIterator]();i||(l=d.throw)===null||l===void 0||l.call(d,this.reason).catch(()=>{}),(u=d.return)===null||u===void 0||u.call(d).catch(()=>{})}),e(o).then(l=>Object.assign(Object.assign({},l),{message:{[Symbol.asyncIterator](){let u=l.message[Symbol.asyncIterator]();return{next(){return u.next().then(d=>(d.done==!0&&(i=!0,r()),d),a)}}}}}),a)}function va(n){let{signal:e,cleanup:t}=Ta(n.timeoutMs),a=ha(n.signal,e);return[a.signal,function(o){let i=I.from(e.aborted?wr(e):o);return a.abort(i),t(),Promise.reject(i)},function(){t(),a.abort()}]}function qa(n,e){var t;return(t=e?.concat().reverse().reduce((a,r)=>r(a),n))!==null&&t!==void 0?t:n}function Ma(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Ke=function(n){return this instanceof Ke?(this.v=n,this):new Ke(n)},Ps=function(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a=t.apply(n,e||[]),r,o=[];return r={},l("next"),l("throw"),l("return",i),r[Symbol.asyncIterator]=function(){return this},r;function i(p){return function(y){return Promise.resolve(y).then(p,P)}}function l(p,y){a[p]&&(r[p]=function(w){return new Promise(function(S,N){o.push([p,w,S,N])>1||u(p,w)})},y&&(r[p]=y(r[p])))}function u(p,y){try{d(a[p](y))}catch(w){T(o[0][3],w)}}function d(p){p.value instanceof Ke?Promise.resolve(p.value.v).then(g,P):T(o[0][2],p)}function g(p){u("next",p)}function P(p){u("throw",p)}function T(p,y){p(y),o.shift(),o.length&&u(o[0][0],o[0][1])}};function xr(n){var e;Ma();let t=(e=n.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(a,r,o,i,l,u,d){var g;let{serialize:P,parse:T}=Pn(r,t,n.jsonOptions,n.binaryOptions);return i=i===void 0?n.defaultTimeoutMs:i<=0?void 0:i,await kr({interceptors:n.interceptors,signal:o,timeoutMs:i,req:{stream:!1,service:a,method:r,url:Tn(n.baseUrl,a,r),init:{method:"POST",credentials:(g=n.credentials)!==null&&g!==void 0?g:"same-origin",redirect:"error",mode:"cors"},header:xn(r.kind,t,i,l,!1),contextValues:d??hn(),message:u},next:async p=>{var y;let w=n.useHttpGet===!0&&r.idempotency===ve.NoSideEffects,S=null;w?p=Sr(p,P(p.message),t):S=P(p.message);let E=await((y=n.fetch)!==null&&y!==void 0?y:globalThis.fetch)(p.url,Object.assign(Object.assign({},p.init),{headers:p.header,signal:p.signal,body:S})),{isUnaryError:G,unaryError:xe}=In(r.kind,E.status,E.headers);if(G)throw We(await E.json(),yr(...kn(E.headers)),xe);let[Ze,Nn]=kn(E.headers);return{stream:!1,service:a,method:r,header:Ze,message:t?T(new Uint8Array(await E.arrayBuffer())):r.O.fromJson(await E.json(),wn(n.jsonOptions)),trailer:Nn}}})},async stream(a,r,o,i,l,u,d){var g;let{serialize:P,parse:T}=Pn(r,t,n.jsonOptions,n.binaryOptions);function p(w,S,N){return Ps(this,arguments,function*(){let G=hr(w).getReader(),xe=!1;for(;;){let Ze=yield Ke(G.read());if(Ze.done)break;let{flags:Nn,data:Er}=Ze.value;if((Nn&Rn)===Rn){xe=!0;let On=Rr(Er);if(On.error){let _e=On.error;throw N.forEach((Bn,Da)=>{_e.metadata.append(Da,Bn)}),_e}On.metadata.forEach((_e,Bn)=>S.set(Bn,_e));continue}yield yield Ke(T(Er))}if(!xe)throw"missing EndStreamResponse"})}async function y(w){if(r.kind!=h.ServerStreaming)throw"The fetch API does not support streaming request bodies";let S=await w[Symbol.asyncIterator]().next();if(S.done==!0)throw"missing request message";return Tr(0,P(S.value))}return i=i===void 0?n.defaultTimeoutMs:i<=0?void 0:i,await br({interceptors:n.interceptors,timeoutMs:i,signal:o,req:{stream:!0,service:a,method:r,url:Tn(n.baseUrl,a,r),init:{method:"POST",credentials:(g=n.credentials)!==null&&g!==void 0?g:"same-origin",redirect:"error",mode:"cors"},header:xn(r.kind,t,i,l,!1),contextValues:d??hn(),message:u},next:async w=>{var S;let E=await((S=n.fetch)!==null&&S!==void 0?S:globalThis.fetch)(w.url,Object.assign(Object.assign({},w.init),{headers:w.header,signal:w.signal,body:await y(w.message)}));if(In(r.kind,E.status,E.headers),E.body===null)throw"missing response body";let G=new Headers;return Object.assign(Object.assign({},w),{header:E.headers,trailer:G,message:p(E.body,G,E.headers)})}})}}}var Rs="https://demo.lunabrain.com",En=xr({baseUrl:`${Rs}/api`||"error"}),ec=be(la,En),Ua=be(ua,En),La=be(ca,En),tc=be(da,En);var Ca="content/get",Fa="content/save";var Ir;var Qe=new Map;function Aa(n){let e=/https:\/\/chat\.openai\.com\/backend-api\/conversation\/([0-9a-fA-F\-]+)/,t=n.match(e);return t?t[1]:null}var Js=()=>{async function n(r){try{let o=await Ua.save({content:r,related:[]});console.log(o)}catch(o){console.error("failed to save",o)}}(async()=>{let r=await La.login({},{});console.log(r)})(),chrome.runtime.onInstalled.addListener(function(){console.log("Extension Installed")}),chrome.runtime.onStartup.addListener(function(){console.log("Extension Started")}),chrome.webNavigation.onCommitted.addListener(r=>{console.log("completed",r.url)});function e(r){return new Promise((o,i)=>{chrome.tabs.get(r,l=>{chrome.runtime.lastError?o(void 0):o(l)})})}chrome.runtime.onMessage.addListener(async(r,o,i)=>{if(r.action===Ca&&(i({data:Ir}),Ir=void 0),r.action===Fa){console.log("asdf");let l=v.fromJson(r.data);try{await n(l)}catch(u){i({data:{error:u}});return}i({data:{}})}}),chrome.tabs.onUpdated.addListener(async(r,o,i)=>{if(!r)return;let l=await e(r);if(l){let u=Qe.get(r);u&&Qe.set(r,{...u,tab:l})}}),chrome.tabs.onCreated.addListener(async r=>{if(!r.id)return;let o=await e(r.id);o&&Qe.set(r.id,{created:Date.now(),closed:-1,tab:o})}),chrome.tabs.onRemoved.addListener(async(r,o)=>{let i=Qe.get(r);if(i){let l={...i,closed:Date.now()};Qe.set(r,l),console.log("tab was opened for",(l.closed-l.created)/1e3,"seconds")}}),chrome.webRequest.onBeforeRequest.addListener(r=>{if(!r.initiator||r.type!=="main_frame")return;let o=new URL(r.initiator),i=new URL(r.url);o.host!==i.host&&(o.host==="news.ycombinator.com"&&(Ir={from:r.initiator,to:r.url}),console.log(`Visited URL: ${r.url}, Referrer: ${r.initiator}`))},{urls:[""]},[]);let t={},a={};chrome.webRequest.onCompleted.addListener(r=>{let o=a[r.url.toString()]||0;if(Aa(r.url)&&o<2){let i=t[r.url.toString()];console.log("completed",r.url,r),fetch(r.url,{headers:i.map(l=>[l.name,l.value||""])}).then(l=>l.json()).then(l=>{console.log("json",l)}).catch(l=>{console.error("failed to fetch",l)})}},{urls:[""]},[]),chrome.webRequest.onBeforeSendHeaders.addListener(r=>{let o="";if(!r.requestHeaders)return;let i=a[r.url.toString()]||0;Aa(r.url)&&(a[r.url.toString()]=i+1,t[r.url.toString()]=r.requestHeaders,console.log("send",r.url,r));for(let l of r.requestHeaders)if(l.name.toLowerCase()==="referer"&&l.value){o=l.value;break}},{urls:[""]},["requestHeaders"])};console.log("asdf");Js();})(); diff --git a/js/dist/extension/background.js.map b/js/dist/extension/background.js.map index 4790df73..ab5503df 100644 --- a/js/dist/extension/background.js.map +++ b/js/dist/extension/background.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../../node_modules/@bufbuild/protobuf/dist/esm/private/assert.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/enum.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/message.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/field.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/varint.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/names.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/field.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto3.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format-proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/private/json-format-proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/proto2.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/service-type.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/descriptor_pb.js", "../../../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/empty_pb.js", "../../rpc/user/user_pb.ts", "../../rpc/content/content_pb.ts", "../../rpc/protoflow_pb.ts", "../../rpc/ai_pb.ts", "../../rpc/protoflow_connect.ts", "../../rpc/content/content_connect.ts", "../../rpc/user/user_connect.ts", "../../rpc/chat/chat_pb.ts", "../../rpc/chat/chat_connect.ts", "../../../node_modules/@connectrpc/connect/dist/esm/code.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js", "../../../node_modules/@connectrpc/connect/dist/esm/connect-error.js", "../../../node_modules/@connectrpc/connect/dist/esm/http-headers.js", "../../../node_modules/@connectrpc/connect/dist/esm/any-client.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js", "../../../node_modules/@connectrpc/connect/dist/esm/promise-client.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/signals.js", "../../../node_modules/@connectrpc/connect/dist/esm/context-values.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js", "../../../node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js", "../../../node_modules/@connectrpc/connect-web/dist/esm/assert-fetch-api.js", "../../../node_modules/@connectrpc/connect-web/dist/esm/connect-transport.js", "../../site/service.ts", "../../extension/shared.tsx", "../../extension/background.tsx"], - "sourcesContent": ["// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Assert that condition is truthy or throw error (with message)\n */\nexport function assert(condition, msg) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean\n if (!condition) {\n throw new Error(msg);\n }\n}\nconst FLOAT32_MAX = 3.4028234663852886e38, FLOAT32_MIN = -3.4028234663852886e38, UINT32_MAX = 0xffffffff, INT32_MAX = 0x7fffffff, INT32_MIN = -0x80000000;\n/**\n * Assert a valid signed protobuf 32-bit integer.\n */\nexport function assertInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid int 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)\n throw new Error(\"invalid int 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer.\n */\nexport function assertUInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid uint 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)\n throw new Error(\"invalid uint 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid protobuf float value.\n */\nexport function assertFloat32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid float 32: \" + typeof arg);\n if (!Number.isFinite(arg))\n return;\n if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)\n throw new Error(\"invalid float 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./assert.js\";\nconst enumTypeSymbol = Symbol(\"@bufbuild/protobuf/enum-type\");\n/**\n * Get reflection information from a generated enum.\n * If this function is called on something other than a generated\n * enum, it raises an error.\n */\nexport function getEnumType(enumObject) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-explicit-any\n const t = enumObject[enumTypeSymbol];\n assert(t, \"missing enum type on enum object\");\n return t; // eslint-disable-line @typescript-eslint/no-unsafe-return\n}\n/**\n * Sets reflection information on a generated enum.\n */\nexport function setEnumType(enumObject, typeName, values, opt) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n enumObject[enumTypeSymbol] = makeEnumType(typeName, values.map((v) => ({\n no: v.no,\n name: v.name,\n localName: enumObject[v.no],\n })), opt);\n}\n/**\n * Create a new EnumType with the given values.\n */\nexport function makeEnumType(typeName, values, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_opt) {\n const names = Object.create(null);\n const numbers = Object.create(null);\n const normalValues = [];\n for (const value of values) {\n // We do not surface options at this time\n // const value: EnumValueInfo = {...v, options: v.options ?? emptyReadonlyObject};\n const n = normalizeEnumValue(value);\n normalValues.push(n);\n names[value.name] = n;\n numbers[value.no] = n;\n }\n return {\n typeName,\n values: normalValues,\n // We do not surface options at this time\n // options: opt?.options ?? Object.create(null),\n findName(name) {\n return names[name];\n },\n findNumber(no) {\n return numbers[no];\n },\n };\n}\n/**\n * Create a new enum object with the given values.\n * Sets reflection information.\n */\nexport function makeEnum(typeName, values, opt) {\n const enumObject = {};\n for (const value of values) {\n const n = normalizeEnumValue(value);\n enumObject[n.localName] = n.no;\n enumObject[n.no] = n.localName;\n }\n setEnumType(enumObject, typeName, values, opt);\n return enumObject;\n}\nfunction normalizeEnumValue(value) {\n if (\"localName\" in value) {\n return value;\n }\n return Object.assign(Object.assign({}, value), { localName: value.name });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Message is the base class of every message, generated, or created at\n * runtime.\n *\n * It is _not_ safe to extend this class. If you want to create a message at\n * run time, use proto3.makeMessageType().\n */\nexport class Message {\n /**\n * Compare with a message of the same type.\n */\n equals(other) {\n return this.getType().runtime.util.equals(this.getType(), this, other);\n }\n /**\n * Create a deep copy.\n */\n clone() {\n return this.getType().runtime.util.clone(this);\n }\n /**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n fromBinary(bytes, options) {\n const type = this.getType(), format = type.runtime.bin, opt = format.makeReadOptions(options);\n format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt);\n return this;\n }\n /**\n * Parse a message from a JSON value.\n */\n fromJson(jsonValue, options) {\n const type = this.getType(), format = type.runtime.json, opt = format.makeReadOptions(options);\n format.readMessage(type, jsonValue, opt, this);\n return this;\n }\n /**\n * Parse a message from a JSON string.\n */\n fromJsonString(jsonString, options) {\n let json;\n try {\n json = JSON.parse(jsonString);\n }\n catch (e) {\n throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`);\n }\n return this.fromJson(json, options);\n }\n /**\n * Serialize the message to binary data.\n */\n toBinary(options) {\n const type = this.getType(), bin = type.runtime.bin, opt = bin.makeWriteOptions(options), writer = opt.writerFactory();\n bin.writeMessage(this, writer, opt);\n return writer.finish();\n }\n /**\n * Serialize the message to a JSON value, a JavaScript value that can be\n * passed to JSON.stringify().\n */\n toJson(options) {\n const type = this.getType(), json = type.runtime.json, opt = json.makeWriteOptions(options);\n return json.writeMessage(this, opt);\n }\n /**\n * Serialize the message to a JSON string.\n */\n toJsonString(options) {\n var _a;\n const value = this.toJson(options);\n return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n }\n /**\n * Override for serialization behavior. This will be invoked when calling\n * JSON.stringify on this message (i.e. JSON.stringify(msg)).\n *\n * Note that this will not serialize google.protobuf.Any with a packed\n * message because the protobuf JSON format specifies that it needs to be\n * unpacked, and this is only possible with a type registry to look up the\n * message type. As a result, attempting to serialize a message with this\n * type will throw an Error.\n *\n * This method is protected because you should not need to invoke it\n * directly -- instead use JSON.stringify or toJsonString for\n * stringified JSON. Alternatively, if actual JSON is desired, you should\n * use toJson.\n */\n toJSON() {\n return this.toJson({\n emitDefaultValues: true,\n });\n }\n /**\n * Retrieve the MessageType of this message - a singleton that represents\n * the protobuf message declaration and provides metadata for reflection-\n * based operations.\n */\n getType() {\n // Any class that extends Message _must_ provide a complete static\n // implementation of MessageType.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return\n return Object.getPrototypeOf(this).constructor;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\n/**\n * Create a new message type using the given runtime.\n */\nexport function makeMessageType(runtime, typeName, fields, opt) {\n var _a;\n const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(\".\") + 1);\n const type = {\n [localName]: function (data) {\n runtime.util.initFields(this);\n runtime.util.initPartial(data, this);\n },\n }[localName];\n Object.setPrototypeOf(type.prototype, new Message());\n Object.assign(type, {\n runtime,\n typeName,\n fields: runtime.util.newFieldList(fields),\n fromBinary(bytes, options) {\n return new type().fromBinary(bytes, options);\n },\n fromJson(jsonValue, options) {\n return new type().fromJson(jsonValue, options);\n },\n fromJsonString(jsonString, options) {\n return new type().fromJsonString(jsonString, options);\n },\n equals(a, b) {\n return runtime.util.equals(type, a, b);\n },\n });\n return type;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { getEnumType, makeEnum, makeEnumType } from \"./enum.js\";\nimport { makeMessageType } from \"./message-type.js\";\nexport function makeProtoRuntime(syntax, json, bin, util) {\n return {\n syntax,\n json,\n bin,\n util,\n makeMessageType(typeName, fields, opt) {\n return makeMessageType(this, typeName, fields, opt);\n },\n makeEnum,\n makeEnumType,\n getEnumType,\n };\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nexport var ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of fields with 64 bit integral types (int64, uint64,\n * sint64, fixed64, sfixed64).\n *\n * This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,\n * JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use\n * String if `[jstype = JS_STRING]` is specified.\n *\n * ```protobuf\n * uint64 field_a = 1; // BigInt\n * uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt\n * uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt\n * uint64 field_b = 2 [jstype = JS_STRING]; // String\n * ```\n */\nexport var LongType;\n(function (LongType) {\n /**\n * Use JavaScript BigInt.\n */\n LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n /**\n * Use JavaScript String.\n *\n * Field option `[jstype = JS_STRING]`.\n */\n LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n})(LongType || (LongType = {}));\n", "// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = (bits.hi & 0x80000000);\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1FFFFF) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xFFFFFF;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xFFFFFF;\n const high = (hi >> 16) & 0xFFFF;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + (mid * 6777216) + (high * 6710656);\n let digitB = mid + (high * 8147497);\n let digitC = (high * 2);\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA);\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./private/assert.js\";\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./google/varint.js\";\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`int64 invalid: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`uint64 invalid: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n const assertInt64String = (value) => assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);\n const assertUInt64String = (value) => assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nexport const protoInt64 = makeInt64Support();\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./google/varint.js\";\nimport { assertFloat32, assertInt32, assertUInt32 } from \"./private/assert.js\";\nimport { protoInt64 } from \"./proto-int64.js\";\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\nexport class BinaryWriter {\n constructor(textEncoder) {\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.textEncoder.encode(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, textDecoder) {\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder();\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element on the wire and return the skipped data.\n * Supports WireType.StartGroup since v2.0.0-alpha.23.\n */\n skip(wireType) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n // From descriptor.proto: Group type is deprecated, not supported in proto3.\n // But we must still be able to parse and treat as unknown.\n let t;\n while ((t = this.tag()[1]) !== WireType.EndGroup) {\n this.skip(t);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.textDecoder.decode(this.bytes());\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../field.js\";\n/**\n * Wrap a primitive message field value in its corresponding wrapper\n * message. This function is idempotent.\n */\nexport function wrapField(type, value) {\n if (value instanceof Message || !type.fieldWrapper) {\n return value;\n }\n return type.fieldWrapper.wrapField(value);\n}\n/**\n * If the given field uses one of the well-known wrapper types, return\n * the primitive type it wraps.\n */\nexport function getUnwrappedFieldType(field) {\n if (field.fieldKind !== \"message\") {\n return undefined;\n }\n if (field.repeated) {\n return undefined;\n }\n if (field.oneof != undefined) {\n return undefined;\n }\n return wktWrapperToScalarType[field.message.typeName];\n}\nconst wktWrapperToScalarType = {\n \"google.protobuf.DoubleValue\": ScalarType.DOUBLE,\n \"google.protobuf.FloatValue\": ScalarType.FLOAT,\n \"google.protobuf.Int64Value\": ScalarType.INT64,\n \"google.protobuf.UInt64Value\": ScalarType.UINT64,\n \"google.protobuf.Int32Value\": ScalarType.INT32,\n \"google.protobuf.UInt32Value\": ScalarType.UINT32,\n \"google.protobuf.BoolValue\": ScalarType.BOOL,\n \"google.protobuf.StringValue\": ScalarType.STRING,\n \"google.protobuf.BytesValue\": ScalarType.BYTES,\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { LongType, ScalarType } from \"../field.js\";\nimport { WireType } from \"../binary-encoding.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns true if both scalar values are equal.\n */\nexport function scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the default value for the given scalar type, following\n * proto3 semantics.\n */\nexport function scalarDefaultValue(type, longType) {\n switch (type) {\n case ScalarType.BOOL:\n return false;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n return longType == 0 ? protoInt64.zero : \"0\";\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.BYTES:\n return new Uint8Array(0);\n case ScalarType.STRING:\n return \"\";\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n }\n}\n/**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value for proto3 semantics\n *\n * If argument `value` is omitted, [2] is always false.\n */\nexport function scalarTypeInfo(type, value) {\n const isUndefined = value === undefined;\n let wireType = WireType.Varint;\n let isIntrinsicDefault = value === 0;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- INT32, UINT32, SINT32 are covered by the defaults\n switch (type) {\n case ScalarType.STRING:\n isIntrinsicDefault = isUndefined || !value.length;\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.BOOL:\n isIntrinsicDefault = value === false;\n break;\n case ScalarType.DOUBLE:\n wireType = WireType.Bit64;\n break;\n case ScalarType.FLOAT:\n wireType = WireType.Bit32;\n break;\n case ScalarType.INT64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n break;\n case ScalarType.UINT64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n break;\n case ScalarType.FIXED64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n wireType = WireType.Bit64;\n break;\n case ScalarType.BYTES:\n isIntrinsicDefault = isUndefined || !value.byteLength;\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.FIXED32:\n wireType = WireType.Bit32;\n break;\n case ScalarType.SFIXED32:\n wireType = WireType.Bit32;\n break;\n case ScalarType.SFIXED64:\n isIntrinsicDefault = isUndefined || value == 0;\n wireType = WireType.Bit64;\n break;\n case ScalarType.SINT64:\n isIntrinsicDefault = isUndefined || value == 0;\n break;\n }\n const method = ScalarType[type].toLowerCase();\n return [wireType, method, isUndefined || isIntrinsicDefault];\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { BinaryReader, BinaryWriter, WireType } from \"../binary-encoding.js\";\nimport { Message } from \"../message.js\";\nimport { LongType, ScalarType } from \"../field.js\";\nimport { wrapField } from \"./field-wrapper.js\";\nimport { scalarDefaultValue, scalarTypeInfo } from \"./scalars.js\";\nimport { assert } from \"./assert.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unnecessary-condition, no-case-declarations, prefer-const */\nconst unknownFieldsSymbol = Symbol(\"@bufbuild/protobuf/unknown-fields\");\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n readerFactory: (bytes) => new BinaryReader(bytes),\n};\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n writerFactory: () => new BinaryWriter(),\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nexport function makeBinaryFormatCommon() {\n return {\n makeReadOptions,\n makeWriteOptions,\n listUnknownFields(message) {\n var _a;\n return (_a = message[unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : [];\n },\n discardUnknownFields(message) {\n delete message[unknownFieldsSymbol];\n },\n writeUnknownFields(message, writer) {\n const m = message;\n const c = m[unknownFieldsSymbol];\n if (c) {\n for (const f of c) {\n writer.tag(f.no, f.wireType).raw(f.data);\n }\n }\n },\n onUnknownField(message, no, wireType, data) {\n const m = message;\n if (!Array.isArray(m[unknownFieldsSymbol])) {\n m[unknownFieldsSymbol] = [];\n }\n m[unknownFieldsSymbol].push({ no, wireType, data });\n },\n readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) {\n const type = message.getType();\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n const end = delimitedMessageEncoding\n ? reader.len\n : reader.pos + lengthOrEndTagFieldNo;\n let fieldNo, wireType;\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (wireType == WireType.EndGroup) {\n break;\n }\n const field = type.fields.find(fieldNo);\n if (!field) {\n const data = reader.skip(wireType);\n if (options.readUnknownFields) {\n this.onUnknownField(message, fieldNo, wireType, data);\n }\n continue;\n }\n let target = message, repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n target = target[field.oneof.localName];\n if (target.case != localName) {\n delete target.value;\n }\n target.case = localName;\n localName = \"value\";\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n const scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n let read = readScalar;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n if (field.kind == \"scalar\" && field.L > 0) {\n read = readScalarLTString;\n }\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n if (wireType == WireType.LengthDelimited &&\n scalarType != ScalarType.STRING &&\n scalarType != ScalarType.BYTES) {\n let e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n target[localName] = read(reader, scalarType);\n }\n break;\n case \"message\":\n const messageType = field.T;\n if (repeated) {\n // safe to assume presence of array, oneof cannot contain repeated values\n target[localName].push(readMessageField(reader, new messageType(), options, field));\n }\n else {\n if (target[localName] instanceof Message) {\n readMessageField(reader, target[localName], options, field);\n }\n else {\n target[localName] = readMessageField(reader, new messageType(), options, field);\n if (messageType.fieldWrapper &&\n !field.oneof &&\n !field.repeated) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n }\n break;\n case \"map\":\n let [mapKey, mapVal] = readMapEntry(field, reader, options);\n // safe to assume presence of map object, oneof cannot contain repeated values\n target[localName][mapKey] = mapVal;\n break;\n }\n }\n if (delimitedMessageEncoding && // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n (wireType != WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) {\n throw new Error(`invalid end group tag`);\n }\n },\n };\n}\n// Read a message, avoiding MessageType.fromBinary() to re-use the\n// BinaryReadOptions and the IBinaryReader.\nfunction readMessageField(reader, message, options, field) {\n const format = message.getType().runtime.bin;\n const delimited = field === null || field === void 0 ? void 0 : field.delimited;\n format.readMessage(message, reader, delimited ? field === null || field === void 0 ? void 0 : field.no : reader.uint32(), // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n options, delimited);\n return message;\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(field, reader, options) {\n const length = reader.uint32(), end = reader.pos + length;\n let key, val;\n while (reader.pos < end) {\n let [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.K);\n break;\n case 2:\n switch (field.V.kind) {\n case \"scalar\":\n val = readScalar(reader, field.V.T);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, new field.V.T(), options, undefined);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n let keyRaw = scalarDefaultValue(field.K, LongType.BIGINT);\n key =\n field.K == ScalarType.BOOL\n ? keyRaw.toString()\n : keyRaw;\n }\n if (typeof key != \"string\" && typeof key != \"number\") {\n key = key.toString();\n }\n if (val === undefined) {\n switch (field.V.kind) {\n case \"scalar\":\n val = scalarDefaultValue(field.V.T, LongType.BIGINT);\n break;\n case \"enum\":\n val = 0;\n break;\n case \"message\":\n val = new field.V.T();\n break;\n }\n }\n return [key, val];\n}\n// Read a scalar value, but return 64 bit integral types (int64, uint64,\n// sint64, fixed64, sfixed64) as string instead of bigint.\nexport function readScalarLTString(reader, type) {\n const v = readScalar(reader, type);\n return typeof v == \"bigint\" ? v.toString() : v;\n}\n// Does not use scalarTypeInfo() for better performance.\nfunction readScalar(reader, type) {\n switch (type) {\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.INT64:\n return reader.int64();\n case ScalarType.UINT64:\n return reader.uint64();\n case ScalarType.FIXED64:\n return reader.fixed64();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reader.sfixed64();\n case ScalarType.SINT64:\n return reader.sint64();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SINT32:\n return reader.sint32();\n }\n}\nexport function writeMapEntry(writer, options, field, key, value) {\n writer.tag(field.no, WireType.LengthDelimited);\n writer.fork();\n // javascript only allows number or string for object properties\n // we convert from our representation to the protobuf type\n let keyValue = key;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- we deliberately handle just the special cases for map keys\n switch (field.K) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n keyValue = Number.parseInt(key);\n break;\n case ScalarType.BOOL:\n assert(key == \"true\" || key == \"false\");\n keyValue = key == \"true\";\n break;\n }\n // write key, expecting key field number = 1\n writeScalar(writer, field.K, 1, keyValue, true);\n // write value, expecting value field number = 2\n switch (field.V.kind) {\n case \"scalar\":\n writeScalar(writer, field.V.T, 2, value, true);\n break;\n case \"enum\":\n writeScalar(writer, ScalarType.INT32, 2, value, true);\n break;\n case \"message\":\n writer.tag(2, WireType.LengthDelimited).bytes(value.toBinary(options));\n break;\n }\n writer.join();\n}\nexport function writeMessageField(writer, options, field, value) {\n if (value !== undefined) {\n const message = wrapField(field.T, value);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field === null || field === void 0 ? void 0 : field.delimited)\n writer\n .tag(field.no, WireType.StartGroup)\n .raw(message.toBinary(options))\n .tag(field.no, WireType.EndGroup);\n else\n writer\n .tag(field.no, WireType.LengthDelimited)\n .bytes(message.toBinary(options));\n }\n}\nexport function writeScalar(writer, type, fieldNo, value, emitIntrinsicDefault) {\n let [wireType, method, isIntrinsicDefault] = scalarTypeInfo(type, value);\n if (!isIntrinsicDefault || emitIntrinsicDefault) {\n writer.tag(fieldNo, wireType)[method](value);\n }\n}\nexport function writePacked(writer, type, fieldNo, value) {\n if (!value.length) {\n return;\n }\n writer.tag(fieldNo, WireType.LengthDelimited).fork();\n let [, method] = scalarTypeInfo(type);\n for (let i = 0; i < value.length; i++) {\n writer[method](value[i]);\n }\n writer.join();\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ScalarType } from \"../field.js\";\nimport { makeBinaryFormatCommon, writeMapEntry, writeMessageField, writePacked, writeScalar, } from \"./binary-format-common.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions, prefer-const, no-case-declarations */\nexport function makeBinaryFormatProto3() {\n return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) {\n const type = message.getType();\n for (const field of type.fields.byNumber()) {\n let value, // this will be our field value, whether it is member of a oneof or regular field\n repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n const oneof = message[field.oneof.localName];\n if (oneof.case !== localName) {\n continue; // field is not selected, skip\n }\n value = oneof.value;\n }\n else {\n value = message[localName];\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item, true);\n }\n }\n }\n else {\n if (value !== undefined) {\n writeScalar(writer, scalarType, field.no, value, !!field.oneof || field.opt);\n }\n }\n break;\n case \"message\":\n if (repeated) {\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n } });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n// lookup table from base64 character to byte\nlet encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++)\n decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\nexport const protoBase64 = {\n /**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\n dec(base64Str) {\n // estimate byte size, not accounting for inner padding and whitespace\n let es = (base64Str.length * 3) / 4;\n if (base64Str[base64Str.length - 2] == \"=\")\n es -= 2;\n else if (base64Str[base64Str.length - 1] == \"=\")\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = decTable[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"=\":\n groupPos = 0; // reset state when padding found\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue; // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string.\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = ((p & 3) << 6) | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(\"invalid base64 string.\");\n return bytes.subarray(0, bytePos);\n },\n /**\n * Encode a byte array to a base64 string.\n */\n enc(bytes) {\n let base64 = \"\", groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += encTable[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += encTable[p | (b >> 4)];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += encTable[p | (b >> 6)];\n base64 += encTable[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += encTable[p];\n base64 += \"=\";\n if (groupPos == 1)\n base64 += \"=\";\n }\n return base64;\n },\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { LongType, ScalarType } from \"../field.js\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { protoBase64 } from \"../proto-base64.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\n// Default options for parsing JSON.\nconst jsonReadDefaults = {\n ignoreUnknownFields: false,\n};\n// Default options for serializing to JSON.\nconst jsonWriteDefaults = {\n emitDefaultValues: false,\n enumAsInteger: false,\n useProtoFieldName: false,\n prettySpaces: 0,\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonWriteDefaults), options) : jsonWriteDefaults;\n}\nexport function makeJsonFormatCommon(makeWriteField) {\n const writeField = makeWriteField(writeEnum, writeScalar);\n return {\n makeReadOptions,\n makeWriteOptions,\n readMessage(type, json, options, message) {\n if (json == null || Array.isArray(json) || typeof json != \"object\") {\n throw new Error(`cannot decode message ${type.typeName} from JSON: ${this.debug(json)}`);\n }\n message = message !== null && message !== void 0 ? message : new type();\n const oneofSeen = {};\n for (const [jsonKey, jsonValue] of Object.entries(json)) {\n const field = type.fields.findJsonName(jsonKey);\n if (!field) {\n if (!options.ignoreUnknownFields) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: key \"${jsonKey}\" is unknown`);\n }\n continue;\n }\n let localName = field.localName;\n let target = message;\n if (field.oneof) {\n if (jsonValue === null && field.kind == \"scalar\") {\n // see conformance test Required.Proto3.JsonInput.OneofFieldNull{First,Second}\n continue;\n }\n const seen = oneofSeen[field.oneof.localName];\n if (seen) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof \"${field.oneof.name}\" present: \"${seen}\", \"${jsonKey}\"`);\n }\n oneofSeen[field.oneof.localName] = jsonKey;\n target = target[field.oneof.localName] = { case: localName };\n localName = \"value\";\n }\n if (field.repeated) {\n if (jsonValue === null) {\n continue;\n }\n if (!Array.isArray(jsonValue)) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`);\n }\n const targetArray = target[localName];\n for (const jsonItem of jsonValue) {\n if (jsonItem === null) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`);\n }\n let val;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- \"map\" is invalid for repeated fields\n switch (field.kind) {\n case \"message\":\n val = field.T.fromJson(jsonItem, options);\n break;\n case \"enum\":\n val = readEnum(field.T, jsonItem, options.ignoreUnknownFields);\n if (val === undefined)\n continue;\n break;\n case \"scalar\":\n try {\n val = readScalar(field.T, jsonItem, field.L);\n }\n catch (e) {\n let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n targetArray.push(val);\n }\n }\n else if (field.kind == \"map\") {\n if (jsonValue === null) {\n continue;\n }\n if (Array.isArray(jsonValue) || typeof jsonValue != \"object\") {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`);\n }\n const targetMap = target[localName];\n for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) {\n if (jsonMapValue === null) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: map value null`);\n }\n let val;\n switch (field.V.kind) {\n case \"message\":\n val = field.V.T.fromJson(jsonMapValue, options);\n break;\n case \"enum\":\n val = readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields);\n if (val === undefined)\n continue;\n break;\n case \"scalar\":\n try {\n val = readScalar(field.V.T, jsonMapValue, LongType.BIGINT);\n }\n catch (e) {\n let m = `cannot decode map value for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n try {\n targetMap[readScalar(field.K, field.K == ScalarType.BOOL\n ? jsonMapKey == \"true\"\n ? true\n : jsonMapKey == \"false\"\n ? false\n : jsonMapKey\n : jsonMapKey, LongType.BIGINT).toString()] = val;\n }\n catch (e) {\n let m = `cannot decode map key for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n }\n }\n else {\n switch (field.kind) {\n case \"message\":\n const messageType = field.T;\n if (jsonValue === null &&\n messageType.typeName != \"google.protobuf.Value\") {\n if (field.oneof) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: null is invalid for oneof field \"${jsonKey}\"`);\n }\n continue;\n }\n if (target[localName] instanceof Message) {\n target[localName].fromJson(jsonValue, options);\n }\n else {\n target[localName] = messageType.fromJson(jsonValue, options);\n if (messageType.fieldWrapper && !field.oneof) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n break;\n case \"enum\":\n const enumValue = readEnum(field.T, jsonValue, options.ignoreUnknownFields);\n if (enumValue !== undefined) {\n target[localName] = enumValue;\n }\n break;\n case \"scalar\":\n try {\n target[localName] = readScalar(field.T, jsonValue, field.L);\n }\n catch (e) {\n let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n }\n }\n return message;\n },\n writeMessage(message, options) {\n const type = message.getType();\n const json = {};\n let field;\n try {\n for (const member of type.fields.byMember()) {\n let jsonValue;\n if (member.kind == \"oneof\") {\n const oneof = message[member.localName];\n if (oneof.value === undefined) {\n continue;\n }\n field = member.findField(oneof.case);\n if (!field) {\n throw \"oneof case not found: \" + oneof.case;\n }\n jsonValue = writeField(field, oneof.value, options);\n }\n else {\n field = member;\n jsonValue = writeField(field, message[field.localName], options);\n }\n if (jsonValue !== undefined) {\n json[options.useProtoFieldName ? field.name : field.jsonName] =\n jsonValue;\n }\n }\n }\n catch (e) {\n const m = field\n ? `cannot encode field ${type.typeName}.${field.name} to JSON`\n : `cannot encode message ${type.typeName} to JSON`;\n const r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n return json;\n },\n readScalar,\n writeScalar,\n debug: debugJsonValue,\n };\n}\nfunction debugJsonValue(json) {\n if (json === null) {\n return \"null\";\n }\n switch (typeof json) {\n case \"object\":\n return Array.isArray(json) ? \"array\" : \"object\";\n case \"string\":\n return json.length > 100 ? \"string\" : `\"${json.split('\"').join('\\\\\"')}\"`;\n default:\n return String(json);\n }\n}\n// May throw an error. If the error message is non-blank, it should be shown.\n// It is up to the caller to provide context.\nfunction readScalar(type, json, longType) {\n // every valid case in the switch below returns, and every fall\n // through is regarded as a failure.\n switch (type) {\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n if (json === null)\n return 0.0;\n if (json === \"NaN\")\n return Number.NaN;\n if (json === \"Infinity\")\n return Number.POSITIVE_INFINITY;\n if (json === \"-Infinity\")\n return Number.NEGATIVE_INFINITY;\n if (json === \"\") {\n // empty string is not a number\n break;\n }\n if (typeof json == \"string\" && json.trim().length !== json.length) {\n // extra whitespace\n break;\n }\n if (typeof json != \"string\" && typeof json != \"number\") {\n break;\n }\n const float = Number(json);\n if (Number.isNaN(float)) {\n // not a number\n break;\n }\n if (!Number.isFinite(float)) {\n // infinity and -infinity are handled by string representation above, so this is an error\n break;\n }\n if (type == ScalarType.FLOAT)\n assertFloat32(float);\n return float;\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n if (json === null)\n return 0;\n let int32;\n if (typeof json == \"number\")\n int32 = json;\n else if (typeof json == \"string\" && json.length > 0) {\n if (json.trim().length === json.length)\n int32 = Number(json);\n }\n if (int32 === undefined)\n break;\n if (type == ScalarType.UINT32)\n assertUInt32(int32);\n else\n assertInt32(int32);\n return int32;\n // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (json === null)\n return protoInt64.zero;\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const long = protoInt64.parse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? long.toString() : long;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (json === null)\n return protoInt64.zero;\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const uLong = protoInt64.uParse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? uLong.toString() : uLong;\n // bool:\n case ScalarType.BOOL:\n if (json === null)\n return false;\n if (typeof json !== \"boolean\")\n break;\n return json;\n // string:\n case ScalarType.STRING:\n if (json === null)\n return \"\";\n if (typeof json !== \"string\") {\n break;\n }\n // A string must always contain UTF-8 encoded or 7-bit ASCII.\n // We validate with encodeURIComponent, which appears to be the fastest widely available option.\n try {\n encodeURIComponent(json);\n }\n catch (e) {\n throw new Error(\"invalid UTF8\");\n }\n return json;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n if (json === null || json === \"\")\n return new Uint8Array(0);\n if (typeof json !== \"string\")\n break;\n return protoBase64.dec(json);\n }\n throw new Error();\n}\nfunction readEnum(type, json, ignoreUnknownFields) {\n if (json === null) {\n // proto3 requires 0 to be default value for all enums\n return 0;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (typeof json) {\n case \"number\":\n if (Number.isInteger(json)) {\n return json;\n }\n break;\n case \"string\":\n const value = type.findName(json);\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n if (value || ignoreUnknownFields) {\n return value === null || value === void 0 ? void 0 : value.no;\n }\n break;\n }\n throw new Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json)}`);\n}\nfunction writeEnum(type, value, emitIntrinsicDefault, enumAsInteger) {\n var _a;\n if (value === undefined) {\n return value;\n }\n if (value === 0 && !emitIntrinsicDefault) {\n // proto3 requires 0 to be default value for all enums\n return undefined;\n }\n if (enumAsInteger) {\n return value;\n }\n if (type.typeName == \"google.protobuf.NullValue\") {\n return null;\n }\n const val = type.findNumber(value);\n return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value; // if we don't know the enum value, just return the number\n}\nfunction writeScalar(type, value, emitIntrinsicDefault) {\n if (value === undefined) {\n return undefined;\n }\n switch (type) {\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n assert(typeof value == \"number\");\n return value != 0 || emitIntrinsicDefault ? value : undefined;\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.FLOAT:\n // assertFloat32(value);\n case ScalarType.DOUBLE: // eslint-disable-line no-fallthrough\n assert(typeof value == \"number\");\n if (Number.isNaN(value))\n return \"NaN\";\n if (value === Number.POSITIVE_INFINITY)\n return \"Infinity\";\n if (value === Number.NEGATIVE_INFINITY)\n return \"-Infinity\";\n return value !== 0 || emitIntrinsicDefault ? value : undefined;\n // string:\n case ScalarType.STRING:\n assert(typeof value == \"string\");\n return value.length > 0 || emitIntrinsicDefault ? value : undefined;\n // bool:\n case ScalarType.BOOL:\n assert(typeof value == \"boolean\");\n return value || emitIntrinsicDefault ? value : undefined;\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n assert(typeof value == \"bigint\" ||\n typeof value == \"string\" ||\n typeof value == \"number\");\n // We use implicit conversion with `value != 0` to catch both 0n and \"0\"\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return emitIntrinsicDefault || value != 0\n ? value.toString(10)\n : undefined;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n assert(value instanceof Uint8Array);\n return emitIntrinsicDefault || value.byteLength > 0\n ? protoBase64.enc(value)\n : undefined;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { wrapField } from \"./field-wrapper.js\";\nimport { assert } from \"./assert.js\";\nimport { makeJsonFormatCommon } from \"./json-format-common.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nexport function makeJsonFormatProto3() {\n return makeJsonFormatCommon((writeEnum, writeScalar) => {\n return function writeField(field, value, options) {\n if (field.kind == \"map\") {\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = writeScalar(field.V.T, entryValue, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == \"number\");\n const val = writeEnum(enumType, entryValue, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n return options.emitDefaultValues || Object.keys(jsonObj).length > 0\n ? jsonObj\n : undefined;\n }\n else if (field.repeated) {\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i], true));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], true, options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(wrapField(field.T, value[i]).toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n else {\n switch (field.kind) {\n case \"scalar\":\n return writeScalar(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues);\n case \"enum\":\n return writeEnum(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues, options.enumAsInteger);\n case \"message\":\n return value !== undefined\n ? wrapField(field.T, value).toJson(options)\n : undefined;\n }\n }\n };\n });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { setEnumType } from \"./enum.js\";\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../field.js\";\nimport { scalarEquals } from \"./scalars.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument,no-case-declarations */\nexport function makeUtilCommon() {\n return {\n setEnumType,\n initPartial(source, target) {\n if (source === undefined) {\n return;\n }\n const type = target.getType();\n for (const member of type.fields.byMember()) {\n const localName = member.localName, t = target, s = source;\n if (s[localName] === undefined) {\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n const sk = s[localName].case;\n if (sk === undefined) {\n continue;\n }\n const sourceField = member.findField(sk);\n let val = s[localName].value;\n if (sourceField &&\n sourceField.kind == \"message\" &&\n !(val instanceof sourceField.T)) {\n val = new sourceField.T(val);\n }\n else if (sourceField &&\n sourceField.kind === \"scalar\" &&\n sourceField.T === ScalarType.BYTES) {\n val = toU8Arr(val);\n }\n t[localName] = { case: sk, value: val };\n break;\n case \"scalar\":\n case \"enum\":\n let copy = s[localName];\n if (member.T === ScalarType.BYTES) {\n copy = member.repeated\n ? copy.map(toU8Arr)\n : toU8Arr(copy);\n }\n t[localName] = copy;\n break;\n case \"map\":\n switch (member.V.kind) {\n case \"scalar\":\n case \"enum\":\n if (member.V.T === ScalarType.BYTES) {\n for (const [k, v] of Object.entries(s[localName])) {\n t[localName][k] = toU8Arr(v);\n }\n }\n else {\n Object.assign(t[localName], s[localName]);\n }\n break;\n case \"message\":\n const messageType = member.V.T;\n for (const k of Object.keys(s[localName])) {\n let val = s[localName][k];\n if (!messageType.fieldWrapper) {\n // We only take partial input for messages that are not a wrapper type.\n // For those messages, we recursively normalize the partial input.\n val = new messageType(val);\n }\n t[localName][k] = val;\n }\n break;\n }\n break;\n case \"message\":\n const mt = member.T;\n if (member.repeated) {\n t[localName] = s[localName].map((val) => val instanceof mt ? val : new mt(val));\n }\n else if (s[localName] !== undefined) {\n const val = s[localName];\n if (mt.fieldWrapper) {\n if (\n // We can't use BytesValue.typeName as that will create a circular import\n mt.typeName === \"google.protobuf.BytesValue\") {\n t[localName] = toU8Arr(val);\n }\n else {\n t[localName] = val;\n }\n }\n else {\n t[localName] = val instanceof mt ? val : new mt(val);\n }\n }\n break;\n }\n }\n },\n equals(type, a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return type.fields.byMember().every((m) => {\n const va = a[m.localName];\n const vb = b[m.localName];\n if (m.repeated) {\n if (va.length !== vb.length) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- repeated fields are never \"map\"\n switch (m.kind) {\n case \"message\":\n return va.every((a, i) => m.T.equals(a, vb[i]));\n case \"scalar\":\n return va.every((a, i) => scalarEquals(m.T, a, vb[i]));\n case \"enum\":\n return va.every((a, i) => scalarEquals(ScalarType.INT32, a, vb[i]));\n }\n throw new Error(`repeated cannot contain ${m.kind}`);\n }\n switch (m.kind) {\n case \"message\":\n return m.T.equals(va, vb);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va, vb);\n case \"scalar\":\n return scalarEquals(m.T, va, vb);\n case \"oneof\":\n if (va.case !== vb.case) {\n return false;\n }\n const s = m.findField(va.case);\n if (s === undefined) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- oneof fields are never \"map\"\n switch (s.kind) {\n case \"message\":\n return s.T.equals(va.value, vb.value);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va.value, vb.value);\n case \"scalar\":\n return scalarEquals(s.T, va.value, vb.value);\n }\n throw new Error(`oneof cannot contain ${s.kind}`);\n case \"map\":\n const keys = Object.keys(va).concat(Object.keys(vb));\n switch (m.V.kind) {\n case \"message\":\n const messageType = m.V.T;\n return keys.every((k) => messageType.equals(va[k], vb[k]));\n case \"enum\":\n return keys.every((k) => scalarEquals(ScalarType.INT32, va[k], vb[k]));\n case \"scalar\":\n const scalarType = m.V.T;\n return keys.every((k) => scalarEquals(scalarType, va[k], vb[k]));\n }\n break;\n }\n });\n },\n clone(message) {\n const type = message.getType(), target = new type(), any = target;\n for (const member of type.fields.byMember()) {\n const source = message[member.localName];\n let copy;\n if (member.repeated) {\n copy = source.map(cloneSingularField);\n }\n else if (member.kind == \"map\") {\n copy = any[member.localName];\n for (const [key, v] of Object.entries(source)) {\n copy[key] = cloneSingularField(v);\n }\n }\n else if (member.kind == \"oneof\") {\n const f = member.findField(source.case);\n copy = f\n ? { case: source.case, value: cloneSingularField(source.value) }\n : { case: undefined };\n }\n else {\n copy = cloneSingularField(source);\n }\n any[member.localName] = copy;\n }\n return target;\n },\n };\n}\n// clone a single field value - i.e. the element type of repeated fields, the value type of maps\nfunction cloneSingularField(value) {\n if (value === undefined) {\n return value;\n }\n if (value instanceof Message) {\n return value.clone();\n }\n if (value instanceof Uint8Array) {\n const c = new Uint8Array(value.byteLength);\n c.set(value);\n return c;\n }\n return value;\n}\n// converts any ArrayLike to Uint8Array if necessary.\nfunction toU8Arr(input) {\n return input instanceof Uint8Array ? input : new Uint8Array(input);\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nexport class InternalFieldList {\n constructor(fields, normalizer) {\n this._fields = fields;\n this._normalizer = normalizer;\n }\n findJsonName(jsonName) {\n if (!this.jsonNames) {\n const t = {};\n for (const f of this.list()) {\n t[f.jsonName] = t[f.name] = f;\n }\n this.jsonNames = t;\n }\n return this.jsonNames[jsonName];\n }\n find(fieldNo) {\n if (!this.numbers) {\n const t = {};\n for (const f of this.list()) {\n t[f.no] = f;\n }\n this.numbers = t;\n }\n return this.numbers[fieldNo];\n }\n list() {\n if (!this.all) {\n this.all = this._normalizer(this._fields);\n }\n return this.all;\n }\n byNumber() {\n if (!this.numbersAsc) {\n this.numbersAsc = this.list()\n .concat()\n .sort((a, b) => a.no - b.no);\n }\n return this.numbersAsc;\n }\n byMember() {\n if (!this.members) {\n this.members = [];\n const a = this.members;\n let o;\n for (const f of this.list()) {\n if (f.oneof) {\n if (f.oneof !== o) {\n o = f.oneof;\n a.push(o);\n }\n }\n else {\n a.push(f);\n }\n }\n }\n return this.members;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Returns the name of a protobuf element in generated code.\n *\n * Field names - including oneofs - are converted to lowerCamelCase. For\n * messages, enumerations and services, the package name is stripped from\n * the type name. For nested messages and enumerations, the names are joined\n * with an underscore. For methods, the first character is made lowercase.\n */\nexport function localName(desc) {\n switch (desc.kind) {\n case \"field\":\n return localFieldName(desc.name, desc.oneof !== undefined);\n case \"oneof\":\n return localOneofName(desc.name);\n case \"enum\":\n case \"message\":\n case \"service\": {\n const pkg = desc.file.proto.package;\n const offset = pkg === undefined ? 0 : pkg.length + 1;\n const name = desc.typeName.substring(offset).replace(/\\./g, \"_\");\n // For services, we only care about safe identifiers, not safe object properties,\n // but we have shipped v1 with a bug that respected object properties, and we\n // do not want to introduce a breaking change, so we continue to escape for\n // safe object properties.\n // See https://github.com/bufbuild/protobuf-es/pull/391\n return safeObjectProperty(safeIdentifier(name));\n }\n case \"enum_value\": {\n const sharedPrefix = desc.parent.sharedPrefix;\n if (sharedPrefix === undefined) {\n return desc.name;\n }\n const name = desc.name.substring(sharedPrefix.length);\n return safeObjectProperty(name);\n }\n case \"rpc\": {\n let name = desc.name;\n if (name.length == 0) {\n return name;\n }\n name = name[0].toLowerCase() + name.substring(1);\n return safeObjectProperty(name);\n }\n }\n}\n/**\n * Returns the name of a field in generated code.\n */\nexport function localFieldName(protoName, inOneof) {\n const name = protoCamelCase(protoName);\n if (inOneof) {\n // oneof member names are not properties, but values of the `case` property.\n return name;\n }\n return safeObjectProperty(safeMessageProperty(name));\n}\n/**\n * Returns the name of a oneof group in generated code.\n */\nexport function localOneofName(protoName) {\n return localFieldName(protoName, false);\n}\n/**\n * Returns the JSON name for a protobuf field, exactly like protoc does.\n */\nexport const fieldJsonName = protoCamelCase;\n/**\n * Finds a prefix shared by enum values, for example `MY_ENUM_` for\n * `enum MyEnum {MY_ENUM_A=0; MY_ENUM_B=1;}`.\n */\nexport function findEnumSharedPrefix(enumName, valueNames) {\n const prefix = camelToSnakeCase(enumName) + \"_\";\n for (const name of valueNames) {\n if (!name.toLowerCase().startsWith(prefix)) {\n return undefined;\n }\n const shortName = name.substring(prefix.length);\n if (shortName.length == 0) {\n return undefined;\n }\n if (/^\\d/.test(shortName)) {\n // identifiers must not start with numbers\n return undefined;\n }\n }\n return prefix;\n}\n/**\n * Converts lowerCamelCase or UpperCamelCase into lower_snake_case.\n * This is used to find shared prefixes in an enum.\n */\nfunction camelToSnakeCase(camel) {\n return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c)).toLowerCase();\n}\n/**\n * Converts snake_case to protoCamelCase according to the convention\n * used by protoc to convert a field name to a JSON name.\n */\nfunction protoCamelCase(snakeCase) {\n let capNext = false;\n const b = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let c = snakeCase.charAt(i);\n switch (c) {\n case \"_\":\n capNext = true;\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n b.push(c);\n capNext = false;\n break;\n default:\n if (capNext) {\n capNext = false;\n c = c.toUpperCase();\n }\n b.push(c);\n break;\n }\n }\n return b.join(\"\");\n}\n/**\n * Names that cannot be used for identifiers, such as class names,\n * but _can_ be used for object properties.\n */\nconst reservedIdentifiers = new Set([\n // ECMAScript 2015 keywords\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"false\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"new\",\n \"null\",\n \"return\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"true\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\",\n // ECMAScript 2015 future reserved keywords\n \"enum\",\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n // Class name cannot be 'Object' when targeting ES5 with module CommonJS\n \"Object\",\n // TypeScript keywords that cannot be used for types (as opposed to variables)\n \"bigint\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n // Identifiers reserved for the runtime, so we can generate legible code\n \"globalThis\",\n \"Uint8Array\",\n \"Partial\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst reservedObjectProperties = new Set([\n // names reserved by JavaScript\n \"constructor\",\n \"toString\",\n \"toJSON\",\n \"valueOf\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by the runtime.\n */\nconst reservedMessageProperties = new Set([\n // names reserved by the runtime\n \"getType\",\n \"clone\",\n \"equals\",\n \"fromBinary\",\n \"fromJson\",\n \"fromJsonString\",\n \"toBinary\",\n \"toJson\",\n \"toJsonString\",\n // names reserved by the runtime for the future\n \"toObject\",\n]);\nconst fallback = (name) => `${name}$`;\n/**\n * Will wrap names that are Object prototype properties or names reserved\n * for `Message`s.\n */\nconst safeMessageProperty = (name) => {\n if (reservedMessageProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nexport const safeObjectProperty = (name) => {\n if (reservedObjectProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that can be used for identifiers or class properties\n */\nexport const safeIdentifier = (name) => {\n if (reservedIdentifiers.has(name)) {\n return fallback(name);\n }\n return name;\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { localOneofName } from \"./names.js\";\nimport { assert } from \"./assert.js\";\nexport class InternalOneofInfo {\n constructor(name) {\n this.kind = \"oneof\";\n this.repeated = false;\n this.packed = false;\n this.opt = false;\n this.default = undefined;\n this.fields = [];\n this.name = name;\n this.localName = localOneofName(name);\n }\n addField(field) {\n assert(field.oneof === this, `field ${field.name} not one of ${this.name}`);\n this.fields.push(field);\n }\n findField(localName) {\n if (!this._lookup) {\n this._lookup = Object.create(null);\n for (let i = 0; i < this.fields.length; i++) {\n this._lookup[this.fields[i].localName] = this.fields[i];\n }\n }\n return this._lookup[localName];\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { makeBinaryFormatProto3 } from \"./private/binary-format-proto3.js\";\nimport { makeJsonFormatProto3 } from \"./private/json-format-proto3.js\";\nimport { makeUtilCommon } from \"./private/util-common.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { scalarDefaultValue } from \"./private/scalars.js\";\nimport { LongType, ScalarType } from \"./field.js\";\nimport { InternalOneofInfo } from \"./private/field.js\";\nimport { localFieldName, fieldJsonName } from \"./private/names.js\";\n/**\n * Provides functionality for messages defined with the proto3 syntax.\n */\nexport const proto3 = makeProtoRuntime(\"proto3\", makeJsonFormatProto3(), makeBinaryFormatProto3(), Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList(fields) {\n return new InternalFieldList(fields, normalizeFieldInfosProto3);\n },\n initFields(target) {\n for (const member of target.getType().fields.byMember()) {\n if (member.opt) {\n continue;\n }\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"enum\":\n t[name] = 0;\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n t[name] = scalarDefaultValue(member.T, member.L); // eslint-disable-line @typescript-eslint/no-unsafe-assignment\n break;\n case \"message\":\n // message fields are always optional in proto3\n break;\n }\n }\n } }));\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nfunction normalizeFieldInfosProto3(fieldInfos) {\n var _a, _b, _c, _d;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n // proto3 specific:\n if (field.kind == \"message\") {\n f.delimited = false;\n }\n // From the proto3 language guide:\n // > In proto3, repeated fields of scalar numeric types are packed by default.\n // This information is incomplete - according to the conformance tests, BOOL\n // and ENUM are packed by default as well. This means only STRING and BYTES\n // are not packed by default, which makes sense because they are length-delimited.\n f.packed =\n (_d = field.packed) !== null && _d !== void 0 ? _d : (field.kind == \"enum\" ||\n (field.kind == \"scalar\" &&\n field.T != ScalarType.BYTES &&\n field.T != ScalarType.STRING));\n r.push(f);\n }\n return r;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ScalarType } from \"../field.js\";\nimport { makeBinaryFormatCommon, writeMapEntry, writeMessageField, writePacked, writeScalar, } from \"./binary-format-common.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions, no-case-declarations, prefer-const */\nexport function makeBinaryFormatProto2() {\n return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) {\n const type = message.getType();\n let field;\n try {\n for (field of type.fields.byNumber()) {\n let value, // this will be our field value, whether it is member of a oneof or not\n repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n const oneof = message[field.oneof.localName];\n if (oneof.case !== localName) {\n continue; // field is not selected, skip\n }\n value = oneof.value;\n }\n else {\n value = message[localName];\n // In contrast to proto3, we raise an error if a non-optional (proto2 required)\n // field is missing a value.\n if (value === undefined && !field.oneof && !field.opt) {\n throw new Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);\n }\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item, true);\n }\n }\n }\n else {\n if (value !== undefined) {\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n writeScalar(writer, scalarType, field.no, value, true);\n }\n }\n break;\n case \"message\":\n if (repeated) {\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n }\n }\n catch (e) {\n let m = field\n ? `cannot encode field ${type.typeName}.${field === null || field === void 0 ? void 0 : field.name} to binary`\n : `cannot encode message ${type.typeName} to binary`;\n let r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n } });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { wrapField } from \"./field-wrapper.js\";\nimport { assert } from \"./assert.js\";\nimport { makeJsonFormatCommon } from \"./json-format-common.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nexport function makeJsonFormatProto2() {\n return makeJsonFormatCommon((writeEnum, writeScalar) => {\n return function writeField(field, value, options) {\n if (field.kind == \"map\") {\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = writeScalar(field.V.T, entryValue, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == \"number\");\n const val = writeEnum(enumType, entryValue, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n return options.emitDefaultValues || Object.keys(jsonObj).length > 0\n ? jsonObj\n : undefined;\n }\n else if (field.repeated) {\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i], true));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], true, options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(value[i].toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n else {\n // In contrast to proto3, we raise an error if a non-optional (proto2 required)\n // field is missing a value.\n if (value === undefined) {\n if (!field.oneof && !field.opt) {\n throw `required field not set`;\n }\n return undefined;\n }\n switch (field.kind) {\n case \"scalar\":\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n return writeScalar(field.T, value, true);\n case \"enum\":\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n return writeEnum(field.T, value, true, options.enumAsInteger);\n case \"message\":\n return wrapField(field.T, value).toJson(options);\n }\n }\n };\n });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { makeBinaryFormatProto2 } from \"./private/binary-format-proto2.js\";\nimport { makeUtilCommon } from \"./private/util-common.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { InternalOneofInfo } from \"./private/field.js\";\nimport { localFieldName, fieldJsonName } from \"./private/names.js\";\nimport { makeJsonFormatProto2 } from \"./private/json-format-proto2.js\";\nimport { LongType } from \"./field.js\";\n/**\n * Provides functionality for messages defined with the proto2 syntax.\n */\nexport const proto2 = makeProtoRuntime(\"proto2\", makeJsonFormatProto2(), makeBinaryFormatProto2(), Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList(fields) {\n return new InternalFieldList(fields, normalizeFieldInfosProto2);\n },\n initFields(target) {\n for (const member of target.getType().fields.byMember()) {\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n case \"enum\":\n case \"message\":\n // In contrast to proto3, enum and scalar fields have no intrinsic default value,\n // only an optional explicit default value.\n // Unlike proto3 intrinsic default values, proto2 explicit default values are not\n // set on construction, because they are not omitted on the wire. If we did set\n // default values on construction, a deserialize-serialize round-trip would add\n // fields to a message.\n break;\n }\n }\n } }));\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nfunction normalizeFieldInfosProto2(fieldInfos) {\n var _a, _b, _c, _d, _e;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n // proto2 specific:\n if (field.kind == \"message\") {\n f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false;\n }\n // In contrast to proto3, repeated fields are unpacked except when explicitly specified.\n f.packed = (_e = field.packed) !== null && _e !== void 0 ? _e : false;\n r.push(f);\n }\n return r;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * MethodKind represents the four method types that can be declared in\n * protobuf with the `stream` keyword:\n *\n * 1. Unary: rpc (Input) returns (Output)\n * 2. ServerStreaming: rpc (Input) returns (stream Output)\n * 3. ClientStreaming: rpc (stream Input) returns (Output)\n * 4. BiDiStreaming: rpc (stream Input) returns (stream Output)\n */\nexport var MethodKind;\n(function (MethodKind) {\n MethodKind[MethodKind[\"Unary\"] = 0] = \"Unary\";\n MethodKind[MethodKind[\"ServerStreaming\"] = 1] = \"ServerStreaming\";\n MethodKind[MethodKind[\"ClientStreaming\"] = 2] = \"ClientStreaming\";\n MethodKind[MethodKind[\"BiDiStreaming\"] = 3] = \"BiDiStreaming\";\n})(MethodKind || (MethodKind = {}));\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or just\n * idempotent, or neither? HTTP based RPC implementation may choose GET verb\n * for safe methods, and PUT verb for idempotent methods instead of the\n * default POST.\n *\n * This enum matches the protobuf enum google.protobuf.MethodOptions.IdempotencyLevel,\n * defined in the well-known type google/protobuf/descriptor.proto, but\n * drops UNKNOWN.\n */\nexport var MethodIdempotency;\n(function (MethodIdempotency) {\n /**\n * Idempotent, no side effects.\n */\n MethodIdempotency[MethodIdempotency[\"NoSideEffects\"] = 1] = \"NoSideEffects\";\n /**\n * Idempotent, but may have side effects.\n */\n MethodIdempotency[MethodIdempotency[\"Idempotent\"] = 2] = \"Idempotent\";\n})(MethodIdempotency || (MethodIdempotency = {}));\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// Author: kenton@google.com (Kenton Varda)\n// Based on original Protocol Buffers design by\n// Sanjay Ghemawat, Jeff Dean, and others.\n//\n// The messages in this file describe the definitions found in .proto files.\n// A valid .proto file can be translated directly to a FileDescriptorProto\n// without any other information (e.g. without reading its imports).\n// @generated by protoc-gen-es v1.6.0 with parameter \"bootstrap_wkt=true,ts_nocheck=false,target=ts\"\n// @generated from file google/protobuf/descriptor.proto (package google.protobuf, syntax proto2)\n/* eslint-disable */\nimport { proto2 } from \"../../proto2.js\";\nimport { Message } from \"../../message.js\";\n/**\n * The full set of known editions.\n *\n * @generated from enum google.protobuf.Edition\n */\nexport var Edition;\n(function (Edition) {\n /**\n * A placeholder for an unknown edition value.\n *\n * @generated from enum value: EDITION_UNKNOWN = 0;\n */\n Edition[Edition[\"EDITION_UNKNOWN\"] = 0] = \"EDITION_UNKNOWN\";\n /**\n * Legacy syntax \"editions\". These pre-date editions, but behave much like\n * distinct editions. These can't be used to specify the edition of proto\n * files, but feature definitions must supply proto2/proto3 defaults for\n * backwards compatibility.\n *\n * @generated from enum value: EDITION_PROTO2 = 998;\n */\n Edition[Edition[\"EDITION_PROTO2\"] = 998] = \"EDITION_PROTO2\";\n /**\n * @generated from enum value: EDITION_PROTO3 = 999;\n */\n Edition[Edition[\"EDITION_PROTO3\"] = 999] = \"EDITION_PROTO3\";\n /**\n * Editions that have been released. The specific values are arbitrary and\n * should not be depended on, but they will always be time-ordered for easy\n * comparison.\n *\n * @generated from enum value: EDITION_2023 = 1000;\n */\n Edition[Edition[\"EDITION_2023\"] = 1000] = \"EDITION_2023\";\n /**\n * Placeholder editions for testing feature resolution. These should not be\n * used or relyed on outside of tests.\n *\n * @generated from enum value: EDITION_1_TEST_ONLY = 1;\n */\n Edition[Edition[\"EDITION_1_TEST_ONLY\"] = 1] = \"EDITION_1_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_2_TEST_ONLY = 2;\n */\n Edition[Edition[\"EDITION_2_TEST_ONLY\"] = 2] = \"EDITION_2_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99997_TEST_ONLY = 99997;\n */\n Edition[Edition[\"EDITION_99997_TEST_ONLY\"] = 99997] = \"EDITION_99997_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99998_TEST_ONLY = 99998;\n */\n Edition[Edition[\"EDITION_99998_TEST_ONLY\"] = 99998] = \"EDITION_99998_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99999_TEST_ONLY = 99999;\n */\n Edition[Edition[\"EDITION_99999_TEST_ONLY\"] = 99999] = \"EDITION_99999_TEST_ONLY\";\n})(Edition || (Edition = {}));\n// Retrieve enum metadata with: proto2.getEnumType(Edition)\nproto2.util.setEnumType(Edition, \"google.protobuf.Edition\", [\n { no: 0, name: \"EDITION_UNKNOWN\" },\n { no: 998, name: \"EDITION_PROTO2\" },\n { no: 999, name: \"EDITION_PROTO3\" },\n { no: 1000, name: \"EDITION_2023\" },\n { no: 1, name: \"EDITION_1_TEST_ONLY\" },\n { no: 2, name: \"EDITION_2_TEST_ONLY\" },\n { no: 99997, name: \"EDITION_99997_TEST_ONLY\" },\n { no: 99998, name: \"EDITION_99998_TEST_ONLY\" },\n { no: 99999, name: \"EDITION_99999_TEST_ONLY\" },\n]);\n/**\n * The protocol compiler can output a FileDescriptorSet containing the .proto\n * files it parses.\n *\n * @generated from message google.protobuf.FileDescriptorSet\n */\nexport class FileDescriptorSet extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FileDescriptorProto file = 1;\n */\n this.file = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileDescriptorSet().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileDescriptorSet().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileDescriptorSet().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileDescriptorSet, a, b);\n }\n}\nFileDescriptorSet.runtime = proto2;\nFileDescriptorSet.typeName = \"google.protobuf.FileDescriptorSet\";\nFileDescriptorSet.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"message\", T: FileDescriptorProto, repeated: true },\n]);\n/**\n * Describes a complete .proto file.\n *\n * @generated from message google.protobuf.FileDescriptorProto\n */\nexport class FileDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * Names of files imported by this file.\n *\n * @generated from field: repeated string dependency = 3;\n */\n this.dependency = [];\n /**\n * Indexes of the public imported files in the dependency list above.\n *\n * @generated from field: repeated int32 public_dependency = 10;\n */\n this.publicDependency = [];\n /**\n * Indexes of the weak imported files in the dependency list.\n * For Google-internal migration only. Do not use.\n *\n * @generated from field: repeated int32 weak_dependency = 11;\n */\n this.weakDependency = [];\n /**\n * All top-level definitions in this file.\n *\n * @generated from field: repeated google.protobuf.DescriptorProto message_type = 4;\n */\n this.messageType = [];\n /**\n * @generated from field: repeated google.protobuf.EnumDescriptorProto enum_type = 5;\n */\n this.enumType = [];\n /**\n * @generated from field: repeated google.protobuf.ServiceDescriptorProto service = 6;\n */\n this.service = [];\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto extension = 7;\n */\n this.extension = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileDescriptorProto, a, b);\n }\n}\nFileDescriptorProto.runtime = proto2;\nFileDescriptorProto.typeName = \"google.protobuf.FileDescriptorProto\";\nFileDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"dependency\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 10, name: \"public_dependency\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n { no: 11, name: \"weak_dependency\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n { no: 4, name: \"message_type\", kind: \"message\", T: DescriptorProto, repeated: true },\n { no: 5, name: \"enum_type\", kind: \"message\", T: EnumDescriptorProto, repeated: true },\n { no: 6, name: \"service\", kind: \"message\", T: ServiceDescriptorProto, repeated: true },\n { no: 7, name: \"extension\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 8, name: \"options\", kind: \"message\", T: FileOptions, opt: true },\n { no: 9, name: \"source_code_info\", kind: \"message\", T: SourceCodeInfo, opt: true },\n { no: 12, name: \"syntax\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 14, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n]);\n/**\n * Describes a message type.\n *\n * @generated from message google.protobuf.DescriptorProto\n */\nexport class DescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto field = 2;\n */\n this.field = [];\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto extension = 6;\n */\n this.extension = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto nested_type = 3;\n */\n this.nestedType = [];\n /**\n * @generated from field: repeated google.protobuf.EnumDescriptorProto enum_type = 4;\n */\n this.enumType = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;\n */\n this.extensionRange = [];\n /**\n * @generated from field: repeated google.protobuf.OneofDescriptorProto oneof_decl = 8;\n */\n this.oneofDecl = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;\n */\n this.reservedRange = [];\n /**\n * Reserved field names, which may not be used by fields in the same message.\n * A given name may only be reserved once.\n *\n * @generated from field: repeated string reserved_name = 10;\n */\n this.reservedName = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto, a, b);\n }\n}\nDescriptorProto.runtime = proto2;\nDescriptorProto.typeName = \"google.protobuf.DescriptorProto\";\nDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"field\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 6, name: \"extension\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 3, name: \"nested_type\", kind: \"message\", T: DescriptorProto, repeated: true },\n { no: 4, name: \"enum_type\", kind: \"message\", T: EnumDescriptorProto, repeated: true },\n { no: 5, name: \"extension_range\", kind: \"message\", T: DescriptorProto_ExtensionRange, repeated: true },\n { no: 8, name: \"oneof_decl\", kind: \"message\", T: OneofDescriptorProto, repeated: true },\n { no: 7, name: \"options\", kind: \"message\", T: MessageOptions, opt: true },\n { no: 9, name: \"reserved_range\", kind: \"message\", T: DescriptorProto_ReservedRange, repeated: true },\n { no: 10, name: \"reserved_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.DescriptorProto.ExtensionRange\n */\nexport class DescriptorProto_ExtensionRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto_ExtensionRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto_ExtensionRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto_ExtensionRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto_ExtensionRange, a, b);\n }\n}\nDescriptorProto_ExtensionRange.runtime = proto2;\nDescriptorProto_ExtensionRange.typeName = \"google.protobuf.DescriptorProto.ExtensionRange\";\nDescriptorProto_ExtensionRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"options\", kind: \"message\", T: ExtensionRangeOptions, opt: true },\n]);\n/**\n * Range of reserved tag numbers. Reserved tag numbers may not be used by\n * fields or extension ranges in the same message. Reserved ranges may\n * not overlap.\n *\n * @generated from message google.protobuf.DescriptorProto.ReservedRange\n */\nexport class DescriptorProto_ReservedRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto_ReservedRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto_ReservedRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto_ReservedRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto_ReservedRange, a, b);\n }\n}\nDescriptorProto_ReservedRange.runtime = proto2;\nDescriptorProto_ReservedRange.typeName = \"google.protobuf.DescriptorProto.ReservedRange\";\nDescriptorProto_ReservedRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n]);\n/**\n * @generated from message google.protobuf.ExtensionRangeOptions\n */\nexport class ExtensionRangeOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n /**\n * For external users: DO NOT USE. We are in the process of open sourcing\n * extension declaration and executing internal cleanups before it can be\n * used externally.\n *\n * @generated from field: repeated google.protobuf.ExtensionRangeOptions.Declaration declaration = 2;\n */\n this.declaration = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ExtensionRangeOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ExtensionRangeOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ExtensionRangeOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ExtensionRangeOptions, a, b);\n }\n}\nExtensionRangeOptions.runtime = proto2;\nExtensionRangeOptions.typeName = \"google.protobuf.ExtensionRangeOptions\";\nExtensionRangeOptions.fields = proto2.util.newFieldList(() => [\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n { no: 2, name: \"declaration\", kind: \"message\", T: ExtensionRangeOptions_Declaration, repeated: true },\n { no: 50, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 3, name: \"verification\", kind: \"enum\", T: proto2.getEnumType(ExtensionRangeOptions_VerificationState), opt: true, default: ExtensionRangeOptions_VerificationState.UNVERIFIED },\n]);\n/**\n * The verification state of the extension range.\n *\n * @generated from enum google.protobuf.ExtensionRangeOptions.VerificationState\n */\nexport var ExtensionRangeOptions_VerificationState;\n(function (ExtensionRangeOptions_VerificationState) {\n /**\n * All the extensions of the range must be declared.\n *\n * @generated from enum value: DECLARATION = 0;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"DECLARATION\"] = 0] = \"DECLARATION\";\n /**\n * @generated from enum value: UNVERIFIED = 1;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"UNVERIFIED\"] = 1] = \"UNVERIFIED\";\n})(ExtensionRangeOptions_VerificationState || (ExtensionRangeOptions_VerificationState = {}));\n// Retrieve enum metadata with: proto2.getEnumType(ExtensionRangeOptions_VerificationState)\nproto2.util.setEnumType(ExtensionRangeOptions_VerificationState, \"google.protobuf.ExtensionRangeOptions.VerificationState\", [\n { no: 0, name: \"DECLARATION\" },\n { no: 1, name: \"UNVERIFIED\" },\n]);\n/**\n * @generated from message google.protobuf.ExtensionRangeOptions.Declaration\n */\nexport class ExtensionRangeOptions_Declaration extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ExtensionRangeOptions_Declaration().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ExtensionRangeOptions_Declaration().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ExtensionRangeOptions_Declaration().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ExtensionRangeOptions_Declaration, a, b);\n }\n}\nExtensionRangeOptions_Declaration.runtime = proto2;\nExtensionRangeOptions_Declaration.typeName = \"google.protobuf.ExtensionRangeOptions.Declaration\";\nExtensionRangeOptions_Declaration.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"full_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"reserved\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"repeated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n]);\n/**\n * Describes a field within a message.\n *\n * @generated from message google.protobuf.FieldDescriptorProto\n */\nexport class FieldDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldDescriptorProto, a, b);\n }\n}\nFieldDescriptorProto.runtime = proto2;\nFieldDescriptorProto.typeName = \"google.protobuf.FieldDescriptorProto\";\nFieldDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"label\", kind: \"enum\", T: proto2.getEnumType(FieldDescriptorProto_Label), opt: true },\n { no: 5, name: \"type\", kind: \"enum\", T: proto2.getEnumType(FieldDescriptorProto_Type), opt: true },\n { no: 6, name: \"type_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"extendee\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"default_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 9, name: \"oneof_index\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"json_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"options\", kind: \"message\", T: FieldOptions, opt: true },\n { no: 17, name: \"proto3_optional\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n]);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Type\n */\nexport var FieldDescriptorProto_Type;\n(function (FieldDescriptorProto_Type) {\n /**\n * 0 is reserved for errors.\n * Order is weird for historical reasons.\n *\n * @generated from enum value: TYPE_DOUBLE = 1;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"DOUBLE\"] = 1] = \"DOUBLE\";\n /**\n * @generated from enum value: TYPE_FLOAT = 2;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FLOAT\"] = 2] = \"FLOAT\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT64 = 3;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT64\"] = 3] = \"INT64\";\n /**\n * @generated from enum value: TYPE_UINT64 = 4;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT64\"] = 4] = \"UINT64\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT32 = 5;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT32\"] = 5] = \"INT32\";\n /**\n * @generated from enum value: TYPE_FIXED64 = 6;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED64\"] = 6] = \"FIXED64\";\n /**\n * @generated from enum value: TYPE_FIXED32 = 7;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED32\"] = 7] = \"FIXED32\";\n /**\n * @generated from enum value: TYPE_BOOL = 8;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BOOL\"] = 8] = \"BOOL\";\n /**\n * @generated from enum value: TYPE_STRING = 9;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"STRING\"] = 9] = \"STRING\";\n /**\n * Tag-delimited aggregate.\n * Group type is deprecated and not supported after google.protobuf. However, Proto3\n * implementations should still be able to parse the group wire format and\n * treat group fields as unknown fields. In Editions, the group wire format\n * can be enabled via the `message_encoding` feature.\n *\n * @generated from enum value: TYPE_GROUP = 10;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"GROUP\"] = 10] = \"GROUP\";\n /**\n * Length-delimited aggregate.\n *\n * @generated from enum value: TYPE_MESSAGE = 11;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"MESSAGE\"] = 11] = \"MESSAGE\";\n /**\n * New in version 2.\n *\n * @generated from enum value: TYPE_BYTES = 12;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BYTES\"] = 12] = \"BYTES\";\n /**\n * @generated from enum value: TYPE_UINT32 = 13;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT32\"] = 13] = \"UINT32\";\n /**\n * @generated from enum value: TYPE_ENUM = 14;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"ENUM\"] = 14] = \"ENUM\";\n /**\n * @generated from enum value: TYPE_SFIXED32 = 15;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED32\"] = 15] = \"SFIXED32\";\n /**\n * @generated from enum value: TYPE_SFIXED64 = 16;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED64\"] = 16] = \"SFIXED64\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT32 = 17;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT32\"] = 17] = \"SINT32\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT64 = 18;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT64\"] = 18] = \"SINT64\";\n})(FieldDescriptorProto_Type || (FieldDescriptorProto_Type = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldDescriptorProto_Type)\nproto2.util.setEnumType(FieldDescriptorProto_Type, \"google.protobuf.FieldDescriptorProto.Type\", [\n { no: 1, name: \"TYPE_DOUBLE\" },\n { no: 2, name: \"TYPE_FLOAT\" },\n { no: 3, name: \"TYPE_INT64\" },\n { no: 4, name: \"TYPE_UINT64\" },\n { no: 5, name: \"TYPE_INT32\" },\n { no: 6, name: \"TYPE_FIXED64\" },\n { no: 7, name: \"TYPE_FIXED32\" },\n { no: 8, name: \"TYPE_BOOL\" },\n { no: 9, name: \"TYPE_STRING\" },\n { no: 10, name: \"TYPE_GROUP\" },\n { no: 11, name: \"TYPE_MESSAGE\" },\n { no: 12, name: \"TYPE_BYTES\" },\n { no: 13, name: \"TYPE_UINT32\" },\n { no: 14, name: \"TYPE_ENUM\" },\n { no: 15, name: \"TYPE_SFIXED32\" },\n { no: 16, name: \"TYPE_SFIXED64\" },\n { no: 17, name: \"TYPE_SINT32\" },\n { no: 18, name: \"TYPE_SINT64\" },\n]);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Label\n */\nexport var FieldDescriptorProto_Label;\n(function (FieldDescriptorProto_Label) {\n /**\n * 0 is reserved for errors\n *\n * @generated from enum value: LABEL_OPTIONAL = 1;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"OPTIONAL\"] = 1] = \"OPTIONAL\";\n /**\n * @generated from enum value: LABEL_REPEATED = 3;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REPEATED\"] = 3] = \"REPEATED\";\n /**\n * The required label is only allowed in google.protobuf. In proto3 and Editions\n * it's explicitly prohibited. In Editions, the `field_presence` feature\n * can be used to get this behavior.\n *\n * @generated from enum value: LABEL_REQUIRED = 2;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REQUIRED\"] = 2] = \"REQUIRED\";\n})(FieldDescriptorProto_Label || (FieldDescriptorProto_Label = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldDescriptorProto_Label)\nproto2.util.setEnumType(FieldDescriptorProto_Label, \"google.protobuf.FieldDescriptorProto.Label\", [\n { no: 1, name: \"LABEL_OPTIONAL\" },\n { no: 3, name: \"LABEL_REPEATED\" },\n { no: 2, name: \"LABEL_REQUIRED\" },\n]);\n/**\n * Describes a oneof.\n *\n * @generated from message google.protobuf.OneofDescriptorProto\n */\nexport class OneofDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new OneofDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new OneofDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new OneofDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(OneofDescriptorProto, a, b);\n }\n}\nOneofDescriptorProto.runtime = proto2;\nOneofDescriptorProto.typeName = \"google.protobuf.OneofDescriptorProto\";\nOneofDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"options\", kind: \"message\", T: OneofOptions, opt: true },\n]);\n/**\n * Describes an enum type.\n *\n * @generated from message google.protobuf.EnumDescriptorProto\n */\nexport class EnumDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.EnumValueDescriptorProto value = 2;\n */\n this.value = [];\n /**\n * Range of reserved numeric values. Reserved numeric values may not be used\n * by enum values in the same enum declaration. Reserved ranges may not\n * overlap.\n *\n * @generated from field: repeated google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;\n */\n this.reservedRange = [];\n /**\n * Reserved enum value names, which may not be reused. A given name may only\n * be reserved once.\n *\n * @generated from field: repeated string reserved_name = 5;\n */\n this.reservedName = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumDescriptorProto, a, b);\n }\n}\nEnumDescriptorProto.runtime = proto2;\nEnumDescriptorProto.typeName = \"google.protobuf.EnumDescriptorProto\";\nEnumDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"value\", kind: \"message\", T: EnumValueDescriptorProto, repeated: true },\n { no: 3, name: \"options\", kind: \"message\", T: EnumOptions, opt: true },\n { no: 4, name: \"reserved_range\", kind: \"message\", T: EnumDescriptorProto_EnumReservedRange, repeated: true },\n { no: 5, name: \"reserved_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * Range of reserved numeric values. Reserved values may not be used by\n * entries in the same enum. Reserved ranges may not overlap.\n *\n * Note that this is distinct from DescriptorProto.ReservedRange in that it\n * is inclusive such that it can appropriately represent the entire int32\n * domain.\n *\n * @generated from message google.protobuf.EnumDescriptorProto.EnumReservedRange\n */\nexport class EnumDescriptorProto_EnumReservedRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumDescriptorProto_EnumReservedRange, a, b);\n }\n}\nEnumDescriptorProto_EnumReservedRange.runtime = proto2;\nEnumDescriptorProto_EnumReservedRange.typeName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange\";\nEnumDescriptorProto_EnumReservedRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n]);\n/**\n * Describes a value within an enum.\n *\n * @generated from message google.protobuf.EnumValueDescriptorProto\n */\nexport class EnumValueDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumValueDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumValueDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumValueDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumValueDescriptorProto, a, b);\n }\n}\nEnumValueDescriptorProto.runtime = proto2;\nEnumValueDescriptorProto.typeName = \"google.protobuf.EnumValueDescriptorProto\";\nEnumValueDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"options\", kind: \"message\", T: EnumValueOptions, opt: true },\n]);\n/**\n * Describes a service.\n *\n * @generated from message google.protobuf.ServiceDescriptorProto\n */\nexport class ServiceDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.MethodDescriptorProto method = 2;\n */\n this.method = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ServiceDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ServiceDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ServiceDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ServiceDescriptorProto, a, b);\n }\n}\nServiceDescriptorProto.runtime = proto2;\nServiceDescriptorProto.typeName = \"google.protobuf.ServiceDescriptorProto\";\nServiceDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"method\", kind: \"message\", T: MethodDescriptorProto, repeated: true },\n { no: 3, name: \"options\", kind: \"message\", T: ServiceOptions, opt: true },\n]);\n/**\n * Describes a method of a service.\n *\n * @generated from message google.protobuf.MethodDescriptorProto\n */\nexport class MethodDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MethodDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MethodDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MethodDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MethodDescriptorProto, a, b);\n }\n}\nMethodDescriptorProto.runtime = proto2;\nMethodDescriptorProto.typeName = \"google.protobuf.MethodDescriptorProto\";\nMethodDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"input_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"output_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"options\", kind: \"message\", T: MethodOptions, opt: true },\n { no: 5, name: \"client_streaming\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 6, name: \"server_streaming\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n]);\n/**\n * @generated from message google.protobuf.FileOptions\n */\nexport class FileOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here.\n * See the documentation for the \"Options\" section above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileOptions, a, b);\n }\n}\nFileOptions.runtime = proto2;\nFileOptions.typeName = \"google.protobuf.FileOptions\";\nFileOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"java_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"java_outer_classname\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 10, name: \"java_multiple_files\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 20, name: \"java_generate_equals_and_hash\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 27, name: \"java_string_check_utf8\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 9, name: \"optimize_for\", kind: \"enum\", T: proto2.getEnumType(FileOptions_OptimizeMode), opt: true, default: FileOptions_OptimizeMode.SPEED },\n { no: 11, name: \"go_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 16, name: \"cc_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 17, name: \"java_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 18, name: \"py_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 42, name: \"php_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 23, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 31, name: \"cc_enable_arenas\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: true },\n { no: 36, name: \"objc_class_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 37, name: \"csharp_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 39, name: \"swift_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 40, name: \"php_class_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 41, name: \"php_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 44, name: \"php_metadata_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 45, name: \"ruby_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 50, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * Generated classes can be optimized for speed or code size.\n *\n * @generated from enum google.protobuf.FileOptions.OptimizeMode\n */\nexport var FileOptions_OptimizeMode;\n(function (FileOptions_OptimizeMode) {\n /**\n * Generate complete code for parsing, serialization,\n *\n * @generated from enum value: SPEED = 1;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"SPEED\"] = 1] = \"SPEED\";\n /**\n * etc.\n *\n * Use ReflectionOps to implement these methods.\n *\n * @generated from enum value: CODE_SIZE = 2;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"CODE_SIZE\"] = 2] = \"CODE_SIZE\";\n /**\n * Generate code using MessageLite and the lite runtime.\n *\n * @generated from enum value: LITE_RUNTIME = 3;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"LITE_RUNTIME\"] = 3] = \"LITE_RUNTIME\";\n})(FileOptions_OptimizeMode || (FileOptions_OptimizeMode = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FileOptions_OptimizeMode)\nproto2.util.setEnumType(FileOptions_OptimizeMode, \"google.protobuf.FileOptions.OptimizeMode\", [\n { no: 1, name: \"SPEED\" },\n { no: 2, name: \"CODE_SIZE\" },\n { no: 3, name: \"LITE_RUNTIME\" },\n]);\n/**\n * @generated from message google.protobuf.MessageOptions\n */\nexport class MessageOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MessageOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MessageOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MessageOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MessageOptions, a, b);\n }\n}\nMessageOptions.runtime = proto2;\nMessageOptions.typeName = \"google.protobuf.MessageOptions\";\nMessageOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"message_set_wire_format\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 2, name: \"no_standard_descriptor_accessor\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 7, name: \"map_entry\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 11, name: \"deprecated_legacy_json_field_conflicts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 12, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.FieldOptions\n */\nexport class FieldOptions extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FieldOptions.OptionTargetType targets = 19;\n */\n this.targets = [];\n /**\n * @generated from field: repeated google.protobuf.FieldOptions.EditionDefault edition_defaults = 20;\n */\n this.editionDefaults = [];\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldOptions, a, b);\n }\n}\nFieldOptions.runtime = proto2;\nFieldOptions.typeName = \"google.protobuf.FieldOptions\";\nFieldOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"ctype\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_CType), opt: true, default: FieldOptions_CType.STRING },\n { no: 2, name: \"packed\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"jstype\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_JSType), opt: true, default: FieldOptions_JSType.JS_NORMAL },\n { no: 5, name: \"lazy\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 15, name: \"unverified_lazy\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 10, name: \"weak\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 16, name: \"debug_redact\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 17, name: \"retention\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_OptionRetention), opt: true },\n { no: 19, name: \"targets\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_OptionTargetType), repeated: true },\n { no: 20, name: \"edition_defaults\", kind: \"message\", T: FieldOptions_EditionDefault, repeated: true },\n { no: 21, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from enum google.protobuf.FieldOptions.CType\n */\nexport var FieldOptions_CType;\n(function (FieldOptions_CType) {\n /**\n * Default mode.\n *\n * @generated from enum value: STRING = 0;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING\"] = 0] = \"STRING\";\n /**\n * The option [ctype=CORD] may be applied to a non-repeated field of type\n * \"bytes\". It indicates that in C++, the data should be stored in a Cord\n * instead of a string. For very large strings, this may reduce memory\n * fragmentation. It may also allow better performance when parsing from a\n * Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n * alias the original buffer.\n *\n * @generated from enum value: CORD = 1;\n */\n FieldOptions_CType[FieldOptions_CType[\"CORD\"] = 1] = \"CORD\";\n /**\n * @generated from enum value: STRING_PIECE = 2;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING_PIECE\"] = 2] = \"STRING_PIECE\";\n})(FieldOptions_CType || (FieldOptions_CType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_CType)\nproto2.util.setEnumType(FieldOptions_CType, \"google.protobuf.FieldOptions.CType\", [\n { no: 0, name: \"STRING\" },\n { no: 1, name: \"CORD\" },\n { no: 2, name: \"STRING_PIECE\" },\n]);\n/**\n * @generated from enum google.protobuf.FieldOptions.JSType\n */\nexport var FieldOptions_JSType;\n(function (FieldOptions_JSType) {\n /**\n * Use the default type.\n *\n * @generated from enum value: JS_NORMAL = 0;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NORMAL\"] = 0] = \"JS_NORMAL\";\n /**\n * Use JavaScript strings.\n *\n * @generated from enum value: JS_STRING = 1;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_STRING\"] = 1] = \"JS_STRING\";\n /**\n * Use JavaScript numbers.\n *\n * @generated from enum value: JS_NUMBER = 2;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NUMBER\"] = 2] = \"JS_NUMBER\";\n})(FieldOptions_JSType || (FieldOptions_JSType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_JSType)\nproto2.util.setEnumType(FieldOptions_JSType, \"google.protobuf.FieldOptions.JSType\", [\n { no: 0, name: \"JS_NORMAL\" },\n { no: 1, name: \"JS_STRING\" },\n { no: 2, name: \"JS_NUMBER\" },\n]);\n/**\n * If set to RETENTION_SOURCE, the option will be omitted from the binary.\n * Note: as of January 2023, support for this is in progress and does not yet\n * have an effect (b/264593489).\n *\n * @generated from enum google.protobuf.FieldOptions.OptionRetention\n */\nexport var FieldOptions_OptionRetention;\n(function (FieldOptions_OptionRetention) {\n /**\n * @generated from enum value: RETENTION_UNKNOWN = 0;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_UNKNOWN\"] = 0] = \"RETENTION_UNKNOWN\";\n /**\n * @generated from enum value: RETENTION_RUNTIME = 1;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_RUNTIME\"] = 1] = \"RETENTION_RUNTIME\";\n /**\n * @generated from enum value: RETENTION_SOURCE = 2;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_SOURCE\"] = 2] = \"RETENTION_SOURCE\";\n})(FieldOptions_OptionRetention || (FieldOptions_OptionRetention = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_OptionRetention)\nproto2.util.setEnumType(FieldOptions_OptionRetention, \"google.protobuf.FieldOptions.OptionRetention\", [\n { no: 0, name: \"RETENTION_UNKNOWN\" },\n { no: 1, name: \"RETENTION_RUNTIME\" },\n { no: 2, name: \"RETENTION_SOURCE\" },\n]);\n/**\n * This indicates the types of entities that the field may apply to when used\n * as an option. If it is unset, then the field may be freely used as an\n * option on any kind of entity. Note: as of January 2023, support for this is\n * in progress and does not yet have an effect (b/264593489).\n *\n * @generated from enum google.protobuf.FieldOptions.OptionTargetType\n */\nexport var FieldOptions_OptionTargetType;\n(function (FieldOptions_OptionTargetType) {\n /**\n * @generated from enum value: TARGET_TYPE_UNKNOWN = 0;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_UNKNOWN\"] = 0] = \"TARGET_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: TARGET_TYPE_FILE = 1;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FILE\"] = 1] = \"TARGET_TYPE_FILE\";\n /**\n * @generated from enum value: TARGET_TYPE_EXTENSION_RANGE = 2;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_EXTENSION_RANGE\"] = 2] = \"TARGET_TYPE_EXTENSION_RANGE\";\n /**\n * @generated from enum value: TARGET_TYPE_MESSAGE = 3;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_MESSAGE\"] = 3] = \"TARGET_TYPE_MESSAGE\";\n /**\n * @generated from enum value: TARGET_TYPE_FIELD = 4;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FIELD\"] = 4] = \"TARGET_TYPE_FIELD\";\n /**\n * @generated from enum value: TARGET_TYPE_ONEOF = 5;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ONEOF\"] = 5] = \"TARGET_TYPE_ONEOF\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM = 6;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM\"] = 6] = \"TARGET_TYPE_ENUM\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM_ENTRY = 7;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM_ENTRY\"] = 7] = \"TARGET_TYPE_ENUM_ENTRY\";\n /**\n * @generated from enum value: TARGET_TYPE_SERVICE = 8;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_SERVICE\"] = 8] = \"TARGET_TYPE_SERVICE\";\n /**\n * @generated from enum value: TARGET_TYPE_METHOD = 9;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_METHOD\"] = 9] = \"TARGET_TYPE_METHOD\";\n})(FieldOptions_OptionTargetType || (FieldOptions_OptionTargetType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_OptionTargetType)\nproto2.util.setEnumType(FieldOptions_OptionTargetType, \"google.protobuf.FieldOptions.OptionTargetType\", [\n { no: 0, name: \"TARGET_TYPE_UNKNOWN\" },\n { no: 1, name: \"TARGET_TYPE_FILE\" },\n { no: 2, name: \"TARGET_TYPE_EXTENSION_RANGE\" },\n { no: 3, name: \"TARGET_TYPE_MESSAGE\" },\n { no: 4, name: \"TARGET_TYPE_FIELD\" },\n { no: 5, name: \"TARGET_TYPE_ONEOF\" },\n { no: 6, name: \"TARGET_TYPE_ENUM\" },\n { no: 7, name: \"TARGET_TYPE_ENUM_ENTRY\" },\n { no: 8, name: \"TARGET_TYPE_SERVICE\" },\n { no: 9, name: \"TARGET_TYPE_METHOD\" },\n]);\n/**\n * @generated from message google.protobuf.FieldOptions.EditionDefault\n */\nexport class FieldOptions_EditionDefault extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldOptions_EditionDefault().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldOptions_EditionDefault().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldOptions_EditionDefault().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldOptions_EditionDefault, a, b);\n }\n}\nFieldOptions_EditionDefault.runtime = proto2;\nFieldOptions_EditionDefault.typeName = \"google.protobuf.FieldOptions.EditionDefault\";\nFieldOptions_EditionDefault.fields = proto2.util.newFieldList(() => [\n { no: 3, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 2, name: \"value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n]);\n/**\n * @generated from message google.protobuf.OneofOptions\n */\nexport class OneofOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new OneofOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new OneofOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new OneofOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(OneofOptions, a, b);\n }\n}\nOneofOptions.runtime = proto2;\nOneofOptions.typeName = \"google.protobuf.OneofOptions\";\nOneofOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.EnumOptions\n */\nexport class EnumOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumOptions, a, b);\n }\n}\nEnumOptions.runtime = proto2;\nEnumOptions.typeName = \"google.protobuf.EnumOptions\";\nEnumOptions.fields = proto2.util.newFieldList(() => [\n { no: 2, name: \"allow_alias\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 6, name: \"deprecated_legacy_json_field_conflicts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 7, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.EnumValueOptions\n */\nexport class EnumValueOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumValueOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumValueOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumValueOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumValueOptions, a, b);\n }\n}\nEnumValueOptions.runtime = proto2;\nEnumValueOptions.typeName = \"google.protobuf.EnumValueOptions\";\nEnumValueOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 2, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 3, name: \"debug_redact\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.ServiceOptions\n */\nexport class ServiceOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ServiceOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ServiceOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ServiceOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ServiceOptions, a, b);\n }\n}\nServiceOptions.runtime = proto2;\nServiceOptions.typeName = \"google.protobuf.ServiceOptions\";\nServiceOptions.fields = proto2.util.newFieldList(() => [\n { no: 34, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 33, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.MethodOptions\n */\nexport class MethodOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MethodOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MethodOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MethodOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MethodOptions, a, b);\n }\n}\nMethodOptions.runtime = proto2;\nMethodOptions.typeName = \"google.protobuf.MethodOptions\";\nMethodOptions.fields = proto2.util.newFieldList(() => [\n { no: 33, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 34, name: \"idempotency_level\", kind: \"enum\", T: proto2.getEnumType(MethodOptions_IdempotencyLevel), opt: true, default: MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN },\n { no: 35, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n * or neither? HTTP based RPC implementation may choose GET verb for safe\n * methods, and PUT verb for idempotent methods instead of the default POST.\n *\n * @generated from enum google.protobuf.MethodOptions.IdempotencyLevel\n */\nexport var MethodOptions_IdempotencyLevel;\n(function (MethodOptions_IdempotencyLevel) {\n /**\n * @generated from enum value: IDEMPOTENCY_UNKNOWN = 0;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENCY_UNKNOWN\"] = 0] = \"IDEMPOTENCY_UNKNOWN\";\n /**\n * implies idempotent\n *\n * @generated from enum value: NO_SIDE_EFFECTS = 1;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"NO_SIDE_EFFECTS\"] = 1] = \"NO_SIDE_EFFECTS\";\n /**\n * idempotent, but may have side effects\n *\n * @generated from enum value: IDEMPOTENT = 2;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENT\"] = 2] = \"IDEMPOTENT\";\n})(MethodOptions_IdempotencyLevel || (MethodOptions_IdempotencyLevel = {}));\n// Retrieve enum metadata with: proto2.getEnumType(MethodOptions_IdempotencyLevel)\nproto2.util.setEnumType(MethodOptions_IdempotencyLevel, \"google.protobuf.MethodOptions.IdempotencyLevel\", [\n { no: 0, name: \"IDEMPOTENCY_UNKNOWN\" },\n { no: 1, name: \"NO_SIDE_EFFECTS\" },\n { no: 2, name: \"IDEMPOTENT\" },\n]);\n/**\n * A message representing a option the parser does not recognize. This only\n * appears in options protos created by the compiler::Parser class.\n * DescriptorPool resolves these when building Descriptor objects. Therefore,\n * options protos in descriptor objects (e.g. returned by Descriptor::options(),\n * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n * in them.\n *\n * @generated from message google.protobuf.UninterpretedOption\n */\nexport class UninterpretedOption extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.UninterpretedOption.NamePart name = 2;\n */\n this.name = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new UninterpretedOption().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new UninterpretedOption().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new UninterpretedOption().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(UninterpretedOption, a, b);\n }\n}\nUninterpretedOption.runtime = proto2;\nUninterpretedOption.typeName = \"google.protobuf.UninterpretedOption\";\nUninterpretedOption.fields = proto2.util.newFieldList(() => [\n { no: 2, name: \"name\", kind: \"message\", T: UninterpretedOption_NamePart, repeated: true },\n { no: 3, name: \"identifier_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"positive_int_value\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */, opt: true },\n { no: 5, name: \"negative_int_value\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 6, name: \"double_value\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 7, name: \"string_value\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */, opt: true },\n { no: 8, name: \"aggregate_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n]);\n/**\n * The name of the uninterpreted option. Each string represents a segment in\n * a dot-separated name. is_extension is true iff a segment represents an\n * extension (denoted with parentheses in options specs in .proto files).\n * E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n * \"foo.(bar.baz).moo\".\n *\n * @generated from message google.protobuf.UninterpretedOption.NamePart\n */\nexport class UninterpretedOption_NamePart extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new UninterpretedOption_NamePart().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new UninterpretedOption_NamePart().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new UninterpretedOption_NamePart().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(UninterpretedOption_NamePart, a, b);\n }\n}\nUninterpretedOption_NamePart.runtime = proto2;\nUninterpretedOption_NamePart.typeName = \"google.protobuf.UninterpretedOption.NamePart\";\nUninterpretedOption_NamePart.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name_part\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"is_extension\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n]);\n/**\n * TODO Enums in C++ gencode (and potentially other languages) are\n * not well scoped. This means that each of the feature enums below can clash\n * with each other. The short names we've chosen maximize call-site\n * readability, but leave us very open to this scenario. A future feature will\n * be designed and implemented to handle this, hopefully before we ever hit a\n * conflict here.\n *\n * @generated from message google.protobuf.FeatureSet\n */\nexport class FeatureSet extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSet().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSet().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSet().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSet, a, b);\n }\n}\nFeatureSet.runtime = proto2;\nFeatureSet.typeName = \"google.protobuf.FeatureSet\";\nFeatureSet.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"field_presence\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_FieldPresence), opt: true },\n { no: 2, name: \"enum_type\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_EnumType), opt: true },\n { no: 3, name: \"repeated_field_encoding\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding), opt: true },\n { no: 4, name: \"utf8_validation\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_Utf8Validation), opt: true },\n { no: 5, name: \"message_encoding\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_MessageEncoding), opt: true },\n { no: 6, name: \"json_format\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_JsonFormat), opt: true },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.FieldPresence\n */\nexport var FeatureSet_FieldPresence;\n(function (FeatureSet_FieldPresence) {\n /**\n * @generated from enum value: FIELD_PRESENCE_UNKNOWN = 0;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"FIELD_PRESENCE_UNKNOWN\"] = 0] = \"FIELD_PRESENCE_UNKNOWN\";\n /**\n * @generated from enum value: EXPLICIT = 1;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"EXPLICIT\"] = 1] = \"EXPLICIT\";\n /**\n * @generated from enum value: IMPLICIT = 2;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"IMPLICIT\"] = 2] = \"IMPLICIT\";\n /**\n * @generated from enum value: LEGACY_REQUIRED = 3;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"LEGACY_REQUIRED\"] = 3] = \"LEGACY_REQUIRED\";\n})(FeatureSet_FieldPresence || (FeatureSet_FieldPresence = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_FieldPresence)\nproto2.util.setEnumType(FeatureSet_FieldPresence, \"google.protobuf.FeatureSet.FieldPresence\", [\n { no: 0, name: \"FIELD_PRESENCE_UNKNOWN\" },\n { no: 1, name: \"EXPLICIT\" },\n { no: 2, name: \"IMPLICIT\" },\n { no: 3, name: \"LEGACY_REQUIRED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.EnumType\n */\nexport var FeatureSet_EnumType;\n(function (FeatureSet_EnumType) {\n /**\n * @generated from enum value: ENUM_TYPE_UNKNOWN = 0;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"ENUM_TYPE_UNKNOWN\"] = 0] = \"ENUM_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: OPEN = 1;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"OPEN\"] = 1] = \"OPEN\";\n /**\n * @generated from enum value: CLOSED = 2;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"CLOSED\"] = 2] = \"CLOSED\";\n})(FeatureSet_EnumType || (FeatureSet_EnumType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_EnumType)\nproto2.util.setEnumType(FeatureSet_EnumType, \"google.protobuf.FeatureSet.EnumType\", [\n { no: 0, name: \"ENUM_TYPE_UNKNOWN\" },\n { no: 1, name: \"OPEN\" },\n { no: 2, name: \"CLOSED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.RepeatedFieldEncoding\n */\nexport var FeatureSet_RepeatedFieldEncoding;\n(function (FeatureSet_RepeatedFieldEncoding) {\n /**\n * @generated from enum value: REPEATED_FIELD_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"REPEATED_FIELD_ENCODING_UNKNOWN\"] = 0] = \"REPEATED_FIELD_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: PACKED = 1;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"PACKED\"] = 1] = \"PACKED\";\n /**\n * @generated from enum value: EXPANDED = 2;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"EXPANDED\"] = 2] = \"EXPANDED\";\n})(FeatureSet_RepeatedFieldEncoding || (FeatureSet_RepeatedFieldEncoding = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding)\nproto2.util.setEnumType(FeatureSet_RepeatedFieldEncoding, \"google.protobuf.FeatureSet.RepeatedFieldEncoding\", [\n { no: 0, name: \"REPEATED_FIELD_ENCODING_UNKNOWN\" },\n { no: 1, name: \"PACKED\" },\n { no: 2, name: \"EXPANDED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.Utf8Validation\n */\nexport var FeatureSet_Utf8Validation;\n(function (FeatureSet_Utf8Validation) {\n /**\n * @generated from enum value: UTF8_VALIDATION_UNKNOWN = 0;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"UTF8_VALIDATION_UNKNOWN\"] = 0] = \"UTF8_VALIDATION_UNKNOWN\";\n /**\n * @generated from enum value: NONE = 1;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"NONE\"] = 1] = \"NONE\";\n /**\n * @generated from enum value: VERIFY = 2;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"VERIFY\"] = 2] = \"VERIFY\";\n})(FeatureSet_Utf8Validation || (FeatureSet_Utf8Validation = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_Utf8Validation)\nproto2.util.setEnumType(FeatureSet_Utf8Validation, \"google.protobuf.FeatureSet.Utf8Validation\", [\n { no: 0, name: \"UTF8_VALIDATION_UNKNOWN\" },\n { no: 1, name: \"NONE\" },\n { no: 2, name: \"VERIFY\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.MessageEncoding\n */\nexport var FeatureSet_MessageEncoding;\n(function (FeatureSet_MessageEncoding) {\n /**\n * @generated from enum value: MESSAGE_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"MESSAGE_ENCODING_UNKNOWN\"] = 0] = \"MESSAGE_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: LENGTH_PREFIXED = 1;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"LENGTH_PREFIXED\"] = 1] = \"LENGTH_PREFIXED\";\n /**\n * @generated from enum value: DELIMITED = 2;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"DELIMITED\"] = 2] = \"DELIMITED\";\n})(FeatureSet_MessageEncoding || (FeatureSet_MessageEncoding = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_MessageEncoding)\nproto2.util.setEnumType(FeatureSet_MessageEncoding, \"google.protobuf.FeatureSet.MessageEncoding\", [\n { no: 0, name: \"MESSAGE_ENCODING_UNKNOWN\" },\n { no: 1, name: \"LENGTH_PREFIXED\" },\n { no: 2, name: \"DELIMITED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.JsonFormat\n */\nexport var FeatureSet_JsonFormat;\n(function (FeatureSet_JsonFormat) {\n /**\n * @generated from enum value: JSON_FORMAT_UNKNOWN = 0;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"JSON_FORMAT_UNKNOWN\"] = 0] = \"JSON_FORMAT_UNKNOWN\";\n /**\n * @generated from enum value: ALLOW = 1;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"ALLOW\"] = 1] = \"ALLOW\";\n /**\n * @generated from enum value: LEGACY_BEST_EFFORT = 2;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"LEGACY_BEST_EFFORT\"] = 2] = \"LEGACY_BEST_EFFORT\";\n})(FeatureSet_JsonFormat || (FeatureSet_JsonFormat = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_JsonFormat)\nproto2.util.setEnumType(FeatureSet_JsonFormat, \"google.protobuf.FeatureSet.JsonFormat\", [\n { no: 0, name: \"JSON_FORMAT_UNKNOWN\" },\n { no: 1, name: \"ALLOW\" },\n { no: 2, name: \"LEGACY_BEST_EFFORT\" },\n]);\n/**\n * A compiled specification for the defaults of a set of features. These\n * messages are generated from FeatureSet extensions and can be used to seed\n * feature resolution. The resolution with this object becomes a simple search\n * for the closest matching edition, followed by proto merges.\n *\n * @generated from message google.protobuf.FeatureSetDefaults\n */\nexport class FeatureSetDefaults extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault defaults = 1;\n */\n this.defaults = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSetDefaults().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSetDefaults().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSetDefaults().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSetDefaults, a, b);\n }\n}\nFeatureSetDefaults.runtime = proto2;\nFeatureSetDefaults.typeName = \"google.protobuf.FeatureSetDefaults\";\nFeatureSetDefaults.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"defaults\", kind: \"message\", T: FeatureSetDefaults_FeatureSetEditionDefault, repeated: true },\n { no: 4, name: \"minimum_edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 5, name: \"maximum_edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n]);\n/**\n * A map from every known edition with a unique set of defaults to its\n * defaults. Not all editions may be contained here. For a given edition,\n * the defaults at the closest matching edition ordered at or before it should\n * be used. This field must be in strict ascending order by edition.\n *\n * @generated from message google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\n */\nexport class FeatureSetDefaults_FeatureSetEditionDefault extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSetDefaults_FeatureSetEditionDefault, a, b);\n }\n}\nFeatureSetDefaults_FeatureSetEditionDefault.runtime = proto2;\nFeatureSetDefaults_FeatureSetEditionDefault.typeName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\";\nFeatureSetDefaults_FeatureSetEditionDefault.fields = proto2.util.newFieldList(() => [\n { no: 3, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 2, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n]);\n/**\n * Encapsulates information about the original source file from which a\n * FileDescriptorProto was generated.\n *\n * @generated from message google.protobuf.SourceCodeInfo\n */\nexport class SourceCodeInfo extends Message {\n constructor(data) {\n super();\n /**\n * A Location identifies a piece of source code in a .proto file which\n * corresponds to a particular definition. This information is intended\n * to be useful to IDEs, code indexers, documentation generators, and similar\n * tools.\n *\n * For example, say we have a file like:\n * message Foo {\n * optional string foo = 1;\n * }\n * Let's look at just the field definition:\n * optional string foo = 1;\n * ^ ^^ ^^ ^ ^^^\n * a bc de f ghi\n * We have the following locations:\n * span path represents\n * [a,i) [ 4, 0, 2, 0 ] The whole field definition.\n * [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).\n * [c,d) [ 4, 0, 2, 0, 5 ] The type (string).\n * [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).\n * [g,h) [ 4, 0, 2, 0, 3 ] The number (1).\n *\n * Notes:\n * - A location may refer to a repeated field itself (i.e. not to any\n * particular index within it). This is used whenever a set of elements are\n * logically enclosed in a single code segment. For example, an entire\n * extend block (possibly containing multiple extension definitions) will\n * have an outer location whose path refers to the \"extensions\" repeated\n * field without an index.\n * - Multiple locations may have the same path. This happens when a single\n * logical declaration is spread out across multiple places. The most\n * obvious example is the \"extend\" block again -- there may be multiple\n * extend blocks in the same scope, each of which will have the same path.\n * - A location's span is not always a subset of its parent's span. For\n * example, the \"extendee\" of an extension declaration appears at the\n * beginning of the \"extend\" block and is shared by all extensions within\n * the block.\n * - Just because a location's span is a subset of some other location's span\n * does not mean that it is a descendant. For example, a \"group\" defines\n * both a type and a field in a single declaration. Thus, the locations\n * corresponding to the type and field and their components will overlap.\n * - Code which tries to interpret locations should probably be designed to\n * ignore those that it doesn't understand, as more types of locations could\n * be recorded in the future.\n *\n * @generated from field: repeated google.protobuf.SourceCodeInfo.Location location = 1;\n */\n this.location = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new SourceCodeInfo().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new SourceCodeInfo().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new SourceCodeInfo().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(SourceCodeInfo, a, b);\n }\n}\nSourceCodeInfo.runtime = proto2;\nSourceCodeInfo.typeName = \"google.protobuf.SourceCodeInfo\";\nSourceCodeInfo.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"location\", kind: \"message\", T: SourceCodeInfo_Location, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.SourceCodeInfo.Location\n */\nexport class SourceCodeInfo_Location extends Message {\n constructor(data) {\n super();\n /**\n * Identifies which part of the FileDescriptorProto was defined at this\n * location.\n *\n * Each element is a field number or an index. They form a path from\n * the root FileDescriptorProto to the place where the definition occurs.\n * For example, this path:\n * [ 4, 3, 2, 7, 1 ]\n * refers to:\n * file.message_type(3) // 4, 3\n * .field(7) // 2, 7\n * .name() // 1\n * This is because FileDescriptorProto.message_type has field number 4:\n * repeated DescriptorProto message_type = 4;\n * and DescriptorProto.field has field number 2:\n * repeated FieldDescriptorProto field = 2;\n * and FieldDescriptorProto.name has field number 1:\n * optional string name = 1;\n *\n * Thus, the above path gives the location of a field name. If we removed\n * the last element:\n * [ 4, 3, 2, 7 ]\n * this path refers to the whole field declaration (from the beginning\n * of the label to the terminating semicolon).\n *\n * @generated from field: repeated int32 path = 1 [packed = true];\n */\n this.path = [];\n /**\n * Always has exactly three or four elements: start line, start column,\n * end line (optional, otherwise assumed same as start line), end column.\n * These are packed into a single field for efficiency. Note that line\n * and column numbers are zero-based -- typically you will want to add\n * 1 to each before displaying to a user.\n *\n * @generated from field: repeated int32 span = 2 [packed = true];\n */\n this.span = [];\n /**\n * @generated from field: repeated string leading_detached_comments = 6;\n */\n this.leadingDetachedComments = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new SourceCodeInfo_Location().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new SourceCodeInfo_Location().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new SourceCodeInfo_Location().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(SourceCodeInfo_Location, a, b);\n }\n}\nSourceCodeInfo_Location.runtime = proto2;\nSourceCodeInfo_Location.typeName = \"google.protobuf.SourceCodeInfo.Location\";\nSourceCodeInfo_Location.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"path\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 2, name: \"span\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 3, name: \"leading_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"trailing_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"leading_detached_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * Describes the relationship between generated code and its original source\n * file. A GeneratedCodeInfo message is associated with only one generated\n * source file, but may contain references to different source .proto files.\n *\n * @generated from message google.protobuf.GeneratedCodeInfo\n */\nexport class GeneratedCodeInfo extends Message {\n constructor(data) {\n super();\n /**\n * An Annotation connects some span of text in generated code to an element\n * of its generating .proto file.\n *\n * @generated from field: repeated google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;\n */\n this.annotation = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new GeneratedCodeInfo().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new GeneratedCodeInfo().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new GeneratedCodeInfo().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(GeneratedCodeInfo, a, b);\n }\n}\nGeneratedCodeInfo.runtime = proto2;\nGeneratedCodeInfo.typeName = \"google.protobuf.GeneratedCodeInfo\";\nGeneratedCodeInfo.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"annotation\", kind: \"message\", T: GeneratedCodeInfo_Annotation, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.GeneratedCodeInfo.Annotation\n */\nexport class GeneratedCodeInfo_Annotation extends Message {\n constructor(data) {\n super();\n /**\n * Identifies the element in the original source .proto file. This field\n * is formatted the same as SourceCodeInfo.Location.path.\n *\n * @generated from field: repeated int32 path = 1 [packed = true];\n */\n this.path = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new GeneratedCodeInfo_Annotation().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new GeneratedCodeInfo_Annotation().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new GeneratedCodeInfo_Annotation().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(GeneratedCodeInfo_Annotation, a, b);\n }\n}\nGeneratedCodeInfo_Annotation.runtime = proto2;\nGeneratedCodeInfo_Annotation.typeName = \"google.protobuf.GeneratedCodeInfo.Annotation\";\nGeneratedCodeInfo_Annotation.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"path\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 2, name: \"source_file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"begin\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"semantic\", kind: \"enum\", T: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic), opt: true },\n]);\n/**\n * Represents the identified object's effect on the element in the original\n * .proto file.\n *\n * @generated from enum google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n */\nexport var GeneratedCodeInfo_Annotation_Semantic;\n(function (GeneratedCodeInfo_Annotation_Semantic) {\n /**\n * There is no effect or the effect is indescribable.\n *\n * @generated from enum value: NONE = 0;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"NONE\"] = 0] = \"NONE\";\n /**\n * The element is set or otherwise mutated.\n *\n * @generated from enum value: SET = 1;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"SET\"] = 1] = \"SET\";\n /**\n * An alias to the element is returned.\n *\n * @generated from enum value: ALIAS = 2;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"ALIAS\"] = 2] = \"ALIAS\";\n})(GeneratedCodeInfo_Annotation_Semantic || (GeneratedCodeInfo_Annotation_Semantic = {}));\n// Retrieve enum metadata with: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic)\nproto2.util.setEnumType(GeneratedCodeInfo_Annotation_Semantic, \"google.protobuf.GeneratedCodeInfo.Annotation.Semantic\", [\n { no: 0, name: \"NONE\" },\n { no: 1, name: \"SET\" },\n { no: 2, name: \"ALIAS\" },\n]);\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../../message.js\";\nimport { proto3 } from \"../../proto3.js\";\n/**\n * A generic empty message that you can re-use to avoid defining duplicated\n * empty messages in your APIs. A typical example is to use it as the request\n * or the response type of an API method. For instance:\n *\n * service Foo {\n * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n * }\n *\n *\n * @generated from message google.protobuf.Empty\n */\nexport class Empty extends Message {\n constructor(data) {\n super();\n proto3.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new Empty().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new Empty().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new Empty().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto3.util.equals(Empty, a, b);\n }\n}\nEmpty.runtime = proto3;\nEmpty.typeName = \"google.protobuf.Empty\";\nEmpty.fields = proto3.util.newFieldList(() => []);\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file user/user.proto (package user, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message user.VerifyUserRequest\n */\nexport class VerifyUserRequest extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.VerifyUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: VerifyUserRequest | PlainMessage | undefined, b: VerifyUserRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(VerifyUserRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupInfoRequest\n */\nexport class GroupInfoRequest extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupInfoRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupInfoRequest | PlainMessage | undefined, b: GroupInfoRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupInfoRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupID\n */\nexport class GroupID extends Message {\n /**\n * @generated from field: string group_id = 1;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupID\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupID {\n return new GroupID().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupID {\n return new GroupID().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupID {\n return new GroupID().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupID | PlainMessage | undefined, b: GroupID | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupID, a, b);\n }\n}\n\n/**\n * @generated from message user.ShareRequest\n */\nexport class ShareRequest extends Message {\n /**\n * @generated from field: string content_id = 1;\n */\n contentId = \"\";\n\n /**\n * @generated from field: string group_id = 2;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.ShareRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ShareRequest {\n return new ShareRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ShareRequest {\n return new ShareRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ShareRequest {\n return new ShareRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ShareRequest | PlainMessage | undefined, b: ShareRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ShareRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupInvite\n */\nexport class GroupInvite extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupInvite\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupInvite {\n return new GroupInvite().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupInvite {\n return new GroupInvite().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupInvite {\n return new GroupInvite().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupInvite | PlainMessage | undefined, b: GroupInvite | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupInvite, a, b);\n }\n}\n\n/**\n * @generated from message user.Groups\n */\nexport class Groups extends Message {\n /**\n * @generated from field: repeated user.Group groups = 1;\n */\n groups: Group[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Groups\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"groups\", kind: \"message\", T: Group, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Groups {\n return new Groups().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Groups {\n return new Groups().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Groups {\n return new Groups().fromJsonString(jsonString, options);\n }\n\n static equals(a: Groups | PlainMessage | undefined, b: Groups | PlainMessage | undefined): boolean {\n return proto3.util.equals(Groups, a, b);\n }\n}\n\n/**\n * @generated from message user.AnalyzeConversationRequest\n */\nexport class AnalyzeConversationRequest extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.AnalyzeConversationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationRequest | PlainMessage | undefined, b: AnalyzeConversationRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.User\n */\nexport class User extends Message {\n /**\n * @generated from field: string email = 1;\n */\n email = \"\";\n\n /**\n * @generated from field: string password = 2;\n */\n password = \"\";\n\n /**\n * @generated from field: user.Config config = 3;\n */\n config?: Config;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.User\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"password\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"config\", kind: \"message\", T: Config },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): User {\n return new User().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): User {\n return new User().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): User {\n return new User().fromJsonString(jsonString, options);\n }\n\n static equals(a: User | PlainMessage | undefined, b: User | PlainMessage | undefined): boolean {\n return proto3.util.equals(User, a, b);\n }\n}\n\n/**\n * @generated from message user.Group\n */\nexport class Group extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated string users = 3;\n */\n users: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Group\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"users\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Group {\n return new Group().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Group {\n return new Group().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Group {\n return new Group().fromJsonString(jsonString, options);\n }\n\n static equals(a: Group | PlainMessage | undefined, b: Group | PlainMessage | undefined): boolean {\n return proto3.util.equals(Group, a, b);\n }\n}\n\n/**\n * @generated from message user.Config\n */\nexport class Config extends Message {\n /**\n * @generated from field: repeated string domain_whitelist = 1;\n */\n domainWhitelist: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Config\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"domain_whitelist\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Config {\n return new Config().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Config {\n return new Config().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Config {\n return new Config().fromJsonString(jsonString, options);\n }\n\n static equals(a: Config | PlainMessage | undefined, b: Config | PlainMessage | undefined): boolean {\n return proto3.util.equals(Config, a, b);\n }\n}\n\n/**\n * @generated from message user.LoginResponse\n */\nexport class LoginResponse extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.LoginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): LoginResponse {\n return new LoginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): LoginResponse {\n return new LoginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): LoginResponse {\n return new LoginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: LoginResponse | PlainMessage | undefined, b: LoginResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(LoginResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/content.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { DescriptorProto, EnumDescriptorProto, Message, proto3, protoInt64 } from \"@bufbuild/protobuf\";\nimport { User } from \"../user/user_pb.js\";\n\n/**\n * @generated from message content.RelateRequest\n */\nexport class RelateRequest extends Message {\n /**\n * @generated from field: string parent = 1;\n */\n parent = \"\";\n\n /**\n * @generated from field: repeated string children = 2;\n */\n children: string[] = [];\n\n /**\n * @generated from field: bool connect = 3;\n */\n connect = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RelateRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"parent\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"children\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"connect\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RelateRequest {\n return new RelateRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RelateRequest {\n return new RelateRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RelateRequest {\n return new RelateRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RelateRequest | PlainMessage | undefined, b: RelateRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(RelateRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.Sources\n */\nexport class Sources extends Message {\n /**\n * @generated from field: repeated content.EnumeratedSource sources = 1;\n */\n sources: EnumeratedSource[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Sources\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sources\", kind: \"message\", T: EnumeratedSource, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Sources {\n return new Sources().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Sources {\n return new Sources().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Sources {\n return new Sources().fromJsonString(jsonString, options);\n }\n\n static equals(a: Sources | PlainMessage | undefined, b: Sources | PlainMessage | undefined): boolean {\n return proto3.util.equals(Sources, a, b);\n }\n}\n\n/**\n * @generated from message content.EnumeratedSource\n */\nexport class EnumeratedSource extends Message {\n /**\n * @generated from field: content.Source source = 1;\n */\n source?: Source;\n\n /**\n * @generated from field: repeated content.DisplayContent display_content = 2;\n */\n displayContent: DisplayContent[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.EnumeratedSource\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"source\", kind: \"message\", T: Source },\n { no: 2, name: \"display_content\", kind: \"message\", T: DisplayContent, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromJsonString(jsonString, options);\n }\n\n static equals(a: EnumeratedSource | PlainMessage | undefined, b: EnumeratedSource | PlainMessage | undefined): boolean {\n return proto3.util.equals(EnumeratedSource, a, b);\n }\n}\n\n/**\n * @generated from message content.DisplayContent\n */\nexport class DisplayContent extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * @generated from field: string type = 3;\n */\n type = \"\";\n\n /**\n * @generated from field: content.Content content = 4;\n */\n content?: Content;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.DisplayContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"content\", kind: \"message\", T: Content },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DisplayContent {\n return new DisplayContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DisplayContent {\n return new DisplayContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DisplayContent {\n return new DisplayContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisplayContent | PlainMessage | undefined, b: DisplayContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(DisplayContent, a, b);\n }\n}\n\n/**\n * @generated from message content.Source\n */\nexport class Source extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from oneof content.Source.type\n */\n type: {\n /**\n * @generated from field: content.Server server = 2;\n */\n value: Server;\n case: \"server\";\n } | {\n /**\n * @generated from field: content.Folder folder = 3;\n */\n value: Folder;\n case: \"folder\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Source\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"server\", kind: \"message\", T: Server, oneof: \"type\" },\n { no: 3, name: \"folder\", kind: \"message\", T: Folder, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Source {\n return new Source().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Source {\n return new Source().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Source {\n return new Source().fromJsonString(jsonString, options);\n }\n\n static equals(a: Source | PlainMessage | undefined, b: Source | PlainMessage | undefined): boolean {\n return proto3.util.equals(Source, a, b);\n }\n}\n\n/**\n * @generated from message content.Server\n */\nexport class Server extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Server\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Server {\n return new Server().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Server {\n return new Server().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Server {\n return new Server().fromJsonString(jsonString, options);\n }\n\n static equals(a: Server | PlainMessage | undefined, b: Server | PlainMessage | undefined): boolean {\n return proto3.util.equals(Server, a, b);\n }\n}\n\n/**\n * @generated from message content.Folder\n */\nexport class Folder extends Message {\n /**\n * @generated from field: string path = 2;\n */\n path = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Folder\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 2, name: \"path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Folder {\n return new Folder().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Folder {\n return new Folder().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Folder {\n return new Folder().fromJsonString(jsonString, options);\n }\n\n static equals(a: Folder | PlainMessage | undefined, b: Folder | PlainMessage | undefined): boolean {\n return proto3.util.equals(Folder, a, b);\n }\n}\n\n/**\n * @generated from message content.SetTagsRequest\n */\nexport class SetTagsRequest extends Message {\n /**\n * @generated from field: string content_id = 1;\n */\n contentId = \"\";\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.SetTagsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SetTagsRequest | PlainMessage | undefined, b: SetTagsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(SetTagsRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.TagRequest\n */\nexport class TagRequest extends Message {\n /**\n * @generated from field: string group_id = 1;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.TagRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TagRequest {\n return new TagRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TagRequest {\n return new TagRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TagRequest {\n return new TagRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: TagRequest | PlainMessage | undefined, b: TagRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(TagRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.Tags\n */\nexport class Tags extends Message {\n /**\n * @generated from field: repeated content.Tag tags = 1;\n */\n tags: Tag[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Tags\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"message\", T: Tag, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Tags {\n return new Tags().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Tags {\n return new Tags().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Tags {\n return new Tags().fromJsonString(jsonString, options);\n }\n\n static equals(a: Tags | PlainMessage | undefined, b: Tags | PlainMessage | undefined): boolean {\n return proto3.util.equals(Tags, a, b);\n }\n}\n\n/**\n * @generated from message content.Tag\n */\nexport class Tag extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated content.Tag sub_tags = 2;\n */\n subTags: Tag[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Tag\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"sub_tags\", kind: \"message\", T: Tag, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Tag {\n return new Tag().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Tag {\n return new Tag().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Tag {\n return new Tag().fromJsonString(jsonString, options);\n }\n\n static equals(a: Tag | PlainMessage | undefined, b: Tag | PlainMessage | undefined): boolean {\n return proto3.util.equals(Tag, a, b);\n }\n}\n\n/**\n * @generated from message content.ContentIDs\n */\nexport class ContentIDs extends Message {\n /**\n * @generated from field: repeated string content_ids = 1;\n */\n contentIds: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ContentIDs\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_ids\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ContentIDs {\n return new ContentIDs().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ContentIDs {\n return new ContentIDs().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ContentIDs {\n return new ContentIDs().fromJsonString(jsonString, options);\n }\n\n static equals(a: ContentIDs | PlainMessage | undefined, b: ContentIDs | PlainMessage | undefined): boolean {\n return proto3.util.equals(ContentIDs, a, b);\n }\n}\n\n/**\n * @generated from message content.Contents\n */\nexport class Contents extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: repeated content.Content related = 3;\n */\n related: Content[] = [];\n\n /**\n * @generated from field: repeated string parents = 4;\n */\n parents: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Contents\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"related\", kind: \"message\", T: Content, repeated: true },\n { no: 4, name: \"parents\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Contents {\n return new Contents().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Contents {\n return new Contents().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Contents {\n return new Contents().fromJsonString(jsonString, options);\n }\n\n static equals(a: Contents | PlainMessage | undefined, b: Contents | PlainMessage | undefined): boolean {\n return proto3.util.equals(Contents, a, b);\n }\n}\n\n/**\n * @generated from message content.Query\n */\nexport class Query extends Message {\n /**\n * @generated from field: string query = 1;\n */\n query = \"\";\n\n /**\n * @generated from field: uint32 page = 2;\n */\n page = 0;\n\n /**\n * @generated from field: string contentID = 3;\n */\n contentID = \"\";\n\n /**\n * @generated from field: string groupID = 4;\n */\n groupID = \"\";\n\n /**\n * @generated from field: repeated string tags = 5;\n */\n tags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Query\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"query\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"page\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 3, name: \"contentID\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"groupID\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Query {\n return new Query().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Query {\n return new Query().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Query {\n return new Query().fromJsonString(jsonString, options);\n }\n\n static equals(a: Query | PlainMessage | undefined, b: Query | PlainMessage | undefined): boolean {\n return proto3.util.equals(Query, a, b);\n }\n}\n\n/**\n * @generated from message content.Results\n */\nexport class Results extends Message {\n /**\n * @generated from field: repeated content.StoredContent storedContent = 1;\n */\n storedContent: StoredContent[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Results\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"storedContent\", kind: \"message\", T: StoredContent, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Results {\n return new Results().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Results {\n return new Results().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Results {\n return new Results().fromJsonString(jsonString, options);\n }\n\n static equals(a: Results | PlainMessage | undefined, b: Results | PlainMessage | undefined): boolean {\n return proto3.util.equals(Results, a, b);\n }\n}\n\n/**\n * @generated from message content.StoredContent\n */\nexport class StoredContent extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n /**\n * @generated from field: string id = 2;\n */\n id = \"\";\n\n /**\n * @generated from field: repeated content.Content related = 3;\n */\n related: Content[] = [];\n\n /**\n * @generated from field: string title = 4;\n */\n title = \"\";\n\n /**\n * @generated from field: string description = 5;\n */\n description = \"\";\n\n /**\n * @generated from field: string image = 6;\n */\n image = \"\";\n\n /**\n * @generated from field: string url = 7;\n */\n url = \"\";\n\n /**\n * @generated from field: user.User user = 9;\n */\n user?: User;\n\n /**\n * @generated from field: repeated content.Tag tags = 10;\n */\n tags: Tag[] = [];\n\n /**\n * @generated from field: string preview = 11;\n */\n preview = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.StoredContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n { no: 2, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"related\", kind: \"message\", T: Content, repeated: true },\n { no: 4, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"image\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"user\", kind: \"message\", T: User },\n { no: 10, name: \"tags\", kind: \"message\", T: Tag, repeated: true },\n { no: 11, name: \"preview\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): StoredContent {\n return new StoredContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): StoredContent {\n return new StoredContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): StoredContent {\n return new StoredContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: StoredContent | PlainMessage | undefined, b: StoredContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(StoredContent, a, b);\n }\n}\n\n/**\n * @generated from message content.Edge\n */\nexport class Edge extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Edge\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Edge {\n return new Edge().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Edge {\n return new Edge().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Edge {\n return new Edge().fromJsonString(jsonString, options);\n }\n\n static equals(a: Edge | PlainMessage | undefined, b: Edge | PlainMessage | undefined): boolean {\n return proto3.util.equals(Edge, a, b);\n }\n}\n\n/**\n * Content has data and metadata\n *\n * @generated from message content.Content\n */\nexport class Content extends Message {\n /**\n * @generated from field: repeated string tags = 1;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: string created_at = 2;\n */\n createdAt = \"\";\n\n /**\n * @generated from field: string uri = 3;\n */\n uri = \"\";\n\n /**\n * @generated from field: string id = 4;\n */\n id = \"\";\n\n /**\n * @generated from oneof content.Content.type\n */\n type: {\n /**\n * @generated from field: content.Data data = 6;\n */\n value: Data;\n case: \"data\";\n } | {\n /**\n * @generated from field: content.Normalized normalized = 7;\n */\n value: Normalized;\n case: \"normalized\";\n } | {\n /**\n * @generated from field: content.Transformed transformed = 8;\n */\n value: Transformed;\n case: \"transformed\";\n } | {\n /**\n * @generated from field: content.Post post = 9;\n */\n value: Post;\n case: \"post\";\n } | {\n /**\n * @generated from field: content.Site site = 10;\n */\n value: Site;\n case: \"site\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Content\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"created_at\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"uri\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"data\", kind: \"message\", T: Data, oneof: \"type\" },\n { no: 7, name: \"normalized\", kind: \"message\", T: Normalized, oneof: \"type\" },\n { no: 8, name: \"transformed\", kind: \"message\", T: Transformed, oneof: \"type\" },\n { no: 9, name: \"post\", kind: \"message\", T: Post, oneof: \"type\" },\n { no: 10, name: \"site\", kind: \"message\", T: Site, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Content {\n return new Content().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Content {\n return new Content().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Content {\n return new Content().fromJsonString(jsonString, options);\n }\n\n static equals(a: Content | PlainMessage | undefined, b: Content | PlainMessage | undefined): boolean {\n return proto3.util.equals(Content, a, b);\n }\n}\n\n/**\n * @generated from message content.Post\n */\nexport class Post extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string summary = 2;\n */\n summary = \"\";\n\n /**\n * @generated from field: string content = 3;\n */\n content = \"\";\n\n /**\n * @generated from field: repeated string authors = 4;\n */\n authors: string[] = [];\n\n /**\n * @generated from field: bool draft = 6;\n */\n draft = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Post\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"content\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"authors\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"draft\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Post {\n return new Post().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Post {\n return new Post().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Post {\n return new Post().fromJsonString(jsonString, options);\n }\n\n static equals(a: Post | PlainMessage | undefined, b: Post | PlainMessage | undefined): boolean {\n return proto3.util.equals(Post, a, b);\n }\n}\n\n/**\n * @generated from message content.GitRepo\n */\nexport class GitRepo extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GitRepo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GitRepo {\n return new GitRepo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GitRepo {\n return new GitRepo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GitRepo {\n return new GitRepo().fromJsonString(jsonString, options);\n }\n\n static equals(a: GitRepo | PlainMessage | undefined, b: GitRepo | PlainMessage | undefined): boolean {\n return proto3.util.equals(GitRepo, a, b);\n }\n}\n\n/**\n * @generated from message content.Data\n */\nexport class Data extends Message {\n /**\n * @generated from oneof content.Data.type\n */\n type: {\n /**\n * @generated from field: content.Text text = 4;\n */\n value: Text;\n case: \"text\";\n } | {\n /**\n * @generated from field: content.File file = 5;\n */\n value: File;\n case: \"file\";\n } | {\n /**\n * @generated from field: content.URL url = 6;\n */\n value: URL;\n case: \"url\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Data\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 4, name: \"text\", kind: \"message\", T: Text, oneof: \"type\" },\n { no: 5, name: \"file\", kind: \"message\", T: File, oneof: \"type\" },\n { no: 6, name: \"url\", kind: \"message\", T: URL, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Data {\n return new Data().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Data {\n return new Data().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Data {\n return new Data().fromJsonString(jsonString, options);\n }\n\n static equals(a: Data | PlainMessage | undefined, b: Data | PlainMessage | undefined): boolean {\n return proto3.util.equals(Data, a, b);\n }\n}\n\n/**\n * @generated from message content.Normalized\n */\nexport class Normalized extends Message {\n /**\n * @generated from oneof content.Normalized.type\n */\n type: {\n /**\n * @generated from field: content.Article article = 3;\n */\n value: Article;\n case: \"article\";\n } | {\n /**\n * @generated from field: content.HTML html = 4;\n */\n value: HTML;\n case: \"html\";\n } | {\n /**\n * @generated from field: content.Transcript transcript = 6;\n */\n value: Transcript;\n case: \"transcript\";\n } | {\n /**\n * @generated from field: content.ReadMe readme = 7;\n */\n value: ReadMe;\n case: \"readme\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Normalized\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 3, name: \"article\", kind: \"message\", T: Article, oneof: \"type\" },\n { no: 4, name: \"html\", kind: \"message\", T: HTML, oneof: \"type\" },\n { no: 6, name: \"transcript\", kind: \"message\", T: Transcript, oneof: \"type\" },\n { no: 7, name: \"readme\", kind: \"message\", T: ReadMe, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Normalized {\n return new Normalized().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Normalized {\n return new Normalized().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Normalized {\n return new Normalized().fromJsonString(jsonString, options);\n }\n\n static equals(a: Normalized | PlainMessage | undefined, b: Normalized | PlainMessage | undefined): boolean {\n return proto3.util.equals(Normalized, a, b);\n }\n}\n\n/**\n * @generated from message content.Transformed\n */\nexport class Transformed extends Message {\n /**\n * @generated from oneof content.Transformed.type\n */\n type: {\n /**\n * @generated from field: content.Summary summary = 1;\n */\n value: Summary;\n case: \"summary\";\n } | {\n /**\n * @generated from field: content.Categories categories = 2;\n */\n value: Categories;\n case: \"categories\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Transformed\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"summary\", kind: \"message\", T: Summary, oneof: \"type\" },\n { no: 2, name: \"categories\", kind: \"message\", T: Categories, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Transformed {\n return new Transformed().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Transformed {\n return new Transformed().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Transformed {\n return new Transformed().fromJsonString(jsonString, options);\n }\n\n static equals(a: Transformed | PlainMessage | undefined, b: Transformed | PlainMessage | undefined): boolean {\n return proto3.util.equals(Transformed, a, b);\n }\n}\n\n/**\n * @generated from message content.Article\n */\nexport class Article extends Message
{\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string author = 2;\n */\n author = \"\";\n\n /**\n * @generated from field: int32 length = 3;\n */\n length = 0;\n\n /**\n * @generated from field: string excerpt = 4;\n */\n excerpt = \"\";\n\n /**\n * @generated from field: string site_name = 5;\n */\n siteName = \"\";\n\n /**\n * @generated from field: string image = 6;\n */\n image = \"\";\n\n /**\n * @generated from field: string favicon = 7;\n */\n favicon = \"\";\n\n /**\n * @generated from field: string text = 8;\n */\n text = \"\";\n\n constructor(data?: PartialMessage
) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Article\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"author\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"length\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 4, name: \"excerpt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"site_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"image\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"favicon\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Article {\n return new Article().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Article {\n return new Article().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Article {\n return new Article().fromJsonString(jsonString, options);\n }\n\n static equals(a: Article | PlainMessage
| undefined, b: Article | PlainMessage
| undefined): boolean {\n return proto3.util.equals(Article, a, b);\n }\n}\n\n/**\n * @generated from message content.HTML\n */\nexport class HTML extends Message {\n /**\n * @generated from field: string html = 1;\n */\n html = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HTML\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"html\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HTML {\n return new HTML().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HTML {\n return new HTML().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HTML {\n return new HTML().fromJsonString(jsonString, options);\n }\n\n static equals(a: HTML | PlainMessage | undefined, b: HTML | PlainMessage | undefined): boolean {\n return proto3.util.equals(HTML, a, b);\n }\n}\n\n/**\n * @generated from message content.ReadMe\n */\nexport class ReadMe extends Message {\n /**\n * @generated from field: string data = 1;\n */\n data = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ReadMe\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ReadMe {\n return new ReadMe().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ReadMe {\n return new ReadMe().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ReadMe {\n return new ReadMe().fromJsonString(jsonString, options);\n }\n\n static equals(a: ReadMe | PlainMessage | undefined, b: ReadMe | PlainMessage | undefined): boolean {\n return proto3.util.equals(ReadMe, a, b);\n }\n}\n\n/**\n * @generated from message content.Summary\n */\nexport class Summary extends Message {\n /**\n * @generated from field: string summary = 1;\n */\n summary = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Summary\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Summary {\n return new Summary().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Summary {\n return new Summary().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Summary {\n return new Summary().fromJsonString(jsonString, options);\n }\n\n static equals(a: Summary | PlainMessage | undefined, b: Summary | PlainMessage | undefined): boolean {\n return proto3.util.equals(Summary, a, b);\n }\n}\n\n/**\n * @generated from message content.Categories\n */\nexport class Categories extends Message {\n /**\n * @generated from field: repeated string categories = 1;\n */\n categories: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Categories\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"categories\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Categories {\n return new Categories().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Categories {\n return new Categories().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Categories {\n return new Categories().fromJsonString(jsonString, options);\n }\n\n static equals(a: Categories | PlainMessage | undefined, b: Categories | PlainMessage | undefined): boolean {\n return proto3.util.equals(Categories, a, b);\n }\n}\n\n/**\n * @generated from message content.File\n */\nexport class File extends Message {\n /**\n * @generated from field: string file = 1;\n */\n file = \"\";\n\n /**\n * @generated from field: bytes data = 2;\n */\n data = new Uint8Array(0);\n\n /**\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.File\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"data\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): File {\n return new File().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): File {\n return new File().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): File {\n return new File().fromJsonString(jsonString, options);\n }\n\n static equals(a: File | PlainMessage | undefined, b: File | PlainMessage | undefined): boolean {\n return proto3.util.equals(File, a, b);\n }\n}\n\n/**\n * @generated from message content.Text\n */\nexport class Text extends Message {\n /**\n * @generated from field: string data = 1;\n */\n data = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Text\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Text {\n return new Text().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Text {\n return new Text().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Text {\n return new Text().fromJsonString(jsonString, options);\n }\n\n static equals(a: Text | PlainMessage | undefined, b: Text | PlainMessage | undefined): boolean {\n return proto3.util.equals(Text, a, b);\n }\n}\n\n/**\n * @generated from message content.URL\n */\nexport class URL extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * @generated from field: bool crawl = 2;\n */\n crawl = false;\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.URL\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"crawl\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): URL {\n return new URL().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): URL {\n return new URL().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): URL {\n return new URL().fromJsonString(jsonString, options);\n }\n\n static equals(a: URL | PlainMessage | undefined, b: URL | PlainMessage | undefined): boolean {\n return proto3.util.equals(URL, a, b);\n }\n}\n\n/**\n * @generated from message content.Token\n */\nexport class Token extends Message {\n /**\n * @generated from field: uint32 id = 1;\n */\n id = 0;\n\n /**\n * @generated from field: uint64 start_time = 2;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 3;\n */\n endTime = protoInt64.zero;\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * @generated from field: string p = 5;\n */\n p = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Token\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 3, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"p\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Token {\n return new Token().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Token {\n return new Token().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Token {\n return new Token().fromJsonString(jsonString, options);\n }\n\n static equals(a: Token | PlainMessage | undefined, b: Token | PlainMessage | undefined): boolean {\n return proto3.util.equals(Token, a, b);\n }\n}\n\n/**\n * @generated from message content.Segment\n */\nexport class Segment extends Message {\n /**\n * @generated from field: uint32 num = 1;\n */\n num = 0;\n\n /**\n * @generated from field: repeated content.Token tokens = 2;\n */\n tokens: Token[] = [];\n\n /**\n * @generated from field: string text = 3;\n */\n text = \"\";\n\n /**\n * @generated from field: uint64 start_time = 4;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 5;\n */\n endTime = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Segment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"num\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"tokens\", kind: \"message\", T: Token, repeated: true },\n { no: 3, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 5, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Segment {\n return new Segment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Segment {\n return new Segment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Segment {\n return new Segment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Segment | PlainMessage | undefined, b: Segment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Segment, a, b);\n }\n}\n\n/**\n * @generated from message content.Transcript\n */\nexport class Transcript extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated content.Segment segments = 3;\n */\n segments: Segment[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Transcript\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"segments\", kind: \"message\", T: Segment, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Transcript {\n return new Transcript().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Transcript {\n return new Transcript().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Transcript {\n return new Transcript().fromJsonString(jsonString, options);\n }\n\n static equals(a: Transcript | PlainMessage | undefined, b: Transcript | PlainMessage | undefined): boolean {\n return proto3.util.equals(Transcript, a, b);\n }\n}\n\n/**\n * @generated from message content.GRPCTypeInfo\n */\nexport class GRPCTypeInfo extends Message {\n /**\n * @generated from field: google.protobuf.DescriptorProto msg = 1;\n */\n msg?: DescriptorProto;\n\n /**\n * @generated from field: map desc_lookup = 3;\n */\n descLookup: { [key: string]: DescriptorProto } = {};\n\n /**\n * @generated from field: map enum_lookup = 4;\n */\n enumLookup: { [key: string]: EnumDescriptorProto } = {};\n\n /**\n * @generated from field: string package_name = 6;\n */\n packageName = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GRPCTypeInfo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"msg\", kind: \"message\", T: DescriptorProto },\n { no: 3, name: \"desc_lookup\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: DescriptorProto} },\n { no: 4, name: \"enum_lookup\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: EnumDescriptorProto} },\n { no: 6, name: \"package_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromJsonString(jsonString, options);\n }\n\n static equals(a: GRPCTypeInfo | PlainMessage | undefined, b: GRPCTypeInfo | PlainMessage | undefined): boolean {\n return proto3.util.equals(GRPCTypeInfo, a, b);\n }\n}\n\n/**\n * @generated from message content.Site\n */\nexport class Site extends Message {\n /**\n * @generated from field: content.HugoConfig hugo_config = 1;\n */\n hugoConfig?: HugoConfig;\n\n /**\n * @generated from field: repeated string post_tags = 2;\n */\n postTags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Site\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"hugo_config\", kind: \"message\", T: HugoConfig },\n { no: 2, name: \"post_tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Site {\n return new Site().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Site {\n return new Site().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Site {\n return new Site().fromJsonString(jsonString, options);\n }\n\n static equals(a: Site | PlainMessage | undefined, b: Site | PlainMessage | undefined): boolean {\n return proto3.util.equals(Site, a, b);\n }\n}\n\n/**\n * @generated from message content.HugoConfig\n */\nexport class HugoConfig extends Message {\n /**\n * @generated from field: string theme = 1;\n */\n theme = \"\";\n\n /**\n * @generated from field: string base_url = 2;\n */\n baseUrl = \"\";\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n /**\n * @generated from field: content.ParamsConfig params = 4;\n */\n params?: ParamsConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HugoConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"theme\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"base_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"params\", kind: \"message\", T: ParamsConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HugoConfig {\n return new HugoConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HugoConfig {\n return new HugoConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HugoConfig {\n return new HugoConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HugoConfig | PlainMessage | undefined, b: HugoConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HugoConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ParamsConfig\n */\nexport class ParamsConfig extends Message {\n /**\n * @generated from field: string env = 1;\n */\n env = \"\";\n\n /**\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * @generated from field: string author = 3;\n */\n author = \"\";\n\n /**\n * @generated from field: string default_theme = 4;\n */\n defaultTheme = \"\";\n\n /**\n * @generated from field: bool show_share_buttons = 5;\n */\n showShareButtons = false;\n\n /**\n * @generated from field: bool show_reading_time = 6;\n */\n showReadingTime = false;\n\n /**\n * @generated from field: bool display_full_lang_name = 7;\n */\n displayFullLangName = false;\n\n /**\n * @generated from field: bool show_post_nav_links = 8;\n */\n showPostNavLinks = false;\n\n /**\n * @generated from field: bool show_bread_crumbs = 9;\n */\n showBreadCrumbs = false;\n\n /**\n * @generated from field: bool show_code_copy_buttons = 10;\n */\n showCodeCopyButtons = false;\n\n /**\n * @generated from field: bool show_rss_button_in_section_term_list = 11;\n */\n showRssButtonInSectionTermList = false;\n\n /**\n * @generated from field: bool show_all_pages_in_archive = 12;\n */\n showAllPagesInArchive = false;\n\n /**\n * @generated from field: bool show_page_nums = 13;\n */\n showPageNums = false;\n\n /**\n * @generated from field: bool show_toc = 14;\n */\n showToc = false;\n\n /**\n * @generated from field: repeated string images = 15;\n */\n images: string[] = [];\n\n /**\n * @generated from field: content.ProfileModeConfig profile_mode = 16;\n */\n profileMode?: ProfileModeConfig;\n\n /**\n * @generated from field: content.HomeInfoParamsConfig home_info_params = 17;\n */\n homeInfoParams?: HomeInfoParamsConfig;\n\n /**\n * @generated from field: repeated content.SocialIconConfig social_icons = 18;\n */\n socialIcons: SocialIconConfig[] = [];\n\n /**\n * @generated from field: content.EditPostConfig edit_post = 19;\n */\n editPost?: EditPostConfig;\n\n /**\n * @generated from field: content.AssetsConfig assets = 20;\n */\n assets?: AssetsConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ParamsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"env\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"author\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"default_theme\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"show_share_buttons\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 6, name: \"show_reading_time\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 7, name: \"display_full_lang_name\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"show_post_nav_links\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 9, name: \"show_bread_crumbs\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 10, name: \"show_code_copy_buttons\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 11, name: \"show_rss_button_in_section_term_list\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"show_all_pages_in_archive\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"show_page_nums\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 14, name: \"show_toc\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 15, name: \"images\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 16, name: \"profile_mode\", kind: \"message\", T: ProfileModeConfig },\n { no: 17, name: \"home_info_params\", kind: \"message\", T: HomeInfoParamsConfig },\n { no: 18, name: \"social_icons\", kind: \"message\", T: SocialIconConfig, repeated: true },\n { no: 19, name: \"edit_post\", kind: \"message\", T: EditPostConfig },\n { no: 20, name: \"assets\", kind: \"message\", T: AssetsConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ParamsConfig | PlainMessage | undefined, b: ParamsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ParamsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ProfileModeConfig\n */\nexport class ProfileModeConfig extends Message {\n /**\n * @generated from field: bool enabled = 1;\n */\n enabled = false;\n\n /**\n * @generated from field: string title = 2;\n */\n title = \"\";\n\n /**\n * @generated from field: string image_url = 3;\n */\n imageUrl = \"\";\n\n /**\n * @generated from field: string image_title = 4;\n */\n imageTitle = \"\";\n\n /**\n * @generated from field: repeated content.ButtonConfig buttons = 5;\n */\n buttons: ButtonConfig[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ProfileModeConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"enabled\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"image_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"image_title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"buttons\", kind: \"message\", T: ButtonConfig, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ProfileModeConfig | PlainMessage | undefined, b: ProfileModeConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ProfileModeConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ButtonConfig\n */\nexport class ButtonConfig extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ButtonConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ButtonConfig | PlainMessage | undefined, b: ButtonConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ButtonConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.HomeInfoParamsConfig\n */\nexport class HomeInfoParamsConfig extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string content = 2;\n */\n content = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HomeInfoParamsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"content\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HomeInfoParamsConfig | PlainMessage | undefined, b: HomeInfoParamsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HomeInfoParamsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.SocialIconConfig\n */\nexport class SocialIconConfig extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string title = 2;\n */\n title = \"\";\n\n /**\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.SocialIconConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: SocialIconConfig | PlainMessage | undefined, b: SocialIconConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(SocialIconConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.EditPostConfig\n */\nexport class EditPostConfig extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n /**\n * @generated from field: bool append_file_path = 3;\n */\n appendFilePath = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.EditPostConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"append_file_path\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: EditPostConfig | PlainMessage | undefined, b: EditPostConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(EditPostConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.AssetsConfig\n */\nexport class AssetsConfig extends Message {\n /**\n * @generated from field: bool disable_hljs = 1;\n */\n disableHljs = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.AssetsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"disable_hljs\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: AssetsConfig | PlainMessage | undefined, b: AssetsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(AssetsConfig, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file protoflow.proto (package protoflow, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, protoInt64 } from \"@bufbuild/protobuf\";\nimport { Content, Segment as Segment$1 } from \"./content/content_pb.js\";\n\n/**\n * @generated from message protoflow.AnalyzeConversationRequest\n */\nexport class AnalyzeConversationRequest extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.AnalyzeConversationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationRequest | PlainMessage | undefined, b: AnalyzeConversationRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GenerateImagesRequest\n */\nexport class GenerateImagesRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GenerateImagesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GenerateImagesRequest | PlainMessage | undefined, b: GenerateImagesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GenerateImagesRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GenerateImagesResponse\n */\nexport class GenerateImagesResponse extends Message {\n /**\n * @generated from field: repeated string images = 1;\n */\n images: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GenerateImagesResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"images\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GenerateImagesResponse | PlainMessage | undefined, b: GenerateImagesResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GenerateImagesResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.DeleteSessionRequest\n */\nexport class DeleteSessionRequest extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.DeleteSessionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DeleteSessionRequest | PlainMessage | undefined, b: DeleteSessionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(DeleteSessionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Prompt\n */\nexport class Prompt extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Prompt\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Prompt {\n return new Prompt().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Prompt {\n return new Prompt().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Prompt {\n return new Prompt().fromJsonString(jsonString, options);\n }\n\n static equals(a: Prompt | PlainMessage | undefined, b: Prompt | PlainMessage | undefined): boolean {\n return proto3.util.equals(Prompt, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetPromptsRequest\n */\nexport class GetPromptsRequest extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetPromptsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPromptsRequest | PlainMessage | undefined, b: GetPromptsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetPromptsRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetPromptsResponse\n */\nexport class GetPromptsResponse extends Message {\n /**\n * @generated from field: repeated protoflow.Prompt prompts = 1;\n */\n prompts: Prompt[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetPromptsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompts\", kind: \"message\", T: Prompt, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPromptsResponse | PlainMessage | undefined, b: GetPromptsResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetPromptsResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.InferRequest\n */\nexport class InferRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n /**\n * @generated from field: repeated string text = 2;\n */\n text: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.InferRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferRequest {\n return new InferRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferRequest {\n return new InferRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferRequest {\n return new InferRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferRequest | PlainMessage | undefined, b: InferRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.InferResponse\n */\nexport class InferResponse extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.InferResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferResponse {\n return new InferResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferResponse {\n return new InferResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferResponse {\n return new InferResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferResponse | PlainMessage | undefined, b: InferResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.UploadContentRequest\n */\nexport class UploadContentRequest extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.UploadContentRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadContentRequest | PlainMessage | undefined, b: UploadContentRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(UploadContentRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.UploadContentResponse\n */\nexport class UploadContentResponse extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.UploadContentResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadContentResponse | PlainMessage | undefined, b: UploadContentResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(UploadContentResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionRequest\n */\nexport class GetSessionRequest extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionRequest | PlainMessage | undefined, b: GetSessionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionResponse\n */\nexport class GetSessionResponse extends Message {\n /**\n * @generated from field: protoflow.Session session = 1;\n */\n session?: Session;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"session\", kind: \"message\", T: Session },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionResponse | PlainMessage | undefined, b: GetSessionResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionsRequest\n */\nexport class GetSessionsRequest extends Message {\n /**\n * @generated from field: uint64 page = 1;\n */\n page = protoInt64.zero;\n\n /**\n * @generated from field: uint64 limit = 2;\n */\n limit = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"page\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 2, name: \"limit\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionsRequest | PlainMessage | undefined, b: GetSessionsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionsRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionsResponse\n */\nexport class GetSessionsResponse extends Message {\n /**\n * @generated from field: repeated protoflow.Session sessions = 1;\n */\n sessions: Session[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sessions\", kind: \"message\", T: Session, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionsResponse | PlainMessage | undefined, b: GetSessionsResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionsResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Token\n */\nexport class Token extends Message {\n /**\n * @generated from field: uint32 id = 1;\n */\n id = 0;\n\n /**\n * @generated from field: uint64 start_time = 2;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 3;\n */\n endTime = protoInt64.zero;\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * @generated from field: string p = 5;\n */\n p = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Token\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 3, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"p\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Token {\n return new Token().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Token {\n return new Token().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Token {\n return new Token().fromJsonString(jsonString, options);\n }\n\n static equals(a: Token | PlainMessage | undefined, b: Token | PlainMessage | undefined): boolean {\n return proto3.util.equals(Token, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Segment\n */\nexport class Segment extends Message {\n /**\n * @generated from field: uint32 num = 1;\n */\n num = 0;\n\n /**\n * @generated from field: repeated protoflow.Token tokens = 2;\n */\n tokens: Token[] = [];\n\n /**\n * @generated from field: string text = 3;\n */\n text = \"\";\n\n /**\n * @generated from field: uint64 start_time = 4;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 5;\n */\n endTime = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Segment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"num\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"tokens\", kind: \"message\", T: Token, repeated: true },\n { no: 3, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 5, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Segment {\n return new Segment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Segment {\n return new Segment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Segment {\n return new Segment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Segment | PlainMessage | undefined, b: Segment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Segment, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Session\n */\nexport class Session extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated protoflow.Segment segments = 3;\n */\n segments: Segment[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Session\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"segments\", kind: \"message\", T: Segment, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Session {\n return new Session().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Session {\n return new Session().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Session {\n return new Session().fromJsonString(jsonString, options);\n }\n\n static equals(a: Session | PlainMessage | undefined, b: Session | PlainMessage | undefined): boolean {\n return proto3.util.equals(Session, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.TranscriptionRequest\n */\nexport class TranscriptionRequest extends Message {\n /**\n * @generated from field: string file_path = 14;\n */\n filePath = \"\";\n\n /**\n * Path to the model file\n *\n * @generated from field: string model = 1;\n */\n model = \"\";\n\n /**\n * Spoken language\n *\n * @generated from field: string language = 2;\n */\n language = \"\";\n\n /**\n * Translate from source language to English\n *\n * @generated from field: bool translate = 3;\n */\n translate = false;\n\n /**\n * Time offset in nanoseconds to match Go's time.Duration\n *\n * @generated from field: int64 offset = 4;\n */\n offset = protoInt64.zero;\n\n /**\n * Duration of audio to process in nanoseconds\n *\n * @generated from field: int64 duration = 5;\n */\n duration = protoInt64.zero;\n\n /**\n * Number of threads to use\n *\n * @generated from field: uint32 threads = 6;\n */\n threads = 0;\n\n /**\n * Enable speedup\n *\n * @generated from field: bool speedup = 7;\n */\n speedup = false;\n\n /**\n * Maximum segment length in characters\n *\n * @generated from field: uint32 max_len = 8;\n */\n maxLen = 0;\n\n /**\n * Maximum tokens per segment\n *\n * @generated from field: uint32 max_tokens = 9;\n */\n maxTokens = 0;\n\n /**\n * Maximum segment score\n *\n * @generated from field: double word_threshold = 10;\n */\n wordThreshold = 0;\n\n /**\n * Display tokens\n *\n * @generated from field: bool tokens = 11;\n */\n tokens = false;\n\n /**\n * Colorize tokens\n *\n * @generated from field: bool colorize = 12;\n */\n colorize = false;\n\n /**\n * Output format (srt, none or leave as empty string)\n *\n * @generated from field: string out = 13;\n */\n out = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.TranscriptionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 14, name: \"file_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 1, name: \"model\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"language\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"translate\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 4, name: \"offset\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 5, name: \"duration\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 6, name: \"threads\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 7, name: \"speedup\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"max_len\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 9, name: \"max_tokens\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 10, name: \"word_threshold\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 11, name: \"tokens\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"colorize\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"out\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: TranscriptionRequest | PlainMessage | undefined, b: TranscriptionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(TranscriptionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.RegisterFlags\n */\nexport class RegisterFlags extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.RegisterFlags\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromJsonString(jsonString, options);\n }\n\n static equals(a: RegisterFlags | PlainMessage | undefined, b: RegisterFlags | PlainMessage | undefined): boolean {\n return proto3.util.equals(RegisterFlags, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.OCRText\n */\nexport class OCRText extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.OCRText\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): OCRText {\n return new OCRText().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): OCRText {\n return new OCRText().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): OCRText {\n return new OCRText().fromJsonString(jsonString, options);\n }\n\n static equals(a: OCRText | PlainMessage | undefined, b: OCRText | PlainMessage | undefined): boolean {\n return proto3.util.equals(OCRText, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Image\n */\nexport class Image extends Message {\n /**\n * @generated from field: bytes image = 1;\n */\n image = new Uint8Array(0);\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Image\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"image\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Image {\n return new Image().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Image {\n return new Image().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Image {\n return new Image().fromJsonString(jsonString, options);\n }\n\n static equals(a: Image | PlainMessage | undefined, b: Image | PlainMessage | undefined): boolean {\n return proto3.util.equals(Image, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ConvertFileRequest\n */\nexport class ConvertFileRequest extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ConvertFileRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ConvertFileRequest | PlainMessage | undefined, b: ConvertFileRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ConvertFileRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ChatRequest\n */\nexport class ChatRequest extends Message {\n /**\n * @generated from field: int32 capture_device = 1;\n */\n captureDevice = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ChatRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"capture_device\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ChatRequest {\n return new ChatRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ChatRequest {\n return new ChatRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ChatRequest {\n return new ChatRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ChatRequest | PlainMessage | undefined, b: ChatRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ChatRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ChatResponse\n */\nexport class ChatResponse extends Message {\n /**\n * @generated from field: protoflow.Segment segment = 1;\n */\n segment?: Segment;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ChatResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"segment\", kind: \"message\", T: Segment },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ChatResponse {\n return new ChatResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ChatResponse {\n return new ChatResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ChatResponse {\n return new ChatResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ChatResponse | PlainMessage | undefined, b: ChatResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(ChatResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.YouTubeVideo\n */\nexport class YouTubeVideo extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string file = 2;\n */\n file = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.YouTubeVideo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromJsonString(jsonString, options);\n }\n\n static equals(a: YouTubeVideo | PlainMessage | undefined, b: YouTubeVideo | PlainMessage | undefined): boolean {\n return proto3.util.equals(YouTubeVideo, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.FilePath\n */\nexport class FilePath extends Message {\n /**\n * @generated from field: string file = 1;\n */\n file = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.FilePath\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): FilePath {\n return new FilePath().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): FilePath {\n return new FilePath().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): FilePath {\n return new FilePath().fromJsonString(jsonString, options);\n }\n\n static equals(a: FilePath | PlainMessage | undefined, b: FilePath | PlainMessage | undefined): boolean {\n return proto3.util.equals(FilePath, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.YouTubeVideoResponse\n */\nexport class YouTubeVideoResponse extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: protoflow.FilePath file_path = 2;\n */\n filePath?: FilePath;\n\n /**\n * @generated from field: repeated content.Segment transcript = 3;\n */\n transcript: Segment$1[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.YouTubeVideoResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"file_path\", kind: \"message\", T: FilePath },\n { no: 3, name: \"transcript\", kind: \"message\", T: Segment$1, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: YouTubeVideoResponse | PlainMessage | undefined, b: YouTubeVideoResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(YouTubeVideoResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file ai.proto (package ai, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message ai.AnalyzeConversationResponse\n */\nexport class AnalyzeConversationResponse extends Message {\n /**\n * Phone numbers of the participants\n *\n * @generated from field: repeated string phone_numbers = 1;\n */\n phoneNumbers: string[] = [];\n\n /**\n * The summary of the conversation\n *\n * @generated from field: string summary = 2;\n */\n summary = \"\";\n\n /**\n * Based on the content of the conversation, the system will generate a list of questions\n *\n * @generated from field: repeated string questions = 3;\n */\n questions: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"ai.AnalyzeConversationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"phone_numbers\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"questions\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationResponse | PlainMessage | undefined, b: AnalyzeConversationResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationResponse, a, b);\n }\n}\n\n/**\n * @generated from message ai.AnalyzeContent\n */\nexport class AnalyzeContent extends Message {\n /**\n * Potential categories for the content in the form: category/subcategory/other-category. The category is all lowercase and spaces are replaced with dashes.\n *\n * @generated from field: repeated string categories = 1;\n */\n categories: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"ai.AnalyzeContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"categories\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeContent | PlainMessage | undefined, b: AnalyzeContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeContent, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file protoflow.proto (package protoflow, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { AnalyzeConversationRequest, ChatRequest, ChatResponse, ConvertFileRequest, DeleteSessionRequest, FilePath, GenerateImagesRequest, GenerateImagesResponse, GetPromptsRequest, GetPromptsResponse, GetSessionRequest, GetSessionResponse, GetSessionsRequest, GetSessionsResponse, InferRequest, InferResponse, Prompt, UploadContentRequest, YouTubeVideo, YouTubeVideoResponse } from \"./protoflow_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\nimport { AnalyzeConversationResponse } from \"./ai_pb.js\";\n\n/**\n * @generated from service protoflow.ProtoflowService\n */\nexport const ProtoflowService = {\n typeName: \"protoflow.ProtoflowService\",\n methods: {\n /**\n * @generated from rpc protoflow.ProtoflowService.DownloadYouTubeVideo\n */\n downloadYouTubeVideo: {\n name: \"DownloadYouTubeVideo\",\n I: YouTubeVideo,\n O: YouTubeVideoResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetSessions\n */\n getSessions: {\n name: \"GetSessions\",\n I: GetSessionsRequest,\n O: GetSessionsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetSession\n */\n getSession: {\n name: \"GetSession\",\n I: GetSessionRequest,\n O: GetSessionResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.DeleteSession\n */\n deleteSession: {\n name: \"DeleteSession\",\n I: DeleteSessionRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetPrompts\n */\n getPrompts: {\n name: \"GetPrompts\",\n I: GetPromptsRequest,\n O: GetPromptsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.NewPrompt\n */\n newPrompt: {\n name: \"NewPrompt\",\n I: Prompt,\n O: Prompt,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.UploadContent\n */\n uploadContent: {\n name: \"UploadContent\",\n I: UploadContentRequest,\n O: ChatResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.Infer\n */\n infer: {\n name: \"Infer\",\n I: InferRequest,\n O: InferResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.Chat\n */\n chat: {\n name: \"Chat\",\n I: ChatRequest,\n O: ChatResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.ConvertFile\n */\n convertFile: {\n name: \"ConvertFile\",\n I: ConvertFileRequest,\n O: FilePath,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GenerateImages\n */\n generateImages: {\n name: \"GenerateImages\",\n I: GenerateImagesRequest,\n O: GenerateImagesResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.AnalyzeConversation\n */\n analyzeConversation: {\n name: \"AnalyzeConversation\",\n I: AnalyzeConversationRequest,\n O: AnalyzeConversationResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file content/content.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Content, ContentIDs, Contents, GRPCTypeInfo, Query, RelateRequest, Results, SetTagsRequest, Sources, TagRequest, Tags } from \"./content_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service content.ContentService\n */\nexport const ContentService = {\n typeName: \"content.ContentService\",\n methods: {\n /**\n * @generated from rpc content.ContentService.Save\n */\n save: {\n name: \"Save\",\n I: Contents,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Search\n */\n search: {\n name: \"Search\",\n I: Query,\n O: Results,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Relate\n */\n relate: {\n name: \"Relate\",\n I: RelateRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Analyze\n */\n analyze: {\n name: \"Analyze\",\n I: Content,\n O: Contents,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Delete\n */\n delete: {\n name: \"Delete\",\n I: ContentIDs,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.GetTags\n */\n getTags: {\n name: \"GetTags\",\n I: TagRequest,\n O: Tags,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.SetTags\n */\n setTags: {\n name: \"SetTags\",\n I: SetTagsRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Publish\n */\n publish: {\n name: \"Publish\",\n I: ContentIDs,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.GetSources\n */\n getSources: {\n name: \"GetSources\",\n I: Empty,\n O: Sources,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Types\n */\n types: {\n name: \"Types\",\n I: Empty,\n O: GRPCTypeInfo,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file user/user.proto (package user, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Config, Group, GroupID, GroupInfoRequest, GroupInvite, Groups, ShareRequest, User, VerifyUserRequest } from \"./user_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service user.UserService\n */\nexport const UserService = {\n typeName: \"user.UserService\",\n methods: {\n /**\n * @generated from rpc user.UserService.Register\n */\n register: {\n name: \"Register\",\n I: User,\n O: User,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Login\n */\n login: {\n name: \"Login\",\n I: User,\n O: User,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Logout\n */\n logout: {\n name: \"Logout\",\n I: Empty,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.ResetPassword\n */\n resetPassword: {\n name: \"ResetPassword\",\n I: User,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.VerifyUser\n */\n verifyUser: {\n name: \"VerifyUser\",\n I: VerifyUserRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.UpdateConfig\n */\n updateConfig: {\n name: \"UpdateConfig\",\n I: Config,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.CreateGroupInvite\n */\n createGroupInvite: {\n name: \"CreateGroupInvite\",\n I: GroupID,\n O: GroupInvite,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.JoinGroup\n */\n joinGroup: {\n name: \"JoinGroup\",\n I: GroupInvite,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.GroupInfo\n */\n groupInfo: {\n name: \"GroupInfo\",\n I: GroupInfoRequest,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.CreateGroup\n */\n createGroup: {\n name: \"CreateGroup\",\n I: Group,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.GetGroups\n */\n getGroups: {\n name: \"GetGroups\",\n I: Empty,\n O: Groups,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.DeleteGroup\n */\n deleteGroup: {\n name: \"DeleteGroup\",\n I: Group,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Share\n */\n share: {\n name: \"Share\",\n I: ShareRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file chat/chat.proto (package chat, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message as Message$1, proto3, protoInt64 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message chat.BanUserRequest\n */\nexport class BanUserRequest extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.BanUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: BanUserRequest | PlainMessage | undefined, b: BanUserRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(BanUserRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.BanUserResponse\n */\nexport class BanUserResponse extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.BanUserResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: BanUserResponse | PlainMessage | undefined, b: BanUserResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(BanUserResponse, a, b);\n }\n}\n\n/**\n * @generated from message chat.SendMessageRequest\n */\nexport class SendMessageRequest extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n /**\n * @generated from field: string message = 2;\n */\n message = \"\";\n\n /**\n * @generated from field: string css = 3;\n */\n css = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.SendMessageRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"css\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendMessageRequest | PlainMessage | undefined, b: SendMessageRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendMessageRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.SendMessageResponse\n */\nexport class SendMessageResponse extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.SendMessageResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendMessageResponse | PlainMessage | undefined, b: SendMessageResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendMessageResponse, a, b);\n }\n}\n\n/**\n * @generated from message chat.ReceiveMessagesRequest\n */\nexport class ReceiveMessagesRequest extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.ReceiveMessagesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ReceiveMessagesRequest | PlainMessage | undefined, b: ReceiveMessagesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ReceiveMessagesRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.Message\n */\nexport class Message extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n /**\n * @generated from field: int64 timestamp = 3;\n */\n timestamp = protoInt64.zero;\n\n /**\n * @generated from field: string css = 4;\n */\n css = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.Message\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"timestamp\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 4, name: \"css\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Message {\n return new Message().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Message {\n return new Message().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Message {\n return new Message().fromJsonString(jsonString, options);\n }\n\n static equals(a: Message | PlainMessage | undefined, b: Message | PlainMessage | undefined): boolean {\n return proto3.util.equals(Message, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file chat/chat.proto (package chat, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { BanUserRequest, BanUserResponse, Message, ReceiveMessagesRequest, SendMessageRequest, SendMessageResponse } from \"./chat_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service chat.ChatService\n */\nexport const ChatService = {\n typeName: \"chat.ChatService\",\n methods: {\n /**\n * @generated from rpc chat.ChatService.SendMessage\n */\n sendMessage: {\n name: \"SendMessage\",\n I: SendMessageRequest,\n O: SendMessageResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc chat.ChatService.ReceiveMessages\n */\n receiveMessages: {\n name: \"ReceiveMessages\",\n I: ReceiveMessagesRequest,\n O: Message,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc chat.ChatService.BanUser\n */\n banUser: {\n name: \"BanUser\",\n I: BanUserRequest,\n O: BanUserResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Connect represents categories of errors as codes, and each code maps to a\n * specific HTTP status code. The codes and their semantics were chosen to\n * match gRPC. Only the codes below are valid \u2014 there are no user-defined\n * codes.\n *\n * See the specification at https://connectrpc.com/docs/protocol#error-codes\n * for details.\n */\nexport var Code;\n(function (Code) {\n /**\n * Canceled, usually be the user\n */\n Code[Code[\"Canceled\"] = 1] = \"Canceled\";\n /**\n * Unknown error\n */\n Code[Code[\"Unknown\"] = 2] = \"Unknown\";\n /**\n * Argument invalid regardless of system state\n */\n Code[Code[\"InvalidArgument\"] = 3] = \"InvalidArgument\";\n /**\n * Operation expired, may or may not have completed.\n */\n Code[Code[\"DeadlineExceeded\"] = 4] = \"DeadlineExceeded\";\n /**\n * Entity not found.\n */\n Code[Code[\"NotFound\"] = 5] = \"NotFound\";\n /**\n * Entity already exists.\n */\n Code[Code[\"AlreadyExists\"] = 6] = \"AlreadyExists\";\n /**\n * Operation not authorized.\n */\n Code[Code[\"PermissionDenied\"] = 7] = \"PermissionDenied\";\n /**\n * Quota exhausted.\n */\n Code[Code[\"ResourceExhausted\"] = 8] = \"ResourceExhausted\";\n /**\n * Argument invalid in current system state.\n */\n Code[Code[\"FailedPrecondition\"] = 9] = \"FailedPrecondition\";\n /**\n * Operation aborted.\n */\n Code[Code[\"Aborted\"] = 10] = \"Aborted\";\n /**\n * Out of bounds, use instead of FailedPrecondition.\n */\n Code[Code[\"OutOfRange\"] = 11] = \"OutOfRange\";\n /**\n * Operation not implemented or disabled.\n */\n Code[Code[\"Unimplemented\"] = 12] = \"Unimplemented\";\n /**\n * Internal error, reserved for \"serious errors\".\n */\n Code[Code[\"Internal\"] = 13] = \"Internal\";\n /**\n * Unavailable, client should back off and retry.\n */\n Code[Code[\"Unavailable\"] = 14] = \"Unavailable\";\n /**\n * Unrecoverable data loss or corruption.\n */\n Code[Code[\"DataLoss\"] = 15] = \"DataLoss\";\n /**\n * Request isn't authenticated.\n */\n Code[Code[\"Unauthenticated\"] = 16] = \"Unauthenticated\";\n})(Code || (Code = {}));\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * codeToString returns the string representation of a Code.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToString(value) {\n const name = Code[value];\n if (typeof name != \"string\") {\n return value.toString();\n }\n return (name[0].toLowerCase() +\n name.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c.toLowerCase()));\n}\nlet stringToCode;\n/**\n * codeFromString parses the string representation of a Code in snake_case.\n * For example, the string \"permission_denied\" parses into Code.PermissionDenied.\n *\n * If the given string cannot be parsed, the function returns undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromString(value) {\n if (!stringToCode) {\n stringToCode = {};\n for (const value of Object.values(Code)) {\n if (typeof value == \"string\") {\n continue;\n }\n stringToCode[codeToString(value)] = value;\n }\n }\n return stringToCode[value];\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"./code.js\";\nimport { Message } from \"@bufbuild/protobuf\";\nimport { codeToString } from \"./protocol-connect/code-string.js\";\n/**\n * ConnectError captures four pieces of information: a Code, an error\n * message, an optional cause of the error, and an optional collection of\n * arbitrary Protobuf messages called \"details\".\n *\n * Because developer tools typically show just the error message, we prefix\n * it with the status code, so that the most important information is always\n * visible immediately.\n *\n * Error details are wrapped with google.protobuf.Any on the wire, so that\n * a server or middleware can attach arbitrary data to an error. Use the\n * method findDetails() to retrieve the details.\n */\nexport class ConnectError extends Error {\n /**\n * Create a new ConnectError.\n * If no code is provided, code \"unknown\" is used.\n * Outgoing details are only relevant for the server side - a service may\n * raise an error with details, and it is up to the protocol implementation\n * to encode and send the details along with error.\n */\n constructor(message, code = Code.Unknown, metadata, outgoingDetails, cause) {\n super(createMessage(message, code));\n this.name = \"ConnectError\";\n // see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#example\n Object.setPrototypeOf(this, new.target.prototype);\n this.rawMessage = message;\n this.code = code;\n this.metadata = new Headers(metadata !== null && metadata !== void 0 ? metadata : {});\n this.details = outgoingDetails !== null && outgoingDetails !== void 0 ? outgoingDetails : [];\n this.cause = cause;\n }\n /**\n * Convert any value - typically a caught error into a ConnectError,\n * following these rules:\n * - If the value is already a ConnectError, return it as is.\n * - If the value is an AbortError from the fetch API, return the message\n * of the AbortError with code Canceled.\n * - For other Errors, return the error message with code Unknown by default.\n * - For other values, return the values String representation as a message,\n * with the code Unknown by default.\n * The original value will be used for the \"cause\" property for the new\n * ConnectError.\n */\n static from(reason, code = Code.Unknown) {\n if (reason instanceof ConnectError) {\n return reason;\n }\n if (reason instanceof Error) {\n if (reason.name == \"AbortError\") {\n // Fetch requests can only be canceled with an AbortController.\n // We detect that condition by looking at the name of the raised\n // error object, and translate to the appropriate status code.\n return new ConnectError(reason.message, Code.Canceled);\n }\n return new ConnectError(reason.message, code, undefined, undefined, reason);\n }\n return new ConnectError(String(reason), code, undefined, undefined, reason);\n }\n static [Symbol.hasInstance](v) {\n if (!(v instanceof Error)) {\n return false;\n }\n if (Object.getPrototypeOf(v) === ConnectError.prototype) {\n return true;\n }\n return (v.name === \"ConnectError\" &&\n \"code\" in v &&\n typeof v.code === \"number\" &&\n \"metadata\" in v &&\n \"details\" in v &&\n Array.isArray(v.details) &&\n \"rawMessage\" in v &&\n typeof v.rawMessage == \"string\" &&\n \"cause\" in v);\n }\n findDetails(typeOrRegistry) {\n const registry = \"typeName\" in typeOrRegistry\n ? {\n findMessage: (typeName) => typeName === typeOrRegistry.typeName ? typeOrRegistry : undefined,\n }\n : typeOrRegistry;\n const details = [];\n for (const data of this.details) {\n if (data instanceof Message) {\n if (registry.findMessage(data.getType().typeName)) {\n details.push(data);\n }\n continue;\n }\n const type = registry.findMessage(data.type);\n if (type) {\n try {\n details.push(type.fromBinary(data.value));\n }\n catch (_) {\n // We silently give up if we are unable to parse the detail, because\n // that appears to be the least worst behavior.\n // It is very unlikely that a user surrounds a catch body handling the\n // error with another try-catch statement, and we do not want to\n // recommend doing so.\n }\n }\n }\n return details;\n }\n}\n/**\n * Create an error message, prefixing the given code.\n */\nfunction createMessage(message, code) {\n return message.length\n ? `[${codeToString(code)}] ${message}`\n : `[${codeToString(code)}]`;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\n/**\n * Encode a single binary header value according to the Connect\n * and gRPC specifications.\n *\n * This function accepts raw binary data from a buffer, a string\n * with UTF-8 text, or a protobuf message. It encodes the input\n * with unpadded base64 and returns a string that can be used for\n * a header whose name ends with `-bin`.\n */\nexport function encodeBinaryHeader(value) {\n let bytes;\n if (value instanceof Message) {\n bytes = value.toBinary();\n }\n else if (typeof value == \"string\") {\n bytes = new TextEncoder().encode(value);\n }\n else {\n bytes = value instanceof Uint8Array ? value : new Uint8Array(value);\n }\n return protoBase64.enc(bytes).replace(/=+$/, \"\");\n}\nexport function decodeBinaryHeader(value, type, options) {\n try {\n const bytes = protoBase64.dec(value);\n if (type) {\n return type.fromBinary(bytes, options);\n }\n return bytes;\n }\n catch (e) {\n throw ConnectError.from(e, Code.DataLoss);\n }\n}\n/**\n * Merge two or more Headers objects by appending all fields from\n * all inputs to a new Headers object.\n */\nexport function appendHeaders(...headers) {\n const h = new Headers();\n for (const e of headers) {\n e.forEach((value, key) => {\n h.append(key, value);\n });\n }\n return h;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create any client for the given service.\n *\n * The given createMethod function is called for each method definition\n * of the service. The function it returns is added to the client object\n * as a method.\n */\nexport function makeAnyClient(service, createMethod) {\n const client = {};\n for (const [localName, methodInfo] of Object.entries(service.methods)) {\n const method = createMethod(Object.assign(Object.assign({}, methodInfo), { localName,\n service }));\n if (method != null) {\n client[localName] = method;\n }\n }\n return client;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { compressedFlag } from \"./compression.js\";\n/**\n * Create a WHATWG ReadableStream of enveloped messages from a ReadableStream\n * of bytes.\n *\n * Ideally, this would simply be a TransformStream, but ReadableStream.pipeThrough\n * does not have the necessary availability at this time.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEnvelopeReadableStream(stream) {\n let reader;\n let buffer = new Uint8Array(0);\n function append(chunk) {\n const n = new Uint8Array(buffer.length + chunk.length);\n n.set(buffer);\n n.set(chunk, buffer.length);\n buffer = n;\n }\n return new ReadableStream({\n start() {\n reader = stream.getReader();\n },\n async pull(controller) {\n let header = undefined;\n for (;;) {\n if (header === undefined && buffer.byteLength >= 5) {\n let length = 0;\n for (let i = 1; i < 5; i++) {\n length = (length << 8) + buffer[i];\n }\n header = { flags: buffer[0], length };\n }\n if (header !== undefined && buffer.byteLength >= header.length + 5) {\n break;\n }\n const result = await reader.read();\n if (result.done) {\n break;\n }\n append(result.value);\n }\n if (header === undefined) {\n if (buffer.byteLength == 0) {\n controller.close();\n return;\n }\n controller.error(new ConnectError(\"premature end of stream\", Code.DataLoss));\n return;\n }\n const data = buffer.subarray(5, 5 + header.length);\n buffer = buffer.subarray(5 + header.length);\n controller.enqueue({\n flags: header.flags,\n data,\n });\n },\n });\n}\n/**\n * Compress an EnvelopedMessage.\n *\n * Raises Internal if an enveloped message is already compressed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeCompress(envelope, compression, compressMinBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n throw new ConnectError(\"invalid envelope, already compressed\", Code.Internal);\n }\n if (compression && data.byteLength >= compressMinBytes) {\n data = await compression.compress(data);\n flags = flags | compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Decompress an EnvelopedMessage.\n *\n * Raises InvalidArgument if an envelope is compressed, but compression is null.\n *\n * Relies on the provided Compression to raise ResourceExhausted if the\n * *decompressed* message size is larger than readMaxBytes. If the envelope is\n * not compressed, readMaxBytes is not honored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeDecompress(envelope, compression, readMaxBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n if (!compression) {\n throw new ConnectError(\"received compressed envelope, but do not know how to decompress\", Code.InvalidArgument);\n }\n data = await compression.decompress(data, readMaxBytes);\n flags = flags ^ compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Encode a single enveloped message.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelope(flags, data) {\n const bytes = new Uint8Array(data.length + 5);\n bytes.set(data, 5);\n const v = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n v.setUint8(0, flags); // first byte is flags\n v.setUint32(1, data.length); // 4 bytes message length\n return bytes;\n}\n/**\n * Encode a set of enveloped messages.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelopes(...envelopes) {\n const len = envelopes.reduce((previousValue, currentValue) => previousValue + currentValue.data.length + 5, 0);\n const bytes = new Uint8Array(len);\n const v = new DataView(bytes.buffer);\n let offset = 0;\n for (const e of envelopes) {\n v.setUint8(offset, e.flags); // first byte is flags\n v.setUint32(offset + 1, e.data.length); // 4 bytes message length\n bytes.set(e.data, offset + 5);\n offset += e.data.length + 5;\n }\n return bytes;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { encodeEnvelope, envelopeCompress, envelopeDecompress, } from \"./envelope.js\";\nimport { assertReadMaxBytes } from \"./limit-io.js\";\nexport function pipeTo(source, ...rest) {\n const [transforms, sink, opt] = pickTransformsAndSink(rest);\n let iterable = source;\n let abortable;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n iterable = pipe(iterable, ...transforms, { propagateDownStreamError: false });\n return sink(iterable).catch((reason) => {\n if (abortable) {\n return abortable.abort(reason).then(() => Promise.reject(reason));\n }\n return Promise.reject(reason);\n });\n}\n// pick transforms, the sink, and options from the pipeTo() rest parameter\nfunction pickTransformsAndSink(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n const sink = rest.pop();\n return [rest, sink, opt];\n}\n/**\n * Creates an AsyncIterableSink that concatenates all elements from the input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAll() {\n return async function (iterable) {\n var _a, e_1, _b, _c;\n const all = [];\n try {\n for (var _d = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = await iterable_1.next(), _a = iterable_1_1.done, !_a; _d = true) {\n _c = iterable_1_1.value;\n _d = false;\n const chunk = _c;\n all.push(chunk);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_1.return)) await _b.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return all;\n };\n}\n/**\n * Creates an AsyncIterableSink that concatenates all chunks from the input into\n * a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAllBytes(readMaxBytes, lengthHint) {\n return async function (iterable) {\n return await readAllBytes(iterable, readMaxBytes, lengthHint);\n };\n}\nexport function pipe(source, ...rest) {\n var _a;\n return __asyncGenerator(this, arguments, function* pipe_1() {\n const [transforms, opt] = pickTransforms(rest);\n let abortable;\n const sourceIt = source[Symbol.asyncIterator]();\n const cachedSource = {\n [Symbol.asyncIterator]() {\n return sourceIt;\n },\n };\n let iterable = cachedSource;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n for (const t of transforms) {\n iterable = t(iterable);\n }\n const it = iterable[Symbol.asyncIterator]();\n try {\n for (;;) {\n const r = yield __await(it.next());\n if (r.done === true) {\n break;\n }\n if (!abortable) {\n yield yield __await(r.value);\n continue;\n }\n try {\n yield yield __await(r.value);\n }\n catch (e) {\n yield __await(abortable.abort(e)); // propagate downstream error to the source\n throw e;\n }\n }\n }\n finally {\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n // Call return on the source iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n (_a = sourceIt.return) === null || _a === void 0 ? void 0 : _a.call(sourceIt).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n }\n });\n}\nfunction pickTransforms(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n return [rest, opt];\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given catchError function.\n *\n * The catchError function may return a final value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatch(catchError) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n const caught = yield __await(catchError(e));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given function. Unlike transformCatch(), the given function\n * is also called when no error is raised.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatchFinally(catchFinally) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n let err;\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n err = e;\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n const caught = yield __await(catchFinally(err));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that appends a value.\n *\n * The element to append is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformAppend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_2, _b, _c;\n try {\n for (var _d = true, iterable_2 = __asyncValues(iterable), iterable_2_1; iterable_2_1 = yield __await(iterable_2.next()), _a = iterable_2_1.done, !_a; _d = true) {\n _c = iterable_2_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_2.return)) yield __await(_b.call(iterable_2));\n }\n finally { if (e_2) throw e_2.error; }\n }\n const append = yield __await(provide());\n if (append !== undefined) {\n yield yield __await(append);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that prepends an element.\n *\n * The element to prepend is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformPrepend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_3, _b, _c;\n const prepend = yield __await(provide());\n if (prepend !== undefined) {\n yield yield __await(prepend);\n }\n try {\n for (var _d = true, iterable_3 = __asyncValues(iterable), iterable_3_1; iterable_3_1 = yield __await(iterable_3.next()), _a = iterable_3_1.done, !_a; _d = true) {\n _c = iterable_3_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_3.return)) yield __await(_b.call(iterable_3));\n }\n finally { if (e_3) throw e_3.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that reads all bytes from the input, and\n * concatenates them to a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformReadAllBytes(readMaxBytes, lengthHint) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n yield yield __await(yield __await(readAllBytes(iterable, readMaxBytes, lengthHint)));\n });\n };\n}\nexport function transformSerializeEnvelope(serialization, endStreamFlag, endSerialization) {\n if (endStreamFlag === undefined || endSerialization === undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_4, _b, _c;\n try {\n for (var _d = true, iterable_4 = __asyncValues(iterable), iterable_4_1; iterable_4_1 = yield __await(iterable_4.next()), _a = iterable_4_1.done, !_a; _d = true) {\n _c = iterable_4_1.value;\n _d = false;\n const chunk = _c;\n const data = serialization.serialize(chunk);\n yield yield __await({ flags: 0, data });\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_4.return)) yield __await(_b.call(iterable_4));\n }\n finally { if (e_4) throw e_4.error; }\n }\n });\n };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_5, _b, _c;\n try {\n for (var _d = true, iterable_5 = __asyncValues(iterable), iterable_5_1; iterable_5_1 = yield __await(iterable_5.next()), _a = iterable_5_1.done, !_a; _d = true) {\n _c = iterable_5_1.value;\n _d = false;\n const chunk = _c;\n let data;\n let flags = 0;\n if (chunk.end) {\n flags = flags | endStreamFlag;\n data = endSerialization.serialize(chunk.value);\n }\n else {\n data = serialization.serialize(chunk.value);\n }\n yield yield __await({ flags, data });\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_5.return)) yield __await(_b.call(iterable_5));\n }\n finally { if (e_5) throw e_5.error; }\n }\n });\n };\n}\nexport function transformParseEnvelope(serialization, endStreamFlag, endSerialization) {\n // code path always yields ParsedEnvelopedMessage\n if (endSerialization && endStreamFlag !== undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_6, _b, _c;\n try {\n for (var _d = true, iterable_6 = __asyncValues(iterable), iterable_6_1; iterable_6_1 = yield __await(iterable_6.next()), _a = iterable_6_1.done, !_a; _d = true) {\n _c = iterable_6_1.value;\n _d = false;\n const { flags, data } = _c;\n if ((flags & endStreamFlag) === endStreamFlag) {\n yield yield __await({ value: endSerialization.parse(data), end: true });\n }\n else {\n yield yield __await({ value: serialization.parse(data), end: false });\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_6.return)) yield __await(_b.call(iterable_6));\n }\n finally { if (e_6) throw e_6.error; }\n }\n });\n };\n }\n // code path always yields T\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_7, _b, _c;\n try {\n for (var _d = true, iterable_7 = __asyncValues(iterable), iterable_7_1; iterable_7_1 = yield __await(iterable_7.next()), _a = iterable_7_1.done, !_a; _d = true) {\n _c = iterable_7_1.value;\n _d = false;\n const { flags, data } = _c;\n if (endStreamFlag !== undefined &&\n (flags & endStreamFlag) === endStreamFlag) {\n if (endSerialization === null) {\n throw new ConnectError(\"unexpected end flag\", Code.InvalidArgument);\n }\n // skips end-of-stream envelope\n continue;\n }\n yield yield __await(serialization.parse(data));\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_7.return)) yield __await(_b.call(iterable_7));\n }\n finally { if (e_7) throw e_7.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and compresses them if they are larger than compressMinBytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCompressEnvelope(compression, compressMinBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_8, _b, _c;\n try {\n for (var _d = true, iterable_8 = __asyncValues(iterable), iterable_8_1; iterable_8_1 = yield __await(iterable_8.next()), _a = iterable_8_1.done, !_a; _d = true) {\n _c = iterable_8_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeCompress(env, compression, compressMinBytes)));\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_8.return)) yield __await(_b.call(iterable_8));\n }\n finally { if (e_8) throw e_8.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and decompresses them using the given compression.\n *\n * The iterable raises an error if the decompressed payload of an enveloped\n * message is larger than readMaxBytes, or if no compression is provided.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformDecompressEnvelope(compression, readMaxBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_9, _b, _c;\n try {\n for (var _d = true, iterable_9 = __asyncValues(iterable), iterable_9_1; iterable_9_1 = yield __await(iterable_9.next()), _a = iterable_9_1.done, !_a; _d = true) {\n _c = iterable_9_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeDecompress(env, compression, readMaxBytes)));\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_9.return)) yield __await(_b.call(iterable_9));\n }\n finally { if (e_9) throw e_9.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes enveloped messages as a source,\n * and joins them into a stream of raw bytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformJoinEnvelopes() {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_10, _b, _c;\n try {\n for (var _d = true, iterable_10 = __asyncValues(iterable), iterable_10_1; iterable_10_1 = yield __await(iterable_10.next()), _a = iterable_10_1.done, !_a; _d = true) {\n _c = iterable_10_1.value;\n _d = false;\n const { flags, data } = _c;\n yield yield __await(encodeEnvelope(flags, data));\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_10.return)) yield __await(_b.call(iterable_10));\n }\n finally { if (e_10) throw e_10.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes raw bytes as a source, and splits\n * them into enveloped messages.\n *\n * The iterable raises an error\n * - if the payload of an enveloped message is larger than readMaxBytes,\n * - if the stream ended before an enveloped message fully arrived,\n * - or if the stream ended with extraneous data.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformSplitEnvelope(readMaxBytes) {\n // append chunk to buffer, returning updated buffer\n function append(buffer, chunk) {\n const n = new Uint8Array(buffer.byteLength + chunk.byteLength);\n n.set(buffer);\n n.set(chunk, buffer.length);\n return n;\n }\n // tuple 0: envelope, or undefined if incomplete\n // tuple 1: remainder of the buffer\n function shiftEnvelope(buffer, header) {\n if (buffer.byteLength < 5 + header.length) {\n return [undefined, buffer];\n }\n return [\n { flags: header.flags, data: buffer.subarray(5, 5 + header.length) },\n buffer.subarray(5 + header.length),\n ];\n }\n // undefined: header is incomplete\n function peekHeader(buffer) {\n if (buffer.byteLength < 5) {\n return undefined;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const length = view.getUint32(1); // 4 bytes message length\n const flags = view.getUint8(0); // first byte is flags\n return { length, flags };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_11, _b, _c;\n let buffer = new Uint8Array(0);\n try {\n for (var _d = true, iterable_11 = __asyncValues(iterable), iterable_11_1; iterable_11_1 = yield __await(iterable_11.next()), _a = iterable_11_1.done, !_a; _d = true) {\n _c = iterable_11_1.value;\n _d = false;\n const chunk = _c;\n buffer = append(buffer, chunk);\n for (;;) {\n const header = peekHeader(buffer);\n if (!header) {\n break;\n }\n assertReadMaxBytes(readMaxBytes, header.length, true);\n let env;\n [env, buffer] = shiftEnvelope(buffer, header);\n if (!env) {\n break;\n }\n yield yield __await(env);\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_11.return)) yield __await(_b.call(iterable_11));\n }\n finally { if (e_11) throw e_11.error; }\n }\n if (buffer.byteLength > 0) {\n const header = peekHeader(buffer);\n let message = \"protocol error: incomplete envelope\";\n if (header) {\n message = `protocol error: promised ${header.length} bytes in enveloped message, got ${buffer.byteLength - 5} bytes`;\n }\n throw new ConnectError(message, Code.InvalidArgument);\n }\n });\n };\n}\n/**\n * Reads all bytes from the source, and concatenates them to a single Uint8Array.\n *\n * Raises an error if:\n * - more than readMaxBytes are read\n * - lengthHint is a positive integer, but larger than readMaxBytes\n * - lengthHint is a positive integer, and the source contains more or less bytes\n * than promised\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function readAllBytes(iterable, readMaxBytes, lengthHint) {\n var _a, e_12, _b, _c, _d, e_13, _e, _f;\n const [ok, hint] = parseLengthHint(lengthHint);\n if (ok) {\n if (hint > readMaxBytes) {\n assertReadMaxBytes(readMaxBytes, hint, true);\n }\n const buffer = new Uint8Array(hint);\n let offset = 0;\n try {\n for (var _g = true, iterable_12 = __asyncValues(iterable), iterable_12_1; iterable_12_1 = await iterable_12.next(), _a = iterable_12_1.done, !_a; _g = true) {\n _c = iterable_12_1.value;\n _g = false;\n const chunk = _c;\n if (offset + chunk.byteLength > hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset + chunk.byteLength}`, Code.InvalidArgument);\n }\n buffer.set(chunk, offset);\n offset += chunk.byteLength;\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (!_g && !_a && (_b = iterable_12.return)) await _b.call(iterable_12);\n }\n finally { if (e_12) throw e_12.error; }\n }\n if (offset < hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset}`, Code.InvalidArgument);\n }\n return buffer;\n }\n const chunks = [];\n let count = 0;\n try {\n for (var _h = true, iterable_13 = __asyncValues(iterable), iterable_13_1; iterable_13_1 = await iterable_13.next(), _d = iterable_13_1.done, !_d; _h = true) {\n _f = iterable_13_1.value;\n _h = false;\n const chunk = _f;\n count += chunk.byteLength;\n assertReadMaxBytes(readMaxBytes, count);\n chunks.push(chunk);\n }\n }\n catch (e_13_1) { e_13 = { error: e_13_1 }; }\n finally {\n try {\n if (!_h && !_d && (_e = iterable_13.return)) await _e.call(iterable_13);\n }\n finally { if (e_13) throw e_13.error; }\n }\n const all = new Uint8Array(count);\n let offset = 0;\n for (let chunk = chunks.shift(); chunk; chunk = chunks.shift()) {\n all.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return all;\n}\n// parse the lengthHint argument of readAllBytes()\nfunction parseLengthHint(lengthHint) {\n if (lengthHint === undefined || lengthHint === null) {\n return [false, 0];\n }\n const n = typeof lengthHint == \"string\" ? parseInt(lengthHint, 10) : lengthHint;\n if (!Number.isSafeInteger(n) || n < 0) {\n return [false, n];\n }\n return [true, n];\n}\n/**\n * Wait for the first element of an iterable without modifying the iterable.\n * This consumes the first element, but pushes it back on the stack.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function untilFirst(iterable) {\n const it = iterable[Symbol.asyncIterator]();\n let first = await it.next();\n return {\n [Symbol.asyncIterator]() {\n const w = {\n async next() {\n if (first !== null) {\n const n = first;\n first = null;\n return n;\n }\n return await it.next();\n },\n };\n if (it.throw !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- can't handle mutated object sensibly\n w.throw = (e) => it.throw(e);\n }\n if (it.return !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-explicit-any -- can't handle mutated object sensibly\n w.return = (value) => it.return(value);\n }\n return w;\n },\n };\n}\n/**\n * Wrap the given iterable and return an iterable with an abort() method.\n *\n * This function exists purely for convenience. Where one would typically have\n * to access the iterator directly, advance through all elements, and call\n * AsyncIterator.throw() to notify the upstream iterable, this function allows\n * to use convenient for-await loops and still notify the upstream iterable:\n *\n * ```ts\n * const abortable = makeIterableAbortable(iterable);\n * for await (const ele of abortable) {\n * await abortable.abort(\"ERR\");\n * }\n * ```\n * There are a couple of limitations of this function:\n * - the given async iterable must implement throw\n * - the async iterable cannot be re-use\n * - if source catches errors and yields values for them, they are ignored, and\n * the source may still dangle\n *\n * There are four possible ways an async function* can handle yield errors:\n * 1. don't catch errors at all - Abortable.abort() will resolve \"rethrown\"\n * 2. catch errors and rethrow - Abortable.abort() will resolve \"rethrown\"\n * 3. catch errors and return - Abortable.abort() will resolve \"completed\"\n * 4. catch errors and yield a value - Abortable.abort() will resolve \"caught\"\n *\n * Note that catching errors and yielding a value is problematic, and it should\n * be documented that this may leave the source in a dangling state.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function makeIterableAbortable(iterable) {\n const innerCandidate = iterable[Symbol.asyncIterator]();\n if (innerCandidate.throw === undefined) {\n throw new Error(\"AsyncIterable does not implement throw\");\n }\n const inner = innerCandidate;\n let aborted;\n let resultPromise;\n let it = {\n next() {\n resultPromise = inner.next().finally(() => {\n resultPromise = undefined;\n });\n return resultPromise;\n },\n throw(e) {\n return inner.throw(e);\n },\n };\n if (innerCandidate.return !== undefined) {\n it = Object.assign(Object.assign({}, it), { return(value) {\n return inner.return(value);\n } });\n }\n let used = false;\n return {\n abort(reason) {\n if (aborted) {\n return aborted.state;\n }\n const f = () => {\n return inner.throw(reason).then((r) => (r.done === true ? \"completed\" : \"caught\"), () => \"rethrown\");\n };\n if (resultPromise) {\n aborted = { reason, state: resultPromise.then(f, f) };\n return aborted.state;\n }\n aborted = { reason, state: f() };\n return aborted.state;\n },\n [Symbol.asyncIterator]() {\n if (used) {\n throw new Error(\"AsyncIterable cannot be re-used\");\n }\n used = true;\n return it;\n },\n };\n}\n/**\n * Create a new WritableIterable.\n */\nexport function createWritableIterable() {\n // We start with two queues to capture the read and write attempts.\n //\n // The writes and reads each check of their counterpart is\n // already available and either interact/add themselves to the queue.\n const readQueue = [];\n const writeQueue = [];\n let err = undefined;\n let nextResolve;\n let nextReject;\n let nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n let closed = false;\n // drain the readQueue in case of error/writer is closed by sending a\n // done result.\n function drain() {\n for (const next of readQueue.splice(0, readQueue.length)) {\n next({ done: true, value: undefined });\n }\n }\n return {\n close() {\n closed = true;\n drain();\n },\n async write(payload) {\n if (closed) {\n throw err !== null && err !== void 0 ? err : new Error(\"cannot write, WritableIterable already closed\");\n }\n const read = readQueue.shift();\n if (read === undefined) {\n // We didn't find a pending read so we add the payload to the write queue.\n writeQueue.push(payload);\n }\n else {\n // We found a pending read so we respond with the payload.\n read({ done: false, value: payload });\n if (readQueue.length > 0) {\n // If there are more in the read queue we can mark the write as complete.\n // as the error reporting is not guaranteed to be sequential and therefore cannot\n // to linked to a specific write.\n return;\n }\n }\n // We await the next call for as many times as there are items in the queue + 1\n //\n // If there are no items in the write queue that means write happened and we just have\n // to wait for one more call likewise if we are the nth write in the queue we\n // have to wait for n writes to complete and one more.\n const limit = writeQueue.length + 1;\n for (let i = 0; i < limit; i++) {\n await nextPromise;\n }\n },\n [Symbol.asyncIterator]() {\n return {\n next() {\n // Resolve the nextPromise to indicate\n // pending writes that a read attempt has been made\n // after their write.\n //\n // We also need to reset the promise for future writes.\n nextResolve();\n nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n const write = writeQueue.shift();\n if (write !== undefined) {\n // We found a pending write so response with the payload.\n return Promise.resolve({ done: false, value: write });\n }\n if (closed) {\n return Promise.resolve({ done: true, value: undefined });\n }\n // We return a promise immediately that is either resolved/rejected\n // as writes happen.\n let readResolve;\n const readPromise = new Promise((resolve) => (readResolve = resolve));\n readQueue.push(readResolve); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n return readPromise;\n },\n throw(throwErr) {\n err = throwErr;\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n // This will reject all pending writes.\n nextReject(err);\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n return() {\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n // Resolve once for the write awaiting confirmation.\n nextResolve();\n // Reject all future writes.\n nextPromise = Promise.reject(new Error(\"cannot write, consumer called return\"));\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n };\n },\n };\n}\n/**\n * Create an asynchronous iterable from an array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nexport function createAsyncIterable(items) {\n return __asyncGenerator(this, arguments, function* createAsyncIterable_1() {\n yield __await(yield* __asyncDelegator(__asyncValues(items)));\n });\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodKind } from \"@bufbuild/protobuf\";\nimport { makeAnyClient } from \"./any-client.js\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\nimport { createAsyncIterable } from \"./protocol/async-iterable.js\";\n/**\n * Create a PromiseClient for the given service, invoking RPCs through the\n * given transport.\n */\nexport function createPromiseClient(service, transport) {\n return makeAnyClient(service, (method) => {\n switch (method.kind) {\n case MethodKind.Unary:\n return createUnaryFn(transport, service, method);\n case MethodKind.ServerStreaming:\n return createServerStreamingFn(transport, service, method);\n case MethodKind.ClientStreaming:\n return createClientStreamingFn(transport, service, method);\n case MethodKind.BiDiStreaming:\n return createBiDiStreamingFn(transport, service, method);\n default:\n return null;\n }\n });\n}\nexport function createUnaryFn(transport, service, method) {\n return async function (input, options) {\n var _a, _b;\n const response = await transport.unary(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, input, options === null || options === void 0 ? void 0 : options.contextValues);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n return response.message;\n };\n}\nexport function createServerStreamingFn(transport, service, method) {\n return function (input, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, createAsyncIterable([input]), options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nexport function createClientStreamingFn(transport, service, method) {\n return async function (request, options) {\n var _a, e_1, _b, _c;\n var _d, _e;\n const response = await transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues);\n (_d = options === null || options === void 0 ? void 0 : options.onHeader) === null || _d === void 0 ? void 0 : _d.call(options, response.header);\n let singleMessage;\n try {\n for (var _f = true, _g = __asyncValues(response.message), _h; _h = await _g.next(), _a = _h.done, !_a; _f = true) {\n _c = _h.value;\n _f = false;\n const message = _c;\n singleMessage = message;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_f && !_a && (_b = _g.return)) await _b.call(_g);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!singleMessage) {\n throw new ConnectError(\"protocol error: missing response message\", Code.Internal);\n }\n (_e = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _e === void 0 ? void 0 : _e.call(options, response.trailer);\n return singleMessage;\n };\n}\nexport function createBiDiStreamingFn(transport, service, method) {\n return function (request, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nfunction handleStreamResponse(stream, options) {\n const it = (function () {\n var _a, _b;\n return __asyncGenerator(this, arguments, function* () {\n const response = yield __await(stream);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n yield __await(yield* __asyncDelegator(__asyncValues(response.message)));\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n });\n })()[Symbol.asyncIterator]();\n // Create a new iterable to omit throw/return.\n return {\n [Symbol.asyncIterator]: () => ({\n next: () => it.next(),\n }),\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * Create an AbortController that is automatically aborted if one of the given\n * signals is aborted.\n *\n * For convenience, the linked AbortSignals can be undefined.\n *\n * If the controller or any of the signals is aborted, all event listeners are\n * removed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createLinkedAbortController(...signals) {\n const controller = new AbortController();\n const sa = signals\n .filter((s) => s !== undefined)\n .concat(controller.signal);\n for (const signal of sa) {\n if (signal.aborted) {\n onAbort.apply(signal);\n break;\n }\n signal.addEventListener(\"abort\", onAbort);\n }\n function onAbort() {\n if (!controller.signal.aborted) {\n controller.abort(getAbortSignalReason(this));\n }\n for (const signal of sa) {\n signal.removeEventListener(\"abort\", onAbort);\n }\n }\n return controller;\n}\n/**\n * Create a deadline signal. The returned object contains an AbortSignal, but\n * also a cleanup function to stop the timer, which must be called once the\n * calling code is no longer interested in the signal.\n *\n * Ideally, we would simply use AbortSignal.timeout(), but it is not widely\n * available yet.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createDeadlineSignal(timeoutMs) {\n const controller = new AbortController();\n const listener = () => {\n controller.abort(new ConnectError(\"the operation timed out\", Code.DeadlineExceeded));\n };\n let timeoutId;\n if (timeoutMs !== undefined) {\n if (timeoutMs <= 0)\n listener();\n else\n timeoutId = setTimeout(listener, timeoutMs);\n }\n return {\n signal: controller.signal,\n cleanup: () => clearTimeout(timeoutId),\n };\n}\n/**\n * Returns the reason why an AbortSignal was aborted. Returns undefined if the\n * signal has not been aborted.\n *\n * The property AbortSignal.reason is not widely available. This function\n * returns an AbortError if the signal is aborted, but reason is undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function getAbortSignalReason(signal) {\n if (!signal.aborted) {\n return undefined;\n }\n if (signal.reason !== undefined) {\n return signal.reason;\n }\n // AbortSignal.reason is available in Node.js v16, v18, and later,\n // and in all browsers since early 2022.\n const e = new Error(\"This operation was aborted\");\n e.name = \"AbortError\";\n return e;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * createContextValues creates a new ContextValues.\n */\nexport function createContextValues() {\n return {\n get(key) {\n return key.id in this ? this[key.id] : key.defaultValue;\n },\n set(key, value) {\n this[key.id] = value;\n return this;\n },\n delete(key) {\n delete this[key.id];\n return this;\n },\n };\n}\n/**\n * createContextKey creates a new ContextKey.\n */\nexport function createContextKey(defaultValue, options) {\n return { id: Symbol(options === null || options === void 0 ? void 0 : options.description), defaultValue };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create a URL for the given RPC. This simply adds the qualified\n * service name, a slash, and the method name to the path of the given\n * baseUrl.\n *\n * For example, the baseUri https://example.com and method \"Say\" from\n * the service example.ElizaService results in:\n * https://example.com/example.ElizaService/Say\n *\n * This format is used by the protocols Connect, gRPC and Twirp.\n *\n * Note that this function also accepts a protocol-relative baseUrl.\n * If given an empty string or \"/\" as a baseUrl, it returns just the\n * path.\n */\nexport function createMethodUrl(baseUrl, service, method) {\n const s = typeof service == \"string\" ? service : service.typeName;\n const m = typeof method == \"string\" ? method : method.name;\n return baseUrl.toString().replace(/\\/?$/, `/${s}/${m}`);\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"@bufbuild/protobuf\";\n/**\n * Takes a partial protobuf messages of the\n * specified message type as input, and returns full instances.\n */\nexport function normalize(type, message) {\n return message instanceof type\n ? message\n : new type(message);\n}\n/**\n * Takes an AsyncIterable of partial protobuf messages of the\n * specified message type as input, and yields full instances.\n */\nexport function normalizeIterable(messageType, input) {\n function transform(result) {\n if (result.done === true) {\n return result;\n }\n return {\n done: result.done,\n value: normalize(messageType, result.value),\n };\n }\n return {\n [Symbol.asyncIterator]() {\n const it = input[Symbol.asyncIterator]();\n const res = {\n next: () => it.next().then(transform),\n };\n if (it.throw !== undefined) {\n res.throw = (e) => it.throw(e).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n if (it.return !== undefined) {\n res.return = (v) => it.return(v).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n return res;\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { assertReadMaxBytes, assertWriteMaxBytes } from \"./limit-io.js\";\n/**\n * Sets default JSON serialization options for connect-es.\n *\n * With standard protobuf JSON serialization, unknown JSON fields are\n * rejected by default. In connect-es, unknown JSON fields are ignored\n * by default.\n */\nexport function getJsonOptions(options) {\n var _a;\n const o = Object.assign({}, options);\n (_a = o.ignoreUnknownFields) !== null && _a !== void 0 ? _a : (o.ignoreUnknownFields = true);\n return o;\n}\n/**\n * Create an object that provides convenient access to request and response\n * message serialization for a given method.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createMethodSerializationLookup(method, binaryOptions, jsonOptions, limitOptions) {\n const inputBinary = limitSerialization(createBinarySerialization(method.I, binaryOptions), limitOptions);\n const inputJson = limitSerialization(createJsonSerialization(method.I, jsonOptions), limitOptions);\n const outputBinary = limitSerialization(createBinarySerialization(method.O, binaryOptions), limitOptions);\n const outputJson = limitSerialization(createJsonSerialization(method.O, jsonOptions), limitOptions);\n return {\n getI(useBinaryFormat) {\n return useBinaryFormat ? inputBinary : inputJson;\n },\n getO(useBinaryFormat) {\n return useBinaryFormat ? outputBinary : outputJson;\n },\n };\n}\n/**\n * Returns functions to normalize and serialize the input message\n * of an RPC, and to parse the output message of an RPC.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createClientMethodSerializers(method, useBinaryFormat, jsonOptions, binaryOptions) {\n const input = useBinaryFormat\n ? createBinarySerialization(method.I, binaryOptions)\n : createJsonSerialization(method.I, jsonOptions);\n const output = useBinaryFormat\n ? createBinarySerialization(method.O, binaryOptions)\n : createJsonSerialization(method.O, jsonOptions);\n return { parse: output.parse, serialize: input.serialize };\n}\n/**\n * Apply I/O limits to a Serialization object, returning a new object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function limitSerialization(serialization, limitOptions) {\n return {\n serialize(data) {\n const bytes = serialization.serialize(data);\n assertWriteMaxBytes(limitOptions.writeMaxBytes, bytes.byteLength);\n return bytes;\n },\n parse(data) {\n assertReadMaxBytes(limitOptions.readMaxBytes, data.byteLength, true);\n return serialization.parse(data);\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf binary format.\n */\nexport function createBinarySerialization(messageType, options) {\n return {\n parse(data) {\n try {\n return messageType.fromBinary(data, options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`parse binary: ${m}`, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n return data.toBinary(options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`serialize binary: ${m}`, Code.Internal);\n }\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf canonical JSON encoding.\n *\n * By default, unknown fields are ignored.\n */\nexport function createJsonSerialization(messageType, options) {\n var _a, _b;\n const textEncoder = (_a = options === null || options === void 0 ? void 0 : options.textEncoder) !== null && _a !== void 0 ? _a : new TextEncoder();\n const textDecoder = (_b = options === null || options === void 0 ? void 0 : options.textDecoder) !== null && _b !== void 0 ? _b : new TextDecoder();\n const o = getJsonOptions(options);\n return {\n parse(data) {\n try {\n const json = textDecoder.decode(data);\n return messageType.fromJsonString(json, o);\n }\n catch (e) {\n throw ConnectError.from(e, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n const json = data.toJsonString(o);\n return textEncoder.encode(json);\n }\n catch (e) {\n throw ConnectError.from(e, Code.Internal);\n }\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Regular Expression that matches any valid Connect Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeRegExp = /^application\\/(connect\\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;\n/**\n * Regular Expression that matches a Connect unary Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeUnaryRegExp = /^application\\/(?:json(?:; ?charset=utf-?8)?|proto)$/i;\n/**\n * Regular Expression that matches a Connect streaming Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeStreamRegExp = /^application\\/connect\\+?(?:json(?:; ?charset=utf-?8)?|proto)$/i;\nexport const contentTypeUnaryProto = \"application/proto\";\nexport const contentTypeUnaryJson = \"application/json\";\nexport const contentTypeStreamProto = \"application/connect+proto\";\nexport const contentTypeStreamJson = \"application/connect+json\";\nconst encodingProto = \"proto\";\nconst encodingJson = \"json\";\n/**\n * Parse a Connect Content-Type header.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseContentType(contentType) {\n const match = contentType === null || contentType === void 0 ? void 0 : contentType.match(contentTypeRegExp);\n if (!match) {\n return undefined;\n }\n const stream = !!match[1];\n const binary = !!match[3];\n return { stream, binary };\n}\n/**\n * Parse a Connect Get encoding query parameter.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseEncodingQuery(encoding) {\n switch (encoding) {\n case encodingProto:\n return { stream: false, binary: true };\n case encodingJson:\n return { stream: false, binary: false };\n default:\n return undefined;\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { codeFromString, codeToString } from \"./code-string.js\";\n/**\n * Parse a Connect error from a JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJson(jsonValue, metadata, fallback) {\n if (metadata) {\n new Headers(metadata).forEach((value, key) => fallback.metadata.append(key, value));\n }\n if (typeof jsonValue !== \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue) ||\n !(\"code\" in jsonValue) ||\n typeof jsonValue.code !== \"string\") {\n throw fallback;\n }\n const code = codeFromString(jsonValue.code);\n if (code === undefined) {\n throw fallback;\n }\n const message = jsonValue.message;\n if (message != null && typeof message !== \"string\") {\n throw fallback;\n }\n const error = new ConnectError(message !== null && message !== void 0 ? message : \"\", code, metadata);\n if (\"details\" in jsonValue && Array.isArray(jsonValue.details)) {\n for (const detail of jsonValue.details) {\n if (detail === null ||\n typeof detail != \"object\" ||\n Array.isArray(detail) ||\n typeof detail.type != \"string\" ||\n typeof detail.value != \"string\" ||\n (\"debug\" in detail && typeof detail.debug != \"object\")) {\n throw fallback;\n }\n try {\n error.details.push({\n type: detail.type,\n value: protoBase64.dec(detail.value),\n debug: detail.debug,\n });\n }\n catch (e) {\n throw fallback;\n }\n }\n }\n return error;\n}\n/**\n * Parse a Connect error from a serialized JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJsonBytes(bytes, metadata, fallback) {\n let jsonValue;\n try {\n jsonValue = JSON.parse(new TextDecoder().decode(bytes));\n }\n catch (e) {\n throw fallback;\n }\n return errorFromJson(jsonValue, metadata, fallback);\n}\n/**\n * Serialize the given error to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation in the \"debug\" key if the detail uses\n * google.protobuf.Any. If serialization of the \"debug\" value fails, it\n * is silently disregarded.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJson(error, jsonWriteOptions) {\n const o = {\n code: codeToString(error.code),\n };\n if (error.rawMessage.length > 0) {\n o.message = error.rawMessage;\n }\n if (error.details.length > 0) {\n o.details = error.details\n .map((value) => {\n if (value instanceof Message) {\n const i = {\n type: value.getType().typeName,\n value: value.toBinary(),\n };\n try {\n i.debug = value.toJson(jsonWriteOptions);\n }\n catch (e) {\n // We deliberately ignore errors that may occur when serializing\n // a message to JSON (the message contains an Any).\n // The rationale is that we are only trying to provide optional\n // debug information.\n }\n return i;\n }\n return value;\n })\n .map((_a) => {\n var { value } = _a, rest = __rest(_a, [\"value\"]);\n return (Object.assign(Object.assign({}, rest), { value: protoBase64.enc(value) }));\n });\n }\n return o;\n}\n/**\n * Serialize the given error to JSON. This calls errorToJson(), but stringifies\n * the result, and converts it into a UInt8Array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJsonBytes(error, jsonWriteOptions) {\n const textEncoder = new TextEncoder();\n try {\n const jsonObject = errorToJson(error, jsonWriteOptions);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize Connect Error: ${m}`, Code.Internal);\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { errorFromJson, errorToJson } from \"./error-json.js\";\nimport { appendHeaders } from \"../http-headers.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * endStreamFlag indicates that the data in a EnvelopedMessage\n * is a EndStreamResponse of the Connect protocol.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const endStreamFlag = 0b00000010;\n/**\n * Parse an EndStreamResponse of the Connect protocol.\n * Throws a ConnectError on malformed input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamFromJson(data) {\n const parseErr = new ConnectError(\"invalid end stream\", Code.InvalidArgument);\n let jsonValue;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n jsonValue = JSON.parse(typeof data == \"string\" ? data : new TextDecoder().decode(data));\n }\n catch (e) {\n throw parseErr;\n }\n if (typeof jsonValue != \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue)) {\n throw parseErr;\n }\n const metadata = new Headers();\n if (\"metadata\" in jsonValue) {\n if (typeof jsonValue.metadata != \"object\" ||\n jsonValue.metadata == null ||\n Array.isArray(jsonValue.metadata)) {\n throw parseErr;\n }\n for (const [key, values] of Object.entries(jsonValue.metadata)) {\n if (!Array.isArray(values) ||\n values.some((value) => typeof value != \"string\")) {\n throw parseErr;\n }\n for (const value of values) {\n metadata.append(key, value);\n }\n }\n }\n const error = \"error\" in jsonValue\n ? errorFromJson(jsonValue.error, metadata, parseErr)\n : undefined;\n return { metadata, error };\n}\n/**\n * Serialize the given EndStreamResponse to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation of error details if the detail uses\n * google.protobuf.Any.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamToJson(metadata, error, jsonWriteOptions) {\n const es = {};\n if (error !== undefined) {\n es.error = errorToJson(error, jsonWriteOptions);\n metadata = appendHeaders(metadata, error.metadata);\n }\n let hasMetadata = false;\n const md = {};\n metadata.forEach((value, key) => {\n hasMetadata = true;\n md[key] = [value];\n });\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasMetadata) {\n es.metadata = md;\n }\n return es;\n}\n/**\n * Create a Serialization object that serializes a Connect EndStreamResponse.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEndStreamSerialization(options) {\n const textEncoder = new TextEncoder();\n return {\n serialize(data) {\n try {\n const jsonObject = endStreamToJson(data.metadata, data.error, options);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize EndStreamResponse: ${m}`, Code.Internal);\n }\n },\n parse(data) {\n try {\n return endStreamFromJson(data);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to parse EndStreamResponse: ${m}`, Code.InvalidArgument);\n }\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport const headerContentType = \"Content-Type\";\nexport const headerUnaryContentLength = \"Content-Length\";\nexport const headerUnaryEncoding = \"Content-Encoding\";\nexport const headerStreamEncoding = \"Connect-Content-Encoding\";\nexport const headerUnaryAcceptEncoding = \"Accept-Encoding\";\nexport const headerStreamAcceptEncoding = \"Connect-Accept-Encoding\";\nexport const headerTimeout = \"Connect-Timeout-Ms\";\nexport const headerProtocolVersion = \"Connect-Protocol-Version\";\nexport const headerUserAgent = \"User-Agent\";\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * Determine the Connect error code for the given HTTP status code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromHttpStatus(httpStatus) {\n switch (httpStatus) {\n case 400: // Bad Request\n return Code.InvalidArgument;\n case 401: // Unauthorized\n return Code.Unauthenticated;\n case 403: // Forbidden\n return Code.PermissionDenied;\n case 404: // Not Found\n return Code.Unimplemented;\n case 408: // Request Timeout\n return Code.DeadlineExceeded;\n case 409: // Conflict\n return Code.Aborted;\n case 412: // Precondition Failed\n return Code.FailedPrecondition;\n case 413: // Payload Too Large\n return Code.ResourceExhausted;\n case 415: // Unsupported Media Type\n return Code.Internal;\n case 429: // Too Many Requests\n return Code.Unavailable;\n case 431: // Request Header Fields Too Large\n return Code.ResourceExhausted;\n case 502: // Bad Gateway\n return Code.Unavailable;\n case 503: // Service Unavailable\n return Code.Unavailable;\n case 504: // Gateway Timeout\n return Code.Unavailable;\n default:\n return Code.Unknown;\n }\n}\n/**\n * Returns a HTTP status code for the given Connect code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToHttpStatus(code) {\n switch (code) {\n case Code.Canceled:\n return 408; // Request Timeout\n case Code.Unknown:\n return 500; // Internal Server Error\n case Code.InvalidArgument:\n return 400; // Bad Request\n case Code.DeadlineExceeded:\n return 408; // Request Timeout\n case Code.NotFound:\n return 404; // Not Found\n case Code.AlreadyExists:\n return 409; // Conflict\n case Code.PermissionDenied:\n return 403; // Forbidden\n case Code.ResourceExhausted:\n return 429; // Too Many Requests\n case Code.FailedPrecondition:\n return 412; // Precondition Failed\n case Code.Aborted:\n return 409; // Conflict\n case Code.OutOfRange:\n return 400; // Bad Request\n case Code.Unimplemented:\n return 404; // Not Found\n case Code.Internal:\n return 500; // Internal Server Error\n case Code.Unavailable:\n return 503; // Service Unavailable\n case Code.DataLoss:\n return 500; // Internal Server Error\n case Code.Unauthenticated:\n return 401; // Unauthorized\n default:\n return 500; // same as CodeUnknown\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function demuxes headers and trailers into two separate Headers\n * objects.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerDemux(header) {\n const h = new Headers(), t = new Headers();\n header.forEach((value, key) => {\n if (key.toLowerCase().startsWith(\"trailer-\")) {\n t.set(key.substring(8), value);\n }\n else {\n h.set(key, value);\n }\n });\n return [h, t];\n}\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function muxes a header and a trailer into a single Headers object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerMux(header, trailer) {\n const h = new Headers(header);\n trailer.forEach((value, key) => {\n h.set(`trailer-${key}`, value);\n });\n return h;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { headerProtocolVersion } from \"./headers.js\";\nimport { paramConnectVersion } from \"./query-params.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * The only know value for the header Connect-Protocol-Version.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const protocolVersion = \"1\";\n/**\n * Requires the Connect-Protocol-Version header to be present with the expected\n * value. Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionHeader(requestHeader) {\n const v = requestHeader.get(headerProtocolVersion);\n if (v === null) {\n throw new ConnectError(`missing required header: set ${headerProtocolVersion} to \"${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== protocolVersion) {\n throw new ConnectError(`${headerProtocolVersion} must be \"${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n/**\n * Requires the connect query parameter to be present with the expected value.\n * Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionParam(queryParams) {\n const v = queryParams.get(paramConnectVersion);\n if (v === null) {\n throw new ConnectError(`missing required parameter: set ${paramConnectVersion} to \"v${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== `v${protocolVersion}`) {\n throw new ConnectError(`${paramConnectVersion} must be \"v${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerStreamAcceptEncoding, headerStreamEncoding, headerUnaryAcceptEncoding, headerUnaryEncoding, headerTimeout, headerProtocolVersion, headerUserAgent, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nimport { contentTypeStreamJson, contentTypeStreamProto, contentTypeUnaryJson, contentTypeUnaryProto, } from \"./content-type.js\";\n/**\n * Creates headers for a Connect request.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) {\n const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {});\n if (timeoutMs !== undefined) {\n result.set(headerTimeout, `${timeoutMs}`);\n }\n result.set(headerContentType, methodKind == MethodKind.Unary\n ? useBinaryFormat\n ? contentTypeUnaryProto\n : contentTypeUnaryJson\n : useBinaryFormat\n ? contentTypeStreamProto\n : contentTypeStreamJson);\n result.set(headerProtocolVersion, protocolVersion);\n if (setUserAgent) {\n result.set(headerUserAgent, \"connect-es/1.3.0\");\n }\n return result;\n}\n/**\n * Creates headers for a Connect request with compression.\n *\n * Note that we always set the Content-Encoding header for unary methods.\n * It is up to the caller to decide whether to apply compression - and remove\n * the header if compression is not used, for example because the payload is\n * too small to make compression effective.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeaderWithCompression(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, acceptCompression, sendCompression, setUserAgent) {\n const result = requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent);\n if (sendCompression != null) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryEncoding\n : headerStreamEncoding;\n result.set(name, sendCompression.name);\n }\n if (acceptCompression.length > 0) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryAcceptEncoding\n : headerStreamAcceptEncoding;\n result.set(name, acceptCompression.map((c) => c.name).join(\",\"));\n }\n return result;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { codeFromHttpStatus } from \"./http-status.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { parseContentType } from \"./content-type.js\";\nimport { headerStreamEncoding, headerUnaryEncoding } from \"./headers.js\";\n/**\n * Validates response status and header for the Connect protocol.\n * Throws a ConnectError if the header indicates an error, or if\n * the content type is unexpected, with the following exception:\n * For unary RPCs with an HTTP error status, this returns an error\n * derived from the HTTP status instead of throwing it, giving an\n * implementation a chance to parse a Connect error from the wire.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function validateResponse(methodKind, status, headers) {\n const mimeType = headers.get(\"Content-Type\");\n const parsedType = parseContentType(mimeType);\n if (status !== 200) {\n const errorFromStatus = new ConnectError(`HTTP ${status}`, codeFromHttpStatus(status), headers);\n // If parsedType is defined and it is not binary, then this is a unary JSON response\n if (methodKind == MethodKind.Unary && parsedType && !parsedType.binary) {\n return { isUnaryError: true, unaryError: errorFromStatus };\n }\n throw errorFromStatus;\n }\n return { isUnaryError: false };\n}\n/**\n * Validates response status and header for the Connect protocol.\n * This function is identical to validateResponse(), but also verifies\n * that a given encoding header is acceptable.\n *\n * @private\n */\nexport function validateResponseWithCompression(methodKind, acceptCompression, status, headers) {\n let compression;\n const encoding = headers.get(methodKind == MethodKind.Unary ? headerUnaryEncoding : headerStreamEncoding);\n if (encoding != null && encoding.toLowerCase() !== \"identity\") {\n compression = acceptCompression.find((c) => c.name === encoding);\n if (!compression) {\n throw new ConnectError(`unsupported response encoding \"${encoding}\"`, Code.InvalidArgument, headers);\n }\n }\n return Object.assign({ compression }, validateResponse(methodKind, status, headers));\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerProtocolVersion, headerUnaryAcceptEncoding, headerUnaryContentLength, headerUnaryEncoding, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nconst contentTypePrefix = \"application/\";\nfunction encodeMessageForUrl(message, useBase64) {\n if (useBase64) {\n // TODO(jchadwick-buf): Three regex replaces seems excessive.\n // Can we make protoBase64.enc more flexible?\n return protoBase64\n .enc(message)\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n }\n else {\n return encodeURIComponent(new TextDecoder().decode(message));\n }\n}\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformConnectPostToGetRequest(request, message, useBase64) {\n let query = `?connect=v${protocolVersion}`;\n const contentType = request.header.get(headerContentType);\n if ((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(contentTypePrefix)) === 0) {\n query +=\n \"&encoding=\" +\n encodeURIComponent(contentType.slice(contentTypePrefix.length));\n }\n const compression = request.header.get(headerUnaryEncoding);\n if (compression !== null && compression !== \"identity\") {\n query += \"&compression=\" + encodeURIComponent(compression);\n // Force base64 for compressed payloads.\n useBase64 = true;\n }\n if (useBase64) {\n query += \"&base64=1\";\n }\n query += \"&message=\" + encodeMessageForUrl(message, useBase64);\n const url = request.url + query;\n // Omit headers that are not used for unary GET requests.\n const header = new Headers(request.header);\n [\n headerProtocolVersion,\n headerContentType,\n headerUnaryContentLength,\n headerUnaryEncoding,\n headerUnaryAcceptEncoding,\n ].forEach((h) => header.delete(h));\n return Object.assign(Object.assign({}, request), { init: Object.assign(Object.assign({}, request.init), { method: \"GET\" }), url,\n header });\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { createDeadlineSignal, createLinkedAbortController, getAbortSignalReason, } from \"./signals.js\";\nimport { normalize, normalizeIterable } from \"./normalize.js\";\n/**\n * Runs a unary method with the given interceptors. Note that this function\n * is only used when implementing a Transport.\n */\nexport function runUnaryCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalize(opt.req.method.I, opt.req.message), signal });\n return next(req).then((res) => {\n done();\n return res;\n }, abort);\n}\n/**\n * Runs a server-streaming method with the given interceptors. Note that this\n * function is only used when implementing a Transport.\n */\nexport function runStreamingCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalizeIterable(opt.req.method.I, opt.req.message), signal });\n let doneCalled = false;\n // Call return on the request iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n signal.addEventListener(\"abort\", function () {\n var _a, _b;\n const it = opt.req.message[Symbol.asyncIterator]();\n // If the signal is aborted due to an error, we want to throw\n // the error to the request iterator.\n if (!doneCalled) {\n (_a = it.throw) === null || _a === void 0 ? void 0 : _a.call(it, this.reason).catch(() => {\n // throw returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n (_b = it.return) === null || _b === void 0 ? void 0 : _b.call(it).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n });\n return next(req).then((res) => {\n return Object.assign(Object.assign({}, res), { message: {\n [Symbol.asyncIterator]() {\n const it = res.message[Symbol.asyncIterator]();\n return {\n next() {\n return it.next().then((r) => {\n if (r.done == true) {\n doneCalled = true;\n done();\n }\n return r;\n }, abort);\n },\n // We deliberately omit throw/return.\n };\n },\n } });\n }, abort);\n}\n/**\n * Create an AbortSignal for Transport implementations. The signal is available\n * in UnaryRequest and StreamingRequest, and is triggered when the call is\n * aborted (via a timeout or explicit cancellation), errored (e.g. when reading\n * an error from the server from the wire), or finished successfully.\n *\n * Transport implementations can pass the signal to HTTP clients to ensure that\n * there are no unused connections leak.\n *\n * Returns a tuple:\n * [0]: The signal, which is also aborted if the optional deadline is reached.\n * [1]: Function to call if the Transport encountered an error.\n * [2]: Function to call if the Transport finished without an error.\n */\nfunction setupSignal(opt) {\n const { signal, cleanup } = createDeadlineSignal(opt.timeoutMs);\n const controller = createLinkedAbortController(opt.signal, signal);\n return [\n controller.signal,\n function abort(reason) {\n // We peek at the deadline signal because fetch() will throw an error on\n // abort that discards the signal reason.\n const e = ConnectError.from(signal.aborted ? getAbortSignalReason(signal) : reason);\n controller.abort(e);\n cleanup();\n return Promise.reject(e);\n },\n function done() {\n cleanup();\n controller.abort();\n },\n ];\n}\n/**\n * applyInterceptors takes the given UnaryFn or ServerStreamingFn, and wraps\n * it with each of the given interceptors, returning a new UnaryFn or\n * ServerStreamingFn.\n */\nfunction applyInterceptors(next, interceptors) {\n var _a;\n return ((_a = interceptors === null || interceptors === void 0 ? void 0 : interceptors.concat().reverse().reduce(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n (n, i) => i(n), next)) !== null && _a !== void 0 ? _a : next);\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Asserts that the fetch API is available.\n */\nexport function assertFetchApi() {\n try {\n new Headers();\n }\n catch (_) {\n throw new Error(\"connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.\");\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodIdempotency, MethodKind } from \"@bufbuild/protobuf\";\nimport { appendHeaders, createContextValues } from \"@connectrpc/connect\";\nimport { createClientMethodSerializers, createEnvelopeReadableStream, createMethodUrl, getJsonOptions, encodeEnvelope, runStreamingCall, runUnaryCall, } from \"@connectrpc/connect/protocol\";\nimport { endStreamFlag, endStreamFromJson, errorFromJson, requestHeader, trailerDemux, transformConnectPostToGetRequest, validateResponse, } from \"@connectrpc/connect/protocol-connect\";\nimport { assertFetchApi } from \"./assert-fetch-api.js\";\n/**\n * Create a Transport for the Connect protocol, which makes unary and\n * server-streaming methods available to web browsers. It uses the fetch\n * API to make HTTP requests.\n */\nexport function createConnectTransport(options) {\n var _a;\n assertFetchApi();\n const useBinaryFormat = (_a = options.useBinaryFormat) !== null && _a !== void 0 ? _a : false;\n return {\n async unary(service, method, signal, timeoutMs, header, message, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runUnaryCall({\n interceptors: options.interceptors,\n signal,\n timeoutMs,\n req: {\n stream: false,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message,\n },\n next: async (req) => {\n var _a;\n const useGet = options.useHttpGet === true &&\n method.idempotency === MethodIdempotency.NoSideEffects;\n let body = null;\n if (useGet) {\n req = transformConnectPostToGetRequest(req, serialize(req.message), useBinaryFormat);\n }\n else {\n body = serialize(req.message);\n }\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const response = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body }));\n const { isUnaryError, unaryError } = validateResponse(method.kind, response.status, response.headers);\n if (isUnaryError) {\n throw errorFromJson((await response.json()), appendHeaders(...trailerDemux(response.headers)), unaryError);\n }\n const [demuxedHeader, demuxedTrailer] = trailerDemux(response.headers);\n return {\n stream: false,\n service,\n method,\n header: demuxedHeader,\n message: useBinaryFormat\n ? parse(new Uint8Array(await response.arrayBuffer()))\n : method.O.fromJson((await response.json()), getJsonOptions(options.jsonOptions)),\n trailer: demuxedTrailer,\n };\n },\n });\n },\n async stream(service, method, signal, timeoutMs, header, input, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n function parseResponseBody(body, trailerTarget, header) {\n return __asyncGenerator(this, arguments, function* parseResponseBody_1() {\n const reader = createEnvelopeReadableStream(body).getReader();\n let endStreamReceived = false;\n for (;;) {\n const result = yield __await(reader.read());\n if (result.done) {\n break;\n }\n const { flags, data } = result.value;\n if ((flags & endStreamFlag) === endStreamFlag) {\n endStreamReceived = true;\n const endStream = endStreamFromJson(data);\n if (endStream.error) {\n const error = endStream.error;\n header.forEach((value, key) => {\n error.metadata.append(key, value);\n });\n throw error;\n }\n endStream.metadata.forEach((value, key) => trailerTarget.set(key, value));\n continue;\n }\n yield yield __await(parse(data));\n }\n if (!endStreamReceived) {\n throw \"missing EndStreamResponse\";\n }\n });\n }\n async function createRequestBody(input) {\n if (method.kind != MethodKind.ServerStreaming) {\n throw \"The fetch API does not support streaming request bodies\";\n }\n const r = await input[Symbol.asyncIterator]().next();\n if (r.done == true) {\n throw \"missing request message\";\n }\n return encodeEnvelope(0, serialize(r.value));\n }\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runStreamingCall({\n interceptors: options.interceptors,\n timeoutMs,\n signal,\n req: {\n stream: true,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message: input,\n },\n next: async (req) => {\n var _a;\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const fRes = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body: await createRequestBody(req.message) }));\n validateResponse(method.kind, fRes.status, fRes.headers);\n if (fRes.body === null) {\n throw \"missing response body\";\n }\n const trailer = new Headers();\n const res = Object.assign(Object.assign({}, req), { header: fRes.headers, trailer, message: parseResponseBody(fRes.body, trailer, fRes.headers) });\n return res;\n },\n });\n },\n };\n}\n", "import { ProtoflowService } from \"@/rpc/protoflow_connect\";\nimport { ContentService } from \"@/rpc/content/content_connect\";\nimport { UserService } from \"@/rpc/user/user_connect\";\nimport {ChatService} from \"@/rpc/chat/chat_connect\";\nimport {createConnectTransport} from \"@connectrpc/connect-web\";\nimport {createPromiseClient} from \"@connectrpc/connect\";\n\nexport const baseURL = process.env.BASE_URL;\n\nexport const transport = createConnectTransport({\n baseUrl: `${baseURL}/api` || 'error',\n // credentials: \"include\",\n});\n\nexport const projectService = createPromiseClient(ProtoflowService, transport);\nexport const contentService = createPromiseClient(ContentService, transport);\nexport const userService = createPromiseClient(UserService, transport);\nexport const chatService = createPromiseClient(ChatService, transport);", "\nexport type TabContent = {\n from: string;\n to: string;\n}\nexport const contentGet = 'content/get';\nexport const contentSave = 'content/save';\n", "/// \nimport {contentService, projectService, userService} from \"@/service\";\nimport {urlContent} from \"./util\";\nimport {contentGet, contentSave, TabContent} from \"./shared\";\nimport { Content } from \"@/rpc/content/content_pb\";\n\nlet tabContent: TabContent|undefined = undefined;\nlet history: {\n from: string;\n to: string;\n time: number;\n}[] = [];\n\nconst chromeExt = () => {\n async function saveContent(content: Content) {\n try {\n const resp = await contentService.save({\n content: content,\n related: []\n });\n console.log(resp);\n } catch (e) {\n console.error('failed to save', e)\n }\n }\n\n (\n async () => {\n const resp = await userService.login({}, {});\n // TODO breadchris I think this has the whitelist config in it\n console.log(resp);\n }\n )()\n\n chrome.runtime.onInstalled.addListener(function() {\n console.log('Extension Installed');\n });\n\n chrome.runtime.onStartup.addListener(function() {\n console.log('Extension Started');\n })\n\n chrome.webNavigation.onCompleted.addListener((details) => {\n if (details.url && details.frameType === \"outermost_frame\") {\n // console.log(`Visited URL: ${details.url}`);\n }\n });\n\n function getTabDetails(tabId: number): Promise {\n return new Promise((resolve, reject) => {\n chrome.tabs.get(tabId, tab => {\n if (chrome.runtime.lastError) {\n // Ignore errors, sometimes tabs might have already closed before we can fetch details\n resolve(undefined);\n } else {\n resolve(tab);\n }\n });\n });\n }\n\n chrome.runtime.onMessage.addListener(async (message, sender, sendResponse) => {\n // TODO breadchris replace with a typed action\n if (message.action === contentGet) {\n sendResponse({ data: tabContent });\n tabContent = undefined;\n }\n if (message.action === contentSave) {\n console.log('asdf')\n const content = Content.fromJson(message.data);\n try {\n await saveContent(content);\n } catch (e) {\n sendResponse({ data: { error: e } });\n return;\n }\n sendResponse({ data: {} });\n }\n });\n\n chrome.tabs.onCreated.addListener(async (tab) => {\n if (!tab.id) {\n return;\n }\n const tabDetails = await getTabDetails(tab.id);\n if (tabDetails) {\n console.log(`Tab with URL ${tabDetails.url} has been created.`, tabDetails);\n }\n })\n\n chrome.tabs.onRemoved.addListener(async (tabId, removeInfo) => {\n // console.log(`Tab with ID ${tabId} has been closed.`);\n const tabDetails = await getTabDetails(tabId);\n if (tabDetails) {\n console.log(`Tab with URL ${tabDetails.url} has been closed.`, tabDetails);\n }\n });\n\n chrome.webRequest.onBeforeRequest.addListener(\n (details) => {\n if (!details.initiator || details.type !== 'main_frame') {\n return;\n }\n const u = new URL(details.initiator);\n const v = new URL(details.url);\n if (u.host === v.host) {\n return;\n }\n // TODO breadchris integrate whitelist\n if (u.host === 'news.ycombinator.com') {\n tabContent = {\n from: details.initiator,\n to: details.url\n }\n // TODO breadchris auto collecting config\n }\n }, { urls: [\"\"] }, [])\n\n chrome.webRequest.onBeforeSendHeaders.addListener(\n (details) => {\n let refererValue = '';\n if (!details.requestHeaders) {\n return;\n }\n for (let header of details.requestHeaders) {\n if (header.name.toLowerCase() === \"referer\" && header.value) {\n refererValue = header.value;\n // console.log(`Visited URL: ${details.url}, Referrer: ${refererValue}`);\n break;\n }\n }\n //console.log(`Visited URL: ${details.url}, Referrer: ${refererValue}`);\n },\n { urls: [\"\"] }, // Monitor all URLs\n [\"requestHeaders\"] // Necessary to get the request headers\n );\n}\n\nchromeExt();\n\nexport {};"], - "mappings": "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", - "names": ["ScalarType", "LongType", "WireType", "makeReadOptions", "makeWriteOptions", "writeScalar", "readScalar", "writeEnum", "writeScalar", "val", "a", "writeEnum", "writeScalar", "MethodKind", "MethodIdempotency", "Edition", "ExtensionRangeOptions_VerificationState", "FieldDescriptorProto_Type", "FieldDescriptorProto_Label", "FileOptions_OptimizeMode", "FieldOptions_CType", "FieldOptions_JSType", "FieldOptions_OptionRetention", "FieldOptions_OptionTargetType", "MethodOptions_IdempotencyLevel", "FeatureSet_FieldPresence", "FeatureSet_EnumType", "FeatureSet_RepeatedFieldEncoding", "FeatureSet_Utf8Validation", "FeatureSet_MessageEncoding", "FeatureSet_JsonFormat", "GeneratedCodeInfo_Annotation_Semantic", "URL", "AnalyzeConversationRequest", "Token", "Segment", "AnalyzeConversationRequest", "Message", "Message", "Code", "value", "v", "__asyncValues", "v", "__await", "__asyncDelegator", "__asyncGenerator", "transport", "fallback", "__await", "__asyncGenerator", "_a", "header", "input"] + "sourcesContent": ["// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Assert that condition is truthy or throw error (with message)\n */\nexport function assert(condition, msg) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean\n if (!condition) {\n throw new Error(msg);\n }\n}\nconst FLOAT32_MAX = 3.4028234663852886e38, FLOAT32_MIN = -3.4028234663852886e38, UINT32_MAX = 0xffffffff, INT32_MAX = 0x7fffffff, INT32_MIN = -0x80000000;\n/**\n * Assert a valid signed protobuf 32-bit integer.\n */\nexport function assertInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid int 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)\n throw new Error(\"invalid int 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer.\n */\nexport function assertUInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid uint 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)\n throw new Error(\"invalid uint 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid protobuf float value.\n */\nexport function assertFloat32(arg) {\n if (typeof arg !== \"number\")\n throw new Error(\"invalid float 32: \" + typeof arg);\n if (!Number.isFinite(arg))\n return;\n if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)\n throw new Error(\"invalid float 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./assert.js\";\nconst enumTypeSymbol = Symbol(\"@bufbuild/protobuf/enum-type\");\n/**\n * Get reflection information from a generated enum.\n * If this function is called on something other than a generated\n * enum, it raises an error.\n */\nexport function getEnumType(enumObject) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-explicit-any\n const t = enumObject[enumTypeSymbol];\n assert(t, \"missing enum type on enum object\");\n return t; // eslint-disable-line @typescript-eslint/no-unsafe-return\n}\n/**\n * Sets reflection information on a generated enum.\n */\nexport function setEnumType(enumObject, typeName, values, opt) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n enumObject[enumTypeSymbol] = makeEnumType(typeName, values.map((v) => ({\n no: v.no,\n name: v.name,\n localName: enumObject[v.no],\n })), opt);\n}\n/**\n * Create a new EnumType with the given values.\n */\nexport function makeEnumType(typeName, values, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_opt) {\n const names = Object.create(null);\n const numbers = Object.create(null);\n const normalValues = [];\n for (const value of values) {\n // We do not surface options at this time\n // const value: EnumValueInfo = {...v, options: v.options ?? emptyReadonlyObject};\n const n = normalizeEnumValue(value);\n normalValues.push(n);\n names[value.name] = n;\n numbers[value.no] = n;\n }\n return {\n typeName,\n values: normalValues,\n // We do not surface options at this time\n // options: opt?.options ?? Object.create(null),\n findName(name) {\n return names[name];\n },\n findNumber(no) {\n return numbers[no];\n },\n };\n}\n/**\n * Create a new enum object with the given values.\n * Sets reflection information.\n */\nexport function makeEnum(typeName, values, opt) {\n const enumObject = {};\n for (const value of values) {\n const n = normalizeEnumValue(value);\n enumObject[n.localName] = n.no;\n enumObject[n.no] = n.localName;\n }\n setEnumType(enumObject, typeName, values, opt);\n return enumObject;\n}\nfunction normalizeEnumValue(value) {\n if (\"localName\" in value) {\n return value;\n }\n return Object.assign(Object.assign({}, value), { localName: value.name });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Message is the base class of every message, generated, or created at\n * runtime.\n *\n * It is _not_ safe to extend this class. If you want to create a message at\n * run time, use proto3.makeMessageType().\n */\nexport class Message {\n /**\n * Compare with a message of the same type.\n */\n equals(other) {\n return this.getType().runtime.util.equals(this.getType(), this, other);\n }\n /**\n * Create a deep copy.\n */\n clone() {\n return this.getType().runtime.util.clone(this);\n }\n /**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n fromBinary(bytes, options) {\n const type = this.getType(), format = type.runtime.bin, opt = format.makeReadOptions(options);\n format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt);\n return this;\n }\n /**\n * Parse a message from a JSON value.\n */\n fromJson(jsonValue, options) {\n const type = this.getType(), format = type.runtime.json, opt = format.makeReadOptions(options);\n format.readMessage(type, jsonValue, opt, this);\n return this;\n }\n /**\n * Parse a message from a JSON string.\n */\n fromJsonString(jsonString, options) {\n let json;\n try {\n json = JSON.parse(jsonString);\n }\n catch (e) {\n throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`);\n }\n return this.fromJson(json, options);\n }\n /**\n * Serialize the message to binary data.\n */\n toBinary(options) {\n const type = this.getType(), bin = type.runtime.bin, opt = bin.makeWriteOptions(options), writer = opt.writerFactory();\n bin.writeMessage(this, writer, opt);\n return writer.finish();\n }\n /**\n * Serialize the message to a JSON value, a JavaScript value that can be\n * passed to JSON.stringify().\n */\n toJson(options) {\n const type = this.getType(), json = type.runtime.json, opt = json.makeWriteOptions(options);\n return json.writeMessage(this, opt);\n }\n /**\n * Serialize the message to a JSON string.\n */\n toJsonString(options) {\n var _a;\n const value = this.toJson(options);\n return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n }\n /**\n * Override for serialization behavior. This will be invoked when calling\n * JSON.stringify on this message (i.e. JSON.stringify(msg)).\n *\n * Note that this will not serialize google.protobuf.Any with a packed\n * message because the protobuf JSON format specifies that it needs to be\n * unpacked, and this is only possible with a type registry to look up the\n * message type. As a result, attempting to serialize a message with this\n * type will throw an Error.\n *\n * This method is protected because you should not need to invoke it\n * directly -- instead use JSON.stringify or toJsonString for\n * stringified JSON. Alternatively, if actual JSON is desired, you should\n * use toJson.\n */\n toJSON() {\n return this.toJson({\n emitDefaultValues: true,\n });\n }\n /**\n * Retrieve the MessageType of this message - a singleton that represents\n * the protobuf message declaration and provides metadata for reflection-\n * based operations.\n */\n getType() {\n // Any class that extends Message _must_ provide a complete static\n // implementation of MessageType.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return\n return Object.getPrototypeOf(this).constructor;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\n/**\n * Create a new message type using the given runtime.\n */\nexport function makeMessageType(runtime, typeName, fields, opt) {\n var _a;\n const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(\".\") + 1);\n const type = {\n [localName]: function (data) {\n runtime.util.initFields(this);\n runtime.util.initPartial(data, this);\n },\n }[localName];\n Object.setPrototypeOf(type.prototype, new Message());\n Object.assign(type, {\n runtime,\n typeName,\n fields: runtime.util.newFieldList(fields),\n fromBinary(bytes, options) {\n return new type().fromBinary(bytes, options);\n },\n fromJson(jsonValue, options) {\n return new type().fromJson(jsonValue, options);\n },\n fromJsonString(jsonString, options) {\n return new type().fromJsonString(jsonString, options);\n },\n equals(a, b) {\n return runtime.util.equals(type, a, b);\n },\n });\n return type;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { getEnumType, makeEnum, makeEnumType } from \"./enum.js\";\nimport { makeMessageType } from \"./message-type.js\";\nexport function makeProtoRuntime(syntax, json, bin, util) {\n return {\n syntax,\n json,\n bin,\n util,\n makeMessageType(typeName, fields, opt) {\n return makeMessageType(this, typeName, fields, opt);\n },\n makeEnum,\n makeEnumType,\n getEnumType,\n };\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nexport var ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of fields with 64 bit integral types (int64, uint64,\n * sint64, fixed64, sfixed64).\n *\n * This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,\n * JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use\n * String if `[jstype = JS_STRING]` is specified.\n *\n * ```protobuf\n * uint64 field_a = 1; // BigInt\n * uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt\n * uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt\n * uint64 field_b = 2 [jstype = JS_STRING]; // String\n * ```\n */\nexport var LongType;\n(function (LongType) {\n /**\n * Use JavaScript BigInt.\n */\n LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n /**\n * Use JavaScript String.\n *\n * Field option `[jstype = JS_STRING]`.\n */\n LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n})(LongType || (LongType = {}));\n", "// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = (bits.hi & 0x80000000);\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1FFFFF) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xFFFFFF;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xFFFFFF;\n const high = (hi >> 16) & 0xFFFF;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + (mid * 6777216) + (high * 6710656);\n let digitB = mid + (high * 8147497);\n let digitC = (high * 2);\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA);\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { assert } from \"./private/assert.js\";\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./google/varint.js\";\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`int64 invalid: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`uint64 invalid: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n const assertInt64String = (value) => assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);\n const assertUInt64String = (value) => assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nexport const protoInt64 = makeInt64Support();\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./google/varint.js\";\nimport { assertFloat32, assertInt32, assertUInt32 } from \"./private/assert.js\";\nimport { protoInt64 } from \"./proto-int64.js\";\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\nexport class BinaryWriter {\n constructor(textEncoder) {\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.textEncoder.encode(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, textDecoder) {\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder();\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element on the wire and return the skipped data.\n * Supports WireType.StartGroup since v2.0.0-alpha.23.\n */\n skip(wireType) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n // From descriptor.proto: Group type is deprecated, not supported in proto3.\n // But we must still be able to parse and treat as unknown.\n let t;\n while ((t = this.tag()[1]) !== WireType.EndGroup) {\n this.skip(t);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.textDecoder.decode(this.bytes());\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../field.js\";\n/**\n * Wrap a primitive message field value in its corresponding wrapper\n * message. This function is idempotent.\n */\nexport function wrapField(type, value) {\n if (value instanceof Message || !type.fieldWrapper) {\n return value;\n }\n return type.fieldWrapper.wrapField(value);\n}\n/**\n * If the given field uses one of the well-known wrapper types, return\n * the primitive type it wraps.\n */\nexport function getUnwrappedFieldType(field) {\n if (field.fieldKind !== \"message\") {\n return undefined;\n }\n if (field.repeated) {\n return undefined;\n }\n if (field.oneof != undefined) {\n return undefined;\n }\n return wktWrapperToScalarType[field.message.typeName];\n}\nconst wktWrapperToScalarType = {\n \"google.protobuf.DoubleValue\": ScalarType.DOUBLE,\n \"google.protobuf.FloatValue\": ScalarType.FLOAT,\n \"google.protobuf.Int64Value\": ScalarType.INT64,\n \"google.protobuf.UInt64Value\": ScalarType.UINT64,\n \"google.protobuf.Int32Value\": ScalarType.INT32,\n \"google.protobuf.UInt32Value\": ScalarType.UINT32,\n \"google.protobuf.BoolValue\": ScalarType.BOOL,\n \"google.protobuf.StringValue\": ScalarType.STRING,\n \"google.protobuf.BytesValue\": ScalarType.BYTES,\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { LongType, ScalarType } from \"../field.js\";\nimport { WireType } from \"../binary-encoding.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns true if both scalar values are equal.\n */\nexport function scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the default value for the given scalar type, following\n * proto3 semantics.\n */\nexport function scalarDefaultValue(type, longType) {\n switch (type) {\n case ScalarType.BOOL:\n return false;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n return longType == 0 ? protoInt64.zero : \"0\";\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.BYTES:\n return new Uint8Array(0);\n case ScalarType.STRING:\n return \"\";\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n }\n}\n/**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value for proto3 semantics\n *\n * If argument `value` is omitted, [2] is always false.\n */\nexport function scalarTypeInfo(type, value) {\n const isUndefined = value === undefined;\n let wireType = WireType.Varint;\n let isIntrinsicDefault = value === 0;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- INT32, UINT32, SINT32 are covered by the defaults\n switch (type) {\n case ScalarType.STRING:\n isIntrinsicDefault = isUndefined || !value.length;\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.BOOL:\n isIntrinsicDefault = value === false;\n break;\n case ScalarType.DOUBLE:\n wireType = WireType.Bit64;\n break;\n case ScalarType.FLOAT:\n wireType = WireType.Bit32;\n break;\n case ScalarType.INT64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n break;\n case ScalarType.UINT64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n break;\n case ScalarType.FIXED64:\n isIntrinsicDefault = isUndefined || value == 0; // Loose comparison matches 0n, 0 and \"0\"\n wireType = WireType.Bit64;\n break;\n case ScalarType.BYTES:\n isIntrinsicDefault = isUndefined || !value.byteLength;\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.FIXED32:\n wireType = WireType.Bit32;\n break;\n case ScalarType.SFIXED32:\n wireType = WireType.Bit32;\n break;\n case ScalarType.SFIXED64:\n isIntrinsicDefault = isUndefined || value == 0;\n wireType = WireType.Bit64;\n break;\n case ScalarType.SINT64:\n isIntrinsicDefault = isUndefined || value == 0;\n break;\n }\n const method = ScalarType[type].toLowerCase();\n return [wireType, method, isUndefined || isIntrinsicDefault];\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { BinaryReader, BinaryWriter, WireType } from \"../binary-encoding.js\";\nimport { Message } from \"../message.js\";\nimport { LongType, ScalarType } from \"../field.js\";\nimport { wrapField } from \"./field-wrapper.js\";\nimport { scalarDefaultValue, scalarTypeInfo } from \"./scalars.js\";\nimport { assert } from \"./assert.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unnecessary-condition, no-case-declarations, prefer-const */\nconst unknownFieldsSymbol = Symbol(\"@bufbuild/protobuf/unknown-fields\");\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n readerFactory: (bytes) => new BinaryReader(bytes),\n};\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n writerFactory: () => new BinaryWriter(),\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nexport function makeBinaryFormatCommon() {\n return {\n makeReadOptions,\n makeWriteOptions,\n listUnknownFields(message) {\n var _a;\n return (_a = message[unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : [];\n },\n discardUnknownFields(message) {\n delete message[unknownFieldsSymbol];\n },\n writeUnknownFields(message, writer) {\n const m = message;\n const c = m[unknownFieldsSymbol];\n if (c) {\n for (const f of c) {\n writer.tag(f.no, f.wireType).raw(f.data);\n }\n }\n },\n onUnknownField(message, no, wireType, data) {\n const m = message;\n if (!Array.isArray(m[unknownFieldsSymbol])) {\n m[unknownFieldsSymbol] = [];\n }\n m[unknownFieldsSymbol].push({ no, wireType, data });\n },\n readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) {\n const type = message.getType();\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n const end = delimitedMessageEncoding\n ? reader.len\n : reader.pos + lengthOrEndTagFieldNo;\n let fieldNo, wireType;\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (wireType == WireType.EndGroup) {\n break;\n }\n const field = type.fields.find(fieldNo);\n if (!field) {\n const data = reader.skip(wireType);\n if (options.readUnknownFields) {\n this.onUnknownField(message, fieldNo, wireType, data);\n }\n continue;\n }\n let target = message, repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n target = target[field.oneof.localName];\n if (target.case != localName) {\n delete target.value;\n }\n target.case = localName;\n localName = \"value\";\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n const scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n let read = readScalar;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n if (field.kind == \"scalar\" && field.L > 0) {\n read = readScalarLTString;\n }\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n if (wireType == WireType.LengthDelimited &&\n scalarType != ScalarType.STRING &&\n scalarType != ScalarType.BYTES) {\n let e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n arr.push(read(reader, scalarType));\n }\n }\n else {\n target[localName] = read(reader, scalarType);\n }\n break;\n case \"message\":\n const messageType = field.T;\n if (repeated) {\n // safe to assume presence of array, oneof cannot contain repeated values\n target[localName].push(readMessageField(reader, new messageType(), options, field));\n }\n else {\n if (target[localName] instanceof Message) {\n readMessageField(reader, target[localName], options, field);\n }\n else {\n target[localName] = readMessageField(reader, new messageType(), options, field);\n if (messageType.fieldWrapper &&\n !field.oneof &&\n !field.repeated) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n }\n break;\n case \"map\":\n let [mapKey, mapVal] = readMapEntry(field, reader, options);\n // safe to assume presence of map object, oneof cannot contain repeated values\n target[localName][mapKey] = mapVal;\n break;\n }\n }\n if (delimitedMessageEncoding && // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n (wireType != WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) {\n throw new Error(`invalid end group tag`);\n }\n },\n };\n}\n// Read a message, avoiding MessageType.fromBinary() to re-use the\n// BinaryReadOptions and the IBinaryReader.\nfunction readMessageField(reader, message, options, field) {\n const format = message.getType().runtime.bin;\n const delimited = field === null || field === void 0 ? void 0 : field.delimited;\n format.readMessage(message, reader, delimited ? field === null || field === void 0 ? void 0 : field.no : reader.uint32(), // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n options, delimited);\n return message;\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(field, reader, options) {\n const length = reader.uint32(), end = reader.pos + length;\n let key, val;\n while (reader.pos < end) {\n let [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.K);\n break;\n case 2:\n switch (field.V.kind) {\n case \"scalar\":\n val = readScalar(reader, field.V.T);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, new field.V.T(), options, undefined);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n let keyRaw = scalarDefaultValue(field.K, LongType.BIGINT);\n key =\n field.K == ScalarType.BOOL\n ? keyRaw.toString()\n : keyRaw;\n }\n if (typeof key != \"string\" && typeof key != \"number\") {\n key = key.toString();\n }\n if (val === undefined) {\n switch (field.V.kind) {\n case \"scalar\":\n val = scalarDefaultValue(field.V.T, LongType.BIGINT);\n break;\n case \"enum\":\n val = 0;\n break;\n case \"message\":\n val = new field.V.T();\n break;\n }\n }\n return [key, val];\n}\n// Read a scalar value, but return 64 bit integral types (int64, uint64,\n// sint64, fixed64, sfixed64) as string instead of bigint.\nexport function readScalarLTString(reader, type) {\n const v = readScalar(reader, type);\n return typeof v == \"bigint\" ? v.toString() : v;\n}\n// Does not use scalarTypeInfo() for better performance.\nfunction readScalar(reader, type) {\n switch (type) {\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.INT64:\n return reader.int64();\n case ScalarType.UINT64:\n return reader.uint64();\n case ScalarType.FIXED64:\n return reader.fixed64();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reader.sfixed64();\n case ScalarType.SINT64:\n return reader.sint64();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SINT32:\n return reader.sint32();\n }\n}\nexport function writeMapEntry(writer, options, field, key, value) {\n writer.tag(field.no, WireType.LengthDelimited);\n writer.fork();\n // javascript only allows number or string for object properties\n // we convert from our representation to the protobuf type\n let keyValue = key;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- we deliberately handle just the special cases for map keys\n switch (field.K) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n keyValue = Number.parseInt(key);\n break;\n case ScalarType.BOOL:\n assert(key == \"true\" || key == \"false\");\n keyValue = key == \"true\";\n break;\n }\n // write key, expecting key field number = 1\n writeScalar(writer, field.K, 1, keyValue, true);\n // write value, expecting value field number = 2\n switch (field.V.kind) {\n case \"scalar\":\n writeScalar(writer, field.V.T, 2, value, true);\n break;\n case \"enum\":\n writeScalar(writer, ScalarType.INT32, 2, value, true);\n break;\n case \"message\":\n writer.tag(2, WireType.LengthDelimited).bytes(value.toBinary(options));\n break;\n }\n writer.join();\n}\nexport function writeMessageField(writer, options, field, value) {\n if (value !== undefined) {\n const message = wrapField(field.T, value);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field === null || field === void 0 ? void 0 : field.delimited)\n writer\n .tag(field.no, WireType.StartGroup)\n .raw(message.toBinary(options))\n .tag(field.no, WireType.EndGroup);\n else\n writer\n .tag(field.no, WireType.LengthDelimited)\n .bytes(message.toBinary(options));\n }\n}\nexport function writeScalar(writer, type, fieldNo, value, emitIntrinsicDefault) {\n let [wireType, method, isIntrinsicDefault] = scalarTypeInfo(type, value);\n if (!isIntrinsicDefault || emitIntrinsicDefault) {\n writer.tag(fieldNo, wireType)[method](value);\n }\n}\nexport function writePacked(writer, type, fieldNo, value) {\n if (!value.length) {\n return;\n }\n writer.tag(fieldNo, WireType.LengthDelimited).fork();\n let [, method] = scalarTypeInfo(type);\n for (let i = 0; i < value.length; i++) {\n writer[method](value[i]);\n }\n writer.join();\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ScalarType } from \"../field.js\";\nimport { makeBinaryFormatCommon, writeMapEntry, writeMessageField, writePacked, writeScalar, } from \"./binary-format-common.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions, prefer-const, no-case-declarations */\nexport function makeBinaryFormatProto3() {\n return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) {\n const type = message.getType();\n for (const field of type.fields.byNumber()) {\n let value, // this will be our field value, whether it is member of a oneof or regular field\n repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n const oneof = message[field.oneof.localName];\n if (oneof.case !== localName) {\n continue; // field is not selected, skip\n }\n value = oneof.value;\n }\n else {\n value = message[localName];\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item, true);\n }\n }\n }\n else {\n if (value !== undefined) {\n writeScalar(writer, scalarType, field.no, value, !!field.oneof || field.opt);\n }\n }\n break;\n case \"message\":\n if (repeated) {\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n } });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n// lookup table from base64 character to byte\nlet encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++)\n decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\nexport const protoBase64 = {\n /**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\n dec(base64Str) {\n // estimate byte size, not accounting for inner padding and whitespace\n let es = (base64Str.length * 3) / 4;\n if (base64Str[base64Str.length - 2] == \"=\")\n es -= 2;\n else if (base64Str[base64Str.length - 1] == \"=\")\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = decTable[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"=\":\n groupPos = 0; // reset state when padding found\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue; // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string.\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = ((p & 3) << 6) | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(\"invalid base64 string.\");\n return bytes.subarray(0, bytePos);\n },\n /**\n * Encode a byte array to a base64 string.\n */\n enc(bytes) {\n let base64 = \"\", groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += encTable[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += encTable[p | (b >> 4)];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += encTable[p | (b >> 6)];\n base64 += encTable[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += encTable[p];\n base64 += \"=\";\n if (groupPos == 1)\n base64 += \"=\";\n }\n return base64;\n },\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../message.js\";\nimport { LongType, ScalarType } from \"../field.js\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { protoBase64 } from \"../proto-base64.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\n// Default options for parsing JSON.\nconst jsonReadDefaults = {\n ignoreUnknownFields: false,\n};\n// Default options for serializing to JSON.\nconst jsonWriteDefaults = {\n emitDefaultValues: false,\n enumAsInteger: false,\n useProtoFieldName: false,\n prettySpaces: 0,\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, jsonWriteDefaults), options) : jsonWriteDefaults;\n}\nexport function makeJsonFormatCommon(makeWriteField) {\n const writeField = makeWriteField(writeEnum, writeScalar);\n return {\n makeReadOptions,\n makeWriteOptions,\n readMessage(type, json, options, message) {\n if (json == null || Array.isArray(json) || typeof json != \"object\") {\n throw new Error(`cannot decode message ${type.typeName} from JSON: ${this.debug(json)}`);\n }\n message = message !== null && message !== void 0 ? message : new type();\n const oneofSeen = {};\n for (const [jsonKey, jsonValue] of Object.entries(json)) {\n const field = type.fields.findJsonName(jsonKey);\n if (!field) {\n if (!options.ignoreUnknownFields) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: key \"${jsonKey}\" is unknown`);\n }\n continue;\n }\n let localName = field.localName;\n let target = message;\n if (field.oneof) {\n if (jsonValue === null && field.kind == \"scalar\") {\n // see conformance test Required.Proto3.JsonInput.OneofFieldNull{First,Second}\n continue;\n }\n const seen = oneofSeen[field.oneof.localName];\n if (seen) {\n throw new Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof \"${field.oneof.name}\" present: \"${seen}\", \"${jsonKey}\"`);\n }\n oneofSeen[field.oneof.localName] = jsonKey;\n target = target[field.oneof.localName] = { case: localName };\n localName = \"value\";\n }\n if (field.repeated) {\n if (jsonValue === null) {\n continue;\n }\n if (!Array.isArray(jsonValue)) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`);\n }\n const targetArray = target[localName];\n for (const jsonItem of jsonValue) {\n if (jsonItem === null) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`);\n }\n let val;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- \"map\" is invalid for repeated fields\n switch (field.kind) {\n case \"message\":\n val = field.T.fromJson(jsonItem, options);\n break;\n case \"enum\":\n val = readEnum(field.T, jsonItem, options.ignoreUnknownFields);\n if (val === undefined)\n continue;\n break;\n case \"scalar\":\n try {\n val = readScalar(field.T, jsonItem, field.L);\n }\n catch (e) {\n let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonItem)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n targetArray.push(val);\n }\n }\n else if (field.kind == \"map\") {\n if (jsonValue === null) {\n continue;\n }\n if (Array.isArray(jsonValue) || typeof jsonValue != \"object\") {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`);\n }\n const targetMap = target[localName];\n for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) {\n if (jsonMapValue === null) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: map value null`);\n }\n let val;\n switch (field.V.kind) {\n case \"message\":\n val = field.V.T.fromJson(jsonMapValue, options);\n break;\n case \"enum\":\n val = readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields);\n if (val === undefined)\n continue;\n break;\n case \"scalar\":\n try {\n val = readScalar(field.V.T, jsonMapValue, LongType.BIGINT);\n }\n catch (e) {\n let m = `cannot decode map value for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n try {\n targetMap[readScalar(field.K, field.K == ScalarType.BOOL\n ? jsonMapKey == \"true\"\n ? true\n : jsonMapKey == \"false\"\n ? false\n : jsonMapKey\n : jsonMapKey, LongType.BIGINT).toString()] = val;\n }\n catch (e) {\n let m = `cannot decode map key for field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n }\n }\n else {\n switch (field.kind) {\n case \"message\":\n const messageType = field.T;\n if (jsonValue === null &&\n messageType.typeName != \"google.protobuf.Value\") {\n if (field.oneof) {\n throw new Error(`cannot decode field ${type.typeName}.${field.name} from JSON: null is invalid for oneof field \"${jsonKey}\"`);\n }\n continue;\n }\n if (target[localName] instanceof Message) {\n target[localName].fromJson(jsonValue, options);\n }\n else {\n target[localName] = messageType.fromJson(jsonValue, options);\n if (messageType.fieldWrapper && !field.oneof) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n break;\n case \"enum\":\n const enumValue = readEnum(field.T, jsonValue, options.ignoreUnknownFields);\n if (enumValue !== undefined) {\n target[localName] = enumValue;\n }\n break;\n case \"scalar\":\n try {\n target[localName] = readScalar(field.T, jsonValue, field.L);\n }\n catch (e) {\n let m = `cannot decode field ${type.typeName}.${field.name} from JSON: ${this.debug(jsonValue)}`;\n if (e instanceof Error && e.message.length > 0) {\n m += `: ${e.message}`;\n }\n throw new Error(m);\n }\n break;\n }\n }\n }\n return message;\n },\n writeMessage(message, options) {\n const type = message.getType();\n const json = {};\n let field;\n try {\n for (const member of type.fields.byMember()) {\n let jsonValue;\n if (member.kind == \"oneof\") {\n const oneof = message[member.localName];\n if (oneof.value === undefined) {\n continue;\n }\n field = member.findField(oneof.case);\n if (!field) {\n throw \"oneof case not found: \" + oneof.case;\n }\n jsonValue = writeField(field, oneof.value, options);\n }\n else {\n field = member;\n jsonValue = writeField(field, message[field.localName], options);\n }\n if (jsonValue !== undefined) {\n json[options.useProtoFieldName ? field.name : field.jsonName] =\n jsonValue;\n }\n }\n }\n catch (e) {\n const m = field\n ? `cannot encode field ${type.typeName}.${field.name} to JSON`\n : `cannot encode message ${type.typeName} to JSON`;\n const r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n return json;\n },\n readScalar,\n writeScalar,\n debug: debugJsonValue,\n };\n}\nfunction debugJsonValue(json) {\n if (json === null) {\n return \"null\";\n }\n switch (typeof json) {\n case \"object\":\n return Array.isArray(json) ? \"array\" : \"object\";\n case \"string\":\n return json.length > 100 ? \"string\" : `\"${json.split('\"').join('\\\\\"')}\"`;\n default:\n return String(json);\n }\n}\n// May throw an error. If the error message is non-blank, it should be shown.\n// It is up to the caller to provide context.\nfunction readScalar(type, json, longType) {\n // every valid case in the switch below returns, and every fall\n // through is regarded as a failure.\n switch (type) {\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n if (json === null)\n return 0.0;\n if (json === \"NaN\")\n return Number.NaN;\n if (json === \"Infinity\")\n return Number.POSITIVE_INFINITY;\n if (json === \"-Infinity\")\n return Number.NEGATIVE_INFINITY;\n if (json === \"\") {\n // empty string is not a number\n break;\n }\n if (typeof json == \"string\" && json.trim().length !== json.length) {\n // extra whitespace\n break;\n }\n if (typeof json != \"string\" && typeof json != \"number\") {\n break;\n }\n const float = Number(json);\n if (Number.isNaN(float)) {\n // not a number\n break;\n }\n if (!Number.isFinite(float)) {\n // infinity and -infinity are handled by string representation above, so this is an error\n break;\n }\n if (type == ScalarType.FLOAT)\n assertFloat32(float);\n return float;\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n if (json === null)\n return 0;\n let int32;\n if (typeof json == \"number\")\n int32 = json;\n else if (typeof json == \"string\" && json.length > 0) {\n if (json.trim().length === json.length)\n int32 = Number(json);\n }\n if (int32 === undefined)\n break;\n if (type == ScalarType.UINT32)\n assertUInt32(int32);\n else\n assertInt32(int32);\n return int32;\n // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (json === null)\n return protoInt64.zero;\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const long = protoInt64.parse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? long.toString() : long;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (json === null)\n return protoInt64.zero;\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n const uLong = protoInt64.uParse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? uLong.toString() : uLong;\n // bool:\n case ScalarType.BOOL:\n if (json === null)\n return false;\n if (typeof json !== \"boolean\")\n break;\n return json;\n // string:\n case ScalarType.STRING:\n if (json === null)\n return \"\";\n if (typeof json !== \"string\") {\n break;\n }\n // A string must always contain UTF-8 encoded or 7-bit ASCII.\n // We validate with encodeURIComponent, which appears to be the fastest widely available option.\n try {\n encodeURIComponent(json);\n }\n catch (e) {\n throw new Error(\"invalid UTF8\");\n }\n return json;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n if (json === null || json === \"\")\n return new Uint8Array(0);\n if (typeof json !== \"string\")\n break;\n return protoBase64.dec(json);\n }\n throw new Error();\n}\nfunction readEnum(type, json, ignoreUnknownFields) {\n if (json === null) {\n // proto3 requires 0 to be default value for all enums\n return 0;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (typeof json) {\n case \"number\":\n if (Number.isInteger(json)) {\n return json;\n }\n break;\n case \"string\":\n const value = type.findName(json);\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n if (value || ignoreUnknownFields) {\n return value === null || value === void 0 ? void 0 : value.no;\n }\n break;\n }\n throw new Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json)}`);\n}\nfunction writeEnum(type, value, emitIntrinsicDefault, enumAsInteger) {\n var _a;\n if (value === undefined) {\n return value;\n }\n if (value === 0 && !emitIntrinsicDefault) {\n // proto3 requires 0 to be default value for all enums\n return undefined;\n }\n if (enumAsInteger) {\n return value;\n }\n if (type.typeName == \"google.protobuf.NullValue\") {\n return null;\n }\n const val = type.findNumber(value);\n return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value; // if we don't know the enum value, just return the number\n}\nfunction writeScalar(type, value, emitIntrinsicDefault) {\n if (value === undefined) {\n return undefined;\n }\n switch (type) {\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n assert(typeof value == \"number\");\n return value != 0 || emitIntrinsicDefault ? value : undefined;\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.FLOAT:\n // assertFloat32(value);\n case ScalarType.DOUBLE: // eslint-disable-line no-fallthrough\n assert(typeof value == \"number\");\n if (Number.isNaN(value))\n return \"NaN\";\n if (value === Number.POSITIVE_INFINITY)\n return \"Infinity\";\n if (value === Number.NEGATIVE_INFINITY)\n return \"-Infinity\";\n return value !== 0 || emitIntrinsicDefault ? value : undefined;\n // string:\n case ScalarType.STRING:\n assert(typeof value == \"string\");\n return value.length > 0 || emitIntrinsicDefault ? value : undefined;\n // bool:\n case ScalarType.BOOL:\n assert(typeof value == \"boolean\");\n return value || emitIntrinsicDefault ? value : undefined;\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n assert(typeof value == \"bigint\" ||\n typeof value == \"string\" ||\n typeof value == \"number\");\n // We use implicit conversion with `value != 0` to catch both 0n and \"0\"\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return emitIntrinsicDefault || value != 0\n ? value.toString(10)\n : undefined;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n assert(value instanceof Uint8Array);\n return emitIntrinsicDefault || value.byteLength > 0\n ? protoBase64.enc(value)\n : undefined;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { wrapField } from \"./field-wrapper.js\";\nimport { assert } from \"./assert.js\";\nimport { makeJsonFormatCommon } from \"./json-format-common.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nexport function makeJsonFormatProto3() {\n return makeJsonFormatCommon((writeEnum, writeScalar) => {\n return function writeField(field, value, options) {\n if (field.kind == \"map\") {\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = writeScalar(field.V.T, entryValue, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == \"number\");\n const val = writeEnum(enumType, entryValue, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n return options.emitDefaultValues || Object.keys(jsonObj).length > 0\n ? jsonObj\n : undefined;\n }\n else if (field.repeated) {\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i], true));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], true, options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(wrapField(field.T, value[i]).toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n else {\n switch (field.kind) {\n case \"scalar\":\n return writeScalar(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues);\n case \"enum\":\n return writeEnum(field.T, value, !!field.oneof || field.opt || options.emitDefaultValues, options.enumAsInteger);\n case \"message\":\n return value !== undefined\n ? wrapField(field.T, value).toJson(options)\n : undefined;\n }\n }\n };\n });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { setEnumType } from \"./enum.js\";\nimport { Message } from \"../message.js\";\nimport { ScalarType } from \"../field.js\";\nimport { scalarEquals } from \"./scalars.js\";\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument,no-case-declarations */\nexport function makeUtilCommon() {\n return {\n setEnumType,\n initPartial(source, target) {\n if (source === undefined) {\n return;\n }\n const type = target.getType();\n for (const member of type.fields.byMember()) {\n const localName = member.localName, t = target, s = source;\n if (s[localName] === undefined) {\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n const sk = s[localName].case;\n if (sk === undefined) {\n continue;\n }\n const sourceField = member.findField(sk);\n let val = s[localName].value;\n if (sourceField &&\n sourceField.kind == \"message\" &&\n !(val instanceof sourceField.T)) {\n val = new sourceField.T(val);\n }\n else if (sourceField &&\n sourceField.kind === \"scalar\" &&\n sourceField.T === ScalarType.BYTES) {\n val = toU8Arr(val);\n }\n t[localName] = { case: sk, value: val };\n break;\n case \"scalar\":\n case \"enum\":\n let copy = s[localName];\n if (member.T === ScalarType.BYTES) {\n copy = member.repeated\n ? copy.map(toU8Arr)\n : toU8Arr(copy);\n }\n t[localName] = copy;\n break;\n case \"map\":\n switch (member.V.kind) {\n case \"scalar\":\n case \"enum\":\n if (member.V.T === ScalarType.BYTES) {\n for (const [k, v] of Object.entries(s[localName])) {\n t[localName][k] = toU8Arr(v);\n }\n }\n else {\n Object.assign(t[localName], s[localName]);\n }\n break;\n case \"message\":\n const messageType = member.V.T;\n for (const k of Object.keys(s[localName])) {\n let val = s[localName][k];\n if (!messageType.fieldWrapper) {\n // We only take partial input for messages that are not a wrapper type.\n // For those messages, we recursively normalize the partial input.\n val = new messageType(val);\n }\n t[localName][k] = val;\n }\n break;\n }\n break;\n case \"message\":\n const mt = member.T;\n if (member.repeated) {\n t[localName] = s[localName].map((val) => val instanceof mt ? val : new mt(val));\n }\n else if (s[localName] !== undefined) {\n const val = s[localName];\n if (mt.fieldWrapper) {\n if (\n // We can't use BytesValue.typeName as that will create a circular import\n mt.typeName === \"google.protobuf.BytesValue\") {\n t[localName] = toU8Arr(val);\n }\n else {\n t[localName] = val;\n }\n }\n else {\n t[localName] = val instanceof mt ? val : new mt(val);\n }\n }\n break;\n }\n }\n },\n equals(type, a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return type.fields.byMember().every((m) => {\n const va = a[m.localName];\n const vb = b[m.localName];\n if (m.repeated) {\n if (va.length !== vb.length) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- repeated fields are never \"map\"\n switch (m.kind) {\n case \"message\":\n return va.every((a, i) => m.T.equals(a, vb[i]));\n case \"scalar\":\n return va.every((a, i) => scalarEquals(m.T, a, vb[i]));\n case \"enum\":\n return va.every((a, i) => scalarEquals(ScalarType.INT32, a, vb[i]));\n }\n throw new Error(`repeated cannot contain ${m.kind}`);\n }\n switch (m.kind) {\n case \"message\":\n return m.T.equals(va, vb);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va, vb);\n case \"scalar\":\n return scalarEquals(m.T, va, vb);\n case \"oneof\":\n if (va.case !== vb.case) {\n return false;\n }\n const s = m.findField(va.case);\n if (s === undefined) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- oneof fields are never \"map\"\n switch (s.kind) {\n case \"message\":\n return s.T.equals(va.value, vb.value);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va.value, vb.value);\n case \"scalar\":\n return scalarEquals(s.T, va.value, vb.value);\n }\n throw new Error(`oneof cannot contain ${s.kind}`);\n case \"map\":\n const keys = Object.keys(va).concat(Object.keys(vb));\n switch (m.V.kind) {\n case \"message\":\n const messageType = m.V.T;\n return keys.every((k) => messageType.equals(va[k], vb[k]));\n case \"enum\":\n return keys.every((k) => scalarEquals(ScalarType.INT32, va[k], vb[k]));\n case \"scalar\":\n const scalarType = m.V.T;\n return keys.every((k) => scalarEquals(scalarType, va[k], vb[k]));\n }\n break;\n }\n });\n },\n clone(message) {\n const type = message.getType(), target = new type(), any = target;\n for (const member of type.fields.byMember()) {\n const source = message[member.localName];\n let copy;\n if (member.repeated) {\n copy = source.map(cloneSingularField);\n }\n else if (member.kind == \"map\") {\n copy = any[member.localName];\n for (const [key, v] of Object.entries(source)) {\n copy[key] = cloneSingularField(v);\n }\n }\n else if (member.kind == \"oneof\") {\n const f = member.findField(source.case);\n copy = f\n ? { case: source.case, value: cloneSingularField(source.value) }\n : { case: undefined };\n }\n else {\n copy = cloneSingularField(source);\n }\n any[member.localName] = copy;\n }\n return target;\n },\n };\n}\n// clone a single field value - i.e. the element type of repeated fields, the value type of maps\nfunction cloneSingularField(value) {\n if (value === undefined) {\n return value;\n }\n if (value instanceof Message) {\n return value.clone();\n }\n if (value instanceof Uint8Array) {\n const c = new Uint8Array(value.byteLength);\n c.set(value);\n return c;\n }\n return value;\n}\n// converts any ArrayLike to Uint8Array if necessary.\nfunction toU8Arr(input) {\n return input instanceof Uint8Array ? input : new Uint8Array(input);\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nexport class InternalFieldList {\n constructor(fields, normalizer) {\n this._fields = fields;\n this._normalizer = normalizer;\n }\n findJsonName(jsonName) {\n if (!this.jsonNames) {\n const t = {};\n for (const f of this.list()) {\n t[f.jsonName] = t[f.name] = f;\n }\n this.jsonNames = t;\n }\n return this.jsonNames[jsonName];\n }\n find(fieldNo) {\n if (!this.numbers) {\n const t = {};\n for (const f of this.list()) {\n t[f.no] = f;\n }\n this.numbers = t;\n }\n return this.numbers[fieldNo];\n }\n list() {\n if (!this.all) {\n this.all = this._normalizer(this._fields);\n }\n return this.all;\n }\n byNumber() {\n if (!this.numbersAsc) {\n this.numbersAsc = this.list()\n .concat()\n .sort((a, b) => a.no - b.no);\n }\n return this.numbersAsc;\n }\n byMember() {\n if (!this.members) {\n this.members = [];\n const a = this.members;\n let o;\n for (const f of this.list()) {\n if (f.oneof) {\n if (f.oneof !== o) {\n o = f.oneof;\n a.push(o);\n }\n }\n else {\n a.push(f);\n }\n }\n }\n return this.members;\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Returns the name of a protobuf element in generated code.\n *\n * Field names - including oneofs - are converted to lowerCamelCase. For\n * messages, enumerations and services, the package name is stripped from\n * the type name. For nested messages and enumerations, the names are joined\n * with an underscore. For methods, the first character is made lowercase.\n */\nexport function localName(desc) {\n switch (desc.kind) {\n case \"field\":\n return localFieldName(desc.name, desc.oneof !== undefined);\n case \"oneof\":\n return localOneofName(desc.name);\n case \"enum\":\n case \"message\":\n case \"service\": {\n const pkg = desc.file.proto.package;\n const offset = pkg === undefined ? 0 : pkg.length + 1;\n const name = desc.typeName.substring(offset).replace(/\\./g, \"_\");\n // For services, we only care about safe identifiers, not safe object properties,\n // but we have shipped v1 with a bug that respected object properties, and we\n // do not want to introduce a breaking change, so we continue to escape for\n // safe object properties.\n // See https://github.com/bufbuild/protobuf-es/pull/391\n return safeObjectProperty(safeIdentifier(name));\n }\n case \"enum_value\": {\n const sharedPrefix = desc.parent.sharedPrefix;\n if (sharedPrefix === undefined) {\n return desc.name;\n }\n const name = desc.name.substring(sharedPrefix.length);\n return safeObjectProperty(name);\n }\n case \"rpc\": {\n let name = desc.name;\n if (name.length == 0) {\n return name;\n }\n name = name[0].toLowerCase() + name.substring(1);\n return safeObjectProperty(name);\n }\n }\n}\n/**\n * Returns the name of a field in generated code.\n */\nexport function localFieldName(protoName, inOneof) {\n const name = protoCamelCase(protoName);\n if (inOneof) {\n // oneof member names are not properties, but values of the `case` property.\n return name;\n }\n return safeObjectProperty(safeMessageProperty(name));\n}\n/**\n * Returns the name of a oneof group in generated code.\n */\nexport function localOneofName(protoName) {\n return localFieldName(protoName, false);\n}\n/**\n * Returns the JSON name for a protobuf field, exactly like protoc does.\n */\nexport const fieldJsonName = protoCamelCase;\n/**\n * Finds a prefix shared by enum values, for example `MY_ENUM_` for\n * `enum MyEnum {MY_ENUM_A=0; MY_ENUM_B=1;}`.\n */\nexport function findEnumSharedPrefix(enumName, valueNames) {\n const prefix = camelToSnakeCase(enumName) + \"_\";\n for (const name of valueNames) {\n if (!name.toLowerCase().startsWith(prefix)) {\n return undefined;\n }\n const shortName = name.substring(prefix.length);\n if (shortName.length == 0) {\n return undefined;\n }\n if (/^\\d/.test(shortName)) {\n // identifiers must not start with numbers\n return undefined;\n }\n }\n return prefix;\n}\n/**\n * Converts lowerCamelCase or UpperCamelCase into lower_snake_case.\n * This is used to find shared prefixes in an enum.\n */\nfunction camelToSnakeCase(camel) {\n return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c)).toLowerCase();\n}\n/**\n * Converts snake_case to protoCamelCase according to the convention\n * used by protoc to convert a field name to a JSON name.\n */\nfunction protoCamelCase(snakeCase) {\n let capNext = false;\n const b = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let c = snakeCase.charAt(i);\n switch (c) {\n case \"_\":\n capNext = true;\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n b.push(c);\n capNext = false;\n break;\n default:\n if (capNext) {\n capNext = false;\n c = c.toUpperCase();\n }\n b.push(c);\n break;\n }\n }\n return b.join(\"\");\n}\n/**\n * Names that cannot be used for identifiers, such as class names,\n * but _can_ be used for object properties.\n */\nconst reservedIdentifiers = new Set([\n // ECMAScript 2015 keywords\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"false\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"new\",\n \"null\",\n \"return\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"true\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\",\n // ECMAScript 2015 future reserved keywords\n \"enum\",\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n // Class name cannot be 'Object' when targeting ES5 with module CommonJS\n \"Object\",\n // TypeScript keywords that cannot be used for types (as opposed to variables)\n \"bigint\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n // Identifiers reserved for the runtime, so we can generate legible code\n \"globalThis\",\n \"Uint8Array\",\n \"Partial\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst reservedObjectProperties = new Set([\n // names reserved by JavaScript\n \"constructor\",\n \"toString\",\n \"toJSON\",\n \"valueOf\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by the runtime.\n */\nconst reservedMessageProperties = new Set([\n // names reserved by the runtime\n \"getType\",\n \"clone\",\n \"equals\",\n \"fromBinary\",\n \"fromJson\",\n \"fromJsonString\",\n \"toBinary\",\n \"toJson\",\n \"toJsonString\",\n // names reserved by the runtime for the future\n \"toObject\",\n]);\nconst fallback = (name) => `${name}$`;\n/**\n * Will wrap names that are Object prototype properties or names reserved\n * for `Message`s.\n */\nconst safeMessageProperty = (name) => {\n if (reservedMessageProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nexport const safeObjectProperty = (name) => {\n if (reservedObjectProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that can be used for identifiers or class properties\n */\nexport const safeIdentifier = (name) => {\n if (reservedIdentifiers.has(name)) {\n return fallback(name);\n }\n return name;\n};\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { localOneofName } from \"./names.js\";\nimport { assert } from \"./assert.js\";\nexport class InternalOneofInfo {\n constructor(name) {\n this.kind = \"oneof\";\n this.repeated = false;\n this.packed = false;\n this.opt = false;\n this.default = undefined;\n this.fields = [];\n this.name = name;\n this.localName = localOneofName(name);\n }\n addField(field) {\n assert(field.oneof === this, `field ${field.name} not one of ${this.name}`);\n this.fields.push(field);\n }\n findField(localName) {\n if (!this._lookup) {\n this._lookup = Object.create(null);\n for (let i = 0; i < this.fields.length; i++) {\n this._lookup[this.fields[i].localName] = this.fields[i];\n }\n }\n return this._lookup[localName];\n }\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { makeBinaryFormatProto3 } from \"./private/binary-format-proto3.js\";\nimport { makeJsonFormatProto3 } from \"./private/json-format-proto3.js\";\nimport { makeUtilCommon } from \"./private/util-common.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { scalarDefaultValue } from \"./private/scalars.js\";\nimport { LongType, ScalarType } from \"./field.js\";\nimport { InternalOneofInfo } from \"./private/field.js\";\nimport { localFieldName, fieldJsonName } from \"./private/names.js\";\n/**\n * Provides functionality for messages defined with the proto3 syntax.\n */\nexport const proto3 = makeProtoRuntime(\"proto3\", makeJsonFormatProto3(), makeBinaryFormatProto3(), Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList(fields) {\n return new InternalFieldList(fields, normalizeFieldInfosProto3);\n },\n initFields(target) {\n for (const member of target.getType().fields.byMember()) {\n if (member.opt) {\n continue;\n }\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"enum\":\n t[name] = 0;\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n t[name] = scalarDefaultValue(member.T, member.L); // eslint-disable-line @typescript-eslint/no-unsafe-assignment\n break;\n case \"message\":\n // message fields are always optional in proto3\n break;\n }\n }\n } }));\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nfunction normalizeFieldInfosProto3(fieldInfos) {\n var _a, _b, _c, _d;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n // proto3 specific:\n if (field.kind == \"message\") {\n f.delimited = false;\n }\n // From the proto3 language guide:\n // > In proto3, repeated fields of scalar numeric types are packed by default.\n // This information is incomplete - according to the conformance tests, BOOL\n // and ENUM are packed by default as well. This means only STRING and BYTES\n // are not packed by default, which makes sense because they are length-delimited.\n f.packed =\n (_d = field.packed) !== null && _d !== void 0 ? _d : (field.kind == \"enum\" ||\n (field.kind == \"scalar\" &&\n field.T != ScalarType.BYTES &&\n field.T != ScalarType.STRING));\n r.push(f);\n }\n return r;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ScalarType } from \"../field.js\";\nimport { makeBinaryFormatCommon, writeMapEntry, writeMessageField, writePacked, writeScalar, } from \"./binary-format-common.js\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions, no-case-declarations, prefer-const */\nexport function makeBinaryFormatProto2() {\n return Object.assign(Object.assign({}, makeBinaryFormatCommon()), { writeMessage(message, writer, options) {\n const type = message.getType();\n let field;\n try {\n for (field of type.fields.byNumber()) {\n let value, // this will be our field value, whether it is member of a oneof or not\n repeated = field.repeated, localName = field.localName;\n if (field.oneof) {\n const oneof = message[field.oneof.localName];\n if (oneof.case !== localName) {\n continue; // field is not selected, skip\n }\n value = oneof.value;\n }\n else {\n value = message[localName];\n // In contrast to proto3, we raise an error if a non-optional (proto2 required)\n // field is missing a value.\n if (value === undefined && !field.oneof && !field.opt) {\n throw new Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);\n }\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n }\n else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item, true);\n }\n }\n }\n else {\n if (value !== undefined) {\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n writeScalar(writer, scalarType, field.no, value, true);\n }\n }\n break;\n case \"message\":\n if (repeated) {\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n }\n else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n }\n }\n catch (e) {\n let m = field\n ? `cannot encode field ${type.typeName}.${field === null || field === void 0 ? void 0 : field.name} to binary`\n : `cannot encode message ${type.typeName} to binary`;\n let r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n } });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { wrapField } from \"./field-wrapper.js\";\nimport { assert } from \"./assert.js\";\nimport { makeJsonFormatCommon } from \"./json-format-common.js\";\n/* eslint-disable no-case-declarations, @typescript-eslint/restrict-plus-operands,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nexport function makeJsonFormatProto2() {\n return makeJsonFormatCommon((writeEnum, writeScalar) => {\n return function writeField(field, value, options) {\n if (field.kind == \"map\") {\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = writeScalar(field.V.T, entryValue, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == \"number\");\n const val = writeEnum(enumType, entryValue, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n return options.emitDefaultValues || Object.keys(jsonObj).length > 0\n ? jsonObj\n : undefined;\n }\n else if (field.repeated) {\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar(field.T, value[i], true));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], true, options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(value[i].toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0\n ? jsonArr\n : undefined;\n }\n else {\n // In contrast to proto3, we raise an error if a non-optional (proto2 required)\n // field is missing a value.\n if (value === undefined) {\n if (!field.oneof && !field.opt) {\n throw `required field not set`;\n }\n return undefined;\n }\n switch (field.kind) {\n case \"scalar\":\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n return writeScalar(field.T, value, true);\n case \"enum\":\n // In contrast to proto3, we do not skip intrinsic default values.\n // Explicit default values are not special cased either.\n return writeEnum(field.T, value, true, options.enumAsInteger);\n case \"message\":\n return wrapField(field.T, value).toJson(options);\n }\n }\n };\n });\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { makeProtoRuntime } from \"./private/proto-runtime.js\";\nimport { makeBinaryFormatProto2 } from \"./private/binary-format-proto2.js\";\nimport { makeUtilCommon } from \"./private/util-common.js\";\nimport { InternalFieldList } from \"./private/field-list.js\";\nimport { InternalOneofInfo } from \"./private/field.js\";\nimport { localFieldName, fieldJsonName } from \"./private/names.js\";\nimport { makeJsonFormatProto2 } from \"./private/json-format-proto2.js\";\nimport { LongType } from \"./field.js\";\n/**\n * Provides functionality for messages defined with the proto2 syntax.\n */\nexport const proto2 = makeProtoRuntime(\"proto2\", makeJsonFormatProto2(), makeBinaryFormatProto2(), Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList(fields) {\n return new InternalFieldList(fields, normalizeFieldInfosProto2);\n },\n initFields(target) {\n for (const member of target.getType().fields.byMember()) {\n const name = member.localName, t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = { case: undefined };\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n case \"enum\":\n case \"message\":\n // In contrast to proto3, enum and scalar fields have no intrinsic default value,\n // only an optional explicit default value.\n // Unlike proto3 intrinsic default values, proto2 explicit default values are not\n // set on construction, because they are not omitted on the wire. If we did set\n // default values on construction, a deserialize-serialize round-trip would add\n // fields to a message.\n break;\n }\n }\n } }));\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument */\nfunction normalizeFieldInfosProto2(fieldInfos) {\n var _a, _b, _c, _d, _e;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\"\n ? fieldInfos()\n : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n // proto2 specific:\n if (field.kind == \"message\") {\n f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false;\n }\n // In contrast to proto3, repeated fields are unpacked except when explicitly specified.\n f.packed = (_e = field.packed) !== null && _e !== void 0 ? _e : false;\n r.push(f);\n }\n return r;\n}\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * MethodKind represents the four method types that can be declared in\n * protobuf with the `stream` keyword:\n *\n * 1. Unary: rpc (Input) returns (Output)\n * 2. ServerStreaming: rpc (Input) returns (stream Output)\n * 3. ClientStreaming: rpc (stream Input) returns (Output)\n * 4. BiDiStreaming: rpc (stream Input) returns (stream Output)\n */\nexport var MethodKind;\n(function (MethodKind) {\n MethodKind[MethodKind[\"Unary\"] = 0] = \"Unary\";\n MethodKind[MethodKind[\"ServerStreaming\"] = 1] = \"ServerStreaming\";\n MethodKind[MethodKind[\"ClientStreaming\"] = 2] = \"ClientStreaming\";\n MethodKind[MethodKind[\"BiDiStreaming\"] = 3] = \"BiDiStreaming\";\n})(MethodKind || (MethodKind = {}));\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or just\n * idempotent, or neither? HTTP based RPC implementation may choose GET verb\n * for safe methods, and PUT verb for idempotent methods instead of the\n * default POST.\n *\n * This enum matches the protobuf enum google.protobuf.MethodOptions.IdempotencyLevel,\n * defined in the well-known type google/protobuf/descriptor.proto, but\n * drops UNKNOWN.\n */\nexport var MethodIdempotency;\n(function (MethodIdempotency) {\n /**\n * Idempotent, no side effects.\n */\n MethodIdempotency[MethodIdempotency[\"NoSideEffects\"] = 1] = \"NoSideEffects\";\n /**\n * Idempotent, but may have side effects.\n */\n MethodIdempotency[MethodIdempotency[\"Idempotent\"] = 2] = \"Idempotent\";\n})(MethodIdempotency || (MethodIdempotency = {}));\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// Author: kenton@google.com (Kenton Varda)\n// Based on original Protocol Buffers design by\n// Sanjay Ghemawat, Jeff Dean, and others.\n//\n// The messages in this file describe the definitions found in .proto files.\n// A valid .proto file can be translated directly to a FileDescriptorProto\n// without any other information (e.g. without reading its imports).\n// @generated by protoc-gen-es v1.6.0 with parameter \"bootstrap_wkt=true,ts_nocheck=false,target=ts\"\n// @generated from file google/protobuf/descriptor.proto (package google.protobuf, syntax proto2)\n/* eslint-disable */\nimport { proto2 } from \"../../proto2.js\";\nimport { Message } from \"../../message.js\";\n/**\n * The full set of known editions.\n *\n * @generated from enum google.protobuf.Edition\n */\nexport var Edition;\n(function (Edition) {\n /**\n * A placeholder for an unknown edition value.\n *\n * @generated from enum value: EDITION_UNKNOWN = 0;\n */\n Edition[Edition[\"EDITION_UNKNOWN\"] = 0] = \"EDITION_UNKNOWN\";\n /**\n * Legacy syntax \"editions\". These pre-date editions, but behave much like\n * distinct editions. These can't be used to specify the edition of proto\n * files, but feature definitions must supply proto2/proto3 defaults for\n * backwards compatibility.\n *\n * @generated from enum value: EDITION_PROTO2 = 998;\n */\n Edition[Edition[\"EDITION_PROTO2\"] = 998] = \"EDITION_PROTO2\";\n /**\n * @generated from enum value: EDITION_PROTO3 = 999;\n */\n Edition[Edition[\"EDITION_PROTO3\"] = 999] = \"EDITION_PROTO3\";\n /**\n * Editions that have been released. The specific values are arbitrary and\n * should not be depended on, but they will always be time-ordered for easy\n * comparison.\n *\n * @generated from enum value: EDITION_2023 = 1000;\n */\n Edition[Edition[\"EDITION_2023\"] = 1000] = \"EDITION_2023\";\n /**\n * Placeholder editions for testing feature resolution. These should not be\n * used or relyed on outside of tests.\n *\n * @generated from enum value: EDITION_1_TEST_ONLY = 1;\n */\n Edition[Edition[\"EDITION_1_TEST_ONLY\"] = 1] = \"EDITION_1_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_2_TEST_ONLY = 2;\n */\n Edition[Edition[\"EDITION_2_TEST_ONLY\"] = 2] = \"EDITION_2_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99997_TEST_ONLY = 99997;\n */\n Edition[Edition[\"EDITION_99997_TEST_ONLY\"] = 99997] = \"EDITION_99997_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99998_TEST_ONLY = 99998;\n */\n Edition[Edition[\"EDITION_99998_TEST_ONLY\"] = 99998] = \"EDITION_99998_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99999_TEST_ONLY = 99999;\n */\n Edition[Edition[\"EDITION_99999_TEST_ONLY\"] = 99999] = \"EDITION_99999_TEST_ONLY\";\n})(Edition || (Edition = {}));\n// Retrieve enum metadata with: proto2.getEnumType(Edition)\nproto2.util.setEnumType(Edition, \"google.protobuf.Edition\", [\n { no: 0, name: \"EDITION_UNKNOWN\" },\n { no: 998, name: \"EDITION_PROTO2\" },\n { no: 999, name: \"EDITION_PROTO3\" },\n { no: 1000, name: \"EDITION_2023\" },\n { no: 1, name: \"EDITION_1_TEST_ONLY\" },\n { no: 2, name: \"EDITION_2_TEST_ONLY\" },\n { no: 99997, name: \"EDITION_99997_TEST_ONLY\" },\n { no: 99998, name: \"EDITION_99998_TEST_ONLY\" },\n { no: 99999, name: \"EDITION_99999_TEST_ONLY\" },\n]);\n/**\n * The protocol compiler can output a FileDescriptorSet containing the .proto\n * files it parses.\n *\n * @generated from message google.protobuf.FileDescriptorSet\n */\nexport class FileDescriptorSet extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FileDescriptorProto file = 1;\n */\n this.file = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileDescriptorSet().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileDescriptorSet().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileDescriptorSet().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileDescriptorSet, a, b);\n }\n}\nFileDescriptorSet.runtime = proto2;\nFileDescriptorSet.typeName = \"google.protobuf.FileDescriptorSet\";\nFileDescriptorSet.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"message\", T: FileDescriptorProto, repeated: true },\n]);\n/**\n * Describes a complete .proto file.\n *\n * @generated from message google.protobuf.FileDescriptorProto\n */\nexport class FileDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * Names of files imported by this file.\n *\n * @generated from field: repeated string dependency = 3;\n */\n this.dependency = [];\n /**\n * Indexes of the public imported files in the dependency list above.\n *\n * @generated from field: repeated int32 public_dependency = 10;\n */\n this.publicDependency = [];\n /**\n * Indexes of the weak imported files in the dependency list.\n * For Google-internal migration only. Do not use.\n *\n * @generated from field: repeated int32 weak_dependency = 11;\n */\n this.weakDependency = [];\n /**\n * All top-level definitions in this file.\n *\n * @generated from field: repeated google.protobuf.DescriptorProto message_type = 4;\n */\n this.messageType = [];\n /**\n * @generated from field: repeated google.protobuf.EnumDescriptorProto enum_type = 5;\n */\n this.enumType = [];\n /**\n * @generated from field: repeated google.protobuf.ServiceDescriptorProto service = 6;\n */\n this.service = [];\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto extension = 7;\n */\n this.extension = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileDescriptorProto, a, b);\n }\n}\nFileDescriptorProto.runtime = proto2;\nFileDescriptorProto.typeName = \"google.protobuf.FileDescriptorProto\";\nFileDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"dependency\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 10, name: \"public_dependency\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n { no: 11, name: \"weak_dependency\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n { no: 4, name: \"message_type\", kind: \"message\", T: DescriptorProto, repeated: true },\n { no: 5, name: \"enum_type\", kind: \"message\", T: EnumDescriptorProto, repeated: true },\n { no: 6, name: \"service\", kind: \"message\", T: ServiceDescriptorProto, repeated: true },\n { no: 7, name: \"extension\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 8, name: \"options\", kind: \"message\", T: FileOptions, opt: true },\n { no: 9, name: \"source_code_info\", kind: \"message\", T: SourceCodeInfo, opt: true },\n { no: 12, name: \"syntax\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 14, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n]);\n/**\n * Describes a message type.\n *\n * @generated from message google.protobuf.DescriptorProto\n */\nexport class DescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto field = 2;\n */\n this.field = [];\n /**\n * @generated from field: repeated google.protobuf.FieldDescriptorProto extension = 6;\n */\n this.extension = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto nested_type = 3;\n */\n this.nestedType = [];\n /**\n * @generated from field: repeated google.protobuf.EnumDescriptorProto enum_type = 4;\n */\n this.enumType = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;\n */\n this.extensionRange = [];\n /**\n * @generated from field: repeated google.protobuf.OneofDescriptorProto oneof_decl = 8;\n */\n this.oneofDecl = [];\n /**\n * @generated from field: repeated google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;\n */\n this.reservedRange = [];\n /**\n * Reserved field names, which may not be used by fields in the same message.\n * A given name may only be reserved once.\n *\n * @generated from field: repeated string reserved_name = 10;\n */\n this.reservedName = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto, a, b);\n }\n}\nDescriptorProto.runtime = proto2;\nDescriptorProto.typeName = \"google.protobuf.DescriptorProto\";\nDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"field\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 6, name: \"extension\", kind: \"message\", T: FieldDescriptorProto, repeated: true },\n { no: 3, name: \"nested_type\", kind: \"message\", T: DescriptorProto, repeated: true },\n { no: 4, name: \"enum_type\", kind: \"message\", T: EnumDescriptorProto, repeated: true },\n { no: 5, name: \"extension_range\", kind: \"message\", T: DescriptorProto_ExtensionRange, repeated: true },\n { no: 8, name: \"oneof_decl\", kind: \"message\", T: OneofDescriptorProto, repeated: true },\n { no: 7, name: \"options\", kind: \"message\", T: MessageOptions, opt: true },\n { no: 9, name: \"reserved_range\", kind: \"message\", T: DescriptorProto_ReservedRange, repeated: true },\n { no: 10, name: \"reserved_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.DescriptorProto.ExtensionRange\n */\nexport class DescriptorProto_ExtensionRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto_ExtensionRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto_ExtensionRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto_ExtensionRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto_ExtensionRange, a, b);\n }\n}\nDescriptorProto_ExtensionRange.runtime = proto2;\nDescriptorProto_ExtensionRange.typeName = \"google.protobuf.DescriptorProto.ExtensionRange\";\nDescriptorProto_ExtensionRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"options\", kind: \"message\", T: ExtensionRangeOptions, opt: true },\n]);\n/**\n * Range of reserved tag numbers. Reserved tag numbers may not be used by\n * fields or extension ranges in the same message. Reserved ranges may\n * not overlap.\n *\n * @generated from message google.protobuf.DescriptorProto.ReservedRange\n */\nexport class DescriptorProto_ReservedRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new DescriptorProto_ReservedRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new DescriptorProto_ReservedRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new DescriptorProto_ReservedRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(DescriptorProto_ReservedRange, a, b);\n }\n}\nDescriptorProto_ReservedRange.runtime = proto2;\nDescriptorProto_ReservedRange.typeName = \"google.protobuf.DescriptorProto.ReservedRange\";\nDescriptorProto_ReservedRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n]);\n/**\n * @generated from message google.protobuf.ExtensionRangeOptions\n */\nexport class ExtensionRangeOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n /**\n * For external users: DO NOT USE. We are in the process of open sourcing\n * extension declaration and executing internal cleanups before it can be\n * used externally.\n *\n * @generated from field: repeated google.protobuf.ExtensionRangeOptions.Declaration declaration = 2;\n */\n this.declaration = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ExtensionRangeOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ExtensionRangeOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ExtensionRangeOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ExtensionRangeOptions, a, b);\n }\n}\nExtensionRangeOptions.runtime = proto2;\nExtensionRangeOptions.typeName = \"google.protobuf.ExtensionRangeOptions\";\nExtensionRangeOptions.fields = proto2.util.newFieldList(() => [\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n { no: 2, name: \"declaration\", kind: \"message\", T: ExtensionRangeOptions_Declaration, repeated: true },\n { no: 50, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 3, name: \"verification\", kind: \"enum\", T: proto2.getEnumType(ExtensionRangeOptions_VerificationState), opt: true, default: ExtensionRangeOptions_VerificationState.UNVERIFIED },\n]);\n/**\n * The verification state of the extension range.\n *\n * @generated from enum google.protobuf.ExtensionRangeOptions.VerificationState\n */\nexport var ExtensionRangeOptions_VerificationState;\n(function (ExtensionRangeOptions_VerificationState) {\n /**\n * All the extensions of the range must be declared.\n *\n * @generated from enum value: DECLARATION = 0;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"DECLARATION\"] = 0] = \"DECLARATION\";\n /**\n * @generated from enum value: UNVERIFIED = 1;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"UNVERIFIED\"] = 1] = \"UNVERIFIED\";\n})(ExtensionRangeOptions_VerificationState || (ExtensionRangeOptions_VerificationState = {}));\n// Retrieve enum metadata with: proto2.getEnumType(ExtensionRangeOptions_VerificationState)\nproto2.util.setEnumType(ExtensionRangeOptions_VerificationState, \"google.protobuf.ExtensionRangeOptions.VerificationState\", [\n { no: 0, name: \"DECLARATION\" },\n { no: 1, name: \"UNVERIFIED\" },\n]);\n/**\n * @generated from message google.protobuf.ExtensionRangeOptions.Declaration\n */\nexport class ExtensionRangeOptions_Declaration extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ExtensionRangeOptions_Declaration().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ExtensionRangeOptions_Declaration().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ExtensionRangeOptions_Declaration().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ExtensionRangeOptions_Declaration, a, b);\n }\n}\nExtensionRangeOptions_Declaration.runtime = proto2;\nExtensionRangeOptions_Declaration.typeName = \"google.protobuf.ExtensionRangeOptions.Declaration\";\nExtensionRangeOptions_Declaration.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"full_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"reserved\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"repeated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n]);\n/**\n * Describes a field within a message.\n *\n * @generated from message google.protobuf.FieldDescriptorProto\n */\nexport class FieldDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldDescriptorProto, a, b);\n }\n}\nFieldDescriptorProto.runtime = proto2;\nFieldDescriptorProto.typeName = \"google.protobuf.FieldDescriptorProto\";\nFieldDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"label\", kind: \"enum\", T: proto2.getEnumType(FieldDescriptorProto_Label), opt: true },\n { no: 5, name: \"type\", kind: \"enum\", T: proto2.getEnumType(FieldDescriptorProto_Type), opt: true },\n { no: 6, name: \"type_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"extendee\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"default_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 9, name: \"oneof_index\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"json_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"options\", kind: \"message\", T: FieldOptions, opt: true },\n { no: 17, name: \"proto3_optional\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n]);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Type\n */\nexport var FieldDescriptorProto_Type;\n(function (FieldDescriptorProto_Type) {\n /**\n * 0 is reserved for errors.\n * Order is weird for historical reasons.\n *\n * @generated from enum value: TYPE_DOUBLE = 1;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"DOUBLE\"] = 1] = \"DOUBLE\";\n /**\n * @generated from enum value: TYPE_FLOAT = 2;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FLOAT\"] = 2] = \"FLOAT\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT64 = 3;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT64\"] = 3] = \"INT64\";\n /**\n * @generated from enum value: TYPE_UINT64 = 4;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT64\"] = 4] = \"UINT64\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT32 = 5;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT32\"] = 5] = \"INT32\";\n /**\n * @generated from enum value: TYPE_FIXED64 = 6;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED64\"] = 6] = \"FIXED64\";\n /**\n * @generated from enum value: TYPE_FIXED32 = 7;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED32\"] = 7] = \"FIXED32\";\n /**\n * @generated from enum value: TYPE_BOOL = 8;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BOOL\"] = 8] = \"BOOL\";\n /**\n * @generated from enum value: TYPE_STRING = 9;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"STRING\"] = 9] = \"STRING\";\n /**\n * Tag-delimited aggregate.\n * Group type is deprecated and not supported after google.protobuf. However, Proto3\n * implementations should still be able to parse the group wire format and\n * treat group fields as unknown fields. In Editions, the group wire format\n * can be enabled via the `message_encoding` feature.\n *\n * @generated from enum value: TYPE_GROUP = 10;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"GROUP\"] = 10] = \"GROUP\";\n /**\n * Length-delimited aggregate.\n *\n * @generated from enum value: TYPE_MESSAGE = 11;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"MESSAGE\"] = 11] = \"MESSAGE\";\n /**\n * New in version 2.\n *\n * @generated from enum value: TYPE_BYTES = 12;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BYTES\"] = 12] = \"BYTES\";\n /**\n * @generated from enum value: TYPE_UINT32 = 13;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT32\"] = 13] = \"UINT32\";\n /**\n * @generated from enum value: TYPE_ENUM = 14;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"ENUM\"] = 14] = \"ENUM\";\n /**\n * @generated from enum value: TYPE_SFIXED32 = 15;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED32\"] = 15] = \"SFIXED32\";\n /**\n * @generated from enum value: TYPE_SFIXED64 = 16;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED64\"] = 16] = \"SFIXED64\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT32 = 17;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT32\"] = 17] = \"SINT32\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT64 = 18;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT64\"] = 18] = \"SINT64\";\n})(FieldDescriptorProto_Type || (FieldDescriptorProto_Type = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldDescriptorProto_Type)\nproto2.util.setEnumType(FieldDescriptorProto_Type, \"google.protobuf.FieldDescriptorProto.Type\", [\n { no: 1, name: \"TYPE_DOUBLE\" },\n { no: 2, name: \"TYPE_FLOAT\" },\n { no: 3, name: \"TYPE_INT64\" },\n { no: 4, name: \"TYPE_UINT64\" },\n { no: 5, name: \"TYPE_INT32\" },\n { no: 6, name: \"TYPE_FIXED64\" },\n { no: 7, name: \"TYPE_FIXED32\" },\n { no: 8, name: \"TYPE_BOOL\" },\n { no: 9, name: \"TYPE_STRING\" },\n { no: 10, name: \"TYPE_GROUP\" },\n { no: 11, name: \"TYPE_MESSAGE\" },\n { no: 12, name: \"TYPE_BYTES\" },\n { no: 13, name: \"TYPE_UINT32\" },\n { no: 14, name: \"TYPE_ENUM\" },\n { no: 15, name: \"TYPE_SFIXED32\" },\n { no: 16, name: \"TYPE_SFIXED64\" },\n { no: 17, name: \"TYPE_SINT32\" },\n { no: 18, name: \"TYPE_SINT64\" },\n]);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Label\n */\nexport var FieldDescriptorProto_Label;\n(function (FieldDescriptorProto_Label) {\n /**\n * 0 is reserved for errors\n *\n * @generated from enum value: LABEL_OPTIONAL = 1;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"OPTIONAL\"] = 1] = \"OPTIONAL\";\n /**\n * @generated from enum value: LABEL_REPEATED = 3;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REPEATED\"] = 3] = \"REPEATED\";\n /**\n * The required label is only allowed in google.protobuf. In proto3 and Editions\n * it's explicitly prohibited. In Editions, the `field_presence` feature\n * can be used to get this behavior.\n *\n * @generated from enum value: LABEL_REQUIRED = 2;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REQUIRED\"] = 2] = \"REQUIRED\";\n})(FieldDescriptorProto_Label || (FieldDescriptorProto_Label = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldDescriptorProto_Label)\nproto2.util.setEnumType(FieldDescriptorProto_Label, \"google.protobuf.FieldDescriptorProto.Label\", [\n { no: 1, name: \"LABEL_OPTIONAL\" },\n { no: 3, name: \"LABEL_REPEATED\" },\n { no: 2, name: \"LABEL_REQUIRED\" },\n]);\n/**\n * Describes a oneof.\n *\n * @generated from message google.protobuf.OneofDescriptorProto\n */\nexport class OneofDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new OneofDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new OneofDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new OneofDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(OneofDescriptorProto, a, b);\n }\n}\nOneofDescriptorProto.runtime = proto2;\nOneofDescriptorProto.typeName = \"google.protobuf.OneofDescriptorProto\";\nOneofDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"options\", kind: \"message\", T: OneofOptions, opt: true },\n]);\n/**\n * Describes an enum type.\n *\n * @generated from message google.protobuf.EnumDescriptorProto\n */\nexport class EnumDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.EnumValueDescriptorProto value = 2;\n */\n this.value = [];\n /**\n * Range of reserved numeric values. Reserved numeric values may not be used\n * by enum values in the same enum declaration. Reserved ranges may not\n * overlap.\n *\n * @generated from field: repeated google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;\n */\n this.reservedRange = [];\n /**\n * Reserved enum value names, which may not be reused. A given name may only\n * be reserved once.\n *\n * @generated from field: repeated string reserved_name = 5;\n */\n this.reservedName = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumDescriptorProto, a, b);\n }\n}\nEnumDescriptorProto.runtime = proto2;\nEnumDescriptorProto.typeName = \"google.protobuf.EnumDescriptorProto\";\nEnumDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"value\", kind: \"message\", T: EnumValueDescriptorProto, repeated: true },\n { no: 3, name: \"options\", kind: \"message\", T: EnumOptions, opt: true },\n { no: 4, name: \"reserved_range\", kind: \"message\", T: EnumDescriptorProto_EnumReservedRange, repeated: true },\n { no: 5, name: \"reserved_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * Range of reserved numeric values. Reserved values may not be used by\n * entries in the same enum. Reserved ranges may not overlap.\n *\n * Note that this is distinct from DescriptorProto.ReservedRange in that it\n * is inclusive such that it can appropriately represent the entire int32\n * domain.\n *\n * @generated from message google.protobuf.EnumDescriptorProto.EnumReservedRange\n */\nexport class EnumDescriptorProto_EnumReservedRange extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumDescriptorProto_EnumReservedRange().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumDescriptorProto_EnumReservedRange, a, b);\n }\n}\nEnumDescriptorProto_EnumReservedRange.runtime = proto2;\nEnumDescriptorProto_EnumReservedRange.typeName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange\";\nEnumDescriptorProto_EnumReservedRange.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"start\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n]);\n/**\n * Describes a value within an enum.\n *\n * @generated from message google.protobuf.EnumValueDescriptorProto\n */\nexport class EnumValueDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumValueDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumValueDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumValueDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumValueDescriptorProto, a, b);\n }\n}\nEnumValueDescriptorProto.runtime = proto2;\nEnumValueDescriptorProto.typeName = \"google.protobuf.EnumValueDescriptorProto\";\nEnumValueDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"options\", kind: \"message\", T: EnumValueOptions, opt: true },\n]);\n/**\n * Describes a service.\n *\n * @generated from message google.protobuf.ServiceDescriptorProto\n */\nexport class ServiceDescriptorProto extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.MethodDescriptorProto method = 2;\n */\n this.method = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ServiceDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ServiceDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ServiceDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ServiceDescriptorProto, a, b);\n }\n}\nServiceDescriptorProto.runtime = proto2;\nServiceDescriptorProto.typeName = \"google.protobuf.ServiceDescriptorProto\";\nServiceDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"method\", kind: \"message\", T: MethodDescriptorProto, repeated: true },\n { no: 3, name: \"options\", kind: \"message\", T: ServiceOptions, opt: true },\n]);\n/**\n * Describes a method of a service.\n *\n * @generated from message google.protobuf.MethodDescriptorProto\n */\nexport class MethodDescriptorProto extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MethodDescriptorProto().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MethodDescriptorProto().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MethodDescriptorProto().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MethodDescriptorProto, a, b);\n }\n}\nMethodDescriptorProto.runtime = proto2;\nMethodDescriptorProto.typeName = \"google.protobuf.MethodDescriptorProto\";\nMethodDescriptorProto.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"input_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"output_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"options\", kind: \"message\", T: MethodOptions, opt: true },\n { no: 5, name: \"client_streaming\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 6, name: \"server_streaming\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n]);\n/**\n * @generated from message google.protobuf.FileOptions\n */\nexport class FileOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here.\n * See the documentation for the \"Options\" section above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FileOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FileOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FileOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FileOptions, a, b);\n }\n}\nFileOptions.runtime = proto2;\nFileOptions.typeName = \"google.protobuf.FileOptions\";\nFileOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"java_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"java_outer_classname\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 10, name: \"java_multiple_files\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 20, name: \"java_generate_equals_and_hash\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 27, name: \"java_string_check_utf8\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 9, name: \"optimize_for\", kind: \"enum\", T: proto2.getEnumType(FileOptions_OptimizeMode), opt: true, default: FileOptions_OptimizeMode.SPEED },\n { no: 11, name: \"go_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 16, name: \"cc_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 17, name: \"java_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 18, name: \"py_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 42, name: \"php_generic_services\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 23, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 31, name: \"cc_enable_arenas\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: true },\n { no: 36, name: \"objc_class_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 37, name: \"csharp_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 39, name: \"swift_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 40, name: \"php_class_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 41, name: \"php_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 44, name: \"php_metadata_namespace\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 45, name: \"ruby_package\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 50, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * Generated classes can be optimized for speed or code size.\n *\n * @generated from enum google.protobuf.FileOptions.OptimizeMode\n */\nexport var FileOptions_OptimizeMode;\n(function (FileOptions_OptimizeMode) {\n /**\n * Generate complete code for parsing, serialization,\n *\n * @generated from enum value: SPEED = 1;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"SPEED\"] = 1] = \"SPEED\";\n /**\n * etc.\n *\n * Use ReflectionOps to implement these methods.\n *\n * @generated from enum value: CODE_SIZE = 2;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"CODE_SIZE\"] = 2] = \"CODE_SIZE\";\n /**\n * Generate code using MessageLite and the lite runtime.\n *\n * @generated from enum value: LITE_RUNTIME = 3;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"LITE_RUNTIME\"] = 3] = \"LITE_RUNTIME\";\n})(FileOptions_OptimizeMode || (FileOptions_OptimizeMode = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FileOptions_OptimizeMode)\nproto2.util.setEnumType(FileOptions_OptimizeMode, \"google.protobuf.FileOptions.OptimizeMode\", [\n { no: 1, name: \"SPEED\" },\n { no: 2, name: \"CODE_SIZE\" },\n { no: 3, name: \"LITE_RUNTIME\" },\n]);\n/**\n * @generated from message google.protobuf.MessageOptions\n */\nexport class MessageOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MessageOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MessageOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MessageOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MessageOptions, a, b);\n }\n}\nMessageOptions.runtime = proto2;\nMessageOptions.typeName = \"google.protobuf.MessageOptions\";\nMessageOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"message_set_wire_format\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 2, name: \"no_standard_descriptor_accessor\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 7, name: \"map_entry\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 11, name: \"deprecated_legacy_json_field_conflicts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 12, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.FieldOptions\n */\nexport class FieldOptions extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FieldOptions.OptionTargetType targets = 19;\n */\n this.targets = [];\n /**\n * @generated from field: repeated google.protobuf.FieldOptions.EditionDefault edition_defaults = 20;\n */\n this.editionDefaults = [];\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldOptions, a, b);\n }\n}\nFieldOptions.runtime = proto2;\nFieldOptions.typeName = \"google.protobuf.FieldOptions\";\nFieldOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"ctype\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_CType), opt: true, default: FieldOptions_CType.STRING },\n { no: 2, name: \"packed\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"jstype\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_JSType), opt: true, default: FieldOptions_JSType.JS_NORMAL },\n { no: 5, name: \"lazy\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 15, name: \"unverified_lazy\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 10, name: \"weak\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 16, name: \"debug_redact\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 17, name: \"retention\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_OptionRetention), opt: true },\n { no: 19, name: \"targets\", kind: \"enum\", T: proto2.getEnumType(FieldOptions_OptionTargetType), repeated: true },\n { no: 20, name: \"edition_defaults\", kind: \"message\", T: FieldOptions_EditionDefault, repeated: true },\n { no: 21, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from enum google.protobuf.FieldOptions.CType\n */\nexport var FieldOptions_CType;\n(function (FieldOptions_CType) {\n /**\n * Default mode.\n *\n * @generated from enum value: STRING = 0;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING\"] = 0] = \"STRING\";\n /**\n * The option [ctype=CORD] may be applied to a non-repeated field of type\n * \"bytes\". It indicates that in C++, the data should be stored in a Cord\n * instead of a string. For very large strings, this may reduce memory\n * fragmentation. It may also allow better performance when parsing from a\n * Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n * alias the original buffer.\n *\n * @generated from enum value: CORD = 1;\n */\n FieldOptions_CType[FieldOptions_CType[\"CORD\"] = 1] = \"CORD\";\n /**\n * @generated from enum value: STRING_PIECE = 2;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING_PIECE\"] = 2] = \"STRING_PIECE\";\n})(FieldOptions_CType || (FieldOptions_CType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_CType)\nproto2.util.setEnumType(FieldOptions_CType, \"google.protobuf.FieldOptions.CType\", [\n { no: 0, name: \"STRING\" },\n { no: 1, name: \"CORD\" },\n { no: 2, name: \"STRING_PIECE\" },\n]);\n/**\n * @generated from enum google.protobuf.FieldOptions.JSType\n */\nexport var FieldOptions_JSType;\n(function (FieldOptions_JSType) {\n /**\n * Use the default type.\n *\n * @generated from enum value: JS_NORMAL = 0;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NORMAL\"] = 0] = \"JS_NORMAL\";\n /**\n * Use JavaScript strings.\n *\n * @generated from enum value: JS_STRING = 1;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_STRING\"] = 1] = \"JS_STRING\";\n /**\n * Use JavaScript numbers.\n *\n * @generated from enum value: JS_NUMBER = 2;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NUMBER\"] = 2] = \"JS_NUMBER\";\n})(FieldOptions_JSType || (FieldOptions_JSType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_JSType)\nproto2.util.setEnumType(FieldOptions_JSType, \"google.protobuf.FieldOptions.JSType\", [\n { no: 0, name: \"JS_NORMAL\" },\n { no: 1, name: \"JS_STRING\" },\n { no: 2, name: \"JS_NUMBER\" },\n]);\n/**\n * If set to RETENTION_SOURCE, the option will be omitted from the binary.\n * Note: as of January 2023, support for this is in progress and does not yet\n * have an effect (b/264593489).\n *\n * @generated from enum google.protobuf.FieldOptions.OptionRetention\n */\nexport var FieldOptions_OptionRetention;\n(function (FieldOptions_OptionRetention) {\n /**\n * @generated from enum value: RETENTION_UNKNOWN = 0;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_UNKNOWN\"] = 0] = \"RETENTION_UNKNOWN\";\n /**\n * @generated from enum value: RETENTION_RUNTIME = 1;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_RUNTIME\"] = 1] = \"RETENTION_RUNTIME\";\n /**\n * @generated from enum value: RETENTION_SOURCE = 2;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_SOURCE\"] = 2] = \"RETENTION_SOURCE\";\n})(FieldOptions_OptionRetention || (FieldOptions_OptionRetention = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_OptionRetention)\nproto2.util.setEnumType(FieldOptions_OptionRetention, \"google.protobuf.FieldOptions.OptionRetention\", [\n { no: 0, name: \"RETENTION_UNKNOWN\" },\n { no: 1, name: \"RETENTION_RUNTIME\" },\n { no: 2, name: \"RETENTION_SOURCE\" },\n]);\n/**\n * This indicates the types of entities that the field may apply to when used\n * as an option. If it is unset, then the field may be freely used as an\n * option on any kind of entity. Note: as of January 2023, support for this is\n * in progress and does not yet have an effect (b/264593489).\n *\n * @generated from enum google.protobuf.FieldOptions.OptionTargetType\n */\nexport var FieldOptions_OptionTargetType;\n(function (FieldOptions_OptionTargetType) {\n /**\n * @generated from enum value: TARGET_TYPE_UNKNOWN = 0;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_UNKNOWN\"] = 0] = \"TARGET_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: TARGET_TYPE_FILE = 1;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FILE\"] = 1] = \"TARGET_TYPE_FILE\";\n /**\n * @generated from enum value: TARGET_TYPE_EXTENSION_RANGE = 2;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_EXTENSION_RANGE\"] = 2] = \"TARGET_TYPE_EXTENSION_RANGE\";\n /**\n * @generated from enum value: TARGET_TYPE_MESSAGE = 3;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_MESSAGE\"] = 3] = \"TARGET_TYPE_MESSAGE\";\n /**\n * @generated from enum value: TARGET_TYPE_FIELD = 4;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FIELD\"] = 4] = \"TARGET_TYPE_FIELD\";\n /**\n * @generated from enum value: TARGET_TYPE_ONEOF = 5;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ONEOF\"] = 5] = \"TARGET_TYPE_ONEOF\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM = 6;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM\"] = 6] = \"TARGET_TYPE_ENUM\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM_ENTRY = 7;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM_ENTRY\"] = 7] = \"TARGET_TYPE_ENUM_ENTRY\";\n /**\n * @generated from enum value: TARGET_TYPE_SERVICE = 8;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_SERVICE\"] = 8] = \"TARGET_TYPE_SERVICE\";\n /**\n * @generated from enum value: TARGET_TYPE_METHOD = 9;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_METHOD\"] = 9] = \"TARGET_TYPE_METHOD\";\n})(FieldOptions_OptionTargetType || (FieldOptions_OptionTargetType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FieldOptions_OptionTargetType)\nproto2.util.setEnumType(FieldOptions_OptionTargetType, \"google.protobuf.FieldOptions.OptionTargetType\", [\n { no: 0, name: \"TARGET_TYPE_UNKNOWN\" },\n { no: 1, name: \"TARGET_TYPE_FILE\" },\n { no: 2, name: \"TARGET_TYPE_EXTENSION_RANGE\" },\n { no: 3, name: \"TARGET_TYPE_MESSAGE\" },\n { no: 4, name: \"TARGET_TYPE_FIELD\" },\n { no: 5, name: \"TARGET_TYPE_ONEOF\" },\n { no: 6, name: \"TARGET_TYPE_ENUM\" },\n { no: 7, name: \"TARGET_TYPE_ENUM_ENTRY\" },\n { no: 8, name: \"TARGET_TYPE_SERVICE\" },\n { no: 9, name: \"TARGET_TYPE_METHOD\" },\n]);\n/**\n * @generated from message google.protobuf.FieldOptions.EditionDefault\n */\nexport class FieldOptions_EditionDefault extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FieldOptions_EditionDefault().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FieldOptions_EditionDefault().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FieldOptions_EditionDefault().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FieldOptions_EditionDefault, a, b);\n }\n}\nFieldOptions_EditionDefault.runtime = proto2;\nFieldOptions_EditionDefault.typeName = \"google.protobuf.FieldOptions.EditionDefault\";\nFieldOptions_EditionDefault.fields = proto2.util.newFieldList(() => [\n { no: 3, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 2, name: \"value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n]);\n/**\n * @generated from message google.protobuf.OneofOptions\n */\nexport class OneofOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new OneofOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new OneofOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new OneofOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(OneofOptions, a, b);\n }\n}\nOneofOptions.runtime = proto2;\nOneofOptions.typeName = \"google.protobuf.OneofOptions\";\nOneofOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.EnumOptions\n */\nexport class EnumOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumOptions, a, b);\n }\n}\nEnumOptions.runtime = proto2;\nEnumOptions.typeName = \"google.protobuf.EnumOptions\";\nEnumOptions.fields = proto2.util.newFieldList(() => [\n { no: 2, name: \"allow_alias\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 3, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 6, name: \"deprecated_legacy_json_field_conflicts\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 7, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.EnumValueOptions\n */\nexport class EnumValueOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new EnumValueOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new EnumValueOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new EnumValueOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(EnumValueOptions, a, b);\n }\n}\nEnumValueOptions.runtime = proto2;\nEnumValueOptions.typeName = \"google.protobuf.EnumValueOptions\";\nEnumValueOptions.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 2, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 3, name: \"debug_redact\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.ServiceOptions\n */\nexport class ServiceOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new ServiceOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new ServiceOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new ServiceOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(ServiceOptions, a, b);\n }\n}\nServiceOptions.runtime = proto2;\nServiceOptions.typeName = \"google.protobuf.ServiceOptions\";\nServiceOptions.fields = proto2.util.newFieldList(() => [\n { no: 34, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 33, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.MethodOptions\n */\nexport class MethodOptions extends Message {\n constructor(data) {\n super();\n /**\n * The parser stores options it doesn't recognize here. See above.\n *\n * @generated from field: repeated google.protobuf.UninterpretedOption uninterpreted_option = 999;\n */\n this.uninterpretedOption = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new MethodOptions().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new MethodOptions().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new MethodOptions().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(MethodOptions, a, b);\n }\n}\nMethodOptions.runtime = proto2;\nMethodOptions.typeName = \"google.protobuf.MethodOptions\";\nMethodOptions.fields = proto2.util.newFieldList(() => [\n { no: 33, name: \"deprecated\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true, default: false },\n { no: 34, name: \"idempotency_level\", kind: \"enum\", T: proto2.getEnumType(MethodOptions_IdempotencyLevel), opt: true, default: MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN },\n { no: 35, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n { no: 999, name: \"uninterpreted_option\", kind: \"message\", T: UninterpretedOption, repeated: true },\n]);\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n * or neither? HTTP based RPC implementation may choose GET verb for safe\n * methods, and PUT verb for idempotent methods instead of the default POST.\n *\n * @generated from enum google.protobuf.MethodOptions.IdempotencyLevel\n */\nexport var MethodOptions_IdempotencyLevel;\n(function (MethodOptions_IdempotencyLevel) {\n /**\n * @generated from enum value: IDEMPOTENCY_UNKNOWN = 0;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENCY_UNKNOWN\"] = 0] = \"IDEMPOTENCY_UNKNOWN\";\n /**\n * implies idempotent\n *\n * @generated from enum value: NO_SIDE_EFFECTS = 1;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"NO_SIDE_EFFECTS\"] = 1] = \"NO_SIDE_EFFECTS\";\n /**\n * idempotent, but may have side effects\n *\n * @generated from enum value: IDEMPOTENT = 2;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENT\"] = 2] = \"IDEMPOTENT\";\n})(MethodOptions_IdempotencyLevel || (MethodOptions_IdempotencyLevel = {}));\n// Retrieve enum metadata with: proto2.getEnumType(MethodOptions_IdempotencyLevel)\nproto2.util.setEnumType(MethodOptions_IdempotencyLevel, \"google.protobuf.MethodOptions.IdempotencyLevel\", [\n { no: 0, name: \"IDEMPOTENCY_UNKNOWN\" },\n { no: 1, name: \"NO_SIDE_EFFECTS\" },\n { no: 2, name: \"IDEMPOTENT\" },\n]);\n/**\n * A message representing a option the parser does not recognize. This only\n * appears in options protos created by the compiler::Parser class.\n * DescriptorPool resolves these when building Descriptor objects. Therefore,\n * options protos in descriptor objects (e.g. returned by Descriptor::options(),\n * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n * in them.\n *\n * @generated from message google.protobuf.UninterpretedOption\n */\nexport class UninterpretedOption extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.UninterpretedOption.NamePart name = 2;\n */\n this.name = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new UninterpretedOption().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new UninterpretedOption().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new UninterpretedOption().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(UninterpretedOption, a, b);\n }\n}\nUninterpretedOption.runtime = proto2;\nUninterpretedOption.typeName = \"google.protobuf.UninterpretedOption\";\nUninterpretedOption.fields = proto2.util.newFieldList(() => [\n { no: 2, name: \"name\", kind: \"message\", T: UninterpretedOption_NamePart, repeated: true },\n { no: 3, name: \"identifier_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"positive_int_value\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */, opt: true },\n { no: 5, name: \"negative_int_value\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 6, name: \"double_value\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 7, name: \"string_value\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */, opt: true },\n { no: 8, name: \"aggregate_value\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n]);\n/**\n * The name of the uninterpreted option. Each string represents a segment in\n * a dot-separated name. is_extension is true iff a segment represents an\n * extension (denoted with parentheses in options specs in .proto files).\n * E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n * \"foo.(bar.baz).moo\".\n *\n * @generated from message google.protobuf.UninterpretedOption.NamePart\n */\nexport class UninterpretedOption_NamePart extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new UninterpretedOption_NamePart().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new UninterpretedOption_NamePart().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new UninterpretedOption_NamePart().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(UninterpretedOption_NamePart, a, b);\n }\n}\nUninterpretedOption_NamePart.runtime = proto2;\nUninterpretedOption_NamePart.typeName = \"google.protobuf.UninterpretedOption.NamePart\";\nUninterpretedOption_NamePart.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"name_part\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"is_extension\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n]);\n/**\n * TODO Enums in C++ gencode (and potentially other languages) are\n * not well scoped. This means that each of the feature enums below can clash\n * with each other. The short names we've chosen maximize call-site\n * readability, but leave us very open to this scenario. A future feature will\n * be designed and implemented to handle this, hopefully before we ever hit a\n * conflict here.\n *\n * @generated from message google.protobuf.FeatureSet\n */\nexport class FeatureSet extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSet().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSet().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSet().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSet, a, b);\n }\n}\nFeatureSet.runtime = proto2;\nFeatureSet.typeName = \"google.protobuf.FeatureSet\";\nFeatureSet.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"field_presence\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_FieldPresence), opt: true },\n { no: 2, name: \"enum_type\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_EnumType), opt: true },\n { no: 3, name: \"repeated_field_encoding\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding), opt: true },\n { no: 4, name: \"utf8_validation\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_Utf8Validation), opt: true },\n { no: 5, name: \"message_encoding\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_MessageEncoding), opt: true },\n { no: 6, name: \"json_format\", kind: \"enum\", T: proto2.getEnumType(FeatureSet_JsonFormat), opt: true },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.FieldPresence\n */\nexport var FeatureSet_FieldPresence;\n(function (FeatureSet_FieldPresence) {\n /**\n * @generated from enum value: FIELD_PRESENCE_UNKNOWN = 0;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"FIELD_PRESENCE_UNKNOWN\"] = 0] = \"FIELD_PRESENCE_UNKNOWN\";\n /**\n * @generated from enum value: EXPLICIT = 1;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"EXPLICIT\"] = 1] = \"EXPLICIT\";\n /**\n * @generated from enum value: IMPLICIT = 2;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"IMPLICIT\"] = 2] = \"IMPLICIT\";\n /**\n * @generated from enum value: LEGACY_REQUIRED = 3;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"LEGACY_REQUIRED\"] = 3] = \"LEGACY_REQUIRED\";\n})(FeatureSet_FieldPresence || (FeatureSet_FieldPresence = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_FieldPresence)\nproto2.util.setEnumType(FeatureSet_FieldPresence, \"google.protobuf.FeatureSet.FieldPresence\", [\n { no: 0, name: \"FIELD_PRESENCE_UNKNOWN\" },\n { no: 1, name: \"EXPLICIT\" },\n { no: 2, name: \"IMPLICIT\" },\n { no: 3, name: \"LEGACY_REQUIRED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.EnumType\n */\nexport var FeatureSet_EnumType;\n(function (FeatureSet_EnumType) {\n /**\n * @generated from enum value: ENUM_TYPE_UNKNOWN = 0;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"ENUM_TYPE_UNKNOWN\"] = 0] = \"ENUM_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: OPEN = 1;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"OPEN\"] = 1] = \"OPEN\";\n /**\n * @generated from enum value: CLOSED = 2;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"CLOSED\"] = 2] = \"CLOSED\";\n})(FeatureSet_EnumType || (FeatureSet_EnumType = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_EnumType)\nproto2.util.setEnumType(FeatureSet_EnumType, \"google.protobuf.FeatureSet.EnumType\", [\n { no: 0, name: \"ENUM_TYPE_UNKNOWN\" },\n { no: 1, name: \"OPEN\" },\n { no: 2, name: \"CLOSED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.RepeatedFieldEncoding\n */\nexport var FeatureSet_RepeatedFieldEncoding;\n(function (FeatureSet_RepeatedFieldEncoding) {\n /**\n * @generated from enum value: REPEATED_FIELD_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"REPEATED_FIELD_ENCODING_UNKNOWN\"] = 0] = \"REPEATED_FIELD_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: PACKED = 1;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"PACKED\"] = 1] = \"PACKED\";\n /**\n * @generated from enum value: EXPANDED = 2;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"EXPANDED\"] = 2] = \"EXPANDED\";\n})(FeatureSet_RepeatedFieldEncoding || (FeatureSet_RepeatedFieldEncoding = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_RepeatedFieldEncoding)\nproto2.util.setEnumType(FeatureSet_RepeatedFieldEncoding, \"google.protobuf.FeatureSet.RepeatedFieldEncoding\", [\n { no: 0, name: \"REPEATED_FIELD_ENCODING_UNKNOWN\" },\n { no: 1, name: \"PACKED\" },\n { no: 2, name: \"EXPANDED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.Utf8Validation\n */\nexport var FeatureSet_Utf8Validation;\n(function (FeatureSet_Utf8Validation) {\n /**\n * @generated from enum value: UTF8_VALIDATION_UNKNOWN = 0;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"UTF8_VALIDATION_UNKNOWN\"] = 0] = \"UTF8_VALIDATION_UNKNOWN\";\n /**\n * @generated from enum value: NONE = 1;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"NONE\"] = 1] = \"NONE\";\n /**\n * @generated from enum value: VERIFY = 2;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"VERIFY\"] = 2] = \"VERIFY\";\n})(FeatureSet_Utf8Validation || (FeatureSet_Utf8Validation = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_Utf8Validation)\nproto2.util.setEnumType(FeatureSet_Utf8Validation, \"google.protobuf.FeatureSet.Utf8Validation\", [\n { no: 0, name: \"UTF8_VALIDATION_UNKNOWN\" },\n { no: 1, name: \"NONE\" },\n { no: 2, name: \"VERIFY\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.MessageEncoding\n */\nexport var FeatureSet_MessageEncoding;\n(function (FeatureSet_MessageEncoding) {\n /**\n * @generated from enum value: MESSAGE_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"MESSAGE_ENCODING_UNKNOWN\"] = 0] = \"MESSAGE_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: LENGTH_PREFIXED = 1;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"LENGTH_PREFIXED\"] = 1] = \"LENGTH_PREFIXED\";\n /**\n * @generated from enum value: DELIMITED = 2;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"DELIMITED\"] = 2] = \"DELIMITED\";\n})(FeatureSet_MessageEncoding || (FeatureSet_MessageEncoding = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_MessageEncoding)\nproto2.util.setEnumType(FeatureSet_MessageEncoding, \"google.protobuf.FeatureSet.MessageEncoding\", [\n { no: 0, name: \"MESSAGE_ENCODING_UNKNOWN\" },\n { no: 1, name: \"LENGTH_PREFIXED\" },\n { no: 2, name: \"DELIMITED\" },\n]);\n/**\n * @generated from enum google.protobuf.FeatureSet.JsonFormat\n */\nexport var FeatureSet_JsonFormat;\n(function (FeatureSet_JsonFormat) {\n /**\n * @generated from enum value: JSON_FORMAT_UNKNOWN = 0;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"JSON_FORMAT_UNKNOWN\"] = 0] = \"JSON_FORMAT_UNKNOWN\";\n /**\n * @generated from enum value: ALLOW = 1;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"ALLOW\"] = 1] = \"ALLOW\";\n /**\n * @generated from enum value: LEGACY_BEST_EFFORT = 2;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"LEGACY_BEST_EFFORT\"] = 2] = \"LEGACY_BEST_EFFORT\";\n})(FeatureSet_JsonFormat || (FeatureSet_JsonFormat = {}));\n// Retrieve enum metadata with: proto2.getEnumType(FeatureSet_JsonFormat)\nproto2.util.setEnumType(FeatureSet_JsonFormat, \"google.protobuf.FeatureSet.JsonFormat\", [\n { no: 0, name: \"JSON_FORMAT_UNKNOWN\" },\n { no: 1, name: \"ALLOW\" },\n { no: 2, name: \"LEGACY_BEST_EFFORT\" },\n]);\n/**\n * A compiled specification for the defaults of a set of features. These\n * messages are generated from FeatureSet extensions and can be used to seed\n * feature resolution. The resolution with this object becomes a simple search\n * for the closest matching edition, followed by proto merges.\n *\n * @generated from message google.protobuf.FeatureSetDefaults\n */\nexport class FeatureSetDefaults extends Message {\n constructor(data) {\n super();\n /**\n * @generated from field: repeated google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault defaults = 1;\n */\n this.defaults = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSetDefaults().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSetDefaults().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSetDefaults().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSetDefaults, a, b);\n }\n}\nFeatureSetDefaults.runtime = proto2;\nFeatureSetDefaults.typeName = \"google.protobuf.FeatureSetDefaults\";\nFeatureSetDefaults.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"defaults\", kind: \"message\", T: FeatureSetDefaults_FeatureSetEditionDefault, repeated: true },\n { no: 4, name: \"minimum_edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 5, name: \"maximum_edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n]);\n/**\n * A map from every known edition with a unique set of defaults to its\n * defaults. Not all editions may be contained here. For a given edition,\n * the defaults at the closest matching edition ordered at or before it should\n * be used. This field must be in strict ascending order by edition.\n *\n * @generated from message google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\n */\nexport class FeatureSetDefaults_FeatureSetEditionDefault extends Message {\n constructor(data) {\n super();\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new FeatureSetDefaults_FeatureSetEditionDefault().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(FeatureSetDefaults_FeatureSetEditionDefault, a, b);\n }\n}\nFeatureSetDefaults_FeatureSetEditionDefault.runtime = proto2;\nFeatureSetDefaults_FeatureSetEditionDefault.typeName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\";\nFeatureSetDefaults_FeatureSetEditionDefault.fields = proto2.util.newFieldList(() => [\n { no: 3, name: \"edition\", kind: \"enum\", T: proto2.getEnumType(Edition), opt: true },\n { no: 2, name: \"features\", kind: \"message\", T: FeatureSet, opt: true },\n]);\n/**\n * Encapsulates information about the original source file from which a\n * FileDescriptorProto was generated.\n *\n * @generated from message google.protobuf.SourceCodeInfo\n */\nexport class SourceCodeInfo extends Message {\n constructor(data) {\n super();\n /**\n * A Location identifies a piece of source code in a .proto file which\n * corresponds to a particular definition. This information is intended\n * to be useful to IDEs, code indexers, documentation generators, and similar\n * tools.\n *\n * For example, say we have a file like:\n * message Foo {\n * optional string foo = 1;\n * }\n * Let's look at just the field definition:\n * optional string foo = 1;\n * ^ ^^ ^^ ^ ^^^\n * a bc de f ghi\n * We have the following locations:\n * span path represents\n * [a,i) [ 4, 0, 2, 0 ] The whole field definition.\n * [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).\n * [c,d) [ 4, 0, 2, 0, 5 ] The type (string).\n * [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).\n * [g,h) [ 4, 0, 2, 0, 3 ] The number (1).\n *\n * Notes:\n * - A location may refer to a repeated field itself (i.e. not to any\n * particular index within it). This is used whenever a set of elements are\n * logically enclosed in a single code segment. For example, an entire\n * extend block (possibly containing multiple extension definitions) will\n * have an outer location whose path refers to the \"extensions\" repeated\n * field without an index.\n * - Multiple locations may have the same path. This happens when a single\n * logical declaration is spread out across multiple places. The most\n * obvious example is the \"extend\" block again -- there may be multiple\n * extend blocks in the same scope, each of which will have the same path.\n * - A location's span is not always a subset of its parent's span. For\n * example, the \"extendee\" of an extension declaration appears at the\n * beginning of the \"extend\" block and is shared by all extensions within\n * the block.\n * - Just because a location's span is a subset of some other location's span\n * does not mean that it is a descendant. For example, a \"group\" defines\n * both a type and a field in a single declaration. Thus, the locations\n * corresponding to the type and field and their components will overlap.\n * - Code which tries to interpret locations should probably be designed to\n * ignore those that it doesn't understand, as more types of locations could\n * be recorded in the future.\n *\n * @generated from field: repeated google.protobuf.SourceCodeInfo.Location location = 1;\n */\n this.location = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new SourceCodeInfo().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new SourceCodeInfo().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new SourceCodeInfo().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(SourceCodeInfo, a, b);\n }\n}\nSourceCodeInfo.runtime = proto2;\nSourceCodeInfo.typeName = \"google.protobuf.SourceCodeInfo\";\nSourceCodeInfo.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"location\", kind: \"message\", T: SourceCodeInfo_Location, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.SourceCodeInfo.Location\n */\nexport class SourceCodeInfo_Location extends Message {\n constructor(data) {\n super();\n /**\n * Identifies which part of the FileDescriptorProto was defined at this\n * location.\n *\n * Each element is a field number or an index. They form a path from\n * the root FileDescriptorProto to the place where the definition occurs.\n * For example, this path:\n * [ 4, 3, 2, 7, 1 ]\n * refers to:\n * file.message_type(3) // 4, 3\n * .field(7) // 2, 7\n * .name() // 1\n * This is because FileDescriptorProto.message_type has field number 4:\n * repeated DescriptorProto message_type = 4;\n * and DescriptorProto.field has field number 2:\n * repeated FieldDescriptorProto field = 2;\n * and FieldDescriptorProto.name has field number 1:\n * optional string name = 1;\n *\n * Thus, the above path gives the location of a field name. If we removed\n * the last element:\n * [ 4, 3, 2, 7 ]\n * this path refers to the whole field declaration (from the beginning\n * of the label to the terminating semicolon).\n *\n * @generated from field: repeated int32 path = 1 [packed = true];\n */\n this.path = [];\n /**\n * Always has exactly three or four elements: start line, start column,\n * end line (optional, otherwise assumed same as start line), end column.\n * These are packed into a single field for efficiency. Note that line\n * and column numbers are zero-based -- typically you will want to add\n * 1 to each before displaying to a user.\n *\n * @generated from field: repeated int32 span = 2 [packed = true];\n */\n this.span = [];\n /**\n * @generated from field: repeated string leading_detached_comments = 6;\n */\n this.leadingDetachedComments = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new SourceCodeInfo_Location().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new SourceCodeInfo_Location().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new SourceCodeInfo_Location().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(SourceCodeInfo_Location, a, b);\n }\n}\nSourceCodeInfo_Location.runtime = proto2;\nSourceCodeInfo_Location.typeName = \"google.protobuf.SourceCodeInfo.Location\";\nSourceCodeInfo_Location.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"path\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 2, name: \"span\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 3, name: \"leading_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"trailing_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"leading_detached_comments\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n/**\n * Describes the relationship between generated code and its original source\n * file. A GeneratedCodeInfo message is associated with only one generated\n * source file, but may contain references to different source .proto files.\n *\n * @generated from message google.protobuf.GeneratedCodeInfo\n */\nexport class GeneratedCodeInfo extends Message {\n constructor(data) {\n super();\n /**\n * An Annotation connects some span of text in generated code to an element\n * of its generating .proto file.\n *\n * @generated from field: repeated google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;\n */\n this.annotation = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new GeneratedCodeInfo().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new GeneratedCodeInfo().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new GeneratedCodeInfo().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(GeneratedCodeInfo, a, b);\n }\n}\nGeneratedCodeInfo.runtime = proto2;\nGeneratedCodeInfo.typeName = \"google.protobuf.GeneratedCodeInfo\";\nGeneratedCodeInfo.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"annotation\", kind: \"message\", T: GeneratedCodeInfo_Annotation, repeated: true },\n]);\n/**\n * @generated from message google.protobuf.GeneratedCodeInfo.Annotation\n */\nexport class GeneratedCodeInfo_Annotation extends Message {\n constructor(data) {\n super();\n /**\n * Identifies the element in the original source .proto file. This field\n * is formatted the same as SourceCodeInfo.Location.path.\n *\n * @generated from field: repeated int32 path = 1 [packed = true];\n */\n this.path = [];\n proto2.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new GeneratedCodeInfo_Annotation().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new GeneratedCodeInfo_Annotation().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new GeneratedCodeInfo_Annotation().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto2.util.equals(GeneratedCodeInfo_Annotation, a, b);\n }\n}\nGeneratedCodeInfo_Annotation.runtime = proto2;\nGeneratedCodeInfo_Annotation.typeName = \"google.protobuf.GeneratedCodeInfo.Annotation\";\nGeneratedCodeInfo_Annotation.fields = proto2.util.newFieldList(() => [\n { no: 1, name: \"path\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true, packed: true },\n { no: 2, name: \"source_file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"begin\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"end\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"semantic\", kind: \"enum\", T: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic), opt: true },\n]);\n/**\n * Represents the identified object's effect on the element in the original\n * .proto file.\n *\n * @generated from enum google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n */\nexport var GeneratedCodeInfo_Annotation_Semantic;\n(function (GeneratedCodeInfo_Annotation_Semantic) {\n /**\n * There is no effect or the effect is indescribable.\n *\n * @generated from enum value: NONE = 0;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"NONE\"] = 0] = \"NONE\";\n /**\n * The element is set or otherwise mutated.\n *\n * @generated from enum value: SET = 1;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"SET\"] = 1] = \"SET\";\n /**\n * An alias to the element is returned.\n *\n * @generated from enum value: ALIAS = 2;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"ALIAS\"] = 2] = \"ALIAS\";\n})(GeneratedCodeInfo_Annotation_Semantic || (GeneratedCodeInfo_Annotation_Semantic = {}));\n// Retrieve enum metadata with: proto2.getEnumType(GeneratedCodeInfo_Annotation_Semantic)\nproto2.util.setEnumType(GeneratedCodeInfo_Annotation_Semantic, \"google.protobuf.GeneratedCodeInfo.Annotation.Semantic\", [\n { no: 0, name: \"NONE\" },\n { no: 1, name: \"SET\" },\n { no: 2, name: \"ALIAS\" },\n]);\n", "// Copyright 2021-2023 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"../../message.js\";\nimport { proto3 } from \"../../proto3.js\";\n/**\n * A generic empty message that you can re-use to avoid defining duplicated\n * empty messages in your APIs. A typical example is to use it as the request\n * or the response type of an API method. For instance:\n *\n * service Foo {\n * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n * }\n *\n *\n * @generated from message google.protobuf.Empty\n */\nexport class Empty extends Message {\n constructor(data) {\n super();\n proto3.util.initPartial(data, this);\n }\n static fromBinary(bytes, options) {\n return new Empty().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new Empty().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new Empty().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto3.util.equals(Empty, a, b);\n }\n}\nEmpty.runtime = proto3;\nEmpty.typeName = \"google.protobuf.Empty\";\nEmpty.fields = proto3.util.newFieldList(() => []);\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file user/user.proto (package user, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message user.VerifyUserRequest\n */\nexport class VerifyUserRequest extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.VerifyUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VerifyUserRequest {\n return new VerifyUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: VerifyUserRequest | PlainMessage | undefined, b: VerifyUserRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(VerifyUserRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupInfoRequest\n */\nexport class GroupInfoRequest extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupInfoRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupInfoRequest {\n return new GroupInfoRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupInfoRequest | PlainMessage | undefined, b: GroupInfoRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupInfoRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupID\n */\nexport class GroupID extends Message {\n /**\n * @generated from field: string group_id = 1;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupID\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupID {\n return new GroupID().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupID {\n return new GroupID().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupID {\n return new GroupID().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupID | PlainMessage | undefined, b: GroupID | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupID, a, b);\n }\n}\n\n/**\n * @generated from message user.ShareRequest\n */\nexport class ShareRequest extends Message {\n /**\n * @generated from field: string content_id = 1;\n */\n contentId = \"\";\n\n /**\n * @generated from field: string group_id = 2;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.ShareRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ShareRequest {\n return new ShareRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ShareRequest {\n return new ShareRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ShareRequest {\n return new ShareRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ShareRequest | PlainMessage | undefined, b: ShareRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ShareRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.GroupInvite\n */\nexport class GroupInvite extends Message {\n /**\n * @generated from field: string secret = 1;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.GroupInvite\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GroupInvite {\n return new GroupInvite().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GroupInvite {\n return new GroupInvite().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GroupInvite {\n return new GroupInvite().fromJsonString(jsonString, options);\n }\n\n static equals(a: GroupInvite | PlainMessage | undefined, b: GroupInvite | PlainMessage | undefined): boolean {\n return proto3.util.equals(GroupInvite, a, b);\n }\n}\n\n/**\n * @generated from message user.Groups\n */\nexport class Groups extends Message {\n /**\n * @generated from field: repeated user.Group groups = 1;\n */\n groups: Group[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Groups\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"groups\", kind: \"message\", T: Group, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Groups {\n return new Groups().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Groups {\n return new Groups().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Groups {\n return new Groups().fromJsonString(jsonString, options);\n }\n\n static equals(a: Groups | PlainMessage | undefined, b: Groups | PlainMessage | undefined): boolean {\n return proto3.util.equals(Groups, a, b);\n }\n}\n\n/**\n * @generated from message user.AnalyzeConversationRequest\n */\nexport class AnalyzeConversationRequest extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.AnalyzeConversationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationRequest | PlainMessage | undefined, b: AnalyzeConversationRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationRequest, a, b);\n }\n}\n\n/**\n * @generated from message user.User\n */\nexport class User extends Message {\n /**\n * @generated from field: string email = 1;\n */\n email = \"\";\n\n /**\n * @generated from field: string password = 2;\n */\n password = \"\";\n\n /**\n * @generated from field: string username = 3;\n */\n username = \"\";\n\n /**\n * @generated from field: user.Config config = 4;\n */\n config?: Config;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.User\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"password\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"username\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"config\", kind: \"message\", T: Config },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): User {\n return new User().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): User {\n return new User().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): User {\n return new User().fromJsonString(jsonString, options);\n }\n\n static equals(a: User | PlainMessage | undefined, b: User | PlainMessage | undefined): boolean {\n return proto3.util.equals(User, a, b);\n }\n}\n\n/**\n * @generated from message user.Group\n */\nexport class Group extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated string users = 3;\n */\n users: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Group\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"users\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Group {\n return new Group().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Group {\n return new Group().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Group {\n return new Group().fromJsonString(jsonString, options);\n }\n\n static equals(a: Group | PlainMessage | undefined, b: Group | PlainMessage | undefined): boolean {\n return proto3.util.equals(Group, a, b);\n }\n}\n\n/**\n * @generated from message user.Config\n */\nexport class Config extends Message {\n /**\n * @generated from field: repeated string domain_whitelist = 1;\n */\n domainWhitelist: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.Config\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"domain_whitelist\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Config {\n return new Config().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Config {\n return new Config().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Config {\n return new Config().fromJsonString(jsonString, options);\n }\n\n static equals(a: Config | PlainMessage | undefined, b: Config | PlainMessage | undefined): boolean {\n return proto3.util.equals(Config, a, b);\n }\n}\n\n/**\n * @generated from message user.LoginResponse\n */\nexport class LoginResponse extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"user.LoginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): LoginResponse {\n return new LoginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): LoginResponse {\n return new LoginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): LoginResponse {\n return new LoginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: LoginResponse | PlainMessage | undefined, b: LoginResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(LoginResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file content/content.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { DescriptorProto, EnumDescriptorProto, Message, proto3, protoInt64 } from \"@bufbuild/protobuf\";\nimport { User } from \"../user/user_pb.js\";\n\n/**\n * @generated from message content.VoiceInputRequest\n */\nexport class VoiceInputRequest extends Message {\n /**\n * @generated from field: int32 capture_device = 1;\n */\n captureDevice = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.VoiceInputRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"capture_device\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VoiceInputRequest {\n return new VoiceInputRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: VoiceInputRequest | PlainMessage | undefined, b: VoiceInputRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(VoiceInputRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.VoiceInputResponse\n */\nexport class VoiceInputResponse extends Message {\n /**\n * @generated from field: content.Segment segment = 1;\n */\n segment?: Segment;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.VoiceInputResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"segment\", kind: \"message\", T: Segment },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): VoiceInputResponse {\n return new VoiceInputResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: VoiceInputResponse | PlainMessage | undefined, b: VoiceInputResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(VoiceInputResponse, a, b);\n }\n}\n\n/**\n * @generated from message content.RelateRequest\n */\nexport class RelateRequest extends Message {\n /**\n * @generated from field: string parent = 1;\n */\n parent = \"\";\n\n /**\n * @generated from field: repeated string children = 2;\n */\n children: string[] = [];\n\n /**\n * @generated from field: bool connect = 3;\n */\n connect = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.RelateRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"parent\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"children\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"connect\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RelateRequest {\n return new RelateRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RelateRequest {\n return new RelateRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RelateRequest {\n return new RelateRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RelateRequest | PlainMessage | undefined, b: RelateRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(RelateRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.Sources\n */\nexport class Sources extends Message {\n /**\n * @generated from field: repeated content.EnumeratedSource sources = 1;\n */\n sources: EnumeratedSource[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Sources\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sources\", kind: \"message\", T: EnumeratedSource, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Sources {\n return new Sources().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Sources {\n return new Sources().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Sources {\n return new Sources().fromJsonString(jsonString, options);\n }\n\n static equals(a: Sources | PlainMessage | undefined, b: Sources | PlainMessage | undefined): boolean {\n return proto3.util.equals(Sources, a, b);\n }\n}\n\n/**\n * @generated from message content.EnumeratedSource\n */\nexport class EnumeratedSource extends Message {\n /**\n * @generated from field: content.Source source = 1;\n */\n source?: Source;\n\n /**\n * @generated from field: repeated content.DisplayContent display_content = 2;\n */\n displayContent: DisplayContent[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.EnumeratedSource\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"source\", kind: \"message\", T: Source },\n { no: 2, name: \"display_content\", kind: \"message\", T: DisplayContent, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): EnumeratedSource {\n return new EnumeratedSource().fromJsonString(jsonString, options);\n }\n\n static equals(a: EnumeratedSource | PlainMessage | undefined, b: EnumeratedSource | PlainMessage | undefined): boolean {\n return proto3.util.equals(EnumeratedSource, a, b);\n }\n}\n\n/**\n * @generated from message content.DisplayContent\n */\nexport class DisplayContent extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * @generated from field: string type = 3;\n */\n type = \"\";\n\n /**\n * @generated from field: content.Content content = 4;\n */\n content?: Content;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.DisplayContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"content\", kind: \"message\", T: Content },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DisplayContent {\n return new DisplayContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DisplayContent {\n return new DisplayContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DisplayContent {\n return new DisplayContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisplayContent | PlainMessage | undefined, b: DisplayContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(DisplayContent, a, b);\n }\n}\n\n/**\n * @generated from message content.Source\n */\nexport class Source extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from oneof content.Source.type\n */\n type: {\n /**\n * @generated from field: content.Server server = 2;\n */\n value: Server;\n case: \"server\";\n } | {\n /**\n * @generated from field: content.Folder folder = 3;\n */\n value: Folder;\n case: \"folder\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Source\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"server\", kind: \"message\", T: Server, oneof: \"type\" },\n { no: 3, name: \"folder\", kind: \"message\", T: Folder, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Source {\n return new Source().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Source {\n return new Source().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Source {\n return new Source().fromJsonString(jsonString, options);\n }\n\n static equals(a: Source | PlainMessage | undefined, b: Source | PlainMessage | undefined): boolean {\n return proto3.util.equals(Source, a, b);\n }\n}\n\n/**\n * @generated from message content.Server\n */\nexport class Server extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Server\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Server {\n return new Server().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Server {\n return new Server().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Server {\n return new Server().fromJsonString(jsonString, options);\n }\n\n static equals(a: Server | PlainMessage | undefined, b: Server | PlainMessage | undefined): boolean {\n return proto3.util.equals(Server, a, b);\n }\n}\n\n/**\n * @generated from message content.Folder\n */\nexport class Folder extends Message {\n /**\n * @generated from field: string path = 2;\n */\n path = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Folder\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 2, name: \"path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Folder {\n return new Folder().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Folder {\n return new Folder().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Folder {\n return new Folder().fromJsonString(jsonString, options);\n }\n\n static equals(a: Folder | PlainMessage | undefined, b: Folder | PlainMessage | undefined): boolean {\n return proto3.util.equals(Folder, a, b);\n }\n}\n\n/**\n * @generated from message content.SetTagsRequest\n */\nexport class SetTagsRequest extends Message {\n /**\n * @generated from field: string content_id = 1;\n */\n contentId = \"\";\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.SetTagsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SetTagsRequest {\n return new SetTagsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SetTagsRequest | PlainMessage | undefined, b: SetTagsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(SetTagsRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.TagRequest\n */\nexport class TagRequest extends Message {\n /**\n * @generated from field: string group_id = 1;\n */\n groupId = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.TagRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"group_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TagRequest {\n return new TagRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TagRequest {\n return new TagRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TagRequest {\n return new TagRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: TagRequest | PlainMessage | undefined, b: TagRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(TagRequest, a, b);\n }\n}\n\n/**\n * @generated from message content.Tags\n */\nexport class Tags extends Message {\n /**\n * @generated from field: repeated content.Tag tags = 1;\n */\n tags: Tag[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Tags\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"message\", T: Tag, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Tags {\n return new Tags().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Tags {\n return new Tags().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Tags {\n return new Tags().fromJsonString(jsonString, options);\n }\n\n static equals(a: Tags | PlainMessage | undefined, b: Tags | PlainMessage | undefined): boolean {\n return proto3.util.equals(Tags, a, b);\n }\n}\n\n/**\n * @generated from message content.Tag\n */\nexport class Tag extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated content.Tag sub_tags = 2;\n */\n subTags: Tag[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Tag\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"sub_tags\", kind: \"message\", T: Tag, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Tag {\n return new Tag().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Tag {\n return new Tag().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Tag {\n return new Tag().fromJsonString(jsonString, options);\n }\n\n static equals(a: Tag | PlainMessage | undefined, b: Tag | PlainMessage | undefined): boolean {\n return proto3.util.equals(Tag, a, b);\n }\n}\n\n/**\n * @generated from message content.ContentIDs\n */\nexport class ContentIDs extends Message {\n /**\n * @generated from field: repeated string content_ids = 1;\n */\n contentIds: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ContentIDs\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content_ids\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ContentIDs {\n return new ContentIDs().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ContentIDs {\n return new ContentIDs().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ContentIDs {\n return new ContentIDs().fromJsonString(jsonString, options);\n }\n\n static equals(a: ContentIDs | PlainMessage | undefined, b: ContentIDs | PlainMessage | undefined): boolean {\n return proto3.util.equals(ContentIDs, a, b);\n }\n}\n\n/**\n * @generated from message content.Contents\n */\nexport class Contents extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n /**\n * @generated from field: repeated string tags = 2;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: repeated content.Content related = 3;\n */\n related: Content[] = [];\n\n /**\n * @generated from field: repeated string parents = 4;\n */\n parents: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Contents\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n { no: 2, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 3, name: \"related\", kind: \"message\", T: Content, repeated: true },\n { no: 4, name: \"parents\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Contents {\n return new Contents().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Contents {\n return new Contents().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Contents {\n return new Contents().fromJsonString(jsonString, options);\n }\n\n static equals(a: Contents | PlainMessage | undefined, b: Contents | PlainMessage | undefined): boolean {\n return proto3.util.equals(Contents, a, b);\n }\n}\n\n/**\n * @generated from message content.Query\n */\nexport class Query extends Message {\n /**\n * @generated from field: string query = 1;\n */\n query = \"\";\n\n /**\n * @generated from field: uint32 page = 2;\n */\n page = 0;\n\n /**\n * @generated from field: string contentID = 3;\n */\n contentID = \"\";\n\n /**\n * @generated from field: string groupID = 4;\n */\n groupID = \"\";\n\n /**\n * @generated from field: repeated string tags = 5;\n */\n tags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Query\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"query\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"page\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 3, name: \"contentID\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"groupID\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Query {\n return new Query().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Query {\n return new Query().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Query {\n return new Query().fromJsonString(jsonString, options);\n }\n\n static equals(a: Query | PlainMessage | undefined, b: Query | PlainMessage | undefined): boolean {\n return proto3.util.equals(Query, a, b);\n }\n}\n\n/**\n * @generated from message content.Results\n */\nexport class Results extends Message {\n /**\n * @generated from field: repeated content.StoredContent storedContent = 1;\n */\n storedContent: StoredContent[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Results\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"storedContent\", kind: \"message\", T: StoredContent, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Results {\n return new Results().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Results {\n return new Results().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Results {\n return new Results().fromJsonString(jsonString, options);\n }\n\n static equals(a: Results | PlainMessage | undefined, b: Results | PlainMessage | undefined): boolean {\n return proto3.util.equals(Results, a, b);\n }\n}\n\n/**\n * @generated from message content.StoredContent\n */\nexport class StoredContent extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n /**\n * @generated from field: string id = 2;\n */\n id = \"\";\n\n /**\n * @generated from field: repeated content.Content related = 3;\n */\n related: Content[] = [];\n\n /**\n * @generated from field: string title = 4;\n */\n title = \"\";\n\n /**\n * @generated from field: string description = 5;\n */\n description = \"\";\n\n /**\n * @generated from field: string image = 6;\n */\n image = \"\";\n\n /**\n * @generated from field: string url = 7;\n */\n url = \"\";\n\n /**\n * @generated from field: user.User user = 9;\n */\n user?: User;\n\n /**\n * @generated from field: repeated content.Tag tags = 10;\n */\n tags: Tag[] = [];\n\n /**\n * @generated from field: string preview = 11;\n */\n preview = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.StoredContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n { no: 2, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"related\", kind: \"message\", T: Content, repeated: true },\n { no: 4, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"image\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"user\", kind: \"message\", T: User },\n { no: 10, name: \"tags\", kind: \"message\", T: Tag, repeated: true },\n { no: 11, name: \"preview\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): StoredContent {\n return new StoredContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): StoredContent {\n return new StoredContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): StoredContent {\n return new StoredContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: StoredContent | PlainMessage | undefined, b: StoredContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(StoredContent, a, b);\n }\n}\n\n/**\n * @generated from message content.Edge\n */\nexport class Edge extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Edge\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Edge {\n return new Edge().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Edge {\n return new Edge().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Edge {\n return new Edge().fromJsonString(jsonString, options);\n }\n\n static equals(a: Edge | PlainMessage | undefined, b: Edge | PlainMessage | undefined): boolean {\n return proto3.util.equals(Edge, a, b);\n }\n}\n\n/**\n * Content has data and metadata\n *\n * @generated from message content.Content\n */\nexport class Content extends Message {\n /**\n * @generated from field: repeated string tags = 1;\n */\n tags: string[] = [];\n\n /**\n * @generated from field: string created_at = 2;\n */\n createdAt = \"\";\n\n /**\n * @generated from field: string uri = 3;\n */\n uri = \"\";\n\n /**\n * @generated from field: string id = 4;\n */\n id = \"\";\n\n /**\n * @generated from oneof content.Content.type\n */\n type: {\n /**\n * @generated from field: content.Data data = 6;\n */\n value: Data;\n case: \"data\";\n } | {\n /**\n * @generated from field: content.Normalized normalized = 7;\n */\n value: Normalized;\n case: \"normalized\";\n } | {\n /**\n * @generated from field: content.Transformed transformed = 8;\n */\n value: Transformed;\n case: \"transformed\";\n } | {\n /**\n * @generated from field: content.Post post = 9;\n */\n value: Post;\n case: \"post\";\n } | {\n /**\n * @generated from field: content.Site site = 10;\n */\n value: Site;\n case: \"site\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Content\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"created_at\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"uri\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"data\", kind: \"message\", T: Data, oneof: \"type\" },\n { no: 7, name: \"normalized\", kind: \"message\", T: Normalized, oneof: \"type\" },\n { no: 8, name: \"transformed\", kind: \"message\", T: Transformed, oneof: \"type\" },\n { no: 9, name: \"post\", kind: \"message\", T: Post, oneof: \"type\" },\n { no: 10, name: \"site\", kind: \"message\", T: Site, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Content {\n return new Content().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Content {\n return new Content().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Content {\n return new Content().fromJsonString(jsonString, options);\n }\n\n static equals(a: Content | PlainMessage | undefined, b: Content | PlainMessage | undefined): boolean {\n return proto3.util.equals(Content, a, b);\n }\n}\n\n/**\n * @generated from message content.Post\n */\nexport class Post extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string summary = 2;\n */\n summary = \"\";\n\n /**\n * @generated from field: string content = 3;\n */\n content = \"\";\n\n /**\n * @generated from field: repeated string authors = 4;\n */\n authors: string[] = [];\n\n /**\n * @generated from field: bool draft = 6;\n */\n draft = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Post\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"content\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"authors\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"draft\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Post {\n return new Post().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Post {\n return new Post().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Post {\n return new Post().fromJsonString(jsonString, options);\n }\n\n static equals(a: Post | PlainMessage | undefined, b: Post | PlainMessage | undefined): boolean {\n return proto3.util.equals(Post, a, b);\n }\n}\n\n/**\n * @generated from message content.GitRepo\n */\nexport class GitRepo extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GitRepo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GitRepo {\n return new GitRepo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GitRepo {\n return new GitRepo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GitRepo {\n return new GitRepo().fromJsonString(jsonString, options);\n }\n\n static equals(a: GitRepo | PlainMessage | undefined, b: GitRepo | PlainMessage | undefined): boolean {\n return proto3.util.equals(GitRepo, a, b);\n }\n}\n\n/**\n * @generated from message content.Data\n */\nexport class Data extends Message {\n /**\n * @generated from oneof content.Data.type\n */\n type: {\n /**\n * @generated from field: content.Text text = 4;\n */\n value: Text;\n case: \"text\";\n } | {\n /**\n * @generated from field: content.File file = 5;\n */\n value: File;\n case: \"file\";\n } | {\n /**\n * @generated from field: content.URL url = 6;\n */\n value: URL;\n case: \"url\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Data\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 4, name: \"text\", kind: \"message\", T: Text, oneof: \"type\" },\n { no: 5, name: \"file\", kind: \"message\", T: File, oneof: \"type\" },\n { no: 6, name: \"url\", kind: \"message\", T: URL, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Data {\n return new Data().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Data {\n return new Data().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Data {\n return new Data().fromJsonString(jsonString, options);\n }\n\n static equals(a: Data | PlainMessage | undefined, b: Data | PlainMessage | undefined): boolean {\n return proto3.util.equals(Data, a, b);\n }\n}\n\n/**\n * @generated from message content.Normalized\n */\nexport class Normalized extends Message {\n /**\n * @generated from oneof content.Normalized.type\n */\n type: {\n /**\n * @generated from field: content.Article article = 3;\n */\n value: Article;\n case: \"article\";\n } | {\n /**\n * @generated from field: content.HTML html = 4;\n */\n value: HTML;\n case: \"html\";\n } | {\n /**\n * @generated from field: content.Transcript transcript = 6;\n */\n value: Transcript;\n case: \"transcript\";\n } | {\n /**\n * @generated from field: content.ReadMe readme = 7;\n */\n value: ReadMe;\n case: \"readme\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Normalized\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 3, name: \"article\", kind: \"message\", T: Article, oneof: \"type\" },\n { no: 4, name: \"html\", kind: \"message\", T: HTML, oneof: \"type\" },\n { no: 6, name: \"transcript\", kind: \"message\", T: Transcript, oneof: \"type\" },\n { no: 7, name: \"readme\", kind: \"message\", T: ReadMe, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Normalized {\n return new Normalized().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Normalized {\n return new Normalized().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Normalized {\n return new Normalized().fromJsonString(jsonString, options);\n }\n\n static equals(a: Normalized | PlainMessage | undefined, b: Normalized | PlainMessage | undefined): boolean {\n return proto3.util.equals(Normalized, a, b);\n }\n}\n\n/**\n * @generated from message content.Transformed\n */\nexport class Transformed extends Message {\n /**\n * @generated from oneof content.Transformed.type\n */\n type: {\n /**\n * @generated from field: content.Summary summary = 1;\n */\n value: Summary;\n case: \"summary\";\n } | {\n /**\n * @generated from field: content.Categories categories = 2;\n */\n value: Categories;\n case: \"categories\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Transformed\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"summary\", kind: \"message\", T: Summary, oneof: \"type\" },\n { no: 2, name: \"categories\", kind: \"message\", T: Categories, oneof: \"type\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Transformed {\n return new Transformed().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Transformed {\n return new Transformed().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Transformed {\n return new Transformed().fromJsonString(jsonString, options);\n }\n\n static equals(a: Transformed | PlainMessage | undefined, b: Transformed | PlainMessage | undefined): boolean {\n return proto3.util.equals(Transformed, a, b);\n }\n}\n\n/**\n * @generated from message content.Article\n */\nexport class Article extends Message
{\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string author = 2;\n */\n author = \"\";\n\n /**\n * @generated from field: int32 length = 3;\n */\n length = 0;\n\n /**\n * @generated from field: string excerpt = 4;\n */\n excerpt = \"\";\n\n /**\n * @generated from field: string site_name = 5;\n */\n siteName = \"\";\n\n /**\n * @generated from field: string image = 6;\n */\n image = \"\";\n\n /**\n * @generated from field: string favicon = 7;\n */\n favicon = \"\";\n\n /**\n * @generated from field: string text = 8;\n */\n text = \"\";\n\n constructor(data?: PartialMessage
) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Article\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"author\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"length\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 4, name: \"excerpt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"site_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"image\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"favicon\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Article {\n return new Article().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Article {\n return new Article().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Article {\n return new Article().fromJsonString(jsonString, options);\n }\n\n static equals(a: Article | PlainMessage
| undefined, b: Article | PlainMessage
| undefined): boolean {\n return proto3.util.equals(Article, a, b);\n }\n}\n\n/**\n * @generated from message content.HTML\n */\nexport class HTML extends Message {\n /**\n * @generated from field: string html = 1;\n */\n html = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HTML\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"html\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HTML {\n return new HTML().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HTML {\n return new HTML().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HTML {\n return new HTML().fromJsonString(jsonString, options);\n }\n\n static equals(a: HTML | PlainMessage | undefined, b: HTML | PlainMessage | undefined): boolean {\n return proto3.util.equals(HTML, a, b);\n }\n}\n\n/**\n * @generated from message content.ReadMe\n */\nexport class ReadMe extends Message {\n /**\n * @generated from field: string data = 1;\n */\n data = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ReadMe\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ReadMe {\n return new ReadMe().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ReadMe {\n return new ReadMe().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ReadMe {\n return new ReadMe().fromJsonString(jsonString, options);\n }\n\n static equals(a: ReadMe | PlainMessage | undefined, b: ReadMe | PlainMessage | undefined): boolean {\n return proto3.util.equals(ReadMe, a, b);\n }\n}\n\n/**\n * @generated from message content.Summary\n */\nexport class Summary extends Message {\n /**\n * @generated from field: string summary = 1;\n */\n summary = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Summary\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Summary {\n return new Summary().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Summary {\n return new Summary().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Summary {\n return new Summary().fromJsonString(jsonString, options);\n }\n\n static equals(a: Summary | PlainMessage | undefined, b: Summary | PlainMessage | undefined): boolean {\n return proto3.util.equals(Summary, a, b);\n }\n}\n\n/**\n * @generated from message content.Categories\n */\nexport class Categories extends Message {\n /**\n * @generated from field: repeated string categories = 1;\n */\n categories: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Categories\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"categories\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Categories {\n return new Categories().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Categories {\n return new Categories().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Categories {\n return new Categories().fromJsonString(jsonString, options);\n }\n\n static equals(a: Categories | PlainMessage | undefined, b: Categories | PlainMessage | undefined): boolean {\n return proto3.util.equals(Categories, a, b);\n }\n}\n\n/**\n * @generated from message content.File\n */\nexport class File extends Message {\n /**\n * @generated from field: string file = 1;\n */\n file = \"\";\n\n /**\n * @generated from field: bytes data = 2;\n */\n data = new Uint8Array(0);\n\n /**\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.File\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"data\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): File {\n return new File().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): File {\n return new File().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): File {\n return new File().fromJsonString(jsonString, options);\n }\n\n static equals(a: File | PlainMessage | undefined, b: File | PlainMessage | undefined): boolean {\n return proto3.util.equals(File, a, b);\n }\n}\n\n/**\n * @generated from message content.Text\n */\nexport class Text extends Message {\n /**\n * @generated from field: string data = 1;\n */\n data = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Text\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Text {\n return new Text().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Text {\n return new Text().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Text {\n return new Text().fromJsonString(jsonString, options);\n }\n\n static equals(a: Text | PlainMessage | undefined, b: Text | PlainMessage | undefined): boolean {\n return proto3.util.equals(Text, a, b);\n }\n}\n\n/**\n * @generated from message content.URL\n */\nexport class URL extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * @generated from field: bool crawl = 2;\n */\n crawl = false;\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.URL\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"crawl\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): URL {\n return new URL().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): URL {\n return new URL().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): URL {\n return new URL().fromJsonString(jsonString, options);\n }\n\n static equals(a: URL | PlainMessage | undefined, b: URL | PlainMessage | undefined): boolean {\n return proto3.util.equals(URL, a, b);\n }\n}\n\n/**\n * @generated from message content.Token\n */\nexport class Token extends Message {\n /**\n * @generated from field: uint32 id = 1;\n */\n id = 0;\n\n /**\n * @generated from field: uint64 start_time = 2;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 3;\n */\n endTime = protoInt64.zero;\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * @generated from field: string p = 5;\n */\n p = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Token\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 3, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"p\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Token {\n return new Token().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Token {\n return new Token().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Token {\n return new Token().fromJsonString(jsonString, options);\n }\n\n static equals(a: Token | PlainMessage | undefined, b: Token | PlainMessage | undefined): boolean {\n return proto3.util.equals(Token, a, b);\n }\n}\n\n/**\n * @generated from message content.Segment\n */\nexport class Segment extends Message {\n /**\n * @generated from field: uint32 num = 1;\n */\n num = 0;\n\n /**\n * @generated from field: repeated content.Token tokens = 2;\n */\n tokens: Token[] = [];\n\n /**\n * @generated from field: string text = 3;\n */\n text = \"\";\n\n /**\n * @generated from field: uint64 start_time = 4;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 5;\n */\n endTime = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Segment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"num\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"tokens\", kind: \"message\", T: Token, repeated: true },\n { no: 3, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 5, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Segment {\n return new Segment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Segment {\n return new Segment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Segment {\n return new Segment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Segment | PlainMessage | undefined, b: Segment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Segment, a, b);\n }\n}\n\n/**\n * @generated from message content.Transcript\n */\nexport class Transcript extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated content.Segment segments = 3;\n */\n segments: Segment[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Transcript\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"segments\", kind: \"message\", T: Segment, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Transcript {\n return new Transcript().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Transcript {\n return new Transcript().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Transcript {\n return new Transcript().fromJsonString(jsonString, options);\n }\n\n static equals(a: Transcript | PlainMessage | undefined, b: Transcript | PlainMessage | undefined): boolean {\n return proto3.util.equals(Transcript, a, b);\n }\n}\n\n/**\n * @generated from message content.GRPCTypeInfo\n */\nexport class GRPCTypeInfo extends Message {\n /**\n * @generated from field: google.protobuf.DescriptorProto msg = 1;\n */\n msg?: DescriptorProto;\n\n /**\n * @generated from field: map desc_lookup = 3;\n */\n descLookup: { [key: string]: DescriptorProto } = {};\n\n /**\n * @generated from field: map enum_lookup = 4;\n */\n enumLookup: { [key: string]: EnumDescriptorProto } = {};\n\n /**\n * @generated from field: string package_name = 6;\n */\n packageName = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.GRPCTypeInfo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"msg\", kind: \"message\", T: DescriptorProto },\n { no: 3, name: \"desc_lookup\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: DescriptorProto} },\n { no: 4, name: \"enum_lookup\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"message\", T: EnumDescriptorProto} },\n { no: 6, name: \"package_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GRPCTypeInfo {\n return new GRPCTypeInfo().fromJsonString(jsonString, options);\n }\n\n static equals(a: GRPCTypeInfo | PlainMessage | undefined, b: GRPCTypeInfo | PlainMessage | undefined): boolean {\n return proto3.util.equals(GRPCTypeInfo, a, b);\n }\n}\n\n/**\n * @generated from message content.Site\n */\nexport class Site extends Message {\n /**\n * @generated from field: content.HugoConfig hugo_config = 1;\n */\n hugoConfig?: HugoConfig;\n\n /**\n * @generated from field: repeated string post_tags = 2;\n */\n postTags: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.Site\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"hugo_config\", kind: \"message\", T: HugoConfig },\n { no: 2, name: \"post_tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Site {\n return new Site().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Site {\n return new Site().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Site {\n return new Site().fromJsonString(jsonString, options);\n }\n\n static equals(a: Site | PlainMessage | undefined, b: Site | PlainMessage | undefined): boolean {\n return proto3.util.equals(Site, a, b);\n }\n}\n\n/**\n * @generated from message content.HugoConfig\n */\nexport class HugoConfig extends Message {\n /**\n * @generated from field: string theme = 1;\n */\n theme = \"\";\n\n /**\n * @generated from field: string base_url = 2;\n */\n baseUrl = \"\";\n\n /**\n * @generated from field: string title = 3;\n */\n title = \"\";\n\n /**\n * @generated from field: content.ParamsConfig params = 4;\n */\n params?: ParamsConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HugoConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"theme\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"base_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"params\", kind: \"message\", T: ParamsConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HugoConfig {\n return new HugoConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HugoConfig {\n return new HugoConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HugoConfig {\n return new HugoConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HugoConfig | PlainMessage | undefined, b: HugoConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HugoConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ParamsConfig\n */\nexport class ParamsConfig extends Message {\n /**\n * @generated from field: string env = 1;\n */\n env = \"\";\n\n /**\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * @generated from field: string author = 3;\n */\n author = \"\";\n\n /**\n * @generated from field: string default_theme = 4;\n */\n defaultTheme = \"\";\n\n /**\n * @generated from field: bool show_share_buttons = 5;\n */\n showShareButtons = false;\n\n /**\n * @generated from field: bool show_reading_time = 6;\n */\n showReadingTime = false;\n\n /**\n * @generated from field: bool display_full_lang_name = 7;\n */\n displayFullLangName = false;\n\n /**\n * @generated from field: bool show_post_nav_links = 8;\n */\n showPostNavLinks = false;\n\n /**\n * @generated from field: bool show_bread_crumbs = 9;\n */\n showBreadCrumbs = false;\n\n /**\n * @generated from field: bool show_code_copy_buttons = 10;\n */\n showCodeCopyButtons = false;\n\n /**\n * @generated from field: bool show_rss_button_in_section_term_list = 11;\n */\n showRssButtonInSectionTermList = false;\n\n /**\n * @generated from field: bool show_all_pages_in_archive = 12;\n */\n showAllPagesInArchive = false;\n\n /**\n * @generated from field: bool show_page_nums = 13;\n */\n showPageNums = false;\n\n /**\n * @generated from field: bool show_toc = 14;\n */\n showToc = false;\n\n /**\n * @generated from field: repeated string images = 15;\n */\n images: string[] = [];\n\n /**\n * @generated from field: content.ProfileModeConfig profile_mode = 16;\n */\n profileMode?: ProfileModeConfig;\n\n /**\n * @generated from field: content.HomeInfoParamsConfig home_info_params = 17;\n */\n homeInfoParams?: HomeInfoParamsConfig;\n\n /**\n * @generated from field: repeated content.SocialIconConfig social_icons = 18;\n */\n socialIcons: SocialIconConfig[] = [];\n\n /**\n * @generated from field: content.EditPostConfig edit_post = 19;\n */\n editPost?: EditPostConfig;\n\n /**\n * @generated from field: content.AssetsConfig assets = 20;\n */\n assets?: AssetsConfig;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ParamsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"env\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"author\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"default_theme\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"show_share_buttons\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 6, name: \"show_reading_time\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 7, name: \"display_full_lang_name\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"show_post_nav_links\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 9, name: \"show_bread_crumbs\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 10, name: \"show_code_copy_buttons\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 11, name: \"show_rss_button_in_section_term_list\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"show_all_pages_in_archive\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"show_page_nums\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 14, name: \"show_toc\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 15, name: \"images\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 16, name: \"profile_mode\", kind: \"message\", T: ProfileModeConfig },\n { no: 17, name: \"home_info_params\", kind: \"message\", T: HomeInfoParamsConfig },\n { no: 18, name: \"social_icons\", kind: \"message\", T: SocialIconConfig, repeated: true },\n { no: 19, name: \"edit_post\", kind: \"message\", T: EditPostConfig },\n { no: 20, name: \"assets\", kind: \"message\", T: AssetsConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ParamsConfig {\n return new ParamsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ParamsConfig | PlainMessage | undefined, b: ParamsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ParamsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ProfileModeConfig\n */\nexport class ProfileModeConfig extends Message {\n /**\n * @generated from field: bool enabled = 1;\n */\n enabled = false;\n\n /**\n * @generated from field: string title = 2;\n */\n title = \"\";\n\n /**\n * @generated from field: string image_url = 3;\n */\n imageUrl = \"\";\n\n /**\n * @generated from field: string image_title = 4;\n */\n imageTitle = \"\";\n\n /**\n * @generated from field: repeated content.ButtonConfig buttons = 5;\n */\n buttons: ButtonConfig[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ProfileModeConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"enabled\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"image_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"image_title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"buttons\", kind: \"message\", T: ButtonConfig, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ProfileModeConfig {\n return new ProfileModeConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ProfileModeConfig | PlainMessage | undefined, b: ProfileModeConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ProfileModeConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.ButtonConfig\n */\nexport class ButtonConfig extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.ButtonConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ButtonConfig {\n return new ButtonConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ButtonConfig | PlainMessage | undefined, b: ButtonConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(ButtonConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.HomeInfoParamsConfig\n */\nexport class HomeInfoParamsConfig extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: string content = 2;\n */\n content = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.HomeInfoParamsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"content\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): HomeInfoParamsConfig {\n return new HomeInfoParamsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HomeInfoParamsConfig | PlainMessage | undefined, b: HomeInfoParamsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(HomeInfoParamsConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.SocialIconConfig\n */\nexport class SocialIconConfig extends Message {\n /**\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * @generated from field: string title = 2;\n */\n title = \"\";\n\n /**\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.SocialIconConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SocialIconConfig {\n return new SocialIconConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: SocialIconConfig | PlainMessage | undefined, b: SocialIconConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(SocialIconConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.EditPostConfig\n */\nexport class EditPostConfig extends Message {\n /**\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n /**\n * @generated from field: bool append_file_path = 3;\n */\n appendFilePath = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.EditPostConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"append_file_path\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): EditPostConfig {\n return new EditPostConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: EditPostConfig | PlainMessage | undefined, b: EditPostConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(EditPostConfig, a, b);\n }\n}\n\n/**\n * @generated from message content.AssetsConfig\n */\nexport class AssetsConfig extends Message {\n /**\n * @generated from field: bool disable_hljs = 1;\n */\n disableHljs = false;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"content.AssetsConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"disable_hljs\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AssetsConfig {\n return new AssetsConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: AssetsConfig | PlainMessage | undefined, b: AssetsConfig | PlainMessage | undefined): boolean {\n return proto3.util.equals(AssetsConfig, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file protoflow.proto (package protoflow, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, protoInt64 } from \"@bufbuild/protobuf\";\nimport { Content, Segment as Segment$1 } from \"./content/content_pb.js\";\n\n/**\n * @generated from message protoflow.AnalyzeConversationRequest\n */\nexport class AnalyzeConversationRequest extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.AnalyzeConversationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationRequest {\n return new AnalyzeConversationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationRequest | PlainMessage | undefined, b: AnalyzeConversationRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GenerateImagesRequest\n */\nexport class GenerateImagesRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GenerateImagesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GenerateImagesRequest {\n return new GenerateImagesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GenerateImagesRequest | PlainMessage | undefined, b: GenerateImagesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GenerateImagesRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GenerateImagesResponse\n */\nexport class GenerateImagesResponse extends Message {\n /**\n * @generated from field: repeated string images = 1;\n */\n images: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GenerateImagesResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"images\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GenerateImagesResponse {\n return new GenerateImagesResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GenerateImagesResponse | PlainMessage | undefined, b: GenerateImagesResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GenerateImagesResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.DeleteSessionRequest\n */\nexport class DeleteSessionRequest extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.DeleteSessionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): DeleteSessionRequest {\n return new DeleteSessionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DeleteSessionRequest | PlainMessage | undefined, b: DeleteSessionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(DeleteSessionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Prompt\n */\nexport class Prompt extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Prompt\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Prompt {\n return new Prompt().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Prompt {\n return new Prompt().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Prompt {\n return new Prompt().fromJsonString(jsonString, options);\n }\n\n static equals(a: Prompt | PlainMessage | undefined, b: Prompt | PlainMessage | undefined): boolean {\n return proto3.util.equals(Prompt, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetPromptsRequest\n */\nexport class GetPromptsRequest extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetPromptsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetPromptsRequest {\n return new GetPromptsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPromptsRequest | PlainMessage | undefined, b: GetPromptsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetPromptsRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetPromptsResponse\n */\nexport class GetPromptsResponse extends Message {\n /**\n * @generated from field: repeated protoflow.Prompt prompts = 1;\n */\n prompts: Prompt[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetPromptsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompts\", kind: \"message\", T: Prompt, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetPromptsResponse {\n return new GetPromptsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPromptsResponse | PlainMessage | undefined, b: GetPromptsResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetPromptsResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.InferRequest\n */\nexport class InferRequest extends Message {\n /**\n * @generated from field: string prompt = 1;\n */\n prompt = \"\";\n\n /**\n * @generated from field: repeated string text = 2;\n */\n text: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.InferRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"prompt\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferRequest {\n return new InferRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferRequest {\n return new InferRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferRequest {\n return new InferRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferRequest | PlainMessage | undefined, b: InferRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.InferResponse\n */\nexport class InferResponse extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.InferResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): InferResponse {\n return new InferResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): InferResponse {\n return new InferResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): InferResponse {\n return new InferResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: InferResponse | PlainMessage | undefined, b: InferResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(InferResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.UploadContentRequest\n */\nexport class UploadContentRequest extends Message {\n /**\n * @generated from field: content.Content content = 1;\n */\n content?: Content;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.UploadContentRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"content\", kind: \"message\", T: Content },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): UploadContentRequest {\n return new UploadContentRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadContentRequest | PlainMessage | undefined, b: UploadContentRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(UploadContentRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.UploadContentResponse\n */\nexport class UploadContentResponse extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.UploadContentResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): UploadContentResponse {\n return new UploadContentResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadContentResponse | PlainMessage | undefined, b: UploadContentResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(UploadContentResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionRequest\n */\nexport class GetSessionRequest extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionRequest {\n return new GetSessionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionRequest | PlainMessage | undefined, b: GetSessionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionResponse\n */\nexport class GetSessionResponse extends Message {\n /**\n * @generated from field: protoflow.Session session = 1;\n */\n session?: Session;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"session\", kind: \"message\", T: Session },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionResponse {\n return new GetSessionResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionResponse | PlainMessage | undefined, b: GetSessionResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionsRequest\n */\nexport class GetSessionsRequest extends Message {\n /**\n * @generated from field: uint64 page = 1;\n */\n page = protoInt64.zero;\n\n /**\n * @generated from field: uint64 limit = 2;\n */\n limit = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"page\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 2, name: \"limit\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionsRequest {\n return new GetSessionsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionsRequest | PlainMessage | undefined, b: GetSessionsRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionsRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.GetSessionsResponse\n */\nexport class GetSessionsResponse extends Message {\n /**\n * @generated from field: repeated protoflow.Session sessions = 1;\n */\n sessions: Session[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.GetSessionsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"sessions\", kind: \"message\", T: Session, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): GetSessionsResponse {\n return new GetSessionsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetSessionsResponse | PlainMessage | undefined, b: GetSessionsResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(GetSessionsResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Token\n */\nexport class Token extends Message {\n /**\n * @generated from field: uint32 id = 1;\n */\n id = 0;\n\n /**\n * @generated from field: uint64 start_time = 2;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 3;\n */\n endTime = protoInt64.zero;\n\n /**\n * @generated from field: string text = 4;\n */\n text = \"\";\n\n /**\n * @generated from field: string p = 5;\n */\n p = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Token\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 3, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 4, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"p\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Token {\n return new Token().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Token {\n return new Token().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Token {\n return new Token().fromJsonString(jsonString, options);\n }\n\n static equals(a: Token | PlainMessage | undefined, b: Token | PlainMessage | undefined): boolean {\n return proto3.util.equals(Token, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Segment\n */\nexport class Segment extends Message {\n /**\n * @generated from field: uint32 num = 1;\n */\n num = 0;\n\n /**\n * @generated from field: repeated protoflow.Token tokens = 2;\n */\n tokens: Token[] = [];\n\n /**\n * @generated from field: string text = 3;\n */\n text = \"\";\n\n /**\n * @generated from field: uint64 start_time = 4;\n */\n startTime = protoInt64.zero;\n\n /**\n * @generated from field: uint64 end_time = 5;\n */\n endTime = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Segment\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"num\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 2, name: \"tokens\", kind: \"message\", T: Token, repeated: true },\n { no: 3, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"start_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n { no: 5, name: \"end_time\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Segment {\n return new Segment().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Segment {\n return new Segment().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Segment {\n return new Segment().fromJsonString(jsonString, options);\n }\n\n static equals(a: Segment | PlainMessage | undefined, b: Segment | PlainMessage | undefined): boolean {\n return proto3.util.equals(Segment, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Session\n */\nexport class Session extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * @generated from field: repeated protoflow.Segment segments = 3;\n */\n segments: Segment[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Session\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"segments\", kind: \"message\", T: Segment, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Session {\n return new Session().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Session {\n return new Session().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Session {\n return new Session().fromJsonString(jsonString, options);\n }\n\n static equals(a: Session | PlainMessage | undefined, b: Session | PlainMessage | undefined): boolean {\n return proto3.util.equals(Session, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.TranscriptionRequest\n */\nexport class TranscriptionRequest extends Message {\n /**\n * @generated from field: string file_path = 14;\n */\n filePath = \"\";\n\n /**\n * Path to the model file\n *\n * @generated from field: string model = 1;\n */\n model = \"\";\n\n /**\n * Spoken language\n *\n * @generated from field: string language = 2;\n */\n language = \"\";\n\n /**\n * Translate from source language to English\n *\n * @generated from field: bool translate = 3;\n */\n translate = false;\n\n /**\n * Time offset in nanoseconds to match Go's time.Duration\n *\n * @generated from field: int64 offset = 4;\n */\n offset = protoInt64.zero;\n\n /**\n * Duration of audio to process in nanoseconds\n *\n * @generated from field: int64 duration = 5;\n */\n duration = protoInt64.zero;\n\n /**\n * Number of threads to use\n *\n * @generated from field: uint32 threads = 6;\n */\n threads = 0;\n\n /**\n * Enable speedup\n *\n * @generated from field: bool speedup = 7;\n */\n speedup = false;\n\n /**\n * Maximum segment length in characters\n *\n * @generated from field: uint32 max_len = 8;\n */\n maxLen = 0;\n\n /**\n * Maximum tokens per segment\n *\n * @generated from field: uint32 max_tokens = 9;\n */\n maxTokens = 0;\n\n /**\n * Maximum segment score\n *\n * @generated from field: double word_threshold = 10;\n */\n wordThreshold = 0;\n\n /**\n * Display tokens\n *\n * @generated from field: bool tokens = 11;\n */\n tokens = false;\n\n /**\n * Colorize tokens\n *\n * @generated from field: bool colorize = 12;\n */\n colorize = false;\n\n /**\n * Output format (srt, none or leave as empty string)\n *\n * @generated from field: string out = 13;\n */\n out = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.TranscriptionRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 14, name: \"file_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 1, name: \"model\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"language\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"translate\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 4, name: \"offset\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 5, name: \"duration\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 6, name: \"threads\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 7, name: \"speedup\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"max_len\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 9, name: \"max_tokens\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */ },\n { no: 10, name: \"word_threshold\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 11, name: \"tokens\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"colorize\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 13, name: \"out\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): TranscriptionRequest {\n return new TranscriptionRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: TranscriptionRequest | PlainMessage | undefined, b: TranscriptionRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(TranscriptionRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.RegisterFlags\n */\nexport class RegisterFlags extends Message {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.RegisterFlags\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): RegisterFlags {\n return new RegisterFlags().fromJsonString(jsonString, options);\n }\n\n static equals(a: RegisterFlags | PlainMessage | undefined, b: RegisterFlags | PlainMessage | undefined): boolean {\n return proto3.util.equals(RegisterFlags, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.OCRText\n */\nexport class OCRText extends Message {\n /**\n * @generated from field: string text = 1;\n */\n text = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.OCRText\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): OCRText {\n return new OCRText().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): OCRText {\n return new OCRText().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): OCRText {\n return new OCRText().fromJsonString(jsonString, options);\n }\n\n static equals(a: OCRText | PlainMessage | undefined, b: OCRText | PlainMessage | undefined): boolean {\n return proto3.util.equals(OCRText, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.Image\n */\nexport class Image extends Message {\n /**\n * @generated from field: bytes image = 1;\n */\n image = new Uint8Array(0);\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.Image\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"image\", kind: \"scalar\", T: 12 /* ScalarType.BYTES */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Image {\n return new Image().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Image {\n return new Image().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Image {\n return new Image().fromJsonString(jsonString, options);\n }\n\n static equals(a: Image | PlainMessage | undefined, b: Image | PlainMessage | undefined): boolean {\n return proto3.util.equals(Image, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ConvertFileRequest\n */\nexport class ConvertFileRequest extends Message {\n /**\n * @generated from field: string from = 1;\n */\n from = \"\";\n\n /**\n * @generated from field: string to = 2;\n */\n to = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ConvertFileRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"from\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"to\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ConvertFileRequest {\n return new ConvertFileRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ConvertFileRequest | PlainMessage | undefined, b: ConvertFileRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ConvertFileRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ChatRequest\n */\nexport class ChatRequest extends Message {\n /**\n * @generated from field: int32 capture_device = 1;\n */\n captureDevice = 0;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ChatRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"capture_device\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ChatRequest {\n return new ChatRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ChatRequest {\n return new ChatRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ChatRequest {\n return new ChatRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ChatRequest | PlainMessage | undefined, b: ChatRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ChatRequest, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.ChatResponse\n */\nexport class ChatResponse extends Message {\n /**\n * @generated from field: protoflow.Segment segment = 1;\n */\n segment?: Segment;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.ChatResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"segment\", kind: \"message\", T: Segment },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ChatResponse {\n return new ChatResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ChatResponse {\n return new ChatResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ChatResponse {\n return new ChatResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ChatResponse | PlainMessage | undefined, b: ChatResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(ChatResponse, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.YouTubeVideo\n */\nexport class YouTubeVideo extends Message {\n /**\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * @generated from field: string file = 2;\n */\n file = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.YouTubeVideo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): YouTubeVideo {\n return new YouTubeVideo().fromJsonString(jsonString, options);\n }\n\n static equals(a: YouTubeVideo | PlainMessage | undefined, b: YouTubeVideo | PlainMessage | undefined): boolean {\n return proto3.util.equals(YouTubeVideo, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.FilePath\n */\nexport class FilePath extends Message {\n /**\n * @generated from field: string file = 1;\n */\n file = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.FilePath\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): FilePath {\n return new FilePath().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): FilePath {\n return new FilePath().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): FilePath {\n return new FilePath().fromJsonString(jsonString, options);\n }\n\n static equals(a: FilePath | PlainMessage | undefined, b: FilePath | PlainMessage | undefined): boolean {\n return proto3.util.equals(FilePath, a, b);\n }\n}\n\n/**\n * @generated from message protoflow.YouTubeVideoResponse\n */\nexport class YouTubeVideoResponse extends Message {\n /**\n * @generated from field: string title = 1;\n */\n title = \"\";\n\n /**\n * @generated from field: protoflow.FilePath file_path = 2;\n */\n filePath?: FilePath;\n\n /**\n * @generated from field: repeated content.Segment transcript = 3;\n */\n transcript: Segment$1[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"protoflow.YouTubeVideoResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"file_path\", kind: \"message\", T: FilePath },\n { no: 3, name: \"transcript\", kind: \"message\", T: Segment$1, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): YouTubeVideoResponse {\n return new YouTubeVideoResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: YouTubeVideoResponse | PlainMessage | undefined, b: YouTubeVideoResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(YouTubeVideoResponse, a, b);\n }\n}\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file ai.proto (package ai, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message ai.AnalyzeConversationResponse\n */\nexport class AnalyzeConversationResponse extends Message {\n /**\n * Phone numbers of the participants\n *\n * @generated from field: repeated string phone_numbers = 1;\n */\n phoneNumbers: string[] = [];\n\n /**\n * The summary of the conversation\n *\n * @generated from field: string summary = 2;\n */\n summary = \"\";\n\n /**\n * Based on the content of the conversation, the system will generate a list of questions\n *\n * @generated from field: repeated string questions = 3;\n */\n questions: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"ai.AnalyzeConversationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"phone_numbers\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 2, name: \"summary\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"questions\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeConversationResponse {\n return new AnalyzeConversationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeConversationResponse | PlainMessage | undefined, b: AnalyzeConversationResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeConversationResponse, a, b);\n }\n}\n\n/**\n * @generated from message ai.AnalyzeContent\n */\nexport class AnalyzeContent extends Message {\n /**\n * Potential categories for the content in the form: category/subcategory/other-category. The category is all lowercase and spaces are replaced with dashes.\n *\n * @generated from field: repeated string categories = 1;\n */\n categories: string[] = [];\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"ai.AnalyzeContent\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"categories\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): AnalyzeContent {\n return new AnalyzeContent().fromJsonString(jsonString, options);\n }\n\n static equals(a: AnalyzeContent | PlainMessage | undefined, b: AnalyzeContent | PlainMessage | undefined): boolean {\n return proto3.util.equals(AnalyzeContent, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file protoflow.proto (package protoflow, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { AnalyzeConversationRequest, ChatRequest, ChatResponse, ConvertFileRequest, DeleteSessionRequest, FilePath, GenerateImagesRequest, GenerateImagesResponse, GetPromptsRequest, GetPromptsResponse, GetSessionRequest, GetSessionResponse, GetSessionsRequest, GetSessionsResponse, InferRequest, InferResponse, Prompt, UploadContentRequest, YouTubeVideo, YouTubeVideoResponse } from \"./protoflow_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\nimport { AnalyzeConversationResponse } from \"./ai_pb.js\";\n\n/**\n * @generated from service protoflow.ProtoflowService\n */\nexport const ProtoflowService = {\n typeName: \"protoflow.ProtoflowService\",\n methods: {\n /**\n * @generated from rpc protoflow.ProtoflowService.DownloadYouTubeVideo\n */\n downloadYouTubeVideo: {\n name: \"DownloadYouTubeVideo\",\n I: YouTubeVideo,\n O: YouTubeVideoResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetSessions\n */\n getSessions: {\n name: \"GetSessions\",\n I: GetSessionsRequest,\n O: GetSessionsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetSession\n */\n getSession: {\n name: \"GetSession\",\n I: GetSessionRequest,\n O: GetSessionResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.DeleteSession\n */\n deleteSession: {\n name: \"DeleteSession\",\n I: DeleteSessionRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GetPrompts\n */\n getPrompts: {\n name: \"GetPrompts\",\n I: GetPromptsRequest,\n O: GetPromptsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.NewPrompt\n */\n newPrompt: {\n name: \"NewPrompt\",\n I: Prompt,\n O: Prompt,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.UploadContent\n */\n uploadContent: {\n name: \"UploadContent\",\n I: UploadContentRequest,\n O: ChatResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.Infer\n */\n infer: {\n name: \"Infer\",\n I: InferRequest,\n O: InferResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.Chat\n */\n chat: {\n name: \"Chat\",\n I: ChatRequest,\n O: ChatResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.ConvertFile\n */\n convertFile: {\n name: \"ConvertFile\",\n I: ConvertFileRequest,\n O: FilePath,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.GenerateImages\n */\n generateImages: {\n name: \"GenerateImages\",\n I: GenerateImagesRequest,\n O: GenerateImagesResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc protoflow.ProtoflowService.AnalyzeConversation\n */\n analyzeConversation: {\n name: \"AnalyzeConversation\",\n I: AnalyzeConversationRequest,\n O: AnalyzeConversationResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file content/content.proto (package content, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Content, ContentIDs, Contents, GRPCTypeInfo, Query, RelateRequest, Results, SetTagsRequest, Sources, TagRequest, Tags, VoiceInputRequest, VoiceInputResponse } from \"./content_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service content.ContentService\n */\nexport const ContentService = {\n typeName: \"content.ContentService\",\n methods: {\n /**\n * @generated from rpc content.ContentService.Save\n */\n save: {\n name: \"Save\",\n I: Contents,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Search\n */\n search: {\n name: \"Search\",\n I: Query,\n O: Results,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Relate\n */\n relate: {\n name: \"Relate\",\n I: RelateRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Analyze\n */\n analyze: {\n name: \"Analyze\",\n I: Content,\n O: Contents,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Delete\n */\n delete: {\n name: \"Delete\",\n I: ContentIDs,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.GetTags\n */\n getTags: {\n name: \"GetTags\",\n I: TagRequest,\n O: Tags,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.SetTags\n */\n setTags: {\n name: \"SetTags\",\n I: SetTagsRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Publish\n */\n publish: {\n name: \"Publish\",\n I: ContentIDs,\n O: ContentIDs,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.GetSources\n */\n getSources: {\n name: \"GetSources\",\n I: Empty,\n O: Sources,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.Types\n */\n types: {\n name: \"Types\",\n I: Empty,\n O: GRPCTypeInfo,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc content.ContentService.VoiceInput\n */\n voiceInput: {\n name: \"VoiceInput\",\n I: VoiceInputRequest,\n O: VoiceInputResponse,\n kind: MethodKind.ServerStreaming,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file user/user.proto (package user, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { Config, Group, GroupID, GroupInfoRequest, GroupInvite, Groups, ShareRequest, User, VerifyUserRequest } from \"./user_pb.js\";\nimport { Empty, MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service user.UserService\n */\nexport const UserService = {\n typeName: \"user.UserService\",\n methods: {\n /**\n * @generated from rpc user.UserService.Register\n */\n register: {\n name: \"Register\",\n I: User,\n O: User,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Login\n */\n login: {\n name: \"Login\",\n I: User,\n O: User,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Logout\n */\n logout: {\n name: \"Logout\",\n I: Empty,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.ResetPassword\n */\n resetPassword: {\n name: \"ResetPassword\",\n I: User,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.VerifyUser\n */\n verifyUser: {\n name: \"VerifyUser\",\n I: VerifyUserRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.UpdateConfig\n */\n updateConfig: {\n name: \"UpdateConfig\",\n I: Config,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.CreateGroupInvite\n */\n createGroupInvite: {\n name: \"CreateGroupInvite\",\n I: GroupID,\n O: GroupInvite,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.JoinGroup\n */\n joinGroup: {\n name: \"JoinGroup\",\n I: GroupInvite,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.GroupInfo\n */\n groupInfo: {\n name: \"GroupInfo\",\n I: GroupInfoRequest,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.CreateGroup\n */\n createGroup: {\n name: \"CreateGroup\",\n I: Group,\n O: Group,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.GetGroups\n */\n getGroups: {\n name: \"GetGroups\",\n I: Empty,\n O: Groups,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.DeleteGroup\n */\n deleteGroup: {\n name: \"DeleteGroup\",\n I: Group,\n O: Empty,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc user.UserService.Share\n */\n share: {\n name: \"Share\",\n I: ShareRequest,\n O: Empty,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// @generated by protoc-gen-es v1.6.0 with parameter \"target=ts\"\n// @generated from file chat/chat.proto (package chat, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message as Message$1, proto3, protoInt64 } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from message chat.BanUserRequest\n */\nexport class BanUserRequest extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.BanUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): BanUserRequest {\n return new BanUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: BanUserRequest | PlainMessage | undefined, b: BanUserRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(BanUserRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.BanUserResponse\n */\nexport class BanUserResponse extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.BanUserResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): BanUserResponse {\n return new BanUserResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: BanUserResponse | PlainMessage | undefined, b: BanUserResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(BanUserResponse, a, b);\n }\n}\n\n/**\n * @generated from message chat.SendMessageRequest\n */\nexport class SendMessageRequest extends Message$1 {\n /**\n * @generated from field: string message = 2;\n */\n message = \"\";\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.SendMessageRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 2, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendMessageRequest {\n return new SendMessageRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendMessageRequest | PlainMessage | undefined, b: SendMessageRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendMessageRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.SendMessageResponse\n */\nexport class SendMessageResponse extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.SendMessageResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): SendMessageResponse {\n return new SendMessageResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendMessageResponse | PlainMessage | undefined, b: SendMessageResponse | PlainMessage | undefined): boolean {\n return proto3.util.equals(SendMessageResponse, a, b);\n }\n}\n\n/**\n * @generated from message chat.ReceiveMessagesRequest\n */\nexport class ReceiveMessagesRequest extends Message$1 {\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.ReceiveMessagesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): ReceiveMessagesRequest {\n return new ReceiveMessagesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ReceiveMessagesRequest | PlainMessage | undefined, b: ReceiveMessagesRequest | PlainMessage | undefined): boolean {\n return proto3.util.equals(ReceiveMessagesRequest, a, b);\n }\n}\n\n/**\n * @generated from message chat.Message\n */\nexport class Message extends Message$1 {\n /**\n * @generated from field: string user = 1;\n */\n user = \"\";\n\n /**\n * @generated from field: string text = 2;\n */\n text = \"\";\n\n /**\n * @generated from field: int64 timestamp = 3;\n */\n timestamp = protoInt64.zero;\n\n constructor(data?: PartialMessage) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"chat.Message\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"text\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"timestamp\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial): Message {\n return new Message().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial): Message {\n return new Message().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial): Message {\n return new Message().fromJsonString(jsonString, options);\n }\n\n static equals(a: Message | PlainMessage | undefined, b: Message | PlainMessage | undefined): boolean {\n return proto3.util.equals(Message, a, b);\n }\n}\n\n", "// @generated by protoc-gen-connect-es v1.3.0 with parameter \"target=ts\"\n// @generated from file chat/chat.proto (package chat, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { BanUserRequest, BanUserResponse, Message, ReceiveMessagesRequest, SendMessageRequest, SendMessageResponse } from \"./chat_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * @generated from service chat.ChatService\n */\nexport const ChatService = {\n typeName: \"chat.ChatService\",\n methods: {\n /**\n * @generated from rpc chat.ChatService.SendMessage\n */\n sendMessage: {\n name: \"SendMessage\",\n I: SendMessageRequest,\n O: SendMessageResponse,\n kind: MethodKind.Unary,\n },\n /**\n * @generated from rpc chat.ChatService.ReceiveMessages\n */\n receiveMessages: {\n name: \"ReceiveMessages\",\n I: ReceiveMessagesRequest,\n O: Message,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * @generated from rpc chat.ChatService.BanUser\n */\n banUser: {\n name: \"BanUser\",\n I: BanUserRequest,\n O: BanUserResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Connect represents categories of errors as codes, and each code maps to a\n * specific HTTP status code. The codes and their semantics were chosen to\n * match gRPC. Only the codes below are valid \u2014 there are no user-defined\n * codes.\n *\n * See the specification at https://connectrpc.com/docs/protocol#error-codes\n * for details.\n */\nexport var Code;\n(function (Code) {\n /**\n * Canceled, usually be the user\n */\n Code[Code[\"Canceled\"] = 1] = \"Canceled\";\n /**\n * Unknown error\n */\n Code[Code[\"Unknown\"] = 2] = \"Unknown\";\n /**\n * Argument invalid regardless of system state\n */\n Code[Code[\"InvalidArgument\"] = 3] = \"InvalidArgument\";\n /**\n * Operation expired, may or may not have completed.\n */\n Code[Code[\"DeadlineExceeded\"] = 4] = \"DeadlineExceeded\";\n /**\n * Entity not found.\n */\n Code[Code[\"NotFound\"] = 5] = \"NotFound\";\n /**\n * Entity already exists.\n */\n Code[Code[\"AlreadyExists\"] = 6] = \"AlreadyExists\";\n /**\n * Operation not authorized.\n */\n Code[Code[\"PermissionDenied\"] = 7] = \"PermissionDenied\";\n /**\n * Quota exhausted.\n */\n Code[Code[\"ResourceExhausted\"] = 8] = \"ResourceExhausted\";\n /**\n * Argument invalid in current system state.\n */\n Code[Code[\"FailedPrecondition\"] = 9] = \"FailedPrecondition\";\n /**\n * Operation aborted.\n */\n Code[Code[\"Aborted\"] = 10] = \"Aborted\";\n /**\n * Out of bounds, use instead of FailedPrecondition.\n */\n Code[Code[\"OutOfRange\"] = 11] = \"OutOfRange\";\n /**\n * Operation not implemented or disabled.\n */\n Code[Code[\"Unimplemented\"] = 12] = \"Unimplemented\";\n /**\n * Internal error, reserved for \"serious errors\".\n */\n Code[Code[\"Internal\"] = 13] = \"Internal\";\n /**\n * Unavailable, client should back off and retry.\n */\n Code[Code[\"Unavailable\"] = 14] = \"Unavailable\";\n /**\n * Unrecoverable data loss or corruption.\n */\n Code[Code[\"DataLoss\"] = 15] = \"DataLoss\";\n /**\n * Request isn't authenticated.\n */\n Code[Code[\"Unauthenticated\"] = 16] = \"Unauthenticated\";\n})(Code || (Code = {}));\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * codeToString returns the string representation of a Code.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToString(value) {\n const name = Code[value];\n if (typeof name != \"string\") {\n return value.toString();\n }\n return (name[0].toLowerCase() +\n name.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c.toLowerCase()));\n}\nlet stringToCode;\n/**\n * codeFromString parses the string representation of a Code in snake_case.\n * For example, the string \"permission_denied\" parses into Code.PermissionDenied.\n *\n * If the given string cannot be parsed, the function returns undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromString(value) {\n if (!stringToCode) {\n stringToCode = {};\n for (const value of Object.values(Code)) {\n if (typeof value == \"string\") {\n continue;\n }\n stringToCode[codeToString(value)] = value;\n }\n }\n return stringToCode[value];\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"./code.js\";\nimport { Message } from \"@bufbuild/protobuf\";\nimport { codeToString } from \"./protocol-connect/code-string.js\";\n/**\n * ConnectError captures four pieces of information: a Code, an error\n * message, an optional cause of the error, and an optional collection of\n * arbitrary Protobuf messages called \"details\".\n *\n * Because developer tools typically show just the error message, we prefix\n * it with the status code, so that the most important information is always\n * visible immediately.\n *\n * Error details are wrapped with google.protobuf.Any on the wire, so that\n * a server or middleware can attach arbitrary data to an error. Use the\n * method findDetails() to retrieve the details.\n */\nexport class ConnectError extends Error {\n /**\n * Create a new ConnectError.\n * If no code is provided, code \"unknown\" is used.\n * Outgoing details are only relevant for the server side - a service may\n * raise an error with details, and it is up to the protocol implementation\n * to encode and send the details along with error.\n */\n constructor(message, code = Code.Unknown, metadata, outgoingDetails, cause) {\n super(createMessage(message, code));\n this.name = \"ConnectError\";\n // see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#example\n Object.setPrototypeOf(this, new.target.prototype);\n this.rawMessage = message;\n this.code = code;\n this.metadata = new Headers(metadata !== null && metadata !== void 0 ? metadata : {});\n this.details = outgoingDetails !== null && outgoingDetails !== void 0 ? outgoingDetails : [];\n this.cause = cause;\n }\n /**\n * Convert any value - typically a caught error into a ConnectError,\n * following these rules:\n * - If the value is already a ConnectError, return it as is.\n * - If the value is an AbortError from the fetch API, return the message\n * of the AbortError with code Canceled.\n * - For other Errors, return the error message with code Unknown by default.\n * - For other values, return the values String representation as a message,\n * with the code Unknown by default.\n * The original value will be used for the \"cause\" property for the new\n * ConnectError.\n */\n static from(reason, code = Code.Unknown) {\n if (reason instanceof ConnectError) {\n return reason;\n }\n if (reason instanceof Error) {\n if (reason.name == \"AbortError\") {\n // Fetch requests can only be canceled with an AbortController.\n // We detect that condition by looking at the name of the raised\n // error object, and translate to the appropriate status code.\n return new ConnectError(reason.message, Code.Canceled);\n }\n return new ConnectError(reason.message, code, undefined, undefined, reason);\n }\n return new ConnectError(String(reason), code, undefined, undefined, reason);\n }\n static [Symbol.hasInstance](v) {\n if (!(v instanceof Error)) {\n return false;\n }\n if (Object.getPrototypeOf(v) === ConnectError.prototype) {\n return true;\n }\n return (v.name === \"ConnectError\" &&\n \"code\" in v &&\n typeof v.code === \"number\" &&\n \"metadata\" in v &&\n \"details\" in v &&\n Array.isArray(v.details) &&\n \"rawMessage\" in v &&\n typeof v.rawMessage == \"string\" &&\n \"cause\" in v);\n }\n findDetails(typeOrRegistry) {\n const registry = \"typeName\" in typeOrRegistry\n ? {\n findMessage: (typeName) => typeName === typeOrRegistry.typeName ? typeOrRegistry : undefined,\n }\n : typeOrRegistry;\n const details = [];\n for (const data of this.details) {\n if (data instanceof Message) {\n if (registry.findMessage(data.getType().typeName)) {\n details.push(data);\n }\n continue;\n }\n const type = registry.findMessage(data.type);\n if (type) {\n try {\n details.push(type.fromBinary(data.value));\n }\n catch (_) {\n // We silently give up if we are unable to parse the detail, because\n // that appears to be the least worst behavior.\n // It is very unlikely that a user surrounds a catch body handling the\n // error with another try-catch statement, and we do not want to\n // recommend doing so.\n }\n }\n }\n return details;\n }\n}\n/**\n * Create an error message, prefixing the given code.\n */\nfunction createMessage(message, code) {\n return message.length\n ? `[${codeToString(code)}] ${message}`\n : `[${codeToString(code)}]`;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\n/**\n * Encode a single binary header value according to the Connect\n * and gRPC specifications.\n *\n * This function accepts raw binary data from a buffer, a string\n * with UTF-8 text, or a protobuf message. It encodes the input\n * with unpadded base64 and returns a string that can be used for\n * a header whose name ends with `-bin`.\n */\nexport function encodeBinaryHeader(value) {\n let bytes;\n if (value instanceof Message) {\n bytes = value.toBinary();\n }\n else if (typeof value == \"string\") {\n bytes = new TextEncoder().encode(value);\n }\n else {\n bytes = value instanceof Uint8Array ? value : new Uint8Array(value);\n }\n return protoBase64.enc(bytes).replace(/=+$/, \"\");\n}\nexport function decodeBinaryHeader(value, type, options) {\n try {\n const bytes = protoBase64.dec(value);\n if (type) {\n return type.fromBinary(bytes, options);\n }\n return bytes;\n }\n catch (e) {\n throw ConnectError.from(e, Code.DataLoss);\n }\n}\n/**\n * Merge two or more Headers objects by appending all fields from\n * all inputs to a new Headers object.\n */\nexport function appendHeaders(...headers) {\n const h = new Headers();\n for (const e of headers) {\n e.forEach((value, key) => {\n h.append(key, value);\n });\n }\n return h;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create any client for the given service.\n *\n * The given createMethod function is called for each method definition\n * of the service. The function it returns is added to the client object\n * as a method.\n */\nexport function makeAnyClient(service, createMethod) {\n const client = {};\n for (const [localName, methodInfo] of Object.entries(service.methods)) {\n const method = createMethod(Object.assign(Object.assign({}, methodInfo), { localName,\n service }));\n if (method != null) {\n client[localName] = method;\n }\n }\n return client;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { compressedFlag } from \"./compression.js\";\n/**\n * Create a WHATWG ReadableStream of enveloped messages from a ReadableStream\n * of bytes.\n *\n * Ideally, this would simply be a TransformStream, but ReadableStream.pipeThrough\n * does not have the necessary availability at this time.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEnvelopeReadableStream(stream) {\n let reader;\n let buffer = new Uint8Array(0);\n function append(chunk) {\n const n = new Uint8Array(buffer.length + chunk.length);\n n.set(buffer);\n n.set(chunk, buffer.length);\n buffer = n;\n }\n return new ReadableStream({\n start() {\n reader = stream.getReader();\n },\n async pull(controller) {\n let header = undefined;\n for (;;) {\n if (header === undefined && buffer.byteLength >= 5) {\n let length = 0;\n for (let i = 1; i < 5; i++) {\n length = (length << 8) + buffer[i];\n }\n header = { flags: buffer[0], length };\n }\n if (header !== undefined && buffer.byteLength >= header.length + 5) {\n break;\n }\n const result = await reader.read();\n if (result.done) {\n break;\n }\n append(result.value);\n }\n if (header === undefined) {\n if (buffer.byteLength == 0) {\n controller.close();\n return;\n }\n controller.error(new ConnectError(\"premature end of stream\", Code.DataLoss));\n return;\n }\n const data = buffer.subarray(5, 5 + header.length);\n buffer = buffer.subarray(5 + header.length);\n controller.enqueue({\n flags: header.flags,\n data,\n });\n },\n });\n}\n/**\n * Compress an EnvelopedMessage.\n *\n * Raises Internal if an enveloped message is already compressed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeCompress(envelope, compression, compressMinBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n throw new ConnectError(\"invalid envelope, already compressed\", Code.Internal);\n }\n if (compression && data.byteLength >= compressMinBytes) {\n data = await compression.compress(data);\n flags = flags | compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Decompress an EnvelopedMessage.\n *\n * Raises InvalidArgument if an envelope is compressed, but compression is null.\n *\n * Relies on the provided Compression to raise ResourceExhausted if the\n * *decompressed* message size is larger than readMaxBytes. If the envelope is\n * not compressed, readMaxBytes is not honored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function envelopeDecompress(envelope, compression, readMaxBytes) {\n let { flags, data } = envelope;\n if ((flags & compressedFlag) === compressedFlag) {\n if (!compression) {\n throw new ConnectError(\"received compressed envelope, but do not know how to decompress\", Code.InvalidArgument);\n }\n data = await compression.decompress(data, readMaxBytes);\n flags = flags ^ compressedFlag;\n }\n return { data, flags };\n}\n/**\n * Encode a single enveloped message.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelope(flags, data) {\n const bytes = new Uint8Array(data.length + 5);\n bytes.set(data, 5);\n const v = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n v.setUint8(0, flags); // first byte is flags\n v.setUint32(1, data.length); // 4 bytes message length\n return bytes;\n}\n/**\n * Encode a set of enveloped messages.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function encodeEnvelopes(...envelopes) {\n const len = envelopes.reduce((previousValue, currentValue) => previousValue + currentValue.data.length + 5, 0);\n const bytes = new Uint8Array(len);\n const v = new DataView(bytes.buffer);\n let offset = 0;\n for (const e of envelopes) {\n v.setUint8(offset, e.flags); // first byte is flags\n v.setUint32(offset + 1, e.data.length); // 4 bytes message length\n bytes.set(e.data, offset + 5);\n offset += e.data.length + 5;\n }\n return bytes;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { encodeEnvelope, envelopeCompress, envelopeDecompress, } from \"./envelope.js\";\nimport { assertReadMaxBytes } from \"./limit-io.js\";\nexport function pipeTo(source, ...rest) {\n const [transforms, sink, opt] = pickTransformsAndSink(rest);\n let iterable = source;\n let abortable;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n iterable = pipe(iterable, ...transforms, { propagateDownStreamError: false });\n return sink(iterable).catch((reason) => {\n if (abortable) {\n return abortable.abort(reason).then(() => Promise.reject(reason));\n }\n return Promise.reject(reason);\n });\n}\n// pick transforms, the sink, and options from the pipeTo() rest parameter\nfunction pickTransformsAndSink(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n const sink = rest.pop();\n return [rest, sink, opt];\n}\n/**\n * Creates an AsyncIterableSink that concatenates all elements from the input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAll() {\n return async function (iterable) {\n var _a, e_1, _b, _c;\n const all = [];\n try {\n for (var _d = true, iterable_1 = __asyncValues(iterable), iterable_1_1; iterable_1_1 = await iterable_1.next(), _a = iterable_1_1.done, !_a; _d = true) {\n _c = iterable_1_1.value;\n _d = false;\n const chunk = _c;\n all.push(chunk);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_1.return)) await _b.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return all;\n };\n}\n/**\n * Creates an AsyncIterableSink that concatenates all chunks from the input into\n * a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function sinkAllBytes(readMaxBytes, lengthHint) {\n return async function (iterable) {\n return await readAllBytes(iterable, readMaxBytes, lengthHint);\n };\n}\nexport function pipe(source, ...rest) {\n var _a;\n return __asyncGenerator(this, arguments, function* pipe_1() {\n const [transforms, opt] = pickTransforms(rest);\n let abortable;\n const sourceIt = source[Symbol.asyncIterator]();\n const cachedSource = {\n [Symbol.asyncIterator]() {\n return sourceIt;\n },\n };\n let iterable = cachedSource;\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n iterable = abortable = makeIterableAbortable(iterable);\n }\n for (const t of transforms) {\n iterable = t(iterable);\n }\n const it = iterable[Symbol.asyncIterator]();\n try {\n for (;;) {\n const r = yield __await(it.next());\n if (r.done === true) {\n break;\n }\n if (!abortable) {\n yield yield __await(r.value);\n continue;\n }\n try {\n yield yield __await(r.value);\n }\n catch (e) {\n yield __await(abortable.abort(e)); // propagate downstream error to the source\n throw e;\n }\n }\n }\n finally {\n if ((opt === null || opt === void 0 ? void 0 : opt.propagateDownStreamError) === true) {\n // Call return on the source iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n (_a = sourceIt.return) === null || _a === void 0 ? void 0 : _a.call(sourceIt).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n }\n });\n}\nfunction pickTransforms(rest) {\n let opt;\n if (typeof rest[rest.length - 1] != \"function\") {\n opt = rest.pop();\n }\n return [rest, opt];\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given catchError function.\n *\n * The catchError function may return a final value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatch(catchError) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n const caught = yield __await(catchError(e));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that catches any error from the input, and\n * passes it to the given function. Unlike transformCatch(), the given function\n * is also called when no error is raised.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCatchFinally(catchFinally) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n // we deliberate avoid a for-await loop because we only want to catch upstream\n // errors, not downstream errors (yield).\n let err;\n const it = iterable[Symbol.asyncIterator]();\n for (;;) {\n let r;\n try {\n r = yield __await(it.next());\n }\n catch (e) {\n err = e;\n break;\n }\n if (r.done === true) {\n break;\n }\n yield yield __await(r.value);\n }\n const caught = yield __await(catchFinally(err));\n if (caught !== undefined) {\n yield yield __await(caught);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that appends a value.\n *\n * The element to append is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformAppend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_2, _b, _c;\n try {\n for (var _d = true, iterable_2 = __asyncValues(iterable), iterable_2_1; iterable_2_1 = yield __await(iterable_2.next()), _a = iterable_2_1.done, !_a; _d = true) {\n _c = iterable_2_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_2.return)) yield __await(_b.call(iterable_2));\n }\n finally { if (e_2) throw e_2.error; }\n }\n const append = yield __await(provide());\n if (append !== undefined) {\n yield yield __await(append);\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that prepends an element.\n *\n * The element to prepend is provided by a function. If the function returns\n * undefined, no element is appended.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformPrepend(provide) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_3, _b, _c;\n const prepend = yield __await(provide());\n if (prepend !== undefined) {\n yield yield __await(prepend);\n }\n try {\n for (var _d = true, iterable_3 = __asyncValues(iterable), iterable_3_1; iterable_3_1 = yield __await(iterable_3.next()), _a = iterable_3_1.done, !_a; _d = true) {\n _c = iterable_3_1.value;\n _d = false;\n const chunk = _c;\n yield yield __await(chunk);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_3.return)) yield __await(_b.call(iterable_3));\n }\n finally { if (e_3) throw e_3.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that reads all bytes from the input, and\n * concatenates them to a single Uint8Array.\n *\n * The iterable raises an error if the more than readMaxBytes are read.\n *\n * An optional length hint can be provided to optimize allocation and validation.\n * If more or less bytes are present in the source that the length hint indicates,\n * and error is raised.\n * If the length hint is larger than readMaxBytes, an error is raised.\n * If the length hint is not a positive integer, it is ignored.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformReadAllBytes(readMaxBytes, lengthHint) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n yield yield __await(yield __await(readAllBytes(iterable, readMaxBytes, lengthHint)));\n });\n };\n}\nexport function transformSerializeEnvelope(serialization, endStreamFlag, endSerialization) {\n if (endStreamFlag === undefined || endSerialization === undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_4, _b, _c;\n try {\n for (var _d = true, iterable_4 = __asyncValues(iterable), iterable_4_1; iterable_4_1 = yield __await(iterable_4.next()), _a = iterable_4_1.done, !_a; _d = true) {\n _c = iterable_4_1.value;\n _d = false;\n const chunk = _c;\n const data = serialization.serialize(chunk);\n yield yield __await({ flags: 0, data });\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_4.return)) yield __await(_b.call(iterable_4));\n }\n finally { if (e_4) throw e_4.error; }\n }\n });\n };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_5, _b, _c;\n try {\n for (var _d = true, iterable_5 = __asyncValues(iterable), iterable_5_1; iterable_5_1 = yield __await(iterable_5.next()), _a = iterable_5_1.done, !_a; _d = true) {\n _c = iterable_5_1.value;\n _d = false;\n const chunk = _c;\n let data;\n let flags = 0;\n if (chunk.end) {\n flags = flags | endStreamFlag;\n data = endSerialization.serialize(chunk.value);\n }\n else {\n data = serialization.serialize(chunk.value);\n }\n yield yield __await({ flags, data });\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_5.return)) yield __await(_b.call(iterable_5));\n }\n finally { if (e_5) throw e_5.error; }\n }\n });\n };\n}\nexport function transformParseEnvelope(serialization, endStreamFlag, endSerialization) {\n // code path always yields ParsedEnvelopedMessage\n if (endSerialization && endStreamFlag !== undefined) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_6, _b, _c;\n try {\n for (var _d = true, iterable_6 = __asyncValues(iterable), iterable_6_1; iterable_6_1 = yield __await(iterable_6.next()), _a = iterable_6_1.done, !_a; _d = true) {\n _c = iterable_6_1.value;\n _d = false;\n const { flags, data } = _c;\n if ((flags & endStreamFlag) === endStreamFlag) {\n yield yield __await({ value: endSerialization.parse(data), end: true });\n }\n else {\n yield yield __await({ value: serialization.parse(data), end: false });\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_6.return)) yield __await(_b.call(iterable_6));\n }\n finally { if (e_6) throw e_6.error; }\n }\n });\n };\n }\n // code path always yields T\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_7, _b, _c;\n try {\n for (var _d = true, iterable_7 = __asyncValues(iterable), iterable_7_1; iterable_7_1 = yield __await(iterable_7.next()), _a = iterable_7_1.done, !_a; _d = true) {\n _c = iterable_7_1.value;\n _d = false;\n const { flags, data } = _c;\n if (endStreamFlag !== undefined &&\n (flags & endStreamFlag) === endStreamFlag) {\n if (endSerialization === null) {\n throw new ConnectError(\"unexpected end flag\", Code.InvalidArgument);\n }\n // skips end-of-stream envelope\n continue;\n }\n yield yield __await(serialization.parse(data));\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_7.return)) yield __await(_b.call(iterable_7));\n }\n finally { if (e_7) throw e_7.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and compresses them if they are larger than compressMinBytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformCompressEnvelope(compression, compressMinBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_8, _b, _c;\n try {\n for (var _d = true, iterable_8 = __asyncValues(iterable), iterable_8_1; iterable_8_1 = yield __await(iterable_8.next()), _a = iterable_8_1.done, !_a; _d = true) {\n _c = iterable_8_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeCompress(env, compression, compressMinBytes)));\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_8.return)) yield __await(_b.call(iterable_8));\n }\n finally { if (e_8) throw e_8.error; }\n }\n });\n };\n}\n/**\n * Creates an AsyncIterableTransform that takes enveloped messages as a source,\n * and decompresses them using the given compression.\n *\n * The iterable raises an error if the decompressed payload of an enveloped\n * message is larger than readMaxBytes, or if no compression is provided.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformDecompressEnvelope(compression, readMaxBytes) {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_9, _b, _c;\n try {\n for (var _d = true, iterable_9 = __asyncValues(iterable), iterable_9_1; iterable_9_1 = yield __await(iterable_9.next()), _a = iterable_9_1.done, !_a; _d = true) {\n _c = iterable_9_1.value;\n _d = false;\n const env = _c;\n yield yield __await(yield __await(envelopeDecompress(env, compression, readMaxBytes)));\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_9.return)) yield __await(_b.call(iterable_9));\n }\n finally { if (e_9) throw e_9.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes enveloped messages as a source,\n * and joins them into a stream of raw bytes.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformJoinEnvelopes() {\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_10, _b, _c;\n try {\n for (var _d = true, iterable_10 = __asyncValues(iterable), iterable_10_1; iterable_10_1 = yield __await(iterable_10.next()), _a = iterable_10_1.done, !_a; _d = true) {\n _c = iterable_10_1.value;\n _d = false;\n const { flags, data } = _c;\n yield yield __await(encodeEnvelope(flags, data));\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_10.return)) yield __await(_b.call(iterable_10));\n }\n finally { if (e_10) throw e_10.error; }\n }\n });\n };\n}\n/**\n * Create an AsyncIterableTransform that takes raw bytes as a source, and splits\n * them into enveloped messages.\n *\n * The iterable raises an error\n * - if the payload of an enveloped message is larger than readMaxBytes,\n * - if the stream ended before an enveloped message fully arrived,\n * - or if the stream ended with extraneous data.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformSplitEnvelope(readMaxBytes) {\n // append chunk to buffer, returning updated buffer\n function append(buffer, chunk) {\n const n = new Uint8Array(buffer.byteLength + chunk.byteLength);\n n.set(buffer);\n n.set(chunk, buffer.length);\n return n;\n }\n // tuple 0: envelope, or undefined if incomplete\n // tuple 1: remainder of the buffer\n function shiftEnvelope(buffer, header) {\n if (buffer.byteLength < 5 + header.length) {\n return [undefined, buffer];\n }\n return [\n { flags: header.flags, data: buffer.subarray(5, 5 + header.length) },\n buffer.subarray(5 + header.length),\n ];\n }\n // undefined: header is incomplete\n function peekHeader(buffer) {\n if (buffer.byteLength < 5) {\n return undefined;\n }\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n const length = view.getUint32(1); // 4 bytes message length\n const flags = view.getUint8(0); // first byte is flags\n return { length, flags };\n }\n return function (iterable) {\n return __asyncGenerator(this, arguments, function* () {\n var _a, e_11, _b, _c;\n let buffer = new Uint8Array(0);\n try {\n for (var _d = true, iterable_11 = __asyncValues(iterable), iterable_11_1; iterable_11_1 = yield __await(iterable_11.next()), _a = iterable_11_1.done, !_a; _d = true) {\n _c = iterable_11_1.value;\n _d = false;\n const chunk = _c;\n buffer = append(buffer, chunk);\n for (;;) {\n const header = peekHeader(buffer);\n if (!header) {\n break;\n }\n assertReadMaxBytes(readMaxBytes, header.length, true);\n let env;\n [env, buffer] = shiftEnvelope(buffer, header);\n if (!env) {\n break;\n }\n yield yield __await(env);\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (!_d && !_a && (_b = iterable_11.return)) yield __await(_b.call(iterable_11));\n }\n finally { if (e_11) throw e_11.error; }\n }\n if (buffer.byteLength > 0) {\n const header = peekHeader(buffer);\n let message = \"protocol error: incomplete envelope\";\n if (header) {\n message = `protocol error: promised ${header.length} bytes in enveloped message, got ${buffer.byteLength - 5} bytes`;\n }\n throw new ConnectError(message, Code.InvalidArgument);\n }\n });\n };\n}\n/**\n * Reads all bytes from the source, and concatenates them to a single Uint8Array.\n *\n * Raises an error if:\n * - more than readMaxBytes are read\n * - lengthHint is a positive integer, but larger than readMaxBytes\n * - lengthHint is a positive integer, and the source contains more or less bytes\n * than promised\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function readAllBytes(iterable, readMaxBytes, lengthHint) {\n var _a, e_12, _b, _c, _d, e_13, _e, _f;\n const [ok, hint] = parseLengthHint(lengthHint);\n if (ok) {\n if (hint > readMaxBytes) {\n assertReadMaxBytes(readMaxBytes, hint, true);\n }\n const buffer = new Uint8Array(hint);\n let offset = 0;\n try {\n for (var _g = true, iterable_12 = __asyncValues(iterable), iterable_12_1; iterable_12_1 = await iterable_12.next(), _a = iterable_12_1.done, !_a; _g = true) {\n _c = iterable_12_1.value;\n _g = false;\n const chunk = _c;\n if (offset + chunk.byteLength > hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset + chunk.byteLength}`, Code.InvalidArgument);\n }\n buffer.set(chunk, offset);\n offset += chunk.byteLength;\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (!_g && !_a && (_b = iterable_12.return)) await _b.call(iterable_12);\n }\n finally { if (e_12) throw e_12.error; }\n }\n if (offset < hint) {\n throw new ConnectError(`protocol error: promised ${hint} bytes, received ${offset}`, Code.InvalidArgument);\n }\n return buffer;\n }\n const chunks = [];\n let count = 0;\n try {\n for (var _h = true, iterable_13 = __asyncValues(iterable), iterable_13_1; iterable_13_1 = await iterable_13.next(), _d = iterable_13_1.done, !_d; _h = true) {\n _f = iterable_13_1.value;\n _h = false;\n const chunk = _f;\n count += chunk.byteLength;\n assertReadMaxBytes(readMaxBytes, count);\n chunks.push(chunk);\n }\n }\n catch (e_13_1) { e_13 = { error: e_13_1 }; }\n finally {\n try {\n if (!_h && !_d && (_e = iterable_13.return)) await _e.call(iterable_13);\n }\n finally { if (e_13) throw e_13.error; }\n }\n const all = new Uint8Array(count);\n let offset = 0;\n for (let chunk = chunks.shift(); chunk; chunk = chunks.shift()) {\n all.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return all;\n}\n// parse the lengthHint argument of readAllBytes()\nfunction parseLengthHint(lengthHint) {\n if (lengthHint === undefined || lengthHint === null) {\n return [false, 0];\n }\n const n = typeof lengthHint == \"string\" ? parseInt(lengthHint, 10) : lengthHint;\n if (!Number.isSafeInteger(n) || n < 0) {\n return [false, n];\n }\n return [true, n];\n}\n/**\n * Wait for the first element of an iterable without modifying the iterable.\n * This consumes the first element, but pushes it back on the stack.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport async function untilFirst(iterable) {\n const it = iterable[Symbol.asyncIterator]();\n let first = await it.next();\n return {\n [Symbol.asyncIterator]() {\n const w = {\n async next() {\n if (first !== null) {\n const n = first;\n first = null;\n return n;\n }\n return await it.next();\n },\n };\n if (it.throw !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- can't handle mutated object sensibly\n w.throw = (e) => it.throw(e);\n }\n if (it.return !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-explicit-any -- can't handle mutated object sensibly\n w.return = (value) => it.return(value);\n }\n return w;\n },\n };\n}\n/**\n * Wrap the given iterable and return an iterable with an abort() method.\n *\n * This function exists purely for convenience. Where one would typically have\n * to access the iterator directly, advance through all elements, and call\n * AsyncIterator.throw() to notify the upstream iterable, this function allows\n * to use convenient for-await loops and still notify the upstream iterable:\n *\n * ```ts\n * const abortable = makeIterableAbortable(iterable);\n * for await (const ele of abortable) {\n * await abortable.abort(\"ERR\");\n * }\n * ```\n * There are a couple of limitations of this function:\n * - the given async iterable must implement throw\n * - the async iterable cannot be re-use\n * - if source catches errors and yields values for them, they are ignored, and\n * the source may still dangle\n *\n * There are four possible ways an async function* can handle yield errors:\n * 1. don't catch errors at all - Abortable.abort() will resolve \"rethrown\"\n * 2. catch errors and rethrow - Abortable.abort() will resolve \"rethrown\"\n * 3. catch errors and return - Abortable.abort() will resolve \"completed\"\n * 4. catch errors and yield a value - Abortable.abort() will resolve \"caught\"\n *\n * Note that catching errors and yielding a value is problematic, and it should\n * be documented that this may leave the source in a dangling state.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function makeIterableAbortable(iterable) {\n const innerCandidate = iterable[Symbol.asyncIterator]();\n if (innerCandidate.throw === undefined) {\n throw new Error(\"AsyncIterable does not implement throw\");\n }\n const inner = innerCandidate;\n let aborted;\n let resultPromise;\n let it = {\n next() {\n resultPromise = inner.next().finally(() => {\n resultPromise = undefined;\n });\n return resultPromise;\n },\n throw(e) {\n return inner.throw(e);\n },\n };\n if (innerCandidate.return !== undefined) {\n it = Object.assign(Object.assign({}, it), { return(value) {\n return inner.return(value);\n } });\n }\n let used = false;\n return {\n abort(reason) {\n if (aborted) {\n return aborted.state;\n }\n const f = () => {\n return inner.throw(reason).then((r) => (r.done === true ? \"completed\" : \"caught\"), () => \"rethrown\");\n };\n if (resultPromise) {\n aborted = { reason, state: resultPromise.then(f, f) };\n return aborted.state;\n }\n aborted = { reason, state: f() };\n return aborted.state;\n },\n [Symbol.asyncIterator]() {\n if (used) {\n throw new Error(\"AsyncIterable cannot be re-used\");\n }\n used = true;\n return it;\n },\n };\n}\n/**\n * Create a new WritableIterable.\n */\nexport function createWritableIterable() {\n // We start with two queues to capture the read and write attempts.\n //\n // The writes and reads each check of their counterpart is\n // already available and either interact/add themselves to the queue.\n const readQueue = [];\n const writeQueue = [];\n let err = undefined;\n let nextResolve;\n let nextReject;\n let nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n let closed = false;\n // drain the readQueue in case of error/writer is closed by sending a\n // done result.\n function drain() {\n for (const next of readQueue.splice(0, readQueue.length)) {\n next({ done: true, value: undefined });\n }\n }\n return {\n close() {\n closed = true;\n drain();\n },\n async write(payload) {\n if (closed) {\n throw err !== null && err !== void 0 ? err : new Error(\"cannot write, WritableIterable already closed\");\n }\n const read = readQueue.shift();\n if (read === undefined) {\n // We didn't find a pending read so we add the payload to the write queue.\n writeQueue.push(payload);\n }\n else {\n // We found a pending read so we respond with the payload.\n read({ done: false, value: payload });\n if (readQueue.length > 0) {\n // If there are more in the read queue we can mark the write as complete.\n // as the error reporting is not guaranteed to be sequential and therefore cannot\n // to linked to a specific write.\n return;\n }\n }\n // We await the next call for as many times as there are items in the queue + 1\n //\n // If there are no items in the write queue that means write happened and we just have\n // to wait for one more call likewise if we are the nth write in the queue we\n // have to wait for n writes to complete and one more.\n const limit = writeQueue.length + 1;\n for (let i = 0; i < limit; i++) {\n await nextPromise;\n }\n },\n [Symbol.asyncIterator]() {\n return {\n next() {\n // Resolve the nextPromise to indicate\n // pending writes that a read attempt has been made\n // after their write.\n //\n // We also need to reset the promise for future writes.\n nextResolve();\n nextPromise = new Promise((resolve, reject) => {\n nextResolve = resolve;\n nextReject = reject;\n });\n const write = writeQueue.shift();\n if (write !== undefined) {\n // We found a pending write so response with the payload.\n return Promise.resolve({ done: false, value: write });\n }\n if (closed) {\n return Promise.resolve({ done: true, value: undefined });\n }\n // We return a promise immediately that is either resolved/rejected\n // as writes happen.\n let readResolve;\n const readPromise = new Promise((resolve) => (readResolve = resolve));\n readQueue.push(readResolve); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n return readPromise;\n },\n throw(throwErr) {\n err = throwErr;\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n // This will reject all pending writes.\n nextReject(err);\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n return() {\n closed = true;\n writeQueue.splice(0, writeQueue.length);\n // Resolve once for the write awaiting confirmation.\n nextResolve();\n // Reject all future writes.\n nextPromise = Promise.reject(new Error(\"cannot write, consumer called return\"));\n nextPromise.catch(() => {\n // To make sure that the nextPromise is always resolved.\n });\n drain();\n return Promise.resolve({ done: true, value: undefined });\n },\n };\n },\n };\n}\n/**\n * Create an asynchronous iterable from an array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nexport function createAsyncIterable(items) {\n return __asyncGenerator(this, arguments, function* createAsyncIterable_1() {\n yield __await(yield* __asyncDelegator(__asyncValues(items)));\n });\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n};\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodKind } from \"@bufbuild/protobuf\";\nimport { makeAnyClient } from \"./any-client.js\";\nimport { ConnectError } from \"./connect-error.js\";\nimport { Code } from \"./code.js\";\nimport { createAsyncIterable } from \"./protocol/async-iterable.js\";\n/**\n * Create a PromiseClient for the given service, invoking RPCs through the\n * given transport.\n */\nexport function createPromiseClient(service, transport) {\n return makeAnyClient(service, (method) => {\n switch (method.kind) {\n case MethodKind.Unary:\n return createUnaryFn(transport, service, method);\n case MethodKind.ServerStreaming:\n return createServerStreamingFn(transport, service, method);\n case MethodKind.ClientStreaming:\n return createClientStreamingFn(transport, service, method);\n case MethodKind.BiDiStreaming:\n return createBiDiStreamingFn(transport, service, method);\n default:\n return null;\n }\n });\n}\nexport function createUnaryFn(transport, service, method) {\n return async function (input, options) {\n var _a, _b;\n const response = await transport.unary(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, input, options === null || options === void 0 ? void 0 : options.contextValues);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n return response.message;\n };\n}\nexport function createServerStreamingFn(transport, service, method) {\n return function (input, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, createAsyncIterable([input]), options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nexport function createClientStreamingFn(transport, service, method) {\n return async function (request, options) {\n var _a, e_1, _b, _c;\n var _d, _e;\n const response = await transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues);\n (_d = options === null || options === void 0 ? void 0 : options.onHeader) === null || _d === void 0 ? void 0 : _d.call(options, response.header);\n let singleMessage;\n try {\n for (var _f = true, _g = __asyncValues(response.message), _h; _h = await _g.next(), _a = _h.done, !_a; _f = true) {\n _c = _h.value;\n _f = false;\n const message = _c;\n singleMessage = message;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (!_f && !_a && (_b = _g.return)) await _b.call(_g);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!singleMessage) {\n throw new ConnectError(\"protocol error: missing response message\", Code.Internal);\n }\n (_e = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _e === void 0 ? void 0 : _e.call(options, response.trailer);\n return singleMessage;\n };\n}\nexport function createBiDiStreamingFn(transport, service, method) {\n return function (request, options) {\n return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues), options);\n };\n}\nfunction handleStreamResponse(stream, options) {\n const it = (function () {\n var _a, _b;\n return __asyncGenerator(this, arguments, function* () {\n const response = yield __await(stream);\n (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n yield __await(yield* __asyncDelegator(__asyncValues(response.message)));\n (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n });\n })()[Symbol.asyncIterator]();\n // Create a new iterable to omit throw/return.\n return {\n [Symbol.asyncIterator]: () => ({\n next: () => it.next(),\n }),\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * Create an AbortController that is automatically aborted if one of the given\n * signals is aborted.\n *\n * For convenience, the linked AbortSignals can be undefined.\n *\n * If the controller or any of the signals is aborted, all event listeners are\n * removed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createLinkedAbortController(...signals) {\n const controller = new AbortController();\n const sa = signals\n .filter((s) => s !== undefined)\n .concat(controller.signal);\n for (const signal of sa) {\n if (signal.aborted) {\n onAbort.apply(signal);\n break;\n }\n signal.addEventListener(\"abort\", onAbort);\n }\n function onAbort() {\n if (!controller.signal.aborted) {\n controller.abort(getAbortSignalReason(this));\n }\n for (const signal of sa) {\n signal.removeEventListener(\"abort\", onAbort);\n }\n }\n return controller;\n}\n/**\n * Create a deadline signal. The returned object contains an AbortSignal, but\n * also a cleanup function to stop the timer, which must be called once the\n * calling code is no longer interested in the signal.\n *\n * Ideally, we would simply use AbortSignal.timeout(), but it is not widely\n * available yet.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createDeadlineSignal(timeoutMs) {\n const controller = new AbortController();\n const listener = () => {\n controller.abort(new ConnectError(\"the operation timed out\", Code.DeadlineExceeded));\n };\n let timeoutId;\n if (timeoutMs !== undefined) {\n if (timeoutMs <= 0)\n listener();\n else\n timeoutId = setTimeout(listener, timeoutMs);\n }\n return {\n signal: controller.signal,\n cleanup: () => clearTimeout(timeoutId),\n };\n}\n/**\n * Returns the reason why an AbortSignal was aborted. Returns undefined if the\n * signal has not been aborted.\n *\n * The property AbortSignal.reason is not widely available. This function\n * returns an AbortError if the signal is aborted, but reason is undefined.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function getAbortSignalReason(signal) {\n if (!signal.aborted) {\n return undefined;\n }\n if (signal.reason !== undefined) {\n return signal.reason;\n }\n // AbortSignal.reason is available in Node.js v16, v18, and later,\n // and in all browsers since early 2022.\n const e = new Error(\"This operation was aborted\");\n e.name = \"AbortError\";\n return e;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * createContextValues creates a new ContextValues.\n */\nexport function createContextValues() {\n return {\n get(key) {\n return key.id in this ? this[key.id] : key.defaultValue;\n },\n set(key, value) {\n this[key.id] = value;\n return this;\n },\n delete(key) {\n delete this[key.id];\n return this;\n },\n };\n}\n/**\n * createContextKey creates a new ContextKey.\n */\nexport function createContextKey(defaultValue, options) {\n return { id: Symbol(options === null || options === void 0 ? void 0 : options.description), defaultValue };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Create a URL for the given RPC. This simply adds the qualified\n * service name, a slash, and the method name to the path of the given\n * baseUrl.\n *\n * For example, the baseUri https://example.com and method \"Say\" from\n * the service example.ElizaService results in:\n * https://example.com/example.ElizaService/Say\n *\n * This format is used by the protocols Connect, gRPC and Twirp.\n *\n * Note that this function also accepts a protocol-relative baseUrl.\n * If given an empty string or \"/\" as a baseUrl, it returns just the\n * path.\n */\nexport function createMethodUrl(baseUrl, service, method) {\n const s = typeof service == \"string\" ? service : service.typeName;\n const m = typeof method == \"string\" ? method : method.name;\n return baseUrl.toString().replace(/\\/?$/, `/${s}/${m}`);\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message } from \"@bufbuild/protobuf\";\n/**\n * Takes a partial protobuf messages of the\n * specified message type as input, and returns full instances.\n */\nexport function normalize(type, message) {\n return message instanceof type\n ? message\n : new type(message);\n}\n/**\n * Takes an AsyncIterable of partial protobuf messages of the\n * specified message type as input, and yields full instances.\n */\nexport function normalizeIterable(messageType, input) {\n function transform(result) {\n if (result.done === true) {\n return result;\n }\n return {\n done: result.done,\n value: normalize(messageType, result.value),\n };\n }\n return {\n [Symbol.asyncIterator]() {\n const it = input[Symbol.asyncIterator]();\n const res = {\n next: () => it.next().then(transform),\n };\n if (it.throw !== undefined) {\n res.throw = (e) => it.throw(e).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n if (it.return !== undefined) {\n res.return = (v) => it.return(v).then(transform); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n return res;\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\nimport { assertReadMaxBytes, assertWriteMaxBytes } from \"./limit-io.js\";\n/**\n * Sets default JSON serialization options for connect-es.\n *\n * With standard protobuf JSON serialization, unknown JSON fields are\n * rejected by default. In connect-es, unknown JSON fields are ignored\n * by default.\n */\nexport function getJsonOptions(options) {\n var _a;\n const o = Object.assign({}, options);\n (_a = o.ignoreUnknownFields) !== null && _a !== void 0 ? _a : (o.ignoreUnknownFields = true);\n return o;\n}\n/**\n * Create an object that provides convenient access to request and response\n * message serialization for a given method.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createMethodSerializationLookup(method, binaryOptions, jsonOptions, limitOptions) {\n const inputBinary = limitSerialization(createBinarySerialization(method.I, binaryOptions), limitOptions);\n const inputJson = limitSerialization(createJsonSerialization(method.I, jsonOptions), limitOptions);\n const outputBinary = limitSerialization(createBinarySerialization(method.O, binaryOptions), limitOptions);\n const outputJson = limitSerialization(createJsonSerialization(method.O, jsonOptions), limitOptions);\n return {\n getI(useBinaryFormat) {\n return useBinaryFormat ? inputBinary : inputJson;\n },\n getO(useBinaryFormat) {\n return useBinaryFormat ? outputBinary : outputJson;\n },\n };\n}\n/**\n * Returns functions to normalize and serialize the input message\n * of an RPC, and to parse the output message of an RPC.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createClientMethodSerializers(method, useBinaryFormat, jsonOptions, binaryOptions) {\n const input = useBinaryFormat\n ? createBinarySerialization(method.I, binaryOptions)\n : createJsonSerialization(method.I, jsonOptions);\n const output = useBinaryFormat\n ? createBinarySerialization(method.O, binaryOptions)\n : createJsonSerialization(method.O, jsonOptions);\n return { parse: output.parse, serialize: input.serialize };\n}\n/**\n * Apply I/O limits to a Serialization object, returning a new object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function limitSerialization(serialization, limitOptions) {\n return {\n serialize(data) {\n const bytes = serialization.serialize(data);\n assertWriteMaxBytes(limitOptions.writeMaxBytes, bytes.byteLength);\n return bytes;\n },\n parse(data) {\n assertReadMaxBytes(limitOptions.readMaxBytes, data.byteLength, true);\n return serialization.parse(data);\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf binary format.\n */\nexport function createBinarySerialization(messageType, options) {\n return {\n parse(data) {\n try {\n return messageType.fromBinary(data, options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`parse binary: ${m}`, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n return data.toBinary(options);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`serialize binary: ${m}`, Code.Internal);\n }\n },\n };\n}\n/**\n * Creates a Serialization object for serializing the given protobuf message\n * with the protobuf canonical JSON encoding.\n *\n * By default, unknown fields are ignored.\n */\nexport function createJsonSerialization(messageType, options) {\n var _a, _b;\n const textEncoder = (_a = options === null || options === void 0 ? void 0 : options.textEncoder) !== null && _a !== void 0 ? _a : new TextEncoder();\n const textDecoder = (_b = options === null || options === void 0 ? void 0 : options.textDecoder) !== null && _b !== void 0 ? _b : new TextDecoder();\n const o = getJsonOptions(options);\n return {\n parse(data) {\n try {\n const json = textDecoder.decode(data);\n return messageType.fromJsonString(json, o);\n }\n catch (e) {\n throw ConnectError.from(e, Code.InvalidArgument);\n }\n },\n serialize(data) {\n try {\n const json = data.toJsonString(o);\n return textEncoder.encode(json);\n }\n catch (e) {\n throw ConnectError.from(e, Code.Internal);\n }\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Regular Expression that matches any valid Connect Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeRegExp = /^application\\/(connect\\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;\n/**\n * Regular Expression that matches a Connect unary Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeUnaryRegExp = /^application\\/(?:json(?:; ?charset=utf-?8)?|proto)$/i;\n/**\n * Regular Expression that matches a Connect streaming Content-Type header value.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const contentTypeStreamRegExp = /^application\\/connect\\+?(?:json(?:; ?charset=utf-?8)?|proto)$/i;\nexport const contentTypeUnaryProto = \"application/proto\";\nexport const contentTypeUnaryJson = \"application/json\";\nexport const contentTypeStreamProto = \"application/connect+proto\";\nexport const contentTypeStreamJson = \"application/connect+json\";\nconst encodingProto = \"proto\";\nconst encodingJson = \"json\";\n/**\n * Parse a Connect Content-Type header.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseContentType(contentType) {\n const match = contentType === null || contentType === void 0 ? void 0 : contentType.match(contentTypeRegExp);\n if (!match) {\n return undefined;\n }\n const stream = !!match[1];\n const binary = !!match[3];\n return { stream, binary };\n}\n/**\n * Parse a Connect Get encoding query parameter.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function parseEncodingQuery(encoding) {\n switch (encoding) {\n case encodingProto:\n return { stream: false, binary: true };\n case encodingJson:\n return { stream: false, binary: false };\n default:\n return undefined;\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { codeFromString, codeToString } from \"./code-string.js\";\n/**\n * Parse a Connect error from a JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJson(jsonValue, metadata, fallback) {\n if (metadata) {\n new Headers(metadata).forEach((value, key) => fallback.metadata.append(key, value));\n }\n if (typeof jsonValue !== \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue) ||\n !(\"code\" in jsonValue) ||\n typeof jsonValue.code !== \"string\") {\n throw fallback;\n }\n const code = codeFromString(jsonValue.code);\n if (code === undefined) {\n throw fallback;\n }\n const message = jsonValue.message;\n if (message != null && typeof message !== \"string\") {\n throw fallback;\n }\n const error = new ConnectError(message !== null && message !== void 0 ? message : \"\", code, metadata);\n if (\"details\" in jsonValue && Array.isArray(jsonValue.details)) {\n for (const detail of jsonValue.details) {\n if (detail === null ||\n typeof detail != \"object\" ||\n Array.isArray(detail) ||\n typeof detail.type != \"string\" ||\n typeof detail.value != \"string\" ||\n (\"debug\" in detail && typeof detail.debug != \"object\")) {\n throw fallback;\n }\n try {\n error.details.push({\n type: detail.type,\n value: protoBase64.dec(detail.value),\n debug: detail.debug,\n });\n }\n catch (e) {\n throw fallback;\n }\n }\n }\n return error;\n}\n/**\n * Parse a Connect error from a serialized JSON value.\n * Will return a ConnectError, and throw the provided fallback if parsing failed.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorFromJsonBytes(bytes, metadata, fallback) {\n let jsonValue;\n try {\n jsonValue = JSON.parse(new TextDecoder().decode(bytes));\n }\n catch (e) {\n throw fallback;\n }\n return errorFromJson(jsonValue, metadata, fallback);\n}\n/**\n * Serialize the given error to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation in the \"debug\" key if the detail uses\n * google.protobuf.Any. If serialization of the \"debug\" value fails, it\n * is silently disregarded.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJson(error, jsonWriteOptions) {\n const o = {\n code: codeToString(error.code),\n };\n if (error.rawMessage.length > 0) {\n o.message = error.rawMessage;\n }\n if (error.details.length > 0) {\n o.details = error.details\n .map((value) => {\n if (value instanceof Message) {\n const i = {\n type: value.getType().typeName,\n value: value.toBinary(),\n };\n try {\n i.debug = value.toJson(jsonWriteOptions);\n }\n catch (e) {\n // We deliberately ignore errors that may occur when serializing\n // a message to JSON (the message contains an Any).\n // The rationale is that we are only trying to provide optional\n // debug information.\n }\n return i;\n }\n return value;\n })\n .map((_a) => {\n var { value } = _a, rest = __rest(_a, [\"value\"]);\n return (Object.assign(Object.assign({}, rest), { value: protoBase64.enc(value) }));\n });\n }\n return o;\n}\n/**\n * Serialize the given error to JSON. This calls errorToJson(), but stringifies\n * the result, and converts it into a UInt8Array.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function errorToJsonBytes(error, jsonWriteOptions) {\n const textEncoder = new TextEncoder();\n try {\n const jsonObject = errorToJson(error, jsonWriteOptions);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize Connect Error: ${m}`, Code.Internal);\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { errorFromJson, errorToJson } from \"./error-json.js\";\nimport { appendHeaders } from \"../http-headers.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * endStreamFlag indicates that the data in a EnvelopedMessage\n * is a EndStreamResponse of the Connect protocol.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const endStreamFlag = 0b00000010;\n/**\n * Parse an EndStreamResponse of the Connect protocol.\n * Throws a ConnectError on malformed input.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamFromJson(data) {\n const parseErr = new ConnectError(\"invalid end stream\", Code.InvalidArgument);\n let jsonValue;\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n jsonValue = JSON.parse(typeof data == \"string\" ? data : new TextDecoder().decode(data));\n }\n catch (e) {\n throw parseErr;\n }\n if (typeof jsonValue != \"object\" ||\n jsonValue == null ||\n Array.isArray(jsonValue)) {\n throw parseErr;\n }\n const metadata = new Headers();\n if (\"metadata\" in jsonValue) {\n if (typeof jsonValue.metadata != \"object\" ||\n jsonValue.metadata == null ||\n Array.isArray(jsonValue.metadata)) {\n throw parseErr;\n }\n for (const [key, values] of Object.entries(jsonValue.metadata)) {\n if (!Array.isArray(values) ||\n values.some((value) => typeof value != \"string\")) {\n throw parseErr;\n }\n for (const value of values) {\n metadata.append(key, value);\n }\n }\n }\n const error = \"error\" in jsonValue\n ? errorFromJson(jsonValue.error, metadata, parseErr)\n : undefined;\n return { metadata, error };\n}\n/**\n * Serialize the given EndStreamResponse to JSON.\n *\n * The JSON serialization options are required to produce the optional\n * human-readable representation of error details if the detail uses\n * google.protobuf.Any.\n *\n * See https://connectrpc.com/docs/protocol#error-end-stream\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function endStreamToJson(metadata, error, jsonWriteOptions) {\n const es = {};\n if (error !== undefined) {\n es.error = errorToJson(error, jsonWriteOptions);\n metadata = appendHeaders(metadata, error.metadata);\n }\n let hasMetadata = false;\n const md = {};\n metadata.forEach((value, key) => {\n hasMetadata = true;\n md[key] = [value];\n });\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasMetadata) {\n es.metadata = md;\n }\n return es;\n}\n/**\n * Create a Serialization object that serializes a Connect EndStreamResponse.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function createEndStreamSerialization(options) {\n const textEncoder = new TextEncoder();\n return {\n serialize(data) {\n try {\n const jsonObject = endStreamToJson(data.metadata, data.error, options);\n const jsonString = JSON.stringify(jsonObject);\n return textEncoder.encode(jsonString);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to serialize EndStreamResponse: ${m}`, Code.Internal);\n }\n },\n parse(data) {\n try {\n return endStreamFromJson(data);\n }\n catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n throw new ConnectError(`failed to parse EndStreamResponse: ${m}`, Code.InvalidArgument);\n }\n },\n };\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport const headerContentType = \"Content-Type\";\nexport const headerUnaryContentLength = \"Content-Length\";\nexport const headerUnaryEncoding = \"Content-Encoding\";\nexport const headerStreamEncoding = \"Connect-Content-Encoding\";\nexport const headerUnaryAcceptEncoding = \"Accept-Encoding\";\nexport const headerStreamAcceptEncoding = \"Connect-Accept-Encoding\";\nexport const headerTimeout = \"Connect-Timeout-Ms\";\nexport const headerProtocolVersion = \"Connect-Protocol-Version\";\nexport const headerUserAgent = \"User-Agent\";\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Code } from \"../code.js\";\n/**\n * Determine the Connect error code for the given HTTP status code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeFromHttpStatus(httpStatus) {\n switch (httpStatus) {\n case 400: // Bad Request\n return Code.InvalidArgument;\n case 401: // Unauthorized\n return Code.Unauthenticated;\n case 403: // Forbidden\n return Code.PermissionDenied;\n case 404: // Not Found\n return Code.Unimplemented;\n case 408: // Request Timeout\n return Code.DeadlineExceeded;\n case 409: // Conflict\n return Code.Aborted;\n case 412: // Precondition Failed\n return Code.FailedPrecondition;\n case 413: // Payload Too Large\n return Code.ResourceExhausted;\n case 415: // Unsupported Media Type\n return Code.Internal;\n case 429: // Too Many Requests\n return Code.Unavailable;\n case 431: // Request Header Fields Too Large\n return Code.ResourceExhausted;\n case 502: // Bad Gateway\n return Code.Unavailable;\n case 503: // Service Unavailable\n return Code.Unavailable;\n case 504: // Gateway Timeout\n return Code.Unavailable;\n default:\n return Code.Unknown;\n }\n}\n/**\n * Returns a HTTP status code for the given Connect code.\n * See https://connectrpc.com/docs/protocol#error-codes\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function codeToHttpStatus(code) {\n switch (code) {\n case Code.Canceled:\n return 408; // Request Timeout\n case Code.Unknown:\n return 500; // Internal Server Error\n case Code.InvalidArgument:\n return 400; // Bad Request\n case Code.DeadlineExceeded:\n return 408; // Request Timeout\n case Code.NotFound:\n return 404; // Not Found\n case Code.AlreadyExists:\n return 409; // Conflict\n case Code.PermissionDenied:\n return 403; // Forbidden\n case Code.ResourceExhausted:\n return 429; // Too Many Requests\n case Code.FailedPrecondition:\n return 412; // Precondition Failed\n case Code.Aborted:\n return 409; // Conflict\n case Code.OutOfRange:\n return 400; // Bad Request\n case Code.Unimplemented:\n return 404; // Not Found\n case Code.Internal:\n return 500; // Internal Server Error\n case Code.Unavailable:\n return 503; // Service Unavailable\n case Code.DataLoss:\n return 500; // Internal Server Error\n case Code.Unauthenticated:\n return 401; // Unauthorized\n default:\n return 500; // same as CodeUnknown\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function demuxes headers and trailers into two separate Headers\n * objects.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerDemux(header) {\n const h = new Headers(), t = new Headers();\n header.forEach((value, key) => {\n if (key.toLowerCase().startsWith(\"trailer-\")) {\n t.set(key.substring(8), value);\n }\n else {\n h.set(key, value);\n }\n });\n return [h, t];\n}\n/**\n * In unary RPCs, Connect transports trailing metadata as response header\n * fields, prefixed with \"trailer-\".\n *\n * This function muxes a header and a trailer into a single Headers object.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function trailerMux(header, trailer) {\n const h = new Headers(header);\n trailer.forEach((value, key) => {\n h.set(`trailer-${key}`, value);\n });\n return h;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { headerProtocolVersion } from \"./headers.js\";\nimport { paramConnectVersion } from \"./query-params.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { Code } from \"../code.js\";\n/**\n * The only know value for the header Connect-Protocol-Version.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport const protocolVersion = \"1\";\n/**\n * Requires the Connect-Protocol-Version header to be present with the expected\n * value. Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionHeader(requestHeader) {\n const v = requestHeader.get(headerProtocolVersion);\n if (v === null) {\n throw new ConnectError(`missing required header: set ${headerProtocolVersion} to \"${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== protocolVersion) {\n throw new ConnectError(`${headerProtocolVersion} must be \"${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n/**\n * Requires the connect query parameter to be present with the expected value.\n * Raises a ConnectError with Code.InvalidArgument otherwise.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requireProtocolVersionParam(queryParams) {\n const v = queryParams.get(paramConnectVersion);\n if (v === null) {\n throw new ConnectError(`missing required parameter: set ${paramConnectVersion} to \"v${protocolVersion}\"`, Code.InvalidArgument);\n }\n else if (v !== `v${protocolVersion}`) {\n throw new ConnectError(`${paramConnectVersion} must be \"v${protocolVersion}\": got \"${v}\"`, Code.InvalidArgument);\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerStreamAcceptEncoding, headerStreamEncoding, headerUnaryAcceptEncoding, headerUnaryEncoding, headerTimeout, headerProtocolVersion, headerUserAgent, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nimport { contentTypeStreamJson, contentTypeStreamProto, contentTypeUnaryJson, contentTypeUnaryProto, } from \"./content-type.js\";\n/**\n * Creates headers for a Connect request.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) {\n const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {});\n if (timeoutMs !== undefined) {\n result.set(headerTimeout, `${timeoutMs}`);\n }\n result.set(headerContentType, methodKind == MethodKind.Unary\n ? useBinaryFormat\n ? contentTypeUnaryProto\n : contentTypeUnaryJson\n : useBinaryFormat\n ? contentTypeStreamProto\n : contentTypeStreamJson);\n result.set(headerProtocolVersion, protocolVersion);\n if (setUserAgent) {\n result.set(headerUserAgent, \"connect-es/1.3.0\");\n }\n return result;\n}\n/**\n * Creates headers for a Connect request with compression.\n *\n * Note that we always set the Content-Encoding header for unary methods.\n * It is up to the caller to decide whether to apply compression - and remove\n * the header if compression is not used, for example because the payload is\n * too small to make compression effective.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function requestHeaderWithCompression(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, acceptCompression, sendCompression, setUserAgent) {\n const result = requestHeader(methodKind, useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent);\n if (sendCompression != null) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryEncoding\n : headerStreamEncoding;\n result.set(name, sendCompression.name);\n }\n if (acceptCompression.length > 0) {\n const name = methodKind == MethodKind.Unary\n ? headerUnaryAcceptEncoding\n : headerStreamAcceptEncoding;\n result.set(name, acceptCompression.map((c) => c.name).join(\",\"));\n }\n return result;\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { MethodKind } from \"@bufbuild/protobuf\";\nimport { Code } from \"../code.js\";\nimport { codeFromHttpStatus } from \"./http-status.js\";\nimport { ConnectError } from \"../connect-error.js\";\nimport { parseContentType } from \"./content-type.js\";\nimport { headerStreamEncoding, headerUnaryEncoding } from \"./headers.js\";\n/**\n * Validates response status and header for the Connect protocol.\n * Throws a ConnectError if the header indicates an error, or if\n * the content type is unexpected, with the following exception:\n * For unary RPCs with an HTTP error status, this returns an error\n * derived from the HTTP status instead of throwing it, giving an\n * implementation a chance to parse a Connect error from the wire.\n *\n * @private Internal code, does not follow semantic versioning.\n */\nexport function validateResponse(methodKind, status, headers) {\n const mimeType = headers.get(\"Content-Type\");\n const parsedType = parseContentType(mimeType);\n if (status !== 200) {\n const errorFromStatus = new ConnectError(`HTTP ${status}`, codeFromHttpStatus(status), headers);\n // If parsedType is defined and it is not binary, then this is a unary JSON response\n if (methodKind == MethodKind.Unary && parsedType && !parsedType.binary) {\n return { isUnaryError: true, unaryError: errorFromStatus };\n }\n throw errorFromStatus;\n }\n return { isUnaryError: false };\n}\n/**\n * Validates response status and header for the Connect protocol.\n * This function is identical to validateResponse(), but also verifies\n * that a given encoding header is acceptable.\n *\n * @private\n */\nexport function validateResponseWithCompression(methodKind, acceptCompression, status, headers) {\n let compression;\n const encoding = headers.get(methodKind == MethodKind.Unary ? headerUnaryEncoding : headerStreamEncoding);\n if (encoding != null && encoding.toLowerCase() !== \"identity\") {\n compression = acceptCompression.find((c) => c.name === encoding);\n if (!compression) {\n throw new ConnectError(`unsupported response encoding \"${encoding}\"`, Code.InvalidArgument, headers);\n }\n }\n return Object.assign({ compression }, validateResponse(methodKind, status, headers));\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { Message, protoBase64 } from \"@bufbuild/protobuf\";\nimport { headerContentType, headerProtocolVersion, headerUnaryAcceptEncoding, headerUnaryContentLength, headerUnaryEncoding, } from \"./headers.js\";\nimport { protocolVersion } from \"./version.js\";\nconst contentTypePrefix = \"application/\";\nfunction encodeMessageForUrl(message, useBase64) {\n if (useBase64) {\n // TODO(jchadwick-buf): Three regex replaces seems excessive.\n // Can we make protoBase64.enc more flexible?\n return protoBase64\n .enc(message)\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\");\n }\n else {\n return encodeURIComponent(new TextDecoder().decode(message));\n }\n}\n/**\n * @private Internal code, does not follow semantic versioning.\n */\nexport function transformConnectPostToGetRequest(request, message, useBase64) {\n let query = `?connect=v${protocolVersion}`;\n const contentType = request.header.get(headerContentType);\n if ((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(contentTypePrefix)) === 0) {\n query +=\n \"&encoding=\" +\n encodeURIComponent(contentType.slice(contentTypePrefix.length));\n }\n const compression = request.header.get(headerUnaryEncoding);\n if (compression !== null && compression !== \"identity\") {\n query += \"&compression=\" + encodeURIComponent(compression);\n // Force base64 for compressed payloads.\n useBase64 = true;\n }\n if (useBase64) {\n query += \"&base64=1\";\n }\n query += \"&message=\" + encodeMessageForUrl(message, useBase64);\n const url = request.url + query;\n // Omit headers that are not used for unary GET requests.\n const header = new Headers(request.header);\n [\n headerProtocolVersion,\n headerContentType,\n headerUnaryContentLength,\n headerUnaryEncoding,\n headerUnaryAcceptEncoding,\n ].forEach((h) => header.delete(h));\n return Object.assign(Object.assign({}, request), { init: Object.assign(Object.assign({}, request.init), { method: \"GET\" }), url,\n header });\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { ConnectError } from \"../connect-error.js\";\nimport { createDeadlineSignal, createLinkedAbortController, getAbortSignalReason, } from \"./signals.js\";\nimport { normalize, normalizeIterable } from \"./normalize.js\";\n/**\n * Runs a unary method with the given interceptors. Note that this function\n * is only used when implementing a Transport.\n */\nexport function runUnaryCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalize(opt.req.method.I, opt.req.message), signal });\n return next(req).then((res) => {\n done();\n return res;\n }, abort);\n}\n/**\n * Runs a server-streaming method with the given interceptors. Note that this\n * function is only used when implementing a Transport.\n */\nexport function runStreamingCall(opt) {\n const next = applyInterceptors(opt.next, opt.interceptors);\n const [signal, abort, done] = setupSignal(opt);\n const req = Object.assign(Object.assign({}, opt.req), { message: normalizeIterable(opt.req.method.I, opt.req.message), signal });\n let doneCalled = false;\n // Call return on the request iterable to indicate\n // that we will no longer consume it and it should\n // cleanup any allocated resources.\n signal.addEventListener(\"abort\", function () {\n var _a, _b;\n const it = opt.req.message[Symbol.asyncIterator]();\n // If the signal is aborted due to an error, we want to throw\n // the error to the request iterator.\n if (!doneCalled) {\n (_a = it.throw) === null || _a === void 0 ? void 0 : _a.call(it, this.reason).catch(() => {\n // throw returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n }\n (_b = it.return) === null || _b === void 0 ? void 0 : _b.call(it).catch(() => {\n // return returns a promise, which we don't care about.\n //\n // Uncaught promises are thrown at sometime/somewhere by the event loop,\n // this is to ensure error is caught and ignored.\n });\n });\n return next(req).then((res) => {\n return Object.assign(Object.assign({}, res), { message: {\n [Symbol.asyncIterator]() {\n const it = res.message[Symbol.asyncIterator]();\n return {\n next() {\n return it.next().then((r) => {\n if (r.done == true) {\n doneCalled = true;\n done();\n }\n return r;\n }, abort);\n },\n // We deliberately omit throw/return.\n };\n },\n } });\n }, abort);\n}\n/**\n * Create an AbortSignal for Transport implementations. The signal is available\n * in UnaryRequest and StreamingRequest, and is triggered when the call is\n * aborted (via a timeout or explicit cancellation), errored (e.g. when reading\n * an error from the server from the wire), or finished successfully.\n *\n * Transport implementations can pass the signal to HTTP clients to ensure that\n * there are no unused connections leak.\n *\n * Returns a tuple:\n * [0]: The signal, which is also aborted if the optional deadline is reached.\n * [1]: Function to call if the Transport encountered an error.\n * [2]: Function to call if the Transport finished without an error.\n */\nfunction setupSignal(opt) {\n const { signal, cleanup } = createDeadlineSignal(opt.timeoutMs);\n const controller = createLinkedAbortController(opt.signal, signal);\n return [\n controller.signal,\n function abort(reason) {\n // We peek at the deadline signal because fetch() will throw an error on\n // abort that discards the signal reason.\n const e = ConnectError.from(signal.aborted ? getAbortSignalReason(signal) : reason);\n controller.abort(e);\n cleanup();\n return Promise.reject(e);\n },\n function done() {\n cleanup();\n controller.abort();\n },\n ];\n}\n/**\n * applyInterceptors takes the given UnaryFn or ServerStreamingFn, and wraps\n * it with each of the given interceptors, returning a new UnaryFn or\n * ServerStreamingFn.\n */\nfunction applyInterceptors(next, interceptors) {\n var _a;\n return ((_a = interceptors === null || interceptors === void 0 ? void 0 : interceptors.concat().reverse().reduce(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n (n, i) => i(n), next)) !== null && _a !== void 0 ? _a : next);\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Asserts that the fetch API is available.\n */\nexport function assertFetchApi() {\n try {\n new Headers();\n }\n catch (_) {\n throw new Error(\"connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.\");\n }\n}\n", "// Copyright 2021-2024 The Connect Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Message, MethodIdempotency, MethodKind } from \"@bufbuild/protobuf\";\nimport { appendHeaders, createContextValues } from \"@connectrpc/connect\";\nimport { createClientMethodSerializers, createEnvelopeReadableStream, createMethodUrl, getJsonOptions, encodeEnvelope, runStreamingCall, runUnaryCall, } from \"@connectrpc/connect/protocol\";\nimport { endStreamFlag, endStreamFromJson, errorFromJson, requestHeader, trailerDemux, transformConnectPostToGetRequest, validateResponse, } from \"@connectrpc/connect/protocol-connect\";\nimport { assertFetchApi } from \"./assert-fetch-api.js\";\n/**\n * Create a Transport for the Connect protocol, which makes unary and\n * server-streaming methods available to web browsers. It uses the fetch\n * API to make HTTP requests.\n */\nexport function createConnectTransport(options) {\n var _a;\n assertFetchApi();\n const useBinaryFormat = (_a = options.useBinaryFormat) !== null && _a !== void 0 ? _a : false;\n return {\n async unary(service, method, signal, timeoutMs, header, message, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runUnaryCall({\n interceptors: options.interceptors,\n signal,\n timeoutMs,\n req: {\n stream: false,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message,\n },\n next: async (req) => {\n var _a;\n const useGet = options.useHttpGet === true &&\n method.idempotency === MethodIdempotency.NoSideEffects;\n let body = null;\n if (useGet) {\n req = transformConnectPostToGetRequest(req, serialize(req.message), useBinaryFormat);\n }\n else {\n body = serialize(req.message);\n }\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const response = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body }));\n const { isUnaryError, unaryError } = validateResponse(method.kind, response.status, response.headers);\n if (isUnaryError) {\n throw errorFromJson((await response.json()), appendHeaders(...trailerDemux(response.headers)), unaryError);\n }\n const [demuxedHeader, demuxedTrailer] = trailerDemux(response.headers);\n return {\n stream: false,\n service,\n method,\n header: demuxedHeader,\n message: useBinaryFormat\n ? parse(new Uint8Array(await response.arrayBuffer()))\n : method.O.fromJson((await response.json()), getJsonOptions(options.jsonOptions)),\n trailer: demuxedTrailer,\n };\n },\n });\n },\n async stream(service, method, signal, timeoutMs, header, input, contextValues) {\n var _a;\n const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n function parseResponseBody(body, trailerTarget, header) {\n return __asyncGenerator(this, arguments, function* parseResponseBody_1() {\n const reader = createEnvelopeReadableStream(body).getReader();\n let endStreamReceived = false;\n for (;;) {\n const result = yield __await(reader.read());\n if (result.done) {\n break;\n }\n const { flags, data } = result.value;\n if ((flags & endStreamFlag) === endStreamFlag) {\n endStreamReceived = true;\n const endStream = endStreamFromJson(data);\n if (endStream.error) {\n const error = endStream.error;\n header.forEach((value, key) => {\n error.metadata.append(key, value);\n });\n throw error;\n }\n endStream.metadata.forEach((value, key) => trailerTarget.set(key, value));\n continue;\n }\n yield yield __await(parse(data));\n }\n if (!endStreamReceived) {\n throw \"missing EndStreamResponse\";\n }\n });\n }\n async function createRequestBody(input) {\n if (method.kind != MethodKind.ServerStreaming) {\n throw \"The fetch API does not support streaming request bodies\";\n }\n const r = await input[Symbol.asyncIterator]().next();\n if (r.done == true) {\n throw \"missing request message\";\n }\n return encodeEnvelope(0, serialize(r.value));\n }\n timeoutMs =\n timeoutMs === undefined\n ? options.defaultTimeoutMs\n : timeoutMs <= 0\n ? undefined\n : timeoutMs;\n return await runStreamingCall({\n interceptors: options.interceptors,\n timeoutMs,\n signal,\n req: {\n stream: true,\n service,\n method,\n url: createMethodUrl(options.baseUrl, service, method),\n init: {\n method: \"POST\",\n credentials: (_a = options.credentials) !== null && _a !== void 0 ? _a : \"same-origin\",\n redirect: \"error\",\n mode: \"cors\",\n },\n header: requestHeader(method.kind, useBinaryFormat, timeoutMs, header, false),\n contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n message: input,\n },\n next: async (req) => {\n var _a;\n const fetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : globalThis.fetch;\n const fRes = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body: await createRequestBody(req.message) }));\n validateResponse(method.kind, fRes.status, fRes.headers);\n if (fRes.body === null) {\n throw \"missing response body\";\n }\n const trailer = new Headers();\n const res = Object.assign(Object.assign({}, req), { header: fRes.headers, trailer, message: parseResponseBody(fRes.body, trailer, fRes.headers) });\n return res;\n },\n });\n },\n };\n}\n", "import { ProtoflowService } from \"@/rpc/protoflow_connect\";\nimport { ContentService } from \"@/rpc/content/content_connect\";\nimport { UserService } from \"@/rpc/user/user_connect\";\nimport {ChatService} from \"@/rpc/chat/chat_connect\";\nimport {createConnectTransport} from \"@connectrpc/connect-web\";\nimport {createPromiseClient} from \"@connectrpc/connect\";\n\nexport const baseURL = process.env.BASE_URL;\n\nexport const transport = createConnectTransport({\n baseUrl: `${baseURL}/api` || 'error',\n // credentials: \"include\",\n});\n\nexport const projectService = createPromiseClient(ProtoflowService, transport);\nexport const contentService = createPromiseClient(ContentService, transport);\nexport const userService = createPromiseClient(UserService, transport);\nexport const chatService = createPromiseClient(ChatService, transport);", "\nexport type TabContent = {\n from: string;\n to: string;\n}\nexport const contentGet = 'content/get';\nexport const contentSave = 'content/save';\n", "/// \nimport {contentService, projectService, userService} from \"@/service\";\nimport {urlContent} from \"./util\";\nimport {contentGet, contentSave, TabContent} from \"./shared\";\nimport { Content } from \"@/rpc/content/content_pb\";\nimport HttpHeader = chrome.webRequest.HttpHeader;\n\nlet tabContent: TabContent|undefined = undefined;\nlet history: {\n from: string;\n to: string;\n time: number;\n}[] = [];\n\nconst tabs = new Map();\n\nfunction extractUuidFromUrl(url: string): string | null {\n const regex = /https:\\/\\/chat\\.openai\\.com\\/backend-api\\/conversation\\/([0-9a-fA-F\\-]+)/;\n const match = url.match(regex);\n return match ? match[1] : null;\n}\n\nconst chromeExt = () => {\n async function saveContent(content: Content) {\n try {\n const resp = await contentService.save({\n content: content,\n related: []\n });\n console.log(resp);\n } catch (e) {\n console.error('failed to save', e)\n }\n }\n\n (\n async () => {\n const resp = await userService.login({}, {});\n // TODO breadchris I think this has the whitelist config in it\n console.log(resp);\n }\n )()\n\n chrome.runtime.onInstalled.addListener(function() {\n console.log('Extension Installed');\n });\n\n chrome.runtime.onStartup.addListener(function() {\n console.log('Extension Started');\n })\n\n chrome.webNavigation.onCommitted.addListener((details) => {\n console.log('completed', details.url)\n });\n\n function getTabDetails(tabId: number): Promise {\n return new Promise((resolve, reject) => {\n chrome.tabs.get(tabId, tab => {\n if (chrome.runtime.lastError) {\n // Ignore errors, sometimes tabs might have already closed before we can fetch details\n resolve(undefined);\n } else {\n resolve(tab);\n }\n });\n });\n }\n\n chrome.runtime.onMessage.addListener(async (message, sender, sendResponse) => {\n // TODO breadchris replace with a typed action\n if (message.action === contentGet) {\n sendResponse({ data: tabContent });\n tabContent = undefined;\n }\n if (message.action === contentSave) {\n console.log('asdf')\n const content = Content.fromJson(message.data);\n try {\n await saveContent(content);\n } catch (e) {\n sendResponse({ data: { error: e } });\n return;\n }\n sendResponse({ data: {} });\n }\n });\n\n chrome.tabs.onUpdated.addListener(async (tabId, changeInfo, tab) => {\n if (!tabId) {\n return;\n }\n const tabDetails = await getTabDetails(tabId);\n if (tabDetails) {\n const t = tabs.get(tabId);\n if (t) {\n tabs.set(tabId, {\n ...t,\n tab: tabDetails\n });\n }\n }\n });\n\n chrome.tabs.onCreated.addListener(async (tab) => {\n if (!tab.id) {\n return;\n }\n const tabDetails = await getTabDetails(tab.id);\n if (tabDetails) {\n tabs.set(tab.id, {\n created: Date.now(),\n closed: -1,\n tab: tabDetails\n });\n }\n })\n\n chrome.tabs.onRemoved.addListener(async (tabId, removeInfo) => {\n const t = tabs.get(tabId);\n if (t) {\n const newTab = {\n ...t,\n closed: Date.now()\n }\n tabs.set(tabId, newTab);\n console.log('tab was opened for', (newTab.closed - newTab.created) / 1000, 'seconds')\n }\n });\n\n chrome.webRequest.onBeforeRequest.addListener(\n (details) => {\n if (!details.initiator || details.type !== 'main_frame') {\n return;\n }\n const u = new URL(details.initiator);\n const v = new URL(details.url);\n if (u.host === v.host) {\n return;\n }\n // TODO breadchris integrate whitelist\n if (u.host === 'news.ycombinator.com') {\n tabContent = {\n from: details.initiator,\n to: details.url\n }\n // TODO breadchris auto collecting config\n }\n console.log(`Visited URL: ${details.url}, Referrer: ${details.initiator}`);\n }, { urls: [\"\"] }, [])\n\n let headers: Record = {};\n let seen: Record = {};\n chrome.webRequest.onCompleted.addListener(\n (details) => {\n const s = seen[details.url.toString()] || 0;\n if (extractUuidFromUrl(details.url) && s < 2) {\n const h = headers[details.url.toString()];\n console.log('completed', details.url, details)\n fetch(details.url, {\n headers: h.map((v) => {\n return [v.name, v.value||'']\n })\n }).then((resp) => {\n // TODO breadchris create content and send it to the content script\n return resp.json();\n }).then((json) => {\n console.log('json', json)\n }).catch((e) => {\n console.error('failed to fetch', e)\n\n })\n }\n }, { urls: [\"\"] }, [])\n\n chrome.webRequest.onBeforeSendHeaders.addListener(\n (details) => {\n let refererValue = '';\n if (!details.requestHeaders) {\n return;\n }\n const s = seen[details.url.toString()] || 0;\n if (extractUuidFromUrl(details.url)) {\n seen[details.url.toString()] = s + 1;\n headers[details.url.toString()] = details.requestHeaders;\n console.log('send', details.url, details)\n }\n for (let header of details.requestHeaders) {\n if (header.name.toLowerCase() === \"referer\" && header.value) {\n refererValue = header.value;\n // console.log(`Visited URL: ${details.url}, Referrer: ${refererValue}`);\n break;\n }\n }\n // request details.url\n },\n { urls: [\"\"] }, // Monitor all URLs\n [\"requestHeaders\"] // Necessary to get the request headers\n );\n}\n\nconsole.log('asdf')\nchromeExt();\n\nexport {};"], + "mappings": "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", + "names": ["assert", "condition", "msg", "FLOAT32_MAX", "FLOAT32_MIN", "UINT32_MAX", "INT32_MAX", "INT32_MIN", "assertInt32", "arg", "assertUInt32", "assertFloat32", "enumTypeSymbol", "getEnumType", "enumObject", "t", "assert", "setEnumType", "typeName", "values", "opt", "makeEnumType", "v", "_opt", "names", "numbers", "normalValues", "value", "n", "normalizeEnumValue", "name", "no", "makeEnum", "Message", "other", "bytes", "options", "type", "format", "opt", "jsonValue", "jsonString", "json", "e", "bin", "writer", "_a", "value", "makeMessageType", "runtime", "typeName", "fields", "opt", "_a", "localName", "type", "data", "Message", "bytes", "options", "jsonValue", "jsonString", "a", "b", "makeProtoRuntime", "syntax", "json", "bin", "util", "typeName", "fields", "opt", "makeMessageType", "makeEnum", "makeEnumType", "getEnumType", "ScalarType", "LongType", "varint64read", "lowBits", "highBits", "shift", "b", "middleByte", "varint64write", "lo", "hi", "bytes", "i", "hasNext", "byte", "splitBits", "hasMoreBits", "TWO_PWR_32_DBL", "int64FromString", "dec", "minus", "base", "add1e6digit", "begin", "end", "digit1e6", "negate", "newBits", "int64ToString", "bits", "negative", "result", "uInt64ToString", "toUnsigned", "low", "mid", "high", "digitA", "digitB", "digitC", "decimalFrom1e7WithLeadingZeros", "digit1e7", "partial", "varint32write", "value", "varint32read", "readBytes", "makeInt64Support", "dv", "MIN", "MAX", "UMIN", "UMAX", "value", "bi", "lo", "hi", "assertInt64String", "assert", "assertUInt64String", "int64FromString", "int64ToString", "uInt64ToString", "protoInt64", "WireType", "BinaryWriter", "textEncoder", "len", "i", "bytes", "offset", "chunk", "prev", "fieldNo", "type", "value", "assertUInt32", "assertInt32", "varint32write", "assertFloat32", "view", "tc", "protoInt64", "varint64write", "sign", "lo", "hi", "BinaryReader", "buf", "textDecoder", "varint64read", "varint32read", "tag", "wireType", "start", "t", "zze", "s", "wrapField", "type", "value", "Message", "wktWrapperToScalarType", "ScalarType", "scalarEquals", "type", "a", "b", "ScalarType", "i", "scalarDefaultValue", "longType", "protoInt64", "scalarTypeInfo", "value", "isUndefined", "wireType", "WireType", "isIntrinsicDefault", "method", "unknownFieldsSymbol", "readDefaults", "bytes", "BinaryReader", "writeDefaults", "BinaryWriter", "makeReadOptions", "options", "makeWriteOptions", "makeBinaryFormatCommon", "message", "_a", "writer", "c", "f", "no", "wireType", "data", "m", "reader", "lengthOrEndTagFieldNo", "delimitedMessageEncoding", "type", "end", "fieldNo", "WireType", "field", "target", "repeated", "localName", "scalarType", "ScalarType", "read", "readScalar", "readScalarLTString", "arr", "e", "messageType", "readMessageField", "Message", "mapKey", "mapVal", "readMapEntry", "format", "delimited", "length", "key", "val", "keyRaw", "scalarDefaultValue", "LongType", "v", "writeMapEntry", "value", "keyValue", "assert", "writeScalar", "writeMessageField", "wrapField", "emitIntrinsicDefault", "method", "isIntrinsicDefault", "scalarTypeInfo", "writePacked", "i", "makeBinaryFormatProto3", "makeBinaryFormatCommon", "message", "writer", "options", "type", "field", "value", "repeated", "localName", "oneof", "scalarType", "ScalarType", "writePacked", "item", "writeScalar", "writeMessageField", "key", "val", "writeMapEntry", "encTable", "decTable", "i", "protoBase64", "base64Str", "es", "bytes", "bytePos", "groupPos", "b", "p", "base64", "jsonReadDefaults", "jsonWriteDefaults", "makeReadOptions", "options", "makeWriteOptions", "makeJsonFormatCommon", "makeWriteField", "writeField", "writeEnum", "writeScalar", "type", "json", "message", "oneofSeen", "jsonKey", "jsonValue", "field", "localName", "target", "seen", "targetArray", "jsonItem", "val", "readEnum", "readScalar", "e", "m", "targetMap", "jsonMapKey", "jsonMapValue", "LongType", "ScalarType", "messageType", "Message", "enumValue", "member", "oneof", "r", "debugJsonValue", "longType", "float", "assertFloat32", "int32", "assertUInt32", "assertInt32", "protoInt64", "long", "uLong", "protoBase64", "ignoreUnknownFields", "value", "emitIntrinsicDefault", "enumAsInteger", "_a", "assert", "makeJsonFormatProto3", "makeJsonFormatCommon", "writeEnum", "writeScalar", "field", "value", "options", "jsonObj", "entryKey", "entryValue", "val", "assert", "enumType", "jsonArr", "i", "wrapField", "makeUtilCommon", "setEnumType", "source", "target", "type", "member", "localName", "t", "s", "sk", "sourceField", "val", "ScalarType", "toU8Arr", "copy", "k", "v", "messageType", "mt", "a", "b", "m", "va", "vb", "i", "scalarEquals", "keys", "scalarType", "message", "any", "cloneSingularField", "key", "value", "Message", "c", "input", "InternalFieldList", "fields", "normalizer", "jsonName", "f", "fieldNo", "a", "b", "o", "localFieldName", "protoName", "inOneof", "name", "protoCamelCase", "safeObjectProperty", "safeMessageProperty", "localOneofName", "fieldJsonName", "protoCamelCase", "snakeCase", "capNext", "b", "i", "c", "reservedObjectProperties", "reservedMessageProperties", "fallback", "name", "safeMessageProperty", "safeObjectProperty", "InternalOneofInfo", "name", "localOneofName", "field", "assert", "localName", "i", "proto3", "makeProtoRuntime", "makeJsonFormatProto3", "makeBinaryFormatProto3", "makeUtilCommon", "fields", "InternalFieldList", "normalizeFieldInfosProto3", "target", "member", "name", "t", "scalarDefaultValue", "fieldInfos", "_a", "_b", "_c", "_d", "r", "o", "field", "f", "localFieldName", "fieldJsonName", "LongType", "ooname", "InternalOneofInfo", "ScalarType", "makeBinaryFormatProto2", "makeBinaryFormatCommon", "message", "writer", "options", "type", "field", "value", "repeated", "localName", "oneof", "scalarType", "ScalarType", "writePacked", "item", "writeScalar", "writeMessageField", "key", "val", "writeMapEntry", "e", "m", "r", "makeJsonFormatProto2", "makeJsonFormatCommon", "writeEnum", "writeScalar", "field", "value", "options", "jsonObj", "entryKey", "entryValue", "val", "assert", "enumType", "jsonArr", "i", "wrapField", "proto2", "makeProtoRuntime", "makeJsonFormatProto2", "makeBinaryFormatProto2", "makeUtilCommon", "fields", "InternalFieldList", "normalizeFieldInfosProto2", "target", "member", "name", "t", "fieldInfos", "_a", "_b", "_c", "_d", "_e", "r", "o", "field", "f", "localFieldName", "fieldJsonName", "LongType", "ooname", "InternalOneofInfo", "MethodKind", "MethodIdempotency", "Edition", "proto2", "FileDescriptorSet", "_FileDescriptorSet", "Message", "data", "bytes", "options", "jsonValue", "jsonString", "a", "b", "FileDescriptorProto", "_FileDescriptorProto", "DescriptorProto", "EnumDescriptorProto", "ServiceDescriptorProto", "FieldDescriptorProto", "FileOptions", "SourceCodeInfo", "_DescriptorProto", "DescriptorProto_ExtensionRange", "OneofDescriptorProto", "MessageOptions", "DescriptorProto_ReservedRange", "_DescriptorProto_ExtensionRange", "ExtensionRangeOptions", "_DescriptorProto_ReservedRange", "_ExtensionRangeOptions", "UninterpretedOption", "ExtensionRangeOptions_Declaration", "FeatureSet", "ExtensionRangeOptions_VerificationState", "_ExtensionRangeOptions_Declaration", "_FieldDescriptorProto", "FieldDescriptorProto_Label", "FieldDescriptorProto_Type", "FieldOptions", "_OneofDescriptorProto", "OneofOptions", "_EnumDescriptorProto", "EnumValueDescriptorProto", "EnumOptions", "EnumDescriptorProto_EnumReservedRange", "_EnumDescriptorProto_EnumReservedRange", "_EnumValueDescriptorProto", "EnumValueOptions", "_ServiceDescriptorProto", "MethodDescriptorProto", "ServiceOptions", "_MethodDescriptorProto", "MethodOptions", "_FileOptions", "FileOptions_OptimizeMode", "_MessageOptions", "_FieldOptions", "FieldOptions_CType", "FieldOptions_JSType", "FieldOptions_OptionRetention", "FieldOptions_OptionTargetType", "FieldOptions_EditionDefault", "_FieldOptions_EditionDefault", "_OneofOptions", "_EnumOptions", "_EnumValueOptions", "_ServiceOptions", "_MethodOptions", "MethodOptions_IdempotencyLevel", "_UninterpretedOption", "UninterpretedOption_NamePart", "_UninterpretedOption_NamePart", "_FeatureSet", "FeatureSet_FieldPresence", "FeatureSet_EnumType", "FeatureSet_RepeatedFieldEncoding", "FeatureSet_Utf8Validation", "FeatureSet_MessageEncoding", "FeatureSet_JsonFormat", "FeatureSetDefaults", "_FeatureSetDefaults", "FeatureSetDefaults_FeatureSetEditionDefault", "_FeatureSetDefaults_FeatureSetEditionDefault", "_SourceCodeInfo", "SourceCodeInfo_Location", "_SourceCodeInfo_Location", "GeneratedCodeInfo", "_GeneratedCodeInfo", "GeneratedCodeInfo_Annotation", "_GeneratedCodeInfo_Annotation", "GeneratedCodeInfo_Annotation_Semantic", "Empty", "_Empty", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "VerifyUserRequest", "_VerifyUserRequest", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "GroupInfoRequest", "_GroupInfoRequest", "GroupID", "_GroupID", "ShareRequest", "_ShareRequest", "GroupInvite", "_GroupInvite", "Groups", "_Groups", "Group", "AnalyzeConversationRequest", "_AnalyzeConversationRequest", "User", "_User", "Config", "_Group", "_Config", "LoginResponse", "_LoginResponse", "VoiceInputRequest", "_VoiceInputRequest", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "VoiceInputResponse", "_VoiceInputResponse", "Segment", "RelateRequest", "_RelateRequest", "Sources", "_Sources", "EnumeratedSource", "_EnumeratedSource", "Source", "DisplayContent", "_DisplayContent", "Content", "_Source", "Server", "Folder", "_Server", "_Folder", "SetTagsRequest", "_SetTagsRequest", "TagRequest", "_TagRequest", "Tags", "_Tags", "Tag", "_Tag", "ContentIDs", "_ContentIDs", "Contents", "_Contents", "Query", "_Query", "Results", "_Results", "StoredContent", "_StoredContent", "User", "Edge", "_Edge", "_Content", "Data", "Normalized", "Transformed", "Post", "Site", "_Post", "GitRepo", "_GitRepo", "_Data", "Text", "File", "URL", "_Normalized", "Article", "HTML", "Transcript", "ReadMe", "_Transformed", "Summary", "Categories", "_Article", "_HTML", "_ReadMe", "_Summary", "_Categories", "_File", "_Text", "_URL", "Token", "_Token", "protoInt64", "_Segment", "_Transcript", "GRPCTypeInfo", "_GRPCTypeInfo", "DescriptorProto", "EnumDescriptorProto", "_Site", "HugoConfig", "_HugoConfig", "ParamsConfig", "_ParamsConfig", "ProfileModeConfig", "HomeInfoParamsConfig", "SocialIconConfig", "EditPostConfig", "AssetsConfig", "_ProfileModeConfig", "ButtonConfig", "_ButtonConfig", "_HomeInfoParamsConfig", "_SocialIconConfig", "_EditPostConfig", "_AssetsConfig", "AnalyzeConversationRequest", "_AnalyzeConversationRequest", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "GenerateImagesRequest", "_GenerateImagesRequest", "GenerateImagesResponse", "_GenerateImagesResponse", "DeleteSessionRequest", "_DeleteSessionRequest", "Prompt", "_Prompt", "GetPromptsRequest", "_GetPromptsRequest", "GetPromptsResponse", "_GetPromptsResponse", "InferRequest", "_InferRequest", "InferResponse", "_InferResponse", "UploadContentRequest", "_UploadContentRequest", "Content", "UploadContentResponse", "_UploadContentResponse", "GetSessionRequest", "_GetSessionRequest", "GetSessionResponse", "_GetSessionResponse", "Session", "GetSessionsRequest", "_GetSessionsRequest", "protoInt64", "GetSessionsResponse", "_GetSessionsResponse", "Token", "_Token", "Segment", "_Segment", "_Session", "TranscriptionRequest", "_TranscriptionRequest", "RegisterFlags", "_RegisterFlags", "OCRText", "_OCRText", "Image", "_Image", "ConvertFileRequest", "_ConvertFileRequest", "ChatRequest", "_ChatRequest", "ChatResponse", "_ChatResponse", "YouTubeVideo", "_YouTubeVideo", "FilePath", "_FilePath", "YouTubeVideoResponse", "_YouTubeVideoResponse", "AnalyzeConversationResponse", "_AnalyzeConversationResponse", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "AnalyzeContent", "_AnalyzeContent", "ProtoflowService", "YouTubeVideo", "YouTubeVideoResponse", "MethodKind", "GetSessionsRequest", "GetSessionsResponse", "GetSessionRequest", "GetSessionResponse", "DeleteSessionRequest", "Empty", "GetPromptsRequest", "GetPromptsResponse", "Prompt", "UploadContentRequest", "ChatResponse", "InferRequest", "InferResponse", "ChatRequest", "ConvertFileRequest", "FilePath", "GenerateImagesRequest", "GenerateImagesResponse", "AnalyzeConversationRequest", "AnalyzeConversationResponse", "ContentService", "Contents", "ContentIDs", "MethodKind", "Query", "Results", "RelateRequest", "Empty", "Content", "TagRequest", "Tags", "SetTagsRequest", "Sources", "GRPCTypeInfo", "VoiceInputRequest", "VoiceInputResponse", "UserService", "User", "MethodKind", "Empty", "VerifyUserRequest", "Config", "GroupID", "GroupInvite", "Group", "GroupInfoRequest", "Groups", "ShareRequest", "BanUserRequest", "_BanUserRequest", "Message", "data", "proto3", "bytes", "options", "jsonValue", "jsonString", "a", "b", "BanUserResponse", "_BanUserResponse", "SendMessageRequest", "_SendMessageRequest", "SendMessageResponse", "_SendMessageResponse", "ReceiveMessagesRequest", "_ReceiveMessagesRequest", "_Message", "protoInt64", "ChatService", "SendMessageRequest", "SendMessageResponse", "MethodKind", "ReceiveMessagesRequest", "Message", "BanUserRequest", "BanUserResponse", "Code", "codeToString", "value", "name", "Code", "c", "stringToCode", "codeFromString", "ConnectError", "_ConnectError", "message", "code", "Code", "metadata", "outgoingDetails", "cause", "createMessage", "reason", "v", "typeOrRegistry", "registry", "typeName", "details", "data", "Message", "type", "codeToString", "appendHeaders", "headers", "h", "e", "value", "key", "makeAnyClient", "service", "createMethod", "client", "localName", "methodInfo", "method", "createEnvelopeReadableStream", "stream", "reader", "buffer", "append", "chunk", "n", "controller", "header", "length", "i", "result", "ConnectError", "Code", "data", "encodeEnvelope", "flags", "data", "bytes", "v", "__asyncValues", "o", "m", "i", "verb", "n", "v", "resolve", "reject", "settle", "d", "__await", "__asyncGenerator", "thisArg", "_arguments", "generator", "g", "q", "awaitReturn", "f", "a", "b", "resume", "step", "e", "r", "fulfill", "value", "__asyncDelegator", "p", "createAsyncIterable", "items", "__asyncGenerator", "__await", "__asyncDelegator", "__asyncValues", "__asyncValues", "o", "m", "i", "verb", "n", "v", "resolve", "reject", "settle", "d", "__await", "__asyncDelegator", "p", "e", "f", "__asyncGenerator", "thisArg", "_arguments", "generator", "g", "q", "awaitReturn", "a", "b", "resume", "step", "r", "fulfill", "value", "createPromiseClient", "service", "transport", "makeAnyClient", "method", "MethodKind", "createUnaryFn", "createServerStreamingFn", "createClientStreamingFn", "createBiDiStreamingFn", "input", "options", "_a", "_b", "response", "handleStreamResponse", "createAsyncIterable", "request", "e_1", "_c", "_d", "_e", "singleMessage", "_f", "_g", "_h", "e_1_1", "ConnectError", "Code", "stream", "it", "createLinkedAbortController", "signals", "controller", "sa", "s", "signal", "onAbort", "getAbortSignalReason", "createDeadlineSignal", "timeoutMs", "listener", "ConnectError", "Code", "timeoutId", "createContextValues", "key", "value", "createMethodUrl", "baseUrl", "service", "method", "s", "m", "normalize", "type", "message", "normalizeIterable", "messageType", "input", "transform", "result", "it", "res", "e", "v", "getJsonOptions", "options", "_a", "o", "createClientMethodSerializers", "method", "useBinaryFormat", "jsonOptions", "binaryOptions", "input", "createBinarySerialization", "createJsonSerialization", "createBinarySerialization", "messageType", "options", "data", "e", "m", "ConnectError", "Code", "createJsonSerialization", "_a", "_b", "textEncoder", "textDecoder", "o", "getJsonOptions", "json", "contentTypeRegExp", "contentTypeUnaryProto", "contentTypeUnaryJson", "contentTypeStreamProto", "contentTypeStreamJson", "parseContentType", "contentType", "match", "contentTypeRegExp", "stream", "binary", "errorFromJson", "jsonValue", "metadata", "fallback", "value", "key", "code", "codeFromString", "message", "error", "ConnectError", "detail", "protoBase64", "endStreamFlag", "endStreamFromJson", "data", "parseErr", "ConnectError", "Code", "jsonValue", "metadata", "key", "values", "value", "error", "errorFromJson", "headerContentType", "headerUnaryContentLength", "headerUnaryEncoding", "headerUnaryAcceptEncoding", "headerTimeout", "headerProtocolVersion", "headerUserAgent", "codeFromHttpStatus", "httpStatus", "Code", "trailerDemux", "header", "h", "value", "key", "protocolVersion", "requestHeader", "methodKind", "useBinaryFormat", "timeoutMs", "userProvidedHeaders", "setUserAgent", "result", "headerTimeout", "headerContentType", "MethodKind", "contentTypeUnaryProto", "contentTypeUnaryJson", "contentTypeStreamProto", "contentTypeStreamJson", "headerProtocolVersion", "protocolVersion", "headerUserAgent", "validateResponse", "methodKind", "status", "headers", "mimeType", "parsedType", "parseContentType", "errorFromStatus", "ConnectError", "codeFromHttpStatus", "MethodKind", "contentTypePrefix", "encodeMessageForUrl", "message", "useBase64", "protoBase64", "transformConnectPostToGetRequest", "request", "query", "protocolVersion", "contentType", "headerContentType", "compression", "headerUnaryEncoding", "url", "header", "headerProtocolVersion", "headerUnaryContentLength", "headerUnaryAcceptEncoding", "h", "runUnaryCall", "opt", "next", "applyInterceptors", "signal", "abort", "done", "setupSignal", "req", "normalize", "res", "runStreamingCall", "normalizeIterable", "doneCalled", "_a", "_b", "it", "r", "cleanup", "createDeadlineSignal", "controller", "createLinkedAbortController", "reason", "e", "ConnectError", "getAbortSignalReason", "interceptors", "n", "i", "assertFetchApi", "__await", "v", "__asyncGenerator", "thisArg", "_arguments", "generator", "g", "i", "q", "verb", "awaitReturn", "f", "reject", "n", "a", "b", "resume", "step", "e", "settle", "r", "fulfill", "value", "createConnectTransport", "options", "_a", "assertFetchApi", "useBinaryFormat", "service", "method", "signal", "timeoutMs", "header", "message", "contextValues", "serialize", "parse", "createClientMethodSerializers", "runUnaryCall", "createMethodUrl", "requestHeader", "createContextValues", "req", "useGet", "MethodIdempotency", "body", "transformConnectPostToGetRequest", "response", "isUnaryError", "unaryError", "validateResponse", "errorFromJson", "appendHeaders", "trailerDemux", "demuxedHeader", "demuxedTrailer", "getJsonOptions", "input", "parseResponseBody", "trailerTarget", "reader", "createEnvelopeReadableStream", "endStreamReceived", "result", "flags", "data", "endStreamFlag", "endStream", "endStreamFromJson", "error", "key", "createRequestBody", "MethodKind", "encodeEnvelope", "runStreamingCall", "fRes", "trailer", "baseURL", "transport", "createConnectTransport", "projectService", "createPromiseClient", "ProtoflowService", "contentService", "ContentService", "userService", "UserService", "chatService", "ChatService", "contentGet", "contentSave", "tabContent", "tabs", "extractUuidFromUrl", "url", "regex", "match", "chromeExt", "saveContent", "content", "resp", "contentService", "e", "userService", "details", "getTabDetails", "tabId", "resolve", "reject", "tab", "message", "sender", "sendResponse", "contentGet", "tabContent", "contentSave", "Content", "changeInfo", "tabDetails", "t", "removeInfo", "newTab", "u", "v", "headers", "seen", "s", "h", "json", "refererValue", "header"] } diff --git a/js/dist/extension/content.js b/js/dist/extension/content.js index 2b529b1c..37780fbc 100644 --- a/js/dist/extension/content.js +++ b/js/dist/extension/content.js @@ -1,36389 +1,21 @@ -"use strict"; -(() => { - var __create = Object.create; - var __defProp = Object.defineProperty; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __getProtoOf = Object.getPrototypeOf; - var __hasOwnProp = Object.prototype.hasOwnProperty; - var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; - }; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); - }; - var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; - }; - var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod - )); - var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - - // ../node_modules/react/cjs/react.development.js - var require_react_development = __commonJS({ - "../node_modules/react/cjs/react.development.js"(exports, module) { - "use strict"; - if (true) { - (function() { - "use strict"; - if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") { - __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error()); - } - var ReactVersion = "18.2.0"; - var REACT_ELEMENT_TYPE = Symbol.for("react.element"); - var REACT_PORTAL_TYPE = Symbol.for("react.portal"); - var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"); - var REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"); - var REACT_PROFILER_TYPE = Symbol.for("react.profiler"); - var REACT_PROVIDER_TYPE = Symbol.for("react.provider"); - var REACT_CONTEXT_TYPE = Symbol.for("react.context"); - var REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"); - var REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"); - var REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"); - var REACT_MEMO_TYPE = Symbol.for("react.memo"); - var REACT_LAZY_TYPE = Symbol.for("react.lazy"); - var REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen"); - var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = "@@iterator"; - function getIteratorFn(maybeIterable) { - if (maybeIterable === null || typeof maybeIterable !== "object") { - return null; - } - var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; - if (typeof maybeIterator === "function") { - return maybeIterator; - } - return null; - } - var ReactCurrentDispatcher = { - /** - * @internal - * @type {ReactComponent} - */ - current: null - }; - var ReactCurrentBatchConfig = { - transition: null - }; - var ReactCurrentActQueue = { - current: null, - // Used to reproduce behavior of `batchedUpdates` in legacy mode. - isBatchingLegacy: false, - didScheduleLegacyUpdate: false - }; - var ReactCurrentOwner = { - /** - * @internal - * @type {ReactComponent} - */ - current: null - }; - var ReactDebugCurrentFrame = {}; - var currentExtraStackFrame = null; - function setExtraStackFrame(stack) { - { - currentExtraStackFrame = stack; - } - } - { - ReactDebugCurrentFrame.setExtraStackFrame = function(stack) { - { - currentExtraStackFrame = stack; - } - }; - ReactDebugCurrentFrame.getCurrentStack = null; - ReactDebugCurrentFrame.getStackAddendum = function() { - var stack = ""; - if (currentExtraStackFrame) { - stack += currentExtraStackFrame; - } - var impl = ReactDebugCurrentFrame.getCurrentStack; - if (impl) { - stack += impl() || ""; - } - return stack; - }; - } - var enableScopeAPI = false; - var enableCacheElement = false; - var enableTransitionTracing = false; - var enableLegacyHidden = false; - var enableDebugTracing = false; - var ReactSharedInternals = { - ReactCurrentDispatcher, - ReactCurrentBatchConfig, - ReactCurrentOwner - }; - { - ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame; - ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue; - } - function warn(format) { - { - { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - printWarning("warn", format, args); - } - } - } - function error(format) { - { - { - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - printWarning("error", format, args); - } - } - } - function printWarning(level, format, args) { - { - var ReactDebugCurrentFrame2 = ReactSharedInternals.ReactDebugCurrentFrame; - var stack = ReactDebugCurrentFrame2.getStackAddendum(); - if (stack !== "") { - format += "%s"; - args = args.concat([stack]); - } - var argsWithFormat = args.map(function(item) { - return String(item); - }); - argsWithFormat.unshift("Warning: " + format); - Function.prototype.apply.call(console[level], console, argsWithFormat); - } - } - var didWarnStateUpdateForUnmountedComponent = {}; - function warnNoop(publicInstance, callerName) { - { - var _constructor = publicInstance.constructor; - var componentName = _constructor && (_constructor.displayName || _constructor.name) || "ReactClass"; - var warningKey = componentName + "." + callerName; - if (didWarnStateUpdateForUnmountedComponent[warningKey]) { - return; - } - error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.", callerName, componentName); - didWarnStateUpdateForUnmountedComponent[warningKey] = true; - } - } - var ReactNoopUpdateQueue = { - /** - * Checks whether or not this composite component is mounted. - * @param {ReactClass} publicInstance The instance we want to test. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function(publicInstance) { - return false; - }, - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {?function} callback Called after component is updated. - * @param {?string} callerName name of the calling function in the public API. - * @internal - */ - enqueueForceUpdate: function(publicInstance, callback, callerName) { - warnNoop(publicInstance, "forceUpdate"); - }, - /** - * Replaces all of the state. Always use this or `setState` to mutate state. - * You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} completeState Next state. - * @param {?function} callback Called after component is updated. - * @param {?string} callerName name of the calling function in the public API. - * @internal - */ - enqueueReplaceState: function(publicInstance, completeState, callback, callerName) { - warnNoop(publicInstance, "replaceState"); - }, - /** - * Sets a subset of the state. This only exists because _pendingState is - * internal. This provides a merging strategy that is not available to deep - * properties which is confusing. TODO: Expose pendingState or don't use it - * during the merge. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialState Next partial state to be merged with state. - * @param {?function} callback Called after component is updated. - * @param {?string} Name of the calling function in the public API. - * @internal - */ - enqueueSetState: function(publicInstance, partialState, callback, callerName) { - warnNoop(publicInstance, "setState"); - } - }; - var assign = Object.assign; - var emptyObject = {}; - { - Object.freeze(emptyObject); - } - function Component(props, context, updater) { - this.props = props; - this.context = context; - this.refs = emptyObject; - this.updater = updater || ReactNoopUpdateQueue; - } - Component.prototype.isReactComponent = {}; - Component.prototype.setState = function(partialState, callback) { - if (typeof partialState !== "object" && typeof partialState !== "function" && partialState != null) { - throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables."); - } - this.updater.enqueueSetState(this, partialState, callback, "setState"); - }; - Component.prototype.forceUpdate = function(callback) { - this.updater.enqueueForceUpdate(this, callback, "forceUpdate"); - }; - { - var deprecatedAPIs = { - isMounted: ["isMounted", "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."], - replaceState: ["replaceState", "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."] - }; - var defineDeprecationWarning = function(methodName, info) { - Object.defineProperty(Component.prototype, methodName, { - get: function() { - warn("%s(...) is deprecated in plain JavaScript React classes. %s", info[0], info[1]); - return void 0; - } - }); - }; - for (var fnName in deprecatedAPIs) { - if (deprecatedAPIs.hasOwnProperty(fnName)) { - defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); - } - } - } - function ComponentDummy() { - } - ComponentDummy.prototype = Component.prototype; - function PureComponent(props, context, updater) { - this.props = props; - this.context = context; - this.refs = emptyObject; - this.updater = updater || ReactNoopUpdateQueue; - } - var pureComponentPrototype = PureComponent.prototype = new ComponentDummy(); - pureComponentPrototype.constructor = PureComponent; - assign(pureComponentPrototype, Component.prototype); - pureComponentPrototype.isPureReactComponent = true; - function createRef() { - var refObject = { - current: null - }; - { - Object.seal(refObject); - } - return refObject; - } - var isArrayImpl = Array.isArray; - function isArray(a) { - return isArrayImpl(a); - } - function typeName(value) { - { - var hasToStringTag = typeof Symbol === "function" && Symbol.toStringTag; - var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object"; - return type; - } - } - function willCoercionThrow(value) { - { - try { - testStringCoercion(value); - return false; - } catch (e) { - return true; - } - } - } - function testStringCoercion(value) { - return "" + value; - } - function checkKeyStringCoercion(value) { - { - if (willCoercionThrow(value)) { - error("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", typeName(value)); - return testStringCoercion(value); - } - } - } - function getWrappedName(outerType, innerType, wrapperName) { - var displayName = outerType.displayName; - if (displayName) { - return displayName; - } - var functionName = innerType.displayName || innerType.name || ""; - return functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName; - } - function getContextName(type) { - return type.displayName || "Context"; - } - function getComponentNameFromType(type) { - if (type == null) { - return null; - } - { - if (typeof type.tag === "number") { - error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."); - } - } - if (typeof type === "function") { - return type.displayName || type.name || null; - } - if (typeof type === "string") { - return type; - } - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - } - if (typeof type === "object") { - switch (type.$$typeof) { - case REACT_CONTEXT_TYPE: - var context = type; - return getContextName(context) + ".Consumer"; - case REACT_PROVIDER_TYPE: - var provider = type; - return getContextName(provider._context) + ".Provider"; - case REACT_FORWARD_REF_TYPE: - return getWrappedName(type, type.render, "ForwardRef"); - case REACT_MEMO_TYPE: - var outerName = type.displayName || null; - if (outerName !== null) { - return outerName; - } - return getComponentNameFromType(type.type) || "Memo"; - case REACT_LAZY_TYPE: { - var lazyComponent = type; - var payload = lazyComponent._payload; - var init = lazyComponent._init; - try { - return getComponentNameFromType(init(payload)); - } catch (x) { - return null; - } - } - } - } - return null; - } - var hasOwnProperty = Object.prototype.hasOwnProperty; - var RESERVED_PROPS = { - key: true, - ref: true, - __self: true, - __source: true - }; - var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs; - { - didWarnAboutStringRefs = {}; - } - function hasValidRef(config) { - { - if (hasOwnProperty.call(config, "ref")) { - var getter = Object.getOwnPropertyDescriptor(config, "ref").get; - if (getter && getter.isReactWarning) { - return false; - } - } - } - return config.ref !== void 0; - } - function hasValidKey(config) { - { - if (hasOwnProperty.call(config, "key")) { - var getter = Object.getOwnPropertyDescriptor(config, "key").get; - if (getter && getter.isReactWarning) { - return false; - } - } - } - return config.key !== void 0; - } - function defineKeyPropWarningGetter(props, displayName) { - var warnAboutAccessingKey = function() { - { - if (!specialPropKeyWarningShown) { - specialPropKeyWarningShown = true; - error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName); - } - } - }; - warnAboutAccessingKey.isReactWarning = true; - Object.defineProperty(props, "key", { - get: warnAboutAccessingKey, - configurable: true - }); - } - function defineRefPropWarningGetter(props, displayName) { - var warnAboutAccessingRef = function() { - { - if (!specialPropRefWarningShown) { - specialPropRefWarningShown = true; - error("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName); - } - } - }; - warnAboutAccessingRef.isReactWarning = true; - Object.defineProperty(props, "ref", { - get: warnAboutAccessingRef, - configurable: true - }); - } - function warnIfStringRefCannotBeAutoConverted(config) { - { - if (typeof config.ref === "string" && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) { - var componentName = getComponentNameFromType(ReactCurrentOwner.current.type); - if (!didWarnAboutStringRefs[componentName]) { - error('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref); - didWarnAboutStringRefs[componentName] = true; - } - } - } - } - var ReactElement = function(type, key, ref, self, source, owner, props) { - var element = { - // This tag allows us to uniquely identify this as a React Element - $$typeof: REACT_ELEMENT_TYPE, - // Built-in properties that belong on the element - type, - key, - ref, - props, - // Record the component responsible for creating this element. - _owner: owner - }; - { - element._store = {}; - Object.defineProperty(element._store, "validated", { - configurable: false, - enumerable: false, - writable: true, - value: false - }); - Object.defineProperty(element, "_self", { - configurable: false, - enumerable: false, - writable: false, - value: self - }); - Object.defineProperty(element, "_source", { - configurable: false, - enumerable: false, - writable: false, - value: source - }); - if (Object.freeze) { - Object.freeze(element.props); - Object.freeze(element); - } - } - return element; - }; - function createElement(type, config, children) { - var propName; - var props = {}; - var key = null; - var ref = null; - var self = null; - var source = null; - if (config != null) { - if (hasValidRef(config)) { - ref = config.ref; - { - warnIfStringRefCannotBeAutoConverted(config); - } - } - if (hasValidKey(config)) { - { - checkKeyStringCoercion(config.key); - } - key = "" + config.key; - } - self = config.__self === void 0 ? null : config.__self; - source = config.__source === void 0 ? null : config.__source; - for (propName in config) { - if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { - props[propName] = config[propName]; - } - } - } - var childrenLength = arguments.length - 2; - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - { - if (Object.freeze) { - Object.freeze(childArray); - } - } - props.children = childArray; - } - if (type && type.defaultProps) { - var defaultProps = type.defaultProps; - for (propName in defaultProps) { - if (props[propName] === void 0) { - props[propName] = defaultProps[propName]; - } - } - } - { - if (key || ref) { - var displayName = typeof type === "function" ? type.displayName || type.name || "Unknown" : type; - if (key) { - defineKeyPropWarningGetter(props, displayName); - } - if (ref) { - defineRefPropWarningGetter(props, displayName); - } - } - } - return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); - } - function cloneAndReplaceKey(oldElement, newKey) { - var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); - return newElement; - } - function cloneElement(element, config, children) { - if (element === null || element === void 0) { - throw new Error("React.cloneElement(...): The argument must be a React element, but you passed " + element + "."); - } - var propName; - var props = assign({}, element.props); - var key = element.key; - var ref = element.ref; - var self = element._self; - var source = element._source; - var owner = element._owner; - if (config != null) { - if (hasValidRef(config)) { - ref = config.ref; - owner = ReactCurrentOwner.current; - } - if (hasValidKey(config)) { - { - checkKeyStringCoercion(config.key); - } - key = "" + config.key; - } - var defaultProps; - if (element.type && element.type.defaultProps) { - defaultProps = element.type.defaultProps; - } - for (propName in config) { - if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { - if (config[propName] === void 0 && defaultProps !== void 0) { - props[propName] = defaultProps[propName]; - } else { - props[propName] = config[propName]; - } - } - } - } - var childrenLength = arguments.length - 2; - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - props.children = childArray; - } - return ReactElement(element.type, key, ref, self, source, owner, props); - } - function isValidElement(object) { - return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; - } - var SEPARATOR = "."; - var SUBSEPARATOR = ":"; - function escape(key) { - var escapeRegex = /[=:]/g; - var escaperLookup = { - "=": "=0", - ":": "=2" - }; - var escapedString = key.replace(escapeRegex, function(match) { - return escaperLookup[match]; - }); - return "$" + escapedString; - } - var didWarnAboutMaps = false; - var userProvidedKeyEscapeRegex = /\/+/g; - function escapeUserProvidedKey(text) { - return text.replace(userProvidedKeyEscapeRegex, "$&/"); - } - function getElementKey(element, index) { - if (typeof element === "object" && element !== null && element.key != null) { - { - checkKeyStringCoercion(element.key); - } - return escape("" + element.key); - } - return index.toString(36); - } - function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) { - var type = typeof children; - if (type === "undefined" || type === "boolean") { - children = null; - } - var invokeCallback = false; - if (children === null) { - invokeCallback = true; - } else { - switch (type) { - case "string": - case "number": - invokeCallback = true; - break; - case "object": - switch (children.$$typeof) { - case REACT_ELEMENT_TYPE: - case REACT_PORTAL_TYPE: - invokeCallback = true; - } - } - } - if (invokeCallback) { - var _child = children; - var mappedChild = callback(_child); - var childKey = nameSoFar === "" ? SEPARATOR + getElementKey(_child, 0) : nameSoFar; - if (isArray(mappedChild)) { - var escapedChildKey = ""; - if (childKey != null) { - escapedChildKey = escapeUserProvidedKey(childKey) + "/"; - } - mapIntoArray(mappedChild, array, escapedChildKey, "", function(c) { - return c; - }); - } else if (mappedChild != null) { - if (isValidElement(mappedChild)) { - { - if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) { - checkKeyStringCoercion(mappedChild.key); - } - } - mappedChild = cloneAndReplaceKey( - mappedChild, - // Keep both the (mapped) and old keys if they differ, just as - // traverseAllChildren used to do for objects as children - escapedPrefix + // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key - (mappedChild.key && (!_child || _child.key !== mappedChild.key) ? ( - // $FlowFixMe Flow incorrectly thinks existing element's key can be a number - // eslint-disable-next-line react-internal/safe-string-coercion - escapeUserProvidedKey("" + mappedChild.key) + "/" - ) : "") + childKey - ); - } - array.push(mappedChild); - } - return 1; - } - var child; - var nextName; - var subtreeCount = 0; - var nextNamePrefix = nameSoFar === "" ? SEPARATOR : nameSoFar + SUBSEPARATOR; - if (isArray(children)) { - for (var i = 0; i < children.length; i++) { - child = children[i]; - nextName = nextNamePrefix + getElementKey(child, i); - subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback); - } - } else { - var iteratorFn = getIteratorFn(children); - if (typeof iteratorFn === "function") { - var iterableChildren = children; - { - if (iteratorFn === iterableChildren.entries) { - if (!didWarnAboutMaps) { - warn("Using Maps as children is not supported. Use an array of keyed ReactElements instead."); - } - didWarnAboutMaps = true; - } - } - var iterator = iteratorFn.call(iterableChildren); - var step; - var ii = 0; - while (!(step = iterator.next()).done) { - child = step.value; - nextName = nextNamePrefix + getElementKey(child, ii++); - subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback); - } - } else if (type === "object") { - var childrenString = String(children); - throw new Error("Objects are not valid as a React child (found: " + (childrenString === "[object Object]" ? "object with keys {" + Object.keys(children).join(", ") + "}" : childrenString) + "). If you meant to render a collection of children, use an array instead."); - } - } - return subtreeCount; - } - function mapChildren(children, func, context) { - if (children == null) { - return children; - } - var result = []; - var count = 0; - mapIntoArray(children, result, "", "", function(child) { - return func.call(context, child, count++); - }); - return result; - } - function countChildren(children) { - var n = 0; - mapChildren(children, function() { - n++; - }); - return n; - } - function forEachChildren(children, forEachFunc, forEachContext) { - mapChildren(children, function() { - forEachFunc.apply(this, arguments); - }, forEachContext); - } - function toArray(children) { - return mapChildren(children, function(child) { - return child; - }) || []; - } - function onlyChild(children) { - if (!isValidElement(children)) { - throw new Error("React.Children.only expected to receive a single React element child."); - } - return children; - } - function createContext(defaultValue) { - var context = { - $$typeof: REACT_CONTEXT_TYPE, - // As a workaround to support multiple concurrent renderers, we categorize - // some renderers as primary and others as secondary. We only expect - // there to be two concurrent renderers at most: React Native (primary) and - // Fabric (secondary); React DOM (primary) and React ART (secondary). - // Secondary renderers store their context values on separate fields. - _currentValue: defaultValue, - _currentValue2: defaultValue, - // Used to track how many concurrent renderers this context currently - // supports within in a single renderer. Such as parallel server rendering. - _threadCount: 0, - // These are circular - Provider: null, - Consumer: null, - // Add these to use same hidden class in VM as ServerContext - _defaultValue: null, - _globalName: null - }; - context.Provider = { - $$typeof: REACT_PROVIDER_TYPE, - _context: context - }; - var hasWarnedAboutUsingNestedContextConsumers = false; - var hasWarnedAboutUsingConsumerProvider = false; - var hasWarnedAboutDisplayNameOnConsumer = false; - { - var Consumer = { - $$typeof: REACT_CONTEXT_TYPE, - _context: context - }; - Object.defineProperties(Consumer, { - Provider: { - get: function() { - if (!hasWarnedAboutUsingConsumerProvider) { - hasWarnedAboutUsingConsumerProvider = true; - error("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?"); - } - return context.Provider; - }, - set: function(_Provider) { - context.Provider = _Provider; - } - }, - _currentValue: { - get: function() { - return context._currentValue; - }, - set: function(_currentValue) { - context._currentValue = _currentValue; - } - }, - _currentValue2: { - get: function() { - return context._currentValue2; - }, - set: function(_currentValue2) { - context._currentValue2 = _currentValue2; - } - }, - _threadCount: { - get: function() { - return context._threadCount; - }, - set: function(_threadCount) { - context._threadCount = _threadCount; - } - }, - Consumer: { - get: function() { - if (!hasWarnedAboutUsingNestedContextConsumers) { - hasWarnedAboutUsingNestedContextConsumers = true; - error("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?"); - } - return context.Consumer; - } - }, - displayName: { - get: function() { - return context.displayName; - }, - set: function(displayName) { - if (!hasWarnedAboutDisplayNameOnConsumer) { - warn("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.", displayName); - hasWarnedAboutDisplayNameOnConsumer = true; - } - } - } - }); - context.Consumer = Consumer; - } - { - context._currentRenderer = null; - context._currentRenderer2 = null; - } - return context; - } - var Uninitialized = -1; - var Pending = 0; - var Resolved = 1; - var Rejected = 2; - function lazyInitializer(payload) { - if (payload._status === Uninitialized) { - var ctor = payload._result; - var thenable = ctor(); - thenable.then(function(moduleObject2) { - if (payload._status === Pending || payload._status === Uninitialized) { - var resolved = payload; - resolved._status = Resolved; - resolved._result = moduleObject2; - } - }, function(error2) { - if (payload._status === Pending || payload._status === Uninitialized) { - var rejected = payload; - rejected._status = Rejected; - rejected._result = error2; - } - }); - if (payload._status === Uninitialized) { - var pending = payload; - pending._status = Pending; - pending._result = thenable; - } - } - if (payload._status === Resolved) { - var moduleObject = payload._result; - { - if (moduleObject === void 0) { - error("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?", moduleObject); - } - } - { - if (!("default" in moduleObject)) { - error("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))", moduleObject); - } - } - return moduleObject.default; - } else { - throw payload._result; - } - } - function lazy(ctor) { - var payload = { - // We use these fields to store the result. - _status: Uninitialized, - _result: ctor - }; - var lazyType = { - $$typeof: REACT_LAZY_TYPE, - _payload: payload, - _init: lazyInitializer - }; - { - var defaultProps; - var propTypes; - Object.defineProperties(lazyType, { - defaultProps: { - configurable: true, - get: function() { - return defaultProps; - }, - set: function(newDefaultProps) { - error("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."); - defaultProps = newDefaultProps; - Object.defineProperty(lazyType, "defaultProps", { - enumerable: true - }); - } - }, - propTypes: { - configurable: true, - get: function() { - return propTypes; - }, - set: function(newPropTypes) { - error("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."); - propTypes = newPropTypes; - Object.defineProperty(lazyType, "propTypes", { - enumerable: true - }); - } - } - }); - } - return lazyType; - } - function forwardRef(render) { - { - if (render != null && render.$$typeof === REACT_MEMO_TYPE) { - error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."); - } else if (typeof render !== "function") { - error("forwardRef requires a render function but was given %s.", render === null ? "null" : typeof render); - } else { - if (render.length !== 0 && render.length !== 2) { - error("forwardRef render functions accept exactly two parameters: props and ref. %s", render.length === 1 ? "Did you forget to use the ref parameter?" : "Any additional parameter will be undefined."); - } - } - if (render != null) { - if (render.defaultProps != null || render.propTypes != null) { - error("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"); - } - } - } - var elementType = { - $$typeof: REACT_FORWARD_REF_TYPE, - render - }; - { - var ownName; - Object.defineProperty(elementType, "displayName", { - enumerable: false, - configurable: true, - get: function() { - return ownName; - }, - set: function(name) { - ownName = name; - if (!render.name && !render.displayName) { - render.displayName = name; - } - } - }); - } - return elementType; - } - var REACT_MODULE_REFERENCE; - { - REACT_MODULE_REFERENCE = Symbol.for("react.module.reference"); - } - function isValidElementType(type) { - if (typeof type === "string" || typeof type === "function") { - return true; - } - if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) { - return true; - } - if (typeof type === "object" && type !== null) { - if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object - // types supported by any Flight configuration anywhere since - // we don't know which Flight build this will end up being used - // with. - type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== void 0) { - return true; - } - } - return false; - } - function memo(type, compare) { - { - if (!isValidElementType(type)) { - error("memo: The first argument must be a component. Instead received: %s", type === null ? "null" : typeof type); - } - } - var elementType = { - $$typeof: REACT_MEMO_TYPE, - type, - compare: compare === void 0 ? null : compare - }; - { - var ownName; - Object.defineProperty(elementType, "displayName", { - enumerable: false, - configurable: true, - get: function() { - return ownName; - }, - set: function(name) { - ownName = name; - if (!type.name && !type.displayName) { - type.displayName = name; - } - } - }); - } - return elementType; - } - function resolveDispatcher() { - var dispatcher = ReactCurrentDispatcher.current; - { - if (dispatcher === null) { - error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem."); - } - } - return dispatcher; - } - function useContext(Context) { - var dispatcher = resolveDispatcher(); - { - if (Context._context !== void 0) { - var realContext = Context._context; - if (realContext.Consumer === Context) { - error("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"); - } else if (realContext.Provider === Context) { - error("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?"); - } - } - } - return dispatcher.useContext(Context); - } - function useState3(initialState) { - var dispatcher = resolveDispatcher(); - return dispatcher.useState(initialState); - } - function useReducer(reducer, initialArg, init) { - var dispatcher = resolveDispatcher(); - return dispatcher.useReducer(reducer, initialArg, init); - } - function useRef(initialValue) { - var dispatcher = resolveDispatcher(); - return dispatcher.useRef(initialValue); - } - function useEffect3(create, deps) { - var dispatcher = resolveDispatcher(); - return dispatcher.useEffect(create, deps); - } - function useInsertionEffect(create, deps) { - var dispatcher = resolveDispatcher(); - return dispatcher.useInsertionEffect(create, deps); - } - function useLayoutEffect(create, deps) { - var dispatcher = resolveDispatcher(); - return dispatcher.useLayoutEffect(create, deps); - } - function useCallback(callback, deps) { - var dispatcher = resolveDispatcher(); - return dispatcher.useCallback(callback, deps); - } - function useMemo(create, deps) { - var dispatcher = resolveDispatcher(); - return dispatcher.useMemo(create, deps); - } - function useImperativeHandle(ref, create, deps) { - var dispatcher = resolveDispatcher(); - return dispatcher.useImperativeHandle(ref, create, deps); - } - function useDebugValue(value, formatterFn) { - { - var dispatcher = resolveDispatcher(); - return dispatcher.useDebugValue(value, formatterFn); - } - } - function useTransition() { - var dispatcher = resolveDispatcher(); - return dispatcher.useTransition(); - } - function useDeferredValue(value) { - var dispatcher = resolveDispatcher(); - return dispatcher.useDeferredValue(value); - } - function useId() { - var dispatcher = resolveDispatcher(); - return dispatcher.useId(); - } - function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) { - var dispatcher = resolveDispatcher(); - return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot); - } - var disabledDepth = 0; - var prevLog; - var prevInfo; - var prevWarn; - var prevError; - var prevGroup; - var prevGroupCollapsed; - var prevGroupEnd; - function disabledLog() { - } - disabledLog.__reactDisabledLog = true; - function disableLogs() { - { - if (disabledDepth === 0) { - prevLog = console.log; - prevInfo = console.info; - prevWarn = console.warn; - prevError = console.error; - prevGroup = console.group; - prevGroupCollapsed = console.groupCollapsed; - prevGroupEnd = console.groupEnd; - var props = { - configurable: true, - enumerable: true, - value: disabledLog, - writable: true - }; - Object.defineProperties(console, { - info: props, - log: props, - warn: props, - error: props, - group: props, - groupCollapsed: props, - groupEnd: props - }); - } - disabledDepth++; - } - } - function reenableLogs() { - { - disabledDepth--; - if (disabledDepth === 0) { - var props = { - configurable: true, - enumerable: true, - writable: true - }; - Object.defineProperties(console, { - log: assign({}, props, { - value: prevLog - }), - info: assign({}, props, { - value: prevInfo - }), - warn: assign({}, props, { - value: prevWarn - }), - error: assign({}, props, { - value: prevError - }), - group: assign({}, props, { - value: prevGroup - }), - groupCollapsed: assign({}, props, { - value: prevGroupCollapsed - }), - groupEnd: assign({}, props, { - value: prevGroupEnd - }) - }); - } - if (disabledDepth < 0) { - error("disabledDepth fell below zero. This is a bug in React. Please file an issue."); - } - } - } - var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher; - var prefix; - function describeBuiltInComponentFrame(name, source, ownerFn) { - { - if (prefix === void 0) { - try { - throw Error(); - } catch (x) { - var match = x.stack.trim().match(/\n( *(at )?)/); - prefix = match && match[1] || ""; - } - } - return "\n" + prefix + name; - } - } - var reentry = false; - var componentFrameCache; - { - var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map; - componentFrameCache = new PossiblyWeakMap(); - } - function describeNativeComponentFrame(fn, construct) { - if (!fn || reentry) { - return ""; - } - { - var frame = componentFrameCache.get(fn); - if (frame !== void 0) { - return frame; - } - } - var control; - reentry = true; - var previousPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = void 0; - var previousDispatcher; - { - previousDispatcher = ReactCurrentDispatcher$1.current; - ReactCurrentDispatcher$1.current = null; - disableLogs(); - } - try { - if (construct) { - var Fake = function() { - throw Error(); - }; - Object.defineProperty(Fake.prototype, "props", { - set: function() { - throw Error(); - } - }); - if (typeof Reflect === "object" && Reflect.construct) { - try { - Reflect.construct(Fake, []); - } catch (x) { - control = x; - } - Reflect.construct(fn, [], Fake); - } else { - try { - Fake.call(); - } catch (x) { - control = x; - } - fn.call(Fake.prototype); - } - } else { - try { - throw Error(); - } catch (x) { - control = x; - } - fn(); - } - } catch (sample) { - if (sample && control && typeof sample.stack === "string") { - var sampleLines = sample.stack.split("\n"); - var controlLines = control.stack.split("\n"); - var s = sampleLines.length - 1; - var c = controlLines.length - 1; - while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { - c--; - } - for (; s >= 1 && c >= 0; s--, c--) { - if (sampleLines[s] !== controlLines[c]) { - if (s !== 1 || c !== 1) { - do { - s--; - c--; - if (c < 0 || sampleLines[s] !== controlLines[c]) { - var _frame = "\n" + sampleLines[s].replace(" at new ", " at "); - if (fn.displayName && _frame.includes("")) { - _frame = _frame.replace("", fn.displayName); - } - { - if (typeof fn === "function") { - componentFrameCache.set(fn, _frame); - } - } - return _frame; - } - } while (s >= 1 && c >= 0); - } - break; - } - } - } - } finally { - reentry = false; - { - ReactCurrentDispatcher$1.current = previousDispatcher; - reenableLogs(); - } - Error.prepareStackTrace = previousPrepareStackTrace; - } - var name = fn ? fn.displayName || fn.name : ""; - var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; - { - if (typeof fn === "function") { - componentFrameCache.set(fn, syntheticFrame); - } - } - return syntheticFrame; - } - function describeFunctionComponentFrame(fn, source, ownerFn) { - { - return describeNativeComponentFrame(fn, false); - } - } - function shouldConstruct(Component2) { - var prototype = Component2.prototype; - return !!(prototype && prototype.isReactComponent); - } - function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) { - if (type == null) { - return ""; - } - if (typeof type === "function") { - { - return describeNativeComponentFrame(type, shouldConstruct(type)); - } - } - if (typeof type === "string") { - return describeBuiltInComponentFrame(type); - } - switch (type) { - case REACT_SUSPENSE_TYPE: - return describeBuiltInComponentFrame("Suspense"); - case REACT_SUSPENSE_LIST_TYPE: - return describeBuiltInComponentFrame("SuspenseList"); - } - if (typeof type === "object") { - switch (type.$$typeof) { - case REACT_FORWARD_REF_TYPE: - return describeFunctionComponentFrame(type.render); - case REACT_MEMO_TYPE: - return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn); - case REACT_LAZY_TYPE: { - var lazyComponent = type; - var payload = lazyComponent._payload; - var init = lazyComponent._init; - try { - return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn); - } catch (x) { - } - } - } - } - return ""; - } - var loggedTypeFailures = {}; - var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame; - function setCurrentlyValidatingElement(element) { - { - if (element) { - var owner = element._owner; - var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); - ReactDebugCurrentFrame$1.setExtraStackFrame(stack); - } else { - ReactDebugCurrentFrame$1.setExtraStackFrame(null); - } - } - } - function checkPropTypes(typeSpecs, values, location, componentName, element) { - { - var has = Function.call.bind(hasOwnProperty); - for (var typeSpecName in typeSpecs) { - if (has(typeSpecs, typeSpecName)) { - var error$1 = void 0; - try { - if (typeof typeSpecs[typeSpecName] !== "function") { - var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); - err.name = "Invariant Violation"; - throw err; - } - error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); - } catch (ex) { - error$1 = ex; - } - if (error$1 && !(error$1 instanceof Error)) { - setCurrentlyValidatingElement(element); - error("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", componentName || "React class", location, typeSpecName, typeof error$1); - setCurrentlyValidatingElement(null); - } - if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) { - loggedTypeFailures[error$1.message] = true; - setCurrentlyValidatingElement(element); - error("Failed %s type: %s", location, error$1.message); - setCurrentlyValidatingElement(null); - } - } - } - } - } - function setCurrentlyValidatingElement$1(element) { - { - if (element) { - var owner = element._owner; - var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); - setExtraStackFrame(stack); - } else { - setExtraStackFrame(null); - } - } - } - var propTypesMisspellWarningShown; - { - propTypesMisspellWarningShown = false; - } - function getDeclarationErrorAddendum() { - if (ReactCurrentOwner.current) { - var name = getComponentNameFromType(ReactCurrentOwner.current.type); - if (name) { - return "\n\nCheck the render method of `" + name + "`."; - } - } - return ""; - } - function getSourceInfoErrorAddendum(source) { - if (source !== void 0) { - var fileName = source.fileName.replace(/^.*[\\\/]/, ""); - var lineNumber = source.lineNumber; - return "\n\nCheck your code at " + fileName + ":" + lineNumber + "."; - } - return ""; - } - function getSourceInfoErrorAddendumForProps(elementProps) { - if (elementProps !== null && elementProps !== void 0) { - return getSourceInfoErrorAddendum(elementProps.__source); - } - return ""; - } - var ownerHasKeyUseWarning = {}; - function getCurrentComponentErrorInfo(parentType) { - var info = getDeclarationErrorAddendum(); - if (!info) { - var parentName = typeof parentType === "string" ? parentType : parentType.displayName || parentType.name; - if (parentName) { - info = "\n\nCheck the top-level render call using <" + parentName + ">."; - } - } - return info; - } - function validateExplicitKey(element, parentType) { - if (!element._store || element._store.validated || element.key != null) { - return; - } - element._store.validated = true; - var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); - if (ownerHasKeyUseWarning[currentComponentErrorInfo]) { - return; - } - ownerHasKeyUseWarning[currentComponentErrorInfo] = true; - var childOwner = ""; - if (element && element._owner && element._owner !== ReactCurrentOwner.current) { - childOwner = " It was passed a child from " + getComponentNameFromType(element._owner.type) + "."; - } - { - setCurrentlyValidatingElement$1(element); - error('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner); - setCurrentlyValidatingElement$1(null); - } - } - function validateChildKeys(node, parentType) { - if (typeof node !== "object") { - return; - } - if (isArray(node)) { - for (var i = 0; i < node.length; i++) { - var child = node[i]; - if (isValidElement(child)) { - validateExplicitKey(child, parentType); - } - } - } else if (isValidElement(node)) { - if (node._store) { - node._store.validated = true; - } - } else if (node) { - var iteratorFn = getIteratorFn(node); - if (typeof iteratorFn === "function") { - if (iteratorFn !== node.entries) { - var iterator = iteratorFn.call(node); - var step; - while (!(step = iterator.next()).done) { - if (isValidElement(step.value)) { - validateExplicitKey(step.value, parentType); - } - } - } - } - } - } - function validatePropTypes(element) { - { - var type = element.type; - if (type === null || type === void 0 || typeof type === "string") { - return; - } - var propTypes; - if (typeof type === "function") { - propTypes = type.propTypes; - } else if (typeof type === "object" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here. - // Inner props are checked in the reconciler. - type.$$typeof === REACT_MEMO_TYPE)) { - propTypes = type.propTypes; - } else { - return; - } - if (propTypes) { - var name = getComponentNameFromType(type); - checkPropTypes(propTypes, element.props, "prop", name, element); - } else if (type.PropTypes !== void 0 && !propTypesMisspellWarningShown) { - propTypesMisspellWarningShown = true; - var _name = getComponentNameFromType(type); - error("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", _name || "Unknown"); - } - if (typeof type.getDefaultProps === "function" && !type.getDefaultProps.isReactClassApproved) { - error("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); - } - } - } - function validateFragmentProps(fragment) { - { - var keys = Object.keys(fragment.props); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (key !== "children" && key !== "key") { - setCurrentlyValidatingElement$1(fragment); - error("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", key); - setCurrentlyValidatingElement$1(null); - break; - } - } - if (fragment.ref !== null) { - setCurrentlyValidatingElement$1(fragment); - error("Invalid attribute `ref` supplied to `React.Fragment`."); - setCurrentlyValidatingElement$1(null); - } - } - } - function createElementWithValidation(type, props, children) { - var validType = isValidElementType(type); - if (!validType) { - var info = ""; - if (type === void 0 || typeof type === "object" && type !== null && Object.keys(type).length === 0) { - info += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."; - } - var sourceInfo = getSourceInfoErrorAddendumForProps(props); - if (sourceInfo) { - info += sourceInfo; - } else { - info += getDeclarationErrorAddendum(); - } - var typeString; - if (type === null) { - typeString = "null"; - } else if (isArray(type)) { - typeString = "array"; - } else if (type !== void 0 && type.$$typeof === REACT_ELEMENT_TYPE) { - typeString = "<" + (getComponentNameFromType(type.type) || "Unknown") + " />"; - info = " Did you accidentally export a JSX literal instead of a component?"; - } else { - typeString = typeof type; - } - { - error("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", typeString, info); - } - } - var element = createElement.apply(this, arguments); - if (element == null) { - return element; - } - if (validType) { - for (var i = 2; i < arguments.length; i++) { - validateChildKeys(arguments[i], type); - } - } - if (type === REACT_FRAGMENT_TYPE) { - validateFragmentProps(element); - } else { - validatePropTypes(element); - } - return element; - } - var didWarnAboutDeprecatedCreateFactory = false; - function createFactoryWithValidation(type) { - var validatedFactory = createElementWithValidation.bind(null, type); - validatedFactory.type = type; - { - if (!didWarnAboutDeprecatedCreateFactory) { - didWarnAboutDeprecatedCreateFactory = true; - warn("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead."); - } - Object.defineProperty(validatedFactory, "type", { - enumerable: false, - get: function() { - warn("Factory.type is deprecated. Access the class directly before passing it to createFactory."); - Object.defineProperty(this, "type", { - value: type - }); - return type; - } - }); - } - return validatedFactory; - } - function cloneElementWithValidation(element, props, children) { - var newElement = cloneElement.apply(this, arguments); - for (var i = 2; i < arguments.length; i++) { - validateChildKeys(arguments[i], newElement.type); - } - validatePropTypes(newElement); - return newElement; - } - function startTransition(scope, options) { - var prevTransition = ReactCurrentBatchConfig.transition; - ReactCurrentBatchConfig.transition = {}; - var currentTransition = ReactCurrentBatchConfig.transition; - { - ReactCurrentBatchConfig.transition._updatedFibers = /* @__PURE__ */ new Set(); - } - try { - scope(); - } finally { - ReactCurrentBatchConfig.transition = prevTransition; - { - if (prevTransition === null && currentTransition._updatedFibers) { - var updatedFibersCount = currentTransition._updatedFibers.size; - if (updatedFibersCount > 10) { - warn("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."); - } - currentTransition._updatedFibers.clear(); - } - } - } - } - var didWarnAboutMessageChannel = false; - var enqueueTaskImpl = null; - function enqueueTask(task) { - if (enqueueTaskImpl === null) { - try { - var requireString = ("require" + Math.random()).slice(0, 7); - var nodeRequire = module && module[requireString]; - enqueueTaskImpl = nodeRequire.call(module, "timers").setImmediate; - } catch (_err) { - enqueueTaskImpl = function(callback) { - { - if (didWarnAboutMessageChannel === false) { - didWarnAboutMessageChannel = true; - if (typeof MessageChannel === "undefined") { - error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."); - } - } - } - var channel = new MessageChannel(); - channel.port1.onmessage = callback; - channel.port2.postMessage(void 0); - }; - } - } - return enqueueTaskImpl(task); - } - var actScopeDepth = 0; - var didWarnNoAwaitAct = false; - function act(callback) { - { - var prevActScopeDepth = actScopeDepth; - actScopeDepth++; - if (ReactCurrentActQueue.current === null) { - ReactCurrentActQueue.current = []; - } - var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy; - var result; - try { - ReactCurrentActQueue.isBatchingLegacy = true; - result = callback(); - if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) { - var queue = ReactCurrentActQueue.current; - if (queue !== null) { - ReactCurrentActQueue.didScheduleLegacyUpdate = false; - flushActQueue(queue); - } - } - } catch (error2) { - popActScope(prevActScopeDepth); - throw error2; - } finally { - ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy; - } - if (result !== null && typeof result === "object" && typeof result.then === "function") { - var thenableResult = result; - var wasAwaited = false; - var thenable = { - then: function(resolve2, reject) { - wasAwaited = true; - thenableResult.then(function(returnValue2) { - popActScope(prevActScopeDepth); - if (actScopeDepth === 0) { - recursivelyFlushAsyncActWork(returnValue2, resolve2, reject); - } else { - resolve2(returnValue2); - } - }, function(error2) { - popActScope(prevActScopeDepth); - reject(error2); - }); - } - }; - { - if (!didWarnNoAwaitAct && typeof Promise !== "undefined") { - Promise.resolve().then(function() { - }).then(function() { - if (!wasAwaited) { - didWarnNoAwaitAct = true; - error("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"); - } - }); - } - } - return thenable; - } else { - var returnValue = result; - popActScope(prevActScopeDepth); - if (actScopeDepth === 0) { - var _queue = ReactCurrentActQueue.current; - if (_queue !== null) { - flushActQueue(_queue); - ReactCurrentActQueue.current = null; - } - var _thenable = { - then: function(resolve2, reject) { - if (ReactCurrentActQueue.current === null) { - ReactCurrentActQueue.current = []; - recursivelyFlushAsyncActWork(returnValue, resolve2, reject); - } else { - resolve2(returnValue); - } - } - }; - return _thenable; - } else { - var _thenable2 = { - then: function(resolve2, reject) { - resolve2(returnValue); - } - }; - return _thenable2; - } - } - } - } - function popActScope(prevActScopeDepth) { - { - if (prevActScopeDepth !== actScopeDepth - 1) { - error("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "); - } - actScopeDepth = prevActScopeDepth; - } - } - function recursivelyFlushAsyncActWork(returnValue, resolve2, reject) { - { - var queue = ReactCurrentActQueue.current; - if (queue !== null) { - try { - flushActQueue(queue); - enqueueTask(function() { - if (queue.length === 0) { - ReactCurrentActQueue.current = null; - resolve2(returnValue); - } else { - recursivelyFlushAsyncActWork(returnValue, resolve2, reject); - } - }); - } catch (error2) { - reject(error2); - } - } else { - resolve2(returnValue); - } - } - } - var isFlushing = false; - function flushActQueue(queue) { - { - if (!isFlushing) { - isFlushing = true; - var i = 0; - try { - for (; i < queue.length; i++) { - var callback = queue[i]; - do { - callback = callback(true); - } while (callback !== null); - } - queue.length = 0; - } catch (error2) { - queue = queue.slice(i + 1); - throw error2; - } finally { - isFlushing = false; - } - } - } - } - var createElement$1 = createElementWithValidation; - var cloneElement$1 = cloneElementWithValidation; - var createFactory = createFactoryWithValidation; - var Children = { - map: mapChildren, - forEach: forEachChildren, - count: countChildren, - toArray, - only: onlyChild - }; - exports.Children = Children; - exports.Component = Component; - exports.Fragment = REACT_FRAGMENT_TYPE; - exports.Profiler = REACT_PROFILER_TYPE; - exports.PureComponent = PureComponent; - exports.StrictMode = REACT_STRICT_MODE_TYPE; - exports.Suspense = REACT_SUSPENSE_TYPE; - exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals; - exports.cloneElement = cloneElement$1; - exports.createContext = createContext; - exports.createElement = createElement$1; - exports.createFactory = createFactory; - exports.createRef = createRef; - exports.forwardRef = forwardRef; - exports.isValidElement = isValidElement; - exports.lazy = lazy; - exports.memo = memo; - exports.startTransition = startTransition; - exports.unstable_act = act; - exports.useCallback = useCallback; - exports.useContext = useContext; - exports.useDebugValue = useDebugValue; - exports.useDeferredValue = useDeferredValue; - exports.useEffect = useEffect3; - exports.useId = useId; - exports.useImperativeHandle = useImperativeHandle; - exports.useInsertionEffect = useInsertionEffect; - exports.useLayoutEffect = useLayoutEffect; - exports.useMemo = useMemo; - exports.useReducer = useReducer; - exports.useRef = useRef; - exports.useState = useState3; - exports.useSyncExternalStore = useSyncExternalStore; - exports.useTransition = useTransition; - exports.version = ReactVersion; - if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") { - __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error()); - } - })(); - } - } - }); - - // ../node_modules/react/index.js - var require_react = __commonJS({ - "../node_modules/react/index.js"(exports, module) { - "use strict"; - if (false) { - module.exports = null; - } else { - module.exports = require_react_development(); - } - } - }); - - // ../node_modules/react-dom/node_modules/scheduler/cjs/scheduler.development.js - var require_scheduler_development = __commonJS({ - "../node_modules/react-dom/node_modules/scheduler/cjs/scheduler.development.js"(exports) { - "use strict"; - if (true) { - (function() { - "use strict"; - if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") { - __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error()); - } - var enableSchedulerDebugging = false; - var enableProfiling = false; - var frameYieldMs = 5; - function push(heap, node) { - var index = heap.length; - heap.push(node); - siftUp(heap, node, index); - } - function peek(heap) { - return heap.length === 0 ? null : heap[0]; - } - function pop(heap) { - if (heap.length === 0) { - return null; - } - var first = heap[0]; - var last = heap.pop(); - if (last !== first) { - heap[0] = last; - siftDown(heap, last, 0); - } - return first; - } - function siftUp(heap, node, i) { - var index = i; - while (index > 0) { - var parentIndex = index - 1 >>> 1; - var parent = heap[parentIndex]; - if (compare(parent, node) > 0) { - heap[parentIndex] = node; - heap[index] = parent; - index = parentIndex; - } else { - return; - } - } - } - function siftDown(heap, node, i) { - var index = i; - var length = heap.length; - var halfLength = length >>> 1; - while (index < halfLength) { - var leftIndex = (index + 1) * 2 - 1; - var left = heap[leftIndex]; - var rightIndex = leftIndex + 1; - var right = heap[rightIndex]; - if (compare(left, node) < 0) { - if (rightIndex < length && compare(right, left) < 0) { - heap[index] = right; - heap[rightIndex] = node; - index = rightIndex; - } else { - heap[index] = left; - heap[leftIndex] = node; - index = leftIndex; - } - } else if (rightIndex < length && compare(right, node) < 0) { - heap[index] = right; - heap[rightIndex] = node; - index = rightIndex; - } else { - return; - } - } - } - function compare(a, b) { - var diff = a.sortIndex - b.sortIndex; - return diff !== 0 ? diff : a.id - b.id; - } - var ImmediatePriority = 1; - var UserBlockingPriority = 2; - var NormalPriority = 3; - var LowPriority = 4; - var IdlePriority = 5; - function markTaskErrored(task, ms) { - } - var hasPerformanceNow = typeof performance === "object" && typeof performance.now === "function"; - if (hasPerformanceNow) { - var localPerformance = performance; - exports.unstable_now = function() { - return localPerformance.now(); - }; - } else { - var localDate = Date; - var initialTime = localDate.now(); - exports.unstable_now = function() { - return localDate.now() - initialTime; - }; - } - var maxSigned31BitInt = 1073741823; - var IMMEDIATE_PRIORITY_TIMEOUT = -1; - var USER_BLOCKING_PRIORITY_TIMEOUT = 250; - var NORMAL_PRIORITY_TIMEOUT = 5e3; - var LOW_PRIORITY_TIMEOUT = 1e4; - var IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; - var taskQueue = []; - var timerQueue = []; - var taskIdCounter = 1; - var currentTask = null; - var currentPriorityLevel = NormalPriority; - var isPerformingWork = false; - var isHostCallbackScheduled = false; - var isHostTimeoutScheduled = false; - var localSetTimeout = typeof setTimeout === "function" ? setTimeout : null; - var localClearTimeout = typeof clearTimeout === "function" ? clearTimeout : null; - var localSetImmediate = typeof setImmediate !== "undefined" ? setImmediate : null; - var isInputPending = typeof navigator !== "undefined" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 ? navigator.scheduling.isInputPending.bind(navigator.scheduling) : null; - function advanceTimers(currentTime) { - var timer = peek(timerQueue); - while (timer !== null) { - if (timer.callback === null) { - pop(timerQueue); - } else if (timer.startTime <= currentTime) { - pop(timerQueue); - timer.sortIndex = timer.expirationTime; - push(taskQueue, timer); - } else { - return; - } - timer = peek(timerQueue); - } - } - function handleTimeout(currentTime) { - isHostTimeoutScheduled = false; - advanceTimers(currentTime); - if (!isHostCallbackScheduled) { - if (peek(taskQueue) !== null) { - isHostCallbackScheduled = true; - requestHostCallback(flushWork); - } else { - var firstTimer = peek(timerQueue); - if (firstTimer !== null) { - requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime); - } - } - } - } - function flushWork(hasTimeRemaining, initialTime2) { - isHostCallbackScheduled = false; - if (isHostTimeoutScheduled) { - isHostTimeoutScheduled = false; - cancelHostTimeout(); - } - isPerformingWork = true; - var previousPriorityLevel = currentPriorityLevel; - try { - if (enableProfiling) { - try { - return workLoop(hasTimeRemaining, initialTime2); - } catch (error) { - if (currentTask !== null) { - var currentTime = exports.unstable_now(); - markTaskErrored(currentTask, currentTime); - currentTask.isQueued = false; - } - throw error; - } - } else { - return workLoop(hasTimeRemaining, initialTime2); - } - } finally { - currentTask = null; - currentPriorityLevel = previousPriorityLevel; - isPerformingWork = false; - } - } - function workLoop(hasTimeRemaining, initialTime2) { - var currentTime = initialTime2; - advanceTimers(currentTime); - currentTask = peek(taskQueue); - while (currentTask !== null && !enableSchedulerDebugging) { - if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) { - break; - } - var callback = currentTask.callback; - if (typeof callback === "function") { - currentTask.callback = null; - currentPriorityLevel = currentTask.priorityLevel; - var didUserCallbackTimeout = currentTask.expirationTime <= currentTime; - var continuationCallback = callback(didUserCallbackTimeout); - currentTime = exports.unstable_now(); - if (typeof continuationCallback === "function") { - currentTask.callback = continuationCallback; - } else { - if (currentTask === peek(taskQueue)) { - pop(taskQueue); - } - } - advanceTimers(currentTime); - } else { - pop(taskQueue); - } - currentTask = peek(taskQueue); - } - if (currentTask !== null) { - return true; - } else { - var firstTimer = peek(timerQueue); - if (firstTimer !== null) { - requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime); - } - return false; - } - } - function unstable_runWithPriority(priorityLevel, eventHandler) { - switch (priorityLevel) { - case ImmediatePriority: - case UserBlockingPriority: - case NormalPriority: - case LowPriority: - case IdlePriority: - break; - default: - priorityLevel = NormalPriority; - } - var previousPriorityLevel = currentPriorityLevel; - currentPriorityLevel = priorityLevel; - try { - return eventHandler(); - } finally { - currentPriorityLevel = previousPriorityLevel; - } - } - function unstable_next(eventHandler) { - var priorityLevel; - switch (currentPriorityLevel) { - case ImmediatePriority: - case UserBlockingPriority: - case NormalPriority: - priorityLevel = NormalPriority; - break; - default: - priorityLevel = currentPriorityLevel; - break; - } - var previousPriorityLevel = currentPriorityLevel; - currentPriorityLevel = priorityLevel; - try { - return eventHandler(); - } finally { - currentPriorityLevel = previousPriorityLevel; - } - } - function unstable_wrapCallback(callback) { - var parentPriorityLevel = currentPriorityLevel; - return function() { - var previousPriorityLevel = currentPriorityLevel; - currentPriorityLevel = parentPriorityLevel; - try { - return callback.apply(this, arguments); - } finally { - currentPriorityLevel = previousPriorityLevel; - } - }; - } - function unstable_scheduleCallback(priorityLevel, callback, options) { - var currentTime = exports.unstable_now(); - var startTime2; - if (typeof options === "object" && options !== null) { - var delay = options.delay; - if (typeof delay === "number" && delay > 0) { - startTime2 = currentTime + delay; - } else { - startTime2 = currentTime; - } - } else { - startTime2 = currentTime; - } - var timeout; - switch (priorityLevel) { - case ImmediatePriority: - timeout = IMMEDIATE_PRIORITY_TIMEOUT; - break; - case UserBlockingPriority: - timeout = USER_BLOCKING_PRIORITY_TIMEOUT; - break; - case IdlePriority: - timeout = IDLE_PRIORITY_TIMEOUT; - break; - case LowPriority: - timeout = LOW_PRIORITY_TIMEOUT; - break; - case NormalPriority: - default: - timeout = NORMAL_PRIORITY_TIMEOUT; - break; - } - var expirationTime = startTime2 + timeout; - var newTask = { - id: taskIdCounter++, - callback, - priorityLevel, - startTime: startTime2, - expirationTime, - sortIndex: -1 - }; - if (startTime2 > currentTime) { - newTask.sortIndex = startTime2; - push(timerQueue, newTask); - if (peek(taskQueue) === null && newTask === peek(timerQueue)) { - if (isHostTimeoutScheduled) { - cancelHostTimeout(); - } else { - isHostTimeoutScheduled = true; - } - requestHostTimeout(handleTimeout, startTime2 - currentTime); - } - } else { - newTask.sortIndex = expirationTime; - push(taskQueue, newTask); - if (!isHostCallbackScheduled && !isPerformingWork) { - isHostCallbackScheduled = true; - requestHostCallback(flushWork); - } - } - return newTask; - } - function unstable_pauseExecution() { - } - function unstable_continueExecution() { - if (!isHostCallbackScheduled && !isPerformingWork) { - isHostCallbackScheduled = true; - requestHostCallback(flushWork); - } - } - function unstable_getFirstCallbackNode() { - return peek(taskQueue); - } - function unstable_cancelCallback(task) { - task.callback = null; - } - function unstable_getCurrentPriorityLevel() { - return currentPriorityLevel; - } - var isMessageLoopRunning = false; - var scheduledHostCallback = null; - var taskTimeoutID = -1; - var frameInterval = frameYieldMs; - var startTime = -1; - function shouldYieldToHost() { - var timeElapsed = exports.unstable_now() - startTime; - if (timeElapsed < frameInterval) { - return false; - } - return true; - } - function requestPaint() { - } - function forceFrameRate(fps) { - if (fps < 0 || fps > 125) { - console["error"]("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"); - return; - } - if (fps > 0) { - frameInterval = Math.floor(1e3 / fps); - } else { - frameInterval = frameYieldMs; - } - } - var performWorkUntilDeadline = function() { - if (scheduledHostCallback !== null) { - var currentTime = exports.unstable_now(); - startTime = currentTime; - var hasTimeRemaining = true; - var hasMoreWork = true; - try { - hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime); - } finally { - if (hasMoreWork) { - schedulePerformWorkUntilDeadline(); - } else { - isMessageLoopRunning = false; - scheduledHostCallback = null; - } - } - } else { - isMessageLoopRunning = false; - } - }; - var schedulePerformWorkUntilDeadline; - if (typeof localSetImmediate === "function") { - schedulePerformWorkUntilDeadline = function() { - localSetImmediate(performWorkUntilDeadline); - }; - } else if (typeof MessageChannel !== "undefined") { - var channel = new MessageChannel(); - var port = channel.port2; - channel.port1.onmessage = performWorkUntilDeadline; - schedulePerformWorkUntilDeadline = function() { - port.postMessage(null); - }; - } else { - schedulePerformWorkUntilDeadline = function() { - localSetTimeout(performWorkUntilDeadline, 0); - }; - } - function requestHostCallback(callback) { - scheduledHostCallback = callback; - if (!isMessageLoopRunning) { - isMessageLoopRunning = true; - schedulePerformWorkUntilDeadline(); - } - } - function requestHostTimeout(callback, ms) { - taskTimeoutID = localSetTimeout(function() { - callback(exports.unstable_now()); - }, ms); - } - function cancelHostTimeout() { - localClearTimeout(taskTimeoutID); - taskTimeoutID = -1; - } - var unstable_requestPaint = requestPaint; - var unstable_Profiling = null; - exports.unstable_IdlePriority = IdlePriority; - exports.unstable_ImmediatePriority = ImmediatePriority; - exports.unstable_LowPriority = LowPriority; - exports.unstable_NormalPriority = NormalPriority; - exports.unstable_Profiling = unstable_Profiling; - exports.unstable_UserBlockingPriority = UserBlockingPriority; - exports.unstable_cancelCallback = unstable_cancelCallback; - exports.unstable_continueExecution = unstable_continueExecution; - exports.unstable_forceFrameRate = forceFrameRate; - exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel; - exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode; - exports.unstable_next = unstable_next; - exports.unstable_pauseExecution = unstable_pauseExecution; - exports.unstable_requestPaint = unstable_requestPaint; - exports.unstable_runWithPriority = unstable_runWithPriority; - exports.unstable_scheduleCallback = unstable_scheduleCallback; - exports.unstable_shouldYield = shouldYieldToHost; - exports.unstable_wrapCallback = unstable_wrapCallback; - if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") { - __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error()); - } - })(); - } - } - }); - - // ../node_modules/react-dom/node_modules/scheduler/index.js - var require_scheduler = __commonJS({ - "../node_modules/react-dom/node_modules/scheduler/index.js"(exports, module) { - "use strict"; - if (false) { - module.exports = null; - } else { - module.exports = require_scheduler_development(); - } - } - }); - - // ../node_modules/react-dom/cjs/react-dom.development.js - var require_react_dom_development = __commonJS({ - "../node_modules/react-dom/cjs/react-dom.development.js"(exports) { - "use strict"; - if (true) { - (function() { - "use strict"; - if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") { - __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error()); - } - var React4 = require_react(); - var Scheduler = require_scheduler(); - var ReactSharedInternals = React4.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - var suppressWarning = false; - function setSuppressWarning(newSuppressWarning) { - { - suppressWarning = newSuppressWarning; - } - } - function warn(format) { - { - if (!suppressWarning) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - printWarning("warn", format, args); - } - } - } - function error(format) { - { - if (!suppressWarning) { - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - printWarning("error", format, args); - } - } - } - function printWarning(level, format, args) { - { - var ReactDebugCurrentFrame2 = ReactSharedInternals.ReactDebugCurrentFrame; - var stack = ReactDebugCurrentFrame2.getStackAddendum(); - if (stack !== "") { - format += "%s"; - args = args.concat([stack]); - } - var argsWithFormat = args.map(function(item) { - return String(item); - }); - argsWithFormat.unshift("Warning: " + format); - Function.prototype.apply.call(console[level], console, argsWithFormat); - } - } - var FunctionComponent = 0; - var ClassComponent = 1; - var IndeterminateComponent = 2; - var HostRoot = 3; - var HostPortal = 4; - var HostComponent = 5; - var HostText = 6; - var Fragment2 = 7; - var Mode = 8; - var ContextConsumer = 9; - var ContextProvider = 10; - var ForwardRef = 11; - var Profiler = 12; - var SuspenseComponent = 13; - var MemoComponent = 14; - var SimpleMemoComponent = 15; - var LazyComponent = 16; - var IncompleteClassComponent = 17; - var DehydratedFragment = 18; - var SuspenseListComponent = 19; - var ScopeComponent = 21; - var OffscreenComponent = 22; - var LegacyHiddenComponent = 23; - var CacheComponent = 24; - var TracingMarkerComponent = 25; - var enableClientRenderFallbackOnTextMismatch = true; - var enableNewReconciler = false; - var enableLazyContextPropagation = false; - var enableLegacyHidden = false; - var enableSuspenseAvoidThisFallback = false; - var disableCommentsAsDOMContainers = true; - var enableCustomElementPropertySupport = false; - var warnAboutStringRefs = false; - var enableSchedulingProfiler = true; - var enableProfilerTimer = true; - var enableProfilerCommitHooks = true; - var allNativeEvents = /* @__PURE__ */ new Set(); - var registrationNameDependencies = {}; - var possibleRegistrationNames = {}; - function registerTwoPhaseEvent(registrationName, dependencies) { - registerDirectEvent(registrationName, dependencies); - registerDirectEvent(registrationName + "Capture", dependencies); - } - function registerDirectEvent(registrationName, dependencies) { - { - if (registrationNameDependencies[registrationName]) { - error("EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.", registrationName); - } - } - registrationNameDependencies[registrationName] = dependencies; - { - var lowerCasedName = registrationName.toLowerCase(); - possibleRegistrationNames[lowerCasedName] = registrationName; - if (registrationName === "onDoubleClick") { - possibleRegistrationNames.ondblclick = registrationName; - } - } - for (var i = 0; i < dependencies.length; i++) { - allNativeEvents.add(dependencies[i]); - } - } - var canUseDOM = !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined"); - var hasOwnProperty = Object.prototype.hasOwnProperty; - function typeName(value) { - { - var hasToStringTag = typeof Symbol === "function" && Symbol.toStringTag; - var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object"; - return type; - } - } - function willCoercionThrow(value) { - { - try { - testStringCoercion(value); - return false; - } catch (e) { - return true; - } - } - } - function testStringCoercion(value) { - return "" + value; - } - function checkAttributeStringCoercion(value, attributeName) { - { - if (willCoercionThrow(value)) { - error("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before before using it here.", attributeName, typeName(value)); - return testStringCoercion(value); - } - } - } - function checkKeyStringCoercion(value) { - { - if (willCoercionThrow(value)) { - error("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", typeName(value)); - return testStringCoercion(value); - } - } - } - function checkPropStringCoercion(value, propName) { - { - if (willCoercionThrow(value)) { - error("The provided `%s` prop is an unsupported type %s. This value must be coerced to a string before before using it here.", propName, typeName(value)); - return testStringCoercion(value); - } - } - } - function checkCSSPropertyStringCoercion(value, propName) { - { - if (willCoercionThrow(value)) { - error("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before before using it here.", propName, typeName(value)); - return testStringCoercion(value); - } - } - } - function checkHtmlStringCoercion(value) { - { - if (willCoercionThrow(value)) { - error("The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before before using it here.", typeName(value)); - return testStringCoercion(value); - } - } - } - function checkFormFieldValueStringCoercion(value) { - { - if (willCoercionThrow(value)) { - error("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before before using it here.", typeName(value)); - return testStringCoercion(value); - } - } - } - var RESERVED = 0; - var STRING = 1; - var BOOLEANISH_STRING = 2; - var BOOLEAN = 3; - var OVERLOADED_BOOLEAN = 4; - var NUMERIC = 5; - var POSITIVE_NUMERIC = 6; - var ATTRIBUTE_NAME_START_CHAR = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; - var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; - var VALID_ATTRIBUTE_NAME_REGEX = new RegExp("^[" + ATTRIBUTE_NAME_START_CHAR + "][" + ATTRIBUTE_NAME_CHAR + "]*$"); - var illegalAttributeNameCache = {}; - var validatedAttributeNameCache = {}; - function isAttributeNameSafe(attributeName) { - if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) { - return true; - } - if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) { - return false; - } - if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { - validatedAttributeNameCache[attributeName] = true; - return true; - } - illegalAttributeNameCache[attributeName] = true; - { - error("Invalid attribute name: `%s`", attributeName); - } - return false; - } - function shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) { - if (propertyInfo !== null) { - return propertyInfo.type === RESERVED; - } - if (isCustomComponentTag) { - return false; - } - if (name.length > 2 && (name[0] === "o" || name[0] === "O") && (name[1] === "n" || name[1] === "N")) { - return true; - } - return false; - } - function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) { - if (propertyInfo !== null && propertyInfo.type === RESERVED) { - return false; - } - switch (typeof value) { - case "function": - case "symbol": - return true; - case "boolean": { - if (isCustomComponentTag) { - return false; - } - if (propertyInfo !== null) { - return !propertyInfo.acceptsBooleans; - } else { - var prefix2 = name.toLowerCase().slice(0, 5); - return prefix2 !== "data-" && prefix2 !== "aria-"; - } - } - default: - return false; - } - } - function shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) { - if (value === null || typeof value === "undefined") { - return true; - } - if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) { - return true; - } - if (isCustomComponentTag) { - return false; - } - if (propertyInfo !== null) { - switch (propertyInfo.type) { - case BOOLEAN: - return !value; - case OVERLOADED_BOOLEAN: - return value === false; - case NUMERIC: - return isNaN(value); - case POSITIVE_NUMERIC: - return isNaN(value) || value < 1; - } - } - return false; - } - function getPropertyInfo(name) { - return properties.hasOwnProperty(name) ? properties[name] : null; - } - function PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL2, removeEmptyString) { - this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN; - this.attributeName = attributeName; - this.attributeNamespace = attributeNamespace; - this.mustUseProperty = mustUseProperty; - this.propertyName = name; - this.type = type; - this.sanitizeURL = sanitizeURL2; - this.removeEmptyString = removeEmptyString; - } - var properties = {}; - var reservedProps = [ - "children", - "dangerouslySetInnerHTML", - // TODO: This prevents the assignment of defaultValue to regular - // elements (not just inputs). Now that ReactDOMInput assigns to the - // defaultValue property -- do we need this? - "defaultValue", - "defaultChecked", - "innerHTML", - "suppressContentEditableWarning", - "suppressHydrationWarning", - "style" - ]; - reservedProps.forEach(function(name) { - properties[name] = new PropertyInfoRecord( - name, - RESERVED, - false, - // mustUseProperty - name, - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - [["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(_ref) { - var name = _ref[0], attributeName = _ref[1]; - properties[name] = new PropertyInfoRecord( - name, - STRING, - false, - // mustUseProperty - attributeName, - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - ["contentEditable", "draggable", "spellCheck", "value"].forEach(function(name) { - properties[name] = new PropertyInfoRecord( - name, - BOOLEANISH_STRING, - false, - // mustUseProperty - name.toLowerCase(), - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(name) { - properties[name] = new PropertyInfoRecord( - name, - BOOLEANISH_STRING, - false, - // mustUseProperty - name, - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - [ - "allowFullScreen", - "async", - // Note: there is a special case that prevents it from being written to the DOM - // on the client side because the browsers are inconsistent. Instead we call focus(). - "autoFocus", - "autoPlay", - "controls", - "default", - "defer", - "disabled", - "disablePictureInPicture", - "disableRemotePlayback", - "formNoValidate", - "hidden", - "loop", - "noModule", - "noValidate", - "open", - "playsInline", - "readOnly", - "required", - "reversed", - "scoped", - "seamless", - // Microdata - "itemScope" - ].forEach(function(name) { - properties[name] = new PropertyInfoRecord( - name, - BOOLEAN, - false, - // mustUseProperty - name.toLowerCase(), - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - [ - "checked", - // Note: `option.selected` is not updated if `select.multiple` is - // disabled with `removeAttribute`. We have special logic for handling this. - "multiple", - "muted", - "selected" - // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function(name) { - properties[name] = new PropertyInfoRecord( - name, - BOOLEAN, - true, - // mustUseProperty - name, - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - [ - "capture", - "download" - // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function(name) { - properties[name] = new PropertyInfoRecord( - name, - OVERLOADED_BOOLEAN, - false, - // mustUseProperty - name, - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - [ - "cols", - "rows", - "size", - "span" - // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function(name) { - properties[name] = new PropertyInfoRecord( - name, - POSITIVE_NUMERIC, - false, - // mustUseProperty - name, - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - ["rowSpan", "start"].forEach(function(name) { - properties[name] = new PropertyInfoRecord( - name, - NUMERIC, - false, - // mustUseProperty - name.toLowerCase(), - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - var CAMELIZE = /[\-\:]([a-z])/g; - var capitalize = function(token) { - return token[1].toUpperCase(); - }; - [ - "accent-height", - "alignment-baseline", - "arabic-form", - "baseline-shift", - "cap-height", - "clip-path", - "clip-rule", - "color-interpolation", - "color-interpolation-filters", - "color-profile", - "color-rendering", - "dominant-baseline", - "enable-background", - "fill-opacity", - "fill-rule", - "flood-color", - "flood-opacity", - "font-family", - "font-size", - "font-size-adjust", - "font-stretch", - "font-style", - "font-variant", - "font-weight", - "glyph-name", - "glyph-orientation-horizontal", - "glyph-orientation-vertical", - "horiz-adv-x", - "horiz-origin-x", - "image-rendering", - "letter-spacing", - "lighting-color", - "marker-end", - "marker-mid", - "marker-start", - "overline-position", - "overline-thickness", - "paint-order", - "panose-1", - "pointer-events", - "rendering-intent", - "shape-rendering", - "stop-color", - "stop-opacity", - "strikethrough-position", - "strikethrough-thickness", - "stroke-dasharray", - "stroke-dashoffset", - "stroke-linecap", - "stroke-linejoin", - "stroke-miterlimit", - "stroke-opacity", - "stroke-width", - "text-anchor", - "text-decoration", - "text-rendering", - "underline-position", - "underline-thickness", - "unicode-bidi", - "unicode-range", - "units-per-em", - "v-alphabetic", - "v-hanging", - "v-ideographic", - "v-mathematical", - "vector-effect", - "vert-adv-y", - "vert-origin-x", - "vert-origin-y", - "word-spacing", - "writing-mode", - "xmlns:xlink", - "x-height" - // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function(attributeName) { - var name = attributeName.replace(CAMELIZE, capitalize); - properties[name] = new PropertyInfoRecord( - name, - STRING, - false, - // mustUseProperty - attributeName, - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - [ - "xlink:actuate", - "xlink:arcrole", - "xlink:role", - "xlink:show", - "xlink:title", - "xlink:type" - // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function(attributeName) { - var name = attributeName.replace(CAMELIZE, capitalize); - properties[name] = new PropertyInfoRecord( - name, - STRING, - false, - // mustUseProperty - attributeName, - "http://www.w3.org/1999/xlink", - false, - // sanitizeURL - false - ); - }); - [ - "xml:base", - "xml:lang", - "xml:space" - // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function(attributeName) { - var name = attributeName.replace(CAMELIZE, capitalize); - properties[name] = new PropertyInfoRecord( - name, - STRING, - false, - // mustUseProperty - attributeName, - "http://www.w3.org/XML/1998/namespace", - false, - // sanitizeURL - false - ); - }); - ["tabIndex", "crossOrigin"].forEach(function(attributeName) { - properties[attributeName] = new PropertyInfoRecord( - attributeName, - STRING, - false, - // mustUseProperty - attributeName.toLowerCase(), - // attributeName - null, - // attributeNamespace - false, - // sanitizeURL - false - ); - }); - var xlinkHref = "xlinkHref"; - properties[xlinkHref] = new PropertyInfoRecord( - "xlinkHref", - STRING, - false, - // mustUseProperty - "xlink:href", - "http://www.w3.org/1999/xlink", - true, - // sanitizeURL - false - ); - ["src", "href", "action", "formAction"].forEach(function(attributeName) { - properties[attributeName] = new PropertyInfoRecord( - attributeName, - STRING, - false, - // mustUseProperty - attributeName.toLowerCase(), - // attributeName - null, - // attributeNamespace - true, - // sanitizeURL - true - ); - }); - var isJavaScriptProtocol = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i; - var didWarn = false; - function sanitizeURL(url) { - { - if (!didWarn && isJavaScriptProtocol.test(url)) { - didWarn = true; - error("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.", JSON.stringify(url)); - } - } - } - function getValueForProperty(node, name, expected, propertyInfo) { - { - if (propertyInfo.mustUseProperty) { - var propertyName = propertyInfo.propertyName; - return node[propertyName]; - } else { - { - checkAttributeStringCoercion(expected, name); - } - if (propertyInfo.sanitizeURL) { - sanitizeURL("" + expected); - } - var attributeName = propertyInfo.attributeName; - var stringValue = null; - if (propertyInfo.type === OVERLOADED_BOOLEAN) { - if (node.hasAttribute(attributeName)) { - var value = node.getAttribute(attributeName); - if (value === "") { - return true; - } - if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { - return value; - } - if (value === "" + expected) { - return expected; - } - return value; - } - } else if (node.hasAttribute(attributeName)) { - if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { - return node.getAttribute(attributeName); - } - if (propertyInfo.type === BOOLEAN) { - return expected; - } - stringValue = node.getAttribute(attributeName); - } - if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { - return stringValue === null ? expected : stringValue; - } else if (stringValue === "" + expected) { - return expected; - } else { - return stringValue; - } - } - } - } - function getValueForAttribute(node, name, expected, isCustomComponentTag) { - { - if (!isAttributeNameSafe(name)) { - return; - } - if (!node.hasAttribute(name)) { - return expected === void 0 ? void 0 : null; - } - var value = node.getAttribute(name); - { - checkAttributeStringCoercion(expected, name); - } - if (value === "" + expected) { - return expected; - } - return value; - } - } - function setValueForProperty(node, name, value, isCustomComponentTag) { - var propertyInfo = getPropertyInfo(name); - if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) { - return; - } - if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) { - value = null; - } - if (isCustomComponentTag || propertyInfo === null) { - if (isAttributeNameSafe(name)) { - var _attributeName = name; - if (value === null) { - node.removeAttribute(_attributeName); - } else { - { - checkAttributeStringCoercion(value, name); - } - node.setAttribute(_attributeName, "" + value); - } - } - return; - } - var mustUseProperty = propertyInfo.mustUseProperty; - if (mustUseProperty) { - var propertyName = propertyInfo.propertyName; - if (value === null) { - var type = propertyInfo.type; - node[propertyName] = type === BOOLEAN ? false : ""; - } else { - node[propertyName] = value; - } - return; - } - var attributeName = propertyInfo.attributeName, attributeNamespace = propertyInfo.attributeNamespace; - if (value === null) { - node.removeAttribute(attributeName); - } else { - var _type = propertyInfo.type; - var attributeValue; - if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) { - attributeValue = ""; - } else { - { - { - checkAttributeStringCoercion(value, attributeName); - } - attributeValue = "" + value; - } - if (propertyInfo.sanitizeURL) { - sanitizeURL(attributeValue.toString()); - } - } - if (attributeNamespace) { - node.setAttributeNS(attributeNamespace, attributeName, attributeValue); - } else { - node.setAttribute(attributeName, attributeValue); - } - } - } - var REACT_ELEMENT_TYPE = Symbol.for("react.element"); - var REACT_PORTAL_TYPE = Symbol.for("react.portal"); - var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"); - var REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"); - var REACT_PROFILER_TYPE = Symbol.for("react.profiler"); - var REACT_PROVIDER_TYPE = Symbol.for("react.provider"); - var REACT_CONTEXT_TYPE = Symbol.for("react.context"); - var REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"); - var REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"); - var REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"); - var REACT_MEMO_TYPE = Symbol.for("react.memo"); - var REACT_LAZY_TYPE = Symbol.for("react.lazy"); - var REACT_SCOPE_TYPE = Symbol.for("react.scope"); - var REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for("react.debug_trace_mode"); - var REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen"); - var REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"); - var REACT_CACHE_TYPE = Symbol.for("react.cache"); - var REACT_TRACING_MARKER_TYPE = Symbol.for("react.tracing_marker"); - var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = "@@iterator"; - function getIteratorFn(maybeIterable) { - if (maybeIterable === null || typeof maybeIterable !== "object") { - return null; - } - var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; - if (typeof maybeIterator === "function") { - return maybeIterator; - } - return null; - } - var assign = Object.assign; - var disabledDepth = 0; - var prevLog; - var prevInfo; - var prevWarn; - var prevError; - var prevGroup; - var prevGroupCollapsed; - var prevGroupEnd; - function disabledLog() { - } - disabledLog.__reactDisabledLog = true; - function disableLogs() { - { - if (disabledDepth === 0) { - prevLog = console.log; - prevInfo = console.info; - prevWarn = console.warn; - prevError = console.error; - prevGroup = console.group; - prevGroupCollapsed = console.groupCollapsed; - prevGroupEnd = console.groupEnd; - var props = { - configurable: true, - enumerable: true, - value: disabledLog, - writable: true - }; - Object.defineProperties(console, { - info: props, - log: props, - warn: props, - error: props, - group: props, - groupCollapsed: props, - groupEnd: props - }); - } - disabledDepth++; - } - } - function reenableLogs() { - { - disabledDepth--; - if (disabledDepth === 0) { - var props = { - configurable: true, - enumerable: true, - writable: true - }; - Object.defineProperties(console, { - log: assign({}, props, { - value: prevLog - }), - info: assign({}, props, { - value: prevInfo - }), - warn: assign({}, props, { - value: prevWarn - }), - error: assign({}, props, { - value: prevError - }), - group: assign({}, props, { - value: prevGroup - }), - groupCollapsed: assign({}, props, { - value: prevGroupCollapsed - }), - groupEnd: assign({}, props, { - value: prevGroupEnd - }) - }); - } - if (disabledDepth < 0) { - error("disabledDepth fell below zero. This is a bug in React. Please file an issue."); - } - } - } - var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; - var prefix; - function describeBuiltInComponentFrame(name, source, ownerFn) { - { - if (prefix === void 0) { - try { - throw Error(); - } catch (x) { - var match = x.stack.trim().match(/\n( *(at )?)/); - prefix = match && match[1] || ""; - } - } - return "\n" + prefix + name; - } - } - var reentry = false; - var componentFrameCache; - { - var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map; - componentFrameCache = new PossiblyWeakMap(); - } - function describeNativeComponentFrame(fn, construct) { - if (!fn || reentry) { - return ""; - } - { - var frame = componentFrameCache.get(fn); - if (frame !== void 0) { - return frame; - } - } - var control; - reentry = true; - var previousPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = void 0; - var previousDispatcher; - { - previousDispatcher = ReactCurrentDispatcher.current; - ReactCurrentDispatcher.current = null; - disableLogs(); - } - try { - if (construct) { - var Fake = function() { - throw Error(); - }; - Object.defineProperty(Fake.prototype, "props", { - set: function() { - throw Error(); - } - }); - if (typeof Reflect === "object" && Reflect.construct) { - try { - Reflect.construct(Fake, []); - } catch (x) { - control = x; - } - Reflect.construct(fn, [], Fake); - } else { - try { - Fake.call(); - } catch (x) { - control = x; - } - fn.call(Fake.prototype); - } - } else { - try { - throw Error(); - } catch (x) { - control = x; - } - fn(); - } - } catch (sample) { - if (sample && control && typeof sample.stack === "string") { - var sampleLines = sample.stack.split("\n"); - var controlLines = control.stack.split("\n"); - var s = sampleLines.length - 1; - var c = controlLines.length - 1; - while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { - c--; - } - for (; s >= 1 && c >= 0; s--, c--) { - if (sampleLines[s] !== controlLines[c]) { - if (s !== 1 || c !== 1) { - do { - s--; - c--; - if (c < 0 || sampleLines[s] !== controlLines[c]) { - var _frame = "\n" + sampleLines[s].replace(" at new ", " at "); - if (fn.displayName && _frame.includes("")) { - _frame = _frame.replace("", fn.displayName); - } - { - if (typeof fn === "function") { - componentFrameCache.set(fn, _frame); - } - } - return _frame; - } - } while (s >= 1 && c >= 0); - } - break; - } - } - } - } finally { - reentry = false; - { - ReactCurrentDispatcher.current = previousDispatcher; - reenableLogs(); - } - Error.prepareStackTrace = previousPrepareStackTrace; - } - var name = fn ? fn.displayName || fn.name : ""; - var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; - { - if (typeof fn === "function") { - componentFrameCache.set(fn, syntheticFrame); - } - } - return syntheticFrame; - } - function describeClassComponentFrame(ctor, source, ownerFn) { - { - return describeNativeComponentFrame(ctor, true); - } - } - function describeFunctionComponentFrame(fn, source, ownerFn) { - { - return describeNativeComponentFrame(fn, false); - } - } - function shouldConstruct(Component) { - var prototype = Component.prototype; - return !!(prototype && prototype.isReactComponent); - } - function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) { - if (type == null) { - return ""; - } - if (typeof type === "function") { - { - return describeNativeComponentFrame(type, shouldConstruct(type)); - } - } - if (typeof type === "string") { - return describeBuiltInComponentFrame(type); - } - switch (type) { - case REACT_SUSPENSE_TYPE: - return describeBuiltInComponentFrame("Suspense"); - case REACT_SUSPENSE_LIST_TYPE: - return describeBuiltInComponentFrame("SuspenseList"); - } - if (typeof type === "object") { - switch (type.$$typeof) { - case REACT_FORWARD_REF_TYPE: - return describeFunctionComponentFrame(type.render); - case REACT_MEMO_TYPE: - return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn); - case REACT_LAZY_TYPE: { - var lazyComponent = type; - var payload = lazyComponent._payload; - var init = lazyComponent._init; - try { - return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn); - } catch (x) { - } - } - } - } - return ""; - } - function describeFiber(fiber) { - var owner = fiber._debugOwner ? fiber._debugOwner.type : null; - var source = fiber._debugSource; - switch (fiber.tag) { - case HostComponent: - return describeBuiltInComponentFrame(fiber.type); - case LazyComponent: - return describeBuiltInComponentFrame("Lazy"); - case SuspenseComponent: - return describeBuiltInComponentFrame("Suspense"); - case SuspenseListComponent: - return describeBuiltInComponentFrame("SuspenseList"); - case FunctionComponent: - case IndeterminateComponent: - case SimpleMemoComponent: - return describeFunctionComponentFrame(fiber.type); - case ForwardRef: - return describeFunctionComponentFrame(fiber.type.render); - case ClassComponent: - return describeClassComponentFrame(fiber.type); - default: - return ""; - } - } - function getStackByFiberInDevAndProd(workInProgress2) { - try { - var info = ""; - var node = workInProgress2; - do { - info += describeFiber(node); - node = node.return; - } while (node); - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } - } - function getWrappedName(outerType, innerType, wrapperName) { - var displayName = outerType.displayName; - if (displayName) { - return displayName; - } - var functionName = innerType.displayName || innerType.name || ""; - return functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName; - } - function getContextName(type) { - return type.displayName || "Context"; - } - function getComponentNameFromType(type) { - if (type == null) { - return null; - } - { - if (typeof type.tag === "number") { - error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."); - } - } - if (typeof type === "function") { - return type.displayName || type.name || null; - } - if (typeof type === "string") { - return type; - } - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - } - if (typeof type === "object") { - switch (type.$$typeof) { - case REACT_CONTEXT_TYPE: - var context = type; - return getContextName(context) + ".Consumer"; - case REACT_PROVIDER_TYPE: - var provider = type; - return getContextName(provider._context) + ".Provider"; - case REACT_FORWARD_REF_TYPE: - return getWrappedName(type, type.render, "ForwardRef"); - case REACT_MEMO_TYPE: - var outerName = type.displayName || null; - if (outerName !== null) { - return outerName; - } - return getComponentNameFromType(type.type) || "Memo"; - case REACT_LAZY_TYPE: { - var lazyComponent = type; - var payload = lazyComponent._payload; - var init = lazyComponent._init; - try { - return getComponentNameFromType(init(payload)); - } catch (x) { - return null; - } - } - } - } - return null; - } - function getWrappedName$1(outerType, innerType, wrapperName) { - var functionName = innerType.displayName || innerType.name || ""; - return outerType.displayName || (functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName); - } - function getContextName$1(type) { - return type.displayName || "Context"; - } - function getComponentNameFromFiber(fiber) { - var tag = fiber.tag, type = fiber.type; - switch (tag) { - case CacheComponent: - return "Cache"; - case ContextConsumer: - var context = type; - return getContextName$1(context) + ".Consumer"; - case ContextProvider: - var provider = type; - return getContextName$1(provider._context) + ".Provider"; - case DehydratedFragment: - return "DehydratedFragment"; - case ForwardRef: - return getWrappedName$1(type, type.render, "ForwardRef"); - case Fragment2: - return "Fragment"; - case HostComponent: - return type; - case HostPortal: - return "Portal"; - case HostRoot: - return "Root"; - case HostText: - return "Text"; - case LazyComponent: - return getComponentNameFromType(type); - case Mode: - if (type === REACT_STRICT_MODE_TYPE) { - return "StrictMode"; - } - return "Mode"; - case OffscreenComponent: - return "Offscreen"; - case Profiler: - return "Profiler"; - case ScopeComponent: - return "Scope"; - case SuspenseComponent: - return "Suspense"; - case SuspenseListComponent: - return "SuspenseList"; - case TracingMarkerComponent: - return "TracingMarker"; - case ClassComponent: - case FunctionComponent: - case IncompleteClassComponent: - case IndeterminateComponent: - case MemoComponent: - case SimpleMemoComponent: - if (typeof type === "function") { - return type.displayName || type.name || null; - } - if (typeof type === "string") { - return type; - } - break; - } - return null; - } - var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; - var current = null; - var isRendering = false; - function getCurrentFiberOwnerNameInDevOrNull() { - { - if (current === null) { - return null; - } - var owner = current._debugOwner; - if (owner !== null && typeof owner !== "undefined") { - return getComponentNameFromFiber(owner); - } - } - return null; - } - function getCurrentFiberStackInDev() { - { - if (current === null) { - return ""; - } - return getStackByFiberInDevAndProd(current); - } - } - function resetCurrentFiber() { - { - ReactDebugCurrentFrame.getCurrentStack = null; - current = null; - isRendering = false; - } - } - function setCurrentFiber(fiber) { - { - ReactDebugCurrentFrame.getCurrentStack = fiber === null ? null : getCurrentFiberStackInDev; - current = fiber; - isRendering = false; - } - } - function getCurrentFiber() { - { - return current; - } - } - function setIsRendering(rendering) { - { - isRendering = rendering; - } - } - function toString(value) { - return "" + value; - } - function getToStringValue(value) { - switch (typeof value) { - case "boolean": - case "number": - case "string": - case "undefined": - return value; - case "object": - { - checkFormFieldValueStringCoercion(value); - } - return value; - default: - return ""; - } - } - var hasReadOnlyValue = { - button: true, - checkbox: true, - image: true, - hidden: true, - radio: true, - reset: true, - submit: true - }; - function checkControlledValueProps(tagName, props) { - { - if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) { - error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."); - } - if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) { - error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."); - } - } - } - function isCheckable(elem) { - var type = elem.type; - var nodeName = elem.nodeName; - return nodeName && nodeName.toLowerCase() === "input" && (type === "checkbox" || type === "radio"); - } - function getTracker(node) { - return node._valueTracker; - } - function detachTracker(node) { - node._valueTracker = null; - } - function getValueFromNode(node) { - var value = ""; - if (!node) { - return value; - } - if (isCheckable(node)) { - value = node.checked ? "true" : "false"; - } else { - value = node.value; - } - return value; - } - function trackValueOnNode(node) { - var valueField = isCheckable(node) ? "checked" : "value"; - var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField); - { - checkFormFieldValueStringCoercion(node[valueField]); - } - var currentValue = "" + node[valueField]; - if (node.hasOwnProperty(valueField) || typeof descriptor === "undefined" || typeof descriptor.get !== "function" || typeof descriptor.set !== "function") { - return; - } - var get2 = descriptor.get, set2 = descriptor.set; - Object.defineProperty(node, valueField, { - configurable: true, - get: function() { - return get2.call(this); - }, - set: function(value) { - { - checkFormFieldValueStringCoercion(value); - } - currentValue = "" + value; - set2.call(this, value); - } - }); - Object.defineProperty(node, valueField, { - enumerable: descriptor.enumerable - }); - var tracker = { - getValue: function() { - return currentValue; - }, - setValue: function(value) { - { - checkFormFieldValueStringCoercion(value); - } - currentValue = "" + value; - }, - stopTracking: function() { - detachTracker(node); - delete node[valueField]; - } - }; - return tracker; - } - function track(node) { - if (getTracker(node)) { - return; - } - node._valueTracker = trackValueOnNode(node); - } - function updateValueIfChanged(node) { - if (!node) { - return false; - } - var tracker = getTracker(node); - if (!tracker) { - return true; - } - var lastValue = tracker.getValue(); - var nextValue = getValueFromNode(node); - if (nextValue !== lastValue) { - tracker.setValue(nextValue); - return true; - } - return false; - } - function getActiveElement(doc) { - doc = doc || (typeof document !== "undefined" ? document : void 0); - if (typeof doc === "undefined") { - return null; - } - try { - return doc.activeElement || doc.body; - } catch (e) { - return doc.body; - } - } - var didWarnValueDefaultValue = false; - var didWarnCheckedDefaultChecked = false; - var didWarnControlledToUncontrolled = false; - var didWarnUncontrolledToControlled = false; - function isControlled(props) { - var usesChecked = props.type === "checkbox" || props.type === "radio"; - return usesChecked ? props.checked != null : props.value != null; - } - function getHostProps(element, props) { - var node = element; - var checked = props.checked; - var hostProps = assign({}, props, { - defaultChecked: void 0, - defaultValue: void 0, - value: void 0, - checked: checked != null ? checked : node._wrapperState.initialChecked - }); - return hostProps; - } - function initWrapperState(element, props) { - { - checkControlledValueProps("input", props); - if (props.checked !== void 0 && props.defaultChecked !== void 0 && !didWarnCheckedDefaultChecked) { - error("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components", getCurrentFiberOwnerNameInDevOrNull() || "A component", props.type); - didWarnCheckedDefaultChecked = true; - } - if (props.value !== void 0 && props.defaultValue !== void 0 && !didWarnValueDefaultValue) { - error("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components", getCurrentFiberOwnerNameInDevOrNull() || "A component", props.type); - didWarnValueDefaultValue = true; - } - } - var node = element; - var defaultValue = props.defaultValue == null ? "" : props.defaultValue; - node._wrapperState = { - initialChecked: props.checked != null ? props.checked : props.defaultChecked, - initialValue: getToStringValue(props.value != null ? props.value : defaultValue), - controlled: isControlled(props) - }; - } - function updateChecked(element, props) { - var node = element; - var checked = props.checked; - if (checked != null) { - setValueForProperty(node, "checked", checked, false); - } - } - function updateWrapper(element, props) { - var node = element; - { - var controlled = isControlled(props); - if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) { - error("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"); - didWarnUncontrolledToControlled = true; - } - if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) { - error("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"); - didWarnControlledToUncontrolled = true; - } - } - updateChecked(element, props); - var value = getToStringValue(props.value); - var type = props.type; - if (value != null) { - if (type === "number") { - if (value === 0 && node.value === "" || // We explicitly want to coerce to number here if possible. - // eslint-disable-next-line - node.value != value) { - node.value = toString(value); - } - } else if (node.value !== toString(value)) { - node.value = toString(value); - } - } else if (type === "submit" || type === "reset") { - node.removeAttribute("value"); - return; - } - { - if (props.hasOwnProperty("value")) { - setDefaultValue(node, props.type, value); - } else if (props.hasOwnProperty("defaultValue")) { - setDefaultValue(node, props.type, getToStringValue(props.defaultValue)); - } - } - { - if (props.checked == null && props.defaultChecked != null) { - node.defaultChecked = !!props.defaultChecked; - } - } - } - function postMountWrapper(element, props, isHydrating2) { - var node = element; - if (props.hasOwnProperty("value") || props.hasOwnProperty("defaultValue")) { - var type = props.type; - var isButton = type === "submit" || type === "reset"; - if (isButton && (props.value === void 0 || props.value === null)) { - return; - } - var initialValue = toString(node._wrapperState.initialValue); - if (!isHydrating2) { - { - if (initialValue !== node.value) { - node.value = initialValue; - } - } - } - { - node.defaultValue = initialValue; - } - } - var name = node.name; - if (name !== "") { - node.name = ""; - } - { - node.defaultChecked = !node.defaultChecked; - node.defaultChecked = !!node._wrapperState.initialChecked; - } - if (name !== "") { - node.name = name; - } - } - function restoreControlledState(element, props) { - var node = element; - updateWrapper(node, props); - updateNamedCousins(node, props); - } - function updateNamedCousins(rootNode, props) { - var name = props.name; - if (props.type === "radio" && name != null) { - var queryRoot = rootNode; - while (queryRoot.parentNode) { - queryRoot = queryRoot.parentNode; - } - { - checkAttributeStringCoercion(name, "name"); - } - var group = queryRoot.querySelectorAll("input[name=" + JSON.stringify("" + name) + '][type="radio"]'); - for (var i = 0; i < group.length; i++) { - var otherNode = group[i]; - if (otherNode === rootNode || otherNode.form !== rootNode.form) { - continue; - } - var otherProps = getFiberCurrentPropsFromNode(otherNode); - if (!otherProps) { - throw new Error("ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."); - } - updateValueIfChanged(otherNode); - updateWrapper(otherNode, otherProps); - } - } - } - function setDefaultValue(node, type, value) { - if ( - // Focused number inputs synchronize on blur. See ChangeEventPlugin.js - type !== "number" || getActiveElement(node.ownerDocument) !== node - ) { - if (value == null) { - node.defaultValue = toString(node._wrapperState.initialValue); - } else if (node.defaultValue !== toString(value)) { - node.defaultValue = toString(value); - } - } - } - var didWarnSelectedSetOnOption = false; - var didWarnInvalidChild = false; - var didWarnInvalidInnerHTML = false; - function validateProps(element, props) { - { - if (props.value == null) { - if (typeof props.children === "object" && props.children !== null) { - React4.Children.forEach(props.children, function(child) { - if (child == null) { - return; - } - if (typeof child === "string" || typeof child === "number") { - return; - } - if (!didWarnInvalidChild) { - didWarnInvalidChild = true; - error("Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to