4 lines
125 KiB
JavaScript
4 lines
125 KiB
JavaScript
import"https://www.gstatic.com/firebasejs/12.10.0/firebase-app.js";class FirebaseError extends Error{constructor(e,r,i){super(r),this.code=e,this.customData=i,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,r,i){this.service=e,this.serviceName=r,this.errors=i}create(r,...i){const s=i[0]||{},o=`${this.service}/${r}`,a=this.errors[r],_=a?function replaceTemplate(r,i){return r.replace(e,((e,r)=>{const s=i[r];return null!=s?String(s):`<${r}?>`}))}(a,s):"Error",h=`${this.serviceName}: ${_} (${o}).`;return new FirebaseError(o,h,s)}}const e=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}var r;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(r||(r={}));const i={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},s=r.INFO,o={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},defaultLogHandler=(e,r,...i)=>{if(r<e.logLevel)return;const s=(new Date).toISOString(),a=o[r];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${r})`);console[a](`[${s}] ${e.name}:`,...i)};var a,_="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};(function(){var e;function m(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.C=Array(this.blockSize),this.o=this.h=0,this.u()}function n(e,r,i){i||(i=0);const s=Array(16);if("string"==typeof r)for(var o=0;o<16;++o)s[o]=r.charCodeAt(i++)|r.charCodeAt(i++)<<8|r.charCodeAt(i++)<<16|r.charCodeAt(i++)<<24;else for(o=0;o<16;++o)s[o]=r[i++]|r[i++]<<8|r[i++]<<16|r[i++]<<24;r=e.g[0],i=e.g[1],o=e.g[2];let a,_=e.g[3];a=r+(_^i&(o^_))+s[0]+3614090360&4294967295,a=_+(o^(r=i+(a<<7&4294967295|a>>>25))&(i^o))+s[1]+3905402710&4294967295,_=r+(a<<12&4294967295|a>>>20),a=o+(i^_&(r^i))+s[2]+606105819&4294967295,a=i+(r^(o=_+(a<<17&4294967295|a>>>15))&(_^r))+s[3]+3250441966&4294967295,a=r+(_^(i=o+(a<<22&4294967295|a>>>10))&(o^_))+s[4]+4118548399&4294967295,a=_+(o^(r=i+(a<<7&4294967295|a>>>25))&(i^o))+s[5]+1200080426&4294967295,_=r+(a<<12&4294967295|a>>>20),a=o+(i^_&(r^i))+s[6]+2821735955&4294967295,a=i+(r^(o=_+(a<<17&4294967295|a>>>15))&(_^r))+s[7]+4249261313&4294967295,a=r+(_^(i=o+(a<<22&4294967295|a>>>10))&(o^_))+s[8]+1770035416&4294967295,a=_+(o^(r=i+(a<<7&4294967295|a>>>25))&(i^o))+s[9]+2336552879&4294967295,_=r+(a<<12&4294967295|a>>>20),a=o+(i^_&(r^i))+s[10]+4294925233&4294967295,a=i+(r^(o=_+(a<<17&4294967295|a>>>15))&(_^r))+s[11]+2304563134&4294967295,a=r+(_^(i=o+(a<<22&4294967295|a>>>10))&(o^_))+s[12]+1804603682&4294967295,a=_+(o^(r=i+(a<<7&4294967295|a>>>25))&(i^o))+s[13]+4254626195&4294967295,_=r+(a<<12&4294967295|a>>>20),a=o+(i^_&(r^i))+s[14]+2792965006&4294967295,a=i+(r^(o=_+(a<<17&4294967295|a>>>15))&(_^r))+s[15]+1236535329&4294967295,a=r+(o^_&((i=o+(a<<22&4294967295|a>>>10))^o))+s[1]+4129170786&4294967295,a=_+(i^o&((r=i+(a<<5&4294967295|a>>>27))^i))+s[6]+3225465664&4294967295,_=r+(a<<9&4294967295|a>>>23),a=o+(r^i&(_^r))+s[11]+643717713&4294967295,a=i+(_^r&((o=_+(a<<14&4294967295|a>>>18))^_))+s[0]+3921069994&4294967295,a=r+(o^_&((i=o+(a<<20&4294967295|a>>>12))^o))+s[5]+3593408605&4294967295,a=_+(i^o&((r=i+(a<<5&4294967295|a>>>27))^i))+s[10]+38016083&4294967295,_=r+(a<<9&4294967295|a>>>23),a=o+(r^i&(_^r))+s[15]+3634488961&4294967295,a=i+(_^r&((o=_+(a<<14&4294967295|a>>>18))^_))+s[4]+3889429448&4294967295,a=r+(o^_&((i=o+(a<<20&4294967295|a>>>12))^o))+s[9]+568446438&4294967295,a=_+(i^o&((r=i+(a<<5&4294967295|a>>>27))^i))+s[14]+3275163606&4294967295,_=r+(a<<9&4294967295|a>>>23),a=o+(r^i&(_^r))+s[3]+4107603335&4294967295,a=i+(_^r&((o=_+(a<<14&4294967295|a>>>18))^_))+s[8]+1163531501&4294967295,a=r+(o^_&((i=o+(a<<20&4294967295|a>>>12))^o))+s[13]+2850285829&4294967295,a=_+(i^o&((r=i+(a<<5&4294967295|a>>>27))^i))+s[2]+4243563512&4294967295,_=r+(a<<9&4294967295|a>>>23),a=o+(r^i&(_^r))+s[7]+1735328473&4294967295,a=i+(_^r&((o=_+(a<<14&4294967295|a>>>18))^_))+s[12]+2368359562&4294967295,a=r+((i=o+(a<<20&4294967295|a>>>12))^o^_)+s[5]+4294588738&4294967295,a=_+((r=i+(a<<4&4294967295|a>>>28))^i^o)+s[8]+2272392833&4294967295,_=r+(a<<11&4294967295|a>>>21),a=o+(_^r^i)+s[11]+1839030562&4294967295,a=i+((o=_+(a<<16&4294967295|a>>>16))^_^r)+s[14]+4259657740&4294967295,a=r+((i=o+(a<<23&4294967295|a>>>9))^o^_)+s[1]+2763975236&4294967295,a=_+((r=i+(a<<4&4294967295|a>>>28))^i^o)+s[4]+1272893353&4294967295,_=r+(a<<11&4294967295|a>>>21),a=o+(_^r^i)+s[7]+4139469664&4294967295,a=i+((o=_+(a<<16&4294967295|a>>>16))^_^r)+s[10]+3200236656&4294967295,a=r+((i=o+(a<<23&4294967295|a>>>9))^o^_)+s[13]+681279174&4294967295,a=_+((r=i+(a<<4&4294967295|a>>>28))^i^o)+s[0]+3936430074&4294967295,_=r+(a<<11&4294967295|a>>>21),a=o+(_^r^i)+s[3]+3572445317&4294967295,a=i+((o=_+(a<<16&4294967295|a>>>16))^_^r)+s[6]+76029189&4294967295,a=r+((i=o+(a<<23&4294967295|a>>>9))^o^_)+s[9]+3654602809&4294967295,a=_+((r=i+(a<<4&4294967295|a>>>28))^i^o)+s[12]+3873151461&4294967295,_=r+(a<<11&4294967295|a>>>21),a=o+(_^r^i)+s[15]+530742520&4294967295,a=i+((o=_+(a<<16&4294967295|a>>>16))^_^r)+s[2]+3299628645&4294967295,a=r+(o^((i=o+(a<<23&4294967295|a>>>9))|~_))+s[0]+4096336452&4294967295,a=_+(i^((r=i+(a<<6&4294967295|a>>>26))|~o))+s[7]+1126891415&4294967295,_=r+(a<<10&4294967295|a>>>22),a=o+(r^(_|~i))+s[14]+2878612391&4294967295,a=i+(_^((o=_+(a<<15&4294967295|a>>>17))|~r))+s[5]+4237533241&4294967295,a=r+(o^((i=o+(a<<21&4294967295|a>>>11))|~_))+s[12]+1700485571&4294967295,a=_+(i^((r=i+(a<<6&4294967295|a>>>26))|~o))+s[3]+2399980690&4294967295,_=r+(a<<10&4294967295|a>>>22),a=o+(r^(_|~i))+s[10]+4293915773&4294967295,a=i+(_^((o=_+(a<<15&4294967295|a>>>17))|~r))+s[1]+2240044497&4294967295,a=r+(o^((i=o+(a<<21&4294967295|a>>>11))|~_))+s[8]+1873313359&4294967295,a=_+(i^((r=i+(a<<6&4294967295|a>>>26))|~o))+s[15]+4264355552&4294967295,_=r+(a<<10&4294967295|a>>>22),a=o+(r^(_|~i))+s[6]+2734768916&4294967295,a=i+(_^((o=_+(a<<15&4294967295|a>>>17))|~r))+s[13]+1309151649&4294967295,a=r+(o^((i=o+(a<<21&4294967295|a>>>11))|~_))+s[4]+4149444226&4294967295,a=_+(i^((r=i+(a<<6&4294967295|a>>>26))|~o))+s[11]+3174756917&4294967295,_=r+(a<<10&4294967295|a>>>22),a=o+(r^(_|~i))+s[2]+718787259&4294967295,a=i+(_^((o=_+(a<<15&4294967295|a>>>17))|~r))+s[9]+3951481745&4294967295,e.g[0]=e.g[0]+r&4294967295,e.g[1]=e.g[1]+(o+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+o&4294967295,e.g[3]=e.g[3]+_&4294967295}function t(e,r){this.h=r;const i=[];let s=!0;for(let o=e.length-1;o>=0;o--){const a=0|e[o];s&&a==r||(i[o]=a,s=!1)}this.g=i}!function k(e,r){function c(){}c.prototype=r.prototype,e.F=r.prototype,e.prototype=new c,e.prototype.constructor=e,e.D=function(e,i,s){for(var o=Array(arguments.length-2),a=2;a<arguments.length;a++)o[a-2]=arguments[a];return r.prototype[i].apply(e,o)}}(m,(function l(){this.blockSize=-1})),m.prototype.u=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},m.prototype.v=function(e,r){void 0===r&&(r=e.length);const i=r-this.blockSize,s=this.C;let o=this.h,a=0;for(;a<r;){if(0==o)for(;a<=i;)n(this,e,a),a+=this.blockSize;if("string"==typeof e){for(;a<r;)if(s[o++]=e.charCodeAt(a++),o==this.blockSize){n(this,s),o=0;break}}else for(;a<r;)if(s[o++]=e[a++],o==this.blockSize){n(this,s),o=0;break}}this.h=o,this.o+=r},m.prototype.A=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var r=1;r<e.length-8;++r)e[r]=0;r=8*this.o;for(var i=e.length-8;i<e.length;++i)e[i]=255&r,r/=256;for(this.v(e),e=Array(16),r=0,i=0;i<4;++i)for(let s=0;s<32;s+=8)e[r++]=this.g[i]>>>s&255;return e};var r={};function u(e){return-128<=e&&e<128?function p(e,i){var s=r;return Object.prototype.hasOwnProperty.call(s,e)?s[e]:s[e]=i(e)}(e,(function(e){return new t([0|e],e<0?-1:0)})):new t([0|e],e<0?-1:0)}function v(e){if(isNaN(e)||!isFinite(e))return i;if(e<0)return x(v(-e));const r=[];let s=1;for(let i=0;e>=s;i++)r[i]=e/s|0,s*=4294967296;return new t(r,0)}var i=u(0),s=u(1),o=u(16777216);function C(e){if(0!=e.h)return!1;for(let r=0;r<e.g.length;r++)if(0!=e.g[r])return!1;return!0}function B(e){return-1==e.h}function x(e){const r=e.g.length,i=[];for(let s=0;s<r;s++)i[s]=~e.g[s];return new t(i,~e.h).add(s)}function F(e,r){return e.add(x(r))}function G(e,r){for(;(65535&e[r])!=e[r];)e[r+1]+=e[r]>>>16,e[r]&=65535,r++}function H(e,r){this.g=e,this.h=r}function D(e,r){if(C(r))throw Error("division by zero");if(C(e))return new H(i,i);if(B(e))return r=D(x(e),r),new H(x(r.g),x(r.h));if(B(r))return r=D(e,x(r)),new H(x(r.g),r.h);if(e.g.length>30){if(B(e)||B(r))throw Error("slowDivide_ only works with positive integers.");for(var o=s,a=r;a.l(e)<=0;)o=I(o),a=I(a);var _=J(o,1),h=J(a,1);for(a=J(a,2),o=J(o,2);!C(a);){var d=h.add(a);d.l(e)<=0&&(_=_.add(o),h=d),a=J(a,1),o=J(o,1)}return r=F(e,_.j(r)),new H(_,r)}for(_=i;e.l(r)>=0;){for(o=Math.max(1,Math.floor(e.m()/r.m())),a=(a=Math.ceil(Math.log(o)/Math.LN2))<=48?1:Math.pow(2,a-48),d=(h=v(o)).j(r);B(d)||d.l(e)>0;)d=(h=v(o-=a)).j(r);C(h)&&(h=s),_=_.add(h),e=F(e,d)}return new H(_,e)}function I(e){const r=e.g.length+1,i=[];for(let s=0;s<r;s++)i[s]=e.i(s)<<1|e.i(s-1)>>>31;return new t(i,e.h)}function J(e,r){const i=r>>5;r%=32;const s=e.g.length-i,o=[];for(let a=0;a<s;a++)o[a]=r>0?e.i(a+i)>>>r|e.i(a+i+1)<<32-r:e.i(a+i);return new t(o,e.h)}(e=t.prototype).m=function(){if(B(this))return-x(this).m();let e=0,r=1;for(let i=0;i<this.g.length;i++){const s=this.i(i);e+=(s>=0?s:4294967296+s)*r,r*=4294967296}return e},e.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(C(this))return"0";if(B(this))return"-"+x(this).toString(e);const r=v(Math.pow(e,6));var i=this;let s="";for(;;){const o=D(i,r).g;let a=(((i=F(i,o.j(r))).g.length>0?i.g[0]:i.h)>>>0).toString(e);if(C(i=o))return a+s;for(;a.length<6;)a="0"+a;s=a+s}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return B(e=F(this,e))?-1:C(e)?0:1},e.abs=function(){return B(this)?x(this):this},e.add=function(e){const r=Math.max(this.g.length,e.g.length),i=[];let s=0;for(let o=0;o<=r;o++){let r=s+(65535&this.i(o))+(65535&e.i(o)),a=(r>>>16)+(this.i(o)>>>16)+(e.i(o)>>>16);s=a>>>16,r&=65535,a&=65535,i[o]=a<<16|r}return new t(i,-2147483648&i[i.length-1]?-1:0)},e.j=function(e){if(C(this)||C(e))return i;if(B(this))return B(e)?x(this).j(x(e)):x(x(this).j(e));if(B(e))return x(this.j(x(e)));if(this.l(o)<0&&e.l(o)<0)return v(this.m()*e.m());const r=this.g.length+e.g.length,s=[];for(var a=0;a<2*r;a++)s[a]=0;for(a=0;a<this.g.length;a++)for(let r=0;r<e.g.length;r++){const i=this.i(a)>>>16,o=65535&this.i(a),_=e.i(r)>>>16,h=65535&e.i(r);s[2*a+2*r]+=o*h,G(s,2*a+2*r),s[2*a+2*r+1]+=i*h,G(s,2*a+2*r+1),s[2*a+2*r+1]+=o*_,G(s,2*a+2*r+1),s[2*a+2*r+2]+=i*_,G(s,2*a+2*r+2)}for(e=0;e<r;e++)s[e]=s[2*e+1]<<16|s[2*e];for(e=r;e<2*r;e++)s[e]=0;return new t(s,0)},e.B=function(e){return D(this,e).h},e.and=function(e){const r=Math.max(this.g.length,e.g.length),i=[];for(let s=0;s<r;s++)i[s]=this.i(s)&e.i(s);return new t(i,this.h&e.h)},e.or=function(e){const r=Math.max(this.g.length,e.g.length),i=[];for(let s=0;s<r;s++)i[s]=this.i(s)|e.i(s);return new t(i,this.h|e.h)},e.xor=function(e){const r=Math.max(this.g.length,e.g.length),i=[];for(let s=0;s<r;s++)i[s]=this.i(s)^e.i(s);return new t(i,this.h^e.h)},m.prototype.digest=m.prototype.A,m.prototype.reset=m.prototype.u,m.prototype.update=m.prototype.v,t.prototype.add=t.prototype.add,t.prototype.multiply=t.prototype.j,t.prototype.modulo=t.prototype.B,t.prototype.compare=t.prototype.l,t.prototype.toNumber=t.prototype.m,t.prototype.toString=t.prototype.toString,t.prototype.getBits=t.prototype.i,t.fromNumber=v,t.fromString=function y(e,r){if(0==e.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==e.charAt(0))return x(y(e.substring(1),r));if(e.indexOf("-")>=0)throw Error('number format error: interior "-" character');const s=v(Math.pow(r,8));let o=i;for(let i=0;i<e.length;i+=8){var a=Math.min(8,e.length-i);const _=parseInt(e.substring(i,i+a),r);a<8?(a=v(Math.pow(r,a)),o=o.j(a).add(v(_))):(o=o.j(s),o=o.add(v(_)))}return o},a=t}).apply(void 0!==_?_:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});class User{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}User.UNAUTHENTICATED=new User(null),User.GOOGLE_CREDENTIALS=new User("google-credentials-uid"),User.FIRST_PARTY=new User("first-party-uid"),User.MOCK_USER=new User("mock-user");let h="12.10.0";const d=new class Logger{constructor(e){this.name=e,this._logLevel=s,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in r))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?i[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,r.DEBUG,...e),this._logHandler(this,r.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,r.VERBOSE,...e),this._logHandler(this,r.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,r.INFO,...e),this._logHandler(this,r.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,r.WARN,...e),this._logHandler(this,r.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,r.ERROR,...e),this._logHandler(this,r.ERROR,...e)}}("@firebase/firestore");function __PRIVATE_logDebug(e,...i){if(d.logLevel<=r.DEBUG){const r=i.map(__PRIVATE_argToString);d.debug(`Firestore (${h}): ${e}`,...r)}}function __PRIVATE_logError(e,...i){if(d.logLevel<=r.ERROR){const r=i.map(__PRIVATE_argToString);d.error(`Firestore (${h}): ${e}`,...r)}}function __PRIVATE_argToString(e){if("string"==typeof e)return e;try{return function __PRIVATE_formatJSON(e){return JSON.stringify(e)}(e)}catch(r){return e}}function fail(e,r,i){let s="Unexpected state";"string"==typeof r?s=r:i=r,__PRIVATE__fail(e,s,i)}function __PRIVATE__fail(e,r,i){let s=`FIRESTORE (${h}) INTERNAL ASSERTION FAILED: ${r} (ID: ${e.toString(16)})`;if(void 0!==i)try{s+=" CONTEXT: "+JSON.stringify(i)}catch(e){s+=" CONTEXT: "+i}throw __PRIVATE_logError(s),new Error(s)}function __PRIVATE_hardAssert(e,r,i,s){let o="Unexpected state";"string"==typeof i?o=i:s=i,e||__PRIVATE__fail(r,o,s)}function __PRIVATE_debugCast(e,r){return e}const f="ok",E="cancelled",g="unknown",T="invalid-argument",P="deadline-exceeded",V="not-found",A="permission-denied",R="unauthenticated",w="resource-exhausted",S="failed-precondition",b="aborted",O="out-of-range",$="unimplemented",N="internal",U="unavailable";class FirestoreError extends FirebaseError{constructor(e,r){super(e,r),this.code=e,this.message=r,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class __PRIVATE_EmptyAuthCredentialsProvider{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,r){e.enqueueRetryable((()=>r(User.UNAUTHENTICATED)))}shutdown(){}}class __PRIVATE_FirstPartyToken{constructor(e,r,i){this.i=e,this.o=r,this.u=i,this.type="FirstParty",this.user=User.FIRST_PARTY,this.l=new Map}h(){return this.u?this.u():null}get headers(){this.l.set("X-Goog-AuthUser",this.i);const e=this.h();return e&&this.l.set("Authorization",e),this.o&&this.l.set("X-Goog-Iam-Authorization-Token",this.o),this.l}}class __PRIVATE_FirstPartyAuthCredentialsProvider{constructor(e,r,i){this.i=e,this.o=r,this.u=i}getToken(){return Promise.resolve(new __PRIVATE_FirstPartyToken(this.i,this.o,this.u))}start(e,r){e.enqueueRetryable((()=>r(User.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class DatabaseInfo{constructor(e,r,i,s,o,a,_,h,d,f,E){this.databaseId=e,this.appId=r,this.persistenceKey=i,this.host=s,this.ssl=o,this.forceLongPolling=a,this.autoDetectLongPolling=_,this.longPollingOptions=h,this.useFetchStreams=d,this.isUsingEmulator=f,this.apiKey=E}}const L="(default)";class DatabaseId{constructor(e,r){this.projectId=e,this.database=r||L}static empty(){return new DatabaseId("","")}get isDefaultDatabase(){return this.database===L}isEqual(e){return e instanceof DatabaseId&&e.projectId===this.projectId&&e.database===this.database}}function __PRIVATE_randomBytes(e){const r="undefined"!=typeof self&&(self.crypto||self.msCrypto),i=new Uint8Array(e);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(i);else for(let r=0;r<e;r++)i[r]=Math.floor(256*Math.random());return i}class __PRIVATE_AutoId{static newId(){const e=62*Math.floor(256/62);let r="";for(;r.length<20;){const i=__PRIVATE_randomBytes(40);for(let s=0;s<i.length;++s)r.length<20&&i[s]<e&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(i[s]%62))}return r}}function __PRIVATE_primitiveComparator(e,r){return e<r?-1:e>r?1:0}function __PRIVATE_compareUtf8Strings(e,r){const i=Math.min(e.length,r.length);for(let s=0;s<i;s++){const i=e.charAt(s),o=r.charAt(s);if(i!==o)return __PRIVATE_isSurrogate(i)===__PRIVATE_isSurrogate(o)?__PRIVATE_primitiveComparator(i,o):__PRIVATE_isSurrogate(i)?1:-1}return __PRIVATE_primitiveComparator(e.length,r.length)}const M=55296,j=57343;function __PRIVATE_isSurrogate(e){const r=e.charCodeAt(0);return r>=M&&r<=j}const q="__name__";class BasePath{constructor(e,r,i){void 0===r?r=0:r>e.length&&fail(637,{offset:r,range:e.length}),void 0===i?i=e.length-r:i>e.length-r&&fail(1746,{length:i,range:e.length-r}),this.segments=e,this.offset=r,this.len=i}get length(){return this.len}isEqual(e){return 0===BasePath.comparator(this,e)}child(e){const r=this.segments.slice(this.offset,this.limit());return e instanceof BasePath?e.forEach((e=>{r.push(e)})):r.push(e),this.construct(r)}limit(){return this.offset+this.length}popFirst(e){return e=void 0===e?1:e,this.construct(this.segments,this.offset+e,this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let r=0;r<this.length;r++)if(this.get(r)!==e.get(r))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let r=0;r<this.length;r++)if(this.get(r)!==e.get(r))return!1;return!0}forEach(e){for(let r=this.offset,i=this.limit();r<i;r++)e(this.segments[r])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(e,r){const i=Math.min(e.length,r.length);for(let s=0;s<i;s++){const i=BasePath.compareSegments(e.get(s),r.get(s));if(0!==i)return i}return __PRIVATE_primitiveComparator(e.length,r.length)}static compareSegments(e,r){const i=BasePath.isNumericId(e),s=BasePath.isNumericId(r);return i&&!s?-1:!i&&s?1:i&&s?BasePath.extractNumericId(e).compare(BasePath.extractNumericId(r)):__PRIVATE_compareUtf8Strings(e,r)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return a.fromString(e.substring(4,e.length-2))}}class ResourcePath extends BasePath{construct(e,r,i){return new ResourcePath(e,r,i)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){const r=[];for(const i of e){if(i.indexOf("//")>=0)throw new FirestoreError(T,`Invalid segment (${i}). Paths must not contain // in them.`);r.push(...i.split("/").filter((e=>e.length>0)))}return new ResourcePath(r)}static emptyPath(){return new ResourcePath([])}}const z=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class FieldPath$1 extends BasePath{construct(e,r,i){return new FieldPath$1(e,r,i)}static isValidIdentifier(e){return z.test(e)}canonicalString(){return this.toArray().map((e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),FieldPath$1.isValidIdentifier(e)||(e="`"+e+"`"),e))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===q}static keyField(){return new FieldPath$1([q])}static fromServerFormat(e){const r=[];let i="",s=0;const __PRIVATE_addCurrentSegment=()=>{if(0===i.length)throw new FirestoreError(T,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);r.push(i),i=""};let o=!1;for(;s<e.length;){const r=e[s];if("\\"===r){if(s+1===e.length)throw new FirestoreError(T,"Path has trailing escape character: "+e);const r=e[s+1];if("\\"!==r&&"."!==r&&"`"!==r)throw new FirestoreError(T,"Path has invalid escape sequence: "+e);i+=r,s+=2}else"`"===r?(o=!o,s++):"."!==r||o?(i+=r,s++):(__PRIVATE_addCurrentSegment(),s++)}if(__PRIVATE_addCurrentSegment(),o)throw new FirestoreError(T,"Unterminated ` in path: "+e);return new FieldPath$1(r)}static emptyPath(){return new FieldPath$1([])}}class DocumentKey{constructor(e){this.path=e}static fromPath(e){return new DocumentKey(ResourcePath.fromString(e))}static fromName(e){return new DocumentKey(ResourcePath.fromString(e).popFirst(5))}static empty(){return new DocumentKey(ResourcePath.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return this.path.length>=2&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===ResourcePath.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,r){return ResourcePath.comparator(e.path,r.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new DocumentKey(new ResourcePath(e.slice()))}}function __PRIVATE_validateDocumentPath(e){if(!DocumentKey.isDocumentKey(e))throw new FirestoreError(T,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function __PRIVATE_isPlainObject(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function __PRIVATE_valueDescription(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return e.length>20&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"==typeof e){if(e instanceof Array)return"an array";{const r=function __PRIVATE_tryGetCustomObjectType(e){return e.constructor?e.constructor.name:null}(e);return r?`a custom ${r} object`:"an object"}}return"function"==typeof e?"a function":fail(12329,{type:typeof e})}function __PRIVATE_cloneLongPollingOptions(e){const r={};return void 0!==e.timeoutSeconds&&(r.timeoutSeconds=e.timeoutSeconds),r}let K=null;function __PRIVATE_isNegativeZero(e){return 0===e&&1/e==-1/0}function __PRIVATE_isNumber(e){return"number"==typeof e}function __PRIVATE_isString(e){return"string"==typeof e}const W="RestConnection",Y={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery",ExecutePipeline:"executePipeline"};class __PRIVATE_RestConnection{get T(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;const r=e.ssl?"https":"http",i=encodeURIComponent(this.databaseId.projectId),s=encodeURIComponent(this.databaseId.database);this.R=r+"://"+e.host,this.V=`projects/${i}/databases/${s}`,this.A=this.databaseId.database===L?`project_id=${i}`:`project_id=${i}&database_id=${s}`}I(e,i,s,o,a){const _=function __PRIVATE_generateUniqueDebugId(){return null===K?K=function __PRIVATE_generateInitialUniqueDebugId(){return 268435456+Math.round(2147483648*Math.random())}():K++,"0x"+K.toString(16)}(),f=this.p(e,i.toUriEncodedString());__PRIVATE_logDebug(W,`Sending RPC '${e}' ${_}:`,f,s);const E={"google-cloud-resource-prefix":this.V,"x-goog-request-params":this.A};this.F(E,o,a);const{host:g}=new URL(f),T=function isCloudWorkstation(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}(g);return this.v(e,f,E,s,T).then((r=>(__PRIVATE_logDebug(W,`Received RPC '${e}' ${_}: `,r),r)),(i=>{throw function __PRIVATE_logWarn(e,...i){if(d.logLevel<=r.WARN){const r=i.map(__PRIVATE_argToString);d.warn(`Firestore (${h}): ${e}`,...r)}}(W,`RPC '${e}' ${_} failed with error: `,i,"url: ",f,"request:",s),i}))}D(e,r,i,s,o,a){return this.I(e,r,i,s,o)}F(e,r,i){e["X-Goog-Api-Client"]=function __PRIVATE_getGoogApiClientValue(){return"gl-js/ fire/"+h}(),e["Content-Type"]="text/plain",this.databaseInfo.appId&&(e["X-Firebase-GMPID"]=this.databaseInfo.appId),r&&r.headers.forEach(((r,i)=>e[i]=r)),i&&i.headers.forEach(((r,i)=>e[i]=r))}p(e,r){const i=Y[e];let s=`${this.R}/v1/${r}:${i}`;return this.databaseInfo.apiKey&&(s=`${s}?key=${encodeURIComponent(this.databaseInfo.apiKey)}`),s}terminate(){}}var Q,X;function __PRIVATE_mapCodeFromHttpStatus(e){if(void 0===e)return __PRIVATE_logError("RPC_ERROR","HTTP error has no status"),g;switch(e){case 200:return f;case 400:return S;case 401:return R;case 403:return A;case 404:return V;case 409:return b;case 416:return O;case 429:return w;case 499:return E;case 500:return g;case 501:return $;case 503:return U;case 504:return P;default:return e>=200&&e<300?f:e>=400&&e<500?S:e>=500&&e<600?N:g}}(X=Q||(Q={}))[X.OK=0]="OK",X[X.CANCELLED=1]="CANCELLED",X[X.UNKNOWN=2]="UNKNOWN",X[X.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",X[X.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",X[X.NOT_FOUND=5]="NOT_FOUND",X[X.ALREADY_EXISTS=6]="ALREADY_EXISTS",X[X.PERMISSION_DENIED=7]="PERMISSION_DENIED",X[X.UNAUTHENTICATED=16]="UNAUTHENTICATED",X[X.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",X[X.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",X[X.ABORTED=10]="ABORTED",X[X.OUT_OF_RANGE=11]="OUT_OF_RANGE",X[X.UNIMPLEMENTED=12]="UNIMPLEMENTED",X[X.INTERNAL=13]="INTERNAL",X[X.UNAVAILABLE=14]="UNAVAILABLE",X[X.DATA_LOSS=15]="DATA_LOSS";class __PRIVATE_FetchConnection extends __PRIVATE_RestConnection{S(e,r){throw new Error("Not supported by FetchConnection")}async v(e,r,i,s,o){const a=JSON.stringify(s);let _;try{const e={method:"POST",headers:i,body:a};o&&(e.credentials="include"),_=await fetch(r,e)}catch(e){const r=e;throw new FirestoreError(__PRIVATE_mapCodeFromHttpStatus(r.status),"Request failed with error: "+r.statusText)}if(!_.ok){let e=await _.json();Array.isArray(e)&&(e=e[0]);const r=e?.error?.message;throw new FirestoreError(__PRIVATE_mapCodeFromHttpStatus(_.status),`Request failed with error: ${r??_.statusText}`)}return _.json()}}function __PRIVATE_objectSize(e){let r=0;for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&r++;return r}function forEach(e,r){for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&r(i,e[i])}class __PRIVATE_Base64DecodeError extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class ByteString{constructor(e){this.binaryString=e}static fromBase64String(e){const r=function __PRIVATE_decodeBase64(e){try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new __PRIVATE_Base64DecodeError("Invalid base64 string: "+e):e}}(e);return new ByteString(r)}static fromUint8Array(e){const r=function __PRIVATE_binaryStringFromUint8Array(e){let r="";for(let i=0;i<e.length;++i)r+=String.fromCharCode(e[i]);return r}(e);return new ByteString(r)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return function __PRIVATE_encodeBase64(e){return btoa(e)}(this.binaryString)}toUint8Array(){return function __PRIVATE_uint8ArrayFromBinaryString(e){const r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i);return r}(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return __PRIVATE_primitiveComparator(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}ByteString.EMPTY_BYTE_STRING=new ByteString("");const Z=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function __PRIVATE_normalizeTimestamp(e){if(__PRIVATE_hardAssert(!!e,39018),"string"==typeof e){let r=0;const i=Z.exec(e);if(__PRIVATE_hardAssert(!!i,46558,{timestamp:e}),i[1]){let e=i[1];e=(e+"000000000").substr(0,9),r=Number(e)}const s=new Date(e);return{seconds:Math.floor(s.getTime()/1e3),nanos:r}}return{seconds:__PRIVATE_normalizeNumber(e.seconds),nanos:__PRIVATE_normalizeNumber(e.nanos)}}function __PRIVATE_normalizeNumber(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function __PRIVATE_normalizeByteString(e){return"string"==typeof e?ByteString.fromBase64String(e):ByteString.fromUint8Array(e)}function property(e,r){const i={typeString:e};return r&&(i.value=r),i}function __PRIVATE_validateJSON(e,r){if(!__PRIVATE_isPlainObject(e))throw new FirestoreError(T,"JSON must be an object");let i;for(const s in r)if(r[s]){const o=r[s].typeString,a="value"in r[s]?{value:r[s].value}:void 0;if(!(s in e)){i=`JSON missing required field: '${s}'`;break}const _=e[s];if(o&&typeof _!==o){i=`JSON field '${s}' must be a ${o}.`;break}if(void 0!==a&&_!==a.value){i=`Expected '${s}' field to equal '${a.value}'`;break}}if(i)throw new FirestoreError(T,i);return!0}const ee=-62135596800,te=1e6;class Timestamp{static now(){return Timestamp.fromMillis(Date.now())}static fromDate(e){return Timestamp.fromMillis(e.getTime())}static fromMillis(e){const r=Math.floor(e/1e3),i=Math.floor((e-1e3*r)*te);return new Timestamp(r,i)}constructor(e,r){if(this.seconds=e,this.nanoseconds=r,r<0)throw new FirestoreError(T,"Timestamp nanoseconds out of range: "+r);if(r>=1e9)throw new FirestoreError(T,"Timestamp nanoseconds out of range: "+r);if(e<ee)throw new FirestoreError(T,"Timestamp seconds out of range: "+e);if(e>=253402300800)throw new FirestoreError(T,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/te}_compareTo(e){return this.seconds===e.seconds?__PRIVATE_primitiveComparator(this.nanoseconds,e.nanoseconds):__PRIVATE_primitiveComparator(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:Timestamp._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(__PRIVATE_validateJSON(e,Timestamp._jsonSchema))return new Timestamp(e.seconds,e.nanoseconds)}valueOf(){const e=this.seconds-ee;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}function __PRIVATE_isServerTimestamp(e){const r=(e?.mapValue?.fields||{}).__type__?.stringValue;return"server_timestamp"===r}function __PRIVATE_getPreviousValue(e){const r=e.mapValue.fields.__previous_value__;return __PRIVATE_isServerTimestamp(r)?__PRIVATE_getPreviousValue(r):r}function __PRIVATE_getLocalWriteTime(e){const r=__PRIVATE_normalizeTimestamp(e.mapValue.fields.__local_write_time__.timestampValue);return new Timestamp(r.seconds,r.nanos)}Timestamp._jsonSchemaVersion="firestore/timestamp/1.0",Timestamp._jsonSchema={type:property("string",Timestamp._jsonSchemaVersion),seconds:property("number"),nanoseconds:property("number")};const re="__type__",ne="__max__",ie={fields:{__type__:{stringValue:ne}}},se="__vector__",oe="value";function __PRIVATE_typeOrder(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?__PRIVATE_isServerTimestamp(e)?4:function __PRIVATE_isMaxValue(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===ne}(e)?9007199254740991:function __PRIVATE_isVectorValue(e){const r=(e?.mapValue?.fields||{})[re]?.stringValue;return r===se}(e)?10:11:fail(28295,{value:e})}function __PRIVATE_valueEquals(e,r){if(e===r)return!0;const i=__PRIVATE_typeOrder(e);if(i!==__PRIVATE_typeOrder(r))return!1;switch(i){case 0:case 9007199254740991:return!0;case 1:return e.booleanValue===r.booleanValue;case 4:return __PRIVATE_getLocalWriteTime(e).isEqual(__PRIVATE_getLocalWriteTime(r));case 3:return function __PRIVATE_timestampEquals(e,r){if("string"==typeof e.timestampValue&&"string"==typeof r.timestampValue&&e.timestampValue.length===r.timestampValue.length)return e.timestampValue===r.timestampValue;const i=__PRIVATE_normalizeTimestamp(e.timestampValue),s=__PRIVATE_normalizeTimestamp(r.timestampValue);return i.seconds===s.seconds&&i.nanos===s.nanos}(e,r);case 5:return e.stringValue===r.stringValue;case 6:return function __PRIVATE_blobEquals(e,r){return __PRIVATE_normalizeByteString(e.bytesValue).isEqual(__PRIVATE_normalizeByteString(r.bytesValue))}(e,r);case 7:return e.referenceValue===r.referenceValue;case 8:return function __PRIVATE_geoPointEquals(e,r){return __PRIVATE_normalizeNumber(e.geoPointValue.latitude)===__PRIVATE_normalizeNumber(r.geoPointValue.latitude)&&__PRIVATE_normalizeNumber(e.geoPointValue.longitude)===__PRIVATE_normalizeNumber(r.geoPointValue.longitude)}(e,r);case 2:return function __PRIVATE_numberEquals(e,r){if("integerValue"in e&&"integerValue"in r)return __PRIVATE_normalizeNumber(e.integerValue)===__PRIVATE_normalizeNumber(r.integerValue);if("doubleValue"in e&&"doubleValue"in r){const i=__PRIVATE_normalizeNumber(e.doubleValue),s=__PRIVATE_normalizeNumber(r.doubleValue);return i===s?__PRIVATE_isNegativeZero(i)===__PRIVATE_isNegativeZero(s):isNaN(i)&&isNaN(s)}return!1}(e,r);case 9:return function __PRIVATE_arrayEquals(e,r,i){return e.length===r.length&&e.every(((e,s)=>i(e,r[s])))}(e.arrayValue.values||[],r.arrayValue.values||[],__PRIVATE_valueEquals);case 10:case 11:return function __PRIVATE_objectEquals(e,r){const i=e.mapValue.fields||{},s=r.mapValue.fields||{};if(__PRIVATE_objectSize(i)!==__PRIVATE_objectSize(s))return!1;for(const e in i)if(i.hasOwnProperty(e)&&(void 0===s[e]||!__PRIVATE_valueEquals(i[e],s[e])))return!1;return!0}(e,r);default:return fail(52216,{left:e})}}function __PRIVATE_arrayValueContains(e,r){return void 0!==(e.values||[]).find((e=>__PRIVATE_valueEquals(e,r)))}function __PRIVATE_valueCompare(e,r){if(e===r)return 0;const i=__PRIVATE_typeOrder(e),s=__PRIVATE_typeOrder(r);if(i!==s)return __PRIVATE_primitiveComparator(i,s);switch(i){case 0:case 9007199254740991:return 0;case 1:return __PRIVATE_primitiveComparator(e.booleanValue,r.booleanValue);case 2:return function __PRIVATE_compareNumbers(e,r){const i=__PRIVATE_normalizeNumber(e.integerValue||e.doubleValue),s=__PRIVATE_normalizeNumber(r.integerValue||r.doubleValue);return i<s?-1:i>s?1:i===s?0:isNaN(i)?isNaN(s)?0:-1:1}(e,r);case 3:return __PRIVATE_compareTimestamps(e.timestampValue,r.timestampValue);case 4:return __PRIVATE_compareTimestamps(__PRIVATE_getLocalWriteTime(e),__PRIVATE_getLocalWriteTime(r));case 5:return __PRIVATE_compareUtf8Strings(e.stringValue,r.stringValue);case 6:return function __PRIVATE_compareBlobs(e,r){const i=__PRIVATE_normalizeByteString(e),s=__PRIVATE_normalizeByteString(r);return i.compareTo(s)}(e.bytesValue,r.bytesValue);case 7:return function __PRIVATE_compareReferences(e,r){const i=e.split("/"),s=r.split("/");for(let e=0;e<i.length&&e<s.length;e++){const r=__PRIVATE_primitiveComparator(i[e],s[e]);if(0!==r)return r}return __PRIVATE_primitiveComparator(i.length,s.length)}(e.referenceValue,r.referenceValue);case 8:return function __PRIVATE_compareGeoPoints(e,r){const i=__PRIVATE_primitiveComparator(__PRIVATE_normalizeNumber(e.latitude),__PRIVATE_normalizeNumber(r.latitude));return 0!==i?i:__PRIVATE_primitiveComparator(__PRIVATE_normalizeNumber(e.longitude),__PRIVATE_normalizeNumber(r.longitude))}(e.geoPointValue,r.geoPointValue);case 9:return __PRIVATE_compareArrays(e.arrayValue,r.arrayValue);case 10:return function __PRIVATE_compareVectors(e,r){const i=e.fields||{},s=r.fields||{},o=i[oe]?.arrayValue,a=s[oe]?.arrayValue,_=__PRIVATE_primitiveComparator(o?.values?.length||0,a?.values?.length||0);return 0!==_?_:__PRIVATE_compareArrays(o,a)}(e.mapValue,r.mapValue);case 11:return function __PRIVATE_compareMaps(e,r){if(e===ie&&r===ie)return 0;if(e===ie)return 1;if(r===ie)return-1;const i=e.fields||{},s=Object.keys(i),o=r.fields||{},a=Object.keys(o);s.sort(),a.sort();for(let e=0;e<s.length&&e<a.length;++e){const r=__PRIVATE_compareUtf8Strings(s[e],a[e]);if(0!==r)return r;const _=__PRIVATE_valueCompare(i[s[e]],o[a[e]]);if(0!==_)return _}return __PRIVATE_primitiveComparator(s.length,a.length)}(e.mapValue,r.mapValue);default:throw fail(23264,{C:i})}}function __PRIVATE_compareTimestamps(e,r){if("string"==typeof e&&"string"==typeof r&&e.length===r.length)return __PRIVATE_primitiveComparator(e,r);const i=__PRIVATE_normalizeTimestamp(e),s=__PRIVATE_normalizeTimestamp(r),o=__PRIVATE_primitiveComparator(i.seconds,s.seconds);return 0!==o?o:__PRIVATE_primitiveComparator(i.nanos,s.nanos)}function __PRIVATE_compareArrays(e,r){const i=e.values||[],s=r.values||[];for(let e=0;e<i.length&&e<s.length;++e){const r=__PRIVATE_valueCompare(i[e],s[e]);if(r)return r}return __PRIVATE_primitiveComparator(i.length,s.length)}function isArray(e){return!!e&&"arrayValue"in e}function __PRIVATE_isMapValue(e){return!!e&&"mapValue"in e}function __PRIVATE_deepClone(e){if(e.geoPointValue)return{geoPointValue:{...e.geoPointValue}};if(e.timestampValue&&"object"==typeof e.timestampValue)return{timestampValue:{...e.timestampValue}};if(e.mapValue){const r={mapValue:{fields:{}}};return forEach(e.mapValue.fields,((e,i)=>r.mapValue.fields[e]=__PRIVATE_deepClone(i))),r}if(e.arrayValue){const r={arrayValue:{values:[]}};for(let i=0;i<(e.arrayValue.values||[]).length;++i)r.arrayValue.values[i]=__PRIVATE_deepClone(e.arrayValue.values[i]);return r}return{...e}}class Filter{}class FieldFilter extends Filter{constructor(e,r,i){super(),this.field=e,this.op=r,this.value=i}static create(e,r,i){return e.isKeyField()?"in"===r||"not-in"===r?this.createKeyFieldInFilter(e,r,i):new __PRIVATE_KeyFieldFilter(e,r,i):"array-contains"===r?new __PRIVATE_ArrayContainsFilter(e,i):"in"===r?new __PRIVATE_InFilter(e,i):"not-in"===r?new __PRIVATE_NotInFilter(e,i):"array-contains-any"===r?new __PRIVATE_ArrayContainsAnyFilter(e,i):new FieldFilter(e,r,i)}static createKeyFieldInFilter(e,r,i){return"in"===r?new __PRIVATE_KeyFieldInFilter(e,i):new __PRIVATE_KeyFieldNotInFilter(e,i)}matches(e){const r=e.data.field(this.field);return"!="===this.op?null!==r&&void 0===r.nullValue&&this.matchesComparison(__PRIVATE_valueCompare(r,this.value)):null!==r&&__PRIVATE_typeOrder(this.value)===__PRIVATE_typeOrder(r)&&this.matchesComparison(__PRIVATE_valueCompare(r,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return e>0;case">=":return e>=0;default:return fail(47266,{operator:this.op})}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class CompositeFilter extends Filter{constructor(e,r){super(),this.filters=e,this.op=r,this.N=null}static create(e,r){return new CompositeFilter(e,r)}matches(e){return function __PRIVATE_compositeFilterIsConjunction(e){return"and"===e.op}(this)?void 0===this.filters.find((r=>!r.matches(e))):void 0!==this.filters.find((r=>r.matches(e)))}getFlattenedFilters(){return null!==this.N||(this.N=this.filters.reduce(((e,r)=>e.concat(r.getFlattenedFilters())),[])),this.N}getFilters(){return Object.assign([],this.filters)}}class __PRIVATE_KeyFieldFilter extends FieldFilter{constructor(e,r,i){super(e,r,i),this.key=DocumentKey.fromName(i.referenceValue)}matches(e){const r=DocumentKey.comparator(e.key,this.key);return this.matchesComparison(r)}}class __PRIVATE_KeyFieldInFilter extends FieldFilter{constructor(e,r){super(e,"in",r),this.keys=__PRIVATE_extractDocumentKeysFromArrayValue("in",r)}matches(e){return this.keys.some((r=>r.isEqual(e.key)))}}class __PRIVATE_KeyFieldNotInFilter extends FieldFilter{constructor(e,r){super(e,"not-in",r),this.keys=__PRIVATE_extractDocumentKeysFromArrayValue("not-in",r)}matches(e){return!this.keys.some((r=>r.isEqual(e.key)))}}function __PRIVATE_extractDocumentKeysFromArrayValue(e,r){return(r.arrayValue?.values||[]).map((e=>DocumentKey.fromName(e.referenceValue)))}class __PRIVATE_ArrayContainsFilter extends FieldFilter{constructor(e,r){super(e,"array-contains",r)}matches(e){const r=e.data.field(this.field);return isArray(r)&&__PRIVATE_arrayValueContains(r.arrayValue,this.value)}}class __PRIVATE_InFilter extends FieldFilter{constructor(e,r){super(e,"in",r)}matches(e){const r=e.data.field(this.field);return null!==r&&__PRIVATE_arrayValueContains(this.value.arrayValue,r)}}class __PRIVATE_NotInFilter extends FieldFilter{constructor(e,r){super(e,"not-in",r)}matches(e){if(__PRIVATE_arrayValueContains(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const r=e.data.field(this.field);return null!==r&&void 0===r.nullValue&&!__PRIVATE_arrayValueContains(this.value.arrayValue,r)}}class __PRIVATE_ArrayContainsAnyFilter extends FieldFilter{constructor(e,r){super(e,"array-contains-any",r)}matches(e){const r=e.data.field(this.field);return!(!isArray(r)||!r.arrayValue.values)&&r.arrayValue.values.some((e=>__PRIVATE_arrayValueContains(this.value.arrayValue,e)))}}class OrderBy{constructor(e,r="asc"){this.field=e,this.dir=r}}class SnapshotVersion{static fromTimestamp(e){return new SnapshotVersion(e)}static min(){return new SnapshotVersion(new Timestamp(0,0))}static max(){return new SnapshotVersion(new Timestamp(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class SortedMap{constructor(e,r){this.comparator=e,this.root=r||LLRBNode.EMPTY}insert(e,r){return new SortedMap(this.comparator,this.root.insert(e,r,this.comparator).copy(null,null,LLRBNode.BLACK,null,null))}remove(e){return new SortedMap(this.comparator,this.root.remove(e,this.comparator).copy(null,null,LLRBNode.BLACK,null,null))}get(e){let r=this.root;for(;!r.isEmpty();){const i=this.comparator(e,r.key);if(0===i)return r.value;i<0?r=r.left:i>0&&(r=r.right)}return null}indexOf(e){let r=0,i=this.root;for(;!i.isEmpty();){const s=this.comparator(e,i.key);if(0===s)return r+i.left.size;s<0?i=i.left:(r+=i.left.size+1,i=i.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(e){this.inorderTraversal(((r,i)=>(e(r,i),!1)))}toString(){const e=[];return this.inorderTraversal(((r,i)=>(e.push(`${r}:${i}`),!1))),`{${e.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new SortedMapIterator(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new SortedMapIterator(this.root,e,this.comparator,!1)}getReverseIterator(){return new SortedMapIterator(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new SortedMapIterator(this.root,e,this.comparator,!0)}}class SortedMapIterator{constructor(e,r,i,s){this.isReverse=s,this.nodeStack=[];let o=1;for(;!e.isEmpty();)if(o=r?i(e.key,r):1,r&&s&&(o*=-1),o<0)e=this.isReverse?e.left:e.right;else{if(0===o){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();const r={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return r}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class LLRBNode{constructor(e,r,i,s,o){this.key=e,this.value=r,this.color=null!=i?i:LLRBNode.RED,this.left=null!=s?s:LLRBNode.EMPTY,this.right=null!=o?o:LLRBNode.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,r,i,s,o){return new LLRBNode(null!=e?e:this.key,null!=r?r:this.value,null!=i?i:this.color,null!=s?s:this.left,null!=o?o:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,r,i){let s=this;const o=i(e,s.key);return s=o<0?s.copy(null,null,null,s.left.insert(e,r,i),null):0===o?s.copy(null,r,null,null,null):s.copy(null,null,null,null,s.right.insert(e,r,i)),s.fixUp()}removeMin(){if(this.left.isEmpty())return LLRBNode.EMPTY;let e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),e=e.copy(null,null,null,e.left.removeMin(),null),e.fixUp()}remove(e,r){let i,s=this;if(r(e,s.key)<0)s.left.isEmpty()||s.left.isRed()||s.left.left.isRed()||(s=s.moveRedLeft()),s=s.copy(null,null,null,s.left.remove(e,r),null);else{if(s.left.isRed()&&(s=s.rotateRight()),s.right.isEmpty()||s.right.isRed()||s.right.left.isRed()||(s=s.moveRedRight()),0===r(e,s.key)){if(s.right.isEmpty())return LLRBNode.EMPTY;i=s.right.min(),s=s.copy(i.key,i.value,null,null,s.right.removeMin())}s=s.copy(null,null,null,null,s.right.remove(e,r))}return s.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e}moveRedLeft(){let e=this.colorFlip();return e.right.left.isRed()&&(e=e.copy(null,null,null,null,e.right.rotateRight()),e=e.rotateLeft(),e=e.colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=e.rotateRight(),e=e.colorFlip()),e}rotateLeft(){const e=this.copy(null,null,LLRBNode.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){const e=this.copy(null,null,LLRBNode.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){const e=this.left.copy(null,null,!this.left.color,null,null),r=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,r)}checkMaxDepth(){const e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw fail(43730,{key:this.key,value:this.value});if(this.right.isRed())throw fail(14113,{key:this.key,value:this.value});const e=this.left.check();if(e!==this.right.check())throw fail(27949);return e+(this.isRed()?0:1)}}LLRBNode.EMPTY=null,LLRBNode.RED=!0,LLRBNode.BLACK=!1,LLRBNode.EMPTY=new class LLRBEmptyNode{constructor(){this.size=0}get key(){throw fail(57766)}get value(){throw fail(16141)}get color(){throw fail(16727)}get left(){throw fail(29726)}get right(){throw fail(36894)}copy(e,r,i,s,o){return this}insert(e,r,i){return new LLRBNode(e,r)}remove(e,r){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class SortedSet{constructor(e){this.comparator=e,this.data=new SortedMap(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(e){this.data.inorderTraversal(((r,i)=>(e(r),!1)))}forEachInRange(e,r){const i=this.data.getIteratorFrom(e[0]);for(;i.hasNext();){const s=i.getNext();if(this.comparator(s.key,e[1])>=0)return;r(s.key)}}forEachWhile(e,r){let i;for(i=void 0!==r?this.data.getIteratorFrom(r):this.data.getIterator();i.hasNext();)if(!e(i.getNext().key))return}firstAfterOrEqual(e){const r=this.data.getIteratorFrom(e);return r.hasNext()?r.getNext().key:null}getIterator(){return new SortedSetIterator(this.data.getIterator())}getIteratorFrom(e){return new SortedSetIterator(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let r=this;return r.size<e.size&&(r=e,e=this),e.forEach((e=>{r=r.add(e)})),r}isEqual(e){if(!(e instanceof SortedSet))return!1;if(this.size!==e.size)return!1;const r=this.data.getIterator(),i=e.data.getIterator();for(;r.hasNext();){const e=r.getNext().key,s=i.getNext().key;if(0!==this.comparator(e,s))return!1}return!0}toArray(){const e=[];return this.forEach((r=>{e.push(r)})),e}toString(){const e=[];return this.forEach((r=>e.push(r))),"SortedSet("+e.toString()+")"}copy(e){const r=new SortedSet(this.comparator);return r.data=e,r}}class SortedSetIterator{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}class ObjectValue{constructor(e){this.value=e}static empty(){return new ObjectValue({mapValue:{}})}field(e){if(e.isEmpty())return this.value;{let r=this.value;for(let i=0;i<e.length-1;++i)if(r=(r.mapValue.fields||{})[e.get(i)],!__PRIVATE_isMapValue(r))return null;return r=(r.mapValue.fields||{})[e.lastSegment()],r||null}}set(e,r){this.getFieldsMap(e.popLast())[e.lastSegment()]=__PRIVATE_deepClone(r)}setAll(e){let r=FieldPath$1.emptyPath(),i={},s=[];e.forEach(((e,o)=>{if(!r.isImmediateParentOf(o)){const e=this.getFieldsMap(r);this.applyChanges(e,i,s),i={},s=[],r=o.popLast()}e?i[o.lastSegment()]=__PRIVATE_deepClone(e):s.push(o.lastSegment())}));const o=this.getFieldsMap(r);this.applyChanges(o,i,s)}delete(e){const r=this.field(e.popLast());__PRIVATE_isMapValue(r)&&r.mapValue.fields&&delete r.mapValue.fields[e.lastSegment()]}isEqual(e){return __PRIVATE_valueEquals(this.value,e.value)}getFieldsMap(e){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let i=0;i<e.length;++i){let s=r.mapValue.fields[e.get(i)];__PRIVATE_isMapValue(s)&&s.mapValue.fields||(s={mapValue:{fields:{}}},r.mapValue.fields[e.get(i)]=s),r=s}return r.mapValue.fields}applyChanges(e,r,i){forEach(r,((r,i)=>e[r]=i));for(const r of i)delete e[r]}clone(){return new ObjectValue(__PRIVATE_deepClone(this.value))}}class __PRIVATE_QueryImpl{constructor(e,r=null,i=[],s=[],o=null,a="F",_=null,h=null){this.path=e,this.collectionGroup=r,this.explicitOrderBy=i,this.filters=s,this.limit=o,this.limitType=a,this.startAt=_,this.endAt=h,this.q=null,this.L=null,this.B=null,this.startAt,this.endAt}}function __PRIVATE_toDouble(e,r){if(e.useProto3Json){if(isNaN(r))return{doubleValue:"NaN"};if(r===1/0)return{doubleValue:"Infinity"};if(r===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:__PRIVATE_isNegativeZero(r)?"-0":r}}function toNumber(e,r){return function isSafeInteger(e){return"number"==typeof e&&Number.isInteger(e)&&!__PRIVATE_isNegativeZero(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}(r)?function __PRIVATE_toInteger(e){return{integerValue:""+e}}(r):__PRIVATE_toDouble(e,r)}class JsonProtoSerializer{constructor(e,r){this.databaseId=e,this.useProto3Json=r}}function toTimestamp(e,r){return e.useProto3Json?`${new Date(1e3*r.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+r.nanoseconds).slice(-9)}Z`:{seconds:""+r.seconds,nanos:r.nanoseconds}}function __PRIVATE_toBytes(e,r){return e.useProto3Json?r.toBase64():r.toUint8Array()}function __PRIVATE_fromVersion(e){return __PRIVATE_hardAssert(!!e,49232),SnapshotVersion.fromTimestamp(function fromTimestamp(e){const r=__PRIVATE_normalizeTimestamp(e);return new Timestamp(r.seconds,r.nanos)}(e))}function __PRIVATE_toResourceName(e,r){return __PRIVATE_toResourcePath(e,r).canonicalString()}function __PRIVATE_toResourcePath(e,r){const i=function __PRIVATE_fullyQualifiedPrefixPath(e){return new ResourcePath(["projects",e.projectId,"databases",e.database])}(e).child("documents");return void 0===r?i:i.child(r)}function __PRIVATE_fromPipelineResponse(e,r,i){const s={};r.transaction?.length&&(s.transaction=r.transaction);const o=r.executionTime?__PRIVATE_fromVersion(r.executionTime):void 0;return s.executionTime=o,i&&(s.key=i.name?function fromName(e,r){const i=function __PRIVATE_fromResourceName(e){const r=ResourcePath.fromString(e);return __PRIVATE_hardAssert(__PRIVATE_isValidResourceName(r),10190,{key:r.toString()}),r}(r);if(i.get(1)!==e.databaseId.projectId)throw new FirestoreError(T,"Tried to deserialize key from different project: "+i.get(1)+" vs "+e.databaseId.projectId);if(i.get(3)!==e.databaseId.database)throw new FirestoreError(T,"Tried to deserialize key from different database: "+i.get(3)+" vs "+e.databaseId.database);return new DocumentKey(function __PRIVATE_extractLocalPathFromResourceName(e){return __PRIVATE_hardAssert(e.length>4&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}(i))}(e,i.name):void 0,s.fields=new ObjectValue({mapValue:{fields:i.fields}}),s.createTime=i.createTime?__PRIVATE_fromVersion(i.createTime):void 0,s.updateTime=i.updateTime?__PRIVATE_fromVersion(i.updateTime):void 0),s}function __PRIVATE_isValidResourceName(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}function __PRIVATE_isProtoValueSerializable(e){return!!e&&"function"==typeof e._toProto&&"ProtoValue"===e._protoValueType}function __PRIVATE_toMapValue(e,r){const i={fields:{}};return r.forEach(((r,s)=>{if("string"!=typeof s)throw new Error(`Cannot encode map with non-string key: ${s}`);i.fields[s]=r._toProto(e)})),{mapValue:i}}function __PRIVATE_toStringValue(e){return{stringValue:e}}function __PRIVATE_toPipelineValue(e){return{pipelineValue:e}}function __PRIVATE_newSerializer(e){return new JsonProtoSerializer(e,!0)}class Datastore{}class __PRIVATE_DatastoreImpl extends Datastore{constructor(e,r,i,s){super(),this.authCredentials=e,this.appCheckCredentials=r,this.connection=i,this.serializer=s,this.k=!1}j(){if(this.k)throw new FirestoreError(S,"The client has already been terminated.")}I(e,r,i,s){return this.j(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([o,a])=>this.connection.I(e,__PRIVATE_toResourcePath(r,i),s,o,a))).catch((e=>{throw"FirebaseError"===e.name?(e.code===R&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new FirestoreError(g,e.toString())}))}D(e,r,i,s,o){return this.j(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([a,_])=>this.connection.D(e,__PRIVATE_toResourcePath(r,i),s,a,_,o))).catch((e=>{throw"FirebaseError"===e.name?(e.code===R&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new FirestoreError(g,e.toString())}))}terminate(){this.k=!0,this.connection.terminate()}}const ae="ComponentProvider",ue=new Map;const le=!0;class FirestoreSettingsImpl{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new FirestoreError(T,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=le}else this.host=e.host,this.ssl=e.ssl??le;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new FirestoreError(T,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}!function __PRIVATE_validateIsNotUsedTogether(e,r,i,s){if(!0===r&&!0===s)throw new FirestoreError(T,`${e} and ${i} cannot be used together.`)}("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=__PRIVATE_cloneLongPollingOptions(e.experimentalLongPollingOptions??{}),function __PRIVATE_validateLongPollingOptions(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new FirestoreError(T,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new FirestoreError(T,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new FirestoreError(T,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&function __PRIVATE_longPollingOptionsEqual(e,r){return e.timeoutSeconds===r.timeoutSeconds}(this.experimentalLongPollingOptions,e.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams}}class Firestore{constructor(e,r,i,s){this._authCredentials=e,this._appCheckCredentials=r,this._databaseId=i,this._app=s,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new FirestoreSettingsImpl({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(!this._app)throw new FirestoreError(S,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new FirestoreError(S,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new FirestoreSettingsImpl(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=function __PRIVATE_makeAuthCredentialsProvider(e){if(!e)return new __PRIVATE_EmptyAuthCredentialsProvider;switch(e.type){case"firstParty":return new __PRIVATE_FirstPartyAuthCredentialsProvider(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new FirestoreError(T,"makeAuthCredentialsProvider failed due to invalid credential type")}}(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function __PRIVATE_removeComponents(e){const r=ue.get(e);r&&(__PRIVATE_logDebug(ae,"Removing Datastore"),ue.delete(e),r.terminate())}(this),Promise.resolve()}}class Query{constructor(e,r,i){this.converter=r,this._query=i,this.type="query",this.firestore=e}withConverter(e){return new Query(this.firestore,e,this._query)}}class DocumentReference{constructor(e,r,i){this.converter=r,this._key=i,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new CollectionReference(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new DocumentReference(this.firestore,e,this._key)}toJSON(){return{type:DocumentReference._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,r,i){if(__PRIVATE_validateJSON(r,DocumentReference._jsonSchema))return new DocumentReference(e,i||null,new DocumentKey(ResourcePath.fromString(r.referencePath)))}}DocumentReference._jsonSchemaVersion="firestore/documentReference/1.0",DocumentReference._jsonSchema={type:property("string",DocumentReference._jsonSchemaVersion),referencePath:property("string")};class CollectionReference extends Query{constructor(e,r,i){super(e,r,function __PRIVATE_newQueryForPath(e){return new __PRIVATE_QueryImpl(e)}(i)),this._path=i,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const e=this._path.popLast();return e.isEmpty()?null:new DocumentReference(this.firestore,null,new DocumentKey(e))}withConverter(e){return new CollectionReference(this.firestore,e,this._path)}}function __PRIVATE_isCollectionReference(e){return e instanceof CollectionReference}function doc(e,r,...i){if(e=getModularInstance(e),1===arguments.length&&(r=__PRIVATE_AutoId.newId()),function __PRIVATE_validateNonEmptyArgument(e,r,i){if(!i)throw new FirestoreError(T,`Function ${e}() cannot be called with an empty ${r}.`)}("doc","path",r),e instanceof Firestore){const s=ResourcePath.fromString(r,...i);return __PRIVATE_validateDocumentPath(s),new DocumentReference(e,null,new DocumentKey(s))}{if(!(e instanceof DocumentReference||e instanceof CollectionReference))throw new FirestoreError(T,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const s=e._path.child(ResourcePath.fromString(r,...i));return __PRIVATE_validateDocumentPath(s),new DocumentReference(e.firestore,e instanceof CollectionReference?e.converter:null,new DocumentKey(s))}}class Bytes{constructor(e){this._byteString=e}static fromBase64String(e){try{return new Bytes(ByteString.fromBase64String(e))}catch(e){throw new FirestoreError(T,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new Bytes(ByteString.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}toJSON(){return{type:Bytes._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(__PRIVATE_validateJSON(e,Bytes._jsonSchema))return Bytes.fromBase64String(e.bytes)}}Bytes._jsonSchemaVersion="firestore/bytes/1.0",Bytes._jsonSchema={type:property("string",Bytes._jsonSchemaVersion),bytes:property("string")};class FieldPath{constructor(...e){for(let r=0;r<e.length;++r)if(0===e[r].length)throw new FirestoreError(T,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new FieldPath$1(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class FieldValue{constructor(e){this._methodName=e}}class GeoPoint{constructor(e,r){if(!isFinite(e)||e<-90||e>90)throw new FirestoreError(T,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(r)||r<-180||r>180)throw new FirestoreError(T,"Longitude must be a number between -180 and 180, but was: "+r);this._lat=e,this._long=r}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return __PRIVATE_primitiveComparator(this._lat,e._lat)||__PRIVATE_primitiveComparator(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:GeoPoint._jsonSchemaVersion}}static fromJSON(e){if(__PRIVATE_validateJSON(e,GeoPoint._jsonSchema))return new GeoPoint(e.latitude,e.longitude)}}GeoPoint._jsonSchemaVersion="firestore/geoPoint/1.0",GeoPoint._jsonSchema={type:property("string",GeoPoint._jsonSchemaVersion),latitude:property("number"),longitude:property("number")};class VectorValue{constructor(e){this._values=(e||[]).map((e=>e))}toArray(){return this._values.map((e=>e))}isEqual(e){return function __PRIVATE_isPrimitiveArrayEqual(e,r){if(e.length!==r.length)return!1;for(let i=0;i<e.length;++i)if(e[i]!==r[i])return!1;return!0}(this._values,e._values)}toJSON(){return{type:VectorValue._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(__PRIVATE_validateJSON(e,VectorValue._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every((e=>"number"==typeof e)))return new VectorValue(e.vectorValues);throw new FirestoreError(T,"Expected 'vectorValues' field to be a number array")}}}VectorValue._jsonSchemaVersion="firestore/vectorValue/1.0",VectorValue._jsonSchema={type:property("string",VectorValue._jsonSchemaVersion),vectorValues:property("object")};const _e=/^__.*__$/;function __PRIVATE_isWrite(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw fail(40011,{dataSource:e})}}class ParseContextImpl{constructor(e,r,i,s,o,a){this.settings=e,this.databaseId=r,this.serializer=i,this.ignoreUndefinedProperties=s,void 0===o&&this.validatePath(),this.fieldTransforms=o||[],this.fieldMask=a||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}contextWith(e){return new ParseContextImpl({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}childContextForField(e){const r=this.path?.child(e),i=this.contextWith({path:r,arrayElement:!1});return i.validatePathSegment(e),i}childContextForFieldPath(e){const r=this.path?.child(e),i=this.contextWith({path:r,arrayElement:!1});return i.validatePath(),i}childContextForArray(e){return this.contextWith({path:void 0,arrayElement:!0})}createError(e){return createError(e,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(e){return void 0!==this.fieldMask.find((r=>e.isPrefixOf(r)))||void 0!==this.fieldTransforms.find((r=>e.isPrefixOf(r.field)))}validatePath(){if(this.path)for(let e=0;e<this.path.length;e++)this.validatePathSegment(this.path.get(e))}validatePathSegment(e){if(0===e.length)throw this.createError("Document fields must not be empty");if(__PRIVATE_isWrite(this.dataSource)&&_e.test(e))throw this.createError('Document fields cannot begin and end with "__"')}}class UserDataReader{constructor(e,r,i){this.databaseId=e,this.ignoreUndefinedProperties=r,this.serializer=i||__PRIVATE_newSerializer(e)}createContext(e,r,i,s=!1){return new ParseContextImpl({dataSource:e,methodName:r,targetDoc:i,path:FieldPath$1.emptyPath(),arrayElement:!1,hasConverter:s},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function __PRIVATE_parseData(e,r){if(__PRIVATE_looksLikeJsonObject(e=getModularInstance(e)))return function __PRIVATE_validatePlainObject(e,r,i){if(!__PRIVATE_looksLikeJsonObject(i)||!__PRIVATE_isPlainObject(i)){const s=__PRIVATE_valueDescription(i);throw"an object"===s?r.createError(e+" a custom object"):r.createError(e+" "+s)}}("Unsupported field value:",r,e),function __PRIVATE_parseObject(e,r){const i={};return function isEmpty(e){for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r))return!1;return!0}(e)?r.path&&r.path.length>0&&r.fieldMask.push(r.path):forEach(e,((e,s)=>{const o=__PRIVATE_parseData(s,r.childContextForField(e));null!=o&&(i[e]=o)})),{mapValue:{fields:i}}}(e,r);if(e instanceof FieldValue)return function __PRIVATE_parseSentinelFieldValue(e,r){if(!__PRIVATE_isWrite(r.dataSource))throw r.createError(`${e._methodName}() can only be used with update() and set()`);if(!r.path)throw r.createError(`${e._methodName}() is not currently supported inside arrays`);const i=e._toFieldTransform(r);i&&r.fieldTransforms.push(i)}(e,r),null;if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.arrayElement&&4!==r.dataSource)throw r.createError("Nested arrays are not supported");return function __PRIVATE_parseArray(e,r){const i=[];let s=0;for(const o of e){let e=__PRIVATE_parseData(o,r.childContextForArray(s));null==e&&(e={nullValue:"NULL_VALUE"}),i.push(e),s++}return{arrayValue:{values:i}}}(e,r)}return function __PRIVATE_parseScalarValue(e,r){if(null===(e=getModularInstance(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return toNumber(r.serializer,e);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){const i=Timestamp.fromDate(e);return{timestampValue:toTimestamp(r.serializer,i)}}if(e instanceof Timestamp){const i=new Timestamp(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:toTimestamp(r.serializer,i)}}if(e instanceof GeoPoint)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof Bytes)return{bytesValue:__PRIVATE_toBytes(r.serializer,e._byteString)};if(e instanceof DocumentReference){const i=r.databaseId,s=e.firestore._databaseId;if(!s.isEqual(i))throw r.createError(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${i.projectId}/${i.database}`);return{referenceValue:__PRIVATE_toResourceName(e.firestore._databaseId||r.databaseId,e._key.path)}}if(e instanceof VectorValue)return function __PRIVATE_parseVectorValue(e,r){const i=e instanceof VectorValue?e.toArray():e,s={fields:{[re]:{stringValue:se},[oe]:{arrayValue:{values:i.map((e=>{if("number"!=typeof e)throw r.createError("VectorValues must only contain numeric values.");return __PRIVATE_toDouble(r.serializer,e)}))}}}};return{mapValue:s}}(e,r);if(__PRIVATE_isProtoValueSerializable(e))return e._toProto(r.serializer);throw r.createError(`Unsupported field value: ${__PRIVATE_valueDescription(e)}`)}(e,r)}function __PRIVATE_looksLikeJsonObject(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof Timestamp||e instanceof GeoPoint||e instanceof Bytes||e instanceof DocumentReference||e instanceof FieldValue||e instanceof VectorValue||__PRIVATE_isProtoValueSerializable(e))}function __PRIVATE_fieldPathFromArgument(e,r,i){if((r=getModularInstance(r))instanceof FieldPath)return r._internalPath;if("string"==typeof r)return function __PRIVATE_fieldPathFromDotSeparatedString(e,r,i){if(r.search(ce)>=0)throw createError(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,i);try{return new FieldPath(...r.split("."))._internalPath}catch(s){throw createError(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,i)}}(e,r);throw createError("Field path arguments must be of type string or ",e,!1,void 0,i)}const ce=new RegExp("[~\\*/\\[\\]]");function createError(e,r,i,s,o){const a=s&&!s.isEmpty(),_=void 0!==o;let h=`Function ${r}() called with invalid data`;i&&(h+=" (via `toFirestore()`)"),h+=". ";let d="";return(a||_)&&(d+=" (found",a&&(d+=` in field ${s}`),_&&(d+=` in document ${o}`),d+=")"),new FirestoreError(T,h+e+d)}class AbstractUserDataWriter{convertValue(e,r="none"){switch(__PRIVATE_typeOrder(e)){case 0:return null;case 1:return e.booleanValue;case 2:return __PRIVATE_normalizeNumber(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,r);case 5:return e.stringValue;case 6:return this.convertBytes(__PRIVATE_normalizeByteString(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,r);case 11:return this.convertObject(e.mapValue,r);case 10:return this.convertVectorValue(e.mapValue);default:throw fail(62114,{value:e})}}convertObject(e,r){return this.convertObjectMap(e.fields,r)}convertObjectMap(e,r="none"){const i={};return forEach(e,((e,s)=>{i[e]=this.convertValue(s,r)})),i}convertVectorValue(e){const r=e.fields?.[oe].arrayValue?.values?.map((e=>__PRIVATE_normalizeNumber(e.doubleValue)));return new VectorValue(r)}convertGeoPoint(e){return new GeoPoint(__PRIVATE_normalizeNumber(e.latitude),__PRIVATE_normalizeNumber(e.longitude))}convertArray(e,r){return(e.values||[]).map((e=>this.convertValue(e,r)))}convertServerTimestamp(e,r){switch(r){case"previous":const i=__PRIVATE_getPreviousValue(e);return null==i?null:this.convertValue(i,r);case"estimate":return this.convertTimestamp(__PRIVATE_getLocalWriteTime(e));default:return null}}convertTimestamp(e){const r=__PRIVATE_normalizeTimestamp(e);return new Timestamp(r.seconds,r.nanos)}convertDocumentKey(e,r){const i=ResourcePath.fromString(e);__PRIVATE_hardAssert(__PRIVATE_isValidResourceName(i),9688,{name:e});const s=new DatabaseId(i.get(1),i.get(3)),o=new DocumentKey(i.popFirst(5));return s.isEqual(r)||__PRIVATE_logError(`Document ${o} contains a document reference within a different database (${s.projectId}/${s.database}) which is not supported. It will be treated as a reference in the current database (${r.projectId}/${r.database}) instead.`),o}}class __PRIVATE_LiteUserDataWriter extends AbstractUserDataWriter{constructor(e){super(),this.firestore=e}convertBytes(e){return new Bytes(e)}convertReference(e){const r=this.convertDocumentKey(e,this.firestore._databaseId);return new DocumentReference(this.firestore,null,r)}}function vector(e){return new VectorValue(e)}class OptionsUtil{constructor(e){this.optionDefinitions=e}_getKnownOptions(e,r){const i=ObjectValue.empty();for(const s in this.optionDefinitions)if(this.optionDefinitions.hasOwnProperty(s)){const o=this.optionDefinitions[s];if(s in e){const a=e[s];let _;o.nestedOptions&&__PRIVATE_isPlainObject(a)?_={mapValue:{fields:new OptionsUtil(o.nestedOptions).getOptionsProto(r,a)}}:a&&(_=__PRIVATE_parseData(a,r)??void 0),_&&i.set(FieldPath$1.fromServerFormat(o.serverName),_)}}return i}getOptionsProto(e,r,i){const s=this._getKnownOptions(r,e);if(i){const r=new Map(function __PRIVATE_mapToArray(e,r){const i=[];for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&i.push(r(e[s],s,e));return i}(i,((r,i)=>[FieldPath$1.fromServerFormat(i),void 0!==r?__PRIVATE_parseData(r,e):null])));s.setAll(r)}return s.value.mapValue.fields??{}}}class __PRIVATE_StructuredPipelineOptions{constructor(e={},r={}){this.t=e,this.i=r,this.o=new OptionsUtil({indexMode:{serverName:"index_mode"}})}_readUserData(e){this.proto=this.o.getOptionsProto(e,this.t,this.i)}}class StructuredPipeline{constructor(e,r){this.pipeline=e,this.options=r}_toProto(e){return{pipeline:this.pipeline._toProto(e),options:this.options.proto}}}function __PRIVATE_isFirestoreValue(e){return"object"==typeof e&&null!==e&&!!("nullValue"in e&&(null===e.nullValue||"NULL_VALUE"===e.nullValue)||"booleanValue"in e&&(null===e.booleanValue||"boolean"==typeof e.booleanValue)||"integerValue"in e&&(null===e.integerValue||"number"==typeof e.integerValue||"string"==typeof e.integerValue)||"doubleValue"in e&&(null===e.doubleValue||"number"==typeof e.doubleValue)||"timestampValue"in e&&(null===e.timestampValue||function __PRIVATE_isITimestamp(e){return"object"==typeof e&&null!==e&&"seconds"in e&&(null===e.seconds||"number"==typeof e.seconds||"string"==typeof e.seconds)&&"nanos"in e&&(null===e.nanos||"number"==typeof e.nanos)}(e.timestampValue))||"stringValue"in e&&(null===e.stringValue||"string"==typeof e.stringValue)||"bytesValue"in e&&(null===e.bytesValue||e.bytesValue instanceof Uint8Array)||"referenceValue"in e&&(null===e.referenceValue||"string"==typeof e.referenceValue)||"geoPointValue"in e&&(null===e.geoPointValue||function __PRIVATE_isILatLng(e){return"object"==typeof e&&null!==e&&"latitude"in e&&(null===e.latitude||"number"==typeof e.latitude)&&"longitude"in e&&(null===e.longitude||"number"==typeof e.longitude)}(e.geoPointValue))||"arrayValue"in e&&(null===e.arrayValue||function __PRIVATE_isIArrayValue(e){return"object"==typeof e&&null!==e&&!(!("values"in e)||null!==e.values&&!Array.isArray(e.values))}(e.arrayValue))||"mapValue"in e&&(null===e.mapValue||function __PRIVATE_isIMapValue(e){return"object"==typeof e&&null!==e&&!(!("fields"in e)||null!==e.fields&&!__PRIVATE_isPlainObject(e.fields))}(e.mapValue))||"fieldReferenceValue"in e&&(null===e.fieldReferenceValue||"string"==typeof e.fieldReferenceValue)||"functionValue"in e&&(null===e.functionValue||function __PRIVATE_isIFunction(e){return"object"==typeof e&&null!==e&&!(!("name"in e)||null!==e.name&&"string"!=typeof e.name||!("args"in e)||null!==e.args&&!Array.isArray(e.args))}(e.functionValue))||"pipelineValue"in e&&(null===e.pipelineValue||function __PRIVATE_isIPipeline(e){return"object"==typeof e&&null!==e&&!(!("stages"in e)||null!==e.stages&&!Array.isArray(e.stages))}(e.pipelineValue)))}function __PRIVATE_valueToDefaultExpr$1(e){let r;return e instanceof Expression?e:(r=__PRIVATE_isPlainObject(e)?__PRIVATE__map(e):e instanceof Array?array(e):__PRIVATE__constant(e,void 0),r)}function __PRIVATE_vectorToExpr$1(e){if(e instanceof Expression)return e;if(e instanceof VectorValue)return constant(e);if(Array.isArray(e))return constant(vector(e));throw new Error("Unsupported value: "+typeof e)}function __PRIVATE_fieldOrExpression$1(e){return __PRIVATE_isString(e)?field(e):__PRIVATE_valueToDefaultExpr$1(e)}class Expression{constructor(){this._protoValueType="ProtoValue"}add(e){return new FunctionExpression("add",[this,__PRIVATE_valueToDefaultExpr$1(e)],"add")}asBoolean(){if(this instanceof BooleanExpression)return this;if(this instanceof Constant)return new __PRIVATE_BooleanConstant(this);if(this instanceof Field)return new __PRIVATE_BooleanField(this);if(this instanceof FunctionExpression)return new __PRIVATE_BooleanFunctionExpression(this);throw new FirestoreError("invalid-argument",`Conversion of type ${typeof this} to BooleanExpression not supported.`)}subtract(e){return new FunctionExpression("subtract",[this,__PRIVATE_valueToDefaultExpr$1(e)],"subtract")}multiply(e){return new FunctionExpression("multiply",[this,__PRIVATE_valueToDefaultExpr$1(e)],"multiply")}divide(e){return new FunctionExpression("divide",[this,__PRIVATE_valueToDefaultExpr$1(e)],"divide")}mod(e){return new FunctionExpression("mod",[this,__PRIVATE_valueToDefaultExpr$1(e)],"mod")}equal(e){return new FunctionExpression("equal",[this,__PRIVATE_valueToDefaultExpr$1(e)],"equal").asBoolean()}notEqual(e){return new FunctionExpression("not_equal",[this,__PRIVATE_valueToDefaultExpr$1(e)],"notEqual").asBoolean()}lessThan(e){return new FunctionExpression("less_than",[this,__PRIVATE_valueToDefaultExpr$1(e)],"lessThan").asBoolean()}lessThanOrEqual(e){return new FunctionExpression("less_than_or_equal",[this,__PRIVATE_valueToDefaultExpr$1(e)],"lessThanOrEqual").asBoolean()}greaterThan(e){return new FunctionExpression("greater_than",[this,__PRIVATE_valueToDefaultExpr$1(e)],"greaterThan").asBoolean()}greaterThanOrEqual(e){return new FunctionExpression("greater_than_or_equal",[this,__PRIVATE_valueToDefaultExpr$1(e)],"greaterThanOrEqual").asBoolean()}arrayConcat(e,...r){const i=[e,...r].map((e=>__PRIVATE_valueToDefaultExpr$1(e)));return new FunctionExpression("array_concat",[this,...i],"arrayConcat")}arrayContains(e){return new FunctionExpression("array_contains",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayContains").asBoolean()}arrayContainsAll(e){const r=Array.isArray(e)?new __PRIVATE_ListOfExprs(e.map(__PRIVATE_valueToDefaultExpr$1),"arrayContainsAll"):e;return new FunctionExpression("array_contains_all",[this,r],"arrayContainsAll").asBoolean()}arrayContainsAny(e){const r=Array.isArray(e)?new __PRIVATE_ListOfExprs(e.map(__PRIVATE_valueToDefaultExpr$1),"arrayContainsAny"):e;return new FunctionExpression("array_contains_any",[this,r],"arrayContainsAny").asBoolean()}arrayReverse(){return new FunctionExpression("array_reverse",[this])}arrayLength(){return new FunctionExpression("array_length",[this],"arrayLength")}equalAny(e){const r=Array.isArray(e)?new __PRIVATE_ListOfExprs(e.map(__PRIVATE_valueToDefaultExpr$1),"equalAny"):e;return new FunctionExpression("equal_any",[this,r],"equalAny").asBoolean()}notEqualAny(e){const r=Array.isArray(e)?new __PRIVATE_ListOfExprs(e.map(__PRIVATE_valueToDefaultExpr$1),"notEqualAny"):e;return new FunctionExpression("not_equal_any",[this,r],"notEqualAny").asBoolean()}exists(){return new FunctionExpression("exists",[this],"exists").asBoolean()}charLength(){return new FunctionExpression("char_length",[this],"charLength")}like(e){return new FunctionExpression("like",[this,__PRIVATE_valueToDefaultExpr$1(e)],"like").asBoolean()}regexContains(e){return new FunctionExpression("regex_contains",[this,__PRIVATE_valueToDefaultExpr$1(e)],"regexContains").asBoolean()}regexFind(e){return new FunctionExpression("regex_find",[this,__PRIVATE_valueToDefaultExpr$1(e)],"regexFind")}regexFindAll(e){return new FunctionExpression("regex_find_all",[this,__PRIVATE_valueToDefaultExpr$1(e)],"regexFindAll")}regexMatch(e){return new FunctionExpression("regex_match",[this,__PRIVATE_valueToDefaultExpr$1(e)],"regexMatch").asBoolean()}stringContains(e){return new FunctionExpression("string_contains",[this,__PRIVATE_valueToDefaultExpr$1(e)],"stringContains").asBoolean()}startsWith(e){return new FunctionExpression("starts_with",[this,__PRIVATE_valueToDefaultExpr$1(e)],"startsWith").asBoolean()}endsWith(e){return new FunctionExpression("ends_with",[this,__PRIVATE_valueToDefaultExpr$1(e)],"endsWith").asBoolean()}toLower(){return new FunctionExpression("to_lower",[this],"toLower")}toUpper(){return new FunctionExpression("to_upper",[this],"toUpper")}trim(e){const r=[this];return e&&r.push(__PRIVATE_valueToDefaultExpr$1(e)),new FunctionExpression("trim",r,"trim")}ltrim(e){const r=[this];return e&&r.push(__PRIVATE_valueToDefaultExpr$1(e)),new FunctionExpression("ltrim",r,"ltrim")}rtrim(e){const r=[this];return e&&r.push(__PRIVATE_valueToDefaultExpr$1(e)),new FunctionExpression("rtrim",r,"rtrim")}type(){return new FunctionExpression("type",[this])}isType(e){return new FunctionExpression("is_type",[this,constant(e)],"isType").asBoolean()}stringConcat(e,...r){const i=[e,...r].map(__PRIVATE_valueToDefaultExpr$1);return new FunctionExpression("string_concat",[this,...i],"stringConcat")}stringIndexOf(e){return new FunctionExpression("string_index_of",[this,__PRIVATE_valueToDefaultExpr$1(e)],"stringIndexOf")}stringRepeat(e){return new FunctionExpression("string_repeat",[this,__PRIVATE_valueToDefaultExpr$1(e)],"stringRepeat")}stringReplaceAll(e,r){return new FunctionExpression("string_replace_all",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r)],"stringReplaceAll")}stringReplaceOne(e,r){return new FunctionExpression("string_replace_one",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r)],"stringReplaceOne")}concat(e,...r){const i=[e,...r].map(__PRIVATE_valueToDefaultExpr$1);return new FunctionExpression("concat",[this,...i],"concat")}reverse(){return new FunctionExpression("reverse",[this],"reverse")}byteLength(){return new FunctionExpression("byte_length",[this],"byteLength")}ceil(){return new FunctionExpression("ceil",[this])}floor(){return new FunctionExpression("floor",[this])}abs(){return new FunctionExpression("abs",[this])}exp(){return new FunctionExpression("exp",[this])}mapGet(e){return new FunctionExpression("map_get",[this,constant(e)],"mapGet")}mapSet(e,r,...i){const s=[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r),...i.map(__PRIVATE_valueToDefaultExpr$1)];return new FunctionExpression("map_set",s,"mapSet")}mapKeys(){return new FunctionExpression("map_keys",[this],"mapKeys")}mapValues(){return new FunctionExpression("map_values",[this],"mapValues")}mapEntries(){return new FunctionExpression("map_entries",[this],"mapEntries")}count(){return AggregateFunction._create("count",[this],"count")}sum(){return AggregateFunction._create("sum",[this],"sum")}average(){return AggregateFunction._create("average",[this],"average")}minimum(){return AggregateFunction._create("minimum",[this],"minimum")}maximum(){return AggregateFunction._create("maximum",[this],"maximum")}first(){return AggregateFunction._create("first",[this],"first")}last(){return AggregateFunction._create("last",[this],"last")}arrayAgg(){return AggregateFunction._create("array_agg",[this],"arrayAgg")}arrayAggDistinct(){return AggregateFunction._create("array_agg_distinct",[this],"arrayAggDistinct")}countDistinct(){return AggregateFunction._create("count_distinct",[this],"countDistinct")}logicalMaximum(e,...r){const i=[e,...r];return new FunctionExpression("maximum",[this,...i.map(__PRIVATE_valueToDefaultExpr$1)],"logicalMaximum")}logicalMinimum(e,...r){const i=[e,...r];return new FunctionExpression("minimum",[this,...i.map(__PRIVATE_valueToDefaultExpr$1)],"minimum")}vectorLength(){return new FunctionExpression("vector_length",[this],"vectorLength")}cosineDistance(e){return new FunctionExpression("cosine_distance",[this,__PRIVATE_vectorToExpr$1(e)],"cosineDistance")}dotProduct(e){return new FunctionExpression("dot_product",[this,__PRIVATE_vectorToExpr$1(e)],"dotProduct")}euclideanDistance(e){return new FunctionExpression("euclidean_distance",[this,__PRIVATE_vectorToExpr$1(e)],"euclideanDistance")}unixMicrosToTimestamp(){return new FunctionExpression("unix_micros_to_timestamp",[this],"unixMicrosToTimestamp")}timestampToUnixMicros(){return new FunctionExpression("timestamp_to_unix_micros",[this],"timestampToUnixMicros")}unixMillisToTimestamp(){return new FunctionExpression("unix_millis_to_timestamp",[this],"unixMillisToTimestamp")}timestampToUnixMillis(){return new FunctionExpression("timestamp_to_unix_millis",[this],"timestampToUnixMillis")}unixSecondsToTimestamp(){return new FunctionExpression("unix_seconds_to_timestamp",[this],"unixSecondsToTimestamp")}timestampToUnixSeconds(){return new FunctionExpression("timestamp_to_unix_seconds",[this],"timestampToUnixSeconds")}timestampAdd(e,r){return new FunctionExpression("timestamp_add",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r)],"timestampAdd")}timestampSubtract(e,r){return new FunctionExpression("timestamp_subtract",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r)],"timestampSubtract")}documentId(){return new FunctionExpression("document_id",[this],"documentId")}substring(e,r){const i=__PRIVATE_valueToDefaultExpr$1(e);return new FunctionExpression("substring",void 0===r?[this,i]:[this,i,__PRIVATE_valueToDefaultExpr$1(r)],"substring")}arrayGet(e){return new FunctionExpression("array_get",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayGet")}isError(){return new FunctionExpression("is_error",[this],"isError").asBoolean()}ifError(e){const r=new FunctionExpression("if_error",[this,__PRIVATE_valueToDefaultExpr$1(e)],"ifError");return e instanceof BooleanExpression?r.asBoolean():r}isAbsent(){return new FunctionExpression("is_absent",[this],"isAbsent").asBoolean()}mapRemove(e){return new FunctionExpression("map_remove",[this,__PRIVATE_valueToDefaultExpr$1(e)],"mapRemove")}mapMerge(e,...r){const i=__PRIVATE_valueToDefaultExpr$1(e),s=r.map(__PRIVATE_valueToDefaultExpr$1);return new FunctionExpression("map_merge",[this,i,...s],"mapMerge")}pow(e){return new FunctionExpression("pow",[this,__PRIVATE_valueToDefaultExpr$1(e)])}trunc(e){return void 0===e?new FunctionExpression("trunc",[this]):new FunctionExpression("trunc",[this,__PRIVATE_valueToDefaultExpr$1(e)],"trunc")}round(e){return void 0===e?new FunctionExpression("round",[this]):new FunctionExpression("round",[this,__PRIVATE_valueToDefaultExpr$1(e)],"round")}collectionId(){return new FunctionExpression("collection_id",[this])}length(){return new FunctionExpression("length",[this])}ln(){return new FunctionExpression("ln",[this])}sqrt(){return new FunctionExpression("sqrt",[this])}stringReverse(){return new FunctionExpression("string_reverse",[this])}ifAbsent(e){return new FunctionExpression("if_absent",[this,__PRIVATE_valueToDefaultExpr$1(e)],"ifAbsent")}join(e){return new FunctionExpression("join",[this,__PRIVATE_valueToDefaultExpr$1(e)],"join")}log10(){return new FunctionExpression("log10",[this])}arraySum(){return new FunctionExpression("sum",[this])}split(e){return new FunctionExpression("split",[this,__PRIVATE_valueToDefaultExpr$1(e)])}timestampTruncate(e,r){const i=[this,__PRIVATE_valueToDefaultExpr$1(__PRIVATE_isString(e)?e.toLowerCase():e)];return r&&i.push(__PRIVATE_valueToDefaultExpr$1(r)),new FunctionExpression("timestamp_trunc",i)}ascending(){return ascending(this)}descending(){return descending(this)}as(e){return new AliasedExpression(this,e,"as")}}class AggregateFunction{constructor(e,r){this.name=e,this.params=r,this.exprType="AggregateFunction",this._protoValueType="ProtoValue"}static _create(e,r,i){const s=new AggregateFunction(e,r);return s._methodName=i,s}as(e){return new AliasedAggregate(this,e,"as")}_toProto(e){return{functionValue:{name:this.name,args:this.params.map((r=>r._toProto(e)))}}}_readUserData(e){e=this._methodName?e.contextWith({methodName:this._methodName}):e,this.params.forEach((r=>r._readUserData(e)))}}class AliasedAggregate{constructor(e,r,i){this.aggregate=e,this.alias=r,this._methodName=i}_readUserData(e){this.aggregate._readUserData(e)}}class AliasedExpression{constructor(e,r,i){this.expr=e,this.alias=r,this._methodName=i,this.exprType="AliasedExpression",this.selectable=!0}_readUserData(e){this.expr._readUserData(e)}}class __PRIVATE_ListOfExprs extends Expression{constructor(e,r){super(),this.u=e,this._methodName=r,this.expressionType="ListOfExpressions"}_toProto(e){return{arrayValue:{values:this.u.map((r=>r._toProto(e)))}}}_readUserData(e){this.u.forEach((r=>r._readUserData(e)))}}class Field extends Expression{constructor(e,r){super(),this.fieldPath=e,this._methodName=r,this.expressionType="Field",this.selectable=!0}get fieldName(){return this.fieldPath.canonicalString()}get alias(){return this.fieldName}get expr(){return this}_toProto(e){return{fieldReferenceValue:this.fieldPath.canonicalString()}}_readUserData(e){}}function field(e){return _field(e,"field")}function _field(e,r){return new Field("string"==typeof e?q===e?function documentId$1(){return new FieldPath(q)}()._internalPath:__PRIVATE_fieldPathFromArgument("field",e):e._internalPath,r)}class Constant extends Expression{constructor(e,r){super(),this.value=e,this._methodName=r,this.expressionType="Constant"}static _fromProto(e){const r=new Constant(e,void 0);return r._protoValue=e,r}_toProto(e){return __PRIVATE_hardAssert(void 0!==this._protoValue,237),this._protoValue}_readUserData(e){e=this._methodName?e.contextWith({methodName:this._methodName}):e,__PRIVATE_isFirestoreValue(this._protoValue)||(this._protoValue=__PRIVATE_parseData(this.value,e))}}function constant(e){return __PRIVATE__constant(e,"constant")}function __PRIVATE__constant(e,r){const i=new Constant(e,r);return"boolean"==typeof e?new __PRIVATE_BooleanConstant(i):i}class MapValue extends Expression{constructor(e,r){super(),this._=e,this._methodName=r,this.expressionType="Constant"}_readUserData(e){e=this._methodName?e.contextWith({methodName:this._methodName}):e,this._.forEach((r=>{r._readUserData(e)}))}_toProto(e){return __PRIVATE_toMapValue(e,this._)}}class FunctionExpression extends Expression{constructor(e,r,i){super(),this.name=e,this.params=r,this._methodName=i,this.expressionType="Function"}_toProto(e){return{functionValue:{name:this.name,args:this.params.map((r=>r._toProto(e)))}}}_readUserData(e){e=this._methodName?e.contextWith({methodName:this._methodName}):e,this.params.forEach((r=>r._readUserData(e)))}}class BooleanExpression extends Expression{get _methodName(){return this._expr._methodName}countIf(){return AggregateFunction._create("count_if",[this],"countIf")}not(){return new FunctionExpression("not",[this],"not").asBoolean()}conditional(e,r){return new FunctionExpression("conditional",[this,e,r],"conditional")}ifError(e){const r=__PRIVATE_valueToDefaultExpr$1(e),i=new FunctionExpression("if_error",[this,r],"ifError");return r instanceof BooleanExpression?i.asBoolean():i}_toProto(e){return this._expr._toProto(e)}_readUserData(e){this._expr._readUserData(e)}}class __PRIVATE_BooleanFunctionExpression extends BooleanExpression{constructor(e){super(),this._expr=e,this.expressionType="Function"}}class __PRIVATE_BooleanConstant extends BooleanExpression{constructor(e){super(),this._expr=e,this.expressionType="Constant"}}class __PRIVATE_BooleanField extends BooleanExpression{constructor(e){super(),this._expr=e,this.expressionType="Field"}}function countIf(e){return e.countIf()}function arrayGet(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayGet(__PRIVATE_valueToDefaultExpr$1(r))}function isError(e){return e.isError().asBoolean()}function ifError(e,r){return e instanceof BooleanExpression&&r instanceof BooleanExpression?e.ifError(r).asBoolean():e.ifError(__PRIVATE_valueToDefaultExpr$1(r))}function isAbsent(e){return __PRIVATE_fieldOrExpression$1(e).isAbsent()}function mapRemove(e,r){return __PRIVATE_fieldOrExpression$1(e).mapRemove(__PRIVATE_valueToDefaultExpr$1(r))}function mapMerge(e,r,...i){const s=__PRIVATE_valueToDefaultExpr$1(r),o=i.map(__PRIVATE_valueToDefaultExpr$1);return __PRIVATE_fieldOrExpression$1(e).mapMerge(s,...o)}function documentId(e){return __PRIVATE_valueToDefaultExpr$1(e).documentId()}function substring(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_valueToDefaultExpr$1(r),a=void 0===i?void 0:__PRIVATE_valueToDefaultExpr$1(i);return s.substring(o,a)}function add(e,r){return __PRIVATE_fieldOrExpression$1(e).add(__PRIVATE_valueToDefaultExpr$1(r))}function subtract(e,r){const i="string"==typeof e?field(e):e,s=__PRIVATE_valueToDefaultExpr$1(r);return i.subtract(s)}function multiply(e,r){return __PRIVATE_fieldOrExpression$1(e).multiply(__PRIVATE_valueToDefaultExpr$1(r))}function divide(e,r){const i="string"==typeof e?field(e):e,s=__PRIVATE_valueToDefaultExpr$1(r);return i.divide(s)}function mod(e,r){const i="string"==typeof e?field(e):e,s=__PRIVATE_valueToDefaultExpr$1(r);return i.mod(s)}function map(e){return __PRIVATE__map(e)}function __PRIVATE__map(e,r){const i=[];for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const s=e[r];i.push(constant(r)),i.push(__PRIVATE_valueToDefaultExpr$1(s))}return new FunctionExpression("map",i,"map")}function array(e){return function __PRIVATE__array(e,r){return new FunctionExpression("array",e.map((e=>__PRIVATE_valueToDefaultExpr$1(e))),r)}(e,"array")}function equal(e,r){const i=e instanceof Expression?e:field(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.equal(s)}function notEqual(e,r){const i=e instanceof Expression?e:field(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.notEqual(s)}function lessThan(e,r){const i=e instanceof Expression?e:field(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.lessThan(s)}function lessThanOrEqual(e,r){const i=e instanceof Expression?e:field(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.lessThanOrEqual(s)}function greaterThan(e,r){const i=e instanceof Expression?e:field(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.greaterThan(s)}function greaterThanOrEqual(e,r){const i=e instanceof Expression?e:field(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.greaterThanOrEqual(s)}function arrayConcat(e,r,...i){const s=i.map((e=>__PRIVATE_valueToDefaultExpr$1(e)));return __PRIVATE_fieldOrExpression$1(e).arrayConcat(__PRIVATE_fieldOrExpression$1(r),...s)}function arrayContains(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.arrayContains(s)}function arrayContainsAny(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayContainsAny(r)}function arrayContainsAll(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayContainsAll(r)}function arrayLength(e){return __PRIVATE_fieldOrExpression$1(e).arrayLength()}function equalAny(e,r){return __PRIVATE_fieldOrExpression$1(e).equalAny(r)}function notEqualAny(e,r){return __PRIVATE_fieldOrExpression$1(e).notEqualAny(r)}function xor(e,r,...i){return new FunctionExpression("xor",[e,r,...i],"xor").asBoolean()}function conditional(e,r,i){return new FunctionExpression("conditional",[e,r,i],"conditional")}function not(e){return e.not()}function logicalMaximum(e,r,...i){return __PRIVATE_fieldOrExpression$1(e).logicalMaximum(__PRIVATE_valueToDefaultExpr$1(r),...i.map((e=>__PRIVATE_valueToDefaultExpr$1(e))))}function logicalMinimum(e,r,...i){return __PRIVATE_fieldOrExpression$1(e).logicalMinimum(__PRIVATE_valueToDefaultExpr$1(r),...i.map((e=>__PRIVATE_valueToDefaultExpr$1(e))))}function exists(e){return __PRIVATE_fieldOrExpression$1(e).exists()}function reverse(e){return __PRIVATE_fieldOrExpression$1(e).reverse()}function byteLength(e){return __PRIVATE_fieldOrExpression$1(e).byteLength()}function exp(e){return __PRIVATE_fieldOrExpression$1(e).exp()}function ceil(e){return __PRIVATE_fieldOrExpression$1(e).ceil()}function floor(e){return __PRIVATE_fieldOrExpression$1(e).floor()}function countDistinct(e){return __PRIVATE_fieldOrExpression$1(e).countDistinct()}function charLength(e){return __PRIVATE_fieldOrExpression$1(e).charLength()}function like(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.like(s)}function regexContains(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.regexContains(s)}function regexFind(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.regexFind(s)}function regexFindAll(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.regexFindAll(s)}function regexMatch(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.regexMatch(s)}function stringContains(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_valueToDefaultExpr$1(r);return i.stringContains(s)}function startsWith(e,r){return __PRIVATE_fieldOrExpression$1(e).startsWith(__PRIVATE_valueToDefaultExpr$1(r))}function endsWith(e,r){return __PRIVATE_fieldOrExpression$1(e).endsWith(__PRIVATE_valueToDefaultExpr$1(r))}function toLower(e){return __PRIVATE_fieldOrExpression$1(e).toLower()}function toUpper(e){return __PRIVATE_fieldOrExpression$1(e).toUpper()}function trim(e,r){return __PRIVATE_fieldOrExpression$1(e).trim(r)}function ltrim(e,r){return __PRIVATE_fieldOrExpression$1(e).ltrim(r)}function rtrim(e,r){return __PRIVATE_fieldOrExpression$1(e).rtrim(r)}function type(e){return __PRIVATE_fieldOrExpression$1(e).type()}function isType(e,r){return __PRIVATE_fieldOrExpression$1(e).isType(r)}function stringConcat(e,r,...i){return __PRIVATE_fieldOrExpression$1(e).stringConcat(__PRIVATE_valueToDefaultExpr$1(r),...i.map(__PRIVATE_valueToDefaultExpr$1))}function stringIndexOf(e,r){return __PRIVATE_fieldOrExpression$1(e).stringIndexOf(r)}function stringRepeat(e,r){return __PRIVATE_fieldOrExpression$1(e).stringRepeat(r)}function stringReplaceAll(e,r,i){return __PRIVATE_fieldOrExpression$1(e).stringReplaceAll(r,i)}function stringReplaceOne(e,r,i){return __PRIVATE_fieldOrExpression$1(e).stringReplaceOne(r,i)}function mapGet(e,r){return __PRIVATE_fieldOrExpression$1(e).mapGet(r)}function mapSet(e,r,i,...s){return __PRIVATE_fieldOrExpression$1(e).mapSet(r,i,...s)}function mapKeys(e){return __PRIVATE_fieldOrExpression$1(e).mapKeys()}function mapValues(e){return __PRIVATE_fieldOrExpression$1(e).mapValues()}function mapEntries(e){return __PRIVATE_fieldOrExpression$1(e).mapEntries()}function countAll(){return AggregateFunction._create("count",[],"count")}function count(e){return __PRIVATE_fieldOrExpression$1(e).count()}function sum(e){return __PRIVATE_fieldOrExpression$1(e).sum()}function average(e){return __PRIVATE_fieldOrExpression$1(e).average()}function minimum(e){return __PRIVATE_fieldOrExpression$1(e).minimum()}function maximum(e){return __PRIVATE_fieldOrExpression$1(e).maximum()}function first(e){return __PRIVATE_fieldOrExpression$1(e).first()}function last(e){return __PRIVATE_fieldOrExpression$1(e).last()}function arrayAgg(e){return __PRIVATE_fieldOrExpression$1(e).arrayAgg()}function arrayAggDistinct(e){return __PRIVATE_fieldOrExpression$1(e).arrayAggDistinct()}function cosineDistance(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_vectorToExpr$1(r);return i.cosineDistance(s)}function dotProduct(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_vectorToExpr$1(r);return i.dotProduct(s)}function euclideanDistance(e,r){const i=__PRIVATE_fieldOrExpression$1(e),s=__PRIVATE_vectorToExpr$1(r);return i.euclideanDistance(s)}function vectorLength(e){return __PRIVATE_fieldOrExpression$1(e).vectorLength()}function unixMicrosToTimestamp(e){return __PRIVATE_fieldOrExpression$1(e).unixMicrosToTimestamp()}function timestampToUnixMicros(e){return __PRIVATE_fieldOrExpression$1(e).timestampToUnixMicros()}function unixMillisToTimestamp(e){return __PRIVATE_fieldOrExpression$1(e).unixMillisToTimestamp()}function timestampToUnixMillis(e){return __PRIVATE_fieldOrExpression$1(e).timestampToUnixMillis()}function unixSecondsToTimestamp(e){return __PRIVATE_fieldOrExpression$1(e).unixSecondsToTimestamp()}function timestampToUnixSeconds(e){return __PRIVATE_fieldOrExpression$1(e).timestampToUnixSeconds()}function timestampAdd(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_valueToDefaultExpr$1(r),a=__PRIVATE_valueToDefaultExpr$1(i);return s.timestampAdd(o,a)}function timestampSubtract(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_valueToDefaultExpr$1(r),a=__PRIVATE_valueToDefaultExpr$1(i);return s.timestampSubtract(o,a)}function currentTimestamp(){return new FunctionExpression("current_timestamp",[],"currentTimestamp")}function and(e,r,...i){return new FunctionExpression("and",[e,r,...i],"and").asBoolean()}function or(e,r,...i){return new FunctionExpression("or",[e,r,...i],"xor").asBoolean()}function pow(e,r){return __PRIVATE_fieldOrExpression$1(e).pow(r)}function rand(){return new FunctionExpression("rand",[],"rand")}function round(e,r){return void 0===r?__PRIVATE_fieldOrExpression$1(e).round():__PRIVATE_fieldOrExpression$1(e).round(__PRIVATE_valueToDefaultExpr$1(r))}function trunc(e,r){return void 0===r?__PRIVATE_fieldOrExpression$1(e).trunc():__PRIVATE_fieldOrExpression$1(e).trunc(__PRIVATE_valueToDefaultExpr$1(r))}function collectionId(e){return __PRIVATE_fieldOrExpression$1(e).collectionId()}function length(e){return __PRIVATE_fieldOrExpression$1(e).length()}function ln(e){return __PRIVATE_fieldOrExpression$1(e).ln()}function log(e,r){return new FunctionExpression("log",[__PRIVATE_fieldOrExpression$1(e),__PRIVATE_valueToDefaultExpr$1(r)])}function sqrt(e){return __PRIVATE_fieldOrExpression$1(e).sqrt()}function stringReverse(e){return __PRIVATE_fieldOrExpression$1(e).stringReverse()}function concat(e,r,...i){return new FunctionExpression("concat",[__PRIVATE_fieldOrExpression$1(e),__PRIVATE_valueToDefaultExpr$1(r),...i.map(__PRIVATE_valueToDefaultExpr$1)])}function abs(e){return __PRIVATE_fieldOrExpression$1(e).abs()}function ifAbsent(e,r){return __PRIVATE_fieldOrExpression$1(e).ifAbsent(__PRIVATE_valueToDefaultExpr$1(r))}function join(e,r){return __PRIVATE_fieldOrExpression$1(e).join(__PRIVATE_valueToDefaultExpr$1(r))}function log10(e){return __PRIVATE_fieldOrExpression$1(e).log10()}function arraySum(e){return __PRIVATE_fieldOrExpression$1(e).arraySum()}function split(e,r){return __PRIVATE_fieldOrExpression$1(e).split(__PRIVATE_valueToDefaultExpr$1(r))}function timestampTruncate(e,r,i){const s=__PRIVATE_isString(r)?__PRIVATE_valueToDefaultExpr$1(r.toLowerCase()):r;return __PRIVATE_fieldOrExpression$1(e).timestampTruncate(s,i)}function ascending(e){return new Ordering(__PRIVATE_fieldOrExpression$1(e),"ascending","ascending")}function descending(e){return new Ordering(__PRIVATE_fieldOrExpression$1(e),"descending","descending")}class Ordering{constructor(e,r,i){this.expr=e,this.direction=r,this._methodName=i,this._protoValueType="ProtoValue"}_toProto(e){return{mapValue:{fields:{direction:__PRIVATE_toStringValue(this.direction),expression:this.expr._toProto(e)}}}}_readUserData(e){this.expr._readUserData(e)}}function __PRIVATE_isSelectable(e){const r=e;return r.selectable&&__PRIVATE_isString(r.alias)&&__PRIVATE_isExpr(r.expr)}function __PRIVATE_isOrdering(e){const r=e;return __PRIVATE_isExpr(r.expr)&&("ascending"===r.direction||"descending"===r.direction)}function __PRIVATE_isAliasedAggregate(e){const r=e;return __PRIVATE_isString(r.alias)&&r.aggregate instanceof AggregateFunction}function __PRIVATE_isExpr(e){return e instanceof Expression}function __PRIVATE_isBooleanExpr(e){return e instanceof BooleanExpression}function __PRIVATE_isField(e){return e instanceof Field}function __PRIVATE_toField(e){return __PRIVATE_isString(e)?field(e):e}function __PRIVATE_toPipelineBooleanExpr(e){if(e instanceof FieldFilter){const r=field(e.field.toString()),i=e.value;switch(e.op){case"<":return and(r.exists(),r.lessThan(Constant._fromProto(i)));case"<=":return and(r.exists(),r.lessThanOrEqual(Constant._fromProto(i)));case">":return and(r.exists(),r.greaterThan(Constant._fromProto(i)));case">=":return and(r.exists(),r.greaterThanOrEqual(Constant._fromProto(i)));case"==":return and(r.exists(),r.equal(Constant._fromProto(i)));case"!=":return r.notEqual(Constant._fromProto(i));case"array-contains":return and(r.exists(),r.arrayContains(Constant._fromProto(i)));case"in":{const e=i?.arrayValue?.values?.map((e=>Constant._fromProto(e)));return e?1===e.length?and(r.exists(),r.equal(e[0])):and(r.exists(),r.equalAny(e)):and(r.exists(),r.equalAny([]))}case"array-contains-any":{const e=i?.arrayValue?.values?.map((e=>Constant._fromProto(e)));return and(r.exists(),r.arrayContainsAny(e))}case"not-in":{const e=i?.arrayValue?.values?.map((e=>Constant._fromProto(e)));return e?1===e.length?r.notEqual(e[0]):r.notEqualAny(e):r.notEqualAny([])}default:fail(36935)}}else if(e instanceof CompositeFilter)switch(e.op){case"and":{const r=e.getFilters().map((e=>__PRIVATE_toPipelineBooleanExpr(e)));return and(r[0],r[1],...r.slice(2))}case"or":{const r=e.getFilters().map((e=>__PRIVATE_toPipelineBooleanExpr(e)));return or(r[0],r[1],...r.slice(2))}default:fail(35306)}throw new Error(`Failed to convert filter to pipeline conditions: ${e}`)}function __PRIVATE_toPipeline(e,r){let i;i=function __PRIVATE_isCollectionGroupQuery(e){return null!==e.collectionGroup}(e)?r.pipeline().collectionGroup(e.collectionGroup):function __PRIVATE_isDocumentQuery(e){return DocumentKey.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}(e)?r.pipeline().documents([doc(r,e.path.canonicalString())]):r.pipeline().collection(e.path.canonicalString());for(const r of e.filters)i=i.where(__PRIVATE_toPipelineBooleanExpr(r));const s=function __PRIVATE_queryNormalizedOrderBy(e){const r=__PRIVATE_debugCast(e);if(null===r.q){r.q=[];const e=new Set;for(const i of r.explicitOrderBy)r.q.push(i),e.add(i.field.canonicalString());const i=r.explicitOrderBy.length>0?r.explicitOrderBy[r.explicitOrderBy.length-1].dir:"asc",s=function __PRIVATE_getInequalityFilterFields(e){let r=new SortedSet(FieldPath$1.comparator);return e.filters.forEach((e=>{e.getFlattenedFilters().forEach((e=>{e.isInequality()&&(r=r.add(e.field))}))})),r}(r);s.forEach((s=>{e.has(s.canonicalString())||s.isKeyField()||r.q.push(new OrderBy(s,i))})),e.has(FieldPath$1.keyField().canonicalString())||r.q.push(new OrderBy(FieldPath$1.keyField(),i))}return r.q}(e),o=e.explicitOrderBy.map((e=>field(e.field.canonicalString()).exists()));if(o.length>0){const e=1===o.length?o[0]:and(o[0],o[1],...o.slice(2));i=i.where(e)}const a=s.map((e=>"asc"===e.dir?field(e.field.canonicalString()).ascending():field(e.field.canonicalString()).descending()));if(a.length>0)if("L"===e.limitType){const r=function __PRIVATE_reverseOrderings(e){return e.map((e=>new Ordering(e.expr,"ascending"===e.direction?"descending":"ascending",void 0)))}(a);i=i.sort(r[0],...r.slice(1)),null!==e.startAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.startAt,a,"after"))),null!==e.endAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.endAt,a,"before"))),i=i.limit(e.limit),i=i.sort(a[0],...a.slice(1))}else i=i.sort(a[0],...a.slice(1)),null!==e.startAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.startAt,a,"after"))),null!==e.endAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.endAt,a,"before"))),null!==e.limit&&(i=i.limit(e.limit));return i}function __PRIVATE_whereConditionsFromCursor(e,r,i){const s="before"===i?lessThan:greaterThan,o=e.position.map((e=>Constant._fromProto(e))),a=o.length;let _=r[a-1].expr,h=o[a-1],d=s(_,h);e.inclusive&&(d=or(d,_.equal(h)));for(let e=a-2;e>=0;e--)_=r[e].expr,h=o[e],d=or(s(_,h),and(_.equal(h),d));return d}class Stage{constructor(e){this.optionsProto=void 0,({rawOptions:this.rawOptions,...this.knownOptions}=e)}_readUserData(e){this.optionsProto=this._optionsUtil.getOptionsProto(e,this.knownOptions,this.rawOptions)}_toProto(e){return{name:this._name,options:this.optionsProto}}}class __PRIVATE_AddFields extends Stage{get _name(){return"add_fields"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.fields=e}_toProto(e){return{...super._toProto(e),args:[__PRIVATE_toMapValue(e,this.fields)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.fields,e)}}class __PRIVATE_RemoveFields extends Stage{get _name(){return"remove_fields"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.fields=e}_toProto(e){return{...super._toProto(e),args:this.fields.map((r=>r._toProto(e)))}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.fields,e)}}class __PRIVATE_Aggregate extends Stage{get _name(){return"aggregate"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r,i){super(i),this.groups=e,this.accumulators=r}_toProto(e){return{...super._toProto(e),args:[__PRIVATE_toMapValue(e,this.accumulators),__PRIVATE_toMapValue(e,this.groups)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.groups,e),__PRIVATE_readUserDataHelper(this.accumulators,e)}}class __PRIVATE_Distinct extends Stage{get _name(){return"distinct"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.groups=e}_toProto(e){return{...super._toProto(e),args:[__PRIVATE_toMapValue(e,this.groups)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.groups,e)}}class __PRIVATE_CollectionSource extends Stage{get _name(){return"collection"}get _optionsUtil(){return new OptionsUtil({forceIndex:{serverName:"force_index"}})}constructor(e,r){super(r),this.l=e.startsWith("/")?e:"/"+e}_toProto(e){return{...super._toProto(e),args:[{referenceValue:this.l}]}}_readUserData(e){super._readUserData(e)}}class __PRIVATE_CollectionGroupSource extends Stage{get _name(){return"collection_group"}get _optionsUtil(){return new OptionsUtil({forceIndex:{serverName:"force_index"}})}constructor(e,r){super(r),this.collectionId=e}_toProto(e){return{...super._toProto(e),args:[{referenceValue:""},{stringValue:this.collectionId}]}}_readUserData(e){super._readUserData(e)}}class __PRIVATE_DatabaseSource extends Stage{get _name(){return"database"}get _optionsUtil(){return new OptionsUtil({})}_toProto(e){return{...super._toProto(e)}}_readUserData(e){super._readUserData(e)}}class __PRIVATE_DocumentsSource extends Stage{get _name(){return"documents"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.p=e.map((e=>e.startsWith("/")?e:"/"+e))}_toProto(e){return{...super._toProto(e),args:this.p.map((e=>({referenceValue:e})))}}_readUserData(e){super._readUserData(e)}}class __PRIVATE_Where extends Stage{get _name(){return"where"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.condition=e}_toProto(e){return{...super._toProto(e),args:[this.condition._toProto(e)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.condition,e)}}class __PRIVATE_FindNearest extends Stage{get _name(){return"find_nearest"}get _optionsUtil(){return new OptionsUtil({limit:{serverName:"limit"},distanceField:{serverName:"distance_field"}})}constructor(e,r,i,s){super(s),this.vectorValue=e,this.field=r,this.distanceMeasure=i}_toProto(e){return{...super._toProto(e),args:[this.field._toProto(e),this.vectorValue._toProto(e),__PRIVATE_toStringValue(this.distanceMeasure)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.vectorValue,e),__PRIVATE_readUserDataHelper(this.field,e)}}class __PRIVATE_Limit extends Stage{get _name(){return"limit"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){__PRIVATE_hardAssert(!isNaN(e)&&e!==1/0&&e!==-1/0,34860),super(r),this.limit=e}_toProto(e){return{...super._toProto(e),args:[toNumber(e,this.limit)]}}}class __PRIVATE_Offset extends Stage{get _name(){return"offset"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.offset=e}_toProto(e){return{...super._toProto(e),args:[toNumber(e,this.offset)]}}}class __PRIVATE_Select extends Stage{get _name(){return"select"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.selections=e}_toProto(e){return{...super._toProto(e),args:[__PRIVATE_toMapValue(e,this.selections)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.selections,e)}}class __PRIVATE_Sort extends Stage{get _name(){return"sort"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.orderings=e}_toProto(e){return{...super._toProto(e),args:this.orderings.map((r=>r._toProto(e)))}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.orderings,e)}}class __PRIVATE_Sample extends Stage{get _name(){return"sample"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r,i){super(i),this.rate=e,this.mode=r}_toProto(e){return{...super._toProto(e),args:[toNumber(e,this.rate),__PRIVATE_toStringValue(this.mode)]}}_readUserData(e){super._readUserData(e)}}class __PRIVATE_Union extends Stage{get _name(){return"union"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.other=e}_toProto(e){return{...super._toProto(e),args:[__PRIVATE_toPipelineValue(this.other._toProto(e))]}}_readUserData(e){super._readUserData(e)}}class __PRIVATE_Unnest extends Stage{get _name(){return"unnest"}get _optionsUtil(){return new OptionsUtil({indexField:{serverName:"index_field"}})}constructor(e,r,i){super(i),this.alias=e,this.expr=r}_toProto(e){return{...super._toProto(e),args:[this.expr._toProto(e),field(this.alias)._toProto(e)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.expr,e)}}class __PRIVATE_Replace extends Stage{get _name(){return"replace_with"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.map=e}_toProto(e){return{...super._toProto(e),args:[this.map._toProto(e),__PRIVATE_toStringValue(__PRIVATE_Replace.T)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.map,e)}}__PRIVATE_Replace.T="full_replace";class __PRIVATE_RawStage extends Stage{constructor(e,r,i){super({rawOptions:i}),this.name=e,this.params=r}_toProto(e){return{name:this.name,args:this.params.map((r=>r._toProto(e))),options:this.optionsProto}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.params,e)}get _name(){return this.name}get _optionsUtil(){return new OptionsUtil({})}}function __PRIVATE_readUserDataHelper(e,r){return function __PRIVATE_isUserData(e){return"function"==typeof e._readUserData}(e)?e._readUserData(r):(Array.isArray(e),e.forEach((e=>e._readUserData(r)))),e}class PipelineSource{constructor(e,r,i){this.databaseId=e,this.userDataReader=r,this._createPipeline=i}collection(e){const r=__PRIVATE_isString(e)||__PRIVATE_isCollectionReference(e)?{}:e,i=__PRIVATE_isString(e)||__PRIVATE_isCollectionReference(e)?e:e.collection;__PRIVATE_isCollectionReference(i)&&this._validateReference(i);const s=__PRIVATE_isString(i)?i:i.path,o=new __PRIVATE_CollectionSource(s,r),a=this.userDataReader.createContext(3,"collection");return o._readUserData(a),this._createPipeline([o])}collectionGroup(e){let r,i;__PRIVATE_isString(e)?(r=e,i={}):({collectionId:r,...i}=e);const s=new __PRIVATE_CollectionGroupSource(r,i),o=this.userDataReader.createContext(3,"collectionGroup");return s._readUserData(o),this._createPipeline([s])}database(e){const r=new __PRIVATE_DatabaseSource(e=e??{}),i=this.userDataReader.createContext(3,"database");return r._readUserData(i),this._createPipeline([r])}documents(e){let r,i;Array.isArray(e)?(i=e,r={}):({docs:i,...r}=e),i.filter((e=>e instanceof DocumentReference)).forEach((e=>this._validateReference(e)));const s=i.map((e=>__PRIVATE_isString(e)?e:e.path)),o=new __PRIVATE_DocumentsSource(s,r),a=this.userDataReader.createContext(3,"documents");return o._readUserData(a),this._createPipeline([o])}createFrom(e){return __PRIVATE_toPipeline(e._query,e.firestore)}_validateReference(e){const r=e.firestore._databaseId;if(!r.isEqual(this.databaseId))throw new FirestoreError(T,`Invalid ${e instanceof CollectionReference?"CollectionReference":"DocumentReference"}. The project ID ("${r.projectId}") or the database ("${r.database}") does not match the project ID ("${this.databaseId.projectId}") and database ("${this.databaseId.database}") of the target database of this Pipeline.`)}}class PipelineSnapshot{constructor(e,r,i){this._pipeline=e,this._executionTime=i,this._results=r}get results(){return this._results}get executionTime(){if(void 0===this._executionTime)throw new Error("'executionTime' is expected to exist, but it is undefined");return this._executionTime}}class PipelineResult{constructor(e,r,i,s,o){this._ref=i,this._userDataWriter=e,this._createTime=s,this._updateTime=o,this._fields=r}get ref(){return this._ref}get id(){return this._ref?.id}get createTime(){return this._createTime}get updateTime(){return this._updateTime}data(){return this._userDataWriter.convertValue(this._fields.value)}_fieldsProto(){return this._fields.clone().value.mapValue.fields}get(e){if(void 0===this._fields)return;__PRIVATE_isField(e)&&(e=e.fieldName);const r=this._fields.field(__PRIVATE_fieldPathFromArgument("DocumentSnapshot.get",e));return null!==r?this._userDataWriter.convertValue(r):void 0}}function __PRIVATE_selectablesToMap(e){const r=new Map;for(const i of e){let e,s;if("string"==typeof i?(e=i,s=field(i)):i instanceof Field||i instanceof AliasedExpression?(e=i.alias,s=i.expr):fail(21273,{selectable:i}),void 0!==r.get(e))throw new FirestoreError("invalid-argument",`Duplicate alias or field '${e}'`);r.set(e,s)}return r}class Pipeline{constructor(e,r,i,s){this._db=e,this.userDataReader=r,this._userDataWriter=i,this.stages=s}addFields(e,...r){let i,s;__PRIVATE_isSelectable(e)?(i=[e,...r],s={}):({fields:i,...s}=e);const o=__PRIVATE_selectablesToMap(i),a=new __PRIVATE_AddFields(o,s),_=this.userDataReader.createContext(3,"addFields");return a._readUserData(_),this._addStage(a)}removeFields(e,...r){const i=__PRIVATE_isField(e)||__PRIVATE_isString(e)?{}:e,s=(__PRIVATE_isField(e)||__PRIVATE_isString(e)?[e,...r]:e.fields).map((e=>__PRIVATE_isString(e)?field(e):e)),o=new __PRIVATE_RemoveFields(s,i);return o._readUserData(this.userDataReader.createContext(3,"removeFields")),this._addStage(o)}select(e,...r){const i=__PRIVATE_isSelectable(e)||__PRIVATE_isString(e)?{}:e,s=__PRIVATE_selectablesToMap(__PRIVATE_isSelectable(e)||__PRIVATE_isString(e)?[e,...r]:e.selections),o=new __PRIVATE_Select(s,i),a=this.userDataReader.createContext(3,"select");return o._readUserData(a),this._addStage(o)}where(e){const r=__PRIVATE_isBooleanExpr(e)?{}:e,i=__PRIVATE_isBooleanExpr(e)?e:e.condition,s=new __PRIVATE_Where(i,r),o=this.userDataReader.createContext(3,"where");return s._readUserData(o),this._addStage(s)}offset(e){let r,i;__PRIVATE_isNumber(e)?(r={},i=e):(r=e,i=e.offset);const s=new __PRIVATE_Offset(i,r),o=this.userDataReader.createContext(3,"offset");return s._readUserData(o),this._addStage(s)}limit(e){const r=__PRIVATE_isNumber(e)?{}:e,i=__PRIVATE_isNumber(e)?e:e.limit,s=new __PRIVATE_Limit(i,r),o=this.userDataReader.createContext(3,"limit");return s._readUserData(o),this._addStage(s)}distinct(e,...r){const i=__PRIVATE_isString(e)||__PRIVATE_isSelectable(e)?{}:e,s=__PRIVATE_selectablesToMap(__PRIVATE_isString(e)||__PRIVATE_isSelectable(e)?[e,...r]:e.groups),o=new __PRIVATE_Distinct(s,i),a=this.userDataReader.createContext(3,"distinct");return o._readUserData(a),this._addStage(o)}aggregate(e,...r){const i=__PRIVATE_isAliasedAggregate(e)?{}:e,s=__PRIVATE_isAliasedAggregate(e)?[e,...r]:e.accumulators,o=__PRIVATE_isAliasedAggregate(e)?[]:e.groups??[],a=function __PRIVATE_aliasedAggregateToMap(e){return e.reduce(((e,r)=>{if(void 0!==e.get(r.alias))throw new FirestoreError("invalid-argument",`Duplicate alias or field '${r.alias}'`);return e.set(r.alias,r.aggregate),e}),new Map)}(s),_=__PRIVATE_selectablesToMap(o),h=new __PRIVATE_Aggregate(_,a,i),d=this.userDataReader.createContext(3,"aggregate");return h._readUserData(d),this._addStage(h)}findNearest(e){const r=__PRIVATE_toField(e.field),i=function __PRIVATE_vectorToExpr(e){if(e instanceof Expression)return e;if(e instanceof VectorValue)return constant(e);if(Array.isArray(e))return constant(vector(e));throw new Error("Unsupported value: "+typeof e)}(e.vectorValue),s={distanceField:e.distanceField?__PRIVATE_toField(e.distanceField):void 0,limit:e.limit,rawOptions:e.rawOptions},o=new __PRIVATE_FindNearest(i,r,e.distanceMeasure,s),a=this.userDataReader.createContext(3,"addFields");return o._readUserData(a),this._addStage(o)}sort(e,...r){const i=__PRIVATE_isOrdering(e)?{}:e,s=__PRIVATE_isOrdering(e)?[e,...r]:e.orderings,o=new __PRIVATE_Sort(s,i),a=this.userDataReader.createContext(3,"sort");return o._readUserData(a),this._addStage(o)}replaceWith(e){const r=__PRIVATE_isString(e)||__PRIVATE_isExpr(e)?{}:e,i=function __PRIVATE_fieldOrExpression(e){return __PRIVATE_isString(e)?field(e):function __PRIVATE_valueToDefaultExpr(e){let r;return __PRIVATE_isFirestoreValue(e)?constant(e):e instanceof Expression?e:(r=__PRIVATE_isPlainObject(e)?map(e):e instanceof Array?array(e):__PRIVATE__constant(e,void 0),r)}(e)}(__PRIVATE_isString(e)||__PRIVATE_isExpr(e)?e:e.map),s=new __PRIVATE_Replace(i,r),o=this.userDataReader.createContext(3,"replaceWith");return s._readUserData(o),this._addStage(s)}sample(e){const r=__PRIVATE_isNumber(e)?{}:e;let i,s;__PRIVATE_isNumber(e)?(i=e,s="documents"):__PRIVATE_isNumber(e.documents)?(i=e.documents,s="documents"):(i=e.percentage,s="percent");const o=new __PRIVATE_Sample(i,s,r),a=this.userDataReader.createContext(3,"sample");return o._readUserData(a),this._addStage(o)}union(e){let r,i;!function __PRIVATE_isPipeline(e){return e instanceof Pipeline}(e)?({other:i,...r}=e):(r={},i=e);const s=new __PRIVATE_Union(i,r),o=this.userDataReader.createContext(3,"union");return s._readUserData(o),this._addStage(s)}unnest(e,r){let i,s,o;__PRIVATE_isSelectable(e)?(i={},s=e,o=r):({selectable:s,indexField:o,...i}=e);const a=s.alias,_=s.expr;__PRIVATE_isString(o)&&(i.indexField=_field(o,"unnest"));const h=new __PRIVATE_Unnest(a,_,i),d=this.userDataReader.createContext(3,"unnest");return h._readUserData(d),this._addStage(h)}rawStage(e,r,i){const s=r.map((e=>e instanceof Expression||e instanceof AggregateFunction?e:__PRIVATE_isPlainObject(e)?function __PRIVATE__mapValue(e){const r=new Map;for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)){const s=e[i];r.set(i,__PRIVATE_valueToDefaultExpr$1(s))}return new MapValue(r,void 0)}(e):__PRIVATE__constant(e,"rawStage"))),o=new __PRIVATE_RawStage(e,s,i??{}),a=this.userDataReader.createContext(3,"rawStage");return o._readUserData(a),this._addStage(o)}_toProto(e){return{stages:this.stages.map((r=>r._toProto(e)))}}_addStage(e){const r=this.stages.map((e=>e));return r.push(e),this.newPipeline(this._db,this.userDataReader,this._userDataWriter,r)}newPipeline(e,r,i,s){return new Pipeline(e,r,i,s)}}function execute(e){const r=function __PRIVATE_getDatastore(e){if(e._terminated)throw new FirestoreError(S,"The client has already been terminated.");if(!ue.has(e)){__PRIVATE_logDebug(ae,"Initializing Datastore");const r=function __PRIVATE_newConnection(e){return new __PRIVATE_FetchConnection(e)}(function __PRIVATE_makeDatabaseInfo(e,r,i,s,o){return new DatabaseInfo(e,r,i,o.host,o.ssl,o.experimentalForceLongPolling,o.experimentalAutoDetectLongPolling,__PRIVATE_cloneLongPollingOptions(o.experimentalLongPollingOptions),o.useFetchStreams,o.isUsingEmulator,s)}(e._databaseId,e.app.options.appId||"",e._persistenceKey,e.app.options.apiKey,e._freezeSettings())),i=__PRIVATE_newSerializer(e._databaseId),s=function __PRIVATE_newDatastore(e,r,i,s){return new __PRIVATE_DatastoreImpl(e,r,i,s)}(e._authCredentials,e._appCheckCredentials,r,i);ue.set(e,s)}return ue.get(e)}(e._db),i=new UserDataReader(e._db._databaseId,!0).createContext(3,"execute"),s=new __PRIVATE_StructuredPipelineOptions({},{});s._readUserData(i);return async function __PRIVATE_invokeExecutePipeline(e,r){const i=__PRIVATE_debugCast(e),s={database:(o=i.serializer,new ResourcePath(["projects",o.databaseId.projectId,"databases",o.databaseId.database]).canonicalString()),structuredPipeline:r._toProto(i.serializer)};var o;const a=await i.D("ExecutePipeline",i.serializer.databaseId,ResourcePath.emptyPath(),s),_=[];return a.forEach((e=>{if(e.results&&0!==e.results.length)return e.results.forEach((r=>_.push(__PRIVATE_fromPipelineResponse(i.serializer,e,r))));_.push(__PRIVATE_fromPipelineResponse(i.serializer,e))})),_}(r,new StructuredPipeline(e,s)).then((r=>{const i=r.length>0?r[0].executionTime?.toTimestamp():void 0,s=r.filter((e=>!!e.fields)).map((r=>new PipelineResult(e._userDataWriter,r.fields,r.key?.path?new DocumentReference(e._db,null,r.key):void 0,r.createTime?.toTimestamp(),r.updateTime?.toTimestamp())));return new PipelineSnapshot(e,s,i)}))}Firestore.prototype.pipeline=function(){const e=new __PRIVATE_LiteUserDataWriter(this),r=function __PRIVATE_newUserDataReader(e){const r=e._freezeSettings(),i=__PRIVATE_newSerializer(e._databaseId);return new UserDataReader(e._databaseId,!!r.ignoreUndefinedProperties,i)}(this);return new PipelineSource(this._databaseId,r,(i=>new Pipeline(this,r,e,i)))};export{AggregateFunction,AliasedAggregate,AliasedExpression,BooleanExpression,Constant,Expression,Field,FunctionExpression,Ordering,Pipeline,PipelineResult,PipelineSnapshot,PipelineSource,abs,add,and,array,arrayAgg,arrayAggDistinct,arrayConcat,arrayContains,arrayContainsAll,arrayContainsAny,arrayGet,arrayLength,arraySum,ascending,average,byteLength,ceil,charLength,collectionId,concat,conditional,constant,cosineDistance,count,countAll,countDistinct,countIf,currentTimestamp,descending,divide,documentId,dotProduct,endsWith,equal,equalAny,euclideanDistance,execute,exists,exp,field,first,floor,greaterThan,greaterThanOrEqual,ifAbsent,ifError,isAbsent,isError,isType,join,last,length,lessThan,lessThanOrEqual,like,ln,log,log10,logicalMaximum,logicalMinimum,ltrim,map,mapEntries,mapGet,mapKeys,mapMerge,mapRemove,mapSet,mapValues,maximum,minimum,mod,multiply,not,notEqual,notEqualAny,or,pow,rand,regexContains,regexFind,regexFindAll,regexMatch,reverse,round,rtrim,split,sqrt,startsWith,stringConcat,stringContains,stringIndexOf,stringRepeat,stringReplaceAll,stringReplaceOne,stringReverse,substring,subtract,sum,timestampAdd,timestampSubtract,timestampToUnixMicros,timestampToUnixMillis,timestampToUnixSeconds,timestampTruncate,toLower,toUpper,trim,trunc,type,unixMicrosToTimestamp,unixMillisToTimestamp,unixSecondsToTimestamp,vectorLength,xor};
|
|
|
|
//# sourceMappingURL=firebase-firestore-lite-pipelines.js.map
|