{"_id":"@hypercerts-org/sdk-core","_rev":"28-9b6a29e3539b001184dd4f43519ef949","name":"@hypercerts-org/sdk-core","dist-tags":{"beta":"0.2.0-beta.0","latest":"0.10.0-beta.9"},"versions":{"0.2.0-beta.0":{"name":"@hypercerts-org/sdk-core","version":"0.2.0-beta.0","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.2.0-beta.0","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"4ef355e3fc4ced56874270e87af708e3bf2be222","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.2.0-beta.0.tgz","fileCount":83,"integrity":"sha512-7go+uOI/mMyPcomv+4aSOAVflt0CvU/f6LqW0zslZG61hI6pYZ1RP5NoNWF9T6pqDczeWjPjSKrdeVKsDy5HBA==","signatures":[{"sig":"MEYCIQDbfy2iTx2f2iTYT5y7wPffYL+gmzplV3hOiuWTdtnnRgIhAMReJWd6g/0loJvOe7wF9xCaZOYurXL6FymLAIK1/Xbv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1799002},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.2.0-beta.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest","build":"rollup -c","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"holke","email":"holke.brammer@pm.me"},"_resolved":"/tmp/b4bf23e275d07c15328ac8985b66c061/hypercerts-org-sdk-core-0.2.0-beta.0.tgz","_integrity":"sha512-7go+uOI/mMyPcomv+4aSOAVflt0CvU/f6LqW0zslZG61hI6pYZ1RP5NoNWF9T6pqDczeWjPjSKrdeVKsDy5HBA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.9","@hypercerts-org/lexicon":"0.2.0-beta.0","@atproto/oauth-client-node":"^0.3.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jose":"^6.0.13","rollup":"^4.53.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.2.0-beta.0_1764616558374_0.3261488484696222","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-beta.0":{"name":"@hypercerts-org/sdk-core","version":"0.4.0-beta.0","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.4.0-beta.0","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"2fe397035a268b4273e356ed5baf450da848e569","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.4.0-beta.0.tgz","fileCount":83,"integrity":"sha512-hv2B8C6VzyWodkTeDhjJoxrR1f+bxIxUm9MMkXzRXdYrxgrblj6WI0vAJYhvy3Ee85ORJCiWUXoBFaKwd0Ak7g==","signatures":[{"sig":"MEQCIGNtU5B02lKxW+Jnm26EVdVvPxUfYpsG/Y/mycskIWHsAiB6cY8iVkzq/9azH2asUfc99P0KlQvqF2usN5t/7rb97g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1825972},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.4.0-beta.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest","build":"rollup -c","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"holke","email":"holke.brammer@pm.me"},"_resolved":"/tmp/412bfa248daa3051f1dd82f1b570db7d/hypercerts-org-sdk-core-0.4.0-beta.0.tgz","_integrity":"sha512-hv2B8C6VzyWodkTeDhjJoxrR1f+bxIxUm9MMkXzRXdYrxgrblj6WI0vAJYhvy3Ee85ORJCiWUXoBFaKwd0Ak7g==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.9","@hypercerts-org/lexicon":"0.4.0-beta.0","@atproto/oauth-client-node":"^0.3.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jose":"^6.0.13","rollup":"^4.53.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.4.0-beta.0_1764799978275_0.022865718324118545","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-beta.0":{"name":"@hypercerts-org/sdk-core","version":"0.5.0-beta.0","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.5.0-beta.0","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"8a2104e9de98373ad1126a0f83686b8562f85afa","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.5.0-beta.0.tgz","fileCount":83,"integrity":"sha512-2GCiHYRdG42htBJIbIEhEI3dXq40sfoK3RMT4YtQCFAGk4t6FQ1CpUqTlxFu/nKxSuj4FcgTDp9dSsYpXL3IpA==","signatures":[{"sig":"MEQCIGTMBnA/ZIc6oN8hbGqhBvzjjd/Vl1hFGltWbKNaSc4RAiApSn9kavH9cnAN8gKVil4wTRR5W0086/MmUUZRLVsUOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1840125},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.5.0-beta.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest","build":"rollup -c","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"holke","email":"holke.brammer@pm.me"},"_resolved":"/tmp/a2abe5768efc01c855254286fdc000ae/hypercerts-org-sdk-core-0.5.0-beta.0.tgz","_integrity":"sha512-2GCiHYRdG42htBJIbIEhEI3dXq40sfoK3RMT4YtQCFAGk4t6FQ1CpUqTlxFu/nKxSuj4FcgTDp9dSsYpXL3IpA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.9","@hypercerts-org/lexicon":"0.5.0-beta.0","@atproto/oauth-client-node":"^0.3.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jose":"^6.0.13","rollup":"^4.53.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.5.0-beta.0_1764835462086_0.3349403837429554","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-beta.0":{"name":"@hypercerts-org/sdk-core","version":"0.6.0-beta.0","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.6.0-beta.0","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"1a5d7b1672eb5460f181e9725ea671fb0708a857","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.6.0-beta.0.tgz","fileCount":33,"integrity":"sha512-Bw8kCmI3E9cTXd0uZJzGIyzyxXkayBC1aNRMZhB47UKDO1Bh8iAB66mmIy+uZ2mtFLfJCW6LD1tcUwk1bH3ikw==","signatures":[{"sig":"MEQCIFHpp+MdwMiOUnEJK76n1mz96cN+HrWhcgv0tUwquFjeAiAyRsMfMU8Pj5GQqbE4x1XxepQ0a25HMX1a63Hux8GM8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1303762},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.6.0-beta.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest","build":"rollup -c","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"holke","email":"holke.brammer@pm.me"},"_resolved":"/tmp/85e1d645c55505169ccf0459d5613fc2/hypercerts-org-sdk-core-0.6.0-beta.0.tgz","_integrity":"sha512-Bw8kCmI3E9cTXd0uZJzGIyzyxXkayBC1aNRMZhB47UKDO1Bh8iAB66mmIy+uZ2mtFLfJCW6LD1tcUwk1bH3ikw==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.5.0-beta.0","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.6.0-beta.0_1764841764120_0.942614728094852","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-beta.0":{"name":"@hypercerts-org/sdk-core","version":"0.7.0-beta.0","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.7.0-beta.0","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"51fddf8187b518aa99619d973d0e87b190c3a6bb","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.7.0-beta.0.tgz","fileCount":33,"integrity":"sha512-4UgJR7UiiSvmQVnicCbcx4QaXaHmsLWypWks7wAMSFvegzkR5lXw3frkDgjd9jwBPS0aQMSR+7F4uMgN17srOw==","signatures":[{"sig":"MEUCIH5x48s9eVXSm03Owu2p/kOLyotRDsc6mpXvIMutCb8/AiEA+50BL1YyqQWjtUGvr+w17ZTTDyGCGFpukJ8RRsieCdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1323449},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.7.0-beta.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest","build":"rollup -c","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"holke","email":"holke.brammer@pm.me"},"_resolved":"/tmp/df75ad591fdfe7eae705843afc1a5c07/hypercerts-org-sdk-core-0.7.0-beta.0.tgz","_integrity":"sha512-4UgJR7UiiSvmQVnicCbcx4QaXaHmsLWypWks7wAMSFvegzkR5lXw3frkDgjd9jwBPS0aQMSR+7F4uMgN17srOw==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.7.0-beta.0","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.7.0-beta.0_1764850209957_0.3678114802729535","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.0":{"name":"@hypercerts-org/sdk-core","version":"0.8.0-beta.0","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.8.0-beta.0","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"130d9c7358caf809fef57f638c6874adc4d77008","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.8.0-beta.0.tgz","fileCount":33,"integrity":"sha512-Ye2j72YjsA/awsm+HfPxVusjX142U1BzhEnsmv8HUfNO5RlPWmnZdGlrEdCgGcr/SVss+4Hy0A+FbiBImARYLA==","signatures":[{"sig":"MEUCIBzofpx9q+YzAvFX3kzIjWLiTou4p1InOT7b7D2HEtFCAiEAk52SAaXsUE8t3Zl2urjSYQg1fEmR8654W6jAW2YOzaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1330948},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.8.0-beta.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest","build":"rollup -c","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"holke","email":"holke.brammer@pm.me"},"_resolved":"/tmp/a9f56bcc3b03d3af1e3686815dbd8181/hypercerts-org-sdk-core-0.8.0-beta.0.tgz","_integrity":"sha512-Ye2j72YjsA/awsm+HfPxVusjX142U1BzhEnsmv8HUfNO5RlPWmnZdGlrEdCgGcr/SVss+4Hy0A+FbiBImARYLA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.8.0-beta.0","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.8.0-beta.0_1764889493771_0.5544954297726754","host":"s3://npm-registry-packages-npm-production"}},"0.9.0-beta.0":{"name":"@hypercerts-org/sdk-core","version":"0.9.0-beta.0","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.9.0-beta.0","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"446fe51ddb3a3fbb34e0be33b42f65b965c02e41","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.9.0-beta.0.tgz","fileCount":33,"integrity":"sha512-WnHeN0V4b4k9SS6TuGhGXGzFPfIlNZJ8USQbfIoKEVqYkbM2pc+OzNMlu6beQhX4ipR0NmTDYgxdkQU+Zd0gmw==","signatures":[{"sig":"MEUCIA1b5bJxxR+RWDhbIEw9s7IJ6pFIncirhO7BDtRaMCEqAiEAiXr4wYxBnCTb1equqIDZbv8/PrHIgyaICz8oxdpZVDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1334009},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.9.0-beta.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest","build":"rollup -c","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"holke","email":"holke.brammer@pm.me"},"_resolved":"/tmp/8d69c6770ef74cd1e776e39e5b7e79bf/hypercerts-org-sdk-core-0.9.0-beta.0.tgz","_integrity":"sha512-WnHeN0V4b4k9SS6TuGhGXGzFPfIlNZJ8USQbfIoKEVqYkbM2pc+OzNMlu6beQhX4ipR0NmTDYgxdkQU+Zd0gmw==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.9.0-beta.0","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.9.0-beta.0_1764892371755_0.8381358713529603","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.0":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.0","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.0","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"4ad19c01c14a3438a76b632ad3b42e80bb8d463e","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.0.tgz","fileCount":33,"integrity":"sha512-Jsn8/H2BkBgXFP34aeE9m67ghMpCcOphV5qX7K5LzHSIUGC2uVdtRoe7Q1TIMsvCBh9Ny5sHUhEwCrFz6Ec/ng==","signatures":[{"sig":"MEQCIFLd9L6PHifRZ8SfVDCfOAIAuxy/9L8mkxssHKZwOeDcAiBsPWrGcWhdQS+l5nOitgiZBCdjgDYm/E7VtS2XYgYQkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1560607},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest","build":"rollup -c","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"holke","email":"holke.brammer@pm.me"},"_resolved":"/tmp/d9641d8812fb35839c1e7a49ba4c8c99/hypercerts-org-sdk-core-0.10.0-beta.0.tgz","_integrity":"sha512-Jsn8/H2BkBgXFP34aeE9m67ghMpCcOphV5qX7K5LzHSIUGC2uVdtRoe7Q1TIMsvCBh9Ny5sHUhEwCrFz6Ec/ng==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.9.0-beta.0","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","vitest":"^3.2.4","@vitest/ui":"^3.2.4","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.0_1765202744738_0.9035884064566784","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.1":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.1","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.1","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"6421a4e4432ed80e0a33345bcee5fed6072c0acf","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.1.tgz","fileCount":34,"integrity":"sha512-z0A16wnyOJwwKvNBQ5xwoMZd8Aubw77ZSknpwK+tvxGOruIJhAjW4oUkDiGXY4OzXW9cuFL12RcYalGPtik1TA==","signatures":[{"sig":"MEQCIFpmDtP/0JhfSd6LvhdZAANjjnaC7cTiDzv1QLQ0ZG+qAiA0R+WvOA1bheV+bnGkYfFWGpp0jwBoH9NOKl4uWRoZQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1501898},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/32509366e9fbb3be63552d8f5fc30623/hypercerts-org-sdk-core-0.10.0-beta.1.tgz","_integrity":"sha512-z0A16wnyOJwwKvNBQ5xwoMZd8Aubw77ZSknpwK+tvxGOruIJhAjW4oUkDiGXY4OzXW9cuFL12RcYalGPtik1TA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.7.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"^0.10.0-beta.3","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"pnpm run check","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.1_1767729459551_0.7732727183657013","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.2":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.2","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.2","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"5462ce203433bc51ff6d9d66289cd0600813b777","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.2.tgz","fileCount":34,"integrity":"sha512-GZHqqkNUoxdV2YzEifUUlUdrFJ8aV6J3xmShA0OEDhd++AIqJ2yR+ET0qL7wBSlPeJ4LDnKTdKi2w1Qtmc23KQ==","signatures":[{"sig":"MEUCIQDV6XIsgQTouw+P+eRWWMPEzbe8NtmV/xAyvAPjuDuVVQIgG/BYmGUm8+ejZXHL3dl98TpPSlpa1NFTUWDAjcUYIe0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1502208},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.2.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/bfcad25dc83f92d1cae31b3ef6207a27/hypercerts-org-sdk-core-0.10.0-beta.2.tgz","_integrity":"sha512-GZHqqkNUoxdV2YzEifUUlUdrFJ8aV6J3xmShA0OEDhd++AIqJ2yR+ET0qL7wBSlPeJ4LDnKTdKi2w1Qtmc23KQ==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.7.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"^0.10.0-beta.3","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"pnpm run check","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.2_1767731171741_0.7655407525558786","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.3":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.3","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.3","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"2f3b1c0c69b6ff3f9016d4e4a4cf7f34afb90048","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.3.tgz","fileCount":34,"integrity":"sha512-4zTYfYWrFiNL4twmQMsUqC1glLp2dtOogkd6QCvFEbn97vHDqIdLlPUnGS6xlecDnXbCPBeJaSyiIOCEObgv7A==","signatures":[{"sig":"MEYCIQDel7Se8URPMNmPfR7IsR0wKO5bN9GXxS5Yrf7pVfz/kQIhAOLFm13QPBNvYkocsYa8MekTseIxh1HK/AWVXE6ZlwES","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1503051},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.3.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/abc3b1d4835c425a71d8068b1a923391/hypercerts-org-sdk-core-0.10.0-beta.3.tgz","_integrity":"sha512-4zTYfYWrFiNL4twmQMsUqC1glLp2dtOogkd6QCvFEbn97vHDqIdLlPUnGS6xlecDnXbCPBeJaSyiIOCEObgv7A==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.7.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"^0.10.0-beta.3","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"pnpm run check","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.3_1767884385862_0.9783948006056602","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.4":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.4","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.4","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"0f2afeaa5d9d0784d65875d841838186a872ec73","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.4.tgz","fileCount":34,"integrity":"sha512-QT+7bmZzscgp+IAzcrRdfMrO3UKQZEepxTA0k/5Qz0ay4XjgDnPCBhH6THS6a4ZJwEo6eaFHpcX+MytEQRUGBg==","signatures":[{"sig":"MEUCIQDw32QBm0lwkHalus+OHxv7KfWfvOnKKyibeAjEV6rhkgIgVZIYUaBeP5dLeGgnJIqODXTRPhFkWxOWbowrMrhIFHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1503967},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.4.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/09922d5085f2df4b0bb3ed6d8f8744f1/hypercerts-org-sdk-core-0.10.0-beta.4.tgz","_integrity":"sha512-QT+7bmZzscgp+IAzcrRdfMrO3UKQZEepxTA0k/5Qz0ay4XjgDnPCBhH6THS6a4ZJwEo6eaFHpcX+MytEQRUGBg==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.7.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"^0.10.0-beta.3","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"pnpm run check","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.4_1768391774254_0.004641072864772111","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.5":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.5","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.5","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"56a554eb99cba98dc62c492c760d37d727066d39","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.5.tgz","fileCount":34,"integrity":"sha512-aylgSHPafbVmSCyNz7a0XdQp7icPYJYtPSuhEhRxls8z+q4ovfiAr2rvCueF5o/3ncRH7fM33pEl0ddUB2fYlg==","signatures":[{"sig":"MEQCIHCREDw1lS7iKJEdgoBe9qMxS8QG0qqMCuhV158d1+DAAiByVbYH+jA1PREkPoJTL8DKIKrLVfOvubLxAjQb0OUAvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2060873},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.5.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/4cd84a7084eb7e08df59b6d4be412666/hypercerts-org-sdk-core-0.10.0-beta.5.tgz","_integrity":"sha512-aylgSHPafbVmSCyNz7a0XdQp7icPYJYtPSuhEhRxls8z+q4ovfiAr2rvCueF5o/3ncRH7fM33pEl0ddUB2fYlg==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.8.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.10","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.5_1769201545859_0.7505914212350118","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.6":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.6","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.6","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"b3e77289734621a886af6a63fcc04786478e0d06","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.6.tgz","fileCount":34,"integrity":"sha512-P6miANl3rZ/hrzWOITHsGce8W8f1/joLoXEYK3c0jWUFW7ehwOfP/oRvWhSaCY35RcU6XfiTZprYFTzz+QyY2A==","signatures":[{"sig":"MEQCIAPP34BFx7jKiDfEPlJRpHuLeWOabh8CcREVe7Jso6ELAiAHC+x1p4fGCxWO7bv3R3qkR/BYRALtKQH+aaGmYlgF+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2098963},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.6.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/a14a67f36bca19fe55dddee3f9f21fc4/hypercerts-org-sdk-core-0.10.0-beta.6.tgz","_integrity":"sha512-P6miANl3rZ/hrzWOITHsGce8W8f1/joLoXEYK3c0jWUFW7ehwOfP/oRvWhSaCY35RcU6XfiTZprYFTzz+QyY2A==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.8.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.24.4","type-fest":"^5.4.1","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.11","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.6_1769205639441_0.09987087152832896","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.5-hotfix.1":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.5-hotfix.1","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.5-hotfix.1","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"cfe12ec1cc71d4b6737d0aae622b4f7a121e5938","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.5-hotfix.1.tgz","fileCount":34,"integrity":"sha512-qDBfZuTe5VkdJc+4iFL6KXPzYlOdI1NBsEWEWjQJJW3H+2PO8Ovi25JyZaRwDqZecIuYpOBvgqvtSaxVJi1l+Q==","signatures":[{"sig":"MEYCIQCM5xlfjlkeSar1sBNuV0CMfMegJsvhKDXSCvdSpE6JZAIhAJovPzw3+6rWUCxhDln93scVvKlc60+HWRJqcSKs+ziS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2061420},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"aspiers","email":"npm@adamspiers.org"},"_resolved":"/tmp/57e3e8f0e545d7975db8b24cafad239d/hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.1.tgz","_integrity":"sha512-qDBfZuTe5VkdJc+4iFL6KXPzYlOdI1NBsEWEWjQJJW3H+2PO8Ovi25JyZaRwDqZecIuYpOBvgqvtSaxVJi1l+Q==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.3","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.10","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.5-hotfix.1_1769337592999_0.7771417290649234","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.5-hotfix.2":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.5-hotfix.2","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.5-hotfix.2","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"983ec4b7ae3cb975330d565e13945334702b866b","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.5-hotfix.2.tgz","fileCount":34,"integrity":"sha512-9bKKfoI2iu15KOJ8t6TxUnnn2EJWovo7n7nSdPcvvi/1iVM7ZB+9EnbPod8sYncaYU3J+5Xde11qmeEQIihkKA==","signatures":[{"sig":"MEQCIERbQeeViym705l2K60PlxOYIqDlVQ5bKqMQ9AeSGZf2AiAUBxLEtdxs+7fWtwJC++xjmMcWrH9KvBRbJMiab3uCuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2043046},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.2.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"aspiers","email":"npm@adamspiers.org"},"_resolved":"/tmp/6cd7cc68925271067d8c8738f6ebdc12/hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.2.tgz","_integrity":"sha512-9bKKfoI2iu15KOJ8t6TxUnnn2EJWovo7n7nSdPcvvi/1iVM7ZB+9EnbPod8sYncaYU3J+5Xde11qmeEQIihkKA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.3","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.10","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.5-hotfix.2_1769423333247_0.3132240262512076","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.5-hotfix.3":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.5-hotfix.3","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.5-hotfix.3","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"c1406f5d95d85a95dd152298ef8baf8547872aca","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.5-hotfix.3.tgz","fileCount":34,"integrity":"sha512-/PWzp2MRo3lWH6wIOzAlV8WODSTuVrj8Tdc9SbyIl06vffuKXZlWgx3m2YzSKlWiDptkV8A8sJQPMA+1GCcECQ==","signatures":[{"sig":"MEYCIQC6oo/H9TLvxV4LppOhI7zMcmD+VP8wlhFM3A6qlv5LNAIhAPgKyh2Lq/zN34ULJXZNuUVG6Pp1sYHuH64VqeZcSd4A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2045497},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.3.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"aspiers","email":"npm@adamspiers.org"},"_resolved":"/tmp/e28ec35c35270c8666c30a680c5ae1ad/hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.3.tgz","_integrity":"sha512-/PWzp2MRo3lWH6wIOzAlV8WODSTuVrj8Tdc9SbyIl06vffuKXZlWgx3m2YzSKlWiDptkV8A8sJQPMA+1GCcECQ==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.3","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.10","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.5-hotfix.3_1769429405078_0.9034920426663082","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.7":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.7","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.7","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"7bf70f4409aef9f93d295f998943d8fb1959fd71","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.7.tgz","fileCount":34,"integrity":"sha512-ukOFLwQA7gWxxuHzYOaOv/YG/s5eE2jx33srLSIaPnTrhy1uud5AnurW6tGMNu8qeJlgmtTfOTU9jRsvJDj4bA==","signatures":[{"sig":"MEYCIQD0KQ8I5dfdFx+qffnZOxoLHf8MXBxN7rrknLO6R1mMAQIhAL7eQLr26HV54NbjuP3nbgCDk/wKLjmlCpEWILi+zN3R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2258896},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.7.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/83a18d39f85142edc55b3042f90ad855/hypercerts-org-sdk-core-0.10.0-beta.7.tgz","_integrity":"sha512-ukOFLwQA7gWxxuHzYOaOv/YG/s5eE2jx33srLSIaPnTrhy1uud5AnurW6tGMNu8qeJlgmtTfOTU9jRsvJDj4bA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.8.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.24.4","type-fest":"^5.4.1","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.13","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.7_1769549985818_0.28676427246436487","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.5-hotfix.4":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.5-hotfix.4","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.5-hotfix.4","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"550a5cc5abff36194b57d4c1ddb9271c720eda7b","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.5-hotfix.4.tgz","fileCount":34,"integrity":"sha512-RrdE7iDfTPPC8CLLyXm35D6disd4h28i0Cchs88M7SlIZMFzK5mFp2tHzf0O/HAS8qolvCHL4ihCM94ULtfGHw==","signatures":[{"sig":"MEYCIQDudkIQlzaL67nnza8ue2ZHK7NO47igHl9abAh02Wi1wwIhAIHly7Y0vYR8lWo3E9PPGEI5PDyRTXsWnoItiu33VCzz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2045833},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.4.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"aspiers","email":"npm@adamspiers.org"},"_resolved":"/tmp/5b5a7f8aa30a9f62f3cdf9666fc83b4a/hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.4.tgz","_integrity":"sha512-RrdE7iDfTPPC8CLLyXm35D6disd4h28i0Cchs88M7SlIZMFzK5mFp2tHzf0O/HAS8qolvCHL4ihCM94ULtfGHw==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.3","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.10","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.5-hotfix.4_1769597479389_0.3178561295267701","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.5-hotfix.5":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.5-hotfix.5","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.5-hotfix.5","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"e997d7ab9447782fb48da9f3f81d2135537dc19d","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.5-hotfix.5.tgz","fileCount":34,"integrity":"sha512-vI4n0dQSJ9F+vs5SjY7/YaUFfhwS3UxapWGGkPHHYz1Xc/Fz4cpJzREifDv0LJx2qcIs4tB9J9TZGpldPnu8rg==","signatures":[{"sig":"MEUCIGiejx4zTTlS065YLYxk2Hps2norfiJVXHAVmqeeqZQGAiEA6Lr63pQPWDSVLqqwMTc9Z9ncvYfV2QRUuSSX2wDw4oE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2046243},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.5.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"aspiers","email":"npm@adamspiers.org"},"_resolved":"/tmp/ca0b1ab835eb578f2fc8cc0271f636cd/hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.5.tgz","_integrity":"sha512-vI4n0dQSJ9F+vs5SjY7/YaUFfhwS3UxapWGGkPHHYz1Xc/Fz4cpJzREifDv0LJx2qcIs4tB9J9TZGpldPnu8rg==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.3","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.10","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.5-hotfix.5_1769600777733_0.41720293938826325","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.5-hotfix.6":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.5-hotfix.6","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.5-hotfix.6","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"5935959feea4ccf2e275032293544f11ec111d8f","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.5-hotfix.6.tgz","fileCount":34,"integrity":"sha512-ejyjad/iq2SCOoZ1AtLbC+4arhoTgpTONDira2HVKufBlCFhxmz3SAcEaoiDiHncvTusV3KeW5LMm/ty8Js1OA==","signatures":[{"sig":"MEUCIQDH1VULmNczTmY9BALrXxAkNZnxMAjS/I3rjKs1W3ypEQIgLYbfH5B0cbGzK+GIGqa0ZwH3Cz0tpl3YtF+oMNTydAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2046819},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.6.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"aspiers","email":"npm@adamspiers.org"},"_resolved":"/tmp/0d9b884328442c2ffb1242844ea8bb7d/hypercerts-org-sdk-core-0.10.0-beta.5-hotfix.6.tgz","_integrity":"sha512-ejyjad/iq2SCOoZ1AtLbC+4arhoTgpTONDira2HVKufBlCFhxmz3SAcEaoiDiHncvTusV3KeW5LMm/ty8Js1OA==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.3","dependencies":{"zod":"^3.24.4","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.10","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.5-hotfix.6_1769630032359_0.03741429488408676","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.8":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.8","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.8","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"69ea5a8318a549629ac93bb0b3fdb28d8ad60eb0","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.8.tgz","fileCount":34,"integrity":"sha512-01k2BaEkajQON0mB77hk54I6+6tp8YN17PIt2PRoyM6hF9j2WCdR8GJerY7EEfnvFZlt3ZUcI5ZguAwDrFuy+A==","signatures":[{"sig":"MEQCIDlRc0HJ8gDJ/QdOAKIX9icjPRMPzm5b/wVk6Te3y+NCAiB6XJfsohxDwc62rkJYfbmi6yHAXfsOxgixSFZ4VUTvcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2350640},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.8.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/4b872e7af54a032d7e3a7a29673653a4/hypercerts-org-sdk-core-0.10.0-beta.8.tgz","_integrity":"sha512-01k2BaEkajQON0mB77hk54I6+6tp8YN17PIt2PRoyM6hF9j2WCdR8GJerY7EEfnvFZlt3ZUcI5ZguAwDrFuy+A==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.8.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.24.4","type-fest":"^5.4.1","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.13","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.8_1769655418612_0.26612844838361904","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.8-hotfix.1":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.8-hotfix.1","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.8-hotfix.1","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"e694d651f3b41c163536c044e0374060fbe520a2","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.8-hotfix.1.tgz","fileCount":34,"integrity":"sha512-9xngPG6tdTCi42iiqgfX1Kgi/J0V9J3lD0rGQigbZ7k4QQQpeW/sqVWzM1U721oQH/y+ZfpSZIGtphHbjMKkXg==","signatures":[{"sig":"MEUCIQDOjpI4Jg+hnLIiAzLuyplidjIBYujeZSPQUv0aruHHvQIgNUYpagqCZXV2YrMpnzDWO4BmVRC9irRkzyFyILBYzAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2368099},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.8-hotfix.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"aspiers","email":"npm@adamspiers.org"},"_resolved":"/tmp/0314ada0c38999745e751043c3458e1d/hypercerts-org-sdk-core-0.10.0-beta.8-hotfix.1.tgz","_integrity":"sha512-9xngPG6tdTCi42iiqgfX1Kgi/J0V9J3lD0rGQigbZ7k4QQQpeW/sqVWzM1U721oQH/y+ZfpSZIGtphHbjMKkXg==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"10.8.2","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.19.3","dependencies":{"zod":"^3.25.76","type-fest":"^5.4.1","@atproto/api":"^0.17.5","eventemitter3":"^5.0.1","@atproto/lexicon":"^0.5.1","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.13","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/node":">=20.10.0","rollup-plugin-dts":"^6.2.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.8-hotfix.1_1769680788814_0.12982045694036248","host":"s3://npm-registry-packages-npm-production"}},"0.10.0-beta.9":{"name":"@hypercerts-org/sdk-core","version":"0.10.0-beta.9","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"author":{"name":"Hypercerts Foundation"},"license":"MIT","_id":"@hypercerts-org/sdk-core@0.10.0-beta.9","maintainers":[{"name":"jipperism","email":"info@jips.dev"},{"name":"ryscheng","email":"me@raymondcheng.net"},{"name":"bitbeckers","email":"code@bitbeckers.com"},{"name":"aspiers","email":"npm@adamspiers.org"},{"name":"holke","email":"holke.brammer@pm.me"}],"homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"dist":{"shasum":"3e89cc991ddf3f25babb705bd7d0f1cf69183303","tarball":"https://registry.npmjs.org/@hypercerts-org/sdk-core/-/sdk-core-0.10.0-beta.9.tgz","fileCount":34,"integrity":"sha512-blcc692YTaoDu+PwAiostRvpMYJvWfHngqvaTq+guyj4JknvE80k6u91hKmEeA+RtmFggPL6Ks45xae6tPAj7Q==","signatures":[{"sig":"MEQCIGTR2MIMu5J94zxm6blI+CviXm4pEi3cZnbY8XfrzLJjAiBY2XG6SGD9Bg74bTOA1PIeXBTw76pgEgW1bEDJlsO7vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hypercerts-org%2fsdk-core@0.10.0-beta.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2469660},"main":"dist/index.cjs","type":"module","_from":"file:hypercerts-org-sdk-core-0.10.0-beta.9.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.cjs"},"./errors":{"types":"./dist/errors.d.ts","import":"./dist/errors.mjs","require":"./dist/errors.cjs"},"./storage":{"types":"./dist/storage.d.ts","import":"./dist/storage.mjs","require":"./dist/storage.cjs"},"./testing":{"types":"./dist/testing.d.ts","import":"./dist/testing.mjs","require":"./dist/testing.cjs"},"./lexicons":{"types":"./dist/lexicons.d.ts","import":"./dist/lexicons.mjs","require":"./dist/lexicons.cjs"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"rollup -c","check":"pnpm run format:check && pnpm run lint && pnpm run typecheck && pnpm run build && pnpm run test","clean":"rm -rf dist","format":"prettier --write .","test:ui":"vitest --ui","typecheck":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bad881b8-d230-49e1-b4bd-bb9163adb5eb"}},"_resolved":"/tmp/b36cc52a019c233fc51ee456bc3335bc/hypercerts-org-sdk-core-0.10.0-beta.9.tgz","_integrity":"sha512-blcc692YTaoDu+PwAiostRvpMYJvWfHngqvaTq+guyj4JknvE80k6u91hKmEeA+RtmFggPL6Ks45xae6tPAj7Q==","deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"_npmVersion":"11.11.0","description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.24.4","type-fest":"^5.4.1","@atproto/api":"0.18.10","eventemitter3":"^5.0.1","@atproto/lexicon":"0.6.0","@atproto/oauth-client":"^0.5.10","@hypercerts-org/lexicon":"0.10.0-beta.14","@atproto/oauth-client-node":"^0.3.12"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"prepublishOnly":"npm run lint && pnpm run typecheck && pnpm run build && pnpm run test","devDependencies":{"jose":"^6.1.3","rollup":"^4.53.3","@types/chai":"^5.2.3","@types/node":">=20.10.0","multiformats":"^13.4.2","@types/deep-eql":"^4.0.2","rollup-plugin-dts":"^6.2.3","@types/json-schema":"^7.0.15","@rollup/plugin-json":"^6.1.0","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk-core_0.10.0-beta.9_1772444208058_0.5305293146619106","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-12-01T19:15:58.238Z","modified":"2026-09-09T21:16:43.190Z","0.2.0-beta.0":"2025-12-01T19:15:58.623Z","0.4.0-beta.0":"2025-12-03T22:12:58.534Z","0.5.0-beta.0":"2025-12-04T08:04:22.272Z","0.6.0-beta.0":"2025-12-04T09:49:24.282Z","0.7.0-beta.0":"2025-12-04T12:10:10.143Z","0.8.0-beta.0":"2025-12-04T23:04:53.942Z","0.9.0-beta.0":"2025-12-04T23:52:51.938Z","0.10.0-beta.0":"2025-12-08T14:05:44.947Z","0.10.0-beta.1":"2026-01-06T19:57:39.732Z","0.10.0-beta.2":"2026-01-06T20:26:11.921Z","0.10.0-beta.3":"2026-01-08T14:59:46.070Z","0.10.0-beta.4":"2026-01-14T11:56:14.483Z","0.10.0-beta.5":"2026-01-23T20:52:26.180Z","0.10.0-beta.6":"2026-01-23T22:00:39.658Z","0.10.0-beta.5-hotfix.1":"2026-01-25T10:39:53.187Z","0.10.0-beta.5-hotfix.2":"2026-01-26T10:28:53.421Z","0.10.0-beta.5-hotfix.3":"2026-01-26T12:10:05.305Z","0.10.0-beta.7":"2026-01-27T21:39:45.996Z","0.10.0-beta.5-hotfix.4":"2026-01-28T10:51:19.563Z","0.10.0-beta.5-hotfix.5":"2026-01-28T11:46:17.906Z","0.10.0-beta.5-hotfix.6":"2026-01-28T19:53:52.625Z","0.10.0-beta.8":"2026-01-29T02:56:58.819Z","0.10.0-beta.8-hotfix.1":"2026-01-29T09:59:49.048Z","0.10.0-beta.9":"2026-03-02T09:36:48.265Z"},"bugs":{"url":"https://github.com/hypercerts-org/hypercerts-sdk/issues"},"author":{"name":"Hypercerts Foundation"},"license":"MIT","homepage":"https://github.com/hypercerts-org/hypercerts-sdk#readme","keywords":["atproto","hypercerts","sdk","oauth","decentralized"],"repository":{"url":"git+https://github.com/hypercerts-org/hypercerts-sdk.git"},"description":"Framework-agnostic ATProto SDK core for authentication, repository operations, and lexicon management","maintainers":[{"email":"me@raymondcheng.net","name":"ryscheng"},{"email":"code@bitbeckers.com","name":"bitbeckers"},{"email":"holke.brammer@pm.me","name":"holke"}],"readme":"# @hypercerts-org/sdk-core\n\nFramework-agnostic ATProto SDK for Hypercerts. Create, manage, and collaborate on hypercerts using the AT Protocol.\n\n```bash\npnpm add @hypercerts-org/sdk-core\n```\n\n## Quick Start\n\n```typescript\nimport { createATProtoSDK } from \"@hypercerts-org/sdk-core\";\n\n// 1. Create SDK with OAuth configuration\nconst sdk = createATProtoSDK({\n  oauth: {\n    clientId: \"https://your-app.com/client-metadata.json\",\n    redirectUri: \"https://your-app.com/callback\",\n    scope: \"atproto\",\n    jwksUri: \"https://your-app.com/jwks.json\",\n    jwkPrivate: process.env.ATPROTO_JWK_PRIVATE!,\n  },\n  // Optional: URL for handle resolution during OAuth.\n  // If omitted, DNS-based resolution is used.\n  handleResolver: \"https://pds-eu-west4.test.certified.app\",\n});\n\n// 2. Authenticate user\nconst authUrl = await sdk.authorize(\"user.bsky.social\");\n// Redirect user to authUrl...\n\n// 3. Handle OAuth callback\nconst session = await sdk.callback(callbackParams);\n\n// 4. Get repository and start creating hypercerts\nconst repo = sdk.getRepository(session);\nconst claim = await repo.hypercerts.create({\n  title: \"Tree Planting Initiative 2025\",\n  shortDescription: \"1000 trees planted in rainforest\",\n  description: \"Planted 1000 trees in the Amazon rainforest region\",\n  workScope: \"Environmental Conservation\",\n  startDate: \"2025-01-01\",\n  endDate: \"2025-12-31\",\n  rights: {\n    name: \"Attribution\",\n    type: \"license\",\n    description: \"CC-BY-4.0\",\n  },\n});\n```\n\n## Local Development\n\nFor local development and testing, you can use HTTP loopback URLs with `localhost` or `127.0.0.1`:\n\n### NextJS App Router Example\n\n```typescript\n// lib/atproto.ts\nimport { createATProtoSDK } from \"@hypercerts-org/sdk-core\";\n\nconst sdk = createATProtoSDK({\n  oauth: {\n    // Use localhost for client_id (loopback client)\n    clientId: \"http://localhost/\",\n\n    // Use 127.0.0.1 with your app's port for redirect\n    redirectUri: \"http://127.0.0.1:3000/api/auth/callback\",\n\n    scope: \"atproto\",\n\n    // Serve JWKS from your app\n    jwksUri: \"http://127.0.0.1:3000/.well-known/jwks.json\",\n\n    // Load from environment variable\n    jwkPrivate: process.env.ATPROTO_JWK_PRIVATE!,\n\n    // Optional: suppress warnings\n    developmentMode: true,\n  },\n  // Optional: handle resolver for local testing\n  handleResolver: \"http://localhost:2583\",\n  logger: console, // Enable debug logging\n});\n\nexport default sdk;\n```\n\n### API Route Setup\n\n```typescript\n// app/api/auth/callback/route.ts\nimport sdk from \"@/lib/atproto\";\n\nexport async function GET(request: Request) {\n  const { searchParams } = new URL(request.url);\n\n  try {\n    const session = await sdk.callback(searchParams);\n\n    // Store session (use secure httpOnly cookie in production)\n    return Response.json({ success: true, did: session.sub });\n  } catch (error) {\n    return Response.json({ error: \"Authentication failed\" }, { status: 401 });\n  }\n}\n```\n\n### Serve JWKS Endpoint\n\n```typescript\n// app/.well-known/jwks.json/route.ts\nexport async function GET() {\n  const jwk = JSON.parse(process.env.ATPROTO_JWK_PRIVATE!);\n\n  // Return public keys only (remove private key 'd' parameter)\n  const publicKeys = jwk.keys.map(({ d, ...publicKey }) => publicKey);\n\n  return Response.json({ keys: publicKeys });\n}\n```\n\n### Environment Variables\n\n```bash\n# .env.local\nATPROTO_JWK_PRIVATE='{\"keys\":[{\"kty\":\"EC\",\"crv\":\"P-256\",...}]}'\n```\n\n### Important Notes\n\n> **Authorization Server Support**: The AT Protocol OAuth spec makes loopback support **optional**. Most AT Protocol\n> servers support loopback clients for development, but verify your target authorization server supports this feature.\n\n> **Port Matching**: Redirect URIs can use any port - the authorization server ignores port numbers when validating\n> loopback redirects (only the path must match).\n\n> **Production Use**: ⚠️ Never use HTTP loopback URLs in production. Always use HTTPS with proper TLS certificates.\n\n> **IP vs Hostname**: Use `http://localhost/` for `clientId` and `http://127.0.0.1:<port>` for `redirectUri` and\n> `jwksUri` (this is the recommended pattern per AT Protocol spec).\n\n## Core Concepts\n\n### 1. PDS vs SDS: Understanding Server Types\n\nThe SDK supports two types of AT Protocol servers:\n\n#### Personal Data Server (PDS)\n\n- **Purpose**: User's own data storage (e.g., Bluesky)\n- **Use case**: Individual hypercerts, personal records\n- **Features**: Profile management, basic CRUD operations\n- **Auto-detected**: The SDK automatically discovers the user's PDS from the OAuth session -- no configuration needed\n\n#### Shared Data Server (SDS)\n\n- **Purpose**: Collaborative data storage with access control\n- **Use case**: Organization hypercerts, team collaboration\n- **Features**: Organizations, multi-user access, role-based permissions\n- **Configured via**: `servers.sds` in SDK config\n\n```typescript\n// Connect to user's PDS (default) -- auto-detected from session\nconst pdsRepo = sdk.repository(session);\nawait pdsRepo.hypercerts.create({ ... }); // Creates in user's PDS\n\n// Connect to SDS for collaboration features\nconst sdsRepo = sdk.repository(session, { server: \"sds\" });\nawait sdsRepo.organizations.create({ name: \"My Org\" }); // SDS-only feature\n\n// Switch to organization repository (still on SDS)\nconst orgs = await sdsRepo.organizations.list();\nconst orgRepo = sdsRepo.repo(orgs.organizations[0].did);\nawait orgRepo.hypercerts.list(); // Queries organization's hypercerts on SDS\n```\n\n#### How PDS Auto-Detection Works\n\nThe SDK automatically discovers each user's PDS URL from their OAuth session. You do not need to configure a PDS URL.\n\n1. **During authentication** (`callback()` or `restoreSession()`), the SDK extracts the user's PDS URL from the OAuth\n   token's `aud` field, which is resolved from the user's DID Document.\n\n2. **When creating a repository** (`sdk.repository(session)`), the SDK uses the cached PDS URL for that session's DID.\n\n3. **For sessions created outside the SDK**, you can manually resolve the PDS:\n   ```typescript\n   await sdk.resolveSessionPds(session);\n   ```\n\n#### How Repository Routing Works\n\nThe SDK uses a `ConfigurableAgent` to route requests to different servers while maintaining your OAuth authentication:\n\n1. **Initial Repository Creation**\n\n   ```typescript\n   // User authenticates -- PDS URL is automatically cached from the session\n   const session = await sdk.callback(params);\n\n   // Create PDS repository -- routes to user's auto-detected PDS\n   const pdsRepo = sdk.repository(session);\n\n   // Create SDS repository -- routes to configured SDS server\n   const sdsRepo = sdk.repository(session, { server: \"sds\" });\n   ```\n\n2. **Switching Repositories with `.repo()`**\n\n   ```typescript\n   // Start with user's SDS repository\n   const userSdsRepo = sdk.repository(session, { server: \"sds\" });\n\n   // Switch to organization's repository\n   const orgRepo = userSdsRepo.repo(\"did:plc:org-did\");\n\n   // All operations on orgRepo still route to SDS, not user's PDS\n   await orgRepo.hypercerts.list(); // Queries SDS\n   await orgRepo.collaborators.list(); // Queries SDS\n   ```\n\n3. **Key Implementation Details**\n   - Each Repository uses a `ConfigurableAgent` that wraps your OAuth session's fetch handler\n   - The agent routes all requests to the specified server URL (PDS, SDS, or custom)\n   - The user's PDS URL is auto-detected from the OAuth session's token info (`tokenInfo.aud`)\n   - When you call `.repo(did)`, a new Repository is created with the same server configuration\n   - Your OAuth session provides authentication (DPoP, access tokens), while the agent handles routing\n   - This enables simultaneous connections to multiple servers with one authentication session\n\n#### Common Patterns\n\n```typescript\n// Pattern 1: Personal hypercerts on PDS (auto-detected)\nconst myRepo = sdk.repository(session);\nawait myRepo.hypercerts.create({ title: \"My Personal Impact\" });\n\n// Pattern 2: Organization hypercerts on SDS\nconst sdsRepo = sdk.repository(session, { server: \"sds\" });\nconst orgRepo = sdsRepo.repo(organizationDid);\nawait orgRepo.hypercerts.create({ title: \"Team Impact\" });\n\n// Pattern 3: Reading another user's hypercerts\nconst otherUserRepo = myRepo.repo(\"did:plc:other-user\");\nawait otherUserRepo.hypercerts.list(); // Read-only access to their PDS\n\n// Pattern 4: Collaborating on organization data\nconst sdsRepo = sdk.repository(session, { server: \"sds\" });\nawait sdsRepo.collaborators.grant({\n  userDid: \"did:plc:teammate\",\n  role: \"editor\",\n});\nconst orgRepo = sdsRepo.repo(organizationDid);\n// Teammate can now access orgRepo and create hypercerts\n```\n\n### 2. Authentication & OAuth Permissions\n\nThe SDK uses OAuth 2.0 for authentication with granular permission control.\n\n#### Basic Authentication\n\n```typescript\n// First-time user authentication\nconst authUrl = await sdk.authorize(\"user.bsky.social\");\n// Redirect user to authUrl to complete OAuth flow\n\n// Handle the OAuth callback\nconst session = await sdk.callback({\n  code: \"...\",\n  state: \"...\",\n  iss: \"...\",\n});\n\n// Restore existing session for returning users\nconst session = await sdk.restoreSession(\"did:plc:user123\");\n\n// Get repository for authenticated user\nconst repo = sdk.getRepository(session);\n```\n\n#### OAuth Scopes & Permissions\n\nControl exactly what your app can access using type-safe permission builders:\n\n```typescript\nimport { PermissionBuilder, ScopePresets, buildScope } from \"@hypercerts-org/sdk-core\";\n\n// Use ready-made presets\nconst scope = ScopePresets.EMAIL_AND_PROFILE; // Request email + profile access\nconst scope = ScopePresets.POSTING_APP; // Full posting capabilities\n\n// Or build custom permissions\nconst scope = buildScope(\n  new PermissionBuilder()\n    .accountEmail(\"read\") // Read user's email\n    .repoWrite(\"app.bsky.feed.post\") // Create/update posts\n    .blob([\"image/*\", \"video/*\"]) // Upload media\n    .build(),\n);\n\n// Use in OAuth configuration\nconst sdk = createATProtoSDK({\n  oauth: {\n    clientId: \"your-client-id\",\n    redirectUri: \"https://your-app.com/callback\",\n    scope: scope, // Your custom scope\n    // ... other config\n  },\n});\n```\n\n**Available Presets:**\n\n- `EMAIL_READ` - User's email address\n- `PROFILE_READ` / `PROFILE_WRITE` - Profile access\n- `POST_WRITE` - Create posts\n- `SOCIAL_WRITE` - Likes, reposts, follows\n- `MEDIA_UPLOAD` - Image and video uploads\n- `POSTING_APP` - Full posting with media\n- `EMAIL_AND_PROFILE` - Common combination\n\nSee [OAuth Permissions Documentation](./docs/implementations/atproto_oauth_scopes.md) for detailed usage.\n\n### 3. Working with Hypercerts\n\n#### Creating a Hypercert\n\n```typescript\nconst hypercert = await repo.hypercerts.create({\n  title: \"Climate Research Project\",\n  description: \"Research on carbon capture technologies\",\n  image: imageBlob, // optional: File or Blob\n  externalUrl: \"https://example.com/project\",\n\n  impact: {\n    scope: [\"Climate Change\", \"Carbon Capture\"],\n    work: {\n      from: \"2024-01-01\",\n      to: \"2025-12-31\",\n    },\n    contributors: [\"did:plc:researcher1\", \"did:plc:researcher2\"],\n  },\n\n  rights: {\n    license: \"CC-BY-4.0\",\n    allowsDerivatives: true,\n    transferrable: false,\n  },\n});\n\nconsole.log(\"Created hypercert:\", hypercert.uri);\n```\n\n#### Retrieving Hypercerts\n\n```typescript\n// Get a specific hypercert by URI\nconst hypercert = await repo.hypercerts.get(\"at://did:plc:user123/org.hypercerts.claim/abc123\");\n\n// List all hypercerts in the repository\nconst { records } = await repo.hypercerts.list();\nfor (const claim of records) {\n  console.log(claim.value.title);\n}\n\n// List with pagination\nconst { records, cursor } = await repo.hypercerts.list({ limit: 10 });\nif (cursor) {\n  const nextPage = await repo.hypercerts.list({ limit: 10, cursor });\n}\n```\n\n#### Updating a Hypercert\n\n```typescript\n// Update an existing hypercert\nawait repo.hypercerts.update(\"at://did:plc:user123/org.hypercerts.claim/abc123\", {\n  title: \"Updated Climate Research Project\",\n  description: \"Expanded scope to include renewable energy\",\n  impact: {\n    scope: [\"Climate Change\", \"Carbon Capture\", \"Renewable Energy\"],\n    work: { from: \"2024-01-01\", to: \"2026-12-31\" },\n    contributors: [\"did:plc:researcher1\", \"did:plc:researcher2\"],\n  },\n});\n```\n\n#### Deleting a Hypercert\n\n```typescript\nawait repo.hypercerts.delete(\"at://did:plc:user123/org.hypercerts.claim/abc123\");\n```\n\n### 4. Contributions and Measurements\n\n#### Adding Contributions\n\n```typescript\n// Add a contribution to a hypercert\nconst contribution = await repo.hypercerts.addContribution({\n  claim: \"at://did:plc:user123/org.hypercerts.claim/abc123\",\n  contributor: \"did:plc:contributor456\",\n  description: \"Led the research team and conducted field studies\",\n  contributionType: \"Work\",\n  percentage: 40.0,\n});\n```\n\n#### Adding Measurements\n\n```typescript\n// Add a measurement/evaluation\nconst measurement = await repo.hypercerts.addMeasurement({\n  claim: \"at://did:plc:user123/org.hypercerts.claim/abc123\",\n  type: \"Impact\",\n  value: 1000,\n  unit: \"trees planted\",\n  verifiedBy: \"did:plc:auditor789\",\n  verificationMethod: \"On-site inspection with GPS verification\",\n  measuredAt: new Date().toISOString(),\n});\n```\n\n### 5. Collections and Projects\n\nCollections organize multiple hypercerts into logical groupings. Projects are a special type of collection with\n`type=\"project\"`.\n\n#### Creating a Collection\n\n```typescript\n// Create a collection with weighted items\nconst collection = await repo.hypercerts.createCollection({\n  title: \"Climate Projects 2024\",\n  shortDescription: \"Our climate impact portfolio\",\n  description: \"A curated collection of climate-related hypercerts\",\n  items: [\n    {\n      itemIdentifier: { uri: hypercert1Uri, cid: hypercert1Cid },\n      itemWeight: \"0.5\",\n    },\n    {\n      itemIdentifier: { uri: hypercert2Uri, cid: hypercert2Cid },\n      itemWeight: \"0.3\",\n    },\n    {\n      itemIdentifier: { uri: hypercert3Uri, cid: hypercert3Cid },\n      itemWeight: \"0.2\",\n    },\n  ],\n  avatar: avatarBlob, // optional\n  banner: bannerBlob, // optional\n});\n\nconsole.log(\"Created collection:\", collection.uri);\n```\n\n#### Creating a Project\n\nProjects are collections with automatic `type=\"project\"`:\n\n```typescript\nconst project = await repo.hypercerts.createProject({\n  title: \"Rainforest Restoration\",\n  shortDescription: \"Multi-year restoration initiative\",\n  description: \"Comprehensive rainforest restoration project\",\n  items: [\n    {\n      itemIdentifier: { uri: activity1Uri, cid: activity1Cid },\n      itemWeight: \"0.6\",\n    },\n    {\n      itemIdentifier: { uri: activity2Uri, cid: activity2Cid },\n      itemWeight: \"0.4\",\n    },\n  ],\n});\n```\n\n#### Attaching Locations\n\nBoth collections and projects can have location data attached as a sidecar record:\n\n```typescript\n// Attach location to a project\nconst locationResult = await repo.hypercerts.attachLocationToProject(projectUri, {\n  lpVersion: \"1.0\",\n  srs: \"EPSG:4326\",\n  locationType: \"coordinate-decimal\",\n  location: \"https://example.com/location.geojson\", // or use a Blob\n  name: \"Project Site\",\n  description: \"Main restoration site coordinates\",\n});\n\n// Also works for collections\nawait repo.hypercerts.attachLocationToCollection(collectionUri, locationParams);\n```\n\n#### Listing and Retrieving\n\n```typescript\n// Get a specific collection\nconst collection = await repo.hypercerts.getCollection(collectionUri);\n\n// List all collections\nconst { records } = await repo.hypercerts.listCollections();\n\n// Get a specific project\nconst project = await repo.hypercerts.getProject(projectUri);\n\n// List all projects\nconst { records } = await repo.hypercerts.listProjects();\n```\n\n#### Updating Collections and Projects\n\n```typescript\n// Update collection\nawait repo.hypercerts.updateCollection(collectionUri, {\n  title: \"Updated Title\",\n  items: [\n    /* updated items */\n  ],\n  avatar: newAvatarBlob, // or null to remove\n});\n\n// Update project (same API)\nawait repo.hypercerts.updateProject(projectUri, {\n  shortDescription: \"Updated description\",\n  banner: null, // removes banner\n});\n```\n\n#### Deleting\n\n```typescript\n// Delete collection\nawait repo.hypercerts.deleteCollection(collectionUri);\n\n// Delete project\nawait repo.hypercerts.deleteProject(projectUri);\n\n// Remove location from project\nawait repo.hypercerts.removeLocationFromProject(projectUri);\n```\n\n### 6. Blob Operations (Images & Files)\n\n```typescript\n// Upload an image or file\nconst blobResult = await repo.blobs.upload(imageFile);\nconsole.log(\"Blob uploaded:\", blobResult.ref.$link);\n\n// Download a blob\nconst blobData = await repo.blobs.get(\"did:plc:user123\", \"bafyreiabc123...\");\n```\n\n### 7. Organizations (SDS only)\n\nOrganizations allow multiple users to collaborate on shared repositories.\n\n```typescript\n// Create an organization\nconst org = await repo.organizations.create({\n  name: \"Climate Research Institute\",\n  description: \"Leading research on climate solutions\",\n  handle: \"climate-research\", // optional: unique handle\n});\n\nconsole.log(\"Organization DID:\", org.did);\n\n// List all organizations you belong to\nconst { organizations } = await repo.organizations.list();\nfor (const org of organizations) {\n  console.log(`${org.name} (${org.role})`);\n}\n\n// List with pagination\nconst { organizations, cursor } = await repo.organizations.list({ limit: 10 });\n\n// Get a specific organization\nconst org = await repo.organizations.get(\"did:plc:org123\");\nconsole.log(`${org.name} - ${org.description}`);\n```\n\n### 8. Collaborator Management (SDS only)\n\nManage who has access to your repository and what they can do.\n\n#### Granting Access\n\n```typescript\n// Grant different levels of access\nawait repo.collaborators.grant({\n  userDid: \"did:plc:user123\",\n  role: \"editor\", // viewer | editor | admin | owner\n});\n\n// Roles explained:\n// - viewer: Read-only access\n// - editor: Can create and edit records\n// - admin: Can manage collaborators and settings\n// - owner: Full control (same as repository owner)\n```\n\n#### Managing Collaborators\n\n```typescript\n// List all collaborators with pagination\nconst { collaborators, cursor } = await repo.collaborators.list();\nfor (const collab of collaborators) {\n  console.log(`${collab.userDid} - ${collab.role}`);\n}\n\n// List next page\nif (cursor) {\n  const nextPage = await repo.collaborators.list({ cursor, limit: 20 });\n}\n\n// Check if a user has access\nconst hasAccess = await repo.collaborators.hasAccess(\"did:plc:user123\");\n\n// Get a specific user's role\nconst role = await repo.collaborators.getRole(\"did:plc:user123\");\nconsole.log(`User role: ${role}`); // \"editor\", \"admin\", etc.\n\n// Get current user's permissions\nconst permissions = await repo.collaborators.getPermissions();\nif (permissions.admin) {\n  console.log(\"You can manage collaborators\");\n}\nif (permissions.create) {\n  console.log(\"You can create records\");\n}\n```\n\n#### Revoking Access\n\n```typescript\n// Remove a collaborator\nawait repo.collaborators.revoke({\n  userDid: \"did:plc:user123\",\n});\n```\n\n#### Transferring Ownership\n\n```typescript\n// Transfer repository ownership (irreversible!)\nawait repo.collaborators.transferOwnership({\n  newOwnerDid: \"did:plc:newowner456\",\n});\n```\n\n### 9. Generic Record Operations\n\nFor working with any ATProto record type:\n\n```typescript\n// Create a generic record\nconst record = await repo.records.create({\n  collection: \"org.hypercerts.claim\",\n  record: {\n    $type: \"org.hypercerts.claim\",\n    title: \"My Claim\",\n    // ... record data\n  },\n});\n\n// Get a record\nconst record = await repo.records.get({\n  collection: \"org.hypercerts.claim\",\n  rkey: \"abc123\",\n});\n\n// Update a record\nawait repo.records.update({\n  collection: \"org.hypercerts.claim\",\n  rkey: \"abc123\",\n  record: {\n    $type: \"org.hypercerts.claim\",\n    title: \"Updated Title\",\n    // ... updated data\n  },\n});\n\n// Delete a record\nawait repo.records.delete({\n  collection: \"org.hypercerts.claim\",\n  rkey: \"abc123\",\n});\n\n// List records with pagination\nconst { records, cursor } = await repo.records.list({\n  collection: \"org.hypercerts.claim\",\n  limit: 50,\n});\n```\n\n### 10. Profile Management (PDS only)\n\nThe SDK supports two profile types:\n\n- **Bluesky Profile** (`app.bsky.actor.profile`) - Standard AT Protocol profiles with CDN URLs\n- **Certified Profile** (`app.certified.actor.profile`) - Hypercerts profiles with additional fields (pronouns, website)\n\n#### Bluesky Profile\n\n```typescript\n// Get Bluesky profile\nconst bskyProfile = await repo.profile.getBskyProfile();\nconsole.log(`${bskyProfile.displayName} (@${bskyProfile.handle})`);\nconsole.log(bskyProfile.avatar); // CDN URL: \"https://cdn.bsky.app/...\"\n\n// Create Bluesky profile\nawait repo.profile.createBskyProfile({\n  displayName: \"Alice\",\n  description: \"Climate researcher\",\n  avatar: avatarBlob, // Upload blob\n  banner: bannerBlob,\n});\n\n// Update Bluesky profile\nawait repo.profile.updateBskyProfile({\n  displayName: \"Alice Smith\",\n  description: null, // Remove description\n});\n```\n\n#### Certified Profile\n\n```typescript\n// Get Certified profile (returns null if it doesn't exist)\nconst certProfile = await repo.profile.getCertifiedProfile();\nif (certProfile) {\n  console.log(certProfile.displayName);\n  console.log(certProfile.pronouns); // \"she/her\"\n  console.log(certProfile.website); // \"https://alice.com\"\n  console.log(certProfile.avatar); // Blob URL: \"https://pds.../xrpc/...\"\n} else {\n  console.log(\"User hasn't created a Certified profile yet\");\n}\n\n// Create Certified profile\nawait repo.profile.createCertifiedProfile({\n  displayName: \"Alice\",\n  description: \"Climate scientist and impact certificate advocate\",\n  pronouns: \"she/her\",\n  website: \"https://alice.com\",\n  avatar: avatarBlob, // Upload blob\n  banner: bannerBlob,\n});\n\n// Update Certified profile\nawait repo.profile.updateCertifiedProfile({\n  pronouns: \"they/them\",\n  website: null, // Remove website\n});\n\n// Upsert Certified profile (create if missing, update if exists)\nawait repo.profile.upsertCertifiedProfile({\n  displayName: \"Alice\",\n  description: \"Climate scientist\",\n  pronouns: \"she/her\",\n  website: \"https://alice.com\",\n  avatar: avatarBlob,\n});\n\n// Upsert Bluesky profile\nawait repo.profile.upsertBskyProfile({\n  displayName: \"Alice\",\n  description: \"Impact researcher\",\n  avatar: avatarBlob,\n});\n```\n\n**Key Differences:**\n\n- **Bluesky**: Returns avatar/banner as CDN URLs (`https://cdn.bsky.app/...`), throws error if profile doesn't exist\n- **Certified**: Returns avatar/banner as PDS blob URLs (`https://pds.../xrpc/...`), includes `pronouns` (max 20\n  graphemes) and `website` fields, returns `null` if profile doesn't exist\n\n**When to use upsert vs create/update:**\n\n- Use `upsert*()` for convenience when you don't know if a profile exists (e.g., first-time setup flows)\n- Use `create*()` when you know the profile doesn't exist (e.g., after checking with `get*()`)\n- Use `update*()` when you know the profile exists and only want to modify specific fields\n\n## API Reference\n\n### Repository Operations\n\n| Operation                | Method                                           | PDS | SDS | Returns                              |\n| ------------------------ | ------------------------------------------------ | --- | --- | ------------------------------------ |\n| **Records**              |                                                  |     |     |                                      |\n| Create record            | `repo.records.create()`                          | ✅  | ✅  | `{ uri, cid }`                       |\n| Get record               | `repo.records.get()`                             | ✅  | ✅  | Record data                          |\n| Update record            | `repo.records.update()`                          | ✅  | ✅  | `{ uri, cid }`                       |\n| Delete record            | `repo.records.delete()`                          | ✅  | ✅  | void                                 |\n| List records             | `repo.records.list()`                            | ✅  | ✅  | `{ records, cursor? }`               |\n| **Hypercerts**           |                                                  |     |     |                                      |\n| Create hypercert         | `repo.hypercerts.create()`                       | ✅  | ✅  | `{ uri, cid, value }`                |\n| Get hypercert            | `repo.hypercerts.get()`                          | ✅  | ✅  | Full hypercert                       |\n| Update hypercert         | `repo.hypercerts.update()`                       | ✅  | ✅  | `{ uri, cid }`                       |\n| Delete hypercert         | `repo.hypercerts.delete()`                       | ✅  | ✅  | void                                 |\n| List hypercerts          | `repo.hypercerts.list()`                         | ✅  | ✅  | `{ records, cursor? }`               |\n| Add contribution         | `repo.hypercerts.addContribution()`              | ✅  | ✅  | Contribution                         |\n| Add measurement          | `repo.hypercerts.addMeasurement()`               | ✅  | ✅  | Measurement                          |\n| **Collections**          |                                                  |     |     |                                      |\n| Create collection        | `repo.hypercerts.createCollection()`             | ✅  | ✅  | `{ uri, cid, record }`               |\n| Get collection           | `repo.hypercerts.getCollection()`                | ✅  | ✅  | Collection data                      |\n| List collections         | `repo.hypercerts.listCollections()`              | ✅  | ✅  | `{ records, cursor? }`               |\n| Update collection        | `repo.hypercerts.updateCollection()`             | ✅  | ✅  | `{ uri, cid }`                       |\n| Delete collection        | `repo.hypercerts.deleteCollection()`             | ✅  | ✅  | void                                 |\n| Attach location          | `repo.hypercerts.attachLocationToCollection()`   | ✅  | ✅  | `{ uri, cid }`                       |\n| Remove location          | `repo.hypercerts.removeLocationFromCollection()` | ✅  | ✅  | void                                 |\n| **Projects**             |                                                  |     |     |                                      |\n| Create project           | `repo.hypercerts.createProject()`                | ✅  | ✅  | `{ uri, cid, record }`               |\n| Get project              | `repo.hypercerts.getProject()`                   | ✅  | ✅  | Project data                         |\n| List projects            | `repo.hypercerts.listProjects()`                 | ✅  | ✅  | `{ records, cursor? }`               |\n| Update project           | `repo.hypercerts.updateProject()`                | ✅  | ✅  | `{ uri, cid }`                       |\n| Delete project           | `repo.hypercerts.deleteProject()`                | ✅  | ✅  | void                                 |\n| Attach location          | `repo.hypercerts.attachLocationToProject()`      | ✅  | ✅  | `{ uri, cid }`                       |\n| Remove location          | `repo.hypercerts.removeLocationFromProject()`    | ✅  | ✅  | void                                 |\n| **Blobs**                |                                                  |     |     |                                      |\n| Upload blob              | `repo.blobs.upload()`                            | ✅  | ✅  | `{ ref, mimeType, size }`            |\n| Get blob                 | `repo.blobs.get()`                               | ✅  | ✅  | Blob data                            |\n| **Profile**              |                                                  |     |     |                                      |\n| Get Bluesky profile      | `repo.profile.getBskyProfile()`                  | ✅  | ❌  | BskyProfile (CDN URLs)               |\n| Create Bluesky profile   | `repo.profile.createBskyProfile()`               | ✅  | ❌  | `{ uri, cid }`                       |\n| Update Bluesky profile   | `repo.profile.updateBskyProfile()`               | ✅  | ❌  | `{ uri, cid }`                       |\n| Upsert Bluesky profile   | `repo.profile.upsertBskyProfile()`               | ✅  | ❌  | `{ uri, cid }`                       |\n| Get Certified profile    | `repo.profile.getCertifiedProfile()`             | ✅  | ❌  | CertifiedProfile \\| null (blob URLs) |\n| Create Certified profile | `repo.profile.createCertifiedProfile()`          | ✅  | ❌  | `{ uri, cid }`                       |\n| Update Certified profile | `repo.profile.updateCertifiedProfile()`          | ✅  | ❌  | `{ uri, cid }`                       |\n| Upsert Certified profile | `repo.profile.upsertCertifiedProfile()`          | ✅  | ❌  | `{ uri, cid }`                       |\n| **Organizations**        |                                                  |     |     |                                      |\n| Create org               | `repo.organizations.create()`                    | ❌  | ✅  | `{ did, name, ... }`                 |\n| Get org                  | `repo.organizations.get()`                       | ❌  | ✅  | Organization                         |\n| List orgs                | `repo.organizations.list()`                      | ❌  | ✅  | `{ organizations, cursor? }`         |\n| **Collaborators**        |                                                  |     |     |                                      |\n| Grant access             | `repo.collaborators.grant()`                     | ❌  | ✅  | void                                 |\n| Revoke access            | `repo.collaborators.revoke()`                    | ❌  | ✅  | void                                 |\n| List collaborators       | `repo.collaborators.list()`                      | ❌  | ✅  | `{ collaborators, cursor? }`         |\n| Check access             | `repo.collaborators.hasAccess()`                 | ❌  | ✅  | boolean                              |\n| Get role                 | `repo.collaborators.getRole()`                   | ❌  | ✅  | Role string                          |\n| Get permissions          | `repo.collaborators.getPermissions()`            | ❌  | ✅  | Permissions                          |\n| Transfer ownership       | `repo.collaborators.transferOwnership()`         | ❌  | ✅  | void                                 |\n\n## Type System\n\nTypes are generated from ATProto lexicon definitions and exported with friendly aliases:\n\n```typescript\nimport type {\n  HypercertClaim,\n  HypercertRights,\n  HypercertContribution,\n  HypercertMeasurement,\n  HypercertEvaluation,\n  HypercertCollection,\n  HypercertLocation,\n} from \"@hypercerts-org/sdk-core\";\n\n// For validation, use namespaced imports\nimport { OrgHypercertsClaim } from \"@hypercerts-org/sdk-core\";\n\nif (OrgHypercertsClaim.isRecord(data)) {\n  // data is typed as HypercertClaim\n}\n```\n\n| Lexicon Type                          | SDK Alias               |\n| ------------------------------------- | ----------------------- |\n| `OrgHypercertsClaim.Main`             | `HypercertClaim`        |\n| `OrgHypercertsClaimRights.Main`       | `HypercertRights`       |\n| `OrgHypercertsClaimContribution.Main` | `HypercertContribution` |\n| `OrgHypercertsClaimMeasurement.Main`  | `HypercertMeasurement`  |\n| `OrgHypercertsClaimEvaluation.Main`   | `HypercertEvaluation`   |\n| `OrgHypercertsCollection.Main`        | `HypercertCollection`   |\n| `AppCertifiedLocation.Main`           | `HypercertLocation`     |\n\n## Error Handling\n\n```typescript\nimport {\n  ValidationError,\n  NetworkError,\n  AuthenticationError,\n  SDSRequiredError,\n} from \"@hypercerts-org/sdk-core/errors\";\n\ntry {\n  await repo.hypercerts.create({ ... });\n} catch (error) {\n  if (error instanceof ValidationError) {\n    console.error(\"Invalid hypercert data:\", error.message);\n  } else if (error instanceof NetworkError) {\n    console.error(\"Network issue:\", error.message);\n  } else if (error instanceof AuthenticationError) {\n    console.error(\"Authentication failed:\", error.message);\n  } else if (error instanceof SDSRequiredError) {\n    console.error(\"This operation requires SDS:\", error.message);\n  }\n}\n```\n\n## Package Entrypoints\n\n```\n@hypercerts-org/sdk-core\n├── /              → Full SDK (createATProtoSDK, Repository, types, errors)\n├── /types         → TypeScript types (re-exported from @hypercerts-org/lexicon)\n├── /errors        → Error classes\n├── /lexicons      → LexiconRegistry, HYPERCERT_LEXICONS, HYPERCERT_COLLECTIONS\n├── /storage       → InMemorySessionStore, InMemoryStateStore\n└── /testing       → createMockSession, MockSessionStore\n```\n\n## Advanced Usage\n\n### Multi-Server Routing with ConfigurableAgent\n\nThe `ConfigurableAgent` allows you to create custom agents that route to specific servers:\n\n```typescript\nimport { ConfigurableAgent } from \"@hypercerts-org/sdk-core\";\n\n// Authenticate once with your PDS\nconst session = await sdk.callback(params);\n\n// Create agents for different servers using the same session\nconst pdsAgent = new ConfigurableAgent(session, \"https://bsky.social\");\nconst sdsAgent = new ConfigurableAgent(session, \"https://sds.hypercerts.org\");\nconst orgAgent = new ConfigurableAgent(session, \"https://sds-org-a.example.com\");\n\n// Use agents directly with AT Protocol APIs\nawait pdsAgent.com.atproto.repo.createRecord({...});\nawait sdsAgent.com.atproto.repo.listRecords({...});\n\n// Or pass to Repository for high-level operations\n// (Repository internally uses ConfigurableAgent)\n```\n\nThis is useful for:\n\n- Connecting to multiple SDS instances simultaneously\n- Testing against different server environments\n- Building tools that work across multiple organizations\n- Direct AT Protocol API access with custom routing\n\n### Custom Session Storage\n\n```typescript\nimport { createATProtoSDK } from \"@hypercerts-org/sdk-core\";\nimport { InMemorySessionStore } from \"@hypercerts-org/sdk-core/storage\";\n\nconst sdk = createATProtoSDK({\n  oauth: { ... },\n  sessionStore: new InMemorySessionStore(),\n});\n```\n\n### Testing with Mocks\n\n```typescript\nimport { createMockSession, MockSessionStore } from \"@hypercerts-org/sdk-core/testing\";\n\nconst mockSession = createMockSession({\n  did: \"did:plc:test123\",\n  handle: \"test.user\",\n});\n\nconst mockStore = new MockSessionStore();\nawait mockStore.set(mockSession);\n```\n\n### Working with Lexicons\n\nThe SDK exports lexicon types and validation utilities from the `@hypercerts-org/lexicon` package for direct record\nmanipulation and validation.\n\n#### Lexicon Types\n\nAll lexicon types are available with proper TypeScript support:\n\n```typescript\nimport type {\n  HypercertClaim,\n  HypercertRights,\n  HypercertContribution,\n  HypercertCollection,\n  HypercertMeasurement,\n  HypercertEvaluation,\n  HypercertLocation,\n  StrongRef,\n} from \"@hypercerts-org/sdk-core\";\n\n// Create a properly typed hypercert claim\nconst claim: HypercertClaim = {\n  $type: \"org.hypercerts.claim\",\n  title: \"Community Garden Project\",\n  shortDescription: \"Urban garden serving 50 families\", // REQUIRED\n  description: \"Detailed description...\",\n  workScope: \"Food Security\",\n  workTimeFrameFrom: \"2024-01-01T00:00:00Z\", // Note: Capital 'F'\n  workTimeFrameTo: \"2024-12-31T00:00:00Z\", // Note: Capital 'F'\n  rights: { uri: \"at://...\", cid: \"...\" },\n  createdAt: new Date().toISOString(),\n};\n```\n\n#### Validation\n\nValidate records before creating them:\n\n```typescript\nimport { validate, OrgHypercertsClaim, HYPERCERT_COLLECTIONS } from \"@hypercerts-org/sdk-core\";\n\n// Validate using the lexicon package\nconst validation = validate(\n  HYPERCERT_COLLECTIONS.CLAIM, // \"org.hypercerts.claim\"\n  claim,\n);\n\nif (!validation.valid) {\n  console.error(\"Validation failed:\", validation.error);\n}\n\n// Or use type-specific validators\nconst isValid = OrgHypercertsClaim.isMain(claim);\nconst validationResult = OrgHypercertsClaim.validateMain(claim);\n```\n\n#### Using LexiconRegistry\n\nThe SDK automatically initializes a LexiconRegistry with all hypercert lexicons. You can access it to validate records\nor register custom lexicons:\n\n```typescript\n// Access the registry from the SDK\nconst registry = sdk.getLexiconRegistry();\n\n// Validate a record\nconst result = registry.validate(\"org.hypercerts.claim.activity\", claimData);\n\nif (!result.valid) {\n  console.error(\"Invalid record:\", result.error);\n}\n\n// Register a custom lexicon\nregistry.registerFromJSON({\n  lexicon: 1,\n  id: \"org.myapp.customRecord\",\n  defs: {\n    main: {\n      type: \"record\",\n      key: \"tid\",\n      record: {\n        type: \"object\",\n        required: [\"$type\", \"title\"],\n        properties: {\n          $type: { type: \"string\", const: \"org.myapp.customRecord\" },\n          title: { type: \"string\" },\n          createdAt: { type: \"string\", format: \"datetime\" },\n        },\n      },\n    },\n  },\n});\n\n// Check if a lexicon is registered\nif (registry.isRegistered(\"org.myapp.customRecord\")) {\n  console.log(\"Custom lexicon is ready to use\");\n}\n```\n\nYou can also access the registry from a Repository instance:\n\n```typescript\nconst repo = sdk.repository(session);\nconst registry = repo.getLexiconRegistry();\n```\n\n#### Creating Records with Proper Types\n\n```typescript\nimport type { HypercertContribution, StrongRef } from \"@hypercerts-org/sdk-core\";\nimport { HYPERCERT_COLLECTIONS } from \"@hypercerts-org/sdk-core\";\n\n// Create a contribution record\nconst contribution: HypercertContribution = {\n  $type: HYPERCERT_COLLECTIONS.CONTRIBUTION,\n  hypercert: {\n    uri: \"at://did:plc:abc/org.hypercerts.claim/xyz\",\n    cid: \"bafyrei...\",\n  } as StrongRef,\n  contributors: [\"did:plc:contributor1\", \"did:plc:contributor2\"],\n  role: \"implementer\",\n  description: \"On-ground implementation team\",\n  workTimeframeFrom: \"2024-01-01T00:00:00Z\", // Note: lowercase 'f' for contributions\n  workTimeframeTo: \"2024-06-30T00:00:00Z\", // Note: lowercase 'f' for contributions\n  createdAt: new Date().toISOString(),\n};\n\n// Use with repository operations\nawait repo.records.create({\n  collection: HYPERCERT_COLLECTIONS.CONTRIBUTION,\n  record: contribution,\n});\n```\n\n#### Available Lexicon Collections\n\n```typescript\nimport { HYPERCERT_COLLECTIONS } from \"@hypercerts-org/sdk-core\";\n\n// Collection NSIDs\nHYPERCERT_COLLECTIONS.CLAIM; // \"org.hypercerts.claim\"\nHYPERCERT_COLLECTIONS.RIGHTS; // \"org.hypercerts.claim.rights\"\nHYPERCERT_COLLECTIONS.CONTRIBUTION; // \"org.hypercerts.claim.contribution\"\nHYPERCERT_COLLECTIONS.MEASUREMENT; // \"org.hypercerts.claim.measurement\"\nHYPERCERT_COLLECTIONS.EVALUATION; // \"org.hypercerts.claim.evaluation\"\nHYPERCERT_COLLECTIONS.EVIDENCE; // \"org.hypercerts.claim.evidence\"\nHYPERCERT_COLLECTIONS.COLLECTION; // \"org.hypercerts.collection\"\nHYPERCERT_COLLECTIONS.LOCATION; // \"app.certified.location\"\n```\n\n## Development\n\n```bash\npnpm install        # Install dependencies\npnpm build          # Build the package\npnpm test           # Run tests\npnpm test:coverage  # Run tests with coverage\npnpm test:watch     # Run tests in watch mode\n```\n\n## License\n\nMIT\n\n## Resources\n\n- [ATProto Documentation](https://atproto.com/docs)\n- [Hypercerts Documentation](https://hypercerts.org)\n- [GitHub Repository](https://github.com/hypercerts-org/hypercerts-sdk)\n","readmeFilename":"README.md"}