{"_id":"keycloak-backend","_rev":"11-1feb097e5b0abfb3ac84b2bc95c76296","name":"keycloak-backend","dist-tags":{"latest":"5.1.0"},"versions":{"1.0.0":{"name":"keycloak-backend","version":"1.0.0","keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","_id":"keycloak-backend@1.0.0","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"dist":{"shasum":"465acf82bc75af4d242129180b0076491f739340","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-1.0.0.tgz","integrity":"sha512-nXzzgIkC520hHFdAgnO/N+qTAjCYnN8XKEyel52LY0XzDcsgg7KjWooWd1c5gsaRItMUcfyqiaHn2pfgixKtvQ==","signatures":[{"sig":"MEUCIQCElz/IP7ELG96Z4KR9mRVC39RkCK+h02Xg8gf8mJwnigIgZ6bsG3zf6wgbtvJqJ5w3jHeosKvQwcu1+L1BBCpONzs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","files":["LICENSE","README.md","index.js","libs/"],"gitHead":"0a7c4992c97c674c9ce4bd8c58fa474bdf10277b","scripts":{"test":"mocha test"},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"repository":{"url":"git+https://github.com/jkyberneees/keycloak-backend.git","type":"git"},"_npmVersion":"5.0.3","description":"Keycloak Node.js minimalist connector for backend services integration. ","directories":{},"_nodeVersion":"8.1.1","dependencies":{"axios":"^0.16.2","jsonwebtoken":"^7.4.1"},"_npmOperationalInternal":{"tmp":"tmp/keycloak-backend-1.0.0.tgz_1498489730261_0.5084644539747387","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"keycloak-backend","version":"1.1.0","keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","_id":"keycloak-backend@1.1.0","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"dist":{"shasum":"c307a5362f4a3a4bc276c67df95d27e86eda1669","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-1.1.0.tgz","fileCount":8,"integrity":"sha512-1QnRi6a6p8rVDdfBwnX38tJZrWCXVrfohC23BzzqlpnCNZx/LxdkhKAch/Fur7fSlMXCXQlOA1z0ACDb3EdhsA==","signatures":[{"sig":"MEUCIQCJkMTviP1IoNVWNtDP6zS5zHtH3SYHADRSBs9X43T+aQIgPsWGDlqKO8b3LMoGmA7Q7A/8SvNquUrzXAbSjKLtW5o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13155},"main":"src/index.js","files":["LICENSE","README.md","src/"],"gitHead":"0a7c4992c97c674c9ce4bd8c58fa474bdf10277b","scripts":{"test":"mocha test","transpile":"babel libs --out-dir src --ignore templates/* --copy-files"},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"repository":{"url":"git+https://github.com/jkyberneees/keycloak-backend.git","type":"git"},"_npmVersion":"5.6.0","description":"Keycloak Node.js minimalist connector for backend services integration. ","directories":{},"_nodeVersion":"8.9.4","dependencies":{"axios":"^0.16.2","jsonwebtoken":"^7.4.1"},"_hasShrinkwrap":false,"devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.6.1"},"_npmOperationalInternal":{"tmp":"tmp/keycloak-backend_1.1.0_1518620224214_0.11683352097032973","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"keycloak-backend","version":"2.0.0","keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","_id":"keycloak-backend@2.0.0","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"dist":{"shasum":"a14f7ab492b512d6174b30d34ab418f9fbb972fb","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-2.0.0.tgz","fileCount":8,"integrity":"sha512-Ky18VGEaEmkrATTToUhLAUcCI5Jkj4V0VFe5VlcvUZvrjVcUa42DPAp44ezXV/AdUDvevQa+/48hLfvefsG4Ag==","signatures":[{"sig":"MEQCIHfWgyZYzV9QkAKumZ4wWGnMieMw63jZUsxIh03Gt/s8AiA9mzrf09qJKDFmqiXtBxKtZbMqMWxd2iXBqF0739Gluw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb3yQECRA9TVsSAnZWagAAQMMQAJ4QQQU38v2TEp+cYW74\n1NW6NHDF1y7v/3ujZEory2S69A69ld8jOA/AmTcddPGaNECEqevLdjOOGrxM\n/ruMfDpXC93u97xxgUioSOezSAKeiMb87PbFgERqnqMlHhniOnfF0H4RpWq+\noItY1ULmciO7qsqeV1DnwQfYvwsG3wOnhmHPi6oY2SDfrxwY/m+CK3/KI7//\nVJ9SWQr3GADdCk0dNPhSFJD4aVwI6bjznxd61GVQDoQm6v3/UzVjuaKjqBej\nhETZajcoDM/7PTGcFbgGKS+LT/mU06gHW0VUaFzsayExGP8AMSfJD/maIohh\nidBM5zqFdszWRIGJd8o2kLj5672gmUK1ygpHOnFvugaEUjKN44eCJz8RLYJv\ncol9mv2XAtVNWRe0770+cG0X/PZWb/0zPwyavfsEsNqzabHPEevL8pn70QOS\nqFAsJlM1D06K3y4Zjkrr9qMWIk9RBAOn8wp+FVn8k8npMjV2ClUhDwQdV1an\nV3Qdld/Ucqb7wP2A3HF6Jyi1xNzxnmGX7MzNKRVARUUtbthWp/+vJXN2WoVM\nMscYcjmmb1rsH67tQzMrohsj6Qs0blit5skzJRmoEOQFKj7NpSnHBY/044kG\nYmpCaBdK4ogb/eBksLJHMmXuaamOguBE/fdhVbyHSlqQvtdAiFaYQnsO6XvL\nAI9S\r\n=xJbY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"a4dfbb42b56c56840acf7aa2d02411dc9d5f341e","scripts":{"test":"mocha test","transpile":"babel libs --out-dir src --ignore templates/* --copy-files"},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"repository":{"url":"git+https://github.com/jkyberneees/keycloak-backend.git","type":"git"},"_npmVersion":"6.4.1","description":"Keycloak Node.js minimalist connector for backend services integration. ","directories":{},"_nodeVersion":"10.12.0","dependencies":{"axios":"^0.18.0","jsonwebtoken":"^8.3.0"},"_hasShrinkwrap":false,"devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/keycloak-backend_2.0.0_1541350403973_0.18114203367327164","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"keycloak-backend","version":"2.0.1","keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","_id":"keycloak-backend@2.0.1","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"dist":{"shasum":"2c434228e6612b396470b8efda460871a3aeaf54","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-2.0.1.tgz","fileCount":8,"integrity":"sha512-remgWfiOLwex0j9oAktvl4Crk7cRUTBpAJzlhfTm7iI+8Q93v0mz4yWtp67eFpFQMWp10wZoG9cT0q1BM/Ykdw==","signatures":[{"sig":"MEQCID6w8Mlg92s6nbrKeqXg4dRwSMt6KJkozYkmPpsU2kdwAiBHic3gHSPSB7L/MjsCZDg8dIopYLHFL4Up6HqK1zfZDA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflY8MCRA9TVsSAnZWagAAIcgP/3YsPbPsxZc8GTTAHl+t\nJg6/bfWKZHJm/IIuqUXHuKK8iiSxY5aUasR4d8uwE4TewsXcHkElj1wuqTS+\nJH/7jBPZhoMD1SYd3ML0l3M2GEl4E8/m3M3DO6yPiKNmrZvUSGDsIV0rqI0N\nX4w1VVYyGA4a9/OcLWl4zjPiv/TpnIfk2jqeZc7GILw8aRE0zQSgWiH5haCw\ns1lRjcH4EuWliOhdjsH038DKt+/MBnSPTngZETkrcAJitpoA9PB++FtC6W7F\nLNMKI2ngw4YnS0pnCO7M6UNkuhtLBP7w1Z7vd9Nu59CjxKCU5sF6Ap9b8Ik0\ni3zXFZ6z685qKv2lHJQvhsaFb3Ez0/5gdnrE11FEApoRop5yFpLcVmhcrAcR\nDCLEhmAQq3HQNDYbYJdMyqsowEij6uSIMot7MYEbowOhHnunkkQXRVRzjZYA\nc1RtxHzJVRNYvm66+VrKlPKESZWm1njDfiJ+onbEr8kQvBoKJriAIHAZqgRg\nKdnnOf0eqF9kVHONVBlBQDNgiEY8fo+AK/qc2S/FEI2Xh8SQNNorVehHxhtW\n/Mxv7R9qHojUQRKNmHwZzRw7pA9wRqBsB7T5GFewwj53+zUQ2ZxdPbkCjAlD\nFNlWGOqYSOn5ZTuHtLD+tKMa3GGw5IfEKUXfKPDjmnCyhdpfdJxa0E6cUc/s\nLj2Q\r\n=PIs3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"03bf52a56073e8ac66838eedb6e5b4af51e3a3d5","scripts":{"lint":"standard","test":"echo 'TODO'","format":"standard --fix","transpile":"babel libs --out-dir src --ignore templates/* --copy-files"},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"repository":{"url":"git+https://github.com/jkyberneees/keycloak-backend.git","type":"git"},"_npmVersion":"6.14.6","description":"Keycloak Node.js minimalist connector for backend services integration. ","directories":{},"_nodeVersion":"12.18.3","dependencies":{"axios":"^0.21.0","jsonwebtoken":"^8.5.1"},"_hasShrinkwrap":false,"devDependencies":{"standard":"^15.0.0","babel-cli":"^6.26.0","babel-preset-env":"^1.7.0"},"_npmOperationalInternal":{"tmp":"tmp/keycloak-backend_2.0.1_1603637004289_0.8814315740388785","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"keycloak-backend","version":"3.0.0","keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","_id":"keycloak-backend@3.0.0","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"dist":{"shasum":"9a58e1e882c98752c06514a20eedaec6c3331c4e","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-3.0.0.tgz","fileCount":7,"integrity":"sha512-qx6nwTrQMtQVDwKPG9vdnRdvsOqemHlEQsd4fbLua39d5ebeu2xvLCPcZvo6AaVoN1eyPhMs4v3qhNqzsO7WFw==","signatures":[{"sig":"MEQCICI+P25RKz9EDx5mrrzIUVBaejfr/OijGjO5cFCK0OnxAiAmxY9MkRCIjOK/7Q40r33DU78ltFqCQugaw6uxKUsq7A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrMbDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmog1RAAlsldA1o2Wb2X2bcDPzS0hFNfKGpDu2yqurpO5h9Ua1U2+7nc\r\nq3ZEQhOVONxrtY9VTD1iNfa+l2dP0TardUciiDMJUwU85WLMXT8ayPaIrpyR\r\npwSB6AZ52Vy4wStFagty/fAinuzOS5GBQxe7rQ7zezw1r3/m1mHUzk3LBll4\r\nBmO794UvTp4HCoj0CAIl1Odi5oPi5nF5SlCvHhwVkUmPmWyMKwJbuKHk+pLb\r\nHgvYvJUkmO1rW+olIpVlW5DdxPI+n109Kbjff1wFmDAcf7efzDVVCrF8P35I\r\nD45TCdQySmcUPel5PHz41xtMC/iqPZiqBRSig55+f9u1dK2GhcGARFU5uc0B\r\nzbzVujvRlMF78i2H+W03thkLAkO0S4WfCqaDbFLrnc7MqCRKZuHfr2vuwo1B\r\nyCbOlxGp+7gofYuve5Sp2MwQH7gIHew9pt6uPiT1kMN/KrYQbEqCrY+USpfO\r\ncmRYL9cHaJd+RvDF5ICQQbPcCaMROfjv0RBUIE36rlANHzRnJJFg4g9g3tVW\r\nhuSN576kahuKWrmmeztpxCKh7TfVQyrrL/u0FZ5BA3c0rtkXuGWI+iq6yOaB\r\nBAlgrMM3eWdMuIlI8DxqHVVDjU9wktIpUVyf1JKutCL2mj1CNWBTjNXoRzbS\r\n0Pbvtpct/IN6uoqFLuwdQ1cKnyX2om+LolE=\r\n=qtDh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"libs/index.js","gitHead":"76d4dbd21b758e69a0b4750efda4cf2783bb6ad8","scripts":{"lint":"standard","test":"echo 'TODO'","format":"standard --fix"},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"repository":{"url":"git+https://github.com/jkyberneees/keycloak-backend.git","type":"git"},"_npmVersion":"8.12.1","description":"Keycloak Node.js minimalist connector for backend services integration. ","directories":{},"_nodeVersion":"18.5.0","dependencies":{"axios":"^1.2.1","jwt-decode":"^3.1.2","jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"standard":"^17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/keycloak-backend_3.0.0_1672267459134_0.3728846040171172","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"keycloak-backend","version":"4.0.0","keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","_id":"keycloak-backend@4.0.0","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"dist":{"shasum":"50313b0831a31a132c4187b550eabaaf96ab6f5d","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-4.0.0.tgz","fileCount":18,"integrity":"sha512-J4x1S8SbjQcVtbqadWu2w/yEbjL11LSIUs2xcffdeD9k8vuNsXQZcumjG4LvaKAYs3zBMoYHBdR4exy94IgS/w==","signatures":[{"sig":"MEQCIH/UjNyff5jQMxLOggq0He0H63U9IEIjx4HsfbMaWhNjAiBs6HgBBQNtXsYA2YCdqilnmvOUSdisnvkJzsYtHTvVrw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6rJlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaQxAAgioBr2w/IlHPNV9ChFDYQse6kGwk8D3Or92tvCU30n8VjtMx\r\nIMUZhAAa6gIG60cIxFYOaQybw0lxQX5eoOAYh2E9tv46Z6ZE0hLyH7azHrg1\r\nj/V4TdHNARWD9niyTVAd33WDqG6IutqegeGokJv6N66FTG7rutFDnJyoLZd0\r\nQYqBF1Y17ISfxyuAICm0cJm8jY1xf4Q2l3q79mrCVLsCbYawTfUCaxgXqswS\r\nABFA0r4khSJK5p0qTrxyKVFFbVq9/iSmErq3WwgTGEkhsAZpOBEomIMLrhKO\r\nKM4ZHMZEHPLY1w4mkWGI9hK58p5vlYqExmSpM0GUjS2eXgfDIXcBnchlo6v7\r\neFMpPjisFuaKZVKq0MBiAcA9ZaL6dWTw02zT2UJEAgaCrPL1OF85jiS1ER/V\r\np3uTee1aR+UxLI6f9QPUy/giPDm6TV+nD9dPhuFtubYKtQiZLDa1HJtBsvIw\r\n5Y6GDA9wPMy+iqfubPbFDxBUntH2EY/5tLVm2SbMmMpxn3kns0pjRa4mvQMz\r\n893Zw4DaqrzNyrXCcc5HocvexnqU31Q1ueghGpUV11wqbvtnMonx4GOV8ynx\r\nEe7FJq91x6Jgs1PNqeOZ2l6YfTnyMTzEivOA0zvHH5z8ouRHKZrm2E6mAKjG\r\n4bzLkrc/IoHPftRIfX/3VbWpi01yLG/MpkA=\r\n=icOb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a54b44baf76d0f20384e4186b903bc440f4d23a8","scripts":{"lint":"ts-standard","test":"echo 'TODO'","build":"tsc","format":"ts-standard --fix","prepare":"npm run build"},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"repository":{"url":"git+https://github.com/jkyberneees/keycloak-backend.git","type":"git"},"_npmVersion":"9.4.0","description":"Keycloak Node.js minimalist connector for backend services integration. ","directories":{},"_nodeVersion":"18.13.0","dependencies":{"axios":"^1.3.3","jwt-decode":"^3.1.2","jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.4","@types/node":"^18.11.18","@types/jsonwebtoken":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/keycloak-backend_4.0.0_1676325476922_0.6855961734759699","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"keycloak-backend","version":"4.0.1","keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","_id":"keycloak-backend@4.0.1","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"dist":{"shasum":"62160b06c29806c506b1e2efe1a9818ea5bf4fad","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-4.0.1.tgz","fileCount":18,"integrity":"sha512-UHnXu9pTCsttdoKwVFaEg5MlavdyKOxUaRcAzwut+ql907vmKpfr5/kYfA/6x/Hkk/RTEMilv7UAjwxxj7Ld/w==","signatures":[{"sig":"MEYCIQCdLVrQrTOyny/4hddM+/pzuth5jowopq87hBGImjPO1QIhALKugT/BqKTeNjVYYniDTwvxhnAwzpPsghyORQ/F8lXF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj78BjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrxJw/+N+6z5Zm59MVNroI1e8iShFxKjhL4tVY5slXECiueQupIEiQp\r\nShh0jgEM/z+23s88zzhdVR3QKv6uoAvotrLVaoFlw+GsoM370Une/buHYVnx\r\nyed+gIusJstJts2A10CRNjNG+kON/xiCg95HUYmHCg4U6r+13gSWOP47dm8j\r\nOKvQDYGJwBkXXxbv86OruVjB0FCZwsufXllT+VmB/T4/jjXNu6i3jIFxZvSq\r\nX0wuxZKM2i2Ypxf8t65Gz4ZyhQ+FkME2dfceIeW9kjPVwZldXes4aa1YBFT6\r\nM/KRhKi7dt6Ct8cEPDRrGybPxiOEQSUuiyWqbIDLS5y2vC/KUpDXgvhgrIv6\r\nmYXXw2dnmbxbqSXjK5+Emnd7m2uU0Bnf3GasN8L8io44lJ6Epnub127gWIQB\r\nEtzwMH06MLWFqP/9VTiRjyJa7mpcJHNSetTA/iroXCFfMBtOkiTUFBOJyVBW\r\nSLLcRNksOumIPo0BS1KlmmvUSXS/ly+EXkqbWA2VStDyOlwhWrmKB/Yw66NE\r\ns4Xd9NqosVTF+jO8dPAINRi4W78gOfRE0fYAmrAXOFbH7TeMgaDrq3jNxCIW\r\nTZitXE2dNmY92/Kk/Sk5t+I4JfIk1NfAwcUE4b3Vy11I61os5UOOuIZwkMOU\r\nmFrXrDyyH7c2gsEcSZejHBi0x0mjZ25EbMM=\r\n=Ptxr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4eb62ebf9810b6a112754257b402916cd266b620","scripts":{"lint":"ts-standard","test":"echo 'TODO'","build":"tsc","format":"ts-standard --fix","prepare":"npm run build"},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"repository":{"url":"git+https://github.com/jkyberneees/keycloak-backend.git","type":"git"},"_npmVersion":"9.4.0","description":"Keycloak Node.js minimalist connector for backend services integration. ","directories":{},"_nodeVersion":"18.13.0","dependencies":{"axios":"^1.3.3","jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.4","@types/node":"^18.11.18","@types/jsonwebtoken":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/keycloak-backend_4.0.1_1676656739560_0.737146810520592","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"keycloak-backend","version":"5.0.0","keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","_id":"keycloak-backend@5.0.0","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"dist":{"shasum":"483cb2faff6ab3214f2c4e145290beee8c185dd1","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-5.0.0.tgz","fileCount":18,"integrity":"sha512-LgHdCO77zR1v0jjNF3mRyuzM7wh5c2ZGQuNxPwZ4Bi28wAa2de23pnAueDXPnS0rjoyce54Owhi8kLt9mUAJwg==","signatures":[{"sig":"MEYCIQD8vu5XaaVkV1GYw1ylrpP71UyDjj2rRtLMBpxzGIekvwIhAIGmfB0hDh+sEsB1NPQ326lY9MEyGoIdKykrmRW0eG2K","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23189},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a8c0e300d495d8a3229c512b8a3af9f1167881d5","scripts":{"lint":"ts-standard","test":"echo 'TODO'","build":"tsc","format":"ts-standard --fix","prepare":"npm run build"},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"repository":{"url":"git+https://github.com/jkyberneees/keycloak-backend.git","type":"git"},"_npmVersion":"9.5.1","description":"Keycloak Node.js minimalist connector for backend services integration. ","directories":{},"_nodeVersion":"18.16.0","dependencies":{"axios":"^1.3.3","jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.4","@types/node":"^18.11.18","@types/jsonwebtoken":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/keycloak-backend_5.0.0_1691615564010_0.6624255253186564","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"keycloak-backend","version":"5.1.0","description":"Keycloak Node.js minimalist connector for backend services integration. ","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"lint":"ts-standard","format":"ts-standard --fix","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"npm run integration:up && npm run integration:wait && npm run integration:test; EXIT_CODE=$?; npm run integration:down; exit $EXIT_CODE","integration:up":"docker compose up -d","integration:down":"docker compose down","integration:clean":"docker compose down -v","integration:logs":"docker compose logs -f","integration:wait":"node tests/integration/wait-for-keycloak.js","integration:test":"jest --config jest.integration.config.js","actions":"DOCKER_HOST=$(docker context inspect --format '{{.Endpoints.docker.Host}}') act pull_request","build":"tsc","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/jkyberneees/keycloak-backend.git"},"keywords":["keycloak","auth","oauth","jwt","rest"],"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"homepage":"https://github.com/jkyberneees/keycloak-backend#readme","dependencies":{"axios":"^1.13.2","jsonwebtoken":"^9.0.2"},"devDependencies":{"@types/axios-mock-adapter":"^1.10.4","@types/jest":"^30.0.0","@types/jsonwebtoken":"^9.0.10","@types/node":"^18.19.130","axios-mock-adapter":"^2.1.0","jest":"^30.2.0","ts-jest":"^29.4.5","ts-standard":"^12.0.2","typescript":"^4.9.5"},"_id":"keycloak-backend@5.1.0","gitHead":"f175dfaeb5dbeb0ef5c9638cefbe1e58684fe800","_nodeVersion":"22.21.1","_npmVersion":"11.2.0","dist":{"integrity":"sha512-THr+lvIKHVQTxArU8/5oNM2cm1mi1TloiWakaM6OKrK/VnlFeE7nY78kdGJC0dHI1SOmL4Tw0jC4rnCv50XcUg==","shasum":"1055a540c0164fbdc6a43b232cf372ad9bc5e3a1","tarball":"https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-5.1.0.tgz","fileCount":18,"unpackedSize":55606,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH9xgYqI8GG09YnDjnPBddiXpgYrQqnjq+iLZ5wLqcwZAiAAosjx7oG14FI3gdH6SC9YLJ9tDcxmDGV9n3/lPh5hAA=="}]},"_npmUser":{"name":"jkyberneees","email":"kyberneees@gmail.com"},"directories":{},"maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/keycloak-backend_5.1.0_1763908816784_0.15624759297456303"},"_hasShrinkwrap":false}},"time":{"created":"2017-06-26T15:08:51.235Z","modified":"2025-11-23T14:40:17.165Z","1.0.0":"2017-06-26T15:08:51.235Z","1.1.0":"2018-02-14T14:57:04.870Z","2.0.0":"2018-11-04T16:53:24.103Z","2.0.1":"2020-10-25T14:43:24.476Z","3.0.0":"2022-12-28T22:44:19.308Z","4.0.0":"2023-02-13T21:57:57.071Z","4.0.1":"2023-02-17T17:58:59.736Z","5.0.0":"2023-08-09T21:12:44.154Z","5.1.0":"2025-11-23T14:40:16.968Z"},"bugs":{"url":"https://github.com/jkyberneees/keycloak-backend/issues"},"author":{"name":"Rolando Santamaria Maso","email":"kyberneees@gmail.com"},"license":"MIT","homepage":"https://github.com/jkyberneees/keycloak-backend#readme","keywords":["keycloak","auth","oauth","jwt","rest"],"repository":{"type":"git","url":"git+https://github.com/jkyberneees/keycloak-backend.git"},"description":"Keycloak Node.js minimalist connector for backend services integration. ","maintainers":[{"name":"jkyberneees","email":"kyberneees@gmail.com"}],"readme":"# keycloak-backend\n\n[![NPM version](https://badgen.net/npm/v/keycloak-backend)](https://www.npmjs.com/package/keycloak-backend)\n[![NPM Total Downloads](https://badgen.net/npm/dt/keycloak-backend)](https://www.npmjs.com/package/keycloak-backend)\n[![License](https://badgen.net/npm/license/keycloak-backend)](https://www.npmjs.com/package/keycloak-backend)\n[![TypeScript support](https://badgen.net/npm/types/keycloak-backend)](https://www.npmjs.com/package/keycloak-backend)\n[![Github stars](https://badgen.net/github/stars/BackendStack21/keycloak-backend?icon=github)](https://github.com/BackendStack21/keycloak-backend.git)\n\n<img src=\"logo.svg\" width=\"400\">\n\nKeycloak Node.js minimalist connector for backend services integration. It aims to serve as base for high performance authorization middlewares.\n\n> In order to use this module, the used Keycloak client `Direct Access Grants Enabled` setting should be `ON`\n\n## Keycloak Introduction\n\nThe awesome open-source Identity and Access Management solution develop by RedHat.\nKeycloak support those very nice features you are looking for:\n\n- Single-Sign On\n- LDAP and Active Directory\n- Standard Protocols\n- Social Login\n- Clustering\n- Custom Themes\n- Centralized Management\n- Identity Brokering\n- Extensible\n- Adapters\n- High Performance\n- Password Policies\n\nMore about Keycloak: http://www.keycloak.org/\n\n### Compatibility\n\nThis library is tested against **Keycloak 26.0**. It supports modern Keycloak versions (18+) by default.\nFor versions older than 18, set `is_legacy_endpoint: true`.\n\n## Using the keycloak-backend module\n\n### Configuration\n\n```js\nconst Keycloak = require('keycloak-backend').Keycloak\nconst keycloak = new Keycloak({\n  \"realm\": \"realm-name\",\n  \"keycloak_base_url\": \"https://keycloak.example.org\",\n  \"client_id\": \"super-secure-client\",\n  \"client_secret\": \"super-secure-secret\", // Optional: for client_credentials grant\n  \"username\": \"user@example.org\", // Optional: for password grant\n  \"password\": \"passw0rd\", // Optional: for password grant\n  \"is_legacy_endpoint\": false, // Optional: true for Keycloak < 18\n  \"timeout\": 10000, // Optional: HTTP request timeout in ms (default: 10000)\n  \"httpsAgent\": new https.Agent({ ... }), // Optional: Custom HTTPS agent\n  \"onError\": (err, ctx) => console.error(ctx, err) // Optional: Error handler hook\n})\n```\n\n> The `is_legacy_endpoint` configuration property should be TRUE for older Keycloak versions (under 18)\n\nFor TypeScript:\n\n```ts\nimport { Keycloak } from \"keycloak-backend\";\nconst keycloak = new Keycloak({\n  realm: \"realm-name\",\n  keycloak_base_url: \"https://keycloak.example.org\",\n  client_id: \"super-secure-client\",\n  // ... other options\n});\n```\n\n### Generating access tokens\n\n```js\nconst accessToken = await keycloak.accessToken.get();\n```\n\nOr:\n\n```js\nrequest.get(\"http://service.example.org/api/endpoint\", {\n  auth: {\n    bearer: await keycloak.accessToken.get(),\n  },\n});\n```\n\n### Validating access tokens\n\n#### Online validation\n\nThis method requires online connection to the Keycloak service to validate the access token. It is highly secure since it also check for possible token invalidation. The disadvantage is that a request to the Keycloak service happens on every validation:\n\n```js\nconst token = await keycloak.jwt.verify(accessToken);\n//console.log(token.isExpired())\n//console.log(token.hasRealmRole('user'))\n//console.log(token.hasApplicationRole('app-client-name', 'some-role'))\n```\n\n#### Offline validation\n\nThis method perform offline JWT verification against the access token using the Keycloak Realm public key. Performance is higher compared to the online method, as a disadvantage no access token invalidation on Keycloak server is checked:\n\n```js\n// Ensure your public key is in PEM format\nconst cert = `-----BEGIN PUBLIC KEY-----\n...your public key...\n-----END PUBLIC KEY-----`;\nconst token = await keycloak.jwt.verifyOffline(accessToken, cert);\n//console.log(token.isExpired())\n//console.log(token.hasRealmRole('user'))\n//console.log(token.hasApplicationRole('app-client-name', 'some-role'))\n```\n\n## Testing\n\nThe project includes a comprehensive integration test suite that runs against a real Keycloak instance using Docker Compose.\n\nTo run the integration tests:\n\n```bash\nnpm run test:integration\n```\n\nThis will:\n\n1. Spin up a Keycloak 26 container and a Postgres database.\n2. Import a test realm with pre-configured clients and users.\n3. Run the test suite to verify token generation, validation (online/offline), and role checks.\n4. Tear down the environment.\n\n## Breaking changes\n\n### v4\n\n- Codebase migrated from JavaScript to TypeScript. Many thanks to @neferin12\n\n### v3\n\n- The `UserManager` class was dropped\n- The `auth-server-url` config property was changed to `keycloak_base_url`\n- Most recent Keycloak API is supported by default, old versions are still supported through the `is_legacy_endpoint` config property\n","readmeFilename":"README.md"}