{"_id":"@dstanesc/lucy-block-store","_rev":"2-78d43a1518b38a2ead5a47e03dd38f33","name":"@dstanesc/lucy-block-store","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@dstanesc/lucy-block-store","description":"Blocks are everywhere. Structural resilience, performance and high availability. Censorship resistant. Store content-addressable blocks redundantly, across technologies and providers. Providers compete on retrieval, fastest wins.","version":"0.0.1","homepage":"https://github.com/dstanesc/lucy-block-store","repository":{"type":"git","url":"git+https://github.com/dstanesc/lucy-block-store.git"},"license":"(Apache-2.0 AND MIT)","author":{"name":"dstanesc","email":"dstanesc@gmail.com"},"type":"module","main":"./dist/block-store.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rimraf dist node_modules","build":"tsc","test":"npm-run-all build test:jest","dev":"tsc -w","test:jest":"NODE_OPTIONS=--experimental-vm-modules cross-env jest --runInBand dist"},"jest":{"testRegex":"(\\.(test|spec))\\.(js)$"},"devDependencies":{"@azure/identity":"^3.0.0","@dstanesc/az-block-store":"^0.0.4","@dstanesc/ipfs-block-store":"^0.0.4","@dstanesc/store-chunky-bytes":"^0.0.7","@dstanesc/wasm-chunking-fastcdc-node":"^0.1.1","@types/jest":"^28.1.5","@types/uuid":"^8.3.4","cross-env":"7.0.3","dotenv":"^16.0.3","ipfs-http-client":"^59.0.0","jest":"^28.1.2","multiformats":"^9.8.1","npm-run-all":"4.1.5","rimraf":"3.0.2","typescript":"^4.5.5","uuid":"^8.3.2"},"gitHead":"15ba5b2e6d543634dd3a7e29684eda718887e75f","bugs":{"url":"https://github.com/dstanesc/lucy-block-store/issues"},"_id":"@dstanesc/lucy-block-store@0.0.1","_nodeVersion":"16.13.1","_npmVersion":"8.17.0","dist":{"integrity":"sha512-vrZeJ0oWSWdUeEp/5Nf8qQPYzn0Syn64HGtWPbF6D7gZ+wTQpil/ZbJbgCB/GFf1gwUXzqDTYhSPMQp0QmTRzA==","shasum":"93086aea6d3dedd37de4b1732635851d9f51797a","tarball":"https://registry.npmjs.org/@dstanesc/lucy-block-store/-/lucy-block-store-0.0.1.tgz","fileCount":23,"unpackedSize":26327,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQ48mwO8RqNocpjJV+/nb4aRuSI+uc/5eQLYnVo+gaSAiEAsvRyq/998FMFX9FgOGb1OvEiuCgnKgqrC7F8Z41leb0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYHEVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8Xw/5ADBAGh+3CQkgJS8Z4aJf8i4rcEIIQGomtIZn+rHtWzePdVUy\r\nC1vaqyv2iy9Qv2MJSvbJ9v8p3q7JufPNQgvuJO6dVZFaeZw0DCVYssqG4WBq\r\ngepQ6aldKuY7B6HTKuYuno+LZOV7+BUvAaCaKFf73MTpTKPgTO8Cr276NZzk\r\nf/op+aUcMCwH6odpHjQpuDpH/Sg46SDikCJVDziA/hFBnr74/oLqt2ai9Wjt\r\nU03tEQOTpfIHPMawZqThNPpijcY7kjItRBVSBr+d7l3CaiVJRH9/4hCCd+nO\r\nA6j+aZzNOX4vet1+rfIWSn6+WJQKo+87iOOnorF8SVITgq8cWmDHw/KbO8uh\r\nVyS5/6T6Ep9iaLRBEGquZPrGc/jXcndTVFC/4qD8LVAuYe/ORaPnWne5ETCP\r\npOXj+pOEP4ICyxC7XfCgWcdb7HLxWoRynyYakDeY7rbMYRx5LaC8N4xetbJe\r\nfZ2ZcetfQ70RGjTFu9u6IaA5snxePApH2eW4rsEzTVozwth87CKaRhdOUhjF\r\nnHkbXOCxOd0FGU4o/3nhN1HFD/8Up22GdY3dziyxLPpmXTem95Ekhd4CxReH\r\nQm6oVRCDxInN5kvCQNjh/DPt1Ek4KC9mBddVCxcKCukjUyrD1Uq0RPeWqtYl\r\n/OgquwTY8fMxlI0Y9kXyTi7HeIjj3SN0b/M=\r\n=Nwkk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dstanesc","email":"dstanesc@gmail.com"},"directories":{},"maintainers":[{"name":"dstanesc","email":"dstanesc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lucy-block-store_0.0.1_1667264788833_0.9480300300255351"},"_hasShrinkwrap":false},"0.0.2":{"name":"@dstanesc/lucy-block-store","description":"Blocks are everywhere. Structural resilience, performance and high availability. Censorship resistant. Store content-addressable blocks redundantly, across technologies and providers. Providers compete on retrieval, fastest wins.","version":"0.0.2","homepage":"https://github.com/dstanesc/lucy-block-store","repository":{"type":"git","url":"git+https://github.com/dstanesc/lucy-block-store.git"},"license":"(Apache-2.0 AND MIT)","author":{"name":"dstanesc","email":"dstanesc@gmail.com"},"type":"module","main":"./dist/block-store.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rimraf dist node_modules","build":"tsc","test":"npm-run-all build test:jest","dev":"tsc -w","test:jest":"NODE_OPTIONS=--experimental-vm-modules cross-env jest --runInBand dist"},"jest":{"testRegex":"(\\.(test|spec))\\.(js)$"},"devDependencies":{"@azure/identity":"^3.0.0","@dstanesc/az-block-store":"^0.0.4","@dstanesc/ipfs-block-store":"^0.0.4","@dstanesc/store-chunky-bytes":"^0.0.7","@dstanesc/wasm-chunking-fastcdc-node":"^0.1.1","@types/jest":"^28.1.5","@types/uuid":"^8.3.4","cross-env":"7.0.3","dotenv":"^16.0.3","ipfs-http-client":"^59.0.0","jest":"^28.1.2","multiformats":"^9.8.1","npm-run-all":"4.1.5","rimraf":"3.0.2","typescript":"^4.5.5","uuid":"^8.3.2"},"gitHead":"3292972f2bad9c621635328e4bda8abf1e28980b","bugs":{"url":"https://github.com/dstanesc/lucy-block-store/issues"},"_id":"@dstanesc/lucy-block-store@0.0.2","_nodeVersion":"16.13.1","_npmVersion":"8.17.0","dist":{"integrity":"sha512-c3SYGDZDbo9uZWNWXIf/764Pg5JoPDe9XaHjGxmGcpcUzGg5IqbS86xTt0wdIKW/Hrhhxr16uPMP56T6hdfAAA==","shasum":"122451541bc9419d5bd7eb08ef61f3695a5cd175","tarball":"https://registry.npmjs.org/@dstanesc/lucy-block-store/-/lucy-block-store-0.0.2.tgz","fileCount":23,"unpackedSize":26350,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICeXb4W5Kjc2XuOvsRBUbMUWK9eihgeA3jk5ctFGKdBzAiEAgDuot4RRfYFJCPznSnEI2LWfPqVUQV/vpJwiwV4TkVU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYTMXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMqw//Xl9O+3FghQ+rwXgoc2msLTqdR5/SQNFs068Na7D4cgDSy3fY\r\niFrqRPE/qKnBaxUXbdM6IgPr/qgI+YimqNvpn2UpsBppRmNORGNuwqZEsXEI\r\n7dP8tNFQ7bLZ3KFb4zyGS5A7Zh0VjFWkJsogL1+xY1fhgADwrZhp4Ykg7hYg\r\ng0LT7EY97T5+yB2jTBW/v29chzErO+ufIVkIrXAwm0n186pzvZMqz6/lgA93\r\nKOjtYQNML9kQgFP8Dqy+eYJP/aFyT+nXjiIhAC27JN+5tsJza72vDPrda+n/\r\nzvaR7nDEhGYmHjl+FC4vh06PsRRvqPnd41rxsM2OPBCKKIZXOhqqJYU1Kxa1\r\nUmc9fAdKfDxllpnc1tHYNU4JY97iGjgYly0VzhQUzpZODpwNkIFpbUwK0N5p\r\n+K1ujkBVIzNfMn3Iz9YiMWCGsEvEpS5qlT45afsIAkPaHv//rag2l0LE+z1A\r\nfK1T4XyY1UP1jry9UUCbm+DclM+vuvsdVIC3G9++hSTn4LLu57BgIxf/kvQw\r\n0TH+rRePqXeobJIiVzFfvx8H0m6gDOSRAEAbjxvplJb1VW+X3dVhniSwDpC1\r\nu3CUp9NRrUmCGPXnStW5zos9hvOCCmU7AKiFlHlHpwpXsDdAp5Edcohu4Mj/\r\n3l7+WLaPzPkpJA+3m+sMEBokgT/JtFA+QwA=\r\n=WQR4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dstanesc","email":"dstanesc@gmail.com"},"directories":{},"maintainers":[{"name":"dstanesc","email":"dstanesc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lucy-block-store_0.0.2_1667314454950_0.17910815491542054"},"_hasShrinkwrap":false},"0.0.3":{"name":"@dstanesc/lucy-block-store","description":"Blocks are everywhere. Structural resilience, performance and high availability. Censorship resistant. Store content-addressable blocks redundantly, across technologies and providers. Providers compete on retrieval, fastest wins.","version":"0.0.3","homepage":"https://github.com/dstanesc/lucy-block-store","repository":{"type":"git","url":"git+https://github.com/dstanesc/lucy-block-store.git"},"license":"(Apache-2.0 AND MIT)","author":{"name":"dstanesc","email":"dstanesc@gmail.com"},"type":"module","main":"./dist/block-store.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"clean":"rimraf dist node_modules","build":"tsc","test":"npm-run-all build test:jest","dev":"tsc -w","test:jest":"NODE_OPTIONS=--experimental-vm-modules cross-env jest --runInBand dist"},"jest":{"testRegex":"(\\.(test|spec))\\.(js)$"},"devDependencies":{"@azure/identity":"^3.0.0","@dstanesc/az-block-store":"^0.0.4","@dstanesc/ipfs-block-store":"^0.0.4","@dstanesc/s3-block-store":"^0.0.3","@dstanesc/store-chunky-bytes":"^0.0.7","@dstanesc/wasm-chunking-fastcdc-node":"^0.1.1","@types/jest":"^28.1.5","@types/uuid":"^8.3.4","aws-sdk":"^2.1259.0","cross-env":"7.0.3","dotenv":"^16.0.3","ipfs-http-client":"^59.0.0","jest":"^28.1.2","multiformats":"^9.8.1","npm-run-all":"4.1.5","rimraf":"3.0.2","typescript":"^4.5.5","uuid":"^8.3.2"},"gitHead":"ebb5a6b3cb523791673cf7f98dbc3bd115519cdd","bugs":{"url":"https://github.com/dstanesc/lucy-block-store/issues"},"_id":"@dstanesc/lucy-block-store@0.0.3","_nodeVersion":"16.13.1","_npmVersion":"8.17.0","dist":{"integrity":"sha512-UQlDWh2KgY4yBp8tw+i9DD1doIx+TGIPwnrCH1FHYox2GEwDCaZPi2wXiqxIpyHZfP76Ezjtsvl4F4nIqajtGA==","shasum":"93a712dab1470f94a25a7ed91b8a06006b85dc81","tarball":"https://registry.npmjs.org/@dstanesc/lucy-block-store/-/lucy-block-store-0.0.3.tgz","fileCount":23,"unpackedSize":28135,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDsC9sssYQIp1Ryd0efht8ZNraYO9ztqAkiH2PNEaziDAiAwjXlgT54i5913r0qz8fUTjnnQalLxrJ6qnBjrNGaSYA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfEk7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKLg/+NOlOi278pokOrpBouJsvSgETl9IRKIEuXo4ARu8aW3brxPXq\r\ncPnmdrpDgHU2RNh8Cv4jGQ9MHDb1ZIXPvzVR/TGUwkYPbt3nXK6C4jJ1iuJh\r\nG1ikPLPSeq4lOYpCux09uV6ucRrKR+tNPmiuN9BVnxm0YS9FS97iG0dzrI7f\r\nohNKSWAIjt5E0/0bfoQi66jL8I81xq1rWvH1q6yogCerNLPrU/xVhmoSxntM\r\nn8F8q2IY0Bg/a9ZlwgpafXGT4s+66MBayor3uJ7TwibjjsRHa6TnPAT7Lntn\r\nRkH/fYXA7g4cz6Enh1D2JFnnWGfi+CZZDfMD6AkJvbBY9aGJskQWb6W4x2rK\r\nI/8rfkqPeuuJrZwM3KZmbaEKHCcwfyRK7awTQxwIiwbiDCh99JDr2kwzjM5z\r\nmLswAjI3+7I6jhma/T8yiOUWtCpVAtuVYd30FArGfltdyV26NtIPhrQFdb7F\r\ntZ9x6o3Yye7O7+Y7DecL11s1mQUw+Sd2Nj+WjIA5uwUfQlZMzDbPOIUbMGS+\r\nTJJ08l4YoAsQl/CSEnO0ILvSjfvjuxdWFCPQwTCzOKZ4MQh2li7YTr1QK0cq\r\n4F6aYfN1fKGOqbvAUwHze5y6p/Em/uAKyCwuwdiWmu20pp2aVlug5016e3MH\r\n8+s0mMscsEPPifVD5Ahjq2Im6qMQVtlHoI8=\r\n=nUs+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dstanesc","email":"dstanesc@gmail.com"},"directories":{},"maintainers":[{"name":"dstanesc","email":"dstanesc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lucy-block-store_0.0.3_1669089595259_0.33690837052423617"},"_hasShrinkwrap":false}},"time":{"created":"2022-11-01T01:06:28.771Z","0.0.1":"2022-11-01T01:06:29.033Z","modified":"2022-11-22T03:59:55.477Z","0.0.2":"2022-11-01T14:54:15.152Z","0.0.3":"2022-11-22T03:59:55.414Z"},"maintainers":[{"name":"dstanesc","email":"dstanesc@gmail.com"}],"description":"Blocks are everywhere. Structural resilience, performance and high availability. Censorship resistant. Store content-addressable blocks redundantly, across technologies and providers. Providers compete on retrieval, fastest wins.","homepage":"https://github.com/dstanesc/lucy-block-store","repository":{"type":"git","url":"git+https://github.com/dstanesc/lucy-block-store.git"},"author":{"name":"dstanesc","email":"dstanesc@gmail.com"},"bugs":{"url":"https://github.com/dstanesc/lucy-block-store/issues"},"license":"(Apache-2.0 AND MIT)","readme":"# Lucy Block Store\n\nExperiment. Blocks are everywhere. Structural resilience, performance and high availability. Censorship resistant. Store content-addressable blocks redundantly, across technologies and providers. Providers compete on retrieval, fastest wins.\n\n## API\n\n```ts\nput: (block: { cid: any, bytes: Uint8Array }) => Promise<void>\nget: (cid: any) => Promise<Uint8Array>\n```\n\n## Usage\n\n```ts\nimport { blockStore as azureStore } from \"@dstanesc/az-block-store\"\nimport { blockStore as awsStore } from \"@dstanesc/s3-block-store\"\nimport { blockStore as ipfsStore } from \"@dstanesc/ipfs-block-store\"\nimport { blockStore as lucyStore } from \"@dstanesc/lucy-block-store\"\n\nconst ipfsClient = ...\nconst azClient = ...\nconst awsS3 = ...\nconst s1 = azureStore({ containerClient: azClient })\nconst s2 = ipfsStore({ ipfs: ipfsClient })\nconst s3 = awsStore({ s3: awsS3, bucket })\nconst { put, get } = blockStore({ acks: 'all' }, s1, s2, s3)\n```\n\n## Build\n\n```sh\nnpm run clean\nnpm install\nnpm run build\nnpm run test\n```\n\n## Licenses\n\nLicensed under either [Apache 2.0](http://opensource.org/licenses/MIT) or [MIT](http://opensource.org/licenses/MIT) at your option.\n","readmeFilename":"README.md"}