{"_id":"@afauthhq/server","_rev":"10-92845ab0f8baf3300d1a05349e02acb0","name":"@afauthhq/server","dist-tags":{"alpha":"0.1.0-alpha.0","latest":"0.7.1"},"versions":{"0.1.0-alpha.0":{"name":"@afauthhq/server","version":"0.1.0-alpha.0","license":"MIT","_id":"@afauthhq/server@0.1.0-alpha.0","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"03c2bde279aa80bf73e62d7ad318206763415c36","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.1.0-alpha.0.tgz","fileCount":5,"integrity":"sha512-a1wGmPX7qTTYXzzzcgEJ9iKd3O4Af+SW+oeoyUsBCT9Bubm5hKHotKSmpejY+2scTbR/LQxKVr4GWp36fnEkfA==","signatures":[{"sig":"MEUCIQDyCSFfUyzkWAg9+7Xzvaw+UMJ2x+WX+pH2o+f4+2AXzAIgTmHLLBDQLB5Q47KXrTErZFbLMtd9EQLv05A4oBG6OHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69572},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.1.0-alpha.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/var/folders/hk/yf2t06h97pdcy_ynlkn2rq3c0000gn/T/e091e24eb5fadc2ad5d98d5e4d82bc83/afauthhq-server-0.1.0-alpha.0.tgz","_integrity":"sha512-a1wGmPX7qTTYXzzzcgEJ9iKd3O4Af+SW+oeoyUsBCT9Bubm5hKHotKSmpejY+2scTbR/LQxKVr4GWp36fnEkfA==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.1.0-alpha.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.1.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.0-alpha.0_1779354503935_0.8821651218838025","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@afauthhq/server","version":"0.1.0","license":"MIT","_id":"@afauthhq/server@0.1.0","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"ac68059a95066e27bea42adb13eab2565676ff2c","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.1.0.tgz","fileCount":5,"integrity":"sha512-iJxNky8Iqf5NiyPvUv1u8GnSJ114L7wKUDRSkXnUpRgkD13av8EYV2WkoIA0+j3P0Cqyp2vhZuCJ4QmUGNArxA==","signatures":[{"sig":"MEQCICMPCCREej6NpCdvYhU1I267nCZR9jsgQQMQE2/nkef7AiAxTMXskbmpQZWn6tTgYXxtjNnOfmaseXKW/rfAGDB6KQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69548},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/var/folders/hk/yf2t06h97pdcy_ynlkn2rq3c0000gn/T/5888b467fd11e13c48cb402f9b2f42d7/afauthhq-server-0.1.0.tgz","_integrity":"sha512-iJxNky8Iqf5NiyPvUv1u8GnSJ114L7wKUDRSkXnUpRgkD13av8EYV2WkoIA0+j3P0Cqyp2vhZuCJ4QmUGNArxA==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.0_1779356007830_0.4697935303644507","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@afauthhq/server","version":"0.1.1","license":"MIT","_id":"@afauthhq/server@0.1.1","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"868d06b34c82f180a2eb45812af2de2169e46011","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.1.1.tgz","fileCount":5,"integrity":"sha512-575khoBxshaR7SiO+VQKnrwT+Hf9OS909YCEs4jX/7Vdn328fZF/Xa+gDvIG4xUQlemy8gwInORlclStLObMXw==","signatures":[{"sig":"MEQCIADKCNOn4hEhhEsQL14yzTI60O0C/33BBWlXwDZlNdXOAiAPfygd5BVra8us3Gg75lHiqwnsjIPYKtPtQ8xpoqbgxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70127},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/var/folders/hk/yf2t06h97pdcy_ynlkn2rq3c0000gn/T/107281ecc9845a787b9dd235fdbd1468/afauthhq-server-0.1.1.tgz","_integrity":"sha512-575khoBxshaR7SiO+VQKnrwT+Hf9OS909YCEs4jX/7Vdn328fZF/Xa+gDvIG4xUQlemy8gwInORlclStLObMXw==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/server_0.1.1_1779530289118_0.8847237897925471","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@afauthhq/server","version":"0.2.0","license":"MIT","_id":"@afauthhq/server@0.2.0","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"2aa683b1f1f67020d0ee8e36646246ccc27f2694","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.2.0.tgz","fileCount":5,"integrity":"sha512-0QZRe0iGIW2ao9dGs3Ewr/urjSoJTlE4O8E9EaGEgpm5+qMR13Qu3wW8QGhlJKU4bspy5umZpJssqm1Jb2kFjw==","signatures":[{"sig":"MEUCIBtuB/3zYUlAmMENTkb6t4TtlJQzmER1HrAGRGSQgadbAiEA7iLY/2WrGJq6P1iqpLRSlRJtAwWwHur2+bzYDAYDiqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79015},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/var/folders/hk/yf2t06h97pdcy_ynlkn2rq3c0000gn/T/ebaaf82e8f740223015cb40544d73ff7/afauthhq-server-0.2.0.tgz","_integrity":"sha512-0QZRe0iGIW2ao9dGs3Ewr/urjSoJTlE4O8E9EaGEgpm5+qMR13Qu3wW8QGhlJKU4bspy5umZpJssqm1Jb2kFjw==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.2.0_1779952185249_0.6418526552194626","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@afauthhq/server","version":"0.3.0","license":"MIT","_id":"@afauthhq/server@0.3.0","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"90f5a2ace385c7e3165995e8e4c5282a94b1aa16","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.3.0.tgz","fileCount":5,"integrity":"sha512-eAvnbV9mLFSMvKjraIo1H/AD/d3IsYNhEZ1syvl3xuL8Zz9+SCpTFTQI8Ah/wyA1OIpVl9Tpy81fyAee/AY/Ww==","signatures":[{"sig":"MEYCIQCaQNdgJJePwkaxRVmUZDtDdIhmObxmXv8ssjGnmTau7AIhAOOSHUw02yCu7MiyAjMEfn4t69LbK7KN4pX2uyVWTdT8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85500},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/var/folders/hk/yf2t06h97pdcy_ynlkn2rq3c0000gn/T/06ae50457bc62bbb951ba72b6c63df14/afauthhq-server-0.3.0.tgz","_integrity":"sha512-eAvnbV9mLFSMvKjraIo1H/AD/d3IsYNhEZ1syvl3xuL8Zz9+SCpTFTQI8Ah/wyA1OIpVl9Tpy81fyAee/AY/Ww==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.3.0_1780045108205_0.20589388911366435","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@afauthhq/server","version":"0.4.0","license":"MIT","_id":"@afauthhq/server@0.4.0","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"126680ec18e3df043b7c2de763edff0dded9067f","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.4.0.tgz","fileCount":5,"integrity":"sha512-UuAQwJhcQvBu9NT6G2JiMvbzyQ5pNaXncuGSwqRnGynhIHv+JA7PXfm+qSE88bd1UFWgLWkQXhxpmDyx4JXtug==","signatures":[{"sig":"MEYCIQDzsnnRae8yZxQwY1ZWvooltCPLHGz7XHDg+NoSe7GXKQIhAOK5aWp3zcFxyzlll70MrtQqmAuK0iDkLZdRTFxWlPeW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94277},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.4.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/tmp/claude-501/e7cdb6240ca30355a5e5527926bca5df/afauthhq-server-0.4.0.tgz","_integrity":"sha512-UuAQwJhcQvBu9NT6G2JiMvbzyQ5pNaXncuGSwqRnGynhIHv+JA7PXfm+qSE88bd1UFWgLWkQXhxpmDyx4JXtug==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.4.0_1780414469743_0.5023180083640373","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@afauthhq/server","version":"0.5.0","license":"MIT","_id":"@afauthhq/server@0.5.0","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"1ff310c53b6fa9eeb53c1d6f3235c4050e7394eb","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.5.0.tgz","fileCount":5,"integrity":"sha512-h4v4WZ8zqjRyOfgGpXj4/cSY9wyOoW1KFWFsy8vAPnl/FbtPEQZt2dH7WO0IOd8zDoy6xDMkL+Yx0FEcitpKUA==","signatures":[{"sig":"MEUCIEJ24uUzIYuNqt4ruJ/7kBK/IfeDh31ElLMmOQ2S7g38AiEAw7sdvusxM0J+ieR54ma2jz2GGuMVJcBOGYHV0r01GS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104931},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.5.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/tmp/claude-501/d2c795f621ed2c7f1a4c3f9650ceaad8/afauthhq-server-0.5.0.tgz","_integrity":"sha512-h4v4WZ8zqjRyOfgGpXj4/cSY9wyOoW1KFWFsy8vAPnl/FbtPEQZt2dH7WO0IOd8zDoy6xDMkL+Yx0FEcitpKUA==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.5.0_1780469347184_0.7036045692866437","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@afauthhq/server","version":"0.6.0","license":"MIT","_id":"@afauthhq/server@0.6.0","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"778f0fee6954aaf3ff0701cb34dec2eebcc551f0","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.6.0.tgz","fileCount":5,"integrity":"sha512-ElNl3sR+aENS0qI6mJ+Opm7jHuVNzxGrdNNGG1Ob4F782W1tj3akBWYUASunaz4EZMpdUVcGnieQslEm6ZyFUg==","signatures":[{"sig":"MEUCIAxFCYm8TpZNmpn6hxgCbEWlmtPEd9vtGOA7LGTf/3Y9AiEAwMlB8aLCjberpArxhfcqlrjp8aOP2kAk233AGoyvn9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107301},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.6.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/tmp/claude-501/feb422553fd0ba3725c925e5aa569268/afauthhq-server-0.6.0.tgz","_integrity":"sha512-ElNl3sR+aENS0qI6mJ+Opm7jHuVNzxGrdNNGG1Ob4F782W1tj3akBWYUASunaz4EZMpdUVcGnieQslEm6ZyFUg==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.6.0_1780545086216_0.1871008205954532","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@afauthhq/server","version":"0.7.0","license":"MIT","_id":"@afauthhq/server@0.7.0","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"dist":{"shasum":"59ffcb83eed032dc997d1d6f62b68f8246708384","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.7.0.tgz","fileCount":5,"integrity":"sha512-QMT36HqDG2J35mA2WEcC2cO30BXU762Fs0BeCsiAnm6yPrxEVUaauVPhETLGomGoJCXMrzIuZtX5gu5grMj1Lg==","signatures":[{"sig":"MEUCIQCvmhfD0zs+S6YiWXj+VqEEyzXBq6sVGQQ2A5TPbhPMkwIgBhVEZuWY8gJXsBG+obiwJUgpQmSB7wW8r42047wKJDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116325},"main":"./dist/index.js","type":"module","_from":"file:afauthhq-server-0.7.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"echo TODO: configure lint","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm --dts --clean","coverage":"vitest run --coverage --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"_resolved":"/private/var/folders/hk/yf2t06h97pdcy_ynlkn2rq3c0000gn/T/83100c9514445360c0f6ab4c57a2d85b/afauthhq-server-0.7.0.tgz","_integrity":"sha512-QMT36HqDG2J35mA2WEcC2cO30BXU762Fs0BeCsiAnm6yPrxEVUaauVPhETLGomGoJCXMrzIuZtX5gu5grMj1Lg==","repository":{"url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","type":"git","directory":"packages/server"},"_npmVersion":"10.9.4","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","directories":{},"_nodeVersion":"22.22.1","dependencies":{"jose":"^6.2.3","@noble/curves":"^2.2.0","@afauthhq/core":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@afauthhq/agent":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/server_0.7.0_1780750391445_0.9907166938384167","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@afauthhq/server","version":"0.7.1","description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","license":"MIT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@noble/curves":"^2.2.0","jose":"^6.2.3","@afauthhq/core":"0.3.0"},"devDependencies":{"tsup":"^8.0.0","typescript":"^5.5.0","vitest":"^2.0.0","@afauthhq/agent":"^0.6.1"},"repository":{"type":"git","url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","directory":"packages/server"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup src/index.ts --format esm --dts --clean","test":"vitest run --passWithNoTests","coverage":"vitest run --coverage --passWithNoTests","lint":"echo TODO: configure lint","typecheck":"tsc --noEmit"},"_id":"@afauthhq/server@0.7.1","bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","_integrity":"sha512-4cApMupdaoZS8tYCsbIoNNd+1T/Pg9wTYuuwVk+xPX+JKM1G/loQ5Yl9SWbZy6guckDBeqtwNL4Ps+TnVDUPDw==","_resolved":"/private/var/folders/hk/yf2t06h97pdcy_ynlkn2rq3c0000gn/T/67c44283a951f274f2be5cd158df6644/afauthhq-server-0.7.1.tgz","_from":"file:afauthhq-server-0.7.1.tgz","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-4cApMupdaoZS8tYCsbIoNNd+1T/Pg9wTYuuwVk+xPX+JKM1G/loQ5Yl9SWbZy6guckDBeqtwNL4Ps+TnVDUPDw==","shasum":"e3e13c720cf4d521c4b8b5c86a013d5f9ff91ce6","tarball":"https://registry.npmjs.org/@afauthhq/server/-/server-0.7.1.tgz","fileCount":5,"unpackedSize":116325,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBf7BaiIw4u22RuFV+/1R/1KdDUgbMODMzs34RwuSqDIAiEA3sqeo8ut8ZdRkbqXKMWdNb0B2yulcgo2kPJftP3tTjg="}]},"_npmUser":{"name":"wenguo","email":"guowen89@gmail.com"},"directories":{},"maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/server_0.7.1_1780972421733_0.183892305132777"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T09:08:23.833Z","modified":"2026-06-09T02:33:42.033Z","0.1.0-alpha.0":"2026-05-21T09:08:24.105Z","0.1.0":"2026-05-21T09:33:27.973Z","0.1.1":"2026-05-23T09:58:09.318Z","0.2.0":"2026-05-28T07:09:45.393Z","0.3.0":"2026-05-29T08:58:28.364Z","0.4.0":"2026-06-02T15:34:29.945Z","0.5.0":"2026-06-03T06:49:07.375Z","0.6.0":"2026-06-04T03:51:26.414Z","0.7.0":"2026-06-06T12:53:11.586Z","0.7.1":"2026-06-09T02:33:41.916Z"},"bugs":{"url":"https://github.com/AFAuthHQ/typescript-sdk/issues"},"license":"MIT","homepage":"https://github.com/AFAuthHQ/typescript-sdk#readme","repository":{"type":"git","url":"git+https://github.com/AFAuthHQ/typescript-sdk.git","directory":"packages/server"},"description":"AFAuth server SDK — Verifier, Server, NonceStore, AccountStore, RecipientHandler","maintainers":[{"name":"wenguo","email":"guowen89@gmail.com"}],"readme":"# `@afauthhq/server`\n\nService SDK for the AFAuth Protocol. Verifies signed requests per\n§5.5/§5.6, runs the owner-invitation and claim-completion ceremonies\nper §7, handles pre-claim key rotation per §8.1, and serves the\ndiscovery and account-introspection endpoints.\n\n## Quickstart\n\n```typescript\nimport {\n  consoleEmailHandler,\n  defineService,\n  MemoryAccountStore,\n  MemoryNonceStore,\n} from \"@afauthhq/server\";\n\nconst server = defineService({\n  baseUrl: \"https://api.example.com\",\n  serviceDid: \"did:web:api.example.com\",\n  accounts: new MemoryAccountStore(),\n  recipients: { email: consoleEmailHandler },\n  nonceStore: new MemoryNonceStore(),\n  // attestation: \"required\" (default) wires trustAttestor() and sets\n  //   discovery.billing.unclaimed_mode = \"attested_only\".\n  // Override with \"optional\" (migration path) or \"off\" (paid/read-only).\n});\n```\n\n`defineService` flips three protocol switches ON by default: it advertises\n`attested_only` in the discovery doc (§9.2), configures `trustAttestor()`\nas the verifier (§10), and enforces **per-principal uniqueness** (§10.4.4).\nThe net effect is spam-resistance out of the box — un-attested implicit\nsignups are rejected with `401 attestation_required`, and a second account\nfor a human who already has one (same `(iss, sub_h)`) is rejected with\n`409 principal_already_registered`. \"Same human, same bucket\" holds by\ndefault. The default slot is a process-local `MemorySubHUniquenessStore`, so\nsupply a durable, atomic `SubHUniquenessStore` (`D1SubHUniquenessStore`) in\nproduction — or pass `subHUniqueness: false` to allow many agents per human\n(fleet operators).\n\nFor `MultiAttestor` setups, custom `HmacAttestor`, or fully custom\ndiscovery, use `new Server({...})` — see [Advanced configuration](#advanced-configuration).\n\n### Advanced configuration\n\n```typescript\nimport {\n  consoleEmailHandler,\n  MemoryAccountStore,\n  MemoryNonceStore,\n  MemoryRevocationList,\n  Server,\n} from \"@afauthhq/server\";\n\nconst server = new Server({\n  nonceStore: new MemoryNonceStore(),\n  revocationList: new MemoryRevocationList(),\n  serviceDid: \"did:web:api.example.com\",\n  accounts: new MemoryAccountStore(),\n  recipients: { email: consoleEmailHandler },\n  discovery: { /* see @afauthhq/agent DiscoveryDocument */ },\n  baseUrl: \"https://api.example.com\",\n\n  // §7.2: redirect_url is rejected unless its host is in this list.\n  redirectAllowList: [\"yourapp.com\"],\n\n  // §6.3: implicit signup on first touch. Default true.\n  implicitSignup: true,\n});\n```\n\n## Exports\n\n- **`defineService(opts)`** — opinionated convenience factory. Returns\n  a `Server` with `attestation: \"required\"` defaults (`unclaimed_mode:\n  \"attested_only\"` + `trustAttestor()`). Pass `attestation: \"optional\"`\n  or `\"off\"` to opt out. Override `discovery`, `attestor`, etc. for\n  partial customizations; drop to `new Server({...})` for full control.\n- **`Server`** — five endpoint handlers (`handleDiscovery`,\n  `handleOwnerInvitation`, `handleClaimCompletion`,\n  `handleKeyRotation`, `handleAccountIntrospection`) plus\n  `revoke(did)` for §8.4 owner-initiated revocation.\n- **`Verifier`** — standalone request verifier (§5.5 + §5.6). Use\n  directly as an edge plugin (Appendix E) or as the front half of\n  `Server`. Accepts an optional `didResolver` — default is\n  `did:key`-only.\n- **`assertFreshOwnerSession(session, { maxAgeSeconds })`** —\n  §7.5 freshness floor for post-claim owner-binding routes\n  (revoke, rotate, change-credential, add-recovery-contact, ...).\n  Throws `owner_session_too_stale` (403) when the session's\n  `authenticatedAt` is missing or older than the window. Call this\n  from YOUR owner-binding routes; the SDK does not call it\n  automatically (it is NOT enforced by `handleClaimCompletion`).\n- **Rate limiter** (§11.3) — `RateLimiter`, `RateLimitConfig`,\n  `RateLimitDecision`, `MemoryRateLimiter`, `ServerRateLimits`.\n  Pass `rateLimiter` + `rateLimits` to `Server` to gate\n  per-route per-DID buckets; over-limit calls return `429\n  rate_limit_exceeded` with `Retry-After`.\n- **Attestation** (§10) — `Attestor`, `AttestationClaims`,\n  `HmacAttestor` (HS256 shared-secret), `JwksAttestor` (asymmetric\n  via JWKS URL), `MultiAttestor` (dispatch by `iss`). Pass\n  `attestor` to `Server`; §9.2 `attested_only` enforced\n  automatically on the implicit-signup path.\n- **Attested sessions** (§10.7) — `server.verifyAttested(req)` gates\n  your own authenticated routes on a currently-valid attestation,\n  refreshing the window when the agent re-presents one and challenging\n  with `401 attestation_required` when it lapses. Configure via\n  `attestedSession: { store, mode }` (needs an `attestor`);\n  `AttestedSessionGate` is the standalone primitive. Stores:\n  `AttestedFreshnessStore` + `MemoryAttestedFreshnessStore` here,\n  `KvAttestedFreshnessStore` in [`@afauthhq/worker`](../worker/).\n- **Per-principal uniqueness** (§10.4.4) — `SubHUniquenessStore` +\n  `MemorySubHUniquenessStore` enforce \"at most one account per human\":\n  a signup whose verified `(iss, sub_h)` already holds an account is\n  rejected with `409 principal_already_registered`. ON by default in\n  `defineService` `required` mode. Pass `subHUniqueness` a durable,\n  atomic store (`D1SubHUniquenessStore` in\n  [`@afauthhq/worker`](../worker/)) for production, or `false` to allow\n  agent fleets. The slot follows key rotations (§8.1/§8.2) and is\n  released on account expiry — pass the store to `sweepExpiredAccounts`\n  (`server.subHUniquenessStore` exposes the configured instance).\n- **Stores** — `NonceStore` + `MemoryNonceStore` (lazy GC on every\n  Nth insert), `AccountStore` + `MemoryAccountStore` (atomic\n  invitation supersession with O(1) reverse index),\n  `RevocationList` + `MemoryRevocationList`. Production-grade\n  durable stores ship in [`@afauthhq/worker`](../worker/)\n  (`D1AccountStore`, `D1SubHUniquenessStore`, `KvNonceStore`,\n  `KvRevocationList`, `KvAttestedFreshnessStore`, `KvRateLimiter`).\n- **Recipient handlers** — `RecipientHandler<R>` interface; ships\n  `consoleEmailHandler` for local development (logs the magic link\n  to `console.error`).\n\n## See also\n\n- [`AFAuthHQ/spec`](https://github.com/AFAuthHQ/spec) — protocol spec.\n- [`@afauthhq/worker`](../worker/) — Cloudflare Workers bindings that\n  route requests to this Server's handlers.\n- [`@afauthhq/agent` → `TrustClient`](../agent/) — the agent side of the\n  default path: how an agent links to a human at `trust.afauth.org` and\n  mints the `AFAuth-Attestation` JWT this Server's `attested_only`\n  default requires.\n","readmeFilename":"README.md"}