{"_id":"@0-ai/s3lite","_rev":"11-063f7b06014e08002c3ddc62874002ee","name":"@0-ai/s3lite","dist-tags":{"latest":"0.6.0"},"versions":{"0.1.0":{"name":"@0-ai/s3lite","version":"0.1.0","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.1.0","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"4f66ea8336ae1f1b919ce6b742c4dd8c3880f382","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.1.0.tgz","fileCount":12,"integrity":"sha512-tX3WiiCMTwpGGHRbPdlgeYVipE2bR+KU+BjJv17jAIYXZ3/bHOxv/VSUgH8OsX4rqLOsrVqIIt+HUIwVENB15Q==","signatures":[{"sig":"MEUCIHcuV2rIHokv4gRn2Ld8qCK92aFocDmxx8m8+4HU20bRAiEA7fP0EVK8s/bIT/t5xQHallhDlprkhU87iNmkR3A/4K8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34382},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"b5cb53ef1ce4ffa8d5945a6056583774360d3192","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anton_horn","email":"antonhorn@icloud.com"},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.6.0","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.1.0_1773664547530_0.598778135219358","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@0-ai/s3lite","version":"0.1.1","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.1.1","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"4ef8d14a0d77d5944bbabad1868eaf8f872b7d03","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.1.1.tgz","fileCount":12,"integrity":"sha512-NFy2KyfZCyPfbnhsBNtG392D3ovzoAq1UwQaHa4MuVCrk6lQgf9YV/DSFY/Z4aXKjZxdne56liE/hfGFJ/LeEg==","signatures":[{"sig":"MEYCIQC0JNDYIC44etz2Rt4J0uVHX572tDSC90GVZ7bNZN7EgQIhAM5XeFrxqosmxD6IkFrjO8dMubYJninwgnGwLw1ijZqj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34382},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"8556d8414efe10785cc5e89e85ffd5a1a1ebefd3","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.11.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.1.1_1773664831404_0.3000637008684832","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@0-ai/s3lite","version":"0.1.2","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.1.2","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"604324d1379a1bcf942b0ac96f9d7eb9426827a9","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.1.2.tgz","fileCount":13,"integrity":"sha512-KD30bDF8GFtRxkhTzTaF8mSvH0lMKSP3W2LaDuyuiK74f72CT/7CCc5Co7s4N3s7nwgQhlqQw3xuJJTHp1JtfA==","signatures":[{"sig":"MEUCIQC9pX++zv0gj1s9yzSFYBoeYAJToS40BnWIcQrWzIMdeQIgOkbUhfsGXWqRJxib3oT29d/NBc8d9VykIBxOf174Hzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44952},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"caa292063a9181bfc5542a6a0b0f39fc2be7c157","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.12.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.1.2_1774698184434_0.23618973178327018","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@0-ai/s3lite","version":"0.1.3","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.1.3","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"aa65d4ffa40af8fcadb640fb8fefae28ae126656","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.1.3.tgz","fileCount":13,"integrity":"sha512-mQoZDgcRQMBtOQFPTgBU1l1fnMbTs5QdNA7QQ7uTETlqVHSJnQvxAah4rWa22lW5V675EtOY0PPHvxZNO4fAKw==","signatures":[{"sig":"MEUCIE8rqi91Gm7/JFboQlGchxUIu4rDG80bbr4DrfgCCniqAiEAh+DHTvJkGU59HGpxXnOuysz4lFR8ZqAxLLVp6o5WPyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44952},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"6bee732c5d82c46bace63a6551a109143aaf15c2","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.12.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.1.3_1774708498668_0.5848149147870081","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@0-ai/s3lite","version":"0.2.0","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.2.0","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"c830f6b804bba76ba187fe83c75bd172e54c64a0","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.2.0.tgz","fileCount":22,"integrity":"sha512-sBcjBPqH9uJLvUlzwN855dU7d+LVYyQzN+ZfNm31lOUrkSItKVqa1FYIo7W56+/wVC4UeH6AHh95UMspBabhWA==","signatures":[{"sig":"MEUCIAOYIAGXzkyq8jgm617ZAmqJTSHn/spcTN1VrChO+fIvAiEA12NVXG8FXL6X3Al5loXUvoljztpE7ZFA/K0wPtgpMJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89490},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts","./vectors":"./src/vectors/index.ts"},"gitHead":"fb7abb4fc8fdf43646607c96906c23382f352dc9","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.12.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.2.0_1774825002028_0.8550464904302233","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@0-ai/s3lite","version":"0.2.1","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.2.1","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"9a19938655b6628b353c53c682b0f5caa6238b87","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.2.1.tgz","fileCount":25,"integrity":"sha512-R/jVzKu9vrIlv6O9eXgVDMMFBlHDeXGfYdm+u9cmriSYrtLTKVkgjOIaqEz1Fh9/858LtVCOZ+dzp1HhmO4fbg==","signatures":[{"sig":"MEUCIQCQuJiOxrj07xMyj07wDSC6edwAB33RC7jaKIlm2+dJqgIgeECzo625Uh4Vk/ct1ZzlC5eXN5B7PYm3laWEOSxZNLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145212},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts","./vectors":"./src/vectors/index.ts"},"gitHead":"408d7775466c045c0db7c62301ec42702cb3c325","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.12.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.2.1_1774910716532_0.9728724277378344","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@0-ai/s3lite","version":"0.3.0","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.3.0","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"b28368d87f4fcc6d96a541b6b0a07e50db35908d","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.3.0.tgz","fileCount":25,"integrity":"sha512-QnPEy4y9Hk57U9K3GWLgj1X1viGO+sGkZVP/VMw8fG04X6F0WPtbwxksIP03cMzPHDdKHeXzBpKPQg74qlrTZg==","signatures":[{"sig":"MEUCIGFOjiY3HFPw8gvOgh0T7n7/P+q/vg9QF1sKtVK0DEyWAiEAvLbNSfRiQKnnAFSo7mCLUwlZ1OyZytsvgXJs/Ah0jTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163738},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts","./vectors":"./src/vectors/index.ts"},"gitHead":"081a27429391fa0544e8fb4159e33313db255a16","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.12.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.3.0_1775148668372_0.2712486723395944","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@0-ai/s3lite","version":"0.4.0","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.4.0","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"f201405ce37c129721d9c72cd75114bb1f813779","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.4.0.tgz","fileCount":25,"integrity":"sha512-+xQlo9QJ4LzkJ8VZLjrKOMiN00dK1WKCJifmg+Kh6M7O+qj8oTm+XSUaPq3X/Vht7KFlOj4wmtUPHPwGPigwuQ==","signatures":[{"sig":"MEYCIQCd/eIpHWWkKxYIBXx0zFAq062yEIoVbf0559UZ3qem8AIhAKQauy84sq5SlMY1n0TU5pWA7dXHG2qCRk45HUJ9SFG1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":169366},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts","./vectors":"./src/vectors/index.ts"},"gitHead":"79da4b635221b5aedbcc3ca4a7ab5fb09d22c379","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.12.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.4.0_1776083317736_0.2189186804636012","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@0-ai/s3lite","version":"0.5.0","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.5.0","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"add66ae1e2f61b2e0e654c792cc93162ec9cb7ab","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.5.0.tgz","fileCount":26,"integrity":"sha512-R7kARjzZab9UpdQjWme3FddbzOCnFl3OBCkhL0NSYCtKxhzbd53ZTrbRUx/goVytC354fK7ddOpE9fkX1OWX0g==","signatures":[{"sig":"MEUCIQDzInD/UDWdGSYsOPF/TxQIVGy6NMd+aCkt0Grl3czaOQIgRdo29TbpPcW6EEmH68CbFTMLaQnf43jt56J2phRdQqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":182314},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts","./vectors":"./src/vectors/index.ts"},"gitHead":"181e39abc4cc55766d7820a4e4d7b60fa1455d4b","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.12.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.5.0_1776118879007_0.8472544764382346","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@0-ai/s3lite","version":"0.5.1","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","_id":"@0-ai/s3lite@0.5.1","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"homepage":"https://github.com/0-AI-UG/s3lite","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"dist":{"shasum":"8d243a93c0d042d4196c3af1a414399c33da1540","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.5.1.tgz","fileCount":26,"integrity":"sha512-ByCm7xop8H/7EresJVXb2I2rfj0ZDrtD49zuFUqb5268V+UBViQCfvYIfa3+YdtHLBhtcg3ZngpOCCv+3DHSxw==","signatures":[{"sig":"MEUCIEcg7piFD9C76fDR9p6GxN0PyyLvRLDX46XmRswP5pcOAiEA9inKtTC2Z9+VX/8rsrYJUEaOKznvCfRXhFfpNi8H6Yk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":186412},"main":"src/index.ts","type":"module","types":"src/index.ts","exports":{".":"./src/index.ts","./vectors":"./src/vectors/index.ts"},"gitHead":"eddc748539577f2d214cd6e2294685fa65cfb02c","scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"repository":{"url":"git+https://github.com/0-AI-UG/s3lite.git","type":"git"},"_npmVersion":"11.12.1","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/s3lite_0.5.1_1776271898041_0.03958953909444962","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@0-ai/s3lite","version":"0.6.0","description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","type":"module","main":"src/index.ts","types":"src/index.ts","exports":{".":"./src/index.ts","./vectors":"./src/vectors/index.ts"},"scripts":{"test":"bun test","typecheck":"tsc --noEmit"},"keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/0-AI-UG/s3lite.git"},"homepage":"https://github.com/0-AI-UG/s3lite","devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.9.3"},"gitHead":"8b73e5febb527596d1dcba3e4db8bac8867fea9c","_id":"@0-ai/s3lite@0.6.0","bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"_nodeVersion":"22.22.2","_npmVersion":"11.12.1","dist":{"integrity":"sha512-QUlEbFxyx7P9N0zoJeJmNsRYFZZ5MWrolPH4K8hxz+FCdh+wTu4txBQUXTuXfwE5dkzcoZ7Wydbvh1chNv2RPA==","shasum":"68e3606ae38aa217f731b50dd133684c2d8bd4a5","tarball":"https://registry.npmjs.org/@0-ai/s3lite/-/s3lite-0.6.0.tgz","fileCount":26,"unpackedSize":196357,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0-ai%2fs3lite@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD7vemPNe/RrkSJl46ccGxI5SretCC2keO8KjUoBtoMpAIhAMyfy4ZVKQ8ovk3JGRzqsqwfCmOTXYIIjDRWfB8PiBma"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed534ebd-76a2-4681-80e3-dff34ca275e3"}},"directories":{},"maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/s3lite_0.6.0_1776281576079_0.27740387005144984"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-16T12:35:47.313Z","modified":"2026-04-15T19:32:56.550Z","0.1.0":"2026-03-16T12:35:47.684Z","0.1.1":"2026-03-16T12:40:31.563Z","0.1.2":"2026-03-28T11:43:04.631Z","0.1.3":"2026-03-28T14:34:58.819Z","0.2.0":"2026-03-29T22:56:42.177Z","0.2.1":"2026-03-30T22:45:16.688Z","0.3.0":"2026-04-02T16:51:08.525Z","0.4.0":"2026-04-13T12:28:37.894Z","0.5.0":"2026-04-13T22:21:19.199Z","0.5.1":"2026-04-15T16:51:38.186Z","0.6.0":"2026-04-15T19:32:56.243Z"},"bugs":{"url":"https://github.com/0-AI-UG/s3lite/issues"},"license":"MIT","homepage":"https://github.com/0-AI-UG/s3lite","keywords":["s3","sqlite","storage","embedded","bun","presign","object-storage"],"repository":{"type":"git","url":"git+https://github.com/0-AI-UG/s3lite.git"},"description":"Embedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.","maintainers":[{"name":"anton_horn","email":"antonhorn@icloud.com"}],"readme":"# s3lite\n\nEmbedded S3-compatible storage engine with WAL-based persistence. SQLite for object storage.\n\nThe API mirrors Bun's built-in `S3Client` — swap imports and it works. Useful for local development, testing, or single-server deployments where you don't need a real S3 backend.\n\nAlso includes **s3lite-vectors** — an embedded vector store with HNSW indexing, sparse vectors, hybrid search with RRF fusion, and metadata filtering. Think of it as SQLite for vector search.\n\n## Install\n\n```sh\nbun add s3lite\n```\n\n## Usage\n\n```ts\nimport { S3Client } from \"s3lite\";\n\n// In-memory only\nconst s3 = new S3Client({ bucket: \"my-bucket\" });\n\n// With disk persistence\nconst s3 = new S3Client({ bucket: \"my-bucket\", path: \"./data.s3db\" });\n```\n\n### Read & Write\n\n```ts\n// Write\nawait s3.write(\"hello.txt\", \"Hello World\", { type: \"text/plain\" });\n\n// Read via S3File\nconst file = s3.file(\"hello.txt\");\nawait file.text();      // \"Hello World\"\nawait file.json();      // parsed JSON\nawait file.bytes();     // Uint8Array\nawait file.arrayBuffer();\nfile.stream();          // ReadableStream\n\n// Streaming write\nconst writer = s3.file(\"big.bin\").writer();\nwriter.write(chunk1);\nwriter.write(chunk2);\nawait writer.end();\n```\n\n### List & Delete\n\n```ts\nconst result = await s3.list({ prefix: \"photos/\" });\n// result.contents → [{ key, size, lastModified, eTag }]\n\nawait s3.delete(\"hello.txt\");\nawait s3.exists(\"hello.txt\"); // false\n```\n\n### Stat\n\n```ts\nconst stat = await s3.stat(\"hello.txt\");\n// { size, lastModified, etag, type }\n```\n\n### Presigned URLs\n\ns3lite doesn't talk to a remote service, so presigned URLs work differently from real S3. Instead of generating signed AWS URLs, you use `PresignHandler` — a standalone request handler you mount on your HTTP server.\n\n```ts\nimport { S3Client, PresignHandler } from \"s3lite\";\n\nconst s3 = new S3Client({ bucket: \"my-bucket\", path: \"./data.s3db\" });\n\nconst presign = new PresignHandler(s3, {\n  baseUrl: \"http://localhost:3000/api/s3\",\n  corsHeaders: { \"Access-Control-Allow-Origin\": \"*\" },\n});\n\n// Generate a presigned download URL\nconst downloadUrl = presign.presign(\"photos/cat.jpg\", { expiresIn: 900 });\n// → \"http://localhost:3000/api/s3/<token>\"\n\n// Generate a presigned upload URL\nconst uploadUrl = presign.presign(\"uploads/file.bin\", {\n  method: \"PUT\",\n  expiresIn: 900,\n});\n```\n\nThen mount the handler on your server as a catch-all route:\n\n```ts\n// Bun.serve example\nBun.serve({\n  fetch(req) {\n    const url = new URL(req.url);\n    if (url.pathname.startsWith(\"/api/s3/\")) {\n      return presign.handleRequest(req);\n    }\n    return new Response(\"Not Found\", { status: 404 });\n  },\n});\n```\n\n### Cleanup\n\n```ts\ns3.close();        // flush WAL and close database\ns3.checkpoint();   // manual WAL checkpoint without closing\n```\n\n## Bun S3 Compatibility\n\ns3lite implements the same interface as Bun's built-in `S3Client`. To switch between them:\n\n```ts\n// Local development\nimport { S3Client } from \"s3lite\";\nconst s3 = new S3Client({ bucket: \"app\", path: \"./data.s3db\" });\n\n// Production (Bun's built-in S3)\nimport { S3Client } from \"bun\";\nconst s3 = new S3Client({ bucket: \"app\", accessKeyId: \"...\", secretAccessKey: \"...\" });\n```\n\nThe one exception is `presign()` — on a real S3 client it returns signed AWS URLs directly. With s3lite, use `PresignHandler` to serve the files through your own server.\n\n## Vectors\n\ns3lite includes a built-in vector store for similarity search. Import from `@0-ai/s3lite/vectors`.\n\n```ts\nimport { VectorClient } from \"@0-ai/s3lite/vectors\";\n\n// In-memory (all vectors in RAM)\nconst vectors = new VectorClient();\n\n// With disk persistence (vectors in RAM, WAL on disk)\nconst vectors = new VectorClient({ path: \"./vectors.db\" });\n\n// Disk-backed storage (vectors stored on disk, only graph structure in RAM)\nconst vectors = new VectorClient({\n  path: \"./vectors.db\",\n  storage: \"disk\",\n  diskCacheSize: 10_000, // LRU cache size (default: 10,000 vectors)\n});\n```\n\nThe default `\"memory\"` storage keeps all vector data in RAM — fast, but limited by available memory. With `\"disk\"` storage, vector float data is stored on disk using s3lite's own S3 storage engine, while only the HNSW graph structure and norms stay in memory. This reduces memory usage by ~95%, allowing you to handle 10-100x more vectors on the same machine. An LRU cache keeps frequently accessed vectors hot.\n\n### Create an Index\n\n```ts\nvectors.createIndex({\n  name: \"movies\",\n  dimension: 1536,\n  distanceMetric: \"cosine\", // \"cosine\" | \"euclidean\" | \"dotproduct\"\n  hnswConfig: { M: 16, efConstruction: 200 },\n});\n```\n\n### Insert Vectors\n\n```ts\nvectors.putVectors(\"movies\", [\n  { key: \"star-wars\", vector: [0.1, 0.2, ...], metadata: { genre: \"scifi\", year: 1977 } },\n  { key: \"titanic\", vector: [0.3, 0.4, ...], metadata: { genre: \"drama\", year: 1997 } },\n]);\n```\n\n### Query\n\n```ts\nconst { results } = vectors.query(\"movies\", {\n  vector: [0.1, 0.2, ...],\n  topK: 10,\n  efSearch: 100,\n  includeMetadata: true,\n  filter: { genre: \"scifi\" },\n});\n// results → [{ key: \"star-wars\", score: 0.98, metadata: { ... } }, ...]\n```\n\n### Metadata Filtering\n\nFilters support comparison operators:\n\n```ts\nvectors.query(\"movies\", {\n  vector: queryVec,\n  topK: 5,\n  filter: {\n    genre: { $in: [\"scifi\", \"action\"] },\n    year: { $gte: 1990 },\n  },\n});\n```\n\nAvailable operators: `$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte`, `$in`, `$nin`.\n\n### Sparse & Hybrid Search\n\nCreate a sparse-enabled index and use RRF (Reciprocal Rank Fusion) to combine dense + sparse results:\n\n```ts\nvectors.createIndex({ name: \"docs\", dimension: 768, sparse: true });\n\nvectors.putVectors(\"docs\", [\n  {\n    key: \"doc1\",\n    vector: denseVec,\n    sparseVector: { indices: [10, 42, 99], values: [0.5, 0.3, 0.8] },\n  },\n]);\n\n// Hybrid query (dense + sparse with RRF fusion)\nconst { results } = vectors.query(\"docs\", {\n  vector: queryDense,\n  sparseVector: { indices: [42, 99], values: [0.4, 0.7] },\n  topK: 10,\n  fusionK: 60,\n});\n```\n\n### Manage Vectors & Indexes\n\n```ts\n// Get vectors by key\nconst vecs = vectors.getVectors(\"movies\", [\"star-wars\", \"titanic\"]);\n\n// List vector keys\nconst { keys } = vectors.listVectors(\"movies\", { prefix: \"star\", maxKeys: 100 });\n\n// Delete vectors\nvectors.deleteVectors(\"movies\", [\"titanic\"]);\n\n// List all indexes\nconst { indexes } = vectors.listIndexes();\n\n// Delete an index\nvectors.deleteIndex(\"movies\");\n```\n\n### Events\n\n```ts\nvectors.on(\"putVectors\", (indexName, keys) => {\n  console.log(`Upserted ${keys?.length} vectors in ${indexName}`);\n});\n// Events: \"putVectors\" | \"deleteVectors\" | \"createIndex\" | \"deleteIndex\"\n```\n\n### Cleanup\n\n```ts\nvectors.checkpoint(); // flush WAL\nvectors.close();      // flush and close\n```\n\n## Development\n\n```sh\nbun test           # run tests\nbun run typecheck  # type-check\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}