Comparing version 1.1.1 to 2.0.0
@@ -1,1 +0,1 @@ | ||
{"/Users/crcn/Developer/public/sift.js/sift.js":{"path":"/Users/crcn/Developer/public/sift.js/sift.js","s":{"1":1,"2":1,"3":1,"4":139,"5":38,"6":13,"7":11,"8":4,"9":4,"10":13,"11":42,"12":8,"13":9,"14":7,"15":34,"16":1,"17":14,"18":1,"19":13,"20":11,"21":11,"22":6,"23":11,"24":1,"25":11,"26":18,"27":18,"28":18,"29":7,"30":4,"31":7,"32":19,"33":19,"34":19,"35":40,"36":11,"37":8,"38":10,"39":10,"40":16,"41":8,"42":2,"43":4,"44":7,"45":2,"46":2,"47":128,"48":30,"49":52,"50":52,"51":26,"52":4,"53":98,"54":5,"55":5,"56":6,"57":6,"58":1,"59":51,"60":51,"61":2,"62":49,"63":1,"64":48,"65":164,"66":1,"67":163,"68":49,"69":8,"70":3,"71":2,"72":1,"73":2,"74":1,"75":159,"76":159,"77":1,"78":483,"79":483,"80":504,"81":504,"82":228,"83":254,"84":1,"85":148,"86":6,"87":148,"88":148,"89":113,"90":125,"91":125,"92":76,"93":49,"94":48,"95":1,"96":124,"97":124,"98":124,"99":59,"100":9,"101":9,"102":9,"103":59,"104":7,"105":7,"106":16,"107":52,"108":124,"109":35,"110":147,"111":279,"112":147,"113":1,"114":868,"115":21,"116":847,"117":79,"118":768,"119":1,"120":9,"121":9,"122":9,"123":1,"124":9,"125":9,"126":1,"127":79,"128":75,"129":256,"130":4,"131":3,"132":1,"133":1,"134":79,"135":62,"136":62,"137":79,"138":78,"139":1,"140":260,"141":77,"142":17,"143":60,"144":60,"145":1,"146":4,"147":3,"148":4,"149":1,"150":1,"151":3,"152":3,"153":1,"154":3,"155":3,"156":1,"157":2,"158":3,"159":3,"160":3,"161":1,"162":1,"163":1,"164":0,"165":0},"b":{"1":[8,34],"2":[7,2],"3":[1,13],"4":[10,1],"5":[10,9],"6":[1,10],"7":[7,11],"8":[6,1],"9":[11,29],"10":[8,8],"11":[2,5],"12":[30,98],"13":[26,26],"14":[52,43],"15":[98,0],"16":[2,49],"17":[1,48],"18":[1,163],"19":[2,1],"20":[56,103],"21":[228,275],"22":[6,142],"23":[113,35],"24":[148,148],"25":[76,49],"26":[48,1],"27":[59,65],"28":[9,50],"29":[7,52],"30":[21,847],"31":[79,768],"32":[75,4],"33":[3,1],"34":[62,17],"35":[17,60],"36":[3,1],"37":[1,3],"38":[1,2],"39":[1,2],"40":[3,3],"41":[1,0],"42":[1,1],"43":[0,0]},"f":{"1":1,"2":139,"3":38,"4":13,"5":11,"6":4,"7":4,"8":13,"9":42,"10":14,"11":11,"12":11,"13":6,"14":11,"15":7,"16":19,"17":10,"18":4,"19":128,"20":5,"21":6,"22":6,"23":51,"24":164,"25":8,"26":3,"27":2,"28":159,"29":483,"30":148,"31":279,"32":868,"33":9,"34":79,"35":256,"36":79,"37":260,"38":4,"39":3,"40":3},"fnMap":{"1":{"name":"(anonymous_1)","line":10,"loc":{"start":{"line":10,"column":1},"end":{"line":10,"column":12}}},"2":{"name":"(anonymous_2)","line":28,"loc":{"start":{"line":28,"column":9},"end":{"line":28,"column":24}}},"3":{"name":"(anonymous_3)","line":35,"loc":{"start":{"line":35,"column":9},"end":{"line":35,"column":24}}},"4":{"name":"(anonymous_4)","line":42,"loc":{"start":{"line":42,"column":9},"end":{"line":42,"column":24}}},"5":{"name":"(anonymous_5)","line":49,"loc":{"start":{"line":49,"column":9},"end":{"line":49,"column":24}}},"6":{"name":"(anonymous_6)","line":56,"loc":{"start":{"line":56,"column":10},"end":{"line":56,"column":25}}},"7":{"name":"(anonymous_7)","line":63,"loc":{"start":{"line":63,"column":10},"end":{"line":63,"column":25}}},"8":{"name":"(anonymous_8)","line":70,"loc":{"start":{"line":70,"column":13},"end":{"line":70,"column":28}}},"9":{"name":"(anonymous_9)","line":77,"loc":{"start":{"line":77,"column":9},"end":{"line":77,"column":24}}},"10":{"name":"(anonymous_10)","line":96,"loc":{"start":{"line":96,"column":10},"end":{"line":96,"column":25}}},"11":{"name":"(anonymous_11)","line":104,"loc":{"start":{"line":104,"column":11},"end":{"line":104,"column":31}}},"12":{"name":"(anonymous_12)","line":112,"loc":{"start":{"line":112,"column":10},"end":{"line":112,"column":25}}},"13":{"name":"(anonymous_13)","line":119,"loc":{"start":{"line":119,"column":10},"end":{"line":119,"column":25}}},"14":{"name":"(anonymous_14)","line":126,"loc":{"start":{"line":126,"column":10},"end":{"line":126,"column":25}}},"15":{"name":"(anonymous_15)","line":140,"loc":{"start":{"line":140,"column":11},"end":{"line":140,"column":26}}},"16":{"name":"(anonymous_16)","line":147,"loc":{"start":{"line":147,"column":9},"end":{"line":147,"column":24}}},"17":{"name":"(anonymous_17)","line":164,"loc":{"start":{"line":164,"column":10},"end":{"line":164,"column":25}}},"18":{"name":"(anonymous_18)","line":180,"loc":{"start":{"line":180,"column":10},"end":{"line":180,"column":25}}},"19":{"name":"(anonymous_19)","line":194,"loc":{"start":{"line":194,"column":11},"end":{"line":194,"column":26}}},"20":{"name":"(anonymous_20)","line":214,"loc":{"start":{"line":214,"column":12},"end":{"line":214,"column":27}}},"21":{"name":"(anonymous_21)","line":222,"loc":{"start":{"line":222,"column":12},"end":{"line":222,"column":27}}},"22":{"name":"(anonymous_22)","line":229,"loc":{"start":{"line":229,"column":16},"end":{"line":229,"column":31}}},"23":{"name":"(anonymous_23)","line":239,"loc":{"start":{"line":239,"column":9},"end":{"line":239,"column":21}}},"24":{"name":"(anonymous_24)","line":248,"loc":{"start":{"line":248,"column":13},"end":{"line":248,"column":25}}},"25":{"name":"(anonymous_25)","line":265,"loc":{"start":{"line":265,"column":9},"end":{"line":265,"column":21}}},"26":{"name":"(anonymous_26)","line":272,"loc":{"start":{"line":272,"column":12},"end":{"line":272,"column":24}}},"27":{"name":"(anonymous_27)","line":284,"loc":{"start":{"line":284,"column":16},"end":{"line":284,"column":28}}},"28":{"name":"getExpr","line":292,"loc":{"start":{"line":292,"column":2},"end":{"line":292,"column":37}}},"29":{"name":"test","line":313,"loc":{"start":{"line":313,"column":2},"end":{"line":313,"column":33}}},"30":{"name":"parse","line":333,"loc":{"start":{"line":333,"column":2},"end":{"line":333,"column":33}}},"31":{"name":"(anonymous_31)","line":402,"loc":{"start":{"line":402,"column":12},"end":{"line":402,"column":28}}},"32":{"name":"comparable","line":413,"loc":{"start":{"line":413,"column":2},"end":{"line":413,"column":29}}},"33":{"name":"convertDotToSubObject","line":426,"loc":{"start":{"line":426,"column":2},"end":{"line":426,"column":50}}},"34":{"name":"getSelector","line":443,"loc":{"start":{"line":443,"column":2},"end":{"line":443,"column":33}}},"35":{"name":"(anonymous_35)","line":447,"loc":{"start":{"line":447,"column":13},"end":{"line":447,"column":29}}},"36":{"name":"sift","line":465,"loc":{"start":{"line":465,"column":2},"end":{"line":465,"column":44}}},"37":{"name":"filter","line":478,"loc":{"start":{"line":478,"column":4},"end":{"line":478,"column":27}}},"38":{"name":"(anonymous_38)","line":489,"loc":{"start":{"line":489,"column":13},"end":{"line":489,"column":31}}},"39":{"name":"(anonymous_39)","line":494,"loc":{"start":{"line":494,"column":22},"end":{"line":494,"column":42}}},"40":{"name":"(anonymous_40)","line":500,"loc":{"start":{"line":500,"column":21},"end":{"line":500,"column":53}}}},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":525,"column":5}},"2":{"start":{"line":15,"column":2},"end":{"line":21,"column":4}},"3":{"start":{"line":23,"column":2},"end":{"line":232,"column":4}},"4":{"start":{"line":29,"column":6},"end":{"line":29,"column":23}},"5":{"start":{"line":36,"column":6},"end":{"line":36,"column":24}},"6":{"start":{"line":43,"column":6},"end":{"line":43,"column":19}},"7":{"start":{"line":50,"column":6},"end":{"line":50,"column":19}},"8":{"start":{"line":57,"column":6},"end":{"line":57,"column":20}},"9":{"start":{"line":64,"column":6},"end":{"line":64,"column":20}},"10":{"start":{"line":71,"column":6},"end":{"line":71,"column":31}},"11":{"start":{"line":80,"column":6},"end":{"line":88,"column":7}},"12":{"start":{"line":82,"column":8},"end":{"line":84,"column":9}},"13":{"start":{"line":83,"column":10},"end":{"line":83,"column":44}},"14":{"start":{"line":83,"column":32},"end":{"line":83,"column":44}},"15":{"start":{"line":87,"column":8},"end":{"line":87,"column":29}},"16":{"start":{"line":90,"column":6},"end":{"line":90,"column":19}},"17":{"start":{"line":97,"column":6},"end":{"line":97,"column":108}},"18":{"start":{"line":97,"column":19},"end":{"line":97,"column":108}},"19":{"start":{"line":98,"column":6},"end":{"line":98,"column":24}},"20":{"start":{"line":106,"column":6},"end":{"line":106,"column":76}},"21":{"start":{"line":113,"column":6},"end":{"line":113,"column":33}},"22":{"start":{"line":120,"column":6},"end":{"line":120,"column":30}},"23":{"start":{"line":127,"column":6},"end":{"line":127,"column":21}},"24":{"start":{"line":127,"column":14},"end":{"line":127,"column":21}},"25":{"start":{"line":128,"column":6},"end":{"line":132,"column":7}},"26":{"start":{"line":129,"column":8},"end":{"line":129,"column":22}},"27":{"start":{"line":130,"column":8},"end":{"line":130,"column":38}},"28":{"start":{"line":131,"column":8},"end":{"line":131,"column":36}},"29":{"start":{"line":131,"column":23},"end":{"line":131,"column":36}},"30":{"start":{"line":134,"column":6},"end":{"line":134,"column":18}},"31":{"start":{"line":141,"column":6},"end":{"line":141,"column":40}},"32":{"start":{"line":149,"column":6},"end":{"line":149,"column":23}},"33":{"start":{"line":150,"column":6},"end":{"line":150,"column":16}},"34":{"start":{"line":152,"column":6},"end":{"line":156,"column":7}},"35":{"start":{"line":153,"column":8},"end":{"line":155,"column":9}},"36":{"start":{"line":154,"column":10},"end":{"line":154,"column":22}},"37":{"start":{"line":158,"column":6},"end":{"line":158,"column":21}},"38":{"start":{"line":166,"column":6},"end":{"line":166,"column":23}},"39":{"start":{"line":168,"column":6},"end":{"line":172,"column":7}},"40":{"start":{"line":169,"column":8},"end":{"line":171,"column":9}},"41":{"start":{"line":170,"column":10},"end":{"line":170,"column":23}},"42":{"start":{"line":174,"column":6},"end":{"line":174,"column":18}},"43":{"start":{"line":182,"column":6},"end":{"line":186,"column":7}},"44":{"start":{"line":183,"column":8},"end":{"line":185,"column":9}},"45":{"start":{"line":184,"column":10},"end":{"line":184,"column":23}},"46":{"start":{"line":188,"column":6},"end":{"line":188,"column":18}},"47":{"start":{"line":196,"column":6},"end":{"line":204,"column":7}},"48":{"start":{"line":198,"column":8},"end":{"line":201,"column":9}},"49":{"start":{"line":199,"column":10},"end":{"line":199,"column":26}},"50":{"start":{"line":200,"column":10},"end":{"line":200,"column":59}},"51":{"start":{"line":200,"column":47},"end":{"line":200,"column":59}},"52":{"start":{"line":203,"column":8},"end":{"line":203,"column":21}},"53":{"start":{"line":208,"column":6},"end":{"line":208,"column":42}},"54":{"start":{"line":215,"column":6},"end":{"line":215,"column":30}},"55":{"start":{"line":216,"column":6},"end":{"line":216,"column":25}},"56":{"start":{"line":223,"column":6},"end":{"line":223,"column":26}},"57":{"start":{"line":230,"column":6},"end":{"line":230,"column":23}},"58":{"start":{"line":234,"column":2},"end":{"line":287,"column":4}},"59":{"start":{"line":241,"column":6},"end":{"line":241,"column":13}},"60":{"start":{"line":243,"column":6},"end":{"line":255,"column":7}},"61":{"start":{"line":244,"column":8},"end":{"line":244,"column":17}},"62":{"start":{"line":245,"column":13},"end":{"line":255,"column":7}},"63":{"start":{"line":246,"column":8},"end":{"line":246,"column":15}},"64":{"start":{"line":248,"column":8},"end":{"line":254,"column":10}},"65":{"start":{"line":249,"column":10},"end":{"line":253,"column":11}},"66":{"start":{"line":250,"column":12},"end":{"line":250,"column":33}},"67":{"start":{"line":252,"column":12},"end":{"line":252,"column":27}},"68":{"start":{"line":257,"column":6},"end":{"line":259,"column":8}},"69":{"start":{"line":266,"column":6},"end":{"line":266,"column":29}},"70":{"start":{"line":274,"column":6},"end":{"line":276,"column":7}},"71":{"start":{"line":275,"column":8},"end":{"line":275,"column":50}},"72":{"start":{"line":278,"column":6},"end":{"line":278,"column":15}},"73":{"start":{"line":285,"column":6},"end":{"line":285,"column":22}},"74":{"start":{"line":292,"column":2},"end":{"line":307,"column":3}},"75":{"start":{"line":294,"column":4},"end":{"line":294,"column":30}},"76":{"start":{"line":296,"column":4},"end":{"line":306,"column":6}},"77":{"start":{"line":313,"column":2},"end":{"line":327,"column":3}},"78":{"start":{"line":315,"column":4},"end":{"line":315,"column":35}},"79":{"start":{"line":318,"column":4},"end":{"line":324,"column":5}},"80":{"start":{"line":320,"column":6},"end":{"line":320,"column":26}},"81":{"start":{"line":322,"column":6},"end":{"line":322,"column":64}},"82":{"start":{"line":322,"column":51},"end":{"line":322,"column":64}},"83":{"start":{"line":326,"column":4},"end":{"line":326,"column":16}},"84":{"start":{"line":333,"column":2},"end":{"line":408,"column":3}},"85":{"start":{"line":336,"column":4},"end":{"line":336,"column":51}},"86":{"start":{"line":336,"column":20},"end":{"line":336,"column":51}},"87":{"start":{"line":338,"column":4},"end":{"line":338,"column":21}},"88":{"start":{"line":341,"column":4},"end":{"line":397,"column":5}},"89":{"start":{"line":343,"column":6},"end":{"line":392,"column":7}},"90":{"start":{"line":348,"column":8},"end":{"line":348,"column":21}},"91":{"start":{"line":349,"column":8},"end":{"line":357,"column":9}},"92":{"start":{"line":350,"column":10},"end":{"line":350,"column":23}},"93":{"start":{"line":353,"column":15},"end":{"line":357,"column":9}},"94":{"start":{"line":354,"column":10},"end":{"line":354,"column":29}},"95":{"start":{"line":356,"column":10},"end":{"line":356,"column":57}},"96":{"start":{"line":360,"column":8},"end":{"line":360,"column":33}},"97":{"start":{"line":363,"column":8},"end":{"line":363,"column":30}},"98":{"start":{"line":366,"column":8},"end":{"line":389,"column":9}},"99":{"start":{"line":369,"column":10},"end":{"line":374,"column":11}},"100":{"start":{"line":370,"column":12},"end":{"line":370,"column":40}},"101":{"start":{"line":371,"column":12},"end":{"line":371,"column":33}},"102":{"start":{"line":373,"column":12},"end":{"line":373,"column":71}},"103":{"start":{"line":377,"column":10},"end":{"line":388,"column":11}},"104":{"start":{"line":379,"column":12},"end":{"line":379,"column":27}},"105":{"start":{"line":381,"column":12},"end":{"line":383,"column":13}},"106":{"start":{"line":382,"column":14},"end":{"line":382,"column":46}},"107":{"start":{"line":387,"column":12},"end":{"line":387,"column":40}},"108":{"start":{"line":391,"column":8},"end":{"line":391,"column":54}},"109":{"start":{"line":396,"column":6},"end":{"line":396,"column":51}},"110":{"start":{"line":399,"column":4},"end":{"line":405,"column":6}},"111":{"start":{"line":403,"column":8},"end":{"line":403,"column":33}},"112":{"start":{"line":407,"column":4},"end":{"line":407,"column":16}},"113":{"start":{"line":413,"column":2},"end":{"line":421,"column":3}},"114":{"start":{"line":414,"column":4},"end":{"line":420,"column":5}},"115":{"start":{"line":415,"column":6},"end":{"line":415,"column":29}},"116":{"start":{"line":416,"column":11},"end":{"line":420,"column":5}},"117":{"start":{"line":417,"column":6},"end":{"line":417,"column":35}},"118":{"start":{"line":419,"column":6},"end":{"line":419,"column":19}},"119":{"start":{"line":426,"column":2},"end":{"line":438,"column":3}},"120":{"start":{"line":428,"column":4},"end":{"line":428,"column":26}},"121":{"start":{"line":429,"column":4},"end":{"line":429,"column":33}},"122":{"start":{"line":431,"column":4},"end":{"line":433,"column":5}},"123":{"start":{"line":432,"column":6},"end":{"line":432,"column":52}},"124":{"start":{"line":435,"column":4},"end":{"line":435,"column":38}},"125":{"start":{"line":437,"column":4},"end":{"line":437,"column":21}},"126":{"start":{"line":443,"column":2},"end":{"line":456,"column":3}},"127":{"start":{"line":445,"column":4},"end":{"line":453,"column":5}},"128":{"start":{"line":447,"column":6},"end":{"line":449,"column":8}},"129":{"start":{"line":448,"column":8},"end":{"line":448,"column":21}},"130":{"start":{"line":451,"column":11},"end":{"line":453,"column":5}},"131":{"start":{"line":452,"column":6},"end":{"line":452,"column":22}},"132":{"start":{"line":455,"column":4},"end":{"line":455,"column":57}},"133":{"start":{"line":465,"column":2},"end":{"line":487,"column":3}},"134":{"start":{"line":468,"column":4},"end":{"line":471,"column":5}},"135":{"start":{"line":469,"column":6},"end":{"line":469,"column":27}},"136":{"start":{"line":470,"column":6},"end":{"line":470,"column":22}},"137":{"start":{"line":473,"column":4},"end":{"line":473,"column":44}},"138":{"start":{"line":476,"column":4},"end":{"line":476,"column":30}},"139":{"start":{"line":478,"column":4},"end":{"line":480,"column":5}},"140":{"start":{"line":479,"column":6},"end":{"line":479,"column":42}},"141":{"start":{"line":482,"column":4},"end":{"line":482,"column":45}},"142":{"start":{"line":482,"column":16},"end":{"line":482,"column":45}},"143":{"start":{"line":484,"column":4},"end":{"line":484,"column":25}},"144":{"start":{"line":486,"column":4},"end":{"line":486,"column":18}},"145":{"start":{"line":489,"column":2},"end":{"line":492,"column":4}},"146":{"start":{"line":490,"column":4},"end":{"line":490,"column":64}},"147":{"start":{"line":490,"column":27},"end":{"line":490,"column":64}},"148":{"start":{"line":491,"column":4},"end":{"line":491,"column":53}},"149":{"start":{"line":491,"column":39},"end":{"line":491,"column":53}},"150":{"start":{"line":494,"column":2},"end":{"line":498,"column":4}},"151":{"start":{"line":495,"column":4},"end":{"line":497,"column":5}},"152":{"start":{"line":496,"column":6},"end":{"line":496,"column":44}},"153":{"start":{"line":500,"column":2},"end":{"line":516,"column":4}},"154":{"start":{"line":502,"column":4},"end":{"line":502,"column":21}},"155":{"start":{"line":504,"column":4},"end":{"line":508,"column":5}},"156":{"start":{"line":505,"column":6},"end":{"line":505,"column":28}},"157":{"start":{"line":507,"column":6},"end":{"line":507,"column":38}},"158":{"start":{"line":510,"column":4},"end":{"line":510,"column":29}},"159":{"start":{"line":511,"column":4},"end":{"line":511,"column":33}},"160":{"start":{"line":513,"column":4},"end":{"line":515,"column":5}},"161":{"start":{"line":514,"column":6},"end":{"line":514,"column":26}},"162":{"start":{"line":519,"column":2},"end":{"line":524,"column":3},"skip":true},"163":{"start":{"line":520,"column":4},"end":{"line":520,"column":26},"skip":true},"164":{"start":{"line":522,"column":2},"end":{"line":524,"column":3},"skip":true},"165":{"start":{"line":523,"column":4},"end":{"line":523,"column":23},"skip":true}},"branchMap":{"1":{"line":80,"type":"if","locations":[{"start":{"line":80,"column":6},"end":{"line":80,"column":6}},{"start":{"line":80,"column":6},"end":{"line":80,"column":6}}]},"2":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":10},"end":{"line":83,"column":10}},{"start":{"line":83,"column":10},"end":{"line":83,"column":10}}]},"3":{"line":97,"type":"if","locations":[{"start":{"line":97,"column":6},"end":{"line":97,"column":6}},{"start":{"line":97,"column":6},"end":{"line":97,"column":6}}]},"4":{"line":106,"type":"cond-expr","locations":[{"start":{"line":106,"column":27},"end":{"line":106,"column":67}},{"start":{"line":106,"column":70},"end":{"line":106,"column":75}}]},"5":{"line":106,"type":"binary-expr","locations":[{"start":{"line":106,"column":27},"end":{"line":106,"column":43}},{"start":{"line":106,"column":47},"end":{"line":106,"column":67}}]},"6":{"line":127,"type":"if","locations":[{"start":{"line":127,"column":6},"end":{"line":127,"column":6}},{"start":{"line":127,"column":6},"end":{"line":127,"column":6}}]},"7":{"line":131,"type":"if","locations":[{"start":{"line":131,"column":8},"end":{"line":131,"column":8}},{"start":{"line":131,"column":8},"end":{"line":131,"column":8}}]},"8":{"line":141,"type":"cond-expr","locations":[{"start":{"line":141,"column":17},"end":{"line":141,"column":31}},{"start":{"line":141,"column":34},"end":{"line":141,"column":39}}]},"9":{"line":153,"type":"if","locations":[{"start":{"line":153,"column":8},"end":{"line":153,"column":8}},{"start":{"line":153,"column":8},"end":{"line":153,"column":8}}]},"10":{"line":169,"type":"if","locations":[{"start":{"line":169,"column":8},"end":{"line":169,"column":8}},{"start":{"line":169,"column":8},"end":{"line":169,"column":8}}]},"11":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":8},"end":{"line":183,"column":8}},{"start":{"line":183,"column":8},"end":{"line":183,"column":8}}]},"12":{"line":196,"type":"if","locations":[{"start":{"line":196,"column":6},"end":{"line":196,"column":6}},{"start":{"line":196,"column":6},"end":{"line":196,"column":6}}]},"13":{"line":200,"type":"if","locations":[{"start":{"line":200,"column":10},"end":{"line":200,"column":10}},{"start":{"line":200,"column":10},"end":{"line":200,"column":10}}]},"14":{"line":200,"type":"binary-expr","locations":[{"start":{"line":200,"column":14},"end":{"line":200,"column":23}},{"start":{"line":200,"column":27},"end":{"line":200,"column":45}}]},"15":{"line":208,"type":"cond-expr","locations":[{"start":{"line":208,"column":25},"end":{"line":208,"column":31}},{"start":{"line":208,"column":34},"end":{"line":208,"column":40}}]},"16":{"line":243,"type":"if","locations":[{"start":{"line":243,"column":6},"end":{"line":243,"column":6}},{"start":{"line":243,"column":6},"end":{"line":243,"column":6}}]},"17":{"line":245,"type":"if","locations":[{"start":{"line":245,"column":13},"end":{"line":245,"column":13}},{"start":{"line":245,"column":13},"end":{"line":245,"column":13}}]},"18":{"line":249,"type":"if","locations":[{"start":{"line":249,"column":10},"end":{"line":249,"column":10}},{"start":{"line":249,"column":10},"end":{"line":249,"column":10}}]},"19":{"line":274,"type":"if","locations":[{"start":{"line":274,"column":6},"end":{"line":274,"column":6}},{"start":{"line":274,"column":6},"end":{"line":274,"column":6}}]},"20":{"line":302,"type":"cond-expr","locations":[{"start":{"line":302,"column":26},"end":{"line":302,"column":43}},{"start":{"line":302,"column":46},"end":{"line":302,"column":47}}]},"21":{"line":322,"type":"if","locations":[{"start":{"line":322,"column":6},"end":{"line":322,"column":6}},{"start":{"line":322,"column":6},"end":{"line":322,"column":6}}]},"22":{"line":336,"type":"if","locations":[{"start":{"line":336,"column":4},"end":{"line":336,"column":4}},{"start":{"line":336,"column":4},"end":{"line":336,"column":4}}]},"23":{"line":341,"type":"if","locations":[{"start":{"line":341,"column":4},"end":{"line":341,"column":4}},{"start":{"line":341,"column":4},"end":{"line":341,"column":4}}]},"24":{"line":341,"type":"binary-expr","locations":[{"start":{"line":341,"column":8},"end":{"line":341,"column":17}},{"start":{"line":341,"column":21},"end":{"line":341,"column":53}}]},"25":{"line":349,"type":"if","locations":[{"start":{"line":349,"column":8},"end":{"line":349,"column":8}},{"start":{"line":349,"column":8},"end":{"line":349,"column":8}}]},"26":{"line":353,"type":"if","locations":[{"start":{"line":353,"column":15},"end":{"line":353,"column":15}},{"start":{"line":353,"column":15},"end":{"line":353,"column":15}}]},"27":{"line":366,"type":"if","locations":[{"start":{"line":366,"column":8},"end":{"line":366,"column":8}},{"start":{"line":366,"column":8},"end":{"line":366,"column":8}}]},"28":{"line":369,"type":"if","locations":[{"start":{"line":369,"column":10},"end":{"line":369,"column":10}},{"start":{"line":369,"column":10},"end":{"line":369,"column":10}}]},"29":{"line":377,"type":"if","locations":[{"start":{"line":377,"column":10},"end":{"line":377,"column":10}},{"start":{"line":377,"column":10},"end":{"line":377,"column":10}}]},"30":{"line":414,"type":"if","locations":[{"start":{"line":414,"column":4},"end":{"line":414,"column":4}},{"start":{"line":414,"column":4},"end":{"line":414,"column":4}}]},"31":{"line":416,"type":"if","locations":[{"start":{"line":416,"column":11},"end":{"line":416,"column":11}},{"start":{"line":416,"column":11},"end":{"line":416,"column":11}}]},"32":{"line":445,"type":"if","locations":[{"start":{"line":445,"column":4},"end":{"line":445,"column":4}},{"start":{"line":445,"column":4},"end":{"line":445,"column":4}}]},"33":{"line":451,"type":"if","locations":[{"start":{"line":451,"column":11},"end":{"line":451,"column":11}},{"start":{"line":451,"column":11},"end":{"line":451,"column":11}}]},"34":{"line":468,"type":"if","locations":[{"start":{"line":468,"column":4},"end":{"line":468,"column":4}},{"start":{"line":468,"column":4},"end":{"line":468,"column":4}}]},"35":{"line":482,"type":"if","locations":[{"start":{"line":482,"column":4},"end":{"line":482,"column":4}},{"start":{"line":482,"column":4},"end":{"line":482,"column":4}}]},"36":{"line":490,"type":"if","locations":[{"start":{"line":490,"column":4},"end":{"line":490,"column":4}},{"start":{"line":490,"column":4},"end":{"line":490,"column":4}}]},"37":{"line":491,"type":"if","locations":[{"start":{"line":491,"column":4},"end":{"line":491,"column":4}},{"start":{"line":491,"column":4},"end":{"line":491,"column":4}}]},"38":{"line":504,"type":"if","locations":[{"start":{"line":504,"column":4},"end":{"line":504,"column":4}},{"start":{"line":504,"column":4},"end":{"line":504,"column":4}}]},"39":{"line":513,"type":"if","locations":[{"start":{"line":513,"column":4},"end":{"line":513,"column":4}},{"start":{"line":513,"column":4},"end":{"line":513,"column":4}}]},"40":{"line":513,"type":"binary-expr","locations":[{"start":{"line":513,"column":8},"end":{"line":513,"column":27}},{"start":{"line":513,"column":31},"end":{"line":513,"column":47}}]},"41":{"line":519,"type":"if","locations":[{"start":{"line":519,"column":2},"end":{"line":519,"column":2},"skip":true},{"start":{"line":519,"column":2},"end":{"line":519,"column":2},"skip":true}]},"42":{"line":519,"type":"binary-expr","locations":[{"start":{"line":519,"column":7},"end":{"line":519,"column":35},"skip":true},{"start":{"line":519,"column":41},"end":{"line":519,"column":77},"skip":true}]},"43":{"line":522,"type":"if","locations":[{"start":{"line":522,"column":2},"end":{"line":522,"column":2},"skip":true},{"start":{"line":522,"column":2},"end":{"line":522,"column":2},"skip":true}]}}}} | ||
{"/Users/crcn/Developer/public/sift.js/sift.js":{"path":"/Users/crcn/Developer/public/sift.js/sift.js","s":{"1":1,"2":1,"3":1,"4":139,"5":38,"6":13,"7":18,"8":4,"9":4,"10":13,"11":42,"12":8,"13":9,"14":7,"15":34,"16":1,"17":14,"18":1,"19":13,"20":11,"21":11,"22":6,"23":11,"24":1,"25":11,"26":18,"27":18,"28":18,"29":7,"30":4,"31":7,"32":19,"33":19,"34":19,"35":40,"36":11,"37":8,"38":10,"39":10,"40":16,"41":8,"42":2,"43":4,"44":7,"45":2,"46":2,"47":135,"48":30,"49":52,"50":52,"51":26,"52":4,"53":105,"54":5,"55":5,"56":6,"57":6,"58":1,"59":51,"60":51,"61":2,"62":49,"63":1,"64":48,"65":164,"66":1,"67":163,"68":49,"69":8,"70":3,"71":2,"72":1,"73":2,"74":1,"75":163,"76":163,"77":1,"78":497,"79":497,"80":518,"81":518,"82":240,"83":256,"84":1,"85":152,"86":6,"87":152,"88":152,"89":117,"90":129,"91":129,"92":78,"93":51,"94":50,"95":1,"96":128,"97":128,"98":128,"99":61,"100":9,"101":9,"102":9,"103":61,"104":7,"105":7,"106":16,"107":54,"108":128,"109":35,"110":151,"111":286,"112":151,"113":1,"114":886,"115":21,"116":865,"117":79,"118":786,"119":1,"120":9,"121":9,"122":9,"123":1,"124":9,"125":9,"126":1,"127":81,"128":77,"129":263,"130":4,"131":3,"132":1,"133":1,"134":79,"135":62,"136":62,"137":79,"138":78,"139":1,"140":260,"141":77,"142":17,"143":60,"144":60,"145":1,"146":4,"147":3,"148":4,"149":1,"150":1,"151":3,"152":3,"153":1,"154":3,"155":3,"156":1,"157":2,"158":3,"159":3,"160":3,"161":1,"162":1,"163":2,"164":2,"165":2,"166":7,"167":1,"168":1,"169":1,"170":1,"171":0,"172":0},"b":{"1":[8,34],"2":[7,2],"3":[1,13],"4":[10,1],"5":[10,9],"6":[1,10],"7":[7,11],"8":[6,1],"9":[11,29],"10":[8,8],"11":[2,5],"12":[30,105],"13":[26,26],"14":[52,43],"15":[105,0],"16":[2,49],"17":[1,48],"18":[1,163],"19":[2,1],"20":[56,107],"21":[240,277],"22":[6,146],"23":[117,35],"24":[152,152],"25":[78,51],"26":[50,1],"27":[61,67],"28":[9,52],"29":[7,54],"30":[21,865],"31":[79,786],"32":[77,4],"33":[3,1],"34":[62,17],"35":[17,60],"36":[3,1],"37":[1,3],"38":[1,2],"39":[1,2],"40":[3,3],"41":[1,6],"42":[1,0],"43":[1,1],"44":[0,0]},"f":{"1":1,"2":139,"3":38,"4":13,"5":18,"6":4,"7":4,"8":13,"9":42,"10":14,"11":11,"12":11,"13":6,"14":11,"15":7,"16":19,"17":10,"18":4,"19":135,"20":5,"21":6,"22":6,"23":51,"24":164,"25":8,"26":3,"27":2,"28":163,"29":497,"30":152,"31":286,"32":886,"33":9,"34":81,"35":263,"36":79,"37":260,"38":4,"39":3,"40":3,"41":2},"fnMap":{"1":{"name":"(anonymous_1)","line":10,"loc":{"start":{"line":10,"column":1},"end":{"line":10,"column":12}}},"2":{"name":"(anonymous_2)","line":28,"loc":{"start":{"line":28,"column":9},"end":{"line":28,"column":24}}},"3":{"name":"(anonymous_3)","line":35,"loc":{"start":{"line":35,"column":9},"end":{"line":35,"column":24}}},"4":{"name":"(anonymous_4)","line":42,"loc":{"start":{"line":42,"column":9},"end":{"line":42,"column":24}}},"5":{"name":"(anonymous_5)","line":49,"loc":{"start":{"line":49,"column":9},"end":{"line":49,"column":24}}},"6":{"name":"(anonymous_6)","line":56,"loc":{"start":{"line":56,"column":10},"end":{"line":56,"column":25}}},"7":{"name":"(anonymous_7)","line":63,"loc":{"start":{"line":63,"column":10},"end":{"line":63,"column":25}}},"8":{"name":"(anonymous_8)","line":70,"loc":{"start":{"line":70,"column":13},"end":{"line":70,"column":28}}},"9":{"name":"(anonymous_9)","line":77,"loc":{"start":{"line":77,"column":9},"end":{"line":77,"column":24}}},"10":{"name":"(anonymous_10)","line":96,"loc":{"start":{"line":96,"column":10},"end":{"line":96,"column":25}}},"11":{"name":"(anonymous_11)","line":104,"loc":{"start":{"line":104,"column":11},"end":{"line":104,"column":31}}},"12":{"name":"(anonymous_12)","line":112,"loc":{"start":{"line":112,"column":10},"end":{"line":112,"column":25}}},"13":{"name":"(anonymous_13)","line":119,"loc":{"start":{"line":119,"column":10},"end":{"line":119,"column":25}}},"14":{"name":"(anonymous_14)","line":126,"loc":{"start":{"line":126,"column":10},"end":{"line":126,"column":25}}},"15":{"name":"(anonymous_15)","line":140,"loc":{"start":{"line":140,"column":11},"end":{"line":140,"column":26}}},"16":{"name":"(anonymous_16)","line":147,"loc":{"start":{"line":147,"column":9},"end":{"line":147,"column":24}}},"17":{"name":"(anonymous_17)","line":164,"loc":{"start":{"line":164,"column":10},"end":{"line":164,"column":25}}},"18":{"name":"(anonymous_18)","line":180,"loc":{"start":{"line":180,"column":10},"end":{"line":180,"column":25}}},"19":{"name":"(anonymous_19)","line":194,"loc":{"start":{"line":194,"column":11},"end":{"line":194,"column":26}}},"20":{"name":"(anonymous_20)","line":214,"loc":{"start":{"line":214,"column":12},"end":{"line":214,"column":27}}},"21":{"name":"(anonymous_21)","line":222,"loc":{"start":{"line":222,"column":12},"end":{"line":222,"column":27}}},"22":{"name":"(anonymous_22)","line":229,"loc":{"start":{"line":229,"column":16},"end":{"line":229,"column":31}}},"23":{"name":"(anonymous_23)","line":239,"loc":{"start":{"line":239,"column":9},"end":{"line":239,"column":21}}},"24":{"name":"(anonymous_24)","line":248,"loc":{"start":{"line":248,"column":13},"end":{"line":248,"column":25}}},"25":{"name":"(anonymous_25)","line":265,"loc":{"start":{"line":265,"column":9},"end":{"line":265,"column":21}}},"26":{"name":"(anonymous_26)","line":272,"loc":{"start":{"line":272,"column":12},"end":{"line":272,"column":24}}},"27":{"name":"(anonymous_27)","line":284,"loc":{"start":{"line":284,"column":16},"end":{"line":284,"column":28}}},"28":{"name":"getExpr","line":292,"loc":{"start":{"line":292,"column":2},"end":{"line":292,"column":37}}},"29":{"name":"test","line":313,"loc":{"start":{"line":313,"column":2},"end":{"line":313,"column":33}}},"30":{"name":"parse","line":333,"loc":{"start":{"line":333,"column":2},"end":{"line":333,"column":33}}},"31":{"name":"(anonymous_31)","line":402,"loc":{"start":{"line":402,"column":12},"end":{"line":402,"column":28}}},"32":{"name":"comparable","line":413,"loc":{"start":{"line":413,"column":2},"end":{"line":413,"column":29}}},"33":{"name":"convertDotToSubObject","line":426,"loc":{"start":{"line":426,"column":2},"end":{"line":426,"column":50}}},"34":{"name":"getSelector","line":443,"loc":{"start":{"line":443,"column":2},"end":{"line":443,"column":33}}},"35":{"name":"(anonymous_35)","line":447,"loc":{"start":{"line":447,"column":13},"end":{"line":447,"column":29}}},"36":{"name":"sift","line":465,"loc":{"start":{"line":465,"column":2},"end":{"line":465,"column":44}}},"37":{"name":"filter","line":478,"loc":{"start":{"line":478,"column":4},"end":{"line":478,"column":27}}},"38":{"name":"(anonymous_38)","line":489,"loc":{"start":{"line":489,"column":13},"end":{"line":489,"column":31}}},"39":{"name":"(anonymous_39)","line":494,"loc":{"start":{"line":494,"column":22},"end":{"line":494,"column":42}}},"40":{"name":"(anonymous_40)","line":500,"loc":{"start":{"line":500,"column":21},"end":{"line":500,"column":53}}},"41":{"name":"(anonymous_41)","line":518,"loc":{"start":{"line":518,"column":17},"end":{"line":518,"column":54}}}},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":540,"column":5}},"2":{"start":{"line":15,"column":2},"end":{"line":21,"column":4}},"3":{"start":{"line":23,"column":2},"end":{"line":232,"column":4}},"4":{"start":{"line":29,"column":6},"end":{"line":29,"column":23}},"5":{"start":{"line":36,"column":6},"end":{"line":36,"column":24}},"6":{"start":{"line":43,"column":6},"end":{"line":43,"column":19}},"7":{"start":{"line":50,"column":6},"end":{"line":50,"column":19}},"8":{"start":{"line":57,"column":6},"end":{"line":57,"column":20}},"9":{"start":{"line":64,"column":6},"end":{"line":64,"column":20}},"10":{"start":{"line":71,"column":6},"end":{"line":71,"column":31}},"11":{"start":{"line":80,"column":6},"end":{"line":88,"column":7}},"12":{"start":{"line":82,"column":8},"end":{"line":84,"column":9}},"13":{"start":{"line":83,"column":10},"end":{"line":83,"column":44}},"14":{"start":{"line":83,"column":32},"end":{"line":83,"column":44}},"15":{"start":{"line":87,"column":8},"end":{"line":87,"column":29}},"16":{"start":{"line":90,"column":6},"end":{"line":90,"column":19}},"17":{"start":{"line":97,"column":6},"end":{"line":97,"column":108}},"18":{"start":{"line":97,"column":19},"end":{"line":97,"column":108}},"19":{"start":{"line":98,"column":6},"end":{"line":98,"column":24}},"20":{"start":{"line":106,"column":6},"end":{"line":106,"column":76}},"21":{"start":{"line":113,"column":6},"end":{"line":113,"column":33}},"22":{"start":{"line":120,"column":6},"end":{"line":120,"column":30}},"23":{"start":{"line":127,"column":6},"end":{"line":127,"column":21}},"24":{"start":{"line":127,"column":14},"end":{"line":127,"column":21}},"25":{"start":{"line":128,"column":6},"end":{"line":132,"column":7}},"26":{"start":{"line":129,"column":8},"end":{"line":129,"column":22}},"27":{"start":{"line":130,"column":8},"end":{"line":130,"column":38}},"28":{"start":{"line":131,"column":8},"end":{"line":131,"column":36}},"29":{"start":{"line":131,"column":23},"end":{"line":131,"column":36}},"30":{"start":{"line":134,"column":6},"end":{"line":134,"column":18}},"31":{"start":{"line":141,"column":6},"end":{"line":141,"column":40}},"32":{"start":{"line":149,"column":6},"end":{"line":149,"column":23}},"33":{"start":{"line":150,"column":6},"end":{"line":150,"column":16}},"34":{"start":{"line":152,"column":6},"end":{"line":156,"column":7}},"35":{"start":{"line":153,"column":8},"end":{"line":155,"column":9}},"36":{"start":{"line":154,"column":10},"end":{"line":154,"column":22}},"37":{"start":{"line":158,"column":6},"end":{"line":158,"column":21}},"38":{"start":{"line":166,"column":6},"end":{"line":166,"column":23}},"39":{"start":{"line":168,"column":6},"end":{"line":172,"column":7}},"40":{"start":{"line":169,"column":8},"end":{"line":171,"column":9}},"41":{"start":{"line":170,"column":10},"end":{"line":170,"column":23}},"42":{"start":{"line":174,"column":6},"end":{"line":174,"column":18}},"43":{"start":{"line":182,"column":6},"end":{"line":186,"column":7}},"44":{"start":{"line":183,"column":8},"end":{"line":185,"column":9}},"45":{"start":{"line":184,"column":10},"end":{"line":184,"column":23}},"46":{"start":{"line":188,"column":6},"end":{"line":188,"column":18}},"47":{"start":{"line":196,"column":6},"end":{"line":204,"column":7}},"48":{"start":{"line":198,"column":8},"end":{"line":201,"column":9}},"49":{"start":{"line":199,"column":10},"end":{"line":199,"column":26}},"50":{"start":{"line":200,"column":10},"end":{"line":200,"column":59}},"51":{"start":{"line":200,"column":47},"end":{"line":200,"column":59}},"52":{"start":{"line":203,"column":8},"end":{"line":203,"column":21}},"53":{"start":{"line":208,"column":6},"end":{"line":208,"column":42}},"54":{"start":{"line":215,"column":6},"end":{"line":215,"column":30}},"55":{"start":{"line":216,"column":6},"end":{"line":216,"column":25}},"56":{"start":{"line":223,"column":6},"end":{"line":223,"column":26}},"57":{"start":{"line":230,"column":6},"end":{"line":230,"column":23}},"58":{"start":{"line":234,"column":2},"end":{"line":287,"column":4}},"59":{"start":{"line":241,"column":6},"end":{"line":241,"column":13}},"60":{"start":{"line":243,"column":6},"end":{"line":255,"column":7}},"61":{"start":{"line":244,"column":8},"end":{"line":244,"column":17}},"62":{"start":{"line":245,"column":13},"end":{"line":255,"column":7}},"63":{"start":{"line":246,"column":8},"end":{"line":246,"column":15}},"64":{"start":{"line":248,"column":8},"end":{"line":254,"column":10}},"65":{"start":{"line":249,"column":10},"end":{"line":253,"column":11}},"66":{"start":{"line":250,"column":12},"end":{"line":250,"column":33}},"67":{"start":{"line":252,"column":12},"end":{"line":252,"column":27}},"68":{"start":{"line":257,"column":6},"end":{"line":259,"column":8}},"69":{"start":{"line":266,"column":6},"end":{"line":266,"column":29}},"70":{"start":{"line":274,"column":6},"end":{"line":276,"column":7}},"71":{"start":{"line":275,"column":8},"end":{"line":275,"column":50}},"72":{"start":{"line":278,"column":6},"end":{"line":278,"column":15}},"73":{"start":{"line":285,"column":6},"end":{"line":285,"column":22}},"74":{"start":{"line":292,"column":2},"end":{"line":307,"column":3}},"75":{"start":{"line":294,"column":4},"end":{"line":294,"column":30}},"76":{"start":{"line":296,"column":4},"end":{"line":306,"column":6}},"77":{"start":{"line":313,"column":2},"end":{"line":327,"column":3}},"78":{"start":{"line":315,"column":4},"end":{"line":315,"column":35}},"79":{"start":{"line":318,"column":4},"end":{"line":324,"column":5}},"80":{"start":{"line":320,"column":6},"end":{"line":320,"column":26}},"81":{"start":{"line":322,"column":6},"end":{"line":322,"column":64}},"82":{"start":{"line":322,"column":51},"end":{"line":322,"column":64}},"83":{"start":{"line":326,"column":4},"end":{"line":326,"column":16}},"84":{"start":{"line":333,"column":2},"end":{"line":408,"column":3}},"85":{"start":{"line":336,"column":4},"end":{"line":336,"column":51}},"86":{"start":{"line":336,"column":20},"end":{"line":336,"column":51}},"87":{"start":{"line":338,"column":4},"end":{"line":338,"column":21}},"88":{"start":{"line":341,"column":4},"end":{"line":397,"column":5}},"89":{"start":{"line":343,"column":6},"end":{"line":392,"column":7}},"90":{"start":{"line":348,"column":8},"end":{"line":348,"column":21}},"91":{"start":{"line":349,"column":8},"end":{"line":357,"column":9}},"92":{"start":{"line":350,"column":10},"end":{"line":350,"column":23}},"93":{"start":{"line":353,"column":15},"end":{"line":357,"column":9}},"94":{"start":{"line":354,"column":10},"end":{"line":354,"column":29}},"95":{"start":{"line":356,"column":10},"end":{"line":356,"column":57}},"96":{"start":{"line":360,"column":8},"end":{"line":360,"column":33}},"97":{"start":{"line":363,"column":8},"end":{"line":363,"column":30}},"98":{"start":{"line":366,"column":8},"end":{"line":389,"column":9}},"99":{"start":{"line":369,"column":10},"end":{"line":374,"column":11}},"100":{"start":{"line":370,"column":12},"end":{"line":370,"column":40}},"101":{"start":{"line":371,"column":12},"end":{"line":371,"column":33}},"102":{"start":{"line":373,"column":12},"end":{"line":373,"column":71}},"103":{"start":{"line":377,"column":10},"end":{"line":388,"column":11}},"104":{"start":{"line":379,"column":12},"end":{"line":379,"column":27}},"105":{"start":{"line":381,"column":12},"end":{"line":383,"column":13}},"106":{"start":{"line":382,"column":14},"end":{"line":382,"column":46}},"107":{"start":{"line":387,"column":12},"end":{"line":387,"column":40}},"108":{"start":{"line":391,"column":8},"end":{"line":391,"column":54}},"109":{"start":{"line":396,"column":6},"end":{"line":396,"column":51}},"110":{"start":{"line":399,"column":4},"end":{"line":405,"column":6}},"111":{"start":{"line":403,"column":8},"end":{"line":403,"column":33}},"112":{"start":{"line":407,"column":4},"end":{"line":407,"column":16}},"113":{"start":{"line":413,"column":2},"end":{"line":421,"column":3}},"114":{"start":{"line":414,"column":4},"end":{"line":420,"column":5}},"115":{"start":{"line":415,"column":6},"end":{"line":415,"column":29}},"116":{"start":{"line":416,"column":11},"end":{"line":420,"column":5}},"117":{"start":{"line":417,"column":6},"end":{"line":417,"column":35}},"118":{"start":{"line":419,"column":6},"end":{"line":419,"column":19}},"119":{"start":{"line":426,"column":2},"end":{"line":438,"column":3}},"120":{"start":{"line":428,"column":4},"end":{"line":428,"column":26}},"121":{"start":{"line":429,"column":4},"end":{"line":429,"column":33}},"122":{"start":{"line":431,"column":4},"end":{"line":433,"column":5}},"123":{"start":{"line":432,"column":6},"end":{"line":432,"column":52}},"124":{"start":{"line":435,"column":4},"end":{"line":435,"column":38}},"125":{"start":{"line":437,"column":4},"end":{"line":437,"column":21}},"126":{"start":{"line":443,"column":2},"end":{"line":456,"column":3}},"127":{"start":{"line":445,"column":4},"end":{"line":453,"column":5}},"128":{"start":{"line":447,"column":6},"end":{"line":449,"column":8}},"129":{"start":{"line":448,"column":8},"end":{"line":448,"column":21}},"130":{"start":{"line":451,"column":11},"end":{"line":453,"column":5}},"131":{"start":{"line":452,"column":6},"end":{"line":452,"column":22}},"132":{"start":{"line":455,"column":4},"end":{"line":455,"column":57}},"133":{"start":{"line":465,"column":2},"end":{"line":487,"column":3}},"134":{"start":{"line":468,"column":4},"end":{"line":471,"column":5}},"135":{"start":{"line":469,"column":6},"end":{"line":469,"column":27}},"136":{"start":{"line":470,"column":6},"end":{"line":470,"column":22}},"137":{"start":{"line":473,"column":4},"end":{"line":473,"column":44}},"138":{"start":{"line":476,"column":4},"end":{"line":476,"column":30}},"139":{"start":{"line":478,"column":4},"end":{"line":480,"column":5}},"140":{"start":{"line":479,"column":6},"end":{"line":479,"column":42}},"141":{"start":{"line":482,"column":4},"end":{"line":482,"column":45}},"142":{"start":{"line":482,"column":16},"end":{"line":482,"column":45}},"143":{"start":{"line":484,"column":4},"end":{"line":484,"column":25}},"144":{"start":{"line":486,"column":4},"end":{"line":486,"column":18}},"145":{"start":{"line":489,"column":2},"end":{"line":492,"column":4}},"146":{"start":{"line":490,"column":4},"end":{"line":490,"column":64}},"147":{"start":{"line":490,"column":27},"end":{"line":490,"column":64}},"148":{"start":{"line":491,"column":4},"end":{"line":491,"column":53}},"149":{"start":{"line":491,"column":39},"end":{"line":491,"column":53}},"150":{"start":{"line":494,"column":2},"end":{"line":498,"column":4}},"151":{"start":{"line":495,"column":4},"end":{"line":497,"column":5}},"152":{"start":{"line":496,"column":6},"end":{"line":496,"column":44}},"153":{"start":{"line":500,"column":2},"end":{"line":516,"column":4}},"154":{"start":{"line":502,"column":4},"end":{"line":502,"column":21}},"155":{"start":{"line":504,"column":4},"end":{"line":508,"column":5}},"156":{"start":{"line":505,"column":6},"end":{"line":505,"column":28}},"157":{"start":{"line":507,"column":6},"end":{"line":507,"column":38}},"158":{"start":{"line":510,"column":4},"end":{"line":510,"column":29}},"159":{"start":{"line":511,"column":4},"end":{"line":511,"column":33}},"160":{"start":{"line":513,"column":4},"end":{"line":515,"column":5}},"161":{"start":{"line":514,"column":6},"end":{"line":514,"column":26}},"162":{"start":{"line":518,"column":2},"end":{"line":531,"column":4}},"163":{"start":{"line":519,"column":4},"end":{"line":519,"column":44}},"164":{"start":{"line":522,"column":4},"end":{"line":522,"column":30}},"165":{"start":{"line":524,"column":4},"end":{"line":528,"column":5}},"166":{"start":{"line":525,"column":6},"end":{"line":527,"column":7}},"167":{"start":{"line":526,"column":8},"end":{"line":526,"column":17}},"168":{"start":{"line":530,"column":4},"end":{"line":530,"column":14}},"169":{"start":{"line":534,"column":2},"end":{"line":539,"column":3},"skip":true},"170":{"start":{"line":535,"column":4},"end":{"line":535,"column":26},"skip":true},"171":{"start":{"line":537,"column":2},"end":{"line":539,"column":3},"skip":true},"172":{"start":{"line":538,"column":4},"end":{"line":538,"column":23},"skip":true}},"branchMap":{"1":{"line":80,"type":"if","locations":[{"start":{"line":80,"column":6},"end":{"line":80,"column":6}},{"start":{"line":80,"column":6},"end":{"line":80,"column":6}}]},"2":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":10},"end":{"line":83,"column":10}},{"start":{"line":83,"column":10},"end":{"line":83,"column":10}}]},"3":{"line":97,"type":"if","locations":[{"start":{"line":97,"column":6},"end":{"line":97,"column":6}},{"start":{"line":97,"column":6},"end":{"line":97,"column":6}}]},"4":{"line":106,"type":"cond-expr","locations":[{"start":{"line":106,"column":27},"end":{"line":106,"column":67}},{"start":{"line":106,"column":70},"end":{"line":106,"column":75}}]},"5":{"line":106,"type":"binary-expr","locations":[{"start":{"line":106,"column":27},"end":{"line":106,"column":43}},{"start":{"line":106,"column":47},"end":{"line":106,"column":67}}]},"6":{"line":127,"type":"if","locations":[{"start":{"line":127,"column":6},"end":{"line":127,"column":6}},{"start":{"line":127,"column":6},"end":{"line":127,"column":6}}]},"7":{"line":131,"type":"if","locations":[{"start":{"line":131,"column":8},"end":{"line":131,"column":8}},{"start":{"line":131,"column":8},"end":{"line":131,"column":8}}]},"8":{"line":141,"type":"cond-expr","locations":[{"start":{"line":141,"column":17},"end":{"line":141,"column":31}},{"start":{"line":141,"column":34},"end":{"line":141,"column":39}}]},"9":{"line":153,"type":"if","locations":[{"start":{"line":153,"column":8},"end":{"line":153,"column":8}},{"start":{"line":153,"column":8},"end":{"line":153,"column":8}}]},"10":{"line":169,"type":"if","locations":[{"start":{"line":169,"column":8},"end":{"line":169,"column":8}},{"start":{"line":169,"column":8},"end":{"line":169,"column":8}}]},"11":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":8},"end":{"line":183,"column":8}},{"start":{"line":183,"column":8},"end":{"line":183,"column":8}}]},"12":{"line":196,"type":"if","locations":[{"start":{"line":196,"column":6},"end":{"line":196,"column":6}},{"start":{"line":196,"column":6},"end":{"line":196,"column":6}}]},"13":{"line":200,"type":"if","locations":[{"start":{"line":200,"column":10},"end":{"line":200,"column":10}},{"start":{"line":200,"column":10},"end":{"line":200,"column":10}}]},"14":{"line":200,"type":"binary-expr","locations":[{"start":{"line":200,"column":14},"end":{"line":200,"column":23}},{"start":{"line":200,"column":27},"end":{"line":200,"column":45}}]},"15":{"line":208,"type":"cond-expr","locations":[{"start":{"line":208,"column":25},"end":{"line":208,"column":31}},{"start":{"line":208,"column":34},"end":{"line":208,"column":40}}]},"16":{"line":243,"type":"if","locations":[{"start":{"line":243,"column":6},"end":{"line":243,"column":6}},{"start":{"line":243,"column":6},"end":{"line":243,"column":6}}]},"17":{"line":245,"type":"if","locations":[{"start":{"line":245,"column":13},"end":{"line":245,"column":13}},{"start":{"line":245,"column":13},"end":{"line":245,"column":13}}]},"18":{"line":249,"type":"if","locations":[{"start":{"line":249,"column":10},"end":{"line":249,"column":10}},{"start":{"line":249,"column":10},"end":{"line":249,"column":10}}]},"19":{"line":274,"type":"if","locations":[{"start":{"line":274,"column":6},"end":{"line":274,"column":6}},{"start":{"line":274,"column":6},"end":{"line":274,"column":6}}]},"20":{"line":302,"type":"cond-expr","locations":[{"start":{"line":302,"column":26},"end":{"line":302,"column":43}},{"start":{"line":302,"column":46},"end":{"line":302,"column":47}}]},"21":{"line":322,"type":"if","locations":[{"start":{"line":322,"column":6},"end":{"line":322,"column":6}},{"start":{"line":322,"column":6},"end":{"line":322,"column":6}}]},"22":{"line":336,"type":"if","locations":[{"start":{"line":336,"column":4},"end":{"line":336,"column":4}},{"start":{"line":336,"column":4},"end":{"line":336,"column":4}}]},"23":{"line":341,"type":"if","locations":[{"start":{"line":341,"column":4},"end":{"line":341,"column":4}},{"start":{"line":341,"column":4},"end":{"line":341,"column":4}}]},"24":{"line":341,"type":"binary-expr","locations":[{"start":{"line":341,"column":8},"end":{"line":341,"column":17}},{"start":{"line":341,"column":21},"end":{"line":341,"column":53}}]},"25":{"line":349,"type":"if","locations":[{"start":{"line":349,"column":8},"end":{"line":349,"column":8}},{"start":{"line":349,"column":8},"end":{"line":349,"column":8}}]},"26":{"line":353,"type":"if","locations":[{"start":{"line":353,"column":15},"end":{"line":353,"column":15}},{"start":{"line":353,"column":15},"end":{"line":353,"column":15}}]},"27":{"line":366,"type":"if","locations":[{"start":{"line":366,"column":8},"end":{"line":366,"column":8}},{"start":{"line":366,"column":8},"end":{"line":366,"column":8}}]},"28":{"line":369,"type":"if","locations":[{"start":{"line":369,"column":10},"end":{"line":369,"column":10}},{"start":{"line":369,"column":10},"end":{"line":369,"column":10}}]},"29":{"line":377,"type":"if","locations":[{"start":{"line":377,"column":10},"end":{"line":377,"column":10}},{"start":{"line":377,"column":10},"end":{"line":377,"column":10}}]},"30":{"line":414,"type":"if","locations":[{"start":{"line":414,"column":4},"end":{"line":414,"column":4}},{"start":{"line":414,"column":4},"end":{"line":414,"column":4}}]},"31":{"line":416,"type":"if","locations":[{"start":{"line":416,"column":11},"end":{"line":416,"column":11}},{"start":{"line":416,"column":11},"end":{"line":416,"column":11}}]},"32":{"line":445,"type":"if","locations":[{"start":{"line":445,"column":4},"end":{"line":445,"column":4}},{"start":{"line":445,"column":4},"end":{"line":445,"column":4}}]},"33":{"line":451,"type":"if","locations":[{"start":{"line":451,"column":11},"end":{"line":451,"column":11}},{"start":{"line":451,"column":11},"end":{"line":451,"column":11}}]},"34":{"line":468,"type":"if","locations":[{"start":{"line":468,"column":4},"end":{"line":468,"column":4}},{"start":{"line":468,"column":4},"end":{"line":468,"column":4}}]},"35":{"line":482,"type":"if","locations":[{"start":{"line":482,"column":4},"end":{"line":482,"column":4}},{"start":{"line":482,"column":4},"end":{"line":482,"column":4}}]},"36":{"line":490,"type":"if","locations":[{"start":{"line":490,"column":4},"end":{"line":490,"column":4}},{"start":{"line":490,"column":4},"end":{"line":490,"column":4}}]},"37":{"line":491,"type":"if","locations":[{"start":{"line":491,"column":4},"end":{"line":491,"column":4}},{"start":{"line":491,"column":4},"end":{"line":491,"column":4}}]},"38":{"line":504,"type":"if","locations":[{"start":{"line":504,"column":4},"end":{"line":504,"column":4}},{"start":{"line":504,"column":4},"end":{"line":504,"column":4}}]},"39":{"line":513,"type":"if","locations":[{"start":{"line":513,"column":4},"end":{"line":513,"column":4}},{"start":{"line":513,"column":4},"end":{"line":513,"column":4}}]},"40":{"line":513,"type":"binary-expr","locations":[{"start":{"line":513,"column":8},"end":{"line":513,"column":27}},{"start":{"line":513,"column":31},"end":{"line":513,"column":47}}]},"41":{"line":525,"type":"if","locations":[{"start":{"line":525,"column":6},"end":{"line":525,"column":6}},{"start":{"line":525,"column":6},"end":{"line":525,"column":6}}]},"42":{"line":534,"type":"if","locations":[{"start":{"line":534,"column":2},"end":{"line":534,"column":2},"skip":true},{"start":{"line":534,"column":2},"end":{"line":534,"column":2},"skip":true}]},"43":{"line":534,"type":"binary-expr","locations":[{"start":{"line":534,"column":7},"end":{"line":534,"column":35},"skip":true},{"start":{"line":534,"column":41},"end":{"line":534,"column":77},"skip":true}]},"44":{"line":537,"type":"if","locations":[{"start":{"line":537,"column":2},"end":{"line":537,"column":2},"skip":true},{"start":{"line":537,"column":2},"end":{"line":537,"column":2},"skip":true}]}}}} |
{ | ||
"name": "sift", | ||
"description": "mongodb query style array filtering", | ||
"version": "1.1.1", | ||
"version": "2.0.0", | ||
"repository": {}, | ||
@@ -10,8 +10,12 @@ "engines": {}, | ||
"bson": "^0.2.18", | ||
"coveralls": "^2.11.2", | ||
"istanbul": "^0.3.5", | ||
"jscs": "^1.11.0", | ||
"jshint": "^2.6.0", | ||
"mocha": "^2.1.0", | ||
"uglify-js": "^2.4.16" | ||
"gulp": "^3.9.0", | ||
"gulp-coveralls": "^0.1.4", | ||
"gulp-istanbul": "^0.10.0", | ||
"gulp-jscs": "^1.6.0", | ||
"gulp-jshint": "^1.11.2", | ||
"gulp-mocha": "^2.1.2", | ||
"gulp-plumber": "^1.0.1", | ||
"gulp-rename": "^1.2.2", | ||
"gulp-uglify": "^1.2.0", | ||
"yargs": "^3.15.0" | ||
}, | ||
@@ -18,0 +22,0 @@ "main": "./sift.js", |
@@ -1,2 +0,2 @@ | ||
## MongoDB inspired array filtering | ||
## MongoDB inspired array filtering | ||
[![Build Status](https://secure.travis-ci.org/crcn/sift.js.png)](https://secure.travis-ci.org/crcn/sift.js) [![Coverage Status](https://coveralls.io/repos/crcn/sift.js/badge.svg)](https://coveralls.io/r/crcn/sift.js) [![Join the chat at https://gitter.im/crcn/sift.js](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/crcn/sift.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
@@ -15,3 +15,3 @@ | ||
- Small (2 kb minified) library | ||
- Custom Expressions | ||
- Custom Expressions | ||
@@ -34,3 +34,3 @@ | ||
//A *sifter* is returned if the second parameter is omitted | ||
var siftPeople = sift({ | ||
var testQuery = sift({ | ||
@@ -44,3 +44,3 @@ //you can also filter against functions | ||
//filtered: [{ name: 'craig' }] | ||
siftPeople([{ | ||
[{ | ||
name: 'craig', | ||
@@ -53,8 +53,8 @@ }, | ||
name: 'jake' | ||
}]); | ||
}].filter(testQuery); | ||
//you can test *single values* against your custom sifter | ||
siftPeople.test({ name: 'sarah' }); //true | ||
siftPeople.test({ name: 'tim' }); //false\ | ||
testQuery({ name: 'sarah' }); //true | ||
testQuery({ name: 'tim' }); //false\ | ||
``` | ||
@@ -83,3 +83,3 @@ | ||
- `array` - sifts against target array. Without this, a function is returned | ||
- `selectorFn` - selector for the values within the array. | ||
- `selectorFn` - selector for the values within the array. | ||
@@ -121,4 +121,4 @@ With an array: | ||
```javascript | ||
siftExists.test(null); //false | ||
siftExists.test('craig'); //true | ||
siftExists(null); //false | ||
siftExists('craig'); //true | ||
``` | ||
@@ -136,7 +136,7 @@ | ||
Intersecting two arrays: | ||
```javascript | ||
//filtered: ['Brazil'] | ||
sift({ $in: ['Costa Rica','Brazil'] }, ['Brazil','Haiti','Peru','Chile']); | ||
``` | ||
sift({ $in: ['Costa Rica','Brazil'] }, ['Brazil','Haiti','Peru','Chile']); | ||
``` | ||
@@ -155,4 +155,4 @@ Here's another example. This acts more like the $or operator: | ||
//filtered: ['Haiti','Peru','Chile'] | ||
sift({ $nin: ['Costa Rica','Brazil'] }, ['Brazil','Haiti','Peru','Chile']); | ||
``` | ||
sift({ $nin: ['Costa Rica','Brazil'] }, ['Brazil','Haiti','Peru','Chile']); | ||
``` | ||
@@ -165,4 +165,4 @@ ### $exists | ||
//filtered: ['Craig','Tim'] | ||
sift({ $exists: true }, ['Craig',null,'Tim']); | ||
``` | ||
sift({ $exists: true }, ['Craig',null,'Tim']); | ||
``` | ||
@@ -173,3 +173,3 @@ You can also filter out values that don't exist | ||
//filtered: [{ name: 'Craig', city: 'Minneapolis' }] | ||
sift({ city: { $exists: false } }, [ { name: 'Craig', city: 'Minneapolis' }, { name: 'Tim' }]); | ||
sift({ city: { $exists: false } }, [ { name: 'Craig', city: 'Minneapolis' }, { name: 'Tim' }]); | ||
``` | ||
@@ -183,3 +183,3 @@ | ||
//filtered: [2, 3] | ||
sift({ $gte: 2 }, [0, 1, 2, 3]); | ||
sift({ $gte: 2 }, [0, 1, 2, 3]); | ||
``` | ||
@@ -193,3 +193,3 @@ | ||
//filtered: [3] | ||
sift({ $gt: 2 }, [0, 1, 2, 3]); | ||
sift({ $gt: 2 }, [0, 1, 2, 3]); | ||
``` | ||
@@ -203,3 +203,3 @@ | ||
//filtered: [0, 1, 2] | ||
sift({ $lte: 2 }, [0, 1, 2, 3]); | ||
sift({ $lte: 2 }, [0, 1, 2, 3]); | ||
``` | ||
@@ -213,3 +213,3 @@ | ||
//filtered: [0, 1] | ||
sift({ $lt: 2 }, [0, 1, 2, 3]); | ||
sift({ $lt: 2 }, [0, 1, 2, 3]); | ||
``` | ||
@@ -223,3 +223,3 @@ | ||
//filtered: [{ state: 'MN' }] | ||
sift({ state: {$eq: 'MN' }}, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }); | ||
sift({ state: {$eq: 'MN' }}, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }); | ||
``` | ||
@@ -231,3 +231,3 @@ | ||
//filtered: [{ state: 'MN' }] | ||
sift({ state: 'MN' }, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }); | ||
sift({ state: 'MN' }, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }); | ||
``` | ||
@@ -240,4 +240,4 @@ | ||
```javascript | ||
//filtered: [{ state: 'CA' }, { state: 'WI'}] | ||
sift({ state: {$ne: 'MN' }}, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }); | ||
//filtered: [{ state: 'CA' }, { state: 'WI'}] | ||
sift({ state: {$ne: 'MN' }}, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }); | ||
``` | ||
@@ -251,3 +251,3 @@ | ||
//filtered: [300, 600] | ||
sift({ $mod: [3, 0] }, [100, 200, 300, 400, 500, 600]); | ||
sift({ $mod: [3, 0] }, [100, 200, 300, 400, 500, 600]); | ||
``` | ||
@@ -262,4 +262,4 @@ | ||
sift({ tags: {$all: ['books','programming'] }}, [ | ||
{ tags: ['books','programming','travel' ] }, | ||
{ tags: ['travel','cooking'] } ]); | ||
{ tags: ['books','programming','travel' ] }, | ||
{ tags: ['travel','cooking'] } ]); | ||
``` | ||
@@ -274,6 +274,6 @@ | ||
sift({ $and: [ { name: 'Craig' }, { state: 'MN' } ] }, [ | ||
{ name: 'Craig', state: 'MN' }, | ||
{ name: 'Tim', state: 'MN' }, | ||
{ name: 'Joe', state: 'CA' } ]); | ||
sift({ $and: [ { name: 'Craig' }, { state: 'MN' } ] }, [ | ||
{ name: 'Craig', state: 'MN' }, | ||
{ name: 'Tim', state: 'MN' }, | ||
{ name: 'Joe', state: 'CA' } ]); | ||
``` | ||
@@ -287,6 +287,6 @@ | ||
//filtered: [ { name: 'Craig', state: 'MN' }, { name: 'Tim', state: 'MN' }] | ||
sift({ $or: [ { name: 'Craig' }, { state: 'MN' } ] }, [ | ||
{ name: 'Craig', state: 'MN' }, | ||
{ name: 'Tim', state: 'MN' }, | ||
{ name: 'Joe', state: 'CA' } ]); | ||
sift({ $or: [ { name: 'Craig' }, { state: 'MN' } ] }, [ | ||
{ name: 'Craig', state: 'MN' }, | ||
{ name: 'Tim', state: 'MN' }, | ||
{ name: 'Joe', state: 'CA' } ]); | ||
``` | ||
@@ -300,6 +300,6 @@ | ||
//filtered: [ { name: 'Tim', state: 'MN' }, { name: 'Joe', state: 'CA' }] | ||
sift({ $nor: [ { name: 'Craig' }, { state: 'MN' } ] }, [ | ||
{ name: 'Craig', state: 'MN' }, | ||
{ name: 'Tim', state: 'MN' }, | ||
{ name: 'Joe', state: 'CA' } ]); | ||
sift({ $nor: [ { name: 'Craig' }, { state: 'MN' } ] }, [ | ||
{ name: 'Craig', state: 'MN' }, | ||
{ name: 'Tim', state: 'MN' }, | ||
{ name: 'Joe', state: 'CA' } ]); | ||
``` | ||
@@ -314,3 +314,3 @@ | ||
//filtered: ['food','cooking'] | ||
sift({ tags: { $size: 2 } }, [ { tags: ['food','cooking'] }, { tags: ['traveling'] }]); | ||
sift({ tags: { $size: 2 } }, [ { tags: ['food','cooking'] }, { tags: ['traveling'] }]); | ||
``` | ||
@@ -341,4 +341,4 @@ | ||
sift({ $where: "this.name === 'frank'" }, [{name:'frank'},{name:'joe'}]); // ["frank"] | ||
sift({ | ||
$where: function() { | ||
sift({ | ||
$where: function() { | ||
return this.name === "frank" | ||
@@ -345,0 +345,0 @@ } |
582
sift.js
/* | ||
* Sift | ||
* Sift 2.x | ||
* | ||
* Copryright 2011, Craig Condon | ||
* Copryright 2015, Craig Condon | ||
* Licensed under MIT | ||
* | ||
* Inspired by mongodb's query language | ||
* Filter JavaScript objects with mongodb queries | ||
*/ | ||
@@ -14,60 +14,70 @@ | ||
//traversable statements | ||
var TRAV_OP = { | ||
$and : true, | ||
$or : true, | ||
$nor : true, | ||
$trav : true, | ||
$not : true | ||
}; | ||
/** | ||
*/ | ||
var _testers = { | ||
function isFunction(value) { | ||
return typeof value === "function"; | ||
} | ||
/** | ||
*/ | ||
/** | ||
*/ | ||
$eq: function(a, b) { | ||
return a.test(b); | ||
}, | ||
function isArray(value) { | ||
return Object.prototype.toString.call(value) === "[object Array]"; | ||
} | ||
/** | ||
*/ | ||
/** | ||
*/ | ||
$ne: function(a, b) { | ||
return !a.test(b); | ||
}, | ||
function isPrimitive(value) { | ||
return typeof value !== "object" || value == void 0; | ||
} | ||
/** | ||
*/ | ||
/** | ||
*/ | ||
$lt: function(a, b) { | ||
return a > b; | ||
}, | ||
function comparable(value) { | ||
if (value instanceof Date) { | ||
return value.getTime(); | ||
} else if (value instanceof Array) { | ||
return value.map(comparable); | ||
} else { | ||
return value; | ||
} | ||
} | ||
/** | ||
*/ | ||
/** | ||
*/ | ||
$gt: function(a, b) { | ||
return a < b; | ||
}, | ||
function and(a, b) { | ||
for (var i = 0, n = a.length; i < n; i++) if (!a[i](b)) return false; | ||
return true; | ||
} | ||
var validator = { | ||
/** | ||
*/ | ||
$lte: function(a, b) { | ||
return a >= b; | ||
}, | ||
$eq: function(a) { | ||
/** | ||
*/ | ||
var fn; | ||
$gte: function(a, b) { | ||
return a <= b; | ||
}, | ||
if (a instanceof RegExp) { | ||
fn = function(b) { | ||
return a.test(comparable(b)); | ||
}; | ||
} else if (a instanceof Function) { | ||
fn = a; | ||
} else { | ||
fn = function(b) { | ||
if (b instanceof Array) { | ||
return ~comparable(b).indexOf(a); | ||
} else { | ||
return a === comparable(b); | ||
} | ||
}; | ||
} | ||
/** | ||
*/ | ||
$exists: function(a, b) { | ||
return a === (b != null); | ||
return fn; | ||
}, | ||
@@ -78,16 +88,7 @@ | ||
$in: function(a, b) { | ||
//intersecting an array | ||
if (b instanceof Array) { | ||
for (var i = b.length; i--;) { | ||
if (~a.indexOf(b[i])) return true; | ||
} | ||
} else { | ||
return ~a.indexOf(b); | ||
} | ||
return false; | ||
$ne: function(a) { | ||
var $eq = validator.$eq(a); | ||
return function(b) { | ||
return !$eq(b); | ||
}; | ||
}, | ||
@@ -98,5 +99,9 @@ | ||
$not: function(a, b) { | ||
if (!a.test) throw new Error("$not test should include an expression, not a value. Use $ne instead."); | ||
return !a.test(b); | ||
$or: function(a) { | ||
var validators = a.map(parse); | ||
var n = validators.length; | ||
return function(b) { | ||
for (var i = 0; i < n; i++) if (validators[i](comparable(b))) return true; | ||
return false; | ||
}; | ||
}, | ||
@@ -107,5 +112,6 @@ | ||
$type: function(a, b, org) { | ||
//instanceof doesn't work for strings / boolean. instanceof works with inheritance | ||
return org != null ? org instanceof a || org.constructor == a : false; | ||
$gt: function(a) { | ||
return function(b) { | ||
return comparable(b) > a; | ||
}; | ||
}, | ||
@@ -116,4 +122,6 @@ | ||
$nin: function(a, b) { | ||
return !_testers.$in(a, b); | ||
$gte: function(a) { | ||
return function(b) { | ||
return comparable(b) >= a; | ||
}; | ||
}, | ||
@@ -124,4 +132,6 @@ | ||
$mod: function(a, b) { | ||
return b % a[0] == a[1]; | ||
$lt: function(a) { | ||
return function(b) { | ||
return comparable(b) < a; | ||
}; | ||
}, | ||
@@ -132,11 +142,6 @@ | ||
$all: function(a, b) { | ||
if (!b) b = []; | ||
for (var i = a.length; i--;) { | ||
var a1 = a[i]; | ||
var indexInB = ~b.indexOf(a1); | ||
if (!indexInB) return false; | ||
} | ||
return true; | ||
$lte: function(a) { | ||
return function(b) { | ||
return comparable(b) <= a; | ||
}; | ||
}, | ||
@@ -147,4 +152,6 @@ | ||
$size: function(a, b) { | ||
return b ? a === b.length : false; | ||
$mod: function(a) { | ||
return function(b) { | ||
return comparable(b) % a[0] == a[1]; | ||
}; | ||
}, | ||
@@ -155,14 +162,15 @@ | ||
$or: function(a, b) { | ||
$in: function(a) { | ||
return function(b) { | ||
var i = a.length; | ||
var n = i; | ||
for (; i--;) { | ||
if (test(a[i], b)) { | ||
return true; | ||
if (b instanceof Array) { | ||
for (var i = b.length; i--;) { | ||
if (~a.indexOf(comparable(b[i]))) return true; | ||
} | ||
} else { | ||
return !!~a.indexOf(comparable(b)); | ||
} | ||
} | ||
return n === 0; | ||
return false; | ||
}; | ||
}, | ||
@@ -173,13 +181,17 @@ | ||
$nor: function(a, b) { | ||
$nin: function(a) { | ||
var $in = validator.$in(a); | ||
return function(b) { | ||
return !$in(comparable(b)); | ||
}; | ||
}, | ||
var i = a.length; | ||
/** | ||
*/ | ||
for (; i--;) { | ||
if (test(a[i], b)) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
$not: function(a) { | ||
var validate = parse(a); | ||
return function(b) { | ||
return !validate(comparable(b)); | ||
}; | ||
}, | ||
@@ -190,31 +202,21 @@ | ||
$and: function(a, b) { | ||
$type: function(a) { | ||
return function(b) { | ||
return b != void 0 ? b instanceof a || b.constructor == a : false; | ||
}; | ||
}, | ||
for (var i = a.length; i--;) { | ||
if (!test(a[i], b)) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
}, | ||
/** | ||
*/ | ||
$trav: function(a, b) { | ||
$all: function(a) { | ||
return function(b) { | ||
if (!b) b = []; | ||
if (b instanceof Array) { | ||
for (var i = b.length; i--;) { | ||
var subb = b[i]; | ||
if (subb[a.k] && test(a, subb[a.k])) return true; | ||
for (var i = a.length; i--;) { | ||
if (!~comparable(b).indexOf(a[i])) return false; | ||
} | ||
return false; | ||
} | ||
//continue to traverse even if there isn't a value - this is needed for | ||
//something like name:{$exists:false} | ||
return test(a, b ? b[a.k] : void 0); | ||
return true; | ||
}; | ||
}, | ||
@@ -225,5 +227,6 @@ | ||
$regex: function(a, b) { | ||
var aRE = new RegExp(a); | ||
return aRE.test(b); | ||
$size: function(a) { | ||
return function(b) { | ||
return b ? a === b.length : false; | ||
}; | ||
}, | ||
@@ -234,4 +237,9 @@ | ||
$where: function(a, b) { | ||
return a.call(b, b); | ||
$nor: function(a) { | ||
var validators = a.map(parse); | ||
var n = validators.length; | ||
return function(b) { | ||
for (var i = 0; i < n; i++) if (validators[i](comparable(b))) return false; | ||
return true; | ||
}; | ||
}, | ||
@@ -242,32 +250,16 @@ | ||
$elemMatch: function(a, b) { | ||
return a.test(b); | ||
} | ||
}; | ||
$and: function(a) { | ||
var validators = a.map(parse); | ||
return function(b) { | ||
return and(validators, b); | ||
}; | ||
}, | ||
var _prepare = { | ||
/** | ||
*/ | ||
$eq: function(a) { | ||
var fn; | ||
if (a instanceof RegExp) { | ||
return a; | ||
} else if (a instanceof Function) { | ||
fn = a; | ||
} else { | ||
fn = function(b) { | ||
if (b instanceof Array) { | ||
return ~b.indexOf(a); | ||
} else { | ||
return a === b; | ||
} | ||
}; | ||
} | ||
return { | ||
test: fn | ||
$regex: function(a) { | ||
var aRE = new RegExp(a); | ||
return function(b) { | ||
return aRE.test(b); | ||
}; | ||
@@ -279,4 +271,7 @@ }, | ||
$ne: function(a) { | ||
return _prepare.$eq(a); | ||
$where: function(a) { | ||
var caller = typeof a === "string" ? new Function("obj", "return " + a) : a; | ||
return function(b) { | ||
return caller.call(b, b); | ||
}; | ||
}, | ||
@@ -287,9 +282,8 @@ | ||
$where: function(a) { | ||
if (typeof a === "string") { | ||
return new Function("obj", "return " + a); | ||
} | ||
return a; | ||
$elemMatch: function(a) { | ||
var validator = parse(a); | ||
return function(b) { | ||
if (isArray(b)) return !!~search(b, validator); | ||
return validator(b); | ||
}; | ||
}, | ||
@@ -300,4 +294,7 @@ | ||
$elemMatch: function(a) { | ||
return parse(a); | ||
$exists: function(a) { | ||
a = !!a; | ||
return function(b) { | ||
return (b != void 0) === a; | ||
}; | ||
} | ||
@@ -309,148 +306,83 @@ }; | ||
function getExpr(type, key, value) { | ||
function search(array, validate) { | ||
var v = comparable(value); | ||
for (var i = 0; i < array.length; i++) { | ||
if (validate(array[i])) { | ||
return i; | ||
} | ||
} | ||
return { | ||
//k key | ||
k: key, | ||
//v value | ||
v: _prepare[type] ? _prepare[type](v) : v, | ||
//e eval | ||
e: _testers[type] | ||
}; | ||
return -1; | ||
} | ||
/** | ||
* tests against data | ||
*/ | ||
function test(statement, data) { | ||
function createNestedValidator(keypath, validate) { | ||
var exprs = statement.exprs; | ||
var keyPathParts = keypath.split("."); | ||
//generally, expressions are ordered from least efficient, to most efficient. | ||
for (var i = 0, n = exprs.length; i < n; i++) { | ||
return function(b) { | ||
var expr = exprs[i]; | ||
var values = []; | ||
findValues(b, keyPathParts, 0, values); | ||
if (!expr.e(expr.v, comparable(data), data)) return false; | ||
} | ||
return true; | ||
if (values.length === 1) return validate(values[0]); | ||
return !!~search(values, validate); | ||
}; | ||
} | ||
/** | ||
* parses a statement into something evaluable | ||
*/ | ||
function parse(statement, key) { | ||
function findValues(current, keypath, index, values) { | ||
//fixes sift(null, []) issue | ||
if (!statement) statement = { $eq: statement }; | ||
if (index === keypath.length || current == void 0) { | ||
values.push(current); | ||
return; | ||
} | ||
var testers = []; | ||
//if the statement is an object, then we're looking at something like: { key: match } | ||
if (statement && statement.constructor === Object) { | ||
for (var k in statement) { | ||
//find the apropriate operator. If one doesn't exist and the key does not start | ||
//with a $ character, then it's a property, which means we create a new statement | ||
//(traversing) | ||
var operator; | ||
if (!!_testers[k]) { | ||
operator = k; | ||
// $ == 36 | ||
} else if (k.charCodeAt(0) !== 36) { | ||
operator = "$trav"; | ||
} else { | ||
throw new Error("Unknown operator " + k + "."); | ||
} | ||
//value of given statement (the match) | ||
var value = statement[k]; | ||
//default = match | ||
var exprValue = value; | ||
//if we're working with a traversable operator, then set the expr value | ||
if (TRAV_OP[operator]) { | ||
//using dot notation? convert into a sub-object | ||
if (~k.indexOf(".")) { | ||
var keyParts = k.split("."); | ||
k = keyParts.shift(); //we're using the first key, so remove it | ||
exprValue = value = convertDotToSubObject(keyParts, value); | ||
} | ||
//*if* the value is an array, then we're dealing with something like: $or, $and | ||
if (value instanceof Array) { | ||
exprValue = []; | ||
for (var i = value.length; i--;) { | ||
exprValue.push(parse(value[i])); | ||
} | ||
//otherwise we're dealing with $trav | ||
} else { | ||
exprValue = parse(value, k); | ||
} | ||
} | ||
testers.push(getExpr(operator, k, exprValue)); | ||
if (isArray(current)) { | ||
for (var i = 0, n = current.length; i < n; i++) { | ||
findValues(current[i], keypath, index, values); | ||
} | ||
//otherwise we're comparing a particular value, so set to eq | ||
} else { | ||
testers.push(getExpr("$eq", key, statement)); | ||
findValues(current[keypath[index]], keypath, index + 1, values); | ||
} | ||
var stmt = { | ||
exprs: testers, | ||
k: key, | ||
test: function(value) { | ||
return test(stmt, value); | ||
} | ||
}; | ||
return stmt; | ||
} | ||
/** | ||
* flatten the query | ||
*/ | ||
function comparable(value) { | ||
if (value instanceof Date) { | ||
return value.getTime(); | ||
} else if (value instanceof Array) { | ||
return value.map(comparable); | ||
} else { | ||
return value; | ||
function parse(query) { | ||
query = comparable(query); | ||
if (!query || (query.constructor.toString() !== "Object" && | ||
query.constructor.toString() !== "function Object() { [native code] }")) { | ||
query = { $eq: query }; | ||
} | ||
} | ||
/** | ||
*/ | ||
var validators = []; | ||
function convertDotToSubObject(keyParts, value) { | ||
for (var key in query) { | ||
var a = query[key]; | ||
var subObject = {}; | ||
var currentValue = subObject; | ||
for (var i = 0, n = keyParts.length - 1; i < n; i++) { | ||
currentValue = currentValue[keyParts[i]] = {}; | ||
if (validator[key]) { | ||
validators.push(validator[key](comparable(a))); | ||
} else { | ||
if (key.charCodeAt(0) === 36) { | ||
throw new Error("Unknown operation " + key); | ||
} | ||
validators.push(createNestedValidator(key, parse(a))); | ||
} | ||
} | ||
currentValue[keyParts[i]] = value; | ||
var n = validators.length; | ||
if (n === 1) return validators[0]; | ||
return subObject; | ||
return function(b) { | ||
return and(validators, b); | ||
}; | ||
} | ||
@@ -461,99 +393,47 @@ | ||
function getSelector(selector) { | ||
function sift(query, array, getter) { | ||
if (!selector) { | ||
var validate = parse(query); | ||
return function(value) { | ||
return value; | ||
if (isFunction(array)) { | ||
getter = array; | ||
array = void 0; | ||
} | ||
if (getter) { | ||
validate = function(b) { | ||
return getter(b); | ||
}; | ||
} | ||
} else if (typeof selector == "function") { | ||
return selector; | ||
if (array) { | ||
return array.filter(validate); | ||
} | ||
throw new Error("Unknown sift selector " + selector); | ||
return validate; | ||
} | ||
/** | ||
* sifts the given function | ||
* @param query the mongodb query | ||
* @param target the target array | ||
* @param rawSelector the selector for plucking data from the given target | ||
*/ | ||
function sift(query, target, rawSelector) { | ||
//must be an array | ||
if (typeof target != "object") { | ||
rawSelector = target; | ||
target = void 0; | ||
sift.use = function(plugin) { | ||
if (isFunction(plugin)) return plugin(sift); | ||
for (var key in plugin) { | ||
if (key.charCodeAt(0) === 36) validator[key] = plugin[key]; | ||
} | ||
var selector = getSelector(rawSelector); | ||
//build the filter for the sifter | ||
var sifter = parse(query); | ||
function filter(value) { | ||
return sifter.test(selector(value)); | ||
} | ||
if (target) return target.filter(filter); | ||
filter.query = query; | ||
return filter; | ||
} | ||
sift.use = function(options) { | ||
if (options.operators) sift.useOperators(options.operators); | ||
if (typeof options === "function") options(sift); | ||
}; | ||
sift.useOperators = function(operators) { | ||
for (var key in operators) { | ||
sift.useOperator(key, operators[key]); | ||
} | ||
}; | ||
/** | ||
*/ | ||
sift.useOperator = function(operator, optionsOrFn) { | ||
var options = {}; | ||
if (typeof optionsOrFn == "object") { | ||
options = optionsOrFn; | ||
} else { | ||
options = { test: optionsOrFn }; | ||
} | ||
var key = "$" + operator; | ||
_testers[key] = options.test; | ||
if (options.traversable || options.traverse) { | ||
TRAV_OP[key] = true; | ||
} | ||
sift.indexOf = function(query, array, getter) { | ||
return search(array, sift(query, getter)); | ||
}; | ||
sift.indexOf = function(query, target, rawSelector) { | ||
var selector = getSelector(rawSelector); | ||
//build the filter for the sifter | ||
var sifter = parse(query); | ||
for (var i = 0; i < target.length; i++) { | ||
if (sifter.test(selector(target[i]))) { | ||
return i; | ||
} | ||
} | ||
return -1; | ||
}; | ||
/* istanbul ignore next */ | ||
if ((typeof module != "undefined") && (typeof module.exports != "undefined")) { | ||
if (typeof module !== "undefined" && typeof module.exports != "undefined") { | ||
module.exports = sift; | ||
} else | ||
if (typeof window != "undefined") { | ||
} else if (typeof window != "undefined") { | ||
window.sift = sift; | ||
} | ||
})(); |
@@ -1,1 +0,1 @@ | ||
!function(){"use strict";function n(n,r,t){var o=e(t);return{k:r,v:a[n]?a[n](o):o,e:c[n]}}function r(n,r){for(var t=n.exprs,o=0,u=t.length;u>o;o++){var i=t[o];if(!i.e(i.v,e(r),r))return!1}return!0}function t(e,u){e||(e={$eq:e});var i=[];if(e&&e.constructor===Object)for(var a in e){var s;if(c[a])s=a;else{if(36===a.charCodeAt(0))throw new Error("Unknown operator "+a+".");s="$trav"}var $=e[a],v=$;if(f[s]){if(~a.indexOf(".")){var l=a.split(".");a=l.shift(),v=$=o(l,$)}if($ instanceof Array){v=[];for(var p=$.length;p--;)v.push(t($[p]))}else v=t($,a)}i.push(n(s,a,v))}else i.push(n("$eq",u,e));var d={exprs:i,k:u,test:function(n){return r(d,n)}};return d}function e(n){return n instanceof Date?n.getTime():n instanceof Array?n.map(e):n}function o(n,r){for(var t={},e=t,o=0,u=n.length-1;u>o;o++)e=e[n[o]]={};return e[n[o]]=r,t}function u(n){if(!n)return function(n){return n};if("function"==typeof n)return n;throw new Error("Unknown sift selector "+n)}function i(n,r,e){function o(n){return f.test(i(n))}"object"!=typeof r&&(e=r,r=void 0);var i=u(e),f=t(n);return r?r.filter(o):(o.query=n,o)}var f={$and:!0,$or:!0,$nor:!0,$trav:!0,$not:!0},c={$eq:function(n,r){return n.test(r)},$ne:function(n,r){return!n.test(r)},$lt:function(n,r){return n>r},$gt:function(n,r){return r>n},$lte:function(n,r){return n>=r},$gte:function(n,r){return r>=n},$exists:function(n,r){return n===(null!=r)},$in:function(n,r){if(!(r instanceof Array))return~n.indexOf(r);for(var t=r.length;t--;)if(~n.indexOf(r[t]))return!0;return!1},$not:function(n,r){if(!n.test)throw new Error("$not test should include an expression, not a value. Use $ne instead.");return!n.test(r)},$type:function(n,r,t){return null!=t?t instanceof n||t.constructor==n:!1},$nin:function(n,r){return!c.$in(n,r)},$mod:function(n,r){return r%n[0]==n[1]},$all:function(n,r){r||(r=[]);for(var t=n.length;t--;){var e=n[t],o=~r.indexOf(e);if(!o)return!1}return!0},$size:function(n,r){return r?n===r.length:!1},$or:function(n,t){for(var e=n.length,o=e;e--;)if(r(n[e],t))return!0;return 0===o},$nor:function(n,t){for(var e=n.length;e--;)if(r(n[e],t))return!1;return!0},$and:function(n,t){for(var e=n.length;e--;)if(!r(n[e],t))return!1;return!0},$trav:function(n,t){if(t instanceof Array){for(var e=t.length;e--;){var o=t[e];if(o[n.k]&&r(n,o[n.k]))return!0}return!1}return r(n,t?t[n.k]:void 0)},$regex:function(n,r){var t=new RegExp(n);return t.test(r)},$where:function(n,r){return n.call(r,r)},$elemMatch:function(n,r){return n.test(r)}},a={$eq:function(n){var r;return n instanceof RegExp?n:(r=n instanceof Function?n:function(r){return r instanceof Array?~r.indexOf(n):n===r},{test:r})},$ne:function(n){return a.$eq(n)},$where:function(n){return"string"==typeof n?new Function("obj","return "+n):n},$elemMatch:function(n){return t(n)}};i.use=function(n){n.operators&&i.useOperators(n.operators),"function"==typeof n&&n(i)},i.useOperators=function(n){for(var r in n)i.useOperator(r,n[r])},i.useOperator=function(n,r){var t={};t="object"==typeof r?r:{test:r};var e="$"+n;c[e]=t.test,(t.traversable||t.traverse)&&(f[e]=!0)},"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=i:"undefined"!=typeof window&&(window.sift=i)}(); | ||
!function(){function n(n){return"function"==typeof n}function r(n){return"[object Array]"===Object.prototype.toString.call(n)}function t(n){return n instanceof Date?n.getTime():n instanceof Array?n.map(t):n}function e(n,r){for(var t=0,e=n.length;e>t;t++)if(!n[t](r))return!1;return!0}function u(n,r){for(var t=0;t<n.length;t++)if(r(n[t]))return t;return-1}function o(n,r){var t=n.split(".");return function(n){var e=[];return i(n,t,0,e),1===e.length?r(e[0]):!!~u(e,r)}}function i(n,t,e,u){if(e===t.length||void 0==n)return void u.push(n);if(r(n))for(var o=0,f=n.length;f>o;o++)i(n[o],t,e,u);else i(n[t[e]],t,e+1,u)}function f(n){n=t(n),n&&n.constructor===Object||(n={$eq:n});var r=[];for(var u in n){var i=n[u];if(a[u])r.push(a[u](t(i)));else{if(36===u.charCodeAt(0))throw new Error("Unknown operation "+u);r.push(o(u,f(i)))}}var c=r.length;return 1===c?r[0]:function(n){return e(r,n)}}function c(r,t,e){var u=f(r);return n(t)&&(e=t,t=void 0),e&&(u=function(n){return e(n)}),t?t.filter(u):u}var a={$eq:function(n){var r;return r=n instanceof RegExp?function(r){return n.test(t(r))}:n instanceof Function?n:function(r){return r instanceof Array?~t(r).indexOf(n):n===t(r)}},$ne:function(n){var r=a.$eq(n);return function(n){return!r(n)}},$or:function(n){var r=n.map(f),e=r.length;return function(n){for(var u=0;e>u;u++)if(r[u](t(n)))return!0;return!1}},$gt:function(n){return function(r){return t(r)>n}},$gte:function(n){return function(r){return t(r)>=n}},$lt:function(n){return function(r){return t(r)<n}},$lte:function(n){return function(r){return t(r)<=n}},$mod:function(n){return function(r){return t(r)%n[0]==n[1]}},$in:function(n){return function(r){if(!(r instanceof Array))return!!~n.indexOf(t(r));for(var e=r.length;e--;)if(~n.indexOf(t(r[e])))return!0;return!1}},$nin:function(n){var r=a.$in(n);return function(n){return!r(t(n))}},$not:function(n){var r=f(n);return function(n){return!r(t(n))}},$type:function(n){return function(r){return null!=r?r instanceof n||r.constructor==n:!1}},$all:function(n){return function(r){r||(r=[]);for(var e=n.length;e--;)if(!~t(r).indexOf(n[e]))return!1;return!0}},$size:function(n){return function(r){return r?n===r.length:!1}},$nor:function(n){var r=n.map(f),e=r.length;return function(n){for(var u=0;e>u;u++)if(r[u](t(n)))return!1;return!0}},$and:function(n){var r=n.map(f);return function(n){return e(r,n)}},$regex:function(n){var r=new RegExp(n);return function(n){return r.test(n)}},$where:function(n){var r="string"==typeof n?new Function("obj","return "+n):n;return function(n){return r.call(n,n)}},$elemMatch:function(n){return f(n)},$exists:function(n){return n=!!n,function(r){return void 0!=r===n}}};c.use=function(r){if(n(r))return r(c);for(var t in r)36===t.charCodeAt(0)&&(a[t]=r[t])},c.indexOf=function(n,r,t){return u(r,c(n,t))},"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=c:"undefined"!=typeof window&&(window.sift=c)}(); |
@@ -31,7 +31,7 @@ var assert = require("assert"), | ||
it("throws an error if the selector is invalid", function () { | ||
it("throws an error if the operation is invalid", function () { | ||
var err; | ||
try { | ||
sift({$aaa:1}, 1)("b"); | ||
sift({$aaa:1})("b"); | ||
} catch (e) { | ||
@@ -41,3 +41,3 @@ err = e; | ||
assert.equal(err.message, "Unknown sift selector 1"); | ||
assert.equal(err.message, "Unknown operation $aaa"); | ||
@@ -58,13 +58,2 @@ }); | ||
it("throws an error", function () { | ||
var err; | ||
try { | ||
sift({$aaa:1})("b"); | ||
} catch (e) { | ||
err = e; | ||
} | ||
assert.equal(err.message, "Unknown operator $aaa."); | ||
}); | ||
it("can get the first index of a matching element", function () { | ||
@@ -71,0 +60,0 @@ var index = sift.indexOf({ val: { $gt: 5}}, [{val: 4}, {val: 3}, {val: 6}, {val: 7}]); |
@@ -60,3 +60,3 @@ var sift = require(".."), | ||
]; | ||
it("throws error if $not is incorrect", function () { | ||
xit("throws error if $not is incorrect", function () { | ||
assert.throws(function () { | ||
@@ -187,2 +187,41 @@ sift({ | ||
describe("$where", function() { | ||
var couples = [{ | ||
name: "SMITH", | ||
person: [{ | ||
firstName: "craig", | ||
gender: "female", | ||
age: 29 | ||
}, { | ||
firstName: "tim", | ||
gender: "male", | ||
age: 32 | ||
} | ||
] | ||
}, { | ||
name: "JOHNSON", | ||
person: [{ | ||
firstName: "emily", | ||
gender: "female", | ||
age: 35 | ||
}, { | ||
firstName: "jacob", | ||
gender: "male", | ||
age: 32 | ||
} | ||
] | ||
}]; | ||
it("can filter people", function() { | ||
var results = sift({"person": {$elemMatch: { "gender": "female", "age": {"$lt": 30}}}}, couples); | ||
assert.equal(results[0].name, "SMITH"); | ||
var results = sift({"person": {$elemMatch: { "gender": "male", "age": {"$lt": 30}}}}, [couples[0]]); | ||
assert.equal(results.length, 0); | ||
}); | ||
}); | ||
describe("keypath", function () { | ||
@@ -189,0 +228,0 @@ |
@@ -87,3 +87,3 @@ var assert = require("assert"); | ||
[{$size:1},["123",[1,2,3],"1", void 0],["1"]], | ||
// $or | ||
@@ -99,3 +99,3 @@ [{$or:[1,2,3]},[1,2,3,4],[1,2,3]], | ||
[{$and:[{$gt:1},{$lt:4}]},[1,2,3,4],[2,3]], | ||
// $regex | ||
@@ -110,12 +110,13 @@ [{$regex:"^a"},["a","ab","abc","bc","bcd"],["a","ab","abc"]], | ||
// $elemMatch | ||
//{"person": {"$elemMatch": {"gender": "male", "age": {"$lt": 30}}}} | ||
[{a:{$elemMatch:{b:1,c:2}}}, [{a:{b:1,c:2}},{a:[{b:1,c:2,d:3}]},{a:{b:2,c:3}}], [{a:{b:1,c:2}},{a:[{b:1,c:2,d:3}]}]], | ||
[{a:{$elemMatch:{b:2,c:{$gt:2}}}}, [{a:{b:1,c:2}},{a:{b:1,c:2,d:3}},{a:{b:2,c:3}}], [{a:{b:2,c:3}}]], | ||
[{a:{$elemMatch:{b:2,c:{$gt:2}}}}, [{a:{b:1,c:2}},{a:{b:1,c:2,d:3}},[{a:{b:2,c:3}}]], [[{a:{b:2,c:3}}]]], | ||
].forEach(function (operation) { | ||
].forEach(function (operation, i) { | ||
var filter = operation[0], | ||
array = operation[1], | ||
matchArray = operation[2]; | ||
var filter = operation[0]; | ||
var array = operation[1]; | ||
var matchArray = operation[2]; | ||
it(JSON.stringify(filter), function () { | ||
it(i + ": " + JSON.stringify(filter), function() { | ||
assert.equal(JSON.stringify(array.filter(sift(filter))), JSON.stringify(matchArray)); | ||
@@ -122,0 +123,0 @@ }); |
@@ -6,3 +6,3 @@ var assert = require("assert"), | ||
it("can use custom operators", function () { | ||
it("can use custom operators", function() { | ||
@@ -12,10 +12,10 @@ var i = 0; | ||
sift.use({ | ||
operators: { | ||
abba: function (a, b) { | ||
$abba: function(a) { | ||
return function(b) { | ||
i++; | ||
} | ||
}; | ||
} | ||
}); | ||
sift({ a: {$abba:-1}}, [1,2,3]); | ||
sift({ a: {$abba:-1}}, [1, 2, 3]); | ||
@@ -26,5 +26,5 @@ // expect(i).to.be(3); | ||
it("can use a function", function (next) { | ||
sift.use(function (sift) { | ||
assert.equal(sift(1,[1,2,3]).length, 1); | ||
it("can use a function", function(next) { | ||
sift.use(function(sift) { | ||
assert.equal(sift(1, [1, 2, 3]).length, 1); | ||
next(); | ||
@@ -34,33 +34,10 @@ }) | ||
it("can make a traversable op", function () { | ||
var i = 0; | ||
sift.use({ | ||
operators: { | ||
baab: { | ||
traverse:true, | ||
test: function (a, b) { | ||
i++; | ||
return a && b; | ||
} | ||
} | ||
} | ||
}); | ||
sift({a:{$baab:1}})({a:1}); | ||
assert.equal(i, 1); | ||
}); | ||
sift.use({ | ||
operators: { | ||
notb: function(a, b) { | ||
$notb: function(a) { | ||
return function(b) { | ||
return a != b ? true : false; | ||
} | ||
}; | ||
} | ||
}); | ||
var topic = [1, 2, 3, 4, 5, 6, 6, 4, 3]; | ||
@@ -72,3 +49,2 @@ | ||
}); | ||
}); |
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 not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
155120
1716
11