{"_id":"@allemandi/embed-utils","_rev":"23-d205044a4b4d5ad3b447766374875776","name":"@allemandi/embed-utils","dist-tags":{"latest":"2.7.8"},"versions":{"1.0.0":{"name":"@allemandi/embed-utils","version":"1.0.0","keywords":["text","classification","cosine-similarity","embeddings"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@1.0.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"50e3e14a85ae892b030f673b80bef0e572cc8141","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-1.0.0.tgz","fileCount":12,"integrity":"sha512-G/5ASxIHlztVKgs6scFLzq+5FMMd07wCjRC8Iov7fgdI6IkkcHAazgkUV+TsHhUs0xuKvY7esbLCfbyi4kiOtA==","signatures":[{"sig":"MEYCIQDbmDB4m0eHjJShpb4nR7bsOthX1RJZh5PBadW1xKmAVAIhAOm5j3tCiRaJUCyorLJzslRc2Qxgn4X2CQ0HtkT6+/qK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5843},"main":"index.js","scripts":{"test":"jest"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_1.0.0_1748108660149_0.042269283084375164","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@allemandi/embed-utils","version":"1.1.0","keywords":["text","classification","cosine-similarity","embeddings"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@1.1.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"989ac829ccf496a5f971fbe49b686314a1782a25","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-1.1.0.tgz","fileCount":16,"integrity":"sha512-9LR50gmlNBVttF4mUKUu5EIIUfePKFSO11xNuxzT/lZw5xDXt3S+ogDBJWbgMP7Rb8KS+jcwb22UE3gj3A4JnA==","signatures":[{"sig":"MEYCIQCbVVYY8lrt/QZnrWCeH7IAuHLgEZKR84Pi12FPB+8A5wIhAIZn83FWy6EpcC0JlZhgvOiy+ZYiNKsgKljb6FvFgstp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8023},"main":"index.js","scripts":{"test":"jest"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_1.1.0_1748114109276_0.8237852802139782","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@allemandi/embed-utils","version":"2.0.0","keywords":["text","classification","cosine-similarity","embeddings"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.0.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"f28200cf3de81fd04beb52a0350a4584af16f6e8","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.0.0.tgz","fileCount":17,"integrity":"sha512-6x6DtQuABaYvqLA2apKCsj/EfzsMXTC5NiDh2rEDFdqyFL1jUIHYMlJRgbeXf68WiLQhcRWaIXXcRhRfISorog==","signatures":[{"sig":"MEQCIGoNvJN+h/ilTaJOJcaIfnZQ6JmvX5mG+NCmKpyx+dGeAiBT4WWtJ9I6N6DQ18OZDVXi+ecXecWsvM4R15T95VPIzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10278},"main":"index.js","scripts":{"lint":"eslint .","test":"jest"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"eslint":"^9.27.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","globals":"^16.1.0","@eslint/js":"^9.27.0"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.0.0_1748124960515_0.37337137705449663","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@allemandi/embed-utils","version":"2.1.1","keywords":["text","classification","cosine-similarity","embeddings"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.1.1","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"14042a65fa02cd70c04294faa8741adcba30268c","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.1.1.tgz","fileCount":11,"integrity":"sha512-yLDGEXAX3/J8rIRZ3R2C6VXCBTutRctVEa6fOnBT2DI0092o1qm6RD4fE2DdPrrwHCdOAS08uaKdDU8UA7A4HA==","signatures":[{"sig":"MEYCIQD0Npe6fYTOHvdQKk5sbJCWIpDzDS+GIf2lEevcCRrp2wIhAM0sagkPqIujX+YmQFFK1NH5/VyPoyhqEtMZ/1Wnzhbo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19333},"main":"dist/index.cjs","type":"module","module":"dist/index.module.js","source":"src/index.js","exports":{"import":"./dist/index.module.js","require":"./dist/index.cjs"},"scripts":{"lint":"eslint .","test":"node --experimental-vm-modules node_modules/.bin/jest","build":"microbundle --no-umd"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","microbundle":"^0.15.1"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.1.1_1748164048186_0.8651825527532297","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@allemandi/embed-utils","version":"2.2.0","keywords":["text","classification","cosine-similarity","embeddings"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.2.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"b405167a477de94e3d975e16515370eff53d80fb","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.2.0.tgz","fileCount":11,"integrity":"sha512-aKpytxw507i+2sI8Or1/mHo7czj5tfMOc34ybKDs/2Q54hI/HjfR4NXK3TcuVM6sl42PKSReJ3M9YAFFqZttLg==","signatures":[{"sig":"MEUCIHVquo+Z8Er8s65+gD/nJI/BsFopArCQJvewsGZ37GiMAiEAgwpFgtl1OAALdrlciWbu/MCj6Pa6MpGS/fLJ6XmQsf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19577},"main":"dist/index.cjs","type":"module","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":"./dist/index.module.js","require":"./dist/index.cjs"},"scripts":{"lint":"eslint .","test":"node --experimental-vm-modules node_modules/.bin/jest","build":"microbundle --name allemandi.embedUtils"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","microbundle":"^0.15.1"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.2.0_1748216853427_0.7960599122607634","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@allemandi/embed-utils","version":"2.2.1","keywords":["text","classification","cosine-similarity","embeddings"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.2.1","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"c3caf653799d802a4038f6b6fd6f297e80c94002","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.2.1.tgz","fileCount":11,"integrity":"sha512-SBecOir2n4rNIrYqAiJoifVD9lBXLaHL4gLCbAiyrihSLlUkeP52WS5/eD6vPxTeFV647ujpsLYQR0IfDgNd8A==","signatures":[{"sig":"MEYCIQCNJeQpg63EZQ/M0pIOz2Bf3MoRRG775EdHrwWfjB2xRwIhAINYUbH7DvMBf95ZXKL6cxaAU+0A/RIS7LUXQGdUGI66","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21610},"main":"dist/index.cjs","type":"module","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":"./dist/index.module.js","require":"./dist/index.cjs"},"scripts":{"lint":"eslint .","test":"node --experimental-vm-modules node_modules/.bin/jest","build":"microbundle --name allemandi.embedUtils"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","microbundle":"^0.15.1"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.2.1_1748221608476_0.5671195672942126","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@allemandi/embed-utils","version":"2.2.2","keywords":["text","classification","cosine-similarity","embeddings"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.2.2","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"8e16ee08808e73ec1f17624aac3447c05afdb52d","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.2.2.tgz","fileCount":11,"integrity":"sha512-fa+v9+2fkfaXZsHElPQdFB2V7V2GEny7DP9Vc7bNG6DrfHFdlrPpE5vEaAYoOgwAUkiRrHRcGAzIBwtPtwUqbg==","signatures":[{"sig":"MEUCIQCP/3/NEeUwcwQQNITrTJpfBT6OGJIhjpQ2jkHgHT1MNQIgPkvtLdfBZihzpt6wnm306mmy3IgfAWnU9bMHIkLS8cg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24198},"main":"dist/index.cjs","type":"module","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":"./dist/index.module.js","require":"./dist/index.cjs"},"scripts":{"docs":"documentation build ./src/*.js -f md -o ./docs/API.md","lint":"eslint .","test":"node --experimental-vm-modules node_modules/.bin/jest","build":"microbundle --name allemandi.embedUtils"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.2.2_1748709677918_0.5414210682393501","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@allemandi/embed-utils","version":"2.3.0","keywords":["cosine-similarity","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.3.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"fc2f6605978d32f7fc5e14306720d1d76d90005c","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.3.0.tgz","fileCount":17,"integrity":"sha512-IJnOdLwn3Kqo9nGSnyGa3TQarFnUm72Kz4R9SqfXy/kWOt6NtO/ZSHEGx7kHwIUPvwZ5+6yhqwlmTN73itTQVQ==","signatures":[{"sig":"MEUCIQDGtgt2rbgw+gLvVEdJMKVK67hSc2819sLCGRrntHLvDgIgFCwWTw2W452YG0UAB38bX8gNS0lt8exXskutANOakXA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28136},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","typescript":"^5.8.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.3.0_1748890795869_0.8784959280579143","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@allemandi/embed-utils","version":"2.4.0","keywords":["cosine-similarity","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.4.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"8fcdfab1a0a780410340f9a82e05fc39f5ac6839","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.4.0.tgz","fileCount":18,"integrity":"sha512-7zagEcFZ1ratl3W7hIWCZlZdXqSLCiEykzJFAXveoVDpJ8Z04PlPgkoKT+3JxK7ZRNQw5XGcgscU7l+a8eMcKg==","signatures":[{"sig":"MEUCIBMER9mjW374hKbkx213pJ/zQ0mnZXQVQdNhodrS5HrKAiEA31rN2I5KIFg0hEDUZ9D7lf6Fpxbv1F/Gb/W7jalS+eY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37037},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","typescript":"^5.8.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.4.0_1749228411093_0.3468299711966851","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@allemandi/embed-utils","version":"2.5.0","keywords":["cosine-similarity","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.5.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"19005e324b289dc8e02daf5e17177fe1366ab37f","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.5.0.tgz","fileCount":18,"integrity":"sha512-VN6SuTtuYwT1E2O7tS1V1obwqDdC8Oqz3UI4eBJ7piap4fbYB3jhnsPYP4MoqRkTFSFqHQhcXSCe1RSqSOfUPQ==","signatures":[{"sig":"MEUCIQDwLi56vDjH/faIEWk9UymmpELLRWBkl7MAxBDYwOqaxwIgYNz3TolO3ljr6XjCFqC8x5oE3LGHqaCvbCFeCIsTUXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44771},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","typescript":"^5.8.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.5.0_1749229833024_0.3520722113185677","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@allemandi/embed-utils","version":"2.6.0","keywords":["cosine-similarity","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.6.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"5e9306950e280b6691698d2ab00917b71a931066","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.6.0.tgz","fileCount":18,"integrity":"sha512-j6bpz8pwsjytPu+DYqsjenPSa/qWDEsM59fOyp8dAE7fAdny1wP9a+v+1dLwt7/htdPzoOyAVn6jUO3svGGXJg==","signatures":[{"sig":"MEYCIQCcNsA1eHPiMGOqabPTYLQstAaj+km8FgTLj7HuPaxgDgIhAPMxrEg254bTSmyhGGw60peMkXLeCF0nxlzdiISePXko","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49381},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"text classification embedding utils for cosine similarity","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","typescript":"^5.8.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.6.0_1749233437891_0.3597660346308731","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@allemandi/embed-utils","version":"2.6.1","keywords":["cosine-similarity","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.6.1","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"1d9c6d9cb4bdf0f6ae0ec8db996feff98f1b6c7e","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.6.1.tgz","fileCount":18,"integrity":"sha512-D8D339WeYkrXvBKg/zJk7okP0aIPVmic0UjUPQcU2qA6iA9livH+f0u/r/PZmQTwUAfIFFU/UKRijFqHe1Ehow==","signatures":[{"sig":"MEUCIQC1Oy8DizY8L8R+LfGTJ+ZDkg/5BuRtuDFzXiTlyl8amgIgWR6yMe9fXCuoUScV52uodYYe3kFIDXjSJL52kt1gnmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49397},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"Fast, type-safe utilities for comparing and searching vector embeddings.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","typescript":"^5.8.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.6.1_1749819856666_0.21260917748404395","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@allemandi/embed-utils","version":"2.7.0","keywords":["cosine-similarity","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.7.0","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"434fc1439367cdc569a6306d6fab69783b9f2e33","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.0.tgz","fileCount":18,"integrity":"sha512-j92tOmK/BZPXw9km/+Xm9IcglLoIg+9o0P30DU9x58XCavopr+zJgMZ2zZntBDrgA8FjDqdtxPof3gXpPvu2Ug==","signatures":[{"sig":"MEUCIAl+QtTIn76/I4+kkeCxYIXkMBJrt6fpoFKLETZ2Wod6AiEA9WRiKGtlJq90E7dHgB6rM1Qk4WkjRTvrqiiLIieU6vA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75980},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"allemandi","actor":{"name":"allemandi","type":"user","email":"myallemandi@outlook.com"},"email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"Fast, type-safe utilities for comparing and searching vector embeddings.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","typescript":"^5.8.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.7.0_1750454359497_0.4997072683295487","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@allemandi/embed-utils","version":"2.7.1","keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.7.1","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"04df38acd3bba0ff6c0cf6b875f6a3b244a2b54a","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.1.tgz","fileCount":18,"integrity":"sha512-91IW/mZ5374F2AopL0f7HIEJ4badoHZi5PNukq6lLgeeYMi+PWxW5/OPepvNZIhKNmiW1lBVB0qDE1AdGyEG0g==","signatures":[{"sig":"MEYCIQCKf+Q/xCvebO160Q0AbBcaZ09heRwtG9V0OBop510TyQIhAK5iYz01xIgsmUlflvAabv7Oi6ei64wItDRbjW1Acl+z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75993},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"allemandi","actor":{"name":"allemandi","type":"user","email":"myallemandi@outlook.com"},"email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"Fast, type-safe utilities for vector embedding comparison and search.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.27.0","globals":"^16.1.0","@eslint/js":"^9.27.0","typescript":"^5.8.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.7.1_1750457666748_0.9703634170621644","host":"s3://npm-registry-packages-npm-production"}},"2.7.2":{"name":"@allemandi/embed-utils","version":"2.7.2","keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.7.2","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"dist":{"shasum":"2eaa0592ca6b69ec85c9367b43748eb1d6bdc6a0","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.2.tgz","fileCount":18,"integrity":"sha512-ySGS3oK0AuVNhHOBBZSfF1y6jKRNJZVCZHMNo2qNk2CyX933uUklLnwmg3LPJBl5UcYRFJBFH1MvwojuCRT3Ug==","signatures":[{"sig":"MEQCIDFhyx0rfaX+n/sZPEnmyJTiY9CQ0eXBaxr9EfQ0TWMrAiB4tgEzoY2xZEP3FiCJ9VezsRZUrvGuNY8PB5TP9jrfGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75993},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"allemandi","email":"myallemandi@outlook.com"},"repository":{"url":"https://github.com/allemandi/embed-utils","type":"git"},"description":"Fast, type-safe utilities for vector embedding comparison and search.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Daniel Lam\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"^5.9.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.7.2_1764887180789_0.3090089042087889","host":"s3://npm-registry-packages-npm-production"}},"2.7.3":{"name":"@allemandi/embed-utils","version":"2.7.3","keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.7.3","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"homepage":"https://github.com/allemandi/embed-utils#readme","bugs":{"url":"https://github.com/allemandi/embed-utils/issues"},"dist":{"shasum":"3007b3ca0f362354fba63440c72ce91ca5fd01a0","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.3.tgz","fileCount":15,"integrity":"sha512-vRs5f7AcvsajO6h+IOK1pgRylIrYuim+PJ08xoguM/aH4NYkROvlQ5UZ+VKL440Wqu/u1Ey3u0Cbbx/dEIz8Qg==","signatures":[{"sig":"MEYCIQDU7tiRvtpq9SoWv2Db8eQMtxFjc16ja0B7DfosDG3WXAIhAMtbfmPm5KfhgzizrFFbcnjlAiMoa2z38oOyCqHQR88+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allemandi%2fembed-utils@2.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75993},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"gitHead":"7957cfb0b1982ba2210f609b86cce852c1e21999","scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6881ddc9-4805-4aa4-8a84-4e34de98e1c2"}},"repository":{"url":"git+https://github.com/allemandi/embed-utils.git","type":"git"},"_npmVersion":"11.7.0","description":"Fast, type-safe utilities for vector embedding comparison and search.","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"^5.9.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.7.3_1765502102639_0.9776705379341111","host":"s3://npm-registry-packages-npm-production"}},"2.7.4":{"name":"@allemandi/embed-utils","version":"2.7.4","keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.7.4","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"homepage":"https://github.com/allemandi/embed-utils#readme","bugs":{"url":"https://github.com/allemandi/embed-utils/issues"},"dist":{"shasum":"675e2d4e1d1e4d2555479c22f4446839774db644","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.4.tgz","fileCount":15,"integrity":"sha512-FJ/9Zs4oIPfBFoTHM0Gdl/eHywPHoqALmU4eglxt4kiHaj8Fmxqd+iKD/LygLB5fKNl5ErVTiDwR5hHP0yEbFw==","signatures":[{"sig":"MEQCIB0ShlsRi4J7r3u2rLAZgFq2fv0iG2qivwX/GZPSHjOhAiBcY+d64qyFA6NJOdaiIKmdNFcJElYHAE45IrPjmLBJVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allemandi%2fembed-utils@2.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75993},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.module.js","source":"src/index.js","exports":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.module.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"gitHead":"4bcc135adb98ec1787a8e60d6ce2881eca95f934","scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"yarn run build:js && yarn run build:types","build:js":"microbundle --name allemandi.embedUtils","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6881ddc9-4805-4aa4-8a84-4e34de98e1c2"}},"repository":{"url":"git+https://github.com/allemandi/embed-utils.git","type":"git"},"_npmVersion":"11.10.0","description":"Fast, type-safe utilities for vector embedding comparison and search.","directories":{},"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"^5.9.3","microbundle":"^0.15.1","documentation":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.7.4_1771375172474_0.16516125153564443","host":"s3://npm-registry-packages-npm-production"}},"2.7.5":{"name":"@allemandi/embed-utils","version":"2.7.5","keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.7.5","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"homepage":"https://github.com/allemandi/embed-utils#readme","bugs":{"url":"https://github.com/allemandi/embed-utils/issues"},"dist":{"shasum":"e71e8e222a4b1c323e765712aed6adae515153fc","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.5.tgz","fileCount":11,"integrity":"sha512-OBNoH0byiE/84ePs/MbI265eOufCMPFFTmYo+fDPbuqhVq7FX25lzTwH0jRMLNApMZJGX/sx0z43Rf2loDigEA==","signatures":[{"sig":"MEYCIQDKrOBbQVY64Rrf9jgGlNSRsJgPOP04pyIGuM9UInZ1GQIhAMMgZNOYrXy8Gdl0NeLnCPn9TmRhwMERxxhxoVJ45B2R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allemandi%2fembed-utils@2.7.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70128},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6feff1fe1d1e1e7c4d702a759f33b77144a248f6","scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"rm -rf dist && yarn run build:types && yarn run build:js && rm -rf dist/utils","build:js":"rollup -c","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6881ddc9-4805-4aa4-8a84-4e34de98e1c2"}},"repository":{"url":"git+https://github.com/allemandi/embed-utils.git","type":"git"},"_npmVersion":"11.11.1","description":"Fast, type-safe utilities for vector embedding comparison and search.","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^10.0.3","rollup":"^4.59.0","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","documentation":"^14.0.3","rollup-plugin-dts":"^6.4.0","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.7.5_1773592760730_0.9050235578923933","host":"s3://npm-registry-packages-npm-production"}},"2.7.6":{"name":"@allemandi/embed-utils","version":"2.7.6","keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.7.6","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"homepage":"https://github.com/allemandi/embed-utils#readme","bugs":{"url":"https://github.com/allemandi/embed-utils/issues"},"dist":{"shasum":"e8fcd1e5f8216c01c358eedd553600650d3d66ac","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.6.tgz","fileCount":11,"integrity":"sha512-+0/BuwL2FnL8Vf5bbU7pO0qroq0btioifQTD6U60+k1Iuo3fvAm2eszAQJ//A8Lxy7CFSgP8VU0gUfgXccvzyw==","signatures":[{"sig":"MEYCIQDA5DogZLkW6L/MAUhn2at9LjnuQ0tzHDIk1aKYkSscnAIhAJlJvmeFCZ1lNvQzljKsBw3RwcF59XviStHJfgN6TjRm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allemandi%2fembed-utils@2.7.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70232},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a92f6f359cabe5798986b205c369a3a34c493140","scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"rm -rf dist && yarn run build:types && yarn run build:js && rm -rf dist/utils","build:js":"rollup -c","test:dist":"node tests/smoke-esm.js && node tests/smoke-cjs.cjs && node tests/smoke-umd.cjs","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6881ddc9-4805-4aa4-8a84-4e34de98e1c2"}},"repository":{"url":"git+https://github.com/allemandi/embed-utils.git","type":"git"},"_npmVersion":"11.11.1","description":"Fast, type-safe utilities for vector embedding comparison and search.","directories":{},"_nodeVersion":"20.20.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","eslint":"^10.0.3","rollup":"^4.59.0","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^5.9.3","documentation":"^14.0.3","rollup-plugin-dts":"^6.4.0","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.7.6_1773713336384_0.5870870221884226","host":"s3://npm-registry-packages-npm-production"}},"2.7.7":{"name":"@allemandi/embed-utils","version":"2.7.7","keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","_id":"@allemandi/embed-utils@2.7.7","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"homepage":"https://github.com/allemandi/embed-utils#readme","bugs":{"url":"https://github.com/allemandi/embed-utils/issues"},"dist":{"shasum":"ce9ffe676e41eb88d3f33c763d9adf677ef3c1f2","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.7.tgz","fileCount":11,"integrity":"sha512-/DFoABYaG+PAXppwuZ6MNPbugckZ/JiK5dGDsdPXhnNtePQ7kJ7aYGS8nTznJcZZyBNOMjWP6gAh3VlrGEXksg==","signatures":[{"sig":"MEYCIQDw5k+LrpfjB+txC+yKGFxV9PbZ0Vpwl76hlE6r6Q2JwgIhAKW3uQ5onSZj1xidsKZtb1xtiwvu+nuhQRv47R7v7/4+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allemandi%2fembed-utils@2.7.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70136},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3e1ec0e5be30fff2c57e79595067239d59895066","scripts":{"docs":"documentation build src/*.js -f md -o ./docs/API.md --access public --sort-order kind","lint":"eslint .","test":"yarn run test:jest && yarn run test:types","build":"rm -rf dist && yarn run build:types && yarn run build:js && rm -rf dist/utils","build:js":"rollup -c","test:dist":"node tests/smoke-esm.js && node tests/smoke-cjs.cjs && node tests/smoke-umd.cjs","test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","build:types":"tsc --project tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6881ddc9-4805-4aa4-8a84-4e34de98e1c2"}},"repository":{"url":"git+https://github.com/allemandi/embed-utils.git","type":"git"},"_npmVersion":"11.12.1","description":"Fast, type-safe utilities for vector embedding comparison and search.","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","eslint":"^10.1.0","rollup":"^4.60.1","globals":"^17.4.0","@eslint/js":"^10.0.1","typescript":"^6.0.2","documentation":"^14.0.3","rollup-plugin-dts":"^6.4.1","@rollup/plugin-terser":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/embed-utils_2.7.7_1775563675104_0.20181177773779102","host":"s3://npm-registry-packages-npm-production"}},"2.7.8":{"name":"@allemandi/embed-utils","version":"2.7.8","description":"Fast, type-safe utilities for vector embedding comparison and search.","main":"dist/index.cjs","module":"dist/index.js","unpkg":"dist/index.umd.js","types":"dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"scripts":{"test:jest":"node --experimental-vm-modules node_modules/.bin/jest","test:types":"tsc --noEmit","test:dist":"node tests/smoke-esm.js && node tests/smoke-cjs.cjs && node tests/smoke-umd.cjs","test":"yarn run test:jest && yarn run test:types","lint":"eslint .","build:types":"tsc --project tsconfig.json","build:js":"rollup -c","build":"rm -rf dist && yarn run build:types && yarn run build:js && rm -rf dist/utils"},"repository":{"type":"git","url":"git+https://github.com/allemandi/embed-utils.git"},"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","devDependencies":{"@eslint/js":"^10.0.1","@rollup/plugin-terser":"^1.0.0","eslint":"^10.1.0","globals":"^17.4.0","jest":"^30.3.0","rollup":"^4.60.1","rollup-plugin-dts":"^6.4.1","typescript":"^5.0.0"},"gitHead":"53fed2c0e410d85f292bf68591b1a20c409408b7","_id":"@allemandi/embed-utils@2.7.8","bugs":{"url":"https://github.com/allemandi/embed-utils/issues"},"homepage":"https://github.com/allemandi/embed-utils#readme","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-IkhXXcW8MJVDf5+i/GH/Gn5QNW6Umbu84ojUXi2MCjm21ZcPIVGYpz+alxeMHdltx8mt9wF4ClzC82y4U1F33g==","shasum":"a1122179e48f0e6c583c4ba1c7ded43c01feef26","tarball":"https://registry.npmjs.org/@allemandi/embed-utils/-/embed-utils-2.7.8.tgz","fileCount":11,"unpackedSize":77042,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allemandi%2fembed-utils@2.7.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDV4DIT+Tij2UsQec50F5xrZhrFlfYLzH6TOC6R/2y7UQIgIohljLUZegWDpOEsdVT2JCi5RozufeqcrZ6HHr9vTIc="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6881ddc9-4805-4aa4-8a84-4e34de98e1c2"}},"directories":{},"maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/embed-utils_2.7.8_1786793728182_0.84258282706393"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-24T17:44:20.093Z","modified":"2026-08-15T11:35:28.608Z","1.0.0":"2025-05-24T17:44:20.342Z","1.1.0":"2025-05-24T19:15:09.499Z","2.0.0":"2025-05-24T22:16:00.722Z","2.1.0":"2025-05-25T09:02:20.777Z","2.1.1":"2025-05-25T09:07:28.381Z","2.2.0":"2025-05-25T23:47:33.593Z","2.2.1":"2025-05-26T01:06:48.665Z","2.2.2":"2025-05-31T16:41:18.120Z","2.3.0":"2025-06-02T18:59:56.037Z","2.4.0":"2025-06-06T16:46:51.273Z","2.5.0":"2025-06-06T17:10:33.250Z","2.6.0":"2025-06-06T18:10:38.122Z","2.6.1":"2025-06-13T13:04:16.826Z","2.7.0":"2025-06-20T21:19:19.672Z","2.7.1":"2025-06-20T22:14:26.963Z","2.7.2":"2025-12-04T22:26:20.957Z","2.7.3":"2025-12-12T01:15:02.813Z","2.7.4":"2026-02-18T00:39:32.618Z","2.7.5":"2026-03-15T16:39:20.881Z","2.7.6":"2026-03-17T02:08:56.543Z","2.7.7":"2026-04-07T12:07:55.272Z","2.7.8":"2026-08-15T11:35:28.325Z"},"bugs":{"url":"https://github.com/allemandi/embed-utils/issues"},"author":{"name":"allemandi","email":"69766017+allemandi@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/allemandi/embed-utils#readme","keywords":["cosine-similarity","euclidean-distance","manhattan-distance","vector-similarity","nearest-neighbor","embeddings","vector","similarity-search","semantic-search","vector-search","type-safe","umd","esm","commonjs"],"repository":{"type":"git","url":"git+https://github.com/allemandi/embed-utils.git"},"description":"Fast, type-safe utilities for vector embedding comparison and search.","maintainers":[{"name":"allemandi","email":"myallemandi@outlook.com"}],"readme":"# 📖 @allemandi/embed-utils\n\n[![NPM Version](https://img.shields.io/npm/v/@allemandi/embed-utils)](https://www.npmjs.com/package/@allemandi/embed-utils)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/allemandi/embed-utils/blob/main/LICENSE)\n\n> **Fast, type-safe utilities for vector embedding comparison and search.**\n>\n> Works in Node.js, browsers – supports ESM, CommonJS, and UMD\n \n<!-- omit from toc -->\n## 🔖 Table of Contents\n- [✨ Features](#-features)\n- [🛠️ Installation](#️-installation)\n- [🚀 Quick Usage Examples](#-quick-usage-examples)\n- [📚 API Reference](#-api-reference)\n  - [computeCosineSimilarity](#computecosinesimilarity)\n  - [computeEuclideanDistance](#computeeuclideandistance)\n  - [computeManhattanDistance](#computemanhattandistance)\n  - [normalizeVector](#normalizevector)\n  - [isNormalized](#isnormalized)\n  - [meanVector](#meanvector)\n  - [findNearestNeighbors](#findnearestneighbors)\n  - [rankBySimilarity](#rankbysimilarity)\n- [🧪 Tests](#-tests)\n- [🔗 Related Projects](#-related-projects)\n- [🤝 Contributing](#-contributing)\n\n\n## ✨ Features\n\n- 🔍 Find nearest neighbors by cosine similarity, or Euclidean/Manhattan distance\n- 📐 Compute, normalize, and verify vector similarity\n- ⚡ Lightweight and fast vector operations\n\n## 🛠️ Installation\n```bash\n# Yarn\nyarn add @allemandi/embed-utils\n\n# NPM\nnpm install @allemandi/embed-utils\n```\n\n## 🚀 Quick Usage Examples\n\n**ESM**\n```js\nimport { computeCosineSimilarity } from '@allemandi/embed-utils';\n```\n**CommonJS**\n\n```js\nconst { findNearestNeighbors } = require('@allemandi/embed-utils');\n\nconst samples = [\n  { embedding: [0.1, 0.2, 0.3], label: 'sports' },\n  { embedding: [0.9, 0.8, 0.7], label: 'finance' },\n  { embedding: [0.05, 0.1, 0.15], label: 'sports' },\n];\n\nconst query = [0.09, 0.18, 0.27];\n\n//  Find top 2 neighbors with similarity ≥ 0.5\n// (default method: cosine similarity)\nconst resultsCosine = findNearestNeighbors(query, samples, { topK: 2, threshold: 0.5 });\n\nconsole.log(resultsCosine);\n//  [ { embedding: [0.1, 0.2, 0.3], label: \"sports\", similarityScore: 1 },\n//    { embedding: [0.05, 0.1, 0.15], label: \"sports\", similarityScore: 1 } ] \n\n// Find top 3 neighbors with Euclidean distance ≤ 1.1\nconst resultsEuclidean = findNearestNeighbors(query, samples, {\n  topK: 3,\n  threshold: 1.1,\n  method: 'euclidean',\n});\n\nconsole.log(resultsEuclidean.length);\n// 2\n// only 2 results that pass threshold conditions\n\n```\n**UMD (Browser)**\n```js\n<script src=\"https://unpkg.com/@allemandi/embed-utils\"></script>\n<script>\n  const vectorsToNormalize = [3, 4];\n  const result = window.allemandi.embedUtils.normalizeVector(vectorsToNormalize);\n  console.log(result);\n</script>\n```\n\n## 📚 API Reference\n\n### computeCosineSimilarity\n\nCalculates cosine similarity between two vectors.\nMeasures how similar their directions are, ignoring magnitude.\nUse for comparing semantic or normalized vectors (e.g., text embeddings).\n\n**Parameters:**\n* `vecA` (`number[]`): First vector.\n* `vecB` (`number[]`): Second vector.\n\n**Returns:** `number` — Cosine similarity score between `vecA` and `vecB`.\n\n**Examples:**\n```js\ncomputeCosineSimilarity([1, 2, 3], [1, 2, 3]);\n// => 1 (identical vectors)\ncomputeCosineSimilarity([1, 0], [0, 1]);\n// => 0 (orthogonal vectors)\ncomputeCosineSimilarity([1, 2], [2, 3]);\n// => 0.992...\ncomputeCosineSimilarity([1, 0], [-1, 0]);\n// => -1 (vectors diametrically opposed)\ncomputeCosineSimilarity([0, 0], [1, 2]);\n// => 0 (one vector has zero magnitude)\n```\n\n---\n\n### computeEuclideanDistance\n\nCalculates Euclidean distance between two vectors.\nMeasures straight-line distance considering both magnitude and direction.\nUse for raw numeric data or spatial coordinates.\n\n**Parameters:**\n* `vecA` (`number[]`): First vector.\n* `vecB` (`number[]`): Second vector.\n\n**Returns:** `number` — Euclidean distance between `vecA` and `vecB`.\n\n**Examples:**\n```js\ncomputeEuclideanDistance([1, 2], [4, 6]);\n// => 5 (distance between (1,2) and (4,6))\ncomputeEuclideanDistance([0, 0], [0, 0]);\n// => 0 (identical vectors)\ncomputeEuclideanDistance([1, 0], [0, 1]);\n// => 1.414...\ncomputeEuclideanDistance([1, 2, 3], [4, 5, 6]);\n// => 5.196...\n```\n\n---\n\n### computeManhattanDistance\n\nCalculates Manhattan distance between two vectors.\nMeasures sum of absolute differences.\nUse for grid-like data or when less sensitive to large differences.\n\n**Parameters:**\n* `vecA` (`number[]`): First vector.\n* `vecB` (`number[]`): Second vector.\n\n**Returns:** `number` — Manhattan distance between `vecA` and `vecB`.\n\n**Examples:**\n```js\ncomputeManhattanDistance([1, 2, 3], [4, 5, 6]);\n// => 9\ncomputeManhattanDistance([1, 0], [0, 1]);\n// => 2\ncomputeManhattanDistance([1, 2], [1, 2]);\n// => 0 (identical vectors)\ncomputeManhattanDistance([1, -1], [-1, 1]);\n// => 4\n```\n\n---\n\n### normalizeVector\n\nNormalizes a vector to unit length. If the vector has zero magnitude, returns the original vector.\n\n**Parameters:**\n* `vec` (`number[]`): Input vector.\n\n**Returns:** `number[]` — A new vector scaled to unit length.\n\n**Examples:**\n```js\nnormalizeVector([3, 4]);\n// => [0.6, 0.8] (vector normalized to length 1)\nnormalizeVector([0, 0]);\n// => [0, 0] (zero vector remains unchanged)\nnormalizeVector([1, 1, 1]);\n// => [0.5773502691896258, 0.5773502691896258, 0.5773502691896258]\n```\n\n---\n\n### isNormalized\n\nEfficiently checks if a vector is L2-normalized (unit length).\n\n**Parameters:**\n* `vec` (`number[]`): Input vector.\n* `epsilon` (`number`, optional, default: `1e-6`): Tolerance for floating-point comparison.\n\n**Returns:** `boolean` — True if the L2 norm is within epsilon of 1.\n\n**Examples:**\n```js\nisNormalized([1, 0]);\n// => true (vector length is exactly 1)\nisNormalized([0.6, 0.8]);\n// => true (approximately unit length)\nisNormalized([3, 4]);\n// => false (length is 5)\nisNormalized([0, 0]);\n// => false (length is 0)\n```\n\n---\n\n### meanVector\n\nComputes the mean (centroid) vector from an array of vectors.\nAssumes all vectors are of equal length.\n\n**Parameters:**\n* `vectors` (`number[][]`): An array of vectors.\n\n**Returns:** `number[]` — The mean vector.\n\n**Examples:**\n```js\nmeanVector([[1, 2], [3, 4], [5, 6]]);\n// => [3, 4]\nmeanVector([]);\n// => []\n```\n\n---\n\n### findNearestNeighbors\n\nFinds the nearest neighbors to a given query embedding from a list of samples based on the specified distance/similarity method.\n\n* `'cosine'`: Cosine similarity (higher = more similar, range: [-1, 1]).\n* `'euclidean'`: Euclidean distance (lower = closer, ≥ 0).\n* `'manhattan'`: Manhattan distance (lower = closer, ≥ 0).\n\n**Parameters:**\n* `queryEmbedding` (`number[]`): The embedding vector to compare against.\n* `samples` (`Array<{ embedding: number[], label: string }>`): An array of samples, each with an `embedding` and a `label`.\n* `options` (`object`, optional, default: `{}`):\n  * `options.topK` (`number`, optional, default: `1`): Number of top results to return.\n  * `options.threshold` (`number`, optional): Minimum similarity score threshold for results (cosine) or maximum distance threshold (euclidean/manhattan).\n  * `options.method` (`'cosine' | 'euclidean' | 'manhattan'`, optional, default: `'cosine'`): The metric to compute.\n\n**Examples:**\n```js\nconst samples = [\n  { embedding: [1, 0], label: 'A' },\n  { embedding: [0, 1], label: 'B' },\n  { embedding: [1, 1], label: 'C' },\n];\n\n// Default cosine similarity\nfindNearestNeighbors([1, 0], samples);\n// => [{ embedding: [1, 0], label: 'A', similarityScore: 1 }]\n\n// Euclidean distance\nfindNearestNeighbors([1, 0], samples, { method: 'euclidean', topK: 2 });\n// => [\n//   { embedding: [1, 0], label: 'A', distance: 0 },\n//   { embedding: [1, 1], label: 'C', distance: 1 }\n// ]\n\n// Manhattan distance with threshold\nfindNearestNeighbors([1, 0], samples, { method: 'manhattan', threshold: 1.5 });\n// => [{ embedding: [1, 0], label: 'A', distance: 0 }, { embedding: [1, 1], label: 'C', distance: 1 }]\n\n// Cosine with threshold\nfindNearestNeighbors([1, 0], samples, { threshold: 0.9 });\n// => [{ embedding: [1, 0], label: 'A', similarityScore: 1 }]\n```\n\n---\n\n### rankBySimilarity\n\nRanks all samples by similarity/distance to the query embedding.\nDoes NOT apply threshold or topK filtering.\n\n**Parameters:**\n* `queryEmbedding` (`number[]`): The embedding vector to compare against.\n* `samples` (`Array<{ embedding: number[], label: string }>`): Samples with embeddings and labels.\n* `options` (`object`, optional, default: `{}`):\n  * `options.method` (`'cosine' | 'euclidean' | 'manhattan'`, optional, default: `'cosine'`): Distance/similarity method to use.\n\n**Examples:**\n```js\nconst samples = [\n  { embedding: [1, 0], label: 'A' },\n  { embedding: [0, 1], label: 'B' },\n  { embedding: [1, 1], label: 'C' },\n];\n\n// Default cosine similarity\nrankBySimilarity([1, 0], samples);\n// => [\n//   { embedding: [1, 0], label: 'A', similarityScore: 1 },\n//   { embedding: [1, 1], label: 'C', similarityScore: 0.707... },\n//   { embedding: [0, 1], label: 'B', similarityScore: 0 }\n// ]\n\n// Euclidean distance\nrankBySimilarity([1, 0], samples, { method: 'euclidean' });\n// => [\n//   { embedding: [1, 0], label: 'A', distance: 0 },\n//   { embedding: [1, 1], label: 'C', distance: 1 },\n//   { embedding: [0, 1], label: 'B', distance: 1.414... }\n// ]\n\n// Manhattan distance\nrankBySimilarity([0, 1], samples, { method: 'manhattan' });\n// => [\n//   { embedding: [0, 1], label: 'B', distance: 0 },\n//   { embedding: [1, 1], label: 'C', distance: 1 },\n//   { embedding: [1, 0], label: 'A', distance: 2 }\n// ]\n```\n\n## 🧪 Tests\n\n> Available in the GitHub repo only.\n\n```bash\n# Run the test suite with Jest\nyarn test\n# or\nnpm test\n```\n\n## 🔗 Related Projects\nCheck out these related projects that might interest you:\n\n**[Embed Classify CLI](https://github.com/allemandi/embed-classify-cli)**\n- Node.js CLI tool for local text classification using word embeddings.\n\n**[Vector Knowledge Base](https://github.com/allemandi/vector-knowledge-base)**  \n- A minimalist command-line knowledge system with semantic memory capabilities using vector embeddings for information retrieval.\n\n\n## 🤝 Contributing\nIf you have ideas, improvements, or new features:\n\n1. Fork the project\n2. Create your feature branch (git checkout -b feature/amazing-feature)\n3. Commit your changes (git commit -m 'Add some amazing feature')\n4. Push to the branch (git push origin feature/amazing-feature)\n5. Open a Pull Request\n","readmeFilename":"README.md"}