Socket
Socket
Sign inDemoInstall

sift

Package Overview
Dependencies
Maintainers
1
Versions
155
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sift - npm Package Compare versions

Comparing version 1.1.1 to 2.0.0

changelog.md

2

coverage/coverage.json

@@ -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 @@ }

/*
* 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

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc