UNPKG

21.1 kBJavaScriptView Raw
1/*! jmespath 2015-02-08 */
2!function(a){"use strict";function b(a){return null!==a?"[object Array]"===toString.call(a):!1}function c(a){return null!==a?"[object Object]"===toString.call(a):!1}function d(a,e){if(a===e)return!0;var f=toString.call(a);if(f!==toString.call(e))return!1;if(b(a)===!0){if(a.length!==e.length)return!1;for(var g=0;g<a.length;g++)if(d(a[g],e[g])===!1)return!1;return!0}if(c(a)===!0){var h={};for(var i in a)if(hasOwnProperty.call(a,i)){if(d(a[i],e[i])===!1)return!1;h[i]=!0}for(var j in e)if(hasOwnProperty.call(e,j)&&h[j]!==!0)return!1;return!0}return!1}function e(a){if(""===a||a===!1||null===a)return!0;if(b(a)&&0===a.length)return!0;if(c(a)){var d;for(d in a)return!1;return!0}return!1}function f(a){for(var b=Object.keys(a),c=[],d=0;d<b.length;d++)c.push(a[b[d]]);return c}function g(a,b){var c={};for(var d in a)c[d]=a[d];for(var e in b)c[e]=b[e];return c}function h(){}function i(){this.bindingPower={EOF:0,UnquotedIdentifier:0,QuotedIdentifier:0,Rbracket:0,Rparen:0,Comma:0,Rbrace:0,Number:0,Current:0,Expref:0,Pipe:1,EQ:2,GT:2,LT:2,GTE:2,LTE:2,NE:2,Or:5,Flatten:6,Star:20,Dot:40,Lbrace:50,Filter:50,Lbracket:55,Lparen:60}}function j(a){this.runtime=a}function k(a){this.interpreter=a,this.functionTable={abs:{func:this.functionAbs,signature:[{types:["number"]}]},avg:{func:this.functionAvg,signature:[{types:["array-number"]}]},ceil:{func:this.functionCeil,signature:[{types:["number"]}]},contains:{func:this.functionContains,signature:[{types:["string","array"]},{types:["any"]}]},ends_with:{func:this.functionEndsWith,signature:[{types:["string"]},{types:["string"]}]},floor:{func:this.functionFloor,signature:[{types:["number"]}]},length:{func:this.functionLength,signature:[{types:["string","array","object"]}]},max:{func:this.functionMax,signature:[{types:["array-number","array-string"]}]},max_by:{func:this.functionMaxBy,signature:[{types:["array"]},{types:["expref"]}]},sum:{func:this.functionSum,signature:[{types:["array-number"]}]},starts_with:{func:this.functionStartsWith,signature:[{types:["string"]},{types:["string"]}]},min:{func:this.functionMin,signature:[{types:["array-number","array-string"]}]},min_by:{func:this.functionMinBy,signature:[{types:["array"]},{types:["expref"]}]},type:{func:this.functionType,signature:[{types:["any"]}]},keys:{func:this.functionKeys,signature:[{types:["object"]}]},values:{func:this.functionValues,signature:[{types:["object"]}]},sort:{func:this.functionSort,signature:[{types:["array-string","array-number"]}]},sort_by:{func:this.functionSortBy,signature:[{types:["array"]},{types:["expref"]}]},join:{func:this.functionJoin,signature:[{types:["string"]},{types:["array-string"]}]},reverse:{func:this.functionReverse,signature:[{types:["string","array"]}]},to_string:{func:this.functionToString,signature:[{types:["any"]}]},to_number:{func:this.functionToNumber,signature:[{types:["any"]}]},not_null:{func:this.functionNotNull,signature:[{types:["any"],variadic:!0}]}}}function l(a){var b=new i,c=b.parse(a);return c}function m(a){var b=new h;return b.tokenize(a)}function n(a,b){var c=new i,d=new k,e=new j(d);d.interpreter=e;var f=c.parse(b);return e.search(f,a)}var o={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current","&":"Expref"},p={a:!0,b:!0,c:!0,d:!0,e:!0,f:!0,g:!0,h:!0,i:!0,j:!0,k:!0,l:!0,m:!0,n:!0,o:!0,p:!0,q:!0,r:!0,s:!0,t:!0,u:!0,v:!0,w:!0,x:!0,y:!0,z:!0,A:!0,B:!0,C:!0,D:!0,E:!0,F:!0,G:!0,H:!0,I:!0,J:!0,K:!0,L:!0,M:!0,N:!0,O:!0,P:!0,Q:!0,R:!0,S:!0,T:!0,U:!0,V:!0,W:!0,X:!0,Y:!0,Z:!0,_:!0},q={"<":!0,">":!0,"=":!0,"!":!0},r={0:!0,1:!0,2:!0,3:!0,4:!0,5:!0,6:!0,7:!0,8:!0,9:!0,"-":!0},s=g(p,r),t={" ":!0," ":!0,"\n":!0};h.prototype={tokenize:function(a){var b=[];this.current=0;for(var c,d,e;this.current<a.length;)if(void 0!==p[a[this.current]])c=this.current,d=this.consumeUnquotedIdentifier(a),b.push({type:"UnquotedIdentifier",value:d,start:c});else if(void 0!==o[a[this.current]])b.push({type:o[a[this.current]],value:a[this.current],start:this.current}),this.current++;else if(void 0!==r[a[this.current]])e=this.consumeNumber(a),b.push(e);else if("["===a[this.current])e=this.consumeLBracket(a),b.push(e);else if('"'===a[this.current])c=this.current,d=this.consumeQuotedIdentifier(a),b.push({type:"QuotedIdentifier",value:d,start:c});else if("`"===a[this.current]){c=this.current;var f=this.consumeLiteral(a);b.push({type:"Literal",value:f,start:c})}else if(void 0!==q[a[this.current]])b.push(this.consumeOperator(a));else if(void 0!==t[a[this.current]])this.current++;else{if("|"!==a[this.current]){var g=new Error("Unknown character:"+a[this.current]);throw g.name="LexerError",g}c=this.current,this.current++,"|"===a[this.current]?(this.current++,b.push({type:"Or",value:"||",start:c})):b.push({type:"Pipe",value:"|",start:c})}return b},consumeUnquotedIdentifier:function(a){var b=this.current;for(this.current++;void 0!==s[a[this.current]];)this.current++;return a.slice(b,this.current)},consumeQuotedIdentifier:function(a){var b=this.current;this.current++;for(var c=a.length;'"'!==a[this.current]&&this.current<c;){var d=this.current;"\\"!==a[d]||"\\"!==a[d+1]&&'"'!==a[d+1]?d++:d+=2,this.current=d}return this.current++,JSON.parse(a.slice(b,this.current))},consumeNumber:function(a){var b=this.current;this.current++;for(var c=a.length;void 0!==r[a[this.current]]&&this.current<c;)this.current++;var d=parseInt(a.slice(b,this.current));return{type:"Number",value:d,start:b}},consumeLBracket:function(a){var b=this.current;return this.current++,"?"===a[this.current]?(this.current++,{type:"Filter",value:"[?",start:b}):"]"===a[this.current]?(this.current++,{type:"Flatten",value:"[]",start:b}):{type:"Lbracket",value:"[",start:b}},consumeOperator:function(a){var b=this.current,c=a[b];if(this.current++,"!"===c){if("="===a[this.current])return this.current++,{type:"NE",value:"!=",start:b}}else{if("<"===c)return"="===a[this.current]?(this.current++,{type:"LTE",value:"<=",start:b}):{type:"LT",value:"<",start:b};if(">"===c)return"="===a[this.current]?(this.current++,{type:"GTE",value:">=",start:b}):{type:"GT",value:">",start:b};if("="===c&&"="===a[this.current])return this.current++,{type:"EQ",value:"==",start:b}}},consumeLiteral:function(a){this.current++;for(var b,c=this.current,d=a.length;"`"!==a[this.current]&&this.current<d;){var e=this.current;"\\"!==a[e]||"\\"!==a[e+1]&&"`"!==a[e+1]?e++:e+=2,this.current=e}var f=a.slice(c,this.current).trimLeft();return f=f.replace("\\`","`"),b=JSON.parse(this.looksLikeJSON(f)?f:'"'+f+'"'),this.current++,b},looksLikeJSON:function(a){var b='[{"',c=["true","false","null"],d="-0123456789";if(""===a)return!1;if(b.indexOf(a[0])>=0)return!0;if(c.indexOf(a)>=0)return!0;if(!(d.indexOf(a[0])>=0))return!1;try{return JSON.parse(a),!0}catch(e){return!1}}},i.prototype={parse:function(a){this.loadTokens(a),this.index=0;var b=this.expression(0);if("EOF"!==this.lookahead(0)){var c=this.lookaheadToken(0),d=new Error("Unexpected token type: "+c.type+", value: "+c.value);throw d.name="ParserError",d}return b},loadTokens:function(a){var b=new h,c=b.tokenize(a);c.push({type:"EOF",value:"",start:a.length}),this.tokens=c},expression:function(a){var b=this.lookaheadToken(0);this.advance();for(var c="nud"+b.type,d=this[c]||this.errorToken,e=d.call(this,b),f=this.lookahead(0);a<this.bindingPower[f];){var g=this["led"+f];void 0===g&&this.errorToken(this.lookaheadToken(0)),this.advance(),e=g.call(this,e),f=this.lookahead(0)}return e},lookahead:function(a){return this.tokens[this.index+a].type},lookaheadToken:function(a){return this.tokens[this.index+a]},advance:function(){this.index++},match:function(a){if(this.lookahead(0)!==a){var b=this.lookaheadToken(0),c=new Error("Expected "+a+", got: "+b.type);throw c.name="ParserError",c}this.advance()},errorToken:function(a){var b=new Error("Invalid token ("+a.type+'): "'+a.value+'"');throw b.name="ParserError",b},nudLiteral:function(a){return{type:"Literal",value:a.value}},nudUnquotedIdentifier:function(a){return{type:"Field",name:a.value}},nudExpref:function(){var a=this.expression(this.bindingPower.Expref);return{type:"ExpressionReference",children:[a]}},nudQuotedIdentifier:function(a){var b={type:"Field",name:a.value};if("Lparen"===this.lookahead(0))throw new Error("Quoted identifier not allowed for function names.");return b},ledOr:function(a){var b=this.expression(this.bindingPower.Or);return{type:"OrExpression",children:[a,b]}},ledPipe:function(a){var b=this.expression(this.bindingPower.Pipe);return{type:"Pipe",children:[a,b]}},nudStar:function(){var a={type:"Identity"},b=null;return b="Rbracket"===this.lookahead(0)?{type:"Identity"}:this.parseProjectionRHS(this.bindingPower.Star),{type:"ValueProjection",children:[a,b]}},nudLbracket:function(){if("Number"===this.lookahead(0)||"Colon"===this.lookahead(0))return this.parseIndexExpression();if("Star"===this.lookahead(0)&&"Rbracket"===this.lookahead(1)){this.advance(),this.advance();var a=this.parseProjectionRHS(this.bindingPower.Star);return{type:"Projection",children:[{type:"Identity"},a]}}return this.parseMultiselectList()},parseIndexExpression:function(){if("Colon"===this.lookahead(0)||"Colon"===this.lookahead(1))return this.parseSliceExpression();var a={type:"Index",value:this.lookaheadToken(0).value};return this.advance(),this.match("Rbracket"),a},parseSliceExpression:function(){for(var a=[null,null,null],b=0,c=this.lookahead(0);"Rbracket"!==c&&3>b;){if("Colon"===c)b++,this.advance();else{if("Number"!==c){var d=this.lookahead(0),e=new Error("Syntax error, unexpected token: "+d.value+"("+d.type+")");throw e.name="Parsererror",e}a[b]=this.lookaheadToken(0).value,this.advance()}c=this.lookahead(0)}return this.match("Rbracket"),{type:"Slice",children:a}},nudLbrace:function(){return this.parseMultiselectHash()},ledDot:function(a){var b,c=this.bindingPower.Dot;return"Star"!==this.lookahead(0)?(b=this.parseDotRHS(c),{type:"Subexpression",children:[a,b]}):(this.advance(),b=this.parseProjectionRHS(c),{type:"ValueProjection",children:[a,b]})},nudFilter:function(){return this.ledFilter({type:"Identity"})},ledFilter:function(a){var b,c=this.expression(0);return this.match("Rbracket"),b="Flatten"===this.lookahead(0)?{type:"Identity"}:this.parseProjectionRHS(this.bindingPower.Filter),{type:"FilterProjection",children:[a,b,c]}},ledEQ:function(a){return this.parseComparator(a,"EQ")},ledNE:function(a){return this.parseComparator(a,"NE")},ledGT:function(a){return this.parseComparator(a,"GT")},ledGTE:function(a){return this.parseComparator(a,"GTE")},ledLT:function(a){return this.parseComparator(a,"LT")},ledLTE:function(a){return this.parseComparator(a,"LTE")},parseComparator:function(a,b){var c=this.expression(this.bindingPower[b]);return{type:"Comparator",name:b,children:[a,c]}},ledLbracket:function(a){var b,c=this.lookaheadToken(0);return"Number"===c.type||"Colon"===c.type?(b=this.parseIndexExpression(),{type:"IndexExpression",children:[a,b]}):(this.match("Star"),this.match("Rbracket"),b=this.parseProjectionRHS(this.bindingPower.Star),{type:"Projection",children:[a,b]})},nudFlatten:function(){var a={type:"Flatten",children:[{type:"Identity"}]},b=this.parseProjectionRHS(this.bindingPower.Flatten);return{type:"Projection",children:[a,b]}},ledFlatten:function(a){var b={type:"Flatten",children:[a]},c=this.parseProjectionRHS(this.bindingPower.Flatten);return{type:"Projection",children:[b,c]}},ledLparen:function(a){for(var b,c,d=a.name,e=[];"Rparen"!==this.lookahead(0);)"Current"===this.lookahead(0)?(b={type:"Current"},this.advance()):b=this.expression(0),"Comma"===this.lookahead(0)&&this.match("Comma"),e.push(b);return this.match("Rparen"),c={type:"Function",name:d,children:e}},parseDotRHS:function(a){var b=this.lookahead(0),c=["UnquotedIdentifier","QuotedIdentifier","Star"];return c.indexOf(b)>=0?this.expression(a):"Lbracket"===b?(this.match("Lbracket"),this.parseMultiselectList()):"Lbrace"===b?(this.match("Lbrace"),this.parseMultiselectHash()):void 0},parseProjectionRHS:function(a){var b;if(this.bindingPower[this.lookahead(0)]<10)b={type:"Identity"};else if("Lbracket"===this.lookahead(0))b=this.expression(a);else if("Filter"===this.lookahead(0))b=this.expression(a);else{if("Dot"!==this.lookahead(0)){var c=this.lookaheadToken(0),d=new Error("Sytanx error, unexpected token: "+c.value+"("+c.type+")");throw d.name="ParserError",d}this.match("Dot"),b=this.parseDotRHS(a)}return b},parseMultiselectList:function(){for(var a=[];"Rbracket"!==this.lookahead(0);){var b=this.expression(0);if(a.push(b),"Comma"===this.lookahead(0)&&(this.match("Comma"),"Rbracket"===this.lookahead(0)))throw new Error("Unexpected token Rbracket")}return this.match("Rbracket"),{type:"MultiSelectList",children:a}},parseMultiselectHash:function(){for(var a,b,c,d,e=[],f=["UnquotedIdentifier","QuotedIdentifier"];;){if(a=this.lookaheadToken(0),f.indexOf(a.type)<0)throw new Error("Expecting an identifier token, got: "+a.type);if(b=a.value,this.advance(),this.match("Colon"),c=this.expression(0),d={type:"KeyValuePair",name:b,value:c},e.push(d),"Comma"===this.lookahead(0))this.match("Comma");else if("Rbrace"===this.lookahead(0)){this.match("Rbrace");break}}return{type:"MultiSelectHash",children:e}}},j.prototype={search:function(a,b){return this.visit(a,b)},visit:function(a,b){var c=this["visit"+a.type];if(void 0===c)throw new Error("Unknown node type: "+a.type);return c.call(this,a,b)},visitField:function(a,b){if(null===b)return null;if(c(b)){var d=b[a.name];return void 0===d?null:d}return null},visitSubexpression:function(a,b){for(var c=this.visit(a.children[0],b),d=1;d<a.children.length;d++)if(c=this.visit(a.children[1],c),null===c)return null;return c},visitIndexExpression:function(a,b){var c=this.visit(a.children[0],b),d=this.visit(a.children[1],c);return d},visitIndex:function(a,c){if(!b(c))return null;var d=a.value;0>d&&(d=c.length+d);var e=c[d];return void 0===e&&(e=null),e},visitSlice:function(a,c){if(!b(c))return null;var d,e=a.children.slice(0),f=this.computeSliceParams(c.length,e),g=f[0],h=f[1],i=f[2],j=[];if(i>0)for(d=g;h>d;d+=i)j.push(c[d]);else for(d=g;d>h;d+=i)j.push(c[d]);return j},computeSliceParams:function(a,b){var c=b[0],d=b[1],e=b[2],f=[null,null,null];if(null===e)e=1;else if(0===e){var g=new Error("Invalid slice, step cannot be 0");throw g.name="RuntimeError",g}var h=0>e?!0:!1;return c=null===c?h?a-1:0:this.capSliceRange(a,c,e),d=null===d?h?-1:a:this.capSliceRange(a,d,e),f[0]=c,f[1]=d,f[2]=e,f},capSliceRange:function(a,b,c){return 0>b?(b+=a,0>b&&(b=0>c?-1:0)):b>=a&&(b=0>c?a-1:a),b},visitProjection:function(a,c){var d=this.visit(a.children[0],c);if(!b(d))return null;for(var e=[],f=0;f<d.length;f++){var g=this.visit(a.children[1],d[f]);null!==g&&e.push(g)}return e},visitValueProjection:function(a,b){var d=this.visit(a.children[0],b);if(!c(d))return null;for(var e=[],g=f(d),h=0;h<g.length;h++){var i=this.visit(a.children[1],g[h]);null!==i&&e.push(i)}return e},visitFilterProjection:function(a,c){var d=this.visit(a.children[0],c);if(!b(d))return null;for(var e,f,g=[],h=[],i=0;i<d.length;i++)e=this.visit(a.children[2],d[i]),e===!0&&g.push(d[i]);for(var j=0;j<g.length;j++)f=this.visit(a.children[1],g[j]),null!==f&&h.push(f);return h},visitComparator:function(a,b){var c,e=this.visit(a.children[0],b),f=this.visit(a.children[1],b);switch(a.name){case"EQ":c=d(e,f);break;case"NE":c=!d(e,f);break;case"GT":c=e>f;break;case"GTE":c=e>=f;break;case"LT":c=f>e;break;case"LTE":c=f>=e;break;default:throw new Error("Unknown comparator: "+a.name)}return c},visitFlatten:function(a,c){var d=this.visit(a.children[0],c);if(!b(d))return null;for(var e=[],f=0;f<d.length;f++){var g=d[f];b(g)?e.push.apply(e,g):e.push(g)}return e},visitIdentity:function(a,b){return b},visitMultiSelectList:function(a,b){if(null===b)return null;for(var c=[],d=0;d<a.children.length;d++)c.push(this.visit(a.children[d],b));return c},visitMultiSelectHash:function(a,b){if(null===b)return null;for(var c,d={},e=0;e<a.children.length;e++)c=a.children[e],d[c.name]=this.visit(c.value,b);return d},visitOrExpression:function(a,b){var c=this.visit(a.children[0],b);return e(c)&&(c=this.visit(a.children[1],b)),c},visitLiteral:function(a){return a.value},visitPipe:function(a,b){var c=this.visit(a.children[0],b);return this.visit(a.children[1],c)},visitCurrent:function(a,b){return b},visitFunction:function(a,b){for(var c=[],d=0;d<a.children.length;d++)c.push(this.visit(a.children[d],b));return this.runtime.callFunction(a.name,c)},visitExpressionReference:function(a){var b=a.children[0];return b.jmespathType="Expref",b}},k.prototype={callFunction:function(a,b){var c=this.functionTable[a];if(void 0===c)throw new Error("Unknown function: "+a+"()");return this.validateArgs(a,b,c.signature),c.func.call(this,b)},validateArgs:function(a,b,c){var d;if(c[c.length-1].variadic){if(b.length<c.length)throw d=1===c.length?" argument":" arguments",new Error("ArgumentError: "+a+"() takes at least"+c.length+d+" but received "+b.length)}else if(b.length!==c.length)throw d=1===c.length?" argument":" arguments",new Error("ArgumentError: "+a+"() takes "+c.length+d+" but received "+b.length);for(var e,f,g,h=0;h<c.length;h++){g=!1,e=c[h].types,f=this.getTypeName(b[h]);for(var i=0;i<e.length;i++)if(this.typeMatches(f,e[i],b[h])){g=!0;break}if(!g)throw new Error("TypeError: "+a+"() expected argument "+(h+1)+" to be type "+e+" but received type "+f+" instead.")}},typeMatches:function(a,b,c){if("any"===b)return!0;if(0!==b.indexOf("array"))return a===b;if("array"===b)return 0===a.indexOf("array");if(0===a.indexOf("array")){for(var d=b.split("-")[1],e=0;e<c.length;e++)if(!this.typeMatches(this.getTypeName(c[e]),d,c[e]))return!1;return!0}},getTypeName:function(a){switch(toString.call(a)){case"[object String]":return"string";case"[object Number]":return"number";case"[object Array]":return"array";case"[object Boolean]":return"boolean";case"[object Null]":return"null";case"[object Object]":return"Expref"===a.jmespathType?"expref":"object"}},functionStartsWith:function(a){return 0===a[0].lastIndexOf(a[1])},functionEndsWith:function(a){var b=a[0],c=a[1];return-1!==b.indexOf(c,b.length-c.length)},functionReverse:function(a){var b=this.getTypeName(a[0]);if("string"===b){for(var c=a[0],d="",e=c.length-1;e>=0;e--)d+=c[e];return d}var f=a[0].slice(0);return f.reverse(),f},functionAbs:function(a){return Math.abs(a[0])},functionCeil:function(a){return Math.ceil(a[0])},functionAvg:function(a){for(var b=0,c=a[0],d=0;d<c.length;d++)b+=c[d];return b/c.length},functionContains:function(a){return a[0].indexOf(a[1])>=0},functionFloor:function(a){return Math.floor(a[0])},functionLength:function(a){return c(a[0])?Object.keys(a[0]).length:a[0].length},functionMax:function(a){if(a[0].length>0){var b=this.getTypeName(a[0][0]);if("number"===b)return Math.max.apply(Math,a[0]);for(var c=a[0],d=c[0],e=1;e<c.length;e++)d.localeCompare(c[e])<0&&(d=c[e]);return d}return null},functionMin:function(a){if(a[0].length>0){var b=this.getTypeName(a[0][0]);if("number"===b)return Math.min.apply(Math,a[0]);for(var c=a[0],d=c[0],e=1;e<c.length;e++)c[e].localeCompare(d)<0&&(d=c[e]);return d}return null},functionSum:function(a){for(var b=0,c=a[0],d=0;d<c.length;d++)b+=c[d];return b},functionType:function(a){return this.getTypeName(a[0])},functionKeys:function(a){return Object.keys(a[0])},functionValues:function(a){for(var b=a[0],c=Object.keys(b),d=[],e=0;e<c.length;e++)d.push(b[c[e]]);return d},functionJoin:function(a){var b=a[0],c=a[1];return c.join(b)},functionToString:function(a){return"string"===this.getTypeName(a[0])?a[0]:JSON.stringify(a[0])},functionToNumber:function(a){var b,c=this.getTypeName(a[0]);return"number"===c?a[0]:"string"!==c||(b=+a[0],isNaN(b))?null:b},functionNotNull:function(a){for(var b=0;b<a.length;b++)if("null"!==this.getTypeName(a[b]))return a[b];return null},functionSort:function(a){var b=a[0].slice(0);return b.sort(),b},functionSortBy:function(a){var b=a[0].slice(0);if(!b)return b;var c=this.interpreter,d=a[1],e=this.getTypeName(c.visit(d,b[0]));if(["number","string"].indexOf(e)<0)throw new Error("TypeError");for(var f=this,g=[],h=0;h<b.length;h++)g.push([h,b[h]]);g.sort(function(a,b){var g=c.visit(d,a[1]),h=c.visit(d,b[1]);if(f.getTypeName(g)!==e)throw new Error("TypeError: expected "+e+", received "+f.getTypeName(g));if(f.getTypeName(h)!==e)throw new Error("TypeError: expected "+e+", received "+f.getTypeName(h));return g>h?1:h>g?-1:a[0]-b[0]});for(var i=0;i<g.length;i++)b[i]=g[i][1];return b},functionMaxBy:function(a){for(var b,c,d=a[1],e=a[0],f=this.createKeyFunction(d,["number","string"]),g=-1/0,h=0;h<e.length;h++)c=f(e[h]),c>g&&(g=c,b=e[h]);return b},functionMinBy:function(a){for(var b,c,d=a[1],e=a[0],f=this.createKeyFunction(d,["number","string"]),g=1/0,h=0;h<e.length;h++)c=f(e[h]),g>c&&(g=c,b=e[h]);return b},createKeyFunction:function(a,b){var c=this,d=this.interpreter,e=function(e){var f=d.visit(a,e);if(b.indexOf(c.getTypeName(f))<0){var g="TypeError: expected one of "+b+", received "+c.getTypeName(f);throw new Error(g)}return f};return e}},a.tokenize=m,a.compile=l,a.search=n,a.Parser=i,a.strictDeepEqual=d}("undefined"==typeof exports?this.jmespath={}:exports);
\No newline at end of file