rittenhop-ghost/versions/5.94.2/node_modules/mingo/dist/mingo.min.js

4 lines
37 KiB
JavaScript

//! mingo.js 2.5.3
//! Copyright (c) 2020 Francis Asante
//! MIT
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n=n||self).mingo=t()}(this,function(){"use strict";function e(n){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function o(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function u(n,t){for(var r=0;r<t.length;r++){var e=t[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(n,e.key,e)}}function n(n,t,r){return t&&u(n.prototype,t),r&&u(n,r),n}function i(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var r=[],e=!0,u=!1,i=void 0;try{for(var o,a=n[Symbol.iterator]();!(e=(o=a.next()).done)&&(r.push(o.value),!t||r.length!==t);e=!0);}catch(n){u=!0,i=n}finally{try{e||null==a.return||a.return()}finally{if(u)throw i}}return r}(n,t)||function(n,t){if(!n)return;if("string"==typeof n)return a(n,t);var r=Object.prototype.toString.call(n).slice(8,-1);"Object"===r&&n.constructor&&(r=n.constructor.name);if("Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(n,t)}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=new Array(t);r<t;r++)e[r]=n[r];return e}var s="null",c="undefined",f="boolean",l="number",v="string",h="date",p="regexp",d="array",g="object",m="function",$=[s,c,f,l,v,h,p],y="expression",b="group",_="pipeline",x="projection",k="query",O=function(){};Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(n,t){if(null==this)throw new TypeError('"this" is null or not defined');var r=Object(this),e=r.length>>>0;if(0==e)return!1;var u,i,o=0|t,a=Math.max(0<=o?o:e-Math.abs(o),0);for(;a<e;){if((u=r[a])===(i=n)||"number"==typeof u&&"number"==typeof i&&isNaN(u)&&isNaN(i))return!0;a++}return!1}});var w=Array.prototype.push;function M(n,t){n||H(t)}function j(n){switch(E(n)){case d:return n.map(j);case g:return K(n,j);default:return n}}function A(n){switch(E(n)){case d:return cn([],n);case g:return Object.assign({},n);default:return n}}function N(n){return null===n?"Null":void 0===n?"Undefined":n.constructor.name}function E(n){return N(n).toLowerCase()}function S(n){return E(n)===f}function I(n){return E(n)===v}function P(n){return E(n)===l}var C=Array.isArray||function(n){return!!n&&n.constructor===Array};function T(n){return!!n&&n.constructor===Object}function q(n){return n===Object(n)}function F(n){return E(n)===h}function L(n){return E(n)===p}function r(n){return E(n)===m}function R(n){return null==n}function U(n){return null===n}function t(n){return void 0===n}function D(n,t){return n.includes(t)}function z(n,t){return!D(n,t)}function B(n){return!!n}function V(n){return R(n)||C(n)&&0===n.length||T(n)&&0===Q(n).length||!n}function Y(n){return C(n)?n:[n]}function J(n,t){return n.hasOwnProperty(t)}function H(n){throw new Error(n)}var Q=Object.keys;function G(n,t,r){if(t=t.bind(r),C(n))for(var e=0,u=n.length;e<u&&!1!==t(n[e],e,n);e++);else for(var i in n)if(n.hasOwnProperty(i)&&!1===t(n[i],i,n))break}function K(n,t,r){t=t.bind(r);for(var e={},u=Q(n),i=0;i<u.length;i++){var o=u[i];e[o]=t(n[o],o)}return e}function W(t,r,n){var e=2<arguments.length&&void 0!==n?n:{};if(t===O)return r;if(r===O)return t;var u=[t,r];if(!u.every(T)&&!u.every(C))throw Error("mismatched types. must both be array or object");if(e.flatten=e.flatten||!1,C(t))if(e.flatten){for(var i=0,o=0;i<t.length&&o<r.length;)t[i]=W(t[i++],r[o++],e);for(;o<r.length;)t.push(r[o++])}else w.apply(t,r);else Object.keys(r).forEach(function(n){t.hasOwnProperty(n)?t[n]=W(t[n],r[n],e):t[n]=r[n]});return t}function X(r,e,u){return C(r)?r.reduce(e,u):(G(r,function(n,t){return u=e(u,n,t,r)}),u)}function Z(n,t){var r=t.map(un);return n.filter(function(n){return D(r,un(n))})}function nn(n,t){var i=[];return function n(t,r){for(var e=0,u=t.length;e<u;e++)C(t[e])&&(0<r||r<0)?n(t[e],Math.max(-1,r-1)):i.push(t[e])}(n,1<arguments.length&&void 0!==t?t:-1),i}function tn(n,t){for(var r=[n],e=[t];0<r.length;)if((n=r.pop())!==(t=e.pop())){var u=E(n);if(u!==E(t)||u===m)return!1;switch(u){case d:if(n.length!==t.length)return!1;cn(r,n),cn(e,t);break;case g:var i=Q(n),o=Q(t);if(i.length!==o.length)return!1;i.sort(),o.sort();for(var a=0,s=i.length;a<s;a++){var c=i[a];if(c!==o[a])return!1;r.push(n[c]),e.push(t[c])}break;default:if(en(n)!==en(t))return!1}}return 0===r.length}function rn(n){var r={},e=[];return G(n,function(n){var t=un(n);J(r,t)||(e.push(n),r[t]=0)}),e}function en(t){var n=E(t);switch(n){case f:case l:case p:return t.toString();case v:return JSON.stringify(t);case h:return t.toISOString();case s:case c:return n;case d:return"["+t.map(en)+"]";default:var r=n===g?"":"".concat(N(t)),e=Q(t);return e.sort(),"".concat(r,"{")+e.map(function(n){return"".concat(en(n),":").concat(en(t[n]))})+"}"}}function un(n){if(R(n))return null;for(var t=0,r=en(n),e=r.length;e;)t=(t<<5)-t^r.charCodeAt(--e);return t>>>0}function on(n,t){return n<t?-1:t<n?1:0}function an(n,t,r){var e=[],u=[],i={};if(r=r||on,V(n))return n;for(var o=0;o<n.length;o++){var a=n[o],s=t(a,o);R(s)?u.push(a):(i[s]?i[s].push(a):i[s]=[a],e.push(s))}e.sort(r);for(var c=0;c<e.length;c++)cn(u,i[e[c]]);return u}function sn(n,u){var i={keys:[],groups:[]},o={};return G(n,function(n){var t=u(n),r=un(t),e=-1;void 0===o[r]&&(e=i.keys.length,o[r]=e,i.keys.push(t),i.groups.push([])),e=o[r],i.groups[e].push(n)}),i}function cn(n,t){return w.apply(n,t),n}function fn(u){var i,o=this;return i={},function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];var e=un(t);return J(i,e)||(i[e]=u.apply(o,t)),i[e]}}function ln(n,t){return q(n)?n[t]:void 0}function vn(n,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},o=0;return r.meta=r.meta||!1,n=D($,E(n))?n:function e(n,u){for(var t=n,r=0;r<u.length;r++){var i=u[r];if(null===i.match(/^\d+$/)&&C(t)){if(0===r&&0<o)break;o+=1,u=u.slice(r),t=X(t,function(n,t){var r=e(t,u);return void 0!==r&&n.push(r),n},[]);break}if(void 0===(t=ln(t,i)))break}return t}(n,t.split(".")),r.meta?{result:n,depth:o}:n}function hn(n,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};r.preserveMissingValues=r.preserveMissingValues||!1;var e,u,i=t.split("."),o=i[0],a=1===i.length||i.slice(1).join("."),s=null!==o.match(/^\d+$/),c=1<i.length;try{C(n)?s?(e=ln(n,Number(o)),c&&(e=hn(e,a,r)),e=[e]):(e=[],G(n,function(n){u=hn(n,t,r),r.preserveMissingValues?(void 0===u&&(u=O),e.push(u)):void 0!==u&&e.push(u)})):(u=ln(n,o),c&&(u=hn(u,a,r)),M(void 0!==u),(e={})[o]=u)}catch(n){e=void 0}return e}function pn(n){if(C(n))for(var t=n.length-1;0<=t;t--)n[t]===O?n.splice(t,1):pn(n[t]);else if(T(n))for(var r in n)n.hasOwnProperty(r)&&pn(n[r]);return n}function dn(n,t,r,e){var u=3<arguments.length&&void 0!==e&&e,i=t.split("."),o=i[0],a=1===i.length||i.slice(1).join(".");1===i.length?r(n,o):(!0===u&&R(n[o])&&(n[o]={}),dn(n[o],a,r,u))}function gn(n,t,r){dn(n,t,function(n,t){n[t]=r},!0)}function mn(n,t){dn(n,t,function(n,t){C(n)&&/^\d+$/.test(t)?n.splice(parseInt(t),1):T(n)&&delete n[t]})}function $n(n){return!!n&&"$"===n[0]}function yn(n){if(D($,E(n)))return L(n)?{$regex:n}:{$eq:n};if(q(n)){var t=Q(n);if(!t.some($n))return{$eq:n};if(D(t,"$regex")){var r=n.$regex,e=n.$options||"",u="";I(r)&&(u+=r.ignoreCase||0<=e.indexOf("i")?"i":"",u+=r.multiline||0<=e.indexOf("m")?"m":"",u+=r.global||0<=e.indexOf("g")?"g":"",r=new RegExp(r,u)),n.$regex=r,delete n.$options}}return n}function bn(n,t,r){var e=2<arguments.length&&void 0!==r?r:null;return R(e)?t<0?(t=Math.max(0,n.length+t),e=n.length-t+1):(e=t,t=0):(t<0&&(t=Math.max(0,n.length+t)),M(0<e,"Invalid argument value for $slice operator. Limit must be a positive number"),e+=t),n.slice(t,e)}function _n(n,t){var r=X(n,function(n,t){return n+t},0),e=n.length||1,u=t?1:0,i=r/e;return Math.sqrt(X(n,function(n,t){return n+Math.pow(t-i,2)},0)/(e-u))}function xn(){return Object.assign({computeValue:Sn,ops:Nn},{assert:M,clone:A,cloneDeep:j,each:G,err:H,hashCode:un,getType:N,has:J,includes:D.bind(null),isArray:C,isBoolean:S,isDate:F,isEmpty:V,isEqual:tn,isFunction:r,isNil:R,isNull:U,isNumber:P,isObject:T,isRegExp:L,isString:I,isUndefined:t,keys:Q,reduce:X,resolve:vn,resolveObj:hn})}var kn={key:"_id"};var On={$$ROOT:function(n,t,r){return r.root},$$CURRENT:function(n){return n},$$REMOVE:function(){}},wn={$$KEEP:function(n){return n},$$PRUNE:function(){},$$DESCEND:function(r,e,u){return J(e,"$cond")&&G(r,function(n,t){q(n)&&(C(n)?(i=[],G(n,function(n){T(n)&&(n=In(n,e,u)),R(n)||i.push(n)})):i=In(n,e,u),R(i)?delete r[t]:r[t]=i)}),r;var i}},Mn=Q(On),jn=Q(wn);function An(){return kn.key}function Nn(){return X(Array.prototype.slice.call(arguments),function(n,t){return cn(n,Q(tr[t]))},[])}function En(r,n,e){if(J(tr[b],n))return tr[b][n](r,e);if(T(e)){var u={};return G(e,function(n,t){if(u[t]=En(r,t,e[t]),J(tr[b],t))return u=u[t],M(1===Q(e).length,"Invalid $group expression '"+JSON.stringify(e)+"'"),!1}),u}}function Sn(r,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null,u=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};if(u.root=u.root||r,J(tr[y],n))return tr[y][n](r,e,u);if(J(tr[b],n))return r=Sn(r,e,null,u),M(C(r),n+" expression must resolve to an array"),tr[b][n](r,null,u);if(I(e)&&0<e.length&&"$"===e[0]){if(D(Mn,e))return On[e](r,null,u);if(D(jn,e))return e;var t=Mn.filter(function(n){return 0===e.indexOf(n+".")});return 1===t.length&&("$$ROOT"===(t=t[0])&&(r=u.root),e=e.substr(t.length)),vn(r,e.slice(1))}switch(E(e)){case d:return e.map(function(n){return Sn(r,n)});case g:var i={};return G(e,function(n,t){if(i[t]=Sn(r,n,t,u),[y,b].some(function(n){return J(tr[n],t)}))return M(1===Q(e).length,"Invalid aggregation expression '"+JSON.stringify(e)+"'"),i=i[t],!1}),i;default:return e}}function In(n,t,r){var e=2<arguments.length&&void 0!==r?r:{};e.root=e.root||n;var u=Sn(n,t,null,e);return D(jn,u)?wn[u](n,t,e):u}function Pn(n,t,r){t=t||0;var e=Math.abs(n)===n?1:-1;n=Math.abs(n);var u=Math.trunc(n),i=n-u;if(0===t){var o=Math.trunc(10*i);r&&1==(1&u)&&5<=o&&u++}else if(0<t){var a=Math.pow(10,t),s=Math.trunc(i*a),c=Math.trunc(i*a*10)%10;r&&5<c&&(s+=1),u+=s/a}else if(t<0){var f=Math.pow(10,-1*t),l=u%f;if(u=Math.max(0,u-l),r&&-1==e){for(;10<l;)l-=l%10;0<u&&5<=l&&(u+=f)}}return u*e}function Cn(n){return n instanceof Bn?n:new Bn(n)}function Tn(n){return!!n&&"object"===e(n)&&qn(n.next)}function qn(n){return!!n&&"function"==typeof n}Cn.isIterator=Tn;var Fn=new Error,Ln=1,Rn=2,Un=3,Dn=4;function zn(f,l,v){var h=!1,p=-1,d=0;return function(n){n=n===v;try{n:for(;!h;){var t=f();p++;for(var r=-1,e=l.length,u=!1;++r<e;){var i=l[r],o=i.func;switch(i.type){case Ln:t=o(t,p);break;case Rn:if(!o(t,p))continue n;break;case Un:--i.func,i.func||(u=!0);break;case Dn:--i.func,i.func||(s=r,c=(a=l).slice(s+1),a.splice(s),Array.prototype.push.apply(a,c));continue n;default:break n}}if(h=u,!n)return{value:t,done:!1};v[d++]=t}}catch(n){if(n!==Fn)throw n}var a,s,c;return{done:h=!0}}}var Bn=function(){function i(n){if(o(this,i),this.__iteratees=[],this.__first=!1,this.__done=!1,this.__buf=[],qn(n)&&(n={next:n}),Tn(n)){var t=n;n=function(){var n=t.next();if(n.done)throw Fn;return n.value}}else if(Array.isArray(n)){var r=n,e=r.length,u=0;n=function(){if(u<e)return r[u++];throw Fn}}else if(!qn(n))throw new Error("Source is not iterable. Must be Array, Function or Object{next:Function}");this.next=zn(n,this.__iteratees,this.__buf)}return n(i,[{key:"_validate",value:function(){if(this.__first)throw new Error("Cannot add iteratee/transform after `first()`")}},{key:"_push",value:function(n){return this._validate(),this.__iteratees.push(n),this}},{key:"map",value:function(n){return this._push({type:Ln,func:n})}},{key:"filter",value:function(n){return this._push({type:Rn,func:n})}},{key:"take",value:function(n){return 0<n?this._push({type:Un,func:n}):this}},{key:"drop",value:function(n){return 0<n?this._push({type:Dn,func:n}):this}},{key:"transform",value:function(n){this._validate();var t,r=this;return Cn(function(){return(t=t||Cn(n(r.value()))).next()})}},{key:"first",value:function(){return this.take(1),this.__first=!0,this}},{key:"value",value:function(){return this.__done||(this.__done=this.next(this.__buf).done),this.__first?this.__buf[0]:this.__buf}},{key:"each",value:function(n){for(;;){var t=this.next();if(t.done)break;if(!1===n(t.value))return!1}return!0}},{key:"reduce",value:function(n,t){var r=this.next(),e=0;for(void 0!==t||r.done||(t=r.value,r=this.next(),e++);!r.done;)t=n(t,r.value,e++),r=this.next();return t}},{key:"size",value:function(){return this.reduce(function(n,t){return++n},0)}}]),i}();"function"==typeof Symbol&&(Bn.prototype[Symbol.iterator]=function(){return this});var Vn=function(){function r(n,t){o(this,r),this.__operators=n,this.__options=t}return n(r,[{key:"stream",value:function(r,e){var u=this;r=Cn(r);var i=tr[_];return V(this.__operators)||G(this.__operators,function(n){var t=Q(n);M(1===t.length&&D(Nn(_),t[0]),"invalid aggregation operator ".concat(t)),t=t[0],r=e&&e instanceof Hn?i[t].call(e,r,n[t],u.__options):i[t](r,n[t],u.__options)}),r}},{key:"run",value:function(n,t){return this.stream(n,t).value()}}]),r}();function Yn(n,t,r){return M(C(t),"Aggregation pipeline must be an array"),new Vn(t,r).run(n)}var Jn=function(){function e(n,t,r){o(this,e),this.__filterFn=t.test.bind(t),this.__query=t,this.__source=n,this.__projection=r||t.__projection,this.__operators=[],this.__result=null,this.__stack=[],this.__options={}}return n(e,[{key:"_fetch",value:function(){return this.__result||(T(this.__projection)&&this.__operators.push({$project:this.__projection}),this.__result=Cn(this.__source).filter(this.__filterFn),0<this.__operators.length&&(this.__result=new Vn(this.__operators,this.__options).stream(this.__result,this.__query))),this.__result}},{key:"all",value:function(){return this._fetch().value()}},{key:"count",value:function(){return this.all().length}},{key:"skip",value:function(n){return this.__operators.push({$skip:n}),this}},{key:"limit",value:function(n){return this.__operators.push({$limit:n}),this}},{key:"sort",value:function(n){return this.__operators.push({$sort:n}),this}},{key:"collation",value:function(n){return this.__options.collation=n,this}},{key:"next",value:function(){if(this.__stack){if(0<this.__stack.length)return this.__stack.pop();var n=this._fetch().next();if(!n.done)return n.value;this.__stack=null}}},{key:"hasNext",value:function(){if(!this.__stack)return!1;if(0<this.__stack.length)return!0;var n=this._fetch().next();return n.done?this.__stack=null:this.__stack.push(n.value),!!this.__stack}},{key:"map",value:function(n){return this._fetch().map(n).value()}},{key:"forEach",value:function(n){this._fetch().each(n)}}]),e}();"function"==typeof Symbol&&(Jn.prototype[Symbol.iterator]=function(){return this._fetch()});var Hn=function(){function r(n,t){o(this,r),this.__criteria=n,this.__projection=t||{},this.__compiled=[],this._compile()}return n(r,[{key:"_compile",value:function(){var t,e=this;M(T(this.__criteria),"query criteria must be an object"),G(this.__criteria,function(n,r){"$where"===r?t={field:r,expr:n}:"$expr"===r||D(["$and","$or","$nor"],r)?e._processOperator(r,r,n):(M(!$n(r),"unknown top level operator: ".concat(r)),G(n=yn(n),function(n,t){e._processOperator(r,t,n)})),T(t)&&e._processOperator(t.field,t.field,t.expr)})}},{key:"_processOperator",value:function(n,t,r){M(J(tr[k],t),"invalid query operator ".concat(t," detected")),this.__compiled.push(tr[k][t](n,r))}},{key:"test",value:function(n){for(var t=0,r=this.__compiled.length;t<r;t++)if(!this.__compiled[t](n))return!1;return!0}},{key:"find",value:function(n,t){return new Jn(n,this,t)}},{key:"remove",value:function(n){var r=this;return X(n,function(n,t){return r.test(t)||n.push(t),n},[])}}]),r}();function Qn(n,t){if(tn(n,t))return!0;if(R(n)&&R(t))return!0;if(C(n)){var r=tn.bind(null,t);return n.some(r)||nn(n,1).some(r)}return!1}function Gn(n,t){return!Qn(n,t)}function Kn(n,t){return R(n)?t.some(U):0<Z(Y(n),t).length}function Wn(n,t){return!Kn(n,t)}function Xn(n,t){return et(n,t,function(n,t){return n<t})}function Zn(n,t){return et(n,t,function(n,t){return n<=t})}function nt(n,t){return et(n,t,function(n,t){return t<n})}function tt(n,t){return et(n,t,function(n,t){return t<=n})}function rt(n,t){if(C(n)&&!V(n)){var r=function(n){return n},e=t;Q(t).every($n)&&(e={temp:t},r=function(n){return{temp:n}});for(var u=new Hn(e),i=0,o=n.length;i<o;i++)if(u.test(r(n[i])))return!0}return!1}function et(n,t,r){return Y(n).some(function(n){return N(n)===N(t)&&r(n,t)})}function ut(e){return function(n,t){var r=Sn(n,t);return e(r[0],r[1])}}var it=ut(Qn),ot=ut(Gn),at=ut(nt),st=ut(Xn),ct=ut(tt),ft=ut(Zn),lt=ut(Wn);function vt(n,t){var r=Sn(n,t),e=new Date(r.getFullYear(),0,0),u=r-e;return Math.round(u/864e5)}function ht(n,t){return Sn(n,t).getDate()}function pt(n,t){return Sn(n,t).getDay()+1}function dt(n,t){return Sn(n,t).getFullYear()}function gt(n,t){return Sn(n,t).getMonth()+1}function mt(n,t){var r=Sn(n,t);(r=new Date(+r)).setHours(0,0,0),r.setDate(r.getDate()+4-(r.getDay()||7));var e=new Date(r.getFullYear(),0,1);return Math.floor(((r-e)/864e5+1)/7)}function $t(n,t){return Sn(n,t).getUTCHours()}function yt(n,t){return Sn(n,t).getMinutes()}function bt(n,t){return Sn(n,t).getSeconds()}function _t(n,t){return Sn(n,t).getMilliseconds()}var xt={"%Y":[dt,4],"%m":[gt,2],"%d":[ht,2],"%H":[$t,2],"%M":[yt,2],"%S":[bt,2],"%L":[_t,3],"%j":[vt,3],"%w":[pt,1],"%U":[mt,2],"%%":"%"};function kt(n,t){var r=Sn(n,t),e=r[0],u=r[1],i=r[2];return!I(e)||u<0?"":i<0?e.substr(u):e.substr(u,i)}var Ot=[192,224,240];function wt(n){if(n<128)return[n];for(var t=(n<2048?1:n<65536&&2)||3,r=[(n>>6*t)+Ot[t-1]];0<t;)r.push(128|n>>6*--t&63);return r}var Mt=Object.freeze({__proto__:null,$abs:function(n,t){var r=Sn(n,t);return null==r?null:Math.abs(r)},$add:function(n,t){var r=Sn(n,t),e=!1,u=X(r,function(n,t){return F(t)&&(M(!e,"'$add' can only have one date value"),e=!0,t=t.getTime()),n+=t},0);return e?new Date(u):u},$ceil:function(n,t){var r=Sn(n,t);return R(r)?null:(M(P(r)||isNaN(r),"$ceil expression must resolve to a number."),Math.ceil(r))},$divide:function(n,t){var r=Sn(n,t);return r[0]/r[1]},$exp:function(n,t){var r=Sn(n,t);return R(r)?null:(M(P(r)||isNaN(r),"$exp expression must resolve to a number."),Math.exp(r))},$floor:function(n,t){var r=Sn(n,t);return R(r)?null:(M(P(r)||isNaN(r),"$floor expression must resolve to a number."),Math.floor(r))},$ln:function(n,t){var r=Sn(n,t);return R(r)?null:(M(P(r)||isNaN(r),"$ln expression must resolve to a number."),Math.log(r))},$log:function(n,t){var r=Sn(n,t),e="$log expression must resolve to array(2) of numbers";return M(C(r)&&2===r.length,e),r.some(R)?null:(M(r.some(isNaN)||r.every(P),e),Math.log10(r[0])/Math.log10(r[1]))},$log10:function(n,t){var r=Sn(n,t);return R(r)?null:(M(P(r)||isNaN(r),"$log10 expression must resolve to a number."),Math.log10(r))},$mod:function(n,t){var r=Sn(n,t);return r[0]%r[1]},$multiply:function(n,t){return X(Sn(n,t),function(n,t){return n*t},1)},$pow:function(n,t){var r=Sn(n,t);return M(C(r)&&2===r.length&&r.every(P),"$pow expression must resolve to array(2) of numbers"),M(!(0===r[0]&&r[1]<0),"$pow cannot raise 0 to a negative exponent"),Math.pow(r[0],r[1])},$round:function(n,t){var r=Sn(n,t),e=r[0],u=r[1];return R(e)||isNaN(e)||Math.abs(e)===1/0?e:(M(P(e),"$round expression must resolve to a number."),Pn(e,u,!0))},$sqrt:function(n,t){var r=Sn(n,t);return R(r)?null:(M(P(r)&&0<r||isNaN(r),"$sqrt expression must resolve to non-negative number."),Math.sqrt(r))},$subtract:function(n,t){var r=Sn(n,t);return r[0]-r[1]},$trunc:function(n,t){var r=Sn(n,t),e=r[0],u=r[1];return R(e)||isNaN(e)||Math.abs(e)===1/0?e:(M(P(e),"$trunc expression must resolve to a number."),M(R(u)||P(u)&&-20<u&&u<100,"$trunc expression has invalid place"),Pn(e,u,!1))},$arrayElemAt:function(n,t){var r=Sn(n,t);M(C(r)&&2===r.length,"$arrayElemAt expression must resolve to array(2)"),M(C(r[0]),"First operand to $arrayElemAt must resolve to an array"),M(P(r[1]),"Second operand to $arrayElemAt must resolve to an integer");var e=r[1];return r=r[0],e<0&&Math.abs(e)<=r.length?r[e+r.length]:0<=e&&e<r.length?r[e]:void 0},$arrayToObject:function(n,t){var r=Sn(n,t);return M(C(r),"$arrayToObject expression must resolve to an array"),X(r,function(n,t){return C(t)&&2==t.length?n[t[0]]=t[1]:(M(T(t)&&J(t,"k")&&J(t,"v"),"$arrayToObject expression is invalid."),n[t.k]=t.v),n},{})},$concatArrays:function(n,t){var r=Sn(n,t,null);return M(C(r),"$concatArrays must resolve to an array"),r.some(R)?null:r.reduce(function(n,t){return cn(n,t)},[])},$filter:function(n,t){var r=Sn(n,t.input),e=t.as,u=t.cond;return M(C(r),"$filter 'input' expression must resolve to an array"),r.filter(function(n){var t={};return t["$"+e]=n,!0===Sn(t,u)})},$in:function(n,t){var r=Sn(n,t[0]),e=Sn(n,t[1]);return M(C(e),"$in second argument must be an array"),e.some(tn.bind(null,r))},$indexOfArray:function(n,t){var r=Sn(n,t);if(R(r))return null;var e=r[0],u=r[1];if(R(e))return null;M(C(e),"$indexOfArray expression must resolve to an array.");var i=r[2]||0,o=r[3];return R(o)&&(o=e.length),o<i?-1:(M(0<=i&&0<=o,"$indexOfArray expression is invalid"),(0<i||o<e.length)&&(e=e.slice(i,o)),e.findIndex(tn.bind(null,u))+i)},$isArray:function(n,t){return C(Sn(n,t[0]))},$map:function(t,n){var r=Sn(t,n.input);M(C(r),"$map 'input' expression must resolve to an array");var e=n.as,u=n.in,i="$"+e;return r.map(function(n){return t[i]=n,Sn(t,u)})},$objectToArray:function(n,t){var r=Sn(n,t);M(T(r),"$objectToArray expression must resolve to an object");var e=[];return G(r,function(n,t){return e.push({k:t,v:n})}),e},$range:function(n,t){for(var r=Sn(n,t),e=r[0],u=r[1],i=r[2]||1,o=[];e<u&&0<i||u<e&&i<0;)o.push(e),e+=i;return o},$reduce:function(n,t){var r=Sn(n,t.input),e=Sn(n,t.initialValue),u=t.in;return R(r)?null:(M(C(r),"$reduce 'input' expression must resolve to an array"),X(r,function(n,t){return Sn({$value:n,$this:t},u)},e))},$reverseArray:function(n,t){var r=Sn(n,t);if(R(r))return null;M(C(r),"$reverseArray expression must resolve to an array");var e=[];return cn(e,r),e.reverse(),e},$size:function(n,t){var r=Sn(n,t);return C(r)?r.length:void 0},$slice:function(n,t){var r=Sn(n,t);return bn(r[0],r[1],r[2])},$zip:function(n,t){var e=Sn(n,t.inputs),r=t.useLongestLength||!1;M(C(e),"'inputs' expression must resolve to an array"),M(S(r),"'useLongestLength' must be a boolean"),C(t.defaults)&&M(B(r),"'useLongestLength' must be set to true to use 'defaults'");for(var u=0,i=0,o=e.length;i<o;i++){var a=e[i];if(R(a))return null;M(C(a),"'inputs' expression values must resolve to an array or null"),u=r?Math.max(u,a.length):Math.min(u||a.length,a.length)}for(var s=[],c=t.defaults||[],f=function(r){var n=e.map(function(n,t){return R(n[r])?c[t]||null:n[r]});s.push(n)},l=0;l<u;l++)f(l);return s},$mergeObjects:function(n,t){var r=Sn(n,t);return C(r)?X(r,function(n,t){return Object.assign(n,t)},{}):{}},$and:function(n,t){var r=Sn(n,t);return B(r)&&r.every(B)},$or:function(n,t){var r=Sn(n,t);return B(r)&&r.some(B)},$not:function(n,t){return!Sn(n,t[0])},$eq:it,$ne:ot,$gt:at,$lt:st,$gte:ct,$lte:ft,$nin:lt,$cmp:function(n,t){var r=Sn(n,t);return r[0]>r[1]?1:r[0]<r[1]?-1:0},$cond:function(n,t){var r,e,u,i="$cond: invalid arguments";u=C(t)?(M(3===t.length,i),r=t[0],e=t[1],t[2]):(M(T(t),i),r=t.if,e=t.then,t.else);var o=Sn(n,r);return Sn(n,o?e:u)},$switch:function(t,n){var r="Invalid arguments for $switch operator";M(n.branches,r);var e=n.branches.find(function(n){return M(n.case&&n.then,r),Sn(t,n.case)});return e?Sn(t,e.then):(M(n.default,r),Sn(t,n.default))},$ifNull:function(n,t){M(C(t)&&2===t.length,"$ifNull expression must resolve to array(2)");var r=Sn(n,t);return R(r[0])?r[1]:r[0]},$dayOfYear:vt,$dayOfMonth:ht,$dayOfWeek:pt,$year:dt,$month:gt,$week:mt,$hour:$t,$minute:yt,$second:bt,$millisecond:_t,$dateToString:function(n,t){for(var r,e,u=t.format,i=Sn(n,t.date),o=u.match(/(%%|%Y|%m|%d|%H|%M|%S|%L|%j|%w|%U)/g),a=0,s=o.length;a<s;a++){var c=xt[o[a]],f=c;if(C(c)){var l=c[0],v=c[1];r=l(n,i),e=v,f=new Array(Math.max(e-String(r).length+1,0)).join("0")+r}u=u.replace(o[a],f)}return u},$literal:function(n,t){return t},$setEquals:function(n,t){var r=Sn(n,t),e=rn(r[0]),u=rn(r[1]);return e.length===u.length&&e.length===Z(e,u).length},$setIntersection:function(n,t){var r=Sn(n,t);return Z(r[0],r[1])},$setDifference:function(n,t){var r=Sn(n,t);return r[0].filter(z.bind(null,r[1]))},$setUnion:function(n,t){var r,e,u=Sn(n,t);return r=u[0],e=u[1],cn(cn([],r),e.filter(z.bind(null,r)))},$setIsSubset:function(n,t){var r=Sn(n,t);return Z(r[0],r[1]).length===r[0].length},$anyElementTrue:function(n,t){return Sn(n,t)[0].some(B)},$allElementsTrue:function(n,t){return Sn(n,t)[0].every(B)},$concat:function(n,t){var r=Sn(n,t);return[null,void 0].some(D.bind(null,r))?null:r.join("")},$indexOfBytes:function(n,t){var r=Sn(n,t),e="$indexOfBytes expression resolves to invalid an argument";if(R(r[0]))return null;M(I(r[0])&&I(r[1]),e);var u=r[0],i=r[1],o=r[2],a=r[3],s=R(o)||P(o)&&0<=o&&Math.round(o)===o;if(M(s=s&&(R(a)||P(a)&&0<=a&&Math.round(a)===a),e),o=o||0,(a=a||u.length)<o)return-1;var c=u.substring(o,a).indexOf(i);return-1<c?c+o:c},$split:function(n,t){var r=Sn(n,t);return R(r[0])?null:(M(r.every(I),"$split expression must result to array(2) of strings"),r[0].split(r[1]))},$strLenBytes:function(n,t){return~-encodeURI(Sn(n,t)).split(/%..|./).length},$strLenCP:function(n,t){return Sn(n,t).length},$strcasecmp:function(n,t){var r=Sn(n,t),e=r[0],u=r[1];return tn(e,u)||r.every(R)?0:(M(r.every(I),"$strcasecmp must resolve to array(2) of strings"),e=e.toUpperCase(),((u=u.toUpperCase())<e?1:e<u&&-1)||0)},$substrBytes:function(n,t){var r=Sn(n,t),e=r[0],u=r[1],i=r[2];M(I(e)&&P(u)&&0<=u&&P(i)&&0<=i,"$substrBytes: invalid arguments");for(var o=function(n){for(var t=[],r=0,e=n.length;r<e;r++)t.push(wt(n.codePointAt(r)));return t}(e),a=[],s=0,c=0;c<o.length;c++)a.push(s),s+=o[c].length;var f=a.indexOf(u),l=a.indexOf(u+i);return M(-1<f&&-1<l,"$substrBytes: invalid range, start or end index is a UTF-8 continuation byte."),e.substring(f,l)},$substr:kt,$substrCP:function(n,t){return kt(n,t)},$toLower:function(n,t){var r=Sn(n,t);return V(r)?"":r.toLowerCase()},$toUpper:function(n,t){var r=Sn(n,t);return V(r)?"":r.toUpperCase()},$let:function(r,n){var e=n.vars,t=n.in;return G(Q(e),function(n){var t=Sn(r,e[n]);r["$"+n]=t}),Sn(r,t)}});function jt(n,t){return R(t)?n:n.map(function(n){return Sn(n,t)})}var At=Object.freeze({__proto__:null,$addToSet:function(n,t){return rn(jt(n,t))},$avg:function(n,t){var r=jt(n,t).filter(P);return X(r,function(n,t){return n+t},0)/(r.length||1)},$first:function(n,t){return 0<n.length?Sn(n[0],t):void 0},$last:function(n,t){return 0<n.length?Sn(n[n.length-1],t):void 0},$max:function(n,t){return X(jt(n,t),function(n,t){return R(n)||n<t?t:n},void 0)},$mergeObjects:function(n,r){return X(n,function(n,t){return Object.assign(n,Sn(t,r))},{})},$min:function(n,t){return X(jt(n,t),function(n,t){return R(n)||t<n?t:n},void 0)},$push:jt,$stdDevPop:function(n,t){return _n(jt(n,t).filter(P),!1)},$stdDevSamp:function(n,t){return _n(jt(n,t).filter(P),!0)},$sum:function(n,t){return C(n)?P(t)?n.length*t:X(jt(n,t).filter(P),function(n,t){return n+t},0):0}});function Nt(n,u,t){var i=Q(u);return 0===i.length?n:n.map(function(r){var e=j(r);return G(i,function(n){var t=Sn(r,u[n]);gn(e,n,t)}),e})}var Et=Nt;function St(n,i,t){var o=An(),r=i[o];return n.transform(function(n){var e=sn(n,function(n){return Sn(n,r,r)});delete(i=A(i))[o];var u=-1,t=e.keys.length;return function(){if(++u===t)return{done:!0};var n=e.keys[u],r={};return void 0!==n&&(r[o]=n),G(i,function(n,t){r[t]=En(e.groups[u],t,n)}),{value:r,done:!1}}})}function It(n){var r=An(),e=[!1,!1];G(n,function(n,t){t!==r&&(0===n||!1===n?e[0]=!0:1!==n&&!0!==n||(e[1]=!0),M(!(e[0]&&e[1]),"Projection cannot have a mix of inclusion and exclusion."))})}function Pt(n,i,t){if(V(i)||!T(i))return n;var o=on,r=(t=t||{}).collation;return T(r)&&I(r.locale)&&(o=function(n){var t={sensitivity:Ct[n.strength||3],caseFirst:"off"!==n.caseFirst&&n.caseFirst||"false",numeric:n.numericOrdering||!1,ignorePunctuation:"shifted"===n.alternate};!0===(n.caseLevel||!1)&&("base"===t.sensitivity&&(t.sensitivity="case"),"accent"===t.sensitivity&&(t.sensitivity="variant"));var e=new Intl.Collator(n.locale,t);return function(n,t){if(!I(n)||!I(t))return on(n,t);var r=e.compare(n,t);return r<0?-1:0<r?1:0}}(r)),n.transform(function(u){return G(Q(i).reverse(),function(t){var r=sn(u,function(n){return vn(n,t)}),e={},n=an(r.keys,function(n,t){return e[n]=t,n},o);-1===i[t]&&n.reverse(),u=[],G(n,function(n){return cn(u,r.groups[e[n]])})}),u})}var Ct={1:"base",2:"accent",3:"variant"};var Tt=Object.freeze({__proto__:null,$addFields:Nt,$set:Et,$bucket:function(n,u,t){var i=u.boundaries,o=u.default,a=i[0],s=i[i.length-1],r=u.output||{count:{$sum:1}};M(2<i.length,"$bucket 'boundaries' expression must have at least 3 elements");for(var e=N(a),c=0,f=i.length-1;c<f;c++)M(e===N(i[c+1]),"$bucket 'boundaries' must all be of the same type"),M(i[c]<i[c+1],"$bucket 'boundaries' must be sorted in ascending order");R(o)||N(u.default)!==N(a)||M(a>u.default||s<u.default,"$bucket 'default' expression must be out of boundaries range");var l={};G(i,function(n){return l[n]=[]}),R(o)||(l[o]=[]);var v=!1;return Cn(function(){return v||(n.each(function(n){var t=Sn(n,u.groupBy);if(R(t)||t<a||s<=t)M(!R(o),"$bucket require a default for out of range values"),l[o].push(n);else{M(a<=t&&t<s,"$bucket 'groupBy' expression must resolve to a value in range of boundaries");var r=function(n,t){for(var r=0,e=n.length-1;r<=e;){var u=Math.round(r+(e-r)/2);if(t<n[u])e=u-1;else{if(!(t>n[u]))return u;r=u+1}}return r}(i,t),e=i[Math.max(0,r-1)];l[e].push(n)}}),i.pop(),R(o)||i.push(o),v=Cn(i).map(function(n){var t=En(l[n],null,r);return Object.assign(t,{_id:n})})),v.next()})},$bucketAuto:function(n,t,r){var d=t.output||{count:{$sum:1}},g=t.groupBy,m=t.buckets;return M(0<m,"The $bucketAuto 'buckets' field must be greater than 0, but found: "+m),n.transform(function(n){for(var t=Math.max(1,Math.round(n.length/m)),r=fn(Sn),e={},u=[],i=an(n,function(n){var t=r(n,g);return R(t)?u.push(n):(e[t]||(e[t]=[]),e[t].push(n)),t}),o=An(),a=[],s=0,c=0,f=i.length;c<m&&s<f;c++){for(var l={},v=[],h=0;h<t&&s<f;h++){var p=r(i[s],g);if(R(p)&&(p=null),cn(v,R(p)?u:e[p]),s+=R(p)?u.length:e[p].length,J(l,"min")||(l.min=p),0<a.length)a[a.length-1][o].max=l.min}c==m-1&&cn(v,i.slice(s)),a.push(Object.assign(En(v,null,d),{_id:l}))}return 0<a.length&&(a[a.length-1][o].max=r(i[i.length-1],g)),a})},$count:function(t,r,n){return M(I(r)&&""!==r.trim()&&-1===r.indexOf(".")&&"$"!==r.trim()[0],"Invalid expression value for $count"),Cn(function(){var n={};return n[r]=t.size(),{value:n,done:!1}}).first()},$facet:function(n,r,t){return n.transform(function(t){return[K(r,function(n){return Yn(t,n)})]})},$group:St,$limit:function(n,t,r){return n.take(t)},$lookup:function(n,t,r){var e=t.from,u=t.localField,i=t.foreignField,o=t.as;M(C(e)&&I(i)&&I(u)&&I(o),"$lookup: invalid argument");var a={};return G(e,function(n){var t=un(vn(n,i));a[t]=a[t]||[],a[t].push(n)}),n.map(function(n){var t=un(vn(n,u)),r=A(n);return r[o]=a[t]||[],r})},$match:function(n,t,r){var e=new Hn(t);return n.filter(function(n){return e.test(n)})},$out:function(n,t,r){return M(C(t),"$out expression must be an array"),n.map(function(n){return t.push(n),n})},$project:function(n,t,r){if(V(t))return n;var e=Q(t),u=!1,i=An();if(It(t),D(e,i)){var o=t[i];0!==o&&!1!==o||(e=e.filter(z.bind(null,[i])),M(z(e,i),"Must not contain collections id key"),u=V(e))}else e.push(i);return n.map(function(n){return function s(c,f,n,t){var l=An();var v={};var h=!1;var p=!1;var d=[];t&&d.push(l);n.forEach(function(n){var t,r=f[n];if(n!==l&&D([0,!1],r)&&(p=!0),n===l&&V(r))t=c[n];else if(I(r))t=Sn(c,r,n);else if(!D([1,!0],r))if(C(r))t=r.map(function(n){var t=Sn(c,n);return R(t)?null:t});else{if(!T(r))return void d.push(n);var e=Q(r),u=!(1<e.length)&&e[0];if(D(Nn(x),u)){var i=tr[x];"$slice"===u?Y(r[u]).every(P)?(t=i[u](c,r[u],n),h=!0):t=Sn(c,r,n):t=i[u](c,r[u],n)}else if(J(c,n)){It(r);var o=c[n];t=C(o)?o.map(function(n){return s(n,r,e,!1)}):s(o,r,e,!1)}else t=Sn(c,r,n)}var a=hn(c,n,{preserveMissingValues:!0});void 0!==a&&W(v,a,{flatten:!0}),z([0,1,!1,!0],r)&&(void 0===t?mn(v,n):gn(v,n,t))});pn(v);(h||p||t)&&(v=Object.assign({},c,v),0<d.length&&(v=j(v),G(d,function(n){return mn(v,n)})));return v}(n,t,e,u)})},$redact:function(n,t,r){return n.map(function(n){return In(j(n),t)})},$replaceRoot:function(n,t,r){return n.map(function(n){return M(T(n=Sn(n,t.newRoot)),"$replaceRoot expression must return an object"),n})},$sample:function(n,t,r){var u=t.size;return M(P(u),"$sample size must be a positive integer"),n.transform(function(t){var r=t.length,e=-1;return function(){if(++e===u)return{done:!0};var n=Math.floor(Math.random()*r);return{value:t[n],done:!1}}})},$skip:function(n,t,r){return n.drop(t)},$sort:Pt,$sortByCount:function(n,t,r){var e={count:{$sum:1}};return e[An()]=t,Pt(St(n,e),{count:-1},r)},$unwind:function(u,n,t){function i(n,t){return!1!==r&&(n[r]=t),n}I(n)&&(n={path:n});var o,a=n.path.substr(1),r=n.includeArrayIndex||!1,s=n.preserveNullAndEmptyArrays||!1;return Cn(function(){for(var n=function(){if(Cn.isIterator(o)){var n=o.next();if(!n.done)return{v:n}}var e=u.next();if(e.done)return{v:e};if(e=e.value,o=vn(e,a),C(o)){if(0===o.length&&!0===s){o=null;var t=j(e);return mn(t,a),{v:{value:i(t,null),done:!1}}}o=Cn(o).map(function(n,t){var r=j(e);return gn(r,a,n),i(r,t)})}else if(!V(o)||!0===s){var r=j(e);return{v:{value:i(r,null),done:!1}}}};;){var t=n();if("object"===e(t))return t.v}})}});var qt=Object.freeze({__proto__:null,$:function(n,t,r){H("$ not implemented")},$elemMatch:function(n,t,r){var e=vn(n,r),u=new Hn(t);M(C(e),"$elemMatch: invalid argument");for(var i=0;i<e.length;i++)if(u.test(e[i]))return[e[i]]},$slice:function(n,t,r){var e=vn(n,r);return C(e)?C(t)?bn(e,t[0],t[1]):(M(P(t),"$slice: invalid arguments for projection"),bn(e,t)):e}});function Ft(u){return function(r,e){return function(n){var t=vn(n,r,{meta:!0});return t=function(n,t){if(t<1)return n;for(;t--&&C(n)&&1===n.length;)n=n[0];return n}(t.result,t.depth),u(t,e)}}}var Lt=Ft(function(n,t){var r=!1;if(C(n)&&C(t))for(var e=0,u=t.length;e<u;e++){if(!T(t[e])||!D(Q(t[e]),"$elemMatch"))return Z(t,n).length===u;r=r||rt(n,t[e].$elemMatch)}return r}),Rt=Ft(rt),Ut=Ft(Qn),Dt=Ft(function(n,t){return(!1===t||0===t)&&void 0===n||(!0===t||1===t)&&void 0!==n}),zt=Ft(nt),Bt=Ft(tt),Vt=Ft(Kn),Yt=Ft(Xn),Jt=Ft(Zn),Ht=Ft(function(n,t){return Y(n).some(function(n){return P(n)&&C(t)&&2===t.length&&n%t[0]===t[1]})}),Qt=Ft(Gn),Gt=Ft(Wn),Kt=Ft(function(n,t){function r(n){return I(n)&&!!n.match(t)}return(n=Y(n)).some(r)||nn(n,1).some(r)}),Wt=Ft(function(n,t){return C(n)&&P(t)&&n.length===t}),Xt=Ft(function(n,t){switch(t){case 1:case"double":return P(n)&&-1!==(n+"").indexOf(".");case 2:case v:return I(n);case 3:case g:return T(n);case 4:case d:return C(n);case 6:case c:return R(n);case 8:case"bool":return S(n);case 9:case h:return F(n);case 10:case s:return U(n);case 11:case"regex":return L(n);case 16:case"int":return P(n)&&n<=2147483647&&-1===(n+"").indexOf(".");case 18:case"long":return P(n)&&2147483647<n&&n<=0x8000000000000000&&-1===(n+"").indexOf(".");case 19:case"decimal":return P(n);default:return!1}});function Zt(n,t){M(C(t),"Invalid expression. $or expects value to be an Array");var r=[];return G(t,function(n){return r.push(new Hn(n))}),function(n){for(var t=0;t<r.length;t++)if(r[t].test(n))return!0;return!1}}var nr=Object.freeze({__proto__:null,$all:Lt,$elemMatch:Rt,$eq:Ut,$exists:Dt,$gt:zt,$gte:Bt,$in:Vt,$lt:Yt,$lte:Jt,$mod:Ht,$ne:Qt,$nin:Gt,$regex:Kt,$size:Wt,$type:Xt,$and:function(n,t){M(C(t),"Invalid expression: $and expects value to be an Array");var r=[];return G(t,function(n){return r.push(new Hn(n))}),function(n){for(var t=0;t<r.length;t++)if(!r[t].test(n))return!1;return!0}},$or:Zt,$nor:function(n,t){M(C(t),"Invalid expression. $nor expects value to be an Array");var r=Zt(0,t);return function(n){return!r(n)}},$not:function(n,t){var r={};r[n]=yn(t);var e=new Hn(r);return function(n){return!e.test(n)}},$where:function(n,t){return r(t)||(t=new Function("return "+t+";")),function(n){return!0===t.call(n)}},$expr:function(n,t){return function(n){return Sn(n,t)}}}),tr={};tr[y]={},tr[b]={},tr[_]={},tr[x]={},tr[k]={};var rr={query:function(n,t){return new Hn(n).find(this.toJSON(),t)},aggregate:function(n){return new Vn(n).run(this.toJSON())}};G([[y,Mt],[b,At],[_,Tt],[x,qt],[k,nr]],function(n){var t=i(n,2),r=t[0],e=t[1];Object.assign(tr[r],e)});return{_internal:xn,Aggregator:Vn,CollectionMixin:rr,Cursor:Jn,Lazy:Cn,OP_EXPRESSION:y,OP_GROUP:b,OP_PIPELINE:_,OP_PROJECTION:x,OP_QUERY:k,Query:Hn,VERSION:"2.5.3",addOperators:function(r,n){var a=n(xn());M(J(tr,r),"Invalid operator class ".concat(r));var e=tr[r];G(a,function(n,t){M(/^\$[a-zA-Z0-9_]*$/.test(t),"Invalid operator name ".concat(t)),M(!J(e,t),"".concat(t," already exists for '").concat(r,"' operators"))});var t={};switch(r){case k:G(a,function(i,o){i=i.bind(a),t[o]=function(e,u){return function(n){var t=vn(n,e),r=i(e,t,u);return M(S(r),"".concat(o," must return a boolean")),r}}});break;case x:G(a,function(u,n){u=u.bind(a),t[n]=function(n,t,r){var e=vn(n,r);return u(r,e,t)}});break;default:G(a,function(e,n){t[n]=function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];return e.apply(a,t)}})}Object.assign(tr[r],t)},aggregate:Yn,find:function(n,t,r){return new Hn(t).find(n,r)},remove:function(n,t){return new Hn(t).remove(n)},setup:function(n){Object.assign(kn,n||{})}}});