{"_id":"@askrjs/auth","_rev":"12-60f708985be309a41b88e993c2d77c56","name":"@askrjs/auth","dist-tags":{"latest":"0.3.0"},"versions":{"0.0.1":{"name":"@askrjs/auth","version":"0.0.1","keywords":["askr","authentication","authorization","oidc"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.1","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"873e62e20e1c103e7502595af38e3743a49ff89e","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.1.tgz","fileCount":9,"integrity":"sha512-1T5S+VIfX0n1PFdCv/3X+mpJFNfikhg6F/73IpgXilUqH6/o3N2iv6LnZMDF4YARG+4B05zVc0NlwNK8skMMJQ==","signatures":[{"sig":"MEUCIF29OM2rQFD+PJCuE4t/JgDgP7uFMCez1iOIK0eAhhwVAiEAzsbij0UEOlsC0NcW9F6BLYxt2jwxub6QhQwvSFHYei0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31421},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./package.json":"./package.json"},"gitHead":"786c5b8a2d18a0d10a01c21c9eb2c5ebffec4561","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"npm pack --ignore-scripts --dry-run --json","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"smiggleworth","email":"jrepanich@gmail.com"},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.1_1784143241845_0.40771021675469776","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@askrjs/auth","version":"0.0.2","keywords":["askr","authentication","authorization","oidc"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.2","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"3621c7d1e1dd49b058ba039db47fdbd52e060e3e","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.2.tgz","fileCount":10,"integrity":"sha512-Air+kUS+TEXcWW46/EItPnKbTfNgeklf7C7HqyM+xrX8ZqLAbQ3wD5hFNoqiWY/Ansh3cdkFbJpIumCKgCre8w==","signatures":[{"sig":"MEUCIQDVOrzjN9jegpeVgL9frla5VRQGnOUtx70SgRZeSIRHYAIgAU8lH1hiwprIKqiNbz6KeCZO7NA2bPEWdGJtPdXRl/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34886},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./package.json":"./package.json"},"gitHead":"6523f1d2425705b26eb3249dad9166fe41a5fe93","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"npm pack --ignore-scripts --dry-run --json","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.2_1784316055589_0.2416809213235558","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@askrjs/auth","version":"0.0.3","keywords":["askr","authentication","authorization","oidc"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.3","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"36341b284af4f2363ae0494dbeafa508d4ea86bb","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.3.tgz","fileCount":10,"integrity":"sha512-61MkviEVgx4hVCWnMHFyJzvxdNkUzrA5yNryjcWwlv0RHsOJjUIQq31t35pEnvQJ3oIEtYr77W6uKNeGd+HdNQ==","signatures":[{"sig":"MEUCIQCir5lDQmCb2uJcvkoOBoW11N1nYww+uyGmMWERbErqUAIgf1z0R0SOky/LdFBteoWEJYMC4bWOYYerXEjBN7HmiPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34615},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./package.json":"./package.json"},"gitHead":"976765358acc026935cc708b08af51abd908e4d6","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.3_1784376722096_0.6974854306869898","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@askrjs/auth","version":"0.0.4","keywords":["askr","authentication","authorization","oidc"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.4","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"2174fa2971cdd97ccd16908d3ad6c525a9a9d72b","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.4.tgz","fileCount":11,"integrity":"sha512-OXjrbM99UJpRhOZI1efxh00LEe9BjQX6bS6WkcpkxD5vLMYTy2CcdzFU4yyvmJ+A0g4pFBi27pW122MaAdfFsg==","signatures":[{"sig":"MEUCIQDdxjO7HJGBDIKyc83BhlNJ7tTJ3AkA8AbX6To5E01xhQIgfPH1YjoLBhkU1OWyuyL72YKcBJJlb4+W6PN2wIb0zCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36813},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./package.json":"./package.json"},"gitHead":"4ed5ae0337bd0cde8eecafa2cb253655e630039a","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.4_1784637606004_0.6013437559758277","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@askrjs/auth","version":"0.0.5","keywords":["askr","authentication","authorization","oidc","saml","mfa","totp","webauthn"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.5","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"0b4088d5ffaaacc69a26b14c387da4b3a2307355","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.5.tgz","fileCount":17,"integrity":"sha512-TyHKsO6YuhEL5IBM5Hb9+Il1yxrsuzUW5UUuUCvv9j8iLUGL5oZsYfKxPoMXgtXk6cJAIRPpf0ZSmcENchATqg==","signatures":[{"sig":"MEQCIHx+Dm+HoPzNPVwqX9zNseuz5AQPUspSygHvXeUmwzfKAiBp47WiX4D22h0Wo7xRGoxESdE2sFr7VTDTWlsJ52o6fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88805},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./mfa":{"types":"./dist/mfa.d.ts","import":"./dist/mfa.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./saml":{"types":"./dist/saml.d.ts","import":"./dist/saml.js"},"./package.json":"./package.json"},"gitHead":"8dcb5b7327a1d5dc315ba85742f2e4cc45274874","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.18.0","dependencies":{"xml-crypto":"6.1.2","@xmldom/xmldom":"0.8.13","xml-encryption":"5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.0","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.5_1784640659266_0.5949751346232723","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@askrjs/auth","version":"0.0.6","keywords":["askr","authentication","authorization","oidc","saml","mfa","totp","webauthn"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.6","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"899f141512dc3ef6bf4cd5a6b89123c0f7a06b22","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.6.tgz","fileCount":19,"integrity":"sha512-TvzrDDPH/aYD3DU8TIkLNlZUAZ4QeOuO5Ui22WMzHmMtW6Zx+4hKbT2GjoiTWRpBjJd0ALiYBbXWuAYoKYQSEw==","signatures":[{"sig":"MEQCIEOyD3YQDvTMs4mA3MFil5JWe1SsLgPSamwLD7l2w149AiA26R9XTWF0iDX2bkoQt6hRaSalZ6v8KYwOsfdklj79Xg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96696},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./mfa":{"types":"./dist/mfa.d.ts","import":"./dist/mfa.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./saml":{"types":"./dist/saml.d.ts","import":"./dist/saml.js"},"./package.json":"./package.json","./webauthn-client":{"types":"./dist/webauthn-client.d.ts","import":"./dist/webauthn-client.js"}},"gitHead":"d23a73019ea7d72bcb05f1cd3ff80ff035f79154","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.18.0","dependencies":{"xml-crypto":"6.1.2","@xmldom/xmldom":"0.8.13","xml-encryption":"5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.0","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.6_1784752520199_0.2487892839490562","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@askrjs/auth","version":"0.0.7","keywords":["askr","authentication","authorization","oidc","saml","mfa","totp","webauthn"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.7","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"2bac293aeeeb17e086c1328e0214c7fa626c8f74","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.7.tgz","fileCount":19,"integrity":"sha512-K1jjS6aznxXUt+v6gcOrtvy48P36sjt1yyhjENvVxVi3v3FEo21dg/hNJZExy+vejekmSuFyb5RSP06zQ2hBcg==","signatures":[{"sig":"MEQCIFbm58HGC3PpYsvT0UKMsOzZzKaFniu0wFrdLpq/VxDfAiBw1xrBMXmiHkokmy0fib4lS1JWwMcJjklpIpMwuUgJhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98368},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./mfa":{"types":"./dist/mfa.d.ts","import":"./dist/mfa.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./saml":{"types":"./dist/saml.d.ts","import":"./dist/saml.js"},"./package.json":"./package.json","./webauthn-client":{"types":"./dist/webauthn-client.d.ts","import":"./dist/webauthn-client.js"}},"gitHead":"d0109be2d4d4b8ab4a40740ed0aace58c80f42c8","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.18.0","dependencies":{"xml-crypto":"6.1.2","@xmldom/xmldom":"0.8.13","xml-encryption":"5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.0","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.7_1784825329972_0.9599756096723917","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@askrjs/auth","version":"0.0.8","keywords":["askr","authentication","authorization","oidc","saml","mfa","totp","webauthn"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.8","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"db25ed600f57ce98316b25786781101b6ec3bef2","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.8.tgz","fileCount":19,"integrity":"sha512-0Lg2fvD21LIi1C8ZelC8tUZr6XBNW2DQil9HRuUqedc4TRNJqsqizH3nXB+sTyYLjbIj0lqZmdI2LBzmPsYMHA==","signatures":[{"sig":"MEQCIGTVQRhYb7vFR96mValtwi/CZIyNrrNBb4NI/4yYnx9lAiBP/CKi/ptU8t2WIUFeQeuSM+ioTqOQsjTww63waJu7UA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98406},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./mfa":{"types":"./dist/mfa.d.ts","import":"./dist/mfa.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./saml":{"types":"./dist/saml.d.ts","import":"./dist/saml.js"},"./package.json":"./package.json","./webauthn-client":{"types":"./dist/webauthn-client.d.ts","import":"./dist/webauthn-client.js"}},"gitHead":"18eea1ae34633f2f1d3fa60b8f2686d0d1382850","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.18.0","dependencies":{"xml-crypto":"6.1.2","@xmldom/xmldom":"0.8.13","xml-encryption":"5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.0.0","publint":"^0.3.21","vite-plus":"^0.2.4","typescript":"^6.0.0","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.8_1785866128466_0.3538616442629765","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@askrjs/auth","version":"0.0.9","keywords":["askr","authentication","authorization","mfa","oidc","saml","totp","webauthn"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.0.9","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"18b8e5cbe8357a428189fea4dc46aa55e9922ac8","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.0.9.tgz","fileCount":19,"integrity":"sha512-Akv4FCoakSa2WSowIMoxnaUrvnDBF84vmwgbThkWIgTUCgj+L846TGZ/7fR7657MCJAEveLjmqbTDq0WTfbKrg==","signatures":[{"sig":"MEUCIQD3XWEai+F1ntE99rc3rMXYnhPfyGQR19EaDF5DU+S/fQIgDZIQMtDBwQmV0CRh9nGC5JsPsAxUYA/0WWTvo6YXQSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99112},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./mfa":{"types":"./dist/mfa.d.ts","import":"./dist/mfa.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./saml":{"types":"./dist/saml.d.ts","import":"./dist/saml.js"},"./package.json":"./package.json","./webauthn-client":{"types":"./dist/webauthn-client.d.ts","import":"./dist/webauthn-client.js"}},"gitHead":"3d39f5a5c00e7016c9183a8da36aeeebcb8ef162","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.16.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.18.0","dependencies":{"xml-crypto":"6.1.2","@xmldom/xmldom":"0.9.10","xml-encryption":"5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.1.10","publint":"^0.3.23","vite-plus":"^0.2.8","typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.0.9_1786134473494_0.10350641767180968","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@askrjs/auth","version":"0.2.0","keywords":["askr","authentication","authorization","mfa","oidc","saml","totp","webauthn"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.2.0","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"6787e83adb3387517e94bed767e25b79c5d3e30d","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.2.0.tgz","fileCount":19,"integrity":"sha512-tuqG9lMUc6xNF/Q7yiqXET1rSzk7jEKDNRu30AyoQd/xn+yMzyjI/p+RSH+kRbrLS+5989vouVDknFAfs8UVsw==","signatures":[{"sig":"MEUCIQDXPrnYCcU5J+px4S6v6UzWoG/FwAuGyfmYaXV7hO9yUgIgMvzwiAQayMjvUJYyURTACMda+3jUdRd65s6fqSvjQ/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121213},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./mfa":{"types":"./dist/mfa.d.ts","import":"./dist/mfa.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./saml":{"types":"./dist/saml.d.ts","import":"./dist/saml.js"},"./package.json":"./package.json","./webauthn-client":{"types":"./dist/webauthn-client.d.ts","import":"./dist/webauthn-client.js"}},"gitHead":"7941d2d642f20885ceea19135a4a401a1e999b90","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.17.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.19.0","dependencies":{"xml-crypto":"6.1.2","@xmldom/xmldom":"0.9.10","xml-encryption":"5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.1.10","publint":"^0.3.23","vite-plus":"^0.2.8","typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.2.0_1786902268035_0.4996576132580455","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@askrjs/auth","version":"0.2.1","keywords":["askr","authentication","authorization","mfa","oidc","saml","totp","webauthn"],"author":{"url":"https://github.com/askrjs","name":"askrjs"},"license":"Apache-2.0","_id":"@askrjs/auth@0.2.1","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"dist":{"shasum":"8f2de116bab5d44f3f0c9f0b61c8fc3d5df52dd3","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.2.1.tgz","fileCount":19,"integrity":"sha512-kGFIqQi0KTe1sv2KCiLaiQpISWNpxfvZcmmqsB3nyRUim4sEKuNW1vUrWR6ItDqKmwsaWPycjPU7yQ2ha9lPZg==","signatures":[{"sig":"MEUCIFsL9SDczb4my1763J4r4jCOTM8/o7z/MnZUfY1DPAz6AiEAxy2/+ZstluZ3KfNKLagCqXzMqzOa3tqFPrVqpIaV+TM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125203},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./mfa":{"types":"./dist/mfa.d.ts","import":"./dist/mfa.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./saml":{"types":"./dist/saml.d.ts","import":"./dist/saml.js"},"./package.json":"./package.json","./webauthn-client":{"types":"./dist/webauthn-client.d.ts","import":"./dist/webauthn-client.js"}},"gitHead":"ee2ee217bbd30d638822c29017954ead1852a536","scripts":{"lint":"vp lint src tests && npm run typecheck","test":"vp test run -c vitest.config.ts","build":"vp pack","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","pack:check":"node tests/package-artifacts.js","test:publint":"publint","prepublishOnly":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"repository":{"url":"git+https://github.com/askrjs/askr-auth.git","type":"git"},"_npmVersion":"11.17.0","description":"Shared authentication contracts and request auth resolution for Askr","directories":{},"_nodeVersion":"24.19.0","dependencies":{"xml-crypto":"6.1.2","@xmldom/xmldom":"0.9.10","xml-encryption":"5.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.1","devDependencies":{"vitest":"^4.1.10","publint":"^0.3.23","vite-plus":"^0.2.8","typescript":"^7.0.2","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/auth_0.2.1_1787675659506_0.23720420111126872","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@askrjs/auth","version":"0.3.0","description":"Shared authentication contracts and request auth resolution for Askr","keywords":["askr","authentication","authorization","mfa","oidc","saml","totp","webauthn"],"homepage":"https://github.com/askrjs/askr-auth#readme","bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"license":"Apache-2.0","author":{"name":"askrjs","url":"https://github.com/askrjs"},"repository":{"type":"git","url":"git+https://github.com/askrjs/askr-auth.git"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./jwt":{"types":"./dist/jwt.d.ts","import":"./dist/jwt.js"},"./oidc":{"types":"./dist/oidc.d.ts","import":"./dist/oidc.js"},"./saml":{"types":"./dist/saml.d.ts","import":"./dist/saml.js"},"./mfa":{"types":"./dist/mfa.d.ts","import":"./dist/mfa.js"},"./webauthn-client":{"types":"./dist/webauthn-client.d.ts","import":"./dist/webauthn-client.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","lint":"vp lint src tests && npm run typecheck","typecheck":"tsc -p tsconfig.json --noEmit","test":"vp test run -c vitest.config.ts","test:publint":"publint","pack:check":"node tests/package-artifacts.js","check":"npm run lint && npm run typecheck && npm test && npm run build && npm run test:publint && npm run pack:check","prepack":"npm run build","prepublishOnly":"npm run check"},"dependencies":{"@xmldom/xmldom":"0.9.12","xml-crypto":"6.1.2","xml-encryption":"6.0.1"},"devDependencies":{"@types/node":"^26.3.0","publint":"^0.3.24","typescript":"^7.0.2","vite-plus":"^0.3.1","vitest":"^4.1.11"},"engines":{"node":">=24.0.0"},"packageManager":"npm@12.0.1","gitHead":"41f00131d6e41a189c47815c302209840d7f8592","_id":"@askrjs/auth@0.3.0","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-1w88+zlOvwY8n7fQrQtOPH5WYoSSQHQpPpInkwlOihMDCOIBlAAo913vv1Qs+kXOKCMQLtc3BqMoL2YzpxnQrw==","shasum":"181c9e4639171055a342ee987581f1e26e6e358d","tarball":"https://registry.npmjs.org/@askrjs/auth/-/auth-0.3.0.tgz","fileCount":19,"unpackedSize":124469,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@askrjs%2fauth@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDRJTHUJDjuQPzAsZni3YPPHpkb94C/F7lQmw+Kp3c5ewIhAOtLPVvEepP1gr/BdJEmkJTsdxeu1j1Rh2gewnZrYGX1"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c29a1d46-4a6d-43cb-a9d0-d16132d1b4b3"}},"directories":{},"maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/auth_0.3.0_1789160755564_0.5101956770116911"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-15T19:20:41.709Z","modified":"2026-09-11T21:05:56.069Z","0.0.1":"2026-07-15T19:20:42.005Z","0.0.2":"2026-07-17T19:20:55.727Z","0.0.3":"2026-07-18T12:12:02.248Z","0.0.4":"2026-07-21T12:40:06.136Z","0.0.5":"2026-07-21T13:30:59.397Z","0.0.6":"2026-07-22T20:35:20.350Z","0.0.7":"2026-07-23T16:48:50.121Z","0.0.8":"2026-08-04T17:55:28.603Z","0.0.9":"2026-08-07T20:27:53.642Z","0.2.0":"2026-08-16T17:44:28.176Z","0.2.1":"2026-08-25T16:34:19.654Z","0.3.0":"2026-09-11T21:05:55.728Z"},"bugs":{"url":"https://github.com/askrjs/askr-auth/issues"},"author":{"name":"askrjs","url":"https://github.com/askrjs"},"license":"Apache-2.0","homepage":"https://github.com/askrjs/askr-auth#readme","keywords":["askr","authentication","authorization","mfa","oidc","saml","totp","webauthn"],"repository":{"type":"git","url":"git+https://github.com/askrjs/askr-auth.git"},"description":"Shared authentication contracts and request auth resolution for Askr","maintainers":[{"name":"smiggleworth","email":"jrepanich@gmail.com"}],"readme":"# @askrjs/auth\n\n[![CI](https://github.com/askrjs/askr-auth/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/askrjs/askr-auth/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/%40askrjs%2Fauth.svg)](https://www.npmjs.com/package/@askrjs/auth)\n\nFramework-owned, domain-neutral authentication primitives for Askr. Requires Node.js 24 or newer.\n\n## Feature matrix\n\n| Entry               | Owns                                                                                                | Does not own                                                     |\n| ------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |\n| `@askrjs/auth`      | `Principal`, auth contexts and requirements, bearer/cookie/session request resolution               | Users, organizations, credential storage, password hashing       |\n| `@askrjs/auth/jwt`  | RS256/ES256 issuance and validation, claims, JWKS rollover                                          | Token persistence or revocation lists                            |\n| `@askrjs/auth/oidc` | Discovery, authorization-code PKCE, callback correlation, verified ID-token-to-`Principal` exchange | Provider UI, account linking, refresh-token storage              |\n| `@askrjs/auth/saml` | SP metadata and requests, signed/encrypted response validation, request correlation                 | IdP operation, SLO, IdP-initiated SAML, external CA trust policy |\n| `@askrjs/auth/mfa`  | TOTP, bounded CBOR/COSE, WebAuthn registration and authentication verification                      | Credential storage, recovery policy, enrollment UI               |\n\nReplay prevention stays with the application’s durable storage boundary. SAML requires atomic\n`requestStore.consume()`. TOTP returns the accepted counter so it can be atomically marked used.\nWebAuthn returns the verified new signature counter so it can be atomically persisted.\n\n## Request authentication\n\n`createAuth()` resolves Bearer JWTs, JWT cookies, and opaque session cookies into one auth context.\nInvalid, expired, or malformed JWTs are treated consistently as unauthenticated and resolution\ncontinues to the next configured credential source. Operational failures from tenant, principal,\nor session stores still reject `resolve()` so callers can handle unavailable dependencies.\n\n## OIDC\n\n`exchangeCode()` accepts the callback and the stored authorization request separately. It checks\nstate before network access, then validates the required ID token against discovery and JWKS before\nreturning `{ tokens, principal }`.\n\n```ts\nimport { createOidcClient } from \"@askrjs/auth/oidc\";\n\nconst client = createOidcClient({ issuer, clientId, clientSecret, redirectUri });\nconst request = await client.createAuthorizationRequest();\nconst result = await client.exchangeCode({ code: callback.code, state: callback.state, request });\n```\n\n## MFA\n\n```ts\nimport { generateTotpSecret, verifyTotpCode } from \"@askrjs/auth/mfa\";\n\nconst secret = generateTotpSecret();\nconst result = await verifyTotpCode({ secret, code });\nif (result.valid) await counters.consume(result.counter); // application-owned atomic replay guard\n```\n\nTOTP defaults to SHA-1, six digits, 30-second periods, and a one-step window. SHA-256, SHA-512,\nand eight-digit codes are supported. WebAuthn uses exact base64url challenges, exact origin\nallowlists, one RP ID, and user verification by default. It accepts ES256, RS256 (RSA 2048-bit or\nlarger), and EdDSA/Ed25519 keys. Registration accepts `none` and cryptographically verified packed\nself-attestation only; certificate-backed attestation is deliberately rejected. Verification also\napplies explicit byte limits to client data, credential IDs, challenges, attestation objects,\nauthenticator data, and signatures before parsing or cryptographic work.\n\n## SAML\n\nThe server-only `@askrjs/auth/saml` entrypoint provides a narrow SP-initiated SAML 2.0 flow:\nmetadata generation, signed or unsigned HTTP-Redirect AuthnRequests, signed assertion validation,\noptional signed responses, encrypted assertions, request correlation, and atomic replay protection.\nIt is intentionally separate from `createAuth()` and the package root.\n\n```ts\nimport { createSamlServiceProvider } from \"@askrjs/auth/saml\";\n\nconst saml = createSamlServiceProvider({\n  entityId: \"https://app.example.com/saml/metadata\",\n  acsUrl: \"https://app.example.com/saml/acs\",\n  idp: {\n    entityId: \"https://idp.example.com\",\n    ssoUrl: \"https://idp.example.com/sso\",\n    certificates: [idpCertificate],\n  },\n  requestStore, // save/get plus an atomic consume operation\n});\n\nconst { url } = await saml.createAuthnRequest({ relayState: \"return-to\" });\nconst principal = await saml.validateResponse({ samlResponse, relayState: \"return-to\" });\n```\n\nThe request store is a security boundary: `consume(id)` must atomically return `false` for a\nmissing, expired, or previously consumed ID. The validator defaults to a 10-minute request TTL,\na five-minute assertion age, and 60 seconds of clock skew. Assertions are always signed;\n`requireSignedResponse` additionally requires the outer response signature.\n\nJWT issuance and validation support RS256 with RSA keys and ES256 with EC P-256 keys. A JWK's\n`alg` may be omitted and inferred from its key shape; when present, it must match the key.\n\n## Install\n\n```sh\nnpm install @askrjs/auth\n```\n","readmeFilename":"README.md"}