{"_id":"@digitalbazaar/truage-credential-verifier","_rev":"4-667fac72d64a91d30375714e285d3bec","name":"@digitalbazaar/truage-credential-verifier","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@digitalbazaar/truage-credential-verifier","version":"1.0.0","license":"BSD-3-Clause","_id":"@digitalbazaar/truage-credential-verifier@1.0.0","maintainers":[{"name":"dlongley","email":"dlongley@digitalbazaar.com"},{"name":"msporny","email":"msporny@digitalbazaar.com"},{"name":"davidlehn","email":"dil@lehn.org"},{"name":"mattcollier","email":"mcollier@digitalbazaar.com"},{"name":"gannan","email":"gannan@digitalbazaar.com"}],"homepage":"https://github.com/digitalbazaar/truage-credential-verifier","bugs":{"url":"https://github.com/digitalbazaar/truage-credential-verifier/issues"},"c8":{"reporter":["lcov","text-summary","text"]},"dist":{"shasum":"c7571312a92af8144a962c5851fb05bb3bf177c3","tarball":"https://registry.npmjs.org/@digitalbazaar/truage-credential-verifier/-/truage-credential-verifier-1.0.0.tgz","fileCount":8,"integrity":"sha512-IlxGoO4YRuHbXt21d/pAJQSAUGJBlVexhDzZARfO28hP1JeMZMczY3seGMSccFURbmKbS0rvp8luDwcCAGDAPw==","signatures":[{"sig":"MEQCICyt7GuycTc04Z+pleoQPp7j+thR/tK5s68UJc2fmM12AiApzvhJ8oglmmv9AkGi+OqiS986j091g538wYwCz8iu8g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18644},"type":"module","engines":{"node":">=20"},"exports":"./lib/index.js","gitHead":"070c3c6eff4916ecc828c8a7603e73b8aa77870e","scripts":{"lint":"eslint .","test":"npm run test-node","coverage":"cross-env NODE_ENV=test c8 npm run test-node","test-node":"cross-env NODE_ENV=test mocha --preserve-symlinks -t 30000 -A -R ${REPORTER:-spec} --require test/test-mocha.js test/*.spec.js","test-karma":"karma start karma.conf.cjs","coverage-ci":"cross-env NODE_ENV=test c8 --reporter=lcovonly --reporter=text-summary --reporter=text npm run test-node","coverage-report":"c8 report"},"_npmUser":{"name":"dlongley","email":"dlongley@digitalbazaar.com"},"repository":{"url":"git+https://github.com/digitalbazaar/truage-credential-verifier.git","type":"git"},"_npmVersion":"10.5.0","description":"A verifier for TruAge Verifiable Credentials.","directories":{},"_nodeVersion":"20.12.1","dependencies":{"cit-context":"^2.0.0","base32-decode":"^1.0.0","base32-encode":"^2.0.0","base58-universal":"^2.0.0","@digitalbazaar/vc":"^6.2.0","credentials-context":"^2.0.0","@digitalbazaar/cborld":"^6.0.3","jsonld-document-loader":"^2.0.0","@digitalbazaar/did-method-key":"^5.2.0","ed25519-signature-2020-context":"^1.1.0","x25519-key-agreement-2020-context":"^1.0.0","@digitalbazaar/ed25519-signature-2020":"^5.2.0","@digitalbazaar/age-verification-context":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","chai":"^4.4.1","karma":"^6.3.20","mocha":"^10.0.0","eslint":"^8.57.0","webpack":"^5.73.0","cross-env":"^7.0.3","karma-chai":"^0.1.0","karma-mocha":"^2.0.1","karma-webpack":"^5.0.0","eslint-plugin-jsdoc":"^48.2.3","mocha-lcov-reporter":"^1.3.0","karma-mocha-reporter":"^2.2.5","eslint-plugin-unicorn":"^52.0.0","karma-chrome-launcher":"^3.1.1","karma-sourcemap-loader":"^0.4.0","eslint-config-digitalbazaar":"^5.2.0","@digitalbazaar/ed25519-verification-key-2020":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/truage-credential-verifier_1.0.0_1715234243034_0.08074891182421551","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@digitalbazaar/truage-credential-verifier","version":"1.1.0","license":"BSD-3-Clause","_id":"@digitalbazaar/truage-credential-verifier@1.1.0","maintainers":[{"name":"dlongley","email":"dlongley@digitalbazaar.com"},{"name":"msporny","email":"msporny@digitalbazaar.com"},{"name":"davidlehn","email":"dil@lehn.org"},{"name":"mattcollier","email":"mcollier@digitalbazaar.com"},{"name":"gannan","email":"gannan@digitalbazaar.com"}],"homepage":"https://github.com/digitalbazaar/truage-credential-verifier","bugs":{"url":"https://github.com/digitalbazaar/truage-credential-verifier/issues"},"c8":{"reporter":["lcov","text-summary","text"]},"dist":{"shasum":"515655e2de9363ebdce3d5f87ef9fd435becd655","tarball":"https://registry.npmjs.org/@digitalbazaar/truage-credential-verifier/-/truage-credential-verifier-1.1.0.tgz","fileCount":8,"integrity":"sha512-T/k95nuxCJcQ1nltwzF8Bnle5PpeZ+utM1Mzj3inh9wVXamoxSzvGDbl/x6O5Elh4LzyOLBApg/EfXKoKwvWqA==","signatures":[{"sig":"MEUCIQC4Rckq2dD09OkQv/ARkvXhujaIMFxMfuQybp3DPVPrXwIgBlMYxIR0E+rs/0pk9UjSlcN9wpEcecMhob5lELw30Ug=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18644},"type":"module","engines":{"node":">=20"},"exports":"./lib/index.js","gitHead":"56bdfc89d6ee4e9147dd5c7af4bfd227f3449b7d","scripts":{"lint":"eslint .","test":"npm run test-node","coverage":"cross-env NODE_ENV=test c8 npm run test-node","test-node":"cross-env NODE_ENV=test mocha --preserve-symlinks -t 30000 -A -R ${REPORTER:-spec} --require test/test-mocha.js test/*.spec.js","test-karma":"karma start karma.conf.cjs","coverage-ci":"cross-env NODE_ENV=test c8 --reporter=lcovonly --reporter=text-summary --reporter=text npm run test-node","coverage-report":"c8 report"},"_npmUser":{"name":"dlongley","email":"dlongley@digitalbazaar.com"},"repository":{"url":"git+https://github.com/digitalbazaar/truage-credential-verifier.git","type":"git"},"_npmVersion":"10.5.0","description":"A verifier for TruAge Verifiable Credentials.","directories":{},"_nodeVersion":"20.12.1","dependencies":{"cit-context":"^2.0.0","base32-decode":"^1.0.0","base32-encode":"^2.0.0","base58-universal":"^2.0.0","@digitalbazaar/vc":"^7.0.0","credentials-context":"^2.0.0","@digitalbazaar/cborld":"^7.1.2","jsonld-document-loader":"^2.0.0","@digitalbazaar/did-method-key":"^5.2.0","ed25519-signature-2020-context":"^1.1.0","x25519-key-agreement-2020-context":"^1.0.0","@digitalbazaar/ed25519-signature-2020":"^5.2.0","@digitalbazaar/age-verification-context":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^9.1.0","chai":"^4.4.1","karma":"^6.3.20","mocha":"^10.0.0","eslint":"^8.57.0","webpack":"^5.73.0","cross-env":"^7.0.3","karma-chai":"^0.1.0","karma-mocha":"^2.0.1","karma-webpack":"^5.0.0","eslint-plugin-jsdoc":"^50.2.2","mocha-lcov-reporter":"^1.3.0","karma-mocha-reporter":"^2.2.5","eslint-plugin-unicorn":"^55.0.0","karma-chrome-launcher":"^3.1.1","karma-sourcemap-loader":"^0.4.0","eslint-config-digitalbazaar":"^5.2.0","@digitalbazaar/ed25519-verification-key-2020":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/truage-credential-verifier_1.1.0_1724438056086_0.33899347885717845","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@digitalbazaar/truage-credential-verifier","version":"1.2.0","description":"A verifier for TruAge Verifiable Credentials.","homepage":"https://github.com/digitalbazaar/truage-credential-verifier","repository":{"type":"git","url":"git+https://github.com/digitalbazaar/truage-credential-verifier.git"},"license":"BSD-3-Clause","type":"module","exports":"./lib/index.js","dependencies":{"@digitalbazaar/age-verification-context":"^2.0.0","@digitalbazaar/cborld":"^8.0.2","@digitalbazaar/did-method-key":"^5.2.0","@digitalbazaar/ed25519-signature-2020":"^5.2.0","@digitalbazaar/vc":"^7.0.0","base32-decode":"^1.0.0","base32-encode":"^2.0.0","base58-universal":"^2.0.0","cit-context":"^2.0.0","credentials-context":"^2.0.0","ed25519-signature-2020-context":"^1.1.0","jsonld-document-loader":"^2.0.0","x25519-key-agreement-2020-context":"^1.0.0"},"devDependencies":{"@digitalbazaar/ed25519-verification-key-2020":"^4.1.0","c8":"^9.1.0","chai":"^4.4.1","cross-env":"^7.0.3","eslint":"^8.57.0","eslint-config-digitalbazaar":"^5.2.0","eslint-plugin-jsdoc":"^50.2.2","eslint-plugin-unicorn":"^55.0.0","karma":"^6.3.20","karma-chai":"^0.1.0","karma-chrome-launcher":"^3.1.1","karma-mocha":"^2.0.1","karma-mocha-reporter":"^2.2.5","karma-sourcemap-loader":"^0.4.0","karma-webpack":"^5.0.0","mocha":"^10.0.0","mocha-lcov-reporter":"^1.3.0","webpack":"^5.73.0"},"engines":{"node":">=20"},"scripts":{"test":"npm run test-node","test-karma":"karma start karma.conf.cjs","test-node":"cross-env NODE_ENV=test mocha --preserve-symlinks -t 30000 -A -R ${REPORTER:-spec} --require test/test-mocha.js test/*.spec.js","coverage":"cross-env NODE_ENV=test c8 npm run test-node","coverage-ci":"cross-env NODE_ENV=test c8 --reporter=lcovonly --reporter=text-summary --reporter=text npm run test-node","coverage-report":"c8 report","lint":"eslint ."},"c8":{"reporter":["lcov","text-summary","text"]},"_id":"@digitalbazaar/truage-credential-verifier@1.2.0","gitHead":"a05f8f9ef799931ffc13e2e9eb2d221c9ebfa56d","bugs":{"url":"https://github.com/digitalbazaar/truage-credential-verifier/issues"},"_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-jCZQU0TfVneReYPiylB7l1Dyoy1tHHdbn2IhQMHDqbVg8hNjxs0TBZMQu6xTi1PWy1diUxmV+8dp10pLhCZIpQ==","shasum":"780342de4845111f171cba191784d8eb82b3bf91","tarball":"https://registry.npmjs.org/@digitalbazaar/truage-credential-verifier/-/truage-credential-verifier-1.2.0.tgz","fileCount":8,"unpackedSize":18678,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCuMT3UbDxGMqs65zwHe7YzaMjQp++OQ0Zs9reyh6DSnQIhAMYaMcURimOXGhRPAfaAqX/jG7wDNefJ07Zhgcrls3va"}]},"_npmUser":{"name":"dlongley","email":"dlongley@digitalbazaar.com"},"directories":{},"maintainers":[{"name":"dlongley","email":"dlongley@digitalbazaar.com"},{"name":"msporny","email":"msporny@digitalbazaar.com"},{"name":"davidlehn","email":"dil@lehn.org"},{"name":"gannan","email":"gannan@digitalbazaar.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/truage-credential-verifier_1.2.0_1757617325035_0.9687188807799905"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-09T05:57:22.955Z","modified":"2025-09-11T19:02:05.485Z","1.0.0":"2024-05-09T05:57:23.177Z","1.1.0":"2024-08-23T18:34:16.257Z","1.2.0":"2025-09-11T19:02:05.235Z"},"bugs":{"url":"https://github.com/digitalbazaar/truage-credential-verifier/issues"},"license":"BSD-3-Clause","homepage":"https://github.com/digitalbazaar/truage-credential-verifier","repository":{"type":"git","url":"git+https://github.com/digitalbazaar/truage-credential-verifier.git"},"description":"A verifier for TruAge Verifiable Credentials.","maintainers":[{"name":"dlongley","email":"dlongley@digitalbazaar.com"},{"name":"msporny","email":"msporny@digitalbazaar.com"},{"name":"davidlehn","email":"dil@lehn.org"},{"name":"gannan","email":"gannan@digitalbazaar.com"}],"readme":"# TruAge Credential Verifier _(@digitalbazaar/truage-credential-verifier)_\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/digitalbazaar/truage-credential-verifier/main.yml)](https://github.com/digitalbazaar/truage-credential-verifier/actions/workflows/main.yml)\n[![Coverage Status](https://img.shields.io/codecov/c/github/digitalbazaar/truage-credential-verifier)](https://codecov.io/gh/digitalbazaar/truage-credential-verifier)\n[![NPM Version](https://img.shields.io/npm/v/@digitalbazaar/truage-credential-verifier.svg)](https://npm.im/@digitalbazaar/truage-credential-verifier)\n\n> TruAge Verifiable Credential Verifier.\n\n## Table of Contents\n\n- [Background](#background)\n- [Security](#security)\n- [Install](#install)\n- [Usage](#usage)\n- [Contribute](#contribute)\n- [Commercial Support](#commercial-support)\n- [License](#license)\n\n## Background\n\nTBD\n\n## Security\n\nTBD\n\n## Install\n\n- Browsers and Node.js 20+ are supported.\n\nTo install from NPM:\n\n```\nnpm install @digitalbazaar/truage-credential-verifier\n```\n\nTo install locally (for development):\n\n```\ngit clone https://github.com/digitalbazaar/truage-credential-verifier.git\ncd truage-credential-verifier\nnpm install\n```\n\n## Usage\n\nTo verify a TruAge token, which is a CBOR-LD-encoded Verifiable Credential of type `OverAgeTokenCredential` using the (using the `https://w3id.org/age/v1`\nJSON-LD context):\n\n```javascript\nimport {verifyQrCodeText} from '@digitalbazaar/truage-credential-verifier';\n\nconst qrCodeText = 'VP1-B3ECQDIYACEMHIGDODB6KQAMDCELBIGDQQIBVAADIXHBIQX2PFCEVATORHCCS2LYYOKSRQ5AYSYMLMGTEEHEVWGF6DDCBRQCYIF5DCQDI3YNUWHN53SMBYY75SQPJQUBD73YL5OH3DDLALMINCE55XRFBEUS2SCJY52BAXJE3TKYA6I6SSVHDX4CF4LWYVZFDXPMQ536WBAMMFAYZAQAVQIXNAFIOG5RWAVVT5UYU32LAGAUXMSXZUJL3GLMGCMPGWKFOWUNW44G66WBC5UAVBY3WGYCWWPWTCTPJMAYCS5SK7GRFPMZNQYJR42ZIV22RW3TQ33YYOWBBQ3AYQIMJ5IQYRJMFO6WZAUA2IAAVDBVBQZAYNRFHVWIFAGRAAFQYPQKRQ3SYHN5AAAKG3JGL6G7AC3LL7YEC7KLUV7BHOTPEOYX6P53HWMLQH42P4XYY6YY3U53CG7OG7XUBKMZU6B7DTQ2GNJKDME26GUGADCKBKGFCDJSV4LGSDCSBUZBBZFNRRKECDECACWBC5UAVBY3WGYCWWPWTCTPJMAYCS5SK7GRFPMZNQYJR42ZIV22RW3TQ33Y';\n\nconst result = await verifyQrCodeText({qrCodeText});\n\nconsole.log('result', result);\n\n// result is an object with these properties:\n// verified: boolean\n//   true - The VC was parsed and the signature passed, but check `issuer`!\n//   false - Something failed, see 'error' field for more details\n// error: object, only present if verification failed\n//   message - A description of the error\n//   errors - An optional array of additional error objects\n// credential: object, the VC that was parsed and verified, if verified is true\n// issuer: string, the ID of the issuer that MUST be checked against the allow\n//   list from TruAge before using the VC\n// overAge: integer, the parsed over age value, e.g., 21\n// verificationDetails: object, developer verification debugging details\n```\n\n## Contribute\n\nSee [the contribute file](https://github.com/digitalbazaar/bedrock/blob/master/CONTRIBUTING.md)!\n\nPRs accepted.\n\nIf editing the Readme, please conform to the\n[standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## Commercial Support\n\nCommercial support for this library is available upon request from\nDigital Bazaar: support@digitalbazaar.com\n\n## License\n\n[New BSD License (3-clause)](LICENSE) © 2024 Digital Bazaar\n","readmeFilename":"README.md"}