{"_id":"@art-suite/art-fuzzy-search","_rev":"9-f016a8f44a86c123ccff9c17de23f4c6","name":"@art-suite/art-fuzzy-search","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@art-suite/art-fuzzy-search","version":"0.1.0","author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"license":"ISC","_id":"@art-suite/art-fuzzy-search@0.1.0","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"7f6351036258a9c58a14684230c6a1d10d75acc9","tarball":"https://registry.npmjs.org/@art-suite/art-fuzzy-search/-/art-fuzzy-search-0.1.0.tgz","fileCount":21,"integrity":"sha512-vTVzOYkHOhYP2lPWFphDw8fvKvKuOOh8V+i/UwR3YS3wXj2+k79ButEARTBEj/BKKXGUw4uo2KCVepJYZuCA/w==","signatures":[{"sig":"MEQCIDQ50Tn8m6DXNdrSv0Lr7kMgFgsYNpefnDCRH1bDDErOAiAfBaKK/UWcwkLyalbpw8n5eZFEOPk0fYIJgCtJ6fPz6A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9543},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"]},"watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"scripts":{"nn":"nn build/* ","test":"npm run nn\njest","build":"cd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build\ncd ..\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","watch":"npm-watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\ncd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build-temp\ncd ..\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"7.6.0","directories":{},"_nodeVersion":"14.17.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.71.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-fuzzy-search_0.1.0_1632442174174_0.7563398806610431","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@art-suite/art-fuzzy-search","version":"0.1.1","author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"license":"ISC","_id":"@art-suite/art-fuzzy-search@0.1.1","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"437e66e40029532d59107fc0843388f5852d3aee","tarball":"https://registry.npmjs.org/@art-suite/art-fuzzy-search/-/art-fuzzy-search-0.1.1.tgz","fileCount":22,"integrity":"sha512-YHs8qFx13LcBtvdZj5LelbDZDDGCp9nbM+gUIQ8YjB4x6QZDaSc+cpzLCrWzLKpSUHiU4qeQ+kBnIZoiHWTV2A==","signatures":[{"sig":"MEUCIHalBTvrKJjuqVifuDXMOXTL/dez0C83rK153Etm60sGAiEA1UcKEAJQ1KNuWQ0ohLw4OK/+Cu18Og/Xbl3EBv95Ffg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9579},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"]},"watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"scripts":{"nn":"nn build/* ","test":"npm run nn\njest","build":"cd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build\ncd ..\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","watch":"npm-watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\ncd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build-temp\ncd ..\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"7.6.0","directories":{},"_nodeVersion":"14.17.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.71.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-fuzzy-search_0.1.1_1632448627042_0.12113108696421682","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@art-suite/art-fuzzy-search","version":"0.1.2","author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"license":"ISC","_id":"@art-suite/art-fuzzy-search@0.1.2","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"abfa9cf7bcec94ef4fed3fe161d96e4a6ea0a1a3","tarball":"https://registry.npmjs.org/@art-suite/art-fuzzy-search/-/art-fuzzy-search-0.1.2.tgz","fileCount":23,"integrity":"sha512-YG0sGV7R05hDexA2mVtrKyzdb4/NUEAzAwbhkfYsE3nvED1+wCAbvvgQ75vPANj3Da13nGxckknjgy2wofAmvw==","signatures":[{"sig":"MEYCIQDvSjqzjz5gDnHHc3QqJHTt9P4ltZdXpVrz77x9N0W7RQIhAKxw0aEpvnFABupDKMuzbmxIkuxZQQlpUV1+Uzrw5WDj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13047},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"]},"watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"scripts":{"nn":"nn build/* ","test":"npm run nn\njest","build":"cd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build\ncd ..\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","watch":"npm-watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\ncd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build-temp\ncd ..\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"7.6.0","description":"Easy, fast, fuzzy text search.","directories":{},"_nodeVersion":"14.17.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.71.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-fuzzy-search_0.1.2_1632786654962_0.5854978421698465","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@art-suite/art-fuzzy-search","version":"0.1.3","author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"license":"ISC","_id":"@art-suite/art-fuzzy-search@0.1.3","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"d900cfd088a53926484298be5700ad50e921538e","tarball":"https://registry.npmjs.org/@art-suite/art-fuzzy-search/-/art-fuzzy-search-0.1.3.tgz","fileCount":23,"integrity":"sha512-ITFgW0ySvn6eXTNVSG5FXREzmUfwfLu0sJCF0X/N4LBAq0XwGIcMAUc7KdYAM4lekJjmFV6mF0OPxee48kkscg==","signatures":[{"sig":"MEQCIHj0ftANvtxwbmfnUvHgPJv7GuTKkii+uCg+WC0gLypLAiBdVDDBuWUB4RA0DNFIxcpg3M2jQt7sjh35k0gns9YbUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14677},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"]},"watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"scripts":{"nn":"nn build/* ","test":"npm run nn\njest","build":"cd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build\ncd ..\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","watch":"npm-watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\ncd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build-temp\ncd ..\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"7.6.0","description":"Easy, fast, fuzzy text search.","directories":{},"_nodeVersion":"14.17.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.71.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-fuzzy-search_0.1.3_1634158286285_0.4218953759043078","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@art-suite/art-fuzzy-search","version":"0.1.4","author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"license":"ISC","_id":"@art-suite/art-fuzzy-search@0.1.4","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"dee7546ac7f4488707e085611f8ccbc128478ad0","tarball":"https://registry.npmjs.org/@art-suite/art-fuzzy-search/-/art-fuzzy-search-0.1.4.tgz","fileCount":23,"integrity":"sha512-8T9/P3P/ZhDllQWrkH3+K1u/hbMqPbnym2DfWgRgOT6x8WQZf4ZqY2KuGR8k5XSVsOF+iGL6+gWvJvJQJPGpUw==","signatures":[{"sig":"MEUCIDMAug0kybbfmO3VjpUbXubiLooEnN04gisvIjjqhQe5AiEA6QzjmcQ3U0tNcc5VsgedOZ5IzQ98nqKzVv+PPlPHsmY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14891},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"]},"watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"scripts":{"nn":"nn build/* ","test":"npm run nn\njest","build":"cd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build\ncd ..\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","watch":"npm-watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\ncd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build-temp\ncd ..\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"7.6.0","description":"Easy, fast, fuzzy text search.","directories":{},"_nodeVersion":"14.17.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.71.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-fuzzy-search_0.1.4_1634158527284_0.025562854849779937","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"@art-suite/art-fuzzy-search","version":"0.1.5","author":{"name":"Shane Brinkman-Davis Delamore, Imikimi LLC"},"license":"ISC","_id":"@art-suite/art-fuzzy-search@0.1.5","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"a99f6be1fb0b6a19dabc9ac8bf4e1007a5065150","tarball":"https://registry.npmjs.org/@art-suite/art-fuzzy-search/-/art-fuzzy-search-0.1.5.tgz","fileCount":23,"integrity":"sha512-4aiDBttSfRlqsMtp8qx4sy8daF49fpItDZ/UOLSLPfHyNQChyz8VPePgAQz1/cpYrOQ0CudxQ1Xs6PBnx9D8yw==","signatures":[{"sig":"MEUCIQDY28OAibJlCVJBLcHO8Ysm5T20/sIHZGuFtmbu9kDwMQIgV4YXNbw30qzrsKbDsUL5KsARTyfD6eCpEyFjK2Go7wQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14898,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzF6TCRA9TVsSAnZWagAAs0QP/3dAvcA4NHc3IJW/1Gck\n3N8r4U32/1O5s48wfIv/X2hrfWgsV+SwNso4MelqBXfSihhHo6IEZ3LVNDuF\n373aiX6QwpGdv0f9HRPJumDgjYGRxFxJNMKeTMGxvp4qJbvJhDt152mokI/9\nVz1Q1b30XfkcDrBmZT+VUounmIJ90Xnef4dT4WwFsEs+6bqThQtULsMAj3nw\n78dqaio0Wi+gvXsBeHCoFaAbZG6kAbAMvmTCEOv1aBimO6T77MdXhNcKdyyt\nc80b1yDrFe2OC4cio31ZmaxyrWmugsjgXkMq6FxXtRjmVr5BsW1GSGJ2ySq4\ndKrt88ZpxWVvpJoLbYuKTGuXkwtUnKWlJou45RbiTMl1lq9RRqb2edE6vVnY\neNAxoTNSLyQO4Mtjh1ywGObbmegY/mjrVfCiHjsM8SHyJgZWK4eJesdLHhY5\nmJ5tNQjpaY8FWs/EIEQ6aJYXzHUmFxqeysPtpeqljkXrz2Fjszw/ZNYn64I/\nnRM+uRaW4zs/T3DhS2uhI9Xxb92oD1mGiMojw69pGGafLmGWUcwx2cnki9Qo\nhXt5yBAPanZHnJv91H74Rdb2zcdY8jxHVUKXYEX896npiKAGYmYNCL+h5wEb\n4vtAEreEqDK6vhEAkAVEPPoU3jYYWnKplR/SALr/PvisSj1qGMB+3vyYnSaG\nbd/p\r\n=gJqH\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"]},"watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"scripts":{"nn":"nn build/* ","test":"npm run nn\njest","build":"cd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build\ncd ..\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","watch":"npm-watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\ncd source\nfind . -name '*.js' -o -name '*.css' | cpio -vpdm ../build-temp\ncd ..\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"7.6.0","description":"Easy, fast, fuzzy text search.","directories":{},"_nodeVersion":"14.17.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.71.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-fuzzy-search_0.1.5_1634158616859_0.030687435489573867","host":"s3://npm-registry-packages"}},"0.1.6":{"author":{"name":"Shane Brinkman-Davis Delamore"},"bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dependencies":{"art-standard-lib":"^1.74.4","stable":"^0.1.8"},"homepage":"https://github.com/art-suite/art-suite-foundations","jest":{"collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"coveragePathIgnorePatterns":["/index.js$","/namespace.js$"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","<rootDir>/test"],"verbose":true},"license":"ISC","name":"@art-suite/art-fuzzy-search","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-foundations.git"},"scripts":{"build":"rsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build\nnpm run nn","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\nrsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__","build-watch":"nodemon -e js,ts,jsx,tsx,caf,coffee,json -x npm run build","clean":"rm -rf build/*","nn":"nn build/* ","test":"npm run build\njest","test-watch":"jest --watch"},"version":"0.1.6","watch":{"build":{"extensions":["caf"],"patterns":["source"],"quiet":false}},"gitHead":"3140bf828cabdf379d7c25fc877c26c1608c2409","_id":"@art-suite/art-fuzzy-search@0.1.6","description":"Easy, fast, fuzzy text search.","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-uCLDwF/iok7Tw/eV8/OnNR56imqpD6gQpwpoOHy8l8YoMICWRgOCfAO0jgZnyG+oVgkWsxNaMpNnnpPaTzEfHg==","shasum":"a85497f0cc4befd88860d169245b2a87f1b77bb2","tarball":"https://registry.npmjs.org/@art-suite/art-fuzzy-search/-/art-fuzzy-search-0.1.6.tgz","fileCount":23,"unpackedSize":15507,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIClhcu4jGDEbP9+YFYDgkpr7QrSBSoqPlRMPbYPSUrwFAiAm1dc6nlXT362M6uJlzagSMKWGX1YQK87WFWgoXMQkVA=="}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/art-fuzzy-search_0.1.6_1762507601873_0.2498456135911229"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-24T00:09:34.106Z","modified":"2025-11-07T09:26:42.242Z","0.1.0":"2021-09-24T00:09:34.335Z","0.1.1":"2021-09-24T01:57:07.227Z","0.1.2":"2021-09-27T23:50:55.125Z","0.1.3":"2021-10-13T20:51:26.448Z","0.1.4":"2021-10-13T20:55:27.403Z","0.1.5":"2021-10-13T20:56:56.996Z","0.1.6":"2025-11-07T09:26:42.058Z"},"bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"author":{"name":"Shane Brinkman-Davis Delamore"},"license":"ISC","homepage":"https://github.com/art-suite/art-suite-foundations","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-foundations.git"},"description":"Easy, fast, fuzzy text search.","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"readme":"# ArtFuzzySearch\n\nEasy, fast, fuzzy text search.\n\nThe primary use-case for ArtFuzzySearch is to quickly filter a list of items as you type, and to do it in flexible way so you catch odd spellings and type-os and other inconsistencies. The key to success is speed and, together with a good UX, interactively showing the results as the user types and edits their search string.\n\n> It works similar to VSCode and SublimeText's file-search. The order of the letters matter, but there can be missing letters or skipped letters.\n\n\n# Example\n\nBasic example:\n\n```javascript\nlet {fuzzySearch} = require(\"@art-suite/art-fuzzy-search\");\n\nlet result = fuzzySearch(\n  \"sord\",     // searchString\n  [           // searchData\n    \"Sally Ford\",\n    \"John Goodall\",\n    \"Swordmaster Smith\"\n  ]\n)\n\n/*\nresult: [     // filtered and sorted searchData\n  \"Swordmaster Smith\",\n  \"Sally Ford\"\n];\n*/\n\n```\n\nMore complex example:\n\n```javascript\nlet {fuzzySearch} = require(\"@art-suite/art-fuzzy-search\");\n\nlet result = fuzzySearch(\n  \"fz\",       // searchString\n  [           // searchData\n    [\"I love food\"],\n    \"fz - just a string is OK too\",\n    [\"I find pizza appealing\", 123, true],\n    [\"I fuzzbuzz\", \"any extra data\", \"is returned unchanged\"]\n  ]\n)\n\n/*\nresult: [     // filtered and sorted searchData\n  \"fz - just a string is OK too\",\n  [\"I fuzzbuzz\", \"any extra data\", \"is returned unchanged\"],\n  [\"I find pizza appealing\", 123, true]\n];\n*/\n\n```\n\n# API\n\n```javascript\nlet {fuzzySearch} = require(\"@art-suite/art-fuzzy-search\");\n\nfuzzySearch(searchString, searchData) => filteredAndSortedSearchData\n```\n\n- **IN**: `(searchString, searchData)`\n\n  - searchString: an String to search for\n  - searchData: `[searchDataRecord, ...]` (an Array of searchDataRecords)\n\n- **OUT**: searchData, filtered and sorted by best-matches\n\n- **searchDataRecord**: `[searchInString, arbitraryData...]`\n  - searchDataRecords can be just a searchInString or an array\n  - only the first element is used by fuzzySearch\n  - searchInString: arbitrary String which is tested to see if it matches the provided searchString; the quality of the match is also considered and used for the final sort of the returned searchData\n  - arbitraryData: if searchInString matches, the entire searchDataRecord will be returned, untouched - including any arbitrary data included after searchInString. Use these additional slots to pass through any additional data you need. e.g. a JSON object of the record or just the record's ID.\n\nNote that fuzzySearch is very forgiving. The only requirement for a match is that the characters of the searchString exist in the searchInString (case insensitively), in the same order, but possibly with any number of characters in between:\n\n> Example: If searchString == 'dog', then the string \"I did a lot of great work.\" *will match*: \"I **D**id a l**O**t of **G**reat work.\"\n\nThe key is the results will be sorted based on the quality of the match - best match first. The main sorting criterias is the length of the match. Sorter matches are preferred. For more details, see the [Algorithm Notes](#algorithm-notes) below.\n\n# Algorithm Notes\n\nBasic algorithm:\n\n1. Filter out all search-texts that don't match:\n    - all letters from the search string must be present and in the same order in the search text\n    - However, they don't have to match case and they can optionally match search-text with extra characters in between. e.g. \"fz\" will match \"Fun zoo\" since \"f\" and \"z\" are in order even though \"un \" is in between.\n2. Sort the results by result-quality which is determined by\n    - length of match; shorter is preferred\n    - case sensitive matches are preferred\n    - matches closer to the beginning of the search-text are preferred\n","readmeFilename":"README.md"}