@influxdata/influxdb3-client
Version:
The Client that provides a simple and convenient way to interact with InfluxDB 3.
9 lines (8 loc) • 65.6 kB
JavaScript
var er=Object.defineProperty;var tr=(n,e,t)=>e in n?er(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var d=(n,e,t)=>tr(n,typeof e!="symbol"?e+"":e,t);function rr(n){if(!n||typeof n!="object"||Array.isArray(n))return;let e=typeof n.message=="string"?n.message:void 0;if(e)return e;let t=typeof n.error=="string"?n.error:void 0,r=n.data;if(t&&Array.isArray(r)){let i=[];for(let s of r){if(!s||typeof s!="object"||Array.isArray(s))continue;let o=s.line_number,a=s.error_message,u=s.original_line;o!=null&&typeof a=="string"&&a.length>0&&typeof u=="string"&&u.length>0?i.push(` line ${o}: ${a} (${u})`):typeof a=="string"&&a.length>0&&i.push(` ${a}`)}return i.length?`${t}:
${i.join(`
`)}`:t}if(r&&typeof r=="object"&&!Array.isArray(r)){let i=r.error_message;if(typeof i=="string"&&i.length>0)return i}if(t)return t}var A=class n extends Error{constructor(e){super(e),this.name="IllegalArgumentError",Object.setPrototypeOf(this,n.prototype)}},_=class n extends Error{constructor(t,r,i,s,o,a){var u;super();this.statusCode=t;this.statusMessage=r;this.body=i;this.contentType=s;this.headers=o;d(this,"code");d(this,"json");if(Object.setPrototypeOf(this,n.prototype),a)this.message=a;else if(i&&(s!=null&&s.startsWith("application/json")||!s))try{this.json=JSON.parse(i),typeof((u=this.json)==null?void 0:u.code)=="string"&&(this.code=this.json.code);let c=rr(this.json);c&&(this.message=c)}catch(c){}this.message||(this.message=`${t} ${r} : ${i}`),this.name="HttpError"}statusCode;statusMessage;body;contentType;headers},rt=class n extends Error{constructor(){super(),Object.setPrototypeOf(this,n.prototype),this.name="RequestTimedOutError",this.message="Request timed out"}},K=class n extends Error{constructor(){super(),this.name="AbortError",Object.setPrototypeOf(this,n.prototype),this.message="Response aborted"}};function nt(){let n=new TextDecoder("utf-8");return{concat(e,t){let r=new Uint8Array(e.length+t.length);return r.set(e),r.set(t,e.length),r},copy(e,t,r){let i=new Uint8Array(r-t);return i.set(e.subarray(t,r)),i},toUtf8String(e,t,r){return n.decode(e.subarray(t,r))}}}var it={timeout:void 0,writeTimeout:1e4,queryTimeout:6e4},st={precision:"ns",gzipThreshold:1e3,noSync:!1},we={type:"sql"};function ot(n){if(!n)throw Error("Connection string not set!");let e=new URL(n.trim(),"http://localhost"),t={host:n.indexOf("://")>0?e.origin+e.pathname:e.pathname};return e.searchParams.has("token")&&(t.token=e.searchParams.get("token")),e.searchParams.has("authScheme")&&(t.authScheme=e.searchParams.get("authScheme")),e.searchParams.has("database")&&(t.database=e.searchParams.get("database")),e.searchParams.has("timeout")&&(t.timeout=parseInt(e.searchParams.get("timeout"))),e.searchParams.has("precision")&&(t.writeOptions||(t.writeOptions={}),t.writeOptions.precision=ft(e.searchParams.get("precision"))),e.searchParams.has("gzipThreshold")&&(t.writeOptions||(t.writeOptions={}),t.writeOptions.gzipThreshold=parseInt(e.searchParams.get("gzipThreshold"))),e.searchParams.has("writeNoSync")&&(t.writeOptions||(t.writeOptions={}),t.writeOptions.noSync=ut(e.searchParams.get("writeNoSync"))),t}function at(){if(!process.env.INFLUX_HOST)throw Error("INFLUX_HOST variable not set!");if(!process.env.INFLUX_TOKEN)throw Error("INFLUX_TOKEN variable not set!");let n={host:process.env.INFLUX_HOST.trim()};if(process.env.INFLUX_TOKEN&&(n.token=process.env.INFLUX_TOKEN.trim()),process.env.INFLUX_AUTH_SCHEME&&(n.authScheme=process.env.INFLUX_AUTH_SCHEME.trim()),process.env.INFLUX_DATABASE&&(n.database=process.env.INFLUX_DATABASE.trim()),process.env.INFLUX_TIMEOUT&&(n.timeout=parseInt(process.env.INFLUX_TIMEOUT.trim())),process.env.INFLUX_PRECISION&&(n.writeOptions||(n.writeOptions={}),n.writeOptions.precision=ft(process.env.INFLUX_PRECISION)),process.env.INFLUX_GZIP_THRESHOLD&&(n.writeOptions||(n.writeOptions={}),n.writeOptions.gzipThreshold=parseInt(process.env.INFLUX_GZIP_THRESHOLD)),process.env.INFLUX_WRITE_NO_SYNC&&(n.writeOptions||(n.writeOptions={}),n.writeOptions.noSync=ut(process.env.INFLUX_WRITE_NO_SYNC)),process.env.INFLUX_GRPC_OPTIONS){let e=process.env.INFLUX_GRPC_OPTIONS.split(",");n.grpcOptions||(n.grpcOptions={});for(let t of e){let r=t.split("=");if(r.length!=2)continue;let i=parseInt(r[1]);Number.isNaN(i)&&(i=parseFloat(r[1]),Number.isNaN(i)&&(i=r[1])),n.grpcOptions[r[0]]=i}}return n}function ut(n){return["true","1","t","y","yes"].includes(n.trim().toLowerCase())}function lt(n){switch(n){case"ns":case"us":case"ms":case"s":return n;default:throw Error(`Unsupported precision '${n}'`)}}function ct(n){switch(n){case"ns":return"nanosecond";case"us":return"microsecond";case"ms":return"millisecond";case"s":return"second";default:throw Error(`Unsupported precision '${n}'`)}}function ft(n){switch(n.trim().toLowerCase()){case"ns":case"nanosecond":return"ns";case"us":case"microsecond":return"us";case"ms":case"millisecond":return"ms";case"s":case"second":return"s";default:throw Error(`Unsupported precision '${n}'`)}}var nr={error(n,e){console.error(`ERROR: ${n}`,e||"")},warn(n,e){console.warn(`WARN: ${n}`,e||"")}},Q=nr,L={error(n,e){Q.error(n,e)},warn(n,e){Q.warn(n,e)}};function Jr(n){let e=Q;return Q=n,e}function Oe(n,e){return function(t){let r="",i=0,s=0;for(;s<t.length;){let o=n.indexOf(t[s]);o>=0&&(r+=t.substring(i,s),r+=e[o],i=s+1),s++}return i==0?t:(i<t.length&&(r+=t.substring(i,t.length)),r)}}function ir(n,e){let t=Oe(n,e);return r=>`"${t(r)}"`}var B={measurement:Oe(`,
\r `,["\\,","\\ ","\\n","\\r","\\t"]),quoted:ir('"\\',['\\"',"\\\\"]),tag:Oe(`, =
\r `,["\\,","\\ ","\\=","\\n","\\r","\\t"])};var gt="000000000";function sr(n){return!1}sr(!0);var pt=Date.now(),Fe=0;function xe(){{let n=Date.now();n!==pt?(pt=n,Fe=0):Fe++;let e=String(Fe);return String(n)+gt.substr(0,6-e.length)+e}}function mt(){return String(Date.now())+gt.substr(0,3)}function ht(){return String(Date.now())}function dt(){return String(Math.floor(Date.now()/1e3))}var or={s:dt,ms:ht,us:mt,ns:xe,seconds:dt,millis:ht,micros:mt,nanos:xe},ar={s:n=>`${Math.floor(n.getTime()/1e3)}`,ms:n=>`${n.getTime()}`,us:n=>`${n.getTime()}000`,ns:n=>`${n.getTime()}000000`};function bt(n){return n===void 0?xe():typeof n=="string"?n.length>0?n:void 0:n instanceof Date?`${n.getTime()}000000`:String(typeof n=="number"?Math.floor(n):n)}var yt=(n,e="ns")=>n===void 0?or[e]():typeof n=="string"?n.length>0?n:void 0:n instanceof Date?ar[e](n):String(typeof n=="number"?Math.floor(n):n);var V=n=>{throw n},Tt=n=>n!==void 0,wt=n=>n instanceof Array||n instanceof Object&&typeof n.length=="number"&&(n.length===0||Object.getOwnPropertyNames(n).some(e=>e==="0")),Ot=n=>{let e=new Uint8Array(4);return e[0]=n>>0,e[1]=n>>8,e[2]=n>>16,e[3]=n>>24,e},ur=async n=>{let e=[];for await(let t of n)e.push(t);return e},q=n=>n===null||typeof n=="string"&&(n===""||n.indexOf(" ")!==-1)?!1:n!==""&&!isNaN(Number(n==null?void 0:n.toString())),Ft=n=>q(n)?typeof n=="string"?Number(n)>=0:typeof n=="number"&&n>=0:!1;var xt=(n,e,t)=>{let r=wt(n)&&typeof n!="string"?Array.from(n):[n];return r.length===0?[]:typeof r[0]=="string"?r:r.map(s=>s.toLineProtocol(void 0,e,t)).filter(Tt)};var lr=n=>typeof n=="number"?"float":typeof n=="string"?"string":typeof n=="boolean"?"boolean":void 0,Ie=class n extends Error{constructor(e,t,r){super(`field ${e} of type ${r} doesn't match expected type ${t}!`),this.name="GetFieldTypeMissmatchError",Object.setPrototypeOf(this,n.prototype)}},P=class n{constructor(){d(this,"_name");d(this,"_time");d(this,"_tags",{});d(this,"_fields",{})}getMeasurement(){return this._name}setMeasurement(e){return this._name=e,this}getTimestamp(){return this._time}setTimestamp(e){return this._time=e,this}getTag(e){return this._tags[e]}setTag(e,t){return this._tags[e]=t,this}removeTag(e){return delete this._tags[e],this}getTagNames(){return Object.keys(this._tags)}getFloatField(e){return this.getField(e,"float")}setFloatField(e,t){let r;if(typeof t=="number"?r=t:r=parseFloat(t),!isFinite(r))throw new Error(`invalid float value for field '${e}': '${t}'!`);return this._fields[e]=["float",r],this}getIntegerField(e){return this.getField(e,"integer")}setIntegerField(e,t){let r;if(typeof t=="number"?r=t:r=parseInt(String(t)),isNaN(r)||r<=-9223372036854776e3||r>=9223372036854776e3)throw new Error(`invalid integer value for field '${e}': '${t}'!`);return this._fields[e]=["integer",Math.floor(r)],this}getUintegerField(e){return this.getField(e,"uinteger")}setUintegerField(e,t){if(typeof t=="number"){if(isNaN(t)||t<0||t>Number.MAX_SAFE_INTEGER)throw new Error(`uint value for field '${e}' out of range: ${t}`);this._fields[e]=["uinteger",Math.floor(t)]}else{let r=String(t);for(let i=0;i<r.length;i++){let s=r.charCodeAt(i);if(s<48||s>57)throw new Error(`uint value has an unsupported character at pos ${i}: ${t}`)}if(r.length>20||r.length===20&&r.localeCompare("18446744073709551615")>0)throw new Error(`uint value for field '${e}' out of range: ${r}`);this._fields[e]=["uinteger",+r]}return this}getStringField(e){return this.getField(e,"string")}setStringField(e,t){return t!=null&&(typeof t!="string"&&(t=String(t)),this._fields[e]=["string",t]),this}getBooleanField(e){return this.getField(e,"boolean")}setBooleanField(e,t){return this._fields[e]=["boolean",!!t],this}getField(e,t){let r=this._fields[e];if(!r)return;let[i,s]=r;if(t!==void 0&&t!==i)throw new Ie(e,t,i);return s}getFieldType(e){let t=this._fields[e];if(t)return t[0]}setField(e,t,r){switch(r!=null?r:lr(t)){case"string":return this.setStringField(e,t);case"boolean":return this.setBooleanField(e,t);case"float":return this.setFloatField(e,t);case"integer":return this.setIntegerField(e,t);case"uinteger":return this.setUintegerField(e,t);case void 0:return this;default:throw new Error(`invalid field type for field '${e}': type -> ${r}, value -> ${t}!`)}}setFields(e){for(let[t,r]of Object.entries(e))this.setField(t,r);return this}removeField(e){return delete this._fields[e],this}getFieldNames(){return Object.keys(this._fields)}hasFields(){return this.getFieldNames().length>0}copy(){let e=new n;return e._name=this._name,e._time=this._time,e._tags=Object.fromEntries(Object.entries(this._tags)),e._fields=Object.fromEntries(Object.entries(this._fields).map(t=>[...t])),e}asPoint(e){return Z.fromValues(e?this.setMeasurement(e):this)}};var cr=(n,e)=>{switch(n){case"string":return B.quoted(e);case"boolean":return e?"T":"F";case"float":return`${e}`;case"integer":return`${e}i`;case"uinteger":return`${e}u`}},fr=(n,e)=>{if(!e)return[];let t=new Set(n);return Object.keys(e).filter(r=>!t.has(r)).sort()},pr=(n,e)=>{if(!e||e.length===0)return n;let t=new Set(n),r=[],i=new Set;for(let o of e)!o||i.has(o)||!t.has(o)||(r.push(o),i.add(o),t.delete(o));let s=Array.from(t).sort();return r.concat(s)},Z=class n{constructor(e){d(this,"_values");e instanceof P?this._values=e:this._values=new P,typeof e=="string"&&this._values.setMeasurement(e)}static measurement(e){return new n(e)}static fromValues(e){if(!e.getMeasurement()||e.getMeasurement()==="")throw new Error("Cannot convert values to point without measurement set!");return new n(e)}getMeasurement(){return this._values.getMeasurement()}setMeasurement(e){return e!==""&&this._values.setMeasurement(e),this}getTimestamp(){return this._values.getTimestamp()}setTimestamp(e){return this._values.setTimestamp(e),this}getTag(e){return this._values.getTag(e)}setTag(e,t){return this._values.setTag(e,t),this}removeTag(e){return this._values.removeTag(e),this}getTagNames(){return this._values.getTagNames()}getFloatField(e){return this._values.getFloatField(e)}setFloatField(e,t){return this._values.setFloatField(e,t),this}getIntegerField(e){return this._values.getIntegerField(e)}setIntegerField(e,t){return this._values.setIntegerField(e,t),this}getUintegerField(e){return this._values.getUintegerField(e)}setUintegerField(e,t){return this._values.setUintegerField(e,t),this}getStringField(e){return this._values.getStringField(e)}setStringField(e,t){return this._values.setStringField(e,t),this}getBooleanField(e){return this._values.getBooleanField(e)}setBooleanField(e,t){return this._values.setBooleanField(e,t),this}getField(e,t){return this._values.getField(e,t)}getFieldType(e){return this._values.getFieldType(e)}setField(e,t,r){return this._values.setField(e,t,r),this}setFields(e){return this._values.setFields(e),this}removeField(e){return this._values.removeField(e),this}getFieldNames(){return this._values.getFieldNames()}hasFields(){return this._values.hasFields()}copy(){return new n(this._values.copy())}toLineProtocol(e,t,r){if(!this._values.getMeasurement())return;let i="";if(this._values.getFieldNames().sort().forEach(f=>{if(f){let m=this._values.getFieldType(f),p=this._values.getField(f);if(m===void 0||p===void 0)return;let O=cr(m,p);i.length>0&&(i+=","),i+=`${B.tag(f)}=${O}`}}),i.length===0)return;let s="",o=this._values.getTagNames().sort(),a=fr(o,t);pr(a.concat(o),r).forEach(f=>{if(f){let m=this._values.getTag(f),p=m!==void 0?m:t==null?void 0:t[f];p&&(s+=",",s+=`${B.tag(f)}=${B.tag(p)}`)}});let c=this._values.getTimestamp();return e?typeof e=="string"?c=yt(c,e):c=e(c):c=bt(c),`${B.measurement(this.getMeasurement())}${s} ${i}${c!==void 0?` ${c}`:""}`}toString(){let e=this.toLineProtocol(void 0);return e||`invalid point: ${JSON.stringify(this,void 0)}`}};function Ne(n={}){let e=0,t={next:r=>{if(e===0&&n.next&&r!==null&&r!==void 0)return n.next(r)},error:r=>{e===0&&(e=1,n.error&&n.error(r))},complete:()=>{e===0&&(e=2,n.complete&&n.complete())},responseStarted:(r,i)=>{n.responseStarted&&n.responseStarted(r,i)}};return n.useCancellable&&(t.useCancellable=n.useCancellable.bind(n)),n.useResume&&(t.useResume=n.useResume.bind(n)),t}function Y(n){let e={};return n.headers.forEach((t,r)=>{let i=e[r];i===void 0?e[r]=t:Array.isArray(i)?i.push(t):e[r]=[i,t]}),e}var H=class{constructor(e){this._connectionOptions=e;d(this,"chunkCombiner",nt());d(this,"_defaultHeaders");d(this,"_url");d(this,"requestDecorator",function(){});var t;if(this._defaultHeaders={"content-type":"application/json; charset=utf-8",...e.headers},this._connectionOptions.token){let r=(t=this._connectionOptions.authScheme)!=null?t:"Token";this._defaultHeaders.Authorization=`${r} ${this._connectionOptions.token}`}this._url=String(this._connectionOptions.host),this._url.endsWith("/")&&(this._url=this._url.substring(0,this._url.length-1)),this._url.endsWith("/api/v2")&&(this._url=this._url.substring(0,this._url.length-7),L.warn(`Please remove '/api/v2' context path from InfluxDB base url, using ${this._url} !`))}_connectionOptions;send(e,t,r,i){let s=Ne(i),o=!1,a=r.signal,u,c=()=>{},f=c;if(i&&i.useCancellable){let m=new AbortController;a||(a=m.signal,r={...r,signal:a}),a.addEventListener("abort",()=>{f()}),i.useCancellable({cancel(){o=!0,m.abort()},isCancelled(){return o||a.aborted}})}this._fetch(e,t,r).then(async m=>{if(i!=null&&i.responseStarted&&s.responseStarted(Y(m),m.status),await this._throwOnErrorResponse(m),m.body){let p=m.body.getReader(),O;do{if(u&&await u,o)break;if(O=await p.read(),s.next(O.value)===!1){let h=s.useResume;if(!h){let x="Unable to pause, useResume is not configured!";return await p.cancel(x),Promise.reject(new Error(x))}u=new Promise(x=>{f=()=>{x(),u=void 0,f=c},h(f)})}}while(!O.done)}else if(m.arrayBuffer){let p=await m.arrayBuffer();s.next(new Uint8Array(p))}else{let p=await m.text();s.next(new TextEncoder().encode(p))}}).catch(m=>{o||s.error(m)}).finally(()=>s.complete())}async _throwOnErrorResponse(e){if(e.status>=300){let t="";try{if(t=await e.text(),!t){let r=e.headers.get("x-influxdb-error");r&&(t=r)}}catch(r){throw L.warn("Unable to receive error body",r),new _(e.status,e.statusText,void 0,e.headers.get("content-type"),Y(e))}throw new _(e.status,e.statusText,t,e.headers.get("content-type"),Y(e))}}async*iterate(e,t,r){var s;let i=await this._fetch(e,t,r);if(await this._throwOnErrorResponse(i),i.body){let o=i.body.getReader();for(;;){let{value:a,done:u}=await o.read();if(u)break;if((s=r.signal)!=null&&s.aborted)throw await i.body.cancel(),new K;yield a}}else if(i.arrayBuffer){let o=await i.arrayBuffer();yield new Uint8Array(o)}else{let o=await i.text();yield new TextEncoder().encode(o)}}async request(e,t,r,i){var c,f;let s=await this._fetch(e,t,r),{headers:o}=s,a=o.get("content-type")||"";i&&i(Y(s),s.status),await this._throwOnErrorResponse(s);let u=(f=(c=r.headers)==null?void 0:c.accept)!=null?f:a;if(u.includes("json"))return await s.json();if(u.includes("text")||u.startsWith("application/csv"))return await s.text()}_fetch(e,t,r){let{method:i,headers:s,...o}=r,a=`${this._url}${e}`,u={method:i,body:i==="GET"||i==="HEAD"?void 0:typeof t=="string"?t:JSON.stringify(t),headers:{...this._defaultHeaders,...s},credentials:"omit",...this._connectionOptions.transportOptions,...o};return this.requestDecorator(u,r,a),fetch(a,u)}};import{GrpcWebFetchTransport as mr}from"@protobuf-ts/grpcweb-transport";var It=({host:n,timeout:e,clientOptions:t})=>{var i;(t!=null&&t.grpcOptions||(i=t==null?void 0:t.queryOptions)!=null&&i.grpcOptions)&&console.warn(`Detected grpcClientOptions: such options are ignored in the GrpcWebFetchTransport:
${JSON.stringify(t)}`);let{interceptors:r}=t!=null?t:{};return new mr({baseUrl:n,timeout:e,interceptors:r})};var hr={writeTransport:n=>new H(n),queryTransport:It},D=hr;var j=class{constructor(e){this._options=e;d(this,"_closed",!1);d(this,"_transport");var t;this._transport=(t=this._options.transport)!=null?t:D.writeTransport(this._options),this.doWrite=this.doWrite.bind(this)}_options;_createWritePath(e,t,r){let i=t.precision,s,o=[];return r&&o.push(`org=${encodeURIComponent(r)}`),t.noSync?(s="/api/v3/write_lp",o.push(`db=${encodeURIComponent(e)}`),o.push(`precision=${ct(i)}`),o.push("no_sync=true")):(s="/api/v2/write",o.push(`bucket=${encodeURIComponent(e)}`),o.push(`precision=${lt(i)}`)),`${s}?${o.join("&")}`}doWrite(e,t,r,i){if(this._closed)return Promise.reject(new Error("writeApi: already closed!"));if(e.length<=0||e.length===1&&e[0]==="")return Promise.resolve();let o,a,u=new Promise((h,x)=>{o=h,a=x}),c={...st,...i},f,m,p={responseStarted(h,x){f=x,m=h},error(h){if(h instanceof _&&h.json&&typeof h.json.error=="string"&&h.json.error.includes("hinted handoff queue not empty")){L.warn(`Write to InfluxDB returns: ${h.json.error}`),f=204,p.complete();return}h instanceof _&&h.statusCode==405&&c.noSync&&(h=new _(h.statusCode,"Server doesn't support write with noSync=true (supported by InfluxDB 3 Core/Enterprise servers only).",h.body,h.contentType,h.headers)),L.error("Write to InfluxDB failed.",h),a(h)},complete(){if(f==null||f>=200&&f<300)o();else{let h=`2xx HTTP response status code expected, but ${f} returned`,x=new _(f,h,void 0,"0",m);x.message=h,p.error(x)}}},O={method:"POST",headers:{"content-type":"text/plain; charset=utf-8",...i==null?void 0:i.headers},gzipThreshold:c.gzipThreshold,timeout:c.timeout};return this._transport.send(this._createWritePath(t,c,r),e.join(`
`),O,p),u}async close(){this._closed=!0}};import{RecordBatchReader as Lr,Type as Br}from"apache-arrow";import{ServiceType as Fr}from"@protobuf-ts/runtime-rpc";function U(n){let e=typeof n;if(e=="object"){if(Array.isArray(n))return"array";if(n===null)return"null"}return e}function _e(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}var k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),z=[];for(let n=0;n<k.length;n++)z[k[n].charCodeAt(0)]=n;z[45]=k.indexOf("+");z[95]=k.indexOf("/");function Nt(n){let e=n.length*3/4;n[n.length-2]=="="?e-=2:n[n.length-1]=="="&&(e-=1);let t=new Uint8Array(e),r=0,i=0,s,o=0;for(let a=0;a<n.length;a++){if(s=z[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":i=0;case`
`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(i){case 0:o=s,i=1;break;case 1:t[r++]=o<<2|(s&48)>>4,o=s,i=2;break;case 2:t[r++]=(o&15)<<4|(s&60)>>2,o=s,i=3;break;case 3:t[r++]=(o&3)<<6|s,i=0;break}}if(i==1)throw Error("invalid base64 string.");return t.subarray(0,r)}function _t(n){let e="",t=0,r,i=0;for(let s=0;s<n.length;s++)switch(r=n[s],t){case 0:e+=k[r>>2],i=(r&3)<<4,t=1;break;case 1:e+=k[i|r>>4],i=(r&15)<<2,t=2;break;case 2:e+=k[i|r>>6],e+=k[r&63],t=0;break}return t&&(e+=k[i],e+="=",t==1&&(e+="=")),e}var v;(function(n){n.symbol=Symbol.for("protobuf-ts/unknown"),n.onRead=(t,r,i,s,o)=>{(e(r)?r[n.symbol]:r[n.symbol]=[]).push({no:i,wireType:s,data:o})},n.onWrite=(t,r,i)=>{for(let{no:s,wireType:o,data:a}of n.list(r))i.tag(s,o).raw(a)},n.list=(t,r)=>{if(e(t)){let i=t[n.symbol];return r?i.filter(s=>s.no==r):i}return[]},n.last=(t,r)=>n.list(t,r).slice(-1)[0];let e=t=>t&&Array.isArray(t[n.symbol])})(v||(v={}));var w;(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"})(w||(w={}));function Et(){let n=0,e=0;for(let r=0;r<28;r+=7){let i=this.buf[this.pos++];if(n|=(i&127)<<r,(i&128)==0)return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,(t&128)==0)return this.assertBounds(),[n,e];for(let r=3;r<=31;r+=7){let i=this.buf[this.pos++];if(e|=(i&127)<<r,(i&128)==0)return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function te(n,e,t){for(let s=0;s<28;s=s+7){let o=n>>>s,a=!(!(o>>>7)&&e==0),u=(a?o|128:o)&255;if(t.push(u),!a)return}let r=n>>>28&15|(e&7)<<4,i=e>>3!=0;if(t.push((i?r|128:r)&255),!!i){for(let s=3;s<31;s=s+7){let o=e>>>s,a=!!(o>>>7),u=(a?o|128:o)&255;if(t.push(u),!a)return}t.push(e>>>31&1)}}var ee=65536*65536;function Ee(n){let e=n[0]=="-";e&&(n=n.slice(1));let t=1e6,r=0,i=0;function s(o,a){let u=Number(n.slice(o,a));i*=t,r=r*t+u,r>=ee&&(i=i+(r/ee|0),r=r%ee)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),[e,r,i]}function re(n,e){if(e>>>0<=2097151)return""+(ee*e+(n>>>0));let t=n&16777215,r=(n>>>24|e<<8)>>>0&16777215,i=e>>16&65535,s=t+r*6777216+i*6710656,o=r+i*8147497,a=i*2,u=1e7;s>=u&&(o+=Math.floor(s/u),s%=u),o>=u&&(a+=Math.floor(o/u),o%=u);function c(f,m){let p=f?String(f):"";return m?"0000000".slice(p.length)+p:p}return c(a,0)+c(o,a)+c(s,1)}function ke(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 kt(){let n=this.buf[this.pos++],e=n&127;if((n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,(n&128)==0)return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,(n&128)==0)return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;(n&128)!==0&&t<10;t++)n=this.buf[this.pos++];if((n&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}var y;function dr(){let n=new DataView(new ArrayBuffer(8));y=globalThis.BigInt!==void 0&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:n}:void 0}dr();function St(n){if(!n)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}var Rt=/^-?[0-9]+$/,ie=4294967296,ne=2147483648,se=class{constructor(e,t){this.lo=e|0,this.hi=t|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*ie+(this.lo>>>0);if(!Number.isSafeInteger(e))throw new Error("cannot convert to safe number");return e}},F=class n extends se{static from(e){if(y)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=y.C(e);case"number":if(e===0)return this.ZERO;e=y.C(e);case"bigint":if(!e)return this.ZERO;if(e<y.UMIN)throw new Error("signed value for ulong");if(e>y.UMAX)throw new Error("ulong too large");return y.V.setBigUint64(0,e,!0),new n(y.V.getInt32(0,!0),y.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!Rt.test(e))throw new Error("string is no integer");let[t,r,i]=Ee(e);if(t)throw new Error("signed value for ulong");return new n(r,i);case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new n(e,e/ie)}throw new Error("unknown value "+typeof e)}toString(){return y?this.toBigInt().toString():re(this.lo,this.hi)}toBigInt(){return St(y),y.V.setInt32(0,this.lo,!0),y.V.setInt32(4,this.hi,!0),y.V.getBigUint64(0,!0)}};F.ZERO=new F(0,0);var b=class n extends se{static from(e){if(y)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=y.C(e);case"number":if(e===0)return this.ZERO;e=y.C(e);case"bigint":if(!e)return this.ZERO;if(e<y.MIN)throw new Error("signed long too small");if(e>y.MAX)throw new Error("signed long too large");return y.V.setBigInt64(0,e,!0),new n(y.V.getInt32(0,!0),y.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!Rt.test(e))throw new Error("string is no integer");let[t,r,i]=Ee(e);if(t){if(i>ne||i==ne&&r!=0)throw new Error("signed long too small")}else if(i>=ne)throw new Error("signed long too large");let s=new n(r,i);return t?s.negate():s;case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");return e>0?new n(e,e/ie):new n(-e,-e/ie).negate()}throw new Error("unknown value "+typeof e)}isNegative(){return(this.hi&ne)!==0}negate(){let e=~this.hi,t=this.lo;return t?t=~t+1:e+=1,new n(t,e)}toString(){if(y)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return"-"+re(e.lo,e.hi)}return re(this.lo,this.hi)}toBigInt(){return St(y),y.V.setInt32(0,this.lo,!0),y.V.setInt32(4,this.hi,!0),y.V.getBigInt64(0,!0)}};b.ZERO=new b(0,0);var At={readUnknownField:!0,readerFactory:n=>new Se(n)};function Pt(n){return n?Object.assign(Object.assign({},At),n):At}var Se=class{constructor(e,t){this.varint64=Et,this.uint32=kt,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t!=null?t:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}tag(){let e=this.uint32(),t=e>>>3,r=e&7;if(t<=0||r<0||r>5)throw new Error("illegal tag: field no "+t+" wire type "+r);return[t,r]}skip(e){let t=this.pos;switch(e){case w.Varint:for(;this.buf[this.pos++]&128;);break;case w.Bit64:this.pos+=4;case w.Bit32:this.pos+=4;break;case w.LengthDelimited:let r=this.uint32();this.pos+=r;break;case w.StartGroup:let i;for(;(i=this.tag()[1])!==w.EndGroup;)this.skip(i);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 new b(...this.varint64())}uint64(){return new F(...this.varint64())}sint64(){let[e,t]=this.varint64(),r=-(e&1);return e=(e>>>1|(t&1)<<31)^r,t=t>>>1^r,new b(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 new F(this.sfixed32(),this.sfixed32())}sfixed64(){return new b(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 g(n,e){if(!n)throw new Error(e)}var gr=34028234663852886e22,br=-34028234663852886e22,yr=4294967295,Tr=2147483647,wr=-2147483648;function S(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>Tr||n<wr)throw new Error("invalid int 32: "+n)}function C(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>yr||n<0)throw new Error("invalid uint 32: "+n)}function M(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>gr||n<br))throw new Error("invalid float 32: "+n)}var Dt={writeUnknownFields:!0,writerFactory:()=>new Re};function Ut(n){return n?Object.assign(Object.assign({},Dt),n):Dt}var Re=class{constructor(e){this.stack=[],this.textEncoder=e!=null?e:new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let i=0;i<this.chunks.length;i++)e+=this.chunks[i].length;let t=new Uint8Array(e),r=0;for(let i=0;i<this.chunks.length;i++)t.set(this.chunks[i],r),r+=this.chunks[i].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(C(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return S(e),ke(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){M(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){C(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){S(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return S(e),e=(e<<1^e>>31)>>>0,ke(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),r=new DataView(t.buffer),i=b.from(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),r=new DataView(t.buffer),i=F.from(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(t)}int64(e){let t=b.from(e);return te(t.lo,t.hi,this.buf),this}sint64(e){let t=b.from(e),r=t.hi>>31,i=t.lo<<1^r,s=(t.hi<<1|t.lo>>>31)^r;return te(i,s,this.buf),this}uint64(e){let t=F.from(e);return te(t.lo,t.hi,this.buf),this}};var Ct={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},Lt={ignoreUnknownFields:!1};function Bt(n){return n?Object.assign(Object.assign({},Lt),n):Lt}function Vt(n){return n?Object.assign(Object.assign({},Ct),n):Ct}var oe=Symbol.for("protobuf-ts/message-type");function Ae(n){let e=!1,t=[];for(let r=0;r<n.length;r++){let i=n.charAt(r);i=="_"?e=!0:/\d/.test(i)?(t.push(i),e=!0):e?(t.push(i.toUpperCase()),e=!1):r==0?t.push(i.toLowerCase()):t.push(i)}return t.join("")}var l;(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"})(l||(l={}));var I;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING",n[n.NUMBER=2]="NUMBER"})(I||(I={}));var X;(function(n){n[n.NO=0]="NO",n[n.PACKED=1]="PACKED",n[n.UNPACKED=2]="UNPACKED"})(X||(X={}));function vt(n){var e,t,r,i;return n.localName=(e=n.localName)!==null&&e!==void 0?e:Ae(n.name),n.jsonName=(t=n.jsonName)!==null&&t!==void 0?t:Ae(n.name),n.repeat=(r=n.repeat)!==null&&r!==void 0?r:X.NO,n.opt=(i=n.opt)!==null&&i!==void 0?i:n.repeat||n.oneof?!1:n.kind=="message",n}function Mt(n){if(typeof n!="object"||n===null||!n.hasOwnProperty("oneofKind"))return!1;switch(typeof n.oneofKind){case"string":return n[n.oneofKind]===void 0?!1:Object.keys(n).length==2;case"undefined":return Object.keys(n).length==1;default:return!1}}var ae=class{constructor(e){var t;this.fields=(t=e.fields)!==null&&t!==void 0?t:[]}prepare(){if(this.data)return;let e=[],t=[],r=[];for(let i of this.fields)if(i.oneof)r.includes(i.oneof)||(r.push(i.oneof),e.push(i.oneof),t.push(i.oneof));else switch(t.push(i.localName),i.kind){case"scalar":case"enum":(!i.opt||i.repeat)&&e.push(i.localName);break;case"message":i.repeat&&e.push(i.localName);break;case"map":e.push(i.localName);break}this.data={req:e,known:t,oneofs:Object.values(r)}}is(e,t,r=!1){if(t<0)return!0;if(e==null||typeof e!="object")return!1;this.prepare();let i=Object.keys(e),s=this.data;if(i.length<s.req.length||s.req.some(o=>!i.includes(o))||!r&&i.some(o=>!s.known.includes(o)))return!1;if(t<1)return!0;for(let o of s.oneofs){let a=e[o];if(!Mt(a))return!1;if(a.oneofKind===void 0)continue;let u=this.fields.find(c=>c.localName===a.oneofKind);if(!u||!this.field(a[a.oneofKind],u,r,t))return!1}for(let o of this.fields)if(o.oneof===void 0&&!this.field(e[o.localName],o,r,t))return!1;return!0}field(e,t,r,i){let s=t.repeat;switch(t.kind){case"scalar":return e===void 0?t.opt:s?this.scalars(e,t.T,i,t.L):this.scalar(e,t.T,t.L);case"enum":return e===void 0?t.opt:s?this.scalars(e,l.INT32,i):this.scalar(e,l.INT32);case"message":return e===void 0?!0:s?this.messages(e,t.T(),r,i):this.message(e,t.T(),r,i);case"map":if(typeof e!="object"||e===null)return!1;if(i<2)return!0;if(!this.mapKeys(e,t.K,i))return!1;switch(t.V.kind){case"scalar":return this.scalars(Object.values(e),t.V.T,i,t.V.L);case"enum":return this.scalars(Object.values(e),l.INT32,i);case"message":return this.messages(Object.values(e),t.V.T(),r,i)}break}return!0}message(e,t,r,i){return r?t.isAssignable(e,i):t.is(e,i)}messages(e,t,r,i){if(!Array.isArray(e))return!1;if(i<2)return!0;if(r){for(let s=0;s<e.length&&s<i;s++)if(!t.isAssignable(e[s],i-1))return!1}else for(let s=0;s<e.length&&s<i;s++)if(!t.is(e[s],i-1))return!1;return!0}scalar(e,t,r){let i=typeof e;switch(t){case l.UINT64:case l.FIXED64:case l.INT64:case l.SFIXED64:case l.SINT64:switch(r){case I.BIGINT:return i=="bigint";case I.NUMBER:return i=="number"&&!isNaN(e);default:return i=="string"}case l.BOOL:return i=="boolean";case l.STRING:return i=="string";case l.BYTES:return e instanceof Uint8Array;case l.DOUBLE:case l.FLOAT:return i=="number"&&!isNaN(e);default:return i=="number"&&Number.isInteger(e)}}scalars(e,t,r,i){if(!Array.isArray(e))return!1;if(r<2)return!0;if(Array.isArray(e)){for(let s=0;s<e.length&&s<r;s++)if(!this.scalar(e[s],t,i))return!1}return!0}mapKeys(e,t,r){let i=Object.keys(e);switch(t){case l.INT32:case l.FIXED32:case l.SFIXED32:case l.SINT32:case l.UINT32:return this.scalars(i.slice(0,r).map(s=>parseInt(s)),t,r);case l.BOOL:return this.scalars(i.slice(0,r).map(s=>s=="true"?!0:s=="false"?!1:s),t,r);default:return this.scalars(i,t,r,I.STRING)}}};function N(n,e){switch(e){case I.BIGINT:return n.toBigInt();case I.NUMBER:return n.toNumber();default:return n.toString()}}var ue=class{constructor(e){this.info=e}prepare(){var e;if(this.fMap===void 0){this.fMap={};let t=(e=this.info.fields)!==null&&e!==void 0?e:[];for(let r of t)this.fMap[r.name]=r,this.fMap[r.jsonName]=r,this.fMap[r.localName]=r}}assert(e,t,r){if(!e){let i=U(r);throw(i=="number"||i=="boolean")&&(i=r.toString()),new Error(`Cannot parse JSON ${i} for ${this.info.typeName}#${t}`)}}read(e,t,r){this.prepare();let i=[];for(let[s,o]of Object.entries(e)){let a=this.fMap[s];if(!a){if(!r.ignoreUnknownFields)throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${s}`);continue}let u=a.localName,c;if(a.oneof){if(o===null&&(a.kind!=="enum"||a.T()[0]!=="google.protobuf.NullValue"))continue;if(i.includes(a.oneof))throw new Error(`Multiple members of the oneof group "${a.oneof}" of ${this.info.typeName} are present in JSON.`);i.push(a.oneof),c=t[a.oneof]={oneofKind:u}}else c=t;if(a.kind=="map"){if(o===null)continue;this.assert(_e(o),a.name,o);let f=c[u];for(let[m,p]of Object.entries(o)){this.assert(p!==null,a.name+" map value",null);let O;switch(a.V.kind){case"message":O=a.V.T().internalJsonRead(p,r);break;case"enum":if(O=this.enum(a.V.T(),p,a.name,r.ignoreUnknownFields),O===!1)continue;break;case"scalar":O=this.scalar(p,a.V.T,a.V.L,a.name);break}this.assert(O!==void 0,a.name+" map value",p);let h=m;a.K==l.BOOL&&(h=h=="true"?!0:h=="false"?!1:h),h=this.scalar(h,a.K,I.STRING,a.name).toString(),f[h]=O}}else if(a.repeat){if(o===null)continue;this.assert(Array.isArray(o),a.name,o);let f=c[u];for(let m of o){this.assert(m!==null,a.name,null);let p;switch(a.kind){case"message":p=a.T().internalJsonRead(m,r);break;case"enum":if(p=this.enum(a.T(),m,a.name,r.ignoreUnknownFields),p===!1)continue;break;case"scalar":p=this.scalar(m,a.T,a.L,a.name);break}this.assert(p!==void 0,a.name,o),f.push(p)}}else switch(a.kind){case"message":if(o===null&&a.T().typeName!="google.protobuf.Value"){this.assert(a.oneof===void 0,a.name+" (oneof member)",null);continue}c[u]=a.T().internalJsonRead(o,r,c[u]);break;case"enum":if(o===null)continue;let f=this.enum(a.T(),o,a.name,r.ignoreUnknownFields);if(f===!1)continue;c[u]=f;break;case"scalar":if(o===null)continue;c[u]=this.scalar(o,a.T,a.L,a.name);break}}}enum(e,t,r,i){if(e[0]=="google.protobuf.NullValue"&&g(t===null||t==="NULL_VALUE",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} only accepts null.`),t===null)return 0;switch(typeof t){case"number":return g(Number.isInteger(t),`Unable to parse field ${this.info.typeName}#${r}, enum can only be integral number, got ${t}.`),t;case"string":let s=t;e[2]&&t.substring(0,e[2].length)===e[2]&&(s=t.substring(e[2].length));let o=e[1][s];return typeof o=="undefined"&&i?!1:(g(typeof o=="number",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} has no value for "${t}".`),o)}g(!1,`Unable to parse field ${this.info.typeName}#${r}, cannot parse enum value from ${typeof t}".`)}scalar(e,t,r,i){let s;try{switch(t){case l.DOUBLE:case l.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===""){s="empty string";break}if(typeof e=="string"&&e.trim().length!==e.length){s="extra whitespace";break}if(typeof e!="string"&&typeof e!="number")break;let o=Number(e);if(Number.isNaN(o)){s="not a number";break}if(!Number.isFinite(o)){s="too large or small";break}return t==l.FLOAT&&M(o),o;case l.INT32:case l.FIXED32:case l.SFIXED32:case l.SINT32:case l.UINT32:if(e===null)return 0;let a;if(typeof e=="number"?a=e:e===""?s="empty string":typeof e=="string"&&(e.trim().length!==e.length?s="extra whitespace":a=Number(e)),a===void 0)break;return t==l.UINT32?C(a):S(a),a;case l.INT64:case l.SFIXED64:case l.SINT64:if(e===null)return N(b.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return N(b.from(e),r);case l.FIXED64:case l.UINT64:if(e===null)return N(F.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return N(F.from(e),r);case l.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case l.STRING:if(e===null)return"";if(typeof e!="string"){s="extra whitespace";break}try{encodeURIComponent(e)}catch(u){u="invalid UTF8";break}return e;case l.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return Nt(e)}}catch(o){s=o.message}this.assert(!1,i+(s?" - "+s:""),e)}};var le=class{constructor(e){var t;this.fields=(t=e.fields)!==null&&t!==void 0?t:[]}write(e,t){let r={},i=e;for(let s of this.fields){if(!s.oneof){let c=this.field(s,i[s.localName],t);c!==void 0&&(r[t.useProtoFieldName?s.name:s.jsonName]=c);continue}let o=i[s.oneof];if(o.oneofKind!==s.localName)continue;let a=s.kind=="scalar"||s.kind=="enum"?Object.assign(Object.assign({},t),{emitDefaultValues:!0}):t,u=this.field(s,o[s.localName],a);g(u!==void 0),r[t.useProtoFieldName?s.name:s.jsonName]=u}return r}field(e,t,r){let i;if(e.kind=="map"){g(typeof t=="object"&&t!==null);let s={};switch(e.V.kind){case"scalar":for(let[u,c]of Object.entries(t)){let f=this.scalar(e.V.T,c,e.name,!1,!0);g(f!==void 0),s[u.toString()]=f}break;case"message":let o=e.V.T();for(let[u,c]of Object.entries(t)){let f=this.message(o,c,e.name,r);g(f!==void 0),s[u.toString()]=f}break;case"enum":let a=e.V.T();for(let[u,c]of Object.entries(t)){g(c===void 0||typeof c=="number");let f=this.enum(a,c,e.name,!1,!0,r.enumAsInteger);g(f!==void 0),s[u.toString()]=f}break}(r.emitDefaultValues||Object.keys(s).length>0)&&(i=s)}else if(e.repeat){g(Array.isArray(t));let s=[];switch(e.kind){case"scalar":for(let u=0;u<t.length;u++){let c=this.scalar(e.T,t[u],e.name,e.opt,!0);g(c!==void 0),s.push(c)}break;case"enum":let o=e.T();for(let u=0;u<t.length;u++){g(t[u]===void 0||typeof t[u]=="number");let c=this.enum(o,t[u],e.name,e.opt,!0,r.enumAsInteger);g(c!==void 0),s.push(c)}break;case"message":let a=e.T();for(let u=0;u<t.length;u++){let c=this.message(a,t[u],e.name,r);g(c!==void 0),s.push(c)}break}(r.emitDefaultValues||s.length>0||r.emitDefaultValues)&&(i=s)}else switch(e.kind){case"scalar":i=this.scalar(e.T,t,e.name,e.opt,r.emitDefaultValues);break;case"enum":i=this.enum(e.T(),t,e.name,e.opt,r.emitDefaultValues,r.enumAsInteger);break;case"message":i=this.message(e.T(),t,e.name,r);break}return i}enum(e,t,r,i,s,o){if(e[0]=="google.protobuf.NullValue")return!s&&!i?void 0:null;if(t===void 0){g(i);return}if(!(t===0&&!s&&!i))return g(typeof t=="number"),g(Number.isInteger(t)),o||!e[1].hasOwnProperty(t)?t:e[2]?e[2]+e[1][t]:e[1][t]}message(e,t,r,i){return t===void 0?i.emitDefaultValues?null:void 0:e.internalJsonWrite(t,i)}scalar(e,t,r,i,s){if(t===void 0){g(i);return}let o=s||i;switch(e){case l.INT32:case l.SFIXED32:case l.SINT32:return t===0?o?0:void 0:(S(t),t);case l.FIXED32:case l.UINT32:return t===0?o?0:void 0:(C(t),t);case l.FLOAT:M(t);case l.DOUBLE:return t===0?o?0:void 0:(g(typeof t=="number"),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t);case l.STRING:return t===""?o?"":void 0:(g(typeof t=="string"),t);case l.BOOL:return t===!1?o?!1:void 0:(g(typeof t=="boolean"),t);case l.UINT64:case l.FIXED64:g(typeof t=="number"||typeof t=="string"||typeof t=="bigint");let a=F.from(t);return a.isZero()&&!o?void 0:a.toString();case l.INT64:case l.SFIXED64:case l.SINT64:g(typeof t=="number"||typeof t=="string"||typeof t=="bigint");let u=b.from(t);return u.isZero()&&!o?void 0:u.toString();case l.BYTES:return g(t instanceof Uint8Array),t.byteLength?_t(t):o?"":void 0}}};function J(n,e=I.STRING){switch(n){case l.BOOL:return!1;case l.UINT64:case l.FIXED64:return N(F.ZERO,e);case l.INT64:case l.SFIXED64:case l.SINT64:return N(b.ZERO,e);case l.DOUBLE:case l.FLOAT:return 0;case l.BYTES:return new Uint8Array(0);case l.STRING:return"";default:return 0}}var ce=class{constructor(e){this.info=e}prepare(){var e;if(!this.fieldNoToField){let t=(e=this.info.fields)!==null&&e!==void 0?e:[];this.fieldNoToField=new Map(t.map(r=>[r.no,r]))}}read(e,t,r,i){this.prepare();let s=i===void 0?e.len:e.pos+i;for(;e.pos<s;){let[o,a]=e.tag(),u=this.fieldNoToField.get(o);if(!u){let p=r.readUnknownField;if(p=="throw")throw new Error(`Unknown field ${o} (wire type ${a}) for ${this.info.typeName}`);let O=e.skip(a);p!==!1&&(p===!0?v.onRead:p)(this.info.typeName,t,o,a,O);continue}let c=t,f=u.repeat,m=u.localName;switch(u.oneof&&(c=c[u.oneof],c.oneofKind!==m&&(c=t[u.oneof]={oneofKind:m})),u.kind){case"scalar":case"enum":let p=u.kind=="enum"?l.INT32:u.T,O=u.kind=="scalar"?u.L:void 0;if(f){let R=c[m];if(a==w.LengthDelimited&&p!=l.STRING&&p!=l.BYTES){let $=e.uint32()+e.pos;for(;e.pos<$;)R.push(this.scalar(e,p,O))}else R.push(this.scalar(e,p,O))}else c[m]=this.scalar(e,p,O);break;case"message":if(f){let R=c[m],$=u.T().internalBinaryRead(e,e.uint32(),r);R.push($)}else c[m]=u.T().internalBinaryRead(e,e.uint32(),r,c[m]);break;case"map":let[h,x]=this.mapEntry(u,e,r);c[m][h]=x;break}}}mapEntry(e,t,r){let i=t.uint32(),s=t.pos+i,o,a;for(;t.pos<s;){let[u,c]=t.tag();switch(u){case 1:e.K==l.BOOL?o=t.bool().toString():o=this.scalar(t,e.K,I.STRING);break;case 2:switch(e.V.kind){case"scalar":a=this.scalar(t,e.V.T,e.V.L);break;case"enum":a=t.int32();break;case"message":a=e.V.T().internalBinaryRead(t,t.uint32(),r);break}break;default:throw new Error(`Unknown field ${u} (wire type ${c}) in map entry for ${this.info.typeName}#${e.name}`)}}if(o===void 0){let u=J(e.K);o=e.K==l.BOOL?u.toString():u}if(a===void 0)switch(e.V.kind){case"scalar":a=J(e.V.T,e.V.L);break;case"enum":a=0;break;case"message":a=e.V.T().create();break}return[o,a]}scalar(e,t,r){switch(t){case l.INT32:return e.int32();case l.STRING:return e.string();case l.BOOL:return e.bool();case l.DOUBLE:return e.double();case l.FLOAT:return e.float();case l.INT64:return N(e.int64(),r);case l.UINT64:return N(e.uint64(),r);case l.FIXED64:return N(e.fixed64(),r);case l.FIXED32:return e.fixed32();case l.BYTES:return e.bytes();case l.UINT32:return e.uint32();case l.SFIXED32:return e.sfixed32();case l.SFIXED64:return N(e.sfixed64(),r);case l.SINT32:return e.sint32();case l.SINT64:return N(e.sint64(),r)}}};var fe=class{constructor(e){this.info=e}prepare(){if(!this.fields){let e=this.info.fields?this.info.fields.concat():[];this.fields=e.sort((t,r)=>t.no-r.no)}}write(e,t,r){this.prepare();for(let s of this.fields){let o,a,u=s.repeat,c=s.localName;if(s.oneof){let f=e[s.oneof];if(f.oneofKind!==c)continue;o=f[c],a=!0}else o=e[c],a=!1;switch(s.kind){case"scalar":case"enum":let f=s.kind=="enum"?l.INT32:s.T;if(u)if(g(Array.isArray(o)),u==X.PACKED)this.packed(t,f,s.no,o);else for(let m of o)this.scalar(t,f,s.no,m,!0);else o===void 0?g(s.opt):this.scalar(t,f,s.no,o,a||s.opt);break;case"message":if(u){g(Array.isArray(o));for(let m of o)this.message(t,r,s.T(),s.no,m)}else this.message(t,r,s.T(),s.no,o);break;case"map":g(typeof o=="object"&&o!==null);for(let[m,p]of Object.entries(o))this.mapEntry(t,r,s,m,p);break}}let i=r.writeUnknownFields;i!==!1&&(i===!0?v.onWrite:i)(this.info.typeName,e,t)}mapEntry(e,t,r,i,s){e.tag(r.no,w.LengthDelimited),e.fork();let o=i;switch(r.K){case l.INT32:case l.FIXED32:case l.UINT32:case l.SFIXED32:case l.SINT32:o=Number.parseInt(i);break;case l.BOOL:g(i=="true"||i=="false"),o=i=="true";break}switch(this.scalar(e,r.K,1,o,!0),r.V.kind){case"scalar":this.scalar(e,r.V.T,2,s,!0);break;case"enum":this.scalar(e,l.INT32,2,s,!0);break;case"message":this.message(e,t,r.V.T(),2,s);break}e.join()}message(e,t,r,i,s){s!==void 0&&(r.internalBinaryWrite(s,e.tag(i,w.LengthDelimited).fork(),t),e.join())}scalar(e,t,r,i,s){let[o,a,u]=this.scalarInfo(t,i);(!u||s)&&(e.tag(r,o),e[a](i))}packed(e,t,r,i){if(!i.length)return;g(t!==l.BYTES&&t!==l.STRING),e.tag(r,w.LengthDelimited),e.fork();let[,s]=this.scalarInfo(t);for(let o=0;o<i.length;o++)e[s](i[o]);e.join()}scalarInfo(e,t){let r=w.Varint,i,s=t===void 0,o=t===0;switch(e){case l.INT32:i="int32";break;case l.STRING:o=s||!t.length,r=w.LengthDelimited,i="string";break;case l.BOOL:o=t===!1,i="bool";break;case l.UINT32:i="uint32";break;case l.DOUBLE:r=w.Bit64,i="double";break;case l.FLOAT:r=w.Bit32,i="float";break;case l.INT64:o=s||b.from(t).isZero(),i="int64";break;case l.UINT64:o=s||F.from(t).isZero(),i="uint64";break;case l.FIXED64:o=s||F.from(t).isZero(),r=w.Bit64,i="fixed64";break;case l.BYTES:o=s||!t.byteLength,r=w.LengthDelimited,i="bytes";break;case l.FIXED32:r=w.Bit32,i="fixed32";break;case l.SFIXED32:r=w.Bit32,i="sfixed32";break;case l.SFIXED64:o=s||b.from(t).isZero(),r=w.Bit64,i="sfixed64";break;case l.SINT32:i="sint32";break;case l.SINT64:o=s||b.from(t).isZero(),i="sint64";break}return[r,i,s||o]}};function Wt(n){let e=n.messagePrototype?Object.create(n.messagePrototype):Object.defineProperty({},oe,{value:n});for(let t of n.fields){let r=t.localName;if(!t.opt)if(t.oneof)e[t.oneof]={oneofKind:void 0};else if(t.repeat)e[r]=[];else switch(t.kind){case"scalar":e[r]=J(t.T,t.L);break;case"enum":e[r]=0;break;case"map":e[r]={};break}}return e}function pe(n,e,t){let r,i=t,s;for(let o of n.fields){let a=o.localName;if(o.oneof){let u=i[o.oneof];if((u==null?void 0:u.oneofKind)==null)continue;if(r=u[a],s=e[o.oneof],s.oneofKind=u.oneofKind,r==null){delete s[a];continue}}else if(r=i[a],s=e,r==null)continue;switch(o.repeat&&(s[a].length=r.length),o.kind){case"scalar":case"enum":if(o.repeat)for(let c=0;c<r.length;c++)s[a][c]=r[c];else s[a]=r;break;case"message":let u=o.T();if(o.repeat)for(let c=0;c<r.length;c++)s[a][c]=u.create(r[c]);else s[a]===void 0?s[a]=u.create(r):u.mergePartial(s[a],r);break;case"map":switch(o.V.kind){case"scalar":case"enum":Object.assign(s[a],r);break;case"message":let c=o.V.T();for(let f of Object.keys(r))s[a][f]=c.create(r[f]);break}break}}}function Ht(n,e,t){if(e===t)return!0;if(!e||!t)return!1;for(let r of n.fields){let i=r.localName,s=r.oneof?e[r.oneof][i]:e[i],o=r.oneof?t[r.oneof][i]:t[i];switch(r.kind){case"enum":case"scalar":let a=r.kind=="enum"?l.INT32:r.T;if(!(r.repeat?$t(a,s,o):jt(a,s,o)))return!1;break;case"map":if(!(r.V.kind=="message"?qt(r.V.T(),me(s),me(o)):$t(r.V.kind=="enum"?l.INT32:r.V.T,me(s),me(o))))return!1;break;case"message":let u=r.T();if(!(r.repeat?qt(u,s,o):u.equals(s,o)))return!1;break}}return!0}var me=Object.values;function jt(n,e,t){if(e===t)return!0;if(n!==l.BYTES)return!1;let r=e,i=t;if(r.length!==i.length)return!1;for(let s=0;s<r.length;s++)if(r[s]!=i[s])return!1;return!0}function $t(n,e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!jt(n,e[r],t[r]))return!1;return!0}function qt(n,e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!n.equals(e[r],t[r]))return!1;return!0}var Xt=Object.getOwnPropertyDescriptors(Object.getPrototypeOf({})),Or=Xt[oe]={},T=class{constructor(e,t,r){this.defaultCheckDepth=16,this.typeName=e,this.fields=t.map(vt),this.options=r!=null?r:{},Or.value=this,this.messagePrototype=Object.create(null,Xt),this.refTypeCheck=new ae(this),this.refJsonReader=new ue(this),this.refJsonWriter=new le(this),this.refBinReader=new ce(this),this.refBinWriter=new fe(this)}create(e){let t=Wt(this);return e!==void 0&&pe(this,t,e),t}clone(e){let t=this.create();return pe(this,t,e),t}equals(e,t){return Ht(this,e,t)}is(e,t=this.defaultCheckDepth){return t