{"_id":"@abdullah2993/expression-parser","_rev":"6-f81e33202a66f06196b4d07d6656ee0f","name":"@abdullah2993/expression-parser","dist-tags":{"latest":"1.1.5"},"versions":{"1.0.0":{"name":"@abdullah2993/expression-parser","version":"1.0.0","description":"An expression evaluator written in typescript with the goal to support `SQL` like `WHERE` clauses.","main":"index.js","scripts":{"build":"tsc","lint":"tsc --noEmit && eslint \"**/*.ts\" --quiet --fix","test":"jasmine-ts --config=jasmine.json","coverage":"nyc -r text -e .ts -x \"tests/*.spec.ts\" npm run test"},"repository":{"type":"git","url":"git+https://github.com/abdullah2993/expression-parser.git"},"author":{"name":"abdullah2993"},"license":"MIT","bugs":{"url":"https://github.com/abdullah2993/expression-parser/issues"},"homepage":"https://github.com/abdullah2993/expression-parser#readme","devDependencies":{"@types/jasmine":"^3.8.2","@typescript-eslint/eslint-plugin":"^4.29.0","@typescript-eslint/parser":"^4.29.0","eslint":"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-config-airbnb-typescript":"^12.3.1","eslint-plugin-import":"^2.23.4","jasmine":"^3.8.0","jasmine-ts":"^0.4.0","nyc":"^15.1.0","ts-node":"^10.1.0","typescript":"^4.3.5"},"gitHead":"5c76faeda7c5d8d3b664719973438c1ac873a2d4","_id":"@abdullah2993/expression-parser@1.0.0","_nodeVersion":"15.13.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-fp+KKKTMz7bezSBtNqHr989kwQ20JLRhyWcfqHfpu9SLJXVYLPc0Tjr+IyMbJIotbL+/+u4O3c/PtmkDxY8UlQ==","shasum":"4624ed85a21058ee209c21227a3ec81c414fc2a0","tarball":"https://registry.npmjs.org/@abdullah2993/expression-parser/-/expression-parser-1.0.0.tgz","fileCount":16,"unpackedSize":38053,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFCKaCRA9TVsSAnZWagAAVtIP/3x0BaknN8NT9o7RNVdW\nLcPIYzywmy7zHJYGgEzR2uNR9ZqXGIYe7GpjZqBTeqKpoF8XZMJezsb+1ZTF\n/pTEyjwXf4jufbAm/V9R8SUPp/WRdVvSKPjkcjO2Oj4U8rq6ZgY1o2UrCFxo\nkwPfIGtTJHdwnLNszTBOvdhYXyeDjsjxd78duvhiVjk8iWpdaGb0Qxykw5nf\ncHY30BTUWCbAdsBON6u/BO2beyF0dUIkbwbcLfRZ2P/iE/GJGuPGPlGi9jsa\noWapV6AQQDHQed++P7YVshERoNKJQqo/8p0h01FZYps/17j9Q7aclBMBvQs4\nEDS9O3HUNCjhMFI34sUHKct5WXudvikWMRTB5IXkJGn3rg6H9LgVujePWHpB\nvW1pPARW6+DKgX2w0oW6PQqkNlw8TpKRXhSIaqRyyBISBB9oThDGmdJspcSn\n9ryLws3ZDr86NsBJ3IIwO+0nd997BVlMGmCJqUz0e/2rdnvyzKgLmRC2BFym\nonaph6JpZi5pYTy3HGSPj4dCBiEAgbCXnYIFTuSE2ZObkt597CKFvT4jFsO/\n41j7FPKVNHwvxCKhgNIgUeCXdPe0yuH+NkmWuHpu2TUBfSw2wl9b9hCufqPU\nucbX4iH2NvVRiYBtWHPmx+7YfOcjVp2zymQan4ivx22dFFwZbALv1hFEtlUi\nepon\r\n=w3EI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHUuMLM2zRaGeZNMfaf/V4ayT5yO8noHFpNodAIW+Pd2AiBlg4Jwu66YPWoHR5YI3mWoc4KK2QJOOhuC0kXANDFilw=="}]},"_npmUser":{"name":"abdullah2993","email":"a.saleem2993@gmail.com"},"directories":{},"maintainers":[{"name":"abdullah2993","email":"a.saleem2993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/expression-parser_1.0.0_1628709529960_0.4481045030756239"},"_hasShrinkwrap":false},"1.1.0":{"name":"@abdullah2993/expression-parser","version":"1.1.0","description":"An expression evaluator written in typescript with the goal to support `SQL` like `WHERE` clauses.","main":"index.js","scripts":{"build":"tsc","lint":"tsc --noEmit && eslint \"**/*.ts\" --quiet --fix","test":"jasmine-ts --config=jasmine.json","coverage":"nyc -r text -e .ts -x \"tests/*.spec.ts\" npm run test"},"repository":{"type":"git","url":"git+https://github.com/abdullah2993/expression-parser.git"},"author":{"name":"abdullah2993"},"license":"MIT","bugs":{"url":"https://github.com/abdullah2993/expression-parser/issues"},"homepage":"https://github.com/abdullah2993/expression-parser#readme","devDependencies":{"@types/jasmine":"^3.8.2","@typescript-eslint/eslint-plugin":"^4.29.0","@typescript-eslint/parser":"^4.29.0","eslint":"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-config-airbnb-typescript":"^12.3.1","eslint-plugin-import":"^2.23.4","jasmine":"^3.8.0","jasmine-ts":"^0.4.0","nyc":"^15.1.0","ts-node":"^10.1.0","typescript":"^4.3.5"},"gitHead":"1cee37f9051060f268f0f39473f647569b9fea63","_id":"@abdullah2993/expression-parser@1.1.0","_nodeVersion":"15.13.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-Qf66wt6qKSat3aj9fhQ4ZufhycmkUsYPV9617NG85Ekuq2Ts+GzMZZoULHI3ywh4EnO1hfO2V8PtbEyOk9ZiAQ==","shasum":"a7ffd00bdaf28ef1e100f110b73ae535ebd9e4ac","tarball":"https://registry.npmjs.org/@abdullah2993/expression-parser/-/expression-parser-1.1.0.tgz","fileCount":16,"unpackedSize":40705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFDxJCRA9TVsSAnZWagAAUOkP/2T5c8iXTJidyY79/98Y\nRA7hnepjPOa/gC8QjakGsBL+/EDFmKi3sJk8oSaZ9prZzyRV8AbKteH0omas\nCeSlOUL2/cD2zTYESemPnq+pH7VsCNWBd4rChIbI9qZVkP6dh3r7WHZ1aVHN\nHjnaHiYiYJZWCg8n9mOqkZdHuJVhee2xQSVz39++TCi5Jo0PgstrqDZLfppp\njiBkGxSobTVur3rErso/QzYagOT09/5raX/+J49XTB2Ow6TH1KDPn2sMWVaU\n1c31UgvK3M4iohmBVjjyc3v65Y3kbPHrpcDcGWBKOGV81oiTckKIY/7qvfmY\nOHa6RmJzEAaywPoyryXAAi0raQLKkAvu5bf+WX8CHBW83FS9BBkq/jLY/up0\nCo2tUupX7OuguDxBPY8KeMxx2te3YHFRw3JaF2tMbshCzF/ydCf+0sXvP6VC\ngMBqCGLk4RjNi9oLhBC5vCHjVugKiVrPh6B6N7ppBQ6z3FPrmDXjuunD8Wke\nFurDjOBscoTpuZJ/OQo2LQi+zlq9F95ZZ1uiFU01PM1+nukxnrbevxGVCS4T\nhPuf2kQBqlye+Cj0CWshHUm9LrcfBTQ/t8/KYSRvW+Rboyco0upat9udqrzm\n/8Nu1fEEL22QswVz7GJwGj+8HmxiYzL2T1iVRTUq5+c8CECje2CPZ9o1+q3m\nf2r4\r\n=y90j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKvGDqhP5l76isMHajXLMl/lYE77KuX+KBgZ2ZsQNLZAIhAKFp0PG1w2OmDZHAyHVn8+KXzH/LxJoR4O8UfA1DqXPg"}]},"_npmUser":{"name":"abdullah2993","email":"a.saleem2993@gmail.com"},"directories":{},"maintainers":[{"name":"abdullah2993","email":"a.saleem2993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/expression-parser_1.1.0_1628716105871_0.09106434918984307"},"_hasShrinkwrap":false},"1.1.1":{"name":"@abdullah2993/expression-parser","version":"1.1.1","description":"An expression evaluator written in typescript with the goal to support `SQL` like `WHERE` clauses.","main":"index.js","scripts":{"build":"tsc","lint":"tsc --noEmit && eslint \"**/*.ts\" --quiet --fix","test":"jasmine-ts --config=jasmine.json","coverage":"nyc -r text -e .ts -x \"tests/*.spec.ts\" npm run test"},"repository":{"type":"git","url":"git+https://github.com/abdullah2993/expression-parser.git"},"author":{"name":"abdullah2993"},"license":"MIT","bugs":{"url":"https://github.com/abdullah2993/expression-parser/issues"},"homepage":"https://github.com/abdullah2993/expression-parser#readme","devDependencies":{"@types/jasmine":"^3.8.2","@typescript-eslint/eslint-plugin":"^4.29.0","@typescript-eslint/parser":"^4.29.0","eslint":"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-config-airbnb-typescript":"^12.3.1","eslint-plugin-import":"^2.23.4","jasmine":"^3.8.0","jasmine-ts":"^0.4.0","nyc":"^15.1.0","ts-node":"^10.1.0","typescript":"^4.3.5"},"gitHead":"e7f639e537434c219ca960b889139af4444d5a3e","_id":"@abdullah2993/expression-parser@1.1.1","_nodeVersion":"15.13.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-tSuZc5DcI/qQAe0gBS8Q89kStkZyGDvQZy6+s5hWEL0Cl6qspJQMW8BJ02kPv9pHF+dSGUCGWsRBGnLmv9+27A==","shasum":"cad1b516b39e651fdbc6122174038f28f64b4d14","tarball":"https://registry.npmjs.org/@abdullah2993/expression-parser/-/expression-parser-1.1.1.tgz","fileCount":16,"unpackedSize":42193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhIk4mCRA9TVsSAnZWagAAqpIP/3u79yE9WYazfnFnCtAO\noKkSnv2NHPuvPT7lhTfMMSUFzruUcrBk29SOP+R0g4gyYO55L6G/nTKNHAG+\nBPaUm9wkyuhRQHrKYz36kb1x6vIZWYtOMWgtVUwiEgEFKW+cfNyQcdaqXmjb\nv0TaV2foM43I68CGrNWMoNl4P1Jbsz4hjy7fMfIXRAD1DLmZlGUXF0Tqa4Mu\nejukF06OySZ5WsU6lfry3lnf3qJESg8/bsM/y9MRMCu6g0hjBbukHfGESKv1\nFKo5UvAOjQbiINzxWjY1ml6jxKtfdA7oX97Mae7GxhY9LkHFCDR6jDV3DycM\nDCNZ8T0HKCqPqHR5Iaj93Qi1zqHiDIYe3Jbnw5tv4tDKg2mJzqWtEBiAuWu+\nhflX9KOuz+0GXOtmtwq5jR3P/Stp+vR0lZMQxB3BbfhhOHwH7tz+vEnSYS+y\nVTUAsDpVVZmczxSxgCjzXjRKQ/Hvln4KYQXujY7TljlmJtSUvT2PflQhPmax\nBbSVA/4s9G7JU2CB73zqatDVBuE+1N7bEBame2oENmXVNolez3eGfSfZAmX3\nMhGG8LkdTe9h4sHHHKf9hGLMRYsIOYX5Rteh9svszxizkXYVaxhP8EezY3Ct\nlbXJ4BkSyNDRAwzODypwTu+66kkdMAwBWYkkm+dg+GR4l4cKNQjaPcRCN0q9\ncxxX\r\n=pLNv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMQTH1LiFKWJHps5iZZc1zTaWOxCrckLsjK3LcD1IvewIhANmi4LX/60csW9Jr31TwV8eTi+qIK7H9/o4MrOKHMYtC"}]},"_npmUser":{"name":"abdullah2993","email":"a.saleem2993@gmail.com"},"directories":{},"maintainers":[{"name":"abdullah2993","email":"a.saleem2993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/expression-parser_1.1.1_1629638182061_0.23570578375292328"},"_hasShrinkwrap":false},"1.1.3":{"name":"@abdullah2993/expression-parser","version":"1.1.3","description":"An expression evaluator written in typescript with the goal to support SQL like WHERE clauses.","main":"index.js","scripts":{"build":"tsc","lint":"tsc --noEmit && eslint \"**/*.ts\" --quiet --fix","test":"jasmine-ts --config=jasmine.json","coverage":"nyc -r text -e .ts -x \"tests/*.spec.ts\" npm run test"},"repository":{"type":"git","url":"git+https://github.com/abdullah2993/expression-parser.git"},"author":{"name":"abdullah2993"},"license":"MIT","bugs":{"url":"https://github.com/abdullah2993/expression-parser/issues"},"keywords":["parser","expression","filters","expression-evaluator","whereclause","where","conditions","where clause","where-clause","ast","sql where"],"homepage":"https://github.com/abdullah2993/expression-parser#readme","devDependencies":{"@types/jasmine":"^3.8.2","@typescript-eslint/eslint-plugin":"^4.29.0","@typescript-eslint/parser":"^4.29.0","eslint":"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-config-airbnb-typescript":"^12.3.1","eslint-plugin-import":"^2.23.4","jasmine":"^3.8.0","jasmine-ts":"^0.4.0","nyc":"^15.1.0","ts-node":"^10.1.0","typescript":"^4.3.5"},"gitHead":"f2190a2e77f23def852e0e0dbc8eb53dd7ac28b3","_id":"@abdullah2993/expression-parser@1.1.3","_nodeVersion":"15.13.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-i2IbAiX1ja96zeHmbztFHlWitj8gQ8xM5id/UzsvCkL9XRewRukK/YBxeSNUvSwXRRHXjB89oXmux4tBktzUJA==","shasum":"526de5c730ad08d59abbdbe41aff3a2d3f028937","tarball":"https://registry.npmjs.org/@abdullah2993/expression-parser/-/expression-parser-1.1.3.tgz","fileCount":16,"unpackedSize":42513,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAhj5CRA9TVsSAnZWagAAcTwP/2KbVxYJuLQM0wq9Cy53\nIAeb/IJ8G+92FyByAW/wkv2XVENB4mq1MDRGIDSWDt61wgDScU3wlXEeNjDw\ne9NTMpKIpme9Znme8iDoik+VJtKaP0IzKOrVhybS9BX7NHJ+9c8IhXlcU4Jn\nluuZOhIpOeo8W5umwUx0krHza2g9JJkiY1+s3fwRJOXmvsQgxnBJ7qF6+T5y\nlPBc5OLY6iaENBb5BCW0LRShQ1P7LjHwKXVRjy6eBKqjwTwEMCsyQRnMWV2P\nhAny3sSlHdcY/Pj8D4U7iXq+wHrUPNNRp7ACAsK3VEqS9Tny5WX66CRm7/kr\nU++NKJKABO4H0YJt47qGlwdqaShZ7nd0LSnhE04y0E06vPbZdbmBg2aJP7rT\nsTdzJ7SAsWCoT1n9XiHxmZ7eChL06YQgRM68y3XXo1+nPDF0T7h9KeSqKtFW\nwvwvXsgTBK1KIa6unTHhxdFRnluOm+A39afT7ZaYMmWwKE3FzscmoltG+sT3\nF7I3v8vMmnxDn5//0A1WrQWDe1V3D9+fWZqdpXJ1a5QaKSSXMJ8bh1smVF4r\ngONRCXGSMZCaSK9BqruddJj++yPshLWtdOPQ40yNQdxQpL79RfMtJ3cRoSJN\naTWvKOSPVuZBXDBzwTaQ5sCzs2GgXlYibDWD2cQliNR9ivhMRpGLehSz4zCG\nG+/m\r\n=nPOR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH42orB7LYbePfvC/rtP9bPeJjbvas/1Vgp+99drsoO4AiAnkeg1E5vBVbE25ECat9JmESy1z4Q+SNTUCftdw01Ayg=="}]},"_npmUser":{"name":"abdullah2993","email":"a.saleem2993@gmail.com"},"directories":{},"maintainers":[{"name":"abdullah2993","email":"a.saleem2993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/expression-parser_1.1.3_1644304633324_0.34651607966800224"},"_hasShrinkwrap":false},"1.1.4":{"name":"@abdullah2993/expression-parser","version":"1.1.4","description":"An expression evaluator written in typescript with the goal to support SQL like WHERE clauses.","main":"dist/src/index.js","scripts":{"build":"tsc","lint":"tsc --noEmit && eslint --quiet --fix","test":"jasmine-ts --config=jasmine.json","coverage":"nyc -r text -e .ts -x \"tests/*.spec.ts\" npm run test","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/abdullah2993/expression-parser.git"},"author":{"name":"abdullah2993"},"license":"MIT","bugs":{"url":"https://github.com/abdullah2993/expression-parser/issues"},"types":"dist/index.d.ts","keywords":["parser","expression","filters","expression-evaluator","whereclause","where","conditions","where clause","where-clause","ast","sql where"],"homepage":"https://github.com/abdullah2993/expression-parser#readme","devDependencies":{"@types/jasmine":"^3.8.2","@typescript-eslint/eslint-plugin":"^4.29.0","@typescript-eslint/parser":"^4.29.0","eslint":"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-config-airbnb-typescript":"^12.3.1","eslint-plugin-import":"^2.23.4","jasmine":"^3.8.0","jasmine-ts":"^0.4.0","nyc":"^15.1.0","ts-node":"^10.1.0","typescript":"^4.3.5"},"gitHead":"d25e440bf3b6f850cdab809233c9032427c91b82","_id":"@abdullah2993/expression-parser@1.1.4","_nodeVersion":"15.13.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-6Gh0GL0uudFcgbzD21/c6fP8GJ4DG7kyjEEjUk44jiVeonXM3KAT3gNyjBVzdL6aNCYayWZ7bRM6VbWGa/Vblg==","shasum":"a7a57f06d6ab11999544ffb0f81cd9bd07f0dbd2","tarball":"https://registry.npmjs.org/@abdullah2993/expression-parser/-/expression-parser-1.1.4.tgz","fileCount":15,"unpackedSize":36165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA1njCRA9TVsSAnZWagAAM/4P/2y6YmF1p1rGSgIfc6jR\nXe+uVMy0d5UYOZ11Xar8Ck3VezovsGmZZKpyVmTOrBEfddwpTC8368xVq85J\nq7Zqe/sGbzHxKSEyT6IhcEcXPaU5EkgAM5Su1PjyTE7xUQxary9Mi9zazpyj\nvkWC/cdf+y/eJTI5hgvRA29bLvxxzxuI7MhFzgRqF8IAjtexQjeOKebI0lXu\niP596NTTVl/CaXPouDjPZ3/Q67lpRN12YwZ5THmFdaznOefxwAb191ft/zXG\nTWzjUUL1+nDaaGX+YONM5pG2mmImX+Jtz7uE+VlReNhxB/fnUIO/+4G5Gf2K\nEzc/CVHycB7dIDGY8LlzyIMyi7IHJAgpesRzh1R9wGDI1CevDgumE+axUDRX\n49FUdF450hATQe9N1TYMUQ9ZCCXYhqylCwE8+LFA9rrz2Ooek4axBpgqC02v\n7hiUiuWAp/h9HRGx4AOszoSvoN3BiTKj+FCz/efM9FjnoEWOKH5obSpKN0+7\nSuaG0Wp10ZvcLcjEzgDxoEPjyywM7vvsIsg2EVGywHxkM4eQk+N3hzK2vZNj\nrlmVZWTbvW53cNVINr1EWVMj4miINOX1TqdFXtRU7IjuM3LawaLSHNLGqlHd\nOf5MUu6Vh6hdEfbxc2vrQ0IPCc8ZwX+PWFE/YyoMWVbk1zEFtl/sXjQdd7YE\nKfEV\r\n=mQ0M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC57e5HxfRGJps6IBCGRvH4T5ZjE/FifNP+wAVbbjDb+wIhAMJcmAftJqJhtyYclvq5utiPYPkfvRNGWZ9wzIEqyAZt"}]},"_npmUser":{"name":"abdullah2993","email":"a.saleem2993@gmail.com"},"directories":{},"maintainers":[{"name":"abdullah2993","email":"a.saleem2993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/expression-parser_1.1.4_1644386787296_0.1922242597992192"},"_hasShrinkwrap":false},"1.1.5":{"name":"@abdullah2993/expression-parser","version":"1.1.5","description":"An expression evaluator written in typescript with the goal to support SQL like WHERE clauses.","main":"dist/index.js","scripts":{"build":"tsc","lint":"tsc --noEmit && eslint --quiet --fix","test":"jasmine-ts --config=jasmine.json","coverage":"nyc -r text -e .ts -x \"tests/*.spec.ts\" npm run test","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/abdullah2993/expression-parser.git"},"author":{"name":"abdullah2993"},"license":"MIT","bugs":{"url":"https://github.com/abdullah2993/expression-parser/issues"},"types":"dist/index.d.ts","keywords":["parser","expression","filters","expression-evaluator","whereclause","where","conditions","where clause","where-clause","ast","sql where"],"homepage":"https://github.com/abdullah2993/expression-parser#readme","devDependencies":{"@types/jasmine":"^3.8.2","@typescript-eslint/eslint-plugin":"^4.29.0","@typescript-eslint/parser":"^4.29.0","eslint":"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-config-airbnb-typescript":"^12.3.1","eslint-plugin-import":"^2.23.4","jasmine":"^3.8.0","jasmine-ts":"^0.4.0","nyc":"^15.1.0","ts-node":"^10.1.0","typescript":"^4.3.5"},"gitHead":"609797b405d7687457ea685d986f8b1e5bb120b4","_id":"@abdullah2993/expression-parser@1.1.5","_nodeVersion":"15.13.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-+QRK9ZEHQsOhjnvpc2CLevCtJQjvE3yensXWZ/RcISHKOZWQJ+iAlpMBF5ZT54t5x7YZHC5w3VlC+ByJBDKciA==","shasum":"a849e89d2d2775410083101a9150b096111fec4b","tarball":"https://registry.npmjs.org/@abdullah2993/expression-parser/-/expression-parser-1.1.5.tgz","fileCount":15,"unpackedSize":36161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA1tTCRA9TVsSAnZWagAA12QP/1rc5ULNxploincCrav+\n1VFjoL06HiWr44KZ2C7pjRTm/26RGLWV1j6ptR01fUTG0cuVB/0pqt4Acduj\nFwfnLLJ3CVR6jobMJuzgSobJiHXJhySMXjal4+BlAXH0kkk+B6YQACx8ePma\nPUWqYecTN3i6DdId0o7XoU1HvNm1vzHdwYy7gkS0huNt5RJk3D1AdMWy6ToG\nVQq4CLGP/kN/6Z0+WObgQKv/o0w0BmVo0KVPUjz0yUI0hc2KO3x72UKx+fj5\njQ/sjakKduwR9ELDNG4G3ggZ6QxdDnDiG5EX7cXbaGQZTRnBa5zLdIP/fA75\ncvPwY4lQRut1sy1Z30rS03NikPcUSZzRt3x+rJWCtnFiTO6/ELxLEU9I9xWk\n9ha9D3JQ5qve240DZOSsDCI8qcYsSG50jUg8vuCAp+5gQ42rOmUqEqYcbRqS\newrDyA86sAWKqQkcd1BbTU/5jvbvPNziDq5p5t9AbgnSU9K7yaX0l85oxMtg\nmumN65cMh/prjeQhL/WhBM7Dp/UStn+o1EATIR4q+697ouQI2QkOsxT2dN62\nxEo4tHwXJWhtZPWId+Tq8XA7hbxiGIumEv1gFj14k+8ncma3oqaJDyYXuIQ8\n4btplUIXsb7uvTAnUg6h7wW+3nDj7QRDNJWUhJNNNZjTzI9nbgCrdXKr7cm9\nLEXL\r\n=+Vmi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+T8QshnOLclZdHFpi0ZHxV2/bLmfh+ut/i/MDBS/0ZAIhAOd4i52OLucrhyFASJSkY5Bh5YfCob6419J5OVmmeZ+S"}]},"_npmUser":{"name":"abdullah2993","email":"a.saleem2993@gmail.com"},"directories":{},"maintainers":[{"name":"abdullah2993","email":"a.saleem2993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/expression-parser_1.1.5_1644387154974_0.7655484205916046"},"_hasShrinkwrap":false}},"time":{"created":"2021-08-11T19:18:49.915Z","1.0.0":"2021-08-11T19:18:50.103Z","modified":"2022-04-04T10:58:38.811Z","1.1.0":"2021-08-11T21:08:25.989Z","1.1.1":"2021-08-22T13:16:22.243Z","1.1.3":"2022-02-08T07:17:13.454Z","1.1.4":"2022-02-09T06:06:27.424Z","1.1.5":"2022-02-09T06:12:35.181Z"},"maintainers":[{"name":"abdullah2993","email":"a.saleem2993@gmail.com"}],"description":"An expression evaluator written in typescript with the goal to support SQL like WHERE clauses.","homepage":"https://github.com/abdullah2993/expression-parser#readme","repository":{"type":"git","url":"git+https://github.com/abdullah2993/expression-parser.git"},"author":{"name":"abdullah2993"},"bugs":{"url":"https://github.com/abdullah2993/expression-parser/issues"},"license":"MIT","readme":"# expression-parser [![Build](https://github.com/abdullah2993/expression-parser/actions/workflows/build.yaml/badge.svg)](https://github.com/abdullah2993/expression-parser/actions/workflows/build.yaml)\nAn expression evaluator written in typescript with the goal to support `SQL` like `WHERE` clauses.\n\n## Installation\n```\nnpm install --save @abdullah2993/expression-parser\n```\n\n## Supported Operations and Functions\n### Arithmetics\n- `+`\n- `-`\n- `*`\n- `/`\n### Comparison\n- `=`\n- `<>`\n- `>`\n- `>=`\n- `<=`\n### Logical\n- `and`\n- `or`\n### SQL\n- `IS NULL`\n- `IS NOT NULL`\n- `BETWEEN [NUMBER] AND [NUMBER]`\n- `CASE WHEN expression THEN expression [WHEN expression] [ELSE expression] END`\n### Functions\nCurrently only function that is evaluated is the `LENGTH(variable)` function but supports function calls at the parser level so it is fairly easy to add more `SQL` functions.\n\n## Examples\n```js\n\n/** Basic Math **/\nevaluate('1+2'));\n// 3\nevaluate('10 + 2 * 6'));\n// 22\nevaluate('100 * 2 + 12'));\n// 212\nevaluate('100 * ( 2 + 12 )'));\n// 1400\nevaluate('100 * ( 2 + 12 ) / 14'));\n// 100\n\n\n/** Basic Math With Variable Substitution**/\n\nconst context = {\n  a: 1, b: 2, c: 10, d: 6, e: 100, f: 12, g: 14,\n};\n\nevaluateObject('a+b', context));\n// 3\nevaluateObject('c + b * d', context));\n// 22\nevaluateObject('e * b + f', context));\n// 212\nevaluateObject('e * ( b + f )', context));\n// 1400\nevaluateObject('e * ( b + f ) / g', context));\n// 100\n\n/** Other Operations **/\nconst val: any = { a: null };\nevaluateObject('a is not null and length(a) between 4 and 10', val);\n// false\nconst val = { a: '123' };\nevaluateObject('a is not null and length(a) between 4 and 10', val);\n// false\nconst val = { a: '1234' };\nevaluateObject('a is not null and length(a) between 4 and 10', val);\n// true\nconst val = { a: '1234567890' };\nevaluateObject('a is not null and length(a) between 4 and 10', val);\n// true\nconst val = { a: '12345678901' };\nevaluateObject('a is not null and length(a) between 4 and 10', val);\n// false\nconst val: any = { a: 1, b: 1 };\nevaluateObject('a is not null and b is not null', val);\n// true\nevaluateObject('a is not null and b is null', val);\n// false\nconst val = { a: 1, b: null };\nevaluateObject('a is not null and b is null', val);\n// true\nconst val = { a: 1, b: 1 };\nevaluateObject('a=b', val));\n// true\nevaluateObject('a>b', val));\n// false\nevaluateObject('a<b', val));\n// false\nconst val = { a: 1, b: 2 };\nevaluateObject('a=b', val);\n// false\nevaluateObject('a>b', val);\n// false\nevaluateObject('a<b', val);\n// true\n\n```\n\n## Sample AST\n\n```json\n//Expression: a is not null and length(a) between 4 and 10\n{\n  \"operator\": \"and\",\n  \"left\": {\n    \"operator\": \"<>\",\n    \"left\": {\n      \"name\": \"a\",\n      \"type\": \"IdentifierExpression\"\n    },\n    \"right\": {\n      \"value\": null,\n      \"type\": \"ValueExpression\"\n    },\n    \"type\": \"BinaryExpression\"\n  },\n  \"right\": {\n    \"operator\": \"and\",\n    \"left\": {\n      \"operator\": \">=\",\n      \"left\": {\n        \"name\": \"length\",\n        \"args\": [\n          {\n            \"name\": \"a\",\n            \"type\": \"IdentifierExpression\"\n          }\n        ],\n        \"type\": \"FunctionCallExpression\"\n      },\n      \"right\": {\n        \"value\": 4,\n        \"type\": \"ValueExpression\"\n      },\n      \"type\": \"BinaryExpression\"\n    },\n    \"right\": {\n      \"operator\": \"<=\",\n      \"left\": {\n        \"name\": \"length\",\n        \"args\": [\n          {\n            \"name\": \"a\",\n            \"type\": \"IdentifierExpression\"\n          }\n        ],\n        \"type\": \"FunctionCallExpression\"\n      },\n      \"right\": {\n        \"value\": 10,\n        \"type\": \"ValueExpression\"\n      },\n      \"type\": \"BinaryExpression\"\n    },\n    \"type\": \"BinaryExpression\"\n  },\n  \"type\": \"BinaryExpression\"\n}\n\n```\n\n## Test Coverage\n```\n13 specs, 0 failures\nFinished in 0.069 seconds\nRandomized with seed 62175 (jasmine --random=true --seed=62175)\n--------------|---------|----------|---------|---------|-----------------------------------\nFile          | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s\n--------------|---------|----------|---------|---------|-----------------------------------\nAll files     |   93.24 |    83.33 |   92.73 |   93.19 |\n ast.ts       |   89.66 |      100 |      90 |      90 | 16-18\n evaluator.ts |      85 |    69.23 |     100 |   84.21 | 14,18,27,47-49,64\n lexer.ts     |   99.04 |       98 |     100 |   99.03 | 86\n parser.ts    |   89.89 |       70 |   89.47 |   89.41 | 83,91,103,121,133,137,144,181,184\n token.ts     |   97.06 |      100 |      75 |   96.97 | 44\n--------------|---------|----------|---------|---------|-----------------------------------\n```\n\n\n","readmeFilename":"README.md","keywords":["parser","expression","filters","expression-evaluator","whereclause","where","conditions","where clause","where-clause","ast","sql where"]}