{"_id":"@djuleayo/vscfuzzysearch","_rev":"3-c02a1a9136de49fc31178db7b7d9d9a6","name":"@djuleayo/vscfuzzysearch","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@djuleayo/vscfuzzysearch","version":"0.0.1","description":"VSCode alike fuzzy search","keywords":["fuzzy","search","vscode"],"author":{"name":"Jovanovic Andrej"},"types":"vscFuzzySearch.d.ts","main":"vscFuzzySearch.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"license":"ISC","gitHead":"da06dd0f0161a2a84b1805167e4cfe5dba4680a4","_id":"@djuleayo/vscfuzzysearch@0.0.1","_nodeVersion":"20.4.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-9nesc0KV7eDHtmOJshTtpVci5rKOtVmD6/jxYhQFQkXxDv5x62NAT2BDTbeAT6prz4cRJUkBgDdytVRDWgTAmA==","shasum":"9e1dc991f0725db8a96d2b3c3e31e33efe275d4a","tarball":"https://registry.npmjs.org/@djuleayo/vscfuzzysearch/-/vscfuzzysearch-0.0.1.tgz","fileCount":8,"unpackedSize":10042253,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHE5kdmMgdgtW7OQhpGMkWBOqHDnAsSDoFQAfFcLZu5QIgbTx9ooCV5i5qRwMBUgMAdMHavGuJWwJF0XbQd9UV7P0="}]},"_npmUser":{"name":"djuleayo","email":"djuleayo@gmail.com"},"directories":{},"maintainers":[{"name":"djuleayo","email":"djuleayo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vscfuzzysearch_0.0.1_1707575174701_0.7198897605880925"},"_hasShrinkwrap":false},"0.0.2":{"name":"@djuleayo/vscfuzzysearch","version":"0.0.2","description":"VSCode alike fuzzy search","keywords":["fuzzy","search","vscode"],"author":{"name":"Jovanovic Andrej"},"types":"vscFuzzySearch.d.ts","main":"vscFuzzySearch.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"license":"ISC","gitHead":"da06dd0f0161a2a84b1805167e4cfe5dba4680a4","_id":"@djuleayo/vscfuzzysearch@0.0.2","_nodeVersion":"20.4.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-rlWbY6qNbW1psHc1Hgx7t6h2EfmOqLZgMp/en+yr6PIGjSb7p6BZMhdEMR6JPD4Q1QbMno2mvBlTuSgvbe29VA==","shasum":"db100f0d99a323eeb88a9cafca60f59bab4025a9","tarball":"https://registry.npmjs.org/@djuleayo/vscfuzzysearch/-/vscfuzzysearch-0.0.2.tgz","fileCount":8,"unpackedSize":10042253,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDm0PuHu7UQRKFCdtBSBDjbV+jwJ3bEPdhpZDVp7A8PVgIhAPNsDyJXO6NjvahlS31n8FIU6CfjHEJvlbs3+ih7rPWS"}]},"_npmUser":{"name":"djuleayo","email":"djuleayo@gmail.com"},"directories":{},"maintainers":[{"name":"djuleayo","email":"djuleayo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vscfuzzysearch_0.0.2_1707575270342_0.5135513012489299"},"_hasShrinkwrap":false},"0.0.3":{"name":"@djuleayo/vscfuzzysearch","version":"0.0.3","description":"VSCode alike fuzzy search","keywords":["fuzzy","search","vscode"],"author":{"name":"Jovanovic Andrej"},"types":"vscFuzzySearch.d.ts","main":"vscFuzzySearch.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"license":"ISC","gitHead":"da06dd0f0161a2a84b1805167e4cfe5dba4680a4","_id":"@djuleayo/vscfuzzysearch@0.0.3","_nodeVersion":"20.4.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-wcU3rvxOd8QhrXi+qjwyVjNRWfMZe1NgIfGfkGLv/Q95HRZTV+xvJEOR63tdXpMhJAThFWDvU58Hh43iHp8U5w==","shasum":"023253c5c207e539fcf457011bf3293df0b2b38b","tarball":"https://registry.npmjs.org/@djuleayo/vscfuzzysearch/-/vscfuzzysearch-0.0.3.tgz","fileCount":8,"unpackedSize":10042310,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBPj/qNuX8PIBKa5d39qUbpA0KWV6gLmCukyH+FRAkqdAiEA/2m0uGGr5ne7Hi+WVaiwaeHT+dOEIyFzTYEmdwT307A="}]},"_npmUser":{"name":"djuleayo","email":"djuleayo@gmail.com"},"directories":{},"maintainers":[{"name":"djuleayo","email":"djuleayo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vscfuzzysearch_0.0.3_1707576134882_0.8750617095658402"},"_hasShrinkwrap":false},"0.0.4":{"name":"@djuleayo/vscfuzzysearch","version":"0.0.4","description":"VSCode alike fuzzy search","keywords":["fuzzy","search","vscode"],"author":{"name":"Jovanovic Andrej"},"types":"vscFuzzySearch.d.ts","main":"vscFuzzySearch.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"license":"ISC","gitHead":"da06dd0f0161a2a84b1805167e4cfe5dba4680a4","_id":"@djuleayo/vscfuzzysearch@0.0.4","_nodeVersion":"20.4.0","_npmVersion":"9.7.2","dist":{"integrity":"sha512-3joWmDOLph+QURAH+nXRa2ywKKNlo+GJmpaWidAj7UwzULoWtbDW9vCqY1Y2UE3ZByR3f59i7qDJhS+qcPlh+w==","shasum":"be9c187a3bf1a65e47cb6d7ac4d160468fcd2ad9","tarball":"https://registry.npmjs.org/@djuleayo/vscfuzzysearch/-/vscfuzzysearch-0.0.4.tgz","fileCount":8,"unpackedSize":10042311,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7AbbsbaAddCEvL1sniKGXufdzIy6S5WYXbmxyN+xAgQIgIOKWT5DNfQ+Ni7j4/HR9lIxgUX+ocKeMXwWakNnvuuU="}]},"_npmUser":{"name":"djuleayo","email":"djuleayo@gmail.com"},"directories":{},"maintainers":[{"name":"djuleayo","email":"djuleayo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vscfuzzysearch_0.0.4_1707576234866_0.2945523921822031"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-10T14:26:14.623Z","0.0.1":"2024-02-10T14:26:15.120Z","modified":"2024-02-10T14:43:55.483Z","0.0.2":"2024-02-10T14:27:50.663Z","0.0.3":"2024-02-10T14:42:15.227Z","0.0.4":"2024-02-10T14:43:55.272Z"},"maintainers":[{"name":"djuleayo","email":"djuleayo@gmail.com"}],"description":"VSCode alike fuzzy search","keywords":["fuzzy","search","vscode"],"author":{"name":"Jovanovic Andrej"},"license":"ISC","readme":"# VSC Fuzzy\n\nThe package provides string search where query can be decomposed into multiple\nparts, where each part is prefix of a word in matched string.\nThe words of what the package does sound complicated so let the videos speak.\n\n**the package**\n\n![https://imgur.com/kYZfrhL](https://i.imgur.com/kYZfrhL.gif)\n\n**vscode**\n\n![https://imgur.com/6L9UjP3](https://i.imgur.com/6L9UjP3.gif)\n\n## Simplicity\n\nNo scoring functions. Simply a search resulting in matches.\n\n```ts\n\ntype Search = (query: string, searchSpace: string[]) =>  Match[];\n\n/** This is part of your query accepted as prefix of a word */\ntype Part = string;\n\ntype Decomposition = Part[];\ntype Match = {\n  /** Results in indexes of passed searchSpace so you can map back source of the string */\n  index: number\n  \n  /** Startig indexes of each part of decomposition in the result. \n   * These can be used as a scoring function IE  Min sum partIndexes \n   */\n  partIndexes: number[]\n  //from videos: \"caeg\" is decomposed into [\"c\", \"a\", \"e\", \"g\"]\n  decomposition: Decomposition\n}\n\n//here is why indexes are returned\nconst myObjects = [...]\n\nconst res = search('query', myObject.map(descriptionAccessor))\n```\n\n## Alghorithm\n\nThe implementation does incremental itteration over query letters\ndiscontinuing each decomposition that yields no results in each step of itteration.\n\n## Roadmap - Paralelization\n\nFuture version of the packages may provide multi-core solution.\nThe function is easily paralelized on mulitple threads or can be sent to worker\nin browser env. Natural split is in sending each decomposition to search in a thread.\n\n## Differences\n\nDifferences in the video examples are:\n* number of results\n* order of results\nThese are due to:\n* mock data being limited\n* no scoring function applied to sort the results","readmeFilename":"README.md"}