/* Copyright Jason E. Smith 2008 Licensed under the Apache License, Version 2.0 (the "License"); You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 */ (function(){function map(e,t){var n=e.length;if(typeof t!="function")throw new TypeError;var r=new Array(n),i=arguments[2];for(var s=0;s0?"`]":e.charAt(0)=='"'||e.charAt(0)=="'"?"`"+(str.push(e)-1):e});var prefix="";query.replace(/(\]|\)|push|pop|shift|splice|sort|reverse)\s*\(/,function(){throw new Error("Unsafe function call")}),query=query.replace(/([^=]=)([^=])/g,"$1=$2").replace(/@|(\.\s*)?[a-zA-Z\$_]+(\s*:)?/g,function(e){return e.charAt(0)=="."?e:e=="@"?"$obj":(e.match(/:|^(\$|Math|true|false|null)$/)?"":"$obj.")+e}).replace(/\.?\.?\[(`\]|[^\]])*\]|\?.*|\.\.([\w\$_]+)|\.\*/g,function(e,t,n){var r=e.match(/^\.?\.?(\[\s*\^?\?|\^?\?|\[\s*==)(.*?)\]?$/);if(r){var i="";return e.match(/^\./)&&(call("expand"),i=",true)"),call(r[1].match(/\=/)?"map":r[1].match(/\^/)?"distinctFilter":"filter"),i+",function($obj){return "+r[2]+"})"}return r=e.match(/^\[\s*([\/\\].*)\]/),r?".concat().sort(function(a,b){"+r[1].replace(/\s*,?\s*([\/\\])\s*([^,\\\/]+)/g,function(e,t,n){return"var av= "+n.replace(/\$obj/,"a")+",bv= "+n.replace(/\$obj/,"b")+";if(av>bv||bv==null){return "+(t=="/"?1:-1)+";}\n"+"if(bv>av||av==null){return "+(t=="/"?-1:1)+";}\n"})+"})":(r=e.match(/^\[(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)\]/),r?(call("slice"),","+(r[1]||0)+","+(r[2]||0)+","+(r[3]||1)+")"):e.match(/^\.\.|\.\*|\[\s*\*\s*\]|,/)?(call("expand"),(e.charAt(1)=="."?",'"+n+"'":e.match(/,/)?","+e:"")+")"):e)}).replace(/(\$obj\s*(\.\s*[\w_$]+\s*)*)(==|~)\s*`([0-9]+)/g,makeRegex).replace(/`([0-9]+)\s*(==|~)\s*(\$obj(\s*\.\s*[\w_$]+)*)/g,function(e,t,n,r,i){return makeRegex(e,r,i,n,t)}),query=prefix+(query.charAt(0)=="$"?"":"$")+query.replace(/`([0-9]+|\])/g,function(e,t){return t=="]"?"]":str[t]});var executor=eval("1&&function($,$1,$2,$3,$4,$5,$6,$7,$8,$9){var $obj=$;return "+query+"}");for(var i=0;i