{"_id":"@aspect-evp/verifier","_rev":"2-5aba7e6c3083798804e7b6d266676eb5","name":"@aspect-evp/verifier","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.1":{"name":"@aspect-evp/verifier","version":"0.1.1","keywords":["evp","email-verification","verifier","sd-jwt","rp"],"author":"","license":"MIT","_id":"@aspect-evp/verifier@0.1.1","maintainers":[{"name":"seanluis47","email":"seanluis47@gmail.com"}],"homepage":"https://github.com/aspect-evp/evp-js#readme","bugs":{"url":"https://github.com/aspect-evp/evp-js/issues"},"dist":{"shasum":"b4f8db8e94ceae082131ba7debd14076f15a0877","tarball":"https://registry.npmjs.org/@aspect-evp/verifier/-/verifier-0.1.1.tgz","fileCount":19,"integrity":"sha512-MkcuJpx8I4Bv9vlr5GmixS3HNQjggoEEMZygjOQJc7fHnxIT6kGMGRnxXfemEXGXaek5Y/LCStXOzdSmLUvklQ==","signatures":[{"sig":"MEYCIQD/0aFuoRtfe8Nkd3f/Xr204pkFmnQcBIHHA4fniNqDiAIhAKWmRdjgbuBdTV4VeY3Zzml19Z411rYl6hpL4PJbl50m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aspect-evp%2fverifier@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42385},"main":"./dist/index.js","type":"module","_from":"file:aspect-evp-verifier-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"seanluis47","email":"seanluis47@gmail.com"},"_resolved":"/tmp/38d09a815f022a5115183cb2b19ca358/aspect-evp-verifier-0.1.1.tgz","_integrity":"sha512-MkcuJpx8I4Bv9vlr5GmixS3HNQjggoEEMZygjOQJc7fHnxIT6kGMGRnxXfemEXGXaek5Y/LCStXOzdSmLUvklQ==","repository":{"url":"git+https://github.com/aspect-evp/evp-js.git","type":"git","directory":"packages/verifier"},"_npmVersion":"10.8.2","description":"EVP token verification for web applications (Relying Parties)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"jose":"^6.1.3","@aspect-evp/core":"0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@aspect-evp/core":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/verifier_0.1.1_1765214993155_0.3996506221372933","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aspect-evp/verifier","version":"0.2.0","description":"EVP token verification for web applications (Relying Parties)","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"keywords":["evp","email-verification","verifier","sd-jwt","rp"],"author":"","license":"MIT","repository":{"type":"git","url":"git+https://github.com/aspect-evp/evp-js.git","directory":"packages/verifier"},"dependencies":{"jose":"^6.2.1","@aspect-evp/core":"0.2.0"},"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@aspect-evp/core":"^0.1.1 || ^0.2.0"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest"},"_id":"@aspect-evp/verifier@0.2.0","bugs":{"url":"https://github.com/aspect-evp/evp-js/issues"},"homepage":"https://github.com/aspect-evp/evp-js#readme","_integrity":"sha512-VFaWZtohjjtuWaHohoA5DFE4pGcjhCBq0Ln5D/JGz9P/xwuyHH5zJL6YMDtRQRqkLvzVkhR5k1bMs3V6NC+6Ag==","_resolved":"/tmp/4000684520fd42cf989dd9d67163d2ec/aspect-evp-verifier-0.2.0.tgz","_from":"file:aspect-evp-verifier-0.2.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-VFaWZtohjjtuWaHohoA5DFE4pGcjhCBq0Ln5D/JGz9P/xwuyHH5zJL6YMDtRQRqkLvzVkhR5k1bMs3V6NC+6Ag==","shasum":"4324f73bc15cc99276a0f0b9138d5e37404239e5","tarball":"https://registry.npmjs.org/@aspect-evp/verifier/-/verifier-0.2.0.tgz","fileCount":19,"unpackedSize":51082,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aspect-evp%2fverifier@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICFHqEifG0baH3JXNkOjq1Wv0JLCaDozGBSylutcOdafAiBimQD9e3O08lgvRcjj8HNrb5eNMUAZ8EBSyibnjiC69w=="}]},"_npmUser":{"name":"seanluis47","email":"seanluis47@gmail.com"},"directories":{},"maintainers":[{"name":"seanluis47","email":"seanluis47@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/verifier_0.2.0_1784000643549_0.054027028180948955"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-08T17:29:53.085Z","modified":"2026-07-14T03:44:04.012Z","0.1.1":"2025-12-08T17:29:53.305Z","0.2.0":"2026-07-14T03:44:03.682Z"},"bugs":{"url":"https://github.com/aspect-evp/evp-js/issues"},"license":"MIT","homepage":"https://github.com/aspect-evp/evp-js#readme","keywords":["evp","email-verification","verifier","sd-jwt","rp"],"repository":{"type":"git","url":"git+https://github.com/aspect-evp/evp-js.git","directory":"packages/verifier"},"description":"EVP token verification for web applications (Relying Parties)","maintainers":[{"name":"seanluis47","email":"seanluis47@gmail.com"}],"readme":"# @aspect-evp/verifier\n\n> EVP token verification for web applications (Relying Parties).\n\n[![npm version](https://img.shields.io/npm/v/@aspect-evp/verifier.svg)](https://www.npmjs.com/package/@aspect-evp/verifier)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Installation\n\n```bash\nnpm install @aspect-evp/verifier\n```\n\n## Usage\n\n```typescript\nimport { EmailVerificationVerifier, EVPError } from '@aspect-evp/verifier';\n\nconst verifier = new EmailVerificationVerifier({\n  rpOrigin: 'https://myapp.example.com'\n});\n\n// When the hidden email-verification-token form field is submitted\nasync function handleEmailVerification(sdJwtKb: string, sessionNonce: string) {\n  try {\n    const result = await verifier.verify(sdJwtKb, sessionNonce);\n\n    console.log('Verified email:', result.email);\n    console.log('Issuer:', result.issuer);\n    console.log('Issued at:', result.issuedAt);\n\n    // Proceed with user registration/login\n  } catch (error) {\n    if (error instanceof EVPError) {\n      console.log('Verification failed:', error.code);\n    }\n  }\n}\n```\n\n## Configuration\n\n```typescript\nconst verifier = new EmailVerificationVerifier({\n  // Required: your application's origin\n  rpOrigin: 'https://myapp.example.com',\n\n  // Optional: clock tolerance in seconds (default: 60)\n  clockTolerance: 120,\n\n  // Optional: custom DNS resolver\n  dnsResolver: customResolver,\n\n  // Optional: custom fetch for JWKS\n  fetch: customFetch,\n});\n```\n\n## DNS Resolvers\n\n```typescript\nimport {\n  EmailVerificationVerifier,\n  defaultDnsResolver,  // DNS-over-HTTPS (Cloudflare)\n  nodeDnsResolver      // Node.js dns/promises\n} from '@aspect-evp/verifier';\n\n// Use Node.js DNS (faster in server environments)\nconst verifier = new EmailVerificationVerifier({\n  rpOrigin: 'https://myapp.example.com',\n  dnsResolver: nodeDnsResolver,\n});\n```\n\n## Verification Result\n\n```typescript\ninterface VerificationResult {\n  email: string;      // Verified email address\n  email_verified: boolean; // Always true after successful verification\n  issuer: string;     // Issuer domain\n  issuedAt: Date;     // Token issuance time\n  isPrivateEmail?: boolean;\n}\n```\n\n## Documentation\n\nSee the [full documentation](https://github.com/aspect-evp/evp-js/blob/main/docs/verifier.md) for complete API reference.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}