{"_id":"hnswlib-wasm","_rev":"81-57f6d76995df65017b90f071af4c4e4a","name":"hnswlib-wasm","dist-tags":{"latest":"0.8.2","next":"0.5.2"},"versions":{"0.0.1-beta.1":{"name":"hnswlib-wasm","version":"0.0.1-beta.1","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning"],"gypfile":true,"scripts":{"prepare":"husky install","build":"make","rebuild":"make rebuild","test":"jest"},"devDependencies":{"@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","dependencies":{"vite-plugin-commonjs":"^0.6.2"},"gitHead":"d08499426db32d3844255378c829782402acafd7","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.1","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-zNJ4Q0EkQfjkd7EkFmUbKbpxFqxZm4jNcwsNaDy9v8M2uxtXRaN4bvx7/eSxu67ZMveoZzTkus7ucky5c2tdyg==","shasum":"27ee73e915566da29789665ba43f471399633a54","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.1.tgz","fileCount":19,"unpackedSize":2893801,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDj1NeBwvhmckc/eRiGwJSmJgwgvTrFxk2jdYoH4u0PQIgNGE+IagQ/k/Ehvil2guhh4MDPbOI6pIrrgjWlJ5iBJA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLBaqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6FBAAlFwsUNA3Z/QLwzLN2AyE9uYs5//m0N+j82xpUcPy8E/pL+kA\r\nWm5tFjkubGxkd0Hj2wl3DL0eis85jorHRQ4/FwZv/7YHfKWOnTjJjVDD7hiX\r\n8764LvfmLWYzY3smG2XUrQ6zPDTD9eWOz+Vxb3Vc30838SGBNtp/xeo5eEl+\r\nnbIs+vJynnYYip70YzCtJEEdYvir8OUH1BvlsEt8zrAcc2jXK5uBgb/CMs/H\r\nY2on2tOySV573GqmNsd0RVu1/st3dIhdfc4vp44SYiD8asxGJTtynqbKLQTn\r\n2Eb8rJadR7w4Pq+oFUiK1LTVW+qkwxLNLPWey+kpRkoOMV873NlEXt6WXXjT\r\n/nIWPvzX1Hf4HVIy9tlwjOByI0kQGz4OnEVNU/yEgTjxc9VTt+aA1Y6ZIyXh\r\nR0a0rWOkMHUgq++q7qYhqHMgRBBQdCkTMmq3ae4NgI0a3S4eA7eofGaEUIVx\r\nRw/fV6Kcfay6/8vhaVSdw1G4/38nQ2Vz8/zhfPVfs1/g7Vdw/+YjU/NxngAP\r\nvNXQoUAzauKrQJZkHfips9FDTTU/KtyH+4xbJiqSSnvGSGx43FIfvSnMuM4R\r\nifnxyhQHEZ7KG1w//gHgxu6/UxNGvKV46bOQ8SQ0EvN+iqQw/u+PlmLXVtb6\r\nCmSpxSghEbgg9+xZLhlj5x34jENXFjoUNbo=\r\n=A5Ax\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.1_1680610986511_0.9189067077722599"},"_hasShrinkwrap":false},"0.0.1-beta.2":{"name":"hnswlib-wasm","version":"0.0.1-beta.2","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning"],"gypfile":true,"scripts":{"prepare":"husky install","build":"make","rebuild":"make rebuild","test":"jest"},"devDependencies":{"@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","dependencies":{"vite-plugin-commonjs":"^0.6.2"},"gitHead":"d08499426db32d3844255378c829782402acafd7","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.2","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-qNVhPbvL2W8jWLeTJu51uUgyjg6WteoKThLMxaL28MwAwf5zK6YlViYFIBD9RYUol+SAV7EBkDdP3lUR0VrZvw==","shasum":"8453e0aaa770852ac464d8d7246b4500bb2a34bd","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.2.tgz","fileCount":19,"unpackedSize":2895140,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDsYlzURhru72ZXxQEfMtiRz1g9Ymx1tFxRc33x1SNcuAiEAwAqOiTB5zeL6O86h/CWA3vTuKfGhYf5aLh1+g04CFtQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLBdgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/Aw//Tw2B2a1TIj7vkfXNhNnVWogKg2aWaHCGj2uLkr1TcQUP8ieu\r\ns6SJpyuomFs4ollGkrCCgZpydoiZ6djHauTjNK6d/JjWEupeNh40yiMey5Dd\r\nvZdzOuQHID0TZy4p31T/g9F3AuynA2a1JMOzl0KB9oH7Tmvzm0wbgYV7Nu+J\r\nj6RccC2b4RPV0xnDCvItiw4Qg0ZVBGkfnKpE1quyzxpY9lA307Fl/yKgqJaN\r\nk+Cl39hbrZOHQB73ZWyaGb3asQ5ieISYUw3PIi01qQTRsvckBsxaaIuiZuzh\r\njT+bdC7k5ZdeMLMncPXz9yVwoTHfaIqrADqWu/twybYnNaqn69fVV9ZlJtjN\r\nnKOZa7b5IYUU6/+M91mL4twGqWZ/vn8PYekSdwTUixcibNrCAVn2qik5wUfV\r\nEOP2pc7521FcDeua+l6YNtJBrv+31txRzsTL/idRWXiujfNhW21JtuFHWEck\r\nCu8lI2zufR9SnqSON6DyS1SF/wZmuWZaLJ7/OFsLsusXS/grgbpBFpnXefeK\r\niGg84hHhmSrUxE5hcHZm4qIdF3lo2t4SHpYPC4epIglzLPJnEVyNpsEwguSC\r\nLoQox+B7wPh2Crk12rkk/Ntclsk0ZyyD1Do0VAY7zgt14EXc4JtOq+eYzfsb\r\nnvdzGKNpvlqT9wQK8sbU+sduiyaLZgEqTUk=\r\n=L+c0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.2_1680611167787_0.25239871166256655"},"_hasShrinkwrap":false},"0.0.1-beta.3":{"name":"hnswlib-wasm","version":"0.0.1-beta.3","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning"],"gypfile":true,"scripts":{"prepare":"husky install","build":"make","rebuild":"make rebuild","test":"jest"},"devDependencies":{"@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","dependencies":{"vite-plugin-commonjs":"^0.6.2"},"gitHead":"d08499426db32d3844255378c829782402acafd7","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.3","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-ovCPwbmUnTsP9lqlqica0AFcTQs0XYqib6MLYKcyYXwC96+ERienS1A1A5eFaspIqxF6TMILvkHS6UUg92bPGA==","shasum":"c9bede7021ce8ef0b92cb41fd58c0c6bd4f0a2a7","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.3.tgz","fileCount":19,"unpackedSize":3456691,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbSSzK+MXk99AqecV8MZy9EngSVy/FTyah9ezLpMQK2gIgDmk1sSNE3+Il1TOr4GmuANna3BpMaY2dkiCEUh2ZzZ0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLBlqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpe/Q/+KpMgnFdo49L9W1WXgNA//bFSgK8wATzct6CFucY6Bva3S/Vd\r\nE9zrECFcKt/1LbPe4zg7J8dWUx1snLaGNDDm/zt+LvE0pAH5nEd/UvPObLZn\r\nE5kKCK2dccAN1ndG4vYuCgeSfTLYZtY8vsjBxzKYdJVOxphPxFVNJ7ShwONJ\r\nMz7ngGh63FSUg83OJOCbMMeIULt6sr6PgkG/36ODpf13P9x4VlROQ6dXDkpo\r\nX+9tpFiqrnNzXL6/vGfU3aI/Bn+s3EOsK6gqzQRK1aJv4AfX+JgH6xFNnHKl\r\nUBcJDifmXErY/g9lbDqcUiwSjWAgQD6u5mKQwEEU5Gnb3zGqMgH/+Y3ZG0Lf\r\nnTKtJ+NuAm4WXAgqAjUGqd5huhUNluxi3hlvJqvPWo2IGfGRU2GqLLO91UIk\r\ndPjfEaf2DwxrdvXs+P6QpY+cRKtwjkZRpWi8gVlaQYRK8cnPwdWOJuGywJst\r\nyxFMS3JExnmTz9vK9HfdCpsyOPNd39yXFc7K0FO1HXTX8ZeRD5zXE0PpILSE\r\n5ZRpsbkQ7JwpLPiKZ0H6SvlIkn6L40HmYARMjUJfIxlBdp/mr/l12WskmZcw\r\nlMLCVAdx7vuZkW88uOhr5l92IN7DOxVSJ4uVRtLaNADoAuXVfZV5brh2tHbp\r\nd9eiGSG69//JCJlwTGdlbSEwq5kT1ZtR7Pk=\r\n=uvJy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.3_1680611689963_0.030298271005513522"},"_hasShrinkwrap":false},"0.0.1-beta.4":{"name":"hnswlib-wasm","version":"0.0.1-beta.4","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning"],"gypfile":true,"scripts":{"prepare":"husky install","build":"make","rebuild":"make rebuild","test":"jest"},"devDependencies":{"@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","dependencies":{"vite-plugin-commonjs":"^0.6.2"},"gitHead":"d08499426db32d3844255378c829782402acafd7","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.4","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-ukT1alPNPRhrUrcG76S/HX+nVsz2/Ae75HdlKS98u11kS0z/HgFEvMeZdH3CtxDcd+DckmEHtlDHK4SGRhEP3g==","shasum":"64ea9305746b23a3c63631417118e22124c659fd","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.4.tgz","fileCount":19,"unpackedSize":3456418,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHBZ1iF6/ysOj+szhMMPKQG8rojOPCD/jeVkEfh9IqOGAiBtOdXYv4LxkY70Cr/4YjInT0JOF9HfCU0cDeNIZFe8Sg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLBqWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrb2g/8D03LmXW/SCw/gd0kpkb2vaDC6Oc+LL1uv5k3h+P0aCMw0KNF\r\nzfdgxZpPWykSnVzAxCxfCGTBXrD9KK1YRLYRGXUIZccF5g4QA/AfWnkrHK0h\r\nnJHDwAUF27kz7YPtjbomLCqNvNSnIc729C+tSgbCFg7vgFTB86gPgW5/z4/Y\r\nEyyfmMftpg5Bt/ypwwOkEL4QCRf69CIQkQRn3jHAuiGFjFVIqofGQHuXkguQ\r\ngxftZyO9xFX9uXK2Zz40J9kJ5IDfxoCQ4txNUYbSJfX/eBXzL1yPpGYcAhNm\r\nq1deeyFovHv7DHbEG4jtEMcnR+OIQims90REUpTCsPZrnqAoLtsFA+Xvpifa\r\ndY0pSFClY4oo3pBFmyDipueaLTV1QkZm1EEDVuZlDPQ6DpeiZiST7a1AGDHn\r\nXQo+bitX32H2U5FXJFb/d76sEKUpQq5dqrxwmqlPC/cerjTErxiX76yzJ68v\r\nsSe6apdKUVIyFSXUKekd63r+hIYx++QoFRCuUKXLdmfPKdqZWUCR6Cc963dK\r\nrmr53dZhPO5a5+1y+NKpRIyt45HED0wxOnlLIkKYLw9PypVod3UM9mOLey4l\r\nzJuiQLxGkstWDc/dGI1DeL+ereJG8mSh4aQBRw+xJJVhyOb6MA8h8NYRg+GL\r\nxjd3tOSRa/zQ1is2A1Z3gLDOLukm0WOGKTc=\r\n=euob\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.4_1680611989951_0.24454039820620643"},"_hasShrinkwrap":false},"0.0.1-beta.5":{"name":"hnswlib-wasm","version":"0.0.1-beta.5","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning"],"gypfile":true,"scripts":{"prepare":"husky install","build":"make && yarn vite build","rebuild":"make rebuild && yarn vite build","test":"jest"},"devDependencies":{"@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","dependencies":{"vite-plugin-commonjs":"^0.6.2"},"gitHead":"d08499426db32d3844255378c829782402acafd7","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.5","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-KyG8YZaai+c8aTzPqA98jhau5C1kF4snsB0ClnrsTZUBYQelSfSRJApij7UT0q273aBACK/5wVysyCe+u+fBEg==","shasum":"70039493dfd90d2f5c0de590c96fd9674cfb4144","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.5.tgz","fileCount":19,"unpackedSize":3456923,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEZRV2XQemOiVvpU+t8kij8wzfzCU9wGHVTHYwb4L49gIhAPOq5HUOXlGyduME5LV/Vi441s3UtZx/i7DhGQTPUvkN"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLB7lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqw6w/7BvVVgLAZUEv9Lyi5DZef8VGMroCi1fM7b0yKCcV5xutsCYD2\r\nUfX3eNJ9p33KZSlSWSyRZpYu8fNo4K/mcBfBDHTIsKtFeeLVewR3mNuf2wPk\r\ny7Cvjj10yyWIe0Lkax4g7ymAivGfTrVAuJNzkesSdZ75GxAykpG7W5Z0ksyn\r\nUd5ESUgdfOllI8G5dsxBxlYn/Xwc1/p0vEYSlZ2B602NRKEAu7lUvf8Tewba\r\ndA8wEdw4jgfGdiVVcZyFZudVaLuBh4JkzoO2gjOqJhYh+6fO6QibaGBQZGKN\r\nHOz0J6Fr9EIheTrn8UuLqarsxm05WISYktHM9XHtYy2xTJBsN/a9MDNPAxV2\r\nXhj+nHP9H9YfevNq9x57h4AEwmHwgp8003lXkIMH9PlJiNnyK0iLbQxZZ0xQ\r\nFqkQgZXOL3zVVe2wpqSD0CH/8Ib28yHsfrgfxImHdYOJa+Roa5hU2P20Ocrl\r\n+XQ0yfcKMaIpFH+ibUNLLFVmrv61CgUGjOMm/tnGVi4cRJl5lF6XXBO4Scat\r\n8R8FTIxswo6NwlsTElVN7k5SFYFyb6b1ozSiPjKIWdckR54kmjXCB26g8GTw\r\nnAdlyRB9XNjaYEKf/P5KY4w/WIJHrIdluiMejljVYB4RuC1jVyO+S++AF2Dr\r\nG8vsLGZdY0hPdUZnhETvn4SFuLpA2u24BOM=\r\n=tiGp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.5_1680613093440_0.6444377049552958"},"_hasShrinkwrap":false},"0.0.1-beta.6":{"name":"hnswlib-wasm","version":"0.0.1-beta.6","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning"],"gypfile":true,"scripts":{"prepare":"husky install","build":"make && yarn vite build","rebuild":"make rebuild && yarn vite build","test":"jest"},"devDependencies":{"@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","dependencies":{"vite-plugin-commonjs":"^0.6.2"},"gitHead":"d08499426db32d3844255378c829782402acafd7","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.6","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-+PUMMugrGsYY/2WmKfwvTpAZFmaR+2GKiTbjAZTJeSmQt2DxqAmgL9C3rK0V2bGMHCxs854PWY/leqnvLHXzmQ==","shasum":"e6180630e8027a2fa85d3265d1566c5d52f366df","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.6.tgz","fileCount":19,"unpackedSize":3460513,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkjoNrmyRJ6GYR63GTWLBzdvHbGIonvK/W3v/g7ekNSAiBZfqiZ72tAkeJMweYivmn2IG3tZMyxuoqYbESxBJhFgQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLCWPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJKQ/9ENYSxksnhvptMHA0niAlJMEsiJ8HF0rH3cp2wrl6mbyIQxAl\r\n1Kb9V3zxVB8JgjBTT7RqS20rKCOsd5gX7B2fFjjwPFFfjlVgvZdth269odyz\r\nAAR5EfZcMqzxjWwVUgc199N5m0Ft3b8gSTn6PYD0VBGVelhfGSqcwoOyi0Ht\r\nWAzTFfQu3v6jUBhqQvk3pm91aNDzLzl7aQUlFB51hwarq6X7zI6fZ+LpBI3v\r\nDL0hsa4sclBbdzbC4LJQL75DS2p4m5o8br0H6N4i/mDnIZCFisYmBvhuJHCR\r\no7QFVqx57F/FzG30grxIWFO/qEM0DighAwFX3C7Om2qDvi8aERZS3ZNWWgiY\r\nSqW0+sOb+EumCEAJTu/mw5pkEHdUv8RWB+VxMtklLYs7bOuPXNHzWinSbJ4W\r\nwMRJoSOhf/7LluvH2tj7G5BPnrfTHvrya8ueLwjkXosRNweEBkr9cTO1uc94\r\nCTaUOo1ccyDfDMuG28pmd9TsonFmF/IuYK1kmJ95/s5/gpgH6s8yKUGnczb+\r\nKN60zltSnteCAz+flcfT7PRyKlMTA0hizcyVnX/OSro2i9hbf7Hqqdpc9OhF\r\n654G4py/H+yGRobpTaMSmKWlU3jR4b3/oq0rECdkFyjlT4CpYGtSkGfJqANM\r\njzA/ZLOtT6mWxaHKnkN7cOG5zzSajKRBwXA=\r\n=WtDX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.6_1680614799615_0.9522154156679281"},"_hasShrinkwrap":false},"0.0.4-beta.8":{"name":"hnswlib-wasm","version":"0.0.4-beta.8","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning"],"gypfile":true,"scripts":{"prepare":"husky install","build":"make && yarn vite build","rebuild":"make rebuild && yarn vite build","test":"jest","publish:prerelease":"npm version prerelease && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","gitHead":"9bf44eb2b2b51d2a88f17c083cff6e45a7b02a38","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.4-beta.8","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-1e4jpucg6v2ppg89XBqfInRFOw8fwtB6zzBQAMgPoswzSQo8dLy7Up9E0NmvhFkNx+rSv+uGeRnZDCoy4rHm2g==","shasum":"6bb1ce5107ccdd0a7c2992fa342c615b0237626a","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.4-beta.8.tgz","fileCount":19,"unpackedSize":3755767,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTsRN4X54X6HQMVIPIaBxwkT+9SxGpVYF6jPo48dt1nAIhAJ3WP1BZSV1r7cAi64D4xn8sxoMcKtHREr8t6hjbNEFm"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLWXcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaBQ//do/0SlqDB4JRizHWWQQG8m0bCN12Wx7dotbhGSLWFQd/n6J3\r\nK0LkBo++z+4tzkTuPsLpurAlgbOjW5Uj2s9HixzQpbLp7t/9bWavS0vkMwR/\r\niVeRtFfypv4sxSzgyESL015sKXxT67fRP1UII6KeF0Myg0emNJu7CgqFbG0M\r\nnu0QzkIbGIKY4OHvEaisGuJhW7X0I9asLl9hzv7wjpVRJh5ISzT8tqb6z2nZ\r\nqhV8YmqmeFvirbm7RNGS7y8M9JijW7oRa45B7Vu3I17UwxAjTf5A7VddDsaM\r\nzsvt8hsr907jBJGslBDE4PblPOC9ao8BiT+d5+u6BNmt8DuMydO0/jsRHk8R\r\nlFYNGTHcQ/C44qSizrxpSw9jroN2hm/IjwE18YsybK1sn7J03FWekwk+jQFX\r\nX9S+99PphHc4QhAtQkHxCVZjAZwSfWCse2c4vWjylNxxz3wjpwXwCsj7A+8q\r\n6pBeO5rTr5TbuPpZUVm5IYxcpuq+uu7U76JzUWY0sP6j67EEFhtmx6keOh/n\r\n70xI3Od08OFsBCaL56Ns+FseisEC9gYXSgRSnOAsNATBmqvrLmfxk5Bt5rUc\r\nzz8SoozjwolARN9ZxBtXZinQnN6V+OEe6cWsQggsEhUqwhsoDWjmsHLQ6Xvj\r\nlGZm4SkCnr7yInST1aNsmRyj50z43URFh/o=\r\n=BiS2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.4-beta.8_1680696796580_0.48995487927830594"},"_hasShrinkwrap":false,"deprecated":"mistake"},"0.0.1-beta.8":{"name":"hnswlib-wasm","version":"0.0.1-beta.8","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning"],"gypfile":true,"scripts":{"prepare":"husky install","build":"make && yarn vite build","rebuild":"make rebuild && yarn vite build","test":"jest","publish:prerelease":"npm version prerelease && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","gitHead":"4851ff5e4a781ee51a7644e69ce1ed17241cd9ea","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.8","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-tLPFYWmAXRjbv+y71mX/wh0tVOlUpFkX/fscQ6wOnR1KuWlp+Hr0UvufGp4UYQ+9qtVZKmuCwsMVXSg03xepjw==","shasum":"55b9418cc62f780764a58c6094bcab46da1e5aeb","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.8.tgz","fileCount":19,"unpackedSize":3755767,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDrGrYtxDbh4RcaMZULblxMJ9oE0n6i2D0d8rkx+pfZAiAE3/gwT6ZvJOnBrOq9tvz9iEL+696koQnWLtw8bcJkzQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLWZ2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpueBAAjPiQPQopX/RvG7wRDXU9OPi1QmFphXCTo2HkV31gLwyBSYeP\r\nxuNR8/TgDGt23s01ErHtVsWszsYkfvpnhGr+ZFnMlyKmpnM5UxrAZVST6h2i\r\nv6F/wRCxK/OvfcscKP41jNhtZMoziO9qcOuzQ5pjH0dePUEEDQvxLGZwQdJf\r\nkBcFkro5lRK51bY96V3FCdEgiRbPkj32pXyICfLfMuddgHfR4Nznnj3c8MsU\r\nGNkI/BLLyPNEs00vd8a7TkZBXeUf8PgUp87brX466rkrgpM523d4X3RgJQDh\r\nE8TfyvAyysrg9M6GpxEtAzvKu5c7Mjvww+Ja2IbJfX8Oa4dMe3j8gQDyEDlu\r\nRW0e4vN1fS75o23Tll6RR0/SFopbTyhYPgeS0owZoxfLUl3SsPqHEQBuzUiS\r\n6RYKHDg6adtss3hZWtxSEdW+C5B7gbeqQ/NAM7xaZ0JhSiJREIwenF8kMXO/\r\nGBr2QuF7XAlATRx8FEVoXKReZ9+LGBl95aquMXohzT6n7+a0M6s7K7zH68X1\r\n+Su2rJOBb8h4DYYq0Y+xqrZkEBwnBeYniYpdsFxF3b3g7bKL4bRASh9mq0Wt\r\nyK3AdUwkiZ/e5uyLJt2YgjDLCEv+I8tkyVSzVGOja5CpOx7bqxqiusyQNxpL\r\nLZdidO2kfs5/fy4PkaPj2F8DZ60p8IUNvRc=\r\n=KeXb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.8_1680696950182_0.3142697960468146"},"_hasShrinkwrap":false},"0.0.1-beta.9":{"name":"hnswlib-wasm","version":"0.0.1-beta.9","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build":"make && yarn vite build","rebuild":"make rebuild && yarn vite build","test":"jest","publish:prerelease":"npm version prerelease && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","gitHead":"4851ff5e4a781ee51a7644e69ce1ed17241cd9ea","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.9","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-r2ij6bxR2hYllq0jc/iZZcKfoPwJrgUotq2LwQTtdloZxHGPqUayC6YkUu+ZNrnrlPNUHCFVOxAKIEe0pcj7Pg==","shasum":"3c1c88c14ee7da576cb60e8023d2d74ce01a5408","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.9.tgz","fileCount":19,"unpackedSize":3754608,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC8v0ucch338ccYCNFKodDLwkfVGG2GXol0NV9vxjIR/AiEA6n4DbOGote9kV8NAEkxH1xRvPWAo+GRUK5fizgCqDGA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLWfUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqt+A//TSKmwhQiD9vvJUXDN9IIPrwlU6ADDqlb7eF6hfJwzNAJswfQ\r\nHoJwxpsHMKNX1RAEVtVOCOJlOdCbKlAE6lA1vtOK0+5nMY6cbFgT9IqNq5Ni\r\nbka+hY8hIDmMvk74SeK5OtDnLXRx9lMq/v5soFAg1O4drXRXkeg57qlBdpIo\r\nHhqB6znqWuTXnInWulLnEDiRQkf4i74ZSh3CGI3oTfurc8MD6r2lGnIT/EWz\r\n8SvxKrJRSQqmj79YmUxesmqF/K+qpRPqSNCp7tRDBuS4Y5reiDRMfJ6oNUF7\r\niI2qdbkKMvH+NryGmQM7/BojwjHzE8iZtaay+RMdfenwDjPO/7cOu8zw3lSc\r\n148hu//KG9244rSarcM5JKglGTjtgN/rcZRMy93aD3+Uh6avMdFK13Ujp1jD\r\nDZyVaTtIQGJdRuqICBayRe5CYdNFfX1CsFUFwobKaSfJaCZVg3YRRtGktND4\r\nhM77njRwTFbso0EIRjP4/ULE1Wrm3fRjAj6kPvkvzH/QGvVe28xEl6sOPBvD\r\nRAdwHZ7Oj3M8HlLljzuAoQFpGhF5Ak/M/zrvLfVb89pWART8R5EGuIKK/3kt\r\nJZ24zL3HLx6fw24iZlbNItxdbAoKpqauWBKRJekwOEQCME/x2Vks5qIn6n6s\r\nIR9IIdKrcG7iene61h5zYRdrMTQrFe6xjyI=\r\n=Klxa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.9_1680697299926_0.20956344349579492"},"_hasShrinkwrap":false},"0.0.1-beta.10":{"name":"hnswlib-wasm","version":"0.0.1-beta.10","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build":"make && yarn vite build","rebuild":"make rebuild && yarn vite build","test":"jest","publish:prerelease":"npm version prerelease && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","gitHead":"4851ff5e4a781ee51a7644e69ce1ed17241cd9ea","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.10","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-gbzfpa1rEOuM7KyQourHITsk/oBERR6tvlWeZaY5W2yY9JY4axwRYa3gvJEeMXzfm02ByUbn9kVWUTgyaCPBOg==","shasum":"736d5c22b213fb0994617e66a408ab9f2deaa303","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.10.tgz","fileCount":18,"unpackedSize":4397223,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYQBOLhOuAlWMv8lRq/wycbxGh5hl4vHDfUWV4VjiX+gIgHKiZq07QxpJbiSZ6XMyuVqkVUGhbKxSHQXh62utHhZU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLXH1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpABA/6AtygDJQKiOU+GaVWfwek6CTDskVkn8yGTb6TtsjAzCSjqYTp\r\nszqcX/OrHBtjF5UBhKM6lf4WMcEv387/gLMRKnmMakYZps52Ii9bGtB27K8f\r\nr34bPEGb5Gt1t6Ymz5hwGmvBz4djrqdybmoPMcFiUEEfO2zJOS7o85DLDsK2\r\ngkKvNvLVPrQT22A748OfPP3PstitVnGrsvfhxOhpPlX3bVE4eWtyy7ugvZbG\r\nJNNp8biBazT7saSP50F6i3/XUdWdNM8dVCtyTNybzcTzlgH+7pIkz3Ycz1Fe\r\npuAOk+e0WBRZAOXpr5nNTwE0qVrXFVAi4lIQ2qBtqqXu6B+FOEr/zbJcLJoZ\r\nEi6bdc5vJKcY8g5AqNjBYfgsouz7SGIKt9Z/NFxgvapp6+7TfL4aRGkS6caQ\r\nY3dSaLLCVTIHwkyISLBn4pzcdP6bil8uFzd/JsuPn3c2VJiS/AXx8k+zhShq\r\n2jaTW33Q2C5r64DA1zDq1UQuVnyXdNWCWoO6uyWOkfvggZtO64J7BBxhJ+HX\r\nnFLaeCGzda0sy8FnfzdmDFcUwz0GvTnsJqyQ02XEoFhLu0KdT7RNVrCEglcY\r\n8uYwEIukcFaUNPcWzlnBArH527+wwhcnNGpav8IqmDIpktkiwH3PJ8962ndq\r\nDBLfl/ty0asmY4ug/EF04CW9zHaw76pISic=\r\n=tbxh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.10_1680699893643_0.18332826020826198"},"_hasShrinkwrap":false},"0.0.1-beta.11":{"name":"hnswlib-wasm","version":"0.0.1-beta.11","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build":"make && yarn vite build","rebuild":"make rebuild && yarn vite build","test":"jest","publish:prerelease":"npm version prerelease && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2"},"packageManager":"yarn@3.5.0","gitHead":"4851ff5e4a781ee51a7644e69ce1ed17241cd9ea","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.11","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-X+ebVArVpkh17DRteWKWdX4RFH6yu5rkKXtLNmQvXOQONIc7hDwiKx6K6tLPbR7UyJokYBZyssFwHTLNvh71uA==","shasum":"59cf1d28a0bce74990c9c4a777bea8685b592694","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.11.tgz","fileCount":18,"unpackedSize":4397223,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZf3fGzkLIqcXIGiRxOadAO4+0Wq8Cl/EFVGK93dtl7AIhAO3R1wratA4Qtp20tyu/bWbHbzCLzKjqlL7H6Ez9FiAB"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLXkKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBbw/+MRDgZsGcMY8sgUID5GHKIP0SB2O7SlOxDemjKkKQ1636rPg1\r\nVT5UTdB2NIsvKecsKkejVHIru3YChW6StCLWuCEzeSmtOBsqLbwIuDl0if1/\r\nIUK0X+r0UONwOO/FYHbQos+F5zCout4vPuzGfJvHSF4JcBDiAUo/Rbadr/3i\r\noK8mbWXI4ve0uKHHm4aUHFnpd1PtEs0wg6ZqLP+5Uvv+iZzMBxUV4uUrrg8F\r\nE0VXVSePXrEBCAOdvKG3n/OrKn6QxGwHSNfF2Nr3jq33mrqE7WmHarPxdaE4\r\nZhELla/uVJqCgG7+9BovoCLllG6AYkvoy5LLpfguoTrbM+PDCQpN5yGHO0v/\r\nqk149YgrcOsHqCoI4+J5TsvTv3uxkW9w1Mx/JiKOmR9HT/IrvCYKnkNFKMCK\r\njkwttUpjtsRrB0Ybfdp9NQofjed/8g7B3GHrgIKRdCnm5p5lTAoSqFyezd2E\r\nNXXmRJBa5pbTczmGu8bQ1oAPee7Tr8dQ0jXSPIqaV/Q8o5gd4taK30+QdwBQ\r\n5mnLsw1934F45/5tq19lMexmsx0I68X9qQAU2Uq2iGcmejxjIfr9fBYiFq83\r\nHynpm2yDraovVpIp/AVr1joNkvCi8VuTsk9/gn6wcYbXNMi6hD9RYpDscAtW\r\nzxvwMKCWj7OCv2dB08zHmp6u856UBmds/zs=\r\n=wabN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.11_1680701706649_0.4467341810021741"},"_hasShrinkwrap":false},"0.0.1-beta.12":{"name":"hnswlib-wasm","version":"0.0.1-beta.12","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build":"make && yarn vite build","rebuild":"make rebuild && yarn vite build","test":"jest","publish:prerelease":"npm version prerelease && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","ts-node":"^10.9.1","tsembind":"^1.1.0","typedoc":"^0.23.28","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"356b4c9f614e6e883b567ebd2527e2b36dd9298e","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.12","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-Q5fo7KCf0I52npcktsM0H4GOycGnejau2E/DnXW5RgcySBeuaaXOOrZc5D4etvtVQHDB4KCFlkZtlHZDPR5fCQ==","shasum":"efcc2dd21811e9d2add74f515e5c7634b5dcaa8a","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.12.tgz","fileCount":18,"unpackedSize":6421047,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHAVznRhATxDBGhd1nSttwwI5ZfmDuAngvGd3TvgSeibAiEAvGMGTOFHFS09eWUjY/QKStGjo6JtQySsT8kFn8AfPDU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLq6TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmry4A/8CQRRw/IwMPehRAhUbKfrSZ3YVWwk/vyiqirSQDV9MpItRSJo\r\nCXSa8dT3qojCG9UvDuBq3VNZHKQvms2kjkUpW9UnMrCqfsDQ3Ey9Ug38N8ee\r\nrOwYoekSplonbzILU4SKJwTAJMdkqsLhSpl9XR9ApOaxI4+WSENtJkYD8zKc\r\nUJhBmnYxfozJPfhASfjyNpYa9PV8QCGhmklEc9RGmVqf2iG1czkVSsQ9COkK\r\nCOGbrNrLMZ68DzighNIKJANuYWTjM76D6yOgcvI+SwJvsNjXD5ndJQQobxpb\r\nP2hA7FgUI6TAQuJqYUeSpvbt/mn51uf2DZtK3gmSQUhBiRcUb4TMQt2iwdz6\r\nrmMTsiDNxO7uAZAvUaf6DgI74SRjY2jp4L2btVE6b3Mb6u7C8eeVVxJh1/st\r\nE2k/l0jWKBbZjf3FTXTKJTkemYxcIBa8ht2gYETKy79pkZI0NjBm9tilUmlZ\r\nQLLURG0CAvkRgooGp6w1K5QIT6pmiewPG1BfWqX5jwHwxbHqgEEZE8QBq7YR\r\ngMfKrTVeSCP2/p5QRI8HiVxs369cMQsHuPKxjQ39V11CeXIXyXXtN563g2Ok\r\niUfKcoNHvm9zep8RxsPmEaNyJaOC5IOE82x6TjI/nejE4Dik4nW3nIm15zqw\r\nkLo0P21u9l7nE6qI9wVOxf/gIATz5OG3/Hc=\r\n=2wSS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.12_1680780946744_0.6985402599754933"},"_hasShrinkwrap":false},"0.0.1-beta.13":{"name":"hnswlib-wasm","version":"0.0.1-beta.13","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:cpp":"make","build":"yarn vite build","build:all":"yarn build:cpp && yarn build","test":"jest","publish:prerelease":"npm version prerelease && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"356b4c9f614e6e883b567ebd2527e2b36dd9298e","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.13","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-lE51kTU+lGa+FTAhsF38rXzbT30xzwHnAzvwTgFB5aE2e3aKDztO4YextD6Fy6NAN4v2nE2cmnM8SILTsHXkGA==","shasum":"7193c98145df35ce0a5ae589c5fd675205207cc8","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.13.tgz","fileCount":23,"unpackedSize":8451646,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8IMF71eBK83eFr6cDbpXue3pmWkn+6+vqBrUWU/9EJQIhAJfLTgMPa6OT+AIFZvQqF2UHFAF/guwI6FYPVrgTNqaT"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLrMZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQnxAAk5sRGC9EtCFkhiaVH4KXRVftXgj7EcQSHP7H2fU0l3rsQ87k\r\nzyn5t4MDgRxsS2ReMWtB1AipT5QM0inBZTJ8+z68PJtOjlgnXVLKggEVZZKX\r\nwYoxdC5/PpCbGjH0FsjlJ1dn04bmzvxHOWWt8uUS21aenCQiXbbXgBUbI43a\r\nffVPrz4Ue/sEQwQSeMDh2YJUQFekUAxXW3egkobbBZMEnlXmUJx5YFuGgcKK\r\nf9tMyBWLsVFETL18iHV/uK6T5NhFp5kWFIPQKaSBzApAGSBDmeEgy5R6Kq/a\r\nv5czEIYJgxKmshEwBLua/woazxn6c333KOPUNmhgKheQ0mJM2EWSZYJ56kbZ\r\nMBBe0sMP2TUwErsvmb57UK/j8861g80uTAmUrkFucOHRASgFSKoN1VF6paZt\r\nqSGv5d/jAIpI9SQoiloi1gAJFW/cr/mKay5nW65loVSFjNWQxsnJGZMK1Mvz\r\nDFDzdFYlVX7JkkVka7x0n8DXUrgwSr7KUoOY3qMjUHhj47ftNtUJNB0d0d9L\r\ndKvjDeyMZSIk/d6iJ8+YzDmW4NMgh4uh5s0wfNiYjk5LwJJ3BBslMtySr86W\r\nEXBiG4e6uSOzh+l8J6WsiB3H60CkmxFXblMx9kWaKOsFihMXxc2o0h+esHJE\r\nNA7bI9Gt7jRhVYUNOWmGJbttAoSktrTSdQk=\r\n=dzXZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.13_1680782104889_0.09839021260937653"},"_hasShrinkwrap":false},"0.0.1-beta.14":{"name":"hnswlib-wasm","version":"0.0.1-beta.14","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:cpp":"make","build":"yarn vite build","build:all":"yarn build:cpp && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"356b4c9f614e6e883b567ebd2527e2b36dd9298e","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.1-beta.14","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-6F1ra9xJXs74z8NpdjjclVozUzB8uFlXBw7EsP3+qrDo8Id8wQ3TUPQ3qYdiLCjI+vh6nePLXHIT2z8FoS7LHQ==","shasum":"e99b0d5df260b64c224ebffe8094035027dc92b9","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.1-beta.14.tgz","fileCount":24,"unpackedSize":8451707,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEp8K2pVWG9oA2oVn1Qu6sY+/q22TixpK7qJQTTf79kLAiEAuAJCGT7F88dWiVQQ+pG5KsWMPSzIP48OBhmELnQD9c4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLrXWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmohiA//TMh9iEWkwUYJ3P7fSTAx1qu5M4Z6KMMbjqnkNp+gpi32dukY\r\nAc+aqM80bVmOAghJrQknYfE3ftzzKY3+5ryd/DI5Oxu5gLnB+9KzBBpKD6SR\r\nHh42t1mjyJkDgyueMcaksrRG0Qmx/Q+uzGX3oDXIHikFk3MyiUh4Q/5cOYbn\r\nNAYDZWbiuNVc8tFlisAnIhxJ3/gkYq7ioqGIyhVOxW2BYeH+orXrQK16LpFx\r\nFoVcvhRgbzrXaeSK9gW/1V84+ZjAuMeGExRGpy6TX611X0A+Uc/4GdkLQtDx\r\nfkZ2TPSgdJ9Yp/4WUgIY0sFuI96Z9j/M/E3Vccme10VXBUxpZd8mTHbR+2rB\r\n3Mpa1dzeVde4fHMe6zI+MtBfyu6sbwxVrrw5iSneVxEAOnHQA4QfB4fSWE25\r\nuv8yICYDz/AZ4BzzvYnCFoO376/LAIn12ODaL22rJ2IK+TLVpppA9NEYYWVS\r\noCP2p8yvpkpLnKQqHOqilF6Hr2KvfYsA0nsUaMe+WQp2zOv8owzZKzJEoyNF\r\nN9bslWK9ZENq/cDjcwlCHUsDHZROXFZE1+TISi4tKnCrFgt8vAPlU7Gpf2Sy\r\nOtQ11YO+sFYrPEmDiwNfUpWzrYTkgY85u7FzOXi8fmGEoXuqNhBNUPeu1+DB\r\ngQELL5Y3jIlsQGhsQskvI2Df2UXiah10f/k=\r\n=CC1s\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.1-beta.14_1680782806531_0.41436268258181985"},"_hasShrinkwrap":false},"0.0.4-beta.1":{"name":"hnswlib-wasm","version":"0.0.4-beta.1","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:cpp":"make","build":"yarn vite build","build:all":"yarn build:cpp && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"356b4c9f614e6e883b567ebd2527e2b36dd9298e","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.4-beta.1","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-tGOraya57YUZuONbGiaSHkZYxD6/0Z0HL7qQz4GMwYI0kWQQSE3ZmgrMbu+V93diRNQe/W2KSAZWZ1g6aeArHw==","shasum":"7b68952ec7e36a4b5dcf8e740ae801a70202323d","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.4-beta.1.tgz","fileCount":24,"unpackedSize":8451706,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCL9/ov8hyxt5mFjISiNLEdNhelv7mjAuborX3L/AExOQIhAI2qlIfX/FSm+tm24qZY8Dg+k+ctMSw7BwXmQFC8SUwH"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLraXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUUw/+MuNOmaEC9LmdK2kbriYYhFingCvh8k0EgZKojoj448bTZZEL\r\nDJ5N1EprKPeAlutWcuT+6En1kXIOUoDoeT7fdxk4NxM3NTyVxbwS6MVMPIxp\r\nlGtX+dDhquVVFf+Amg3PUgYdCuaPqPizE9zwkjogzG/D2S6/sXAPn0IlE/Ro\r\nZ2dk4QbuqNrEdXuYMkWyBDK3hrrv7AfhnEbGdck/NuZbhPosPebEQzs73+Q5\r\nBEYywdiybRV2oFf2TT185/7QnQWsyf/CfMEPljXNmE24RFApdiCJZuh6dLvG\r\n4hEmPeUI0tN1HiuA9rFzqPdDzeMECWjQCpvxoRgG422BsTLPTmmPu9weZa6n\r\nw8PTiEiBysZG1/bpJ+tZR0vHSCGELS7agswtWfU2zw34nfAtQcOE9L/y33sm\r\nkeE1POpRbyO+obUDCij9IQO33y3znhAV7grRfqCOM+zw+nP5LtE6rAoMpxkR\r\nTBfNkP2wy5XqfxH2lQUXiKVT1VSMvqRCZN5U39ifANSIbMnsqEyNaowWRriO\r\njfwLl5lbK4f+GVz6Js5Nt2N29Mjls+WLXRXkRke9xtwBCEABsVfzlzdH275I\r\n+a6wlKx1asG7fwp1QO0w0gAKrA8xxVZcYE8kw1A6d5d+al6O42E+ailIw2F0\r\nArbqcdgJ3r+Z5neeM2VkAbS3uO4ZuRsdy4Q=\r\n=Y9g2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.4-beta.1_1680782999710_0.020742881359431697"},"_hasShrinkwrap":false},"0.0.5-beta.1":{"name":"hnswlib-wasm","version":"0.0.5-beta.1","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:cpp":"make","build":"yarn vite build","build:all":"yarn build:cpp && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"356b4c9f614e6e883b567ebd2527e2b36dd9298e","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.1","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-vlDQ5Ujiy947uvZQbbC45mgVcCVK5gH0Ckk5H6hJdCHqYiKvr1xkNvHxxpEexBqX3kom6hvFv6+UZTzd0ZNfQg==","shasum":"3f714ea9100f0321ff7a6df9fcb1cc152cf148f5","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.1.tgz","fileCount":24,"unpackedSize":8451706,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3dZ3UWXbAHM027l0ZSa2Q+R8wjRgwlbEQQge8nTRz3gIgAb9vJDmfXMrLH+FRQr05ZPnMcWDrmlIb5jBF6Vk5QpE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLramACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrSNxAAjKuNbT91DMapbyZLGGsCYyCweNjgMxHcTPRoJ4ZSba2DnQBL\r\nK05iD5Xisnthimld4QTVOq04Yx7FqK8zobl7w1q2mMcBMfSB9zfD9EPS71iQ\r\nqBCdAKtblRSHugpI4hDV0uWelQojF+EYn319RIrfJfY67CnmFiRo/BJ3yQQv\r\nDnIWyYztsdD4fcBVc0reFLNsKRglpbrzdegMhPg02XGcEr+FZP79oPsZX1Ia\r\nFhbNYkwcDJPombggCqxlwaapbFOFV8fljt9QjlO2keibrlOfXX0V1W/8YM5H\r\nGLjMTTnZJcTdpAaS+e2vA0GwD2Er9/SZRy8NJymcue/IHnrxq246DBdTi8ia\r\ny28DyjPnl3fNJD1b5g9VkbuCjyXigywWy6VCD2ksnh+F23cbwYbgzZm8DHLD\r\nVTQqb1dzsDcEANIriCRY4rRgwY06DDgXedvHNn/dFe8BEMVrJq33KE9te0t2\r\nnHauKXdd4IOgqmqSS/bnaG3XDTlWeIUKzaDymFKtKEzqJas64CaUvgGIloj1\r\no4uWXiTy3IYuJDp/Pzc9kI102tMwHTsJn9Avf5KYa7HOd6hKS7bN6mbVR+tN\r\nOMy/ocfEcdpBU+E0i0de8q46P5vmICkQChI5fYJmxhyxsATUzHKjibwbsOhV\r\nLVLLp0o5IGHQ1+PtZcP0Uw+E1blj50VCb7k=\r\n=oB/z\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.1_1680783014007_0.37645213536182953"},"_hasShrinkwrap":false},"0.0.5-beta.2":{"name":"hnswlib-wasm","version":"0.0.5-beta.2","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build":"yarn vite build","build:all":"yarn build:emcc && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"5ab19466da27b44e00193b386905db6eafa66018","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.2","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-bwdptam03BpVMvrCUkgOatm+99EdidCoK8/d6b3Z92LFVKTNv+nrfGFsYoO5iAXUQf80lnYTqZ9Bi70aF+YSUA==","shasum":"007858cb1c0772a42745050221da71fa76f0bc59","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.2.tgz","fileCount":21,"unpackedSize":7895460,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGObhz6iAmSA9WetZFv+5eYbMko8PLPREiPqXCARhGTXAiEArRbAVTeuLeolK5OhzQGiwj8UTbRfFPyp+eonoYIIpqg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLr8HACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpsbw/9Fn6cciF612Da89kddNKvT+Eu3v41AKh9NS7rBfgsXNFI4gRr\r\nKtqgsI/27Qk85PkXoJbOVq7K2vuOEhwz8n2GzMUVnEX8HjVgZMd0lNU93kSr\r\ndo2i5MTn9+rK5jt2k6EDvHqSqQwLq0l7u7hijIQkMAMDnwUQWkai7kts0fsm\r\n6H2F9TYS538/rmVGnIQbOeqDmJlfdlbvNoUkkZyPyq6/w87Z7hi3296ja0hU\r\nxs+2c98Z3TzH0E6r7sEFAPZ7X4HU7ssjwox7Wlj31VWKweekad9OC6Eu2ni5\r\nPfPBd1ePfi4atJ0NH3+1BtgVPizifb2T2YZoa1iG+K1zwL6dEeOrtGR9o18h\r\n6cpVD/IYqx66z1Kg6aOyEcUUzpfWuDT8ThcgcG4sSNJb4G8WSoTKDew4qJ6N\r\njOCCr9ANJudFd443ByN/mI+K8QZZzDplAd2w3k0KyK9JoGmhhYcldM08Frxw\r\nUpkd/g3PjWpVxvYq77+n3Ts2CQ5WWcv37pIuzBKLY9PZDpsrjUVI5JPy3hAb\r\nYOwYHCQoHw0RVWtDsZfN0gPdDanjaddstVdhQ+0GRYoM5EunvkooxeEc2Vba\r\nWt1ZLetZPBDtzEdEjF9bqEtK+WcLbXlW0VOq4kV2W7dvga127BLhE2MKduh6\r\nc3akoRyq3ERtwWtXRB3pHNHK6dzsnSrdOqw=\r\n=ZiwD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.2_1680785159387_0.15174899577573786"},"_hasShrinkwrap":false},"0.0.5-beta.3":{"name":"hnswlib-wasm","version":"0.0.5-beta.3","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build":"yarn vite build","build:all":"yarn build:emcc && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"4deed1905f549583560b0dfdd2d4f4beb3de6b9d","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.3","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-RWKuc0qQjgZhEVX8q8pUfK0nxX17/EmRU+P1dvP+q1crH/+VRD8hbappH2iqBXIVi9lQ3OW2PuU/c6N+3lSOHw==","shasum":"672143b95977a53200e83ab40455e8b4ef8081ba","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.3.tgz","fileCount":19,"unpackedSize":5867160,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZ/awTpLVAgOxqnRiKKcpOf47NR6hs268TsdX3ow/FJAIgWJ/VSUtG0k0e4WBl1V5KOBh7r9J32qNmp2x6Q89C3xk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLr/QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpgzw//UWcmFIdlI3OW5TCHLpmbiHGVo9AaInRTeWX4sTHruDQPFG1g\r\n9jei60rHJAbDWH0PDZgjKxRTo2/d/ATmcm7aDJTSy6VYq5Mm9GXWsYsVJ5cg\r\n3ZbyP1Bd0yNIK9l7T4s9lk/Jsp0rQpJiObsdvGrnQ+Nvv0WPJkd0IYsVmrhr\r\nab4DOE7U/dxSVz8CehevazxGv+DN5Dn9S+V8q1aoXp6CPIEBZztfHT89A8rm\r\nX62MifTZF7TWkx4dEPzqAp157bYtZyJ7laP1duhd+8mvvOy3Hohi5EoY+kWz\r\nKPnkonIF8Bu7xIs4vex6ATscBAZK4Jcipx2zXiDBymlLyOio6DWajBs9Inlg\r\nYRQFHRjNxiqtV5tCSxQ1Vo+UBY93XSTSJERNz6H8KwCYBxi2xbHTvJIapVVg\r\neKTsXkx4golLRNbhjcMVtRyLshNkDUQI9mLrByVFrXUbBXFZVCI5r7PRnU9y\r\nMpVMkpde3t6G3hprXwQOKOjsVVBix/qOWQFddNVtvaSw3ZFB++sS/O6modG1\r\nC4dijcq13WtdzCrnjQE1LZ+gtcs0MCi7fGpP03iFVSlMiEqgoKB/rELEUjs2\r\nkL1NffRlYF7NglG2dgE2WQJ0IrTHSeLaXiZeGh89i7Ia9oel5wxG+fvOa+8G\r\nxlYj0L7GILrszm5jTLmxmBVb/Aw6Gugeljw=\r\n=4FI3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.3_1680785359869_0.5191072591559818"},"_hasShrinkwrap":false},"0.0.5-beta.4":{"name":"hnswlib-wasm","version":"0.0.5-beta.4","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build":"yarn vite build","build:all":"yarn build:emcc && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"4deed1905f549583560b0dfdd2d4f4beb3de6b9d","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.4","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-sxJYewFPrv2mwdY6luzQJq5pdfZJ7DfL/w4gvUteyULWCTS1UyVLD/5DFyNOzVMN1QQkDT+lb3K/A3ObAohhkg==","shasum":"617cbb67f23452ee4121203c622a337c7c3afac9","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.4.tgz","fileCount":19,"unpackedSize":5867160,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHweQ6zLKn5tdjDHeIBcrlpHwSAlULyeKn0P21sEyyuQAiBODbhxmx9VvP/Wx6q/2XNVPC3d5U9o7i+6dfDFeSrYEw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLsFjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmomTxAAnrkv7xxtdzKykmfVaD8PnyoKmL+RxD3jg6nN0LaVLRQJyjde\r\nFhY+De4Q06zzJdP8o7MgaYO1GdatesR3jelIZLquPDZdDNPMiARBiE9tMeke\r\nMU9J8Pe1YhEfd2NYgPgeXfw1FFDwR5luo2FId9VxBgWP5jaY7jXbDzg+zgcI\r\nLHMzifCozKKVXchM/rUn9f//HrAvkCSEkVvrYubmoW2kHI6QjULdtCFIsO7O\r\nB8hjukzyEFyjjpqEHxCuFUWtrlfkGuOFoeoB5zKjRNTTjq3VrnH/JybKFVir\r\nN1KWEqLmb2e5vQ3TWNrbBpN60qJ/RkH2JY636CbCZ4fLJDCcX9CrnSoigRY8\r\nLidb12zh59lMeF+4LTZbbhbjcucxvvc6tk414hs/zx9I8XmSVyVlLkqWWV8s\r\nnxnq3PQBPL81E+fjShsxBlPPJ8oPDr8IfGLwjbeI99GmmuB81VN+RrhB4r+D\r\nSx8Ct/CBTDrbXSqa709rTNlpBn0GuGVISXT6mNI66D0/yqZxIg5iYeg4vYfh\r\nm9G8orAdZ1OB/NgIRs9J2OBOU4XGOKALt/F3xl1ZILg52wjFhrS0K5m9HbcP\r\nfCYb+MclFAW/TXSRr8U0Mu2youN22zDR+tlfpz8035Wr1y5+cHQtxB9z+LHF\r\nw39JZFPQ7d7gb3F6iTi+IKeMD0jOg8yK00M=\r\n=q4du\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.4_1680785763118_0.17623190193481908"},"_hasShrinkwrap":false},"0.0.5-beta.5":{"name":"hnswlib-wasm","version":"0.0.5-beta.5","description":"typescript and wasm bindings for Hnswlib","main":"./dist/hnswlib-wasm.umd.cjs","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","exports":{".":{"import":"./dist/hnswlib-wasm.js","require":"./dist/hnswlib-wasm.umd.cjs"}},"type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build":"yarn vite build","build:all":"yarn build:emcc && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"4deed1905f549583560b0dfdd2d4f4beb3de6b9d","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.5","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-/LkJTynCFlwI8ULy4UX+xkOvuGPhllqmaUteK00l97dadsNlLxEbvD9EV10rddv3V2+W+JEfq7X0z31L9EqzuQ==","shasum":"a09ca093c55de87b7939a56990d2b2dce7562690","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.5.tgz","fileCount":21,"unpackedSize":25725382,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAlJ35Eo40I+YC1R1ALFLsXb23RddFp5Qo80ocwXo7N9AiBDhKUGtcLkejESqK1wy4PDygcngpb06QhtBeiSNXFuOg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLsJYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3Jg//XjFpr3QYM1m0G/qrg/yn+bdpgGQ/0F+J3J617Yvqz47EBp3c\r\nA7V3miTGIKs44zmjYBmBphHjpNutPPplxZB7ssze74YmU48ehdk15tboSGUY\r\nTS40qkObd56qqVNqZ8A9qzRvsmeH3aK4RzzJy5BxYaksI0Nm9Bt1JAczmscq\r\nm4cs+BHXEuzKJ3/u3NZuhJgQdQv/AN4gi3JWkFjxYoRcErWFlk3iuDqGUu4i\r\nI0y+8MQyS71lXle2YGf/PKy++lUXPb9MhBugjuf1y3bHs9w9tG5RUK52ZbGK\r\nhIricwr13k6Nnqb8UJ+oFJMlGnZH/CdqOZr6akioJFLZsRVDuROQUyIzUQkK\r\n5O7f8DJfbc3FhtrRjVPDypMQ/YHjDVvTn3OcD6tleA4kY5dWvnEUNiamGXXF\r\nt7x4fpW+T8Ti33y9whOWRZXXRTZpl/a4gjSUSq0ZkJPjduIrHGuDF+RiCFQl\r\nmAvqabzCfCPUCd3g1lzpwi1EmvAaP4a2hnVMpFsr5j+zqCs7SSiBqbwgcW/h\r\nVgedNHcrzVY8/axrDr1p6KwFcfY10CVcnKeWV24LtX1t4nSksnpQcYgBrr3y\r\npBpHuRjAstw0lxCfmX/TNcQIN+kebd1ud0KnOGtG2VE8FLBHnHyL94BMNrjR\r\nKv6kx4PokspWd9L1EuwKoCO4G+xUK+nKR9c=\r\n=5kUz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.5_1680786008562_0.5466213130939301"},"_hasShrinkwrap":false},"0.0.5-beta.6":{"name":"hnswlib-wasm","version":"0.0.5-beta.6","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build":"yarn vite build","build:all":"yarn build:emcc && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"4deed1905f549583560b0dfdd2d4f4beb3de6b9d","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.6","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-hXaiY5xFiYuPLml5LkLyCoWWrUAawhd2OdVwUW/Wpx3yUKKudIsI0l2Gwli5K+V/4Yk9vCxeSarT6vl67LbsVA==","shasum":"bd76156009e14f9053d23272e1d0e70e692afb19","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.6.tgz","fileCount":21,"unpackedSize":9712934,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEyY1KcU4nNmRdzmhEUhsm4b+MCWVn3DZjHUiH/iaVOwIhAOxaDOxb7Hwji5To/cL4PjBjDz9it7kv16wV4vtFneYa"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLsN2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmozxg//YEQVPW/iNpw09o+W80A/CAFLd2kv24k2t7N1JswZu6zY/iDD\r\n5KxBQGJ4U9KcAQl9sU2usx0M07pEwlR/H3q5AZlIbWkjZXeUlzR2Ke+4r9TK\r\n0PCpaRI9gzXsvbAWkcKWIQbD5CZvnDbiQMKjnTZh2qD6rm5Nn1HULA0nQAws\r\ngYWa4uur17xdJ5yipy5pIdpakU/bVR6OA7NrgUtwVRqfhobU+BMOGdHFuIAM\r\nmuusixqyccCJWYNS5xoa7JGIWWt+60OsY2dgM0VEB03sSgx/z0lfHHAZR7eM\r\n6gW31sIXRxV1/W5m8FrX8rDdY6RURXyPaN+rf3wwqhuRxhLGavml8Xdwx2nU\r\nkEQ0vLFlM7FDh+cMJzTPqCTvPlteJOXtAlwKQZwFuqgxx5CtuqqFFQL01eZw\r\nyui75nTmeBQ2VGX9tzk3NDWiTPLhLjGC6ZdagAANU8X3K3NIf1LcLIRbayQ+\r\niqaL3fcg+oAfrF1cow1gwaagC1u2UPMPZMmU4TwdQxkGX+l9rMgfQfdLgkEk\r\ntJZIIfZJxoHYvYtNpPesSzKYKMqlAK3Vj8NixreYlPGM4h8RLbzCzXcuuyN9\r\nRIxAiF50B2JVbTQVtXcOdS0UwbqrANy7HkQ8pBKK2LbA+QuG5fzXaf4BataE\r\nMMJMDvh811XgQpSX7R/Q3S2unvdcapbcFoQ=\r\n=RCKQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.6_1680786294144_0.9775627558188229"},"_hasShrinkwrap":false},"0.0.5-beta.7":{"name":"hnswlib-wasm","version":"0.0.5-beta.7","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib-wasm.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build":"yarn vite build","build:all":"yarn build:emcc && yarn build","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"4deed1905f549583560b0dfdd2d4f4beb3de6b9d","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.7","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-ChlEr5mIKqE1eTgXSQJOfRya54QC9ZwocJQavRLJBtICP0NpSFgJ9ROaGxXR7jkjhsbbIWWj2agM4yfAsGC/hw==","shasum":"3de6a3c6b2022b9868bd66a7c896fd064739dd3d","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.7.tgz","fileCount":21,"unpackedSize":9712934,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWLBGsOULW4oTfhPwkvUGRD7VeK1fZnVLNNmA1wnCh1wIgKDc7Y0FW2kSxShlkPCxXffni7tVLgIlEEomQOPLzYYI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLsdrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJFBAAj/V4Orx7+P04sQvbYEulPmkUVfWPrjNQda2sP26usqveuzJs\r\nBOX5sBY2Bi28Me4fUtxE6+3gADK/bUVEcrRuD5eACKP93+yISLpgBTxfD2kB\r\nl73todhBT1d4FfGTexudrri8BOLawFnRGmdSWGE6QAmurepXeWK+BVFEdDjn\r\nBhDLcjcvitOp3mUf5QjIp+nZTyWGtrvAf+smtLp3svFoCJfd7boL2iqTiF8s\r\nK5GcWMY9q3D4R0V8jxsz0DtCmZVmcIlhiOdUhByzBVZKdO1l9DNiUtgpGBja\r\nFlyHbYUfkXi62ovR+JzL0cknFIj4oflklbwlsXaEyVGf9ViQv+8km2oHnzaB\r\n6y7WZuV1ducexEKOUOiU9V6/QqzGsG5F4X4tRDyv5gXbab/YFZYGnCmMMoNL\r\nywBB+fT9pXgIEXe2fTgUEsaWQ16JfGya6LgRFw4Bp/TuWYrh1cv+P/FPS3xx\r\nSzlCjyTCr2DXk5sEZfeo0BuuSqg2LznNwhIxZTTfFx3ZMr5oJBTfTioZCZAY\r\ndVSD3jXKNciU3w8UeKtLxjlgAB4/ilBkcePgdW0iYnE9EiHwcIUOs/bnwoYc\r\ndqLu15fP3koKILa8ikN4ijxWprM/L7U28hvGXf578Zojp9gskUq7hGkfGeiP\r\nDHe0a+mB7Jx4ig1WaYq+EaNpZrcbytNg/zA=\r\n=mf9N\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.7_1680787307061_0.9612221181346143"},"_hasShrinkwrap":false},"0.0.5-beta.8":{"name":"hnswlib-wasm","version":"0.0.5-beta.8","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@vitest/browser":"^0.29.8","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","playwright":"^1.32.2","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"4deed1905f549583560b0dfdd2d4f4beb3de6b9d","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.8","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-jun2Lmi15F9h980C+6Z4ln1StwKrYuPUtYhNZI5zEjZ2nUDwLvYtYmmusZEf+wXuhXWVG5inur08QzpCuRUpnQ==","shasum":"1fbb2420c6029471da8a577e7038045f0b07424d","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.8.tgz","fileCount":20,"unpackedSize":6852423,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDwpvjrzrsWvYKr/y7abmtBWtyU49lA7ZAlilUgyUJs5AiEAvpybfAZfpEKaY+g3NZyrhwC46kFbYuc9evLoISyvBlQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLtakACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqycBAAmqsZVagHwlTf5PdooPRn5P256s3TOCOVa5yYHDTcjEgyD8in\r\nRUnT93+aNUjVcWb0k++TIglqnwcDkYQN9p+qjgYHocZX1vMtNSbqKrq6pwSi\r\nA/i7L+azLL+Ouf33UjMsuOhaocjhErXYusGmDhrjQ8wDrvNiv36UdpX63N/7\r\nxh45MLeHzv3jMprPvU/Jk63TSanJMQ2zQHz0K0wbVEN0aiz+6rNWw7aALpO2\r\n4rusbYrxZR4BfeSWLHFeO+2KLxKF90FJZBGmFuArZLdP4/fvmomzXVbRlFpy\r\nVg1wfquea2Bl1zeVGkUSNRI7MHOzsq9k8fnu+sVMRi4JPuMDCg+MIrWsbpLk\r\nrAJVLy2IDtBYBImhmPefC8vo9UP8mELOgJSmjM8hAWCel+mNGxv9RauWB2Lf\r\nyZIYqn0PUA+OKh0FTQbre5x3Bc7MICBhOrzAfjqqNLD32Nf6gDMW0JJSJvn6\r\n8eKscSQNw2X7uvMCNwfLT9eXhjOsStsf2Gpjxfw3QH9lPrDDt/06x29E1isr\r\nej2Gyk1drSnpgVN15sZTfl18CfMhsruDd/p38qbx+wO/743zTEyXjzlppgns\r\nudyv2nI/Uyi6vTjbUc016ZeHB7i5AFoYmMwU7jGCai4ks5bsX0eK+q/tI4zh\r\nnt8u+1DNHD/MXVjftCqPXF5koR6xgl8cB08=\r\n=SGI7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.8_1680791204668_0.9808691764704722"},"_hasShrinkwrap":false},"0.0.5-beta.9":{"name":"hnswlib-wasm","version":"0.0.5-beta.9","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@vitest/browser":"^0.29.8","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","jest-extended":"^3.2.4","playwright":"^1.32.2","ts-jest":"^29.0.5","ts-node":"^10.9.1","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"4deed1905f549583560b0dfdd2d4f4beb3de6b9d","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.9","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-kH7/I7Y1o9Mt9SGruqe6x4rEnJzMa2l0voIkCpXclvwmxSJ6WDyI/mkTjB1hZu3gzTC1q7KdD0QUOGsS1aseFw==","shasum":"47f4bcdcf304a19cbb4201e2965177a405e78e5a","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.9.tgz","fileCount":18,"unpackedSize":6831447,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgv2Y9vYRp+dOOA2rGOBU4sU66lLg/8HFXNj5liBf6oQIgce+wt8RewG1rHKLEwQ5D1EnPqfqssmDDUumMPEhSDH8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLtbEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrbPg//QARAyc72HKlTZVFF2gMgUYxsK6JIQ/f1brwP3I9tFiiiP3nN\r\nesM+dxxhhoGEpl88/NKn3x9mrWk16zvK7j1Rf8IQmCPiV3YEIcmRH4rFt5p+\r\n/ivbZtWiFC3pCtS2cJiXNE/YI4cN3i7paXlyfnGpa9w+fvsgTpuhfam9tP4R\r\na25EU7MDmmbUnZSf+4t0Y+IM+EsjJT/mnUHG4zQaRajTdO5uOFkJMFy7pyna\r\n9rL59NGdOqACbmnb5xKXgQ/PAe0LR1eY6WnXCcOgNRSMIqoEvqaSUbWWKK/k\r\nPhB3QkHN8SZU3sMB2RGIl6QhShhJERJNIftNJZdzFC2p/vF5u+efqgC37Ste\r\nHGE21JDVAqIiZ0JGc+CaHLICSbPnHuXqk68n2RN4nGWfe70iLvK6Q4tv4rTO\r\n9rNvXdQMmB5VDkPXAecJSNuAYEJdj1tl+6laQlvx5orV+n7H92Xc6ac9XsoJ\r\naljpMPDdICElbb+CjToizbjnrT+5epgi6H1Jn0xIXQucXpC0YVMB5pVMK01B\r\neMNK0amM4WA9/e3XAc5BkZRsloINVcLa5qni63i0I6+Hnkb/28fn0M82z+n0\r\nqmiXthhNlgzo+1Zf1rRSNHQTtFzSmPZGT2PfF/Di84SC1jNMAMhxn33KvkQK\r\n7fBbab2RF2xpzrHkCdpsOIqgLpRCtoytEhw=\r\n=axph\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.9_1680791235938_0.9755751137851725"},"_hasShrinkwrap":false},"0.0.5-beta.10":{"name":"hnswlib-wasm","version":"0.0.5-beta.10","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"jest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.1","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n## More on hnswlib\nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. It has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters:\n\n- M: This controls the maximum number of connections each node can have in the graph. Increasing M can improve search quality at the cost of index size and construction time.\n\n- efConstruction: This controls the maximum number of nodes that can be visited during the construction of the graph. Increasing efConstruction can improve search quality at the cost of construction time.\n\n- efSearch: This controls the maximum number of nodes that can be visited during a search. Increasing efSearch can improve search quality at the cost of search time.\n\n- levelMult: This controls the number of connections between nodes at adjacent levels in the graph. Increasing levelMult can improve search quality at the cost of index size and construction time.\n\n- randomSeed: This sets the seed for the random number generator used in the construction of the graph. Setting the seed can ensure reproducibility of results.\n\n- distance: This specifies the distance metric to be used in the similarity search. The choice of distance metric depends on the nature of the data being indexed.\n\n\n\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"85bbce33b649fa5c707b8f53f185ead6f25eb4e2","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.10","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-/+IC0r1Ab5SWENqmJit8150keXNBPSZcpII4EGsJuT0rUTx/AQ/q+JpkCCIQw1poEv8uGmjQ1mvDE9Vk5onNBA==","shasum":"b62a3feb9b19d953c6daeb58a1df1c940054dcbf","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.10.tgz","fileCount":18,"unpackedSize":6830006,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGasg1xsHIrQ8kGeGkWeEsmW0GTfMXlxf6QJMO10JaoBAiBAUQ9efGz3jvXwD4YxmfJy+5f/y++UKEOez7fjcWwwMw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLt7cACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4FRAAl0G5mpq7rDtpIXshsFh3CQk/JBEqJZ/A7cIChdx6Hpmvw5h6\r\nNQjHfLRDA1Tex0VArbzyAoNy0Jk239LbvPKXFNTdX73myC0S1IWlbSyWmBLF\r\nOg5z2kaGdIt1Fh15ouPPo/GKns6MQdorhNzUHB07M9F2Z3UZmqIASSd/15Kj\r\nZHgWNRXq8sfzGyErb4WTvGWn1oCx+3nJVFbxwsuF8WxgXze5ISO5ItbvKudG\r\nH4aTVdEn04P528UPe+Ra0NChSV4THaRDCGwqmAvpz+mmYfEATBO4mMAZQGlT\r\nuLSemd3vp/jqPS9Ole4qyjrxS59dz5qYKNrEtsiJ+wjBSZ6vwzONTFbifKu9\r\nJNknmNeXO2QnXIwobkaMIhp8mlJ2d0Cm4z9sU+XtIL54WKu7T1eq61VtdZhz\r\nlcb5xouBe0M1o7JBWcTsMSKZoHm8BUejR//IZRQyGOuF99Fk/WAq6tHWwEAH\r\nkJ6loQY50/8y+zQm5II8X/uAZz5ZMBXSBglexTF4d92ZP7Fjo4JxJWrGN3Ko\r\n3wj0QhZK4fFN0RigQgKfHAFDH+1EkIm8J6mg69xzZy1E+iWTUNQq+slkYlVA\r\nzqo3h1b4zOYEAGT4aKr+sJM0HLSLEiAWZAPQ6dE7p3h4xYGq0GSb5bEU9hGj\r\ncpI4MggQdC7pF3Nb45UebcMthvpYbx7SL+w=\r\n=rDnC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.10_1680793307814_0.08963940487029998"},"_hasShrinkwrap":false},"0.0.5-beta.11":{"name":"hnswlib-wasm","version":"0.0.5-beta.11","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a wasm version of [hnswlib](https://github.com/nmslib/hnswlib). Created by @ShravanSunder\n\nCreated with the help of library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/).  See his wonderful docs here, [documentation](https://yoshoku.github.io/hnswlib-node/doc/) Thanks @yoshoku! \n\n> Note:  This is still a beta!\n\n\n`hnswlib-wasm` provides Node.js bindings for [Hnswlib](https://github.com/nmslib/hnswlib)\nthat implements approximate nearest-neghbor search based on\nhierarchical navigable small world graphs.  It will work in node.js and browser and is compiled with emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node is a accurate description of the API.  I will have modified the typescript definitions the API to work with wasm.  I will update this documentation as I go.  I will also add more examples.\n* The big differences are loading and saving the index.  It supports `indexedDB` (in browser) and `fs` (in node) and uses FS from emscripten to save and laod the index via the virtual file system.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md)\n\n## Usage\n\nGenerating search index:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\nconst numDimensions = 8; // the length of data point vector that will be indexed.\nconst maxElements = 10; // the maximum number of data points.\n\n// declaring and intializing index.\nconst index = new HierarchicalNSW('l2', numDimensions);\nindex.initIndex(maxElements);\n\n// inserting data points to index.\nfor (let i = 0; i < maxElements; i++) {\n  const point = new Array(numDimensions);\n  for (let j = 0; j < numDimensions; j++) point[j] = Math.random();\n  index.addPoint(point, i);\n}\n\n// saving index.\nindex.writeIndexSync('foo.dat');\n```\n\nSearching nearest neighbors:\n\n```typescript\nimport { HierarchicalNSW } from 'hnswlib-node';\n\n// loading index.\nconst index = new HierarchicalNSW('l2', 3);\nindex.readIndexSync('foo.dat');\n\n// preparing query data points.\nconst numDimensions = 8;\nconst query = new Array(numDimensions);\nfor (let j = 0; j < numDimensions; j++) query[j] = Math.random();\n\n// searching k-nearest neighbor data points.\nconst numNeighbors = 3;\nconst result = index.searchKnn(query, numNeighbors);\n\nconsole.table(result);\n```\n\n# HNSW Algorithm Parameters for hnswlib-wasm\nThis section will provide an overview of the HNSW algorithm parameters and their impact on performance when using the hnswlib-wasm library. \nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. \n\n![](https://d33wubrfki0l68.cloudfront.net/1fcaebe70c031d408ae082da355bfe0c6ecc04ac/ba768/images/similarity-search-indexes16.jpg) Image from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n\n\nIt has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters.\n\n## Search Parameters\n### efSearch\nefSearch is the size of the dynamic list for the nearest neighbors used during the search. Higher efSearch values lead to more accurate but slower searches. efSearch cannot be set lower than the number of queried nearest neighbors k and can be any value between k and the size of the dataset.\n\n## Construction Parameters\n### M\nM is the number of bi-directional links created for every new element during index construction. A reasonable range for M is 2-100. Higher M values work better on datasets with high intrinsic dimensionality and/or high recall, while lower M values work better for datasets with low intrinsic dimensionality and/or low recall. The parameter also determines the algorithms memory consumption, which is roughly M * 8-10 bytes per stored element.\n\n### efConstruction\nefConstruction controls the index construction time and accuracy. Bigger efConstruction values lead to longer construction times but better index quality. At some point, increasing efConstruction does not improve the quality of the index. To check if the selected efConstruction value is appropriate, measure recall for M nearest neighbor search when efSearch = efConstruction. If the recall is lower than 0.9, there is room for improvement.\n\n## Parameter Selection for hnswlib-wasm\n\nWhen using hnswlib-wasm, it is essential to choose appropriate values for M, efSearch, and efConstruction based on your datasets size and dimensionality. Since hnswlib-wasm is running in the browser, you should consider the available memory and performance limitations. Here are some recommendations:\n\n### M: \nChoose a value in the range of 12-48, as it works well for most use cases. You may need to experiment to find the optimal value for your specific dataset.\n\n### efSearch: \nStart with a value close to M and adjust it based on your desired trade-off between search speed and accuracy. Lower values will be faster but less accurate, while higher values will be more accurate but slower.\n\n### efConstruction: \nSet this value considering the expected query volume. If you anticipate low query volume, you can set a higher value for efConstruction to improve recall with minimal impact on search time, especially when using lower M values.\n\nRemember that higher M values will increase the memory usage of the index, so you should balance performance and memory constraints when choosing your parameters for hnswlib-wasm.\n\n## Resources\n\n[Learn hnsw by pinecone](https://www.pinecone.io/learn/hnsw/)\n\n[Vector indexes by pinecone](https://www.pinecone.io/learn/vector-indexes/)\n\nImages from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n![](https://d33wubrfki0l68.cloudfront.net/f8df59c49b28522dea11e4293307af2e4f8d97ed/a6992/images/hnsw-9.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/e5194e6f5b1aad4b940e0d3f1957b71bf6c2f25b/40135/images/hnsw-10.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/1b0b0b0b5b1b0b0b0b0b0b0b0b0b0b0b0b0b0b0b/40135/images/hnsw-11.jpg)\n\n# Other Notes\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!","readmeFilename":"README.md","gitHead":"09c6c55a712856274e6007fd8cb365b04a919600","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.5-beta.11","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-gW/m15C3m5wxw+tFs4PhgclP9ybpZM2UGYk15VJf2yIzE5WSMzFgGMZrIlh1BcBWnH0JsD7f41PvptPfpSZrhA==","shasum":"c429c13133de7f6553a2002c95ba83469298203e","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.5-beta.11.tgz","fileCount":19,"unpackedSize":6887968,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVRKYka9OjxpX/OFnluqg3yDQFzwWLIVsgFPHVEgjhiwIhAIzrcaXag4Lmy+Eef9SkTG5tJouEfOEXBLCnsRCdujNq"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkMGwXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUuBAAorj4WVyTURT23RauZozBW2yHzOR2nyMm6YgJMMRVXYm9Hxsw\r\nzEv8ERFWnUTQvPY5Uo0cqtoRfqmsuA4DGKxZhaF2ndei3vWRp2adxgb6QgIA\r\nVAnGvp+c6dv6kU3wO1tugpQuxeupeL0K+tTtVbRXOGCrM64AkjcPUxuQVzMd\r\n2o7c7ym5+HxW6iTtfzcaXZKmauijErpiXvqH0kVdLhE9SF0Aq1hWnAPWvaGF\r\nsRGS7BEZbGrRqm0nIukt9EHXRx1MTNLfgnbO2A5JETq2ONxhf3QFsvg7ElRB\r\nJe214mimlKF/L3++9sgXytl7/8LMXNAnohqwy7H4iir6CimAnnF+Ge/fqNeI\r\nMbbE2PfR2DRwBFE/bX3/9XWqKiRb9CY/0B0LJ4IJa3rxujSfjmU6eiDuLuWe\r\nya+MXzrfn5lRTW2LYVHvj6aW0QXbjLB5yBDcXu7l2vUjfbnaRv22uQFVzbw7\r\nwB1ZzveorC645af11m1+3kPNbHC8ACh9TVkD/ZBqb64zDgjayYVz/npSBibD\r\n1+RhdV2SQbUAjtRDuxUBipCa+vM+YdpTdk+oSzczZV5eSmik943ejFWuLRFO\r\nqCFkyJJeNkIwnZWsx2ilBqM6piHLRwJNGG/EmEsqP+kYvln4c1A0pQUUb9YN\r\nNzxiSTYGJTdw1+knJRksh/QDlv7utfEh+uk=\r\n=h9vo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.5-beta.11_1680894999573_0.3344608930484827"},"_hasShrinkwrap":false},"0.0.6":{"name":"hnswlib-wasm","version":"0.0.6","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"d9488dc0178a031a9ccd65a0528c348577bc77bb","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.6","_nodeVersion":"18.12.1","_npmVersion":"9.6.3","dist":{"integrity":"sha512-GYqDidbisefeWje3y9R+1swYb/A9fWt8KqFhsp9xJlYt56k4Qo10tWvH1OZZzK509cQlyD2HUUtTt1rKiPYfXA==","shasum":"aeaedf4895191d91c0a22a25b28799c71b6cab96","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.6.tgz","fileCount":19,"unpackedSize":6865458,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/Lf2wFPenHOHLcB45sz+dnEbRGxlDPImCkd+5XgLB4AIgBxcD0UOZD8a34oLvY57T/wRDteE3OdBXNrSft1d6gV4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQRdoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHZBAAoh77T0C4q9z69KP1RH6x8CxaDRuF8l3XnlAj/Wcd7RaZq/G0\r\nWXt6g8KdDvKs6Ij8i+2k06BZELXfKGabrh3YjsP670MMyan8gHLPSWY9sGPD\r\nxQ+XfG1aR2/lYoJCxHceRvgPPfE/H8NLbjy1ddtBwEmiQ5K0q1/yVNhDNcCQ\r\nalFTkynjBUTQ/8hzT9NH2VDokmlVJYwGL+WFRYuj5lVx8/5jMt4WtGaDTCk7\r\n8SwZN4wC1XzkrGTWkhQEBhJaIgK+vELC3mNavKIzvIu8kSe46KfTwcpOtYeE\r\nSN/Pyox28s2uOH0ftxEy/W1q+GEEgJH/ZyXEwxenjGgN/A10DLptaoBecodC\r\nqHN8cHmRchxNM7Xkm4MrZ+qgowJIVPXVrcwJbGfKfXWeuMI9LlU7/++k3SNE\r\nBOV5VV5Lw5sE1ko2SecDiWJD5kWoxwH0MjMcij+Chv6h443TCzqox82teg1B\r\ngX8TrPjYJjhSONSwJvtY7rJPCp2mq7re4a2uR6ebeoBXU25NTkrzywAO4CUn\r\nirUh8/Ip3QR5jUS8fT3jMoeaB4UlMtZnRNS092l0TiiUqADTnu+vOAFBZtiB\r\nH7SrVGmVQhKriJYJsoC1K4mtU7DaQ9WIGlG18Tl1UolnXHWU5aItMQmqLz0O\r\nf15OFBu8k+yFfUsbOxAAbfsObwhYy8Bp3YE=\r\n=iaao\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.6_1681987432599_0.25980654940798664"},"_hasShrinkwrap":false},"0.0.7":{"name":"hnswlib-wasm","version":"0.0.7","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"661be707a0e56ff708e234a8fc79da886a598558","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.7","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-25XmX1IqbS8riqQvr5lyN7pNS8XHCWJAz9FYUwW26Wqjy4b4nKYI8DDvziNuuWDTTRR6qjb5ood+H3arbONfFg==","shasum":"cf53bf4fc094b9bb5d3101573570eaece6ef0728","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.7.tgz","fileCount":19,"unpackedSize":6866816,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICFf57Hx0GxOeo9//pvurMxmwlAGSc3HGcrYdkM7SQ3xAiEAjBpxAL5BmB7ZxebFhmo51mzs2pFowg4waOdjy3nkemk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQRsjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYnA/9HC4izV0xWKnJDi0q0Cqu4aljrNkvkpDgv4AP9CR4nuuOItOt\r\nGwMt0ukX7lyK/XDRocD5UQlZhzVwzgPdzhiAu1EjjmaPKGVtn8Psa7VJTuFI\r\n+N3K10SGQSpykNbgoNSbv2H+MK0w2mA6VghNHuJddPloYMCv7+f6BXjAp/WZ\r\nouAcTBQKgWH16v2xqfbymsRt2d7L07/gJ0bjGNrVXnb/Xbzo63ASI8oCmqb1\r\nlY5KdJw6LwyNlX/qHV7rZd2Dssg5ab6QmGccUb7mMaw6dLKdYTnQ0IPxgSM9\r\ncy2Xgssu5Cfv3O2KUa+IhZM5yfl2Ku6s7J4GpHv4ryn3MBR2RPPNzY8Qp8OG\r\n+kXczUfx6BQjjrUSQRzRRT00bdsDnJxnGS7zoNTgm5ovJ2FfzM+0NSqYg7o2\r\n/x3azU+jpgOSNhy8IKTMvN/oIuoSTI9pMwh9vV2KQoh9dDDW6DLHUH9WaH1O\r\nEdftOfCDFDb0HplHtESiES5J0yIk+eryI+zofYdbBOUebBAB4LfXoh6jmxAf\r\n7DDrY/6Hcws9HpbQ5gKymhK87Dui5/6CGFg/4CFzulOqFDOiNOXI/dtkuvo0\r\n3Cl3j9xkK3V38aST5miB685tEtEdX17NgtJZzJ+Aqvb8nyQ01v6Ads/NYPhe\r\n/pp7q8a3QtlSyMvVNzfbdtmg9M3DmK5BIlA=\r\n=QbDx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.7_1681988387538_0.8596535404076886"},"_hasShrinkwrap":false},"0.0.8":{"name":"hnswlib-wasm","version":"0.0.8","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"cee621bef76485756122fe6545c0d317cae16a93","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.8","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-6JR8jqYFzLBQvuK4cMxSnZd/cWTn4xCsrp2mt9MPsbuN/9awBYDSGqO4u+9+JMhJi2sh03cNIWj6ubrADOeL3w==","shasum":"0e90e025fab1db45c012ce96b621911d536a4ac1","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.8.tgz","fileCount":19,"unpackedSize":6867225,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLitgqm1K353cUZkLtB470G/giGmLOcPJ19SEwCkU11wIgfy590gXoMoKd5NlIqXtQGxVDQQzdt+4C/TDi/4h4j2M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQRynACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrRjQ//U05OHq6uQwIaDHRvGl3J9n8UXyX6KcPW23zFwHymW4/scnAN\r\nXweq47rxhj6xhve1h0pk27JG6UP42fuLhGUaHbhIc4tdukuQlptDm1NPLDsq\r\nUhqu5CR3M9yL8KleRVrOKr1JAB/CRp/Em3BysAOxu2x4BEElSQyXmg/ZyW4d\r\n8JVEqDNKuqn8d6uYn5aSNBRDacPfQoA1CzdJCz7bJRJYLh1wJnAEchGSPz1v\r\n0m8nWqxWkoEfW1TTm0E8527e6t/KJiA2kpYcqTdRFBaeCinlycUALls/XEoh\r\nc/Ci0pn9gjRwQGo9fogtEzvRXSupwHzNikV69Ge9nvu4sJnAIqMqobCDhetW\r\nhm9EGNl4GoA58zncJUjW+ebAmvdpwnqtK997iYg8r1XKcbQnlhW1y0b0KUaJ\r\n2riMRYN7YNqaLujx2lsX58oRmiyuwXxbblmtzeLEZzea78IyS64cYRWxzafU\r\n3kXzuLj73foQvcwg0TjQGaINVN4yWC+eAd6GSo5sWaf/2AqG+HZFre35E1n1\r\njmg7rUrC1hFd4o+UcQ6g2+E/bD5R0nA6gsiKbQ+PFfEWP/teO2CnVyAyd1uA\r\nUt3wDI18goGRS94Tq3BNWs/TVzRKocqp62Y8ErOH1K8FjDddI7DDaim/38yI\r\nrXuQCrWt8+pkK2UsYhdLuWleK8ZGvvpp4Q8=\r\n=ioO9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.8_1681988775173_0.1577908373747532"},"_hasShrinkwrap":false},"0.0.9":{"name":"hnswlib-wasm","version":"0.0.9","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a0faf5c05cdb81a517b52b48d67407dbe2a15820","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.9","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-WDNLUq0Dn7aNswqOWu+rVz7uwUgaYnVfTC2hlpwiDpH6Up5gZZOlqTwLgRZg/fxhBjJ++PnjjZ7ll7AyL2dD7g==","shasum":"5c287b3e0b91ea94c13fba953e36b79f155f12d5","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.9.tgz","fileCount":19,"unpackedSize":6868331,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtCSl/GiGbub3cb1WENabP3G4510ep8/3H+Oc/I2da5gIgTfAkKjLEUX5OVUMDfru/nCOB4byP8TV5FTIgasgoM2M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQS7dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8LA//cMGNmBBEFbO1pq+kRZHFK4B6VwOBkE9FlmvZMWWdEZDhKPX7\r\nN4+QXCWy3bjtsQPDxZiToGZL6iZ31p3k1SDKrPvr+cRBp2aOrpQn8lvWxPXt\r\nh+yWEpHfCcrZ/IvK0zh8BRVThY0hyqt2/3qN3b34aN9osV0TfFRxr7ZVItZE\r\nJYSwCsbkTQjW0mqYso8uplu3xfVWl1heDA8n2faRRpVYZnjWocIdSBkvdEN4\r\nD9pIeY3dfTwPDZbDgtj7f5l21gph/o5TYxlM4H9ljKSBvfuao/Qs8ZOuMXH/\r\njMz7N6XxVbyuq4vaT7/t/g1ot010HBgR94gbI+QxeD27ls+TjrdR3nQAYf0X\r\no9uosOuDL6XF7bbqZS9oBmHZp/CVLDtYrhZnNaPPJADjeVVZePF0Q3juGSNR\r\npqsAEVJDpguLULrH9+3Mv7mXCOuV0Acbj0EsEEFwUAKvuOkg/X2sQBS5SaN4\r\nllrqoK27o9chsQNHnHd6544O48OWfi3LtaZmMk1q8WWnMty2v97kizVwmvZn\r\n8lBvhWH/DHH9/w9MpuojgwJvfntAKJCUps+Pin9t/CbIj/8NtuOuhPaulRaF\r\n1ATrO8XunPZAigmhGzQN1FUVGHHjWFpRx/iAQoOAY/TZWil/xR57PGLFmnMC\r\nxP4EgOr9vEDSs+azEce7l74kOOZ0MI2vL3w=\r\n=/NMO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.9_1681993437706_0.8648290839133836"},"_hasShrinkwrap":false},"0.0.10-0":{"name":"hnswlib-wasm","version":"0.0.10-0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a WebAssembly (Wasm) version of the [hnswlib](https://github.com/nmslib/hnswlib) index library written in C++. This Wasm port was created by @ShravanSunder using the emcc Wasm compiler, see the repository [here](https://github.com/shravansunder/hnswlib-wasm).\n\nInspired by the library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/). @yoshoku has provided some wonderful [documentation](https://yoshoku.github.io/hnswlib-node/doc/) for hnswlib-node. Thanks, @yoshoku!\n\n> Note: This library is still in its early days! It is being built for a use case that requires running hnswlib in the browser.\n\n`hnswlib-wasm` provides wasm bindings for [Hnswlib](https://github.com/nmslib/hnswlib) that implements approximate nearest-neighbor search based on hierarchical navigable small world graphs. It works in browsers and is compiled with Emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\nSee the npm package [here](https://www.npmjs.com/package/hnswlib-wasm).\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node provides an accurate description of the API. The TypeScript definitions of the API have been modified to work with Wasm. The documentation will be updated as the library progresses, and more examples will be added.\n* The major differences are in loading and saving the index. It supports `indexedDB` (in browser) and uses FS from Emscripten to save and load the index via the virtual file system and IDBFS.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md).\n\n### Usage\n\nFirst, create a runtime instance of the library:\n\n```ts\nimport { loadHnswlib } from 'hnswlib-wasm';\n\nconst lib = await loadHnswlib();\n```\n\nYou can then create the index and use it:\n\n```ts\n// Here you're creating a new index with the L2 distance metric and 1000 as the max number of elements\nconst hnswIndex = lib.HierarchicalNSW('l2', 100);\n\n// Initialize the index with the dimensions (1536), m, efConstruction. See the section below on parameters for more details. These cannot be changed after the index is created.\nindex.initIndex(1536, 36, 16, 200, true);\n\n// Set efSearch parameters. This can be changed after the index is created.\nindex.setEfSearch(efSearch);\n\n// Now you can add items to the index\nindex.addItems(vectors, labelIds);\n\n// Now you can search the index\nconst result1 = index.searchKnn(vectors[10], 10, undefined);\n\n// You can also search the index with a label filter\nconst labelFilter = (label: number) => {\n  return label >= 10 && label < 20;\n}\nconst result2 = index.searchKnn(testVectorData.vectors[10], 10, labelFilter);\n```\n\nMore usage examples to be added.\n\n> For now, see the `HierarchicalNSW.test.ts` file in the tests folder and refer to the [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/).\n\n### Expanded IDBFS## Extended IndexedDB (IDBFS) Support\n\nThe `hnswlib-wasm` library provides extended support for IndexedDB (IDBFS) to store and manage the search index in the browser. This allows you to save and load the search index easily in a web environment.\n\n\n#### Saving and Loading the Search Index with IDBFS\n\nTo save the search index, use the `writeIndex` method:\n\n```ts\nawait index.writeIndex('savedIndex');\n```\n\nTo load a previously saved search index, use the `readIndex` method:\n\n```ts\nawait index.readIndex('savedIndex', false);\n```\n\n#### Synchronizing the Emscripten File System with IDBFS\n\nThe `syncFs` method is used to synchronize the Emscripten file system with the persistent storage IDBFS. You can use this method to save or read data from the file system's persistent source.\n\n```ts\nawait lib.syncFs(true); // Read data from the persistent source\nawait lib.syncFs(false); // Save data to the persistent source\n```\n\n# HNSW Overview\n\n## HNSW Algorithm Parameters for hnswlib-wasm\nThis section will provide an overview of the HNSW algorithm parameters and their impact on performance when using the hnswlib-wasm library. \nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. \n\n![](https://d33wubrfki0l68.cloudfront.net/1fcaebe70c031d408ae082da355bfe0c6ecc04ac/ba768/images/similarity-search-indexes16.jpg) Image from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n\n\nIt has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters.\n\n### Search Parameters\n#### efSearch\nefSearch is the size of the dynamic list for the nearest neighbors used during the search. Higher efSearch values lead to more accurate but slower searches. efSearch cannot be set lower than the number of queried nearest neighbors k and can be any value between k and the size of the dataset.\n\n### Construction Parameters\n#### M\nM is the number of bi-directional links created for every new element during index construction. A reasonable range for M is 2-100. Higher M values work better on datasets with high intrinsic dimensionality and/or high recall, while lower M values work better for datasets with low intrinsic dimensionality and/or low recall. The parameter also determines the algorithms memory consumption, which is roughly M * 8-10 bytes per stored element.\n\n#### efConstruction\nefConstruction controls the index construction time and accuracy. Bigger efConstruction values lead to longer construction times but better index quality. At some point, increasing efConstruction does not improve the quality of the index. To check if the selected efConstruction value is appropriate, measure recall for M nearest neighbor search when efSearch = efConstruction. If the recall is lower than 0.9, there is room for improvement.\n\n## Parameter Selection for hnswlib-wasm\n\nWhen using hnswlib-wasm, it is essential to choose appropriate values for M, efSearch, and efConstruction based on your datasets size and dimensionality. Since hnswlib-wasm is running in the browser, you should consider the available memory and performance limitations. Here are some recommendations:\n\n### M: \nChoose a value in the range of 12-48, as it works well for most use cases. You may need to experiment to find the optimal value for your specific dataset.\n\n### efSearch: \nStart with a value close to M and adjust it based on your desired trade-off between search speed and accuracy. Lower values will be faster but less accurate, while higher values will be more accurate but slower.\n\n### efConstruction: \nSet this value considering the expected query volume. If you anticipate low query volume, you can set a higher value for efConstruction to improve recall with minimal impact on search time, especially when using lower M values.\n\nRemember that higher M values will increase the memory usage of the index, so you should balance performance and memory constraints when choosing your parameters for hnswlib-wasm.\n\n## Resources\n\n[Learn hnsw by pinecone](https://www.pinecone.io/learn/hnsw/)\n\n[Vector indexes by pinecone](https://www.pinecone.io/learn/vector-indexes/)\n\nImages from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n![](https://d33wubrfki0l68.cloudfront.net/f8df59c49b28522dea11e4293307af2e4f8d97ed/a6992/images/hnsw-9.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/e5194e6f5b1aad4b940e0d3f1957b71bf6c2f25b/40135/images/hnsw-10.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/1b0b0b0b5b1b0b0b0b0b0b0b0b0b0b0b0b0b0b0b/40135/images/hnsw-11.jpg)\n\n# Other Notes\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!\n","readmeFilename":"README.md","gitHead":"0aee2d2569970a5b2eb9cb7b7bdb9b93a305e833","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.0.10-0","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-Wqin5NuUHqopG/5zncF56oGX9GVgyRvKzW2tJxgid+d30ERDree3PmKTPUEKlHKCn6/kusfTDXWDyKBFeUYXjQ==","shasum":"09c2e482075df0875566f6f1a2d2cecd7ab2770c","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.0.10-0.tgz","fileCount":19,"unpackedSize":6868450,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGwDbTpIP5snXWAc5HHPYfYjz4RASo/BWs4Lbb4GsJfDAiEAnqeV8cAwDeYpHzWI+SVJZ1hXgV/JEwv4HOGI2iexygM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQS8mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4wQ/+P2QT4aJhpPSlIhCbjfLmh3UjtmzOdNvChmkgVpmbKQblDRMT\r\niTe5CHjSVlEp0dNsZZWUuij5DP8N3e7IR6H/5VuMPdDp4F5KOxGJ45PXRU9j\r\nYHcRCaCIBebr7ZxS6aFKMsBYktjXzw11hlOD6TIX0KtZx/SVlFBZLPLxA2He\r\niSWfP0Few46/1gAdI2LiwDJlQxbWgzt+fH8wtgyH7/iwDYkvv5yyxy9uiJQH\r\ntPlcI4Eg8gg175qpLpYqq48/n/Z90uh03yICLbtT3Z8OxAJ2mGsSctoU1cnm\r\n+R064857VGpho2+tI4fLrDN++R007E4cazVP/lJXSAYvu1qm5ffU25bR82Ww\r\n6Gw2rfgmUH+j3sb4OPMEbLhuc1WJYRKU5OOEnr+ly2J+fBTJSwBxfUN5Zn4r\r\nwfFwus5vQGz6/oLrBJQsr5bUuwWiOpppSHG7GxBgS7xP7P7BMnodiAEAWtaR\r\nAun8012YhGIhQ8tZGcPzmq0Ihxs0NyO6dq/QaKlshE/Rg2syu/8X4gheQ1w9\r\nQhIAO8ER0bKkuSFFv15IRYtV98CfAUZQFHiQHjQSB++jk8MQBaL4ouQx61Hb\r\nrCpPBfbFeazKIeEapep/Ih92+Dnlz7g7WpH70x5kwCCE0itAAbFyutS00DXn\r\n2IV0UceQNJ/Vkr6XU36tZpz+qi8JrjkuR8Y=\r\n=0R00\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.0.10-0_1681993510192_0.2614476770119507"},"_hasShrinkwrap":false},"0.1.0":{"name":"hnswlib-wasm","version":"0.1.0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"4d5b45a62534736cfecd843a1edbe12724573ee8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.0","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-WW0DHNzWsgHeFIUnmyIgvu9MMduGHr2K008XqCLeiD4EfJSmsBnfLLl88l4iqjktQ+Qmp/aFHyrbFRDYb416KA==","shasum":"043538ca8e8cfd1d34be65b240d7d64869c4579d","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.0.tgz","fileCount":19,"unpackedSize":6866653,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcICesgiikF9WOVEtyzOi3wgC9ObdTK00G4MgFPORLPAiEAqSVyg3+3ngT/D80Sv126rKkEVREkoRynCltpqSaW+QQ="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.0_1685539704045_0.10222813201808201"},"_hasShrinkwrap":false},"0.1.0-1":{"name":"hnswlib-wasm","version":"0.1.0-1","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.0-1","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-OVJZ3DPBsg7ZgCaHY4ffb0rMPigN5zCrjlI2smjykl7YThzAvycEkWBW++l+icn7YHBGtnf7t+eVbBf/szeA6Q==","shasum":"5d903c0fc3e44386ae4fccfa57625abafe3f3419","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.0-1.tgz","fileCount":19,"unpackedSize":6867731,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrksPO6r9v3elUFNtArKcVUHGvkXlPob144YDinkDeNgIhAInPKnFZ0QOs8zsgZH0xFiYl5a+2LDNallXBOYvwDvxe"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.0-1_1685588267596_0.602587832965765"},"_hasShrinkwrap":false},"0.1.1-0":{"name":"hnswlib-wasm","version":"0.1.1-0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-0","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-7dNiOKoVnlko2pAizpVw3BELIHD2o/b7OqwqYfweJz1wZD65Vu2KZ7968NX4kMore8wF6ONS6f7jMMDl3gzm8w==","shasum":"1bf1c26c09a5a8a443b1d8c03130844534fa74a1","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-0.tgz","fileCount":19,"unpackedSize":6867731,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJUZY9MSGrCvkb9fbkvGnvW0BLg2DARTJInytnprxl9gIgHnJB1+X1X2rTUYXWHi07zKH/Ghp2PoicAt5kc/s+1gE="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-0_1685622747627_0.8176358758247566"},"_hasShrinkwrap":false},"0.1.1-1":{"name":"hnswlib-wasm","version":"0.1.1-1","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-1","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-gfweC4FLY/j6jfRrsDUU6vvLlRS3kktAb45S5a1SCTwLgElZqyudzFONbxgukbrarZI/hD1QbkrZBjHJw7Wjcg==","shasum":"fc3fdeeed3adc2caf558ccc829144867d5714421","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-1.tgz","fileCount":19,"unpackedSize":7173193,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDq3Et3fSUZ5QlYra5OYBNBOdW2+DoCyjqnS8V0e2Cx+AIhAITBLTFwmY3QIuk6dPDNCvSZpbqd4U1ahuo6RvPvTsM1"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-1_1685624258631_0.3558851755108694"},"_hasShrinkwrap":false},"0.1.1-2":{"name":"hnswlib-wasm","version":"0.1.1-2","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-2","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-rnJ5ciOvCI3ZvhpkY4s1Txcx+3+aBWb6T1ZmMA4KDE19QxStBANG1LeG+jgaaKNnXFa+hImxvM8cc4hOSntkSw==","shasum":"53e157587d8725d00842d7e3d2ab787553d5179c","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-2.tgz","fileCount":19,"unpackedSize":7173193,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgp0lKQTznkTVwD/qc96UIns/Ltl76NBnNKrF25zJDVAiBl3PcMbSgGtsHR8my29g3RkE678DBbpc39wXA67jTYnQ=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-2_1685625037548_0.20081936413325763"},"_hasShrinkwrap":false},"0.1.1-3":{"name":"hnswlib-wasm","version":"0.1.1-3","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-3","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-s5oJ5zsCrAF5y7LPq9clHj1c91MRx/OzW9qD4iy9a8QZT5Er0rkeL5j4qRWl5EcJqEQGG3MdEKbuOWkh8ImEVg==","shasum":"d748a3cd5083aee58e46a0e0556add3958ff359b","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-3.tgz","fileCount":19,"unpackedSize":7177661,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2vBsMjdihsSUVQmvm/2xyxUS5Xov7fHk7yonz1wRK5wIgGW2hGuPiThiGiD3lKrMkVHrF4RxJbFMqHRHL0kiq3SA="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-3_1685625079488_0.48712563406917986"},"_hasShrinkwrap":false},"0.1.1-4":{"name":"hnswlib-wasm","version":"0.1.1-4","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-4","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-JHvJOIsh4JiA9UBXGEtdg9sZCytPQtEKbL/LEDI1Jk3AuE/56DioCOiG0ORilGrP5Dvxg3a4dYh3fBNIPWQnUw==","shasum":"8f1942e513fe1240992a9c704049c7ddede0167a","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-4.tgz","fileCount":19,"unpackedSize":7179803,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG6pxyJy8kw9lgTQ0RiHturQu9H+fkgmp+SUzXTnd/CKAiAvwwUn74Oh6jeFdfSidlsUuw1s4sv4vo2gpQ/kdCCa2g=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-4_1685626106455_0.30755594186186386"},"_hasShrinkwrap":false},"0.1.1-5":{"name":"hnswlib-wasm","version":"0.1.1-5","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-5","_nodeVersion":"18.12.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-QMYFw9fsHvFW3Kpn9O+WaGwp77gZ350MiDsjdI0vX+haS1NmKj1RRXMGzZv1GjCidhOibasmRfxvTRaXqfrsUg==","shasum":"635878e0d90e9a5da6c8f143a9e76a04daa33a4a","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-5.tgz","fileCount":19,"unpackedSize":7183367,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRHwWwQ+5EgeyUgyMeuUaolBVZfZenEdHF7E/NlbHhFwIhAL5iE1tgqoTSraOuW5er5O/mNzpf8b7NH7ql7vuTp8ZP"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-5_1685664505273_0.7611316941903272"},"_hasShrinkwrap":false},"0.1.1-6":{"name":"hnswlib-wasm","version":"0.1.1-6","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-6","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-+Ih0SBTwmT0ikA7oHiAI280/E8JfyXETXVb1L5ZsQPBbk8jvg7hp3I361EV9Y/xIq9a5BsoU3uNtP+Lz0AzAfw==","shasum":"0baa5e93fe814d37f4809891db46f21daf244650","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-6.tgz","fileCount":19,"unpackedSize":7184219,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAOGkRhfn2W5Gph3ywWWnbqzWNZbx7s+wuMeBQvUhU5bAiBqqD1pYRg6uA7L/ZwjaQ2x2pg9EVBWw3UB9u3aSyWZjQ=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-6_1685665082210_0.2947214973200254"},"_hasShrinkwrap":false},"0.1.1-7":{"name":"hnswlib-wasm","version":"0.1.1-7","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"e20b78139340ff85181d199eb56586bdc4566405","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-7","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-eqPGCnAoKNziqrpHSN+2KYbIm9mgjSPb0j5zK0Gw9eCv9pE+S2ytmcpictkkzAZorF9Fgick36Mg8OfskCZsHw==","shasum":"8f76e98c9d6bb43a0fe96ae8aaf53c43fba10de3","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-7.tgz","fileCount":19,"unpackedSize":7185614,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuoAwZGMj6LKUo6uLc4lLGWyP/LAcrynMfNt83o8ev/AIhAITy21MOnjA1AktahzMr/d4lFfNoyKRxCwl+7PGb6HFO"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-7_1685665690836_0.9859084175814625"},"_hasShrinkwrap":false},"0.1.1-8":{"name":"hnswlib-wasm","version":"0.1.1-8","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-8","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-QEm2/GKHXsmIm+FSCm+Joaw9/7BbddCm924cXwbAqw49Y5ZXxazr1sjhhcuOx/qCJmhUbIVvprKdNjvchG2NkQ==","shasum":"60733df2962fbba2b35f95754f477a662753884c","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-8.tgz","fileCount":19,"unpackedSize":7203823,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHdAKiVpRzC93WSTWiQgfd1ItMmzaxlmJwnX8d1aoAK+AiATUpa/nZhMvto8xw/kTHLv0uPwGoE8j/GsWyEoIiBXXw=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-8_1685707982470_0.7636558334331427"},"_hasShrinkwrap":false},"0.1.1-10":{"name":"hnswlib-wasm","version":"0.1.1-10","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-10","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-eXo6HJk/n4H1izNhEqkW2faMMIcSnRUUdGdcLU02vpAvZ6Sh/c2L9diMUVyCFn9yuuKTT9s1SdWNvuKmb7OD+w==","shasum":"0a69d14c2ee99132cdfbd567b61e27764c4ed3b1","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-10.tgz","fileCount":19,"unpackedSize":7204126,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICeGr9B6z/iIqF8C/X9wQBPXAoHGzAHj1SaX8/rgENtsAiA2BnjiJAPlZrMKvLIvzsNZvE4iC0KTGIcMjRQwrpxfYg=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-10_1685708150767_0.6057240240541106"},"_hasShrinkwrap":false},"0.1.1-11":{"name":"hnswlib-wasm","version":"0.1.1-11","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-11","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-Gk05Gh/Z2CJKVMok/OBxDgmYRB2Oi5aYW0DjrDfXnzokS7U7TUTJQnu1xq1Jy3ktyVYZQq1RHT+PGXmApQ0eSA==","shasum":"48a80f6e1c9e97b97fe27c65b36ce4cfb7a00722","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-11.tgz","fileCount":19,"unpackedSize":7220626,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDT6hif5CUkxqfDoSnC4AnFULXKrd2eVkHzEmVX/I/vbQIgKNGX+CqB3a3J4SOl7F3X5L1evM81B46vJZ6oQiD/27g="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-11_1685708675037_0.011504209295917889"},"_hasShrinkwrap":false},"0.1.1-12":{"name":"hnswlib-wasm","version":"0.1.1-12","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-12","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-XvacNzCHnH4Xj2Zp/ZhFLMNd0MgsCU2lU86EoY5GqEguys1MGQdiINQ93bq4BrQQIqzIZYqOAnD+5fhDmq/p3Q==","shasum":"e5300857ef9f12ea88db32154929ee0621a457a7","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-12.tgz","fileCount":19,"unpackedSize":7220934,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEe3XkO2kY0+L11y59/0zJPRskI8S/SjjIBN0tACuJ/mAiAHxUWLHYiuzV3bCjeQy7zzihUlcpQu/KuNW5vwuoYN4A=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-12_1685708886918_0.6043456671434719"},"_hasShrinkwrap":false},"0.1.1-13":{"name":"hnswlib-wasm","version":"0.1.1-13","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-13","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-faahV1Ggol7U2emBiXbKeSqtYiPxNd5EQ/Zo49z7wRET9DzSPf9Kltd+oz4syDVAFibIpOXbFEYVjP6qo2Prdg==","shasum":"384e9912aef2ec388c8885052fab70d47c6bbfdd","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-13.tgz","fileCount":19,"unpackedSize":7336758,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrQyoG9CWbKV0jvtBukCVd9hHjsklOBFjxoxQpy37bjwIgFMMDJ//XS9Duq/R5n1o/O1FHXzkHjdBtYuBXZpkbnME="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-13_1685709098555_0.7886754463039036"},"_hasShrinkwrap":false},"0.1.1-14":{"name":"hnswlib-wasm","version":"0.1.1-14","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-14","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-bMutlo5cdm54WOFVaRI0bQZO3N6W4A8hIHxJOsWXXp6IiT6AgwOS0o9gocaN0lrgB0qLpdyaWFnF5A+ajPkatg==","shasum":"74c21a53ce663a18edecd739521efae5d6d690f3","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-14.tgz","fileCount":19,"unpackedSize":7338034,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcl0COZiJNxr1pHuqUALB6RUBZwK2RJcw1peh1fGoryAIgC+0MNoDOLppUr1x42yIZpM/4EAgl4UlQ/37LgA1qhpo="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-14_1685709563611_0.8643837458317596"},"_hasShrinkwrap":false},"0.1.1-16":{"name":"hnswlib-wasm","version":"0.1.1-16","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-16","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-dBIqwdnKCl/v9GDo/32Q2KKnUkk//sGO7K1MPM3hjLz0TJPz81IcnkZYjcfuSwBnh1bcqimkex4eDI6GJg4VJA==","shasum":"b3df90aa0b11b0c3ea947dfaff137889a536ac81","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-16.tgz","fileCount":19,"unpackedSize":7340250,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDruTt/iYRHU+Loi/6oyVm433UJ5tJpyRJVs1HbWyJ9jAiEAp/5RHM78pCyHftL3MS0vX0CHOCamYxpTbUMc2FwtirY="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-16_1685709782646_0.7900104484928356"},"_hasShrinkwrap":false},"0.1.1-17":{"name":"hnswlib-wasm","version":"0.1.1-17","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-17","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-Ba+3Sa/JJbYuaJgY7w9WEwh2YWIgV1fjzCWi2VsES/NKCaBdSpfSKT7qvVtDLHDOtUViHLIyKpSrg6DbPvmfUA==","shasum":"3b6d0b63e1e3109654d353db59a8e97f9e646977","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-17.tgz","fileCount":19,"unpackedSize":7216422,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCi4XLYy/LJsBdZvry2WDYFPZ/jTuZ3w7GT8M5qZrRiugIhAN4vKl0yALL6nM1vxS5MsE8Vg3eCgwjQC9gQlRvusq4V"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-17_1685720999150_0.6404789994509923"},"_hasShrinkwrap":false},"0.1.1-18":{"name":"hnswlib-wasm","version":"0.1.1-18","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-18","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-mzb7hgVwb7RASvwCm049L6nI4J62LvrRevqhDlf+y5/a0M5cy6yH7Tumzq2+QL2ve4+PnCQb1XiOXduXwb5RCA==","shasum":"9e9d89abb6eb054e331bb6fa45740266049a1dff","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-18.tgz","fileCount":19,"unpackedSize":7216538,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6r6Qfn5V23wjvfoOiTAOseVr2vHOUnjjTuYjCubZJFAiAMLoUcPWCvcZOwDQS0jXA89jjAVDGmGaSgea8T8nVzGg=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-18_1685721388692_0.8939012389330163"},"_hasShrinkwrap":false},"0.1.1-20":{"name":"hnswlib-wasm","version":"0.1.1-20","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-20","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-eCXyD0hbWgI4fxzR9y5WxY7ce1cgD6GAmlSDpco+m96Li94BDDdR5G1FkX12pQ4/rUcR9yiirIMGoOrcHwEZVQ==","shasum":"409afe157c640d5c78bf6ae52dba128e0d33e13d","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-20.tgz","fileCount":19,"unpackedSize":7340714,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDQrnKoAKNgTDY6WioWNiM33bGsUb01qs5yXBcm+rouVAiB3EbOPM919vKHuYbpvXnlG2vvjJ4vXAgUKi5yfe2yWAQ=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-20_1685721525729_0.46244219309265344"},"_hasShrinkwrap":false},"0.1.1-22":{"name":"hnswlib-wasm","version":"0.1.1-22","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-22","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-4gnjVdQbx9gUCz8rcFzKEx34yOvQFdjCGFaZaC1ZSp/Kr0dhaZCtoT23luRrUXNBmiWCtxEUU3CL93Jir0edUA==","shasum":"a8ea8be4a68f63e21e8b52cc19e99465fcd3d8bd","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-22.tgz","fileCount":19,"unpackedSize":7368245,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBnazrsKRZVgy2Yr+vYGEVYEhNh1pQteTIEWKRcdJQBjAiBSz3wbItuL+la+GqvZ78+xvPePhb8rrBVip5wave+SEw=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-22_1685728644393_0.946496009433802"},"_hasShrinkwrap":false},"0.1.1-23":{"name":"hnswlib-wasm","version":"0.1.1-23","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-23","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-D8F2zeBQJ453KPrvqQSBfSPeHE9fYpjzE3M+RlZRWlvd4RV+7QXPupZDLKWTLKGgfqwHEQOmxC/gwDJ5wzI0pg==","shasum":"c0563951cbeabcbddf872085a27fe4e890eb1628","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-23.tgz","fileCount":19,"unpackedSize":7369050,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMgQhaiuyPVvciMYE0Awk/wMTXVi/2CYTVBk8PwOzEUwIhAOz8nRhBkJWoNH15BcBmWKrU2B8StgPC2HfZkBqPqPz5"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-23_1685729074443_0.24831537313637186"},"_hasShrinkwrap":false},"0.1.1-24":{"name":"hnswlib-wasm","version":"0.1.1-24","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-24","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-t6cg4VJ3S5IHshF0+1HY7ONSjdtc9qFFrbFXRFsloGsIxzt05V58v76nxGXGrWwMZyMfXpiykEHLuAqCOYGuGQ==","shasum":"7fb51997291b011cf7bff171e30afa27789f0b96","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-24.tgz","fileCount":19,"unpackedSize":7372590,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkvKYirIyYB59cNgpTdtFnj8Syg5GUUWrGcStvL8gtygIhAMkOzEOsVcHDxiNDYhCu21YqJFGxWTilNL/uGdl0xotB"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-24_1685729748505_0.26806750280630043"},"_hasShrinkwrap":false},"0.1.1-25":{"name":"hnswlib-wasm","version":"0.1.1-25","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a2d061c9a369ea6834ab27179c836532f5cef45a","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.1.1-25","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-AALaTbuGijF6vjsoFD3FMJbG6poxcRQCfLnZapl2gpFXhZ5/3WQGpV/zBNLtUJ0vIdLum/p+5rTObiuMwpYDgw==","shasum":"11398caf1a8eab8ea103f337b45e81055a54d22d","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.1.1-25.tgz","fileCount":19,"unpackedSize":7372258,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAOqqpQCo6UU+a4hvpUBo+vfrKoq2Y/fjKjOsfvCY/7NAiAM5ha3BmKuBo1FioQAcMVmZDQ79QUYVpPdgqEt4bbE/w=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.1.1-25_1685730157360_0.9150102086043623"},"_hasShrinkwrap":false},"0.2.0":{"name":"hnswlib-wasm","version":"0.2.0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"505f5dcc7cdfe14e657a84e4c8b36b42df087809","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.2.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-z1w+DKfBKFULokVbqEpvUiYKG0+mCLfGm3U7w1ra75AxGX1Esw/u7N4mzFdM4gHp7J5wUIdxEg6PdfP/gtnLDQ==","shasum":"159f2876c8b2e0f158b2354bfa5be83d5346f079","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.2.0.tgz","fileCount":19,"unpackedSize":7372255,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZ2hHatassjXoQKUEVJxzfxGKNqDtOqTKP9Lx9IsPu/wIhAIZjMS3fMB0msvKSu+aMFVDEON3akm/2SYBznA2BHb7Y"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.2.0_1685730737422_0.2916459578669004"},"_hasShrinkwrap":false},"0.2.1-0":{"name":"hnswlib-wasm","version":"0.2.1-0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"72e15a61e61d69e41f5a1d82ce3646af01b258c9","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.2.1-0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-XNdqBBTyxxxhLrRbD3MylbXn7Ky3uXRQ9utWui46kwu42zPmBXNIvyX1AnjihB8muvRdYPC/EztJYOscelhSMw==","shasum":"700d11dc204c2f1bfba9d7a853c42fa759130dd3","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.2.1-0.tgz","fileCount":19,"unpackedSize":7373162,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHXOO3sirTTf5KbKFSyiJudvoFiWbz2DqRvqDzAdi6NHAiEAkFF7U19veFcJYZmAhv1jPOPIhFEblvQ4mEB/yxbqS9U="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.2.1-0_1685730945815_0.6073918435047965"},"_hasShrinkwrap":false},"0.2.1-1":{"name":"hnswlib-wasm","version":"0.2.1-1","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a91f83296d30a40cf2affcb90befc99540ddae00","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.2.1-1","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-9mNYCgFBTm3lubOoVzdSCe1fs7V9Vsxe5jfsboNfqbHHGHobyHqRT8r14oCBdjrPaJQunqwpu8yJt8XU11UrfA==","shasum":"8a39e9fb44ad6d99b3dced1235361c055e0eb38a","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.2.1-1.tgz","fileCount":18,"unpackedSize":6996332,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhnuECpfWe1ROzdML2Ezf+ep1SiCh9gKUUrPJF/budcwIgdU4fgnjbz/1BVWbRFT2pfkdXJjarnERlbViUe2TIN4s="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.2.1-1_1685802395113_0.926222360736328"},"_hasShrinkwrap":false},"0.2.1-2":{"name":"hnswlib-wasm","version":"0.2.1-2","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"a91f83296d30a40cf2affcb90befc99540ddae00","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.2.1-2","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-tKrx1iao/d3nQWRchy6wQeLNPuDA9a8p28LUx+KkDRxh+gzULl/y1EzfonK8ry4DFU2ZOBwmJg9sCn+HTcx9Ng==","shasum":"c7f553dc1cf6df8067fe8cda482a45b0eebffea1","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.2.1-2.tgz","fileCount":18,"unpackedSize":6996575,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHe1J2OSj6t+mhgW4rlPoeXGMe/G22MzObju1HKiXizjAiBPaygwcO9mU+rsP8ESzyu1VIAV2jtUhPdsdFO9wvTTrQ=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.2.1-2_1685804925876_0.6460699443446389"},"_hasShrinkwrap":false},"0.3.0":{"name":"hnswlib-wasm","version":"0.3.0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"8cee9878d77802ffc9daf951cf6cb13ea2fdd42d","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.3.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-tE8qDOUrfUu1CbGsYOW3ABt/lQD3/ofxM+rMVPzBaAaXtc/LuHMnpsivBj3NG+Z42jplUvxArQHDvid6DMFoHA==","shasum":"7b9c74cde57c00db7c043146c845314a459844c6","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.3.0.tgz","fileCount":18,"unpackedSize":6996939,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwFN2ZUfH9993Pk2EdbxlOv8XwvpnZxAIvq3uYgO4B7AIhAKDO/FVrw1Wdz1CxLDiiE/+f5H+1FyIA8e9f0xMFaSgk"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.3.0_1685839126110_0.662861162654508"},"_hasShrinkwrap":false},"0.3.1-0":{"name":"hnswlib-wasm","version":"0.3.1-0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next":"npm version prerelease --git-tag-version false && npm publish --tag next","publish:latest":"npm version minor --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"259d5c5956314752702d7c027303ad0d5c9f6c97","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.3.1-0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-0BU2MtL4KQBy6KqfkPRDl5Y7j5/Auk6zFJYguwtVkljsdAd4Rh4sHs3nn3xgPGzx1Hx82nwYqYiZXzJ7bwXhXg==","shasum":"a2d520adffd915bafdb882983190c311efd79e36","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.3.1-0.tgz","fileCount":18,"unpackedSize":6997693,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGhGwVhd4BmKHqV4IVzcCAcmohz1aNqzQw0Ij/zBfFiAIgavJsagvX4VDdY8ES8pHSNN6N1YXAPgeiBLysoU15pZE="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.3.1-0_1685840846287_0.45994252480811704"},"_hasShrinkwrap":false},"0.4.0":{"name":"hnswlib-wasm","version":"0.4.0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version minor --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","gitHead":"564d28b9bf84eefad3f961e2b3003bd5c21ca3cc","readme":"# hnswlib-wasm\n\nThis is a WebAssembly (Wasm) version of the [hnswlib](https://github.com/nmslib/hnswlib) index library written in C++. This Wasm port was created by @ShravanSunder using the emcc Wasm compiler, see the repository [here](https://github.com/shravansunder/hnswlib-wasm).\n\nInspired by the library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/). @yoshoku has provided some wonderful [documentation](https://yoshoku.github.io/hnswlib-node/doc/) for hnswlib-node. Thanks, @yoshoku!\n\n> Note: This library is still in its early days! It is being built for a use case that requires running hnswlib in the browser.\n\n`hnswlib-wasm` provides wasm bindings for [Hnswlib](https://github.com/nmslib/hnswlib) that implements approximate nearest-neighbor search based on hierarchical navigable small world graphs. It works in browsers and is compiled with Emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\nSee the npm package [here](https://www.npmjs.com/package/hnswlib-wasm).\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node provides an accurate description of the API. The TypeScript definitions of the API have been modified to work with Wasm. The documentation will be updated as the library progresses, and more examples will be added.\n* The major differences are in loading and saving the index. It supports `indexedDB` (in browser) and uses FS from Emscripten to save and load the index via the virtual file system and IDBFS.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md).\n\n### Usage\n\nFirst, create a runtime instance of the library:\n\n```ts\nimport { loadHnswlib } from 'hnswlib-wasm';\n\nconst lib = await loadHnswlib();\n```\n\nHere is a full example of loading a index if it exists or creating a new index if it doesn't exist:\n\n```ts\n  const filename = 'ghost.dat';\n  const { loadHnswlib } = await import('hnswlib-wasm');\n  this.hnswlib = await loadHnswlib();\n  this.hnswlib.EmscriptenFileSystemManager.setDebugLogs(true);\n  this.vectorHnswIndex = new this.hnswlib.HierarchicalNSW('cosine', 1536);\n  await syncFileSystem('read');\n\n  const exists = this.hnswlib.EmscriptenFileSystemManager.checkFileExists(filename);\n  if (!exists) {\n    this.vectorHnswIndex.initIndex(100000, 48, 128, 100, true);\n    this.vectorHnswIndex.setEfSearch(32);\n    this.vectorHnswIndex.writeIndex('ghost.dat');\n  } else {\n    this.vectorHnswIndex.readIndex(filename, 100000, true);\n    this.vectorHnswIndex.setEfSearch(32);\n  }\n```\n\n\nYou can create the index and use it like so.\n\n```ts\n// Here you're creating a new index with the L2 distance metric and 1000 as the max number of elements\nconst hnswIndex = lib.HierarchicalNSW('l2', 100);\n\n// Initialize the index with the dimensions (1536), m, efConstruction. See the section below on parameters for more details. These cannot be changed after the index is created.\nindex.initIndex(1536, 36, 16, 200, true);\n\n// Set efSearch parameters. This can be changed after the index is created.\nindex.setEfSearch(efSearch);\n\n// Now you can add items to the index, labels are returned as an array for the vectors.  It will reuse deleted labels if possible based on the second parameter.\nconst labels = index.addItems(vectors, true);\n\n// Now you can search the index\nconst result1 = index.searchKnn(vectors[10], 10, undefined);\n\n// You can also search the index with a label filter\nconst labelFilter = (label: number) => {\n  return label >= 10 && label < 20;\n}\nconst result2 = index.searchKnn(testVectorData.vectors[10], 10, labelFilter);\n```\n\n\nMore usage examples to be added.\n\n> For now, see the `HierarchicalNSW.test.ts` file in the tests folder and refer to the [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/).\n\n## Extended IndexedDB (IDBFS) Support\n\nThe `hnswlib-wasm` library provides extended support for IndexedDB (IDBFS) to store and manage the search index in the browser. This allows you to save and load the search index easily in a web environment and you don't have to move data from the emcc file system to javascript memory.  It uses the FS from Emscripten to save and load the index via the virtual file system.  The virtual file system is synchronized with IDBFS.\n\n\n#### Saving and Loading the Search Index with IDBFS\n\nTo save the search index, use the `writeIndex` method:\n\n```ts\nawait index.writeIndex('savedIndex');\n```\n\nTo load a previously saved search index, use the `readIndex` method:\n\n```ts\nawait index.readIndex('savedIndex', false);\n```\n\n#### Synchronizing the Emscripten File System with IDBFS\n\nThe `syncFs` method is used to synchronize the Emscripten file system with the persistent storage IDBFS. You can use this method to save or read data from the file system's persistent source.\n\n```ts\nawait lib.EmscriptenFileSystemManager.syncFS(true, emscripten::val::undefined()); // Read data from the persistent source\nawait lib.EmscriptenFileSystemManager.syncFS(false, emscripten::val::undefined()); // Save data to the persistent source\n```\n\n\n## HNSW Algorithm Parameters for hnswlib-wasm\nThis section will provide an overview of the HNSW algorithm parameters and their impact on performance when using the hnswlib-wasm library. \nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. \n\n![](https://d33wubrfki0l68.cloudfront.net/1fcaebe70c031d408ae082da355bfe0c6ecc04ac/ba768/images/similarity-search-indexes16.jpg) Image from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n\n\nIt has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters.\n\n### Search Parameters: efSearch\nefSearch is the size of the dynamic list for the nearest neighbors used during the search. Higher efSearch values lead to more accurate but slower searches. efSearch cannot be set lower than the number of queried nearest neighbors k and can be any value between k and the size of the dataset.\n\n### Construction Parameters: M\nM is the number of bi-directional links created for every new element during index construction. A reasonable range for M is 2-100. Higher M values work better on datasets with high intrinsic dimensionality and/or high recall, while lower M values work better for datasets with low intrinsic dimensionality and/or low recall. The parameter also determines the algorithms memory consumption, which is roughly M * 8-10 bytes per stored element.\n\n### Construction Parameters: efConstruction\nefConstruction controls the index construction time and accuracy. Bigger efConstruction values lead to longer construction times but better index quality. At some point, increasing efConstruction does not improve the quality of the index. To check if the selected efConstruction value is appropriate, measure recall for M nearest neighbor search when efSearch = efConstruction. If the recall is lower than 0.9, there is room for improvement.\n\n## Parameter Selection for hnswlib-wasm\n\nWhen using hnswlib-wasm, it is essential to choose appropriate values for M, efSearch, and efConstruction based on your datasets size and dimensionality. Since hnswlib-wasm is running in the browser, you should consider the available memory and performance limitations. Here are some recommendations:\n\n### M: \nChoose a value in the range of 12-48, as it works well for most use cases. You may need to experiment to find the optimal value for your specific dataset.\n\n### efSearch: \nStart with a value close to M and adjust it based on your desired trade-off between search speed and accuracy. Lower values will be faster but less accurate, while higher values will be more accurate but slower.\n\n### efConstruction: \nSet this value considering the expected query volume. If you anticipate low query volume, you can set a higher value for efConstruction to improve recall with minimal impact on search time, especially when using lower M values.\n\nRemember that higher M values will increase the memory usage of the index, so you should balance performance and memory constraints when choosing your parameters for hnswlib-wasm.\n\n## Resources\n\n[Learn hnsw by pinecone](https://www.pinecone.io/learn/hnsw/)\n\n[Vector indexes by pinecone](https://www.pinecone.io/learn/vector-indexes/)\n\nImages from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n![](https://d33wubrfki0l68.cloudfront.net/f8df59c49b28522dea11e4293307af2e4f8d97ed/a6992/images/hnsw-9.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/e5194e6f5b1aad4b940e0d3f1957b71bf6c2f25b/40135/images/hnsw-10.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/1b0b0b0b5b1b0b0b0b0b0b0b0b0b0b0b0b0b0b0b/40135/images/hnsw-11.jpg)\n\n# Other Notes\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.4.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-imZ9qJFVJv2KNRJOW/5++aC4gMTgiXAiugP1ZCbBvfS/CtHqOwkZLUHPHZE3+zG+UIiGn49D3LQ3x3KI5K9bAA==","shasum":"541447a11dd810b9be99f46a11788ad0cbb08a2b","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.4.0.tgz","fileCount":18,"unpackedSize":6998099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFn+LyCCq7mzlIXkFSKz0Cl7BrOzDn6D3Wl3WYf9g4BUAiEAuCM0Zaxtx8plykRYdr/djo9bRFIvg6p9j8qPpAunYXU="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.4.0_1685841331395_0.4782239017427954"},"_hasShrinkwrap":false},"0.5.0":{"name":"hnswlib-wasm","version":"0.5.0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version minor --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a WebAssembly (Wasm) version of the [hnswlib](https://github.com/nmslib/hnswlib) index library written in C++. This Wasm port was created by @ShravanSunder using the emcc Wasm compiler, see the repository [here](https://github.com/shravansunder/hnswlib-wasm).\n\nInspired by the library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/). @yoshoku has provided some wonderful [documentation](https://yoshoku.github.io/hnswlib-node/doc/) for hnswlib-node. Thanks, @yoshoku!\n\n> Note: This library is still in its early days! It is being built for a use case that requires running hnswlib in the browser.\n\n`hnswlib-wasm` provides wasm bindings for [Hnswlib](https://github.com/nmslib/hnswlib) that implements approximate nearest-neighbor search based on hierarchical navigable small world graphs. It works in browsers and is compiled with Emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\nSee the npm package [here](https://www.npmjs.com/package/hnswlib-wasm).\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node provides an accurate description of the API. The TypeScript definitions of the API have been modified to work with Wasm. The documentation will be updated as the library progresses, and more examples will be added.\n* The major differences are in loading and saving the index. It supports `indexedDB` (in browser) and uses FS from Emscripten to save and load the index via the virtual file system and IDBFS.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md).\n\n### Usage\n\nFirst, create a runtime instance of the library:\n\n```ts\nimport { loadHnswlib } from 'hnswlib-wasm';\n\nconst lib = await loadHnswlib();\n```\n\nHere is a full example of loading a index if it exists or creating a new index if it doesn't exist:\n\n```ts\n  const filename = 'ghost.dat';\n  const { loadHnswlib } = await import('hnswlib-wasm');\n  this.hnswlib = await loadHnswlib();\n  this.hnswlib.EmscriptenFileSystemManager.setDebugLogs(true);\n  this.vectorHnswIndex = new this.hnswlib.HierarchicalNSW('cosine', 1536);\n  await syncFileSystem('read');\n\n  const exists = this.hnswlib.EmscriptenFileSystemManager.checkFileExists(filename);\n  if (!exists) {\n    this.vectorHnswIndex.initIndex(100000, 48, 128, 100, true);\n    this.vectorHnswIndex.setEfSearch(32);\n    this.vectorHnswIndex.writeIndex('ghost.dat');\n  } else {\n    this.vectorHnswIndex.readIndex(filename, 100000, true);\n    this.vectorHnswIndex.setEfSearch(32);\n  }\n```\n\n\nYou can create the index and use it like so.\n\n```ts\n// Here you're creating a new index with the L2 distance metric and 1000 as the max number of elements\nconst hnswIndex = lib.HierarchicalNSW('l2', 100);\n\n// Initialize the index with the dimensions (1536), m, efConstruction. See the section below on parameters for more details. These cannot be changed after the index is created.\nindex.initIndex(1536, 36, 16, 200, true);\n\n// Set efSearch parameters. This can be changed after the index is created.\nindex.setEfSearch(efSearch);\n\n// Now you can add items to the index, labels are returned as an array for the vectors.  It will reuse deleted labels if possible based on the second parameter.\nconst labels = index.addItems(vectors, true);\n\n// Now you can search the index\nconst result1 = index.searchKnn(vectors[10], 10, undefined);\n\n// You can also search the index with a label filter\nconst labelFilter = (label: number) => {\n  return label >= 10 && label < 20;\n}\nconst result2 = index.searchKnn(testVectorData.vectors[10], 10, labelFilter);\n```\n\n\nMore usage examples to be added.\n\n> For now, see the `HierarchicalNSW.test.ts` file in the tests folder and refer to the [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/).\n\n## Extended IndexedDB (IDBFS) Support\n\nThe `hnswlib-wasm` library provides extended support for IndexedDB (IDBFS) to store and manage the search index in the browser. This allows you to save and load the search index easily in a web environment and you don't have to move data from the emcc file system to javascript memory.  It uses the FS from Emscripten to save and load the index via the virtual file system.  The virtual file system is synchronized with IDBFS.\n\n\n#### Saving and Loading the Search Index with IDBFS\n\nTo save the search index, use the `writeIndex` method:\n\n```ts\nawait index.writeIndex('savedIndex');\n```\n\nTo load a previously saved search index, use the `readIndex` method:\n\n```ts\nawait index.readIndex('savedIndex', false);\n```\n\n#### Synchronizing the Emscripten File System with IDBFS\n\nThe `syncFs` method is used to synchronize the Emscripten file system with the persistent storage IDBFS. You can use this method to save or read data from the file system's persistent source.\n\n```ts\nawait lib.EmscriptenFileSystemManager.syncFS(true, emscripten::val::undefined()); // Read data from the persistent source\nawait lib.EmscriptenFileSystemManager.syncFS(false, emscripten::val::undefined()); // Save data to the persistent source\n```\n\n\n## HNSW Algorithm Parameters for hnswlib-wasm\nThis section will provide an overview of the HNSW algorithm parameters and their impact on performance when using the hnswlib-wasm library. \nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. \n\n![](https://d33wubrfki0l68.cloudfront.net/1fcaebe70c031d408ae082da355bfe0c6ecc04ac/ba768/images/similarity-search-indexes16.jpg) Image from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n\n\nIt has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters.\n\n### Search Parameters: efSearch\nefSearch is the size of the dynamic list for the nearest neighbors used during the search. Higher efSearch values lead to more accurate but slower searches. efSearch cannot be set lower than the number of queried nearest neighbors k and can be any value between k and the size of the dataset.\n\n### Construction Parameters: M\nM is the number of bi-directional links created for every new element during index construction. A reasonable range for M is 2-100. Higher M values work better on datasets with high intrinsic dimensionality and/or high recall, while lower M values work better for datasets with low intrinsic dimensionality and/or low recall. The parameter also determines the algorithms memory consumption, which is roughly M * 8-10 bytes per stored element.\n\n### Construction Parameters: efConstruction\nefConstruction controls the index construction time and accuracy. Bigger efConstruction values lead to longer construction times but better index quality. At some point, increasing efConstruction does not improve the quality of the index. To check if the selected efConstruction value is appropriate, measure recall for M nearest neighbor search when efSearch = efConstruction. If the recall is lower than 0.9, there is room for improvement.\n\n## Parameter Selection for hnswlib-wasm\n\nWhen using hnswlib-wasm, it is essential to choose appropriate values for M, efSearch, and efConstruction based on your datasets size and dimensionality. Since hnswlib-wasm is running in the browser, you should consider the available memory and performance limitations. Here are some recommendations:\n\n### M: \nChoose a value in the range of 12-48, as it works well for most use cases. You may need to experiment to find the optimal value for your specific dataset.\n\n### efSearch: \nStart with a value close to M and adjust it based on your desired trade-off between search speed and accuracy. Lower values will be faster but less accurate, while higher values will be more accurate but slower.\n\n### efConstruction: \nSet this value considering the expected query volume. If you anticipate low query volume, you can set a higher value for efConstruction to improve recall with minimal impact on search time, especially when using lower M values.\n\nRemember that higher M values will increase the memory usage of the index, so you should balance performance and memory constraints when choosing your parameters for hnswlib-wasm.\n\n## Resources\n\n[Learn hnsw by pinecone](https://www.pinecone.io/learn/hnsw/)\n\n[Vector indexes by pinecone](https://www.pinecone.io/learn/vector-indexes/)\n\nImages from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n![](https://d33wubrfki0l68.cloudfront.net/f8df59c49b28522dea11e4293307af2e4f8d97ed/a6992/images/hnsw-9.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/e5194e6f5b1aad4b940e0d3f1957b71bf6c2f25b/40135/images/hnsw-10.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/1b0b0b0b5b1b0b0b0b0b0b0b0b0b0b0b0b0b0b0b/40135/images/hnsw-11.jpg)\n\n# Other Notes\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!\n","readmeFilename":"README.md","gitHead":"564d28b9bf84eefad3f961e2b3003bd5c21ca3cc","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.5.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-fIkTzMLLMJaEJzK5S/9QdDcSSBffV3yGhm1Vv8vWZlR4jkT/hGJCkCVqQ4ssVX02A2cwdfimsOhDcBifq3DIKQ==","shasum":"270ae7f3963dbe2640759ecd7d5438701f4876b0","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.5.0.tgz","fileCount":18,"unpackedSize":6998099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjQk2P/xaMs0c1SnWSiQZvGEQJ14SE8Z43oESn5yK/LgIhAKpUTNAN0olB1bGyDBbG/Z8GwhQ9ACNRmZX2SMAbREoT"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.5.0_1685841344398_0.6778656295317329"},"_hasShrinkwrap":false},"0.5.1":{"name":"hnswlib-wasm","version":"0.5.1","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.0.2","@types/emscripten":"^1.39.6","@types/jest":"^29.5.0","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.37.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.17.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jest-extended":"^2.0.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.0.57","fake-indexeddb":"^4.0.1","happy-dom":"^9.1.7","husky":"^8.0.3","prettier":"^2.8.7","tsembind":"^1.1.0","typescript":"^5.0.3","vite":"^4.2.1","vite-plugin-checker":"^0.5.6","vite-plugin-commonjs":"^0.6.2","vite-plugin-dts":"^2.2.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.13.1","vite-plugin-top-level-await":"^1.3.0","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.0.8","vitest":"^0.29.8"},"packageManager":"yarn@3.5.0","readme":"# hnswlib-wasm\n\nThis is a WebAssembly (Wasm) version of the [hnswlib](https://github.com/nmslib/hnswlib) index library written in C++. This Wasm port was created by @ShravanSunder using the emcc Wasm compiler, see the repository [here](https://github.com/shravansunder/hnswlib-wasm).\n\nInspired by the library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/). @yoshoku has provided some wonderful [documentation](https://yoshoku.github.io/hnswlib-node/doc/) for hnswlib-node. Thanks, @yoshoku!\n\n> Note: This library is still in its early days! It is being built for a use case that requires running hnswlib in the browser.\n\n`hnswlib-wasm` provides wasm bindings for [Hnswlib](https://github.com/nmslib/hnswlib) that implements approximate nearest-neighbor search based on hierarchical navigable small world graphs. It works in browsers and is compiled with Emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\nSee the npm package [here](https://www.npmjs.com/package/hnswlib-wasm).\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node provides an accurate description of the API. The TypeScript definitions of the API have been modified to work with Wasm. The documentation will be updated as the library progresses, and more examples will be added.\n* The major differences are in loading and saving the index. It supports `indexedDB` (in browser) and uses FS from Emscripten to save and load the index via the virtual file system and IDBFS.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md).\n\n### Usage\n\nFirst, create a runtime instance of the library:\n\n```ts\nimport { loadHnswlib } from 'hnswlib-wasm';\n\nconst lib = await loadHnswlib();\n```\n\nHere is a full example of loading a index if it exists or creating a new index if it doesn't exist:\n\n```ts\n  const filename = 'ghost.dat';\n  const { loadHnswlib } = await import('hnswlib-wasm');\n  this.hnswlib = await loadHnswlib();\n  this.hnswlib.EmscriptenFileSystemManager.setDebugLogs(true);\n  this.vectorHnswIndex = new this.hnswlib.HierarchicalNSW('cosine', 1536);\n  await syncFileSystem('read');\n\n  const exists = this.hnswlib.EmscriptenFileSystemManager.checkFileExists(filename);\n  if (!exists) {\n    this.vectorHnswIndex.initIndex(100000, 48, 128, 100, true);\n    this.vectorHnswIndex.setEfSearch(32);\n    this.vectorHnswIndex.writeIndex('ghost.dat');\n  } else {\n    this.vectorHnswIndex.readIndex(filename, 100000, true);\n    this.vectorHnswIndex.setEfSearch(32);\n  }\n```\n\n\nYou can create the index and use it like so.\n\n```ts\n// Here you're creating a new index with the L2 distance metric and 1000 as the max number of elements\nconst hnswIndex = lib.HierarchicalNSW('l2', 100);\n\n// Initialize the index with the dimensions (1536), m, efConstruction. See the section below on parameters for more details. These cannot be changed after the index is created.\nindex.initIndex(1536, 36, 16, 200, true);\n\n// Set efSearch parameters. This can be changed after the index is created.\nindex.setEfSearch(efSearch);\n\n// Now you can add items to the index, labels are returned as an array for the vectors.  It will reuse deleted labels if possible based on the second parameter.\nconst labels = index.addItems(vectors, true);\n\n// Now you can search the index\nconst result1 = index.searchKnn(vectors[10], 10, undefined);\n\n// You can also search the index with a label filter\nconst labelFilter = (label: number) => {\n  return label >= 10 && label < 20;\n}\nconst result2 = index.searchKnn(testVectorData.vectors[10], 10, labelFilter);\n```\n\n\nMore usage examples to be added.\n\n> For now, see the `HierarchicalNSW.test.ts` file in the tests folder and refer to the [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/).\n\n## Extended IndexedDB (IDBFS) Support\n\nThe `hnswlib-wasm` library provides extended support for IndexedDB (IDBFS) to store and manage the search index in the browser. This allows you to save and load the search index easily in a web environment and you don't have to move data from the emcc file system to javascript memory.  It uses the FS from Emscripten to save and load the index via the virtual file system.  The virtual file system is synchronized with IDBFS.\n\n\n#### Saving and Loading the Search Index with IDBFS\n\nTo save the search index, use the `writeIndex` method:\n\n```ts\nawait index.writeIndex('savedIndex');\n```\n\nTo load a previously saved search index, use the `readIndex` method:\n\n```ts\nawait index.readIndex('savedIndex', false);\n```\n\n#### Synchronizing the Emscripten File System with IDBFS\n\nThe `syncFs` method is used to synchronize the Emscripten file system with the persistent storage IDBFS. You can use this method to save or read data from the file system's persistent source.\n\n```ts\nawait lib.EmscriptenFileSystemManager.syncFS(true, emscripten::val::undefined()); // Read data from the persistent source\nawait lib.EmscriptenFileSystemManager.syncFS(false, emscripten::val::undefined()); // Save data to the persistent source\n```\n\n\n## HNSW Algorithm Parameters for hnswlib-wasm\nThis section will provide an overview of the HNSW algorithm parameters and their impact on performance when using the hnswlib-wasm library. \nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. \n\n![](https://d33wubrfki0l68.cloudfront.net/1fcaebe70c031d408ae082da355bfe0c6ecc04ac/ba768/images/similarity-search-indexes16.jpg) Image from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n\n\nIt has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters.\n\n### Search Parameters: efSearch\nefSearch is the size of the dynamic list for the nearest neighbors used during the search. Higher efSearch values lead to more accurate but slower searches. efSearch cannot be set lower than the number of queried nearest neighbors k and can be any value between k and the size of the dataset.\n\n### Construction Parameters: M\nM is the number of bi-directional links created for every new element during index construction. A reasonable range for M is 2-100. Higher M values work better on datasets with high intrinsic dimensionality and/or high recall, while lower M values work better for datasets with low intrinsic dimensionality and/or low recall. The parameter also determines the algorithms memory consumption, which is roughly M * 8-10 bytes per stored element.\n\n### Construction Parameters: efConstruction\nefConstruction controls the index construction time and accuracy. Bigger efConstruction values lead to longer construction times but better index quality. At some point, increasing efConstruction does not improve the quality of the index. To check if the selected efConstruction value is appropriate, measure recall for M nearest neighbor search when efSearch = efConstruction. If the recall is lower than 0.9, there is room for improvement.\n\n## Parameter Selection for hnswlib-wasm\n\nWhen using hnswlib-wasm, it is essential to choose appropriate values for M, efSearch, and efConstruction based on your datasets size and dimensionality. Since hnswlib-wasm is running in the browser, you should consider the available memory and performance limitations. Here are some recommendations:\n\n### M: \nChoose a value in the range of 12-48, as it works well for most use cases. You may need to experiment to find the optimal value for your specific dataset.\n\n### efSearch: \nStart with a value close to M and adjust it based on your desired trade-off between search speed and accuracy. Lower values will be faster but less accurate, while higher values will be more accurate but slower.\n\n### efConstruction: \nSet this value considering the expected query volume. If you anticipate low query volume, you can set a higher value for efConstruction to improve recall with minimal impact on search time, especially when using lower M values.\n\nRemember that higher M values will increase the memory usage of the index, so you should balance performance and memory constraints when choosing your parameters for hnswlib-wasm.\n\n## Resources\n\n[Learn hnsw by pinecone](https://www.pinecone.io/learn/hnsw/)\n\n[Vector indexes by pinecone](https://www.pinecone.io/learn/vector-indexes/)\n\nImages from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n![](https://d33wubrfki0l68.cloudfront.net/f8df59c49b28522dea11e4293307af2e4f8d97ed/a6992/images/hnsw-9.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/e5194e6f5b1aad4b940e0d3f1957b71bf6c2f25b/40135/images/hnsw-10.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/1b0b0b0b5b1b0b0b0b0b0b0b0b0b0b0b0b0b0b0b/40135/images/hnsw-11.jpg)\n\n# Other Notes\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!\n","readmeFilename":"README.md","gitHead":"564d28b9bf84eefad3f961e2b3003bd5c21ca3cc","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.5.1","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-ghg4vwvisDEOgpzNrHvHZQSfu21HttywbyeYdIieEpUTxV2pJYwv8iPH8PjnTUgZqanQxQrsEzRxNXukrwMPNA==","shasum":"40f6bde9a1f4bc9c0af5013da0f018e7f8f36ea3","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.5.1.tgz","fileCount":18,"unpackedSize":6998099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRBsliXBT/Wh+UdGJQWXn4ot4Qs3evJQthquhvdsQppgIgOAy8fJg7Raqyk6xkqF5etiq77CRR5dwVnnkk+hoHw3M="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.5.1_1685841363558_0.315030730435643"},"_hasShrinkwrap":false},"0.5.2":{"name":"hnswlib-wasm","version":"0.5.2","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.2.5","@typescript-eslint/eslint-plugin":"^5.59.8","@typescript-eslint/parser":"^5.59.8","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.5","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.31.4"},"packageManager":"yarn@3.5.0","gitHead":"826c9ced95524a8dc8d22b688f321c4df539fb64","readme":"# hnswlib-wasm\n\nThis is a WebAssembly (Wasm) version of the [hnswlib](https://github.com/nmslib/hnswlib) index library written in C++. This Wasm port was created by @ShravanSunder using the emcc Wasm compiler, see the repository [here](https://github.com/shravansunder/hnswlib-wasm).\n\nInspired by the library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/). @yoshoku has provided some wonderful [documentation](https://yoshoku.github.io/hnswlib-node/doc/) for hnswlib-node. Thanks, @yoshoku!\n\n> Note: This library is still in its early days! It is being built for a use case that requires running hnswlib in the browser.\n\n`hnswlib-wasm` provides wasm bindings for [Hnswlib](https://github.com/nmslib/hnswlib) that implements approximate nearest-neighbor search based on hierarchical navigable small world graphs. It works in browsers and is compiled with Emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\nSee the npm package [here](https://www.npmjs.com/package/hnswlib-wasm).\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node provides an accurate description of the API. The TypeScript definitions of the API have been modified to work with Wasm. The documentation will be updated as the library progresses, and more examples will be added.\n* The major differences are in loading and saving the index. It supports `indexedDB` (in browser) and uses FS from Emscripten to save and load the index via the virtual file system and IDBFS.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md).\n\n### Usage\n\nFirst, create a runtime instance of the library:\n\n```ts\nimport { loadHnswlib } from 'hnswlib-wasm';\n\nconst lib = await loadHnswlib();\n```\n\nHere is a full example of loading a index if it exists or creating a new index if it doesn't exist:\n\n```ts\n  const filename = 'ghost.dat';\n  const { loadHnswlib } = await import('hnswlib-wasm');\n  this.hnswlib = await loadHnswlib();\n  this.hnswlib.EmscriptenFileSystemManager.setDebugLogs(true);\n  this.vectorHnswIndex = new this.hnswlib.HierarchicalNSW('cosine', 1536);\n  await syncFileSystem('read');\n\n  const exists = this.hnswlib.EmscriptenFileSystemManager.checkFileExists(filename);\n  if (!exists) {\n    this.vectorHnswIndex.initIndex(100000, 48, 128, 100, true);\n    this.vectorHnswIndex.setEfSearch(32);\n    this.vectorHnswIndex.writeIndex('ghost.dat');\n  } else {\n    this.vectorHnswIndex.readIndex(filename, 100000, true);\n    this.vectorHnswIndex.setEfSearch(32);\n  }\n```\n\n\nYou can create the index and use it like so.\n\n```ts\n// Here you're creating a new index with the L2 distance metric and 1000 as the max number of elements\nconst hnswIndex = lib.HierarchicalNSW('l2', 100);\n\n// Initialize the index with the dimensions (1536), m, efConstruction. See the section below on parameters for more details. These cannot be changed after the index is created.\nindex.initIndex(1536, 36, 16, 200, true);\n\n// Set efSearch parameters. This can be changed after the index is created.\nindex.setEfSearch(efSearch);\n\n// Now you can add items to the index, labels are returned as an array for the vectors.  It will reuse deleted labels if possible based on the second parameter.\nconst labels = index.addItems(vectors, true);\n\n// Now you can search the index\nconst result1 = index.searchKnn(vectors[10], 10, undefined);\n\n// You can also search the index with a label filter\nconst labelFilter = (label: number) => {\n  return label >= 10 && label < 20;\n}\nconst result2 = index.searchKnn(testVectorData.vectors[10], 10, labelFilter);\n```\n\n\nMore usage examples to be added.\n\n> For now, see the `HierarchicalNSW.test.ts` file in the tests folder and refer to the [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/).\n\n## Extended IndexedDB (IDBFS) Support\n\nThe `hnswlib-wasm` library provides extended support for IndexedDB (IDBFS) to store and manage the search index in the browser. This allows you to save and load the search index easily in a web environment and you don't have to move data from the emcc file system to javascript memory.  It uses the FS from Emscripten to save and load the index via the virtual file system.  The virtual file system is synchronized with IDBFS.\n\n\n#### Saving and Loading the Search Index with IDBFS\n\nTo save the search index, use the `writeIndex` method:\n\n```ts\nawait index.writeIndex('savedIndex');\n```\n\nTo load a previously saved search index, use the `readIndex` method:\n\n```ts\nawait index.readIndex('savedIndex', false);\n```\n\n#### Synchronizing the Emscripten File System with IDBFS\n\nThe `syncFs` method is used to synchronize the Emscripten file system with the persistent storage IDBFS. You can use this method to save or read data from the file system's persistent source.\n\n```ts\nawait lib.EmscriptenFileSystemManager.syncFS(true, emscripten::val::undefined()); // Read data from the persistent source\nawait lib.EmscriptenFileSystemManager.syncFS(false, emscripten::val::undefined()); // Save data to the persistent source\n```\n\n\n## HNSW Algorithm Parameters for hnswlib-wasm\nThis section will provide an overview of the HNSW algorithm parameters and their impact on performance when using the hnswlib-wasm library. \nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. \n\n![](https://d33wubrfki0l68.cloudfront.net/1fcaebe70c031d408ae082da355bfe0c6ecc04ac/ba768/images/similarity-search-indexes16.jpg) Image from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n\n\nIt has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters.\n\n### Search Parameters: efSearch\nefSearch is the size of the dynamic list for the nearest neighbors used during the search. Higher efSearch values lead to more accurate but slower searches. efSearch cannot be set lower than the number of queried nearest neighbors k and can be any value between k and the size of the dataset.\n\n### Construction Parameters: M\nM is the number of bi-directional links created for every new element during index construction. A reasonable range for M is 2-100. Higher M values work better on datasets with high intrinsic dimensionality and/or high recall, while lower M values work better for datasets with low intrinsic dimensionality and/or low recall. The parameter also determines the algorithms memory consumption, which is roughly M * 8-10 bytes per stored element.\n\n### Construction Parameters: efConstruction\nefConstruction controls the index construction time and accuracy. Bigger efConstruction values lead to longer construction times but better index quality. At some point, increasing efConstruction does not improve the quality of the index. To check if the selected efConstruction value is appropriate, measure recall for M nearest neighbor search when efSearch = efConstruction. If the recall is lower than 0.9, there is room for improvement.\n\n## Parameter Selection for hnswlib-wasm\n\nWhen using hnswlib-wasm, it is essential to choose appropriate values for M, efSearch, and efConstruction based on your datasets size and dimensionality. Since hnswlib-wasm is running in the browser, you should consider the available memory and performance limitations. Here are some recommendations:\n\n### M: \nChoose a value in the range of 12-48, as it works well for most use cases. You may need to experiment to find the optimal value for your specific dataset.\n\n### efSearch: \nStart with a value close to M and adjust it based on your desired trade-off between search speed and accuracy. Lower values will be faster but less accurate, while higher values will be more accurate but slower.\n\n### efConstruction: \nSet this value considering the expected query volume. If you anticipate low query volume, you can set a higher value for efConstruction to improve recall with minimal impact on search time, especially when using lower M values.\n\nRemember that higher M values will increase the memory usage of the index, so you should balance performance and memory constraints when choosing your parameters for hnswlib-wasm.\n\n## Resources\n\n[Learn hnsw by pinecone](https://www.pinecone.io/learn/hnsw/)\n\n[Vector indexes by pinecone](https://www.pinecone.io/learn/vector-indexes/)\n\nImages from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n![](https://d33wubrfki0l68.cloudfront.net/f8df59c49b28522dea11e4293307af2e4f8d97ed/a6992/images/hnsw-9.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/e5194e6f5b1aad4b940e0d3f1957b71bf6c2f25b/40135/images/hnsw-10.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/1b0b0b0b5b1b0b0b0b0b0b0b0b0b0b0b0b0b0b0b/40135/images/hnsw-11.jpg)\n\n# Other Notes\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.5.2","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-xo1sVmd6mKj+z31gdK583F4XS+be7QqJg++DQ8cpH4bkU+DbkaqTr3r5UTpKlfLMWFrxRSMPThZRV7XdcenZYA==","shasum":"e0f3ddd14095f10625c856bc1190582688f52083","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.5.2.tgz","fileCount":18,"unpackedSize":2993648,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAR7AuaYsowfhV8KPiqhMm4FewzV/pRFTVYUcvk02tYAIgWHRVu/tDNKFDey3bO5X1Y586/R2EPzcZqiyuk0KNgGg="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.5.2_1685842398256_0.34843442752023823"},"_hasShrinkwrap":false},"0.5.3":{"name":"hnswlib-wasm","version":"0.5.3","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.5.3","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-t0sytJ06ojsgWEVI71g0P6bktHwcE3YCCLAxT4qRAM14o89g4wbqh43d9CyajILS5UGd6vr1uWZ2Qb+GtUevXw==","shasum":"ed79c3e3fa241dc4625ff517983328ceeeabc9d8","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.5.3.tgz","fileCount":18,"unpackedSize":2993937,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClbJ6JOSoQyBDiHjlPhUxS5wN9XHVsj/UC8uWfgn2XiAIhAI41G/FtyVh+byLQV/ggA0KEiePbDxKszTV/87Wk3qK8"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.5.3_1686874362373_0.20253011521143272"},"_hasShrinkwrap":false},"0.5.4":{"name":"hnswlib-wasm","version":"0.5.4","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.5.4","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-nomQTicat1rkcr3oHFwBHEy3ZbFlKja1RL5irXoopEPFVkE31WzJczaADBM94c5fUC0Vzy9G7kFPsn/cU37zHw==","shasum":"bf691ec0dc8a041f86d3ff2741b60cbf675f1ca1","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.5.4.tgz","fileCount":18,"unpackedSize":2994169,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAO/zh9CXstIq/GJ/kio/35Blyon5+nU4Dt/KoPbu7J8AiBTiPad4aYIi7hQ774ujJ5WNBLyPpztD6RvPpU5r/Bw2g=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.5.4_1686875598441_0.4490542769681918"},"_hasShrinkwrap":false},"0.6.0":{"name":"hnswlib-wasm","version":"0.6.0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.6.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-IU4yAhcFQDHo+NSYbPdZhjXG7JZYY7OjhSUUl4tLJIdJneOHqW8+ZDgOOonTYywYzF9zsFFOVcbGideMGxxI7w==","shasum":"bfd2c3c4582a482438bbf6215fd5dec8bb01334a","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.6.0.tgz","fileCount":18,"unpackedSize":3002429,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFFB1s80XGKopNUd4qv/RRgbeIwqs9tmShELWaa+Odk4AiB1GpVTNYNIbYkN+MzXvAdL6/1AUYTVnwlsKVw6vJ5bYQ=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.6.0_1686877334171_0.7163700109244999"},"_hasShrinkwrap":false},"0.6.1":{"name":"hnswlib-wasm","version":"0.6.1","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.6.1","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-bOlHueobMykzJBrZ3Le1NhEtuhZfPieCgG35/xnqsYHyOn9ZcYqd9HXC7G5uyVQxVhX8yN+PpdU35ayO3y/Lug==","shasum":"c83a3f9cb482be2b832cb9b7d7992fc7f9bbd16a","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.6.1.tgz","fileCount":18,"unpackedSize":3003441,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/S6xOf9T/bm9teen2z4fAWqFAhbfh/asRQZAiBfvBCgIhAIN0+iwq44YDW9TBZ1sl3gtV1q/z3h6vE+dmdQidox8S"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.6.1_1686877801351_0.25183343922945034"},"_hasShrinkwrap":false},"0.6.2":{"name":"hnswlib-wasm","version":"0.6.2","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.6.2","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-cPPYxEFQJNh8OqK+E4YYeAQ1yEvE4w4E6GCi+UpUewv0p6wlAvStY/u3P6TYStQu2f6+gIfi7Kh3ch/5Buy+8Q==","shasum":"c7cfd6e3751fc9ee807102f27caf29f5c40fc7cd","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.6.2.tgz","fileCount":18,"unpackedSize":3006101,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHpqfN+ot65zgYl1RXurea9BWIx4zdwWTne/MdfKrKuuAiBTriT1CbvJGr3tAT5ns1z3wXUhi6O0Zrjm75CunCQCCg=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.6.2_1686882899558_0.33930978273502577"},"_hasShrinkwrap":false},"0.6.3":{"name":"hnswlib-wasm","version":"0.6.3","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.6.3","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-gghrR4qPutE81IeXk7IvWKXp/0AWAcxe5EMqb6yktc7o226K+y5RX2lDhCxb4SUx7PkwFS84KWhauKmeyiSgIQ==","shasum":"7022423ad3a83078fa004a99d67c294944160e77","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.6.3.tgz","fileCount":18,"unpackedSize":3006801,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHqOBZzeTDYNOP6N8lfCqJhHFR8ky/iUWqDSTSj7F00iAiBaZDD28QnmbdWrPF0N+2eMCQK0h7Hgt0B2vkIeESowMA=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.6.3_1686883102221_0.13248555227199987"},"_hasShrinkwrap":false},"0.6.4":{"name":"hnswlib-wasm","version":"0.6.4","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.6.4","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-NH3ndrnV+aoVrUUhyWURtEuCqqYfD4M/Lbls5bhG7XNfNkKX7yQj9t+vAp4TAmCmCRkFE0FUojJm1JXwgvOQqQ==","shasum":"41cb604a6ee4f40754080c0608ecd3ad3a51f6cd","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.6.4.tgz","fileCount":18,"unpackedSize":3007009,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5Bd/ZYxpvm3e5G3ypjI+l+Gb0rQqTexyo06kX5AqVUAIhAKaZJpcsLBA7Ysigj2LioviPosnzERVZBcefgrrq4i/6"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.6.4_1686883254098_0.9741818130057587"},"_hasShrinkwrap":false},"0.6.5":{"name":"hnswlib-wasm","version":"0.6.5","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.6.5","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-PBOk+4scchCbTSMKd0uLs2AJPXO/7OCvOSu95A7olO58+W1LRbeSnvxi0ntDj0IXpGboweqy73kNKxdRlZOUCg==","shasum":"e7840f9cb6f6976fc01ead97f287b6a6a602aa86","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.6.5.tgz","fileCount":18,"unpackedSize":3007919,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICGH+67BYa/4kswTLADZqIoQKGOHB+6m/wD+TiGpr2b4AiEAzhLfuIJ82Q5igWTgKDen1+Gg87Y5mSVXB9zxgJvz/s4="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.6.5_1686910041857_0.25061089694901706"},"_hasShrinkwrap":false},"0.6.6":{"name":"hnswlib-wasm","version":"0.6.6","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.6.6","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-Avw1zY9YdyXTDi7MtrnqTqD3TtMbTGWEJ60ExVYq03jUVZoDI+CF5PuwygmbJ3h90CHu86PYz0DvjumyX2nUHA==","shasum":"1ae7ae2414ca83a4b6f67eb94ee13f61984af52b","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.6.6.tgz","fileCount":18,"unpackedSize":3007365,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6CYFD0u/RLQI+eUh+acyTYZxP9b25FNkpMdZLsLIBVwIgBfKI113wGgDVyEZXtqsewI1eSV9I7Ix6wNYNdPmLUiQ="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.6.6_1686912692284_0.4290150296653017"},"_hasShrinkwrap":false},"0.6.7":{"name":"hnswlib-wasm","version":"0.6.7","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"119b40c507542164814e21071acde8d69fc92ef8","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.6.7","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-/uSyPbJ/8aWOvSSNktrXNMZbGbjIUYayK6AiSg2vFzCvdB6TsXm/Xq5nu6PSCz7510OFcqLtWZW/21/jmWcFxA==","shasum":"aa176028e9d3f1d2bcc9eae849198aca756fe873","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.6.7.tgz","fileCount":18,"unpackedSize":3007801,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBI+b+PYMMt4mPPQuEPOkdm1zX1DDTIpj9zXo7+XUYsnAiBHTYOjC6TsQ5bQVs8S08VJ2fCV6KXO8LE9k7WsplwYEQ=="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.6.7_1686912991946_0.445469505036199"},"_hasShrinkwrap":false},"0.7.0":{"name":"hnswlib-wasm","version":"0.7.0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"0824b67f45ad220ef352e915020b27bd28bdcc83","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.7.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-Ki28kZmrdan67LvHKJxGFmszUn92skeW+i3Z1d7CQVvk0k8V5zuxESmi2kbFNUG8lvpvVT2PLgiPfu2faxcT2A==","shasum":"e1827b1ce5923837c0a75f9f79b27d4378a4381f","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.7.0.tgz","fileCount":18,"unpackedSize":3009094,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF2nIhc/UlV9qeZtTpsAoQVlhyDNGiBwRpMaT1mHOClwAiEAxW/fUW4XpogSspF/eDFZTFBvvO4nlD8xyQqM0FRGeLU="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.7.0_1686913910632_0.47548446793053945"},"_hasShrinkwrap":false},"0.8.0":{"name":"hnswlib-wasm","version":"0.8.0","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.3.1","@typescript-eslint/eslint-plugin":"^5.59.11","@typescript-eslint/parser":"^5.59.11","@xn-sakina/phoenix":"^1.0.3","eslint":"^8.42.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.20.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^9.20.3","husky":"^8.0.3","prettier":"^2.8.8","tsembind":"^1.1.0","typescript":"^5.1.3","vite":"^4.3.9","vite-plugin-checker":"^0.6.0","vite-plugin-commonjs":"^0.7.1","vite-plugin-dts":"^2.3.0","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.32.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"15535b677c94fbb9b69045eee1a70b937235fe8c","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.8.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-WB4RD0SEgTQJhs30TkcspZN75DA8Qv9X99jZAzazDkewPLdZiuhL9+0yT95/8Dh9Eq6fMk3wS864gS525exZfw==","shasum":"b546845db543f12fa0d68268fca816db3b9c935c","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.8.0.tgz","fileCount":19,"unpackedSize":3023099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZO8ah24hGPMp5SmCWqBMmH5uIuezhR2ZQDMnqUgU2fQIhAOQUBx/6A/CJ+wwDmxY3e6DNhkdZDqlOxCiHa7e/AEkm"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.8.0_1688835453722_0.9899206909302525"},"_hasShrinkwrap":false},"0.8.1":{"name":"hnswlib-wasm","version":"0.8.1","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.4.1","@typescript-eslint/eslint-plugin":"^5.61.0","@typescript-eslint/parser":"^5.61.0","eslint":"^8.44.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.21.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"5.0.0-alpha.2","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^10.0.3","husky":"^8.0.3","prettier":"^3.0.0","tsembind":"^1.1.0","typescript":"^5.1.6","vite":"^4.4.2","vite-plugin-checker":"^0.6.1","vite-plugin-commonjs":"^0.8.0","vite-plugin-dts":"^3.1.1","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.33.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"608664d1841f02c6b621a5606be77757617c5681","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.8.1","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-l2E/vaOfj0j5zD+E5KoeTWhT3GowHAM83xlidKFxevzdMz9EK36o2fqa3ElCgoFAEVqF9u/K9/xew/Jwozm3jg==","shasum":"2f39a1587f1cd851187864b384f1eb918197d34f","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.8.1.tgz","fileCount":31,"unpackedSize":3052576,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNNXcpe17g0rWOjb0CnDMF7yCgA8fp+ryBfPluh+kZkAIhAOBoDohwXk0YGF9sgQzMYyctwL2NXQCMFIUfFAuaVOVa"}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.8.1_1688836087826_0.02964521359864869"},"_hasShrinkwrap":false},"0.8.2":{"name":"hnswlib-wasm","version":"0.8.2","description":"typescript and wasm bindings for Hnswlib","module":"./dist/hnswlib.js","types":"./dist/hnswlib.d.ts","type":"module","repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"homepage":"https://github.com/shravansunder/hnswlib-wasm","author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"license":"Apache-2.0","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"scripts":{"prepare":"husky install","build:emcc":"make","build:vite":"yarn vite build","build":"yarn build:emcc && yarn build:vite","test":"vitest","publish:next:pre":"npm version prerelease --git-tag-version false && npm publish --tag latest","publish:next:patch":"npm version patch --git-tag-version false && npm publish --tag next","publish:next:minor":"npm version minor --git-tag-version false && npm publish --tag next","publish:next:major":"npm version major --git-tag-version false && npm publish --tag next","publish:latest:patch":"npm version patch --git-tag-version false && npm publish --tag latest","publish:latest:minor":"npm version minor --git-tag-version false && npm publish --tag latest","publish:latest:major":"npm version major --git-tag-version false && npm publish --tag latest"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.1.0","@types/emscripten":"^1.39.6","@types/node":"^20.4.1","@typescript-eslint/eslint-plugin":"^5.61.0","@typescript-eslint/parser":"^5.61.0","eslint":"^8.44.0","eslint-config-prettier":"^8.8.0","eslint-define-config":"^1.21.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"5.0.0-alpha.2","eslint-plugin-vitest":"^0.2.6","fake-indexeddb":"^4.0.1","happy-dom":"^10.0.3","husky":"^8.0.3","prettier":"^3.0.0","tsembind":"^1.1.0","typescript":"^5.1.6","vite":"^4.4.2","vite-plugin-checker":"^0.6.1","vite-plugin-commonjs":"^0.8.0","vite-plugin-dts":"^3.1.1","vite-plugin-eslint":"^1.8.1","vite-plugin-static-copy":"^0.16.0","vite-plugin-top-level-await":"^1.3.1","vite-plugin-wasm":"^3.2.2","vite-tsconfig-paths":"^4.2.0","vitest":"^0.33.0"},"packageManager":"yarn@3.5.0","volta":{"node":"20.2.0"},"gitHead":"74e3fdd56cc927771b4e0a2c53d0cea4f496daf1","bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"_id":"hnswlib-wasm@0.8.2","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-qEgKETj4rMOYRA1esP0bxVosw9Wrz5S/HvjI2FBWOXG5rf5/Es4OoEWGVvztFihDNU5if61l6QGhW5ILtt+PqA==","shasum":"8b6a9534d99f23d30b1fd29ac7c45410ee5941c1","tarball":"https://registry.npmjs.org/hnswlib-wasm/-/hnswlib-wasm-0.8.2.tgz","fileCount":21,"unpackedSize":3049318,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDISkzF2QrCm+SRmSz/zcvEwDX/9NSM/zBDtSbuBP5AIQIgZ/kQR/M1HNAiUW2JBZmTka3BGBdPp8RuUTHvhzh2yog="}]},"_npmUser":{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"},"directories":{},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hnswlib-wasm_0.8.2_1688860117024_0.9864875793566807"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-04T12:23:06.510Z","0.0.1-beta.1":"2023-04-04T12:23:06.779Z","modified":"2023-07-08T23:48:37.444Z","0.0.1-beta.2":"2023-04-04T12:26:08.119Z","0.0.1-beta.3":"2023-04-04T12:34:50.261Z","0.0.1-beta.4":"2023-04-04T12:39:50.187Z","0.0.1-beta.5":"2023-04-04T12:58:13.691Z","0.0.1-beta.6":"2023-04-04T13:26:39.901Z","0.0.4-beta.8":"2023-04-05T12:13:16.811Z","0.0.1-beta.8":"2023-04-05T12:15:50.434Z","0.0.1-beta.9":"2023-04-05T12:21:40.198Z","0.0.1-beta.10":"2023-04-05T13:04:53.939Z","0.0.1-beta.11":"2023-04-05T13:35:06.908Z","0.0.1-beta.12":"2023-04-06T11:35:47.078Z","0.0.1-beta.13":"2023-04-06T11:55:05.122Z","0.0.1-beta.14":"2023-04-06T12:06:46.765Z","0.0.4-beta.1":"2023-04-06T12:09:59.912Z","0.0.5-beta.1":"2023-04-06T12:10:14.204Z","0.0.5-beta.2":"2023-04-06T12:45:59.649Z","0.0.5-beta.3":"2023-04-06T12:49:20.123Z","0.0.5-beta.4":"2023-04-06T12:56:03.413Z","0.0.5-beta.5":"2023-04-06T13:00:08.855Z","0.0.5-beta.6":"2023-04-06T13:04:54.429Z","0.0.5-beta.7":"2023-04-06T13:21:47.322Z","0.0.5-beta.8":"2023-04-06T14:26:44.964Z","0.0.5-beta.9":"2023-04-06T14:27:16.197Z","0.0.5-beta.10":"2023-04-06T15:01:48.188Z","0.0.5-beta.11":"2023-04-07T19:16:39.735Z","0.0.6":"2023-04-20T10:43:52.849Z","0.0.7":"2023-04-20T10:59:47.813Z","0.0.8":"2023-04-20T11:06:15.471Z","0.0.9":"2023-04-20T12:23:57.942Z","0.0.10-0":"2023-04-20T12:25:10.486Z","0.1.0":"2023-05-31T13:28:24.264Z","0.1.0-1":"2023-06-01T02:57:47.897Z","0.1.1-0":"2023-06-01T12:32:27.898Z","0.1.1-1":"2023-06-01T12:57:38.849Z","0.1.1-2":"2023-06-01T13:10:37.802Z","0.1.1-3":"2023-06-01T13:11:19.748Z","0.1.1-4":"2023-06-01T13:28:26.672Z","0.1.1-5":"2023-06-02T00:08:25.550Z","0.1.1-6":"2023-06-02T00:18:02.697Z","0.1.1-7":"2023-06-02T00:28:11.165Z","0.1.1-8":"2023-06-02T12:13:02.732Z","0.1.1-10":"2023-06-02T12:15:51.054Z","0.1.1-11":"2023-06-02T12:24:35.288Z","0.1.1-12":"2023-06-02T12:28:07.169Z","0.1.1-13":"2023-06-02T12:31:38.834Z","0.1.1-14":"2023-06-02T12:39:23.833Z","0.1.1-16":"2023-06-02T12:43:02.913Z","0.1.1-17":"2023-06-02T15:49:59.486Z","0.1.1-18":"2023-06-02T15:56:28.969Z","0.1.1-20":"2023-06-02T15:58:45.975Z","0.1.1-22":"2023-06-02T17:57:24.747Z","0.1.1-23":"2023-06-02T18:04:34.722Z","0.1.1-24":"2023-06-02T18:15:48.761Z","0.1.1-25":"2023-06-02T18:22:37.623Z","0.2.0":"2023-06-02T18:32:17.753Z","0.2.1-0":"2023-06-02T18:35:46.205Z","0.2.1-1":"2023-06-03T14:26:35.405Z","0.2.1-2":"2023-06-03T15:08:46.116Z","0.3.0":"2023-06-04T00:38:46.358Z","0.3.1-0":"2023-06-04T01:07:26.549Z","0.4.0":"2023-06-04T01:15:31.620Z","0.5.0":"2023-06-04T01:15:44.679Z","0.5.1":"2023-06-04T01:16:03.794Z","0.5.2":"2023-06-04T01:33:18.524Z","0.5.3":"2023-06-16T00:12:42.621Z","0.5.4":"2023-06-16T00:33:18.728Z","0.6.0":"2023-06-16T01:02:14.495Z","0.6.1":"2023-06-16T01:10:01.829Z","0.6.2":"2023-06-16T02:34:59.871Z","0.6.3":"2023-06-16T02:38:22.497Z","0.6.4":"2023-06-16T02:40:54.399Z","0.6.5":"2023-06-16T10:07:22.054Z","0.6.6":"2023-06-16T10:51:32.545Z","0.6.7":"2023-06-16T10:56:32.194Z","0.7.0":"2023-06-16T11:11:51.006Z","0.8.0":"2023-07-08T16:57:34.065Z","0.8.1":"2023-07-08T17:08:08.155Z","0.8.2":"2023-07-08T23:48:37.274Z"},"maintainers":[{"name":"shravansunder","email":"shravan.sunder.dev@gmail.com"}],"description":"typescript and wasm bindings for Hnswlib","homepage":"https://github.com/shravansunder/hnswlib-wasm","keywords":["hnswlib","approximate nearest neighbor search","machine learning","wasm","typescript","emscripten","embeddings"],"repository":{"type":"git","url":"git+https://github.com/shravansunder/hnswlib-wasm.git"},"author":{"name":"Shravan Sunder","email":"shravan.sunder.dev@gmail.com"},"bugs":{"url":"https://github.com/shravansunder/hnswlib-wasm/issues"},"license":"Apache-2.0","readme":"# hnswlib-wasm\n\nThis is a WebAssembly (Wasm) version of the [hnswlib](https://github.com/nmslib/hnswlib) index library written in C++. This Wasm port was created by @ShravanSunder using the emcc Wasm compiler, see the repository [here](https://github.com/shravansunder/hnswlib-wasm).\n\nInspired by the library [hnswlib-node](https://github.com/yoshoku/hnswlib-node/). @yoshoku has provided some wonderful [documentation](https://yoshoku.github.io/hnswlib-node/doc/) for hnswlib-node. Thanks, @yoshoku!\n\n> Note: This library is still in its early days! It is being built for a use case that requires running hnswlib in the browser.\n\n`hnswlib-wasm` provides wasm bindings for [Hnswlib](https://github.com/nmslib/hnswlib) that implements approximate nearest-neighbor search based on hierarchical navigable small world graphs. It works in browsers and is compiled with Emscripten.\n\n## Installation\n\n```sh\n$ yarn add hnswlib-wasm\n```\n\nSee the npm package [here](https://www.npmjs.com/package/hnswlib-wasm).\n\n## Documentation\n\n* [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/) by @yoshoku for hnswlib-node provides an accurate description of the API. The TypeScript definitions of the API have been modified to work with Wasm. The documentation will be updated as the library progresses, and more examples will be added.\n* The major differences are in loading and saving the index. It supports `indexedDB` (in browser) and uses FS from Emscripten to save and load the index via the virtual file system and IDBFS.\n* See the changelog from `hnswlib-node` for more details by @yoshoku [changelog](./CHANGELOG.md).\n\n### Usage\n\nFirst, create a runtime instance of the library:\n\n```ts\nimport { loadHnswlib } from 'hnswlib-wasm';\n\nconst lib = await loadHnswlib();\n```\n\nHere is a full example of loading a index if it exists or creating a new index if it doesn't exist:\n\n```ts\n  const filename = 'ghost.dat';\n  const { loadHnswlib } = await import('hnswlib-wasm');\n  this.hnswlib = await loadHnswlib();\n  this.hnswlib.EmscriptenFileSystemManager.setDebugLogs(true);\n  this.vectorHnswIndex = new this.hnswlib.HierarchicalNSW('cosine', 1536);\n  await syncFileSystem('read');\n\n  const exists = this.hnswlib.EmscriptenFileSystemManager.checkFileExists(filename);\n  if (!exists) {\n    this.vectorHnswIndex.initIndex(100000, 48, 128, 100);\n    this.vectorHnswIndex.setEfSearch(32);\n    this.vectorHnswIndex.writeIndex('ghost.dat');\n  } else {\n    this.vectorHnswIndex.readIndex(filename, 100000, true);\n    this.vectorHnswIndex.setEfSearch(32);\n  }\n```\n\n\nYou can create the index and use it like so.\n\n```ts\n// Here you're creating a new index with the L2 distance metric and 1000 as the max number of elements\nconst hnswIndex = lib.HierarchicalNSW('l2', 100);\n\n// Initialize the index with the dimensions (1536), m, efConstruction. See the section below on parameters for more details. These cannot be changed after the index is created.\nindex.initIndex(1536, 36, 16, 200);\n\n// Set efSearch parameters. This can be changed after the index is created.\nindex.setEfSearch(efSearch);\n\n// Now you can add items to the index, labels are returned as an array for the vectors.  It will reuse deleted labels if possible based on the second parameter.\nconst labels = index.addItems(vectors, true);\n\n// Now you can search the index\nconst result1 = index.searchKnn(vectors[10], 10, undefined);\n\n// You can also search the index with a label filter\nconst labelFilter = (label: number) => {\n  return label >= 10 && label < 20;\n}\nconst result2 = index.searchKnn(testVectorData.vectors[10], 10, labelFilter);\n```\n\n\nMore usage examples to be added.\n\n> For now, see the `HierarchicalNSW.test.ts` file in the tests folder and refer to the [hnswlib-node API Documentation](https://yoshoku.github.io/hnswlib-node/doc/).\n\n## Extended IndexedDB (IDBFS) Support\n\nThe `hnswlib-wasm` library provides extended support for IndexedDB (IDBFS) to store and manage the search index in the browser. This allows you to save and load the search index easily in a web environment and you don't have to move data from the emcc file system to javascript memory.  It uses the FS from Emscripten to save and load the index via the virtual file system.  The virtual file system is synchronized with IDBFS.\n\n\n#### Saving and Loading the Search Index with IDBFS\n\nTo save the search index, use the `writeIndex` method:\n\n```ts\nawait index.writeIndex('savedIndex');\n```\n\nTo load a previously saved search index, use the `readIndex` method:\n\n```ts\nawait index.readIndex('savedIndex', false);\n```\n\n#### Synchronizing the Emscripten File System with IDBFS\n\nThe `syncFs` method is used to synchronize the Emscripten file system with the persistent storage IDBFS. You can use this method to save or read data from the file system's persistent source.\n\n```ts\nawait lib.EmscriptenFileSystemManager.syncFS(true, emscripten::val::undefined()); // Read data from the persistent source\nawait lib.EmscriptenFileSystemManager.syncFS(false, emscripten::val::undefined()); // Save data to the persistent source\n```\n\n\n## HNSW Algorithm Parameters for hnswlib-wasm\nThis section will provide an overview of the HNSW algorithm parameters and their impact on performance when using the hnswlib-wasm library. \nHNSW (Hierarchical Navigable Small World) is a graph-based index structure for efficient similarity search in high-dimensional spaces. \n\n![](https://d33wubrfki0l68.cloudfront.net/1fcaebe70c031d408ae082da355bfe0c6ecc04ac/ba768/images/similarity-search-indexes16.jpg) Image from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n\n\nIt has several parameters that can be tuned to control the trade-off between search quality and index size or construction time. Here are some of the key parameters.\n\n### Search Parameters: efSearch\nefSearch is the size of the dynamic list for the nearest neighbors used during the search. Higher efSearch values lead to more accurate but slower searches. efSearch cannot be set lower than the number of queried nearest neighbors k and can be any value between k and the size of the dataset.\n\n### Construction Parameters: M\nM is the number of bi-directional links created for every new element during index construction. A reasonable range for M is 2-100. Higher M values work better on datasets with high intrinsic dimensionality and/or high recall, while lower M values work better for datasets with low intrinsic dimensionality and/or low recall. The parameter also determines the algorithms memory consumption, which is roughly M * 8-10 bytes per stored element.\n\n### Construction Parameters: efConstruction\nefConstruction controls the index construction time and accuracy. Bigger efConstruction values lead to longer construction times but better index quality. At some point, increasing efConstruction does not improve the quality of the index. To check if the selected efConstruction value is appropriate, measure recall for M nearest neighbor search when efSearch = efConstruction. If the recall is lower than 0.9, there is room for improvement.\n\n## Parameter Selection for hnswlib-wasm\n\nWhen using hnswlib-wasm, it is essential to choose appropriate values for M, efSearch, and efConstruction based on your datasets size and dimensionality. Since hnswlib-wasm is running in the browser, you should consider the available memory and performance limitations. Here are some recommendations:\n\n### M: \nChoose a value in the range of 12-48, as it works well for most use cases. You may need to experiment to find the optimal value for your specific dataset.\n\n### efSearch: \nStart with a value close to M and adjust it based on your desired trade-off between search speed and accuracy. Lower values will be faster but less accurate, while higher values will be more accurate but slower.\n\n### efConstruction: \nSet this value considering the expected query volume. If you anticipate low query volume, you can set a higher value for efConstruction to improve recall with minimal impact on search time, especially when using lower M values.\n\nRemember that higher M values will increase the memory usage of the index, so you should balance performance and memory constraints when choosing your parameters for hnswlib-wasm.\n\n## Resources\n\n[Learn hnsw by pinecone](https://www.pinecone.io/learn/hnsw/)\n\n[Vector indexes by pinecone](https://www.pinecone.io/learn/vector-indexes/)\n\nImages from [pinecone.io](https://www.pinecone.io/learn/hnsw/)\n![](https://d33wubrfki0l68.cloudfront.net/f8df59c49b28522dea11e4293307af2e4f8d97ed/a6992/images/hnsw-9.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/e5194e6f5b1aad4b940e0d3f1957b71bf6c2f25b/40135/images/hnsw-10.jpg)\n![](https://d33wubrfki0l68.cloudfront.net/1b0b0b0b5b1b0b0b0b0b0b0b0b0b0b0b0b0b0b0b/40135/images/hnsw-11.jpg)\n\n# Other Notes\n## License\n\nhnswlib-wasm is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).\n\n## Contributing\n\nTo build\n```\nyarn install\nmake rebuild\nyarn build\n```\n\nTo test\n```\nyarn test\n```\n\n\nContact @ShravanSunder first!\n","readmeFilename":"README.md"}