{"_id":"@atlasprotocol/ipfs","_rev":"10-ed36b385c263f7125cc7a385c1634372","name":"@atlasprotocol/ipfs","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.0":{"name":"@atlasprotocol/ipfs","version":"0.1.0","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.1.0","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"ee23c5c89e8111fe31489e6d5dc65d195d224f70","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.1.0.tgz","fileCount":43,"integrity":"sha512-x45J4zF0rY5lczQCJxpY56+CPRVcjwt8KiKSciKdvAlJJ5hXVJOYJuSATrc+6+QorTnKcGPghL7fokBBnu+r8A==","signatures":[{"sig":"MEUCID6stsdIUhG/w63Ccperh1uvHZ9ZMUMhdYYrZuZ0Cv6EAiEA0iyjYGhmn/bo4N34qst+ZS3EztK8/RLrwdzMjsSRB9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56565},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"7af48bdc455a16b92154f888643d588c162e98d2","scripts":{"lint":"echo \"no lint configured\" && exit 0","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"nooblemon_eth","email":"kc@lemonade.social"},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"10.9.7","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"multiformats":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^22.0.0","@atlasprotocol/server-sdk":"workspace:*"},"peerDependencies":{"@atlasprotocol/server-sdk":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.1.0_1777548809853_0.7159530995858894","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atlasprotocol/ipfs","version":"0.1.2","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.1.2","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"b378818af413491cf848d1c45187be0ad100cdb6","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.1.2.tgz","fileCount":43,"integrity":"sha512-2Th++BFEnDl3gzTkLjitEBbN1YhwpeBqdzh/8V3Arg4HhKe3GXKmdUxMz06AqmVbVRnOQbx1SYqvp/yz2st/0g==","signatures":[{"sig":"MEUCIC5FaFamSk+sv+yNvUUtLVa8xzeeYBHdgPuZsXAV6f8RAiEA+OUSrG7vK+cxfvC/f2NzzTsTy0Rh/ZYvsGHTzffDmhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58001},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"d3175d8f43d6d7505a923a2f0987553bd6743e70","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"11.11.0","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"multiformats":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^22.0.0","@atlasprotocol/server-sdk":"workspace:*"},"peerDependencies":{"@atlasprotocol/server-sdk":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.1.2_1777570685767_0.08980556084677893","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atlasprotocol/ipfs","version":"0.1.3","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.1.3","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"a98189ba8815502440251f64b5a70d35b29a8f6e","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.1.3.tgz","fileCount":43,"integrity":"sha512-pRu/5lofEqMxavCFIXawpb1kR1IBY+LlKNy4hXa/9RalScApx8MAqMXq8e6MGqi+t3H5mIvQYbkBTiYyUEpuwQ==","signatures":[{"sig":"MEQCIDXj5kGTLvH38CsWw2dBubFONRMl7QkWeyc25fagSkz6AiAH5IwvnJSSkv96jtdJQy3zOD4IUu9fXg/ZhLOMQNPMzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58319},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"117333a62b200f2d9df3a1b37e69c76ec446ca92","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"11.11.0","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"multiformats":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^24.0.0","@atlasprotocol/server-sdk":"workspace:*"},"peerDependencies":{"@atlasprotocol/server-sdk":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.1.3_1777572917379_0.2648010579808242","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@atlasprotocol/ipfs","version":"0.1.4","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.1.4","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"56390349fb2f7cb28884b0bd795f43d75ae2f52a","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.1.4.tgz","fileCount":43,"integrity":"sha512-epVss9mseLPsOEKlvdHdezaYkbDPgngO/MWnrkKCXFhpX0wE8j5obocrbKEIxiwojFUztih4eDSqZXlEUBR/Gg==","signatures":[{"sig":"MEUCIQCBhT1LDEaiI85v+qI3t0yHlMMn12RPy1zNuDKlyB4MrwIgD3rwt3wXfxoVJOJl2ziHMeLtM91ffAVyHeVgjy8luMY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58637},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"835089646bad9e244176b024d767628fedbde3bb","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"11.11.0","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"multiformats":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^24.0.0","@atlasprotocol/server-sdk":"workspace:*"},"peerDependencies":{"@atlasprotocol/server-sdk":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.1.4_1777708550690_0.0330490143983766","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@atlasprotocol/ipfs","version":"0.1.5","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.1.5","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"a65bff9d4689c7c03370ab2eb55f4db20d9c6907","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.1.5.tgz","fileCount":43,"integrity":"sha512-oj8bsOYH5FnWIApk3UL0Xh59+4g49tEDyy26/jirpAEhga0fUkNuO9khjPvQVJZN1ZJnraSz/1y4ZZZQ+gSMIA==","signatures":[{"sig":"MEUCIBplwo6MgGI/Zz5OFLt1JQ5yj5jn2LUJ2jqxQvneTkYvAiEAzoMpLypACHmZTmPM/Wq7RjcCQUphsanrTCUQpFV9gek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58955},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"36a55da350abd598e2bf5827a99f9018df0ff5aa","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"11.11.0","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"multiformats":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^24.0.0","@atlasprotocol/server-sdk":"workspace:*"},"peerDependencies":{"@atlasprotocol/server-sdk":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.1.5_1777766301129_0.22274029594180234","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@atlasprotocol/ipfs","version":"0.1.6","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.1.6","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"d01cc5bc6530ab934ec2fe6a0ce84ed5a62d45b6","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.1.6.tgz","fileCount":43,"integrity":"sha512-7batbHmPhd/2bedabQdQANqSyAf+h9yjbP9ir97auTa3GJPZu6hhnD5d/YnSbFvhB5rrprfDKdl12Vs+IKMXXw==","signatures":[{"sig":"MEQCIApj7ARCjyD6N7+F9Kz71+qYahATA3ukLuD2Bb4Jk3ofAiBstbBFJe3pF72FrvUG9HkRurbGIQ30KsPaxrT/tF0EIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59273},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"7916bb19b9ca5e086ed2ea2ae7672b1d647b4f1a","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"11.11.0","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"multiformats":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^24.0.0","@atlasprotocol/server-sdk":"workspace:*"},"peerDependencies":{"@atlasprotocol/server-sdk":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.1.6_1777766829688_0.8583155076765234","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@atlasprotocol/ipfs","version":"0.2.0","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.2.0","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"44119b20ff76ae94956fdc363a33e711a367f331","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.2.0.tgz","fileCount":43,"integrity":"sha512-edzUzg6MeyjYRVWSMJ+qHQ7+k2J2aox/wnG7EvJGAXxhMbp1XjDjxzHnfiETC28ZvPSK8HE1OH0fQvaFjJ/9zw==","signatures":[{"sig":"MEUCIQDnt3hwMl4nBLl55HqjBjUH4G9rSJe7ozziyGjGNlf6HgIgVbVZUT/zJX/d4wxgqYjiNo7sxdGde4Y+R0/kDQAKb1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66281},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c4e70d9aadcc3f1566aadc46aabcd5406ea12f7d","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"11.11.0","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"multiformats":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^24.0.0","@atlasprotocol/server-sdk":"workspace:*"},"peerDependencies":{"@atlasprotocol/server-sdk":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.2.0_1777785599190_0.34050219022531447","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@atlasprotocol/ipfs","version":"0.3.0","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.3.0","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"6dc3ac7119270eed8782e8278772a508829e8c7f","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.3.0.tgz","fileCount":39,"integrity":"sha512-nxHUom+aOVs/x4mOHbBWL1+Ht2243A8uCCqhIPv7fhh50SVhmVTKXKxqWXUh2xqud4VHHcjF9/yfCpvvTeCi0w==","signatures":[{"sig":"MEQCIHPtzoiG8gFn61DkJX10zNZnzPgMO2o9UsUAYVFue/lrAiBwROOdfxmhDcqCfA//eB8JCJg6HUCB+Ezbg+fraKRgmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64366},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"afe9110f5c808ab6cfa2653905a14d6a4784ca7a","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"11.11.0","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"multiformats":"^13.3.0","@atlasprotocol/types":"workspace:^"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.3.0_1777789595458_0.4892507489266633","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@atlasprotocol/ipfs","version":"0.3.1","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"license":"MIT","_id":"@atlasprotocol/ipfs@0.3.1","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"homepage":"https://github.com/lemonadesocial/atlas-protocol#readme","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"dist":{"shasum":"ad19f7f23282a9d5d1972df95e4a436ee7c43002","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.3.1.tgz","fileCount":39,"integrity":"sha512-bXyX28CsCkRzN1z02pYnaCxEk/URlqa7VXo4VrauUrLhwSWGOVwvIWW+0iEbwln1ZYzLqdYcuQVrPqjw77G2Qg==","signatures":[{"sig":"MEYCIQCCdKbFFdU6rgnT0et3/+TQAWE5bPzRnD67v12WiSYo9gIhAM2yjq+OSNeay7BHe549jYYqFsfTtI5SFIMx0SSc1hGx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64607},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c43e911bb1ef7a56454e22b39d0498b84ee37333","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit -p tsconfig.json","format:check":"prettier --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"repository":{"url":"git+https://github.com/lemonadesocial/atlas-protocol.git","type":"git","directory":"packages/ipfs"},"_npmVersion":"11.11.0","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"multiformats":"^13.3.0","@atlasprotocol/types":"workspace:^"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.6.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ipfs_0.3.1_1777828553455_0.214265298064914","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@atlasprotocol/ipfs","version":"0.3.2","description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","license":"MIT","homepage":"https://github.com/lemonadesocial/atlas-protocol/tree/main/packages/ipfs#readme","repository":{"type":"git","url":"git+https://github.com/lemonadesocial/atlas-protocol.git","directory":"packages/ipfs"},"keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"type":"module","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"multiformats":"^13.3.0","@atlasprotocol/types":"^0.2.0"},"devDependencies":{"@types/node":"^24.0.0","typescript":"^5.6.3","vitest":"^2.0.0"},"scripts":{"build":"tsc -p tsconfig.json","test":"vitest run","lint":"eslint .","format:check":"prettier --check .","typecheck":"tsc --noEmit -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo"},"_id":"@atlasprotocol/ipfs@0.3.2","bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"_integrity":"sha512-iCYrtCQoKe0sPgNr6tSG7lOuB6pIejMJm6wqICLtQwR6QTYySAyec4dXj6ko7xZPrfiRe9KaVlZ379HqRGUL8A==","_resolved":"/tmp/eb7c96c3f3fe9cc069835bbcd4b100df/atlasprotocol-ipfs-0.3.2.tgz","_from":"file:atlasprotocol-ipfs-0.3.2.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-iCYrtCQoKe0sPgNr6tSG7lOuB6pIejMJm6wqICLtQwR6QTYySAyec4dXj6ko7xZPrfiRe9KaVlZ379HqRGUL8A==","shasum":"abffa89421a382b5418bd0667f3ef89f14a521aa","tarball":"https://registry.npmjs.org/@atlasprotocol/ipfs/-/ipfs-0.3.2.tgz","fileCount":40,"unpackedSize":66047,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atlasprotocol%2fipfs@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHc2sbf5I8/fmtrrPtCFq509vUpPKOJJ+YLluloZ0sW8AiEAxeAkPRGjgpMbwht2GnmTyjlKZNlvMtQzRXCWtrRcpaA="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f29b604-9dbe-443f-846c-7a6e4055552b"}},"directories":{},"maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ipfs_0.3.2_1777868775462_0.5666909124265651"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T11:33:29.748Z","modified":"2026-05-04T04:26:15.945Z","0.1.0":"2026-04-30T11:33:30.007Z","0.1.2":"2026-04-30T17:38:05.935Z","0.1.3":"2026-04-30T18:15:17.527Z","0.1.4":"2026-05-02T07:55:50.832Z","0.1.5":"2026-05-02T23:58:21.271Z","0.1.6":"2026-05-03T00:07:09.886Z","0.2.0":"2026-05-03T05:19:59.334Z","0.3.0":"2026-05-03T06:26:35.600Z","0.3.1":"2026-05-03T17:15:53.595Z","0.3.2":"2026-05-04T04:26:15.625Z"},"bugs":{"url":"https://github.com/lemonadesocial/atlas-protocol/issues"},"license":"MIT","homepage":"https://github.com/lemonadesocial/atlas-protocol/tree/main/packages/ipfs#readme","keywords":["atlas","atlas-protocol","ipfs","cid","pinning"],"repository":{"type":"git","url":"git+https://github.com/lemonadesocial/atlas-protocol.git","directory":"packages/ipfs"},"description":"Deterministic CID generation and pinning service abstractions for the ATLAS Protocol.","maintainers":[{"name":"nooblemon_eth","email":"kc@lemonade.social"}],"readme":"# @atlasprotocol/ipfs\n\nDeterministic CID generation and pinning service abstractions for the ATLAS Protocol.\n\nThis package provides two things:\n\n1. A small, dependency-light helper that turns any ATLAS payload (event, receipt, arbitrary JSON) into a stable, content-addressed identifier (CIDv1, raw codec, sha256, base32-lowercase).\n2. A pluggable `Pinner` interface with first-party implementations for **Pinata**, **Web3.Storage**, **Filebase**, and a self-hosted **Kubo** daemon.\n\n## Install\n\n```bash\npnpm add @atlasprotocol/ipfs\n```\n\n`generateEventCid` accepts an `AtlasEvent` from `@atlasprotocol/types`. That package is pulled in transitively through `@atlasprotocol/ipfs` — install it explicitly only if you import the type yourself.\n\n## Quickstart — deterministic CID for an AtlasEvent\n\n```ts\nimport { generateEventCid } from '@atlasprotocol/ipfs';\nimport type { AtlasEvent } from '@atlasprotocol/types';\n\nconst event: AtlasEvent = /* ... your AtlasEvent ... */;\nconst cid = await generateEventCid(event);\n// e.g. \"bafkrei...\"\n```\n\nThe same logical event — regardless of key insertion order — always yields the same CID.\n\n## Quickstart — deterministic CID for a receipt\n\n```ts\nimport { generateReceiptCid, type AtlasReceipt } from '@atlasprotocol/ipfs';\n\nconst receipt: AtlasReceipt = {\n  purchase_id: 'p_123',\n  event_id: 'e_abc',\n  ticket_type_id: 'tt_1',\n  buyer: '0x...',\n  organizer: '0x...',\n  amount: '25.00',\n  currency: 'USD',\n  rail: 'tempo_usdc',\n  paid_at: '2026-04-30T12:00:00.000Z',\n};\nconst cid = await generateReceiptCid(receipt);\n```\n\n## Choose your pinner\n\nAll pinners implement the same `Pinner` interface — defined in [`@atlasprotocol/types`](../types) and re-exported from this package for back-compat:\n\n```ts\ninterface Pinner {\n  pinJson(obj: unknown, opts?: PinOptions): Promise<PinResult>;\n  pinBytes(content: Uint8Array, opts?: PinOptions): Promise<PinResult>;\n  unpin(cid: string): Promise<void>;\n  isPinned(cid: string): Promise<boolean>;\n}\n```\n\n```ts\n// Either import path resolves to the same interface.\nimport type { Pinner } from '@atlasprotocol/types';\nimport type { Pinner } from '@atlasprotocol/ipfs';\n```\n\n### Why two methods?\n\n`pinJson` canonicalizes its input (sorted keys at every depth, no whitespace, see `canonicalize.ts`) before encoding to UTF-8 bytes and uploading. `pinBytes` pins the bytes you hand it, verbatim.\n\nPicking the right method is a **type-level correctness gate**, not just an ergonomics choice. With a single `pin(bytes)` API it is trivially possible for two callers to serialize the same logical object with different key orders and end up with different CIDs — a silent integrity-verification footgun. Splitting the API forces the decision: if you have an `object`, you want `pinJson`; if you have raw `Uint8Array`, you want `pinBytes`.\n\n### Two semantically equivalent objects → same CID\n\n```ts\nconst a = { foo: 1, bar: { x: 1, y: 2 } };\nconst b = { bar: { y: 2, x: 1 }, foo: 1 };\n\nconst r1 = await pinner.pinJson(a);\nconst r2 = await pinner.pinJson(b);\n\nr1.cid === r2.cid; // true — canonical bytes are identical\n```\n\nEquivalently, `pinJson(obj)` is exactly `pinBytes(canonicalize(obj))` with the JSON filename default applied. Use `pinBytes(canonicalize(obj))` only if you need to inspect or sign the canonical bytes yourself before upload.\n\n### Pinata\n\n```ts\nimport { PinataPinner } from '@atlasprotocol/ipfs';\n\nconst pinner = new PinataPinner({ jwt: process.env.PINATA_JWT! });\n\n// JSON: canonicalized, then pinned. Default filename atlas-payload.json.\nconst { cid, size } = await pinner.pinJson(receipt, { name: 'event.json' });\n\n// Raw bytes (e.g. an image): pinned verbatim.\nawait pinner.pinBytes(imageBytes, { name: 'cover.png' });\n```\n\n### Web3.Storage\n\n```ts\nimport { Web3StoragePinner } from '@atlasprotocol/ipfs';\n\nconst pinner = new Web3StoragePinner({\n  apiToken: process.env.W3UP_TOKEN!,\n  spaceDID: 'did:key:...',\n});\nawait pinner.pinJson(receipt);\nawait pinner.pinBytes(imageBytes, { name: 'cover.png' });\n```\n\n### Filebase\n\n```ts\nimport { FilebasePinner } from '@atlasprotocol/ipfs';\n\nconst pinner = new FilebasePinner({\n  apiToken: process.env.FILEBASE_TOKEN!,\n  bucket: 'atlas-events',\n});\nawait pinner.pinJson(receipt);\nawait pinner.pinBytes(imageBytes, { name: 'cover.png' });\n```\n\n### Kubo (self-hosted)\n\n```ts\nimport { KuboPinner } from '@atlasprotocol/ipfs';\n\nconst pinner = new KuboPinner({ apiUrl: 'http://localhost:5001' });\nawait pinner.pinJson(receipt);\nawait pinner.pinBytes(imageBytes, { name: 'cover.png' });\n```\n\n## Determinism guarantee\n\n`canonicalize(value)` and `generateCid(bytes)` are pure: identical logical inputs produce byte-identical canonical bytes and therefore byte-identical CIDs. The serialization rules are documented at the top of `src/canonicalize.ts`. Notably:\n\n- Object keys are sorted lexicographically at every depth.\n- `Date` values become ISO-8601 UTC strings.\n- `undefined`-valued object fields are omitted (never serialized as `null`).\n- `NaN`, `Infinity`, `BigInt`, `Map`, `Set`, cycles all throw.\n- `-0` is normalized to `0`.\n\n## Notes\n\n- All pinner constructors take a config object. The package never reads environment variables — pass credentials in explicitly.\n- `fetch` is injectable on every pinner for testing and for environments with custom HTTP transports.\n- This package depends on `multiformats` and nothing else heavy. There is intentionally no Helia or w3up SDK dependency.\n","readmeFilename":"README.md"}