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