{"_id":"@altipla/jwt","_rev":"3-4846c2e2d6588e07d7077838124ed2e2","name":"@altipla/jwt","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@altipla/jwt","version":"0.1.0","type":"module","description":"Secure and reusable JWT validation for Node.","scripts":{"lib":"tsc --declaration --esModuleInterop --outDir dist","lint":"tsc --noEmit && eslint --ext .ts src","fix":"eslint --fix --ext .ts src","test":"vitest run","watch":"vitest watch"},"repository":{"type":"git","url":"git+https://github.com/altipla-consulting/jwt.git"},"author":{"name":"Altipla Consulting"},"license":"MIT","bugs":{"url":"https://github.com/altipla-consulting/jwt/issues"},"homepage":"https://github.com/altipla-consulting/jwt#readme","publishConfig":{"access":"public"},"main":"dist/index.js","devDependencies":{"@altipla/eslint-config-ts":"^0.6.0","@types/jsonwebtoken":"^9.0.1","typescript":"^5.0.3","vitest":"^0.29.8"},"dependencies":{"jsonwebtoken":"^9.0.0","jwks-rsa":"^3.0.1"},"types":"./dist/index.d.ts","gitHead":"abb214182ecc8ffe57ced280b601dea6539ff338","_id":"@altipla/jwt@0.1.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-iByVaS9x+XgE5U4NDJ/tvdyyRIDIVAALM/5007i3UVqwYdorYccy6jPhMv1MX8+GY0997p+aYZT/vH55wxiJTQ==","shasum":"b1b0ee04c0f8ba644c6a1ed14a4fa9cde9c29d9c","tarball":"https://registry.npmjs.org/@altipla/jwt/-/jwt-0.1.0.tgz","fileCount":7,"unpackedSize":6476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7q8MTAsis/VUy/4G53ROzwIr3/OFq2aPdZO7qmDLVQgIgcPM5sbeVvbHfB92dDQCrPeGxuUokwftuvgOpX+UYiZ4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLYsNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp8oQ//W5ophXxMIDELA/s//HmcybQRkD+R6WL6IqH3R1NJH7gYWt5K\r\n+ueOBfGgPw4bHCmRdXxAcM/0QHC9BWRQ1zUOU9HsFrGXP6Z1g63puN/VIvaV\r\nc2k/eXOIgI4KSQhPIHxmbjVRCzMmEhmPQf5zrb0xBEaJEQEQpvsN8TE4kJuQ\r\n7XAPLM9FwnzdI30pMrGBF7Epvm8xlOdYeOvxQn99EU1GCvFKsj4xLIs6hrvJ\r\nTO0pglQKHqvGxvopI0/fg05NkwJvp+VkaghFSPuNJO/NJJfJX36hJGmc52Zd\r\ndjjudhdCFfTUJo81iddRix7G99ckCoJZFspj+wcUZwAeGZNfHNr8pX40soGb\r\nGokqbwTnZ2w42NzvBJNAFg1JHU4eOHZc6LcTX4C9cszGEbONn6NLt9+vB+iv\r\nFBd4udenIRKe3VEKKZofh24wifpVWhFAxh3TwokugI1Sb9BrUL6nyKRXSkxP\r\nujZhP24wqHp2wPI6pnrPtcwt5V4GnmtuPUaqh+rfpSkXAEUPAo0ssQ5SIz3h\r\n1HRkmek9ttBkUTFfFRE8NnGP5ap8c9LTE6dzWZOrGTgzb8zWuDZZ7stEpiL0\r\nFQkQE7qpL+8uLf/ANyzeLglScArBVAddMaaiZDqKp5eciJLladc8eL/7c18C\r\nsc2V58tIUgGvIQRVNsx51OAY8FbspUg5SsY=\r\n=7gj+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ernestoalejo","email":"contact@ernestoalejo.me"},"directories":{},"maintainers":[{"name":"ernestoalejo","email":"contact@ernestoalejo.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jwt_0.1.0_1680706317532_0.2694792552931373"},"_hasShrinkwrap":false},"0.1.1":{"name":"@altipla/jwt","version":"0.1.1","type":"module","description":"Secure and reusable JWT validation for Node.","scripts":{"lib":"tsc --declaration --esModuleInterop --outDir dist","lint":"tsc --noEmit && eslint --ext .ts src","fix":"eslint --fix --ext .ts src","test":"vitest run","watch":"vitest watch"},"repository":{"type":"git","url":"git+https://github.com/altipla-consulting/jwt.git"},"author":{"name":"Altipla Consulting"},"license":"MIT","bugs":{"url":"https://github.com/altipla-consulting/jwt/issues"},"homepage":"https://github.com/altipla-consulting/jwt#readme","publishConfig":{"access":"public"},"main":"dist/index.js","devDependencies":{"@altipla/eslint-config-ts":"^0.6.0","@types/jsonwebtoken":"^9.0.1","typescript":"^5.0.3","vitest":"^0.29.8"},"dependencies":{"jsonwebtoken":"^9.0.0","jwks-rsa":"^3.0.1"},"types":"./dist/index.d.ts","gitHead":"4dc745ab37ed4d6a70d2769be84513bcbcfdeb6d","_id":"@altipla/jwt@0.1.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-nrZ+qcp3tGxIB1IPgiGkgEKZCuyU4b23qHn/l5ZF0R+4lkXLdkivEw3HMTD0W0O/bAvJqSG2DCjW+jhJbW4E4g==","shasum":"454ddb369ef89b5281d5cf2e62f9ac0fb9535f0e","tarball":"https://registry.npmjs.org/@altipla/jwt/-/jwt-0.1.1.tgz","fileCount":7,"unpackedSize":6438,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRsQj73+By38GwHb5W20Od/V9+Nmzw+2ruBFJ+ABuCwQIgHTsQIB+c4LKAFw3fhHS8ca4qNDcEyOl/b7n2H4lpbKQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkM8FUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6bQ/9Fyta/jjMljD2iDYJb6xCsosKwAbdocFlOgTO8gSZZoMh0/8Y\r\n6E/EKF8BJMQ9gTb7+76s1/6U3oLNmXEsjajN6468HA/YmbF8cqq7cSEQGyO7\r\n6Zi2GtswPn8Una9Jops1ukiWSFCz6kMRqyzTn4HpjTvnZ5ZqolAHAtMaTeMS\r\nXJ3WmPlYa0h6xd1C5gHjCtcnqdOOAgsAtXzqvc5vfwA+IG9xbGo+8qXlQPt2\r\ndcD2Yy3OdGIRBIt8rKjWNv75wsLSxPw8Wm6djI7Wn1HipvCXpp3Opy2VpqNU\r\n0Q1w4tp8DdAMzsPCBGOBZhR8ifML22f4JPR2Yi+qF5A2ASdYEow3YGtYclz4\r\n/DorgLxJ2KAdCKIS0v5QBQ3ThaJx/H1HZsGSgaHd2qSp96s8xUfBo6XDECw+\r\nHruGTyJ+ZL5+ieSzFH3HuMry34/IpqaZ4w6OaKLDUvlhQrkeDbIE1UldvPRZ\r\nQvPWuUDO9yA58twMsICehokJqwbvabQmAyL22/NVE9gt4FWy00+5XjVbsfNM\r\nXGrlOgVFp+DYVtL58+V5A67UfUL7jOK1O1TmPEUqN1rcvZ6w3VuvYQWV3YDs\r\nVzspxqr/5Zg96khS8XUT/xW+3r/8UMszLSxzSQ4Q1eDojAM7TfuGERXsSI2y\r\n7u1fJvPqoiX9sj9zrj5cbj2dZYHTy1DuSms=\r\n=RGZK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ernestoalejo","email":"contact@ernestoalejo.me"},"directories":{},"maintainers":[{"name":"ernestoalejo","email":"contact@ernestoalejo.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jwt_0.1.1_1681113428774_0.726406516927844"},"_hasShrinkwrap":false},"0.2.0":{"name":"@altipla/jwt","version":"0.2.0","type":"module","description":"Secure and reusable JWT validation for Node.","scripts":{"lib":"tsc --declaration --esModuleInterop --outDir dist","lint":"tsc --noEmit && eslint --ext .ts src","fix":"eslint --fix --ext .ts src","test":"vitest run","watch":"vitest watch"},"repository":{"type":"git","url":"git+https://github.com/altipla-consulting/jwt.git"},"author":{"name":"Altipla Consulting"},"license":"MIT","bugs":{"url":"https://github.com/altipla-consulting/jwt/issues"},"homepage":"https://github.com/altipla-consulting/jwt#readme","publishConfig":{"access":"public"},"main":"dist/index.js","devDependencies":{"@altipla/eslint-config-ts":"^0.6.0","@types/jsonwebtoken":"^9.0.1","typescript":"^5.0.3","vitest":"^0.29.8"},"dependencies":{"jsonwebtoken":"^9.0.0","jwks-rsa":"^3.0.1"},"types":"./dist/index.d.ts","gitHead":"2fe35565e25475b417c3820327131590b10052ef","_id":"@altipla/jwt@0.2.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-rh3B0pvRi/wP74//3VC6qkRbG1vVyAz/dM0g9mzyKj+LJuOIfn4F+bKOLLhSPDeMa47GMLB+JtlnG0Ijs3NG2A==","shasum":"856de4570ec42abb28e39a7c7babc920717bcf2f","tarball":"https://registry.npmjs.org/@altipla/jwt/-/jwt-0.2.0.tgz","fileCount":7,"unpackedSize":9112,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCHz1h2T2ZhT21upq/7o4pksSBGAccDleWJeyNzhQ2PWACIQDglbJv3C2nmsZbFPH/vNRKEjn9b8naoFGIGh1QGsNKew=="}]},"_npmUser":{"name":"ernestoalejo","email":"contact@ernestoalejo.me"},"directories":{},"maintainers":[{"name":"ernestoalejo","email":"contact@ernestoalejo.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jwt_0.2.0_1702393962403_0.18714390815436643"},"_hasShrinkwrap":false},"0.2.1":{"name":"@altipla/jwt","version":"0.2.1","type":"module","description":"Secure and reusable JWT validation for Node.","scripts":{"lib":"tsc --declaration --esModuleInterop --outDir dist","lint":"tsc --noEmit && eslint --ext .ts src","fix":"eslint --fix --ext .ts src","test":"vitest run","watch":"vitest watch"},"repository":{"type":"git","url":"git+https://github.com/altipla-consulting/jwt.git"},"author":{"name":"Altipla Consulting"},"license":"MIT","bugs":{"url":"https://github.com/altipla-consulting/jwt/issues"},"homepage":"https://github.com/altipla-consulting/jwt#readme","publishConfig":{"access":"public"},"main":"dist/index.js","devDependencies":{"@altipla/eslint-config-ts":"^0.6.0","@types/jsonwebtoken":"^9.0.1","typescript":"^5.0.3","vitest":"^0.29.8"},"dependencies":{"jsonwebtoken":"^9.0.0","jwks-rsa":"^3.0.1"},"types":"./dist/index.d.ts","gitHead":"f73b0bbdad2248b0782eae0d998ba37f8bc25205","_id":"@altipla/jwt@0.2.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-jbPhfNKyfR+B2ibTbsV0812ZL0JO1+qvFB507itRUNaBOdbygRWamzsfH13FN+EF7dfPLZ4M+9nKmn63kOHQYg==","shasum":"a6883ce57beee61a022c603c6680e2859242c6f0","tarball":"https://registry.npmjs.org/@altipla/jwt/-/jwt-0.2.1.tgz","fileCount":7,"unpackedSize":9982,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyVFo/bTFz/uRVhsO9WdIPbM2kL74XPlD1B9cF/5N6lgIgBg4nJduaVJO59gWuaPThP4kyndkHe/MszI2oeDwjcBQ="}]},"_npmUser":{"name":"ernestoalejo","email":"contact@ernestoalejo.me"},"directories":{},"maintainers":[{"name":"ernestoalejo","email":"contact@ernestoalejo.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jwt_0.2.1_1702460035966_0.4871175369362786"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-05T14:51:57.464Z","0.1.0":"2023-04-05T14:51:57.713Z","modified":"2023-12-13T09:33:56.348Z","0.1.1":"2023-04-10T07:57:08.929Z","0.2.0":"2023-12-12T15:12:42.566Z","0.2.1":"2023-12-13T09:33:56.166Z"},"maintainers":[{"name":"ernestoalejo","email":"contact@ernestoalejo.me"}],"description":"Secure and reusable JWT validation for Node.","homepage":"https://github.com/altipla-consulting/jwt#readme","repository":{"type":"git","url":"git+https://github.com/altipla-consulting/jwt.git"},"author":{"name":"Altipla Consulting"},"bugs":{"url":"https://github.com/altipla-consulting/jwt/issues"},"license":"MIT","readme":"\n# jwt.js\n\nSecure and reusable JWT validation for Node.\n\n\n## Install\n\n```sh\nnpm install @altipla/jwt\n```\n\n\n## Usage\n\n### Verify an asymetric token\n\n```ts\nimport { verifyJWT } from '@altipla/jwt'\n\nasync function main() {\n  try {\n    let config = {\n      discovery: 'https://example.com/.well-known/jwks.json',\n      issuer: 'https://example.com',\n      audience: 'foo',\n    }\n    let token = '...'\n    let payload = await verifyJWT(config, token)\n  } catch (error: any) {\n    console.error(error)\n  }\n}\nmain()\n```\n\n### Sign and verify symmetric tokens\n\n```ts\nimport { Generator } from '@altipla/jwt'\n\ninterface Data {\n  // ... put your token content here\n}\n\nlet generator = new Generator<Data>({\n  key: 'test-key',\n  issuer: 'https://www.example.com/issuer',\n  audience: 'foo',\n})\n\nasync function main() {\n  let token = generator.sign(1000, 'test', {\n    // ... put your token content here\n  })\n\n  try {\n    let data = generator.verify(token)\n  } catch (error: any) {\n    console.error(error)\n  }\n}\n\nmain()\n```\n\n### Sign and verify symmetric tokens with no payload\n\n```ts\nimport { Generator } from '@altipla/jwt'\n\nlet generator = new Generator({\n  key: 'test-key',\n  issuer: 'https://www.example.com/issuer',\n  audience: 'foo',\n})\n\nasync function main() {\n  let token = generator.sign(1000, 'test')\n\n  try {\n    let data = generator.verify(token)\n  } catch (error: any) {\n    console.error(error)\n  }\n}\n\nmain()\n```\n","readmeFilename":"README.md"}