New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mingo

Package Overview
Dependencies
Maintainers
1
Versions
143
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mingo - npm Package Compare versions

Comparing version 1.1.0 to 1.1.1

4

CHANGELOG.md
Changelog
=========
## v1.1.1 / 2017-03-12
- Fix incorrect method call for ObjectProto
- Limit exposed util methods to type checking
## v1.1.0 / 2017-03-11

@@ -5,0 +9,0 @@ - Renamed `Mingo.OP_<name>` functions to `Mingo.KEY_<name>`

2

dist/mingo.min.js

@@ -1,2 +0,2 @@

!function(n){"use strict";function t(){return{array:O,assert:r,assertExists:e,assign:Object.assign,clone:u,each:E,err:N,excludes:m,falsey:_,flatten:C,getType:w,groupBy:Q,has:j,hashcode:T,includes:y,intersection:I,into:D,isArray:s,isBoolean:o,isDate:h,isEmpty:x,isEqual:q,isFunction:p,isNil:d,isNull:g,isNumber:l,isObject:c,isObjectLike:f,isRegExp:v,isString:a,isUndefined:$,isUnknown:d,keys:M,map:A,stringify:ln,sortBy:R,truthy:b,union:k,unique:P}}function r(n,t){_(n)&&N(t)}function e(n){return r(!$(n))}function u(n){switch(w(n)){case"array":return n.map(u);case"object":return A(n,u);default:return n}}function i(n,t){return w(n)===t}function o(n){return i(n,"boolean")}function a(n){return i(n,"string")}function l(n){return i(n,"number")}function s(n){return i(n,"array")}function c(n){return i(n,"object")}function f(n){return n===Object(n)}function h(n){return i(n,"date")}function v(n,t){return i(n,"regexp")}function p(n,t){return i(n,"function")}function d(n){return g(n)||$(n)}function g(n){return i(n,"null")}function $(n){return i(n,"undefined")}function y(n,t){return n.includes(t)}function m(n,t){return!n.includes(t)}function b(n){return!!n}function _(n){return!n}function x(n){return d(n)||s(n)&&0===n.length||c(n)&&0===M(n).length||!n}function O(n){return s(n)?n:[n]}function w(n){return Object.prototype.toString.call(n).match(/\s(\w+)/)[1].toLowerCase()}function j(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function N(n){throw new Error(n)}function M(n){return Object.keys(n)}function E(n,t,e){if(r(n===Object(n),"Cannot iterate over object of type '"+w(n)+"'"),s(n))n.forEach(t,e);else for(var u in n)j(n,u)&&t.call(e,n[u],u)}function A(n,t,r){if(s(n))return n.map(t,r);if(c(n)){for(var e,u={},i=M(n),o=0,a=i.length;a>o;o++)e=i[o],u[e]=t.call(r,n[e],e);return u}N("Input must be an Array or Object type")}function I(n,t){return n.filter(y.bind(null,t))}function k(n,t){var r=[];return D(r,n),D(r,t.filter(m.bind(null,n))),r}function C(n,t){r(s(n),"Input must be an Array");var e=[],u=function(n,t){for(var r=0,i=n.length;i>r;r++)s(n[r])&&(t>0||0>t)?u(n[r],Math.max(-1,t-1)):e.push(n[r])};return u(n,t||-1),e}function q(n,t){if(n===t)return!0;var r=w(n);if(r!==w(t))return!1;if("number"===r&&isNaN(n)&&isNaN(t))return!0;if(y(["date","regexp"],r))return n.toString()===t.toString();var e,u;if("array"===r){if(n.length===t.length&&0===n.length)return!0;if(n.length!==t.length)return!1;for(e=0,u=n.length;u>e;e++)if(!q(n[e],t[e]))return!1}else{if(![n,t].every(c))return!1;var i=M(n),o=M(t);if(i.length!==o.length)return!1;if(i.sort(),o.sort(),!q(i,o))return!1;for(e=0,u=i.length;u>e;e++){var a=i[e];if(!q(n[a],t[a]))return!1}}return!0}function P(n){var t={},r=[];return E(n,function(n){var e=T(n);j(t,e)||(r.push(n),t[e]=0)}),r}function S(n){return JSON.stringify({"":n})+w(n)+n}function T(n){var t,r,e,u=0,i=S(n);if(0===i.length)return u;for(t=0,e=i.length;e>t;t++)r=i.charCodeAt(t),u=(u<<5)-u+r,u|=0;return u.toString()}function R(n,t,e){for(var i,o,a,l={},s=[],c=n.length,f=0;c>f;f++)o=n[f],i=t.call(e,o,f),a=T(o),j(l,a)||(l[a]=[i,f]),s.push(u(o));return s.sort(function(n,t){var r=l[T(n)],e=l[T(t)];return r[0]<e[0]?-1:r[0]>e[0]?1:r[1]<e[1]?-1:r[1]>e[1]?1:0}),r(s.length===n.length,"sortBy must retain collection length"),s}function Q(n,t,e){var u={keys:[],groups:[]},i={};return E(n,function(n){var r=t.call(e,n),o=T(r),a=-1;$(i[o])&&(a=u.keys.length,i[o]=a,u.keys.push(r),u.groups.push([])),a=i[o],u.groups[a].push(n)}),r(u.keys.length===u.groups.length,"Cardinality must be equal for groups and keys"),u}function D(n,t){on.push.apply(n,t)}function F(){return sn.key}function U(n,t){return n[t]}function L(n,t,r){for(var e=t.split("."),u=n,i=0;i<e.length;i++){var o=g(e[i].match(/^\d+$/));if(o&&s(u)){if(r===!0&&0===i)return u;u=u.map(function(n){return L(n,e[i],!0)}),1===u.length&&(u=u[0])}else u=U(u,e[i]),r=!1;if($(u))break}return u}function Y(n,t){if(!$(n)){var u,i,o=t.split("."),a=o[0],l=1===o.length||o.slice(1).join("."),c=null!==a.match(/^\d+$/);try{1===o.length?s(n)?c?(u=U(n,a),e(u),u=[u]):(u=[],E(n,function(n){i=Y(n,t),$(i)||u.push(i)}),r(u.length>0)):(i=U(n,a),e(i),u={},u[a]=i):s(n)?c?(u=U(n,a),u=Y(u,l),e(u),u=[u]):(u=[],E(n,function(n){i=Y(n,t),$(i)||u.push(i)}),r(u.length>0)):(i=U(n,a),i=Y(i,l),e(i),u={},u[a]=i)}catch(f){u=void 0}return u}}function B(n,t,r,e){var u=t.split("."),i=u[0],o=1===u.length||u.slice(1).join(".");if(1===u.length)r(n,i);else if(s(n)&&!/^\d+$/.test(i))E(n,function(n){B(n,t,r,e)});else{if(e===!0){var a=j(n,i);a&&!d(n[i])||(n[i]={})}B(n[i],o,r,e)}}function G(n,t,r){B(n,t,function(n,t){n[t]=r},!0)}function J(n,t){B(n,t,function(n,t){s(n)&&/^\d+$/.test(t)?n.splice(parseInt(t),1):c(n)&&delete n[t]})}function K(n){for(var t=0;t<pn.length;t++)if(pn[t](n))return!0;return!1}function z(n){return K(n)||!f(n)}function H(n){if(z(n))return v(n)?{$regex:n}:{$eq:n};if(f(n)){var t=M(n),r=0===I(rn(Cn),t).length;if(r)return{$eq:n};if(y(t,"$regex")){var e=n.$regex,u=n.$options||"",i="";a(e)&&(i+=e.ignoreCase||u.indexOf("i")>=0?"i":"",i+=e.multiline||u.indexOf("m")>=0?"m":"",i+=e.global||u.indexOf("g")>=0?"g":"",e=new RegExp(e,i)),n.$regex=e,delete n.$options}}return n}function V(n,t,e,i){if(i=i||{},i.root=i.root||u(n),y(rn(Pn),e))return kn[e](n,t,i);if(y(rn(qn),e))return n=V(n,t,null,i),r(s(n),"Must use collection type with "+e+" operator"),dn[e](n,null,i);if(a(t)&&t.length>0&&"$"===t[0]){if(y(hn,t))return cn[t](n,null,i);if(y(vn,t))return t;var o=hn.filter(function(n){return 0===t.indexOf(n+".")});return 1===o.length&&(o=o[0],"$$ROOT"===o&&(n=i.root),t=t.substr(o.length)),L(n,t.slice(1))}switch(w(t)){case"array":return t.map(function(t){return V(n,t,null)});case"object":var l={};for(var c in t)if(j(t,c)&&(l[c]=V(n,t[c],c,i),y(rn(Pn),c))){r(1===M(t).length,"Invalid aggregation expression '"+ln(t)+"'"),l=l[c];break}return l;default:return u(t)}}function W(n,t,e){return d(e)?0>t?(t=Math.max(0,n.length+t),e=n.length-t+1):(e=t,t=0):(0>t&&(t=Math.max(0,n.length+t)),r(e>0,"Invalid argument value for $slice operator. Limit must be a positive number"),e+=t),on.slice.apply(n,[t,e])}function X(n){var t=n.dataset.reduce(function(n,t){return n+t},0),r=n.dataset.length||1,e=n.sampled===!0?1:0,u=t/(r-e);return Math.sqrt(n.dataset.reduce(function(n,t){return n+Math.pow(t-u,2)},0)/r)}function Z(n,t,r){r=r||{},r.root=r.root||u(n);var e=V(n,t,null,r);return y(vn,e)?fn[e](n,t,r):e}function nn(n,t,r){if(y(rn(qn),t))return dn[t](n,r);if(c(r)){var e={};for(var u in r)if(j(r,u)&&(e[u]=nn(n,u,r[u]),y(rn(qn),u))){e=e[u],M(r).length>1&&N("Invalid $group expression '"+ln(r)+"'");break}return e}}function tn(n,t){return new Array(Math.max(t-String(n).length+1,0)).join("0")+n}function rn(n){return M(Rn[n])}var en,un={};null!==n&&(en=n.Mingo),un.noConflict=function(){return n.Mingo=en,un},un.VERSION="1.1.0";var on=Array.prototype,an=Object.prototype,ln=JSON.stringify;Function.prototype.bind||(Function.prototype.bind=function(n){if("function"!=typeof this)throw new Error("Function.prototype.bind - what is trying to be bound is not callable");var t=on.slice.call(arguments,1),r=this,e=function(){},u=function(){return r.apply(this instanceof e?this:n,t.concat(on.slice.call(arguments)))};return this.prototype&&(e.prototype=this.prototype),u.prototype=new e,u}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(n){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),r=t.length>>>0;if("function"!=typeof n)throw new TypeError("predicate must be a function");for(var e=arguments[1],u=0;r>u;){var i=t[u];if(n.call(e,i,u,t))return i;u++}}}),Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(n){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),r=t.length>>>0;if("function"!=typeof n)throw new TypeError("predicate must be a function");for(var e=arguments[1],u=0;r>u;){var i=t[u];if(n.call(e,i,u,t))return u;u++}return-1}}),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;for(var u=0|t,i=Math.max(u>=0?u:e-Math.abs(u),0);e>i;){if(r[i]===n)return!0;i++}return!1}}),"function"!=typeof Object.assign&&(Object.assign=function(n,t){if(null==n)throw new TypeError("Cannot convert undefined or null to object");for(var r=Object(n),e=on.slice.call(arguments),u=1;u<e.length;u++){var i=e[u];if(null!=i)for(var o in i)an.has.call(i,o)&&(r[o]=i[o])}return r}),Object.keys||(Object.keys=function(n){if(n!==Object(n))throw new TypeError("Object.keys called on a non-object");var t=[];for(var r in n)an.has.call(n,r)&&t.push(r);return t}),Object.values||(Object.values=function(n){if(n!==Object(n))throw new TypeError("Object.values called on a non-object");var t=[];for(var r in n)an.has.call(n,r)&&t.push(n[r]);return t});var sn={key:"_id"};un.setup=function(n){Object.assign(sn,n||{})},un._internal=function(){return Object.assign(t(),{computeValue:V})};var cn={$$ROOT:function(n,t,r){return r.root},$$CURRENT:function(n,t,r){return n}},fn={$$KEEP:function(n,t,r){return n},$$PRUNE:function(n,t,r){},$$DESCEND:function(n,t,r){if(!j(t,"$cond"))return n;var e;return E(n,function(u,i){f(u)&&(s(u)?(e=[],E(u,function(n,u){c(n)&&(n=Z(n,t,r)),$(n)||e.push(n)})):e=Z(u,t,r),$(e)?delete n[i]:n[i]=e)}),n}},hn=M(cn),vn=M(fn),pn=[a,o,l,h,d,v];un.Aggregator=function(n){return this instanceof un.Aggregator?void(this.__operators=n):new un.Aggregator(n)},un.Aggregator.prototype.run=function(n,t){if(!x(this.__operators))for(var r=0;r<this.__operators.length;r++){var e=this.__operators[r],u=M(e);1===u.length&&y(rn(Sn),u[0])?(u=u[0],n=t instanceof un.Query?gn[u].call(t,n,e[u]):gn[u](n,e[u])):except("Invalid aggregation operator '"+u+"'")}return n},un.Cursor=function(n,t,r){return this instanceof un.Cursor?(this.__query=t,this.__collection=n,this.__projection=r||t.__projection,this.__operators={},this.__result=!1,void(this.__position=0)):new un.Cursor(n,t,r)},un.Cursor.prototype={_fetch:function(){var n=this;if(this.__result!==!1)return this.__result;c(this.__projection)&&Object.assign(this.__operators,{$project:this.__projection}),s(this.__collection)||except("Input collection is not of valid type. Must be an Array."),this.__result=this.__collection.filter(this.__query.test,this.__query);var t=[];if(E(["$sort","$skip","$limit","$project"],function(r){if(j(n.__operators,r)){var e={};e[r]=n.__operators[r],t.push(e)}}),t.length>0){var r=new un.Aggregator(t);this.__result=r.run(this.__result,this.__query)}return this.__result},all:function(){return this._fetch()},first:function(){return this.count()>0?this._fetch()[0]:null},last:function(){return this.count()>0?this._fetch()[this.count()-1]:null},count:function(){return this._fetch().length},skip:function(n){return Object.assign(this.__operators,{$skip:n}),this},limit:function(n){return Object.assign(this.__operators,{$limit:n}),this},sort:function(n){return Object.assign(this.__operators,{$sort:n}),this},next:function(){return this.hasNext()?this._fetch()[this.__position++]:null},hasNext:function(){return this.count()>this.__position},max:function(n){return dn.$max(this._fetch(),n)},min:function(n){return dn.$min(this._fetch(),n)},map:function(n){return A(this._fetch(),n)},forEach:function(n){E(this._fetch(),n)}},un.Query=function(n,t){return this instanceof un.Query?(this.__criteria=n,this.__projection=t,this.__compiled=[],void this._compile()):new un.Query(n,t)},un.Query.prototype={_compile:function(){if(!x(this.__criteria)){r(c(this.__criteria),"Criteria must be of type Object");for(var n in this.__criteria)if(j(this.__criteria,n)){var t=this.__criteria[n];if(y(["$and","$or","$nor","$where"],n))this._processOperator(n,n,t);else{t=H(t);for(var e in t)j(t,e)&&this._processOperator(n,e,t[e])}}}},_processOperator:function(n,t,r){y(rn(Cn),t)?this.__compiled.push(mn[t](n,r)):except("Invalid query operator '"+t+"' detected")},test:function(n){for(var t=0;t<this.__compiled.length;t++)if(!this.__compiled[t].test(n))return!1;return!0},find:function(n,t){return new un.Cursor(n,this,t)},remove:function(n){var t=this;return n.reduce(function(n,r){return t.test(r)||n.push(r),n},[])}};var dn={$addToSet:function(n,t){return P(this.$push(n,t))},$sum:function(n,t){return s(n)?l(t)?n.length*t:this.$push(n,t).filter(l).reduce(function(n,t){return n+t},0):0},$max:function(n,t){var r=this.$push(n,t);return r.reduce(function(n,t){return d(n)||t>n?t:n},void 0)},$min:function(n,t){var r=this.$push(n,t);return r.reduce(function(n,t){return d(n)||n>t?t:n},void 0)},$avg:function(n,t){var r=this.$push(n,t).filter(l),e=r.reduce(function(n,t){return n+t},0);return e/(r.length||1)},$push:function(n,t){return d(t)?n:n.map(function(n){return V(n,t,null)})},$first:function(n,t){return n.length>0?V(n[0],t):void 0},$last:function(n,t){return n.length>0?V(n[n.length-1],t):void 0},$stdDevPop:function(n,t){var r=this.$push(n,t).filter(l);return X({dataset:r,sampled:!1})},$stdDevSamp:function(n,t){var r=this.$push(n,t).filter(l);return X({dataset:r,sampled:!0})}},gn={$addFields:function(n,t){var e=M(t);return n.map(function(n){return n=u(n),E(e,function(e){var u,i=t[e];if(c(i)){var o=M(i),a=o.filter(function(n){return 0===n.indexOf("$")});x(a)||(r(1===o.length,"Can have only one root operator in $addFields"),a=a[0],i=i[a],u=V(n,i,a))}else u=V(n,i,null);B(n,e,function(n,t){n[t]=u},!0)}),n})},$group:function(n,t){var r=t[F()],e=Q(n,function(n){return V(n,r,r)}),u=[];return delete t[F()],E(e.keys,function(n,r){var i={};$(n)||(i[F()]=n);for(var o in t)j(t,o)&&(i[o]=nn(e.groups[r],o,t[o]));u.push(i)}),u},$lookup:function(n,t){var e=t.from,i=t.localField,o=t.foreignField,l=t.as,c="Invalid $lookup expression. ";r(s(e),c+"'from' must be an array"),r(a(o),c+"'foreignField' must be a string"),r(a(i),c+"'localField' must be a string"),r(a(l),c+"'as' must be a string");var f=[],h={},v=function(n){return T(d(n)?null:n)};return E(e,function(n,t){var r=v(n[o]);h[r]=h[r]||[],h[r].push(t)}),E(n,function(n){var t=v(n[i]),r=h[t]||[],o=u(n);o[l]=A(r,function(n){return u(e[n])}),f.push(o)}),f},$match:function(n,t){return new un.Query(t).find(n).all()},$project:function(n,t){if(x(t))return n;var e=[],i=M(t),o=!1,s=[!1,!1];if(E(i,function(n){var e=t[n];n!==F()&&(0===e||e===!1?s[0]=!0:s[1]=!0,r(s[0]!==s[1],"Projection cannot have a mix of inclusion and exclusion."))}),y(i,F())){var f=t[F()];0!==f&&f!==!1||(i=i.filter(m.bind(null,[F()])),r(m(i,F()),"Must not contain collections _id"),o=x(i))}else i.push(F());return E(n,function(n,r){var s={},f=!1,h=!1,v=[];o&&v.push(F()),E(i,function(r){var e,i,o=t[r];if(r!==F()&&0===o&&(h=!0),r===F()&&x(o))e=n[r];else if(a(o))e=V(n,o,r);else if(1===o||o===!0);else{if(!c(o))return void v.push(r);var p=M(o);p=p.length>1?!1:p[0],y(rn(Tn),p)?"$slice"===p?O(o[p]).every(l)?(e=$n[p](n,o[p],r),f=!0):e=V(n,o,r):e=$n[p](n,o[p],r):e=V(n,o,r)}e=u(e),i=u(Y(n,r)),$(i)||Object.assign(s,i),$(e)||G(s,r,e)}),(f||h||o)&&(s=Object.assign(u(n),s),E(v,function(n){J(s,n)})),e.push(s)}),e},$limit:function(n,t){return n.slice(0,t)},$skip:function(n,t){return n.slice(t)},$unwind:function(n,t){for(var r=[],e=t.substr(1),i=0;i<n.length;i++){var o=n[i],a=U(o,e);s(a)?E(a,function(n){var t=u(o);t[e]=n,r.push(t)}):except("Target field '"+e+"' is not of type Array.")}return r},$sort:function(n,t){if(!x(t)&&c(t)){var r=M(t);E(r.reverse(),function(r){var e=Q(n,function(n){return L(n,r)}),u={},i=function(n){return u[T(n)]},o=R(e.keys,function(n,t){return u[T(n)]=t,n});-1===t[r]&&o.reverse(),n=[],E(o,function(t){D(n,e.groups[i(t)])})})}return n},$sortByCount:function(n,t){var r={count:{$sum:1}};return r[F()]=t,this.$sort(this.$group(n,r),{count:-1})},$sample:function(n,t){var e=t.size;r(l(e),"$sample size must be a positive integer");for(var u=[],i=0;e>i;i++){var o=Math.floor(Math.random()*n.length);u.push(n[o])}return u},$count:function(n,t){r(a(t)&&""!==t.trim()&&-1===t.indexOf(".")&&"$"!==t.trim()[0],"Invalid expression value for $count");var e={};return e[t]=n.length,e},$replaceRoot:function(n,t){var e=t.newRoot,u=[];return E(n,function(n){n=V(n,e,null),r(c(n),"$replaceRoot expression must return a valid JS object"),u.push(n)}),u},$redact:function(n,t){return n.map(function(n){return Z(u(n),t)})}},$n={$:function(n,t,r){N("$ not implemented")},$elemMatch:function(n,t,r){var e=L(n,r),u=new un.Query(t);if(!$(e)&&s(e))for(var i=0;i<e.length;i++)if(u.test(e[i]))return[e[i]]},$slice:function(n,t,r){var e=L(n,r);return s(e)?s(t)?W(e,t[0],t[1]):l(t)?W(e,t):void N("Invalid argument type for $slice projection operator"):e},$stdDevPop:function(n,t,r){var e=V(n,t,r);return X({dataset:e,sampled:!1})},$stdDevSamp:function(n,t,r){var e=V(n,t,r);return X({dataset:e,sampled:!0})}},yn={$eq:function(n,t){return q(n,t)||s(n)&&-1!==n.findIndex(q.bind(null,t))},$ne:function(n,t){return!this.$eq(n,t)},$in:function(n,t){return n=O(n),I(n,t).length>0},$nin:function(n,t){return $(n)||!this.$in(n,t)},$lt:function(n,t){return n=O(n).find(function(n){return t>n}),void 0!==n},$lte:function(n,t){return n=O(n).find(function(n){return t>=n}),void 0!==n},$gt:function(n,t){return n=O(n).find(function(n){return n>t}),void 0!==n},$gte:function(n,t){return n=O(n).find(function(n){return n>=t}),void 0!==n},$mod:function(n,t){return n=O(n).find(function(n){return l(n)&&s(t)&&2===t.length&&n%t[0]===t[1]}),void 0!==n},$regex:function(n,t){return n=O(n).find(function(n){return a(n)&&v(t)&&!!n.match(t)}),void 0!==n},$exists:function(n,t){return t===!1&&$(n)||t===!0&&!$(n)},$all:function(n,t){var r=this,e=!1;if(s(n)&&s(t))for(var u=0;u<t.length;u++){if(!c(t[u])||!y(M(t[u]),"$elemMatch"))return I(t,n).length===t.length;e=e||r.$elemMatch(n,t[u].$elemMatch)}return e},$size:function(n,t){return s(n)&&l(t)&&n.length===t},$elemMatch:function(n,t){if(s(n)&&!x(n))for(var r=new un.Query(t),e=0;e<n.length;e++)if(r.test(n[e]))return!0;return!1},$type:function(n,t){switch(t){case 1:return l(n)&&-1!==(n+"").indexOf(".");case 2:case 5:return a(n);case 3:return c(n);case 4:return s(n);case 8:return o(n);case 9:return h(n);case 10:return g(n);case 11:return v(n);case 16:return l(n)&&2147483647>=n&&-1===(n+"").indexOf(".");case 18:return l(n)&&n>2147483647&&0x8000000000000000>=n&&-1===(n+"").indexOf(".");default:return!1}}},mn={$and:function(n,t){r(s(t),"Invalid expression: $and expects value to be an Array");var e=[];return E(t,function(n){e.push(new un.Query(n))}),{test:function(n){for(var t=0;t<e.length;t++)if(!e[t].test(n))return!1;return!0}}},$or:function(n,t){s(t)||N("Invalid expression for $or criteria");var r=[];return E(t,function(n){r.push(new un.Query(n))}),{test:function(n){for(var t=0;t<r.length;t++)if(r[t].test(n))return!0;return!1}}},$nor:function(n,t){s(t)||N("Invalid expression for $nor criteria");var r=this.$or("$or",t);return{test:function(n){return!r.test(n)}}},$not:function(n,t){var r={};r[n]=H(t);var e=new un.Query(r);return{test:function(n){return!e.test(n)}}},$where:function(n,t){return p(t)||(t=new Function("return "+t+";")),{test:function(n){return t.call(n)===!0}}}};E(yn,function(n,t){mn[t]=function(n,t){return function(r,e){return{test:function(u){var i=L(u,r);return n.call(t,i,e)}}}}(n,yn)});var bn={$abs:function(n,t){var r=V(n,t,null);return null===r||void 0===r?null:Math.abs(r)},$add:function(n,t){var r=V(n,t,null);return r.reduce(function(n,t){return n+t},0)},$ceil:function(n,t){var e=V(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$ceil must be a valid expression that resolves to a number."),Math.ceil(e))},$divide:function(n,t){var r=V(n,t,null);return r[0]/r[1]},$exp:function(n,t){var e=V(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$exp must be a valid expression that resolves to a number."),Math.exp(e))},$floor:function(n,t){var e=V(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$floor must be a valid expression that resolves to a number."),Math.floor(e))},$ln:function(n,t){var e=V(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$ln must be a valid expression that resolves to a number."),Math.log(e))},$log:function(n,t){var e=V(n,t,null);return r(s(e)&&2===e.length,"$log must be a valid expression that resolves to an array of 2 items"),e.some(isNaN)?NaN:e.some(d)?null:(r(e.every(l),"$log expression must resolve to array of 2 numbers"),Math.log10(e[0])/Math.log10(e[1]))},$log10:function(n,t){var e=V(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$log10 must be a valid expression that resolves to a number."),Math.log10(e))},$mod:function(n,t){var r=V(n,t,null);return r[0]%r[1]},$multiply:function(n,t){var r=V(n,t,null);return r.reduce(function(n,t){return n*t},1)},$pow:function(n,t){var e=V(n,t,null);return r(s(e)&&2===e.length&&e.every(l),"$pow must be a valid expression that resolves to an array of 2 numbers"),0===e[0]&&e[1]<0&&N("$pow cannot raise 0 to a negative exponent"),Math.pow(e[0],e[1])},$sqrt:function(n,t){var e=V(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e)&&e>0,"$sqrt must be a valid expression that resolves to a non-negative number."),Math.sqrt(e))},$subtract:function(n,t){var r=V(n,t,null);return r[0]-r[1]},$trunc:function(n,t){var e=V(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e)&&e>0,"$trunc must be a valid expression that resolves to a non-negative number."),Math.trunc(e))}},_n={$arrayElemAt:function(n,t){var e=V(n,t,null);r(s(e)&&2===e.length,"$arrayElemAt expression must resolve to an array of 2 elements"),r(s(e[0]),"First operand to $arrayElemAt must resolve to an array"),r(l(e[1]),"Second operand to $arrayElemAt must resolve to an integer");var u=e[1];return e=e[0],0>u&&Math.abs(u)<=e.length?e[u+e.length]:u>=0&&u<e.length?e[u]:void 0},$concatArrays:function(n,t){var e=V(n,t,null);return r(s(e)&&2===e.length,"$concatArrays expression must resolve to an array of 2 elements"),e.some(d)?null:e[0].concat(e[1])},$filter:function(n,t){var e=V(n,t.input,null),u=t.as,i=t.cond;return r(s(e),"'input' expression for $filter must resolve to an array"),e.filter(function(n){var t={};return t["$"+u]=n,V(t,i,null)===!0})},$indexOfArray:function(n,t){var e=V(n,t,null);if(d(e))return null;var u=e[0];if(d(u))return null;r(s(u),"First operand for $indexOfArray must resolve to an array.");var i=e[1];if(d(i))return null;var o=e[2]||0,a=e[3]||u.length;return a<u.length&&(u=u.slice(o,a)),u.indexOf(i,o)},$isArray:function(n,t){return s(V(n,t,null))},$range:function(n,t){for(var r=V(n,t,null),e=r[0],u=r[1],i=r[2]||1,o=[];u>e&&i>0||e>u&&0>i;)o.push(e),e+=i;return o},$reverseArray:function(n,t){var e=V(n,t,null);return d(e)?null:(r(s(e),"$reverseArray expression must resolve to an array"),e=u(e),e.reverse(),e)},$reduce:function(n,t){var e=V(n,t.input,null),u=V(n,t.initialValue,null),i=t["in"];return d(e)?null:(r(s(e),"'input' expression for $reduce must resolve to an array"),e.reduce(function(n,t){return V({$value:n,$this:t},i,null)},u))},$size:function(n,t){var r=V(n,t,null);return s(r)?r.length:void 0},$slice:function(n,t){var r=V(n,t,null);return W(u(r[0]),r[1],r[2])},$zip:function(n,t){var e=V(n,t.inputs,null),u=t.useLongestLength||!1;r(s(e),"'inputs' expression must resolve to an array"),r(o(u),"'useLongestLength' must be a boolean"),s(t.defaults)&&r(b(u),"'useLongestLength' must be set to true to use 'defaults'");var i,a,l=0;for(a=0;a<e.length;a++){if(i=e[a],d(i))return null;r(s(i),"'inputs' expression values must resolve to an array or null"),l=u?Math.max(l,i.length):Math.min(l||i.length,i.length)}var c=[],f=t.defaults||[];for(a=0;l>a;a++)i=e.map(function(n,t){return d(n[a])?f[t]||null:n[a]}),c.push(i);return c}},xn={$and:function(n,t){var r=V(n,t,null);return b(r)&&r.every(b)},$or:function(n,t){var r=V(n,t,null);return b(r)&&r.some(b)},$not:function(n,t){return!V(n,t[0],null)}},On={$cmp:function(n,t){var r=V(n,t,null);return r[0]>r[1]?1:r[0]<r[1]?-1:0}};E(["$eq","$ne","$gt","$gte","$lt","$lte","$in","$nin"],function(n){On[n]=function(t,r){var e=V(t,r,null);return yn[n](e[0],e[1])}});var wn={$cond:function(n,t){var r,e,u;s(t)?(3!==t.length&&N("Invalid arguments for $cond operator"),r=t[0],e=t[1],u=t[2]):c(t)&&(r=t["if"],e=t.then,u=t["else"]);var i=V(n,r,null);return i?V(n,e,null):V(n,u,null)},$switch:function(n,t){t.branches||N("Invalid arguments for $switch operator");var r=t.branches.find(function(t){return t["case"]&&t.then||N("Invalid arguments for $switch operator"),V(n,t["case"],null)});return r?V(n,r.then,null):t["default"]?V(n,t["default"],null):void N("Invalid arguments for $switch operator")},$ifNull:function(n,t){r(s(t)&&2===t.length,"Invalid arguments for $ifNull operator");var e=V(n,t,null);return null===e[0]||void 0===e[0]?e[1]:e[0]}},jn={"%Y":["$year",4],"%m":["$month",2],"%d":["$dayOfMonth",2],"%H":["$hour",2],"%M":["$minute",2],"%S":["$second",2],"%L":["$millisecond",3],"%j":["$dayOfYear",3],"%w":["$dayOfWeek",1],"%U":["$week",2],"%%":"%"},Nn={$dayOfYear:function(n,t){var r=V(n,t,null);if(h(r)){var e=new Date(r.getFullYear(),0,0),u=r-e,i=864e5;return Math.round(u/i)}},$dayOfMonth:function(n,t){var r=V(n,t,null);return h(r)?r.getDate():void 0},$dayOfWeek:function(n,t){var r=V(n,t,null);return h(r)?r.getDay()+1:void 0},$year:function(n,t){var r=V(n,t,null);return h(r)?r.getFullYear():void 0},$month:function(n,t){var r=V(n,t,null);return h(r)?r.getMonth()+1:void 0},$week:function(n,t){var r=V(n,t,null);r=new Date(+r),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)},$hour:function(n,t){var r=V(n,t,null);return h(r)?r.getUTCHours():void 0},$minute:function(n,t){var r=V(n,t,null);return h(r)?r.getMinutes():void 0},$second:function(n,t){var r=V(n,t,null);return h(r)?r.getSeconds():void 0},$millisecond:function(n,t){var r=V(n,t,null);return h(r)?r.getMilliseconds():void 0},$dateToString:function(n,t){for(var r=t.format,e=V(n,t.date,null),u=r.match(/(%%|%Y|%m|%d|%H|%M|%S|%L|%j|%w|%U)/g),i=0,o=u.length;o>i;i++){var a=jn[u[i]],l=a;if(s(a)){var c=this[a[0]],f=a[1];l=tn(c.call(this,n,e),f)}r=r.replace(u[i],l)}return r}},Mn={$literal:function(n,t){return t}},En={$setEquals:function(n,t){var r=V(n,t,null),e=P(r[0]),u=P(r[1]);return e.length===u.length&&e.length===I(e,u).length},$setIntersection:function(n,t){var r=V(n,t,null);return I(r[0],r[1])},$setDifference:function(n,t){var r=V(n,t,null);return r[0].filter(m.bind(null,r[1]))},$setUnion:function(n,t){var r=V(n,t,null);return k(r[0],r[1])},$setIsSubset:function(n,t){var r=V(n,t,null);return I(r[0],r[1]).length===r[0].length},$anyElementTrue:function(n,t){var r=V(n,t,null)[0];return r.some(b)},$allElementsTrue:function(n,t){var r=V(n,t,null)[0];return r.every(b)}},An={$concat:function(n,t){var r=V(n,t,null);return[null,void 0].some(y.bind(null,r))?null:r.join("")},$indexOfBytes:function(n,t){var e=V(n,t,null);if(d(e[0]))return null;r(a(e[0]),"$indexOfBytes first operand must resolve to a string"),r(a(e[1]),"$indexOfBytes second operand must resolve to a string");var u=e[0],i=e[1],o=e[2],s=e[3];if(r($(o)||l(o)&&o>=0&&Math.round(o)===o,"$indexOfBytes third operand must resolve to a non-negative integer"),o=o||0,r($(s)||l(s)&&s>=0&&Math.round(s)===s,"$indexOfBytes fourth operand must resolve to a non-negative integer"),s=s||u.length,o>s)return-1;var c=u.substring(o,s).indexOf(i);return c>-1?c+o:c},$split:function(n,t){var e=V(n,t,null);return r(a(e[0]),"$split requires an expression that evaluates to a string as a first argument, found: "+w(e[0])),r(a(e[1]),"$split requires an expression that evaluates to a string as a second argument, found: "+w(e[1])),e[0].split(e[1])},$strcasecmp:function(n,t){var r=V(n,t,null);return r[0]=x(r[0])?"":r[0].toUpperCase(),r[1]=x(r[1])?"":r[1].toUpperCase(),r[0]>r[1]?1:r[0]<r[1]?-1:0},$substr:function(n,t){var r=V(n,t,null);return a(r[0])?r[1]<0?"":r[2]<0?r[0].substr(r[1]):r[0].substr(r[1],r[2]):""},$toLower:function(n,t){var r=V(n,t,null);return x(r)?"":r.toLowerCase()},$toUpper:function(n,t){var r=V(n,t,null);return x(r)?"":r.toUpperCase()}},In={$map:function(n,t){var r=V(n,t.input,null);s(r)||N("Input expression for $map must resolve to an array");var e=t.as,u=t["in"],i="$"+e,o=n[i];return r.map(function(t){n[i]=t;var r=V(n,u,null);return $(o)?delete n[i]:n[i]=o,r})},$let:function(n,t){var r=t.vars,e=t["in"],u={},i=M(r);E(i,function(t){var e=V(n,r[t],null),i="$"+t;u[i]=n[i],n[i]=e});var o=V(n,e,null);return E(i,function(t){var r="$"+t;$(u[r])?delete n[r]:n[r]=u[r]}),o}},kn=Object.assign({},bn,_n,xn,On,wn,Nn,Mn,En,An,In),Cn=un.KEY_QUERY=un.OP_QUERY="query",qn=un.KEY_GROUP=un.OP_GROUP="group",Pn=un.KEY_AGGREGATE=un.OP_AGGREGATE="aggregate",Sn=un.KEY_PIPELINE=un.OP_PIPELINE="pipeline",Tn=un.KEY_PROJECTION=un.OP_PROJECTION="projection",Rn={aggregate:kn,group:dn,pipeline:gn,projection:$n,query:mn};un.addOperators=function(n,t){var e=t({computeValue:V,key:F,ops:rn,resolve:L});r(j(Rn,n),"Could not identify operator class '"+n+"'");var u=Rn[n];E(e,function(t,e){r(/^\$\w+$/.test(e),"Invalid operator name '"+e+"'"),r(!j(u,e),"Operator "+e+" is already defined for "+n+" operators")});var i={};switch(n){case Cn:E(e,function(n,t){i[t]=function(n,r){return function(e,u){return{test:function(i){var a=L(i,e),l=n.call(r,e,a,u);return o(l)?l:l instanceof Query?l.test(i):void N("Invalid return type for '"+t+"'. Must return a Boolean or Mingo.Query")}}}}(n,e)});break;case Tn:E(e,function(n,t){i[t]=function(n,t){return function(r,e,u){var i=L(r,u);return n.call(t,u,i,e)}}(n,e)});break;default:E(e,function(n,t){i[t]=function(n,t){return function(){var r=on.slice.call(arguments);return n.apply(t,r)}}(n,e)})}Object.assign(Rn[n],i)},un.find=function(n,t,r){return new un.Query(t).find(n,r)},un.remove=function(n,t){return new un.Query(t).remove(n)},un.aggregate=function(n,t){return s(t)||N("Aggregation pipeline must be an array"),new un.Aggregator(t).run(n)},un.CollectionMixin={query:function(n,t){return un.find(this.toJSON(),n,t)},aggregate:function(n){return un.aggregate.call(null,this.toJSON(),n)}},"undefined"!=typeof module&&module.exports&&"undefined"!=typeof require?module.exports=un:n.Mingo=un}(this);
!function(n){"use strict";function t(){return{isArray:s,isBoolean:o,isDate:h,isEmpty:O,isEqual:C,isFunction:p,isNil:d,isNull:g,isNumber:l,isObject:c,isObjectLike:f,isRegExp:v,isString:a,isUndefined:$}}function r(n,t){_(n)&&N(t)}function e(n){return r(!$(n))}function u(n){switch(w(n)){case"array":return n.map(u);case"object":return A(n,u);default:return n}}function i(n,t){return w(n)===t}function o(n){return i(n,"boolean")}function a(n){return i(n,"string")}function l(n){return i(n,"number")}function s(n){return i(n,"array")}function c(n){return i(n,"object")}function f(n){return n===Object(n)}function h(n){return i(n,"date")}function v(n,t){return i(n,"regexp")}function p(n,t){return i(n,"function")}function d(n){return g(n)||$(n)}function g(n){return i(n,"null")}function $(n){return i(n,"undefined")}function m(n,t){return n.includes(t)}function y(n,t){return!n.includes(t)}function b(n){return!!n}function _(n){return!n}function O(n){return d(n)||s(n)&&0===n.length||c(n)&&0===M(n).length||!n}function x(n){return s(n)?n:[n]}function w(n){return on.toString.call(n).match(/\s(\w+)/)[1].toLowerCase()}function j(n,t){return on.hasOwnProperty.call(n,t)}function N(n){throw new Error(n)}function M(n){return Object.keys(n)}function E(n,t,e){if(r(n===Object(n),"Cannot iterate over object of type '"+w(n)+"'"),s(n))n.forEach(t,e);else for(var u in n)j(n,u)&&t.call(e,n[u],u)}function A(n,t,r){if(s(n))return n.map(t,r);if(c(n)){for(var e,u={},i=M(n),o=0,a=i.length;a>o;o++)e=i[o],u[e]=t.call(r,n[e],e);return u}N("Input must be an Array or Object type")}function I(n,t){return n.filter(m.bind(null,t))}function k(n,t){var r=[];return Q(r,n),Q(r,t.filter(y.bind(null,n))),r}function C(n,t){if(n===t)return!0;var r=w(n);if(r!==w(t))return!1;if("number"===r&&isNaN(n)&&isNaN(t))return!0;if(m(["date","regexp"],r))return n.toString()===t.toString();var e,u;if("array"===r){if(n.length===t.length&&0===n.length)return!0;if(n.length!==t.length)return!1;for(e=0,u=n.length;u>e;e++)if(!C(n[e],t[e]))return!1}else{if(![n,t].every(c))return!1;var i=M(n),o=M(t);if(i.length!==o.length)return!1;if(i.sort(),o.sort(),!C(i,o))return!1;for(e=0,u=i.length;u>e;e++){var a=i[e];if(!C(n[a],t[a]))return!1}}return!0}function P(n){var t={},r=[];return E(n,function(n){var e=S(n);j(t,e)||(r.push(n),t[e]=0)}),r}function q(n){return JSON.stringify({"":n})+w(n)+n}function S(n){var t,r,e,u=0,i=q(n);if(0===i.length)return u;for(t=0,e=i.length;e>t;t++)r=i.charCodeAt(t),u=(u<<5)-u+r,u|=0;return u.toString()}function T(n,t,e){for(var i,o,a,l={},s=[],c=n.length,f=0;c>f;f++)o=n[f],i=t.call(e,o,f),a=S(o),j(l,a)||(l[a]=[i,f]),s.push(u(o));return s.sort(function(n,t){var r=l[S(n)],e=l[S(t)];return r[0]<e[0]?-1:r[0]>e[0]?1:r[1]<e[1]?-1:r[1]>e[1]?1:0}),r(s.length===n.length,"sortBy must retain collection length"),s}function R(n,t,e){var u={keys:[],groups:[]},i={};return E(n,function(n){var r=t.call(e,n),o=S(r),a=-1;$(i[o])&&(a=u.keys.length,i[o]=a,u.keys.push(r),u.groups.push([])),a=i[o],u.groups[a].push(n)}),r(u.keys.length===u.groups.length,"Cardinality must be equal for groups and keys"),u}function Q(n,t){un.push.apply(n,t)}function D(){return ln.key}function F(n,t){return n[t]}function L(n,t,r){for(var e=t.split("."),u=n,i=0;i<e.length;i++){var o=g(e[i].match(/^\d+$/));if(o&&s(u)){if(r===!0&&0===i)return u;u=u.map(function(n){return L(n,e[i],!0)}),1===u.length&&(u=u[0])}else u=F(u,e[i]),r=!1;if($(u))break}return u}function U(n,t){if(!$(n)){var u,i,o=t.split("."),a=o[0],l=1===o.length||o.slice(1).join("."),c=null!==a.match(/^\d+$/);try{1===o.length?s(n)?c?(u=F(n,a),e(u),u=[u]):(u=[],E(n,function(n){i=U(n,t),$(i)||u.push(i)}),r(u.length>0)):(i=F(n,a),e(i),u={},u[a]=i):s(n)?c?(u=F(n,a),u=U(u,l),e(u),u=[u]):(u=[],E(n,function(n){i=U(n,t),$(i)||u.push(i)}),r(u.length>0)):(i=F(n,a),i=U(i,l),e(i),u={},u[a]=i)}catch(f){u=void 0}return u}}function Y(n,t,r,e){var u=t.split("."),i=u[0],o=1===u.length||u.slice(1).join(".");if(1===u.length)r(n,i);else if(s(n)&&!/^\d+$/.test(i))E(n,function(n){Y(n,t,r,e)});else{if(e===!0){var a=j(n,i);a&&!d(n[i])||(n[i]={})}Y(n[i],o,r,e)}}function B(n,t,r){Y(n,t,function(n,t){n[t]=r},!0)}function G(n,t){Y(n,t,function(n,t){s(n)&&/^\d+$/.test(t)?n.splice(parseInt(t),1):c(n)&&delete n[t]})}function J(n){for(var t=0;t<vn.length;t++)if(vn[t](n))return!0;return!1}function K(n){return J(n)||!f(n)}function z(n){if(K(n))return v(n)?{$regex:n}:{$eq:n};if(f(n)){var t=M(n),r=0===I(tn(kn),t).length;if(r)return{$eq:n};if(m(t,"$regex")){var e=n.$regex,u=n.$options||"",i="";a(e)&&(i+=e.ignoreCase||u.indexOf("i")>=0?"i":"",i+=e.multiline||u.indexOf("m")>=0?"m":"",i+=e.global||u.indexOf("g")>=0?"g":"",e=new RegExp(e,i)),n.$regex=e,delete n.$options}}return n}function H(n,t,e,i){if(i=i||{},i.root=i.root||u(n),m(tn(Pn),e))return In[e](n,t,i);if(m(tn(Cn),e))return n=H(n,t,null,i),r(s(n),"Must use collection type with "+e+" operator"),pn[e](n,null,i);if(a(t)&&t.length>0&&"$"===t[0]){if(m(fn,t))return sn[t](n,null,i);if(m(hn,t))return t;var o=fn.filter(function(n){return 0===t.indexOf(n+".")});return 1===o.length&&(o=o[0],"$$ROOT"===o&&(n=i.root),t=t.substr(o.length)),L(n,t.slice(1))}switch(w(t)){case"array":return t.map(function(t){return H(n,t,null)});case"object":var l={};for(var c in t)if(j(t,c)&&(l[c]=H(n,t[c],c,i),m(tn(Pn),c))){r(1===M(t).length,"Invalid aggregation expression '"+an(t)+"'"),l=l[c];break}return l;default:return u(t)}}function V(n,t,e){return d(e)?0>t?(t=Math.max(0,n.length+t),e=n.length-t+1):(e=t,t=0):(0>t&&(t=Math.max(0,n.length+t)),r(e>0,"Invalid argument value for $slice operator. Limit must be a positive number"),e+=t),un.slice.apply(n,[t,e])}function W(n){var t=n.dataset.reduce(function(n,t){return n+t},0),r=n.dataset.length||1,e=n.sampled===!0?1:0,u=t/(r-e);return Math.sqrt(n.dataset.reduce(function(n,t){return n+Math.pow(t-u,2)},0)/r)}function X(n,t,r){r=r||{},r.root=r.root||u(n);var e=H(n,t,null,r);return m(hn,e)?cn[e](n,t,r):e}function Z(n,t,r){if(m(tn(Cn),t))return pn[t](n,r);if(c(r)){var e={};for(var u in r)if(j(r,u)&&(e[u]=Z(n,u,r[u]),m(tn(Cn),u))){e=e[u],M(r).length>1&&N("Invalid $group expression '"+an(r)+"'");break}return e}}function nn(n,t){return new Array(Math.max(t-String(n).length+1,0)).join("0")+n}function tn(n){return M(Tn[n])}var rn,en={};null!==n&&(rn=n.Mingo),en.noConflict=function(){return n.Mingo=rn,en},en.VERSION="1.1.1";var un=Array.prototype,on=Object.prototype,an=JSON.stringify;Function.prototype.bind||(Function.prototype.bind=function(n){if("function"!=typeof this)throw new Error("Function.prototype.bind - what is trying to be bound is not callable");var t=un.slice.call(arguments,1),r=this,e=function(){},u=function(){return r.apply(this instanceof e?this:n,t.concat(un.slice.call(arguments)))};return this.prototype&&(e.prototype=this.prototype),u.prototype=new e,u}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(n){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),r=t.length>>>0;if("function"!=typeof n)throw new TypeError("predicate must be a function");for(var e=arguments[1],u=0;r>u;){var i=t[u];if(n.call(e,i,u,t))return i;u++}}}),Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(n){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),r=t.length>>>0;if("function"!=typeof n)throw new TypeError("predicate must be a function");for(var e=arguments[1],u=0;r>u;){var i=t[u];if(n.call(e,i,u,t))return u;u++}return-1}}),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;for(var u=0|t,i=Math.max(u>=0?u:e-Math.abs(u),0);e>i;){if(r[i]===n)return!0;i++}return!1}}),"function"!=typeof Object.assign&&(Object.assign=function(n,t){if(null==n)throw new TypeError("Cannot convert undefined or null to object");for(var r=Object(n),e=un.slice.call(arguments),u=1;u<e.length;u++){var i=e[u];if(null!=i)for(var o in i)on.hasOwnProperty.call(i,o)&&(r[o]=i[o])}return r}),Object.keys||(Object.keys=function(n){if(n!==Object(n))throw new TypeError("Object.keys called on a non-object");var t=[];for(var r in n)on.hasOwnProperty.call(n,r)&&t.push(r);return t}),Object.values||(Object.values=function(n){if(n!==Object(n))throw new TypeError("Object.values called on a non-object");var t=[];for(var r in n)on.hasOwnProperty.call(n,r)&&t.push(n[r]);return t});var ln={key:"_id"};en.setup=function(n){Object.assign(ln,n||{})},en._internal=function(){return Object.assign(t(),{computeValue:H})};var sn={$$ROOT:function(n,t,r){return r.root},$$CURRENT:function(n,t,r){return n}},cn={$$KEEP:function(n,t,r){return n},$$PRUNE:function(n,t,r){},$$DESCEND:function(n,t,r){if(!j(t,"$cond"))return n;var e;return E(n,function(u,i){f(u)&&(s(u)?(e=[],E(u,function(n,u){c(n)&&(n=X(n,t,r)),$(n)||e.push(n)})):e=X(u,t,r),$(e)?delete n[i]:n[i]=e)}),n}},fn=M(sn),hn=M(cn),vn=[a,o,l,h,d,v];en.Aggregator=function(n){return this instanceof en.Aggregator?void(this.__operators=n):new en.Aggregator(n)},en.Aggregator.prototype.run=function(n,t){if(!O(this.__operators))for(var r=0;r<this.__operators.length;r++){var e=this.__operators[r],u=M(e);1===u.length&&m(tn(qn),u[0])?(u=u[0],n=t instanceof en.Query?dn[u].call(t,n,e[u]):dn[u](n,e[u])):except("Invalid aggregation operator '"+u+"'")}return n},en.Cursor=function(n,t,r){return this instanceof en.Cursor?(this.__query=t,this.__collection=n,this.__projection=r||t.__projection,this.__operators={},this.__result=!1,void(this.__position=0)):new en.Cursor(n,t,r)},en.Cursor.prototype={_fetch:function(){var n=this;if(this.__result!==!1)return this.__result;c(this.__projection)&&Object.assign(this.__operators,{$project:this.__projection}),s(this.__collection)||except("Input collection is not of valid type. Must be an Array."),this.__result=this.__collection.filter(this.__query.test,this.__query);var t=[];if(E(["$sort","$skip","$limit","$project"],function(r){if(j(n.__operators,r)){var e={};e[r]=n.__operators[r],t.push(e)}}),t.length>0){var r=new en.Aggregator(t);this.__result=r.run(this.__result,this.__query)}return this.__result},all:function(){return this._fetch()},first:function(){return this.count()>0?this._fetch()[0]:null},last:function(){return this.count()>0?this._fetch()[this.count()-1]:null},count:function(){return this._fetch().length},skip:function(n){return Object.assign(this.__operators,{$skip:n}),this},limit:function(n){return Object.assign(this.__operators,{$limit:n}),this},sort:function(n){return Object.assign(this.__operators,{$sort:n}),this},next:function(){return this.hasNext()?this._fetch()[this.__position++]:null},hasNext:function(){return this.count()>this.__position},max:function(n){return pn.$max(this._fetch(),n)},min:function(n){return pn.$min(this._fetch(),n)},map:function(n){return A(this._fetch(),n)},forEach:function(n){E(this._fetch(),n)}},en.Query=function(n,t){return this instanceof en.Query?(this.__criteria=n,this.__projection=t,this.__compiled=[],void this._compile()):new en.Query(n,t)},en.Query.prototype={_compile:function(){if(!O(this.__criteria)){r(c(this.__criteria),"Criteria must be of type Object");for(var n in this.__criteria)if(j(this.__criteria,n)){var t=this.__criteria[n];if(m(["$and","$or","$nor","$where"],n))this._processOperator(n,n,t);else{t=z(t);for(var e in t)j(t,e)&&this._processOperator(n,e,t[e])}}}},_processOperator:function(n,t,r){m(tn(kn),t)?this.__compiled.push(mn[t](n,r)):except("Invalid query operator '"+t+"' detected")},test:function(n){for(var t=0;t<this.__compiled.length;t++)if(!this.__compiled[t].test(n))return!1;return!0},find:function(n,t){return new en.Cursor(n,this,t)},remove:function(n){var t=this;return n.reduce(function(n,r){return t.test(r)||n.push(r),n},[])}};var pn={$addToSet:function(n,t){return P(this.$push(n,t))},$sum:function(n,t){return s(n)?l(t)?n.length*t:this.$push(n,t).filter(l).reduce(function(n,t){return n+t},0):0},$max:function(n,t){var r=this.$push(n,t);return r.reduce(function(n,t){return d(n)||t>n?t:n},void 0)},$min:function(n,t){var r=this.$push(n,t);return r.reduce(function(n,t){return d(n)||n>t?t:n},void 0)},$avg:function(n,t){var r=this.$push(n,t).filter(l),e=r.reduce(function(n,t){return n+t},0);return e/(r.length||1)},$push:function(n,t){return d(t)?n:n.map(function(n){return H(n,t,null)})},$first:function(n,t){return n.length>0?H(n[0],t):void 0},$last:function(n,t){return n.length>0?H(n[n.length-1],t):void 0},$stdDevPop:function(n,t){var r=this.$push(n,t).filter(l);return W({dataset:r,sampled:!1})},$stdDevSamp:function(n,t){var r=this.$push(n,t).filter(l);return W({dataset:r,sampled:!0})}},dn={$addFields:function(n,t){var e=M(t);return n.map(function(n){return n=u(n),E(e,function(e){var u,i=t[e];if(c(i)){var o=M(i),a=o.filter(function(n){return 0===n.indexOf("$")});O(a)||(r(1===o.length,"Can have only one root operator in $addFields"),a=a[0],i=i[a],u=H(n,i,a))}else u=H(n,i,null);Y(n,e,function(n,t){n[t]=u},!0)}),n})},$group:function(n,t){var r=t[D()],e=R(n,function(n){return H(n,r,r)}),u=[];return delete t[D()],E(e.keys,function(n,r){var i={};$(n)||(i[D()]=n);for(var o in t)j(t,o)&&(i[o]=Z(e.groups[r],o,t[o]));u.push(i)}),u},$lookup:function(n,t){function e(n){return S(d(n)?null:n)}var i=t.from,o=t.localField,l=t.foreignField,c=t.as,f="Invalid $lookup expression. ";r(s(i),f+"'from' must be an array"),r(a(l),f+"'foreignField' must be a string"),r(a(o),f+"'localField' must be a string"),r(a(c),f+"'as' must be a string");var h=[],v={};return E(i,function(n,t){var r=e(n[l]);v[r]=v[r]||[],v[r].push(t)}),E(n,function(n){var t=e(n[o]),r=v[t]||[],a=u(n);a[c]=A(r,function(n){return u(i[n])}),h.push(a)}),h},$match:function(n,t){return new en.Query(t).find(n).all()},$project:function(n,t){if(O(t))return n;var e=[],i=M(t),o=!1,s=[!1,!1];if(E(i,function(n){var e=t[n];n!==D()&&(0===e||e===!1?s[0]=!0:s[1]=!0,r(s[0]!==s[1],"Projection cannot have a mix of inclusion and exclusion."))}),m(i,D())){var f=t[D()];0!==f&&f!==!1||(i=i.filter(y.bind(null,[D()])),r(y(i,D()),"Must not contain collections _id"),o=O(i))}else i.push(D());return E(n,function(n,r){var s={},f=!1,h=!1,v=[];o&&v.push(D()),E(i,function(r){var e,i,o=t[r];if(r!==D()&&0===o&&(h=!0),r===D()&&O(o))e=n[r];else if(a(o))e=H(n,o,r);else if(1===o||o===!0);else{if(!c(o))return void v.push(r);var p=M(o);p=p.length>1?!1:p[0],m(tn(Sn),p)?"$slice"===p?x(o[p]).every(l)?(e=gn[p](n,o[p],r),f=!0):e=H(n,o,r):e=gn[p](n,o[p],r):e=H(n,o,r)}e=u(e),i=u(U(n,r)),$(i)||Object.assign(s,i),$(e)||B(s,r,e)}),(f||h||o)&&(s=Object.assign(u(n),s),E(v,function(n){G(s,n)})),e.push(s)}),e},$limit:function(n,t){return n.slice(0,t)},$skip:function(n,t){return n.slice(t)},$unwind:function(n,t){for(var r=[],e=t.substr(1),i=0;i<n.length;i++){var o=n[i],a=F(o,e);s(a)?E(a,function(n){var t=u(o);t[e]=n,r.push(t)}):except("Target field '"+e+"' is not of type Array.")}return r},$sort:function(n,t){if(!O(t)&&c(t)){var r=M(t);E(r.reverse(),function(r){var e=R(n,function(n){return L(n,r)}),u={},i=function(n){return u[S(n)]},o=T(e.keys,function(n,t){return u[S(n)]=t,n});-1===t[r]&&o.reverse(),n=[],E(o,function(t){Q(n,e.groups[i(t)])})})}return n},$sortByCount:function(n,t){var r={count:{$sum:1}};return r[D()]=t,this.$sort(this.$group(n,r),{count:-1})},$sample:function(n,t){var e=t.size;r(l(e),"$sample size must be a positive integer");for(var u=[],i=0;e>i;i++){var o=Math.floor(Math.random()*n.length);u.push(n[o])}return u},$count:function(n,t){r(a(t)&&""!==t.trim()&&-1===t.indexOf(".")&&"$"!==t.trim()[0],"Invalid expression value for $count");var e={};return e[t]=n.length,e},$replaceRoot:function(n,t){var e=t.newRoot,u=[];return E(n,function(n){n=H(n,e,null),r(c(n),"$replaceRoot expression must return a valid JS object"),u.push(n)}),u},$redact:function(n,t){return n.map(function(n){return X(u(n),t)})}},gn={$:function(n,t,r){N("$ not implemented")},$elemMatch:function(n,t,r){var e=L(n,r),u=new en.Query(t);if(!$(e)&&s(e))for(var i=0;i<e.length;i++)if(u.test(e[i]))return[e[i]]},$slice:function(n,t,r){var e=L(n,r);return s(e)?s(t)?V(e,t[0],t[1]):l(t)?V(e,t):void N("Invalid argument type for $slice projection operator"):e},$stdDevPop:function(n,t,r){var e=H(n,t,r);return W({dataset:e,sampled:!1})},$stdDevSamp:function(n,t,r){var e=H(n,t,r);return W({dataset:e,sampled:!0})}},$n={$eq:function(n,t){return C(n,t)||s(n)&&-1!==n.findIndex(C.bind(null,t))},$ne:function(n,t){return!this.$eq(n,t)},$in:function(n,t){return n=x(n),I(n,t).length>0},$nin:function(n,t){return $(n)||!this.$in(n,t)},$lt:function(n,t){return n=x(n).find(function(n){return t>n}),void 0!==n},$lte:function(n,t){return n=x(n).find(function(n){return t>=n}),void 0!==n},$gt:function(n,t){return n=x(n).find(function(n){return n>t}),void 0!==n},$gte:function(n,t){return n=x(n).find(function(n){return n>=t}),void 0!==n},$mod:function(n,t){return n=x(n).find(function(n){return l(n)&&s(t)&&2===t.length&&n%t[0]===t[1]}),void 0!==n},$regex:function(n,t){return n=x(n).find(function(n){return a(n)&&v(t)&&!!n.match(t)}),void 0!==n},$exists:function(n,t){return t===!1&&$(n)||t===!0&&!$(n)},$all:function(n,t){var r=this,e=!1;if(s(n)&&s(t))for(var u=0;u<t.length;u++){if(!c(t[u])||!m(M(t[u]),"$elemMatch"))return I(t,n).length===t.length;e=e||r.$elemMatch(n,t[u].$elemMatch)}return e},$size:function(n,t){return s(n)&&l(t)&&n.length===t},$elemMatch:function(n,t){if(s(n)&&!O(n))for(var r=new en.Query(t),e=0;e<n.length;e++)if(r.test(n[e]))return!0;return!1},$type:function(n,t){switch(t){case 1:return l(n)&&-1!==(n+"").indexOf(".");case 2:case 5:return a(n);case 3:return c(n);case 4:return s(n);case 8:return o(n);case 9:return h(n);case 10:return g(n);case 11:return v(n);case 16:return l(n)&&2147483647>=n&&-1===(n+"").indexOf(".");case 18:return l(n)&&n>2147483647&&0x8000000000000000>=n&&-1===(n+"").indexOf(".");default:return!1}}},mn={$and:function(n,t){r(s(t),"Invalid expression: $and expects value to be an Array");var e=[];return E(t,function(n){e.push(new en.Query(n))}),{test:function(n){for(var t=0;t<e.length;t++)if(!e[t].test(n))return!1;return!0}}},$or:function(n,t){s(t)||N("Invalid expression for $or criteria");var r=[];return E(t,function(n){r.push(new en.Query(n))}),{test:function(n){for(var t=0;t<r.length;t++)if(r[t].test(n))return!0;return!1}}},$nor:function(n,t){s(t)||N("Invalid expression for $nor criteria");var r=this.$or("$or",t);return{test:function(n){return!r.test(n)}}},$not:function(n,t){var r={};r[n]=z(t);var e=new en.Query(r);return{test:function(n){return!e.test(n)}}},$where:function(n,t){return p(t)||(t=new Function("return "+t+";")),{test:function(n){return t.call(n)===!0}}}};E($n,function(n,t){mn[t]=function(n,t){return function(r,e){return{test:function(u){var i=L(u,r);return n.call(t,i,e)}}}}(n,$n)});var yn={$abs:function(n,t){var r=H(n,t,null);return null===r||void 0===r?null:Math.abs(r)},$add:function(n,t){var r=H(n,t,null);return r.reduce(function(n,t){return n+t},0)},$ceil:function(n,t){var e=H(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$ceil must be a valid expression that resolves to a number."),Math.ceil(e))},$divide:function(n,t){var r=H(n,t,null);return r[0]/r[1]},$exp:function(n,t){var e=H(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$exp must be a valid expression that resolves to a number."),Math.exp(e))},$floor:function(n,t){var e=H(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$floor must be a valid expression that resolves to a number."),Math.floor(e))},$ln:function(n,t){var e=H(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$ln must be a valid expression that resolves to a number."),Math.log(e))},$log:function(n,t){var e=H(n,t,null);return r(s(e)&&2===e.length,"$log must be a valid expression that resolves to an array of 2 items"),e.some(isNaN)?NaN:e.some(d)?null:(r(e.every(l),"$log expression must resolve to array of 2 numbers"),Math.log10(e[0])/Math.log10(e[1]))},$log10:function(n,t){var e=H(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e),"$log10 must be a valid expression that resolves to a number."),Math.log10(e))},$mod:function(n,t){var r=H(n,t,null);return r[0]%r[1]},$multiply:function(n,t){var r=H(n,t,null);return r.reduce(function(n,t){return n*t},1)},$pow:function(n,t){var e=H(n,t,null);return r(s(e)&&2===e.length&&e.every(l),"$pow must be a valid expression that resolves to an array of 2 numbers"),0===e[0]&&e[1]<0&&N("$pow cannot raise 0 to a negative exponent"),Math.pow(e[0],e[1])},$sqrt:function(n,t){var e=H(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e)&&e>0,"$sqrt must be a valid expression that resolves to a non-negative number."),Math.sqrt(e))},$subtract:function(n,t){var r=H(n,t,null);return r[0]-r[1]},$trunc:function(n,t){var e=H(n,t,null);return isNaN(e)?NaN:d(e)?null:(r(l(e)&&e>0,"$trunc must be a valid expression that resolves to a non-negative number."),Math.trunc(e))}},bn={$arrayElemAt:function(n,t){var e=H(n,t,null);r(s(e)&&2===e.length,"$arrayElemAt expression must resolve to an array of 2 elements"),r(s(e[0]),"First operand to $arrayElemAt must resolve to an array"),r(l(e[1]),"Second operand to $arrayElemAt must resolve to an integer");var u=e[1];return e=e[0],0>u&&Math.abs(u)<=e.length?e[u+e.length]:u>=0&&u<e.length?e[u]:void 0},$concatArrays:function(n,t){var e=H(n,t,null);return r(s(e)&&2===e.length,"$concatArrays expression must resolve to an array of 2 elements"),e.some(d)?null:e[0].concat(e[1])},$filter:function(n,t){var e=H(n,t.input,null),u=t.as,i=t.cond;return r(s(e),"'input' expression for $filter must resolve to an array"),e.filter(function(n){var t={};return t["$"+u]=n,H(t,i,null)===!0})},$indexOfArray:function(n,t){var e=H(n,t,null);if(d(e))return null;var u=e[0];if(d(u))return null;r(s(u),"First operand for $indexOfArray must resolve to an array.");var i=e[1];if(d(i))return null;var o=e[2]||0,a=e[3]||u.length;return a<u.length&&(u=u.slice(o,a)),u.indexOf(i,o)},$isArray:function(n,t){return s(H(n,t,null))},$range:function(n,t){for(var r=H(n,t,null),e=r[0],u=r[1],i=r[2]||1,o=[];u>e&&i>0||e>u&&0>i;)o.push(e),e+=i;return o},$reverseArray:function(n,t){var e=H(n,t,null);return d(e)?null:(r(s(e),"$reverseArray expression must resolve to an array"),e=u(e),e.reverse(),e)},$reduce:function(n,t){var e=H(n,t.input,null),u=H(n,t.initialValue,null),i=t["in"];return d(e)?null:(r(s(e),"'input' expression for $reduce must resolve to an array"),e.reduce(function(n,t){return H({$value:n,$this:t},i,null)},u))},$size:function(n,t){var r=H(n,t,null);return s(r)?r.length:void 0},$slice:function(n,t){var r=H(n,t,null);return V(u(r[0]),r[1],r[2])},$zip:function(n,t){var e=H(n,t.inputs,null),u=t.useLongestLength||!1;r(s(e),"'inputs' expression must resolve to an array"),r(o(u),"'useLongestLength' must be a boolean"),s(t.defaults)&&r(b(u),"'useLongestLength' must be set to true to use 'defaults'");var i,a,l=0;for(a=0;a<e.length;a++){if(i=e[a],d(i))return null;r(s(i),"'inputs' expression values must resolve to an array or null"),l=u?Math.max(l,i.length):Math.min(l||i.length,i.length)}var c=[],f=t.defaults||[];for(a=0;l>a;a++)i=e.map(function(n,t){return d(n[a])?f[t]||null:n[a]}),c.push(i);return c}},_n={$and:function(n,t){var r=H(n,t,null);return b(r)&&r.every(b)},$or:function(n,t){var r=H(n,t,null);return b(r)&&r.some(b)},$not:function(n,t){return!H(n,t[0],null)}},On={$cmp:function(n,t){var r=H(n,t,null);return r[0]>r[1]?1:r[0]<r[1]?-1:0}};E(["$eq","$ne","$gt","$gte","$lt","$lte","$in","$nin"],function(n){On[n]=function(t,r){var e=H(t,r,null);return $n[n](e[0],e[1])}});var xn={$cond:function(n,t){var r,e,u;s(t)?(3!==t.length&&N("Invalid arguments for $cond operator"),r=t[0],e=t[1],u=t[2]):c(t)&&(r=t["if"],e=t.then,u=t["else"]);var i=H(n,r,null);return i?H(n,e,null):H(n,u,null)},$switch:function(n,t){t.branches||N("Invalid arguments for $switch operator");var r=t.branches.find(function(t){return t["case"]&&t.then||N("Invalid arguments for $switch operator"),H(n,t["case"],null)});return r?H(n,r.then,null):t["default"]?H(n,t["default"],null):void N("Invalid arguments for $switch operator")},$ifNull:function(n,t){r(s(t)&&2===t.length,"Invalid arguments for $ifNull operator");var e=H(n,t,null);return null===e[0]||void 0===e[0]?e[1]:e[0]}},wn={"%Y":["$year",4],"%m":["$month",2],"%d":["$dayOfMonth",2],"%H":["$hour",2],"%M":["$minute",2],"%S":["$second",2],"%L":["$millisecond",3],"%j":["$dayOfYear",3],"%w":["$dayOfWeek",1],"%U":["$week",2],"%%":"%"},jn={$dayOfYear:function(n,t){var r=H(n,t,null);if(h(r)){var e=new Date(r.getFullYear(),0,0),u=r-e,i=864e5;return Math.round(u/i)}},$dayOfMonth:function(n,t){var r=H(n,t,null);return h(r)?r.getDate():void 0},$dayOfWeek:function(n,t){var r=H(n,t,null);return h(r)?r.getDay()+1:void 0},$year:function(n,t){var r=H(n,t,null);return h(r)?r.getFullYear():void 0},$month:function(n,t){var r=H(n,t,null);return h(r)?r.getMonth()+1:void 0},$week:function(n,t){var r=H(n,t,null);r=new Date(+r),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)},$hour:function(n,t){var r=H(n,t,null);return h(r)?r.getUTCHours():void 0},$minute:function(n,t){var r=H(n,t,null);return h(r)?r.getMinutes():void 0},$second:function(n,t){var r=H(n,t,null);return h(r)?r.getSeconds():void 0},$millisecond:function(n,t){var r=H(n,t,null);return h(r)?r.getMilliseconds():void 0},$dateToString:function(n,t){for(var r=t.format,e=H(n,t.date,null),u=r.match(/(%%|%Y|%m|%d|%H|%M|%S|%L|%j|%w|%U)/g),i=0,o=u.length;o>i;i++){var a=wn[u[i]],l=a;if(s(a)){var c=this[a[0]],f=a[1];l=nn(c.call(this,n,e),f)}r=r.replace(u[i],l)}return r}},Nn={$literal:function(n,t){return t}},Mn={$setEquals:function(n,t){var r=H(n,t,null),e=P(r[0]),u=P(r[1]);return e.length===u.length&&e.length===I(e,u).length},$setIntersection:function(n,t){var r=H(n,t,null);return I(r[0],r[1])},$setDifference:function(n,t){var r=H(n,t,null);return r[0].filter(y.bind(null,r[1]))},$setUnion:function(n,t){var r=H(n,t,null);return k(r[0],r[1])},$setIsSubset:function(n,t){var r=H(n,t,null);return I(r[0],r[1]).length===r[0].length},$anyElementTrue:function(n,t){var r=H(n,t,null)[0];return r.some(b)},$allElementsTrue:function(n,t){var r=H(n,t,null)[0];return r.every(b)}},En={$concat:function(n,t){var r=H(n,t,null);return[null,void 0].some(m.bind(null,r))?null:r.join("")},$indexOfBytes:function(n,t){var e=H(n,t,null);if(d(e[0]))return null;r(a(e[0]),"$indexOfBytes first operand must resolve to a string"),r(a(e[1]),"$indexOfBytes second operand must resolve to a string");var u=e[0],i=e[1],o=e[2],s=e[3];if(r($(o)||l(o)&&o>=0&&Math.round(o)===o,"$indexOfBytes third operand must resolve to a non-negative integer"),o=o||0,r($(s)||l(s)&&s>=0&&Math.round(s)===s,"$indexOfBytes fourth operand must resolve to a non-negative integer"),s=s||u.length,o>s)return-1;var c=u.substring(o,s).indexOf(i);return c>-1?c+o:c},$split:function(n,t){var e=H(n,t,null);return r(a(e[0]),"$split requires an expression that evaluates to a string as a first argument, found: "+w(e[0])),r(a(e[1]),"$split requires an expression that evaluates to a string as a second argument, found: "+w(e[1])),e[0].split(e[1])},$strcasecmp:function(n,t){var r=H(n,t,null);return r[0]=O(r[0])?"":r[0].toUpperCase(),r[1]=O(r[1])?"":r[1].toUpperCase(),r[0]>r[1]?1:r[0]<r[1]?-1:0},$substr:function(n,t){var r=H(n,t,null);return a(r[0])?r[1]<0?"":r[2]<0?r[0].substr(r[1]):r[0].substr(r[1],r[2]):""},$toLower:function(n,t){var r=H(n,t,null);return O(r)?"":r.toLowerCase()},$toUpper:function(n,t){var r=H(n,t,null);return O(r)?"":r.toUpperCase()}},An={$map:function(n,t){var r=H(n,t.input,null);s(r)||N("Input expression for $map must resolve to an array");var e=t.as,u=t["in"],i="$"+e,o=n[i];return r.map(function(t){n[i]=t;var r=H(n,u,null);return $(o)?delete n[i]:n[i]=o,r})},$let:function(n,t){var r=t.vars,e=t["in"],u={},i=M(r);E(i,function(t){var e=H(n,r[t],null),i="$"+t;u[i]=n[i],n[i]=e});var o=H(n,e,null);return E(i,function(t){var r="$"+t;$(u[r])?delete n[r]:n[r]=u[r]}),o}},In=Object.assign({},yn,bn,_n,On,xn,jn,Nn,Mn,En,An),kn=en.KEY_QUERY=en.OP_QUERY="query",Cn=en.KEY_GROUP=en.OP_GROUP="group",Pn=en.KEY_AGGREGATE=en.OP_AGGREGATE="aggregate",qn=en.KEY_PIPELINE=en.OP_PIPELINE="pipeline",Sn=en.KEY_PROJECTION=en.OP_PROJECTION="projection",Tn={aggregate:In,group:pn,pipeline:dn,projection:gn,query:mn};en.addOperators=function(n,t){var e=t({computeValue:H,key:D,ops:tn,resolve:L});r(j(Tn,n),"Could not identify operator class '"+n+"'");var u=Tn[n];E(e,function(t,e){r(/^\$\w+$/.test(e),"Invalid operator name '"+e+"'"),r(!j(u,e),"Operator "+e+" is already defined for "+n+" operators")});var i={};switch(n){case kn:E(e,function(n,t){i[t]=function(n,r){return function(e,u){return{test:function(i){var a=L(i,e),l=n.call(r,e,a,u);return o(l)?l:l instanceof Query?l.test(i):void N("Invalid return type for '"+t+"'. Must return a Boolean or Mingo.Query")}}}}(n,e)});break;case Sn:E(e,function(n,t){i[t]=function(n,t){return function(r,e,u){var i=L(r,u);return n.call(t,u,i,e)}}(n,e)});break;default:E(e,function(n,t){i[t]=function(n,t){return function(){var r=un.slice.call(arguments);return n.apply(t,r)}}(n,e)})}Object.assign(Tn[n],i)},en.find=function(n,t,r){return new en.Query(t).find(n,r)},en.remove=function(n,t){return new en.Query(t).remove(n)},en.aggregate=function(n,t){return s(t)||N("Aggregation pipeline must be an array"),new en.Aggregator(t).run(n)},en.CollectionMixin={query:function(n,t){return en.find(this.toJSON(),n,t)},aggregate:function(n){return en.aggregate.call(null,this.toJSON(),n)}},"undefined"!=typeof module&&module.exports&&"undefined"!=typeof require?module.exports=en:n.Mingo=en}(this);
//# sourceMappingURL=dist/mingo.min.map
{
"name": "mingo",
"version": "1.1.0",
"version": "1.1.1",
"description": "JavaScript implementation of MongoDB query language",

@@ -5,0 +5,0 @@ "main": "mingo.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc