{"_id":"@affinidi/affinidi-react-auth","_rev":"18-f0bc0ba420b3c7eab5ca5a73cdb8ad80","name":"@affinidi/affinidi-react-auth","dist-tags":{"latest":"1.0.12"},"versions":{"1.0.0":{"name":"@affinidi/affinidi-react-auth","version":"1.0.0","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.0","maintainers":[{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"ab870e119bca36c3d07efcde3a3a560a271103a4","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.0.tgz","fileCount":51,"integrity":"sha512-96zN4dUswlvdViabLnNl7S5TWGQY0kFwpx5WFKvSlotHSj4avqXGUBwb2Id2vsGH4ev7/AnOFD3KRxMX9Fyzig==","signatures":[{"sig":"MEUCIQDuGwnnZNshlExL9wAESzArDRxCgbVg1o3RIRBxVSi7jgIgFSt1KWhS6bZBawxE7GXE0beXR2sZ2r+IhrSO/DN+rk8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":116648},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c4f563f949c4d343656347bf411fff9661e4d3e1","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.0_1696260888377_0.6778060050704278","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@affinidi/affinidi-react-auth","version":"1.0.1","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.1","maintainers":[{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"eb653f53ea3fc6547801780aa1bb826ece77c6f2","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.1.tgz","fileCount":51,"integrity":"sha512-fSPOJP9fzLsnDJyn/h+MhzxSjJnBp3JQIkNQSG85kYqzH+Ki7LF9aNAyxTlxED0IytyAcCadDRe9Pz98egxg2Q==","signatures":[{"sig":"MEQCIF9ZlE5mtvAokEVgjFJt8a/7MxEU24aIcP7hE2lP2JReAiAH3HnBBNGrPjuVMgbDBy1jfyrSFyCDnFx4X8Zi3cTteA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":116652},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e74cd1a88881ac3880eff6e63c4f80965f7f0ba2","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.1_1696307437013_0.5367137023279018","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@affinidi/affinidi-react-auth","version":"1.0.2","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.2","maintainers":[{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"cf76eb63f40c62be0ebd165089313852cbbcc990","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.2.tgz","fileCount":51,"integrity":"sha512-4hmRmtH4ue6TnjwQg1EdqAMrHeGg80yHteQuK1dxDYnGCHQEfWUenOQSarDabOwQJlPXVEooFr1SrRBcKili0g==","signatures":[{"sig":"MEQCIDJk9VJo5Nxtt9hIUtB70ODEzBYu2s6k6riMbT0NgiWbAiBUcrEeHKZdhz5u4Rrdqe3A+ismFBRpc1B2sXdvvTol3w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117493},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"dfa31de64677850225d8d2a4106e76f51ae5968e","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.2_1696322728753_0.3795660416760911","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@affinidi/affinidi-react-auth","version":"1.0.3","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.3","maintainers":[{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"b9e00da54bdf769a0cb0d0cf62a71fc26f20f59b","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.3.tgz","fileCount":51,"integrity":"sha512-gK3G6L1ed91DSphcZzQv/gKokPArM98StzbsVogNopyGTm3G3+t2ul25f2VYXWcR9rw29iGFjCWMTSb69BITRA==","signatures":[{"sig":"MEYCIQDflU+5JwLM0itBBCQTCk9zzvJ4Gx1pyMNlVJau/oTsfwIhAJ/SimEwmVyMCc6SXms9UgOd9z8NBAjbItkSc4wPaHK5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117624},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4ed1d24fa0ec25bbd3ab202f9b65b831c383b23b","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.3_1696324089639_0.6477118165681985","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@affinidi/affinidi-react-auth","version":"1.0.4","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.4","maintainers":[{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"1a1c361bb20506d60f8720cfb750a93e27aef69f","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.4.tgz","fileCount":51,"integrity":"sha512-zChFX55z1UErJ2PQBexNk+B64PpyJGK/hyxvkK15nnqd3TjnJPXpii9JcTKzVyvmMyrgdoZzNikEwXfDQ6uSFA==","signatures":[{"sig":"MEUCIC3QriEv+bKOrQFWZ/wP/J0IG/ytAT6Ouw8cu5/l8g37AiEAioMftRlr4qABiYlK4riYTrAvgptoeBizPAMJ6zX6H5s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117586},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"3c3b27cc3905c879305d9abbee86f594ef3de2b7","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.4_1696325294804_0.047851601383351205","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@affinidi/affinidi-react-auth","version":"1.0.5","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.5","maintainers":[{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"06a0d05c23d7cd44b861f8a29ecbb5f479fef6d7","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.5.tgz","fileCount":51,"integrity":"sha512-W4c426VKrvVr4BXORGiG6KQ0Yp0AUGrI4CkMbVH8joCe05VhaBsFmhBE8JD5Kf0vGutRSAEtGUQxUUG/V9ZK9w==","signatures":[{"sig":"MEUCIF9PXE0AcpQP39u2Lki1+oSBZ+mAja3aVeTakSyY2nAsAiEAn0mAs11rQXgk2ay9Jck/SPqnACpmhgpObJBdOw76qSg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117717},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9a1131ca32798e1ca816063aecdc0906bb6a6bb1","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.5_1697011989614_0.48849728568248496","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@affinidi/affinidi-react-auth","version":"1.0.6","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.6","maintainers":[{"name":"maratsh-affinidi","email":"marat.s@affinidi.com"},{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"f78946960fd167168013db32ee1f45e97773fbf5","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.6.tgz","fileCount":51,"integrity":"sha512-oHPwM4c9vQxaDX8NUNK1xp+W2yB1CQChOHlRxvEUoc1ghISOR94ZszihPcl0Q8KXREbtaZoOfVsP7/qhz9sklg==","signatures":[{"sig":"MEQCIBrdA+QvWLzde42W7h3KRrUY2N+qNqpgvmDGuImW92VsAiBbDwe14HxS6MpCQQKUZcMrYr/OSHinBc93inunOvVadw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117920},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"20174dc8e97304e2240e3af38945fecb798d36ee","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.2","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.6_1698723887522_0.9797352609183341","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"@affinidi/affinidi-react-auth","version":"1.0.7","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.7","maintainers":[{"name":"maratsh-affinidi","email":"marat.s@affinidi.com"},{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"0be0d0800d0c48e1e045e198a80b2b529a1ec926","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.7.tgz","fileCount":51,"integrity":"sha512-evaHKjDRbccVQf490vjj1/XgW/3w4z38CEw5fAiw7niwVMA5nceJvf7nF1PW+Qh8j417Jm1pZFUqs1tNlkhb6w==","signatures":[{"sig":"MEUCICB5mzR926mz8/UImr1I4LqBKfU0b1YrF6Kxf8Esj/lcAiEA9rQu8kiHmlr9QoVMVp67ua8SSdNRz7NR4VD0QoucaKk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140751},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ed1d8e6f6d16f6670fcca1cfcd6e962032263d42","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.2","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.7_1700731175670_0.8973078372318535","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"@affinidi/affinidi-react-auth","version":"1.0.8","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.8","maintainers":[{"name":"maratsh-affinidi","email":"marat.s@affinidi.com"},{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"0e1db5293d026931bae390089d2184e9a758e18b","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.8.tgz","fileCount":51,"integrity":"sha512-P8i9iZQM929iByLI/mjBUpqoXYGDK77R4DUknPiEGJhHiX5y1Oz9A9f5rP1+kmpiNTejxBSw0bnNb4lSNr3BLQ==","signatures":[{"sig":"MEUCIFWEgNbo7fee19z2eN4ABnjN5dV5xlXtFGQgq1PjGgVGAiEAwybdZn24mN4ozu5UErgv+D/h9hu3Zf22zCO7MNAzNxA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140751},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b9a0b8d69d37dec5ddcfd43d4194de8567ea640b","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.2","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.8_1700732423160_0.5488620437455429","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"@affinidi/affinidi-react-auth","version":"1.0.9","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.9","maintainers":[{"name":"maratsh-affinidi","email":"marat.s@affinidi.com"},{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"21ced2f61dd60e3c4ac50deac1a569e3d94c8295","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.9.tgz","fileCount":51,"integrity":"sha512-ipQsHWh+dQsvLPrgEa0NCQB+k05Wapa4GzrRm5qefqKUEIzKvqtQ3toK49C7rw+T1iwIF6FbjWcgBsxnAFpKLg==","signatures":[{"sig":"MEUCIQCz7BCIMcWzOqqMul0h5LebWlrJK6UBB+NUUUf92o9+VAIgGD7aTx6rhlzfW8pb4uE81rM+h9lhvF6nNYVy8BI0QEs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142278},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6f83c8601125ec0f4c0954ce7f88bd577b00cf59","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.18.2","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.9_1701755498021_0.92523926574272","host":"s3://npm-registry-packages"}},"1.0.10":{"name":"@affinidi/affinidi-react-auth","version":"1.0.10","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.10","maintainers":[{"name":"maratsh-affinidi","email":"marat.s@affinidi.com"},{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"99056813d014d36597b050abd154f8eb16508e26","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.10.tgz","fileCount":51,"integrity":"sha512-kqFuWPFlonlWCIxnVPRmQbcOZM+Y6lrCBhwlziZak/SzDnASzMfAZYuLC3GesINN3UHMgaB7mLjnzsNW9BOMTw==","signatures":[{"sig":"MEYCIQCLlhz/EH5ZjObSKjUPCuaLKW5nTRbAYq4mgQIKbDacTQIhANLtAStjyiwOGuW21BWVSPHrQ7iZSuqCbXbpT5+e9nrX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142279},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"63828258d47eaffb6f38d9b117bad7d44ef1aac0","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.19.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.10_1707118123054_0.13240916926441093","host":"s3://npm-registry-packages"}},"1.0.11":{"name":"@affinidi/affinidi-react-auth","version":"1.0.11","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.11","maintainers":[{"name":"maratsh-affinidi","email":"marat.s@affinidi.com"},{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"7df8dea697e0b5d61bb0554a64bbd48ed0120c13","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.11.tgz","fileCount":51,"integrity":"sha512-TuGnRrqF03y2MRF/CxeAr/bs5mRX/hivrhj+42d9YzrMLcGUy+/iKQqquvm3P81TZEqg3J1uuCrwUCRBiEMYyA==","signatures":[{"sig":"MEYCIQDkjMIsRKGv1WjKXn98Ohlk9agEzHcWr4RijLlVGMF2XgIhAP2TeIXVJk5A62qWmLJ78UrLpuYef6al8g0bg4E5caUt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142403},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f83d9f72ad09966af9b9af6ed4f6735fe986a44c","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.19.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.11_1707197188346_0.7843719753477274","host":"s3://npm-registry-packages"}},"1.0.12":{"name":"@affinidi/affinidi-react-auth","version":"1.0.12","keywords":["react-component","affinidi-login","react","passport-affinidi"],"author":{"name":"affinidi.com"},"license":"MIT","_id":"@affinidi/affinidi-react-auth@1.0.12","maintainers":[{"name":"maratsh-affinidi","email":"marat.s@affinidi.com"},{"name":"robert-affinidi","email":"robert.k@affinidi.com"},{"name":"standemchuk","email":"stas.d@affinidi.com"}],"homepage":"https://github.com/affinidi/affinidi-react-auth#readme","bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"dist":{"shasum":"3899c4a5104e68ee6287f59c37b1cfa440796e85","tarball":"https://registry.npmjs.org/@affinidi/affinidi-react-auth/-/affinidi-react-auth-1.0.12.tgz","fileCount":51,"integrity":"sha512-ryAneByVjh94GJl2sy9sDdTHgDpXn7bwWIt3msFF4Mla8u0bGWa3Z9r/AWIh35Q/HL6n4OcKr8uYQe80PuS4Yw==","signatures":[{"sig":"MEQCIHx839CQpvl82BXdvVK/5QT4KZghhQjV6XcjVVFoq5xVAiB8wBHHPTgJaPvlX05GhhOa6UQKvOyF7ruaN/BpGQc5Tg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142403},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7740da795929dcb8fcffb79adf8ceca2bbf4d080","scripts":{"lint":"eslint . --ext .ts","test":"jest","build":"npm run clean && tsc","clean":"rm -rf ./dist","watch":"tsc -w","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix"},"_npmUser":{"name":"robert-affinidi","email":"robert.k@affinidi.com"},"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"_npmVersion":"10.1.0","description":"Affinidi react auth library for creating Affinidi Login Button","directories":{"lib":"dist"},"_nodeVersion":"18.19.0","dependencies":{"react":">=17","tslib":"^2.3.1","nanoid":"^5.0.1","react-dom":"^18.2.0","typescript":"^5.2.2","randomstring":"^1.3.0","styled-components":"^6.0.8","@affinidi/client-aiv-extension":"^1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.49.0","@types/react":"^18.2.24","semantic-release":"^21.1.2","@types/randomstring":"^1.1.9","eslint-plugin-mocha":"^10.1.0","eslint-plugin-import":"^2.28.1","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@semantic-release/github":"^9.2.1","eslint-import-resolver-node":"^0.3.9","@typescript-eslint/eslint-plugin":"^6.7.3","@semantic-release/commit-analyzer":"^11.0.0","eslint-import-resolver-typescript":"^3.6.0","@semantic-release/release-notes-generator":"^12.0.0"},"peerDependencies":{"react":">=17"},"_npmOperationalInternal":{"tmp":"tmp/affinidi-react-auth_1.0.12_1707205782810_0.3551663430350438","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-10-02T15:34:48.286Z","modified":"2026-03-04T13:52:16.044Z","1.0.0":"2023-10-02T15:34:48.555Z","1.0.1":"2023-10-03T04:30:37.178Z","1.0.2":"2023-10-03T08:45:28.947Z","1.0.3":"2023-10-03T09:08:10.053Z","1.0.4":"2023-10-03T09:28:15.084Z","1.0.5":"2023-10-11T08:13:09.869Z","1.0.6":"2023-10-31T03:44:47.766Z","1.0.7":"2023-11-23T09:19:35.834Z","1.0.8":"2023-11-23T09:40:23.332Z","1.0.9":"2023-12-05T05:51:38.169Z","1.0.10":"2024-02-05T07:28:43.252Z","1.0.11":"2024-02-06T05:26:28.486Z","1.0.12":"2024-02-06T07:49:43.005Z"},"bugs":{"url":"https://github.com/affinidi/affinidi-react-auth/issues"},"author":{"name":"affinidi.com"},"license":"MIT","homepage":"https://github.com/affinidi/affinidi-react-auth#readme","keywords":["react-component","affinidi-login","react","passport-affinidi"],"repository":{"url":"git+https://github.com/affinidi/affinidi-react-auth.git","type":"git"},"description":"Affinidi react auth library for creating Affinidi Login Button","maintainers":[{"email":"robert.k@affinidi.com","name":"robert-affinidi"},{"email":"marat.s@affinidi.com","name":"maratsh-affinidi"},{"email":"victor.d@affinidi.com","name":"victor-affinidi"},{"email":"anna.v@affinidi.com","name":"varosyan"}],"readme":"# Overview\n\n**AUGMENT EXPERIENCES WITH A SAFER, SIMPLER AND MORE PRIVATE WAY TO LOGIN**\n\nA paradigm shift in the registration and sign-in process, Affinidi Login is a game-changing solution for developers. With our revolutionary passwordless authentication solution your user's first sign-in doubles as their registration, and all the necessary data for onboarding can be requested during this streamlined sign-in/signup process. End users are in full control, ensuring that they consent to the information shared in a transparent and user-friendly manner. This streamlined approach empowers developers to create efficient user experiences with data integrity, enhanced security and privacy, and ensures compatibility with industry standards.\n\n| Passwordless Authentication | Decentralised Identity Management | Uses Latest Standards |\n|---|---|---|\n| Offers a secure and user-friendly alternative to traditional password-based authentication by eliminating passwords and thus removing the vulnerability to password-related attacks such as phishing and credential stuffing. | Leverages OID4VP to enable users to control their data and digital identity, selectively share their credentials and authenticate themselves across multiple platforms and devices without relying on a centralised identity provider. | Utilises OID4VP to enhance security of the authentication process by verifying user authenticity without the need for direct communication with the provider, reducing risk of tampering and ensuring data integrity. |\n\n\n# Affinidi React Auth Plugin\n\nSimplify the integration of `Affinidi Login` into your React Application with this plugin.\n\n## Prerequisites\n\nBefore getting started, make sure you have the following prerequisites:\n\n1. Install [Affinidi Vault](https://docs.affinidi.com/labs/affinidi-login-basic/#before-you-begin-i-classfa-solid-fa-stari) to discover, collect, store, share, and monetise your data with consent.\n\n2. Install the [Affinidi CLI](https://docs.affinidi.com/dev-tools/affinidi-cli/) tool to interact with Affinidi services for managing projects, login configurations, user groups etc...\n\n## Application Folder Structure\nLet's start by creating a folder structure for your project. Here's an example of the directory structure:\n```\n- affinidi-apps\n    - client-app\n    - server-app\n```\n- *affinidi-apps*: The root folder for your project.\n- *client-app*: A frontend React application.\n- *server-app*: The backend API for your application.\n\n## Create a React Application\n\n1. Create a new React app named `client-app `using the following command:\n\n```\nnpx create-react-app client-app\n```\n\n2. Change to the `client-app` directory and open the project in your preferred code editor:\n\n```\ncd client-app\n```\n\n3. Start the application to ensure it's working correctly:\n\n```\nnpm start\n```\nNote: Your application will be available at http://localhost:3000/.\n\n## Integrate Affinidi Login\n\nNow, let's integrate `Affinidi Login` into your React application using the following steps:\n\n1. Install the `@affinidi/affinidi-react-auth` npm package:\n\n```\nnpm install @affinidi/affinidi-react-auth\n```\n\n2. To proxy unknown requests to your API server during development, add a `proxy` field to your `package.json` like this:\n\n```\n \"proxy\": \"http://localhost:3001\",\n```\nYou can find a sample `package.json` [here](https://github.com/affinidi/affinidi-react-auth/blob/main/playground/client-app/package.json).\n\n3. In your `src/App.js` file, import the necessary components and hooks:\n\n```\nimport React from \"react\";\nimport { AffinidiLoginButton, useAffinidiProfile } from '@affinidi/affinidi-react-auth'\n```\n\n4. Use the `useAffinidiProfile` hook to retrieve profile information once the login flow is completed:\n\n```\nconst { isLoading, error, profile, handleLogout } = useAffinidiProfile()\n\nasync function logout() {\n    //clear session cookie\n    handleLogout();\n    window.location.href = \"/\";\n}\n```\n\n5. Add the following JSX code to display the Affinidi Login button, loading indicator, user profile, and error messages:\n\n```\n{!profile && <>\n    <AffinidiLoginButton />\n</>}\n\n{isLoading && <p>Loading...</p>}\n\n{profile && <>\n    <button style={{ marginRight: 10 }} onClick={logout}>\n    Logout\n    </button>\n\n    <h3>User Profile</h3>\n    <pre style={{ textAlign: \"left\" }}>{JSON.stringify(profile, null, 4)}</pre>\n</>}\n\n{error && <><h2>error</h2>{error}</>}\n```\nYou can find a sample `App.js` [here](https://github.com/affinidi/affinidi-react-auth/blob/main/playground/client-app/src/App.js).\n\n6. Restart your application using `npm start`. This time, you should see the Affinidi Login button.\n\n## Create an Express Server\n\nNow, let's create a basic Express server for your backend API:\n\n1. Create a folder named `server-app` and navigate to it:\n```\nmkdir server-app\ncd server-app\n```\n2. Initialize the project by creating a `package.json` file:\n```\nnpm init -y\n```\nYou can find a sample package.json [here](https://github.com/affinidi/affinidi-react-auth/blob/main/playground/server-app/package.json).\n\n3. Install the required packages: `express` for creating the server, `dotenv` for managing environment variables, and `nodemon` for automatic reloading:\n```\nnpm install express dotenv nodemon\n```\n4. Create an `index.js` file and set up a basic Express server:\n```\nvar express = require('express');\nrequire('dotenv').config()\n\nvar app = express();\napp.use(express.json());\napp.use(express.urlencoded({ extended: false }));\n\nconst PORT = process.env.PORT || 3001;\n\nconst initializeServer = async () => {\n\n    app.get('/', function (req, res, next) {\n        res.json({ success: 'Express' });\n    });\n\n    app.listen(PORT, () => {\n        console.log(`Server listening on ${PORT}`);\n    });\n\n}\n\ninitializeServer();\n\n```\n5. Add the following script to your `package.json` to start the server with nodemon:\n```\n\"start\": \"nodemon index.js\"\n```\n6. Start the server using the following command:\n```\nnpm start\n```\nYour backend server will run on http://localhost:3001/.\n\n\n## Add Affinidi Provider to the Express Server\n\nTo complete the OAuth 2.0 Code Grant flow with Affinidi, follow these steps:\n\n1. Install the [@affinidi/passport-affinidi](https://www.npmjs.com/package/@affinidi/passport-affinidi) package:\n```\nnpm install @affinidi/passport-affinidi\n```\n2. In your `index.js` file (inside the server-app folder), import the `@affinidi/passport-affinidi` package:\n```\nconst { affinidiProvider } = require('@affinidi/passport-affinidi')\n```\n3. Initialize the Affinidi provider with your configuration settings\n```\nawait affinidiProvider(app, {\n    id: \"affinidi\",\n    issuer: process.env.PROVIDER_ISSUER,\n    client_id: process.env.PROVIDER_CLIENT_ID,\n    client_secret: process.env.PROVIDER_CLIENT_SECRET,\n    redirect_uris: ['http://localhost:3000/auth/callback']\n});\n```\n\nYou can find a sample index.js file [here](https://github.com/affinidi/affinidi-react-auth/blob/main/playground/server-app/index.js).\n\n4. Create Login configuration using the link [here](https://docs.affinidi.com/docs/affinidi-login/login-configuration/#create-a-login-configuration) by giving name as `Affinidi Login App` and redirect-uri as `http://localhost:3000/auth/callback`\n\n    Sample CLI Command \n    ```\n    affinidi login create-config --name='Affinidi Login App' --redirect-uris='http://localhost:3000/auth/callback'\n    ```\n\n    Sample response\n    ```\n    {\n        \"ari:identity:ap-southeast-1:d085c5a5-5765-4d8f-b00e-398f0916a161:login_configuration/0143bf454065664893b030289ae17903\",\n        \"projectId\": \"d085c5a5-5765-4d8f-b00e-398f0916a161\",\n        \"id\": \"<LOGIN_CONFIG_ID>\",\n        \"name\": \"Affinidi Login App\",\n        \"auth\": {\n            \"clientId\": \"<CLIENT_ID>\",\n            \"clientSecret\": \"<CLIENT_SECRET>\",\n            \"issuer\": \"<ISSUER>\",\n            \"tokenEndpointAuthMethod\": \"client_secret_post\"\n        },\n        \"redirectUris\": [\n            \"http://localhost:3000/auth/callback\"\n        ],\n        \"clientMetadata\": {\n            \"name\": \"\",\n            \"origin\": \"\",\n            \"logo\": \"\"\n        },\n        \"creationDate\": \"2023-09-19T05:10:19Z\"\n    }\n\n    ```\n\n    **Important**: Keep the CLIENT_ID and CLIENT_SECRET safe that will be used later next step. Client Secret will only be displayed once.\n    \n5. Create a `.env` file in the `server-app` folder and add your Affinidi configuration obtained from previous step:\n```\nPROVIDER_CLIENT_ID=\"<CLIENT_ID>\"\nPROVIDER_CLIENT_SECRET=\"<CLIENT_SECRET>\"\nPROVIDER_ISSUER=\"<ISSUER>\"\n``` \nSample `.env` file displayed below after respective values of the `CLIENT_ID`, `CLIENT_SECRET` and `ISSUER`\n```\nPROVIDER_CLIENT_ID=\"13456678c-67ac-429a-b0d3-5c64ec4c0577\"\nPROVIDER_CLIENT_SECRET=\"AbcdeF-odZtJ9tc3oLuWVW.ECE_\"\nPROVIDER_ISSUER=\"https://apse1.api.affinidi.io/vpa/v1/login/project/d085c5a5-5765-4d8f-b00e-398f0916a161\"\n```\n6. Restart your server using `npm start`.\n\n## Testing the Application\n\n1. Open http://localhost:3000/ in your browser to check if the frontend application is running. If it's not running, go to the `client-app` folder in your terminal and run `npm start`.\n2. Open http://localhost:3001/ in your browser to check if the backend server is running. If it's not running, go to the `server-app` folder in your terminal and run `npm start`.\n3. Click the `Affinidi Login` button in the frontend app to start the login flow.\n\n\n## Update Login Configuration to Retrieve Profile Information\nBy default, the login configuration requests only `Email` data. To also retrieve the `User Profile` data, follow these steps:\n1. Create a file named `profile-pex.json` under `server-app` folder with the contents from [this file](https://github.com/affinidi/affinidi-react-auth/blob/main/playground/server-app/profile-pex.json) and open terminal\n2. Execute the following command to update the login configuration, replacing `LOGIN_CONFIG_ID` with the value obtained in a previous step:\n \n```\naffinidi login update-config --id=LOGIN_CONFIG_ID --file=./profile-pex.json\n``` \nSample Command\n```\naffinidi login update-config --id=384192b3b3ea3df8cece307fda64cf98 --file=./profile-pex.json\n```\nEnsure that you have replaced `LOGIN_CONFIG_ID` with the actual ID from your configuration.\n\n## Testing the Application with User Profile\n\nNow that your login configuration is set up to request both `Email` and `User Profile` data, you can test the login flow to obtain profile information. Here are the steps:\n\n1. Update your profile information in your Affinidi Vault.\n2. Open the frontend application by navigating to http://localhost:3000/ in your web browser.\n3. If you are already logged in, click on the Logout button to log out from the application. \n4. Now, click the `Affinidi Login` button again to initiate the login flow.\n5. This time, you will receive user profile information as part of the login response.\n\n","readmeFilename":"README.md"}