{"_id":"@candis/mongo-selector-simplifier","_rev":"11-0f2076d2ea6065808c29c1cbb1fc6007","name":"@candis/mongo-selector-simplifier","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@candis/mongo-selector-simplifier","version":"0.1.0","description":"Algorithmic MongoDB selector simplifier","main":"lib/index.js","files":["lib"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/CandisIO/mongo-selector-simplifier.git"},"bugs":{"url":"https://github.com/CandisIO/mongo-selector-simplifier/issues"},"homepage":"https://github.com/CandisIO/mongo-selector-simplifier#readme","scripts":{"build":"babel src/ -d lib/ --ignore __tests__,__mocks__","prepublish":"npm run build","test":"jest","typecheck":"flow"},"keywords":["mongo","mongodb","query","selector","selector-simplifier","selector-simplification"],"author":{"name":"Florian Nagel","email":"florian@candis.io","url":"https://candis.io"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,json,css,md}":["prettier --write","git add"]},"jest":{"verbose":true,"testURL":"http://localhost/"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-jest":"^23.4.2","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-preset-env":"^1.7.0","babel-preset-flow":"^6.23.0","flow-bin":"^0.77.0","husky":"^1.0.0-rc.13","jest":"^23.4.2","lint-staged":"^7.2.0","prettier":"1.13.7","regenerator-runtime":"^0.12.0"},"gitHead":"7c4ffb4c4d8fd5d45d95d3dd75819a9e0c1f896a","_id":"@candis/mongo-selector-simplifier@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"floriannagel","email":"hello@floriannagel.net"},"dist":{"integrity":"sha512-Oftb5LiCuky02GlSUxi1L56udUK335NHedx6jl16EVFVTaH/YzYei8QcBu478UT9cYcJtIQrLr49jR1Uc1FXmA==","shasum":"03a5636de6bf1f814a898c82b78c6c85c4fe68c5","tarball":"https://registry.npmjs.org/@candis/mongo-selector-simplifier/-/mongo-selector-simplifier-0.1.0.tgz","fileCount":11,"unpackedSize":25872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbZcMeCRA9TVsSAnZWagAADcwP/RL/6Mz9qSg1x813/ou9\nWjGM1lvKVoEOr5cW4O9d3K7mVebVej7et9hrip27bMgjeQiK1WKUAMlu8u90\nAy2jlH8fj3yXGlSVe65IoTrzEq519xtxjcS8xj5ZRGZZ+HyNkGSxTE7AJIiX\ndbbj7bcs+QGtTGvydejUdLEGannxwVPkONsBgtxy/OClflzyRKCblRH9Lqki\ndRSlIBCi/nQlnbP/S8NxKYCKxQPeSALmWkFdE1ku6V/cVkL6T1k8qootkcXZ\nu4vc8WMnXRgF1YKoDcPTTbNVffusQ+ZPf2cpGs2b1pLFtAKE/51dQqFlLYOK\nxCMBHHum/T0m1yxiGAKnaECeDd2vvTHGbCfcvE3PyEY4dStFnoEcmgsPc0Cx\nEDdCD3d9vqfTj5WebkBwphEDzg9EEtCZTef07i/H0QIWTmKoaM/nLLl8+MoM\nzLy42IET0GSsFt25xuIq3zOkeYG8n0LMVTAIdB/uuc9oQ0g3TfxekhlIh7BD\nna/1EFStx+u8+EOmT+TW+BoN9Dsl1vYWBuCWbIKWMqqCqTsKLwg8XIw5AzI/\nnsYSqi1RrhrUtxzJsYuX7gHJmlN2g/2Xl5NbuxHU/WtPr9NVSa8ZXWevFuy6\nZm/tb4tEKXcIMdlzcEKhj05DzSalBvKKErPVBH0W3mCieFW8JziP7ynH5V9F\nRjPx\r\n=XFYO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKlyW+66cBCnVT4x8X3VcJooIBRk4OPm7Ak4HixsNYFAIgHtvX9TWw1xvTzv8TRQUY6cbTFe3iBf3vXqEN8wD0+1o="}]},"maintainers":[{"name":"floriannagel","email":"hello@floriannagel.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mongo-selector-simplifier_0.1.0_1533395741955_0.10859970944041786"},"_hasShrinkwrap":false},"0.1.1":{"name":"@candis/mongo-selector-simplifier","version":"0.1.1","description":"Algorithmic MongoDB selector simplifier","main":"lib/index.js","files":["lib"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/CandisIO/mongo-selector-simplifier.git"},"bugs":{"url":"https://github.com/CandisIO/mongo-selector-simplifier/issues"},"homepage":"https://github.com/CandisIO/mongo-selector-simplifier#readme","scripts":{"build":"babel src/ -d lib/ --ignore __tests__,__mocks__","prepublish":"npm run build","test":"jest","typecheck":"flow"},"keywords":["mongo","mongodb","query","selector","selector-simplifier","selector-simplification"],"author":{"name":"Florian Nagel","email":"florian@candis.io","url":"https://candis.io"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,json,css,md}":["prettier --write","git add"]},"jest":{"verbose":true,"testURL":"http://localhost/"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-jest":"^23.4.2","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-preset-env":"^1.7.0","babel-preset-flow":"^6.23.0","flow-bin":"^0.77.0","husky":"^1.0.0-rc.13","jest":"^23.4.2","lint-staged":"^7.2.0","prettier":"1.13.7","regenerator-runtime":"^0.12.0"},"gitHead":"85d25317b522cb1eb8e9843cba8759770ceb3d32","_id":"@candis/mongo-selector-simplifier@0.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"floriannagel","email":"hello@floriannagel.net"},"dist":{"integrity":"sha512-OlndAYFdESxUc/n/OvvjK6GRP9zuW0HVNJRWy4GDgPxX5+AH0HEbrxle1ZaKeDMf2y6JSqfOL1/XVPZXVGuRDQ==","shasum":"55b3e0ea02a7f9c412333f61e84b003ee69f16e4","tarball":"https://registry.npmjs.org/@candis/mongo-selector-simplifier/-/mongo-selector-simplifier-0.1.1.tgz","fileCount":11,"unpackedSize":26009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbqPXCRA9TVsSAnZWagAAWxsP/1lVFRtIhhHNSFrR2T/n\nO76SGI9Z25VDYwVv6pGF5Wh0LjJNnd/tzhRha5aJCZJyI2aWrVhT28adRKHj\nzputHyEULn0Z90eAYRW0liGfPP3ehs3G5g4AuAfdkw27OLLZZCHd/vDZLdM5\nrsIQIyvYpYl8ha+a1zAde2iMfVwykGdHZgt2H0qcq0IY4wm5QzWBA8D/CRQS\nYYqZK3/INZLijgnk+IerG3u64XFOWrXikFSBeEvzY1IHfNlUtDP0/q1FKRe6\nVCOLSEZZvsJlMGO4HmQBlAl5YcG4ApJUXkOTcA6NfgBTTFIxaUCVVM510th6\n1wnFFwt0AdhbgdeR/adSycmig+CfKKHPSaAS/bbZR7684wAUtwog2eldnd2D\nL3UscS09BWkS9mXoi8h3x1dcMgTeIV237Io1afEf6cZ0SvkCE/nNguFfwdCS\n1i97u/o4pbh5UZjNRR71fvEz6JMBcbdpQ0H4rjLt7WnVbOpDxM8WZYLb2vBU\nuNKRa3RdQMW/5Y1h+5Atzgq2GVkEv3+ZHH1pVKhQH7fXhCpT+V/of0HTbtMW\neWCeIXqFFjDYIbz3gjMQJe3vHaK9y9qWzNCyBeYV+yqT6e2ncNa9ifWMJVwi\n2ATcyDlWe/z0tIZZYA89gcCxzA5XxP4Kc5CfAnTH1Lh/Cp5ZQTfVrEGuTfGX\nKGVy\r\n=Y3Xi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDV7/PbbGUerhJc366NC+P7jKZFmKn3bwPkvFYI1EVC0AiEA9JvXhpmtLVp2n+FiGIiiNr6gf7Vc96cDId2AZZWO83U="}]},"maintainers":[{"name":"floriannagel","email":"hello@floriannagel.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mongo-selector-simplifier_0.1.1_1533977558586_0.06478437538432869"},"_hasShrinkwrap":false}},"time":{"created":"2018-08-04T15:15:41.719Z","0.1.0":"2018-08-04T15:15:42.081Z","modified":"2022-04-04T21:36:37.737Z","0.1.1":"2018-08-11T08:52:38.698Z"},"maintainers":[{"email":"lars@candis.io","name":"larsboehnke"},{"email":"christoph@candis.io","name":"cmrhdl"},{"email":"hrayr@candis.io","name":"hhrayr"},{"email":"pritoj@candis.io","name":"pritoj_candis"}],"description":"Algorithmic MongoDB selector simplifier","homepage":"https://github.com/CandisIO/mongo-selector-simplifier#readme","keywords":["mongo","mongodb","query","selector","selector-simplifier","selector-simplification"],"repository":{"type":"git","url":"git+https://github.com/CandisIO/mongo-selector-simplifier.git"},"author":{"name":"Florian Nagel","email":"florian@candis.io","url":"https://candis.io"},"bugs":{"url":"https://github.com/CandisIO/mongo-selector-simplifier/issues"},"license":"MIT","readme":"# Mongo Selector Simplifier [![CircleCI](https://circleci.com/gh/CandisIO/mongo-selector-simplifier/tree/master.svg?style=svg)](https://circleci.com/gh/CandisIO/mongo-selector-simplifier/tree/master) [![npm](https://img.shields.io/npm/v/@candis/mongo-selector-simplifier.svg)](https://www.npmjs.com/package/@candis/mongo-selector-simplifier)\n\nReduce MongoDB selector query complexity using the commutative, associative and\ndistributive laws by de-separating nested clauses. The output can often times\nhelp MongoDB's query planner to chose the best index.\n\n## Install\n\n```\nnpm install --save @candis/mongo-selector-simplifier\n```\n\nor\n\n```\nyarn add @candis/mongo-selector-simplifier\n```\n\n## Usage\n\n```js\nimport { simplify } from \"@candis/mongo-selector-simplifier\";\n\nconst selector = {\n  $and: [\n    { name: { $in: [\"Rey\", \"Leia Organa\", \"Padmé Amidala\", \"Jyn Erso\"] } },\n    { name: \"Rey\" }\n  ],\n  gender: \"Female\"\n};\n\nconst simplifiedSelector = simplify(selector); // outputs { gender: 'Female', 'name': 'Rey' }\n```\n\n## Credit\n\nOriginal work by @gsuess.\n\n## License\n\n`mongo-selector-simplifier` is [MIT licensed](./LICENSE).\n","readmeFilename":"README.md"}