firebase 12.17.0 → 12.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- import"https://www.gstatic.com/firebasejs/12.17.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(e,...r){const i=r[0]||{},s=`${this.service}/${e}`,o=this.errors[e],h=o?function replaceTemplate(e,r){try{let i=0,s="";for(;i<e.length;){const o=e.indexOf("{$",i);if(-1===o){s+=e.substring(i);break}const h=e.indexOf("}",o+2);if(-1===h){s+=e.substring(i);break}const E=e.substring(o+2,h),T=r[E];s+=e.substring(i,o)+(null!=T?String(T):`<${E}?>`),i=h+1}return s}catch(r){return e}}(o,i):"Error",E=`${this.serviceName}: ${h} (${s}).`;return new FirebaseError(s,E,i)}}function getModularInstance(e){return e&&e._delegate?e._delegate:e}var e;!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"}(e||(e={}));const r={debug:e.DEBUG,verbose:e.VERBOSE,info:e.INFO,warn:e.WARN,error:e.ERROR,silent:e.SILENT},i=e.INFO,s={[e.DEBUG]:"log",[e.VERBOSE]:"log",[e.INFO]:"info",[e.WARN]:"warn",[e.ERROR]:"error"},defaultLogHandler=(e,r,...i)=>{if(r<e.logLevel)return;const o=(new Date).toISOString(),h=s[r];if(!h)throw new Error(`Attempted to log a message with an invalid logType (value: ${r})`);console[h](`[${o}] ${e.name}:`,...i)};var o,h="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 h,E=e.g[3];h=r+(E^i&(o^E))+s[0]+3614090360&4294967295,h=E+(o^(r=i+(h<<7&4294967295|h>>>25))&(i^o))+s[1]+3905402710&4294967295,E=r+(h<<12&4294967295|h>>>20),h=o+(i^E&(r^i))+s[2]+606105819&4294967295,h=i+(r^(o=E+(h<<17&4294967295|h>>>15))&(E^r))+s[3]+3250441966&4294967295,h=r+(E^(i=o+(h<<22&4294967295|h>>>10))&(o^E))+s[4]+4118548399&4294967295,h=E+(o^(r=i+(h<<7&4294967295|h>>>25))&(i^o))+s[5]+1200080426&4294967295,E=r+(h<<12&4294967295|h>>>20),h=o+(i^E&(r^i))+s[6]+2821735955&4294967295,h=i+(r^(o=E+(h<<17&4294967295|h>>>15))&(E^r))+s[7]+4249261313&4294967295,h=r+(E^(i=o+(h<<22&4294967295|h>>>10))&(o^E))+s[8]+1770035416&4294967295,h=E+(o^(r=i+(h<<7&4294967295|h>>>25))&(i^o))+s[9]+2336552879&4294967295,E=r+(h<<12&4294967295|h>>>20),h=o+(i^E&(r^i))+s[10]+4294925233&4294967295,h=i+(r^(o=E+(h<<17&4294967295|h>>>15))&(E^r))+s[11]+2304563134&4294967295,h=r+(E^(i=o+(h<<22&4294967295|h>>>10))&(o^E))+s[12]+1804603682&4294967295,h=E+(o^(r=i+(h<<7&4294967295|h>>>25))&(i^o))+s[13]+4254626195&4294967295,E=r+(h<<12&4294967295|h>>>20),h=o+(i^E&(r^i))+s[14]+2792965006&4294967295,h=i+(r^(o=E+(h<<17&4294967295|h>>>15))&(E^r))+s[15]+1236535329&4294967295,h=r+(o^E&((i=o+(h<<22&4294967295|h>>>10))^o))+s[1]+4129170786&4294967295,h=E+(i^o&((r=i+(h<<5&4294967295|h>>>27))^i))+s[6]+3225465664&4294967295,E=r+(h<<9&4294967295|h>>>23),h=o+(r^i&(E^r))+s[11]+643717713&4294967295,h=i+(E^r&((o=E+(h<<14&4294967295|h>>>18))^E))+s[0]+3921069994&4294967295,h=r+(o^E&((i=o+(h<<20&4294967295|h>>>12))^o))+s[5]+3593408605&4294967295,h=E+(i^o&((r=i+(h<<5&4294967295|h>>>27))^i))+s[10]+38016083&4294967295,E=r+(h<<9&4294967295|h>>>23),h=o+(r^i&(E^r))+s[15]+3634488961&4294967295,h=i+(E^r&((o=E+(h<<14&4294967295|h>>>18))^E))+s[4]+3889429448&4294967295,h=r+(o^E&((i=o+(h<<20&4294967295|h>>>12))^o))+s[9]+568446438&4294967295,h=E+(i^o&((r=i+(h<<5&4294967295|h>>>27))^i))+s[14]+3275163606&4294967295,E=r+(h<<9&4294967295|h>>>23),h=o+(r^i&(E^r))+s[3]+4107603335&4294967295,h=i+(E^r&((o=E+(h<<14&4294967295|h>>>18))^E))+s[8]+1163531501&4294967295,h=r+(o^E&((i=o+(h<<20&4294967295|h>>>12))^o))+s[13]+2850285829&4294967295,h=E+(i^o&((r=i+(h<<5&4294967295|h>>>27))^i))+s[2]+4243563512&4294967295,E=r+(h<<9&4294967295|h>>>23),h=o+(r^i&(E^r))+s[7]+1735328473&4294967295,h=i+(E^r&((o=E+(h<<14&4294967295|h>>>18))^E))+s[12]+2368359562&4294967295,h=r+((i=o+(h<<20&4294967295|h>>>12))^o^E)+s[5]+4294588738&4294967295,h=E+((r=i+(h<<4&4294967295|h>>>28))^i^o)+s[8]+2272392833&4294967295,E=r+(h<<11&4294967295|h>>>21),h=o+(E^r^i)+s[11]+1839030562&4294967295,h=i+((o=E+(h<<16&4294967295|h>>>16))^E^r)+s[14]+4259657740&4294967295,h=r+((i=o+(h<<23&4294967295|h>>>9))^o^E)+s[1]+2763975236&4294967295,h=E+((r=i+(h<<4&4294967295|h>>>28))^i^o)+s[4]+1272893353&4294967295,E=r+(h<<11&4294967295|h>>>21),h=o+(E^r^i)+s[7]+4139469664&4294967295,h=i+((o=E+(h<<16&4294967295|h>>>16))^E^r)+s[10]+3200236656&4294967295,h=r+((i=o+(h<<23&4294967295|h>>>9))^o^E)+s[13]+681279174&4294967295,h=E+((r=i+(h<<4&4294967295|h>>>28))^i^o)+s[0]+3936430074&4294967295,E=r+(h<<11&4294967295|h>>>21),h=o+(E^r^i)+s[3]+3572445317&4294967295,h=i+((o=E+(h<<16&4294967295|h>>>16))^E^r)+s[6]+76029189&4294967295,h=r+((i=o+(h<<23&4294967295|h>>>9))^o^E)+s[9]+3654602809&4294967295,h=E+((r=i+(h<<4&4294967295|h>>>28))^i^o)+s[12]+3873151461&4294967295,E=r+(h<<11&4294967295|h>>>21),h=o+(E^r^i)+s[15]+530742520&4294967295,h=i+((o=E+(h<<16&4294967295|h>>>16))^E^r)+s[2]+3299628645&4294967295,h=r+(o^((i=o+(h<<23&4294967295|h>>>9))|~E))+s[0]+4096336452&4294967295,h=E+(i^((r=i+(h<<6&4294967295|h>>>26))|~o))+s[7]+1126891415&4294967295,E=r+(h<<10&4294967295|h>>>22),h=o+(r^(E|~i))+s[14]+2878612391&4294967295,h=i+(E^((o=E+(h<<15&4294967295|h>>>17))|~r))+s[5]+4237533241&4294967295,h=r+(o^((i=o+(h<<21&4294967295|h>>>11))|~E))+s[12]+1700485571&4294967295,h=E+(i^((r=i+(h<<6&4294967295|h>>>26))|~o))+s[3]+2399980690&4294967295,E=r+(h<<10&4294967295|h>>>22),h=o+(r^(E|~i))+s[10]+4293915773&4294967295,h=i+(E^((o=E+(h<<15&4294967295|h>>>17))|~r))+s[1]+2240044497&4294967295,h=r+(o^((i=o+(h<<21&4294967295|h>>>11))|~E))+s[8]+1873313359&4294967295,h=E+(i^((r=i+(h<<6&4294967295|h>>>26))|~o))+s[15]+4264355552&4294967295,E=r+(h<<10&4294967295|h>>>22),h=o+(r^(E|~i))+s[6]+2734768916&4294967295,h=i+(E^((o=E+(h<<15&4294967295|h>>>17))|~r))+s[13]+1309151649&4294967295,h=r+(o^((i=o+(h<<21&4294967295|h>>>11))|~E))+s[4]+4149444226&4294967295,h=E+(i^((r=i+(h<<6&4294967295|h>>>26))|~o))+s[11]+3174756917&4294967295,E=r+(h<<10&4294967295|h>>>22),h=o+(r^(E|~i))+s[2]+718787259&4294967295,h=i+(E^((o=E+(h<<15&4294967295|h>>>17))|~r))+s[9]+3951481745&4294967295,e.g[0]=e.g[0]+r&4294967295,e.g[1]=e.g[1]+(o+(h<<21&4294967295|h>>>11))&4294967295,e.g[2]=e.g[2]+o&4294967295,e.g[3]=e.g[3]+E&4294967295}function t(e,r){this.h=r;const i=[];let s=!0;for(let o=e.length-1;o>=0;o--){const h=0|e[o];s&&h==r||(i[o]=h,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),h=2;h<arguments.length;h++)o[h-2]=arguments[h];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,h=0;for(;h<r;){if(0==o)for(;h<=i;)n(this,e,h),h+=this.blockSize;if("string"==typeof e){for(;h<r;)if(s[o++]=e.charCodeAt(h++),o==this.blockSize){n(this,s),o=0;break}}else for(;h<r;)if(s[o++]=e[h++],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),h=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,h=r;h.l(e)<=0;)o=I(o),h=I(h);var E=J(o,1),T=J(h,1);for(h=J(h,2),o=J(o,2);!C(h);){var P=T.add(h);P.l(e)<=0&&(E=E.add(o),T=P),h=J(h,1),o=J(o,1)}return r=F(e,E.j(r)),new H(E,r)}for(E=i;e.l(r)>=0;){for(o=Math.max(1,Math.floor(e.m()/r.m())),h=(h=Math.ceil(Math.log(o)/Math.LN2))<=48?1:Math.pow(2,h-48),P=(T=v(o)).j(r);B(P)||P.l(e)>0;)P=(T=v(o-=h)).j(r);C(T)&&(T=s),E=E.add(T),e=F(e,P)}return new H(E,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 h=0;h<s;h++)o[h]=r>0?e.i(h+i)>>>r|e.i(h+i+1)<<32-r:e.i(h+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 h=(((i=F(i,o.j(r))).g.length>0?i.g[0]:i.h)>>>0).toString(e);if(C(i=o))return h+s;for(;h.length<6;)h="0"+h;s=h+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)),h=(r>>>16)+(this.i(o)>>>16)+(e.i(o)>>>16);s=h>>>16,r&=65535,h&=65535,i[o]=h<<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(h)<0&&e.l(h)<0)return v(this.m()*e.m());const r=this.g.length+e.g.length,s=[];for(var o=0;o<2*r;o++)s[o]=0;for(o=0;o<this.g.length;o++)for(let r=0;r<e.g.length;r++){const i=this.i(o)>>>16,h=65535&this.i(o),E=e.i(r)>>>16,T=65535&e.i(r);s[2*o+2*r]+=h*T,G(s,2*o+2*r),s[2*o+2*r+1]+=i*T,G(s,2*o+2*r+1),s[2*o+2*r+1]+=h*E,G(s,2*o+2*r+1),s[2*o+2*r+2]+=i*E,G(s,2*o+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 h=Math.min(8,e.length-i);const E=parseInt(e.substring(i,i+h),r);h<8?(h=v(Math.pow(r,h)),o=o.j(h).add(v(E))):(o=o.j(s),o=o.add(v(E)))}return o},o=t}).apply(void 0!==h?h:"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 E="12.17.0";const T=new class Logger{constructor(e){this.name=e,this._logLevel=i,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(r){if(!(r in e))throw new TypeError(`Invalid value "${r}" assigned to \`logLevel\``);this._logLevel=r}setLogLevel(e){this._logLevel="string"==typeof e?r[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(...r){this._userLogHandler&&this._userLogHandler(this,e.DEBUG,...r),this._logHandler(this,e.DEBUG,...r)}log(...r){this._userLogHandler&&this._userLogHandler(this,e.VERBOSE,...r),this._logHandler(this,e.VERBOSE,...r)}info(...r){this._userLogHandler&&this._userLogHandler(this,e.INFO,...r),this._logHandler(this,e.INFO,...r)}warn(...r){this._userLogHandler&&this._userLogHandler(this,e.WARN,...r),this._logHandler(this,e.WARN,...r)}error(...r){this._userLogHandler&&this._userLogHandler(this,e.ERROR,...r),this._logHandler(this,e.ERROR,...r)}}("@firebase/firestore");function a(r,...i){if(T.logLevel<=e.DEBUG){const e=i.map(__PRIVATE_argToString);T.debug(`Firestore (${E}): ${r}`,...e)}}function st(r,...i){if(T.logLevel<=e.ERROR){const e=i.map(__PRIVATE_argToString);T.error(`Firestore (${E}): ${r}`,...e)}}function __PRIVATE_logWarn(r,...i){if(T.logLevel<=e.WARN){const e=i.map(__PRIVATE_argToString);T.warn(`Firestore (${E}): ${r}`,...e)}}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 z(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 (${E}) INTERNAL ASSERTION FAILED: ${r} (ID: ${e.toString(16)})`;if(void 0!==i)try{s+=" CONTEXT: "+JSON.stringify(i)}catch(e){s+=" CONTEXT: "+i}throw st(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 P="ok",V="cancelled",R="unknown",w="invalid-argument",S="deadline-exceeded",b="not-found",O="permission-denied",$="unauthenticated",N="resource-exhausted",U="failed-precondition",L="aborted",M="out-of-range",q="unimplemented",W="internal",K="unavailable";class k 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.ee=e,this.te=r,this.re=i,this.type="FirstParty",this.user=User.FIRST_PARTY,this.ne=new Map}ie(){return this.re?this.re():null}get headers(){this.ne.set("X-Goog-AuthUser",this.ee);const e=this.ie();return e&&this.ne.set("Authorization",e),this.te&&this.ne.set("X-Goog-Iam-Authorization-Token",this.te),this.ne}}class __PRIVATE_FirstPartyAuthCredentialsProvider{constructor(e,r,i){this.ee=e,this.te=r,this.re=i}getToken(){return Promise.resolve(new __PRIVATE_FirstPartyToken(this.ee,this.te,this.re))}start(e,r){e.enqueueRetryable((()=>r(User.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class DatabaseInfo{constructor(e,r,i,s,o,h,E,T,P,V,R,w,S){this.databaseId=e,this.appId=r,this.persistenceKey=i,this.host=s,this.ssl=o,this.forceLongPolling=h,this.autoDetectLongPolling=E,this.longPollingOptions=T,this.useFetchStreams=P,this.isUsingEmulator=V,this.apiKey=R,this._customHeaders=w,this.grpcFlowControlWindow=S}}const Q="(default)";class DatabaseId{constructor(e,r){this.projectId=e,this.database=r||Q}static empty(){return new DatabaseId("","")}get isDefaultDatabase(){return this.database===Q}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 Y=55296,X=57343;function __PRIVATE_isSurrogate(e){const r=e.charCodeAt(0);return r>=Y&&r<=X}const Z="__name__";class BasePath{constructor(e,r,i){void 0===r?r=0:r>e.length&&z(637,{offset:r,range:e.length}),void 0===i?i=e.length-r:i>e.length-r&&z(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 o.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()}toStringWithLeadingSlash(){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 k(w,`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 ee=/^[_a-zA-Z][_a-zA-Z0-9]*$/;let te=class FieldPath extends BasePath{construct(e,r,i){return new FieldPath(e,r,i)}static isValidIdentifier(e){return ee.test(e)}canonicalString(){return this.toArray().map((e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),FieldPath.isValidIdentifier(e)||(e="`"+e+"`"),e))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Z}static keyField(){return new FieldPath([Z])}static fromServerFormat(e){const r=[];let i="",s=0;const __PRIVATE_addCurrentSegment=()=>{if(0===i.length)throw new k(w,`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 k(w,"Path has trailing escape character: "+e);const r=e[s+1];if("\\"!==r&&"."!==r&&"`"!==r)throw new k(w,"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 k(w,"Unterminated ` in path: "+e);return new FieldPath(r)}static emptyPath(){return new FieldPath([])}};class x{constructor(e){this.path=e}static fromPath(e){return new x(ResourcePath.fromString(e))}static fromName(e){return new x(ResourcePath.fromString(e).popFirst(5))}static empty(){return new x(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 x(new ResourcePath(e.slice()))}}function __PRIVATE_validateDocumentPath(e){if(!x.isDocumentKey(e))throw new k(w,`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":z(12329,{type:typeof e})}function __PRIVATE_cloneLongPollingOptions(e){const r={};return void 0!==e.timeoutSeconds&&(r.timeoutSeconds=e.timeoutSeconds),r}let re=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 ne="RestConnection",ie={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery",ExecutePipeline:"executePipeline"};class __PRIVATE_RestConnection{get ae(){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.ue=r+"://"+e.host,this._e=`projects/${i}/databases/${s}`,this.ce=this.databaseId.database===Q?`project_id=${i}`:`project_id=${i}&database_id=${s}`}le(e,r,i,s,o){const h=function __PRIVATE_generateUniqueDebugId(){return null===re?re=function __PRIVATE_generateInitialUniqueDebugId(){return 268435456+Math.round(2147483648*Math.random())}():re++,"0x"+re.toString(16)}(),E=this.he(e,r.toUriEncodedString());a(ne,`Sending RPC '${e}' ${h}:`,E,i);const T={"google-cloud-resource-prefix":this._e,"x-goog-request-params":this.ce};this.fe(T,s,o);const{host:P}=new URL(E),V=function isCloudWorkstation(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}(P);return this.me(e,E,T,i,V).then((r=>(a(ne,`Received RPC '${e}' ${h}: `,r),r)),(r=>{throw __PRIVATE_logWarn(ne,`RPC '${e}' ${h} failed with error: `,r,"url: ",E,"request:",i),r}))}de(e,r,i,s,o,h){return this.le(e,r,i,s,o)}fe(e,r,i){if(e["X-Goog-Api-Client"]=function __PRIVATE_getGoogApiClientValue(){return"gl-js/ fire/"+E}(),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)),this.databaseInfo._customHeaders)for(const r of Object.keys(this.databaseInfo._customHeaders))e[r]=this.databaseInfo._customHeaders[r]}he(e,r){const i=ie[e];let s=`${this.ue}/v1/${r}:${i}`;return this.databaseInfo.apiKey&&(s=`${s}?key=${encodeURIComponent(this.databaseInfo.apiKey)}`),s}terminate(){}}var se,oe;function __PRIVATE_mapCodeFromHttpStatus(e){if(void 0===e)return st("RPC_ERROR","HTTP error has no status"),R;switch(e){case 200:return P;case 400:return U;case 401:return $;case 403:return O;case 404:return b;case 409:return L;case 416:return M;case 429:return N;case 499:return V;case 500:return R;case 501:return q;case 503:return K;case 504:return S;default:return e>=200&&e<300?P:e>=400&&e<500?U:e>=500&&e<600?W:R}}(oe=se||(se={}))[oe.OK=0]="OK",oe[oe.CANCELLED=1]="CANCELLED",oe[oe.UNKNOWN=2]="UNKNOWN",oe[oe.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",oe[oe.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",oe[oe.NOT_FOUND=5]="NOT_FOUND",oe[oe.ALREADY_EXISTS=6]="ALREADY_EXISTS",oe[oe.PERMISSION_DENIED=7]="PERMISSION_DENIED",oe[oe.UNAUTHENTICATED=16]="UNAUTHENTICATED",oe[oe.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",oe[oe.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",oe[oe.ABORTED=10]="ABORTED",oe[oe.OUT_OF_RANGE=11]="OUT_OF_RANGE",oe[oe.UNIMPLEMENTED=12]="UNIMPLEMENTED",oe[oe.INTERNAL=13]="INTERNAL",oe[oe.UNAVAILABLE=14]="UNAVAILABLE",oe[oe.DATA_LOSS=15]="DATA_LOSS";class __PRIVATE_FetchConnection extends __PRIVATE_RestConnection{Ee(e,r){throw new Error("Not supported by FetchConnection")}async me(e,r,i,s,o){const h=JSON.stringify(s);let E;try{const e={method:"POST",headers:i,body:h};o&&(e.credentials="include"),E=await fetch(r,e)}catch(e){const r=e;throw new k(__PRIVATE_mapCodeFromHttpStatus(r.status),"Request failed with error: "+r.statusText)}if(!E.ok){let e=await E.json();Array.isArray(e)&&(e=e[0]);const r=e?.error?.message;throw new k(__PRIVATE_mapCodeFromHttpStatus(E.status),`Request failed with error: ${r??E.statusText}`)}return E.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 ae=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=ae.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 k(w,"JSON must be an object");let i;for(const s in r)if(r[s]){const o=r[s].typeString,h="value"in r[s]?{value:r[s].value}:void 0;if(!(s in e)){i=`JSON missing required field: '${s}'`;break}const E=e[s];if(o&&typeof E!==o){i=`JSON field '${s}' must be a ${o}.`;break}if(void 0!==h&&E!==h.value){i=`Expected '${s}' field to equal '${h.value}'`;break}}if(i)throw new k(w,i);return!0}const ue=-62135596800,le=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)*le);return new Timestamp(r,i)}constructor(e,r){if(this.seconds=e,this.nanoseconds=r,r<0)throw new k(w,"Timestamp nanoseconds out of range: "+r);if(r>=1e9)throw new k(w,"Timestamp nanoseconds out of range: "+r);if(e<ue)throw new k(w,"Timestamp seconds out of range: "+e);if(e>=253402300800)throw new k(w,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/le}_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-ue;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 _e="__type__",ce={},pe="__vector__",he="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"__max__"===(((e.mapValue||{}).fields||{}).__type__||{}).stringValue}(e)?9007199254740991:function __PRIVATE_isVectorValue(e){const r=(e?.mapValue?.fields||{})[_e]?.stringValue;return r===pe}(e)?10:11:z(28295,{value:e})}function __PRIVATE_valueEquals(e,r,i){if(e===r)return!0;const s=__PRIVATE_typeOrder(e);if(s!==__PRIVATE_typeOrder(r))return!1;switch(s){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,i){if("integerValue"in e&&"integerValue"in r)return __PRIVATE_normalizeNumber(e.integerValue)===__PRIVATE_normalizeNumber(r.integerValue);let s,o;return"doubleValue"in e&&"doubleValue"in r&&(s=__PRIVATE_normalizeNumber(e.doubleValue),o=__PRIVATE_normalizeNumber(r.doubleValue),s===o?__PRIVATE_isNegativeZero(s)===__PRIVATE_isNegativeZero(o):!(void 0!==i&&!i.Pe)&&isNaN(s)&&isNaN(o))}(e,r,i);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||[],((e,r)=>__PRIVATE_valueEquals(e,r,i)));case 10:case 11:return function __PRIVATE_objectEquals(e,r,i){const s=e.mapValue.fields||{},o=r.mapValue.fields||{};if(__PRIVATE_objectSize(s)!==__PRIVATE_objectSize(o))return!1;for(const e in s)if(s.hasOwnProperty(e)&&(void 0===o[e]||!__PRIVATE_valueEquals(s[e],o[e],i)))return!1;return!0}(e,r,i);default:return z(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[he]?.arrayValue,h=s[he]?.arrayValue,E=__PRIVATE_primitiveComparator(o?.values?.length||0,h?.values?.length||0);return 0!==E?E:__PRIVATE_compareArrays(o,h)}(e.mapValue,r.mapValue);case 11:return function __PRIVATE_compareMaps(e,r){if(e===ce&&r===ce)return 0;if(e===ce)return 1;if(r===ce)return-1;const i=e.fields||{},s=Object.keys(i),o=r.fields||{},h=Object.keys(o);s.sort(),h.sort();for(let e=0;e<s.length&&e<h.length;++e){const r=__PRIVATE_compareUtf8Strings(s[e],h[e]);if(0!==r)return r;const E=__PRIVATE_valueCompare(i[s[e]],o[h[e]]);if(0!==E)return E}return __PRIVATE_primitiveComparator(s.length,h.length)}(e.mapValue,r.mapValue);default:throw z(23264,{Ve: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(void 0!==r&&0!==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 z(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.Re=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.Re||(this.Re=this.filters.reduce(((e,r)=>e.concat(r.getFlattenedFilters())),[])),this.Re}getFilters(){return Object.assign([],this.filters)}}class __PRIVATE_KeyFieldFilter extends FieldFilter{constructor(e,r,i){super(e,r,i),this.key=x.fromName(i.referenceValue)}matches(e){const r=x.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=>x.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 j{static fromTimestamp(e){return new j(e)}static min(){return new j(new Timestamp(0,0))}static max(){return new j(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 z(43730,{key:this.key,value:this.value});if(this.right.isRed())throw z(14113,{key:this.key,value:this.value});const e=this.left.check();if(e!==this.right.check())throw z(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 z(57766)}get value(){throw z(16141)}get color(){throw z(16727)}get left(){throw z(29726)}get right(){throw z(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 u{constructor(e){this.value=e}static empty(){return new u({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=te.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 u(__PRIVATE_deepClone(this.value))}}class __PRIVATE_QueryImpl{constructor(e,r=null,i=[],s=[],o=null,h="F",E=null,T=null){this.path=e,this.collectionGroup=r,this.explicitOrderBy=i,this.filters=s,this.limit=o,this.limitType=h,this.startAt=E,this.endAt=T,this.Ie=null,this.pe=null,this.ye=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,i){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),j.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 k(w,"Tried to deserialize key from different project: "+i.get(1)+" vs "+e.databaseId.projectId);if(i.get(3)!==e.databaseId.database)throw new k(w,"Tried to deserialize key from different database: "+i.get(3)+" vs "+e.databaseId.database);return new x(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 u({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 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.ve=!1}be(){if(this.ve)throw new k(U,"The client has already been terminated.")}le(e,r,i,s){return this.be(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([o,h])=>this.connection.le(e,__PRIVATE_toResourcePath(r,i),s,o,h))).catch((e=>{throw"FirebaseError"===e.name?(e.code===$&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new k(R,e.toString())}))}de(e,r,i,s,o){return this.be(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([h,E])=>this.connection.de(e,__PRIVATE_toResourcePath(r,i),s,h,E,o))).catch((e=>{throw"FirebaseError"===e.name?(e.code===$&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new k(R,e.toString())}))}terminate(){this.ve=!0,this.connection.terminate()}}const de="ComponentProvider",fe=new Map;const me=!0;class FirestoreSettingsImpl{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new k(w,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=me}else this.host=e.host,this.ssl=e.ssl??me;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,e._customHeaders&&(this._customHeaders={...e._customHeaders}),void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new k(w,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}if(function __PRIVATE_validateIsNotUsedTogether(e,r,i,s){if(!0===r&&!0===s)throw new k(w,`${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 k(w,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new k(w,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new k(w,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams,void 0!==e.grpcFlowControlWindow){if("number"!=typeof e.grpcFlowControlWindow||e.grpcFlowControlWindow<=0||e.grpcFlowControlWindow>2147483647||!Number.isInteger(e.grpcFlowControlWindow))throw new k(w,"grpcFlowControlWindow must be a positive integer and cannot exceed 2147483647");this.grpcFlowControlWindow=e.grpcFlowControlWindow}}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&&this.grpcFlowControlWindow===e.grpcFlowControlWindow&&function __PRIVATE_customHeadersEqual(e,r){if(e===r)return!0;if(!e||!r)return!1;const i=Object.keys(e),s=Object.keys(r);if(i.length!==s.length)return!1;for(const s of i)if(e[s]!==r[s])return!1;return!0}(this._customHeaders,e._customHeaders)}}class n{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 k(U,"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 k(U,"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 k(w,"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=fe.get(e);r&&(a(de,"Removing Datastore"),fe.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 x(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 x(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 k(w,`Function ${e}() cannot be called with an empty ${r}.`)}("doc","path",r),e instanceof n){const s=ResourcePath.fromString(r,...i);return __PRIVATE_validateDocumentPath(s),new DocumentReference(e,null,new x(s))}{if(!(e instanceof DocumentReference||e instanceof CollectionReference))throw new k(w,"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 x(s))}}class Bytes{constructor(e){this._byteString=e}static fromBase64String(e){try{return new Bytes(ByteString.fromBase64String(e))}catch(e){throw new k(w,"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 D{constructor(...e){for(let r=0;r<e.length;++r)if(0===e[r].length)throw new k(w,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new te(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 k(w,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(r)||r<-180||r>180)throw new k(w,"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 k(w,"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 Ee=/^__.*__$/;function __PRIVATE_isWrite(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw z(40011,{dataSource:e})}}class ParseContextImpl{constructor(e,r,i,s,o,h){this.settings=e,this.databaseId=r,this.serializer=i,this.ignoreUndefinedProperties=s,void 0===o&&this.validatePath(),this.fieldTransforms=o||[],this.fieldMask=h||[]}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)&&Ee.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:te.emptyPath(),arrayElement:!1,hasConverter:s},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function p(e){const r=e._freezeSettings(),i=__PRIVATE_newSerializer(e._databaseId);return new UserDataReader(e._databaseId,!!r.ignoreUndefinedProperties,i)}function __PRIVATE_parseData(e,r,i){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:{[_e]:{stringValue:pe},[he]:{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 _(e,r,i){if((r=getModularInstance(r))instanceof D)return r._internalPath;if("string"==typeof r)return function __PRIVATE_fieldPathFromDotSeparatedString(e,r,i){if(r.search(ge)>=0)throw createError(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,i);try{return new D(...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 ge=new RegExp("[~\\*/\\[\\]]");function createError(e,r,i,s,o){const h=s&&!s.isEmpty(),E=void 0!==o;let T=`Function ${r}() called with invalid data`;i&&(T+=" (via `toFirestore()`)"),T+=". ";let P="";return(h||E)&&(P+=" (found",h&&(P+=` in field ${s}`),E&&(P+=` in document ${o}`),P+=")"),new k(w,T+e+P)}class it{constructor(e,r,i,s,o){this._firestore=e,this._userDataWriter=r,this._key=i,this._document=s,this._converter=o}get id(){return this._key.path.lastSegment()}get ref(){return new DocumentReference(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const e=new QueryDocumentSnapshot(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(e){if(this._document){const r=this._document.data.field(_("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r)}}}class QueryDocumentSnapshot extends it{data(){return super.data()}}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 z(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?.[he].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 x(i.popFirst(5));return s.isEqual(r)||st(`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 A 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=u.empty();for(const s in this.optionDefinitions)if(this.optionDefinitions.hasOwnProperty(s)){const o=this.optionDefinitions[s];if(s in e){const h=e[s];let E;o.nestedOptions&&__PRIVATE_isPlainObject(h)?E={mapValue:{fields:new OptionsUtil(o.nestedOptions).getOptionsProto(r,h)}}:h&&(E=__PRIVATE_parseData(h,r)??void 0),E&&i.set(te.fromServerFormat(o.serverName),E)}}return i}getOptionsProto(e,r,i){const s=this._getKnownOptions(r,e);if(i){const r=new Map(function g(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)=>[te.fromServerFormat(i),void 0!==r?__PRIVATE_parseData(r,e):null])));s.setAll(r)}return s.value.mapValue.fields??{}}}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 k("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")}arrayFilter(e,r){return new FunctionExpression("array_filter",[this,__PRIVATE_valueToDefaultExpr$1(e),r],"arrayFilter")}arrayTransform(e,r){return new FunctionExpression("array_transform",[this,__PRIVATE_valueToDefaultExpr$1(e),r],"arrayTransform")}arrayTransformWithIndex(e,r,i){return new FunctionExpression("array_transform",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r),i],"arrayTransformWithIndex")}arraySlice(e,r){const i=[this,__PRIVATE_valueToDefaultExpr$1(e)];return void 0!==r&&i.push(__PRIVATE_valueToDefaultExpr$1(r)),new FunctionExpression("array_slice",i,"arraySlice")}arrayFirst(){return new FunctionExpression("array_first",[this],"arrayFirst")}arrayFirstN(e){return new FunctionExpression("array_first_n",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayFirstN")}arrayLast(){return new FunctionExpression("array_last",[this],"arrayLast")}arrayLastN(e){return new FunctionExpression("array_last_n",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayLastN")}arrayMaximum(){return new FunctionExpression("maximum",[this],"arrayMaximum")}arrayMaximumN(e){return new FunctionExpression("maximum_n",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayMaximumN")}arrayMinimum(){return new FunctionExpression("minimum",[this],"arrayMinimum")}arrayMinimumN(e){return new FunctionExpression("minimum_n",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayMinimumN")}arrayIndexOf(e){return new FunctionExpression("array_index_of",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1("first")],"arrayIndexOf")}arrayLastIndexOf(e){return new FunctionExpression("array_index_of",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1("last")],"arrayLastIndexOf")}arrayIndexOfAll(e){return new FunctionExpression("array_index_of_all",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayIndexOfAll")}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")}getField(e){return new FunctionExpression("get_field",[this,__PRIVATE_valueToDefaultExpr$1(e)],"get_field")}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")}timestampDiff(e,r){return new FunctionExpression("timestamp_diff",[this,__PRIVATE_fieldOrExpression$1(e),__PRIVATE_valueToDefaultExpr$1(r)],"timestampDiff")}timestampExtract(e,r){const i=[this,__PRIVATE_valueToDefaultExpr$1(e)];return r&&i.push(__PRIVATE_valueToDefaultExpr$1(r)),new FunctionExpression("timestamp_extract",i,"timestampExtract")}documentId(){return new FunctionExpression("document_id",[this],"documentId")}parent(){return new FunctionExpression("parent",[this],"parent")}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")}ifNull(e){return new FunctionExpression("if_null",[this,__PRIVATE_valueToDefaultExpr$1(e)],"ifNull")}coalesce(e,...r){return new FunctionExpression("coalesce",[this,__PRIVATE_valueToDefaultExpr$1(e),...r.map(__PRIVATE_valueToDefaultExpr$1)],"coalesce")}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(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.t=e,this._methodName=r,this.expressionType="ListOfExpressions"}_toProto(e){return{arrayValue:{values:this.t.map((r=>r._toProto(e)))}}}_readUserData(e){this.t.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 _fieldPath(){return this.fieldPath}get fieldName(){return this.fieldPath.canonicalString()}get alias(){return this.fieldName}get expr(){return this}geoDistance(e){return new FunctionExpression("geo_distance",[this,__PRIVATE_valueToDefaultExpr$1(e)],"geoDistance")}_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?Z===e?function documentId$1(){return new D(Z)}()._internalPath:_("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}_getValue(){return 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,r){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.i=e,this._methodName=r,this.expressionType="Constant"}_readUserData(e){e=this._methodName?e.contextWith({methodName:this._methodName}):e,this.i.forEach((r=>{r._readUserData(e)}))}_toProto(e){return toMapValue(e,this.i)}}class FunctionExpression extends Expression{constructor(e,r,i,s){super(),this.name=e,this.params=r,this.expressionType="Function",this._optionsProto=void 0,void 0!==i&&(this._methodName=i),void 0!==s&&(this._options=s)}get _optionsUtil(){return new OptionsUtil({})}_toProto(e){const r={functionValue:{name:this.name,args:this.params.map((r=>r._toProto(e)))}};return this._optionsProto&&(r.functionValue.options=this._optionsProto),r}_readUserData(e){e=this._methodName?e.contextWith({methodName:this._methodName}):e,this.params.forEach((r=>r._readUserData(e))),this._options&&(this._optionsProto=this._optionsUtil.getOptionsProto(e,this._options))}}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"}_getValue(){return this._expr._getValue()}}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 parent(e){return __PRIVATE_valueToDefaultExpr$1(e).parent()}function substring(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_valueToDefaultExpr$1(r),h=void 0===i?void 0:__PRIVATE_valueToDefaultExpr$1(i);return s.substring(o,h)}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 arrayFilter(e,r,i){return __PRIVATE_fieldOrExpression$1(e).arrayFilter(r,i)}function arrayTransform(e,r,i){return __PRIVATE_fieldOrExpression$1(e).arrayTransform(r,i)}function arrayTransformWithIndex(e,r,i,s){return __PRIVATE_fieldOrExpression$1(e).arrayTransformWithIndex(r,i,s)}function arraySlice(e,r,i){return __PRIVATE_fieldOrExpression$1(e).arraySlice(r,i)}function arrayFirst(e){return __PRIVATE_fieldOrExpression$1(e).arrayFirst()}function arrayFirstN(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayFirstN(__PRIVATE_valueToDefaultExpr$1(r))}function arrayLast(e){return __PRIVATE_fieldOrExpression$1(e).arrayLast()}function arrayLastN(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayLastN(__PRIVATE_valueToDefaultExpr$1(r))}function arrayMaximum(e){return __PRIVATE_fieldOrExpression$1(e).arrayMaximum()}function arrayMaximumN(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayMaximumN(__PRIVATE_valueToDefaultExpr$1(r))}function arrayMinimum(e){return __PRIVATE_fieldOrExpression$1(e).arrayMinimum()}function arrayMinimumN(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayMinimumN(__PRIVATE_valueToDefaultExpr$1(r))}function arrayIndexOf(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayIndexOf(__PRIVATE_valueToDefaultExpr$1(r))}function arrayLastIndexOf(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayLastIndexOf(__PRIVATE_valueToDefaultExpr$1(r))}function arrayIndexOfAll(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayIndexOfAll(__PRIVATE_valueToDefaultExpr$1(r))}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),h=__PRIVATE_valueToDefaultExpr$1(i);return s.timestampAdd(o,h)}function timestampSubtract(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_valueToDefaultExpr$1(r),h=__PRIVATE_valueToDefaultExpr$1(i);return s.timestampSubtract(o,h)}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 nor(e,r,...i){return new FunctionExpression("nor",[e,r,...i],"nor").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 ifNull(e,r){return __PRIVATE_fieldOrExpression$1(e).ifNull(r)}function coalesce(e,r,...i){return __PRIVATE_fieldOrExpression$1(e).coalesce(r,...i)}function switchOn(e,r,...i){return new FunctionExpression("switch_on",[__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r),...i.map(__PRIVATE_valueToDefaultExpr$1)],"switchOn")}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):r;return __PRIVATE_fieldOrExpression$1(e).timestampTruncate(s,i)}function variable(e){return new __PRIVATE_VariableExpression(e)}class __PRIVATE_VariableExpression extends Expression{constructor(e){super(),this.name=e,this.expressionType="Variable"}_toProto(e){return{variableReferenceValue:this.name}}_readUserData(e){}}function currentDocument(){return new FunctionExpression("current_document",[])}class __PRIVATE_PipelineValueExpression extends Expression{constructor(e){super(),this.pipeline=e,this.expressionType="PipelineValue"}_toProto(e){return __PRIVATE_toPipelineValue(this.pipeline._toProto(e))}_readUserData(e){this.pipeline._readUserData(e)}}function timestampDiff(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_fieldOrExpression$1(r),h=__PRIVATE_valueToDefaultExpr$1(i);return s.timestampDiff(o,h)}function timestampExtract(e,r,i){return __PRIVATE_fieldOrExpression$1(e).timestampExtract(__PRIVATE_valueToDefaultExpr$1(r),i)}function documentMatches(e){return new FunctionExpression("document_matches",[__PRIVATE_valueToDefaultExpr$1(e)],"documentMatches").asBoolean()}function score(){return new FunctionExpression("score",[],"score")}function geoDistance(e,r){return __PRIVATE_toField(e).geoDistance(r)}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 null!=r&&__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_isAliasedExpr(e){return e instanceof AliasedExpression}function __PRIVATE_isField(e){return e instanceof Field}function __PRIVATE_toField(e){return __PRIVATE_isString(e)?field(e):e}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:[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_Define extends Stage{get _name(){return"let"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.o=e}_toProto(e){return{...super._toProto(e),args:[toMapValue(e,this.o)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.o,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:[toMapValue(e,this.accumulators),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:[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.u=e.startsWith("/")?e:"/"+e}_toProto(e){return{...super._toProto(e),args:[{referenceValue:this.u}]}}_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_SubcollectionSource extends Stage{get _name(){return"subcollection"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.path=e}_toProto(e){return{...super._toProto(e),args:[{stringValue:this.path}]}}_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){if(super(r),!e||0===e.length)throw new k(w,"Empty document paths are not allowed in DocumentsSource");const i=e.map((e=>e.startsWith("/")?e:"/"+e)),s=new Set(i);if(s.size!==i.length)throw new k(w,"Duplicate document paths are not allowed in DocumentsSource");this._=i,this.l=s}_toProto(e){return{...super._toProto(e),args:this._.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:[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){this.other._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.p)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.map,e)}}__PRIVATE_Replace.p="full_replace";class __PRIVATE_Search extends Stage{constructor(e){super(e),this.T=e}get _name(){return"search"}get _optionsUtil(){return new OptionsUtil({query:{serverName:"query"},limit:{serverName:"limit"},retrievalDepth:{serverName:"retrieval_depth"},sort:{serverName:"sort"},addFields:{serverName:"add_fields"},select:{serverName:"select"},offset:{serverName:"offset"},A:{serverName:"query_enhancement"},languageCode:{serverName:"language_code"}})}_toProto(e){return{...super._toProto(e),args:[]}}_readUserData(e){__PRIVATE_readUserDataHelper(this.T.query,e),this.T.addFields&&__PRIVATE_readUserDataHelper(this.T.addFields,e),this.T.select&&__PRIVATE_readUserDataHelper(this.T.select,e),this.T.sort&&__PRIVATE_readUserDataHelper(this.T.sort,e),super._readUserData(e)}}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 instanceof Map?e.forEach((e=>e._readUserData(r))):Object.values(e).forEach((e=>e._readUserData(r))),e}function __PRIVATE_selectablesToMap(e){return new Map(Object.entries(__PRIVATE_selectablesToObject(e)))}function __PRIVATE_selectablesToObject(e){const r={};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):z(21273,{selectable:i}),void 0!==r[e])throw new k("invalid-argument",`Duplicate alias or field '${e}'`);r[e]=s}return r}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):function __PRIVATE_isPipeline$1(e){return"object"==typeof e&&null!==e&&"function"==typeof e.toArrayExpression}(e)?function pipelineValue(e){return new __PRIVATE_PipelineValueExpression(e)}(e):__PRIVATE__constant(e,void 0),r)}(e)}class Pipeline{constructor(e,r,i,s){this._db=e,this.userDataReader=r,this._userDataWriter=i,this.stages=s}_readUserData(e){this.stages.forEach((r=>{const i=e.contextWith({methodName:r._name});r._readUserData(i)}))}addFields(e,...r){let i,s;__PRIVATE_isSelectable(e)?(i=[e,...r],s={}):({fields:i,...s}=e);const o=__PRIVATE_selectablesToMap(i),h=new __PRIVATE_AddFields(o,s);return this._addStage(h)}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 this._addStage(o)}define(e,...r){const i=__PRIVATE_isAliasedExpr(e)?{}:e,s=__PRIVATE_selectablesToMap(__PRIVATE_isAliasedExpr(e)?[e,...r]:e.variables),o=new __PRIVATE_Define(s,i);return this._addStage(o)}toArrayExpression(){return new FunctionExpression("array",[__PRIVATE_fieldOrExpression(this)])}toScalarExpression(){return new FunctionExpression("scalar",[__PRIVATE_fieldOrExpression(this)])}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);return this._addStage(o)}where(e){const r=__PRIVATE_isBooleanExpr(e)?{}:e,i=__PRIVATE_isBooleanExpr(e)?e:e.condition,s=new __PRIVATE_Where(i,r);return 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);return this._addStage(s)}limit(e){const r=__PRIVATE_isNumber(e)?{}:e,i=__PRIVATE_isNumber(e)?e:e.limit,s=new __PRIVATE_Limit(i,r);return 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);return 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??[],h=function __PRIVATE_aliasedAggregateToMap(e){return e.reduce(((e,r)=>{if(void 0!==e.get(r.alias))throw new k("invalid-argument",`Duplicate alias or field '${r.alias}'`);return e.set(r.alias,r.aggregate),e}),new Map)}(s),E=__PRIVATE_selectablesToMap(o),T=new __PRIVATE_Aggregate(E,h,i);return this._addStage(T)}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);return this._addStage(o)}search(e){const r=e.addFields?__PRIVATE_selectablesToObject(e.addFields):void 0,i=__PRIVATE_isExpr(e.query)?e.query:documentMatches(e.query),s=__PRIVATE_isOrdering(e.sort)?[e.sort]:e.sort,o={...e,addFields:r,select:void 0,query:i,sort:s},h=new __PRIVATE_Search(o);return this._addStage(h)}sort(e,...r){const i=__PRIVATE_isOrdering(e)?{}:e,s=__PRIVATE_isOrdering(e)?[e,...r]:e.orderings,o=new __PRIVATE_Sort(s,i);return this._addStage(o)}replaceWith(e){const r=__PRIVATE_isString(e)||__PRIVATE_isExpr(e)?{}:e,i=__PRIVATE_fieldOrExpression(__PRIVATE_isString(e)||__PRIVATE_isExpr(e)?e:e.map),s=new __PRIVATE_Replace(i,r);return 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);return 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);return 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 h=s.alias,E=s.expr;__PRIVATE_isString(o)&&(i.indexField=_field(o,"unnest"));const T=new __PRIVATE_Unnest(h,E,i);return this._addStage(T)}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??{});return 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,r)}newPipeline(e,r){return new Pipeline(e,this.userDataReader,this._userDataWriter,r)}}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:z(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:z(35306)}throw new Error(`Failed to convert filter to pipeline conditions: ${e}`)}function __PRIVATE_toPipelineStages(e,r){let i;i=function __PRIVATE_isCollectionGroupQuery(e){return null!==e.collectionGroup}(e)?r.pipeline().collectionGroup(e.collectionGroup):function __PRIVATE_isDocumentQuery(e){return x.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.Ie){r.Ie=[];const e=new Set;for(const i of r.explicitOrderBy)r.Ie.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(te.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.Ie.push(new OrderBy(s,i))})),e.has(te.keyField().canonicalString())||r.Ie.push(new OrderBy(te.keyField(),i))}return r.Ie}(e),o=s.map((e=>field(e.field.canonicalString()).exists()));i=o.length>1?i.where(and(o[0],o[1],...o.slice(2))):i.where(o[0]);const h=s.map((e=>"asc"===e.dir?field(e.field.canonicalString()).ascending():field(e.field.canonicalString()).descending()));if(h.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)))}(h);i=i.sort(r[0],...r.slice(1)),null!==e.startAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.startAt,h,"after"))),null!==e.endAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.endAt,h,"before"))),i=i.limit(e.limit),i=i.sort(h[0],...h.slice(1))}else i=i.sort(h[0],...h.slice(1)),null!==e.startAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.startAt,h,"after"))),null!==e.endAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.endAt,h,"before"))),null!==e.limit&&(i=i.limit(e.limit));return i.stages}function __PRIVATE_whereConditionsFromCursor(e,r,i){const s="before"===i?lessThan:greaterThan,o=e.position.map((e=>Constant._fromProto(e))),h=o.length;let E=r[h-1].expr,T=o[h-1],P=s(E,T);e.inclusive&&(P=or(P,E.equal(T)));for(let e=h-2;e>=0;e--)E=r[e].expr,T=o[e],P=or(s(E,T),and(E.equal(T),P));return P}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),h=this.userDataReader.createContext(3,"collection");return o._readUserData(h),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),h=this.userDataReader.createContext(3,"documents");return o._readUserData(h),this._createPipeline([o])}createFrom(e){return this._createPipeline(__PRIVATE_toPipelineStages(e._query,e.firestore))}_validateReference(e){const r=e.firestore._databaseId;if(!r.isEqual(this.databaseId))throw new k(w,`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.`)}}function subcollection(e){let r,i;__PRIVATE_isString(e)?(r=e,i={}):({path:r,...i}=e);const s=new __PRIVATE_SubcollectionSource(r,i);return new Pipeline(void 0,void 0,void 0,[s])}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,h,E){this._ref=i,this._userDataWriter=e,this._createTime=s,this._updateTime=o,this._fields=r,this._metadata=h,this._listenOptions=E}static fromDocument(e,r,i,s,o){return new PipelineResult(e,r.data,i,r.createTime.toTimestamp(),r.version.toTimestamp(),s,o)}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,this._listenOptions?.serverTimestampBehavior)}_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(_("DocumentSnapshot.get",e));return null!==r?this._userDataWriter.convertValue(r,this._listenOptions?.serverTimestampBehavior):void 0}}class __PRIVATE_StructuredPipelineOptions{constructor(e={},r={}){this.h=e,this.P=r,this.V=new OptionsUtil({indexMode:{serverName:"index_mode"}})}_readUserData(e){this.proto=this.V.getOptionsProto(e,this.h,this.P)}}class StructuredPipeline{constructor(e,r){this.pipeline=e,this.options=r}_toProto(e){return{pipeline:this.pipeline._toProto(e),options:this.options.proto}}}function execute(e){if(!e._db)return Promise.reject(new k(U,"This pipeline was created without a database (e.g., as a subcollection pipeline) and cannot be executed directly. It can only be used as part of another pipeline."));const r=function d(e){if(e._terminated)throw new k(U,"The client has already been terminated.");if(!fe.has(e)){a(de,"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,o._customHeaders,o.grpcFlowControlWindow)}(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);fe.set(e,s)}return fe.get(e)}(e._db),i=function f(e,r){if("_delegate"in e&&(e=e._delegate),!(e instanceof r)){if(r.name===e.constructor.name)throw new k(w,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const i=__PRIVATE_valueDescription(e);throw new k(w,`Expected type '${r.name}', but it was: ${i}`)}}return e}(e._db,n),s=p(i).createContext(3,"execute");e._readUserData(s);const o=new A(i),h=new __PRIVATE_StructuredPipelineOptions({},{});h._readUserData(s);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 h=await i.de("ExecutePipeline",i.serializer.databaseId,ResourcePath.emptyPath(),s),E=[];return h.forEach((e=>{if(e.results&&0!==e.results.length)return e.results.forEach((r=>E.push(__PRIVATE_fromPipelineResponse(i.serializer,e,r))));E.push(__PRIVATE_fromPipelineResponse(i.serializer,e))})),E}(r,new StructuredPipeline(e,h)).then((r=>{const s=r.length>0?r[0].executionTime?.toTimestamp():void 0,h=r.filter((e=>!!e.fields)).map((e=>new PipelineResult(o,e.fields,e.key?.path?new DocumentReference(i,null,e.key):void 0,e.createTime?.toTimestamp(),e.updateTime?.toTimestamp())));return new PipelineSnapshot(e,h,s)}))}n.prototype.pipeline=function(){const e=new A(this),r=p(this);return new PipelineSource(this._databaseId,r,(i=>new Pipeline(this,r,e,i)))};export{AggregateFunction,AliasedAggregate,AliasedExpression,BooleanExpression,Bytes,Constant,DocumentReference,Expression,Field,D as FieldPath,FieldValue,n as Firestore,FunctionExpression,GeoPoint,Ordering,Pipeline,PipelineResult,PipelineSnapshot,PipelineSource,Query,QueryDocumentSnapshot,Timestamp,VectorValue,abs,add,and,array,arrayAgg,arrayAggDistinct,arrayConcat,arrayContains,arrayContainsAll,arrayContainsAny,arrayFilter,arrayFirst,arrayFirstN,arrayGet,arrayIndexOf,arrayIndexOfAll,arrayLast,arrayLastIndexOf,arrayLastN,arrayLength,arrayMaximum,arrayMaximumN,arrayMinimum,arrayMinimumN,arraySlice,arraySum,arrayTransform,arrayTransformWithIndex,ascending,average,byteLength,ceil,charLength,coalesce,collectionId,concat,conditional,constant,cosineDistance,count,countAll,countDistinct,countIf,currentDocument,currentTimestamp,descending,divide,documentId,documentMatches,dotProduct,endsWith,equal,equalAny,euclideanDistance,execute,exists,exp,field,first,floor,geoDistance,greaterThan,greaterThanOrEqual,ifAbsent,ifError,ifNull,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,nor,not,notEqual,notEqualAny,or,parent,pow,rand,regexContains,regexFind,regexFindAll,regexMatch,reverse,round,rtrim,score,split,sqrt,startsWith,stringConcat,stringContains,stringIndexOf,stringRepeat,stringReplaceAll,stringReplaceOne,stringReverse,subcollection,substring,subtract,sum,switchOn,timestampAdd,timestampDiff,timestampExtract,timestampSubtract,timestampToUnixMicros,timestampToUnixMillis,timestampToUnixSeconds,timestampTruncate,toLower,toUpper,trim,trunc,type,unixMicrosToTimestamp,unixMillisToTimestamp,unixSecondsToTimestamp,variable,vectorLength,xor};
1
+ import"https://www.gstatic.com/firebasejs/12.17.1/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(e,...r){const i=r[0]||{},s=`${this.service}/${e}`,o=this.errors[e],h=o?function replaceTemplate(e,r){try{let i=0,s="";for(;i<e.length;){const o=e.indexOf("{$",i);if(-1===o){s+=e.substring(i);break}const h=e.indexOf("}",o+2);if(-1===h){s+=e.substring(i);break}const E=e.substring(o+2,h),T=r[E];s+=e.substring(i,o)+(null!=T?String(T):`<${E}?>`),i=h+1}return s}catch(r){return e}}(o,i):"Error",E=`${this.serviceName}: ${h} (${s}).`;return new FirebaseError(s,E,i)}}function getModularInstance(e){return e&&e._delegate?e._delegate:e}var e;!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"}(e||(e={}));const r={debug:e.DEBUG,verbose:e.VERBOSE,info:e.INFO,warn:e.WARN,error:e.ERROR,silent:e.SILENT},i=e.INFO,s={[e.DEBUG]:"log",[e.VERBOSE]:"log",[e.INFO]:"info",[e.WARN]:"warn",[e.ERROR]:"error"},defaultLogHandler=(e,r,...i)=>{if(r<e.logLevel)return;const o=(new Date).toISOString(),h=s[r];if(!h)throw new Error(`Attempted to log a message with an invalid logType (value: ${r})`);console[h](`[${o}] ${e.name}:`,...i)};var o,h="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 h,E=e.g[3];h=r+(E^i&(o^E))+s[0]+3614090360&4294967295,h=E+(o^(r=i+(h<<7&4294967295|h>>>25))&(i^o))+s[1]+3905402710&4294967295,E=r+(h<<12&4294967295|h>>>20),h=o+(i^E&(r^i))+s[2]+606105819&4294967295,h=i+(r^(o=E+(h<<17&4294967295|h>>>15))&(E^r))+s[3]+3250441966&4294967295,h=r+(E^(i=o+(h<<22&4294967295|h>>>10))&(o^E))+s[4]+4118548399&4294967295,h=E+(o^(r=i+(h<<7&4294967295|h>>>25))&(i^o))+s[5]+1200080426&4294967295,E=r+(h<<12&4294967295|h>>>20),h=o+(i^E&(r^i))+s[6]+2821735955&4294967295,h=i+(r^(o=E+(h<<17&4294967295|h>>>15))&(E^r))+s[7]+4249261313&4294967295,h=r+(E^(i=o+(h<<22&4294967295|h>>>10))&(o^E))+s[8]+1770035416&4294967295,h=E+(o^(r=i+(h<<7&4294967295|h>>>25))&(i^o))+s[9]+2336552879&4294967295,E=r+(h<<12&4294967295|h>>>20),h=o+(i^E&(r^i))+s[10]+4294925233&4294967295,h=i+(r^(o=E+(h<<17&4294967295|h>>>15))&(E^r))+s[11]+2304563134&4294967295,h=r+(E^(i=o+(h<<22&4294967295|h>>>10))&(o^E))+s[12]+1804603682&4294967295,h=E+(o^(r=i+(h<<7&4294967295|h>>>25))&(i^o))+s[13]+4254626195&4294967295,E=r+(h<<12&4294967295|h>>>20),h=o+(i^E&(r^i))+s[14]+2792965006&4294967295,h=i+(r^(o=E+(h<<17&4294967295|h>>>15))&(E^r))+s[15]+1236535329&4294967295,h=r+(o^E&((i=o+(h<<22&4294967295|h>>>10))^o))+s[1]+4129170786&4294967295,h=E+(i^o&((r=i+(h<<5&4294967295|h>>>27))^i))+s[6]+3225465664&4294967295,E=r+(h<<9&4294967295|h>>>23),h=o+(r^i&(E^r))+s[11]+643717713&4294967295,h=i+(E^r&((o=E+(h<<14&4294967295|h>>>18))^E))+s[0]+3921069994&4294967295,h=r+(o^E&((i=o+(h<<20&4294967295|h>>>12))^o))+s[5]+3593408605&4294967295,h=E+(i^o&((r=i+(h<<5&4294967295|h>>>27))^i))+s[10]+38016083&4294967295,E=r+(h<<9&4294967295|h>>>23),h=o+(r^i&(E^r))+s[15]+3634488961&4294967295,h=i+(E^r&((o=E+(h<<14&4294967295|h>>>18))^E))+s[4]+3889429448&4294967295,h=r+(o^E&((i=o+(h<<20&4294967295|h>>>12))^o))+s[9]+568446438&4294967295,h=E+(i^o&((r=i+(h<<5&4294967295|h>>>27))^i))+s[14]+3275163606&4294967295,E=r+(h<<9&4294967295|h>>>23),h=o+(r^i&(E^r))+s[3]+4107603335&4294967295,h=i+(E^r&((o=E+(h<<14&4294967295|h>>>18))^E))+s[8]+1163531501&4294967295,h=r+(o^E&((i=o+(h<<20&4294967295|h>>>12))^o))+s[13]+2850285829&4294967295,h=E+(i^o&((r=i+(h<<5&4294967295|h>>>27))^i))+s[2]+4243563512&4294967295,E=r+(h<<9&4294967295|h>>>23),h=o+(r^i&(E^r))+s[7]+1735328473&4294967295,h=i+(E^r&((o=E+(h<<14&4294967295|h>>>18))^E))+s[12]+2368359562&4294967295,h=r+((i=o+(h<<20&4294967295|h>>>12))^o^E)+s[5]+4294588738&4294967295,h=E+((r=i+(h<<4&4294967295|h>>>28))^i^o)+s[8]+2272392833&4294967295,E=r+(h<<11&4294967295|h>>>21),h=o+(E^r^i)+s[11]+1839030562&4294967295,h=i+((o=E+(h<<16&4294967295|h>>>16))^E^r)+s[14]+4259657740&4294967295,h=r+((i=o+(h<<23&4294967295|h>>>9))^o^E)+s[1]+2763975236&4294967295,h=E+((r=i+(h<<4&4294967295|h>>>28))^i^o)+s[4]+1272893353&4294967295,E=r+(h<<11&4294967295|h>>>21),h=o+(E^r^i)+s[7]+4139469664&4294967295,h=i+((o=E+(h<<16&4294967295|h>>>16))^E^r)+s[10]+3200236656&4294967295,h=r+((i=o+(h<<23&4294967295|h>>>9))^o^E)+s[13]+681279174&4294967295,h=E+((r=i+(h<<4&4294967295|h>>>28))^i^o)+s[0]+3936430074&4294967295,E=r+(h<<11&4294967295|h>>>21),h=o+(E^r^i)+s[3]+3572445317&4294967295,h=i+((o=E+(h<<16&4294967295|h>>>16))^E^r)+s[6]+76029189&4294967295,h=r+((i=o+(h<<23&4294967295|h>>>9))^o^E)+s[9]+3654602809&4294967295,h=E+((r=i+(h<<4&4294967295|h>>>28))^i^o)+s[12]+3873151461&4294967295,E=r+(h<<11&4294967295|h>>>21),h=o+(E^r^i)+s[15]+530742520&4294967295,h=i+((o=E+(h<<16&4294967295|h>>>16))^E^r)+s[2]+3299628645&4294967295,h=r+(o^((i=o+(h<<23&4294967295|h>>>9))|~E))+s[0]+4096336452&4294967295,h=E+(i^((r=i+(h<<6&4294967295|h>>>26))|~o))+s[7]+1126891415&4294967295,E=r+(h<<10&4294967295|h>>>22),h=o+(r^(E|~i))+s[14]+2878612391&4294967295,h=i+(E^((o=E+(h<<15&4294967295|h>>>17))|~r))+s[5]+4237533241&4294967295,h=r+(o^((i=o+(h<<21&4294967295|h>>>11))|~E))+s[12]+1700485571&4294967295,h=E+(i^((r=i+(h<<6&4294967295|h>>>26))|~o))+s[3]+2399980690&4294967295,E=r+(h<<10&4294967295|h>>>22),h=o+(r^(E|~i))+s[10]+4293915773&4294967295,h=i+(E^((o=E+(h<<15&4294967295|h>>>17))|~r))+s[1]+2240044497&4294967295,h=r+(o^((i=o+(h<<21&4294967295|h>>>11))|~E))+s[8]+1873313359&4294967295,h=E+(i^((r=i+(h<<6&4294967295|h>>>26))|~o))+s[15]+4264355552&4294967295,E=r+(h<<10&4294967295|h>>>22),h=o+(r^(E|~i))+s[6]+2734768916&4294967295,h=i+(E^((o=E+(h<<15&4294967295|h>>>17))|~r))+s[13]+1309151649&4294967295,h=r+(o^((i=o+(h<<21&4294967295|h>>>11))|~E))+s[4]+4149444226&4294967295,h=E+(i^((r=i+(h<<6&4294967295|h>>>26))|~o))+s[11]+3174756917&4294967295,E=r+(h<<10&4294967295|h>>>22),h=o+(r^(E|~i))+s[2]+718787259&4294967295,h=i+(E^((o=E+(h<<15&4294967295|h>>>17))|~r))+s[9]+3951481745&4294967295,e.g[0]=e.g[0]+r&4294967295,e.g[1]=e.g[1]+(o+(h<<21&4294967295|h>>>11))&4294967295,e.g[2]=e.g[2]+o&4294967295,e.g[3]=e.g[3]+E&4294967295}function t(e,r){this.h=r;const i=[];let s=!0;for(let o=e.length-1;o>=0;o--){const h=0|e[o];s&&h==r||(i[o]=h,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),h=2;h<arguments.length;h++)o[h-2]=arguments[h];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,h=0;for(;h<r;){if(0==o)for(;h<=i;)n(this,e,h),h+=this.blockSize;if("string"==typeof e){for(;h<r;)if(s[o++]=e.charCodeAt(h++),o==this.blockSize){n(this,s),o=0;break}}else for(;h<r;)if(s[o++]=e[h++],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),h=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,h=r;h.l(e)<=0;)o=I(o),h=I(h);var E=J(o,1),T=J(h,1);for(h=J(h,2),o=J(o,2);!C(h);){var P=T.add(h);P.l(e)<=0&&(E=E.add(o),T=P),h=J(h,1),o=J(o,1)}return r=F(e,E.j(r)),new H(E,r)}for(E=i;e.l(r)>=0;){for(o=Math.max(1,Math.floor(e.m()/r.m())),h=(h=Math.ceil(Math.log(o)/Math.LN2))<=48?1:Math.pow(2,h-48),P=(T=v(o)).j(r);B(P)||P.l(e)>0;)P=(T=v(o-=h)).j(r);C(T)&&(T=s),E=E.add(T),e=F(e,P)}return new H(E,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 h=0;h<s;h++)o[h]=r>0?e.i(h+i)>>>r|e.i(h+i+1)<<32-r:e.i(h+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 h=(((i=F(i,o.j(r))).g.length>0?i.g[0]:i.h)>>>0).toString(e);if(C(i=o))return h+s;for(;h.length<6;)h="0"+h;s=h+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)),h=(r>>>16)+(this.i(o)>>>16)+(e.i(o)>>>16);s=h>>>16,r&=65535,h&=65535,i[o]=h<<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(h)<0&&e.l(h)<0)return v(this.m()*e.m());const r=this.g.length+e.g.length,s=[];for(var o=0;o<2*r;o++)s[o]=0;for(o=0;o<this.g.length;o++)for(let r=0;r<e.g.length;r++){const i=this.i(o)>>>16,h=65535&this.i(o),E=e.i(r)>>>16,T=65535&e.i(r);s[2*o+2*r]+=h*T,G(s,2*o+2*r),s[2*o+2*r+1]+=i*T,G(s,2*o+2*r+1),s[2*o+2*r+1]+=h*E,G(s,2*o+2*r+1),s[2*o+2*r+2]+=i*E,G(s,2*o+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 h=Math.min(8,e.length-i);const E=parseInt(e.substring(i,i+h),r);h<8?(h=v(Math.pow(r,h)),o=o.j(h).add(v(E))):(o=o.j(s),o=o.add(v(E)))}return o},o=t}).apply(void 0!==h?h:"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 E="12.17.1";const T=new class Logger{constructor(e){this.name=e,this._logLevel=i,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(r){if(!(r in e))throw new TypeError(`Invalid value "${r}" assigned to \`logLevel\``);this._logLevel=r}setLogLevel(e){this._logLevel="string"==typeof e?r[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(...r){this._userLogHandler&&this._userLogHandler(this,e.DEBUG,...r),this._logHandler(this,e.DEBUG,...r)}log(...r){this._userLogHandler&&this._userLogHandler(this,e.VERBOSE,...r),this._logHandler(this,e.VERBOSE,...r)}info(...r){this._userLogHandler&&this._userLogHandler(this,e.INFO,...r),this._logHandler(this,e.INFO,...r)}warn(...r){this._userLogHandler&&this._userLogHandler(this,e.WARN,...r),this._logHandler(this,e.WARN,...r)}error(...r){this._userLogHandler&&this._userLogHandler(this,e.ERROR,...r),this._logHandler(this,e.ERROR,...r)}}("@firebase/firestore");function a(r,...i){if(T.logLevel<=e.DEBUG){const e=i.map(__PRIVATE_argToString);T.debug(`Firestore (${E}): ${r}`,...e)}}function st(r,...i){if(T.logLevel<=e.ERROR){const e=i.map(__PRIVATE_argToString);T.error(`Firestore (${E}): ${r}`,...e)}}function __PRIVATE_logWarn(r,...i){if(T.logLevel<=e.WARN){const e=i.map(__PRIVATE_argToString);T.warn(`Firestore (${E}): ${r}`,...e)}}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 z(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 (${E}) INTERNAL ASSERTION FAILED: ${r} (ID: ${e.toString(16)})`;if(void 0!==i)try{s+=" CONTEXT: "+JSON.stringify(i)}catch(e){s+=" CONTEXT: "+i}throw st(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 P="ok",V="cancelled",R="unknown",w="invalid-argument",S="deadline-exceeded",b="not-found",O="permission-denied",$="unauthenticated",N="resource-exhausted",U="failed-precondition",L="aborted",M="out-of-range",q="unimplemented",W="internal",K="unavailable";class k 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.ee=e,this.te=r,this.re=i,this.type="FirstParty",this.user=User.FIRST_PARTY,this.ne=new Map}ie(){return this.re?this.re():null}get headers(){this.ne.set("X-Goog-AuthUser",this.ee);const e=this.ie();return e&&this.ne.set("Authorization",e),this.te&&this.ne.set("X-Goog-Iam-Authorization-Token",this.te),this.ne}}class __PRIVATE_FirstPartyAuthCredentialsProvider{constructor(e,r,i){this.ee=e,this.te=r,this.re=i}getToken(){return Promise.resolve(new __PRIVATE_FirstPartyToken(this.ee,this.te,this.re))}start(e,r){e.enqueueRetryable((()=>r(User.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class DatabaseInfo{constructor(e,r,i,s,o,h,E,T,P,V,R,w,S){this.databaseId=e,this.appId=r,this.persistenceKey=i,this.host=s,this.ssl=o,this.forceLongPolling=h,this.autoDetectLongPolling=E,this.longPollingOptions=T,this.useFetchStreams=P,this.isUsingEmulator=V,this.apiKey=R,this._customHeaders=w,this.grpcFlowControlWindow=S}}const Q="(default)";class DatabaseId{constructor(e,r){this.projectId=e,this.database=r||Q}static empty(){return new DatabaseId("","")}get isDefaultDatabase(){return this.database===Q}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 Y=55296,X=57343;function __PRIVATE_isSurrogate(e){const r=e.charCodeAt(0);return r>=Y&&r<=X}const Z="__name__";class BasePath{constructor(e,r,i){void 0===r?r=0:r>e.length&&z(637,{offset:r,range:e.length}),void 0===i?i=e.length-r:i>e.length-r&&z(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 o.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()}toStringWithLeadingSlash(){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 k(w,`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 ee=/^[_a-zA-Z][_a-zA-Z0-9]*$/;let te=class FieldPath extends BasePath{construct(e,r,i){return new FieldPath(e,r,i)}static isValidIdentifier(e){return ee.test(e)}canonicalString(){return this.toArray().map((e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),FieldPath.isValidIdentifier(e)||(e="`"+e+"`"),e))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Z}static keyField(){return new FieldPath([Z])}static fromServerFormat(e){const r=[];let i="",s=0;const __PRIVATE_addCurrentSegment=()=>{if(0===i.length)throw new k(w,`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 k(w,"Path has trailing escape character: "+e);const r=e[s+1];if("\\"!==r&&"."!==r&&"`"!==r)throw new k(w,"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 k(w,"Unterminated ` in path: "+e);return new FieldPath(r)}static emptyPath(){return new FieldPath([])}};class x{constructor(e){this.path=e}static fromPath(e){return new x(ResourcePath.fromString(e))}static fromName(e){return new x(ResourcePath.fromString(e).popFirst(5))}static empty(){return new x(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 x(new ResourcePath(e.slice()))}}function __PRIVATE_validateDocumentPath(e){if(!x.isDocumentKey(e))throw new k(w,`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":z(12329,{type:typeof e})}function __PRIVATE_cloneLongPollingOptions(e){const r={};return void 0!==e.timeoutSeconds&&(r.timeoutSeconds=e.timeoutSeconds),r}let re=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 ne="RestConnection",ie={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery",ExecutePipeline:"executePipeline"};class __PRIVATE_RestConnection{get ae(){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.ue=r+"://"+e.host,this._e=`projects/${i}/databases/${s}`,this.ce=this.databaseId.database===Q?`project_id=${i}`:`project_id=${i}&database_id=${s}`}le(e,r,i,s,o){const h=function __PRIVATE_generateUniqueDebugId(){return null===re?re=function __PRIVATE_generateInitialUniqueDebugId(){return 268435456+Math.round(2147483648*Math.random())}():re++,"0x"+re.toString(16)}(),E=this.he(e,r.toUriEncodedString());a(ne,`Sending RPC '${e}' ${h}:`,E,i);const T={"google-cloud-resource-prefix":this._e,"x-goog-request-params":this.ce};this.fe(T,s,o);const{host:P}=new URL(E),V=function isCloudWorkstation(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}(P);return this.me(e,E,T,i,V).then((r=>(a(ne,`Received RPC '${e}' ${h}: `,r),r)),(r=>{throw __PRIVATE_logWarn(ne,`RPC '${e}' ${h} failed with error: `,r,"url: ",E,"request:",i),r}))}de(e,r,i,s,o,h){return this.le(e,r,i,s,o)}fe(e,r,i){if(e["X-Goog-Api-Client"]=function __PRIVATE_getGoogApiClientValue(){return"gl-js/ fire/"+E}(),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)),this.databaseInfo._customHeaders)for(const r of Object.keys(this.databaseInfo._customHeaders))e[r]=this.databaseInfo._customHeaders[r]}he(e,r){const i=ie[e];let s=`${this.ue}/v1/${r}:${i}`;return this.databaseInfo.apiKey&&(s=`${s}?key=${encodeURIComponent(this.databaseInfo.apiKey)}`),s}terminate(){}}var se,oe;function __PRIVATE_mapCodeFromHttpStatus(e){if(void 0===e)return st("RPC_ERROR","HTTP error has no status"),R;switch(e){case 200:return P;case 400:return U;case 401:return $;case 403:return O;case 404:return b;case 409:return L;case 416:return M;case 429:return N;case 499:return V;case 500:return R;case 501:return q;case 503:return K;case 504:return S;default:return e>=200&&e<300?P:e>=400&&e<500?U:e>=500&&e<600?W:R}}(oe=se||(se={}))[oe.OK=0]="OK",oe[oe.CANCELLED=1]="CANCELLED",oe[oe.UNKNOWN=2]="UNKNOWN",oe[oe.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",oe[oe.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",oe[oe.NOT_FOUND=5]="NOT_FOUND",oe[oe.ALREADY_EXISTS=6]="ALREADY_EXISTS",oe[oe.PERMISSION_DENIED=7]="PERMISSION_DENIED",oe[oe.UNAUTHENTICATED=16]="UNAUTHENTICATED",oe[oe.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",oe[oe.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",oe[oe.ABORTED=10]="ABORTED",oe[oe.OUT_OF_RANGE=11]="OUT_OF_RANGE",oe[oe.UNIMPLEMENTED=12]="UNIMPLEMENTED",oe[oe.INTERNAL=13]="INTERNAL",oe[oe.UNAVAILABLE=14]="UNAVAILABLE",oe[oe.DATA_LOSS=15]="DATA_LOSS";class __PRIVATE_FetchConnection extends __PRIVATE_RestConnection{Ee(e,r){throw new Error("Not supported by FetchConnection")}async me(e,r,i,s,o){const h=JSON.stringify(s);let E;try{const e={method:"POST",headers:i,body:h};o&&(e.credentials="include"),E=await fetch(r,e)}catch(e){const r=e;throw new k(__PRIVATE_mapCodeFromHttpStatus(r.status),"Request failed with error: "+r.statusText)}if(!E.ok){let e=await E.json();Array.isArray(e)&&(e=e[0]);const r=e?.error?.message;throw new k(__PRIVATE_mapCodeFromHttpStatus(E.status),`Request failed with error: ${r??E.statusText}`)}return E.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 ae=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=ae.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 k(w,"JSON must be an object");let i;for(const s in r)if(r[s]){const o=r[s].typeString,h="value"in r[s]?{value:r[s].value}:void 0;if(!(s in e)){i=`JSON missing required field: '${s}'`;break}const E=e[s];if(o&&typeof E!==o){i=`JSON field '${s}' must be a ${o}.`;break}if(void 0!==h&&E!==h.value){i=`Expected '${s}' field to equal '${h.value}'`;break}}if(i)throw new k(w,i);return!0}const ue=-62135596800,le=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)*le);return new Timestamp(r,i)}constructor(e,r){if(this.seconds=e,this.nanoseconds=r,r<0)throw new k(w,"Timestamp nanoseconds out of range: "+r);if(r>=1e9)throw new k(w,"Timestamp nanoseconds out of range: "+r);if(e<ue)throw new k(w,"Timestamp seconds out of range: "+e);if(e>=253402300800)throw new k(w,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/le}_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-ue;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 _e="__type__",ce={},pe="__vector__",he="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"__max__"===(((e.mapValue||{}).fields||{}).__type__||{}).stringValue}(e)?9007199254740991:function __PRIVATE_isVectorValue(e){const r=(e?.mapValue?.fields||{})[_e]?.stringValue;return r===pe}(e)?10:11:z(28295,{value:e})}function __PRIVATE_valueEquals(e,r,i){if(e===r)return!0;const s=__PRIVATE_typeOrder(e);if(s!==__PRIVATE_typeOrder(r))return!1;switch(s){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,i){if("integerValue"in e&&"integerValue"in r)return __PRIVATE_normalizeNumber(e.integerValue)===__PRIVATE_normalizeNumber(r.integerValue);let s,o;return"doubleValue"in e&&"doubleValue"in r&&(s=__PRIVATE_normalizeNumber(e.doubleValue),o=__PRIVATE_normalizeNumber(r.doubleValue),s===o?__PRIVATE_isNegativeZero(s)===__PRIVATE_isNegativeZero(o):!(void 0!==i&&!i.Pe)&&isNaN(s)&&isNaN(o))}(e,r,i);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||[],((e,r)=>__PRIVATE_valueEquals(e,r,i)));case 10:case 11:return function __PRIVATE_objectEquals(e,r,i){const s=e.mapValue.fields||{},o=r.mapValue.fields||{};if(__PRIVATE_objectSize(s)!==__PRIVATE_objectSize(o))return!1;for(const e in s)if(s.hasOwnProperty(e)&&(void 0===o[e]||!__PRIVATE_valueEquals(s[e],o[e],i)))return!1;return!0}(e,r,i);default:return z(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[he]?.arrayValue,h=s[he]?.arrayValue,E=__PRIVATE_primitiveComparator(o?.values?.length||0,h?.values?.length||0);return 0!==E?E:__PRIVATE_compareArrays(o,h)}(e.mapValue,r.mapValue);case 11:return function __PRIVATE_compareMaps(e,r){if(e===ce&&r===ce)return 0;if(e===ce)return 1;if(r===ce)return-1;const i=e.fields||{},s=Object.keys(i),o=r.fields||{},h=Object.keys(o);s.sort(),h.sort();for(let e=0;e<s.length&&e<h.length;++e){const r=__PRIVATE_compareUtf8Strings(s[e],h[e]);if(0!==r)return r;const E=__PRIVATE_valueCompare(i[s[e]],o[h[e]]);if(0!==E)return E}return __PRIVATE_primitiveComparator(s.length,h.length)}(e.mapValue,r.mapValue);default:throw z(23264,{Ve: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(void 0!==r&&0!==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 z(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.Re=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.Re||(this.Re=this.filters.reduce(((e,r)=>e.concat(r.getFlattenedFilters())),[])),this.Re}getFilters(){return Object.assign([],this.filters)}}class __PRIVATE_KeyFieldFilter extends FieldFilter{constructor(e,r,i){super(e,r,i),this.key=x.fromName(i.referenceValue)}matches(e){const r=x.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=>x.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 j{static fromTimestamp(e){return new j(e)}static min(){return new j(new Timestamp(0,0))}static max(){return new j(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 z(43730,{key:this.key,value:this.value});if(this.right.isRed())throw z(14113,{key:this.key,value:this.value});const e=this.left.check();if(e!==this.right.check())throw z(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 z(57766)}get value(){throw z(16141)}get color(){throw z(16727)}get left(){throw z(29726)}get right(){throw z(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 u{constructor(e){this.value=e}static empty(){return new u({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=te.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 u(__PRIVATE_deepClone(this.value))}}class __PRIVATE_QueryImpl{constructor(e,r=null,i=[],s=[],o=null,h="F",E=null,T=null){this.path=e,this.collectionGroup=r,this.explicitOrderBy=i,this.filters=s,this.limit=o,this.limitType=h,this.startAt=E,this.endAt=T,this.Ie=null,this.pe=null,this.ye=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,i){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),j.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 k(w,"Tried to deserialize key from different project: "+i.get(1)+" vs "+e.databaseId.projectId);if(i.get(3)!==e.databaseId.database)throw new k(w,"Tried to deserialize key from different database: "+i.get(3)+" vs "+e.databaseId.database);return new x(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 u({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 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.ve=!1}be(){if(this.ve)throw new k(U,"The client has already been terminated.")}le(e,r,i,s){return this.be(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([o,h])=>this.connection.le(e,__PRIVATE_toResourcePath(r,i),s,o,h))).catch((e=>{throw"FirebaseError"===e.name?(e.code===$&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new k(R,e.toString())}))}de(e,r,i,s,o){return this.be(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([h,E])=>this.connection.de(e,__PRIVATE_toResourcePath(r,i),s,h,E,o))).catch((e=>{throw"FirebaseError"===e.name?(e.code===$&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new k(R,e.toString())}))}terminate(){this.ve=!0,this.connection.terminate()}}const de="ComponentProvider",fe=new Map;const me=!0;class FirestoreSettingsImpl{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new k(w,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=me}else this.host=e.host,this.ssl=e.ssl??me;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,e._customHeaders&&(this._customHeaders={...e._customHeaders}),void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new k(w,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}if(function __PRIVATE_validateIsNotUsedTogether(e,r,i,s){if(!0===r&&!0===s)throw new k(w,`${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 k(w,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new k(w,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new k(w,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams,void 0!==e.grpcFlowControlWindow){if("number"!=typeof e.grpcFlowControlWindow||e.grpcFlowControlWindow<=0||e.grpcFlowControlWindow>2147483647||!Number.isInteger(e.grpcFlowControlWindow))throw new k(w,"grpcFlowControlWindow must be a positive integer and cannot exceed 2147483647");this.grpcFlowControlWindow=e.grpcFlowControlWindow}}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&&this.grpcFlowControlWindow===e.grpcFlowControlWindow&&function __PRIVATE_customHeadersEqual(e,r){if(e===r)return!0;if(!e||!r)return!1;const i=Object.keys(e),s=Object.keys(r);if(i.length!==s.length)return!1;for(const s of i)if(e[s]!==r[s])return!1;return!0}(this._customHeaders,e._customHeaders)}}class n{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 k(U,"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 k(U,"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 k(w,"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=fe.get(e);r&&(a(de,"Removing Datastore"),fe.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 x(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 x(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 k(w,`Function ${e}() cannot be called with an empty ${r}.`)}("doc","path",r),e instanceof n){const s=ResourcePath.fromString(r,...i);return __PRIVATE_validateDocumentPath(s),new DocumentReference(e,null,new x(s))}{if(!(e instanceof DocumentReference||e instanceof CollectionReference))throw new k(w,"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 x(s))}}class Bytes{constructor(e){this._byteString=e}static fromBase64String(e){try{return new Bytes(ByteString.fromBase64String(e))}catch(e){throw new k(w,"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 D{constructor(...e){for(let r=0;r<e.length;++r)if(0===e[r].length)throw new k(w,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new te(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 k(w,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(r)||r<-180||r>180)throw new k(w,"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 k(w,"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 Ee=/^__.*__$/;function __PRIVATE_isWrite(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw z(40011,{dataSource:e})}}class ParseContextImpl{constructor(e,r,i,s,o,h){this.settings=e,this.databaseId=r,this.serializer=i,this.ignoreUndefinedProperties=s,void 0===o&&this.validatePath(),this.fieldTransforms=o||[],this.fieldMask=h||[]}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)&&Ee.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:te.emptyPath(),arrayElement:!1,hasConverter:s},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function p(e){const r=e._freezeSettings(),i=__PRIVATE_newSerializer(e._databaseId);return new UserDataReader(e._databaseId,!!r.ignoreUndefinedProperties,i)}function __PRIVATE_parseData(e,r,i){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:{[_e]:{stringValue:pe},[he]:{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 _(e,r,i){if((r=getModularInstance(r))instanceof D)return r._internalPath;if("string"==typeof r)return function __PRIVATE_fieldPathFromDotSeparatedString(e,r,i){if(r.search(ge)>=0)throw createError(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,i);try{return new D(...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 ge=new RegExp("[~\\*/\\[\\]]");function createError(e,r,i,s,o){const h=s&&!s.isEmpty(),E=void 0!==o;let T=`Function ${r}() called with invalid data`;i&&(T+=" (via `toFirestore()`)"),T+=". ";let P="";return(h||E)&&(P+=" (found",h&&(P+=` in field ${s}`),E&&(P+=` in document ${o}`),P+=")"),new k(w,T+e+P)}class it{constructor(e,r,i,s,o){this._firestore=e,this._userDataWriter=r,this._key=i,this._document=s,this._converter=o}get id(){return this._key.path.lastSegment()}get ref(){return new DocumentReference(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const e=new QueryDocumentSnapshot(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(e){if(this._document){const r=this._document.data.field(_("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r)}}}class QueryDocumentSnapshot extends it{data(){return super.data()}}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 z(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?.[he].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 x(i.popFirst(5));return s.isEqual(r)||st(`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 A 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=u.empty();for(const s in this.optionDefinitions)if(this.optionDefinitions.hasOwnProperty(s)){const o=this.optionDefinitions[s];if(s in e){const h=e[s];let E;o.nestedOptions&&__PRIVATE_isPlainObject(h)?E={mapValue:{fields:new OptionsUtil(o.nestedOptions).getOptionsProto(r,h)}}:h&&(E=__PRIVATE_parseData(h,r)??void 0),E&&i.set(te.fromServerFormat(o.serverName),E)}}return i}getOptionsProto(e,r,i){const s=this._getKnownOptions(r,e);if(i){const r=new Map(function g(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)=>[te.fromServerFormat(i),void 0!==r?__PRIVATE_parseData(r,e):null])));s.setAll(r)}return s.value.mapValue.fields??{}}}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 k("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")}arrayFilter(e,r){return new FunctionExpression("array_filter",[this,__PRIVATE_valueToDefaultExpr$1(e),r],"arrayFilter")}arrayTransform(e,r){return new FunctionExpression("array_transform",[this,__PRIVATE_valueToDefaultExpr$1(e),r],"arrayTransform")}arrayTransformWithIndex(e,r,i){return new FunctionExpression("array_transform",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r),i],"arrayTransformWithIndex")}arraySlice(e,r){const i=[this,__PRIVATE_valueToDefaultExpr$1(e)];return void 0!==r&&i.push(__PRIVATE_valueToDefaultExpr$1(r)),new FunctionExpression("array_slice",i,"arraySlice")}arrayFirst(){return new FunctionExpression("array_first",[this],"arrayFirst")}arrayFirstN(e){return new FunctionExpression("array_first_n",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayFirstN")}arrayLast(){return new FunctionExpression("array_last",[this],"arrayLast")}arrayLastN(e){return new FunctionExpression("array_last_n",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayLastN")}arrayMaximum(){return new FunctionExpression("maximum",[this],"arrayMaximum")}arrayMaximumN(e){return new FunctionExpression("maximum_n",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayMaximumN")}arrayMinimum(){return new FunctionExpression("minimum",[this],"arrayMinimum")}arrayMinimumN(e){return new FunctionExpression("minimum_n",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayMinimumN")}arrayIndexOf(e){return new FunctionExpression("array_index_of",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1("first")],"arrayIndexOf")}arrayLastIndexOf(e){return new FunctionExpression("array_index_of",[this,__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1("last")],"arrayLastIndexOf")}arrayIndexOfAll(e){return new FunctionExpression("array_index_of_all",[this,__PRIVATE_valueToDefaultExpr$1(e)],"arrayIndexOfAll")}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")}getField(e){return new FunctionExpression("get_field",[this,__PRIVATE_valueToDefaultExpr$1(e)],"get_field")}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")}timestampDiff(e,r){return new FunctionExpression("timestamp_diff",[this,__PRIVATE_fieldOrExpression$1(e),__PRIVATE_valueToDefaultExpr$1(r)],"timestampDiff")}timestampExtract(e,r){const i=[this,__PRIVATE_valueToDefaultExpr$1(e)];return r&&i.push(__PRIVATE_valueToDefaultExpr$1(r)),new FunctionExpression("timestamp_extract",i,"timestampExtract")}documentId(){return new FunctionExpression("document_id",[this],"documentId")}parent(){return new FunctionExpression("parent",[this],"parent")}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")}ifNull(e){return new FunctionExpression("if_null",[this,__PRIVATE_valueToDefaultExpr$1(e)],"ifNull")}coalesce(e,...r){return new FunctionExpression("coalesce",[this,__PRIVATE_valueToDefaultExpr$1(e),...r.map(__PRIVATE_valueToDefaultExpr$1)],"coalesce")}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(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.t=e,this._methodName=r,this.expressionType="ListOfExpressions"}_toProto(e){return{arrayValue:{values:this.t.map((r=>r._toProto(e)))}}}_readUserData(e){this.t.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 _fieldPath(){return this.fieldPath}get fieldName(){return this.fieldPath.canonicalString()}get alias(){return this.fieldName}get expr(){return this}geoDistance(e){return new FunctionExpression("geo_distance",[this,__PRIVATE_valueToDefaultExpr$1(e)],"geoDistance")}_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?Z===e?function documentId$1(){return new D(Z)}()._internalPath:_("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}_getValue(){return 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,r){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.i=e,this._methodName=r,this.expressionType="Constant"}_readUserData(e){e=this._methodName?e.contextWith({methodName:this._methodName}):e,this.i.forEach((r=>{r._readUserData(e)}))}_toProto(e){return toMapValue(e,this.i)}}class FunctionExpression extends Expression{constructor(e,r,i,s){super(),this.name=e,this.params=r,this.expressionType="Function",this._optionsProto=void 0,void 0!==i&&(this._methodName=i),void 0!==s&&(this._options=s)}get _optionsUtil(){return new OptionsUtil({})}_toProto(e){const r={functionValue:{name:this.name,args:this.params.map((r=>r._toProto(e)))}};return this._optionsProto&&(r.functionValue.options=this._optionsProto),r}_readUserData(e){e=this._methodName?e.contextWith({methodName:this._methodName}):e,this.params.forEach((r=>r._readUserData(e))),this._options&&(this._optionsProto=this._optionsUtil.getOptionsProto(e,this._options))}}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"}_getValue(){return this._expr._getValue()}}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 parent(e){return __PRIVATE_valueToDefaultExpr$1(e).parent()}function substring(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_valueToDefaultExpr$1(r),h=void 0===i?void 0:__PRIVATE_valueToDefaultExpr$1(i);return s.substring(o,h)}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 arrayFilter(e,r,i){return __PRIVATE_fieldOrExpression$1(e).arrayFilter(r,i)}function arrayTransform(e,r,i){return __PRIVATE_fieldOrExpression$1(e).arrayTransform(r,i)}function arrayTransformWithIndex(e,r,i,s){return __PRIVATE_fieldOrExpression$1(e).arrayTransformWithIndex(r,i,s)}function arraySlice(e,r,i){return __PRIVATE_fieldOrExpression$1(e).arraySlice(r,i)}function arrayFirst(e){return __PRIVATE_fieldOrExpression$1(e).arrayFirst()}function arrayFirstN(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayFirstN(__PRIVATE_valueToDefaultExpr$1(r))}function arrayLast(e){return __PRIVATE_fieldOrExpression$1(e).arrayLast()}function arrayLastN(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayLastN(__PRIVATE_valueToDefaultExpr$1(r))}function arrayMaximum(e){return __PRIVATE_fieldOrExpression$1(e).arrayMaximum()}function arrayMaximumN(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayMaximumN(__PRIVATE_valueToDefaultExpr$1(r))}function arrayMinimum(e){return __PRIVATE_fieldOrExpression$1(e).arrayMinimum()}function arrayMinimumN(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayMinimumN(__PRIVATE_valueToDefaultExpr$1(r))}function arrayIndexOf(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayIndexOf(__PRIVATE_valueToDefaultExpr$1(r))}function arrayLastIndexOf(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayLastIndexOf(__PRIVATE_valueToDefaultExpr$1(r))}function arrayIndexOfAll(e,r){return __PRIVATE_fieldOrExpression$1(e).arrayIndexOfAll(__PRIVATE_valueToDefaultExpr$1(r))}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),h=__PRIVATE_valueToDefaultExpr$1(i);return s.timestampAdd(o,h)}function timestampSubtract(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_valueToDefaultExpr$1(r),h=__PRIVATE_valueToDefaultExpr$1(i);return s.timestampSubtract(o,h)}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 nor(e,r,...i){return new FunctionExpression("nor",[e,r,...i],"nor").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 ifNull(e,r){return __PRIVATE_fieldOrExpression$1(e).ifNull(r)}function coalesce(e,r,...i){return __PRIVATE_fieldOrExpression$1(e).coalesce(r,...i)}function switchOn(e,r,...i){return new FunctionExpression("switch_on",[__PRIVATE_valueToDefaultExpr$1(e),__PRIVATE_valueToDefaultExpr$1(r),...i.map(__PRIVATE_valueToDefaultExpr$1)],"switchOn")}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):r;return __PRIVATE_fieldOrExpression$1(e).timestampTruncate(s,i)}function variable(e){return new __PRIVATE_VariableExpression(e)}class __PRIVATE_VariableExpression extends Expression{constructor(e){super(),this.name=e,this.expressionType="Variable"}_toProto(e){return{variableReferenceValue:this.name}}_readUserData(e){}}function currentDocument(){return new FunctionExpression("current_document",[])}class __PRIVATE_PipelineValueExpression extends Expression{constructor(e){super(),this.pipeline=e,this.expressionType="PipelineValue"}_toProto(e){return __PRIVATE_toPipelineValue(this.pipeline._toProto(e))}_readUserData(e){this.pipeline._readUserData(e)}}function timestampDiff(e,r,i){const s=__PRIVATE_fieldOrExpression$1(e),o=__PRIVATE_fieldOrExpression$1(r),h=__PRIVATE_valueToDefaultExpr$1(i);return s.timestampDiff(o,h)}function timestampExtract(e,r,i){return __PRIVATE_fieldOrExpression$1(e).timestampExtract(__PRIVATE_valueToDefaultExpr$1(r),i)}function documentMatches(e){return new FunctionExpression("document_matches",[__PRIVATE_valueToDefaultExpr$1(e)],"documentMatches").asBoolean()}function score(){return new FunctionExpression("score",[],"score")}function geoDistance(e,r){return __PRIVATE_toField(e).geoDistance(r)}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 null!=r&&__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_isAliasedExpr(e){return e instanceof AliasedExpression}function __PRIVATE_isField(e){return e instanceof Field}function __PRIVATE_toField(e){return __PRIVATE_isString(e)?field(e):e}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:[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_Define extends Stage{get _name(){return"let"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.o=e}_toProto(e){return{...super._toProto(e),args:[toMapValue(e,this.o)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.o,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:[toMapValue(e,this.accumulators),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:[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.u=e.startsWith("/")?e:"/"+e}_toProto(e){return{...super._toProto(e),args:[{referenceValue:this.u}]}}_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_SubcollectionSource extends Stage{get _name(){return"subcollection"}get _optionsUtil(){return new OptionsUtil({})}constructor(e,r){super(r),this.path=e}_toProto(e){return{...super._toProto(e),args:[{stringValue:this.path}]}}_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){if(super(r),!e||0===e.length)throw new k(w,"Empty document paths are not allowed in DocumentsSource");const i=e.map((e=>e.startsWith("/")?e:"/"+e)),s=new Set(i);if(s.size!==i.length)throw new k(w,"Duplicate document paths are not allowed in DocumentsSource");this._=i,this.l=s}_toProto(e){return{...super._toProto(e),args:this._.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:[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){this.other._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.p)]}}_readUserData(e){super._readUserData(e),__PRIVATE_readUserDataHelper(this.map,e)}}__PRIVATE_Replace.p="full_replace";class __PRIVATE_Search extends Stage{constructor(e){super(e),this.T=e}get _name(){return"search"}get _optionsUtil(){return new OptionsUtil({query:{serverName:"query"},limit:{serverName:"limit"},retrievalDepth:{serverName:"retrieval_depth"},sort:{serverName:"sort"},addFields:{serverName:"add_fields"},select:{serverName:"select"},offset:{serverName:"offset"},A:{serverName:"query_enhancement"},languageCode:{serverName:"language_code"}})}_toProto(e){return{...super._toProto(e),args:[]}}_readUserData(e){__PRIVATE_readUserDataHelper(this.T.query,e),this.T.addFields&&__PRIVATE_readUserDataHelper(this.T.addFields,e),this.T.select&&__PRIVATE_readUserDataHelper(this.T.select,e),this.T.sort&&__PRIVATE_readUserDataHelper(this.T.sort,e),super._readUserData(e)}}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 instanceof Map?e.forEach((e=>e._readUserData(r))):Object.values(e).forEach((e=>e._readUserData(r))),e}function __PRIVATE_selectablesToMap(e){return new Map(Object.entries(__PRIVATE_selectablesToObject(e)))}function __PRIVATE_selectablesToObject(e){const r={};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):z(21273,{selectable:i}),void 0!==r[e])throw new k("invalid-argument",`Duplicate alias or field '${e}'`);r[e]=s}return r}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):function __PRIVATE_isPipeline$1(e){return"object"==typeof e&&null!==e&&"function"==typeof e.toArrayExpression}(e)?function pipelineValue(e){return new __PRIVATE_PipelineValueExpression(e)}(e):__PRIVATE__constant(e,void 0),r)}(e)}class Pipeline{constructor(e,r,i,s){this._db=e,this.userDataReader=r,this._userDataWriter=i,this.stages=s}_readUserData(e){this.stages.forEach((r=>{const i=e.contextWith({methodName:r._name});r._readUserData(i)}))}addFields(e,...r){let i,s;__PRIVATE_isSelectable(e)?(i=[e,...r],s={}):({fields:i,...s}=e);const o=__PRIVATE_selectablesToMap(i),h=new __PRIVATE_AddFields(o,s);return this._addStage(h)}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 this._addStage(o)}define(e,...r){const i=__PRIVATE_isAliasedExpr(e)?{}:e,s=__PRIVATE_selectablesToMap(__PRIVATE_isAliasedExpr(e)?[e,...r]:e.variables),o=new __PRIVATE_Define(s,i);return this._addStage(o)}toArrayExpression(){return new FunctionExpression("array",[__PRIVATE_fieldOrExpression(this)])}toScalarExpression(){return new FunctionExpression("scalar",[__PRIVATE_fieldOrExpression(this)])}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);return this._addStage(o)}where(e){const r=__PRIVATE_isBooleanExpr(e)?{}:e,i=__PRIVATE_isBooleanExpr(e)?e:e.condition,s=new __PRIVATE_Where(i,r);return 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);return this._addStage(s)}limit(e){const r=__PRIVATE_isNumber(e)?{}:e,i=__PRIVATE_isNumber(e)?e:e.limit,s=new __PRIVATE_Limit(i,r);return 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);return 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??[],h=function __PRIVATE_aliasedAggregateToMap(e){return e.reduce(((e,r)=>{if(void 0!==e.get(r.alias))throw new k("invalid-argument",`Duplicate alias or field '${r.alias}'`);return e.set(r.alias,r.aggregate),e}),new Map)}(s),E=__PRIVATE_selectablesToMap(o),T=new __PRIVATE_Aggregate(E,h,i);return this._addStage(T)}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);return this._addStage(o)}search(e){const r=e.addFields?__PRIVATE_selectablesToObject(e.addFields):void 0,i=__PRIVATE_isExpr(e.query)?e.query:documentMatches(e.query),s=__PRIVATE_isOrdering(e.sort)?[e.sort]:e.sort,o={...e,addFields:r,select:void 0,query:i,sort:s},h=new __PRIVATE_Search(o);return this._addStage(h)}sort(e,...r){const i=__PRIVATE_isOrdering(e)?{}:e,s=__PRIVATE_isOrdering(e)?[e,...r]:e.orderings,o=new __PRIVATE_Sort(s,i);return this._addStage(o)}replaceWith(e){const r=__PRIVATE_isString(e)||__PRIVATE_isExpr(e)?{}:e,i=__PRIVATE_fieldOrExpression(__PRIVATE_isString(e)||__PRIVATE_isExpr(e)?e:e.map),s=new __PRIVATE_Replace(i,r);return 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);return 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);return 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 h=s.alias,E=s.expr;__PRIVATE_isString(o)&&(i.indexField=_field(o,"unnest"));const T=new __PRIVATE_Unnest(h,E,i);return this._addStage(T)}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??{});return 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,r)}newPipeline(e,r){return new Pipeline(e,this.userDataReader,this._userDataWriter,r)}}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:z(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:z(35306)}throw new Error(`Failed to convert filter to pipeline conditions: ${e}`)}function __PRIVATE_toPipelineStages(e,r){let i;i=function __PRIVATE_isCollectionGroupQuery(e){return null!==e.collectionGroup}(e)?r.pipeline().collectionGroup(e.collectionGroup):function __PRIVATE_isDocumentQuery(e){return x.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.Ie){r.Ie=[];const e=new Set;for(const i of r.explicitOrderBy)r.Ie.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(te.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.Ie.push(new OrderBy(s,i))})),e.has(te.keyField().canonicalString())||r.Ie.push(new OrderBy(te.keyField(),i))}return r.Ie}(e),o=s.map((e=>field(e.field.canonicalString()).exists()));i=o.length>1?i.where(and(o[0],o[1],...o.slice(2))):i.where(o[0]);const h=s.map((e=>"asc"===e.dir?field(e.field.canonicalString()).ascending():field(e.field.canonicalString()).descending()));if(h.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)))}(h);i=i.sort(r[0],...r.slice(1)),null!==e.startAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.startAt,h,"after"))),null!==e.endAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.endAt,h,"before"))),i=i.limit(e.limit),i=i.sort(h[0],...h.slice(1))}else i=i.sort(h[0],...h.slice(1)),null!==e.startAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.startAt,h,"after"))),null!==e.endAt&&(i=i.where(__PRIVATE_whereConditionsFromCursor(e.endAt,h,"before"))),null!==e.limit&&(i=i.limit(e.limit));return i.stages}function __PRIVATE_whereConditionsFromCursor(e,r,i){const s="before"===i?lessThan:greaterThan,o=e.position.map((e=>Constant._fromProto(e))),h=o.length;let E=r[h-1].expr,T=o[h-1],P=s(E,T);e.inclusive&&(P=or(P,E.equal(T)));for(let e=h-2;e>=0;e--)E=r[e].expr,T=o[e],P=or(s(E,T),and(E.equal(T),P));return P}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),h=this.userDataReader.createContext(3,"collection");return o._readUserData(h),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),h=this.userDataReader.createContext(3,"documents");return o._readUserData(h),this._createPipeline([o])}createFrom(e){return this._createPipeline(__PRIVATE_toPipelineStages(e._query,e.firestore))}_validateReference(e){const r=e.firestore._databaseId;if(!r.isEqual(this.databaseId))throw new k(w,`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.`)}}function subcollection(e){let r,i;__PRIVATE_isString(e)?(r=e,i={}):({path:r,...i}=e);const s=new __PRIVATE_SubcollectionSource(r,i);return new Pipeline(void 0,void 0,void 0,[s])}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,h,E){this._ref=i,this._userDataWriter=e,this._createTime=s,this._updateTime=o,this._fields=r,this._metadata=h,this._listenOptions=E}static fromDocument(e,r,i,s,o){return new PipelineResult(e,r.data,i,r.createTime.toTimestamp(),r.version.toTimestamp(),s,o)}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,this._listenOptions?.serverTimestampBehavior)}_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(_("DocumentSnapshot.get",e));return null!==r?this._userDataWriter.convertValue(r,this._listenOptions?.serverTimestampBehavior):void 0}}class __PRIVATE_StructuredPipelineOptions{constructor(e={},r={}){this.h=e,this.P=r,this.V=new OptionsUtil({indexMode:{serverName:"index_mode"}})}_readUserData(e){this.proto=this.V.getOptionsProto(e,this.h,this.P)}}class StructuredPipeline{constructor(e,r){this.pipeline=e,this.options=r}_toProto(e){return{pipeline:this.pipeline._toProto(e),options:this.options.proto}}}function execute(e){if(!e._db)return Promise.reject(new k(U,"This pipeline was created without a database (e.g., as a subcollection pipeline) and cannot be executed directly. It can only be used as part of another pipeline."));const r=function d(e){if(e._terminated)throw new k(U,"The client has already been terminated.");if(!fe.has(e)){a(de,"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,o._customHeaders,o.grpcFlowControlWindow)}(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);fe.set(e,s)}return fe.get(e)}(e._db),i=function f(e,r){if("_delegate"in e&&(e=e._delegate),!(e instanceof r)){if(r.name===e.constructor.name)throw new k(w,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const i=__PRIVATE_valueDescription(e);throw new k(w,`Expected type '${r.name}', but it was: ${i}`)}}return e}(e._db,n),s=p(i).createContext(3,"execute");e._readUserData(s);const o=new A(i),h=new __PRIVATE_StructuredPipelineOptions({},{});h._readUserData(s);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 h=await i.de("ExecutePipeline",i.serializer.databaseId,ResourcePath.emptyPath(),s),E=[];return h.forEach((e=>{if(e.results&&0!==e.results.length)return e.results.forEach((r=>E.push(__PRIVATE_fromPipelineResponse(i.serializer,e,r))));E.push(__PRIVATE_fromPipelineResponse(i.serializer,e))})),E}(r,new StructuredPipeline(e,h)).then((r=>{const s=r.length>0?r[0].executionTime?.toTimestamp():void 0,h=r.filter((e=>!!e.fields)).map((e=>new PipelineResult(o,e.fields,e.key?.path?new DocumentReference(i,null,e.key):void 0,e.createTime?.toTimestamp(),e.updateTime?.toTimestamp())));return new PipelineSnapshot(e,h,s)}))}n.prototype.pipeline=function(){const e=new A(this),r=p(this);return new PipelineSource(this._databaseId,r,(i=>new Pipeline(this,r,e,i)))};export{AggregateFunction,AliasedAggregate,AliasedExpression,BooleanExpression,Bytes,Constant,DocumentReference,Expression,Field,D as FieldPath,FieldValue,n as Firestore,FunctionExpression,GeoPoint,Ordering,Pipeline,PipelineResult,PipelineSnapshot,PipelineSource,Query,QueryDocumentSnapshot,Timestamp,VectorValue,abs,add,and,array,arrayAgg,arrayAggDistinct,arrayConcat,arrayContains,arrayContainsAll,arrayContainsAny,arrayFilter,arrayFirst,arrayFirstN,arrayGet,arrayIndexOf,arrayIndexOfAll,arrayLast,arrayLastIndexOf,arrayLastN,arrayLength,arrayMaximum,arrayMaximumN,arrayMinimum,arrayMinimumN,arraySlice,arraySum,arrayTransform,arrayTransformWithIndex,ascending,average,byteLength,ceil,charLength,coalesce,collectionId,concat,conditional,constant,cosineDistance,count,countAll,countDistinct,countIf,currentDocument,currentTimestamp,descending,divide,documentId,documentMatches,dotProduct,endsWith,equal,equalAny,euclideanDistance,execute,exists,exp,field,first,floor,geoDistance,greaterThan,greaterThanOrEqual,ifAbsent,ifError,ifNull,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,nor,not,notEqual,notEqualAny,or,parent,pow,rand,regexContains,regexFind,regexFindAll,regexMatch,reverse,round,rtrim,score,split,sqrt,startsWith,stringConcat,stringContains,stringIndexOf,stringRepeat,stringReplaceAll,stringReplaceOne,stringReverse,subcollection,substring,subtract,sum,switchOn,timestampAdd,timestampDiff,timestampExtract,timestampSubtract,timestampToUnixMicros,timestampToUnixMillis,timestampToUnixSeconds,timestampTruncate,toLower,toUpper,trim,trunc,type,unixMicrosToTimestamp,unixMillisToTimestamp,unixSecondsToTimestamp,variable,vectorLength,xor};
2
2
 
3
3
  //# sourceMappingURL=firebase-firestore-lite-pipelines.js.map